0244424020
In order to give the build system more control over the USE flags during the first and second phase of rebuilding the world packages the package.use files have been split into two separate files.
149 lines
4.9 KiB
Bash
Executable file
149 lines
4.9 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
unpack_stage3() {
|
|
mkdir "${ROOTFS}"
|
|
tar -x -C "${ROOTFS}" -f "${STAGE3}"
|
|
}
|
|
|
|
mount_dirs() {
|
|
mkdir "${ROOTFS}"/usr/portage/
|
|
mount --rbind /usr/portage/ "${ROOTFS}"/usr/portage/
|
|
mount --rbind /proc/ "${ROOTFS}"/proc/
|
|
mount --rbind /dev/ "${ROOTFS}"/dev/
|
|
mount --rbind /sys/ "${ROOTFS}"/sys/
|
|
}
|
|
|
|
populate_kernel_src()
|
|
{
|
|
cp -f files/kernel-config "${KERNEL_SOURCE}"
|
|
cp -Rf "${KERNEL_SOURCE}"/ "${ROOTFS}"/usr/src/
|
|
}
|
|
|
|
populate_etc() {
|
|
cp -f files/fstab "${ROOTFS}"/etc/fstab
|
|
cp -f files/resolv.conf "${ROOTFS}"/etc/resolv.conf
|
|
|
|
rm -f "${ROOTFS}"/etc/portage/make.conf.catalyst
|
|
cp -f files/portage/make."${MAKE_BASE}".1 "${ROOTFS}"/etc/portage/make.conf
|
|
cp -f files/portage/package."${KEYWORDS_BASE}".accept_keywords "${ROOTFS}"/etc/portage/package.accept_keywords
|
|
cp -f files/portage/package."${USE_BASE}".use.1 "${ROOTFS}"/etc/portage/package.use
|
|
cp -af files/portage/profile "${ROOTFS}"/etc/portage/profile
|
|
cp -af files/portage/repos.conf "${ROOTFS}"/etc/portage/repos.conf
|
|
}
|
|
|
|
rebuild_toolchain() {
|
|
cp -f toolchain.sh "${ROOTFS}"/tmp/
|
|
chroot "${ROOTFS}"/ /tmp/toolchain.sh
|
|
rm -f "${ROOTFS}"/tmp/toolchain.sh
|
|
}
|
|
|
|
rebuild_world() {
|
|
cp -f files/"${WORLD_BASE}"-world "${ROOTFS}"/var/lib/portage/world
|
|
cp -f rebuild.sh "${ROOTFS}"/tmp/
|
|
chroot "${ROOTFS}"/ /tmp/rebuild.sh
|
|
rm -f "${ROOTFS}"/tmp/rebuild.sh
|
|
}
|
|
|
|
update_world() {
|
|
cp -f files/portage/package."${USE_BASE}".use.2 "${ROOTFS}"/etc/portage/package.use
|
|
cp -f files/portage/make."${MAKE_BASE}".2 "${ROOTFS}"/etc/portage/make.conf
|
|
cp -f update.sh "${ROOTFS}"/tmp/
|
|
chroot "${ROOTFS}"/ /tmp/update.sh
|
|
rm -f "${ROOTFS}"/tmp/update.sh
|
|
}
|
|
|
|
build_kernel() {
|
|
local TH_BOOT="http://dev.gentoo.org/~twitch153/tinhat/th-boot.tar.gz"
|
|
mkdir -p "${ROOTFS}"/boot
|
|
|
|
genkernel \
|
|
--kernel-config=files/kernel-config \
|
|
--makeopts=-j9 \
|
|
--static \
|
|
--symlink \
|
|
--no-mountboot \
|
|
--kerneldir="${KERNEL_SOURCE}" \
|
|
--bootdir="${PWD}"/"${ROOTFS}"/boot/ \
|
|
all
|
|
|
|
#for i in $(find "${PWD}"/"${ROOTFS}"/lib/modules -iname *ko); do
|
|
# objcopy --strip-unneeded $i
|
|
#done
|
|
rm -rf "${PWD}"/"${ROOTFS}"/boot/initramfs*
|
|
wget -O "${PWD}"/th-boot.tar.gz "${TH_BOOT}"
|
|
tar -x -C "${PWD}"/files -f th-boot.tar.gz
|
|
cp -Rf files/th-boot/grub "${ROOTFS}"/boot/
|
|
rm -f "${PWD}"/th-boot.tar.gz
|
|
}
|
|
|
|
setup_initrc() {
|
|
ln -sf net.lo "${ROOTFS}"/etc/init.d/net.eth0
|
|
chroot "${ROOTFS}"/ rc-update add acpid boot
|
|
chroot "${ROOTFS}"/ rc-update add alsasound boot
|
|
chroot "${ROOTFS}"/ rc-update add cpufrequtils boot
|
|
chroot "${ROOTFS}"/ rc-update add device-mapper boot
|
|
chroot "${ROOTFS}"/ rc-update add lvm boot
|
|
chroot "${ROOTFS}"/ rc-update add udev boot
|
|
chroot "${ROOTFS}"/ rc-update add cupsd default
|
|
chroot "${ROOTFS}"/ rc-update add cronie default
|
|
chroot "${ROOTFS}"/ rc-update add net.eth0 default
|
|
chroot "${ROOTFS}"/ rc-update add postfix default
|
|
chroot "${ROOTFS}"/ rc-update add sshd default
|
|
chroot "${ROOTFS}"/ rc-update add xdm default
|
|
chroot "${ROOTFS}"/ rc-update add avahi-daemon default
|
|
chroot "${ROOTFS}"/ rc-update add dbus default
|
|
chroot "${ROOTFS}"/ rc-update add samba default
|
|
chroot "${ROOTFS}"/ rc-update add syslog-ng default
|
|
chroot "${ROOTFS}"/ rc-update add udev-postmount default
|
|
chroot "${ROOTFS}"/ rc-update add kmod-static-nodes sysinit
|
|
chroot "${ROOTFS}"/ rc-update add udev-mount sysinit
|
|
}
|
|
|
|
setup_systemd() {
|
|
ln -sf /proc/self/mounts /etc/mtab
|
|
sed -i -e 's/# GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="init=\/usr\/lib\/systemd\/systemd"/' "${ROOTFS}"/etc/default/grub
|
|
chroot "${ROOTFS}"/ systemctl enable avahi-daemon.service
|
|
chroot "${ROOTFS}"/ systemctl enable bluetooth.service
|
|
chroot "${ROOTFS}"/ systemctl enable cups.service
|
|
chroot "${ROOTFS}"/ systemctl enable dhcpcd.service
|
|
chroot "${ROOTFS}"/ systemctl enable cronie.service
|
|
chroot "${ROOTFS}"/ systemctl enable gdm.service
|
|
chroot "${ROOTFS}"/ systemctl enable metalog.service
|
|
chroot "${ROOTFS}"/ systemctl enable NetworkManager.service
|
|
chroot "${ROOTFS}"/ systemctl enable postfix.service
|
|
chroot "${ROOTFS}"/ systemctl disable gdm
|
|
chroot "${ROOTFS}"/ systemctl enable slim
|
|
chroot "${ROOTFS}"/ systemctl enable smbd.service
|
|
chroot "${ROOTFS}"/ systemctl enable sshd.service
|
|
#chroot "${ROOTFS}"/ systemctl enable udev.service
|
|
#chroot "${ROOTFS}"/ systemctl enable udev-settle.service
|
|
#chroot "${ROOTFS}"/ systemctl enable udev-trigger.service
|
|
}
|
|
|
|
cleanup_dirs() {
|
|
rm -rf "${ROOTFS}"/tmp/*
|
|
rm -rf "${ROOTFS}"/usr/src/*
|
|
rm -rf "${ROOTFS}"/var/cache/*
|
|
rm -rf "${ROOTFS}"/var/log/*
|
|
rm -rf "${ROOTFS}"/var/tmp/*
|
|
rm -rf "${ROOTFS}"/etc/resolv.conf
|
|
rm -rf "${ROOTFS}"/etc/ssh/*key*
|
|
rm -rf "${ROOTFS}"/root/.viminfo
|
|
for i in ${ROOTFS}/root/.bash_history ; do >$i; done
|
|
find ${ROOTFS}*/var/log -size +1c -type f -exec rm {} +
|
|
}
|
|
|
|
unmount_dirs() {
|
|
umount -l "${ROOTFS}"/sys/
|
|
umount -l "${ROOTFS}"/dev/
|
|
umount -l "${ROOTFS}"/proc/
|
|
umount -l "${ROOTFS}"/usr/portage/
|
|
|
|
mkdir "${ROOTFS}"/usr/portage/profiles/
|
|
echo "gentoo" >> "${ROOTFS}"/usr/portage/profiles/repo_name
|
|
}
|
|
|
|
make_iso() {
|
|
MYROOT="${ROOTFS}" ./make.sh
|
|
}
|