summaryrefslogtreecommitdiff
path: root/conf/intel/repo/kogaionlinux.ro/packages.db.post_upgrade.sh
diff options
context:
space:
mode:
Diffstat (limited to 'conf/intel/repo/kogaionlinux.ro/packages.db.post_upgrade.sh')
-rw-r--r--conf/intel/repo/kogaionlinux.ro/packages.db.post_upgrade.sh133
1 files changed, 133 insertions, 0 deletions
diff --git a/conf/intel/repo/kogaionlinux.ro/packages.db.post_upgrade.sh b/conf/intel/repo/kogaionlinux.ro/packages.db.post_upgrade.sh
new file mode 100644
index 0000000..b655687
--- /dev/null
+++ b/conf/intel/repo/kogaionlinux.ro/packages.db.post_upgrade.sh
@@ -0,0 +1,133 @@
+#!/bin/sh
+
+[ -z "$4" ] && echo "not enough parameters" && exit 1
+
+REPO_ID=$1
+ROOT=$2
+OLD_BRANCH=$3
+NEW_BRANCH=$4
+
+echo -e "
+>> requirements for this branch:
+ app-admin/eselect-python
+ sys-devel/base-gcc:<latest>
+>> Entropy post-upgrade migration script
+>> Repository: "${REPO_ID}"
+>> Root: "${ROOT}"
+>> Old branch: "${OLD_BRANCH}"
+>> New branch: "${NEW_BRANCH}"
+
+>> ATTENTION ATTENTION ATTENTION
+>> - If you are upgrading from a previous branch (say, 4)
+>> and you are a NetworkManager user, make sure to have
+>> your users inside the "netdev" group.
+>> - If you compile stuff manually, it is strongly
+>> suggested to install "lafilefixer" and execute:
+>> # lafilefixer --justfixit
+>> ATTENTION ATTENTION ATTENTION
+
+"
+
+### CUT HERE ###
+
+fix_lib64_symlinks() {
+ if [ -L ${ROOT}/lib64 ] ; then
+ echo "removing /lib64 symlink and moving lib to lib64..."
+ echo "dont hit ctrl-c until this is done"
+ rm ${ROOT}/lib64
+ # now that lib64 is gone, nothing will run without calling ld.so
+ # directly. luckily the window of brokenness is almost non-existant
+ /lib/ld-linux-x86-64.so.2 /bin/mv ${ROOT}/lib ${ROOT}/lib64
+ # all better :)
+ ldconfig
+ ln -s lib64 ${ROOT}/lib
+ echo "done! :-)"
+ echo "fixed broken lib64/lib symlink in ${ROOT}"
+ fi
+ if [ -L ${ROOT}/usr/lib64 ] ; then
+ rm ${ROOT}/usr/lib64
+ mv ${ROOT}/usr/lib ${ROOT}/usr/lib64
+ ln -s lib64 ${ROOT}/usr/lib
+ echo "fixed broken lib64/lib symlink in ${ROOT}/usr"
+ fi
+ if [ -L ${ROOT}/usr/X11R6/lib64 ] ; then
+ rm ${ROOT}/usr/X11R6/lib64
+ mv ${ROOT}/usr/X11R6/lib ${ROOT}/usr/X11R6/lib64
+ ln -s lib64 ${ROOT}/usr/X11R6/lib
+ echo "fixed broken lib64/lib symlink in ${ROOT}/usr/X11R6"
+ fi
+}
+
+three_four_to_five() {
+
+ local rc=0
+
+ # switch Python to latest available, 2.7
+ eselect python update --ignore 3.0 --ignore 3.1 --ignore 3.2 --ignore 3.3 --ignore 3.4
+ [ "${?}" != "0" ] && echo "eselect-python not available" && rc=1
+
+ # configure correct binutils
+ # new profile needs to be configured
+ binutils_dir="${ROOT}/etc/env.d/binutils"
+ if [ -d "${binutils_dir}" ]; then
+ binutils_profile=$(find "${binutils_dir}" -name "$(uname -m)*" | \
+ sort | tail -n 1 | xargs basename)
+ echo "trying to set binutils profile ${binutils_profile}"
+ binutils-config ${binutils_profile}
+ else
+ echo "binutils directory ${binutils_dir} not found"
+ echo "cannot properly set binutils profile"
+ rc=1
+ fi
+
+ # set proper eselect esd engine
+ if [ -f "${ROOT}/usr/bin/esdcompat" ]; then
+ eselect esd list | grep PulseAudio | cut -d"[" -f 2 | \
+ cut -d"]" -f 1 | xargs eselect esd set &> /dev/null
+ fi
+
+ # make sure working eselect boost is selected
+ e_boost_mod="${ROOT}/usr/share/eselect/modules/boost.eselect"
+ if [ -f "${e_boost_mod}" ]; then
+ eselect boost update &> /dev/null
+ fi
+
+ # move alsa conf to new location
+ [ -f "${ROOT}/etc/modprobe.d/alsa" ] && \
+ mv "${ROOT}/etc/modprobe.d/alsa" "${ROOT}/etc/modprobe.d/alsa.conf"
+
+ # try to mount /boot, ignore all the possible bullshit
+ # [ "${ROOT}" = "/" ] && mount /boot &> /dev/null
+ # setup grub.conf, if found
+ [ -f "${ROOT}boot/grub/grub.conf" ] && \
+ sed -i 's/CONSOLE=\/dev\/tty1/console=tty1/g' "${ROOT}/boot/grub/grub.conf"
+
+ # setup grub.conf, if found, change nox into gentoo=nox
+ [ -f "${ROOT}boot/grub/grub.conf" ] && \
+ sed -i 's/ nox / gentoo=nox /g' "${ROOT}/boot/grub/grub.conf"
+
+ # setup /etc/localtime correctly
+ if [ -f "${ROOT}etc/timezone" ]; then
+ tzdata=$(cat "${ROOT}etc/timezone")
+ rm -f "${ROOT}etc/localtime" && ln -sf "/usr/share/zoneinfo/${tzdata}" "${ROOT}etc/localtime"
+ fi
+
+ # always add udev to sysinit
+ rc-update add udev sysinit &> /dev/null
+ exit ${rc}
+}
+
+# run this in any case, it will fix symlinks setup
+if [ "$(uname -m)" = "x86_64" ]; then
+ fix_lib64_symlinks
+fi
+
+# migration script from branch 4 to 5
+[ "${OLD_BRANCH}" = "4" ] && [ "${NEW_BRANCH}" = "5" ] && three_four_to_five
+
+# migration script from branch 3.5 to 5
+[ "${OLD_BRANCH}" = "3.5" ] && [ "${NEW_BRANCH}" = "5" ] && three_four_to_five
+
+echo "migration switch not found"
+exit 1
+