Build environment for making Devuan installer ISOs for i386 and amd64.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Ralph Rönnquist a464e1114f
Revised ventoy support: scan available ISOs to find the right one.
4 weeks ago
boot removed selection line shadow 4 months ago
docs Including reference to BOOTHELP.txt, which is generated. 5 months ago
localudebs removed 3 years ago
needed-characters upgrade needed-characters by merging debian-installer 75fee93e1 4 years ago
pool Determine repository section names from the host's Packages files. 5 months ago
scripts Revised ventoy support: scan available ISOs to find the right one. 4 weeks ago
.gitignore manual merge of e31205f 3 years ago
Makefile add BUILDDIR variable 6 months ago
README.md editorial fix 7 months ago
boot-bios-isolinux.mk only deploy actual config 6 months ago
boot-efi-grub.mk Minor reshape for grub modules. Bug fix for load path in grub.cfg 6 months ago
boot-efi-syslinux.mk Revise preboot to use INITRD and VOLI settings rather than constant strings. 5 months ago
bootonly.mk fixed the bootonly build variant (for testing only) 6 months ago
build-sudo.sh Update DISTVERSION stamps to 5.0.3-rc2 4 weeks ago
build.sh Update repository to ceres for forked syslinux 4 weeks ago
cd2.mk code cleanup 4 years ago
cd3.mk added pool isos 4 years ago
cd4.mk Locked in pool isos 4 years ago
dependencies.mk cehck for dpkg-scanpackages and gzip 7 months ago
desktop.mk Using syslinux also for UEFI (replacing grub). 6 months ago
firmware.mk change the firware links to be relative. 4 years ago
kernel.mk patch for PATH 3 years ago
makeiso.mk Adde xorriso parameter to make it set up a GPT as well. 2 months ago
netinstall.mk build with boot-efi-syslinux rplacing boot-efi-grub 6 months ago
packages.mk fixed the bootonly build variant (for testing only) 6 months ago
pool1.mk added pool1 for pool-only iso building 2 years ago
pool2.mk add pool2 makefile fragment 1 year ago
runbuild.sh clean the build tree beforehand 6 months ago
saverun.mk avoid stop on error 4 years ago
server.mk Using syslinux also for UEFI (replacing grub). 6 months ago
udeb-sets.mk.tmpl Include cdebconf-newt-udeb explicitly. 7 months ago
viewfpages.sh Update DISTVERSION stamps to 5.0.3-rc2 4 weeks ago
viewmenu.sh Update DISTVERSION stamps to 5.0.3-rc2 4 weeks ago
vm.sh use the 4M OVMF variant 2 months ago
win32-loader.mk Added win32-loader boot option 4 years ago

README.md

Devuan Installer ISO

This project is tailored for building the Devuan installation ISOs, which includes architectures i386 and amd4 with a collection of ISO for each:

  • netinstall - installation fully over the network
  • server - ~CD size ISO for server installation, also without network
  • desktop - 4G ISO for desktop installation also without network
  • cd2 - package pool desktop add-on for server install with xfce4
  • cd3 - package pool desktop add-on for server install with more
  • cd4 - package pool desktop add-on for server install with even more
  • pool1 - package pool of the 5000 top votes from devuan popcon
  • pool2 - package pool of the 15000 top votes from devuan popcon

The pool Directory

The pool directory contains "seed" files for creating the package lists for the various ISOs. The first build step for an ISO includes processing the seed files by recursively following up on all dependencies and recommended packages so as to generate the actual and complete package list for the target ISO.

The first build step further sets up subdirectories of package description snippets in the library-$ARCH-$SECTION directories. The package description snippets are cutouts from the build host's Packages files by basically just splitting them up into separate files for the individual package descriptions, named by the package name.

The build host must be set up with the target sources and it must be duly updated for the target ISO building.

The local package description library uses several optional source points that are overlayed on a simple assumption of version priority. Overall it uses the following source list points; the first is required, and the rest are optional:

  1. $CODENAME main main/debian-installer contrib non-free
  2. $CODENAME-security main main/debian-installer
  3. $CODENAME-updates main main/debian-installer
  4. $CODENAME-proposed-updates main main/debian-installer

See the pool/Makefile for detils, and use "make -C pool reallyclean" to clean it up.

How to Build an ISO

ISOs are only built for the current (aka host) architecture. Use:

$ ./build-sudo.sh $SUITE $ISO $VERSION

with

  • SUITE being one of ascii, beowulf, chimaera or daedalus

  • ISO being one of netinstall, server, desktop, cd2, cd3, pool1 or pool2, or the special token all to build all of them.

  • VERSION being the your desired release version code, e.g. 3.a for building a beowulf ISO. This version code gets imprinted into the ISO.

Using APT Proxy

If you use an apt proxy (like for example apt-cacher-ng) you should export the http_proxy variable before building.

Example:

export http_proxy="http://localhost:3142/"

Including local udebs

Locally built udebs for the installer may be added to the appropriate subdirectory of localudebs/ for the target architecture.

  • localudebs/i686/ are for i386 udebs
  • localudebs/x86_64/ are for amd64 udebs

Any such a udeb package will be added to the installer and override any downloadable package of the same name regardless of package versions.

Including local debs

Locally built packages may be added to the installer, to be present during installation as a local repository. Such packages should be added into the appropriate subdirectory of localdebs/ for the target architecture.

  • localdebs/i686/ are for i386 packages
  • localdebs/x86_64/ are for amd64 packages

The packages will be included as a repository directory named /localudebs on the ISO, and the installer will transiently include this as a trusted repository during the installation.

Note that the file:/media/cdrom/localdebs repository is just as an alternative package repository and that by default the highest version available is the installation candidate. Thus, the localdebs packages are default installation candidates only when their versions are the highest available.

Help?

On occasion, things don't just work. This typically means that the package collection (which is downloaded on demand) has changed in some way that results in an inconsistency between package descriptions and downloaded packages. The master switch for recovery is then a reallyclean of the build area, and an update + dist-upgrade of the build host, possibly followed by a reboot, esp if the kernel version has changed. For example:

$ make reallyclean
$ ./build-sudo.sh beowulf netinstall 3.a