packaging: added evolution and kde meta .deb packages
The traditional "syncevolution-evolution" .deb package will be replaced with "syncevolution-bundle". A meta "syncevolution-evolution" package depends on it, to support seamless updates for users who have "syncevolution-evolution" installed. Binary dependencies of the main .deb are ignored for backends because loading them is optional. The new "syncevolution-kde" package has the right dependencies for KDE/Akonadi, while "syncevolution-evolution" mostly just lists standard libs if the "EDS compatibility" mode is used, where libebook/libecal are loaded dynamically.
This commit is contained in:
parent
edd3b18771
commit
c44d3f3754
57
Makefile.am
57
Makefile.am
|
@ -119,12 +119,14 @@ TYPE_rpm = -R
|
|||
# Dependency calculation is intentionally incomplete:
|
||||
# - don't force dependency on specific EDS libs via backends, their versions change too much (handled via --enable-evolution-compatibility and dynamic loading of the backends)
|
||||
# - ignore client-test dependencies (because users typically don't run it)
|
||||
# - ignore backend dependencies (should never prevent installing the bundle)
|
||||
# - be more flexible about kdelibs5 than dpkg-shlibdeps: it is found as package
|
||||
# for libkdeui.so.5 and libkdecore.so.5 on Ubuntu Lucid, but after Debian
|
||||
# Squeeze the package was replaced by individual library packages. On such
|
||||
# distros, libkdeui5 is what we need.
|
||||
# - same for kdepimlibs5 -> libakonadi-kde4
|
||||
REQUIRES_deb = --requires="'$(shell set -x; cd dist; LD_LIBRARY_PATH=$(distdir)/usr/lib:$(distdir)/usr/lib/syncevolution dpkg-shlibdeps -L$(srcdir)/src/shlibs.local --ignore-missing-info -O $$(for i in $$(find $(distdir) -type f -perm /u+x | grep -v -e client-test -e lib/syncevolution/sync); do if file $$i | grep ELF >/dev/null; then echo $$i; fi; done) | sed -e 's/kdelibs5 ([^,]*),/kdelibs5 | libkdeui5,/g' -e 's/kdepimlibs5 ([^,]*),/kdepimlibs5 | libakonadi-kde4,/g' -e 's/[^=]*=//')$(REQUIRES_deb_neon)'"
|
||||
REQUIRES_SED_KDE = -e 's/kdelibs5 ([^,]*),/kdelibs5 | libkdeui5,/g' -e 's/kdepimlibs5 ([^,]*),/kdepimlibs5 | libakonadi-kde4,/g'
|
||||
REQUIRES_deb = --requires="'$(shell set -x; cd dist; LD_LIBRARY_PATH=$(distdir)/usr/lib:$(distdir)/usr/lib/syncevolution dpkg-shlibdeps -L$(srcdir)/src/shlibs.local --ignore-missing-info -O $$(for i in $$(find $(distdir) -type f -perm /u+x | grep -v -e client-test -e lib/syncevolution/backends/); do if file $$i | grep ELF >/dev/null; then echo $$i; fi; done) | sed $(REQUIRES_SED_KDE) -e 's/[^=]*=//')$(REQUIRES_deb_neon)'"
|
||||
if NEON_COMPATIBILITY
|
||||
# --enable-neon-compatibility in src/backends/webdav:
|
||||
# replace dependencies from linking with hard-coded dlopen() dependencies
|
||||
|
@ -156,7 +158,8 @@ PKGS = $(addprefix syncevolution-evolution-, 2.6 2.8 2.12)
|
|||
# system libs. The assumption is that the system library is named
|
||||
# after the lib and its major version, which holds for libsmltk and
|
||||
# libsynthesis in Debian.
|
||||
deb rpm : dist/$(distdir) dist/debian/control description-pak
|
||||
deb rpm : dist/$(distdir) dist/debian/control
|
||||
(echo "SyncEvolution - synchronizing personal information management data" && cat $(srcdir)/description) >description-pak
|
||||
conflicts=`ls -1 dist/$(distdir)/usr/lib/*.so.[0123456789] | sed -e 's;.*/;;' -e 's/\.so\.//' -e 's/$$/, /'` && \
|
||||
tmpdir=`mktemp -d $$HOME/syncevolution.XXXXXXXXXX` && \
|
||||
trap "rm -rf $$tmpdir" EXIT && \
|
||||
|
@ -171,14 +174,52 @@ deb rpm : dist/$(distdir) dist/debian/control description-pak
|
|||
--pkgarch=$(PKGARCH) \
|
||||
--provides=syncevolution \
|
||||
--replaces="'syncevolution, `echo $(filter-out $(PKGNAME), $(PKGS)) | sed -e 's/ */ (<< 1:0.8.1-2), /g'` (<< 1:0.8.1-2)'" \
|
||||
--conflicts="'$${conflicts}syncevolution, `echo $(filter-out $(PKGNAME), $(PKGS)) | sed -e 's/ */ (<< 1:0.8.1-2), /g'` (<< 1:0.8.1-2)'" \
|
||||
--conflicts="'$${conflicts}syncevolution, `echo $(filter-out $(PKGNAME), $(PKGS)) | sed -e 's/ */ (<< 1:0.8.1-2), /g'` (<< 1:0.8.1-2)', libsmltk0, libsyncevolution0, libsynthesis0, syncevolution-common, syncevolution-libs" \
|
||||
--maintainer="'Patrick Ohly <patrick.ohly@gmx.de>'" \
|
||||
--pkgsource='http://sourceforge.net/project/showfiles.php?group_id=146288' \
|
||||
--pkgaltsource='http://www.estamos.de/projects/SyncML/' \
|
||||
--pkggroup='gnome' \
|
||||
--pkgsource='http://syncevolution.org' \
|
||||
--pkggroup='$*' \
|
||||
--pkggroup='comm' \
|
||||
cp -r `pwd`/$</usr/* /usr
|
||||
if [ $@ = "rpm" ]; then cp /usr/src/rpm/RPMS/*/${PKGNAME}-${VERSION}-2.*.rpm .; fi
|
||||
|
||||
# Pseudo platform .deb packages:
|
||||
# only depend on PKGNAME = syncevolution-$(BINSUFFIX) (usually syncevolution-bundle).
|
||||
# Version number is only bumped when changing the packaging rules here.
|
||||
PLATFORM_DEB_VERSION = $(VERSION_deb)
|
||||
PLATFORM_DEB_RELEASE = 1
|
||||
if ENABLE_MODULES
|
||||
deb : syncevolution-kde-deb
|
||||
deb : syncevolution-evolution-deb
|
||||
endif
|
||||
|
||||
# define which files are relevant for each platform
|
||||
PLATFORM_FILES_evolution = platformgnome syncecal syncebook
|
||||
PLATFORM_FILES_kde = platformkde syncakonadi
|
||||
|
||||
# Fake conflicts/replaces works around a bug in CheckInstall,
|
||||
# which creates empty, invalid entries for those unless
|
||||
# something is given.
|
||||
syncevolution-%-deb: dist/$(distdir) dist/debian/control
|
||||
(echo "SyncEvolution - meta package for $*" && cat $(srcdir)/description) >description-pak
|
||||
tmpdir=`mktemp -d $$HOME/syncevolution.XXXXXXXXXX` && \
|
||||
trap "rm -rf $$tmpdir" EXIT && \
|
||||
fakeroot checkinstall </dev/null \
|
||||
$(TYPE_deb) \
|
||||
--fstrans=yes \
|
||||
--strip=no \
|
||||
--nodoc \
|
||||
--pkgversion=$(PLATFORM_DEB_VERSION) \
|
||||
--pkgrelease=$(PLATFORM_DEB_RELEASE) \
|
||||
--pkgname=syncevolution-$* \
|
||||
--pkgarch=all \
|
||||
--requires="'$(shell set -x; cd dist; LD_LIBRARY_PATH=$(distdir)/usr/lib:$(distdir)/usr/lib/syncevolution dpkg-shlibdeps -L$(srcdir)/src/shlibs.local --ignore-missing-info -O $$(for i in $(patsubst %,$(distdir)/usr/lib/syncevolution/backends/%.so,$(PLATFORM_FILES_$*)); do if file $$i | grep ELF >/dev/null; then echo $$i; fi; done) | sed $(REQUIRES_SED_KDE) -e 's/[^=]*=//'), $(PKGNAME) (= $(VERSION_deb)-$(RELEASE))'" \
|
||||
--conflicts=syncevolution-foobar \
|
||||
--replaces=syncevolution-foobar \
|
||||
--maintainer="'Patrick Ohly <patrick.ohly@gmx.de>'" \
|
||||
--pkgsource='http://syncevolution.org' \
|
||||
--pkggroup='$*' \
|
||||
sh -c 'mkdir -p touch /usr/share/doc/syncevolution-$* && echo "SyncEvolution platform pseudo-package for $*" >/usr/share/doc/syncevolution-$*/README'
|
||||
|
||||
all_phonies += dist/$(distdir) clean_dist
|
||||
dist/$(distdir): all
|
||||
rm -rf $@
|
||||
|
@ -194,10 +235,6 @@ dist/debian/control:
|
|||
mkdir -p ${dir $@}
|
||||
touch $@
|
||||
|
||||
# for checkinstall
|
||||
description-pak : description
|
||||
cp $< $@
|
||||
|
||||
# Build "html" inside the build dir, using source files
|
||||
# from the SyncEvolution source directory and (if built)
|
||||
# the installed client-api.build directory.
|
||||
|
|
13
description
13
description
|
@ -1,9 +1,8 @@
|
|||
SyncEvolution SyncML Client
|
||||
|
||||
SyncEvolution synchronizes personal information management (PIM) data
|
||||
like contacts, calenders, tasks and memos via SyncML. It supports all
|
||||
of these for GNOME's Evolution and contacts for the system address
|
||||
book of the Nokia 770/800 internet tablets, Mac OS X and (at one point) the
|
||||
iPhone. The command-line tool 'syncevolution' (compiled separately for
|
||||
each of these platforms) executes the synchronization. The 'sync-ui' is
|
||||
a simpler (but also less powerful) GTK GUI for Linux.
|
||||
via various protocols (SyncML, CalDAV/CardDAV, ActiveSync). It syncs
|
||||
contacts, appointments, tasks and memos. It syncs to web services or
|
||||
to SyncML-capable phones via Bluetooth.
|
||||
|
||||
Binaries are available for Linux desktops (using GNOME Evolution, or
|
||||
KDE's Akonadi), for MeeGo and for Maemo 5 (Nokia N900).
|
||||
|
|
Loading…
Reference in New Issue