From acd5c0665a7dcd2595ada62e4d4e799de447cf23 Mon Sep 17 00:00:00 2001 From: r00t Date: Tue, 15 Nov 2016 00:24:25 -0500 Subject: [PATCH] porting in updated changes from bash branch (master) --- docs/README | 54 ++++++-- .../apacman-2.3-1-any.FIXED.pkg.tar.xz | Bin 0 -> 45152 bytes extra/mirrorlist | 10 +- extra/packages.both | 47 ++++--- extra/pre-build.d/32/etc/pacman.conf | 95 ++++++++++++++ extra/pre-build.d/64/etc/pacman.conf | 104 +++++++++++++++ extra/pre-build.d/etc/apacman.conf | 37 +++--- extra/pre-build.d/etc/customizepkg.d/autopsy | 4 + .../pre-build.d/etc/customizepkg.d/etc-update | 3 + extra/pre-build.d/etc/customizepkg.d/fang | 3 + extra/pre-build.d/etc/customizepkg.d/libnfc | 3 + extra/pre-build.d/etc/customizepkg.d/ms-sys | 4 + extra/pre-build.d/etc/mkinitcpio.conf | 2 +- extra/pre-build.d/etc/pacman.d/mirrorlist | 13 +- src/ipxe_local/patches/ipxe-0002-banner.patch | 33 +++-- src/ipxe_local/patches/ipxe-0004-eiso.patch | 120 ++++++++++++++++++ 16 files changed, 463 insertions(+), 69 deletions(-) create mode 100644 extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz create mode 100644 extra/pre-build.d/32/etc/pacman.conf create mode 100644 extra/pre-build.d/64/etc/pacman.conf create mode 100755 extra/pre-build.d/etc/customizepkg.d/autopsy create mode 100755 extra/pre-build.d/etc/customizepkg.d/etc-update create mode 100755 extra/pre-build.d/etc/customizepkg.d/fang create mode 100755 extra/pre-build.d/etc/customizepkg.d/libnfc create mode 100755 extra/pre-build.d/etc/customizepkg.d/ms-sys create mode 100644 src/ipxe_local/patches/ipxe-0004-eiso.patch diff --git a/docs/README b/docs/README index 35ec9dc..20d9a77 100644 --- a/docs/README +++ b/docs/README @@ -16,6 +16,9 @@ It should be fine over ethernet, since hardware switches are much faster and eff Future versions, once this project has a dumping ground, will fetch highly compressed snapshotted chroot filesystems instead of dynamically building the entire install chroots (both x86_64 and i686) instead (with the option of building fresh locally, disabled by default). + +Maybe. + Till then, sorry for the inconvenience. !!!!!!!!!!!!!!!!!!!!!! @@ -56,11 +59,6 @@ All commands below should be issued in the root working directory of this git re but also disk space for working, the finished ISO(s), etc.) -The following packages installed on the build host: -(NOTE: future versions will have dependencies checked automatically and installed if necessary, -depending on distro your host build machine is. the OS detection and package installation component of that isn't -done yet though. 2014.10.31) -(NOTE2: Make sure all the packages you specify are valid package names. A mistyped package name will cause the chroot creation to -break and everything else will break as a result.) curl dosfstools @@ -72,9 +70,24 @@ squashfs-tools xorriso (in RPMForge repo for CentOS 7) xz -and *probably* a few others. The scripts run with set -e for the most part, so if something's missed, you'll know. +and maybe a few others. The scripts run with set -e for the most part, so if something's missed, you'll know. Oh, you will know. +If these packages are missing, they will be automatically installed. Currently, the following distros as host build systems +are supported (assumes most recent release): + +Antergos +Arch +CentOS +Debian +Fedora +Gentoo +Mageia +Manjaro +openSUSE +RHEL +SUSE +Ubuntu ## Configuration ## See extra/build.conf.sample. Copy to /build.conf if you wish to modify any of the values, otherwise the defaults @@ -105,6 +118,18 @@ Also note the following files/paths: --/mirror.lst.sh: Builds a fresh mirror list. Note that it is US based. +-docs: + Documentation for BDisk. +--/COPYING: + See LICENSE. +--/README: + This file. +--/LICENSE: + The license file. +--/FAQ: + Several quick questions you might have. +--/TODO: + Some features, bug fixes, etc. I have planned. -examples: Included recommendation for how to lay things out, etc. --/HTTP: @@ -112,7 +137,7 @@ Also note the following files/paths: -extra: Supporting files for the base building system (mirrorlist, etc.). --/${UXNAME}.png: - A 640x480 8-bit RGBA colour PNG which will be used as the background for the bootsplash (if booting via BIOS and not UEFI) +L A 640x480 8-bit RGBA colour PNG which will be used as the background for the bootsplash (if booting via BIOS and not UEFI) --/bootstrap/apacman-*.tar.xz: An AUR-enabled package manager. Necessary for AUR support. --/build.conf.sample: @@ -130,6 +155,8 @@ Also note the following files/paths: --/pre-build.d: Contains files injected into the system. Both 64-bit and 32-bit environments. Note: be sure to place them in hierarchical order (e.g. if you wish to have a file at /usr/foo/bar, you will need to place it in /extra/pre-build.d/usr/foo/bar) + (NOTE: Make sure all the packages you specify are valid package names. A mistyped or nonexistent package name will cause the chroot + creation to break and everything else will break as a result.) --/pre-build.d/32: Same as above, but only for 32-bit environments. --/pre-build.d/64: @@ -143,8 +170,6 @@ Also note the following files/paths: Here you can find full output of the runs. They are prefixed with run's PID number, and named after the function they occur in. -overlay: These files are applied AFTER the initial setup of the chroots. Same hierarchy rules as extra/pre-build.d. --README: - This file. -src: Supporting source code/source code from other projects. --ipxe/: @@ -153,14 +178,12 @@ Also note the following files/paths: Various patches and supporting configs to tweak the iPXE build. -tftpboot: Files to be served via TFTP for PXE booting. This directory is wiped out during any bin/clean.sh operation. --TODO: - This is just what I'm using to track stuff I want to add. You may notice other files come and go; they're mostly there for extra goodies/used to determine other things. ## (Re)Building ## -Building must be done as root, and on an Arch x86_64 system (future versions will allow for non-Arch distros). +Building must be done as root, and on a supported distro (see Prerequisites for a list). # bin/build.sh @@ -168,3 +191,10 @@ Yeah. It's that easy. The finished product is in iso/. If you want more verbosity, check out the logs/ directory. + + +## Submitting Patches ## +If you have a fix or feature you'd like added, please follow the same pull request process for the kernel +(https://www.kernel.org/doc/Documentation/SubmittingPatches) and email to bts@square-r00t.net + +Alternatively, file a bug at https://bugs.square-r00t.net/index.php?project=2 with a patch attached. diff --git a/extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz b/extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..4705468ea28d7efab3b816453e6f6abc831b6e82 GIT binary patch literal 45152 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 literal 0 HcmV?d00001 diff --git a/extra/mirrorlist b/extra/mirrorlist index c06c32d..e71b908 100644 --- a/extra/mirrorlist +++ b/extra/mirrorlist @@ -1,7 +1,7 @@ -# Server list generated by rankmirrors on 2015-02-26 +# Server list generated by rankmirrors on 2016-07-09 +Server = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch -Server = http://mirror.umd.edu/archlinux/$repo/os/$arch -Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch -Server = http://mirror.jmu.edu/pub/archlinux/$repo/os/$arch -Server = http://mirror.es.its.nyu.edu/archlinux/$repo/os/$arch +Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch Server = http://mirrors.rutgers.edu/archlinux/$repo/os/$arch +Server = http://mirror.jmu.edu/pub/archlinux/$repo/os/$arch +Server = http://arch.mirrors.ionfish.org/$repo/os/$arch diff --git a/extra/packages.both b/extra/packages.both index b9c5982..a8344bf 100644 --- a/extra/packages.both +++ b/extra/packages.both @@ -43,7 +43,7 @@ cpio cpuburn cpupower crackpkcs12 -#cryptcat +cryptcat cryptsetup csync2 customizepkg-scripting @@ -54,7 +54,7 @@ dd_rescue dd_rhelp debianutils debootstrap -dialog +#dialog #giving a weird dependency issue diffutils djohn dmidecode @@ -107,6 +107,7 @@ gptfdisk gst-libav gst-plugins-ugly hashcat +hashdeep hddtemp hdparm hexcurse @@ -140,23 +141,38 @@ keyutils kismet-allplugins lftp links -#logkeys -logkeys-keymaps +#logkeys-git # requires a /dev/input, which apparently isn't included in the chroots lm_sensors lrzsz lshw -lsiutil +#lsiutil # giving intermittent errors when trying to fetch source lsof lsscsi -lxde +#lxde # apacman currently doesn't like package groups, so... +gpicview +lxappearance +lxappearance-obconf +lxde-common +lxde-icon-theme +lxdm +lxinput +lxlauncher +lxmusic +lxpanel +lxrandr +lxsession +lxtask +lxterminal +openbox +pcmanfm +# end lxde lynx #lzip macchanger -magicrescue +#magicrescue # no longer maintained, upstream down mbr mbuffer mcelog -md5deep mdadm mdcrack # superseded by storcli @@ -164,11 +180,10 @@ mdcrack memtester mfoc minicom -mondo +#mondo # mindi-busybox fails to build 09.23.2016 mtd-utils mtr mtree -#mtx multipath-tools myrescue nbd @@ -208,20 +223,19 @@ php php-fpm php-gd php-mcrypt -#phrasendrescher +phrasendrescher pigz pkgfile pkgtools ppp pptpclient -prebootloader procinfo-ng procps-ng progsreiserfs psmisc pwgen pixz -pyrit-svn +pyrit python2-gnuplot python2-pyx rarcrack @@ -239,6 +253,7 @@ rsnapshot rygel safecopy samba +scalpel-git scapy screen scrounge-ntfs @@ -254,7 +269,7 @@ smartmontools smbclient s-nail socat -#star ## do people even USE tape packups anymore? +#star ## do people even USE tape backups anymore? storcli strace stress @@ -271,7 +286,7 @@ thttpd tmon tmux tre -truecrack-svn +truecrack-git truecrypt tor udftools @@ -296,7 +311,7 @@ vncrack vnstat vpnc weplab -whdd +#whdd #currently depends on dialog, which is broke as shit whois wifite-mod-pixiewps-git wipe diff --git a/extra/pre-build.d/32/etc/pacman.conf b/extra/pre-build.d/32/etc/pacman.conf new file mode 100644 index 0000000..308a2ee --- /dev/null +++ b/extra/pre-build.d/32/etc/pacman.conf @@ -0,0 +1,95 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -C - -f %u > %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = i686 + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +UseSyslog +Color +TotalDownload +CheckSpace +VerbosePkgLists + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Required DatabaseOptional #RE-ENABLE ME WHEN A NEW SNAPSHOT IS RELEASED WITH FIXED GPG +SigLevel = Never +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +#[archlinuxfr] +#SigLevel = Never +#Server = http://repo.archlinux.fr/$arch diff --git a/extra/pre-build.d/64/etc/pacman.conf b/extra/pre-build.d/64/etc/pacman.conf new file mode 100644 index 0000000..6cfaeb0 --- /dev/null +++ b/extra/pre-build.d/64/etc/pacman.conf @@ -0,0 +1,104 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -C - -f %u > %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = x86_64 + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +UseSyslog +Color +TotalDownload +CheckSpace +VerbosePkgLists + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Required DatabaseOptional #RE-ENABLE ME WHEN A NEW SNAPSHOT IS RELEASED WITH FIXED GPG +SigLevel = Never +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +#[archlinuxfr] +#SigLevel = Never +#Server = http://repo.archlinux.fr/$arch diff --git a/extra/pre-build.d/etc/apacman.conf b/extra/pre-build.d/etc/apacman.conf index 3723234..f9e124a 100644 --- a/extra/pre-build.d/etc/apacman.conf +++ b/extra/pre-build.d/etc/apacman.conf @@ -11,27 +11,26 @@ #buildonly=1 #cachevcs=1 #ignorearch=1 -#needed=1 +#keepkeys=1 +needed=1 +#noaur=1 noconfirm=1 noedit=1 -#noaur=1 -#noconfirm=1 -#noedit=1 -#nofail=1 +nofail=1 #preview=1 -#purgebuild=1 +progress=1 +purgebuild=1 #quiet=1 -#skipcache=1 -skipinteg=1 +skipcache=1 +#skipinteg=1 #skiptest=1 #warn=1 -#tmpdir=/var/tmp/apacman -#TMPDIR=/var/tmp/apacman # # CONFIGURATION # +#builddir="/tmp/pkgbuild-$UID" #tmpdir="/tmp/apacmantmp-$UID" #makepkgconf="/etc/makepkg.conf" #usermakepkgconf="$HOME/.makepkg.conf" @@ -39,19 +38,21 @@ skipinteg=1 #downdir="/var/cache/pacman/pkg" #savedir="/var/cache/apacman/pkg" #editor="nano -w" -editor="vim" +#pager="less -R" #RPCURL="https://aur.archlinux.org/rpc.php?type" #PKGURL="https://aur.archlinux.org" +#WEBURL="https://www.archlinux.org" #ABSURL="rsync.archlinux.org" # # COLORIZATION # -COLOR1='\e[1;39m' -COLOR2='\e[1;32m' -COLOR3='\e[1;35m' -COLOR4='\e[1;36m' -COLOR5='\e[1;34m' -COLOR6='\e[1;33m' -COLOR7='\e[1;31m' +#COLOR1='\e[1;39m' +#COLOR2='\e[1;32m' +#COLOR3='\e[1;35m' +#COLOR4='\e[1;36m' +#COLOR5='\e[1;34m' +#COLOR6='\e[1;33m' +#COLOR7='\e[1;31m' + diff --git a/extra/pre-build.d/etc/customizepkg.d/autopsy b/extra/pre-build.d/etc/customizepkg.d/autopsy new file mode 100755 index 0000000..024dbcf --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/autopsy @@ -0,0 +1,4 @@ +#!/bin/bash + +# original URL at sourceforge chokes out +sed -re 's@^(source=\(").*$@\1ftp://ftp.gnome.org/mirror/temp/sf2015/a/au/autopsy/autopsy/2.24/autopsy-2.24.tar.gz")@g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/etc-update b/extra/pre-build.d/etc/customizepkg.d/etc-update new file mode 100755 index 0000000..a762691 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/etc-update @@ -0,0 +1,3 @@ +#!/bin/bash + +sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/fang b/extra/pre-build.d/etc/customizepkg.d/fang new file mode 100755 index 0000000..a762691 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/fang @@ -0,0 +1,3 @@ +#!/bin/bash + +sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/libnfc b/extra/pre-build.d/etc/customizepkg.d/libnfc new file mode 100755 index 0000000..a762691 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/libnfc @@ -0,0 +1,3 @@ +#!/bin/bash + +sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/ms-sys b/extra/pre-build.d/etc/customizepkg.d/ms-sys new file mode 100755 index 0000000..4addea7 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/ms-sys @@ -0,0 +1,4 @@ +#!/bin/bash + +# original URL at sourceforge chokes out +sed -re 's@^(source=\(").*$@\1http://fossies.org/linux/privat/${pkgname}-${pkgver}.tar.gz")@g' ${1} diff --git a/extra/pre-build.d/etc/mkinitcpio.conf b/extra/pre-build.d/etc/mkinitcpio.conf index f151ea1..22c7305 100644 --- a/extra/pre-build.d/etc/mkinitcpio.conf +++ b/extra/pre-build.d/etc/mkinitcpio.conf @@ -64,4 +64,4 @@ COMPRESSION="xz" # COMPRESSION_OPTIONS # Additional options for the compressor -#COMPRESSION_OPTIONS="" +COMPRESSION_OPTIONS="-9" diff --git a/extra/pre-build.d/etc/pacman.d/mirrorlist b/extra/pre-build.d/etc/pacman.d/mirrorlist index 6fefe45..0d60fc3 100644 --- a/extra/pre-build.d/etc/pacman.d/mirrorlist +++ b/extra/pre-build.d/etc/pacman.d/mirrorlist @@ -1,7 +1,6 @@ -# Server list generated by rankmirrors on 2014-11-10 -Server = http://mirror.rit.edu/archlinux/$repo/os/$arch -Server = http://mirror.cc.columbia.edu/pub/linux/archlinux/$repo/os/$arch -Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch -Server = http://mirror.jmu.edu/pub/archlinux/$repo/os/$arch -Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch -Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch +Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch +Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch +Server = http://il.mirrors.linaxe.net/archlinux/$repo/os/$arch +Server = http://mirror.grig.io/archlinux/$repo/os/$arch +Server = http://arch.mirrors.ionfish.org/$repo/os/$arch +Server = http://cosmos.cites.illinois.edu/pub/archlinux/$repo/os/$arch diff --git a/src/ipxe_local/patches/ipxe-0002-banner.patch b/src/ipxe_local/patches/ipxe-0002-banner.patch index 6db1e86..aaead6d 100644 --- a/src/ipxe_local/patches/ipxe-0002-banner.patch +++ b/src/ipxe_local/patches/ipxe-0002-banner.patch @@ -1,6 +1,8 @@ ---- a/src/usr/autoboot.c 2015-06-29 04:18:17.055394598 -0400 -+++ b/src/usr/autoboot.c 2015-06-29 22:04:28.692916217 -0400 -@@ -71,6 +71,7 @@ +diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c +index e93b015..758e187 100644 +--- a/src/usr/autoboot.c ++++ b/src/usr/autoboot.c +@@ -71,6 +71,7 @@ static int ( * is_autoboot_device ) ( struct net_device *netdev ); #define NORMAL "\033[0m" #define BOLD "\033[1m" #define CYAN "\033[36m" @@ -8,16 +10,27 @@ /** The "scriptlet" setting */ const struct setting scriptlet_setting __setting ( SETTING_MISC, scriptlet ) = { -@@ -560,9 +561,9 @@ +@@ -521,7 +522,6 @@ static int shell_banner ( void ) { + * @ret rc Return status code + */ + int ipxe ( struct net_device *netdev ) { +- struct feature *feature; + struct image *image; + char *scriptlet; + int rc; +@@ -538,11 +538,11 @@ int ipxe ( struct net_device *netdev ) { * do so. * */ - printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME " %s" -- NORMAL " -- " PRODUCT_TAG_LINE " -- " ++ printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME + NORMAL " -- " PRODUCT_TAG_LINE " -- " - CYAN PRODUCT_URI NORMAL "\nFeatures:", product_version ); -+ printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME -+ CYAN PRODUCT_URI NORMAL "\n" -+ BOLD BLUE "http://bdisk.square-r00t.net/" NORMAL "\n" ); - for_each_table_entry ( feature, FEATURES ) - printf ( " %s", feature->name ); +- for_each_table_entry ( feature, FEATURES ) +- printf ( " %s", feature->name ); ++ CYAN PRODUCT_URI NORMAL "\n" ++ BOLD "BDisk" BLUE "LiveDistro" NORMAL " -- Welp, Yer Boned!(TM) -- " ++ BOLD BLUE "https://bdisk.square-r00t.net/" NORMAL "\n" ); printf ( "\n" ); + + /* Boot system */ diff --git a/src/ipxe_local/patches/ipxe-0004-eiso.patch b/src/ipxe_local/patches/ipxe-0004-eiso.patch new file mode 100644 index 0000000..2105776 --- /dev/null +++ b/src/ipxe_local/patches/ipxe-0004-eiso.patch @@ -0,0 +1,120 @@ +From 189652b03032305a2db860e76fb58e81e3420c4d Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Wed, 24 Feb 2016 09:16:51 +0100 +Subject: [PATCH] allow to build ISO image with EFI support (ipxe.eiso) + +--- + src/arch/x86/Makefile.pcbios | 6 +++++ + src/util/geniso | 52 ++++++++++++++++++++++++++++++++++---------- + 2 files changed, 46 insertions(+), 12 deletions(-) + +diff --git a/src/arch/x86/Makefile.pcbios b/src/arch/x86/Makefile.pcbios +index f8c2253..1e01636 100644 +--- a/src/arch/x86/Makefile.pcbios ++++ b/src/arch/x86/Makefile.pcbios +@@ -86,6 +86,12 @@ NON_AUTO_MEDIA += iso + $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \ + VERSION="$(VERSION)" bash util/geniso -o $@ $< + ++# rule to make a non-emulation ISO boot image with EFI support ++NON_AUTO_MEDIA += eiso ++%eiso: %lkrn bin-i386-efi/ipxe.efi bin-x86_64-efi/ipxe.efi util/geniso ++ $(QM)$(ECHO) " [GENISO] $@" ++ $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) VERSION="$(VERSION)" bash util/geniso -e -o $@ $< ++ + # rule to make a floppy emulation ISO boot image + NON_AUTO_MEDIA += liso + %liso: %lkrn util/geniso +diff --git a/src/util/geniso b/src/util/geniso +index ff090d4..7694036 100755 +--- a/src/util/geniso ++++ b/src/util/geniso +@@ -6,16 +6,21 @@ function help() { + echo "usage: ${0} [OPTIONS] foo.lkrn [bar.lkrn,...]" + echo + echo "where OPTIONS are:" ++ echo " -e build image with EFI support" + echo " -h show this help" + echo " -l build legacy image with floppy emulation" + echo " -o FILE save iso image to file" + } + ++EFI=0 + LEGACY=0 + FIRST="" + +-while getopts "hlo:" opt; do ++while getopts "ehlo:" opt; do + case ${opt} in ++ e) ++ EFI=1 ++ ;; + h) + help + exit 0 +@@ -37,17 +42,25 @@ if [ -z "${OUT}" ]; then + exit 1 + fi + +-# There should either be mkisofs or the compatible genisoimage program +-for command in genisoimage mkisofs; do +- if ${command} --version >/dev/null 2>/dev/null; then +- mkisofs=(${command}) +- break +- fi +-done +- +-if [ -z "${mkisofs}" ]; then +- echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2 ++# We need xorriso (from libisoburn) for EFI support, so try that first. ++if xorriso --version >/dev/null 2>/dev/null; then ++ mkisofs=(xorriso -as mkisofs) ++elif [ ${EFI} -eq 1 ]; then ++ echo "${0}: xorriso not found, but required for EFI support. Please install." >&2 + exit 1 ++else ++ # fall back to mkisofs or the compatible genisoimage program ++ for command in genisoimage mkisofs; do ++ if ${command} --version >/dev/null 2>/dev/null; then ++ mkisofs=(${command}) ++ break ++ fi ++ done ++ ++ if [ -z "${mkisofs}" ]; then ++ echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2 ++ exit 1 ++ fi + fi + + dir=$(mktemp -d bin/iso.dir.XXXXXX) +@@ -122,13 +135,28 @@ case "${LEGACY}" in + # copy isolinux bootloader + cp ${ISOLINUX_BIN} ${dir} + ++ mkisofs+=(-b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table) ++ ++ if [ "${EFI}" -eq 1 ]; then ++ # generate EFI image ++ img=${dir}/efiboot.img ++ ++ mformat -f 2880 -C -i ${img} :: ++ mmd -i ${img} "::/EFI" ++ mmd -i ${img} "::/EFI/BOOT" ++ mcopy -m -i ${img} bin-x86_64-efi/ipxe.efi "::EFI/BOOT/BOOTX64.EFI" ++ mcopy -m -i ${img} bin-i386-efi/ipxe.efi "::EFI/BOOT/BOOTIA32.EFI" ++ ++ mkisofs+=(-eltorito-alt-boot -e efiboot.img -isohybrid-gpt-basdat -no-emul-boot) ++ fi ++ + # syslinux 6.x needs a file called ldlinux.c32 + if [ -n "${LDLINUX_C32}" -a -s "${LDLINUX_C32}" ]; then + cp ${LDLINUX_C32} ${dir} + fi + + # generate the iso image +- "${mkisofs[@]}" -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -output ${OUT} ${dir} ++ "${mkisofs[@]}" -output ${OUT} ${dir} + + # isohybrid will be used if available + if isohybrid --version >/dev/null 2>/dev/null; then