Commit Graph

884 Commits

Author SHA1 Message Date
Adrian Gibanel Lopez 9cebad25f9 Handle multiple bootloaders properly in binary_iso . Force mkisofs to add an additional eltorito entry if we have more than one bootloader. 2016-07-31 15:09:13 +02:00
Adrian Gibanel Lopez 58a97219c9 Stolen efi-image and grub-cpmodules from src:live-installer
These two scripts simplify the creation of efi images based on grub-efi.
I have decided to simply steal them. If I had to include them thanks to a source package that would have mean that an src repo would have to be defined by default.
TODO: Ask in a bug a RFE so that these two scripts are put into a binary that could be consumed by both live-installer and live-build packages.
2016-07-31 15:09:13 +02:00
Adrian Gibanel Lopez c4327f6138 binary_loopback_cfg now renders grub.cfg by default.
The binary parts of grub-pc are left for the original binary_grub-pc.
As a consequence both /boot/grub/grub.cfg and /boot/grub/loopback.cfg files will be present in any Debian Live CD.

This might be useful to be reused from binary_grub-* bootloaders.
2016-07-31 15:09:13 +02:00
Adrian Gibanel Lopez 9d1a983cc8 Added new multi bootloader helper functions
* Added: functions/bootloaders.sh . This file adds bootloader functions that are heavily used in efi scenarios where a bootloader can act as a first or an extra bootloader.

Since the introduction of the new switch:

--bootloaders

you can setup it like this:

--bootloaders=syslinux,grub-efi

.

This means that syslinux is the first bootloader and grub-efi is the extra bootloader.

* Added new bootloader functions: Check_Non_First_Bootloader and Check_Non_Extra_Bootloader.

These functions let each one of the bootloaders abort the build because
they cannot perform a role either as a first bootloader or as an extra bootloader.

* Added bootloader functions: Check_First_Bootloader_Role, Check_Extra_Bootloader_Role and Check_Any_Bootloader_Role

These functions let bootloaders to force their default role in a single line.

At the same time many binary bootloaders were rewritten to make use of the new bootloader role functions explained above.

These roles were enforced:

binary_grub-legacy : First bootloader
binary_grub-pc : Either first or extra bootloader
binary_syslinux : Either first or extra bootloader

If a bootloader is tried to be used in a role that it's not meant to be used then the build fails because that might lead to a non-bootable system.
2016-07-31 15:08:11 +02:00
Adrian Gibanel Lopez 0624064d44 Remove repeated LB_PRIMARY_BOOTLOADER definition 2016-07-31 14:59:33 +02:00
Kristian Klausen 489a09ba92 Disable EXT4 64bit features
e2fsprogs 1.43 enabled ext4 "64bit" feature as default, which broke ext4
HDD images as EXTLINUX doesn't support it.
2016-06-18 19:36:16 +02:00
Kristian Klausen 5a981664ed Switch d-i.debian.org URIs from http to https.
Closes: 
2016-05-26 21:58:03 +02:00
Kristian Klausen 6b0777c53e Fix typo in binary_syslinux
Closes: 
2016-05-26 21:57:19 +02:00
Kristian Klausen a8cc708427 Correct syslinux/extlinux mbr.bin path (second try)
dash doesn't support parameter expansion it seems.
So implemented with "tr" as in binary_syslinus.
2016-05-26 21:26:36 +02:00
Kristian Klausen ddc6659002 Correct syslinux/extlinux mbr.bin path
Fix 
2016-05-26 17:34:22 +02:00
Kristian Klausen 090c6f3cea Revert "Correct syslinux mbr.bin path."
This reverts commit 5161dcdf3b.
2016-05-26 17:33:20 +02:00
Raphaël Hertzog 4d67c64ba2 Better handle empty package lists.
The fix in a294a46fb9 was not enough.
This should finally resolve the problem when a package list ends
up empty (most notably due to #if evaluating to false).

Sponsored-By: Offensive Security
2016-01-05 18:05:12 +01:00
Ben Armstrong 1f8975cc60 Remove 586 flavour for i386 architecture. (Closes: ) 2015-12-15 14:01:29 +00:00
Maximilian Mehnert 2c118b384c scripts/build/binary_hdd: Fix code style 2015-12-15 13:59:49 +00:00
Maximilian Mehnert 46920d22bd Old BIOS: start partition at specific place
Some BIOSes dont't boot from partitions starting at sector 1024.
Some are even more peculiar and only start from sector 63.
This patch adds an option for the binary_hdd target to manually
configure the partition start.
2015-09-23 10:48:46 +02:00
Maximilian Mehnert 8a52e569f5 force link creation when diverting flash-kernel
"ln -s /bin/true chroot/usr/sbin/flash-kernel" fails if the target
already exists.
2015-09-23 10:44:11 +02:00
Adrian Gibanel Lopez b6771e7360 Loopback cfg support.
Development details
--------------------

* This patch has been based originally on: binary_grub2 . It has been
improved thanks to some binary_syslinux bits.

* This patch ensures that binary_loopback_cfg needs is run
before binary_syslinux is run.
The reason is that it reuses some code from binary_syslinux to avoid
problems when binary_syslinux renames the kernel filenames.

* This patch already supports CPU detection

* I haven't tested all the possible scenarios for the script (with the
latest version). When amd64 and 486 Gnu/Linux flavours is used and the
bootloader is syslinux it works ok.

* I have not implemented a disable switch for not generating it.
Usually you always want loopback.cfg to be there.

* Compared to binary_grub2 script I have removed the installation
entries because I did not see any of them in binary_syslinux.

How to test
-----------

These are some steps to easily test if Looback cfg support is working ok.

0) We assume you have generated an iso
1) Make sure you have a partition that Grub understands. Plain ext4 or
vfat should do it.
2) Create directory: /boot/boot-isos/
3) Put the iso file into that directory making sure it has an ISO or iso
extension.
4) Setup your computer to boot from cdrom and use: Super Grub2 Disk
2.00s2 (Hybrid version recommended)
5) Choose Boot manually...
6) Choose Bootable ISOs (in /boot- ... )
7) Choose (the detected) GRUB Loopback Config
(hdN,msodsN)/boot/boot-ios/name-of-the.iso
8) You will be presented your loopback.cfg. Choose anyone of the entries
(unless it does not match your cpu architecture of course).
9) You should boot into your Debian Live without problems (thanks to
findiso boot parametre).

If you ever wanted to test from your grub2 installation instead from
Super Grub2 Disk check: http://www.supergrubdisk.org/wiki/Loopback.cfg
for an example.
2015-08-30 00:04:04 +02:00
Adrian Gibanel Lopez d515ae5684 Multi bootloader support
Note: OLDIFS use makes IFS to be reset to "" instead to it being unset.
Either we need to detect if old IFS was unset to unset it
or we need a proper way of setting it as a local variable.
Even more IFS it's not currently used in
Check_package (which it's called from: binary_hdd).
we should have a clean way of resetting/unsetting IFS when calling Check_package.

The other approach it's to explicitly define IFS with its default value in the
places inside live-build code where we implicitly suppose that it's going to have
its default value.
2015-08-29 23:56:41 +02:00
Carlos Zuferri d43874c405 Adding missing file extension to hdd images. 2015-08-27 10:17:22 +02:00
Maximilian Mehnert 5161dcdf3b Correct syslinux mbr.bin path. 2015-08-10 21:57:51 +02:00
Daniel Baumann 2dcb4dc06e Updating stat calls to also give the right result in container setups, thanks to Kristian Klausen <klausenbusk@hotmail.com> (Closes: ). 2015-08-10 21:45:00 +02:00
Daniel Baumann 421419c7fc Getting rid of hard-coded release numbers and using /etc/os-release instead (Closes: ).
Unfortunately VERSION_ID on testing/unstable is currently not included
in /etc/os-release, see .
2015-08-10 21:31:21 +02:00
Daniel Reichelt 2a400dc63e Fix check for presence of chroot hooks 2015-07-26 13:44:16 +02:00
Raphaël Hertzog 2792097208 Drop elilo from list of d-i required packages on i386.
It's gone from unstable/testing and has never been really useful
on non-ia64 systems.
2015-07-15 12:05:52 +02:00
Raphaël Hertzog b2dce51156 Do not pass an empty version in APT::FTPArchive::Release::Version (Closes: ).
This avoids live-build triggering an apt-ftparchive bug ().
2015-06-24 20:13:34 +02:00
Daniel Baumann f7d2e5a84b Correcting typos in chroot_hooks. 2015-06-15 07:11:03 +02:00
Daniel Baumann c8ccfbc1b3 Removing parent-directory too when cleaning up the config tree bind mount in chroot. 2015-06-05 23:15:19 +02:00
Daniel Baumann 64a82a486c Correcting execution of local source hooks. 2015-06-05 22:29:47 +02:00
Daniel Baumann 3d422634df Correcting execution of local binary hooks. 2015-06-05 22:28:50 +02:00
Daniel Baumann 2fec43b68a Correcting symlinking of hooks in lb config. 2015-06-05 21:35:59 +02:00
Daniel Baumann ca1a31dec6 Installing apt and dpkg updates (if any) first in derivatives mode, then doing dist-upgrade. 2015-05-23 12:42:16 +02:00
Daniel Baumann 50794b1de1 Splitting non-live specific hooks into their own subdirectory within hooks. 2015-05-20 08:19:56 +02:00
Daniel Baumann 1c3891775b Correcting leftover reference to binary_grub in binary. 2015-05-18 12:38:46 +02:00
Daniel Baumann 095e999d0c Removing broken samhain handling (Closes: ). 2015-05-14 13:15:45 +02:00
Daniel Baumann 9bf7c99eed Dropping obsolete template checks within grub helpers. 2015-05-04 20:37:00 +02:00
Daniel Baumann cf68abf417 Renaming grub helper to grub-legacy for consistency. 2015-05-04 20:36:20 +02:00
Daniel Baumann f93fa286d5 Renaming grub2 helper to grub-pc for later grub-efi addition. 2015-05-04 20:33:00 +02:00
Daniel Baumann 50b0b6f125 Dropping support for upstart.
Ubuntu switched to systemd too, no point in keeping
upstart support arround anymore.
2015-05-03 16:12:30 +02:00
Daniel Baumann 279a149d8a Dropping automagics for ubuntu.
Future live-build versions will still allow to use casper,
but its configuration will be done differently by a custom
config tree, rather than embedded and maintenance intensive
code in live-build itself.
2015-05-03 16:03:10 +02:00
Daniel Baumann f93e83e351 Dropping automagics for casper.
Future live-build versions will still allow to use casper,
but its configuration will be done differently by hooks
in the config tree, rather than embedded and maintenance intensive
code in live-build itself.
2015-05-03 15:50:03 +02:00
Daniel Baumann d18cb12cc1 Moving hooks to hooks/live, both in live-build sources and live-build configs.
Really soon live-build will support building non-live images out-of-the-box.
Therefore moving hooks into a live specific subdirectory.
2015-05-02 15:42:00 +02:00
Daniel Baumann 7e633e77f2 Moving grub and grub2 templates into shared bootloader config directory. 2015-04-29 07:52:56 +02:00
Daniel Baumann ed197cd852 Overwriting reather than appending content of autorun.inf (Closes: ). 2015-04-28 07:58:16 +02:00
Daniel Baumann d0219db4cf Calling lb config in lb build to support building a all-default-image with a simple lb build (Closes: ). 2015-04-28 07:58:16 +02:00
Daniel Baumann b1a8ae2e7c Correcting wrong tar command for tarball images, thanks to Yadickson Soto <yadickson@gmail.com> (Closes: ). 2015-04-28 07:58:16 +02:00
Daniel Baumann d32a3ed292 Removing temporary hack to exclude prism2-usb-firmware-installer, the download homepage seems to work again (Closes: ). 2015-04-27 07:50:52 +02:00
Daniel Baumann 319866567a Applying patch from jnqnfe <jnqnfe@gmail.com> to correct grub2 bootloader directory within the binary images (Closes: ). 2015-02-07 06:56:34 +01:00
Daniel Baumann 0c94983071 Using same logic to create the source/.disk/archive_trace for binary/.disk/archive_trace too (Closes: ). 2015-02-07 06:50:28 +01:00
Daniel Baumann e51315ae1e Switching to default to linux-image-586 on i386. 2015-01-26 06:30:49 +01:00
Daniel Baumann 673a8da58b Using -iso-level 3 option for xorriso to work with image sizes beyond 4 GB (Closes: ). 2015-01-25 12:17:50 +01:00
Daniel Baumann 1cb6743d1c Correcting typo in stagefile check for includes.chroot. 2015-01-25 10:27:26 +01:00
Daniel Baumann 1b4424f72f Adding check for isolinux build-depends in chroot. 2015-01-07 10:57:00 +01:00
Daniel Baumann affa96f63e Removing spurious .grep.swp temporary file in source tree. 2015-01-05 18:36:12 +01:00
Daniel Baumann 242aef5d83 Updating year in copyright notices to 2015. 2015-01-04 20:05:44 +01:00
Daniel Baumann 1354704cad Dropping manual include of dbus for live-config-systemd, it's a recommends now. 2015-01-04 19:53:11 +01:00
Daniel Baumann 2309994612 Correcting dependency checks in binary_package-lists (Closes: ). 2015-01-04 19:50:58 +01:00
Daniel Baumann 90024a0391 Applying slightly modified patch from jnqnfe <jnqnfe@gmail.com> to show correct win32-loader ico file on windows (Closes: ). 2015-01-04 19:37:21 +01:00
Daniel Baumann 93592a81b6 Dropping some sparc leftovers (Closes: ). 2015-01-04 18:58:35 +01:00
Daniel Baumann 30122125be Adding wget dependency in chroot_firmware. 2015-01-04 18:22:53 +01:00
Daniel Baumann 501a2817a5 Updating wget dependency in installer_debian-installer to look for wget on the host system rather than the chroot. 2015-01-04 18:22:03 +01:00
Daniel Baumann fdc9250bca Changing package dependency checks within chroot to work outside as well. 2015-01-04 18:19:47 +01:00
Daniel Baumann b814f4e07e Dropping cdebootstrap support (Closes: ).
debootstrap is the official tool to bootstrap debian,
cdebootstrap has had the one or other bug making it
broken for times during the release cycles.

The extra effort of supporting both debootstrap
and cdebootstrap is hardly worth it since the bootstrap
stage is cached anyway.
2014-12-23 22:54:41 +01:00
Daniel Baumann cb7e5f256c Cleaning up from python removal (LIVE_IMAGE_PARENT_ARCHIVE_AREAS). 2014-12-10 09:19:07 +01:00
Daniel Baumann 07253b661c Updating misc settings for progress-linux. 2014-12-10 09:01:06 +01:00
jnqnfe 31dbf95d86 Address "should check that we're building on debian through e.g. a 'derivative-is-based-on' variable or somesuch" fixme. 2014-12-10 08:44:05 +01:00
Jan Blunck 9d5639e9a0 Bind local repository into chroot directory.
If a local repository path is given as a mirror URL lets bind it into the
chroot. The local repository will be unmounted while processing "remove" or
latest by the exit function.
2014-12-10 08:43:02 +01:00
Daniel Baumann b5e99b5b14 Dropping support for wheezy. 2014-12-10 08:38:42 +01:00
Daniel Baumann 8233dd2c4f Ugly hack to force dbus inclusion when using live-config-systemd (Closes: ). 2014-12-10 08:23:26 +01:00
Daniel Baumann 048c0827ae Somewhat fixing sysvinit and casper legacy support, slightly improved patch from Rui Miguel P. Bernardo <rui.bernardo.pt@gmail.com> (Closes: , ).
This however will still not work properly building upstart based
images but they have been broken/unsupported anyway since a long
time.
2014-12-10 08:19:48 +01:00
jnqnfe 0e9d949c3d Fix typo in variable name (LH_LINUX_FLAVOURS instead of LB_LINUX_FLAVOURS) in installer_debian-installer script, affecting the armel architecture (Closes: ). 2014-12-10 07:58:02 +01:00
Daniel Baumann 57dd8c6376 Correcting typo in apt.conf.d directory name, thanks to jnqnfe <jnqnfe@gmail.com> (Closes: ). 2014-12-10 07:56:10 +01:00
Daniel Baumann 703b6d1f1f Correcting stage name check in chroot_includes, thanks to jnqnfe <jnqnfe@gmail.com> (Closes: ). 2014-12-10 07:54:30 +01:00
jnqnfe ef9b1e8487 Fix missing grub2 option in bootloader selection (Closes: ). 2014-12-10 07:51:50 +01:00
jnqnfe 6577c386ae Fix chroot_package-lists script saving to wrong cache (Closes: ). 2014-12-10 07:50:00 +01:00
Daniel Baumann 0290727086 Avoid failing to autocreate live.list.chroot in lb config when using --clean, thanks to jnqnfe <jnqnfe@gmail.com> (Closes: ). 2014-12-10 07:45:14 +01:00
Daniel Baumann 2eecd1b814 Cleaning up from python removal (LIVE_IMAGE_ARCHIVE_AREAS). 2014-12-10 07:41:29 +01:00
Daniel Baumann 1f7f6dd88a Cleaning up from python removal (LIVE_IMAGE_ARCHITECTURE). 2014-12-10 07:39:58 +01:00
Raphaël Hertzog 7b6dfd9d16 binary_syslinux: correct the path used to check if the bootloader is available.
The {iso,pxe,ext,sys}linux packages use /usr/lib/{ISO,PXE,EXT,SYS}LINUX/
directories and not /share/{ISO,PXE,EXT,SYS}LINUX/.
2014-12-10 06:26:55 +01:00
Raphaël Hertzog a294a46fb9 Properly support empty package lists.
The user might not have created any package list or it might have
created a packages list that end up being empty due to various #if tests.
We should not fail in those cases.
2014-12-10 06:24:02 +01:00
Daniel Baumann e9c1580178 Dropping prism2-usb-firmware-installer which fetches firmware from (at least) temporarily broken website. 2014-11-28 10:38:48 +01:00
Daniel Baumann 61a166adea Applying patch from Gabriele Gristina <gabriele.gristina@gmail.com> to fix automated checks for using aptitude. 2014-11-10 19:48:53 +01:00
Daniel Baumann 7c00b1b4ac Removing source_includes from toplevel source script, it was a python stub and will come back at a later point. 2014-09-11 06:40:15 +02:00
Daniel Baumann 8eaba8ea5c Making populating of live.chroot.list distribution specific. 2014-09-09 21:00:56 +02:00
Daniel Baumann d1eae01577 Creating live.list.chroot with live packages in config. 2014-09-04 04:49:05 +02:00
Daniel Baumann 50f2ef8712 Dropping leftover testroot call in bootstrap_cdebootstrap and bootstrap_debootstrap. 2014-08-28 23:07:31 +02:00
Daniel Baumann bc50443cf0 Moving partial python rewrite to separate branch, let's do it in the jessie+1 cycle rather than go with the current mixed code. 2014-08-28 00:59:28 +02:00
Daniel Baumann 2a829562c9 Adding second set of bootloader templates for wheezy. 2014-07-24 05:02:11 +02:00
Daniel Baumann dd47358700 Unconditionally replacing bootloader symlinks with syslinux 6 from jessie, this will break building wheezy images (so we have to come up with something better than that prior upload). 2014-07-22 20:26:06 +02:00
Daniel Baumann 1606ed3c5a Enabling syslinux 6 support for jessie as well. 2014-07-22 20:11:56 +02:00
Daniel Baumann 6cfcbbb576 Updating isohdpfx handling for syslinux 6. 2014-06-30 21:05:57 +02:00
Daniel Baumann e8cbbb09d3 Enabling syslinux 6 support for sid. 2014-06-13 08:39:22 +02:00
Daniel Baumann 4b815ee833 Also creating source stagefile in source_debian. 2014-05-07 07:59:44 +02:00
Daniel Baumann 6bfcd3689a Adding wheezy legacy handling for syslinux. 2014-05-07 05:27:23 +02:00
Daniel Baumann 604d5f1416 Only removing stage files in lb clean --stage and keep .build around in order for init to detect initialized config directories properly. 2014-05-07 05:22:30 +02:00
Simon McVittie 5d6574552f Add support for making ext[234] or btrfs hdd images bootable with extlinux (Closes: )
extlinux configuration for the bootable image is installed to
/boot/extlinux, matching the extlinux-install script in Debian.

From the configuration point of view it's still called "syslinux",
the same as the rest of the syslinux family (pxelinux, isolinux etc.)
2014-04-27 12:37:37 +02:00
Daniel Baumann 10a6e8e579 Cleaning /etc/hosts as in previous live-build versions (Closes: ). 2014-04-27 12:30:02 +02:00
Daniel Baumann d3a0022d00 Calling init in build as well when automatically populating a new config tree. 2014-04-27 07:18:06 +02:00
Daniel Baumann b30ee01e8a Abort early in installer_preseed if d-i is not included on the image (Closes: ). 2014-04-26 08:05:32 +02:00
Daniel Baumann 057a9097e5 Updating sha1sum for recompressed initrd images (Closes: ). 2014-04-26 08:05:32 +02:00
Daniel Baumann 9db58d9489 Dropping superfluous comment about recompression initrd images in chroot_hacks. 2014-04-26 08:05:32 +02:00