#!/bin/bash # openmamba dist-upgrade script # Copyright (c) 2016 by Silvan Calarco echo "openmamba dist-upgrade script" echo "Copyright (c) 2016 by Silvan Calarco " echo [ $UID -eq 0 ] || { echo "ERROR: this script must be run as root user; aborting." exit 1 } RELEASE=$1 ARCH=`uname -m` if [ "$ARCH" == "i686" ]; then RPMARCH="i586" COMPONENTS="$RPMARCH" elif [ "$ARCH" == "x86_64" ]; then RPMARCH="$ARCH" COMPONENTS="$RPMARCH i586" else RPMARCH="$ARCH" COMPONENTS="$RPMARCH" fi [ "$RELEASE" == "rolling" -o "$RELEASE" == "milestone4" ] || { echo "Usage:" echo "openmamba-dist-upgrade [rolling|milestone4|reset]" exit 1 } . /etc/os-release if [ "$OPENMAMBA_MILESTONE" != "milestone3" ]; then echo "ERROR: this script only applies to openmamba milestone3 release; aborting." exit 1 fi SMART_FILE_MILESTONE=/etc/smart/distro.d/10-openmamba-milestone4-repositories.py SMART_FILE_ROLLING=/etc/smart/distro.d/90-openmamba-devel-repositories.py if [ "$RELEASE" == "milestone4" ]; then SMART_FILE="$SMART_FILE_MILESTONE" rm -f $SMART_FILE_ROLLING else SMART_FILE="$SMART_FILE_ROLLING" rm -f $SMART_FILE_MILESTONE fi echo "Upgrading current openmamba release..." #smart update || exit 1 #smart upgrade -y || exit 1 echo "Configuring for release $RELEASE..." if [ "$RELEASE" == "milestone4" ]; then cat > $SMART_FILE << _EOF # # openmamba milestone4 channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4")): sysconf.set(("channels", "milestone4"), {"alias": "milestone4", "type": "apt-rpm", "name": "stable milestone4 base packages", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4", "components": "${COMPONENTS}"}) # # openmamba milestone4-games channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-games")): sysconf.set(("channels", "milestone4-games"), {"alias": "milestone4-games", "type": "apt-rpm", "name": "stable milestone4 games packages", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-games", "components": "${COMPONENTS}"}) # # openmamba milestone4-updates channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-updates")): sysconf.set(("channels", "milestone4-updates"), {"alias": "milestone4-updates", "type": "apt-rpm", "name": "stable milestone4 updates packages", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-updates", "components": "${COMPONENTS}"}) # # openmamba milestone4-kernel channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-kernel")): sysconf.set(("channels", "milestone4-kernel"), {"alias": "milestone4-kernel", "type": "apt-rpm", "name": "newest kernel release for milestone4 stable systems", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-kernel", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba milestone4-kernel-next channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-kernel-next")): sysconf.set(("channels", "milestone4-kernel-next"), {"alias": "milestone4-kernel-next", "type": "apt-rpm", "name": "experimental kernel release for milestone4 stable systems", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-kernel-next", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba milestone4-kde4 channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-kde4")): sysconf.set(("channels", "milestone4-kde4"), {"alias": "milestone4-kde4", "type": "apt-rpm", "name": "newest kde4 release for milestone4 stable systems", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-kde4", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba milestone4-xorg channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-xorg")): sysconf.set(("channels", "milestone4-xorg"), {"alias": "milestone4-xorg", "type": "apt-rpm", "name": "newest X.org release for milestone4 stable systems", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-xorg", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba milestone4-makedist channel configuration for Smart Package Manager # if not sysconf.get(("channels", "milestone4-makedist")): sysconf.set(("channels", "milestone4-makedist"), {"alias": "milestone4-makedist", "type": "apt-rpm", "name": "experimental milestone4 makedist packages", "baseurl": "http://cdn.openmamba.org/pub/openmamba/milestone4-makedist", "components": "${COMPONENTS}", "disabled": "yes"}) import os import sys release=os.popen("openmamba-release -c").read() for r in ["milestone4","milestone4-updates","milestone4-games","milestone4-makedist","milestone4-kernel",\ "milestone4-kde4","milestone4-xorg","milestone4-kernel-next"]: channel=sysconf.get(("channels", r)) if channel: if channel['baseurl'].startswith('http://www.openmamba.org/'): channel['baseurl'] = \ channel['baseurl'].replace('http://www.openmamba.org/','http://cdn.openmamba.org/') channel['fingerprint']='A402 AA41 82DE 06DD 0C82 943A B771 C004 8746 8781' sysconf.set(("channels",r),channel) for r in ["milestone4","milestone4-updates","milestone4-games"]: channel=sysconf.get(("channels", r)) if channel: channel['disabled']=False sysconf.set(("channels",r),channel) for r in [ "milestone3", "milestone3-games", "milestone3-updates", "milestone3-makedist", "milestone3-kernel", "devel", "devel-games" ]: channel=sysconf.get(("channels", r)) if channel: channel['disabled']=True sysconf.set(("channels",r),channel) _EOF else cat > $SMART_FILE << _EOF # # openmamba devel channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel")): sysconf.set(("channels", "devel"), {"alias": "devel", "type": "apt-rpm", "name": "base repository [rolling]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel", "components": "${COMPONENTS}"}) # # openmamba devel-games channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-games")): sysconf.set(("channels", "devel-games"), {"alias": "devel-games", "type": "apt-rpm", "name": "branch of base repository containing big games [rolling]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-games", "components": "${COMPONENTS}"}) # # openmamba devel-kde4 channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-kde4")): sysconf.set(("channels", "devel-kde4"), {"alias": "devel-kde4", "type": "apt-rpm", "name": "latest kde4 release [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-kde4", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-kernel channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-kernel")): sysconf.set(("channels", "devel-kernel"), {"alias": "devel-kernel", "type": "apt-rpm", "name": "latest kernel release [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-kernel", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-xorg channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-xorg")): sysconf.set(("channels", "devel-xorg"), {"alias": "devel-xorg", "type": "apt-rpm", "name": "latest xorg release [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-xorg", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-gnome channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-gnome")): sysconf.set(("channels", "devel-gnome"), {"alias": "devel-gnome", "type": "apt-rpm", "name": "latest Gnome release [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-gnome", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-misc channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-misc")): sysconf.set(("channels", "devel-misc"), {"alias": "devel-misc", "type": "apt-rpm", "name": "latest miscellaneous releases [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-misc", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-makedist channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-makedist")): sysconf.set(("channels", "devel-makedist"), {"alias": "devel-makedist", "type": "apt-rpm", "name": "auxiliary repository for makedist (livecd, flash 1GB) [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-makedist", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-embedded channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-embedded")): sysconf.set(("channels", "devel-embedded"), {"alias": "devel-embedded", "type": "apt-rpm", "name": "auxiliary repository for embedded systems [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-embedded", "components": "${COMPONENTS}", "manual": "yes", "disabled": "yes"}) # # openmamba devel-autodist channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-autodist")): sysconf.set(("channels", "devel-autodist"), {"alias": "devel-autodist", "type": "apt-rpm", "name": "auxiliary repository for autodist (automatic builds) [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-autodist", "components": "${COMPONENTS}", "manual": "yes", "disabled": "yes"}) # # openmamba devel-future channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-future")): sysconf.set(("channels", "devel-future"), {"alias": "devel-future", "type": "apt-rpm", "name": "auxiliary repository for not yet integrated new releases [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-future", "components": "${COMPONENTS}", "manual": "yes", "disabled": "yes"}) # # openmamba devel-past channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-past")): sysconf.set(("channels", "devel-past"), {"alias": "devel-past", "type": "apt-rpm", "name": "archive repository for obsoleted and removed packages [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-past", "components": "${COMPONENTS}", "manual": "yes", "disabled": "yes"}) # # openmamba devel-java channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-java")): sysconf.set(("channels", "devel-java"), {"alias": "devel-java", "type": "apt-rpm", "name": "contributed java packages [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-java", "components": "${COMPONENTS}", "disabled": "yes"}) # # openmamba devel-contrib channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-contrib")): sysconf.set(("channels", "devel-contrib"), {"alias": "devel-contrib", "type": "apt-rpm", "name": "auxiliary repository for contributors [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-contrib", "components": "${COMPONENTS}", "manual": "yes", "disabled": "yes"}) # # openmamba devel-kernel-past channel configuration for Smart Package Manager # if not sysconf.get(("channels", "devel-kernel-past")): sysconf.set(("channels", "devel-kernel-past"), {"alias": "devel-kernel-past", "type": "apt-rpm", "name": "previous kernel release [unstable]", "baseurl": "http://cdn.openmamba.org/pub/openmamba/devel-kernel-past", "components": "${COMPONENTS}", "disabled": "yes"}) import os import sys release=os.popen("openmamba-release -c").read() #if release.startswith('devel'): for r in ["devel","devel-games","devel-kde4","devel-kernel","devel-xorg","devel-makedist","devel-gnome",\ "devel-misc","devel-java","devel-embedded","devel-autodist","devel-future","devel-past", "devel-contrib","devel-kernel-past"]: channel=sysconf.get(("channels", r)) if channel: if channel['baseurl'].startswith('http://www.openmamba.org/'): channel['baseurl'] = \ channel['baseurl'].replace('http://www.openmamba.org/','http://cdn.openmamba.org/') channel['fingerprint']='A402 AA41 82DE 06DD 0C82 943A B771 C004 8746 8781' sysconf.set(("channels",r),channel) for r in ["devel","devel-games"]: channel=sysconf.get(("channels", r)) if channel: channel['disabled']=False sysconf.set(("channels",r),channel) for r in ["devel-embedded","devel-autodist","devel-future","devel-past","devel-contrib"]: channel=sysconf.get(("channels", r)) if channel: channel['manual']=True sysconf.set(("channels",r),channel) for r in ["milestone2","milestone2-games","milestone2-updates","milestone2-makedist",\ "milestone3","milestone3-games","milestone3-updates","milestone3-makedist", "milestone4","milestone4-games","milestone4-updates","milestone4-makedist"]: channel=sysconf.get(("channels", r)) if channel: channel['disabled']=True sysconf.set(("channels",r),channel) _EOF fi rm -f /var/lib/smart/cache rm -f /var/lib/smart/channels/* #smart install http://cdn.openmamba.org/pub/openmamba/milestone4/RPMS.${RPMARCH}/smart-1.5-9mamba.${RPMARCH}.rpm smart update || exit 1 smart install smart || exit 1 #smart install -y smart || exit 1 #smart install -y glibc libreadline libreadline6 libncurses libncurses5 libtirpc libtirpc1 \ # libnettle libnettle4 libgnutls libgnutls28 echo "Upgrading, this may take a long time!" smart upgrade -y || exit 1 echo "DONE! Please reboot now."