[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[debian-installer] microdpkg

The debian-installer is an effort to redesign and rewrite debian's
installer for woody. It's just getting started.

We've decided that the new installer will be modular, where modules are
maintained by separate people, and can be installed into the installer
itself while it is running, to give it additional capabilities (like the
ability to partition a disk, or run an interactive shell, and so on).
These modules will themselves be debian packages.

So we need some rudimentary package management tools to be part of the
base of the installer. Dpkg, at around 240k, is much too big. The target
size is more like 24k. I'm calling this stripped down dpkg "microdpkg".
It is not intended to be fully compatable with dpkg, or to be a
full-fledged replacement for it; it will support only those dpkg
features we need to manage packages in the installer.

I think that just like dpkg, it should be split into two programs:
microdpkg-deb to handles the low-level unpacking of packages, and 
microdpkg, to do dependency checking, and so on. Maybe this will turn
out not to make sense; some space might be saved if the two were
combined. On the other hand, Erik Anderson might want to put
microdpkg-deb in busybox -- Erik?

If it is a seperate program, microdpkg-deb should implement the following 
switches, with the same behavior as dpkg-deb:
(More may be added later, as needed.)

    --info, -I

    --field, -F

    --extract, -x

It is expected that it will use busyboxes ar, gzip, and tar implementations
to handle pulling packages apart.

microdpkg will use microdpkg-deb to implement a subset of dpkg's
functionality. It will just implement the following switches:
(More may be added later, as needed.)

   -i, --install
   -r, --remove

It will maintain /var/lib/dpkg/status and /var/lib/dpkg/info/* in a
manner compatabile with dpkg. It will not support alternatives, diversions, 
and so forth. It will not support conffiles, nor will it support purging of
packages, nor will it check to see if multiple packages contain the same
file. It will not support preinst and prerm scripts, and will probably
also not support the maintainer script error unwinding done by dpkg.

In package metadata, it will use the following fields: Package, Status,
Depends, Provides -- and will ignore the rest. (Thus, no suggestions, no
reccommendations, no pe-dependencies, no conflicts.) It need not support
OR'd boolean dependencies, or versioned dependencies.

They will be written in C, or perhaps, in POSIX shell script (without
any external commands except ar, tar, gunzip, though..).

I'm looking for a few people who'd like to write this in the next week
or so. I think Randolph Chung may have already done some preliminary work. 
If you'd like to help, make sure you're on the debian-boot mailing list 
and reply to this mail.

see shy jo

Reply to: