Modules dependencies of the minimal core for lunar

Peter de Ridder peter at lunar-linux.org
Sun Jan 23 00:04:57 CET 2011


Hello,

Introduction:
A while back I did some investigation into the minimal module
requirement for a lunar system.
Then the developers poll came along with:
> 2 2.3   Check and fix dependencies for modules, starting with the most important ones.
So now I pickup the original investigation again to complete it with
results and solutions.

Index:
* Introduction
* Goals
* The results
 - First the location where the solutions can be found
 - runtime error because of missing files
 - build error because of missing dependencies
* conclusions from these results
* further thinking
* Attachment minimal_installed.txt: installed modules after lunar rebuild

Goals:
* My first goal: be able to run 'lrm `lvu installed | cut -d: -f1`'
without breaking the system.
Running that on a current lunar system will break some of the main
tools required to rebuild the system.
The problems found here should be resolved with sustained.
* My second goal: be able to lin -rc all the minimal installed modules
individually answering everything with 'n' (no).
The problems found here should be resolved with depends, mostly.
* Continuation: Try lin -rc for all the modules in the moonbase individually.
This is not included, yet.

The results:
First the location where the solutions can be found:
I put the changes I made to the moonbase at
http://foo-projects.org/git/?p=peter/moonbase.git;a=shortlog;h=refs/heads/fix-modules
This doesn't contain the additions to /var/lib/lunar/sustained.
Execute the next command to add them:
cat /var/lib/lunar/sustained - << EOF | sort -o /var/lib/lunar/sustained
gmp
libmpc
mpfr
pcre
EOF

runtime error because of missing files:
* locking
 - procps
* init.d script
 - which
* grep
 - pcre (only if compiled with perl expressions)
* expr
 - gmp
* gcc
 - libmpc
 - mpfr
 - gmp
* lvu diff
 - diffutils

build error because of missing dependencies:
* ./configure
 - kernel-header-2.x
* bash
 - bison
* e2fsprogs
 - pkgconfig
 - lunar-init
* perl
 - which
* attr
 - automake
* readline
 - perl
* glibc
 - perl
* bzip2
 - diffutils

conclusions from these results:
* which
 - this is used by various scripts, but nothing depends on it and it
isn't sustained
 - maybe make theedge depend on it
 ~ I made perl depend on it for now, but it is used by the lunar
BUILD script not by the perl build itself
* diffutils
 - it seems some install scripts use it but still work if it is
missing. theedge depends on it, that should be enough
 ~ made bzip2 depend on it too since diffutils aren't sustained
* procps
 - this is used by lunar scripts, but nothing depends on it and it
isn't sustained
 - maybe make theedge depend on it
 ~ didn't do anything with this, yet
* kernel-headers-2.6
 - ./configure created by autotools need this (at build time) this
can't be depended or sustained since there are multiple to chose from
 ~ I manually run lin kernel-headers-2.6 after every full system
clean, as I see no better option
* nano
 - this is sustained which makes sense for various reasons, but it
isn't a required part of the system, as far as I know.
 - theedge and lunar only optional depends on it
 - for users free choose, should this be sustained?
 ~ removed if from sustained locally and the system still seems to run fine
* pcre
 - grep depends links to it if compiled with perl regular expressions
 - the lunar scripts can't work without grep so it should be
(optional) sustained
 ~ added it to sustained and made grep optionally depend on it
* pkgconfig
 - e2fsprogs requires it during build
 ~ made e2fsprogs depend on it
* e2fsprogs
 - it uses lunar-init in POST_INSTALL is this still necessary?
 ~ didn't make changes to this
* readline
 - the BUILD and POST_INSTALL script use perl for a regular
expression substitution which sed can handle too
 ~ change perl to sed in BUILD and POST_INSTALL
* glibc
 - glibc optional_depends on perl for test scripts, but the glibc
build scripts requires perl for other items too
 ~ made glibc depends on perl
* gmp,mpfr,libmpc
 - gcc (and expr) depend in this to run
 - for a source based distro is a working compiler a requirement
 ~ added gmp mpfr and libmpc to sustained

further thinking:
* should some files be added to protected too and not only added the
modules to suspend?
* would there be some sensible way that optional depends of sustained
modules will be sustained too?
 - since we don't make a difference between runtime and build time
depends this could added some modules to sustained which wouldn't need
to be (e.g. perl for glibc)
 - making such a system would make it possible to remove pcre from
the system if grep is compiled without and still protect it if it is
compiled with it (this would also count for acl and attr if we get
them to be optional_depends of sed and some other core utilities)

Regards,
 Peter
-------------- next part --------------
minimal installed:
* acl
  - sustained
  - leaf
* attr
  - sustained
* autoconf
* bash
  - sustained
* binutils
  - sustained
  - leaf
* bzip2
  - sustained
* chkconfig
* coreutils
  - sustained
* cracklib
  - sustained
* dialog
  - sustained
* diffutils
* e2fsprogs
  - sustained
* file
  - sustained
* findutils
  - sustained
* flex
* gawk
* gcc
  - sustained
  - leaf
* gettext
  - sustained
* glibc
  - sustained
  - leaf
* gmp
* grep
  - sustained
* gzip
  - sustained
* installwatch
  - sustained
* kernel-headers-2.6
* less
  - sustained
* libmpc
* libtool
* lunar-init
* lunar-tools
* m4
* make
  - sustained
  - leaf
* mpfr
* nano
  - sustained
* ncurses
  - sustained
* net-tools
  - sustained
* patch
  - sustained
  - leaf
* pcre
* perl
* popt
* readline
  - sustained
* sed
  - sustained
* shadow
  - sustained
  - leaf
* tar
  - sustained
* texinfo
* theedge
  - sustained
  - leaf
* timezone-data
  - leaf
* util-linux
  - sustained
* wget
  - sustained
* zlib
  - sustained
  - leaf


More information about the Lunar-dev mailing list