117 lines
3.8 KiB
Makefile
117 lines
3.8 KiB
Makefile
UPSTREAM_ISO_NAME=tails-i386-1.2.iso
|
|
WORK_DIR=work
|
|
CHROOT_DIR=${WORK_DIR}/chroot
|
|
ISOLINUX_DIR=${WORK_DIR}/cd/isolinux
|
|
|
|
setup:
|
|
mkdir -p ${CHROOT_DIR} ${WORK_DIR}/cd
|
|
|
|
mkdir -p ${WORK_DIR}/mountpoint
|
|
mount -o loop upstream/${UPSTREAM_ISO_NAME} ${WORK_DIR}/mountpoint
|
|
rsync --exclude=/live/filesystem.squashfs -a ${WORK_DIR}/mountpoint/ ${WORK_DIR}/cd
|
|
|
|
mkdir -p ${WORK_DIR}/squashfs
|
|
mount -t squashfs -o loop ${WORK_DIR}/mountpoint/live/filesystem.squashfs ${WORK_DIR}/squashfs
|
|
cp -a ${WORK_DIR}/squashfs/* ${CHROOT_DIR}
|
|
umount ${WORK_DIR}/squashfs
|
|
rmdir ${WORK_DIR}/squashfs
|
|
|
|
umount ${WORK_DIR}/mountpoint
|
|
rmdir ${WORK_DIR}/mountpoint
|
|
|
|
# TODO: move setup here, teardown to target 'image'
|
|
|
|
chroot:
|
|
mount --bind /dev ${CHROOT_DIR}/dev
|
|
mount --bind /dev/pts ${CHROOT_DIR}/dev/pts
|
|
mount --bind /proc ${CHROOT_DIR}/proc
|
|
|
|
cp /etc/resolv.conf /etc/hosts ${CHROOT_DIR}/etc/
|
|
|
|
# boot menu
|
|
cp isolinux/clearnet486.cfg ${ISOLINUX_DIR}/
|
|
cp isolinux/clearnetamd64.cfg ${ISOLINUX_DIR}/
|
|
cp isolinux/live486.cfg ${ISOLINUX_DIR}/
|
|
cp isolinux/liveamd64.cfg ${ISOLINUX_DIR}/
|
|
|
|
# for chroot work
|
|
cp Makefile.guest ${CHROOT_DIR}/Makefile
|
|
mv ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy.disabled
|
|
echo 'rootfs / rootfs rw 0 0' > ${CHROOT_DIR}/etc/mtab
|
|
|
|
mkdir -p ${CHROOT_DIR}/etc/openvpn
|
|
# prep for openvpn testing
|
|
cp openvpn/test.crt ${CHROOT_DIR}/etc/openvpn/ca.crt
|
|
|
|
cp openvpn/client.conf ${CHROOT_DIR}/etc/openvpn/ # TODO: move to Makefile.guest
|
|
cp ferm-clear.conf ${CHROOT_DIR}/etc/ferm/
|
|
cp unfermify ${CHROOT_DIR}/etc/init.d/
|
|
cp untorify ${CHROOT_DIR}/etc/init.d/
|
|
cp environment.clean ${CHROOT_DIR}/etc/ # required by untorify
|
|
|
|
chroot ${CHROOT_DIR} apt-get update
|
|
chroot ${CHROOT_DIR} apt-get install -y make
|
|
chroot ${CHROOT_DIR} make
|
|
|
|
# launchers
|
|
cp yokai-openvpn-launcher ${CHROOT_DIR}/usr/local/bin/
|
|
cp yokai-sshuttle-launcher ${CHROOT_DIR}/usr/local/bin/
|
|
cp yokai-launcher ${CHROOT_DIR}/usr/local/bin/
|
|
cp yokai-launcher-nosudo ${CHROOT_DIR}/usr/local/bin/
|
|
cp 60-yokai-launcher.sh ${CHROOT_DIR}/etc/NetworkManager/dispatcher.d/
|
|
|
|
#chroot ${CHROOT_DIR} /bin/bash
|
|
|
|
# reverse the adjustments made for chroot
|
|
rm ${CHROOT_DIR}/etc/mtab
|
|
mv ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy.disabled ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy
|
|
rm ${CHROOT_DIR}/Makefile
|
|
|
|
umount ${CHROOT_DIR}/proc
|
|
umount ${CHROOT_DIR}/dev/pts
|
|
umount ${CHROOT_DIR}/dev
|
|
|
|
justchroot:
|
|
mount --bind /dev ${CHROOT_DIR}/dev
|
|
mount --bind /dev/pts ${CHROOT_DIR}/dev/pts
|
|
mount --bind /proc ${CHROOT_DIR}/proc
|
|
|
|
cp /etc/resolv.conf /etc/hosts ${CHROOT_DIR}/etc/
|
|
|
|
# setup
|
|
cp Makefile.guest ${CHROOT_DIR}/Makefile
|
|
mv ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy.disabled
|
|
echo 'rootfs / rootfs rw 0 0' | sudo tee ${CHROOT_DIR}/etc/mtab > /dev/null
|
|
|
|
chroot ${CHROOT_DIR} /bin/bash
|
|
|
|
# teardown
|
|
rm ${CHROOT_DIR}/etc/mtab
|
|
mv ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy.disabled ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy
|
|
rm ${CHROOT_DIR}/Makefile
|
|
|
|
umount ${CHROOT_DIR}/proc
|
|
umount ${CHROOT_DIR}/dev/pts
|
|
umount ${CHROOT_DIR}/dev
|
|
|
|
unfail:
|
|
# teardown
|
|
rm ${CHROOT_DIR}/etc/mtab
|
|
mv ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy.disabled ${CHROOT_DIR}/etc/apt/apt.conf.d/0000runtime-proxy
|
|
rm ${CHROOT_DIR}/Makefile
|
|
|
|
umount ${CHROOT_DIR}/proc
|
|
umount ${CHROOT_DIR}/dev/pts
|
|
umount ${CHROOT_DIR}/dev
|
|
|
|
image:
|
|
mksquashfs ${CHROOT_DIR} work/cd/live/filesystem.squashfs -noappend
|
|
genisoimage -r -V "TAILS-Custom" -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -J -l -no-emul-boot -boot-load-size 4 -boot-info-table -o work/tails-custom.iso work/cd
|
|
isohybrid work/heads.iso --entry 4 --type 0x1c
|
|
|
|
imagecopy:
|
|
cp work/heads.iso heads-`date +%Y%m%d%H%M`.iso
|
|
|
|
clean:
|
|
rm -rf ${WORK_DIR}
|