Planet Debian

Subscribe to Planet Debian feed
Planet Debian -
Updated: 2 hours 27 min ago

Daniel Pocock: xTupleCon WebRTC talk schedule change, new free event

10 September, 2014 - 02:51

As mentioned in my earlier blog, I'm visiting several events in the US and Canada in October and November. The first of these, the talk about WebRTC in CRM at xTupleCon, has moved from the previously advertised timeslot to Wednesday, 15 October at 14:15.

WebRTC meeting, Norfolk, VA

Later that day, there will be a WebRTC/JavaScript meetup in Norfolk hosted at the offices of xTuple. It is not part of xTupleCon and free to attend. Please register using the Eventbrite page created by xTuple.

This will be a hands on event for developers and other IT professionals, especially those in web development, network administration and IP telephony. Please bring laptops and mobile devices with the latest versions of both Firefox and Chrome to experience WebRTC.

Free software developers at xTupleCon

If you do want to attend xTupleCon itself, please contact xTuple directly through this form for details about the promotional tickets for free software developers.

Holger Levsen: 20140819-lts-august-2014

10 September, 2014 - 00:01
Debian LTS - feedback about the feedback from my LTS talk at DebConf14

So, I'm more or less back from dc14 and today, five days later, I think I might have mostly overcome jetlag. Probably...

So, at DebConf14 I gave a talk about LTS and while I'm sorry that I was that tired, I'm more or less happy how the talk went. Thankfully at least I was calm and relaxed.

There are a couple of things I learned from the talk: a.) LTS has been really really perceived well b.) it fits a demand c.) people already take it for granted (eg plan for Wheezy LTS) d.) people expect the same non-intrusive changes as currently done for security updates.

To explain the last point: when I explained the - so far - rather theoretical problem that ''squeeze-lts'' has no gatekeeper mechanisms whatsoever (eg no ''proposed-updates'', no NEW queue..) the reaction in the audience was basically "something like this should exist, else how can we deploy this in large scale / on important setup?!". Also currently there is no, well-documented, easily to be found policy for what kind of updates are acceptable. I said that we basically follow the same rules as there are for debian-security updates, but this should really be documented properly. This doesn't seem very hard to fix, just like many things it "just" needs someone to do the work.

IOW: we explain how to use LTS, we explain how to contribute to LTS (through uploads or financially) but we lack a simple explaination what LTS is and what kind of updates to expect. It's kinda self evident, but only kinda.

So since giving the talk I changed one thing in my personal usage of LTS: I don't use my personal LTS repo anymore, where I made sure only good packages got in. This is for two reasons: a.) I had too add new packages too often and b.) if it really is a problem that LTS has no gatekeeping mechanism (which I'm not sure anymore it is, after all, the updates are prepared by reasonable people with a common goal...) then I want to suffer this first hand, so I can build solutions which benefit everyone, not just me. That personal LTS repo only helped me.

On the technical side I prepared five DLAs, for lzo2, libwpd, squid3, lua5.1 and bind9. Not much to see here, they all were very smooth. I still enjoyed the challenge of digging in unknown sourcecode, as described in my previous post.

Then more interestingly, and with the help of Raphael Geissert and Salvatore Bonaccorso I fixed the security-tracker to also know about oldstable, after waiting for more than 8 weeks to someone else doing it. I'm very glad that this is done now, as without it was really tedious to check which issues were applying to oldstable.

Oh, and another afterthought from giving the talk: currently at least parts of the security-tracker codebase assume that there won't ever be support for oldoldstable, but once jessie has been released this won't be true anymore. Then we will support stable, oldstable and oldoldstable. And oldstable will be wheezy, not squeeze. We have something like 6 months to fix this, hopefully we won't have much more time... Oh, and surely there are other places than just the security-tracker which will need to be taught about this.

Ana Beatriz Guerrero Lopez: DebConf14 and ten years contributing to Debian

9 September, 2014 - 04:59

It has been one week since I’m back from DebConf14 and I’m still recovering and catching up with things. DebConf14 has been amazing, it has been great to be back after missing it for two years. Thanks a lot to everybody who helped to make it real. On my side, I helped a bit in the talks team.

During DebConf14, I got the opportunity to discuss with Rene Mayorga about the MIA work-flow and we also got some feedback in the MIA BoF. We have plenty of ideas to implement and we’re aiming to improve things during this next year.

This summer has been also 10 years since I started contributing to Debian. It’s hard to believe. Ten years ago I barely knew where to start helping and now I have an endless TODO list of things I would like to do. And always during DebConf this list seems to grow ten times faster than usual. Thankfully, also motivation increases a lot :)

Joey Hess: propellor is d-i 2.0

8 September, 2014 - 17:32

I think I've been writing the second system to replace d-i with in my spare time for a couple months, and never noticed.

I'm as suprised as you are, but consider this design:

  • Installation system consists of debian live + haskell + propellor + web browser.

  • Entire installation UI consists of a web-based (and entirely pictographic and prompt based, so does not need to be translated) selection of the installation target.

  • Installation target can be local disk, remote system via ssh (wiping out crufty hacked-up pre-installed debian), local VM, live ISO, etc.

  • Really, no other questions. Not even user name/password! The installed system will only allow login via the same method that was used to install it. So a locally installed system will accept console/X login with no password and then a forced password change. Or a system installed via ssh will only allow login using the same ssh key that was used to install it.

  • The entire installation process consists of a disk format, followed by debootstrap, followed by running propellor in the target system. This also means that the installed system includes a propellor config file which now describes the properties of the system as installed (so can be edited to tweak the installation, or reused as starting point for next installation).

  • Users who want to configure installation in any way write down properties of system using a simple propellor config file. I suppose some people still use more than one partiton or gnome or some such customization, so they'd use:

main :: IO
main = Installer.main
    & Installer.partition First "/boot" Ext3 (MiB 256)
    & Installer.partition Next "/" Ext4 (GiB 5)
    & Installer.partition Next "/home" Ext4 FreeSpace
    & Installer.grubBoots "hd0"
    & os (System (Debian Stable) "amd64")
    & Apt.stdSourcesList
    & Apt.installed ["task-gnome-desktop"]
  • The installation system is itself built using propellor. A free feature given the above design, so basically all it will take to build an installation iso is this code:
main :: IO
main = Installer.main
    & CdImage "installer.iso"
    & os (System (Debian Stable) "amd64")
    & Apt.stdSourcesList
    & Apt.installed ["task-xfce-desktop", "ghc", "propellor"]
    & User.autoLogin "root"
    & User.loginStarts "propellor --installer"
  • Propellor has a nice display of what it's doing so there is no freaking progress bar.

Well, now I know where propellor might end up if I felt like spending a month and adding a few thousand lines of code to it.

Jaldhar Vyas: Debconf 14 - Days 1 and 2

8 September, 2014 - 11:47

Unfortunately I was not able to attend debconf this year but thanks to the awesome video team the all the talks are available for your viewing pleasure.

In order to recreate an authentic Portland experience, I took my laptop into the shower along with a vegan donut and had my children stand outside yelling excerpts from in whiny Canadianesque accents. Here are some notes I took as I watched the talks.

Welcome Talk
  • Why is everyone on stage wearing shorts? Is this a thing now?
  • Langasek is pronounced with a 'sh' I did not know that.
  • Kees is pronounced 'case' I also did not know that.
  • Steve missed a good opportunity for a "Who moved my cheese?" joke. (Hey its not any more obscure than the "white Chevy Nova" joke.)
  • A well-deserved award to Russ Allbery from some of the UK people for being the voice of reason on the mailing lists. See Vincent Sanders blog for details.

Debian in the Dark Ages of Free software - Stefan Zacchiroli
  • More shorts. I am starting to feel overdressed.
  • Stefan reminisces about how he got involved in Free Software and his philosophy of the same. A good introduction for anyone wondering what
    makes a Debian hacker tick.
  • We should be concerned about software freedom in the new "cloud" environments. Debian can play an important role in this by making it really simple for
    users to set up their own cloud environments. My take: the focus should
    be on free standards and protocols. The power that Google, Facebook etc.
    have is drastically reduced if it is easy to jump ship.
Weapons of the Geek - Gabriella Coleman
  • pro: no shorts con: womens slacks
  • Intriguing anthropological investigation into Anonymous and how it/they relate to Free Software.
  • Coc acknowledged then ignored. Why do we need it again?
  • "Anonymous has cabals ... [that] make the cabals within Debian look like childs play." -- Database Ho! - Don Armstrong
  • I would settle for a lungi at this point but noooo shorts again. (plaid to boot.)
  • The return of my yearly guilt about undertaking to Don to add RSS support to debbugs way back at debconf 10 and not following up on it. Damn it, I am going to get this done now.
  • Sadly, the initial part of the stream is missing and it begans right in the middle of Don saying something interesting.

  • "I have to admit my primary motivation for giving a talk was to try to force myself into actually doing the work I'm talking about."
  • Stats porn. The BTS is growing at a phenomenal rate. bugs opened 142/day. But only 95/day closed.
Grub Ancient and Modern - Colin and Watson
  • pro: no shorts con: kilt
  • I was interested in this talk because one of these days I want to get GRUB 2 running on Debian Minix but a lot went over my head so I'll have to do some
    more research first.
One year of fedmsg in Debian - Nicolas Dandrimont
  • trouser status: undetermined
  • Problem: There are many different services providing information in Debian but they do not interop very well.
  • fedmsg is a unified message bus originally developed by Fedora who were facing a similar problem.

  • It has now been implemented in Debian.
Coming of Age: My Life with Debian - Christine Spang
  • trouser sta- oh the hell with this.
  • Another talk which is more biographical than technical. Again, useful to help understand the motivations of hackers.
  • What interests me is that for younger generations it was open source which was a novel idea whereas for those of who grew up in the 8-bit era, having
    to hack on a computer was expected (whether you wanted to or not and it was
    proprietary software you couldn't share which was considered new and strange.
Status report of the Debian Printing Team - Didier Raboud
  • Ou est les pantalons? Je ne sais pas. (Apologies to Mme Terzini.)
  • Kudos to Didier for taking up this augean task mostly on his own. Despite the long-promised "paperless" office I need to be able to print and I was
    pleasantly surprised that my new xerox all-in-one worked under Debian with
    very little hassle.
  • Brother sucks. Don't buy their printers. Ditto for Epson and Samsung.
  • Buy HP instead.

Craig Small: How not to get Galaxy Tab into Safe Mode

7 September, 2014 - 20:31

For weeks my Galaxy Tab 10.1 has reasonably consistently gone into safe mode. Not booting into it but I’d use it fine then put it away and next time I looked at it, Safe Mode was there. It wasn’t every time, but averaged to be about every second time.

So the first thing was a bit of googling to see what this Safe Mode was. Most of the suggestions were around how to put it into safe mode during the boot process but my problem was opposite; it wasn’t during booting and I wanted something to stop safe mode, not put the device into it. The closest I got to it was there was some misbehaving program that kicked the thing into safe mode.

The problem was, I checked several times and there were no running programs. I really did start to worry I had a hardware fault or something wrong deep within the OS.

When you have problems in IT, you’re usually asked “What’s new? What’s changed?”. The answer is generally “Nothing” which gets a switch “No really, what did change”. The only answer I could come up with was a hardware keyboard. This slim aluminum uses bluetooth to communicate to the tablet and clips onto the front screen to protect it when not in use. Could this be the change I was looking for?

The clue was that sometimes when you boot Android, if you hold down some keys it boots into safemode. It seems that holding down some combination of keys (volume up/down, power) puts into safe mode. The keyboard can clip onto the tablet in two ways, one long edge has some raised edges while one doesn’t. If the raised edge was connected to the same side as the buttons, I’d get safe mode sometimes as the edge pushed some of those buttons. More importantly, putting the raised edge on the side with no buttons meant no more safe mode.

Not really a software or electrical fault, more one of just mechanics.


Joachim Breitner: ICFP 2014

7 September, 2014 - 06:15

Another on-my-the-journey-back blog post; this time from the Frankfurt Airport Train Station – my flight was delayed (if I knew that I could have watched the remaining Lightning Talks), and so was my train, but despite 5min of running through the Airport just not enough. And now that the free 30 Minutes of Railway Station Internet are used up, I have nothing else to do but blog...

Last week I was attending ICFP 2014 in Gothenburg, followed by the Haskell Symposium and the Haskell Implementors Workshop. The justification to attend was the paper on Safe Coercions (joint work with Richard Eisenberg, Simon Peyton Jones and Stephanie Weirich), although Richard got to hold the talk, and did so quite well. So I got to leisurely attend the talks, while fighting the jet-lag that I brought from Portland.

There were – as expected – quite a few interesting talks. Among them the first keynote, Kathleen Fisher on the need for formal methods in cars and toy-quadcopters and unmanned battle helicopters, which made me conclude that my Isabelle skills might eventually become relevant in practical applications. And did you know that if someone gains access to your car’s electronics, they can make the seat belt pull you back hard?

Stefanie Weirich’s keynote (and the subsequent related talks by Jan Stolarek and Richard Eisenberg) on what a dependently typed Haskell would look like and what we could use it for was mouth-watering. I am a bit worried that Haskell will be become a bit obscure for newcomers and people that simply don’t want to think about types too much, on the other hand it seems that Haskell as we know it will always stay there, just as a subset of the language.

Similarly interesting were refinement types for Haskell (talks by Niki Vazou and by Eric Seidel), in the form of LiquidTypes, something that I have not paid attention to yet. It seems to be a good way for more high assurance in Haskell code.

Finally, the Haskell Implementors Workshop had a truckload of exciting developments in and around Haskell: More on GHCJS, Partial type signatures, interactive type-driven development like we know it from Agda, the new Haskell module system and amazing user-defined error messages – the latter unfortunately only in Helium, at least for now.

But it’s not the case that I only sat and listened. During the Haskell Implementors Workshop I held a talk “Contributing to GHC” with a live demo of me fixing a (tiny) bug in GHC, with the aim of getting more people to hack on GHC. The main message here is that it is not that big of deal. And despite me not actually saying much interesting in the talk, I got good feedback afterwards. So if it now actually motivates someone to contribute to GHC, I’m even more happier.

And then there is of course the Hallway Track. I discussed the issues with fusing a left fold (unfortunately, without a great solution). In order to tackle this problem more systematically, John Wiegley and I created the beginning of a “List Fusion Lab”, i.e. a bunch of list benchmark and the possibility to compare various implementations (e.g. with different RULES) and various compilers. With that we can hopefully better assess the effect of a change to the list functions.

PS: The next train is now also delayed, so I’ll likely miss my tram and arrive home even later...

PPS: I really have to update my 10 year old picture on my homepage (or redesign it completely). Quite a few people knew my name, but expected someone with shoulder-long hair...

PPPS: Haskell is really becoming mainstream: I just talked to a randomly chosen person (the boy sitting next to me in the train), and he is a Haskell enthusiast, building a structured editor for Haskell together with his brother. And all that as a 12th-grader...

Jonathan McDowell: Breaking up with America

7 September, 2014 - 06:00

Back in January I changed jobs. This took me longer to decide to do than it should have. My US visa (an L-1B) was tied to the old job, and not transferable, so leaving the old job also meant leaving the US. That was hard to do; I'd had a mostly fun 3 and a half years in the SF Bay Area.

The new job had an office in Belfast, and HQ in the Bay Area. I went to work in Belfast, and got sent out to the US to meet coworkers and generally get up to speed. During that visit the company applied for an H-1B visa for me. This would have let me return to the US in October 2014 and start working in the US office; up until that point I'd have continued to work from Belfast. Unfortunately there were 172,500 applications for 85,000 available visas and mine was not selected for processing.

I'm disappointed by this. I've enjoyed my time in the US. I had a green card application in process, but after nearly 2 years it still hadn't completed the initial hurdle of the labor certification stage (a combination of a number of factors, human, organizational and governmental). However the effort of returning to live here seems too great for the benefits gained. I can work for a US company with a non-US office and return on an L-1B after a year. And once again have to leave should I grow out of the job, or the job change in some way that doesn't suit me, or the company hit problems and have to lay me off. Or I can try again for an H-1B next year, aiming for an October 2015 return, and hope that this time my application gets selected for processing.

Neither really appeals. Both involve putting things on hold in the hope longer terms pans out as I hope. And to be honest I'm bored of that. I've loved living in America, but I ended up spending at least 6 months longer in the job I left in January than I'd have done if I'd been freely able to change employer without having to change continent. So it seems the time has come to accept that America and I must part ways, sad as that is. Which is why I'm currently sitting in SFO waiting for a flight back to Belfast and for the first time in 5 years not having any idea when I might be back in the US.

Thomas Goirand: Debconf 14 activity

7 September, 2014 - 01:42

Before I start a short listing of (some of) the stuff I did during Debconf 14, I’d like to say how much I enjoyed everyone there. You guys (all of you, really!) are just awesome, and it’s always a real pleasure to see you all, each time.

Anyway, here’s a bits of the stuff I did.

1/ packaging of Google Cloud Engine client tools.

Thanks to the presence of Eric and Jimmy, I was able to finish the work I started at Debconf 13 last year. All python modules are packaged and uploaded. Only the final client (the “gcloud” command line utility) isn’t uploaded, even though it’s already packaged. The reason is that this client downloads “stuff” from internet, so I need to get the full, bundled, version of it, to avoid this. Eric gave me the link, I just didn’t have time to finish it yet. Though the (unfinished) package is already in the Git in Alioth.

2/ Tasksel talks

We discussed improvements in Tasksel both during the conference, and later (in front of beers…). I was able to add a custom task on a modified version of the Tasksel package for my own use. I volunteered myself for adding a “more task” option in Tasksel for Jessie+1 because I really would like to see this feature, and nobody raised hand, but honestly, I have no idea how to do it, and therefore, I’m not sure I’ll be able to do so. We’ll see… Anyway, before this happen, we must make sure that we know what kind of tasks we want in this “more tasks” screen, otherwise it’d be useless work for nothing. Therefore, I have setup a wiki page. Please edit the page and drop your ideas there. I’ve already added entries for desktops and Debian blends, but I’m sure there’s more that we could add.

3/ Custom Debian CD

I started experimentation on building my own Debian Wheezy CD image (well, DVD, since the resulting image is nearly 2GB). This was fun, but I am still having the issue that the installer fails to install Dash, so the CD is still unusable. I’ll try to debug it. Oh…  I nearly forgot… “of course”, the ISO image aims at including all OpenStack Icehouce packages backported to Wheezy, and the goal was to include the above custom Tasksel task, with an “OpenStack proxy node” task, and a “OpenStack compute” task. Let’s hope I can figure out what the issue is, and finally release it.

4/ OpenStack talk

Nothing special to say, just watch the video. I hope my talk was interesting enough. Of course, after watching myself, I hate everything I see, and would like to correct so many mistakes, but that’s the usual, I guess.

5/ Some RC fixing

Thanks to the nice work of our DPL rebuilding all the archive, I had to fix a couple of FTBFS issues on my own packages. 3 of them have been easy to fix (2 missing build-dependencies which I missed because my automated build environment has them by default, and a unit test failure), I still don’t understand what’s going on with Ceilometer. I also NMU-ed transmission (switching from 2.82 to 2.84, as upstream had the bugfix, and current maintainer was not responsive) which was the last blocker for the miniupnpc transition to Jessie. After the 5 days delay of the upload, it went in Sid, then migrated to Jessie, together with the miniupnpc library. I also fixed a trivial RC bug with python3-webob.

6/ Python team meeting

It was nice to see everyone, and hopefully, we’ll soon implement what we discussed. I hope to start migrating some of my OpenStack dependencies to the team once we move to Git (though please don’t expect this to happen before the Juno release, which keeps me very busy these days).

There’s probably more stuff which I did during Debconf 14 (hacking or otherwise), but either it’s not worth sharing, or I can’t remember… :)

Russ Allbery: Accumulated hauls

6 September, 2014 - 12:38

I haven't made one of these in a long time, so I have some catching from random purchases to do, which includes a (repurposed) nice parting gift from my previous employer and a trip to Powell's since I was in the area for DebConf14. This also includes the contents of the Hugo voter's packet, which contained a wide variety of random stuff even if some of the novels were represented only by excerpts.

John Joseph Adams (ed.) — The Mad Scientist's Guide to World Domination (sff anthology)
Roger McBride Allen — The Ring of Charon (sff)
Roger McBride Allen — The Shattered Sphere (sff)
Iain M. Banks — The Hydrogen Sonata (sff)
Julian Barnes — The Sense of an Ending (mainstream)
M. David Blake (ed.) — 2014 Campbellian Anthology (sff anthology)
Algis Budrys — Benchmarks Continued (non-fiction)
Algis Budrys — Benchmarks Revisited (non-fiction)
Algis Budrys — Benchmarks Concluded (non-fiction)
Edgar Rice Burroughs — Carson of Venus (sff)
Wesley Chu — The Lives of Tao (sff)
Ernest Cline — Ready Player One (sff)
Larry Correia — Hard Magic (sff)
Larry Correia — Spellbound (sff)
Larry Correia — Warbound (sff)
Sigrid Ellis & Michael Damien Thomas (ed.) — Queer Chicks Dig Time Lords (non-fiction)
Neil Gaiman — The Ocean at the End of the Lane (sff)
Max Gladstone — Three Parts Dead (sff)
Max Gladstone — Two Serpents Rise (sff)
S.L. Huang — Zero Sum Game (sff)
Robert Jordan & Brandon Sanderson — The Wheel of Time (sff)
Drew Karpyshyn — Mass Effect: Revelation (sff)
Justin Landon & Jared Shurin (ed.) — Speculative Fiction 2012 (non-fiction)
John J. Lumpkin — Through Struggle, the Stars (sff)
L. David Marquet — Turn the Ship Around! (non-fiction)
George R.R. Martin & Raya Golden — Meathouse Man (graphic novel)
Ramez Naam — Nexus (sff)
Eiichiro Oda — One Piece Volume 1 (manga)
Eiichiro Oda — One Piece Volume 2 (manga)
Eiichiro Oda — One Piece Volume 3 (manga)
Eiichiro Oda — One Piece Volume 4 (manga)
Alexei Panshin — New Celebrations (sff)
K.J. Parker — Devices and Desires (sff)
K.J. Parker — Evil for Evil (sff)
Sofia Samatar — A Stranger in Olondria (sff)
John Scalzi — The Human Division (sff)
Jonathan Straham (ed.) — Fearsome Journeys (sff anthology)
Vernor Vinge — The Children of the Sky (sff)
Brian Wood & Becky Cloonan — Demo (graphic novel)
Charles Yu — How to Live Safely in a Science Fictional Universe (sff)

A whole bunch of this is from the Hugo voter's packet, and since the Hugos are over, much of that probably won't get prioritized. (I was very happy with the results of the voting, though.)

Other than that, it's a very random collection of stuff, including a few things that I picked up based on James Nicoll's reviews. Now that I have a daily train commute, I should pick up the pace of reading, and as long as I can find enough time in my schedule to also write reviews, hopefully there will be more content in this blog shortly.

Craig Small: WordPress 4.0 for Debian

5 September, 2014 - 19:35

Yesterday WordPress released version 4.0 or “Benny” of WordPress. I have now downloaded it and packed up for Debian users. The files just hit the ftp-master a few minutes ago and will then be distributed out to the various Debian mirrors.

The upgrade should go smoothly but you will probably need to upgrade the twentytwelve/twentyfourteen themes if you have them installed. It seems release 4.0 they also updated these themes.

My next Debian task for wordpress is to re-examine the permissions and locations of wp-content to see if we can have something that permits online updates but is still FHS compliant. I’ve also had some people report they have some installation problems, mainly around configuration and directories so let’s see if that can get fixed too.


Related articles

Wouter Verhelst: ASCII art Wouter

5 September, 2014 - 18:20
          <*@@@*`  ,--------------------------------"@@@@&*,          
          d#@@V>   '--------------------------------'"@@@?"*,         
         <d@@$"`   .--------'------------------------<$@@&b*b,        
         <@@@"`     ---------  -----------------------"@@@[**>        
         d@@@"      '-----`     -      '--------------'#@@@***        
        <@@@"`       '-`-               --- -----------*@@@***>       
        <]@""                             -,-----------<$@@[**>       
         ][F[        ` '`                 '-------------]@@[**>       
        <Q@[`                               -`----------*@@&**>       
        <#"">                                   --------*@@@**>       
        <@"*                                    ----`---*@@@&*>       
        ]Q#[                                      ------]#@@&*        
        ]@#[                                          <-<#@@@*>       
        ]@#b                                          .-<]@@@*        
        "@@[                                         ---<#@@@*        
        <@@"                                         ----]@@@*        
        ]#@[                                           -.]@@&"        
        ]#@b                                           -<]@@@[        
        <@@[                                       <   -<]@@"[        
        <@@[                                           -<]@@V>        
        <@@>     ,                                 ..  -<]@@b,        
        d@#>   -._----___ _                 _ _-_   -- -<#@@#-        
        ]@*> _-d*****obo_----       __--------___-, ----]@@@*,        
        d@[> -**?"**@@@@@o*>--,  -,---.o*ooW******_,,.--]@@#"`        
        #@[> -???'''--''?"**----<----<*@@@@@V******[----]@@@b>        
        *@[  -------------------<----*"'----''----'--->-<@@@*>        
        *@[  ------ooWWo,------- ------------_ '--------<@@@*-        
        "]>  <---bd?"@@@"`.----,  -------dQ@@&b-.-----'''$@[*`        
        *">   '--*",'$@#> -,'---  ---`--''$@@@?&_---->  -]@[*-        
        "*`    --'--.'"` `--.---  --- --, ]@@"-?*----   -"@*`>        
        <*>      <------`   ----  ---  ''--'",------    -]"*->        
        <*,       -----,   -----'----,  ---------`      -]#*-         
        '">        ---`    -----  <---                  '][[          
         <`                -----------,                 <d"[          
         <>               .------------                 -**-          
          >               <-----  -----                <-`--          
          -               .-----  -----                .--'           
          -               ------,.-----                -'-            
          ->              -------------                -.-            
          --              ---  -  -----                --`            
          --              ---      -----              --->            
          --             .->       -----              ---             
          -->            -----    .-----              ---             
          <-> '         ----`_-----__---            ' ---             
           --_.        ------'-----'----           ...---             
           ---`       ---------''------.           <----`             
           ---,     --------`-------`--,-          -----              
           <-----  --------_--------,-----        .-----              
            --------------*?--------`--------,    -----`              
            -----'------_?`--`'------'b--------- .-----               
            ----- ---"""`---.   '  ---'bb-------.------               
            ----------d,-------___-----'*o"----`` -----               
             -----------'------'--------'"*----> -----                
             -----------, '---   ---------------------                
               '*,-------------- --------------.--`                   
           .o, --**>.o----------------------,-.**`-                   
         .@@@[ .-"*****_-_----------------o******--                   
         Q@@F`  -'******d*--------------,-******`--                   
        .@@F`   '-<*******-.-.,------.o*********---,_o@W,             
        ]@[--    --"***d***od*--****dbd********"----@@@@[             
      .d@@#,-    --'***"@o*************oWb****"-----'$@@&,            
    _oQ&@@@>    ----'"**]@@o********doQ@?****"--------"@@b            
 dQ@@@@@@@@b      '---**"$@@@@@@@@@@@@F"*****---------<]@@d,,         
@@@@@@@@@@@[,      ---'***V?""??VVV"********>---------<Q@@@@@&b,      
@@@@@@@@@@@@><      ---'*******************?----------d@@@@@@@@@F_    
@@@@@@@@@@@@[.      <----"****************"----------]Q@@@@@@@@@@@@bo_
@@@@@@@@@@@@@>-      -----'**************'----------.#@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@[>        ------**********`------------d@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@[        '-------"****?`-------------.Q@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@&,         ------'''''---------------d@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@o,         ------------------------.Q@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@[_         '----------------------d@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@[,          --------------------]@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@b-_          '----------------.Q@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@b-            '--------------Q@@@@@@@@@@@@@@@@@@@@@

You know you're doing a fun gig when you get to do things like the above on billable hours.

Full story: writing a test suite for reading data from eID cards. It makes sense to decode the JPEG data which you read from the card, so that you know there's no error in the lower-layer subroutines (which would result in corruption). And since we've decoded it anyway, why not show it in the test suite log? Right.

Junichi Uekawa: Bluetooth network error.

5 September, 2014 - 05:19
Bluetooth network error. I think it's a network-manager feature to be able to use bluetooth tethering. I think it's a network-manager bug that when bluetooth tethering fails due to some error, and does not report that error. Yesterday I finally figured out what was going wrong after staring at hcidump. It was obvious after I did. I've reset my tablet so bluetooth PIN was wrong. If only the GUI told me that.

Junichi Uekawa: I wanted to file a bug but Debian BTS doesn't seem toreceive my SMTP mail for some reason.

5 September, 2014 - 05:18
I wanted to file a bug but Debian BTS doesn't seem to receive my SMTP mail for some reason. Somewhere between the MTA and the server something is wrong.

Steve Kemp: If you signed my old key, please consider repeating the process

5 September, 2014 - 01:08

I'm in the process of rejoining the Debian project. When I was previously a member I had a 1024-bit key, which is considered to be a poor size these days.

Happily I've already generated a new key, which is much bigger.

If you've signed my old key, and thus trust my identity was confirmed at some point in time, then please do consider repeating the process with the new one.

As I've signed the new with the old there should be no concern that it is random/spurious/malicious.

Obviously the ideal scenario is that I meet local-people to perform signing rites, in exchange for cake, beer, or other bribery.

Old key:

pub   1024D/CD4C0D9D 2002-05-29
      Key fingerprint = DB1F F3FB 1D08 FC01 ED22  2243 C0CF C6B3 CD4C 0D9D
uid                  Steve Kemp <>
sub   2048g/AC995563 2002-05-29

New key:

pub   4096R/0C626242 2014-03-24
      Key fingerprint = D516 C42B 1D0E 3F85 4CAB  9723 1909 D408 0C62 6242
uid                  Steve Kemp (Edinburgh, Scotland) <>
sub   4096R/229A4066 2014-03-24

Joseph Bisch: My First Package

4 September, 2014 - 22:14

I got my first package uploaded to Debian this week. That package is winetricks. It was orphaned and I adopted it. Now the lastest version (0.0+20140818+svn1202) is available in sid and should migrate to testing in nine days.

I moved the vcs from collab-maint to a personal repo, since I don’t have access to collab-maint.

I also have a sponsor for slowaes. It is also a package that was orphaned that I am adopting. The changes I made are more minor than those for winetricks. Besides adding myself as a maintainer, I just fix some lintian warnings. Slowaes should be uploaded soon.

Jakub Wilk: Joys of East Asian encodings

4 September, 2014 - 20:01

In i18nspector I try to support all the encodings that were blessed by gettext, but it turns out to be more difficult than I anticipated:

$ roundtrip() { c=$(echo $1 | iconv -t $2); printf '%s -> %s -> %s\n' $1 $c $(echo $c | iconv -f "$2"); }

$ roundtrip ¥ EUC-JP
¥ -> \ -> \

$ roundtrip ¥ SHIFT_JIS
¥ -> \ -> ¥

$ roundtrip ₩ JOHAB
₩ -> \ -> ₩

Now let's do the same in Python:

$ python3 -q
>>> roundtrip = lambda s, e: print('%s -> %s -> %s' % (s, s.encode(e).decode('ASCII', 'replace'), s.encode(e).decode(e)))
>>> roundtrip('¥', 'EUC-JP')
¥ -> \ -> \
>>> roundtrip('¥', 'SHIFT_JIS')
¥ -> \ -> \
>>> roundtrip('₩', 'JOHAB')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <lambda>
UnicodeEncodeError: 'johab' codec can't encode character '\u20a9' in position 0: illegal multibyte sequence

So is 0x5C a backslash or a yen/won sign? Or both?

And what if 0x5C could be a second byte of a two-byte character? What could possibly go wrong?

Adnan Hodzic: Debian PPA Utility

4 September, 2014 - 19:55

Debian remains to be my favorite distribution, however there’s one thing that’s missing, that thing is called PPA.

There were numerous discussions on this topic inside of Debian, but AFAIK without any visible movement. Thus, I decided to publish a utility I’ve been using for some time now.


Since its introduction, PPA’s are exclusively connected to Ubuntu and its derivatives (Mint, Elementary, etc …). But over time, a number of interesting projects appeared whose whole development is happening inside of PPA’s. To name few, I’m talking about TLP, Geary, Oracle Java Installer, Elementary OS and etc … Some of these projects are in WNPP without much happening for a long time, i.e: TLP

One option was to repackage these packages and then have them uploaded to Debian, or just go rogue and install them directly from its PPA’s. Title of this post might hint which path I took.

In theory, adding Ubuntu packages on your Debian system is a bad idea, and adding its PPA’s is probably even worse. But, I’ve been using couple (TLP, Geary, couple of custom icon sets) of these PPA’s on my personal/work boxes, and to be honest, never had a single problem.

Most of the PPA’s I use, are usually fairly simple packages with single binary and dependencies which are found in Debian itself. Of course, I don’t recommend adding PPA’s on production boxes, or even PPA’s such as GNOME3 Team PPA’s, but rather add APT Pinning on your system and fetch those packages directly from Debian.

Debian PPA Utility

Is a very simple utility, which adds “add-apt-repository” binary that allows you to add PPA’s on Debian. Code is available on GitHub, it’s licensed as GPLv3, so feel free to fork it, improve it, use it and abuse it.

How to use it?

Download/Build package

You can download my signed package (source and changes file are in same directory)

Or you can build your own by running "dpkg-buildpackage -uc -us" inside of the debian-ppa source directory.

Install/Add PPA’s

After you install the package, you’re able to run “add-apt-repository” and add PPA’s. i,e:

sudo add-apt-repository ppa:linrunner/tlp

Currently, Debian PPA Utility only works on >= Wheezy.

At this point I have no plans to try pushing this utility into Debian, as I’m sure even this blog post will be labelled as heresy by many.


It was just pointed to me that “add-apt-repository” is available in “software-properties-common” package. However, PPA’s added by “add-apt-repository”  binary present in this package instead of adding Ubuntu codename’s to your list file, will add Debian codenames which without change will make whole PPA entry useless.

I believe codename handling is better in “Debian PPA Utility”. I admit, my only mistake is, instead of fixing things in “software-properties-common” package, I made a completely new utility which aims to do the same thing.

Added: conflicts/replaces: software-properties-common to debian/control file.

Anyway, enjoy!

Rapha&#235;l Hertzog: The problem of distributing applications

4 September, 2014 - 16:29

A few days ago I watched a Q/A session with Linus Torvalds at Debconf 14. One of the main complaint of Linus towards Linux distribution was the way that distribution ends up using different versions of libraries than what has been used during application development. And the fact that it’s next to impossible to support properly all Linux distributions at the same time due to this kind of differences.

And now I just discovered a new proposal of the systemd team that basically tries to address this: Revisiting how we put together Linux Systems.

They suggest to make extensive use of btrfs subvolumes to host multiple variants of the /usr tree (that is supposed to contain all the invariant system code/data) that you could combine with multiple runtime/framework subvolumes thanks to filesytem namespaces and make available to individual applications.

This way of grouping libraries in “runtime subvolumes” reminds me a bit of the concepts of baserock (they are using git instead of btrfs) and while I was a bit dubious of all this (because it goes against quite a few of the principles of distribution integration) I’m beginning to believe that there’s room for both models to work together.

It would be nice if Debian could become the reference distribution that upstream developers are using to develop against Linux. This would in turn mean that when upstream distribution their application under this new form, they will provide (or reference) Debian-based subvolumes ready for use by users (even those who are not using Debian as their main OS). And those subvolumes would be managed by the Debian project (probably automatically built from our collection of .deb).

We’re still quite far from this goal but it will interesting to see this idea mature and become reality. There are plenty of challenges facing us.

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

Russell Coker: Inteltech/Clicksend SMS Script

4 September, 2014 - 12:19


I’ve just written the below script to send SMS via the service. It takes the above configuration in /etc/sms-pass.cfg where the username is assigned with the clicksend web page and the API key is a long hex string that clicksend provides as a password. The LOG_SERVICE is which syslog service to use for the log messages, on systems that are expected to send many messages I use the service “local1″ and I use “user” for development systems.

I hope this is useful to someone, and if you have any ideas for improvement then please let me know.

# $1 is destination number
# text is on standard input
# standard output gives message ID on success, and 0 is returned
# standard error gives error from server on failure, and 1 is returned

. /etc/sms-pass.cfg
TEXT=`tr "[:space:]" + | cut -c 1-159`

logger -t sms -p $ "sending message to $1"
wget -O $OUTPUT "$USER&key=$API_KEY&to=$1&message=$TEXT" > /dev/null 2> /dev/null

if [ "$?" != "0" ]; then
  echo "Error running wget" >&2
  logger -t sms -p $LOG_SERVICE.err "failed to send message \"$TEXT\" to $1 – wget error"
  exit 1

if ! grep -q ^.errortext.Success $OUTPUT ; then
  cat $OUTPUT >&2
  echo >&2
  ERR=$(grep ^.errortext $OUTPUT | sed -e s/^.errortext.// -e s/..errortext.$//)
  logger -t sms -p $LOG_SERVICE.err "failed to send message \"$TEXT\" to $1 – $ERR"
  rm $OUTPUT
  exit 1

ID=$(grep ^.messageid $OUTPUT | sed -e s/^.messageid.// -e s/..messageid.$//)

logger -t sms -p $ "sent message to $1 with ID $ID"
exit 0

Related posts:

  1. Parsing Daemontools/Multilog dates in Shell Script I run some servers that use the DJB Daemontools to...


Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้