debian

Debian packages release names [Update]

The "I'm bored" release.

nice -n 19 find /usr/share/doc -name changelog.Debian.gz -exec zgrep "\* The .* [Rr]elease" {} \; | sort | uniq | bogosort -n | head -40

* The "Crack-smoking Squirrel" release.
* The "I should not have got out of bed yesterday" release
* The "Wohoo-we-are-going-to-main" release.
* The "And I thought IE had security bugs!" release.
* The "First snow in Finland" release.
* The "please buy me a brain" release
* The "I speak better English than this villian Bush" release.
* The "Brief Return From The Hell" release.
* The "Stoned Monkey" release.
* The "Let's do it cleaner" release.
* The "Fuck Me Harder" release.
* The "All or Nothing" release
* The "What's my name? Say my name, bitch!" release.
* The "next time I will buy myself a powerpc" release.
* The "I'm in such a hurry" release!
* The "I *hate* when that happens" release.
* The 'DOH!' release.
* The "laptop envy (damn tbm for having a nicer one than me)" release.
* The "Drunken Iceweasel" release.
* The "Follow the white rabbit" Release.
* The "someone should take my compiler away from me" release
* The "Ooops, I did it again" release
* The "Argh-I-took-the-wrong-version" release.
* The "Friday before Christmas" Release :-)
* The 'Yes, I need more sleep, and also to test my releases' release.
* The "you can't get sunburn at Finland" release.
* The "Chainsaw Psycho" release.
* The "Son of Drunken Iceweasel" release.
* The "Perl Sucks" release.
* The "I fucking hate libtool" release.
* The 'No, I don't use CVS' release.
* The "Throwing stuff away like mad and seeing if it still builds" release.
* The "This Space Intentionally Left Blank" Release
* The "From now on all of my world-killing weapons will be kept a TOTAL SECRET!" release.
* The "Lesbian Seagull" release.
* The "Oh my God, they killed Python, you bastards!" release.
* The "Evil Bitch Monster of Death" release.
* The "Pain as bright as steel" release.
* The "I've been hiding under a rock for two weeks" release.
* The "Suddenly the Dungeon collapses!! - You die..." release

I didn't bother to run it on the whole Debian archive on one of the Debian developer machines, as that would have probably pissed off some admins...

(via Jonathan Carter)

Update 2006-05-10: I have now created a list of "all" release strings in Debian unstable, which is available for download and further processing ;-)

Debian Lessons

I've stumbled over Lars Wirzenius' article Debian Lessons (Subtitle: Project management lessons from the Debian project) today. The article is from 2000 (updated 2004), but is still very, very relevant nowadays. Here's the table of contents (reading this alone would already help many projects out there, I think):

  • Make sure things scale up.
  • Make sure the foundation is good.
  • Document important things.
  • Automate repetitive tasks when possible.
  • Avoid single points of failure, especially for volunteers.
  • Do not worry about time tables; keep goals realistic.
  • Make it easy to work independently.
  • Do not overload developers.
  • Be open and keep things public.
  • Make it easy to contribute.
  • Some barrier to entry may be necessary for quality and security.
  • Have leadership.
  • Conflicts are natural, but mustn't get out of hand.
  • Use a bug tracking system.
  • Real world politics matter.
  • Controversial issues will result in a flame war and often will never really end.
  • Compensation helps keep people motivated.
  • Never, ever, write a program to mail Debian developers automatically. Always make automatic mails opt-in.
  • Don't make assumptions about people's background.

Make sure to read the whole article. This compilation of tips should prove useful for many community-driven Free Software project out there.

Stuff

HOWTO: Disk encryption with dm-crypt / LUKS and Debian [Update]

A few weeks ago I published a small HOWTO for using loop-aes to encrypt your hard drive, usb thumb drive etc.

As I have bought a new 300 GB external USB disk drive on Friday, I have tried something new this time: disk encryption using dm-crypt / LUKS. It has been suggested to me multiple times that dm-crypt is superior to loop-aes, however I didn't get a real reason. Yes, it doesn't require any kernel patches and is easier to setup. But has any serious cryptographer looked at it sharply, yet? Did it withhold his eye contact?

Anyways, here's how I encrypted my 300 GB drive. I largely followed the guide at the EncryptedDeviceUsingLUKS wiki page...

  1. Make sure you run Linux 2.6.16 or better. Previous versions suffer from an implementation problem which affects the security of dm-crypt, see Linux Kernel dm-crypt Local Cryptographic Key Disclosure.
  2. Enable the following options in your kernel:

    • Code maturity level options
      • Prompt for development and/or incomplete code/drivers
    • Device Drivers -> Multi-device support (RAID and LVM)
      • Device mapper support
      • Crypt target support
    • Cryptographic options
      • AES cipher algorithms
  3. Overwrite the whole drive with random data in order to slow down attacks on the encryption. At the same time perform a bad blocks scan to make sure the hard drive is not going to die too soon:
    badblocks -c 10240 -s -w -t random -v /dev/sdb
    Replace /dev/sdb with whatever is correct on your system. If you're really paranoid, and are willing to wait one or two days, do this:
    dd if=/dev/urandom of=/dev/sdb
  4. Install the required packages:
    apt-get install cryptsetup
    The current cryptsetup in Debian unstable already supports LUKS, which was not the case a while ago, if I'm not mistaken. So Debian testing or stable will most probably not work!
  5. Create one or more partitions on the drive:
    cfdisk /dev/sdb
    I created one big 300 GB partition, /dev/sdb1.
  6. Setup LUKS:
    cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1
    Enter a good passphrase here. Don't spoil the whole endeavour by chosing a stupid or short passphrase.
  7. Open the encrypted device and assign it to a virtual /dev/mapper/samsung300gb device:
    cryptsetup luksOpen /dev/sdb1 samsung300gb
  8. Create a filesystem on the encrypted device:
    mkfs.ext3 -j -m 1 -O dir_index,filetype,sparse_super /dev/mapper/samsung300gb
    I used ext3 with some optimizations, see mke2fs(8).
  9. Mount the encrypted partition:
    mkdir /mnt/samsung300gb
    mount /dev/mapper/samsung300gb /mnt/samsung300gb
    That's it. Everything you write to /mnt/samsung300gb will be encrypted transparently.
  10. For unmounting use:
    umount /mnt/samsung300gb
    cryptsetup luksClose /dev/mapper/samsung300gb

After unmounting, nobody will be able to see your data without knowing the correct passphrase. Drive is stolen? No problem. Drive is broken, and you want to send it in for repair without the guys there poking in your data? No problem. You leave the USB drive at home and some jerk breaks into your house, steals your drive, rapes your wife, and kills your kids? No problem. Well, sort of, but you get the idea ;-)

There's more things you can do, thanks to LUKS: have multiple passphrases which unlock your data, change/add/remove passphrases as you see fit, etc.

Comments?

Update 2006-04-17: You have to use cryptsetup from unstable if you want LUKS support. cryptsetup in testing does not support this (thanks Ariel).

Syndicate content