# wget http://repos.zend.com/zend.key -O- 2> /dev/null apt-key add -For the task of providing these binaries, I had a pleasure of combining my experience as a member of the Debian PHP team and a Debian Developer with stuff more internal to the PHP development process. Using the already existing Debian packaging enabled me to test more builds scenarios easily (and report problems accoredingly). Hopefully this could also be translated back into providing more experimental packages for Debian and making sure Debian packages are ready for the PHP released after PHP 5.6.
# echo deb [arch=amd64] http://repos.zend.com/zend-server/early-access/phpng/ trusty zend > /etc/apt/sources.list.d/phpng.list
# apt-get update
# apt-get install php5
Major desktop environments such as Xfce or KDE have a built-in
computer suspend feature, but when you use a lighter alternative, things
are a bit more complicated, because basically: only root can suspend
the computer. There used to be a standard solution to that, using a
D-Bus call to a running daemon upowerd. With recent updates,
that solution first
stopped working for obscure reasons, but it could still be configured
back to be usable. With newer updates, it stopped working again, but
this time it seems it is gone for good:
$ dbus-send --system --print-reply \
--dest='org.freedesktop.UPower' \
/org/freedesktop/UPower org.freedesktop.UPower.Suspend
Error org.freedesktop.DBus.Error.UnknownMethod: Method "Suspend" with
signature "" on interface "org.freedesktop.UPower" doesn't existThe reason seems to be that upowerd is not running, because
it no longer provides an init script, only a systemd service. So, if you
do not use systemd, you are left with one simple and stable solution:
defining a sudo rule to start the suspend or hibernation process as
root. In /etc/sudoers.d/power:
%powerdev ALL=NOPASSWD: /usr/sbin/pm-suspend, \
/usr/sbin/pm-suspend-hybrid, \
/usr/sbin/pm-hibernate
That allows members of the powderdev group to
run sudo pm-suspend, sudo pm-suspend-hybrid and sudo pm-hibernate, which can be used with a key
binding manager such as your window manager's or xbindkeys. Simple, efficient, and
contrary to all that ever-changing GizmoKit and whatsitd stuff, it has
worked and will keep working for years.
git-remote-bzr had been packaged (as git-bzr) for Debian since March 2013, but was removed in May 2014 when the remote helpers were removed upstream. There had been a wishlist bug report open since Mar 2013 to get git-remote-hg packaged, and I had submitted a patch, but it was never applied.
Splitting out of these remote helpers upstream has allowed Vagrant Cascadian and myself to pick up these packages and both are now available in Debian.
apt-get install git-remote-hg git-remote-bzr
I ve done various bits with ARMMP and LAVA on this blog already, usually waiting until I ve got all the issues ironed out before writing it up. However, this time I m just going to do a dump of where it s at, how it works and what can be done.
I m aware that LAVA can seem mysterious at first, the package description has improved enormously recently, thanks to exposure in Debian: LAVA is a continuous integration system for deploying operating systems onto physical and virtual hardware for running tests. Tests can be simple boot testing, bootloader testing and system level testing, although extra hardware may be required for some system tests. Results are tracked over time and data can be exported for further analysis.
The LAVA documentation has a glossary of terms like result bundle and all the documentation is also available in the lava-server-doc package.
The goal is to validate the dtbs built for the Debian ARMMP kernel. One of the most accessible ways to get the ARMMP kernel onto a board for testing is tftp using the Debian daily DI builds. Actually using the DI initrd can come later, once I ve got a complete preseed config so that the entire install can be automated. (There are some things to sort out in LAVA too before a full install can be deployed and booted but those are at an early stage.) It s enough at first to download the vmlinuz which is common to all ARMMP deployments, supply the relevant dtb, partner those with a minimal initrd and see if the board boots.
The first change comes when this process is compared to how boards are commonly tested in LAVA with a zImage or uImage and all/most of the modules already built in. Packaged kernels won t necessarily raise a network interface or see the filesystem without modules, so the first step is to extend a minimal initramfs to include the armmp modules.
apt install pax u-boot-toolsThe minimal initramfs I selected is one often used within LAVA:
wget http://images.armcloud.us/lava/common/linaro-image-minimal-initramfs-genericarmv7a.cpio.gz.u-bootIt has a u-boot header added, as most devices using this would be using u-boot and this makes it easier to debug boot failures as the initramfs doesn t need to have the header added, it can simply be downloaded to a local directory and passed to the board as a tftp location. To modify it, the u-boot header needs to be removed. Rather than assuming the size, the u-boot tools can (indirectly) show the size:
$ ls -l linaro-image-minimal-initramfs-genericarmv7a.cpio.gz.u-boot -rw-r--r-- 1 neil neil 5179571 Nov 26 2013 linaro-image-minimal-initramfs-genericarmv7a.cpio.gz.u-boot $ mkimage -l linaro-image-minimal-initramfs-genericarmv7a.cpio.gz.u-boot Image Name: linaro-image-minimal-initramfs-g Created: Tue Nov 26 22:30:49 2013 Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 5179507 Bytes = 5058.11 kB = 4.94 MB Load Address: 00000000 Entry Point: 00000000Referencing http://www.omappedia.com/wiki/Development_With_Ubuntu, the header size is the file size minus the data size listed by mkimage.
5179571 - 5179507 == 64So, create a second file without the header:
dd if=linaro-image-minimal-initramfs-genericarmv7a.cpio.gz.u-boot of=linaro-image-minimal-initramfs-genericarmv7a.cpio.gz skip=64 bs=1decompress it
gunzip linaro-image-minimal-initramfs-genericarmv7a.cpio.gzNow for the additions
dget http://ftp.uk.debian.org/debian/pool/main/l/linux/linux-image-3.14-1-armmp_3.14.12-1_armhf.deb(Yes, this process will need to be repeated when this package is rebuilt, so I ll want to script this at some point.)
dpkg -x linux-image-3.14-1-armmp_3.14.12-1_armhf.deb kernel-dir cd kernel-dirPulling in the modules we need for most needs, comes thanks to a script written by the Xen folks. The set is basically disk, net, filesystems and LVM.
find lib -type d -o -type f -name modules.\* -o -type f -name \*.ko \( -path \*/kernel/lib/\* -o -path \*/kernel/crypto/\* -o -path \*/kernel/fs/mbcache.ko -o -path \*/kernel/fs/ext\* -o -path \*/kernel/fs/jbd\* -o -path \*/kernel/drivers/net/\* -o -path \*/kernel/drivers/ata/\* -o -path \*/kernel/drivers/scsi/\* -o -path \*/kernel/drivers/md/\* \) pax -x sv4cpio -s '%lib%/lib%' -d -w >../cpio gzip -9f cpiooriginal Xen script (GPL-3+) I found it a bit confusing that
i is used for extract by cpio, but that s how it is. Extract the minimal initramfs to a new directory:
sudo cpio -id < ../linaro-image-minimal-initramfs-genericarmv7a.cpioExtract the new cpio into the same location. (Yes, I could do this the other way around and pipe the output of find into the already extracted location but that's for when I get a script to do this):
sudo cpio --no-absolute-filenames -id < ../ramfs/cpioCPIO Manual Use newc format, the new (SVR4) portable format, which supports file systems having more than 65536 i-nodes. (4294967295 bytes)
find . cpio -H newc -o > ../armmp-image.cpio... and add the u-boot header back:
mkimage -A arm -T ramdisk -C none -d armmp-image.cpio.gz debian-armmp-initrd.cpio.gz.u-bootNow what? Now send the combination to LAVA and test it. Results bundle for a local LAVA test job using this technique. (18k) submission JSON - uses
file:// references, so would need modification before being submitted to LAVA elsewhere.
complete log of the test job (72k)
Those familiar with LAVA will spot that I haven't optimised this job, it boots the ARMMP kernel into a minimal initramfs and then expects to find apt and other tools. Actual tests providing useful results would use available tools, add more tools or specify a richer rootfs.
The tests themselves are very quick (the job described above took 3 minutes to run) and don't need to be run particularly often, just once per board type per upload of the ARMMP kernel. LAVA can easily run those jobs in parallel and submission can be automated using authentication tokens and the lava-tool CLI. lava-tool can be installed without lava-server, so can be used in hooks for automated submissions.
Extensions
That's just one DTB and one board. I have a range of boards available locally:
* iMX6Q Wandboard (used for this test)lava-server and have a go at running test jobs based on those so that we start to build data about as many of the variants as possible.
(If anyone in DI fancies producing a suitable initrd with modules alongside the DI initrd for armhf builds, or if anyone comes up with a patch for DI to do that, it would help enormously.)
This will at least help Debian answer the question of what the Debian ARMMP package can actually support.
For help on LAVA, do read through the documentation and then come to us at #linaro-lava or the linaro-validation mailing list or file bugs in Debian: reportbug lava-server.
, so you can ask me.
I'm giving one talk on the LAVA software and there will be a BoF on validation and CI in Debian.
fel and usb-boot tools are named sunxi-fel and sunxi-usb-boot
respectively but otherwise can be used in the normal way described on
the sunxi wiki pages.
One enhancement I made to the Debian version of usb-boot is to
integrate with the u-boot packages to allow you to easily
FEL boot any sunxi platform supported by the Debian packaged version
of u-boot (currently only Cubietruck, more to come I hope). To make
this work we take advantage of Multiarch to install the
armhf version of u-boot (unless
your host is already armhf of course, in which case just install the
u-boot package):
# dpkg --add-architecture armhf
# apt-get update
# apt-get install u-boot:armhf
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
u-boot:armhf
0 upgraded, 1 newly installed, 0 to remove and 1960 not upgraded.
Need to get 0 B/546 kB of archives.
After this operation, 8,676 kB of additional disk space will be used.
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
Selecting previously unselected package u-boot:armhf.
(Reading database ... 309234 files and directories currently installed.)
Preparing to unpack .../u-boot_2014.04+dfsg1-1_armhf.deb ...
Unpacking u-boot:armhf (2014.04+dfsg1-1) ...
Setting up u-boot:armhf (2014.04+dfsg1-1) ...
With that done FEL booting a cubietruck is as simple as starting the
board in FEL mode (by holding down the FEL button when powering on)
and then:
# sunxi-usb-boot Cubietruck -
fel write 0x2000 /usr/lib/u-boot/Cubietruck_FEL/u-boot-spl.bin
fel exe 0x2000
fel write 0x4a000000 /usr/lib/u-boot/Cubietruck_FEL/u-boot.bin
fel write 0x41000000 /usr/share/sunxi-tools//ramboot.scr
fel exe 0x4a000000
Which should result in something like this on the Cubietruck's serial
console:
U-Boot SPL 2014.04 (Jun 16 2014 - 05:31:24)
DRAM: 2048 MiB
U-Boot 2014.04 (Jun 16 2014 - 05:30:47) Allwinner Technology
CPU: Allwinner A20 (SUN7I)
DRAM: 2 GiB
MMC: SUNXI SD/MMC: 0
In: serial
Out: serial
Err: serial
SCSI: SUNXI SCSI INIT
Target spinup took 0 ms.
AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst
Net: dwmac.1c50000
Hit any key to stop autoboot: 0
sun7i#
As more platforms become supported by the u-boot packages you should
be able to find them in /usr/lib/u-boot/*_FEL.
There is one minor inconvenience which is the need to run
sunxi-usb-boot as root in order to access the FEL USB device. This
is easily resolved by creating /etc/udev/rules.d/sunxi-fel.rules
containing either:
SUBSYSTEMS=="usb", ATTR idVendor =="1f3a", ATTR idProduct =="efe8", OWNER="myuser"
or
SUBSYSTEMS=="usb", ATTR idVendor =="1f3a", ATTR idProduct =="efe8", GROUP="mygroup"
To enable access for myuser or mygroup respectively. Once you have
created the rules file then to enable:
# udevadm control --reload-rules
As well as the FEL mode tools the packages also contain a
FEX (de)compiler. FEX is
Allwinner's own hardware description language and is used with their
Android SDK kernels and the fork of that
kernel maintained by the
linux-sunxi project. Debian's kernels follow mainline and therefore
use Device Tree.
Modern desktop environments like GNOME and KDE involving a lot of mousing around and I much prefer using the keyboard where I can. This is why I switched to the Ion tiling window manager back when I interned at Net Integration Technologies and kept using it until I noticed it had been removed from Debian.
After experimenting with awesome for 2 years and briefly considering xmonad , I finally found a replacement I like in i3. Here is how I customized it and made it play nice with the GNOME and KDE applications I use every day.
dconf write /org/gnome/settings-daemon/plugins/cursor/active false
xautolock -time 30 -locker "gnome-screensaver-command --lock" &
to lock the screen using gnome-screensaver after 30 minutes of inactivity.
I can also trigger it manually using the following shortcut defined in my ~/.i3/config:
bindsym Ctrl+Mod1+l exec xautolock -locknow
~/.i3/config:
# volume control
bindsym XF86AudioLowerVolume exec /usr/bin/pactl set-sink-volume @DEFAULT_SINK@ -- '-5%'
bindsym XF86AudioRaiseVolume exec /usr/bin/pactl set-sink-volume @DEFAULT_SINK@ -- '+5%'
# brightness control
bindsym XF86MonBrightnessDown exec xbacklight -steps 1 -time 0 -dec 5
bindsym XF86MonBrightnessUp exec xbacklight -steps 1 -time 0 -inc 5
bindsym XF86AudioMute exec /usr/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle
# show battery stats
bindsym XF86Battery exec gnome-power-statistics
to make volume control, screen brightness and battery status buttons work as expected on my laptop.
These bindings require the following packages:
~/.i3/config:
bindsym $mod+u exec /home/francois/bin/toggle-xkbmap
/etc/systemd/login.conf:
HandleLidSwitch=lock
Instead, when I want to suspend to ram, I use the following keyboard shortcut:
bindsym Ctrl+Mod1+s exec /home/francois/bin/s2ram
which executes a custom suspend script to clear the clipboards (using xsel), flush writes to disk and lock the screen before going to sleep.
To avoid having to type my sudo password every time pm-suspend is invoked, I added the following line to /etc/sudoers:
francois ALL=(ALL) NOPASSWD: /usr/sbin/pm-suspend
for_window [class="VidyoDesktop"] floating enable
You can get the Xorg class of the offending application by running this command:
xprop grep WM_CLASS
before clicking on the window.
assign [class="Pidgin"] 1
eDP1) to the external monitor (DP2) when I dock my laptop:
# bind workspaces to the right monitors
workspace 1 output DP2
workspace 2 output DP2
workspace 3 output DP2
workspace 4 output DP2
workspace 5 output DP2
workspace 6 output eDP1
You can get these output names by running:
xrandr --display :0 grep " connected"
Finally, because X sometimes fail to detect my external monitor when docking/undocking, I also wrote a script to set the displays properly and bound it to the appropriate key on my laptop:
bindsym XF86Display exec /home/francois/bin/external-monitor
I spent many, many hours trying to understand why I couldn t have both nova console-log showing me the output of the log, AND have the OpenStack dashboard (eg: horizon) console to work at the same time. Normally, this is done very easily, by passing multiple times the console= parameter to the Linux kernel as follow:
console=tty0 console=ttyS0,115200But it never worked. Always, it s the last console= thing that was taken into account by sysvinit (or, shall I say, bootlogd). Spending hours trying to figure out what would be the correct kernel command to pass didn t help. Then this week-end, by the magic pure chance of being subscribed to the sysvinit bug reports, I have finally found out. We ve had this bug in Debian for more than 10 years: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=181756 And it has the patch! It just feels so lame that the issue has been pending since 2003, and with a patch since 2006, and nobody even tried to have it enter Debian. I tried the Wheezy patch in the above bug report, and then tadaaaaaa! I finally had both the nova console-log (eg: ttyS0) console output, and the interactive tty0 to work on my Debian cloud image. I have produced a fixed version of the sysvinit package for Wheezy, if anyone wants to try it: http://archive.gplhost.com/debian/pool/juno-backports/main/s/sysvinit/ This doesn t only affect only the cloud images use case. Let s say you have a server. If it s a modern server, probably you have IPMI 2.0 on it. While having access through the integrated KVM over IP may be nice, seeing the boot process through the serial console redirection is often a lot more snappy than the (often VNC based) video output, plus it wouldn t require Java. Too often, Java a requirement for these nasty IPMI web interface (that s the case for at least: Dell DRAC, Supermicro IMPI, and HP iLO). Well, it should now be possible to just use ipmitools to debug the server boot process or to go fix stuff in the single user interactive shell, AND keep the normal video output! :) But keeping this fix private doesn t help much. I would really love to get this fixed within Debian. So I have sent the patch (which needed a very small rebase) in the Git repository of sysvinit (see http://deb.li/3YxUD). I of course tested it in Sid too. Though I tested only under a Xen virtual machine, I see no reason why it would work there and not elsewhere. That being said, I would welcome more testing, given the high profile of sysvinit (everyone uses/needs it, and I wouldn t like to carry alone the unhappiness of having no boot log). Please do test it from the sysvinit git, before it s even uploaded to Sid. Also, these days, sysvinit gets often uploaded to Experimental first. It will probably also be the case for version 2.88dsf-56. If it works well and nobody complains about the patch, maybe it d be worth adding it to Wheezy as well (though that decision is of course left to the release team once the fix reaches Jessie).
Friday was my last day at Collabora, the awesome Open Source consultancy in Cambridge. I d been there more than three years, and it was time for a change.
As luck would have it, that change came in the form of a job offer 3 months ago from my long-time friend in Open Source, Miguel de Icaza. Monday morning, I fly out to Xamarin s main office in Boston, for just over a week of induction and face time with my new co workers, as I take on the title of Release Engineer.
My job is to make sure Mono on Linux is a first-class citizen, rather than the best-effort it s been since Xamarin was formed from the ashes of the Attachmate/Novell deal. I m thrilled to work full-time on what I do already as community work including making Mono great on Debian/Ubuntu and hope to form new links with the packer communities in other major distributions. And I m delighted that Xamarin has chosen to put its money where its mouth is and fund continued Open Source development surrounding Mono.
If you re in the Boston area next week or the week after, ping me via the usual methods!
I recently bought a Suunto Ambit 2 sport watch for my running
activities, replacing my good old Garmin ForeRunner 405 whose battery
life wasn't longer in sync with the length of some of my runs...
Ambit 2 watches have up to 50 hours autonomy, which is great for long
races, as well as a barometric altitude recording, which is way more
precise that GPS-based altitude recording. Both these are keys for
mountain running, indeed...
Sadly, Suunto only provides software for Windows and the software is
mandatory to use in order to sync the watch logs and settings with
Movescount.com, the Suunto web site. Even more: any change to the
watch settings has to be done through Movescount, which means that
without software, you can't really use the watch....:-(
Thankfully, a few people have worked on an "OpenAmbit" project
(www.openambit.org) that's aimed at dealing with this and provide
Linux users with a way to sync their watches without requiring a
Windows computer.
And, as you may imagine, I wanted to package it for Debian. Indeed,
some packaging work had already been done for Ubuntu, in a PPA, by
Dominik Stadler at
https://launchpad.net/~dominik-stadler/+archive/dsta-trusty-ppa. Still,
I wanted this to go the preferred way of the official archive for the
software to get more visibility.
Finally, after a few failures (doh, how picky are our FTPmasters about
licenses.....which is a Good Thing!), OpenAmbit landed in unstable one
week ago. This is as of now the 0.2 version, that doesn't work with
the most recent versions of Suunto firmwares. However, a 0.2+20140606
version is on its way and....it works with my watch..:-)
So, Yet Another Success for the pkg-running-devel packaging team in
Debian, once again proving that Debian developers are also deeply
interested in physical activities..:-)
And, also, this is a proof that I'm not yet only running and no longer
working for Debian....
So I recently announced my intention to rejoin the Debian project, having been a member between 2002 & 2011 (inclusive).
In the past I resigned mostly due to lack of time, and what has changed is that these days I have more free time - primarily because my wife works in accident & emergency and has "funny shifts". This means we spend many days and evenings together, then she might work 8pm-8am for three nights in a row, which then becomes Steve-time, and can involve lots of time browsing reddit, coding obsessively, and watching bad TV (currently watching "Lost Girl". Shades of Buffy/Blood Ties/similar. Not bad, but not great.)
My NM-progress can be tracked here, and once accepted I have a plan for my activities:
Dear lazyweb,
reprepro is a great tool. I hand
it some configuration and a bunch of packages, and it creates the
necessary directory structure, moves the packages to the right location,
and generates a (signed) Debian package repository. Obviously it would
be possible to all that reprepro does by hand by calling things
like cp and dpkg-scanpackages and gpg and other things by
hand but it's easy to forget a step when doing so, and having a
tool that just does things for me is wonderful. The fact that it does so
only on request (i.e., when I know something has changed, rather than
"once every so often") is also quite useful.
At work, I currently need to maintain a bunch
of package repositories. The Debian package archives there are
maintained with reprepro, but I currently maintain the RPM archives
pretty much by hand: create the correct directories, copy the right
files to the right places, run createrepo over the correct directories
(and in the case of the OpenSUSE repository, also run gpg), and a
bunch of other things specific to our local installation. As if to prove
my above point, apparently I forgot to do a few things there, meaning,
some of the RPM repositories didn't actually work correctly, and my
testing didn't catch on.
Which makes me wonder how RPM package repositories are usually
maintained. When one needs to maintain just a bunch of packages for a
number of servers, well, running createrepo manually isn't too much of
a problem. When it gets beyond own systems, however, and when you need
to support multiple builds for multiple versions of multiple
distributions, having to maintain all those repositories by hand is
probably not the best idea.
So, dear lazyweb: how do large RPM repositories maintain state of the
packages, the distributions they belong to, and similar things?
Please don't say "custom scripts"
For quite some time, I'm working on new UI for Weblate. As the time is always limited, the progress is not that fast as I would like to see, but I think it's time to show the current status to wider audience.
Almost all pages have been rewritten, the major missing parts are zen mode and source strings review. So it's time to play with it on our demo server. The UI is responsive, so it works more or less on different screen sizes, though I really don't expect people to translate on mobile phone, so not much tweaking was done for small resolutions.
Anyway I'd like to hear as much feedback as possible :-).
Filed under: English phpMyAdmin SUSE Weblate 2 comments Flattr this!
Achievement unlocked: I have a new GPG key:
pub 4096R/7E4AF4A3 2014-07-13 [caduca: 2016-07-12]
Fingerprint = 445E 3AD0 3690 3F47 E19B 37B2 F226 7446 7E4A F4A3
uid Laura Arjona Reina <laura.arjona@upm.es>
uid Laura Arjona Reina <larjona@fsfe.org>
uid Laura Arjona Reina <larjona99@gmail.com>
sub 3072R/CC706B74 2014-07-13 [expires: 2016-07-12]
sub 3072R/7E51465F 2014-07-13 [expires: 2016-07-12]
sub 4096R/74C23D6E 2014-07-13 [expires: 2016-07-12]
The master key is 4096 bit, stored in a safe place, and 2 subkeys 3072 bit, stored in an FSFE Smartcard (I cannot store 4096 keys there).
I have carefully used the FSFE SmartCard Howto and Creating the perfect GPG keypair by Alex Cabal for strenghtening hash preferences and creating revocation certificate.
It seems everything works as intended. Passphrase is strong and this time I will not forget it. As first celebration, 1/2 lt icecream is waiting for me after dinner :)
People knowing me and around Madrid, please send me an encrypted mail as test or normal communication, and ping me to meet and sign keys :)
One more step towards involvement in Debian and free software, controlling my digital life and communications, and becoming familiar with these technologies so I can teach them to my son as the natural way .
Yay!
Filed under: My experiences and opinion, Tools Tagged: Contributing to libre software, Debian, encryption, English, Free Software, gpg, libre software, Moving into free software, mswl-cases
I put out the call for nominations for the 2014 Software in the Public Interest (SPI) Board election last week. At this point I haven't yet received any nominations, so I'm mentioning it here in the hope of a slightly wider audience. Possibly not the most helpful as I would hope readers who are interested in SPI are already reading spi-announce. There are 3 positions open this election and it would be good to see a bit more diversity in candidates this year. Nominations are open until the end of Tuesday July 13th.
The primary hard and fast time commitment a board member needs to make is to attend the monthly IRC board meetings, which are conducted publicly via IRC (#spi on
the OFTC network). These take place at 20:00 UTC on the second Thursday of every month. More details, including all past agendas and minutes, can be found at http://spi-inc.org/meetings/. Most of the rest of the board communication is carried out via various mailing lists.
The ideal candidate will have an existing involvement in the Free and Open Source community, though this need not be with a project affiliated with SPI.
Software in the Public Interest (SPI, http://www.spi-inc.org/) is a non-profit organization which was founded to help organizations develop and distribute open hardware and software. We see it as our role to handle things like holding domain names and/or trademarks, and processing donations for free and open source projects, allowing them to concentrate on actual development.
Examples of projects that SPI helps includes Debian, LibreOffice, OFTC and PostgreSQL. A full list can be found at http://www.spi-inc.org/projects/.
It seems to be a great time for monitoring solutions. Some of you may have noticed that Icinga has released it's first stable version of the completely redeveloped Icinga 2.
After several changes in the recent past, where the Team maintaining the Plugins used for several Monitoring solutions was busy moving everything to new infrastructure, they are now back on track. The recent development milestone is reached and a call for testing was also sent out.
In the meanwhile I prepared the packaging for this bigger move. The packages are now moved to the source package monitoring-plugins, the whole packaging changes can be observed in the changelog. With this new release we have also some NEWS, which might be useful to check. Same counts for upstream NEWS.
You can give the packages a go and grab them from my 'unstable' and 'wheezy-backports' repositories at http://ftp.cyconet.org/debian/. Right after the stable release, the packages will be uploaded into debian unstable, but might get delayed by the NEW queue due the new package names.
# Set the firmware version (New means >= 2.0) [default: no; legal: yes, no] NewFirmware=noBack to the moving target. In LCDd.conf, imon device file parameter is declared this way:
# Select the output device to use Device=/dev/lcd0This means that device is a string where the default value is /dev/lcd0. Which is wrong once the special udev rule provided with Debian packages is activated. With this rule, the default value must be /dev/lcd-imon. To fix this problem, a special comment is added in the Debian version of LCDd.conf to tune further the properties of the device parameter:
# select the device to use # % # default~ # compute # use_eval=1 # formula="my $l = '/dev/lcd-imon'; -e $l ? $l : '/dev/lcd0';" # allow_override=1 - # warn_if:not_lcd_imon # code="my $l = '/dev/lcd-imon';defined $_ and -e $l and $_ ne $l ;" # msg="imon device does not use /dev/lcd-imon link." # fix="$_ = undef;" # warn_unless:found_device_file # code="defined $_ ? -e : 1" # msg="missing imon device file" # fix="$_ = undef;" # - % Device=/dev/lcd0This special comment between % and % follows the syntax of Config::Model::Loader. A small configuration model is declared there to enhance the model generated from LCDd.conf file. Here are the main parts:
default~ suppress the default value of the device parameter declared in the original LCDd.conf (i.e. /dev/ldcd0 )compute and the 3 lines below computes a default value for the device file. Since use_eval is true, the formula is evaluated as Perl code. This code will return /dev/lcd-imon if this file is found. Otherwise, /dev/lcd0 is returned. Hence, either /dev/lcd-imon or /dev/lcd0 will be used a as default value. allow_override=1 lets the user override this computed valuewarn_if and the 3 lines below test the configured device file with the Perl instructions provided by the code parameter. There, the device value is available in the $_ variable. This code will return true if /dev/lcd-imon exists and if the configured device does not use it. This will trigger a warning that will show the specified message.warn_unless and the 3 lines below warns the user if the configured device file is not found.warn_unless and warn_if parts, the fix code snippet is run when by the command cme fix lcdproc and is used to repair the warning condition. In this case, the fix consists in resetting the device configuration value so the computed value above can be used.
cme fix lcdproc is triggered during package post install script installed by dh_cme_upgrade.
Come to think of it, generating a configuration model from a configuration file can probably be applied to other projects: for instance, php.ini and kdmrc are also shipped with detailed comments. May be I should make a more generic model generator from the example used to generate lcdproc model
Well, I will do it if people show interest. Not in the form yeah, that would be cool , but in the form, yes, I will use your work to generate a configuration model for project [...] . I ll let you fill the blank ;-)Next.