DebConf Resources
on 28.08.2007, 21:38
in debconf-news
IPTraf, a ncurses based LAN monitor
on 26.08.2007, 05:00
in packages-news
ipcalc: network calculator on the command line
on 22.08.2007, 05:00
in packages-news
jed - Pocket sized emacs
on 19.08.2007, 05:00
in packages-news
Debian GNU/Linux 4.0 updated
on 16.08.2007, 00:21
in news, release
xdiskusage: where is the space?
on 12.08.2007, 05:05
in packages-news
KRename: powerful renaming tool
on 08.08.2007, 05:00
in packages-news

burgerspace: a free clone of the classic arcade game Burgertime

published on Wed Aug 29 06:00:19 2007 in packages-news

Entry submitted by Alexey Beshenov. DPOTD needs your help, please contribute!

Burgertime (originally entitled バーガータイム, Hamburger) is a popular 1982 Japanese arcade game created by Data East Corporation. The game even has an interesting entry in Wikipedia. Among other ports and remakes, there are a free X11 clone called “BurgerSpace” written in C++ by Pierre Sarrazin.

The behavior of the original arcade was not replicated exactly in BurgerSpace, but clone has the same scenario. You play the part of a chef Peter Pepper who must create burgers by stepping repeatedly on the ingredients until they fall down onto trays. It’s not so easy since you also must avoid food characters who chase you around the maze.

Evil food enemies (namely Mr. Hot Dog, Mr. Pickle and Mr. Egg) could be temporarily killed by crushing them under falling burger slices or dropped with them. The dropped enemies are stunned for a few seconds. You can also shake pepper on nearby monsters to make them harmless for a few seconds.

The game could be started via the command burgerspace or from the entry in the GNOME Games menu.

Use the following keys:

↑ ↓ ← →
Move.
Ctrl
Throw pepper.
P
Pause / resume game.
Esc
Quit the game.

(Unfortunately, there are no complete keystroke configuration.)

Screenshot

You can rich extra scores / peppers by collecting appearing things. Level will be completed if you create all burgers and the next level will be based on more complex maze layout, increased number of burger pieces and elevated speed. Game records available from the official webpage and you can report your outstanding scores to maintainer.

Yo

Program requires the SDL multimedia library. Burgerspace could be used on GNU/Linux machines and there are even a port for some-proprietary-system. The burgerspace package is available in both Debian and Ubuntu. Have fun!

DebConf Resources

published on Tue Aug 28 21:38:00 2007 in debconf-news

I just setup a DNS entry for panama.mini.debconf.org, on request of David Moreno Garza. He also got a mailing-list for that upcoming mini Debian Conference.

Which reminded me to blog about debconf.org resources again, so that more people know/remember that there is something they can use whenever they organize a Debian meeting.

If you happen to organize a meeting of Debian Developers / interested Debian people you can chose to use any debconf.org resource you need for it. This currently means:

DNSa name within .debconf.org. Either pointing to your host, if you have one, or see below for hosting.
Current style seems to be $something.mini.debconf.org, but we also have some miniconfX.debconf.org entries, so are pretty open. And in case it doesn’t fit into .debconf.org - there is always .debconf.net without restrictions (as its not really used currently).
Mailing-ListWant a mailing-list?
HostingDon’t have an own server for it? .debconf.org possibly has space for you.
You would manage the content via a svn repository.
CMSConference Management System - AKA pentabarf. Available in future, more info on that point when we finally switched to a version that let’s us easily give access to other people without giving out all personal data. :)
GalleryUse our gallery. Actually - don’t bother asking, just use it, as long as you use it for Debian related event pictures.

Want more? We have a page listing most of our resources, maybe you find something you need.

Want something? Mail admins@debconf.org and describe what you want, most possibly we will make it happen. Or try to get one of us admins on IRC, you are looking for one of the nicks Ganneff, mhy, sgran, gwolf or h01ger. No, we do not bite … usually. :)

IPTraf, a ncurses based LAN monitor

published on Sun Aug 26 05:00:42 2007 in packages-news

Entry submitted by Bart Veraart. DPOTD needs your help, please contribute!

Sometimes you just want to see what connections your machine is making to the outside world and what ports it’s using. While wireshark and tcpdump are really nice for inspecting detailed package contents. IPTraf is really about connections and interface statistics. Because iptraf is based on ncurses the program can be run from a text-console and still have a (primitive) `gui`. Navigation through the menus can be done using your arrow keys. Most of the time all the available options and their keys are shown on the bottomline of the sreen.

Starting up

By default the program is not accessible by ‘normal’ users so you’ll need root access. Also iptraf can put your interfaces in promiscuous mode (this will probably show up in your logfiles as: ‘device eth0 entered promiscuous mode’). Promiscuous mode can be turned off and on in the configuration menu. If no options are given through the commandline iptraf starts up with a splashscreen and then a menu. Some of the menuitems can be reached directly from the commandline (try using ‘iptraf -i all’ if you want to startup in IP traffic monitoring mode).

Configuration

There are some configuration options you might want to check. Turning on reverse DNS Lookups and service names comes in handy when using the IP traffic monitor. Iptraf comes with a separate reverse lookup server -rvnamed- wich is only started and used by iptraf to keep it from hanging on slow lookups. If there’s a lot of network traffic on your box try applying some filters.

Filtering

Filters can be useful if you only want to see info about traffic on certain connections, ports and/or protocols. Filters can be saved, deleted and edited. Multiple rules can be defined.

Screenshots

(Click on the image to enlarge)

Connections Configuration Filters Interface statistics
Connections

More information

IPTraf has been available since ages ago in both Debian and Ubuntu.

ipcalc: network calculator on the command line

published on Wed Aug 22 05:00:07 2007 in packages-news

Article submitted by Javier Barroso. We are running out of articles ! Please help DPOTD and submit good articles about software you like NOW !

Ipcalc is a command-line tool which allows the user to get useful data from a ip and a netmask.

Ipcalc returns the network address, netmask, network address in CIDR notation, min/max IP addresses, broadcast address and the number of hosts of network.

Ipcalc usage is:

Usage: ipcalc [options] <ADDRESS>[[/]<NETMASK>] [NETMASK]

A example could be:

$ ipcalc 10.0.0.28 255.255.255.0
Address:   10.0.0.28            00001010.00000000.00000000. 00011100
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   10.0.0.0/24          00001010.00000000.00000000. 00000000
HostMin:   10.0.0.1             00001010.00000000.00000000. 00000001
HostMax:   10.0.0.254           00001010.00000000.00000000. 11111110
Broadcast: 10.0.0.255           00001010.00000000.00000000. 11111111
Hosts/Net: 254                   Class A, Private Internet

Ipcalc has been available in Debian at least since v3.1 (’Sarge’) and in Ubuntu since Warty. apt-get install ipcalc will install it for you.

jed - Pocket sized emacs

published on Sun Aug 19 05:00:05 2007 in packages-news

Article submitted by François-Denis Gonthier. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

I’m a big fan of GNU Emacs, it’s a very powerful and ultra customisable editor. I have it setup just the way I want, with tons of packages. That means that although my Emacs setup suits me fine for long coding sessions, it takes several seconds to start, even on a moderately fast computer.

When you work in a console, and all you want is to edit some files, and edit them now, you gotta have something that starts in a snap. Jed is the editor I use for that.

Jed
Jed showing a bit of Emacs code.

The obvious advantages of Jed are that it starts much faster than Emacs, but still provides the basic key-mappings and features of the default Emacs setup. Out of the box, it supports syntax colouring for several programming languages: C/C++, S-Lang, FORTRAN, LaTeX, Java, Python, Perl, Bash and more. Since it’s an extensible editor, several add-ons (modes) have been written and are available in the Jed Modes Repository.

For people that are interested in having a full-featured editor, but aren’t crazy about the Emacs key bindings, Jed has a nice console menu interface. Menus can be activated with the F10 key, and then browsed with the arrows key, just like the ol’ DOS editors. Most menu items also have shortcuts, for quicker access the next use. For the less expert users, like myself, menus are very useful; but avoiding the F10 key at the corner of the keyboard is a time saver, as tiny as it may sound.

The Jed menus come with some nice touches that Emacs has acquired just recently. In the “Windows” menu, you can see that Jed offers 9 different colour themes for the terminal, a nice touch for people allergic to white-on-black text, or with difficult display devices.

I personally use Jed as a light editor, but Jed is a very customisable platform. It is linked with the S-Lang library, which can be used to heavily customise the editor. I know little of the S-Lang language, just what I need to set a few shortcuts, but the S-Lang functions provided by Jed are well documented on its home page: http://www.jedsoft.org/jed/doc/jedfuns.html

It is also interesting to know that Jed has a native X11 interface, which is installed by the xjed package. Jed is not as well adapted to X11 than Emacs is, but XJed does bring some interesting improvements like mouse support, and of course key bindings which are not limited by any terminal protocol. Personally, I think that the XJed default configuration should be edited a bit (I use Ubuntu, but tend to suppose it’s not very different in Debian). When XJed starts on my computer, it looks like Jed was started in XTerm, with extremely tiny fonts, and an ugly font. I am sure XJed can be conveniently and easily configured but giving you a bad first impression of Jed is not something I want. I suggest you to try running the console version of Jed in your favourite terminal emulator, then play with it a bit.

The final proof that Jed is a mature and fully-featured editor is that it obeys Zawinski’s Law (Zawinski’s Law), which state that “a program attempts to expand until it can read mail”. Jed has a mail reader called rmail, it can be invoked by hitting M-x (Alt+x) then typing rmail.

Jed has been available in Debian and Ubuntu for ages.

Quick start shortcuts

Here is a few shortcuts you may find useful while playing with Jed for the first time. As usual, C = Ctrl, M = Meta (usually Alt).

C-h
Invoke the help system
C-x C-c
Quit jed
C-x C-f
Open a file
C-x C-k
Close a file
C-x 2
Split a window
C-x o
Move to the next window
C-SPACE
Set the beginning of selection (C-SPACE cancels selection region)
C-Shift-w
Cut
M-Shift-w
Copy
C-y
Paste
C-a
Go to the beginning of line
C-e
Go to the end of line

Debian GNU/Linux 4.0 updated

contributed by aba, published on Thu Aug 16 00:21:36 2007 in news, release

Debian GNU/Linux 4.0 updated

The Debian project has updated the stable distribution Debian GNU/Linux 4.0 (codename Etch). This update adds security updates to the stable release, together with a few corrections to serious problems. As always, the first point release also corrects a few issues that have been noticed too late in the release process to stop the release, but still should be fixed.

This point release for Etch also includes an updated release of the installer, which includes the following changes:

  • kernels used in the installer have been updated to ABI 2.6.18-5; as a result, some "small" images (for example netboot and floppy images) included with the original Etch release will no longer work (but the new images included with the point release will work, as well as the full CD/DVD images from both the original release as well as from this point release)
  • updated mirror list
  • support added for certain USB CD drives that were not being detected
  • incorrect setup of gksu fixed when user chooses to install with the root account disabled; this prevented the execution of administrative tasks in GNOME
  • important translation fixes in partman for Catalan and Romanian

Please note that this update does not constitute a new version of Debian GNU/Linux 4.0 but only updates some of the packages included. There is no need to throw away 4.0 DVDs/CDs. Instead you only need to update against ftp.debian.org or a mirror after an installation, in order to incorporate those changes. New CD and DVD images will be available within the next week at the regular locations.

Upgrading to this revision online is usually done by pointing the aptitude package tool (see the sources.list(5) manual page) to one of Debian's many FTP or HTTP mirrors. A comprehensive list of mirrors is available at:

http://www.debian.org/distrib/ftplist

Miscellaneous Bugfixes

This stable update adds a few important corrections to the following packages.

Package                Reason

apache2                Fix #423653 and #419552; better documentation
apache2-mpm-itk        Rebuild against apache2 2.2.3-4+etch1.
apt-setup              Default suite to code name.
cdrom-detect           Scan also for things that look like USB floppies.
choose-mirror          Update mirrors list.
debian-archive-keyring Adding debian volatile keyring
debian-installer-utils Support scanning for USB sticks and discs that are misdetected as floppies.
debian-installer       Updates for the 2.6.18-5-kernels and misc fixes
debootstrap            Add support for lenny.
desktop-base           Fix kde default wallpaper appearance between kdm to ksplash switch.
epiphany-browser       Add language to gconf defaults
fai-kernels            Include arcmsr scsi-driver which is included in the etch kernels
file                   Fix possible denial of service
glibc                  Fix CPU hog on 64 bits machines, dependencies of nscd, wrong assertion and unaligned memory access
gnome-mount            Rebuild against libeel2-2.14
initramfs-tools        Added missing esp module to scsi modules list so it gets installed in the initrd
kernel-wedge           Reupload to match packages in r1
libofa                 Rebuild in a clean environment.
librsvg                Fix dependency (#403977)
lifelines              Fix file conflict by versioning a dependency.
lilo-installer         Support multiple disks when devfs device names are used
linux-latest-2.6       Assist upgrade to new linux-2.6 ABI
lsb                    Don't remove PID files of daemons that aren't actually killed
madwifi                Fix two remote and one local DoS
mail-notification      Fix uninstallability on sparc
mixmaster              Fix buffer overflow in mixmaster (#418662)
mozilla-traybiff       less restrict depends on icedove-dev
mpop                   fix CVE-2007-1558
mutt                   Add imap_close_connection to fully reset IMAP state
nano                   Fix segfaults.
neon26                 Fix kerberos authentication.
nfs-utils              Fix memory leaks.
openoffice.org         Fix crashes when saving files.
orage                  Memory leak
orbit2                 Allow non-local IPv4.
partman-auto           d-i translation update
partman-partitioning   d-i translation update
php5                   Fix regression in single quote escaping.
pppconfig              Fix upgrade issue from sarge, #418350
rdesktop               Segfault regression caused by libx11-6 security fix prior Etch release
tetex-base             Ease transition to texlive, #420390
trac                   Fix CSS and remote exploitable issues.
user-setup             Fix chroot calls to properly setup gksu alternatives.
vice                   Regression caused by libx11-6 security fix prior Etch release
xorg                   Updated conflicts for easier upgrades and corrected dependencies for x11-common.

Removed Package

This package has been removed due to non-fixable issues:

vdrift: license issues, #420965

Missing Builds

One or more missing or out-of-date architectures have been added to these packages in this point release:

asterisk-chan-capi
banshee
codespeak-lib
democracyplayer
dfsbuild
dwm
dwm-tools
hpodder
ivtv
mercurial
metar
ocp
pekwm
rlwrap
setpwc
slcfitsio
stalin
twinkle
xfce4-session
xserver-xorg-input-acecad
xserver-xorg-input-evdev
xserver-xorg-input-joystick
xserver-xorg-input-keyboard
xserver-xorg-input-mouse
xserver-xorg-input-summa
xserver-xorg-video-apm
xserver-xorg-video-ark
xserver-xorg-video-i128
xserver-xorg-video-nsc
xserver-xorg-video-nv
xserver-xorg-video-rendition
xserver-xorg-video-s3
xserver-xorg-video-savage
xserver-xorg-video-sis
xserver-xorg-video-tseng
xserver-xorg-video-via
xserver-xorg-video-voodoo

Security Updates

This revision adds the following security updates to the stable release. The Security Team has already released an advisory for each of these updates.

Advisory ID   Package(s)               Correction(s)
  DSA 1280    aircrack-ng              Fix remote exploitable buffer overflow
  DSA 1281    clamav                   Fix several remote vulnerabilities
  DSA 1282    php4                     Fix several remote vulnerabilities
  DSA 1283    php5                     Fix several vulnerabilities
  DSA 1284    qemu                     Fix several vulnerabilities
  DSA 1285    wordpress                Fix multiple vulnerabilities
  DSA 1286    linux-2.6                Fix several vulnerabilities (superseded by DSA 1289)
  DSA 1288    pptpd                    Fix denial of service vulnerability
  DSA 1289    linux-2.6                Fix several vulnerabilities
  DSA 1290    squirrelmail             Fix cross-site scripting
  DSA 1291    samba                    Fix multiple vulnerabilities
  DSA 1292    qt4-x11                  Fix missing input validation
  DSA 1293    quagga                   Fix denial of service vulnerability
  DSA 1295    php5                     Fix several vulnerabilities
  DSA 1296    php4                     Fix privilige escalation
  DSA 1297    gforge-plugin-scmcvs     Fix arbitrary shell command execution
  DSA 1298    otrs2                    Fix cross-site scripting
  DSA 1299    ipsec-tools              Fix denial of service vulnerability
  DSA 1300    iceape                   Fix several vulnerabilities
  DSA 1301    gimp                     Fix arbitrary code execution
  DSA 1302    freetype                 Fix integer overflow
  DSA 1303    lighttpd                 Fix denial of service vulnerability
  DSA 1305    icedove                  Fix several vulnerabilities
  DSA 1306    xulrunner                Fix several vulnerabilities
  DSA 1307    openoffice.org           Fix arbitrary code execution
  DSA 1309    postgresql-8.1           Fix privilage escalation.
  DSA 1310    libexif                  Fix integer overflow
  DSA 1311    postgresql-7.4           Fix privilige escalation.
  DSA 1312    libapache-mod-jk         Fix information disclosure
  DSA 1313    mplayer                  Fix arbitrary code execution
  DSA 1314    open-iscsi               Fix several vulnerabilities
  DSA 1315    libphp-phpmailer         Fix arbitrary shell command execution
  DSA 1316    emacs21                  Fix denial of service vulnerability
  DSA 1318    ekg                      Fix denial of service vulnerability

The complete list of all accepted and rejected packages together with rationale is on the preparation page for this revision:

http://release.debian.org/stable/4.0/4.0r1/

URLs

The complete lists of packages that have changed with this revision:

http://ftp.debian.org/debian/dists/etch/ChangeLog

The current stable distribution:

http://ftp.debian.org/debian/dists/etch

Proposed updates to the stable distribution:

http://ftp.debian.org/debian/dists/proposed-updates

Stable distribution information (release notes, errata etc.):

http://www.debian.org/releases/etch/

Security announcements and information:

http://www.debian.org/security/

ttf-inconsolata: an open font for your terminal and for nice code printouts

published on Wed Aug 15 05:00:21 2007 in packages-news

Article submitted by Nicolas Spalinger. We have run out of good articles! Please help DPOTD and submit articles about software you like!

You love the command-line interface but you also want things to look good and be free as in freedom? Maybe you’re looking for a good open font to use when you code? or something to make your code snippets look even better in a printed publication?

Then check out ttf-inconsolata!

What is it?

Inconsolata is a monospace font designed by Raph Levien of Advogato and Ghostscript fame (and quite a few other things).

It is a high-quality font released under the Open Font License (OFL), the community-approved free license specifically designed for fonts and collaborative font design. (See http://scripts.sil.org/OFL for all the details including a extensive FAQ).

Screenshots taken from inconsolata’s website:

How does it compare to other fonts?

This fonts really stands out compared to other fonts out there for the following reasons:

It’s an open font which comes with sources! The great thing about this font is that extended sources - not just the ttf - are made available by the designer: the Fontforge .sfd and the Spiro .plate sources are available on the upstream website and in the source package. A Type1 version of the font is also available.

It is a collaborative font project: you can freely use, study, modify, redistribute and/or sell the font under the terms of the OFL which means you are free to derive artwork from the font, to embed it in a pdf, to branch, extend and tweak the fonts to your liking. You can also send a patch to contribute to Raph’s project.

It is also the result of cutting-edge innovation. Raph has been using his own font design toolkit called spiro to design Inconsolata. Spiro is based on revolutionary curve technology implementing Euler spirals. The spiro toolkit also includes various optimisation scripts. See http://levien.com/spiro for all the details.

It is work in progress (the coverage is mainly Basic Latin, Latin Extended-A and Latin-1 Supplement at this stage) but it is already very useful as such and has great potential to grow to support more Unicode blocks as needed.

This open font project is being generously sponsored by the TeX Users Group Development Fund which you can contribute to.

You can also use Inconsolata directly from your TeX environment using newer implementations like XeTeX or pdfTeX.

Alright, how do I get it?

Thanks to work done by the Debian fonts task force (See the corresponding Alioth project), Inconsolata is now available in Debian unstable and Debian testing. It will soon be sync-ed to Ubuntu.

It is co-maintained by the pkg-fonts team and the mirror Ubuntu fonts team. These teams are part of the open font movement working on improving the availability of high-quality open fonts, packaging the existing ones, integrating them with the wider free desktop stack, getting a toolkit together to do open font design and of course engaging more designers to release fonts under the OFL.

You can find other open fonts designed by Raph on his OFL fonts page

And many other open fonts projects are listed at: http://unifont.org/fontguide, http://scripts.sil.org/OFL_fonts and http://www.openfontlibrary.org/

Free the glyphs :)

xdiskusage: where is the space?

published on Sun Aug 12 05:05:18 2007 in packages-news

Article submitted by Carles Pina of Catux-LUG. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

Have you ever wished to know where are those files that waste space on your hard drive? Have you ever wondered which folder contained the most gigabytes? Your wishes had become true! xdiskusage is your application.

Using xdiskusage you can discover very easily how your hard drive’s directories are organised, and specially how much space is used in each one.

After executing xdiskusage without arguments, the initial default view is the list of partitions:

Main view

If you double-click in some partition you will get the list of bigger directories (sorted from bigger to smaller) and the space that each one is using:

root view
(notice that free space is treated as another directory)

You can double-click in any directory to explore it. Right-clicking shows us a menu to hide, unhide, go in, go out, etc. Just play with it!

xdiskusage is also a fantastic complement to “du”:

$ cd /tmp
$ du | xdiskusage

Also you can give any directory as an argument to xdiskusage:

$ xdiskusage /usr/src

One last thing: the -a switch shows files and not only directories:

File view

Alternatives

In Debian there are some alternatives to xdiskusage like:

  • gt5: not in Debian Etch. HTML based, needs a browser to navigate (text or graphical)
  • baobab: GTK based
  • filelight: KDE libs based
  • kdirstat: KDE based

The last three of them are more eye candy than xdiskusage. But I preferred a simpler solution, without so much dependencies. Of course: feel free to test and choose!

Notes

xdiskusage has been available in both Debian and Ubuntu since a long time ago.

Note that there is a bug that doesn’t allow the application to be launched by app-launchers such as Alt + F2 or menus. It’s a reported bug (Debian bug #276193).

Thanks to Fran Hermoso for correcting the text, and to Muzzol from the Catalan-Ubuntu mailing list for commenting it.

KRename: powerful renaming tool

published on Wed Aug 8 05:00:54 2007 in packages-news

Entry submitted by Matej Urbančič. DPOTD needs your help, please contribute!

Quick overview

KRename is a powerful batch renaming tool for KDE that allows to rename lots of files in one step. The design of the program is suitable for both advanced and novice users.

Program description

KRename supports batch renaming of files based on a set of predefined and adjustable expressions. It can also copy or move the files to another destination. Among the most notable operations are: case-toggling of file names, numbering and powerful finding and replacing. It supports changing access and modification dates, permissions, and file ownership. It can work recursively. The more demanding audience can do magic with the support for regular expressions. It can be used in tabbed mode or the more comfortable wizard mode, whatever you prefer, when sorting your picture collection, music library or project files.

KRename follows the paradigm of console based commands that can really be used for any purpose. Since not all of us feel comfortable writing our own scripts, such tools really are a perfect replacement. The biggest advantage of KRename is surely its simple and straightforward interface and a great set of possibilities, which gives power even to not so knowledgeable users.

The tabbed mode includes four tabs. On the first tab we select files and directories in many different view modes and sort options, and through support for global KDE file types we can actually see which files are being changed. We need to define what should the program do with the locations of the files in the second tab. Usually we rename existing files in some directory, but the program can also move them to another location. The third tab defines the plug-ins to be used for some special operations, such as using data extracted from the file to determine its new name (it supports avi, ogg, pdf, jpg, bmp, mp3, deb, rpm, emails, etc), changing permissions.

In the last tab we define what exactly we want to do with the settings we selected and how to shape the file name. There are many predefined sets of expressions, but we can also make our own. KRename supports regular expressions, which can really make a difference.

For the wizard mode, the first two steps are very similar to the first two tabs, whereas the third —and last— step combines the other two tabs in a simpler interface.

Screenshots

Tabs view:
krename - 1st tab krename - 2nd tab krename - 3rd tab krename - 4th tab

Wizard view (last step):
krename - wizard mode

Additional Information

In the homepage you can find a support forum, and more screenshots. It is programmed in C++, using the Qt/KDE framework, and has been integrated in Krusader and the Konqueror file manager.

It has been available in Debian and Ubuntu since a long time ago.

Liquidsoap: a versatile icecast source client, and much more…

published on Sun Aug 5 05:00:03 2007 in packages-news

Article submitted by Romain Beauxis. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

Presentation

Liquidsoap is a powerful audio stream generator designed to work with icecast as a source client. It was built for the campus net-radio of the Ecole Normale Supérieure de Lyon. The tough requirements included: accepting user requests, handling remote files and play lists, scheduling special programs, mixing jingles in the stream, interacting with the website or an IRC bot, etc.

The special thing of Liquidsoap is that instead of building an ad-hoc solution for that single net-radio, it was developed as a flexible tool with which you can combine as you like the features that you want. Hence, it has then been used successfully for several other net-radios, for which the usual streaming tools weren’t enough.

Design

Describing an audio stream can be very complex: several inputs (files, stream relaying, sound card input) that can be combined in various ways (audio processing, mixing, track scheduling, fall-backs) and finally be output in various other ways (several servers, contents and formats). To make it easy without losing expressive power, Liquidsoap uses its own little scripting language for configuration.

That language has a notion of audio stream and request, and has built-in functions for combining streams in various ways. Some of its main features are:

  • It is statically typed: your stream never crashes because you made a typo in a dark corner of the configuration.
  • Types are inferred: you don’t have to write them.
  • It is functional: you can define your own compound operations, but functions are also used to describe transitions from one stream to another.

Liquidsoap is quite versatile: it can be used as a daemon or as a command-line tool, and is not restricted to streaming to an icecast server, it can also stream to your local sound card!

Usage

If you are not aware of the way a web radio can be built using icecast, you may want to read some more documentation on this topic. In short, icecast accepts sources connections, and relays the data from these sources to its listeners. Liquidsoap acts as a source.

Let’s begin with a very simple example… Let’s say that you run an icecast server at host myhost with the password for sources being hackmeimcool, and you want to stream in Ogg/Vorbis a single looped file (it can be Ogg/Vorbis, MP3, WAV, even AAC on the SVN version). Then this may do the job for you:

$ liquidsoap 'output.icecast.vorbis(host="myhost",password="hackmeimcool",
  mount="mystream.ogg",single("/path/to/my/file"))'

Another possible usage is to relay a net-radio to your sound card using libao. For this you may try:

$ liquidsoap 'output.ao(fallback(track_sensitive=false,
  [input.http("http://www.dolebrai.net:8000/dolebrai.ogg"),blank()]))'

Liquidsoap can also be used as a scripting language, so the following does both previous examples:

#!/usr/bin/liquidsoap

# Set log to stdout and /tmp
set log.stdout = true
set log.dir = "/tmp"

# Output a file to an icecast server
file = single("/path/to/my/file")
output.icecast.vorbis(host="myhost",password="hackmeimcool",
        mount="mystream.ogg",file)

# Output a net-radio locally:
radio = fallback(track_sensitive=false,[input.http("http://www.dolebrai.net:8000/dolebrai.ogg"),blank()])
output.ao(radio)

Conclusion

The complete API is available here. We have not presented many cool features, such as:

  • sound effects;
  • custom transitions;
  • sound card I/O;
  • interaction with other components (website, external scheduler) in a more complex framework;
  • many others…

Liquidsoap is already used in various net-radios, such as Dolebrai which streams libre music, and RadioPi which has a complex multi-server and multi-stream configuration.

This presentation of Liquidsoap was very very short… This is not the place for a tutorial, so let’s finish instead with a power user example, which I hope will make you eager to learn more. Just download and run, there’s nothing to edit!

Usage:

  • Download this as test.liq
  • Run it with this command: liquidsoap test.liq and listen!

Optionally you can test the following:

$ telnet localhost 1234

q.push /path/to/file

If you are interested in a very flexible way to design your audio stream, feel free to visit our website, drop us a mail at savonet-users@lists.sourceforge.net or join our IRC channel, #savonet at Freenode. Liquidsoap is available in Debian testing and unstable, it hasn’t been uploaded to Ubuntu yet.

apt-listbugs: Lists critical bugs before each apt installation

published on Wed Aug 1 05:00:13 2007 in packages-news

Article submitted by LordRich. We have run out of good articles! Please help DPOTD and submit good articles about software you like!

apt-listbugs is a tool designed to warn the user about critical bugs of packages that are about to be installed or upgraded. Once installed, each time you use aptitude or apt-get it will be run, and if it detects any critical bugs will stop to ask the user what to do.

For using it, usually you don’t need more than installing it. But note that it will run after downloading the packages, so be patient. Here you can see it in action when installing cogito:

# apt-get install cogito
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  git-core libdigest-sha1-perl liberror-perl
Suggested packages:
  git-arch git-cvs git-svn git-email git-daemon-run gitk gitweb
Recommended packages:
  git-doc
The following NEW packages will be installed:
  cogito git-core libdigest-sha1-perl liberror-perl
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/2569kB of archives.
After unpacking 6087kB of additional disk space will be used.
Do you want to continue [Y/n]?
Reading package fields... Done
Reading package status... Done
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
serious bugs of cogito ( -> 0.18.2-3) <pending>
 #427182 - cogito - FTBFS:  FAIL 14: verifying repo2
Summary:
 cogito(1 bug)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...]  ?

It then allows users to find out more about the specific bugs listed. By typing w, a web-browser is launched offering links to the bug tracking system for each bug.
apt-listbugs web page

By answering with a bug number, querybts is run giving details for that particular bug:
apt-listbugs showing a bug report

After finding out exactly why the packages are listed as having critical bugs, the user can then either decide to continue the installation anyway by answering y (the default) or stop immediately by answering n.

apt-listbugs has been available in both Debian and Ubuntu since a long time ago.