Search Results: "xam"

4 February 2011

Robert Millan: Diskless Debian GNU/kFreeBSD HOWTO

It was completely non-obvious; In some cases I had to figure it out by reading kFreeBSD source code; I write it down here so it s not forgotten ;-) This is a short guide on how to boot Debian GNU/kFreeBSD via network on a diskless machine, using GRUB as the bootloader.
  • Step 1: Configure your DHCP/TFTP environment to load GRUB from network. See the PXE GRUB documentation for details.
  • Step 2: Rebuild kfreebsd-8 package with BOOTP and BOOTP_NFSROOT options, as described in upstream handbook. They need to be added to the debian/arch/*/*.config file for your architecture. This kernel can still be used for normal, disk-based boot, but it will issue DHCP requests to attempt network boot every time you start it.
  • Step 3: Put your kFreeBSD in TFTP directory and configure GRUB to load it. This requires only one command in grub.cfg. My setup:
    set timeout=1
    set default=0 menuentry Debian GNU/kFreeBSD
    echo Loading kFreeBSD
    kfreebsd /beastie/boot/kfreebsd-8.1-1-amd64.gz
    echo Booting
    boot
  • Step 4: Build a directory tree with your GNU/kFreeBSD userland, and export it via NFS. I copied it from an existing Debian GNU/kFreeBSD install, but I suppose debootstrap could do the job as well.
  • Step 5: kFreeBSD mounts root NFS in readonly mode initially, and Debian userland turns out to be very unhappy with that. If you want things to work you ll need to either setup tmpfs in a few places (e.g. /tmp) or adjust fstab so that / is remounted as writable by the INIT scripts. Example fstab line:
    192.168.1.3:/srv/netboot/beastie / nfs rw 0 0
    This, however, will only work if mount_nfs(8) is in your system. And (well, too bad) it hasn t been packaged yet. So you can copy it from a FreeBSD base tarball, along with its dependencies (/lib/libc.so.7, /libexec and /etc/netconfig).
  • Step 6: Finally the system boots, but you ll soon notice that file locks don t work. This breaks some daemons (rsyslog), dpkg, apt and possibly a lot other things. Actual (i.e. non-local) file locking on NFS requires a running lock daemon, both on client and on server. However, since FreeBSD lockd isn t packaged either, and you probably don t need global locks anyway, I suggest you disable it with nolockd mount option.
    The tricky part is that as explained in mount_nfs manpage, nolockd will only be honored when performing the initial mount, and it will be silently ignored if used while updating the mount options. So fstab is not an option.
    The only way I could find of telling the kernel to use arbitrary options when mounting / is by sending them via DHCP. Use the following options in your dhcpd.conf:
    option option-130 code 130 = text;
    option option-130 nolockd ;
  • Et voil . A Debian GNU/kFreeBSD system running completely in diskless mode. Enjoy!

    3 February 2011

    Pietro Abate: Package Managers Comparison

    The Mancoosi Team has recently published the details of a study we conducted analyzing different packages managers available in debian. The goal of this study was to compare MPM (the mancoosi package manager) to other legacy solvers and try to get a big picture regarding of the state of the art. A similar study was conduct during EDOS and the results are still available here. As I wrote few months ago, MPM is a proof of concept that we wrote to test the behavior of a number of solvers that have been developed for the MISC competition in a real world scenario. These results do not show anything new w.r.t. the experience of a lot of poeple dueling daily with their machines in order to install a new piece of software. In a nutshell, we have shown that apt-get, aptitude, smart and cupt perform pretty well when used only with one baseline (for example a stable release) : this conforms with the experience of the majority of users of debian based systems. However problems start to arise when a user start mixing more then one baseline putting a lot of stress on the solver in order to find a satisfying solution. This solution of course exists, but it is cleverly hidden in the dependency structure of more then 40K packages... MPM is not as fast as other package solvers (say 10 seconds for mpm, while apt-get is able to find a solution in 3 second), but is remarkably stable. It is always able to find a satisfying solution, even in the harder cases where all the other failed. In these experiments MPM uses the postdam solver aspcud. This solver uses only GPL components and it would be a good candidate for inclusion in debian (there are actually a couple of ITP already filled for clasp and gringo). The results (with a lot of details) are published on the mancoosi website (a more detailed report is in the works). Enjoy ! During fosdem the Mancoosi team that authored this work (Roberto, Ralf, Zack and Me) will be around, so, please stop us for a chat ! And don't miss Ralf's talk !!

    Raphaël Hertzog: People behind Debian: Mike Hommey, Firefox/Iceweasel maintainer

    Mike Hommey, our Iceweasel maintainer

    For as long as I have known Mike, he s been maintaining one of the largest (and most widely used) package: Iceweasel, Debian s default web browser. It s effectively Mozilla s Firefox although it has been renamed to avoid some rules enforced by Mozilla s trademark policy. But we might see Firefox back in Debian read on to know Mike s plans. His story is also very interesting in that he went from simple user to Iceweasel maintainer, and now he s working for Mozilla Corporation. But you already knew that contributing to free software is a good way to grow skills and gain experience that are valuable on the job market, right? ;-) My questions are in bold, the rest is by Mike. Who are you? I am Mike Hommey. I am French, even if my name doesn t sound so. I have been a GNU/Linux user since 1995, using Debian since 1999, and started packaging in 2003. After a long time in the NM queue, I became a DD in 2005. The main reason I started being actively involved is quite selfish: I wanted some things done, and I just did them. My first packages were extensions for the Mozilla Suite, the old one that directly inherited from Netscape Communicator. Later on, I wanted some of these extensions to work with the new kid on the block: Phoenix; or maybe it was already Firebird. By then, integrating extensions was a hassle, and the mozilla-browser maintainer had come up with a script that would make it easier for extension packages. So I ported that script for use with Phoenix/Firebird and sent it to the BTS. Then Phoenix/Firebird became Firefox, and it grew a real extension manager. Except that is was entirely not suited for extensions installed by the packaging system. So I made it work better. And made a few more changes to make Firefox work better. All through patches or NMUs. Then I became co-maintainer, then Firefox couldn t keep its name and became Iceweasel, and, fast-forward until today, I m now taking care of Iceweasel/Xulrunner and Iceape in stable, unstable, experimental and an external repository. This 8 years-long story (wow, I hadn t even realized it had been that long until I wrote it) tells you something: newcomers shouldn t be afraid to stick their hands anywhere, even in big packages. I was only a Mozilla and Phoenix end-user when I started. Apart from Mozilla-related packaging, I also happen to (co-)maintain some other packages in Debian, most notably webkit, though I haven t been very active in the pkg-webkit team recently. There are several reasons for that, the main one being that there are other team members getting the job done. And I can t say that much about the pkg-mozilla team, since there are effectively no other team members. What s your biggest achievement within Debian? I am quite proud that Squeeze will be the first Debian release where Iceweasel works on all supported architectures. Previously, we only knew the package compiled on all these architectures. Starting with Squeeze, we know it passes several of the test suites coming with the source code. This ensures most of the browser is functional. It was actually far from being the case before, as it appeared when the test suites were first enabled. I think it is very important to have properly working packages on all our supported architectures. The current evolution of hardware shows how important it still is. Who would have thought a few years back that we would see ARM or MIPS based netbooks today ? What are your plans for Debian Wheezy? For Debian Wheezy, I would like to improve Iceweasel/Icedove/Iceape integration with the packaging system. Something that would allow to use the apt database to find extensions or plugins, on top of the current behaviour. I also want to improve desktop integration, most notably for KDE. Another thing I d like to see happen is to package google breakpad independently (its source code is currently embedded in chromium and iceweasel, though not built, as far as I know), and have our Mozilla products builds be able to send their crash reports upstream. It is very important that upstream gets direct visibility over what crashes on GNU/Linux systems. It helps making them aware of issues that would otherwise probably remain unnoticed, as there are much more users using distributions packages than upstream tarballs. And not all Debian users report crashes to the BTS. I know at least Fedora and SuSE are already doing it. More importantly, I want to avoid the sad situation we got with Squeeze, where we re going to release a 18 months old Iceweasel. We got there for a combination of reasons, one being that I was preparing for a freeze in December 2009 and focusing on getting 3.5 in shape instead of the then upcoming 3.6. The result was that we didn t get 3.6 packages before upstream released 3.6.3 in April 2010. By then it was too late, considering the uncertainty of the release schedule, to update reverse dependencies and get 3.6 ready for Squeeze. Things are different for 4.0. I m already getting ahead of things, and while reverse dependencies haven t been taken care of, all beta releases have been made available through http://mozilla.debian.net/, usually within hours after upstream release (sometimes even a few hours before official announcement, but always after availability on ftp.mozilla.org). A great share of our patches were also pushed upstream. Several things made that possible: There will be a couple major upstream releases until Wheezy comes along, and I want to make them available early in unstable, even if that means breaking reverse dependencies until they are fixed. Finally, I would like to get other people involved, starting with the Icedove maintainer. Volunteers are very much welcome, for any kind of involvement: bug triaging, documentation (which we are deeply lacking), testing, code People interested can contact the pkg-mozilla team list. As the Debian packaging gets less time consuming, I should be able to spend more time mentoring, which should help. If you could spend all your time on Debian, what would you work on? I actually have been working almost full time on Debian for a few months during a more-or-less purposeful unemployment period. That s when I attempted to add an alert popup when Iceweasel or extensions are upgraded (which was eventually removed because not working very effectively). That s when I worked on Iceweasel 3.6 and the first 4.0 betas. That s when I pushed more than 70 patches upstream, and got upstream commit access. I know for a fact that keeping up with upstream and answering bug reports is already time consuming, and time comes in finite quantity. Working full time on Debian allows to do more than that, as I ve been able to experience first hand. Unfortunately, that doesn t help pay the bills, so it would be best if time could be shared with other persons. Like, actual members in the pkg-mozilla team. ;) Anyways, if I were to work full time on Debian again, I d like to do more than packaging, and help improve some of our infrastructure, most notably the buildd network, to grow some automated way to get packages built on all or some of our architectures. Call that PPA if you want, though I don t think we need something exactly like PPA. We sure do have porter boxes, but there is a huge overhead to get packages built there: you need to first try, then see you lack build dependencies, then wait for admins to install them, then come back and launch your build, and finally come back again much later to see how it went. And that s when it goes smoothly. Repeat for each architecture. It s already cumbersome when it s a small package, so imagine when it s Iceweasel. I d like to be able to push a (signed) .dsc somewhere, say I want it built on that and that architecture, and get binary packages and logs back. It could then be up to developers to distribute them, or not. Sometimes, you re just interested in test suite results. Another related wish would be a way to access build trees of failed builds, possibly on the buildd where it failed. What s the biggest problem of Debian? Lack of contributors, lack of contributors, and lack of contributors. It can sound weird to say that in a community of 1000+ people. But the sad reality is that we ve seen, repeatedly, calls for help in various places from various understaffed teams (most often of effectively one member) for years. So there is obviously a problem getting people to invest time in these teams either on the long term, or at all. I know this is not a very significant metric, but it already should say a lot: I wouldn t be surprised if more than 2/3 of the number of source lines of code in Debian come from less than 5% of the number of packages in the archive, and see less than 5% of the DD/DM population involved. If someone feels like doing the actual math, I m curious to know how far I m from reality, and in what direction. We also lack manpower to be able to make our release development smoother. In a perfect world where manpower is not a scarce resource, we should work on $release+1 when $release is being frozen. Said otherwise, we should have been able to start working on Wheezy in August 2010, or even earlier. You ve been working for Mozilla Corporation for a few months. How does the work look like and what are you working on? I am actually not working full time for MoCo; I am only contracting for 4 days a week. That was a request I made to keep having enough spare time for Debian or other activities. I am working from home, and am pretty much free about when I work, as long as I work long enough. I take advantage of this freedom and the saved commuting time to live a healthier life by doing some sports in the daytime (which also happens to be cheaper). I mostly work with Taras Glek and other people on various aspects of Firefox startup performance. This involves pretty interesting low-level stuff, in which I actually got involved before being contracted. This work has nothing to do with packaging Iceweasel, though I can have a few opportunities to do things somehow related. You told in your blog that you were discussing with Mozilla how Debian could use the Firefox trademark. Can you tell us a bit about the progress you made? I have got an informal approval of the patches we are applying to the Iceweasel 4.0 beta packages. There are a few concerns about using the system cairo library, and the embedded copy of libpng needs to be used to have support for the animated PNGs that are used in the user interface and that are required in Firefox feature-set. Other than that, there are pretty much no objection on the technical side. We managed to get to some common ground as to how to manage stable updates and more generally, changes to our packages, but I m still waiting for an actual agreement draft. While I, as the maintainer, am fine with the way it should look according to my discussions with the people involved at Mozilla, I ll seek review from my fellow Debian Developers when I ll have something to show. I haven t decided yet how this will reflect on the Debian packages, though. For example, would Iceweasel stay? But I do hope Wheezy will get Firefox back. Is there someone in Debian that you admire for their contributions? Not someone, but all past, present and future release team members. This is a team that receives a lot of critics (and I indirectly gave one a few paragraphs ago), yet manages to keep doing an amazing job and its members are very committed to their task. I admire their dedication.
    Thank you to Mike for the time spent answering my questions. I hope you enjoyed reading his answers as I did. Subscribe to my newsletter to get my monthly summary of the Debian/Ubuntu news and to not miss further interviews. You can also follow along on Identi.ca, Twitter and Facebook.

    8 comments Liked this article? Click here. My blog is Flattr-enabled.

    2 February 2011

    Dominique Dumont: My synopsis suck

    Hello I ve taken a step back and looked at the synopsis of the Config::Model man
    pages. Boy, I m not proud of what I ve released. Except the ones I ve reworked recently, most of them are worthless. The next release of Config::Model will feature new synopsis. Each synopsis will contain a valid example that can be run with a cut n'paste in a test file. The code in the synopsis will actually do something visible. Here s an example extracted from the next version of Config::Model::Dumper:
     use Config::Model ;
     use Log::Log4perl qw(:easy) ;
     Log::Log4perl->easy_init($WARN);
     # define configuration tree object
     my $model = Config::Model->new ;
     $model ->create_config_class (
        name => "MyClass",
        element => [
            [qw/foo bar/] =>  
                type => 'leaf',
                value_type => 'string'
             ,
            baz =>  
                type => 'hash',
                index_type => 'string' ,
                cargo =>  
                    type => 'leaf',
                    value_type => 'string',
                 ,
             ,
        ],
     ) ;
     my $inst = $model->instance(root_class_name => 'MyClass' );
     my $root = $inst->config_root ;
     # put some data in config tree the hard way
     $root->fetch_element('foo')->store('yada') ;
     $root->fetch_element('bar')->store('bla bla') ;
     $root->fetch_element('baz')->fetch_with_id('en')->store('hello') ;
     # put more data the easy way
     my $step = 'baz:fr=bonjour baz:hr="dobar dan"';
     $root->load( step => $step ) ;
     # dump data
     print $root->dump_tree;
    
    Feel free to log bugs on Debian BTS or on CPAN RT if the next synopsis still have problems. All the best

    31 January 2011

    Tiago Bortoletto Vaz: TXT2TAGS SAMPLE - Aurelio Jargas

    Before you start reading: this post is only intended to test a plugin that I've just written to give PyBlosxom a txt2tags formatting support. The original txt2tag sample used here is available at txt2tag website. Mine with few changes is here.IntroductionWelcome to the txt2tags sample file.Here you have examples and a brief explanation of allmarks.The first 3 lines of the this file are used as headers,on the following format:
      line1: document title  line2: author name, email  line3: date, version
    Lines with balanced equal signs = around are titles.Fonts and BeautifiersWe have two sets of fonts:The NORMAL type that can be improved with beautifiers.The TYPEWRITER type that uses monospaced font forpre-formatted text.We will now enter on a subtitle...BeautifiersThe text marks for beautifiers are simple, just as youtype on a plain text email message.We use double *, /, - and _ to represent bold,italic, strike and underline.The bold italic style is also supported as acombination.Pre-Formatted TextWe can put a code sample or other pre-formatted text:
        here    is     pre-formatted  //marks// are  **not**   interpreted 
    And also, it's easy to put a one line pre-formattedtext:
      prompt$ ls /etc
    Or use pre-formatted inside sentences.More CosmeticsSpecial entities like email (duh@somewhere.com) and URL (http://www.duh.com)are detected automagically, as long as the horizontal line:
    ^ thin or large v
    You can also specify an explicit link with label.And remember,
    A TAB in front of the line does a quotation.
    More TABs, more depth (if allowed).
    Nice.ListsA list of items is natural, just putting a dash ora plus at the beginning of the line.Plain ListThe dash is the default list identifier. For sublists,just add spaces at the beginning of the line. Morespaces, more sublists.The list ends with two consecutive blank lines.Numbered ListThe same rules as the plain list, just a differentidentifier (plus).
    1. one
    2. two
    3. three
      • mixed lists!
      • what a mess
        1. counting again
        2. ...
    4. four
    Definition ListThe definition list identifier is a colon, followed bythe term. The term contents is placed on the next line.
    orange
    a yellow fruit
    apple
    a green or red fruit
    other fruits
    • wee!
    • mixing lists
      1. again!
      2. and again!
    TablesUse pipes to compose table rows and cells.Double pipe at the line beginning starts a heading row.Natural spaces specify each cell alignment.
    heading 1heading 2heading 3
    cell 1.1cell 1.2cell 1.3
    cell 2.1cell 2.2cell 2.3
    Without the last pipe, no border:
    heading 1heading 2heading 3
    cell 1.1cell 1.2cell 1.3
    cell 2.1cell 2.2cell 2.3
    Special EntitiesBecause things were too simple.ImagesThe image mark is as simple as it can be: [filename]. OtherThe handy %%date macro expands to the current date.So today is 20110206 on the ISO YYYYMMDD format.You can also specify the date format with the %? flags,as %%date(%m-%d-%Y) which gives: 02-06-2011.That's all for now.

    Stefano Zacchiroli: who the bloody hell cares about Debian

    A down-under talk on the role of Debian, A.D. 2011 I'm back from LCA 2011, which I've attended to share some thoughts about the role that Debian plays in the Free Software ecosystem, 18 years after its inception (yes, we are that old^Welder). The talk title---Who the bloody hell cares about Debian? [1]---was meant to be rather provocative. The idea was indeed to challenge the meme that, in the era of distributions that release every 6 months, a distribution with a release cycle of circa 2 years (like Debian, considering the past 5 years) is not a project that deserves your attention anymore. Is it really the case? In the talk I (obviously) claim it is not, using two main arguments. The first argument is based on the observation that Debian offers a set of pretty rare, if not unique, features among mainstream FOSS distributions. Those features consist of a mix of technical and "political" aspects: (1) a focus on package quality, with no distinction among first and second class packages; (2) a strong culture of software freedom, which refuses to offer non-free software (or firmware) by default to users and distribution developers (as parts of the infrastructure used to make Debian); (3) independence from commercial interests, with no single company or entity that could claim to babysit Debian; and (4) a decision making model based on a weighted sum of do-ocracy and democracy, which implies that by doing (rather than talking) everyone has a chance to have an impact on Debian. Considering all that and looking at the most popular FOSS distributions, one can easily identify Debian as one of the few remaining players who both care about Free Software and can be trusted in making choices not driven by profit. Mind you, I've nothing against companies in general and I'm very well aware that many FOSS companies carry a good deal of the burden of developing and promoting Free Software. Nonetheless, in days in which it is striking how quickly FOSS-friendly companies can become very much FOSS-unfriendly, I can't help putting my trust and efforts into community-driven projects, better if with no attached company label whatsoever. Furthermore, having distributions like Debian around can encourage other company-backed distributions to demand more and more independence and clarifications about the relationships between the community and the backing company. The second argument about the relevance of Debian is more pragmatic and rather straightforward: Debian is the root of a huge tree of derived-distribution (AKA "derivatives"), more than 120 according to popular distribution indexing sites. Each Debian derivative focuses its attention on, and directs its people power to, customizing Debian for a specific target and build entierly upon Debian work for all parts that do not need customization. That possibility is one key advantage of Free Software, after all. A well-known derivative example is Ubuntu, which is probably the most popular Debian derivative, enjoying a user base way larger than that of Debian itself. Ubuntu is heavily customized with respect to Debian and still had only about (at the time of Natty) 25% of packages which either differed from their Debian counterparts or that did not exist in Debian at all. Other Debian derivatives tend to be way less customized than that. Either way, if you are running a Debian derivative, chances are that you heavily depend on Debian and on its well-being. (Yes, it is so also if you didn't know about that, sorry.) Let's now fast-forward to the end of the talk, skipping my usual comments on how to keep the whole tree of Debian derivatives sustainable and beneficial for Free Software as a whole (i.e. by reducing as much as possible the viscosity of patch flow along the derivatives tree). Feedback People's reaction to such a provocative talk has been positive and we have enjoyed a fairly long Q&A session discussing the topics mentioned above as well as other Debian-related topics. A (commented) summary of the obtained feedback is reported below. Judging from the recurrent questions and suggestions I've received doing Debian talks in the past 8 months, I dare to say that LCA feedback is fairly representative of the feelings of many Debian users. Slides of the talk are available, while a video will eventually be posted at http://linuxconfau.blip.tv.
    [1] Kudos to Francois Marier for suggesting the title. If the title doesn't ring a bell for you (it didn't for me in the beginning), you might want to check out the story of this ad. Update: minor rephrasing in the 4th paragraph

    30 January 2011

    David Bremner: Yet another git+quilt Debian packaging workflow

    As of version 0.17, gitpkg ships with a hook called quilt-patches-deb-export-hook. This can be used to export patches from git at the time of creating the source package. This is controlled by a file debian/source/git-patches. Each line contains a range suitable for passing to git-format-patch(1). The variables UPSTREAM_VERSION and DEB_VERSION are replaced with values taken from debian/changelog. Note that $UPSTREAM_VERSION is the first part of $DEB_VERSION An example is
     upstream/$UPSTREAM_VERSION..patches/$DEB_VERSION
     upstream/$UPSTREAM_VERSION..embedded-libs/$DEB_VERSION
    
    This tells gitpkg to export the given two ranges of commits to debian/patches while generating the source package. Each commit becomes a patch in debian/patches, with names generated from the commit messages. In this example, we get 5 patches from the two ranges.
     0001-expand-pattern-in-no-java-rule.patch
     0002-fix-dd_free_global_constants.patch
     0003-Backported-patch-for-CPlusPlus-name-mangling-guesser.patch
     0004-Use-system-copy-of-nauty-in-apps-graph.patch
     0005-Comment-out-jreality-installation.patch
    
    Thanks to the wonders of 3.0 (quilt) packages, these are applied when the source package is unpacked. Caveats.

    Dominique Dumont: How to configure OpenSsh through a virtual filesystem

    Hello My blog How about a configfs with Config::Model ? mentioned the on-going work to provide an access to configuration data through a virtual file system , i.e. through fuse. This new feature is now working since Config::Model 1.231. As an example, let s see how Fuse can be used to your ssh client. I.e. how to use config-edit command to modify your ~/.ssh/config through a virtual file system. Note that this is just an example, Fuse can also be used for other configuration withan existing model. First, you need to install Config::Model and Fuse and the fuse software. If you re on Debian/Sid, installing all this is straightforward:
    $ sudo aptitude install libconfig-model-perl libfuse-perl
    On other systems, you can use CPAN to install the Perl modules
    $ cpanp i Fuse
    $ cpanp i Config::Model
    Hopefully, fuse library will be available through a package on your favorite repository. Let s start from an empty ssh configuration file. First you need to create a directory that will be used by Fuse as a mount point:
    $ mkdir my_fuse_dir
    Then run config-edit-ssh (which will be changed later to config-edit -applit ssh ):
    $ config-edit-ssh -ui fuse -fuse_dir my_fuse_dir
    Mounting config on my_fuse_dir in background.
    Use command fusermount -u my_fuse_dir to unmount
    Now, all parameters that can be configured in /.ssh/config are shown as files and directories in the fuse directory (the list was reduced to save electrons):
    $ tree my_fuse_dir/
    my_fuse_dir/
    AddressFamily
    BatchMode
    BindAddress
    ForwardX11
    ForwardX11Trusted
    [snip]
    HashKnownHosts
    Host
    *
    ConnectionAttempts
    [snip]
    User
    UserKnownHostsFile
    VerifyHostKeyDNS
    VisualHostKey
    XAuthLocation
    HostbasedAuthentication
    HostKeyAlgorithms
    [snip] 14 directories, 119 files
    Let s say that we want to configure specific settings for 2 hosts: First step is to create the repoman entry:
    $ mkdir my_fuse_dir/Host/repoman
    A ls command in that new directory will show a lot of files:
    $ ls my_fuse_dir/Host/repoman
    IdentityFile Protocol Tunnel
    CheckHostIP ForwardX11 KbdInteractiveAuthentication ProxyCommand TunnelDevice
    Lo and behold, one of them is ForwardX11 ! Let s check what s in there:
    $ cat my_fuse_dir/Host/repoman/ForwardX11
    Since the entry is new, it s still empty. Enabling X11Forward for repoman is quite easy:
    $ echo 1 > my_fuse_dir/Host/repoman/ForwardX11
    Let s check:
    $ cat my_fuse_dir/Host/repoman/ForwardX11
    1
    Now, unmount the fuse directory:
    $ fusermount -u my_fuse_dir
    And see the modified .ssh/config file:
    $ cat ~/.ssh/config
    Host repoman
    ForwardX11 yes
    You can see that ForwardX11 is indeed set to yes for host repoman. Last but not least, you may consider that handling files and directories through shell commands is not very easy for the end user. You re right. But that s not the point. The idea is to enable programmers to access and edit configuration data with any language (not only Perl). Just like a lot of program can access kernel data through /proc and /sys, configuration data can now be accessed in a unified way through this virtual file system. May be, one day, exploring /config will be as common as exploring /sys All the best

    29 January 2011

    Adrian von Bidder: Sci-Fi classics (and other stuff)

    I again find myself spending time watching movies ... catching up on all those friends who chastise me for not having seen whatever movie we're talking about. For example, the first three Terminator movies. I'm always fond of old style science fiction, so the first of these is quite cute. And then there's the liquid metal effect introduced in Judgment Day, which also is cool, and at the time certainly was at the bleeding edge of what was possible in CG. But by the third movie the concept itself is sure showing its age although it's still well made action, I didn't enjoy it as much. Haven't got hold of the Salvation nor Bruno Mattai's unofficial Terminator 2. Speaking about old fashioned Sci Fi: Blade Runner has a very nice retro look in the buildings and furnishings. And, although this is more because it also was made in the early 80s, very retro computer consoles :-) Fun to watch, but I'm not quite happy with how the plot turns out in the end. But then, it's a Hollywood production, so should I be surprised? But there's not only Sci Fi ... The Shawshank Redemption is a gripping story about an innocent serving a 20 years sentence for murder. A banker entering the rough world of prison, bets are taken how long he'll last. But obviously it turns out that he's really quite tough ... I'm getting good at this ... I thought Jim Jarmusch after about 20s of the opening credits of Down By Law. While it is (again) about innocent people in prison, the focus here is solely on the interaction of three people sharing a cell, excluding almost everything else. Done beautifully in black and white, and while it's not fast paced in any way, the plot has a steady flow to it.

    Michal Čihař: Screenshot support for Nokia DCT4 phones

    After implementing the screenshot functionality for S60 phones, I wanted to add same thing for other phones as well. As there were some basics of the code for Nokia DCT4 phones, it was obvious place where to start. After little of hacking, screenshots are working, for example this is screenshot of my Nokia 6234 I use for testing: Nokia 6234 screen Support for Sony-Ericsson phones should follow soon, N meth M rton is working on it.

    Filed under: English Gammu 1 comments Flattr this!

    28 January 2011

    John Goerzen: Slices of 2010

    A lot of people look back on their year in December. I think it doesn t make sense to look back on a year until it s done. And then take a little time to let it simmer. That s my excuse for not doing this until almost February, anyhow. 2010 started with a 3-day ordeal of taking out the trash, nearly snapping the hood off my pickup while closing it, and Greek poetry. I then dived right into reading the Odyssey, and my post suggesting we read the Old Testament of the Bible like we read Greek mythology generated almost 100 comments. I guess I said something controversial I also read a number of other books last year. Our family had quite the year. In March, Terah and I got to visit Europe for the first time. A few months later, we visited New York City for the first time and I attended Debconf10. Jacob predictably loved our train trip to NYC, calling our room in the sleeper the best place of ever. Terah had thyroid surgery, and Jacob survived a tractor accident with amazingly minor injuries. But as I look back at my posts from last year, I m struck that most of them were about more everyday, ordinary events of life. Jacob loved the switchbox he and I built, Oliver somtimes acts like Yoda, and they both loved camping. I have made probably way too many posts with photos of them last year, but I m making no promises to slow down this year! Jacob and I built a computer together, and he loves bashing random words at the Linux shell. He also developed an interest in some half-broken FRS radios, and had tons of fun with them. Eventually this kindled in interest in amatuer radio in me. At the end of 2009, I finally completed my computer science degree and mused about what I might do next. I m a curious, inquisitive person that enjoys both challenge and knowledge. I thought that perhaps I would dive into reading more, or perhaps take some more college classes. Turns out I instead picked up amateur radio one of the big unexpected twists of the year. Jacob really did kindle that interest in me, and by July I had passed my technician and general exams and was on the air. I continued to study, and passed my extra class exam in October. Since then, I ve rigged up my bicycle for amateur radio operation, made some fun contacts, set up outdoor antennas, and got going with digital operation. It has been a lot of fun, and will keep providing opportunities for a challenge for me for a very long time. Also on the technical side, I made my archive of Gopherspace available for download. It s hard to cut off the list I have dozens of other things I could mention but I suppose I should end it with the Christmas gathering / piano moving episode.

    Amaya Rodrigo: Indignez Vous!

    If There is any sort of food for thought worth reading, this is it.
    INDIGNEZ-VOUS! GET ANGRY! CRY OUT by St phane Hessel


    St phane Hessel, author of Indignez-vous!
    After 93 years, it is almost the final act. The end for me is not very far off any more. But it still leaves me a chance to be able to remind others of what acted as the basis of my political engagement. It was the years of resistance to the Nazi occupation -- and the program of social rights worked out 66 years ago by the National Council of the Resistance!

    It is to Jean Moulin [murdered founder of the Council] that we owe, as part of this Council, the uniting of all elements of occupied France -- the movements, the parties, the labor unions -- to proclaim their membership in Fighting France, and we owe this to the only leader that it acknowledged, General de Gaulle. From London, where I had joined de Gaulle in March 1941, I learned that this Council had completed a program and adopted it on March 15th, 1944, that offered for liberated France a group of principles and values on which would rest the modern democracy of our country.

    These principles and these values, we need today more than ever. It is up to us to see to it, all together, that our society becomes a society of which we are proud, not this society of immigrants without papers -- expulsions, suspicion regarding the immigrants. Not this society where they call into question social security and national retirement and health plans. Not this society where mass media are in the hands of the rich. These are things that we would have refused to give in to if we had been the true heirs of the National Council of the Resistance.









    From 1945, after a dreadful drama [WWII], it was an ambitious
    resurrection of society to which the remaining contingent of the Council
    of the Resistance devoted itself. Let us remember them while creating
    national health and pensions plans such as the Resistance wished, as its
    program stipulated, "a full plan of French national health and social
    security, aimed at assuring all citizens the means of existence whenever
    they are unable to obtain them by a job; a retirement allowing the old
    workers to finish their days with dignity."

    The sources of energy, electricity, and gas, mines, the big banks, were
    nationalized. Now this was as the program recommended: "... the return
    to the nation of big monopolized means of production, fruits of common
    labor, sources of energy, wealth from the mines, from insurance
    companies and from big banks; the institution of a true economic and
    social democracy involving the ousting of the big economic and financial
    fiefdoms from the direction of the economy."

    General interest must dominate over special interest. The just man
    believes that wealth created in the realm of labor should dominate over
    the power of money.

    The Resistance proposed, "a rational organization of the economy
    assuring the subordination of special interests to general interest, and
    the emancipation of 'slaves' of the professional dictatorship that was
    instituted just as in the fascist states," which had used the interim
    [for two years after the war] government of the Republic as an agent.

    A true democracy needs an independent press, and the Resistance
    acknowledged it, demanded it, by defending "the freedom of the press,
    its honor, and its independence from the State, the power of money and
    foreign influence." This is what relieved restrictions on the press from
    1944 on. And press freedom is definitely what is in danger today.

    The Resistance called for a "real possibility for all French children to
    benefit from the most advanced education," without discrimination.
    Reforms offered in 2008 go contrary to this plan. Young teachers, whose
    actions I support, went so far as refusing to apply them, and they saw
    their salaries cut by way of punishment. They were indignant,
    "disobeyed," judging these reforms too far from the ideal of the
    democratic school, too much in the service of a society of commerce and
    not developing the inventive and critical mind enough. 2

    All the foundations of the social conquests of the Resistance are
    threatened today.

    The motive of the Resistance: indignation (Indignez-vous!)

    Some dare to say to us that the State cannot afford the expenses of
    these measures for citizens any more. But how can there be today a lack
    of money to support and extend these conquests while the production of
    wealth has been considerably augmented since the Liberation period when
    Europe was in ruins? On the contrary, the problem is the power of money,
    so much opposed by the Resistance, and of the big, boldfaced, selfish
    man, with his own servants in the highest spheres of the State.

    Banks, since privatized again, have proved to be concerned foremost for
    their dividends and for the very high salaries of their leaders, not the
    general interest. The disparity between the poorest and the richest has
    never been so great, and amassing money, competition, so encouraged.

    The basic motive of the Resistance was indignation!

    We, the veterans of the resistance movements and combat forces of Free
    France, we call on the young generation to live by, to transmit, the
    legacy of the Resistance and its ideals. We say to them: Take our place,
    "Indignez-vous!" [Get angry! or Cry out!].

    The political, economic, intellectual leaders, and the whole society do
    not have to give in, nor allow oppression by an actual international
    dictatorship of the financial markets, which threatens peace and
    democracy.

    I wish for you all, each of you, to have your own motive for
    indignation. It is precious. When something outrages you as I was
    outraged by Nazism, then people become militant, strong, and engaged.
    They join this current of history, and the great current of history must
    continue thanks to each individual. And this current goes towards more
    justice, more freedom, but not this unbridled freedom of the fox in the
    henhouse. The rights contained in the UN Universal Declaration of Human
    Rights of 1948 are just that, universal.

    If you meet somebody who does not benefit from it, feel sorry for them
    but help them to win their rights.

    Two visions of history

    When I try to understand what caused fascism, what made it so we were
    overcome by Hitler and the Vichy [French government that collaborated
    with Hitler], I tell myself that the propertied, with their selfishness,
    were terrifically afraid of Bolshevik revolution. They were allowed to
    lead with their fear.

    But if, today as then, an active minority stands up, it will be enough;
    we shall be the leavening that makes the bread rise. Certainly, the
    experience of a very old person like me, born in 1917, is different from
    the experience of the today's young persons. I often ask professors for
    the opportunity to interact with their students, and I say to them: You
    don't have the same obvious reasons to engage you. For us, to resist was
    not to accept German occupation, defeat. It was comparatively simple.
    Simple as what followed, decolonization. Then the war in Algeria.

    It was necessary that Algeria become independent, it was obvious. As for
    Stalin, we all applauded the victory of the Red Army against the Nazis
    in 1943. But already we had known about the big Stalinist trials of
    1935, and even if it was necessary to keep an ear open towards communism
    to compensate against American capitalism, the necessity to oppose this
    unbearable form of totalitarianism had established itself as an
    obviousness. My long life presented a succession of reasons to outrage
    me.

    These reasons were born less from an emotion than a deliberate
    commitment. As a young student at normal school [teachers college] I was
    very influenced by Sartre, a fellow student. His "Nausea" [a novel],
    "The Wall," [play], and "The Being and Nothingness" [essay] were very
    important in the training of my thought. Sartre taught us, "You are
    responsible as individuals." It was a libertarian message. The
    responsibility of a person can not be assigned by a power or an
    authority. On the contrary, it is necessary to get involved in the name
    of one's responsibility as a human being.

    When I entered the French Ecole Normale Superieure, Ulm Street, in Paris
    in 1939, I entered it as a fervent adherent of the philosopher Hegel,
    and I adhered to the thought of Maurice Merleau-Ponty. His teaching
    explored concrete experience, that of the body and of its relations with
    the senses, one big singular sense faced with a plurality of senses. But
    my natural optimism, which wants all that is desirable to be possible,
    carried me rather towards Hegel. Hegelism interprets the long history of
    humanity as having a meaning: It is the freedom of man progressing step
    by step. History is made of successive shocks, and the taking into
    account of challenges. The history of societies thus advances; and in
    the end, man having attained his full freedom, we have the democratic
    state in its ideal form.

    There is certainly another understanding of history. It says progress is
    made by "freedom" of competition, striving for "always more"; it can be
    as if living in a devastating hurricane. That's what it represented to a
    friend of my father, the man who shared with him an effort to translate
    into German "The Search for Time Lost" [novel] by Marcel Proust.

    That was the German philosopher Walter Benjamin. He had drawn a
    pessimistic view from a painting by the Swiss painter Paul Klee,
    "Angelus Novus," where the face of the angel opens arms as if to contain
    and push back a tempest, which he identifies with progress. For
    Benjamin, who would commit suicide in September 1940 to escape Nazism,
    the sense of history is the overpowering progression of disaster upon
    disaster.

    Indifference: the worst of attitudes

    It is true the reasons to be indignant can seem today less clearly
    related or the world too complex. Who's doing the ordering, who decides?
    It is not always easy to differentiate between all the currents that
    govern us. We are not any more dealing with a small elite whose joint
    activities can be clearly seen. It is a vast world, of which we have a
    feeling of interdependence.

    We live in an interconnectivity as never before. But in this world there
    still are intolerable things. To see them, it is well and necessary to
    look, to search. I say to the young people, Search little, and that is
    what you are going to find. The worst of attitudes is indifference, to
    say "I can do nothing there, I'll just manage to get by." By including
    yourself in that, you lose one of the essential elements that makes the
    human being: the faculty of indignation and the commitment that is a
    consequence of it.

    They [young people] can already identify two big new challenges:

    1. The huge gap which exists between the very poor and the very rich and
    that does not cease increasing. It is an innovation of the 20th and 21st
    centuries. The very poor in the today's world earn barely two dollars a
    day. The new generation cannot let this gap become even greater. The
    official reports alone should provoke a commitment.

    2. Human rights and state of the planet: I had the chance after the
    Liberation to join in the writing of the Universal Declaration of Human
    Rights, adopted by the United Nations organization, on December 10th,
    1948, in Paris at the palace of Chaillot. It was as principal private
    secretary of Henry Laugier, the adjunct general-secretary of the UN, and
    as and secretary of the Commission on Human Rights that I with others
    was led to participate in the writing of this statement. I wouldn't know
    how to forget the role in its elaboration of Ren Cassin, who was
    national commissioner of justice and education in the government of Free
    France in London in 1941 and won the Nobel peace prize in 1968, nor that
    of Pierre Mend s-France in the Economic and Social Council, to whom the
    text drafts we worked out were submitted before being considered by the
    Third Committee (Social, Humanitarian and Cultural) of the General
    Assembly. It was ratified by the 54 member states in session of the
    United Nations, and I certified it as secretary.

    It is to Ren Cassin that we owe the term "universal rights" instead of
    "international rights" as offered by our American and British friends.
    This [universal versus international] was key because, at the end of the
    Second World War, what was at stake was to becomeereignty," which a
    nation can emphasize while it devotes itself to crimes against humanity
    on its own soil. Such was the case of Hitler, who felt himself supreme
    and authorized to carry out a genocide. This universal statement owed
    much to universal revulsion towards Nazism, fascism, and totalitarianism
    -- and owes a lot, in our minds, to the spirit of the Resistance.

    I had a feeling that it was necessary to move quickly so as not to be
    dupes of the hypocrisy that there was in the UN membership, some whom
    claimed these values already won but had no intention at all to promote
    them faithfully -- claimed that we were trying to impose values on them.

    I can not resist the desire to quote Article 15 of the Universal
    Declaration of Human Rights (1948): "Everyone has the right to a
    nationality." Article 22 says, "Everyone, as a member of society, has
    the right to social security and is entitled to realization, through
    national effort and international cooperation and in accordance with the
    organization and resources of each State, of the economic, social and
    cultural rights indispensable for his dignity and the free development
    of his personality." And if this statement has a declarative scope, and
    not statutory, the Declaration nevertheless has played a powerful role
    since 1948. It saw colonized people take it up in their fight for
    independence; it sowed minds in a battle for freedom.

    I note with pleasure that in the course of last decades there has been
    an increase in nongovernmental organizations (NGOs) and social movements
    such as ATTAC (Association for the Taxation of Financial Transactions);

    also FIDH (International Federation for Human Rights) and Amnesty
    International, which are active and competitive. It is obvious that to
    be effective today it is necessary to act in a network, to use all
    modern means of communication.

    To the young people, I say: Look around you, you will find topics that
    justify your indignation facts about treatment of immigrants, of
    "illegal" immigrants, of the Roma [aka Gypsies]. You will find concrete
    situations that lead you to strong citizen action. Search and you shall
    find!

    My indignation regarding Palestine outrages by Israel [Indignez-vous!]

    Today, my main indignation concerns Palestine, the Gaza Strip, and the
    West Bank of Jordan. This conflict is outrageous. It is absolutely
    essential to read the report by Richard Goldstone, of September 2009, on
    Gaza, in which this South African, Jewish judge, who claims even to be a
    Zionist, accuses the Israeli army of having committed "acts comparable
    to war crimes and perhaps, in certain circumstances, crimes against
    humanity" during its "Operation Cast Lead," which lasted three weeks.

    I went back to Gaza in 2009 myself, when I was able to enter with my
    wife thanks to our diplomatic passports, to study first-hand what this
    report said. People who accompanied us were not authorized to enter the
    Gaza Strip. There and in the West Bank of Jordan. We also visited the
    Palestinian refugee camps set up from 1948 by the United Nations agency
    UNRWA, where more than three million Palestinians expelled off their
    lands by Israel wait even yet for a more and more problematical return.

    As for Gaza, it is a roofless prison for one and a half million
    Palestinians. A prison where people get organized just to survive.
    Despite material destruction such as that of the Red Crescent hospital
    by Operation Cast Lead, it is the behavior of the Gazans, their
    patriotism, their love of the sea and beaches, their constant
    preoccupation for the welfare of their children, who are innumerable and
    cheerful, that haunt our memory. We were impressed by how ingeniously
    they face up to all the scarcities that are imposed on them. We saw them
    making bricks, for lack of cement, to rebuild the thousands of houses
    destroyed by tanks. They confirmed to us that there had been 1400 deaths
    including women, children, and oldsters in the Palestinian camp
    during this Operation Cast Lead led by the Israeli army, compared to
    only 50 injured men on the Israeli side. I share conclusions of the
    South African judge. That Jews can, themselves, perpetrate war crimes is
    unbearable. Alas, history does not give enough examples of people who
    draw lessons from their own history. [The author, St phane Hessel, had
    a Jewish father.]

    Terrorism, or exasperation?

    I know that Hamas [party of Palestine freedom fighters], which had won
    the last legislative elections, could not help it that rockets were
    launched on Israeli cities in response to the situation of isolation and
    blockade in which Gazans exist. I think, naturally, that terrorism is
    unacceptable; but it is necessary to acknowledge (from experience in
    France) that when people are occupied by forces immensely superior to
    their own, popular reaction cannot be altogether bloodless.

    Does it serve Hamas to send rockets onto the town of Sd rot [Israeli
    town across the border from Gaza]?

    The answer is no. This does not serve their purpose, but they can
    explain this gesture by the exasperation of Gazans. In the notion of
    exasperation, it is necessary to understand violence as the regrettable
    conclusion of situations not acceptable to those who are subjected them.

    Thus, they can tell themselves, terrorism is a form of exasperation. And
    that this "terrorism" is a misnomer. One should not have to resort to
    this exasperation, but it is necessary to have hope. Exasperation is a
    denial of hope. It is comprehensible, I would say almost natural, but it
    still is not acceptable. Because it does not allow one to acquire
    results that hope can possibly, eventually produce.

    Nonviolence: the way we must learn to follow

    I am persuaded that the future belongs to nonviolence, to reconciliation
    of different cultures. It is by this way that humanity will have to
    enter its next stage. But on this I agree with Sartre: We cannot excuse
    the terrorists who throw bombs, but we can understand them. Sartre wrote
    in 1947: "I recognize that violence in whatever form it may manifest
    itself is a setback. But it is an inevitable setback because we are in a
    world of violence. And if it is true that recourse to violence risks
    perpetuating it, it is also true it is the sure means to make it stop."

    To that I would add that nonviolence is a surer means of making violence
    stop. One can not condone the terrorism, using Sartre or in the name of
    this principle, during the war of Algeria, nor during the Munich Games
    of 1972 the murder attempt made against Israeli athletes. Terrorism is
    not productive, and Sartre himself would end up wondering at the end of
    his life about the sense of violence and doubt its reason for being.

    However, to proclaim "violence is not effective" is more important than
    to know whether one must condemn or not those who devote themselves to
    it. Terrorism is not effective. In the notion of effectiveness, a
    bloodless hope is needed. If there is a violent hope, it is in the poem
    of William Apollinaire "that hope is violent," and not in policy.

    Sartre, in March 1980, within three weeks of his death, declared: "It is
    necessary to try to explain why the world of today, which is horrible,
    is only an instant in a long historical development, that hope always
    has been one of the dominant forces in revolutions and insurrections,
    and how I still feel hope as my conception of the future." [Note 5]

    It is necessary to understand that violence turns its back on hope. It
    is necessary to prefer to it hope, hope over violence. Nonviolence is
    the way that we must learn to follow. So must the oppressors.
    10

    It is necessary to arrive at negotiations to remove oppression; it is
    what will allow you to have no more terrorist violence. That's why you
    should not let too much hate pile up.

    The message of Mandela and Martin Luther King finds all its pertinence
    in the world that overcame the confrontation of ideologies [e.g.,
    Nazism] and conquered totalitarianism [e.g.,Hitler]. It is also a
    message of hope in the capacity of modern societies to overcome
    conflicts by a mutual understanding and a vigilant patience. To reach
    that point is necessarily based on rights, against es, such as the
    military intervention in Iraq.

    We had this economic crisis, but we still did not initiate a new policy
    of development. Also, the summit of Copenhagen against climatic warming
    did not bring about a true policy for the preservation of the planet.

    We are on a threshold between the terror of the first decade and the
    possibilities of following decades. But it is necessary to hope, it is
    always necessary to hope. The previous decade, that of 1990s, had been a
    time of great progress. The United Nations had enough wisdom to call
    conferences such as those of Rio on environment, in 1992, and that of
    Beijing on women, in 1995. In September 2000, on the initiative of the
    general secretary of United Nations, Kofi Annan, the 191 member
    countries adopted a statement on the "eight objectives of the millennium
    for development," by which they notably promised to reduce poverty in
    the world by half before 2015.

    My big regret is that neither Obama nor the European Union has yet
    committed themselves to what should be the provision for a useful forum
    bearing on the fundamental values.

    Conclusion

    How to conclude this call to be indignant? By saying still what, on the
    occasion of the sixtieth anniversary of the program of the National
    Council of the Resistance, we said on March 8th, 2004 -- we veterans of
    the resistance movements and combat forces of Free France (1940-1945) --
    that certainly "Nazism was conquered, thanks to the sacrifice of our
    brothers and sisters of the Resistance and United Nations against
    fascist barbarism. But this threat did not completely disappear, and our
    anger against injustice is ever intact." [Note 6] Also, let us always be
    called in "a truly peaceful insurrection against means of mass
    communication that offer as a vista for our youth only the consumption
    of mass trivia, contempt of the weakest and the culture, a generalized
    amnesia, and the hard competition of all against all."

    To those who will make the 21st century, we say with our affection:

    TO CREATE IS TO RESIST; TO RESIST IS TO CREATE.

    Petter Reinholdtsen: Using NVD and CPE to track CVEs in locally maintained software

    The last few days I have looked at ways to track open security issues here at my work with the University of Oslo. My idea is that it should be possible to use the information about security issues available on the Internet, and check our locally maintained/distributed software against this information. It should allow us to verify that no known security issues are forgotten. The CVE database listing vulnerabilities seem like a great central point, and by using the package lists from Debian mapped to CVEs provided by the testing security team, I believed it should be possible to figure out which security holes were present in our free software collection. After reading up on the topic, it became obvious that the first building block is to be able to name software packages in a unique and consistent way across data sources. I considered several ways to do this, for example coming up with my own naming scheme like using URLs to project home pages or URLs to the Freshmeat entries, or using some existing naming scheme. And it seem like I am not the first one to come across this problem, as MITRE already proposed and implemented a solution. Enter the Common Platform Enumeration dictionary, a vocabulary for referring to software, hardware and other platform components. The CPE ids are mapped to CVEs in the National Vulnerability Database, allowing me to look up know security issues for any CPE name. With this in place, all I need to do is to locate the CPE id for the software packages we use at the university. This is fairly trivial (I google for 'cve cpe $package' and check the NVD entry if a CVE for the package exist). To give you an example. The GNU gzip source package have the CPE name cpe:/a:gnu:gzip. If the old version 1.3.3 was the package to check out, one could look up cpe:/a:gnu:gzip:1.3.3 in NVD and get a list of 6 security holes with public CVE entries. The most recent one is CVE-2010-0001, and at the bottom of the NVD page for this vulnerability the complete list of affected versions is provided. The NVD database of CVEs is also available as a XML dump, allowing for offline processing of issues. Using this dump, I've written a small script taking a list of CPEs as input and list all CVEs affecting the packages represented by these CPEs. One give it CPEs with version numbers as specified above and get a list of open security issues out. Of course for this approach to be useful, the quality of the NVD information need to be high. For that to happen, I believe as many as possible need to use and contribute to the NVD database. I notice RHEL is providing a map from CVE to CPE, indicating that they are using the CPE information. I'm not aware of Debian and Ubuntu doing the same. To get an idea about the quality for free software, I spent some time making it possible to compare the CVE database from Debian with the CVE database in NVD. The result look fairly good, but there are some inconsistencies in NVD (same software package having several CPEs), and some inaccuracies (NVD not mentioning buggy packages that Debian believe are affected by a CVE). Hope to find time to improve the quality of NVD, but that require being able to get in touch with someone maintaining it. So far my three emails with questions and corrections have not seen any reply, but I hope contact can be established soon. An interesting application for CPEs is cross platform package mapping. It would be useful to know which packages in for example RHEL, OpenSuSe and Mandriva are missing from Debian and Ubuntu, and this would be trivial if all linux distributions provided CPE entries for their packages.

    Raphaël Hertzog: 3 ways to not clutter your Debian source package with autogenerated files

    It s quite common that the upstream build system generates/updates some files but does not clean them up properly when you call make clean. In that case, when you rebuild the package a second time in the same tree, the generated Debian source package will contain those changes. You usually don t want those changes. They make your package harder to review because they contain unneeded modifications (either directly in the .diff.gz with the old source format, or in a new patch in debian/patches/debian-changes-<ver> with the 3.0 (quilt) source format). I ll show you 3 ways to avoid this problem. They are all workarounds, the proper fix would be to improve the upstream build system to really clean up the generated files. This is usually possible for files that are created , but it s much more cumbersome for files that are updated (you would have to keep a backup of the original file so that you can restore it). The traditional fix Instead of relying on the upstream build system to do the work, we modify the clean target in debian/rules to remove the files that are left-over. Since debian/rules clean is always called before a source package is built, those generated files are not included as changes compared to what upstream provided. A common work-around: always build from a clean state As you have noted, the problem only happens when you build (source and binaries) twice in a row in the same tree. Some VCS-helper tools always build the Debian package in a temporary tree which is exported from the VCS. This is the case of svn-buildpackage by default and of git-buildpackage if you use its --git-export-dir option. I don t like this solution because it solves the problem only for the maintainer. Anyone else who is working on top of the package without using the same VCS-helper tool would be affected by the problem. A new way to avoid the problem Since it s now possible to store dpkg-source options in the source package itself, we can conveniently have everybody use the --extend-diff-ignore option. It tells dpkg-source to ignore some files when checking whether we have made changes to upstream files. For example if you want to ignore changes made on the files config.sub , config.guess and Makefile you could put this in debian/source/options:
    # Don't store changes on autogenerated files
    extend-diff-ignore = "(^ /)(config\.sub config\.guess Makefile)$"
    
    You need to know a bit about Perl regular expressions since that s what is used by dpkg-source to match the filenames to exclude. Note that this approach always works, even when you can t remove the file. So it saves you having to make a backup of the unmodified file just to be able to restore it before the next build.
    Found it useful? Be sure to not miss other packaging tips (or lessons), click here to subscribe to my free newsletter and get new articles by email.

    No comment Liked this article? Click here. My blog is Flattr-enabled.

    25 January 2011

    Michal &#268;iha&#345;: Gammu has calendar and screenshot support for Symbian

    I've spent second day of Hackweek 6 on more different tasks. First I tried to add some improvements to Series60 applet. First things to fix were crashes on requesting non existing contact or calendar entry. After that I started to improve user experience a bit, for example by making the menu work and contain some useful things. After that I've added new functionality to capture screenshots of the device. So you can see how the applet actually looks like: S60 main screen S60 menu On the Gammu side, I've implemented reading of contacts and todos. No write support yet, that will be done tomorrow. And of course counterpart for the screenshot function. I've also spent some time on writing documentation, so now there is some documentation on setting up the S60 connection or the new gammu screenshot command. All code is is available in our Git repository.

    Filed under: English Gammu Suse 0 comments Flattr this!

    John Goerzen: rdiff-backup, ZFS, and rsync scripts

    rdiff-backup vs. ZFS As I ve been writing about backups, I ve gone ahead and run some tests with rdiff-backup. I have been using rdiff-backup personally for many years now probably since 2002, when I packaged it up for Debian. It s a nice, stable system, but I always like to look at other options for things every so often. rdiff-backup stores an uncompressed current mirror of the filesystem, similar to rsync. History is achieved by the use of compressed backwards binary deltas generated by rdiff (using the rsync algorithm). So, you can restore the current copy very easily a simple cp will do if you don t need to preserve permissions. rdiff-backup restores previous copies by applying all necessary binary deltas to generate the previous version. Things I like about rdiff-backup:
    1. Bandwidth-efficient
    2. Reasonably space-efficient, especially where history is concerned
    3. Easily scriptable and nice CLI
    4. Unlike tools such as duplicity, there is no need to periodically run full backups old backups can be deleted without impacting the ability to restore more current backups
    Things I don t like about it:
    1. Speed. It can be really slow. Deleting 3 months worth of old history takes hours. It has to unlink vast numbers of files and that s pretty much it, but it does it really slowly. Restores, backups, etc. are all slow as well. Even just getting a list of your increment sizes so you d know how much space would be saved can take a very long time.
    2. The current backup copy is stored without any kind of compression, which is not at all space-efficient
    3. It creates vast numbers of little files that take forever to delete or summarize
    So I thought I would examine how efficient ZFS would be. I wrote a script that would replay the rdiff-backup history first it would rsync the current copy onto the ZFS filesystem and make a ZFS snapshot. Then each previous version was processed by my script (rdiff-backup s files are sufficiently standard that a shell script can process them), and a ZFS snapshot created after each. This lets me directly compare the space used by rdiff-backup to that used by ZFS using actual history. I enabled gzip-3 compression and block dedup in ZFS. My backups were nearly 1TB in size and the amount of space I had available for ZFS was roughly 600GB, so I couldn t test all of them. As it happened, I tested the ones that were the worst-case scenario for ZFS: my photos, music collection, etc. These files had very little duplication and very little compressibility. Plus a backup of my regular server that was reasonably compressible. The total size of the data backed up with rdiff-backup was 583 GB. With ZFS, this came to 498GB. My dedup ratio on this was only 1.05 (meaning 5% or 25GB saved). The compression ratio was 1.12 (60GB saved). The combined ratio was 1.17 (85GB saved). Interestingly 498 + 85 = 583. Remember that the data under test here was mostly a worst-case scenario for ZFS. It would probably have done better had I had the time to throw the rest of my dataset at it (such as the 60GB backup of my iPod, which would have mostly deduplicated with the backup of my music server). One problem with ZFS is that dedup is very memory-hungry. This is common knowledge and it is advertised that you need to use roughly 2GB of RAM per TB of disk when using dedup. I don t have quite that much to dedicate to it, so ZFS got VERY slow and thrashed the disk a lot after the ARC grew to about 300MB. I found some tweakables in zfsrc and the zfs command that let me tweak the ARC cache to grow bigger. But the machine in question only has 2GB RAM, and is doing lots of other things as well, so this barely improved anything. Note that this dedup RAM requirement is not out of line with what is expected from these sorts of solutions. Even if I got absolutely stellar dedup ratio of 2:1, that would get me at most 1TB. The cost of buying a 1TB disk is less than the cost of upgrading my system to 4GB RAM, so dedup isn t worth it here. I think the lesson is: think carefully about where dedup makes sense. If you re storing a bunch of nearly-identical virtual machine images the sort of canonical use case for this go for it. A general fileserver well, maybe you should just add more disk instead of more RAM. Then that raises the question: if I don t need dedup from ZFS, do I bother with it at all, or just use ext4 and LVM snapshots? I think ZFS still makes sense, given its built-in support for compression and very fast snapshots LVM snapshots are known to cause serious degradation to write performance once enabled, which ZFS doesn t. So I plan to switch my backups to use ZFS. A few observations on this:
    1. Some testing suggests that the time to delete a few months of old snapshots will be a minute or two with ZFS compared to hours with rdiff-backup.
    2. ZFS has shown itself to be more space-efficient than rdiff-backup, even without dedup enabled.
    3. There are clear performance and convenience wins with ZFS.
    4. Backup Scripts So now comes the question of backup scripts. rsync is obviously a pretty nice choice here and if used with inplace perhaps even will play friendly with ZFS snapshots even if dedup is off. But let s say I m backing up a few machines at home, or perhaps dozens at work. There is a need to automate all of this. Specifically, there s a need to:
      1. Provide scheduling, making sure that we don t hammer the server with 30 clients all at once
      2. Provide for run before jobs to do things like snapshot databases
      3. Be silent on success and scream loudly via emails to administrators on any kind of error and keep backing up other systems when there is an error
      4. Create snapshots and provide an automated way to remove old snapshots (or mount them for reading, as ZFS-fuse doesn t support the .zfs snapshot directory yet)
      To date I haven t found anything that looks suitable. I found a shell script system called rsbackup that does a large part of this, but something about using a script whose homepage is a forum makes me less than 100% confident. On the securing the backups front, rsync comes with a good-looking rrsync script (inexplicably installed under /usr/share/doc/rsync/scripts instead of /usr/bin on Debian) that can help secure the SSH authorization. GNU rush also looks like a useful restricted shell.

    24 January 2011

    Rapha&#235;l Hertzog: Debian is eating its own dog food more than ever

    In its Fast distributions and slow servers article, Joe Zonker Brockmeier explains the difficulties that Fedora has to use its own distribution on their infrastructure and echoes some questions they faced:
    Why wouldn t a Linux distribution project wish to showcase the distribution by hosting its infrastructure using its own system?
    I completely share the underlying assumption. Eating its own dog food is very important if you want to build a Linux distribution and claim with some confidence that it s of quality and usable. Debian does quite well nowadays in that respect. There were times where the mailing list server was using Qmail (non-free at that time, and thus not part of Debian) but that s long gone. We have also seen our build infrastructure relying on software that was not public and not packaged in Debian, but that also is history. The Debian System Administration team (DSA) maintains more than 140 servers running Debian. They mostly run the stable version of Debian but a few test machines are already running Squeeze since a few months (qa.debian.org for example). The Debian admins want to ensure that the next stable release of Debian still has everything they need and that the software they use still work as expected. Big kudos to the DSA team for this choice! I hope we ll be able to continue to live up to those standards for a long time to come. PS: If you want to learn more about the setup that the DSA team uses, head to dsa.debian.org. You ll find all their repositories and some of their internal documentation.
    Subscribe to this blog by RSS, by email or on Facebook.

    12 comments Liked this article? Click here. My blog is Flattr-enabled.

    23 January 2011

    Wouter Verhelst: PMW vs Lilypond

    A few days ago, I discovered From Punched Cards To Flat Screens, the "technical memoirs" of Philip Hazel (of exim and PCRE fame). This document, by itself a very good read, mentioned something about him having written a piece of software for the Acorn RISC OS platform, starting in the early 90s, to typeset music based on a text file; very much the way in which lilypond operates. The document also mentioned that after the demise of Acorn's platform, Philip had ported that application, PMW, to the unix platform. Being interested in music, this had me curious, so I did a bit of investigation. Lilypond is an interesting piece of software, but as I've written before, I do have a few gripes with it. Once you get beyond the basics, the lilypond syntaxis is somewhat counter-intuitive in my opinion, and there are a number of things that are just wrong with it. Upon reading through the first few examples, I quickly learned that most of the major issues that I have with lilypond's syntaxis simply do not exist with PMW, and that it also has quite a number of features which lilypond in its (in the mean time) fairly long history, still does not support. And while lilypond does have a slightly higher amount of output options, that simply does not weigh against the much higher processing speed and much more sensible input syntaxis of PMW. I've made a short comparison of the two, which shows some of their differences, and contains some notes on my opinion of the two. This table may grow in the future... I've only been playing with PMW for a few days now, but I've already decided that I'm going to ditch Lilypond.

    Joachim Breitner: A Mistake in Church s Paper

    For a course at the IIT Bombay on functional programing, I was preparing a presentation on Alonzo Church s theorem, based on his original 1936 paper An Unsolvable Problem of Elementary Number Theory where he first showed that the Entscheidungsproblem is not solvable. In that paper, he states a theorem (Theorem II) If a formula has a normal form [ ] any sequence of reductions of the formula must (if continued) terminate in the normal form . This seems to be wrong. Consider the lambda expression KI , where K=( xy.x), I=( x.x) and =( x.xx)( x.xx). This has a normal form I. But because reduces to , there is a non-terminating sequence KI KI , in contradiction to Church s claim. The same example contradicts his Theorem III: If a formula has a normal form, every well-formed part of it has a normal form. , which is used in the very proof of his main result, Theorem XVIII. There is no proof for Theorem II in this paper. He cites it from the then forthcoming paper Some properties of Conversion by him and J. B. Rosser. There, proofs are given (see Theorem 2 and its Corollary) but they are quite impenetrable to me. So I was searching for some correction paper, or any other discussion of this issue, but could not find any. Does any reader of this blog know more? What happened in that times when a paper had an error in some proof? What would happen now? Or is this not an error after all, but just a subtle difference between the definitions of -calculus as we know and as they introduced it? Unrelated to this question: The professor asked me to write down a summary of (my interpretation of) the importance and impact of Church s paper with regard to G del and Hilbert s program, and how that relates to B hm s theorem. In the spirit of sharing, I have uploaded my thoughts on Church and B hm, comments are welcome. Update: Christian von Essen solved the riddle in a comment to this post: Church only considers lambda abstractions as well-formed when the bound variable actually occurs (freely) in the abstracted term. This does not allow for the K combinator and thus there is no problem.

    22 January 2011

    Lars Wirzenius: Obnam and btree journal dump

    For some years now I have kept a private journal, sort of a private blog. It is mainly related to my work and hobby development activities, though some private life gets poured into it as well. It's a private journal. It is not meant for others to read. It has a dual purpose in life: I find this journalling activity to be beneficial to software development. Since I mainly work alone, at home, it is a bit like having someone to talk to across the desk. However, since it is recorded, it is more practical to grep things for useful stuff later on. Re-reading entries also gives me a wonderful sense of how fast or slow things happen. For example, on January 23 last year, exactly one year ago tomorrow, I wrote:
    That concludes my list of next actions that should be done before obnam is theoretically able to do normal backups.
    I then spent most of last year actually making Obnam be capable of doing backups for real. Recently, I thought that it might be interesting for some to read another programmer's thought processes when designing, writing, and debugging code. For this reason, I've collected some of my journal entries from the past year or so, those related to Obnam and my Python B-tree library (which Obnam uses). I have lightly sanitized them, to protect other people's privacy. Other than that, it's me as raw as you could wish. The dump is on my website. Please be gentle and laugh at me behind my back.

    Next.

    Previous.