2020-09-03 03:20:38 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
2020-08-17 19:54:31 -04:00
|
|
|
|
|
|
|
IMG_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img"
|
|
|
|
INFO_FILE="${STAGE_WORK_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.info"
|
|
|
|
|
|
|
|
echo "Part 1"
|
|
|
|
on_chroot << EOF
|
|
|
|
if [ -x /etc/init.d/fake-hwclock ]; then
|
|
|
|
/etc/init.d/fake-hwclock stop
|
|
|
|
fi
|
|
|
|
if hash hardlink 2>/dev/null; then
|
|
|
|
hardlink -t /usr/share/doc
|
|
|
|
fi
|
|
|
|
EOF
|
|
|
|
|
|
|
|
echo "Part 2"
|
|
|
|
if [ -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config" ]; then
|
|
|
|
chmod 700 "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/.config"
|
|
|
|
fi
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}/usr/bin/qemu-arm-static"
|
|
|
|
|
|
|
|
echo "Part 4"
|
|
|
|
if [ "${USE_QEMU}" != "1" ]; then
|
|
|
|
if [ -e "${ROOTFS_DIR}/etc/ld.so.preload.disabled" ]; then
|
|
|
|
mv "${ROOTFS_DIR}/etc/ld.so.preload.disabled" "${ROOTFS_DIR}/etc/ld.so.preload"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Part 5"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/network/interfaces.dpkg-old"
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/apt/sources.list~"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/apt/trusted.gpg~"
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/passwd-"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/group-"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/shadow-"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/gshadow-"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/subuid-"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/subgid-"
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}"/var/cache/debconf/*-old
|
|
|
|
rm -f "${ROOTFS_DIR}"/var/lib/dpkg/*-old
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}"/usr/share/icons/*/icon-theme.cache
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}/var/lib/dbus/machine-id"
|
|
|
|
|
|
|
|
true > "${ROOTFS_DIR}/etc/machine-id"
|
|
|
|
|
|
|
|
ln -nsf /proc/mounts "${ROOTFS_DIR}/etc/mtab"
|
|
|
|
|
|
|
|
find "${ROOTFS_DIR}/var/log/" -type f -exec cp /dev/null {} \;
|
|
|
|
|
|
|
|
rm -f "${ROOTFS_DIR}/root/.vnc/private.key"
|
|
|
|
rm -f "${ROOTFS_DIR}/etc/vnc/updateid"
|
|
|
|
|
|
|
|
echo "Part 6"
|
|
|
|
update_issue "$(basename "${EXPORT_DIR}")"
|
|
|
|
install -m 644 "${ROOTFS_DIR}/etc/rpi-issue" "${ROOTFS_DIR}/boot/issue.txt"
|
|
|
|
|
|
|
|
cp "$ROOTFS_DIR/etc/rpi-issue" "$INFO_FILE"
|
|
|
|
|
|
|
|
echo "Part 7"
|
|
|
|
{
|
|
|
|
if [ -f "$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" ]; then
|
|
|
|
firmware=$(zgrep "firmware as of" \
|
|
|
|
"$ROOTFS_DIR/usr/share/doc/raspberrypi-kernel/changelog.Debian.gz" | \
|
|
|
|
head -n1 | sed -n 's|.* \([^ ]*\)$|\1|p')
|
|
|
|
printf "\nFirmware: https://github.com/raspberrypi/firmware/tree/%s\n" "$firmware"
|
|
|
|
|
|
|
|
kernel="$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/git_hash")"
|
|
|
|
printf "Kernel: https://github.com/raspberrypi/linux/tree/%s\n" "$kernel"
|
|
|
|
|
|
|
|
uname="$(curl -s -L "https://github.com/raspberrypi/firmware/raw/$firmware/extra/uname_string7")"
|
|
|
|
printf "Uname string: %s\n" "$uname"
|
|
|
|
fi
|
|
|
|
|
|
|
|
printf "\nPackages:\n"
|
|
|
|
dpkg -l --root "$ROOTFS_DIR"
|
|
|
|
} >> "$INFO_FILE"
|
|
|
|
|
|
|
|
ROOT_DEV="$(mount | grep "${ROOTFS_DIR} " | cut -f1 -d' ')"
|
|
|
|
|
|
|
|
echo "Part 8"
|
|
|
|
unmount "${ROOTFS_DIR}"
|
|
|
|
zerofree "${ROOT_DEV}"
|
|
|
|
|
|
|
|
unmount_image "${IMG_FILE}"
|
|
|
|
|
|
|
|
mkdir -p "${DEPLOY_DIR}"
|
|
|
|
|
|
|
|
rm -f "${DEPLOY_DIR}/${ZIP_FILENAME}${IMG_SUFFIX}.zip"
|
|
|
|
rm -f "${DEPLOY_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img"
|
|
|
|
|
|
|
|
echo "Part 9"
|
|
|
|
if [ "${DEPLOY_ZIP}" == "1" ]; then
|
|
|
|
pushd "${STAGE_WORK_DIR}" > /dev/null
|
|
|
|
zip "${DEPLOY_DIR}/${ZIP_FILENAME}${IMG_SUFFIX}.zip" \
|
|
|
|
"$(basename "${IMG_FILE}")"
|
|
|
|
popd > /dev/null
|
|
|
|
elif [ "${DEPLOY_ZIP}" == "2" ]; then
|
|
|
|
xz -z -c -T$(nproc) "$IMG_FILE" > "${DEPLOY_DIR}/${IMG_FILENAME}${IMG_SUFFIX}.img.xz"
|
|
|
|
else
|
|
|
|
cp "$IMG_FILE" "$DEPLOY_DIR"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Part 10"
|
|
|
|
cp "$INFO_FILE" "$DEPLOY_DIR"
|