Dear Debian Developers (and other readers), debimg will be a free alternative to debian-cd, written in Python.
Attached are the file lenny.list, which is a "data file" (see comments in file), and debimg.cfg which is the main configuration file. Please tell me if you do not like one the listed things. Short overview -------------- 1. dists/**/Packages files are created from the apt cache instead of scanning the pool on the disk (faster) 2. The configuration which packages will be included is stored in one list per debian release. 3. Packages can be included based on Priority, Task and name. This means that there won't be statically generated task files anymore. You can restrict this to specific architectures only, using 'pkgname [architectures]'. 4. debimg is GPL 3 and newer 5. debimg builds netinst disks in about 20 seconds 6. debimg uses apt for dependency solving and downloading License ------- Copyright (C) 2008 Julian Andres Klode <[EMAIL PROTECTED]> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Current status -------------- debimg can build complete disks, but can not split disks or build multi-arch images. It is not released yet, because the code needs some cleanup first. The next steps will be: disk splitting, multi-arch disks, source disks, architectures other than i386 and amd64, gpg signing, etc. Speed ----- debimg should build netinst disks in about 10-15 seconds, but my current tree does not add documentation to the image yet. How does it work? ----------------- debimg uses python-apt functions for downloading files, solving dependencies and parsing the data files Using python-apt to solve dependencies instead of writing an own dependency solver is better, because python-apt's solver is the apt solver written in C. This also leads to a problem, because the C parser does not ignore Conflicts, but this is needed for building disks. At the moment, there is a workaround which simply removes all Conflicts lines from the downloaded Packages files. My wishlist ------------- 1) Automatically build additional (netinst + businesscard) images of testing using debimg on a debian server - (after the release of debimg 0.1) - this version should be able to build netinst + businesscard images without problems Links ----------------- Blog: http://juliank.wordpress.com/2008/02/25/debimg-debian-cd-in-python/ -- Julian Andres Klode, Fellow of the Free Software Foundation Europe Ubuntu Member | Debian Maintainer | Developer try Ubuntu: http://www.ubuntu.com/ | my site: http://jak-linux.org/ mail: [EMAIL PROTECTED] | IRC: juliank languages: German | English
# Configuration file for debimg CODENAME = lenny MEDIATYPE = netinst MIRROR = http://cdimage.debian.org/debian/ COMPONENTS = main NDISKS = 1 DATA_PATH = ../data/%(CODENAME)s.list UDEB_INCLUDE = netinst UDEB_EXCLUDE = netinst ARCHITECTURE = amd64 DI_GTK_ENABLED = True DI_CODENAME = %(CODENAME)s OUTPATH = debian-%(CODENAME)s-%(ARCHITECTURE)s-netinst.iso
# lenny.list - Package list for building Debian images # ==================================================== # # This format follows the RFC-822 specification, with the exception that lines # starting with '#' are ignored. Also, everything after an # is ignored. # # This file contains all specifications previously contained in data/, but in a # more simple and shorter way. Please keep all list sorted alphabetically. # # The control fields # ------------------- # # Package-List: # => The name of the list. Used to find the list # Inherits: # => Include all options from the named list # Priority / Task: # => Include packages based on their priority or task # Depends, Recommends, Conflicts: # => They are parsed like Build-Depends in a source package. Build fails if # one package listed in depends is not available or one package in # conflicts is installed. No version operator supported yet. # Include-Udeb, Exclude-Udeb: # => You may specify a list of regular expressions matching udeb names Package-List: businesscard Include-Udeb: ^.*$ Exclude-Udeb: ^.*$ # This list is used to build a classical netinst disk. Package-List: netinst Inherits: businesscard Priority: required, important Depends: acpid, aptitude, bpalogin, console-cyrillic, console-data, console-terminus, console-tools, cryptsetup, debconf-english, discover1 [i386 amd64], #Hardware detection 1.0 (Conflicts with discover) discover [i386 amd64], #Hardware detection 2.0 (Conflicts with discover1) eject, grub [i386 amd64], initramfs-tools [i386 amd64], installation-report, jfbterm, jfsutils, kbd, kbd-compat, libc6-i686 [i386], libdevmapper1.02, libdiscover1 [i386 amd64], libfribidi0, libsysfs2, lilo [i386 amd64], # Start of Linux kernel stuff linux-headers-2.6-486 [i386], linux-headers-2.6-686 [i386], linux-headers-2.6-amd64 [amd64], linux-image-2.6-486 [i386], linux-image-2.6-686 [i386], linux-image-2.6-amd64 [amd64], # End of Linux kernel stuff locales, localization-config, lvm2, lvm-common, mdadm, openssh-server, pcmcia-cs, pcmciautils, perl, ppp, pppoeconf, reiserfsprogs, sudo, udev, unifont, usbutils, wireless-tools, xfsprogs Package-List: kde Inherits: netinst Tasks: desktop, kde-desktop
signature.asc
Description: OpenPGP digital signature