Various improvements for update_portage.sh

This commit is contained in:
Stefan Reimer 2016-05-18 18:35:19 -07:00
parent 6ef3e17fbd
commit ab4aafbe3d

View File

@ -1,9 +1,11 @@
#!/bin/sh #!/bin/sh
#set -x #set -x
# Default portage location
PORTAGE="/usr/portage" PORTAGE="/usr/portage"
# By default store SquashFS backing file under /mnt/portage # By default store SquashFS backing file under /mnt/portage
SQFS_PORTAGE="/mnt/portage/portage.sqfs" SQFS_PORTAGE="/mnt/portage/portage.sqfs"
# Store temporary overlayFS within portage tmpdir # Store temporary overlayFS within portage tmpdir
OVERLAY="$(portageq envvar PORTAGE_TMPDIR)/portage.overlayfs" OVERLAY="$(portageq envvar PORTAGE_TMPDIR)/portage.overlayfs"
OVERLAY_NAME=portage_overlay OVERLAY_NAME=portage_overlay
@ -59,25 +61,24 @@ replace_squashfs () {
fi fi
mv ${SQFS_PORTAGE}.new ${SQFS_PORTAGE} && \ mv ${SQFS_PORTAGE}.new ${SQFS_PORTAGE} && \
mount ${PORTAGE} && echo "Updated tree mounted at ${PORTAGE}." mount ${PORTAGE} && echo "Mounted new snapshot at ${PORTAGE}."
} }
# Create new squashfs image # Create new squashfs image
create_squashfs () { create_squashfs () {
echo 'Creating new SquashFS snapshot ...'
mksquashfs ${PORTAGE} ${SQFS_PORTAGE}.new -comp xz -noappend \ mksquashfs ${PORTAGE} ${SQFS_PORTAGE}.new -comp xz -noappend \
-no-progress && echo "SquashFS snapshot created at ${SQFS_PORTAGE}.new" -no-progress 1>/dev/null && echo "SquashFS snapshot created at ${SQFS_PORTAGE}.new"
} }
# Any custom changes to the portage tree # Any custom changes to the portage tree
customize () { customize () {
echo "Applying local customizations ..." echo "Applying local customizations ..."
# Delete any package mask
[ -f ${PORTAGE}/profiles/hardened/linux/amd64/package.mask ] && \
rm -f ${PORTAGE}/profiles/hardened/linux/amd64/package.mask
# Reenable nvidia # Reenable nvidia
perl -i -p -e 's/^(app-admin\/conky nvidia|x11-drivers\/nvidia|nvidia|video_cards_nvidia|vdpau|cuda|opencl)/# $1/;' \ perl -i -p -e 's/^(app-admin\/conky nvidia|x11-drivers\/nvidia|nvidia|video_cards_nvidia|vdpau|cuda|opencl)/# disabled by update_portage.sh - $1/;' \
${PORTAGE}/profiles/hardened/linux/package.mask \
${PORTAGE}/profiles/hardened/linux/amd64/package.mask \
${PORTAGE}/profiles/hardened/linux/use.mask \ ${PORTAGE}/profiles/hardened/linux/use.mask \
${PORTAGE}/profiles/hardened/linux/amd64/use.mask \ ${PORTAGE}/profiles/hardened/linux/amd64/use.mask \
${PORTAGE}/profiles/hardened/linux/amd64/package.use.mask ${PORTAGE}/profiles/hardened/linux/amd64/package.use.mask
@ -88,7 +89,7 @@ cleanup () {
umount_overlay umount_overlay
# Remove potential left overs from mksquashfs # Remove potential left overs from mksquashfs
[ -f ${SQFS_PORTAGE}.new ] && rm -f ${SQFS_PORTAGE}.new rm -f ${SQFS_PORTAGE}.new
# Make sure we have a working portage tree mounted # Make sure we have a working portage tree mounted
mountpoint -q ${PORTAGE} || mount ${PORTAGE} mountpoint -q ${PORTAGE} || mount ${PORTAGE}
@ -111,9 +112,12 @@ trap "cleanup" INT TERM
mount_overlay mount_overlay
emaint sync -r gentoo echo 'Syncing gentoo portage tree ...'
emaint sync -r gentoo 2>/dev/null | grep -q 'You are already up to date'
# End early if there are no upstream changes
[ $? -ne 0 ] && { echo 'No upstream changes. Exiting.'; cleanup; }
# Optional # Optional step to customize the tree, mostly to alter upstream use masks
customize customize
create_squashfs create_squashfs