Compare commits

...

7 Commits
v1.60 ... v2.01

29 changed files with 343 additions and 104 deletions

View File

@@ -103,7 +103,7 @@ fi
set -e set -e
USERNAME_REAL="$(grep ${BUILD_USERNAME} /etc/passwd | cut -f5 -d':')" USERNAME_REAL="$(grep ${BUILD_USERNAME} /etc/passwd | cut -f5 -d':')"
cat > VERSION_INFO.txt << EOF cat > ${BASEDIR}/VERSION_INFO.txt << EOF
Version: ${VERSION} Version: ${VERSION}
Build: ${BUILD} Build: ${BUILD}
Time: ${BUILDTIME} Time: ${BUILDTIME}
@@ -120,9 +120,7 @@ source ${BASEDIR}/lib/03-release_me.func.sh
source ${BASEDIR}/lib/04-facehugger.func.sh source ${BASEDIR}/lib/04-facehugger.func.sh
source ${BASEDIR}/lib/05-chroot_wrapper.func.sh source ${BASEDIR}/lib/05-chroot_wrapper.func.sh
source ${BASEDIR}/lib/06-jenny_craig.func.sh source ${BASEDIR}/lib/06-jenny_craig.func.sh
if [[ "${HOST_DIST}" == "CentOS" || "${HOST_DIST}" == "RHEL" ]]; source ${BASEDIR}/lib/07-centos_is_stupid.func.sh
source ${BASEDIR}/lib/07-centos_is_stupid.func.sh
fi
source ${BASEDIR}/lib/08-will_it_blend.func.sh source ${BASEDIR}/lib/08-will_it_blend.func.sh
source ${BASEDIR}/lib/09-stuffy.func.sh source ${BASEDIR}/lib/09-stuffy.func.sh
source ${BASEDIR}/lib/10-yo_dj.func.sh source ${BASEDIR}/lib/10-yo_dj.func.sh
@@ -139,24 +137,10 @@ release_me 64 > /dev/null 2>&1
release_me 32 > /dev/null 2>&1 release_me 32 > /dev/null 2>&1
# do we need to perform any updates? # do we need to perform any updates?
if [[ -f "${CHROOTDIR}root.x86_64/root/chroot" || -f "${CHROOTDIR}root.i686/root/chroot" ]];
then
chroot_wrapper 64
chroot_wrapper 32
if [[ "${HOST_DIST}" == "CentOS" || "${HOST_DIST}" == "RHEL" ]];
centos_is_stupid
fi
will_it_blend 64
will_it_blend 32
yo_dj
fi
if [[ ${1} == "update" ]]; if [[ ${1} == "update" ]];
then then
mentos mentos
if [[ "${HOST_DIST}" == "CentOS" || "${HOST_DIST}" == "RHEL" ]]; centos_is_stupid
centos_is_stupid
fi
will_it_blend 32 will_it_blend 32
will_it_blend 64 will_it_blend 64
yo_dj yo_dj

View File

@@ -7,23 +7,25 @@ afflib
aircrack-ng aircrack-ng
apr apr
apr-util apr-util
arch-install-scripts
archiso
arj arj
asciidoc asciidoc
atop atop
autopsy autopsy
autossh autossh
backuppc
#bacula ## TODO: grab all the bacula packages in here
beep beep
bin86 bin86
bind-tools bind-tools
binutils binutils
bluez-utils bluez-utils
bonnie++ bonnie++
boxbackup-client
boxbackup-server
bozocrack-git bozocrack-git
bridge-utils bridge-utils
burp-backup-git
btrfs-progs btrfs-progs
bzip2
cabextract cabextract
cdrtools cdrtools
cdw cdw
@@ -33,17 +35,17 @@ chntpw
cifs-utils cifs-utils
ckermit ckermit
clamav clamav
clonezilla
cmospwd cmospwd
colordiff colordiff
coreutils
cowpatty cowpatty
cpio cpio
cpuburn cpuburn
cpupower cpupower
crackpkcs12 crackpkcs12
cronie
#cryptcat #cryptcat
cryptsetup cryptsetup
csync2
customizepkg-scripting customizepkg-scripting
dar dar
dcfldd dcfldd
@@ -52,9 +54,6 @@ dd_rescue
dd_rhelp dd_rhelp
debianutils debianutils
debootstrap debootstrap
dhclient
dhcp
dhcpcd
dialog dialog
diffutils diffutils
djohn djohn
@@ -63,7 +62,6 @@ dnssec-anchors
dnstracer dnstracer
#dnsutils #replaced by bind-tools, https://www.archlinux.org/packages/extra/x86_64/bind-tools/ #dnsutils #replaced by bind-tools, https://www.archlinux.org/packages/extra/x86_64/bind-tools/
dos2unix dos2unix
dosfstools
dropbear dropbear
dstat dstat
dump dump
@@ -73,8 +71,6 @@ dvd+rw-tools
e2fsprogs e2fsprogs
ecryptfs-utils ecryptfs-utils
ed ed
efibootmgr
efivar
elfutils elfutils
#elilo-efi #elilo-efi
elinks elinks
@@ -110,7 +106,6 @@ gpm
gptfdisk gptfdisk
gst-libav gst-libav
gst-plugins-ugly gst-plugins-ugly
gummiboot
hashcat hashcat
hddtemp hddtemp
hdparm hdparm
@@ -132,10 +127,8 @@ iozone
ipcalc ipcalc
iperf iperf
iperf3 iperf3
iproute2
ipsec-tools ipsec-tools
iptraf-ng iptraf-ng
iputils
irssi irssi
iso-codes iso-codes
isomaster isomaster
@@ -145,10 +138,8 @@ jfsutils
john john
keyutils keyutils
kismet-allplugins kismet-allplugins
libisoburn
lftp lftp
links links
localepurge
#logkeys #logkeys
logkeys-keymaps logkeys-keymaps
lm_sensors lm_sensors
@@ -159,10 +150,7 @@ lsof
lsscsi lsscsi
lxde lxde
lynx lynx
lz4
#lzip #lzip
lzo
lzop
macchanger macchanger
magicrescue magicrescue
mbr mbr
@@ -175,10 +163,8 @@ megaraid-cli
memtester memtester
mfoc mfoc
minicom minicom
mkinitcpio-nfs-utils mondo
ms-sys
mtd-utils mtd-utils
mtools
mtr mtr
mtree mtree
#mtx #mtx
@@ -189,11 +175,8 @@ ncftp
ncompress ncompress
ncrack ncrack
net-snmp net-snmp
net-tools
netctl
netselect netselect
nettle nettle
networkmanager
networkmanager-pptp networkmanager-pptp
nginx-devel nginx-devel
ngrep ngrep
@@ -202,15 +185,16 @@ nmon
ntfs-3g ntfs-3g
ntfsfixboot ntfsfixboot
nwipe nwipe
obnam
open-iscsi open-iscsi
openipmi openipmi
openssh
openvpn
ophcrack ophcrack
os-prober os-prober
p7zip p7zip
pack pack
par2cmdline par2cmdline
partclone
partclone-utils
parted parted
partimage partimage
pax-utils pax-utils
@@ -233,9 +217,8 @@ procinfo-ng
procps-ng procps-ng
progsreiserfs progsreiserfs
psmisc psmisc
pv
pwgen pwgen
pxz pixz
pyrit-svn pyrit-svn
python2-gnuplot python2-gnuplot
python2-pyx python2-pyx
@@ -251,7 +234,6 @@ rpcbind
rpmextract rpmextract
rp-pppoe rp-pppoe
rsnapshot rsnapshot
rsync
rygel rygel
safecopy safecopy
samba samba
@@ -261,27 +243,20 @@ scrounge-ntfs
scrub scrub
scsiadd scsiadd
sdparm sdparm
sed
setserial setserial
sg3_utils sg3_utils
sharutils sharutils
shorewall
sipcalc sipcalc
sipcrack sipcrack
smartmontools smartmontools
smbclient smbclient
s-nail s-nail
socat socat
squashfs3-tools #star ## do people even USE tape packups anymore?
squashfs-tools
#star
strace strace
stress stress
sucrack sucrack
sudo
symlinks symlinks
sysfsutils
syslinux
sysstat sysstat
tcpdump tcpdump
tcpslice tcpslice
@@ -292,7 +267,6 @@ thin-provisioning-tools
thttpd thttpd
tmon tmon
tmux tmux
traceroute
tre tre
truecrack-svn truecrack-svn
truecrypt truecrypt
@@ -300,6 +274,7 @@ tor
udftools udftools
#udpcast #udpcast
unace unace
unison
unrar unrar
unshield unshield
unzip unzip
@@ -332,6 +307,7 @@ xfsprogs
xmlto xmlto
xorg xorg
xorg-drivers xorg-drivers
xorg-xinit
zerofree zerofree
zip zip
zsh zsh

View File

@@ -25,8 +25,8 @@ noedit=1
skipinteg=1 skipinteg=1
#skiptest=1 #skiptest=1
#warn=1 #warn=1
tmpdir=/var/tmp/apacman #tmpdir=/var/tmp/apacman
TMPDIR=/var/tmp/apacman #TMPDIR=/var/tmp/apacman
# #
# CONFIGURATION # CONFIGURATION

View File

@@ -13,6 +13,7 @@ function so_check_me_out {
fi fi
fi fi
set +e
if [[ -z "${HOST_DIST}" ]]; if [[ -z "${HOST_DIST}" ]];
then then
for dist_profile in $(find "${BASEDIR}"/lib/prereqs -type f -name 'meta'); for dist_profile in $(find "${BASEDIR}"/lib/prereqs -type f -name 'meta');
@@ -20,7 +21,7 @@ function so_check_me_out {
source ${dist_profile} source ${dist_profile}
if [[ "${SUPPORTED}" != "yes" ]]; if [[ "${SUPPORTED}" != "yes" ]];
then then
continue continue
fi fi
eval "${CHECK_METHOD}" > /dev/null 2>&1 eval "${CHECK_METHOD}" > /dev/null 2>&1
if [[ "${?}" == "0" ]]; if [[ "${?}" == "0" ]];
@@ -31,6 +32,7 @@ function so_check_me_out {
fi fi
done done
fi fi
set -e
# Sanity is important. # Sanity is important.
if [[ -z "${HOST_DIST}" ]]; if [[ -z "${HOST_DIST}" ]];
@@ -39,17 +41,6 @@ function so_check_me_out {
exit 1 exit 1
fi fi
## TWEAKS GO HERE. ##
# stupid gentoo. good riddance.
if [[ "${HOST_DIST}" == "Gentoo" ]];
then
grep -q 'app-arch/lzma' /etc/portage/package.accept_keywords
if [[ "${?}" != "0" ]];
then
echo 'app-arch/lzma' >> /etc/portage/package.accept_keywords
fi
fi
# So we've validated the distro. Here, check for packages and install if necessary. maybe use an array, but it'd be better to soft-fail if one of the packages is missing. # So we've validated the distro. Here, check for packages and install if necessary. maybe use an array, but it'd be better to soft-fail if one of the packages is missing.
DISTRO_DIR="${BASEDIR}/lib/prereqs/${HOST_DIST}" DISTRO_DIR="${BASEDIR}/lib/prereqs/${HOST_DIST}"
@@ -59,6 +50,9 @@ function so_check_me_out {
# And once more, just to be safe. # And once more, just to be safe.
source ${META} source ${META}
## TWEAKS GET RUN HERE.
distro_specific_tweaks
if [[ "${PRE_RUN}" != 'none' ]]; if [[ "${PRE_RUN}" != 'none' ]];
then then
echo "Now updating your local package cache..." echo "Now updating your local package cache..."
@@ -70,8 +64,10 @@ function so_check_me_out {
echo "Please ensure you are connected to the Internet/have repositories configured correctly." echo "Please ensure you are connected to the Internet/have repositories configured correctly."
exit 1 exit 1
fi fi
set -e
fi fi
set +e
while read pkgname; while read pkgname;
do do
eval "${PKG_CHK}" >> "${LOGFILE}.${FUNCNAME}" 2>&1 eval "${PKG_CHK}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
@@ -85,11 +81,13 @@ function so_check_me_out {
echo "This usually means you aren't connected to the Internet or your package repositories" echo "This usually means you aren't connected to the Internet or your package repositories"
echo "are not configured correctly. Review the list of packages in ${PKGLIST} and ensure" echo "are not configured correctly. Review the list of packages in ${PKGLIST} and ensure"
echo "they are all available to be installed." echo "they are all available to be installed."
exit 1
fi fi
fi fi
done < ${PKGLIST} done < ${PKGLIST}
set -e set -e
rm -f "${LOCKFILE}"
} }
so_check_me_out so_check_me_out

View File

@@ -109,10 +109,10 @@ function mkchroot {
echo "Local: ${LOCSUM32}" echo "Local: ${LOCSUM32}"
echo "Remote: ${CKSUM32}" echo "Remote: ${CKSUM32}"
echo "Fetching fresh copy." echo "Fetching fresh copy."
curl -o latest.32.tar.gz "${RLSDIR}/${CURRLS32}" >> "${LOGFILE}.${FUNCNAME}" 2>&1 curl -o latest.32.tar.gz "${RLSDIR}/${CURRLS32}"
fi fi
else else
curl -o latest.32.tar.gz "${RLSDIR}/${CURRLS32}" >> "${LOGFILE}.${FUNCNAME}" 2>&1 curl -o latest.32.tar.gz "${RLSDIR}/${CURRLS32}"
fi fi
if [ ! -f "${CHROOTDIR32}/etc/pacman.d/gnupg/trustdb.gpg" ] || [ ! -f "${CHROOTDIR64}/etc/pacman.d/gnupg/trustdb.gpg" ]; if [ ! -f "${CHROOTDIR32}/etc/pacman.d/gnupg/trustdb.gpg" ] || [ ! -f "${CHROOTDIR64}/etc/pacman.d/gnupg/trustdb.gpg" ];
@@ -147,6 +147,7 @@ HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/" BUG_REPORT_URL="https://bugs.archlinux.org/"
EOF EOF
cp ${BASEDIR}/VERSION_INFO.txt ${BASEDIR}/root.${i}/.
done done
# And make it usable. # And make it usable.
@@ -212,10 +213,42 @@ EOF
sed -i -e "/^[[:space:]]*#*MAKEFLAGS=.*$/aMAKEFLAGS=\"-j${CPUCNT}\"" ${CHROOTDIR32}/etc/makepkg.conf sed -i -e "/^[[:space:]]*#*MAKEFLAGS=.*$/aMAKEFLAGS=\"-j${CPUCNT}\"" ${CHROOTDIR32}/etc/makepkg.conf
fi fi
# Baseline packages
echo "Installing baseline packages..."
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/lib/prereqs/iso.pkgs.lst | tr '\n' ' ')
for i in ${CHROOTDIR32} ${CHROOTDIR64};
do
set +e
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
set +e
for x in $(find ${i}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%%.pacorig} ; done
set -e
done
# 32-bit
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/lib/prereqs/iso.pkgs.lst.32 | tr '\n' ' ')
if [ -n "${PKGLIST}" ];
then
${CHROOTCMD} ${CHROOTDIR32}/ /usr/bin/bash -c "apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi
set +e
for x in $(find ${CHROOTDIR32}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
set -e
# 64-bit
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/lib/prereqs/iso.pkgs.lst.64 | tr '\n' ' ')
if [ -n "${PKGLIST}" ];
then
${CHROOTCMD} ${CHROOTDIR64}/ /usr/bin/bash -c "apacman --noconfirm --noedit --skipinteg -S --needed ${PKGLIST}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi
set +e
for x in $(find ${CHROOTDIR64}/etc/ -type f -iname "*.pacorig");do mv -f ${x} ${x%.pacorig} ; done
set -e
# preprocessing # preprocessing
sed -i -e '/base-devel/d ; /multilib-devel/d' ${BASEDIR}/extra/packages.* sed -i -e '/base-devel/d ; /multilib-devel/d' ${BASEDIR}/extra/packages.*
# both # both
echo "Installing common packages..." echo "Installing extra common packages..."
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.both | tr '\n' ' ') PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.both | tr '\n' ' ')
for i in ${CHROOTDIR32} ${CHROOTDIR64}; for i in ${CHROOTDIR32} ${CHROOTDIR64};
do do
@@ -278,7 +311,7 @@ EOF
done done
# 32-bit # 32-bit
echo "Installing packages for 32-bit..." echo "Installing extra packages for 32-bit..."
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.32 | tr '\n' ' ') PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.32 | tr '\n' ' ')
if [ -n "${PKGLIST}" ]; if [ -n "${PKGLIST}" ];
then then
@@ -290,7 +323,7 @@ EOF
echo "Done." echo "Done."
# 64-bit # 64-bit
echo "Installing packages for 64-bit..." echo "Installing estra packages for 64-bit..."
PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.64 | tr '\n' ' ') PKGLIST=$(sed -e '/^[[:space:]]*#/d ; /^[[:space:]]*$/d' ${BASEDIR}/extra/packages.64 | tr '\n' ' ')
if [ -n "${PKGLIST}" ]; if [ -n "${PKGLIST}" ];
then then
@@ -326,10 +359,13 @@ EOF
echo "Done." echo "Done."
rm -f ${LOCKFILE} #rm -f ${LOCKFILE}
echo "Chroot setup complete." echo "Chroot setup complete."
} }
mkchroot if [[ ! -f "${BASEDIR}/root.x86_64/VERSION_INFO.txt" && ! -f "${BASEDIR}/root.x86_64/VERSION_INFO.txt" ]];
then
mkchroot
fi

View File

@@ -22,6 +22,7 @@ function centos_is_stupid {
echo echo
fi fi
# We used to fetch and compile mksquashfs from source here, but no longer- because a new enough version is *finally* in CentOS repos as of CentOS 7. # We used to fetch and compile mksquashfs from source here, but no longer- because a new enough version is *finally* in CentOS repos as of CentOS 7.
# This also lets us cut out the crufty version check and replace it with the one above.
fi fi
# UGH. And you know what? Fuck SUSE too. # UGH. And you know what? Fuck SUSE too.
@@ -38,7 +39,60 @@ function centos_is_stupid {
curl -sLo /tmp/${XORRISO_RPM} "http://download.opensuse.org/repositories/home:/Knolleblau/openSUSE_${SUSE_VER}/x86_64/${XORRISO_RPM}" curl -sLo /tmp/${XORRISO_RPM} "http://download.opensuse.org/repositories/home:/Knolleblau/openSUSE_${SUSE_VER}/x86_64/${XORRISO_RPM}"
zypper install --no-confirm -l /tmp/${XORRISO_RPM} >> "${LOGFILE}.${FUNCNAME}" 2>&1 zypper install --no-confirm -l /tmp/${XORRISO_RPM} >> "${LOGFILE}.${FUNCNAME}" 2>&1
echo "Done." echo "Done."
echo echo
fi fi
fi fi
# And a double fuck-you to SLED/SLES.
if [[ "${HOST_DIST}" == "SUSE" ]];
then
source /etc/os-release
source ${BASEDIR}/lib/prereqs/SUSE/meta
SUSE_VER="${VERSION_ID}"
SUSE_REL="${ID}"
SDK_PKGS=(binutils-devel git xz-devel xz-devel-32bit zlib-devel zlib-devel-32bit)
if [[ "${PRE_RUN}" != 'none' ]];
then
echo "Now updating your local package cache..."
set +e
eval "${PRE_RUN}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
if [[ "${?}" != "0" ]];
then
echo "ERROR: Syncing your local package cache via ${PRE_RUN} command failed."
echo "Please ensure you are connected to the Internet/have repositories configured correctly."
exit 1
fi
fi
zypper search binutils-devel | egrep -q '^[[:space:]]*|[[:space:]]*binutils-devel[[:space:]]*'
if [[ "${?}" != "0" ]];
then
echo
echo "In order to install some of the necessary packages on the host, you will need to add the SLE SDK repository."
echo "It can be downloaded by visiting http://download.suse.com/ and search for 'SUSE Linux Enterprise Software Development Kit'"
echo "(or add it to your subscriptions)."
echo "See https://www.suse.com/documentation/${SUSE_REL}-${SUSE_VER}/book_sle_deployment/data/sec_add-ons_sdk.html for more information."
exit 1
else
for pkgname in "${SDK_PKGS[@]}";
do
eval "${PKG_CHK}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
if [[ "${?}" != "0" ]];
then
echo "Installing ${pkgname}..."
eval "${PKG_MGR}" >> "${LOGFILE}.${FUNCNAME}" 2>&1
if [[ "${?}" != "0" ]];
then
echo "ERROR: ${pkgname} was not found to be installed and we can't install it."
echo "This usually means you aren't connected to the Internet or your package repositories"
echo "are not configured correctly. Review the list of packages in ${PKGLIST} and ensure"
echo "they are all available to be installed."
fi
fi
done
fi
fi
} }

View File

@@ -2,6 +2,9 @@ function will_it_blend () {
FUNCNAME="will_it_blend" FUNCNAME="will_it_blend"
SQUASH_CMD="mksquashfs"
SQUASH_OPTS="-noappend -comp xz"
local ARCHSUFFIX="${1}" local ARCHSUFFIX="${1}"
if [[ "${1}" == "64" ]]; if [[ "${1}" == "64" ]];
then then

View File

@@ -23,12 +23,12 @@ function stuffy {
if [ ! -f "${TEMPDIR}/EFI/shellx64_v2.efi" ]; if [ ! -f "${TEMPDIR}/EFI/shellx64_v2.efi" ];
then then
# EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell ) # EFI Shell 2.0 for UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=UEFI_Shell )
curl -o ${TEMPDIR}/EFI/shellx64_v2.efi https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi >> "${LOGFILE}.${FUNCNAME}" 2>&1 curl -o ${TEMPDIR}/EFI/shellx64_v2.efi "https://github.com/tianocore/edk2/blob/master/ShellBinPkg/UefiShell/X64/Shell.efi?raw=true" >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi fi
if [ ! -f "${TEMPDIR}/EFI/shellx64_v1.efi" ]; if [ ! -f "${TEMPDIR}/EFI/shellx64_v1.efi" ];
then then
# EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell ) # EFI Shell 1.0 for non UEFI 2.3+ ( http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Efi-shell )
curl -o ${TEMPDIR}/EFI/shellx64_v1.efi https://svn.code.sf.net/p/edk2/code/trunk/edk2/EdkShellBinPkg/FullShell/X64/Shell_Full.efi >> "${LOGFILE}.${FUNCNAME}" 2>&1 curl -o ${TEMPDIR}/EFI/shellx64_v1.efi "https://github.com/tianocore/edk2/blob/master/EdkShellBinPkg/FullShell/X64/Shell_Full.efi?raw=true" >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi fi
# now for setting up loader config/entries. maybe add memtest or something in the future? i dunno. # now for setting up loader config/entries. maybe add memtest or something in the future? i dunno.

View File

@@ -5,3 +5,23 @@ PKG_MGR='pacman -S --needed --noconfirm ${pkgname}'
PRE_RUN='pacman -Syyy' PRE_RUN='pacman -Syyy'
PKG_CHK='pacman -Q ${pkgname}' PKG_CHK='pacman -Q ${pkgname}'
URL='http://antergos.com/' URL='http://antergos.com/'
function distro_specific_tweaks {
# For some reason, I can't get "yes y | " to parse correctly with eval. And Arch isn't smart enough
# to figure out that if I enable the multilib repos, *I want multilib gcc*. Fuck it. We'll just remove it first.
pacman -S --needed --noconfirm haveged >> "${LOGFILE}.${FUNCNAME}" 2>&1
haveged
set +e
for pkg_override in gcc gcc-libs;
do
pacman -Q ${pkg_override} >> "${LOGFILE}.${FUNCNAME}" 2>&1
if [[ "${?}" == "0" ]];
then
pacman -Rdd --noconfirm ${pkg_override} >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi
done
set -e
}

View File

@@ -5,3 +5,23 @@ PKG_MGR='pacman -S --needed --noconfirm ${pkgname}'
PRE_RUN='pacman -Syyy' PRE_RUN='pacman -Syyy'
PKG_CHK='pacman -Q ${pkgname}' PKG_CHK='pacman -Q ${pkgname}'
URL='https://www.archlinux.org/' URL='https://www.archlinux.org/'
function distro_specific_tweaks {
# For some reason, I can't get "yes y | " to parse correctly with eval. And Arch isn't smart enough
# to figure out that if I enable the multilib repos, *I want multilib gcc*. Fuck it. We'll just remove it first.
pacman -S --needed --noconfirm haveged >> "${LOGFILE}.${FUNCNAME}" 2>&1
haveged
set +e
for pkg_override in gcc gcc-libs;
do
pacman -Q ${pkg_override} >> "${LOGFILE}.${FUNCNAME}" 2>&1
if [[ "${?}" == "0" ]];
then
pacman -Rdd --noconfirm ${pkg_override} >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi
done
set -e
}

View File

@@ -1,5 +1,7 @@
binutils binutils
curl curl
dosfstools
findutils
gcc-libs-multilib gcc-libs-multilib
gcc-multilib gcc-multilib
git git
@@ -13,6 +15,5 @@ rsync
sed sed
squashfs-tools squashfs-tools
syslinux syslinux
xorriso
xz xz
zlib zlib

View File

@@ -1,9 +1,17 @@
NAME='CentOS' NAME='CentOS'
SUPPORTED='yes' # Currently fails on installing software *inside* the chroot. Will troubleshoot and restore when figured out.
SUPPORTED='untested'
CHECK_METHOD='egrep "^CentOS" /etc/redhat-release' CHECK_METHOD='egrep "^CentOS" /etc/redhat-release'
PKG_MGR='yum -y install ${pkgname}' PKG_MGR='yum -y install ${pkgname}'
PRE_RUN='none' PRE_RUN='none'
PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"' PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"'
URL='http://centos.org/' URL='http://centos.org/'
# NOTE: we handle installing of squashfs-tools (maybe) and xorriso in centos_is_stupid function.
# because they *suck*. Seriously. I need to install tk just to install xorriso. I mean, what? function distro_specific_tweaks {
# NOTE: we handle installing of squashfs-tools (maybe) and xorriso in centos_is_stupid function.
# because they *suck*. Seriously. I need to install tk just to install xorriso. I mean, what?
# You need EPEL enabled, by the way.
echo "No tweaks found."
}

View File

@@ -1,7 +1,13 @@
NAME='Debian' NAME='Debian'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^NAME=\"Debian\ GNU/Linux\"$" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"Debian\ GNU/Linux\"$" /etc/os-release'
PKG_MGR='apt-get -y install ${pkgname}' PKG_MGR='apt-get -y install ${pkgname}'
PRE_RUN='apt-get update' PRE_RUN='apt-get update'
PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"' PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"'
URL='http://www.debian.org/' URL='http://www.debian.org/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -5,3 +5,10 @@ PKG_MGR='apt-get -y install ${pkgname}'
PRE_RUN='apt-get update' PRE_RUN='apt-get update'
PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"' PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"'
URL='http://www.debian.org/' URL='http://www.debian.org/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1,7 +1,14 @@
NAME='Fedora' NAME='Fedora'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep '^Fedora' /etc/redhat-release' CHECK_METHOD='egrep '^Fedora' /etc/redhat-release'
PKG_MGR='dnf -y install ${pkgname}' PKG_MGR='dnf -y install ${pkgname}'
PRE_RUN='none' PRE_RUN='none'
PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"' PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"'
URL='https://getfedora.org/' URL='https://getfedora.org/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -14,6 +14,7 @@ sed
squashfs-tools squashfs-tools
syslinux syslinux
syslinux-devel syslinux-devel
tar
xorriso xorriso
xz xz
xz-devel xz-devel

View File

@@ -1,7 +1,20 @@
NAME='Gentoo' NAME='Gentoo'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^Gentoo\ Base\ System" /etc/gentoo-release' CHECK_METHOD='egrep "^Gentoo\ Base\ System" /etc/gentoo-release'
PKG_MGR='emerge -q1Dn ${pkgname}' PKG_MGR='emerge -q1Dn ${pkgname}'
PRE_RUN='emerge -q --sync' PRE_RUN='emerge -q --sync'
PKG_CHK='emerge -qp @installed 2>/dev/null | egrep -E "/${pkgname}-[0-9.]+"' PKG_CHK='emerge -qp @installed 2>/dev/null | egrep -E "/${pkgname}-[0-9.]+"'
URL='https://www.gentoo.org/' URL='https://www.gentoo.org/'
function distro_specific_tweaks {
# WHY IS THIS EVEN MASKED?!
set +e
grep -q 'app-arch/lzma' /etc/portage/package.accept_keywords
if [[ "${?}" != "0" ]];
then
echo 'app-arch/lzma' >> /etc/portage/package.accept_keywords
fi
set -e
}

View File

@@ -1,7 +1,14 @@
NAME='Mageia' NAME='Mageia'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^Mageia\ release\ " /etc/mageia-release' CHECK_METHOD='egrep "^Mageia\ release\ " /etc/mageia-release'
PKG_MGR='urpmi --force ${pkgname}' PKG_MGR='urpmi --force --auto ${pkgname}'
PRE_RUN='urpmi.update -a' PRE_RUN='urpmi.update -a'
PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"' PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"'
URL='https://www.mageia.org/' URL='https://www.mageia.org/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1,7 +1,27 @@
NAME='Manjaro' NAME='Manjaro'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^NAME=\"Manjaro Linux\"$" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"Manjaro Linux\"$" /etc/os-release'
PKG_MGR='pacman -S --needed --noconfirm ${pkgname}' PKG_MGR='pacman -S --needed --noconfirm ${pkgname}'
PRE_RUN='pacman -Syyyu' PRE_RUN='pacman -Syyyu'
PKG_CHK='pacman -Q ${pkgname}' PKG_CHK='pacman -Q ${pkgname}'
URL='https://manjaro.org/' URL='https://manjaro.org/'
function distro_specific_tweaks {
# For some reason, I can't get "yes y | " to parse correctly with eval. And Arch isn't smart enough
# to figure out that if I enable the multilib repos, *I want multilib gcc*. Fuck it. We'll just remove it first.
pacman -S --needed --noconfirm haveged >> "${LOGFILE}.${FUNCNAME}" 2>&1
haveged
set +e
for pkg_override in gcc gcc-libs;
do
pacman -Q ${pkg_override} >> "${LOGFILE}.${FUNCNAME}" 2>&1
if [[ "${?}" == "0" ]];
then
pacman -Rdd --noconfirm ${pkg_override} >> "${LOGFILE}.${FUNCNAME}" 2>&1
fi
done
set -e
}

View File

@@ -1,7 +1,13 @@
NAME='Mint' NAME='Mint'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^DESCRIPTION=\"Linux\ Mint\"" /etc/linuxmint/info' CHECK_METHOD='egrep "^DESCRIPTION=\"Linux\ Mint\"" /etc/linuxmint/info'
PKG_MGR='apt-get -y install ${pkgname}' PKG_MGR='apt-get -y install ${pkgname}'
PRE_RUN='apt-get -y update' PRE_RUN='apt-get -y update'
PKG_CHK='dpkg-query -l ${pkgname}' PKG_CHK='dpkg-query -l ${pkgname}'
URL='http://www.linuxmint.com/' URL='http://www.linuxmint.com/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1,8 +1,15 @@
NAME=RHEL NAME='RHEL'
SUPPORTED=yes SUPPORTED='untested'
# Red Hat Enterprise Linux Server release 6.5 (Santiago) # Red Hat Enterprise Linux Server release 6.5 (Santiago)
CHECK_METHOD='egrep "^Red\ Hat\ Enterprise\ Linux" /etc/redhat-release' CHECK_METHOD='egrep "^Red\ Hat\ Enterprise\ Linux" /etc/redhat-release'
PKG_MGR='yum -y install' PKG_MGR='yum -y install'
PRE_RUN='none' PRE_RUN='none'
PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"' PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"'
URL='http://www.redhat.com/en/technologies/linux-platforms/enterprise-linux' URL='http://www.redhat.com/en/technologies/linux-platforms/enterprise-linux'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1,8 +1,16 @@
NAME='SUSE' NAME='SUSE'
SUPPORTED='yes' SUPPORTED='untested'
# Both SLED and SLES. We can probably safely combine them. # Both SLED and SLES. We can probably safely combine them.
CHECK_METHOD='egrep "^NAME=\"SLE(D|S)\"$" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"SLE(D|S)\"$" /etc/os-release'
PKG_MGR='zypper install --no-confirm -l ${pkgname}' PKG_MGR='zypper install --no-confirm -l ${pkgname}'
PRE_RUN='zypper refresh' PRE_RUN='zypper refresh'
PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"' PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"'
URL='https://www.suse.com/' URL='https://www.suse.com/'
function distro_specific_tweaks {
# See the centos_is_stupid function. we do some tweaks there since -devel pkgs require the SDK on SLES/SLED.
echo "No tweaks found."
}

View File

@@ -1,7 +1,14 @@
NAME='Ubuntu' NAME='Ubuntu'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^DISTRIB_ID=Ubuntu$" /etc/lsb-release' CHECK_METHOD='egrep "^DISTRIB_ID=Ubuntu$" /etc/lsb-release'
PKG_MGR='apt-get -y install ${pkgname}' PKG_MGR='apt-get -y install ${pkgname}'
PRE_RUN='apt-get -y update' PRE_RUN='apt-get -y update'
PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"' PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"'
URL='http://www.ubuntu.com/' URL='http://www.ubuntu.com/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1,7 +1,14 @@
NAME='elementaryOS' NAME='elementaryOS'
SUPPORTED='yes' SUPPORTED='untested'
CHECK_METHOD='egrep "^DISTRIB_ID=\"elementary OS\"$" /etc/lsb-release' CHECK_METHOD='egrep "^DISTRIB_ID=\"elementary OS\"$" /etc/lsb-release'
PKG_MGR='apt-get -y install ${pkgname}' PKG_MGR='apt-get -y install ${pkgname}'
PRE_RUN='apt-get -y update' PRE_RUN='apt-get -y update'
PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"' PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"'
URL='https://elementary.io/' URL='https://elementary.io/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1 +1,40 @@
arch-install-scripts
archiso
bzip2
coreutils
cronie
dhclient
dhcp
dhcpcd
dosfstools
efibootmgr
efivar
ethtool
file
findutils
gummiboot
iproute2
iputils
libisoburn
localepurge
lz4
lzo
lzop
mkinitcpio-nfs-utils
ms-sys
mtools
net-tools
netctl
networkmanager
openssh
openvpn
pv
rsync
sed
shorewall
squashfs3-tools
squashfs-tools
sudo
sysfsutils
syslinux syslinux
traceroute

View File

@@ -0,0 +1 @@
# This can be used for 32-bit only packages

View File

@@ -0,0 +1 @@
# This can be used for 64-bit only packages

View File

@@ -1,8 +1,15 @@
NAME='openSUSE' NAME='openSUSE'
SUPPORTED='yes' SUPPORTED='untested'
# Default doesn't have the quotes around the value, but I have a feeling that's a bug that will get "fixed" soon. # Default doesn't have the quotes around the value, but I have a feeling that's a bug that will get "fixed" soon.
CHECK_METHOD='egrep "^NAME=\"?openSUSE\"?$" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"?openSUSE\"?$" /etc/os-release'
PKG_MGR='zypper install --no-confirm -l ${pkgname}' PKG_MGR='zypper install --no-confirm -l ${pkgname}'
PRE_RUN='zypper refresh' PRE_RUN='zypper refresh'
PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"' PKG_CHK='rpm -q ${pkgname} | egrep "^${pkgname}-[0-9]"'
URL='https://www.opensuse.org/' URL='https://www.opensuse.org/'
function distro_specific_tweaks {
echo "No tweaks found."
}

View File

@@ -1,5 +1,4 @@
binutils binutils
binutils-devel
curl curl
gcc gcc
gcc-32bit gcc-32bit
@@ -16,7 +15,3 @@ sed
squashfs squashfs
syslinux syslinux
xz xz
xz-devel
xz-devel-32bit
zlib-devel
zlib-devel-32bit