From c44d3f375440e76df04e21197cbc802a67b226bb Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Fri, 9 Mar 2012 13:07:18 +0000 Subject: 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. --- Makefile.am | 57 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 10 deletions(-) (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am index 3afb0774..05bd531a 100644 --- a/Makefile.am +++ b/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 '" \ - --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`/$description-pak + tmpdir=`mktemp -d $$HOME/syncevolution.XXXXXXXXXX` && \ + trap "rm -rf $$tmpdir" EXIT && \ + fakeroot checkinstall /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. -- cgit v1.2.3