more work done... still 100% untested, and i need to finish the package lists, but i have a testing platform built for all the distros.

This commit is contained in:
brent s. 2015-07-15 03:26:34 -04:00
parent 0153d38a33
commit 7fb6e77c32
34 changed files with 127 additions and 19 deletions

1
LICENSE Symbolic link
View File

@ -0,0 +1 @@
COPYING

4
TODO
View File

@ -38,7 +38,9 @@
-X-platform -X-platform
--what distros are supported? --what distros are supported?
--automatically install what we need for buildtime --automatically install what we need for buildtime
--hardcode list of runtime dependencies (e.g. openssh, vim, etc.) ---need to finish pkg lists and then test, but meta files should be done as well as lib script
--hardcode list of runtime (e.g. live media) dependencies (e.g. openssh, vim, etc.)
--...and create separate list for after-the-fact e.g. goodies


## Split into Separate Tools CD ## ## Split into Separate Tools CD ##



View File

@ -4,6 +4,9 @@ build() {
add_runscript add_runscript


add_binary curl add_binary curl

add_full_dir /etc/ssl
add_full_dir /etc/ca-certificates
} }


help() { help() {

View File

@ -2,6 +2,8 @@


function so_check_me_out { function so_check_me_out {


FUNCNAME="depcheck"

if [[ -n ${HOST_DIST} ]]; if [[ -n ${HOST_DIST} ]];
then then
if [[ ! -f ${BASEDIR}/lib/prereqs/${HOST_DIST}/meta || ! -f ${BASEDIR}/lib/prereqs/${HOST_DIST}/pkgs ]]; if [[ ! -f ${BASEDIR}/lib/prereqs/${HOST_DIST}/meta || ! -f ${BASEDIR}/lib/prereqs/${HOST_DIST}/pkgs ]];
@ -43,6 +45,9 @@ function so_check_me_out {
META="${DISTRO_DIR}/meta" META="${DISTRO_DIR}/meta"
PKGLIST="${DISTRO_DIR}/pkgs" PKGLIST="${DISTRO_DIR}/pkgs"


# And once more, just to be safe.
source ${META}

if [[ "${PRE_RUN}" != 'none' ]]; if [[ "${PRE_RUN}" != 'none' ]];
then then
echo "Now updating your local package cache..." echo "Now updating your local package cache..."

View File

@ -1,5 +1,7 @@
function holla_atcha_boi { function holla_atcha_boi {


FUNCNAME="holla_atcha_boi"

if [[ "${I_AM_A_RACECAR}" == "y" ]]; if [[ "${I_AM_A_RACECAR}" == "y" ]];
then then
RACECAR_CHK='nice -n -19 ' RACECAR_CHK='nice -n -19 '

View File

@ -1,4 +1,7 @@
function release_me () { function release_me () {

FUNCNAME="release_me"

## check for mountpoints from a manual chroot and umount them if they're still mounted. ## check for mountpoints from a manual chroot and umount them if they're still mounted.
## NOTE: you can use findmnt(8) to view a tree of mountpoints, including bindmounts etc. ## NOTE: you can use findmnt(8) to view a tree of mountpoints, including bindmounts etc.
# Is there an active chroot? # Is there an active chroot?

View File

@ -1,4 +1,7 @@
function facehugger () { function facehugger () {

FUNCNAME="facehugger"

local ARCHSUFFIX="${1}" local ARCHSUFFIX="${1}"
if [[ "${1}" == "64" ]]; if [[ "${1}" == "64" ]];
then then

View File

@ -1,4 +1,7 @@
function chroot_wrapper () { function chroot_wrapper () {

FUNCNAME="chroot_wrapper"

local ARCHSUFFIX="${1}" local ARCHSUFFIX="${1}"
if [[ "${1}" == "64" ]]; if [[ "${1}" == "64" ]];
then then

View File

@ -1,4 +1,7 @@
function jenny_craig () { function jenny_craig () {

FUNCNAME="jenny_craig"

BUILDDIR="${BUILDDIR_GLOB}" BUILDDIR="${BUILDDIR_GLOB}"
if [[ "${1}" == "64" ]]; if [[ "${1}" == "64" ]];
then then

View File

@ -1,4 +1,7 @@
function centos_is_stupid { function centos_is_stupid {

FUNCNAME="centos_is_stupid"

echo "Checking for appropriate kernel version and mksquashfs version..." echo "Checking for appropriate kernel version and mksquashfs version..."
SQFS_VER=$(mksquashfs -version 2>&1 | head -n1 | awk '{print $3}' | sed -re 's/(^[0-9]*\.[0-9]*).*$/\1/g') SQFS_VER=$(mksquashfs -version 2>&1 | head -n1 | awk '{print $3}' | sed -re 's/(^[0-9]*\.[0-9]*).*$/\1/g')
KERN_VER=$(uname -r | cut -f1 -d"-") KERN_VER=$(uname -r | cut -f1 -d"-")

View File

@ -1,4 +1,7 @@
function will_it_blend () { function will_it_blend () {

FUNCNAME="will_it_blend"

local ARCHSUFFIX="${1}" local ARCHSUFFIX="${1}"
if [[ "${1}" == "64" ]]; if [[ "${1}" == "64" ]];
then then

View File

@ -1,5 +1,7 @@
function stuffy { function stuffy {


FUNCNAME="stuffy"

cp -f ${BASEDIR}/VERSION_INFO.txt ${TEMPDIR}/. cp -f ${BASEDIR}/VERSION_INFO.txt ${TEMPDIR}/.


if [[ "${I_AM_A_RACECAR}" == "y" ]]; if [[ "${I_AM_A_RACECAR}" == "y" ]];

View File

@ -1,4 +1,7 @@
function yo_dj () { function yo_dj () {

FUNCNAME="yo_dj"

ARCH="${1}" ARCH="${1}"
echo "Building the actual .iso image. This may take a while." echo "Building the actual .iso image. This may take a while."
#im_batman ## WHYTF IS THIS HERE?! #im_batman ## WHYTF IS THIS HERE?!

View File

@ -1,4 +1,7 @@
function mentos { function mentos {

FUNCNAME="mentos"

# Freshen up the chroots to git's HEAD. Package lists, overlay, etc. # Freshen up the chroots to git's HEAD. Package lists, overlay, etc.
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

View File

@ -1,7 +1,7 @@
NAME='Antergos' NAME='Antergos'
SUPPORTED='yes' SUPPORTED='yes'
CHECK_METHOD='egrep "^NAME=\"Antergos Linux\"" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"Antergos Linux\"$" /etc/os-release'
PKG_MGR='pacman --noconfirm -S ${pkgname}' 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/'

1
lib/prereqs/Antergos/pkgs Symbolic link
View File

@ -0,0 +1 @@
../Arch/pkgs

View File

@ -1,7 +1,7 @@
NAME='Arch' NAME='Arch'
SUPPORTED='yes' SUPPORTED='yes'
CHECK_METHOD='egrep "^NAME=\"Arch Linux\"" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"Arch Linux\"$" /etc/os-release'
PKG_MGR='pacman --noconfirm -S ${pkgname}' 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/'

View File

@ -0,0 +1,17 @@
binutils
curl
gcc-libs-multilib
gcc-multilib
git
libisoburn
lynx
make
patch
perl
rsync
sed
squashfs-tools
syslinux
xorriso
xz
zlib

1
lib/prereqs/CentOS/pkgs Symbolic link
View File

@ -0,0 +1 @@
../RHEL/pkgs

View File

@ -1,8 +1,7 @@
NAME='Debian' NAME='Debian'
SUPPORTED='yes' SUPPORTED='yes'
CHECK_METHOD='egrep "^[0-9.]*$" /etc/debian_version' 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}' PKG_CHK='dpkg-query -l ${pkgname} | egrep "^ii[[:space:]]*${pkgname}"'
URL='http://www.debian.org/' URL='http://www.debian.org/'

View File

@ -0,0 +1,10 @@
git
curl
dosfstools
libisoburn1
lynx
rsync
sed
squashfs-tools
xorriso
xz-utils

7
lib/prereqs/Devuan/meta Normal file
View File

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

1
lib/prereqs/Devuan/pkgs Symbolic link
View File

@ -0,0 +1 @@
../Debian/pkgs

View File

@ -0,0 +1,9 @@
git
curl
libisofs
lynx
rsync
sed
squashfs-tools
xorriso
xz

View File

@ -1,4 +1,4 @@
This directory is used to enable cross-distro support. A list of packages is needed for the *host* to build the ISO. Adding distro support is easy; there simply needs to be the following added: This directory is used to enable cross-distro support and set baseline ISO packages needed for it to boot. A list of packages is needed for the *host* to build the ISO as well, which you'll find detailed below. Adding distro support is easy; there simply needs to be the following added:


<basedir>/lib/prereqs/<Distro>/{meta,pkgs} <basedir>/lib/prereqs/<Distro>/{meta,pkgs}



View File

@ -1,7 +1,7 @@
NAME='Manjaro' NAME='Manjaro'
SUPPORTED='yes' SUPPORTED='yes'
CHECK_METHOD='egrep "^NAME=\"Manjaro Linux\"" /etc/os-release' CHECK_METHOD='egrep "^NAME=\"Manjaro Linux\"$" /etc/os-release'
PKG_MGR='pacman --noconfirm -S ${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/'

1
lib/prereqs/Manjaro/pkgs Symbolic link
View File

@ -0,0 +1 @@
../Arch/pkgs

View File

1
lib/prereqs/Mint/pkgs Symbolic link
View File

@ -0,0 +1 @@
../Ubuntu/pkgs

View File

@ -0,0 +1,9 @@
git
curl
libisofs
lynx
rsync
sed
squashfs-tools
xorriso
xz

View File

@ -1,8 +1,8 @@
NAME='SUSE' NAME='SUSE'
SUPPORTED= SUPPORTED='yes'
# 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 -l ${pkgname}' PKG_MGR='zypper install --no-confirm -l ${pkgname}'
PRE_RUN='none' 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/'

View File

1
lib/prereqs/SUSE/pkgs Symbolic link
View File

@ -0,0 +1 @@
../openSUSE/pkgs

View File

@ -0,0 +1,10 @@
git
curl
dosfstools
libisoburn1
lynx
rsync
sed
squashfs-tools
xorriso
xz-utils

1
lib/prereqs/iso.pkgs.lst Normal file
View File

@ -0,0 +1 @@
syslinux

View File

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