tools-uclibc/desktop: organize build.sh into bash functions
This commit is contained in:
parent
861c54b57f
commit
29dff6b837
10 changed files with 171 additions and 88 deletions
|
@ -1,101 +1,160 @@
|
||||||
# These are just notes for now. A cleaner script is coming.
|
#!/bin/bash
|
||||||
|
|
||||||
mkdir desktop-amd64-uclibc-hardened
|
ROOTFS="desktop-amd64-uclibc-hardened"
|
||||||
tar -x -C desktop-amd64-uclibc-hardened -f /var/tmp/catalyst/builds/hardened/amd64/stage3-amd64-uclibc-hardened.tar.bz2
|
|
||||||
|
|
||||||
mkdir desktop-amd64-uclibc-hardened/usr/portage/
|
PWD="$(pwd)"
|
||||||
mount --bind /usr/portage/ desktop-amd64-uclibc-hardened/usr/portage/
|
STAGE3="/var/tmp/catalyst/builds/hardened/amd64/stage3-amd64-uclibc-hardened.tar.bz2"
|
||||||
mount --bind /proc/ desktop-amd64-uclibc-hardened/proc/
|
LAYMAN="/var/lib/layman"
|
||||||
mount --bind /dev/ desktop-amd64-uclibc-hardened/dev/
|
KERNEL_SOURCE="/usr/src/linux-lilblue"
|
||||||
mount --bind /dev/pts desktop-amd64-uclibc-hardened/dev/pts/
|
|
||||||
mount --bind /sys/ desktop-amd64-uclibc-hardened/sys/
|
|
||||||
|
|
||||||
layman -S
|
|
||||||
mkdir desktop-amd64-uclibc-hardened/var/lib/layman
|
|
||||||
cp -a /var/lib/layman/hardened-development/ desktop-amd64-uclibc-hardened/var/lib/layman
|
|
||||||
|
|
||||||
cp -f fstab desktop-amd64-uclibc-hardened/etc/fstab
|
|
||||||
cp -f lilo.conf desktop-amd64-uclibc-hardened/etc/lilo.conf
|
|
||||||
|
|
||||||
rm -f desktop-amd64-uclibc-hardened/etc/portage/make.conf.catalyst
|
|
||||||
cp -f portage/make.conf.1 desktop-amd64-uclibc-hardened/etc/portage/make.conf
|
|
||||||
|
|
||||||
for d in env package.accept_keywords package.mask package.use profile; do
|
|
||||||
[[ -a portage/"${d}" ]] && cp -af portage/${d} desktop-amd64-uclibc-hardened/etc/portage
|
|
||||||
done
|
|
||||||
cp -af portage/package.env desktop-amd64-uclibc-hardened/etc/portage
|
|
||||||
|
|
||||||
cp -f toolchain.sh desktop-amd64-uclibc-hardened/tmp/
|
|
||||||
chroot desktop-amd64-uclibc-hardened/ /tmp/toolchain.sh
|
|
||||||
rm -f desktop-amd64-uclibc-hardened/tmp/toolchain.sh
|
|
||||||
|
|
||||||
|
|
||||||
cp -f portage/make.conf.2 desktop-amd64-uclibc-hardened/etc/portage/make.conf
|
unpack_stage3() {
|
||||||
cp -f world desktop-amd64-uclibc-hardened/var/lib/portage/world
|
mkdir "${ROOTFS}"
|
||||||
cp -f rebuild.sh desktop-amd64-uclibc-hardened/tmp/
|
tar -x -C "${ROOTFS}" -f "${STAGE3}"
|
||||||
chroot desktop-amd64-uclibc-hardened/ /tmp/rebuild.sh
|
}
|
||||||
rm -f desktop-amd64-uclibc-hardened/tmp/rebuild.sh
|
|
||||||
|
mount_dirs() {
|
||||||
|
mkdir "${ROOTFS}"/usr/portage/
|
||||||
|
mount --bind /usr/portage/ "${ROOTFS}"/usr/portage/
|
||||||
|
mount --bind /proc/ "${ROOTFS}"/proc/
|
||||||
|
mount --bind /dev/ "${ROOTFS}"/dev/
|
||||||
|
mount --bind /dev/pts "${ROOTFS}"/dev/pts/
|
||||||
|
mount --bind /sys/ "${ROOTFS}"/sys/
|
||||||
|
}
|
||||||
|
|
||||||
|
add_overlay() {
|
||||||
|
layman -S
|
||||||
|
mkdir "${ROOTFS}"/"${LAYMAN}"
|
||||||
|
cp -a "${LAYMAN}"/hardened-development/ "${ROOTFS}"/"${LAYMAN}"
|
||||||
|
cp installed.xml "${ROOTFS}"/"${LAYMAN}"/installed.xml
|
||||||
|
cp make.conf.layman "${ROOTFS}"/"${LAYMAN}"/make.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
populate_etc() {
|
||||||
|
cp -f fstab "${ROOTFS}"/etc/fstab
|
||||||
|
cp -f lilo.conf "${ROOTFS}"/etc/lilo.conf
|
||||||
|
|
||||||
|
rm -f "${ROOTFS}"/etc/portage/make.conf.catalyst
|
||||||
|
cp -f portage/make.conf.1 "${ROOTFS}"/etc/portage/make.conf
|
||||||
|
|
||||||
|
for d in env package.accept_keywords package.mask package.use profile; do
|
||||||
|
[[ -a portage/"${d}" ]] && cp -af portage/${d} "${ROOTFS}"/etc/portage
|
||||||
|
done
|
||||||
|
cp -af portage/package.env "${ROOTFS}"/etc/portage
|
||||||
|
}
|
||||||
|
|
||||||
|
rebuild_toolchain() {
|
||||||
|
cp -f toolchain.sh "${ROOTFS}"/tmp/
|
||||||
|
chroot "${ROOTFS}"/ /tmp/toolchain.sh
|
||||||
|
rm -f "${ROOTFS}"/tmp/toolchain.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
rebuild_world() {
|
||||||
|
cp -f portage/make.conf.2 "${ROOTFS}"/etc/portage/make.conf
|
||||||
|
cp -f world "${ROOTFS}"/var/lib/portage/world
|
||||||
|
cp -f rebuild.sh "${ROOTFS}"/tmp/
|
||||||
|
chroot "${ROOTFS}"/ /tmp/rebuild.sh
|
||||||
|
rm -f "${ROOTFS}"/tmp/rebuild.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
cp -f portage/make.conf.3 desktop-amd64-uclibc-hardened/etc/portage/make.conf
|
update_world() {
|
||||||
cp -f update.sh desktop-amd64-uclibc-hardened/tmp/
|
cp -f portage/make.conf.3 "${ROOTFS}"/etc/portage/make.conf
|
||||||
chroot desktop-amd64-uclibc-hardened/ /tmp/update.sh
|
cp -f update.sh "${ROOTFS}"/tmp/
|
||||||
rm -f desktop-amd64-uclibc-hardened/tmp/update.sh
|
chroot "${ROOTFS}"/ /tmp/update.sh
|
||||||
|
rm -f "${ROOTFS}"/tmp/update.sh
|
||||||
|
}
|
||||||
|
|
||||||
mkdir -p desktop-amd64-uclibc-hardened/boot
|
build_kernel() {
|
||||||
|
mkdir -p "${ROOTFS}"/boot
|
||||||
|
|
||||||
genkernel \
|
genkernel \
|
||||||
--kernel-config=config \
|
--kernel-config=config \
|
||||||
--makeopts=-j9 \
|
--makeopts=-j9 \
|
||||||
--symlink \
|
--symlink \
|
||||||
--no-mountboot \
|
--no-mountboot \
|
||||||
--kerneldir=/usr/src/linux-lilblue \
|
--kerneldir="${KERNEL_SOURCE}" \
|
||||||
--bootdir=/root/releng/tools-uclibc/desktop/desktop-amd64-uclibc-hardened/boot/ \
|
--bootdir="${PWD}"/"${ROOTFS}"/boot/ \
|
||||||
--module-prefix=/root/releng/tools-uclibc/desktop/desktop-amd64-uclibc-hardened/ \
|
--module-prefix="${PWD}"/"${ROOTFS}"/ \
|
||||||
--modprobedir=/root/releng/tools-uclibc/desktop/desktop-amd64-uclibc-hardened/etc/modprobe.d \
|
--modprobedir="${PWD}"/"${ROOTFS}"/etc/modprobe.d \
|
||||||
all
|
all
|
||||||
|
|
||||||
for i in $(find /root/releng/tools-uclibc/desktop/desktop-amd64-uclibc-hardened/lib/modules -iname *ko); do
|
for i in $(find "${PWD}"/"${ROOTFS}"/lib/modules -iname *ko); do
|
||||||
objcopy --strip-unneeded $i
|
objcopy --strip-unneeded $i
|
||||||
done
|
done
|
||||||
|
}
|
||||||
|
|
||||||
ln -sf net.lo desktop-amd64-uclibc-hardened/etc/init.d/net.eth0
|
setup_initrc() {
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add alsasound default
|
ln -sf net.lo "${ROOTFS}"/etc/init.d/net.eth0
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add cupsd default
|
chroot "${ROOTFS}"/ rc-update add alsasound default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add fcron default
|
chroot "${ROOTFS}"/ rc-update add cupsd default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add net.eth0 default
|
chroot "${ROOTFS}"/ rc-update add fcron default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add postfix default
|
chroot "${ROOTFS}"/ rc-update add net.eth0 default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add sshd default
|
chroot "${ROOTFS}"/ rc-update add postfix default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add xdm default
|
chroot "${ROOTFS}"/ rc-update add sshd default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add avahi-daemon default
|
chroot "${ROOTFS}"/ rc-update add xdm default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add dbus default
|
chroot "${ROOTFS}"/ rc-update add avahi-daemon default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add samba default
|
chroot "${ROOTFS}"/ rc-update add dbus default
|
||||||
chroot desktop-amd64-uclibc-hardened/ rc-update add syslog-ng default
|
chroot "${ROOTFS}"/ rc-update add samba default
|
||||||
|
chroot "${ROOTFS}"/ rc-update add syslog-ng default
|
||||||
|
}
|
||||||
|
|
||||||
cp -f passwd.sh desktop-amd64-uclibc-hardened/tmp/
|
setup_usergroups() {
|
||||||
chroot desktop-amd64-uclibc-hardened/ /tmp/passwd.sh
|
cp -f passwd.sh "${ROOTFS}"/tmp/
|
||||||
rm -f desktop-amd64-uclibc-hardened/tmp/passwd.sh
|
chroot "${ROOTFS}"/ /tmp/passwd.sh
|
||||||
|
rm -f "${ROOTFS}"/tmp/passwd.sh
|
||||||
|
|
||||||
rm -rf desktop-amd64-uclibc-hardened/home/gentoo
|
rm -rf "${ROOTFS}"/home/gentoo
|
||||||
cp -a gentoo desktop-amd64-uclibc-hardened/home/
|
cp -a gentoo "${ROOTFS}"/home/
|
||||||
chroot desktop-amd64-uclibc-hardened/ chown -R gentoo:gentoo /home/gentoo
|
chroot "${ROOTFS}"/ chown -R gentoo:gentoo /home/gentoo
|
||||||
sed -i 's/# \(%wheel.*NOPASSWD\)/\1/' desktop-amd64-uclibc-hardened/etc/sudoers
|
sed -i 's/# \(%wheel.*NOPASSWD\)/\1/' "${ROOTFS}"/etc/sudoers
|
||||||
|
}
|
||||||
|
|
||||||
sed -i 's/^\(DISPLAYMANAGER="\)xdm/\1slim/' desktop-amd64-uclibc-hardened/etc/conf.d/xdm
|
setup_confs() {
|
||||||
sed -i 's/^\(login.*\)/# \1/' desktop-amd64-uclibc-hardened/etc/slim.conf
|
sed -i 's/^\(DISPLAYMANAGER="\)xdm/\1slim/' "${ROOTFS}"/etc/conf.d/xdm
|
||||||
sed -i '/# login_cmd.*Xsession/ a\login_cmd exec /bin/bash -login ~/.xinitrc' desktop-amd64-uclibc-hardened/etc/slim.conf
|
sed -i 's/^\(login.*\)/# \1/' "${ROOTFS}"/etc/slim.conf
|
||||||
wget -O desktop-amd64-uclibc-hardened/usr/share/slim/themes/default/background.jpg http://www.gentoo.org/images/backgrounds/gentoo1600x1200.jpg
|
sed -i '/# login_cmd.*Xsession/ a\login_cmd exec /bin/bash -login ~/.xinitrc' "${ROOTFS}"/etc/slim.conf
|
||||||
|
wget -O "${ROOTFS}"/usr/share/slim/themes/default/background.jpg http://www.gentoo.org/images/backgrounds/gentoo1600x1200.jpg
|
||||||
|
|
||||||
sed -i '/^SYNC/d' desktop-amd64-uclibc-hardened/etc/portage/make.conf
|
sed -i '/^SYNC/d' "${ROOTFS}"/etc/portage/make.conf
|
||||||
sed -i '/^GENTOO_MIRRORS/d' desktop-amd64-uclibc-hardened/etc/portage/make.conf
|
sed -i '/^GENTOO_MIRRORS/d' "${ROOTFS}"/etc/portage/make.conf
|
||||||
sed -i 's/^MAKEOPTS/#MAKEOPTS/' desktop-amd64-uclibc-hardened/etc/portage/make.conf
|
sed -i 's/^MAKEOPTS/#MAKEOPTS/' "${ROOTFS}"/etc/portage/make.conf
|
||||||
|
}
|
||||||
|
|
||||||
rm -rf desktop-amd64-uclibc-hardened/tmp/*
|
cleanup_dirs() {
|
||||||
rm -rf desktop-amd64-uclibc-hardened/var/log/*
|
rm -rf "${ROOTFS}"/tmp/*
|
||||||
rm -rf desktop-amd64-uclibc-hardened/var/tmp/*
|
rm -rf "${ROOTFS}"/var/log/*
|
||||||
|
rm -rf "${ROOTFS}"/var/tmp/*
|
||||||
|
}
|
||||||
|
|
||||||
umount desktop-amd64-uclibc-hardened/sys/
|
unmount_dirs() {
|
||||||
umount desktop-amd64-uclibc-hardened/dev/pts/
|
umount "${ROOTFS}"/sys/
|
||||||
umount desktop-amd64-uclibc-hardened/dev/
|
umount "${ROOTFS}"/dev/pts/
|
||||||
umount desktop-amd64-uclibc-hardened/proc/
|
umount "${ROOTFS}"/dev/
|
||||||
umount desktop-amd64-uclibc-hardened/usr/portage/
|
umount "${ROOTFS}"/proc/
|
||||||
|
umount "${ROOTFS}"/usr/portage/
|
||||||
|
}
|
||||||
|
|
||||||
|
bundle_it() {
|
||||||
|
cd "${ROOTFS}"
|
||||||
|
tar jcvf ../"${ROOTFS}".tar.bz2 .
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
unpack_stage3
|
||||||
|
mount_dirs
|
||||||
|
add_overlay
|
||||||
|
populate_etc
|
||||||
|
rebuild_toolchain
|
||||||
|
rebuild_world
|
||||||
|
update_world
|
||||||
|
build_kernel
|
||||||
|
setup_initrc
|
||||||
|
setup_usergroups
|
||||||
|
setup_confs
|
||||||
|
cleanup_dirs
|
||||||
|
unmount_dirs
|
||||||
|
bundle_it
|
||||||
|
}
|
||||||
|
|
||||||
|
main > zzz.log 2>&1 &
|
||||||
|
|
13
tools-uclibc/desktop/installed.xml
Normal file
13
tools-uclibc/desktop/installed.xml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<repositories version="1.0">
|
||||||
|
<repo priority="50" quality="experimental" status="official">
|
||||||
|
<name>hardened-development</name>
|
||||||
|
<description>Development Overlay for Hardened Gcc 4.x Toolchain</description>
|
||||||
|
<homepage>http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=summary</homepage>
|
||||||
|
<owner>
|
||||||
|
<email>hardened@gentoo.org</email>
|
||||||
|
</owner>
|
||||||
|
<source type="git">git://git.overlays.gentoo.org/proj/hardened-dev.git</source>
|
||||||
|
<feed>http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-dev.git;a=atom</feed>
|
||||||
|
</repo>
|
||||||
|
</repositories>
|
4
tools-uclibc/desktop/make.conf.layman
Normal file
4
tools-uclibc/desktop/make.conf.layman
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
PORTDIR_OVERLAY="
|
||||||
|
/var/lib/layman/hardened-development
|
||||||
|
$PORTDIR_OVERLAY
|
||||||
|
"
|
|
@ -7,7 +7,7 @@ USE_BASE="bindist mmx mmxext smp sse sse2 ssse3 static-libs -savedconfig"
|
||||||
USE_GCC="gcj graphite objc objc++ objc-gc gtk X"
|
USE_GCC="gcj graphite objc objc++ objc-gc gtk X"
|
||||||
USE="${USE_BASE} ${USE_GCC}"
|
USE="${USE_BASE} ${USE_GCC}"
|
||||||
|
|
||||||
PORTDIR_OVERLAY="/var/lib/layman/hardened-development"
|
source "/var/lib/layman/make.conf"
|
||||||
|
|
||||||
SYNC="rsync://192.168.3.1/portage"
|
SYNC="rsync://192.168.3.1/portage"
|
||||||
GENTOO_MIRRORS="ftp://192.168.3.1/pub/gentoo"
|
GENTOO_MIRRORS="ftp://192.168.3.1/pub/gentoo"
|
||||||
|
|
|
@ -38,7 +38,7 @@ INPUT_DEVICES="acecad aiptek elographics evdev fpit hyperpen joystick keyboard m
|
||||||
VIDEO_CARDS="apm ark ast chips cirrus epson fbdev glint i128 i740 intel mach64 mga modesetting nouveau nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa"
|
VIDEO_CARDS="apm ark ast chips cirrus epson fbdev glint i128 i740 intel mach64 mga modesetting nouveau nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa"
|
||||||
LINGUAS="en"
|
LINGUAS="en"
|
||||||
|
|
||||||
PORTDIR_OVERLAY="/var/lib/layman/hardened-development"
|
source "/var/lib/layman/make.conf"
|
||||||
|
|
||||||
SYNC="rsync://192.168.3.1/portage"
|
SYNC="rsync://192.168.3.1/portage"
|
||||||
GENTOO_MIRRORS="ftp://192.168.3.1/pub/gentoo"
|
GENTOO_MIRRORS="ftp://192.168.3.1/pub/gentoo"
|
||||||
|
|
|
@ -38,7 +38,7 @@ INPUT_DEVICES="acecad aiptek elographics evdev fpit hyperpen joystick keyboard m
|
||||||
VIDEO_CARDS="apm ark ast chips cirrus epson fbdev glint i128 i740 intel mach64 mga modesetting nouveau nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa"
|
VIDEO_CARDS="apm ark ast chips cirrus epson fbdev glint i128 i740 intel mach64 mga modesetting nouveau nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa"
|
||||||
LINGUAS="en"
|
LINGUAS="en"
|
||||||
|
|
||||||
PORTDIR_OVERLAY="/var/lib/layman/hardened-development"
|
source "/var/lib/layman/make.conf"
|
||||||
|
|
||||||
SYNC="rsync://192.168.3.1/portage"
|
SYNC="rsync://192.168.3.1/portage"
|
||||||
GENTOO_MIRRORS="ftp://192.168.3.1/pub/gentoo"
|
GENTOO_MIRRORS="ftp://192.168.3.1/pub/gentoo"
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
=dev-libs/nettle-2.7 ~amd64
|
|
@ -1,3 +1,5 @@
|
||||||
#!/bin/bash -l
|
#!/bin/bash -l
|
||||||
|
|
||||||
|
source /etc/profile
|
||||||
|
env-update
|
||||||
emerge --keep-going -evq world
|
emerge --keep-going -evq world
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#!/bin/bash -l
|
#!/bin/bash -l
|
||||||
|
|
||||||
|
source /etc/profile
|
||||||
|
env-update
|
||||||
emerge -1q gcc
|
emerge -1q gcc
|
||||||
emerge -1q uclibc
|
emerge -1q uclibc
|
||||||
emerge -1q binutils
|
emerge -1q binutils
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
#!/bin/bash -l
|
#!/bin/bash -l
|
||||||
|
|
||||||
|
source /etc/profile
|
||||||
|
env-update
|
||||||
emerge -uvNDq world
|
emerge -uvNDq world
|
||||||
|
|
Loading…
Add table
Reference in a new issue