From 45374bcd46037e98818685dd3e1584a04b786668 Mon Sep 17 00:00:00 2001 From: Marcin Slodkiewicz Date: Tue, 3 Dec 2013 07:57:36 +0700 Subject: 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 (limited to 'system/smart') 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 0000000000..f0a23d6f35 Binary files /dev/null and b/system/smart/smart.png differ -- cgit v1.2.3