From 45374bcd46037e98818685dd3e1584a04b786668 Mon Sep 17 00:00:00 2001 From: Marcin Slodkiewicz Date: Tue, 3 Dec 2013 07:57:36 +0700 Subject: [PATCH] system/smart: Added (meta-package manager). Signed-off-by: Willy Sudiarto Raharjo --- system/smart/README | 37 +++++++++++++++++ system/smart/channels | 18 +++++++++ system/smart/doinst.sh | 23 +++++++++++ system/smart/slack-desc | 19 +++++++++ system/smart/smart.SlackBuild | 72 ++++++++++++++++++++++++++++++++++ system/smart/smart.desktop | 56 ++++++++++++++++++++++++++ system/smart/smart.info | 10 +++++ system/smart/smart.png | Bin 0 -> 4931 bytes 8 files changed, 235 insertions(+) create mode 100644 system/smart/README create mode 100644 system/smart/channels create mode 100644 system/smart/doinst.sh create mode 100644 system/smart/slack-desc create mode 100644 system/smart/smart.SlackBuild create mode 100644 system/smart/smart.desktop create mode 100644 system/smart/smart.info create mode 100644 system/smart/smart.png diff --git a/system/smart/README b/system/smart/README new file mode 100644 index 0000000000..463d9b6434 --- /dev/null +++ b/system/smart/README @@ -0,0 +1,37 @@ +The Smart Package Manager project has the ambitious objective of creating smart +and portable algorithms for solving adequately the problem of managing +software upgrades and installation. +This tool works in all major distributions and will bring notable advantages +over native tools currently in use (APT, APT-RPM, YUM, URPMI, etc). + +Notice that this project is not a magical bridge between every distribution in +the planet. Instead, this is software offering better package management for +these distributions when working with their native packages. Using multiple +packaging systems at the same time (like rpm and dpkg) is possible but would +require packages from those systems to follow the same packaging guidelines. +As a general rule, mixing packaging systems is not recommended. + +Smart supports the following repository formats as source channels: + +RPM repositories + RPM System Database (locally installed packages) + APT repositories for .rpm + RPM-MD (used by YUM) + Red Carpet (used by Ximian/Novell) + + RPM Header List (used by RedHat and Conectiva installation CDs) + RPM Directory (a directory with a bunch of RPMs in it, no indexing required) + URPMI (used by Mandriva) + +DEB repositories + DEB System Database (locally installed packages) + APT repositories for .deb + DEB Directory (a directory with a bunch of DEBs in it, no indexing required) + +Slackware + Slackware installed packages database + Slackware repositories + +Mirrors + up2date (used by RedHat/Fedora) + Conectiva-style mirror description formats diff --git a/system/smart/channels b/system/smart/channels new file mode 100644 index 0000000000..f112fa60e3 --- /dev/null +++ b/system/smart/channels @@ -0,0 +1,18 @@ +[rpm-sys] +type = rpm-sys +name = RPM System +disabled = yes + +[slack-sys] +type = slack-sys +name = Slackware System + +[slack-site] +type = slack-site +name = Slackware Site +baseurl = http://ftp.slackware.com/pub/slackware/slackware-14.1/ + +[slack-site-patches] +type = slack-site +name = Slackware Patches +baseurl = http://ftp.slackware.com/pub/slackware/slackware-14.1/patches/ \ No newline at end of file diff --git a/system/smart/doinst.sh b/system/smart/doinst.sh new file mode 100644 index 0000000000..6384c552d9 --- /dev/null +++ b/system/smart/doinst.sh @@ -0,0 +1,23 @@ +# Handle the incoming configuration files: +config() { + for infile in $1; do + NEW="$infile" + OLD="`dirname $NEW`/`basename $NEW .new`" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... + done +} + +# Prepare the new configuration file +config etc/smart/channels/channels.new + +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications +fi + diff --git a/system/smart/slack-desc b/system/smart/slack-desc new file mode 100644 index 0000000000..0434e668c4 --- /dev/null +++ b/system/smart/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +smart: smart (Smart is a meta-package manager) +smart: +smart: Smart is a meta-package manager in the spirit of APT, DEB and URPMI +smart: and others. It can manage RPM, DEB and Slackware packages and +smart: provides a clean architecture to add new package and repository +smart: formats (called channels in Smart). +smart: What sets Smart apart is a dependency-solving algorithm that +smart: outperforms other package managers, a clean architecture, wide +smart: support for package and repository formats, and great mirror +smart: management. +smart: diff --git a/system/smart/smart.SlackBuild b/system/smart/smart.SlackBuild new file mode 100644 index 0000000000..af497a9fd1 --- /dev/null +++ b/system/smart/smart.SlackBuild @@ -0,0 +1,72 @@ +#!/bin/sh + +# Slackware build script for smart +# Written by Marcin Slodkiewicz + +PRGNAM=smart +VERSION=${VERSION:-1.4.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 +cd $PRGNAM-$VERSION +chown -R root:root . + +python setup.py build +python setup.py install \ +--root=/$PKG \ +--prefix=/usr + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a README TODO LICENSE $PKG/usr/doc/$PRGNAM-$VERSION + +mkdir -p $PKG/etc/smart/channels +cat $CWD/channels > $PKG/etc/smart/channels/channels.new + +mkdir -p $PKG/usr/share/{applications,pixmaps} +cat $CWD/smart.desktop > $PKG/usr/share/applications/smart.desktop +cp $CWD/smart.png $PKG/usr/share/pixmaps/ + +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mv $PKG/usr/share/man $PKG/usr/man +find $PKG/usr/man -type f -exec gzip -9 {} \; + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/system/smart/smart.desktop b/system/smart/smart.desktop new file mode 100644 index 0000000000..67ee550cb2 --- /dev/null +++ b/system/smart/smart.desktop @@ -0,0 +1,56 @@ +[Desktop Entry] +Categories=System;PackageManager; +Encoding=UTF-8 +MultipleArgs=false +Terminal=false +Icon=/usr/share/pixmaps/smart.png +Exec=smart --gui +Type=Application +StartupNotify=true +Name=Smart Package Manager +GenericName=Package Manager +Comment=Install packages from various sources +X-KDE-SubstituteUID=true +X-KDE-Username=root + +Comment[bg]=Инсталиране на пакети от различни източници +GenericName[bg]=Управление на пакети +Comment[cs]=Instalace balíčků z různých zdrojů +GenericName[cs]=Správce balíčků +Comment[de]=Pakete aus verschiedenen Quellen installieren +GenericName[de]=Paketmanager +Comment[el]=Εγκατάσταση από πολλές πηγές +GenericName[el]=Διαχειριστής Πακέτων +Comment[es]=Instalación de paquetes de varios orígenes +GenericName[es]=Gestor de paquetes +Comment[fi]=Asenna paketteja eri lähteistä +GenericName[fi]=Ohjelmapakettienhallinta +Comment[fr]=Installer les packages de plusieurs sources +GenericName[fr]=Gestionnaire de packages +Comment[hu]=Csomagok telepítése különféle forrásokból +GenericName[hu]=Csomagkezelő +Comment[it]=Installa i pacchetti da varie origini +GenericName[it]=Programma di gestione dei pacchetti +Comment[ja]=多様なソースからパッケージをインストールします +GenericName[ja]=パッケージマネージャ +Comment[km]=ដំឡើង​កញ្ចប់​ពី​ប្រភព​ផ្សេងៗ +GenericName[km]=កម្មវិធី​គ្រប់គ្រង​កញ្ចប់ +Comment[nb]=Installer programvarepakker fra ulike kilder +GenericName[nb]=Pakkebehandler +Comment[nl]=Installeer pakketten uit diverse bronnen +GenericName[nl]=Pakketbeheer +GenericName[pa]=ਪੈਕੇਜ ਮੈਨੇਜਰ +Comment[pl]=Instalacja pakietów z różnych źródeł +GenericName[pl]=Menedżer pakietów +Comment[pt]=Instalar pacotes de várias origens +GenericName[pt]=Gestor de Pacotes +Comment[pt_BR]=Instalar pacotes de várias origens +GenericName[pt_BR]=Gerenciador de Pacotes +Comment[sv]=Installera paket från olika källor +GenericName[sv]=Pakethanterare +Comment[uk]=Встановлення пакунків з різних джерел +GenericName[uk]=Керування пакунками +Comment[zh_CN]=安装各种来源的程序包 +GenericName[zh_CN]=包管理器 +Comment[zh_TW]=安裝各種來源的套件 +GenericName[zh_TW]=套件管理員 diff --git a/system/smart/smart.info b/system/smart/smart.info new file mode 100644 index 0000000000..0e7877afa0 --- /dev/null +++ b/system/smart/smart.info @@ -0,0 +1,10 @@ +PRGNAM="smart" +VERSION="1.4.1" +HOMEPAGE="http://labix.org/smart/" +DOWNLOAD="http://launchpad.net/smart/trunk/1.4.1/+download/smart-1.4.1.tar.bz2" +MD5SUM="573ef32ba177a6b3c4bf7ef04873fcb6" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Marcin Slodkiewicz" +EMAIL="slociu@wp.pl" diff --git a/system/smart/smart.png b/system/smart/smart.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a23d6f35e48deaa3eef5b9d464d1449a39acca GIT binary patch literal 4931 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 L&z`E?l(hc?;O