[arch-dev-public] Divide and Konquer - Splitting KDE packages
Pierre Schmitz
pierre at archlinux.de
Thu Jan 22 19:21:30 EST 2009
Hey guys,
providing splitted KDE packages is one of most wanted feature request sine
there was KDE in Arch. And people have good reasons demanding it. Let's have a
look at the problem:
The KDE project does not provide source packages for every single application
but they put them in some kind of categories. E.g. there are kdenetwork,
kdemultimedia, kdegraphics etc.. So if you want an VNC client you have to
install kdenetwork and you'll get an instant messanger, download manager, nvc
server, samba client and others including their dependencies for free.
But there is hope: future versions of makepkg will be able to help splitting
those packages in an easy way: http://dev.archlinux.org/~allan/makepkg-
git.html In fact KDE ist already prepared to be splitted; all you need to do
is running make install in the right directory.
After 4.2 will hit [extra] I'd like to work on this. This will also be a good
test case for the makepkg implementation.
In addition to this we'll need to update our devtools and db-scripts to handle
those packages right. extrapkg should be quite simple; archrelease and repo-
add should work just fine; only the db-scripts will really fail because they
cannot guess the svn-dir just from the package name anymore.
My idea of splitting is to create one package for each app like kopete and not
split by data, lib, docs etc.. Those packages will be members of a group; so
pacamn -S kdenetwork still results in the same apps being installed.
And last but not least: You might wonder why we not just include kdemod. I had
a little talk with funkyou about this. KDEmod/Chakra has different goals and
philosophy and is not really compatible with the Arch way. So they'd like to
keep doing their own thing.
Greetings,
Pierre
PS: I have attached a quick&dirty example to just show you that this would not
increase complexity that much; indeed I think this makes things a lot cleaner.
--
Pierre Schmitz
Clemens-August-Straße 76
53115 Bonn
Telefon 0228 9716608
Mobil 0160 95269831
Jabber pierre at jabber.archlinux.de
WWW http://www.archlinux.de
-------------- next part --------------
# $Id: PKGBUILD 24460 2009-01-17 13:41:39Z andrea $
# Maintainer: Pierre Schmitz <pierre at archlinux.de>
pkgname=('filesharing'
'kdnssd'
'kget'
'kopete'
'krdc'
'krfb')
pkgver=4.1.96
pkgrel=1
arch=('i686' 'x86_64')
url='http://www.kde.org'
license=('GPL' 'LGPL' 'FDL')
groups=('kde' 'kdenetwork')
makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdebase-workspace' 'libvncserver' 'libidn' 'libotr' 'qca' 'libmsn' 'ortp')
options=('docs')
source=("http://download.kde.org/unstable/${pkgver}/src/kdenetwork-${pkgver}.tar.bz2")
md5sums=('01c69a5982758b4939627a6c4aa8fd55')
build() {
cd $srcdir
mkdir build
cd build
cmake ../kdenetwork-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DWITH_Xmms=OFF
make
}
package_filesharing() {
pkgdesc='network file sharing'
depends=('kdebase-runtime' 'kdelibs')
install='kdenetwork.install'
cd $srcdir/build/filesharing
make DESTDIR=$pkgdir install
}
package_kdnssd() {
pkgdesc='Zeroconf'
depends=('kdebase-runtime' 'kdelibs')
cd $srcdir/build/kdnssd
make DESTDIR=$pkgdir install
}
package_kget() {
pkgdesc='an advanced download manager'
depends=('kdebase-workspace' 'kdebase' 'qca')
install='kdenetwork.install'
cd $srcdir/build/kget
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/kget
make DESTDIR=$pkgdir install
}
package_kopete() {
pkgdesc='Instant Messaging client'
depends=('kdebase-runtime' 'kdepimlibs' 'qca' 'libotr' 'libmsn' 'libidn' 'libxss' 'qimageblitz')
install='kdenetwork.install'
cd $srcdir/build/kopete
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/kopete
make DESTDIR=$pkgdir install
}
#
# package_kppp() {
# pkgdesc='dialer and front end for pppd'
# depends=('kdebase-runtime' 'kdelibs' 'ppp')
# install='kdenetwork.install'
# cd $srcdir/build/kppp
# make DESTDIR=$pkgdir install
# cd $srcdir/build/doc/kppp
# make DESTDIR=$pkgdir install
# }
package_krdc() {
pkgdesc='a client for Desktop Sharing'
depends=('kdebase-runtime' 'kdelibs' 'libvncserver' 'rdesktop')
cd $srcdir/build/krdc
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/krdc
make DESTDIR=$pkgdir install
}
package_krfb() {
pkgdesc='Desktop Sharing server, allow others to access your desktop via VNC'
depends=('kdebase-runtime' 'kdelibs' 'libvncserver' 'libxdamage')
cd $srcdir/build/krfb
make DESTDIR=$pkgdir install
cd $srcdir/build/doc/krfb
make DESTDIR=$pkgdir install
}
More information about the arch-dev-public
mailing list