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

Re: Building d-i



debian@computerdatasafe.com.au writes:

> On Tue, 18 Mar 2003, Stephane Enten wrote:
>
>> On Tue, Mar 18, 2003 at 06:50:37AM +0800, debian@computerdatasafe.com.au wrote:
>> I've been able to build the floppy 'net' image without any trouble only
>> by installing the needed packages on the host system (and removing the
>> bogl stuff from the floppy tree), so I guess everything's there to build
>> the package.
>> 
>> If you want an easy way to find what's missing, just try to run the
>> build process by entering the 'build' directory and run 
>> "make TYPE=whateveryouwant build".
>> 
>> Then you'll soon see which packages are missing. Install them on the
>> host system, and re-run, it'll work fine.
>
> It may well be that I am missing something incredibly obvious, and I
> will be delighted if someone can point it out.
>
> I have checked out debian-installer, and I have these main directories:
> chroot [root@numbat tmp]# find debian-installer -type d -maxdepth 1
> debian-installer
> debian-installer/CVS
> debian-installer/anna
> debian-installer/doc
> debian-installer/build
> debian-installer/kernel-image-di
> debian-installer/kernel-splitter
> debian-installer/libd-i
> debian-installer/libdebian-installer
> debian-installer/main-menu
> debian-installer/retriever
> debian-installer/rootskel
> debian-installer/tools
> debian-installer/utils
> chroot [root@numbat tmp]#
>
> What I want to do is to build all these packages, and then go on to
> create bootable disks from the results.

You do not need to do this.  The whole idea of udeb packages
is that they can reside in the archives, and you do not need to build
them all individually, you can just download and install them into
the build tree (actually, that is what build/Makefile does)

> I expect at some point to have a set of udebs.

If you really need to do this, you can build the individual
udebs using dpkg-buildpackage, and copy them into
build/localudebs/

All udebs which are found in that directory are not downloaded
from the archives.  Instead, the localudeb version is used.

> Those directories come from a tarball I created from the checkout, which
> I did under another account name.
>
> Here are the commands I have used most recently:
> #!/bin/bash -xe
> cd /tmp
> rm -rf debian-installer
> ls -oh debian-installer.tar.bz2
> tar xjf debian-installer.tar.bz2
> cd debian-installer/libdebian-installer
> make all install
> cd ../build/
> cp -p sources.list sources.list.local
> fakeroot make TYPE=net build
>
> This failed with these messages:
> Need to download : di-utils-shell rootskel anna main-menu cdebconf-udeb
> udpkg busybox-udeb dash-udeb kernel-image-2.4.20-386-udeb choose-mirror
> net-retriever netcfg-static netcfg-dhcp pump-udeb modutils-basic
> ethdetect nic-modules-shared-2.4.20-386-udeb
> socket-modules-2.4.20-386-udeb isa-pnp-modules-2.4.20-386-udeb
> nic-modules-2.4.20-386-udeb
> Reading Package Lists...
> Building Dependency Tree...
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
>
> Sorry, but the following packages have unmet dependencies:
>   anna: Depends: libdebian-installer3 (>= 0.10) but it is not
> installable
>   ethdetect: Depends: libdebian-installer3 (>= 0.10) but it is not
> installable
>              Depends: libdiscover1 but it is not installable
>   main-menu: Depends: libdebian-installer3 (>= 0.10) but it is not
> installable
>   netcfg-dhcp: Depends: libdebian-installer3 (>= 0.10) but it is not
> installable
>   netcfg-static: Depends: libdebian-installer3 (>= 0.10) but it is not
> installable
>   pump-udeb: Depends: libpopt0 (>= 1.6.4) but 1.6.2-7 is to be installed
> E: Sorry, broken packages
> make: *** [net-get_udebs-stamp] Error 100
> chroot [root@numbat root]#
>
> Now, I have actually built and installed libdebian-installer:
> chroot [root@numbat tmp]# ls /usr/lib/libdebian-installer.*
> -rwxr-xr-x    1 root     root         9280 Mar 18 21:03
> /usr/lib/libdebian-installer.a
> lrwxrwxrwx    1 root     root           28 Mar 18 21:03
> /usr/lib/libdebian-installer.so -> libdebian-installer.so.3.2.0
> lrwxrwxrwx    1 root     root           28 Mar 18 21:03
> /usr/lib/libdebian-installer.so.3 -> libdebian-installer.so.3.2.0
> -rwxr-xr-x    1 root     root        15276 Mar 18 21:03
> /usr/lib/libdebian-installer.so.3.2.0
> chroot [root@numbat tmp]#
>
> but because it didn't go through package manangement, it does not
> satisfy the depenencies.
Exactly.  If you know the reason already, why do you insist on doing
the wrong thing?

You should build libdebian-installer like this:

cd debian-installer/libdebian-installer
dpkg-buildpackage -rfakeroot
dpkg -i ../libdebiaan-installer*.deb

> While I could install the package from Sarge, it is actually the CVS
> version I want to use and test, so it makes no sense to me to install
> the older version.

So build the package, and dpkg -i that.

> I have not yet found any way to make any packages from this source, and
> that is why I think something is missing.

This is why Tollef asked you to read the Developers reference.

-- 
CYa,
  Mario | Debian Developer <URL:http://debian.org/>
        | Get my public key via finger mlang@db.debian.org
        | 1024D/7FC1A0854909BCCDBE6C102DDFFC022A6B113E44



Reply to: