From 0af9184b838d625c2e3af559cc03796f8921c1b3 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sun, 15 Feb 2015 15:36:26 +0100 Subject: [PATCH] First commit --- Makefile | 63 ++++++ RPM-GPG-KEY-Mambasoft | 25 ++ VERSION | 1 + gpg-key-openmamba.sh | 2 + install-virtual.conf | 1 + install-virtual.lua | 44 ++++ openmamba-groups.db | 226 +++++++++++++++++++ openmamba-release.sh | 104 +++++++++ openmamba-smart-00-configure-once-example.py | 5 + openmamba-smart-configure-once.py | 4 + openmamba-smart-devel.py | 206 +++++++++++++++++ openmamba-smart-milestone3.py | 120 ++++++++++ openmamba-smart-multi-version-select.py | 12 + openmamba-smart-multiarch-update-x86_64.py | 6 + openmamba-smart-virtual-packages-select.py | 58 +++++ 15 files changed, 877 insertions(+) create mode 100644 Makefile create mode 100644 RPM-GPG-KEY-Mambasoft create mode 100644 VERSION create mode 100644 gpg-key-openmamba.sh create mode 100644 install-virtual.conf create mode 100755 install-virtual.lua create mode 100644 openmamba-groups.db create mode 100644 openmamba-release.sh create mode 100644 openmamba-smart-00-configure-once-example.py create mode 100644 openmamba-smart-configure-once.py create mode 100644 openmamba-smart-devel.py create mode 100644 openmamba-smart-milestone3.py create mode 100644 openmamba-smart-multi-version-select.py create mode 100644 openmamba-smart-multiarch-update-x86_64.py create mode 100644 openmamba-smart-virtual-packages-select.py diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..755b5d9 --- /dev/null +++ b/Makefile @@ -0,0 +1,63 @@ +# Makefile for openmamba-release +# Copyright (c) 2015 by Silvan Calarco +# Released under the terms of the GNU GPLv3 license + +PACKAGE=openmamba-release + +distdir = $(PACKAGE)-$(VERSION) +dist_archive = $(distdir).tar.bz2 + +include VERSION + +# System locations +prefix = /usr +exec_prefix = ${prefix} +sysconfdir = /etc +sbindir = /sbin +bindir = ${exec_prefix}/bin +mandir = ${prefix}/usr/share/man +datadir = ${prefix}/share +iconsdir = ${datadir}/icons/hicolor +initrddir = ${sysconfdir}/rc.d/init.d +sysconfigdir= ${sysconfdir}/sysconfig +localesdir = ${datadir}/locale +xdgautostartdir = ${sysconfdir}/xdg/autostart +srcdir = . + +DESTDIR = +INSTALL = /usr/bin/install +INSTALL_PROGRAM = ${INSTALL} -m 755 +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_DIR = ${INSTALL} -d -m 755 +INSTALL_SCRIPT = ${INSTALL_PROGRAM} + +all: + +install-dirs: + @$(INSTALL_DIR) $(DESTDIR)$(bindir) + +install-data: + +install-programs: + +install-x86_64: + +install: install-dirs install-data install-programs + +clean: + rm -f $(dist_archive) + +dist: clean + @git clean -f + @git log > ChangeLog + @mkdir /tmp/$(distdir) + @cp -a * /tmp/$(distdir)/ + @rm -f $(dist_archive);\ + tar cf - -C /tmp $(distdir) | bzip2 -9 -c > $(dist_archive) + @rm -rf /tmp/$(distdir) + @echo "file \`$(dist_archive)' created" + +dist-rpm: dist + @rpm_sourcedir=`rpm --eval=%{_sourcedir}`;\ + mv -f $(PACKAGE)-$(VERSION).tar.bz2 $$rpm_sourcedir;\ + echo "File $$rpm_sourcedir/$(PACKAGE)-$(VERSION).tar.bz2 created." diff --git a/RPM-GPG-KEY-Mambasoft b/RPM-GPG-KEY-Mambasoft new file mode 100644 index 0000000..cdb1e01 --- /dev/null +++ b/RPM-GPG-KEY-Mambasoft @@ -0,0 +1,25 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.9 (GNU/Linux) + +mQGiBEu3hBARBADTCCP3KHl2qy9L9nDm3q+P6+1ZtGvYlv3DaAb3Wwaidw3AJ1WZ +TDjeEeohi6RwGRotGByeUQcEX5Oi/b9lsfs6IJ9adUdvYFlWdbj3XwDjauoIyWSK +fdsjGk9WY0QEfIlI/u48SvcSzOs4dKy8hc6jzwj7lq9TPdOsVwAgNC13ZwCgsoiS +Jg4fgiOmq2r7CyphHy8/ge0EAIO2WpsV/3uzODqH5t7MRlNRIaZkV3UqRCAOzEk+ +bd355uhbIcm818ZZDt9hQ6F937etml66pJDEfPXe4nnWiHhrxBHIVpNhsrRvAkMB +sF12NbopYC4ZW3qnkrqUAN2PxaB+Pel4fJ/S7Jk0c2BE66NZ8tP2aHNfqUA8SwsC +AqjhBACme5hLHed8Tjqx8/9DUK+5hQPrpkcufmNZoRHJqw0SUF91kxMWEsEFIHIl +KOeJl4noihLH+HqmyIgLrvoljTe2RvubK7SqX7BgnHUCXspo8WJcNUi2ZY8xLKI9 +u6uWoS2IGzNN95SblA/CbI0nQ0xqzky21C5dEax6R6E9JL+0RbQvTWFtYmFzb2Z0 +IGRpIENhbGFyY28gU2lsdmFuIDxpbmZvQG1hbWJhc29mdC5pdD6IYAQTEQIAIAUC +S7eEEAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJELdxwASHRoeBxrIAniDv +Y0bAei7clSIz0aJGgN4jmGDZAJ4mU2E25As1GqudXXTK1uv9LrA687kBDQRLt4QQ +EAQA9D46AUMNoGX074i4vPnYNTA06N+oEy4LKAjWpt4VQyRyaeDXBrljPRKnkEwC +Dk604bl6Dp6JwgL3XA4nMhIbBctxCMFvZ1CE9uOG+242OUFq2ecaZ92JmH9RoaH+ +uC0aZKOfiNZ3qVY/URoTppEBfJYfKh1T4EvtYq5ilLUF46sAAwUEAOUmsr+8GuqU +AvH6Yg/ZY9JvuTaXdl295cVQEzBpv5EauAk3NlbJzfNqMNxmyi4zfybVyw7UHs3b +b2P1tWH+lnL1hyXYyKskeoJbtuGT1MkSCj3yIznqXFAhedZBw7sBCSc2/yv5RbRb +Vfiuo5VDGWIrCNrgw9st0a1OimJdCHoBiEkEGBECAAkFAku3hBACGwwACgkQt3HA +BIdGh4EPIgCbBf4YBmyBZpLvK4B0LhnszWZ1BnAAoJcZSL6kpkSB7vskIwN9RSFG +29XC +=Ifwi +-----END PGP PUBLIC KEY BLOCK----- diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..0e75c0f --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +VERSION=2.99.0 diff --git a/gpg-key-openmamba.sh b/gpg-key-openmamba.sh new file mode 100644 index 0000000..7e614ac --- /dev/null +++ b/gpg-key-openmamba.sh @@ -0,0 +1,2 @@ +gpg -q --list-keys "Mambasoft di Calarco Silvan" &>/dev/null +[ $? -eq 0 ] || gpg -q --ignore-time-conflict --ignore-valid-from --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Mambasoft diff --git a/install-virtual.conf b/install-virtual.conf new file mode 100644 index 0000000..cb26954 --- /dev/null +++ b/install-virtual.conf @@ -0,0 +1 @@ +Scripts::AptGet::Install::SelectPackage:: "install-virtual.lua"; diff --git a/install-virtual.lua b/install-virtual.lua new file mode 100755 index 0000000..43e02f2 --- /dev/null +++ b/install-virtual.lua @@ -0,0 +1,44 @@ +-- This script will perform custom selections when a virtual package +-- is required +-- +-- Author: Silvan Calarco Copyright (c) 2005-2009 +-- + +-- Allow someone to disable this without removing the script. + +if confget("APT::Get::install-virtual/b", "true") == "false" then + return +end +selectnames = { "kernel-mamba-wireless", "kernel-mamba-sound-backport" } +knames = { "mamba" } +-- get kernel package name for running kernel (kernel-smp, kernel, etc) +function get_kerneltype() + return string.gsub(posix.uname("%r"), "[%d.]*(.*)", "%1") +end + +-- get kernel package prefix name +function get_kernelname() + return "kernel"; +end + +kernel_suffix = get_kerneltype() +kernel_prefix = get_kernelname() + +for i, pkg in pairs(packagenames) do + -- select correct kernel package + -- the choiche is for the shortest match so for instance if kernel_suffix is mamba + -- the mamba package is preferred over mamba-64GB + if (string.find(pkg,kernel_prefix.."-") == 1) then + if not (kernel_suffix == "") and (string.find(pkg,kernel_suffix)) then + if (not selected) then + selected=pkgfind(pkg) + else + if (string.len(pkg) < string.len(tostring(selected))) then + selected=pkgfind(pkg) + end + end + end + end + +end +return diff --git a/openmamba-groups.db b/openmamba-groups.db new file mode 100644 index 0000000..a934799 --- /dev/null +++ b/openmamba-groups.db @@ -0,0 +1,226 @@ +# openmamba base packages database +# Copyright (c) 2008-2014 by Silvan Calarco + +rpm -q desktop-base-kde4 >/dev/null && KDE4_IS_INSTALLED=1 +rpm -q desktop-base-gnome >/dev/null && GNOME_IS_INSTALLED=1 +ARCH=`uname -m` + +PKG_GROUPS=("KERNEL_MAMBA_PKGS" "KERNEL_MAMBA_64GB_PKGS" "BASE_PKGS" "OFFICE_PKGS" "OFFICE_EXTRA_PKGS" "MULTIMEDIA_PLAYERS_PKGS" + "MULTIMEDIA_EDITING_PKGS" "INTERNET_PKGS" "INTERNET_EXTRA_PKGS" "GRAPHICS_PKGS" "SCIENTIFIC_PKGS" "GAMES_PKGS" + "GAMES_EXTRA_PKGS" "VIRTUALIZATION_PKGS" "SERVER_PKGS" "DEVEL_PKGS" "SUN_JAVA_PKGS" "SUN_JAVA_RUNTIME_PKGS") +PKG_NAMES=("kernel" "kernel-64GB" "base" "office" "office-extras" "multimedia-players" "multimedia-editing" "internet" + "internet-extras" "graphics" "scientific" "games" "games-extras" "virtualization" + "server" "devel" "sun-java" "sun-java-runtime") +PKG_DESC=("Standard kernel" "64GB kernel for computers with 4GB or more" "Base packages" "Office suite" "Office extra packages" + "Audio and Video players" "Multimedia editing and production applications" "Internet applications" + "Internet extra applications" "Graphics applications" "Scientific applications" "Games" "Games extras" + "Virtualization applications" "Server packages" "Development packages" "Sun Java" "Sun Java Runtime") + +KERNEL_MAMBA_PKGS="\ +kernel-mamba kernel-mamba-nongpl-fglrx kernel-mamba-wireless \ +kernel-mamba-ndiswrapper kernel-mamba-stk11xx kernel-mamba-r8101 \ +kernel-mamba-sound kernel-mamba-vboxdrv kernel-mamba-nongpl-nvidia \ +kernel-mamba-nongpl-wl kernel-mamba-vboxvideo" + +KERNEL_MAMBA_64GB_PKGS="\ +kernel-mamba-64GB kernel-mamba-64GB-nongpl-fglrx kernel-mamba-64GB-wireless \ +kernel-mamba-64GB-ndiswrapper kernel-mamba-64GB-stk11xx kernel-mamba-64GB-r8101 \ +kernel-mamba-64GB-sound kernel-mamba-64GB-vboxdrv kernel-mamba-64GB-nongpl-nvidia \ +kernel-mamba-64GB-nongpl-wl kernel-mamba-64GB-vboxvideo" + +KERNEL_MAMBA_X86_64_PKGS="\ +kernel-mamba-x86_64 kernel-mamba-x86_64-sound kernel-mamba-x86_64-wireless \ +kernel-mamba-x86_64-vboxdrv kernel-mamba-x86_64-nongpl-nvidia \ +kernel-mamba-x86_64-vboxvideo" + +KERNEL_MAMBA_ARM_PKGS="\ +kernel-mamba-arm kernel-mamba-arm-sound kernel-mamba-arm-wireless" + +BASE_PKGS="\ +desktop-base-openmamba logrotate vixie-cron openssh-server \ +samba-server foomatic nfs-utils lsb \ +mambatray r5u87x-firmware zd1211-firmware \ +alsa-firmware alsa-tools-firmware midisport-firmware \ +bluez-firmware ipw2100-firmware ipw2200-firmware xterm desktop-file-utils \ +chinese-fonts-ttf un-core-fonts-ttf inetutils" + +if [ "$ARCH" != "arm" ]; then + BASE_PKGS="$BASE_PKGS unrar VirtualBox-vboxguest pcmcia-utils" +fi + +if [ "$KDE4_IS_INSTALLED" ]; then + BASE_PKGS="$BASE_PKGS ksnapshot okular kamera \ +kleopatra kdemultimedia-audiocd kmix kscd kwalletmanager \ +bluedevil kcron ksystemlog kuser kfind kwrite \ +ark kinfocenter krfb printer-applet knotes kate \ +kdepasswd krename smb4k oxygen-icons-svg \ +kdeplasma-addons system-config-printer-kde" +fi +if [ "$GNOME_IS_INSTALLED" ]; then + BASE_PKGS="$BASE_PKGS evince" +fi + +BASE_PKGS_EXTRAS="\ +gnupg apt-file xorg-apps-extra hsfmodem \ +compiz-fusion-plugins-extra compiz-fusion-plugins-main \ +compizconfig-settings-manager syslog-ng" + +OFFICE_PKGS="\ +libreoffice-base libreoffice-math libreoffice-writer libreoffice-impress \ +libreoffice-calc libreoffice-filters libreoffice-pyuno" + +if [ "$KDE4_IS_INSTALLED" ]; then + OFFICE_PKGS="$OFFICE_PKGS kmymoney" +fi +if [ "$GNOME_IS_INSTALLED" ]; then + OFFICE_PKGS="$OFFICE_PKGS gnucash" +fi + +# sync-engine synce-kpm libopensync-plugin-python \ +#libopensync-plugin-syncml libopensync-plugin-palm \ +# libopensync-plugin-moto libopensync-plugin-google-calendar" + +if [ "$KDE4_IS_INSTALLED" ]; then + OFFICE_PKGS="$OFFICE_PKGS kjots4 libreoffice-kde" +fi + +if [ "$GNOME_IS_INSTALLED" ]; then + OFFICE_PKGS="$OFFICE_PKGS libreoffice-gnome" +fi + +OFFICE_EXTRA_PKGS="abiword" + +if [ "$KDE4_IS_INSTALLED" ]; then + OFFICE_EXTRA_PKGS="$OFFICE_EXTRA_PKGS koffice kmymoney2" +fi + +if [ "$GNOME_IS_INSTALLED" ]; then + OFFICE_EXTRA_PKGS="$OFFICE_EXTRA_PKGS abiword" +fi + +MULTIMEDIA_PLAYERS_PKGS="vlc freetuxtv audacity" + +if [ "$KDE4_IS_INSTALLED" ]; then + MULTIMEDIA_PLAYERS_PKGS="$MULTIMEDIA_PLAYERS_PKGS amarok dragonplayer juk" +fi + +MULTIMEDIA_PLAYERS_EXTRA_PKGS="xmms alsaplayer-output-alsa alsaplayer-output-oss clementine kaffeine miro" + +MULTIMEDIA_EDITING_PKGS="lmms MuseScore qjackctl \ +qsynth hydrogen mixxx audacity muse DVDStyler" + +MULTIMEDIA_EDITING_EXTRA_PKGS="puredata timidity ardour qtractor rosegarden ZynAddSubFX DVDAuthorWizard \ +DVDRipOMatic reKordmydesktop lives" + +if [ "$KDE4_IS_INSTALLED" ]; then + MULTIMEDIA_EDITING_PKGS="$MULTIMEDIA_EDITING_PKGS \ +kdenlive soundkonverter k3b" +elif [ "$GNOME_IS_INSTALLED" ]; then + MULTIMEDIA_EDITING_PKGS="$MULTIMEDIA_EDITING_PKGS brasero" +fi + +# obsoleted: +AUDIO_PKGS="$MULTIMEDIA_PLAYERS_PKGS" +AUDIO_PROF_PKGS="$MULTIMEDIA_EDITING_PKGS" +VIDEO_PKGS="$MULTIMEDIA_EDITING_PKGS" + +INTERNET_PKGS="amule chromium FileZilla icedtea-web-plugin" + +if [ "$KDE4_IS_INSTALLED" ]; then + INTERNET_PKGS="$INTERNET_PKGS ktorrent kontact kopete kpartsplugin" +elif [ "$GNOME_IS_INSTALLED" ]; then + INTERNET_PKGS="$INTERNET_PKGS pigdin ekiga thunderbird totem-mozilla-plugin" +else + INTERNET_PKGS="$INTERNET_PKGS totem-mozilla-plugin" +fi + +INTERNET_EXTRA_PKGS="firefox midori moonlight" + +GRAPHICS_PKGS="gimp blender inkscape cheese xsane xscreensaver xscreensaver-gl" + +if [ "$KDE4_IS_INSTALLED" ]; then + GRAPHICS_PKGS="$GRAPHICS_PKGS digikam gwenview kgamma kruler \ +kamera kcolorchooser kolourpaint \ +kde4-color-schemes-addons kde4-emoticons-addons kde4-icons-kdeclassic \ +kde4-screensavers kde4-desktoptheme kde4-wallpapers-addons \ +kde4-style-phase" +fi + +SCIENTIFIC_PKGS="stellarium" + +GRAPHICS_EXTRA_PKGS="cinepaint" + +GAMES_PKGS="\ +extremetuxracer pingus gnuchess powermanga frozen-bubble \ +supertux supertuxkart xmoto bomber bovo \ +monkey-bubble pathological neverball armagetronad \ +moagg knights pinball torcs tuxfootball" + +if [ "$KDE4_IS_INSTALLED" ]; then + GAMES_PKGS="$GAMES_PKGS ksudoku amor kteatime ktux \ +kapman katomic kbattleship kblackbox kblocks kbounce \ +kbreakout kdesnake kdiamond kfourinline kgoldrunner killbots kiriki \ +kjumpingcube klines kmahjongg kmines knetwalk kolf kollision konquest \ +kpat kreversi ksame kshisen ksirk kspaceduel ksquares ksudoku4 ktron \ +ktuberling kubrick lskat" +fi + +GAMES_EXTRA_PKGS="\ +openarena lincity-ng AlephOne bzflag enemy-territory glest scorched3d \ +tremulous vegastrike warzone2100 widelands freeciv openttd \ +FlightGear lincity-ng xmame" + +VIRTUALIZATION_PKGS="wine VirtualBox" + +VIRTUALIZATION_EXTRA_PKGS="qemu qtemu" + +SERVER_PKGS="\ +apache postfix vsftpd php apache-mod_php mysql mysql-client \ +samba-server at vixie-cron rsync openssh-server" + +DEVEL_PKGS="\ +automake pkgconfig gcc gcc-c++ autospec autoconf automake bison cmake \ +gettext-devel glibc-devel hal-devel kernel-mamba-headers \ +libalsa-devel libart_lgpl-devel libaudio-devel libatk-devel libaudiofile-devel libbonobo-devel \ +libbzip2-devel libcairo-devel libcups-devel libdbus-devel libdbus-qt3-devel libe2fs-devel \ +libexpat-devel libavformat-devel libavutil-devel libpostproc-devel libswscale-devel \ +libflac-devel libfontconfig-devel libfreetype-devel libGL-devel \ +libglib-devel libgnome-devel libgnome-vfs-devel libgtk-devel libICE-devel \ +libglitz-devel libxcb-util-devel libpixman-devel libpthread-stubs-devel \ +libXv-devel makedepend libdrm-devel libXvMC-devel \ +libidn-devel libjack-devel libjpeg-devel liblcms-devel libmng-devel libncurses-devel \ +libogg-devel libopenldap-devel libopenssl-devel libpango-devel libpcre-devel \ +libpng-devel libpopt-devel libpython-devel libqt-devel libreadline-devel libraw1394-devel \ +libsamplerate-devel libSDL-devel libSDL_image-devel libSDL_mixer-devel libSDL_Pango-devel libSM-devel \ +libsndfile-devel libstdc++6-devel libtiff-devel libusb-devel libvorbis-devel \ +libwxBase-ansi-devel libwxBase-unicode-devel libwxGTK-ansi-devel \ +libwxGTK-unicode-devel libX11-devel libXau-devel libXaw-devel libxcb-devel \ +libXcomposite-devel libXcursor-devel libXdamage-devel libXdmcp-devel \ +libXext-devel libXfixes-devel libXft-devel libXi-devel libXinerama-devel \ +libxml2-devel libXmu-devel libXpm-devel libXrandr-devel libXrender-devel \ +libXres-devel libxslt-devel libXt-devel libXxf86vm-devel libz-devel ORBit2-devel \ +libgcrypt-devel libgnutls-devel libgpg-error-devel libxml2-utils \ +libsane-backends-devel pam-devel perl-devel rpm-devel scons texinfo \ +xproto-devel xorg-server-devel subversion git docbook-utils docbook-xsl \ +libqt4-devel automoc4 libXtst-devel libbluez-devel libgamin-devel \ +gtk-doc libgail-devel libdbus-glib-devel intltool xmlto ghostscript-devel imake \ +gccmakedep libXp-devel mercurial gnome-doc-utils-devel gnome-desktop-devel gdb flex \ +doxygen" + +if [ "$KDE4_IS_INSTALLED" ]; then + DEVEL_PKGS="$DEVEL_PKGS kdelibs-devel kdepimlibs-devel kdebase-workspace-devel \ +kdebase4-devel libphonon-devel" +fi + +SUN_JAVA_PKGS="sun-java" +SUN_JAVA_RUNTIME_PKGS="sun-java-runtime" + +# default client installation +ALL_PKGS="\ +$KERNEL $BASE_PKGS $OFFICE_PKGS $MULTIMEDIA_PLAYERS_PKGS $MULTIMEDIA_EDITING_PKGS \ +$INTERNET_PKGS $GRAPHICS_PKGS \ +$GAMES_PKGS $VIRTUALIZATION_PKGS $DEVEL_PKGS \ +$SUN_JAVA_PKGS $SUN_JAVA_RUNTIME_PKGS" + +EXTRA_PKGS="\ +$OFFICE_EXTRA_PKGS $INTERNET_EXTRA_PKGS $GAMES_EXTRA_PKGS $SERVER_PKGS" diff --git a/openmamba-release.sh b/openmamba-release.sh new file mode 100644 index 0000000..2fd824d --- /dev/null +++ b/openmamba-release.sh @@ -0,0 +1,104 @@ +#!/bin/sh +# Collect informations from sourceable /etc/[distro]-release file: +# DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME, DISTRIB_DESCRIPTION +# +# Copyright (C) 2006-2007,2013 Davide Madrisan + +script_ver=2 +script_name="$(basename $0 2>/dev/null)" + +usage () +{ + echo "\ +$script_name v$script_ver, prints Distribution informations +Copyright (C) 2006-2007,2013 Davide Madrisan + +Usage: $script_name [OPTION] +With no OPTION specified it is the same as -a. + +Options: + -i, --id + Display the string id of the distributor. + -d, --description + Display the single line text description of the distribution. + -r, --release + Display the release number of the distribution. + -c, --codename + Display the codename according to the distribution release. + -a, --all + Display all of the above information. + -h, --help + Display this message." +} + +get_all=0 +get_codename=0 +get_description=0 +get_id=0 +get_release=0 + +[ -z "$@" ] && get_all=1 + +OPTS=`LANG=C getopt -o acdhirs \ + --long all,codename,description,help,id,release,short \ + -n "$script_name" -- "$@"` +[ $? = 0 ] || exit 1 + +eval set -- "$OPTS" + +while :; do + case "$1" in + -a|--all) + get_all=1 + get_codename=1 + get_description=1 + get_id=1 + get_release=1 ;; + -c|--codename) + get_codename=1 ;; + -d|--description) + get_description=1 ;; + -h|--help) + usage; exit 0 ;; + -i|--id) + get_id=1 ;; + -r|--release) + get_release=1 ;; + -s|--short) + short=0 ;; + --) shift; break ;; + *) echo "\ +(bug) -- $script_name: \`getopt' error: bad command \`$1'" ;; + esac + shift +done + +[ -r /etc/os-release ] || exit 1 + +. /etc/os-release + +distro_id="$ID" +distro_description="$PRETTY_NAME" +distro_release="$VERSION_ID" +distro_codename="$OPENMAMBA_CODENAME" +[ "$distro_codename" ] || distro_codename="n/a" + +unset res +if [ "$get_all" = 1 ]; then + res="\ +$distro_id \"$distro_description\" $distro_release $distro_codename" +else + [ "$get_id" = 1 ] && + res="${res:+$res }$distro_id" + [ "$get_description" = 1 ] && + res="${res:+$res }$distro_description" + [ "$get_release" = 1 ] && + res="${res:+$res }$distro_release" + [ "$get_codename" = 1 ] && + res="${res:+$res }$distro_codename" +fi + +[ "$res" ] || exit 1 +echo "$res" + +exit 0 diff --git a/openmamba-smart-00-configure-once-example.py b/openmamba-smart-00-configure-once-example.py new file mode 100644 index 0000000..a11b8bb --- /dev/null +++ b/openmamba-smart-00-configure-once-example.py @@ -0,0 +1,5 @@ +for r in [ "milestone2-kde4", "milestone2-xorg", "milestone2-kde4" ]: + channel=sysconf.get(("channels", r)) + if channel: + channel['disabled']=False + sysconf.set(("channels", r),channel) diff --git a/openmamba-smart-configure-once.py b/openmamba-smart-configure-once.py new file mode 100644 index 0000000..4052bc6 --- /dev/null +++ b/openmamba-smart-configure-once.py @@ -0,0 +1,4 @@ +import os + +if os.path.isfile('/etc/smart/distro.d/00-configure-once.py'): + os.remove('/etc/smart/distro.d/00-configure-once.py') diff --git a/openmamba-smart-devel.py b/openmamba-smart-devel.py new file mode 100644 index 0000000..8dbfce6 --- /dev/null +++ b/openmamba-smart-devel.py @@ -0,0 +1,206 @@ +# +# 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 development repository [unstable]", + "baseurl": "http://www.openmamba.org/pub/openmamba/devel", + "components": "%ARCH%"}) + +# +# 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 devel repository containing big games [unstable]", + "baseurl": "http://www.openmamba.org/pub/openmamba/devel-games", + "components": "%ARCH%"}) + +# +# 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://www.openmamba.org/pub/openmamba/devel-kde4", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-kernel", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-xorg", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-gnome", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-misc", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-makedist", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-embedded", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-autodist", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-future", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-past", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-java", + "components": "%ARCH%", + "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://www.openmamba.org/pub/openmamba/devel-contrib", + "components": "%ARCH%", + "manual": "yes", + "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"]: + channel=sysconf.get(("channels", r)) + if channel: + 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"]: + channel=sysconf.get(("channels", r)) + if channel: + channel['disabled']=True + sysconf.set(("channels",r),channel) diff --git a/openmamba-smart-milestone3.py b/openmamba-smart-milestone3.py new file mode 100644 index 0000000..018c332 --- /dev/null +++ b/openmamba-smart-milestone3.py @@ -0,0 +1,120 @@ +# +# openmamba milestone3 channel configuration for Smart Package Manager +# +if not sysconf.get(("channels", "milestone3")): + sysconf.set(("channels", "milestone3"), + {"alias": "milestone3", + "type": "apt-rpm", + "name": "stable milestone3 base packages", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3", + "components": "%ARCH%"}) + +# +# openmamba milestone3-games channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-games")): + sysconf.set(("channels", "milestone3-games"), + {"alias": "milestone3-games", + "type": "apt-rpm", + "name": "stable milestone3 games packages", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-games", + "components": "%ARCH%"}) + +# +# openmamba milestone3-updates channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-updates")): + sysconf.set(("channels", "milestone3-updates"), + {"alias": "milestone3-updates", + "type": "apt-rpm", + "name": "stable milestone3 updates packages", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-updates", + "components": "%ARCH%"}) + +# +# openmamba milestone3-kernel channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-kernel")): + sysconf.set(("channels", "milestone3-kernel"), + {"alias": "milestone3-kernel", + "type": "apt-rpm", + "name": "newest kernel release for milestone3 stable systems", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-kernel", + "components": "%ARCH%", + "disabled": "yes"}) + +# +# openmamba milestone3-kernel-next channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-kernel-next")): + sysconf.set(("channels", "milestone3-kernel-next"), + {"alias": "milestone3-kernel-next", + "type": "apt-rpm", + "name": "experimental kernel release for milestone3 stable systems", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-kernel-next", + "components": "%ARCH%", + "disabled": "yes"}) + +# +# openmamba milestone3-kde4 channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-kde4")): + sysconf.set(("channels", "milestone3-kde4"), + {"alias": "milestone3-kde4", + "type": "apt-rpm", + "name": "newest kde4 release for milestone3 stable systems", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-kde4", + "components": "%ARCH%", + "disabled": "yes"}) + +# +# openmamba milestone3-xorg channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-xorg")): + sysconf.set(("channels", "milestone3-xorg"), + {"alias": "milestone3-xorg", + "type": "apt-rpm", + "name": "newest X.org release for milestone3 stable systems", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-xorg", + "components": "%ARCH%", + "disabled": "yes"}) + +# +# openmamba milestone3-makedist channel configuration for Smart Package Manager +# + +if not sysconf.get(("channels", "milestone3-makedist")): + sysconf.set(("channels", "milestone3-makedist"), + {"alias": "milestone3-makedist", + "type": "apt-rpm", + "name": "experimental milestone3 makedist packages", + "baseurl": "http://www.openmamba.org/pub/openmamba/milestone3-makedist", + "components": "%ARCH%", + "disabled": "yes"}) + +import os +import sys +release=os.popen("openmamba-release -c").read() + +for r in ["milestone3","milestone3-updates","milestone3-games","milestone3-makedist","milestone3-kernel","milestone3-kde4","milestone3-xorg","milestone3-kernel-next"]: + channel=sysconf.get(("channels", r)) + if channel: + channel['fingerprint']='A402 AA41 82DE 06DD 0C82 943A B771 C004 8746 8781' + +if release.startswith('milestone3'): + for r in ["milestone3","milestone3-updates","milestone3-games"]: + channel=sysconf.get(("channels", r)) + if channel: + channel['disabled']=False + sysconf.set(("channels",r),channel) + for r in ["devel","devel-games"]: + channel=sysconf.get(("channels", r)) + if channel: + channel['disabled']=True + sysconf.set(("channels",r),channel) diff --git a/openmamba-smart-multi-version-select.py b/openmamba-smart-multi-version-select.py new file mode 100644 index 0000000..a5e1458 --- /dev/null +++ b/openmamba-smart-multi-version-select.py @@ -0,0 +1,12 @@ +pkgconf.setFlag("lock", "openmamba-release >= 1.99.4") +pkgconf.setFlag("lock", "rpm >= 5.2") +pkgconf.setFlag("lock", "smart >= 1.3") +if not sysconf.getReadOnly(): + for kernelseries in ["kernel"]: + for flavour in ("-mamba", "-mamba-64GB", "-mamba-rt", "-mamba-64GB-rt", "-mamba-x86_64", "-mamba-xen"): + for kpkg in ("", "-headers", "-headers-sanitised", "-sound", "-sound-backport", \ + "-source", "-wireless", "-wireless-backport", "-nongpl-fglrx", "-nongpl-wl", \ + "-nongpl-hsfmodem", "-lirc", "-ndiswrapper", "-nongpl-nvidia_173xx", \ + "-nongpl-nvidia_71xx", "-nongpl-nvidia_96xx", "-nongpl-nvidia", "-nongpl-slmodem", \ + "-vboxdrv", "-cm2020", "-rtl8192se", "-stk11xx"): + pkgconf.setFlag("multi-version", "%s%s%s" % (kernelseries, flavour, kpkg)) diff --git a/openmamba-smart-multiarch-update-x86_64.py b/openmamba-smart-multiarch-update-x86_64.py new file mode 100644 index 0000000..da4b619 --- /dev/null +++ b/openmamba-smart-multiarch-update-x86_64.py @@ -0,0 +1,6 @@ +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"]: + channel=sysconf.get(("channels", r)) + if channel: + channel['components']='x86_64 i586' + sysconf.set(("channels",r),channel) diff --git a/openmamba-smart-virtual-packages-select.py b/openmamba-smart-virtual-packages-select.py new file mode 100644 index 0000000..955a2d9 --- /dev/null +++ b/openmamba-smart-virtual-packages-select.py @@ -0,0 +1,58 @@ +# +# set package priority for multiple provider openmamba preferred and localization packages +# +# Copyright (c) 2011-2013 by Silvan Calarco +# +try: + import os + import string + import re +except ImportError, e: + raise ImportError, str(e) + """ +A critical module was not found. Probably this OS does not support it. +Currently pexpect is intended for UNIX operating systems.""" + +if os.environ.has_key("LANG"): + envlang=os.environ["LANG"] +else: + envlang="C" +uname=os.uname() +kernel_flavour=re.sub(r"^[0-9.]*", "", uname[2]); +lang=string.split(envlang, ".")[0] +lang1=string.split(lang, "_")[0] + +if not sysconf.getReadOnly(): + for channel in ["devel","milestone2"]: + for pkg in ["PyKDE4","PyQt4","alsaplayer-output-alsa","glibc","grub2","libpython","perl","pwdutils","python-tk","network-manager-applet","phonon-backend-gstreamer","soprano-backend-virtuoso","dhcp-client","libphonon"]: + pkgconf.removePriority(pkg,channel) + for pkg in ["OpenOffice-i18n","firefox-i18n","gcompris-i18n","gimp-help-i18n","kde-i18n","kde-l10n","koffice-i18n","man-pages-i18n","rsibreak-i18n"]: + pkgconf.removePriority("%s-%s" % (pkg,lang),channel) + pkgconf.removePriority("%s-%s" % (pkg,lang1),channel) + for pkg in ["PyKDE4","PyQt4","alsaplayer-output-alsa","glibc","grub2","libpython","perl","pwdutils","python-tk","network-manager-applet","phonon-backend-gstreamer","soprano-backend-virtuoso","dhcp-client","libphonon"]: + pkgconf.removePriority(pkg,"") + pkgconf.setPriority(pkg,None,10) + for pkg in ["calligra-l10n","firefox-i18n","gcompris-i18n","gimp-help-i18n","icecat-i18n","kde-i18n","kde-l10n","koffice-i18n","libreoffice-i18n","man-pages-i18n","netbeans-l10n","rsibreak-i18n","tesseract-i18n"]: + pkgconf.removePriority("%s-%s" % (pkg,lang),"") + pkgconf.removePriority("%s-%s" % (pkg,lang1),"") + pkgconf.setPriority("%s-%s" % (pkg,lang),None,15) + pkgconf.setPriority("%s-%s" % (pkg,lang1),None,10) + for kernelseries in ["kernel"]: + for flavour in ("mamba", "mamba-64GB", "mamba-rt", "mamba-64GB-rt", "mamba-x86_64", "mamba-xen"): + for kpkg in ("", "-headers", "-headers-sanitised", "-sound", \ + "-source", "-wireless", "-nongpl-fglrx", "-nongpl-wl", \ + "-nongpl-hsfmodem", "-lirc", "-ndiswrapper", "-nongpl-nvidia_173xx", \ + "-nongpl-nvidia_71xx", "-nongpl-nvidia_96xx", "-nongpl-nvidia", "-nongpl-slmodem", \ + "-vboxdrv", "-cm2020", "-rtl8192se", "-stk11xx"): + if (kernel_flavour == flavour): + pkgconf.removePriority("%s-%s%s" %(kernelseries, flavour, kpkg),"") + pkgconf.setPriority("%s-%s%s" %(kernelseries, flavour, kpkg),None,10) + else: + pkgconf.removePriority("%s-%s%s" %(kernelseries, flavour, kpkg),"") + pkgconf.removePriority("%s-%s%s" %(kernelseries, flavour, kpkg),None) + for kpkg in ("-sound-backport", "-wireless-backport"): + if (kernel_flavour == flavour): + pkgconf.removePriority("%s-%s%s" %(kernelseries, flavour, kpkg),"") + pkgconf.setPriority("%s-%s%s" %(kernelseries, flavour, kpkg),None,5) + else: + pkgconf.removePriority("%s-%s%s" %(kernelseries, flavour, kpkg),"") + pkgconf.removePriority("%s-%s%s" %(kernelseries, flavour, kpkg),None)