Compare commits
11 Commits
v2.60
...
bash_OBSOL
| Author | SHA1 | Date | |
|---|---|---|---|
| 42f7cf5903 | |||
| ef2790eb68 | |||
| 6d9f24ee28 | |||
| c418fca548 | |||
| 2d6384e15d | |||
| a08ae5dd06 | |||
| 91b8edcc26 | |||
| 3cbf32be30 | |||
| 4e2a2fecb1 | |||
| 001fdf99d3 | |||
| e95c4f3cff |
7
README.obsolete
Normal file
7
README.obsolete
Normal file
@@ -0,0 +1,7 @@
|
||||
!!!!!!!!!!! NOTE !!!!!!!!!!!!!
|
||||
|
||||
THIS BRANCH IS *NO LONGER MAINTAINED*.
|
||||
IT HAS BEEN OBSOLETED BY THE (now merged into master) "python_rewrite" BRANCH.
|
||||
DO NOT SEND BUGS REGARDING THIS BRANCH.
|
||||
DO NOT USE THIS BRANCH.
|
||||
IT IS ONLY KEPT AROUND FOR HISTORICAL REASONS.
|
||||
54
docs/README
54
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 <PROJECT ROOT>/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 <PROJECT ROOT>/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.
|
||||
|
||||
BIN
extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz
Normal file
BIN
extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz
Normal file
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
|
||||
@@ -43,7 +43,7 @@ cpio
|
||||
cpuburn
|
||||
cpupower
|
||||
crackpkcs12
|
||||
#cryptcat
|
||||
cryptcat
|
||||
cryptsetup
|
||||
csync2
|
||||
customizepkg-scripting
|
||||
@@ -141,18 +141,35 @@ keyutils
|
||||
kismet-allplugins
|
||||
lftp
|
||||
links
|
||||
logkeys-git
|
||||
#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
|
||||
@@ -163,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
|
||||
@@ -207,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
|
||||
@@ -238,6 +253,7 @@ rsnapshot
|
||||
rygel
|
||||
safecopy
|
||||
samba
|
||||
scalpel-git
|
||||
scapy
|
||||
screen
|
||||
scrounge-ntfs
|
||||
|
||||
4
extra/pre-build.d/etc/customizepkg.d/autopsy
Executable file
4
extra/pre-build.d/etc/customizepkg.d/autopsy
Executable file
@@ -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}
|
||||
3
extra/pre-build.d/etc/customizepkg.d/etc-update
Executable file
3
extra/pre-build.d/etc/customizepkg.d/etc-update
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1}
|
||||
3
extra/pre-build.d/etc/customizepkg.d/fang
Executable file
3
extra/pre-build.d/etc/customizepkg.d/fang
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1}
|
||||
3
extra/pre-build.d/etc/customizepkg.d/libnfc
Executable file
3
extra/pre-build.d/etc/customizepkg.d/libnfc
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1}
|
||||
4
extra/pre-build.d/etc/customizepkg.d/ms-sys
Executable file
4
extra/pre-build.d/etc/customizepkg.d/ms-sys
Executable file
@@ -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}
|
||||
@@ -168,6 +168,7 @@ EOF
|
||||
echo "Done."
|
||||
echo -n "...Importing keys..."
|
||||
${CHROOTCMD} ${i}/ pacman-key --populate archlinux >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${i}/ pacman-key -r 93481F6B >> "${LOGFILE}.${FUNCNAME}" 2>&1 # add developer's keys
|
||||
echo "Done."
|
||||
# Prep base building system
|
||||
echo -n "...Installing base packages..."
|
||||
@@ -197,6 +198,7 @@ EOF
|
||||
${CHROOTCMD} ${i} bash -c "pacman --noconfirm -U /var/tmp/pkg/apacman.tar.xz && mkdir /var/tmp/apacman && chmod 0750 /var/tmp/apacman && chown root:aurbuild /var/tmp/apacman " >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
${CHROOTCMD} ${i} bash -c "apacman -S --noconfirm --noedit --skipinteg -S apacman apacman-deps expac" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${i} bash -c "apacman --gendb" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
#rm -rf ${i}/var/tmp/pkg
|
||||
#${CHROOTCMD} ${i}/ pacman -S --noconfirm --needed yaourt >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
@@ -223,6 +225,7 @@ EOF
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
set -e
|
||||
${CHROOTCMD} ${i}/ bash -c "yes '' | apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${i}/ "apacman --gendb" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
set +e
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
set -e
|
||||
@@ -232,6 +235,7 @@ EOF
|
||||
if [ -n "${PKGLIST}" ];
|
||||
then
|
||||
${CHROOTCMD} ${CHROOTDIR32}/ /usr/bin/bash -c "apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${CHROOTDIR32}/ "apacman --gendb" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
fi
|
||||
set +e
|
||||
for x in $(find ${CHROOTDIR32}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
@@ -241,6 +245,7 @@ EOF
|
||||
if [ -n "${PKGLIST}" ];
|
||||
then
|
||||
${CHROOTCMD} ${CHROOTDIR64}/ /usr/bin/bash -c "apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${CHROOTDIR64}/ "apacman --gendb" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
fi
|
||||
set +e
|
||||
for x in $(find ${CHROOTDIR64}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
@@ -259,8 +264,9 @@ EOF
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
set +e
|
||||
${CHROOTCMD} ${i}/ /usr/bin/bash -c "apacman --noconfirm --noedit --skipinteg -S --needed linux" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${i}/ "apacman --gendb" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
cp -a ${i}/boot/vmlinuz-linux ${i}/boot/vmlinuz-linux-${DISTNAME}
|
||||
#cp -a ${i}/boot/initramfs-linux.img ${i}/boot/initramfs-linux-${DISTNAME}.img
|
||||
cp -af ${i}/boot/initramfs-linux.img ${i}/boot/initramfs-linux-${DISTNAME}.img
|
||||
set -e
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
# Uncomment if you wish to use the mkpasswd binary from within the chroot...
|
||||
@@ -268,6 +274,7 @@ EOF
|
||||
#for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
echo -n "Regular packages..."
|
||||
${CHROOTCMD} ${i}/ bash -c "yes '' | apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
${CHROOTCMD} ${i}/ "apacman --gendb" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
set +e
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
|
||||
set -e
|
||||
@@ -308,7 +315,7 @@ EOF
|
||||
set +e
|
||||
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
|
||||
${CHROOTCMD} ${i}/ /usr/bin/bash -c "mkinitcpio -p linux" >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
cp -a ${i}/boot/initramfs-linux.img ${i}/boot/initramfs-linux-${DISTNAME}.img
|
||||
cp -af ${i}/boot/initramfs-linux.img ${i}/boot/initramfs-linux-${DISTNAME}.img
|
||||
set -e
|
||||
done
|
||||
|
||||
|
||||
@@ -15,8 +15,12 @@ function stuffy {
|
||||
|
||||
mkdir -p ${TEMPDIR}/{EFI/{${DISTNAME},boot},loader/entries}
|
||||
# this stuff comes from the prebootloader pkg and systemd-boot. lets us boot on UEFI machines with secureboot still enabled.
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi ${TEMPDIR}/EFI/boot/bootx64.efi
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/HashTool.efi ${TEMPDIR}/EFI/boot/.
|
||||
# the signed prebootloader binaries, however, have been replaced by non-signed ones. so we need to fetch them.
|
||||
# fetched from http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/
|
||||
curl -so ${TEMPDIR}/EFI/boot/bootx64.efi "http://blog.hansenpartnership.com/wp-uploads/2013/PreLoader.efi" # MD5: 4f7a4f566781869d252a09dc84923a82 TODO: implement checksumming check
|
||||
curl -so ${TEMPDIR}/EFI/boot/HashTool.efi http://blog.hansenpartnership.com/wp-uploads/2013/HashTool.efi
|
||||
#cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi ${TEMPDIR}/EFI/boot/bootx64.efi
|
||||
#cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/HashTool.efi ${TEMPDIR}/EFI/boot/.
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${TEMPDIR}/EFI/boot/loader.efi # TODO: can i use syslinux.efi instead?
|
||||
|
||||
echo "Checking/fetching UEFI shells..."
|
||||
@@ -69,8 +73,9 @@ EOF
|
||||
# now we need to calculate the space for various files we're going to include...
|
||||
FATSIZE=$(stat --format="%s" ${TEMPDIR}/boot/${UXNAME}.64.kern) # EFI/BDISK/bdisk.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/boot/${UXNAME}.64.img))) # EFI/BDISK/bdisk.img
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi))) # EFI/boot/bootx64.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/prebootloader/HashTool.efi))) # EFI/boot/HashTool.efi
|
||||
#FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi))) # EFI/boot/bootx64.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/EFI/boot/bootx64.efi))) # EFI/boot/bootx64.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/EFI/boot/HashTool.efi))) # EFI/boot/HashTool.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${BASEDIR}/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi))) # EFI/boot/loader.efi
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/EFI/shellx64_v1.efi)))
|
||||
FATSIZE=$((${FATSIZE} + $(stat --format="%s" ${TEMPDIR}/EFI/shellx64_v2.efi)))
|
||||
@@ -110,8 +115,8 @@ title UEFI Shell (v1)
|
||||
efi /EFI/shellx64_v1.efi
|
||||
EOF
|
||||
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/PreLoader.efi ${SRCDIR}/efiboot/EFI/boot/bootx64.efi
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/prebootloader/HashTool.efi ${SRCDIR}/efiboot/EFI/boot/.
|
||||
cp ${TEMPDIR}/EFI/boot/bootx64.efi ${SRCDIR}/efiboot/EFI/boot/bootx64.efi
|
||||
cp ${TEMPDIR}/EFI/boot/HashTool.efi ${SRCDIR}/efiboot/EFI/boot/.
|
||||
cp ${BASEDIR}/root.x86_64/usr/lib/systemd/boot/efi/systemd-bootx64.efi ${SRCDIR}/efiboot/EFI/boot/loader.efi # TODO: can i use syslinux.efi instead?
|
||||
cp ${TEMPDIR}/EFI/shellx64_v{1,2}.efi ${SRCDIR}/efiboot/EFI/.
|
||||
umount ${SRCDIR}/efiboot
|
||||
|
||||
@@ -288,17 +288,22 @@ EOF
|
||||
git submodule init >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
git submodule update >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
cd ${BASEDIR}/src/ipxe/src
|
||||
git checkout master .
|
||||
git clean -xdf > /dev/null 2>&1
|
||||
git reset --hard HEAD >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
git checkout master >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
git pull >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
git checkout master >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
# It will not build if we don't do this. Apparently we *need* libiberty.
|
||||
git revert -n 40a9a0f0
|
||||
# ...or do we?
|
||||
#git revert -n 40a9a0f0
|
||||
## Apply our patches.
|
||||
# This replaces the 0003 and 0004 patches.
|
||||
# curl -s https://patch-diff.githubusercontent.com/raw/ipxe/ipxe/pull/49.patch > ${BASEDIR}/src/ipxe_local/patches/ipxe-0003-no-PIE.patch 2>/dev/null # this isn't really necessary, I think? If you're dying right around this step, uncomment.
|
||||
curl -s https://patch-diff.githubusercontent.com/raw/ipxe/ipxe/pull/50.patch > ${BASEDIR}/src/ipxe_local/patches/ipxe-0004-eiso.patch 2>/dev/null
|
||||
for i in $(find ${BASEDIR}/src/ipxe_local/patches/ -type f -iname "*.patch" -printf '%P\n' | sort);
|
||||
do
|
||||
patch -Np2 < ${BASEDIR}/src/ipxe_local/patches/${i} >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
patch --verbose -Np2 < ${BASEDIR}/src/ipxe_local/patches/${i} >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
done
|
||||
## SSL
|
||||
SSLDIR="${BASEDIR}/src/ipxe_local/ssl"
|
||||
@@ -379,9 +384,9 @@ EOF
|
||||
mv -f ${BASEDIR}/src/ipxe/src/bin/ipxe.eiso ${ISODIR}/${MINIFILENAME}
|
||||
make clean >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
cd ${BASEDIR}/src/ipxe
|
||||
git checkout master . > /dev/null 2>&1
|
||||
git clean -xdf > /dev/null 2>&1
|
||||
git reset --hard >> "${LOGFILE}.${FUNCNAME}" 2>&1
|
||||
git checkout master . > /dev/null 2>&1
|
||||
#git reset --hard HEAD > /dev/null 2>&1
|
||||
echo
|
||||
fi
|
||||
|
||||
@@ -8,6 +8,7 @@ dhcp
|
||||
dhcpcd
|
||||
dosfstools
|
||||
efibootmgr
|
||||
efitools
|
||||
efivar
|
||||
ethtool
|
||||
file
|
||||
@@ -27,7 +28,6 @@ netctl
|
||||
networkmanager
|
||||
openssh
|
||||
openvpn
|
||||
prebootloader
|
||||
pv
|
||||
rsync
|
||||
sed
|
||||
|
||||
2
src/ipxe
2
src/ipxe
Submodule src/ipxe updated: 6143057430...827dd1bfee
@@ -1,6 +1,8 @@
|
||||
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 @@
|
||||
@@ -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,7 +10,15 @@
|
||||
|
||||
/** The "scriptlet" setting */
|
||||
const struct setting scriptlet_setting __setting ( SETTING_MISC, scriptlet ) = {
|
||||
@@ -538,11 +539,10 @@
|
||||
@@ -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.
|
||||
*
|
||||
*/
|
||||
@@ -16,7 +26,10 @@
|
||||
+ printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME
|
||||
NORMAL " -- " PRODUCT_TAG_LINE " -- "
|
||||
- CYAN PRODUCT_URI NORMAL "\nFeatures:", product_version );
|
||||
- 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" );
|
||||
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
From d2092664b3cf866b2ab338fe056149d3266d0acc Mon Sep 17 00:00:00 2001
|
||||
From 189652b03032305a2db860e76fb58e81e3420c4d Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hesse <mail@eworm.de>
|
||||
Date: Sun, 19 Apr 2015 13:16:09 +0200
|
||||
Subject: [PATCH 1/1] allow to build ISO image with EFI support (ipxe.eiso)
|
||||
Date: Wed, 24 Feb 2016 09:16:51 +0100
|
||||
Subject: [PATCH] allow to build ISO image with EFI support (ipxe.eiso)
|
||||
|
||||
Signed-off-by: Christian Hesse <mail@eworm.de>
|
||||
---
|
||||
src/arch/x86/Makefile.pcbios | 6 ++++++
|
||||
src/util/geniso | 52 +++++++++++++++++++++++++++++++++----------
|
||||
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 18a6f75..9cb3e0b 100644
|
||||
index f8c2253..1e01636 100644
|
||||
--- a/src/arch/x86/Makefile.pcbios
|
||||
+++ b/src/arch/x86/Makefile.pcbios
|
||||
@@ -82,6 +82,12 @@ NON_AUTO_MEDIA += iso
|
||||
@@ -86,6 +86,12 @@ NON_AUTO_MEDIA += iso
|
||||
$(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \
|
||||
VERSION="$(VERSION)" bash util/geniso -o $@ $<
|
||||
|
||||
@@ -27,7 +26,7 @@ index 18a6f75..9cb3e0b 100644
|
||||
NON_AUTO_MEDIA += liso
|
||||
%liso: %lkrn util/geniso
|
||||
diff --git a/src/util/geniso b/src/util/geniso
|
||||
index 521c929..9e8588c 100755
|
||||
index ff090d4..7694036 100755
|
||||
--- a/src/util/geniso
|
||||
+++ b/src/util/geniso
|
||||
@@ -6,16 +6,21 @@ function help() {
|
||||
@@ -89,7 +88,7 @@ index 521c929..9e8588c 100755
|
||||
fi
|
||||
|
||||
dir=$(mktemp -d bin/iso.dir.XXXXXX)
|
||||
@@ -122,6 +135,21 @@ case "${LEGACY}" in
|
||||
@@ -122,13 +135,28 @@ case "${LEGACY}" in
|
||||
# copy isolinux bootloader
|
||||
cp ${ISOLINUX_BIN} ${dir}
|
||||
|
||||
@@ -109,9 +108,8 @@ index 521c929..9e8588c 100755
|
||||
+ fi
|
||||
+
|
||||
# syslinux 6.x needs a file called ldlinux.c32
|
||||
LDLINUX_C32=$(dirname ${ISOLINUX_BIN})/ldlinux.c32
|
||||
if [ -s ${LDLINUX_C32} ]; then
|
||||
@@ -129,7 +157,7 @@ case "${LEGACY}" in
|
||||
if [ -n "${LDLINUX_C32}" -a -s "${LDLINUX_C32}" ]; then
|
||||
cp ${LDLINUX_C32} ${dir}
|
||||
fi
|
||||
|
||||
# generate the iso image
|
||||
@@ -120,6 +118,3 @@ index 521c929..9e8588c 100755
|
||||
|
||||
# isohybrid will be used if available
|
||||
if isohybrid --version >/dev/null 2>/dev/null; then
|
||||
--
|
||||
2.3.5
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
From a4f7e3ba395af4cd0a706df635309d4ef837ecf8 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hesse <mail@eworm.de>
|
||||
Date: Wed, 8 Apr 2015 09:51:41 +0200
|
||||
Subject: [PATCH 2/2] Fix no-PIE workaround for i386 builds
|
||||
|
||||
This workaround did not work for my version of gcc (4.9.2 20150304) as
|
||||
no option -nopie exists.
|
||||
|
||||
We take another way: Let's check whether or not the macro __PIE__ is defined
|
||||
and add -fno-PIE if it is.
|
||||
|
||||
Signed-off-by: Christian Hesse <mail@eworm.de>
|
||||
---
|
||||
src/arch/i386/Makefile | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile
|
||||
index 99f8753..897081b 100644
|
||||
--- a/src/arch/i386/Makefile
|
||||
+++ b/src/arch/i386/Makefile
|
||||
@@ -75,8 +75,8 @@ CFLAGS += -Ui386
|
||||
# output on stderr instead of checking the exit status.
|
||||
#
|
||||
ifeq ($(CCTYPE),gcc)
|
||||
-PIE_TEST = [ -z "`$(CC) -fno-PIE -nopie -x c -c /dev/null -o /dev/null 2>&1`" ]
|
||||
-PIE_FLAGS := $(shell $(PIE_TEST) && $(ECHO) '-fno-PIE -nopie')
|
||||
+PIE_TEST = $(CC) -dM -E - < /dev/null | grep -q '__PIE__'
|
||||
+PIE_FLAGS := $(shell $(PIE_TEST) && $(ECHO) '-fno-PIE')
|
||||
WORKAROUND_CFLAGS += $(PIE_FLAGS)
|
||||
endif
|
||||
|
||||
--
|
||||
2.3.5
|
||||
|
||||
Reference in New Issue
Block a user