Compare commits

...

6 Commits
v2.51 ... v2.62

16 changed files with 132 additions and 71 deletions

View File

@@ -155,6 +155,22 @@ then
exit 0
fi
# implement for future, needs tweaking- JUST rebuild the ISO.
#if [[ ${1} == "respin" ]];
#then
# if [[ "${MULTIARCH}" == "y" ]];
# then
# centos_is_stupid
# yo_dj any
# else
# centos_is_stupid
# yo_dj 64
# centos_is_stupid
# yo_dj 32
# fi
#fi
#
# or are we just building?
if [[ ${1} == "build" || -z ${1} || ${1} == "all" ]];
then

View File

@@ -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

Binary file not shown.

View File

@@ -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,12 +141,11 @@ 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 # 404'ing on source url at the moment
lsof
lsscsi
lxde
@@ -156,7 +156,6 @@ magicrescue
mbr
mbuffer
mcelog
md5deep
mdadm
mdcrack
# superseded by storcli
@@ -254,7 +253,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 +270,7 @@ thttpd
tmon
tmux
tre
truecrack-svn
truecrack-git
truecrypt
tor
udftools
@@ -296,7 +295,7 @@ vncrack
vnstat
vpnc
weplab
whdd
#whdd #currently depends on dialog, which is broke as shit
whois
wifite-mod-pixiewps-git
wipe

View File

@@ -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'

View File

@@ -0,0 +1,3 @@
#!/bin/bash
sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1}

View File

@@ -0,0 +1,3 @@
#!/bin/bash
sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1}

View File

@@ -0,0 +1,3 @@
#!/bin/bash
sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1}

View File

@@ -64,4 +64,4 @@ COMPRESSION="xz"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=""
COMPRESSION_OPTIONS="-9"

View File

@@ -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

View File

@@ -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..."
@@ -179,7 +180,7 @@ EOF
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
echo "Done."
echo -n "...Upgrading any outdated packages..."
${CHROOTCMD} ${i}/ pacman -Syyu --noconfirm >> "${LOGFILE}.${FUNCNAME}" 2>&1
${CHROOTCMD} ${i}/ pacman -Syyu --force --noconfirm >> "${LOGFILE}.${FUNCNAME}" 2>&1
${CHROOTCMD} ${i}/ pacman-key --refresh-keys >> "${LOGFILE}.${FUNCNAME}" 2>&1
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
echo "Done. Finishing/cleaning up..."
@@ -196,7 +197,7 @@ EOF
#${CHROOTCMD} ${i} "pacman --noconfirm -U /var/tmp/pkg/apacman.tar.xz" >> "${LOGFILE}.${FUNCNAME}" 2>&1
${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-deps expac" >> "${LOGFILE}.${FUNCNAME}" 2>&1
${CHROOTCMD} ${i} bash -c "apacman -S --noconfirm --noedit --skipinteg -S apacman apacman-deps expac" >> "${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

View File

@@ -298,7 +298,7 @@ EOF
## Apply our patches.
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,8 +379,8 @@ EOF
mv -f ${BASEDIR}/src/ipxe/src/bin/ipxe.eiso ${ISODIR}/${MINIFILENAME}
make clean >> "${LOGFILE}.${FUNCNAME}" 2>&1
cd ${BASEDIR}/src/ipxe
git reset --hard >> "${LOGFILE}.${FUNCNAME}" 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

View File

@@ -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 */

View File

@@ -5,21 +5,21 @@ Subject: [PATCH 1/1] allow to build ISO image with EFI support (ipxe.eiso)
Signed-off-by: Christian Hesse <mail@eworm.de>
---
src/arch/i386/Makefile.pcbios | 6 +++++
src/arch/x86/Makefile.pcbios | 6 ++++++
src/util/geniso | 52 +++++++++++++++++++++++++++++++++----------
2 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/src/arch/i386/Makefile.pcbios b/src/arch/i386/Makefile.pcbios
index ff82373..c7a58eb 100644
--- a/src/arch/i386/Makefile.pcbios
+++ b/src/arch/i386/Makefile.pcbios
@@ -59,6 +59,12 @@ NON_AUTO_MEDIA += iso
$(QM)$(ECHO) " [GENISO] $@"
$(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) VERSION="$(VERSION)" bash util/geniso -o $@ $<
diff --git a/src/arch/x86/Makefile.pcbios b/src/arch/x86/Makefile.pcbios
index 18a6f75..9cb3e0b 100644
--- a/src/arch/x86/Makefile.pcbios
+++ b/src/arch/x86/Makefile.pcbios
@@ -82,6 +82,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
+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 $@ $<
+