system/smart: Added (meta-package manager).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Marcin Slodkiewicz 2013-12-03 07:57:36 +07:00 committed by Willy Sudiarto Raharjo
parent fbace84e4f
commit 45374bcd46
8 changed files with 235 additions and 0 deletions

37
system/smart/README Normal file
View File

@ -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

18
system/smart/channels Normal file
View File

@ -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/

23
system/smart/doinst.sh Normal file
View File

@ -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

19
system/smart/slack-desc Normal file
View File

@ -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:

View File

@ -0,0 +1,72 @@
#!/bin/sh
# Slackware build script for smart
# Written by Marcin Slodkiewicz <slociu@wp.pl>
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}

View File

@ -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]=套件管理員

10
system/smart/smart.info Normal file
View File

@ -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"

BIN
system/smart/smart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB