packaging: support EDS 3.10, fix dependencies

Renaming the backends now needs to be done before calling make.
This is used to include two versions of syncecal.so:
- one for EDS >= 3.6 < 3.10
- one for EDS >= 3.10 with the libecal-1.2 soname patched

The second flavor became necessary because EDS 3.10 accidentally
changed the soname. The API and ABI actually is the same, so
we don't need to compile twice.

The package meta data must include additional alternatives for
libecal and libebook when including extra backends. This must
be passed in via EXTRA_BACKENDS_ECAL/EBOOK_REQUIRES; the makefile
does not attempt to determine what those are.
This commit is contained in:
Patrick Ohly 2014-01-06 08:27:19 -08:00
parent daa4bc7d27
commit a0de6e6720
2 changed files with 10 additions and 8 deletions

View File

@ -218,11 +218,11 @@ SYNCEVOLUTION_kde_DEB_ARGS = \
--conflicts=syncevolution-foobar \
--replaces=syncevolution-foobar
SYNCEVOLUTION_evolution_DEB_ARGS = \
--conflicts="'evolution-data-server (>= 3.6), libebook-1.2-14 (>= 3.6), libecal-1.2.12 (>= 3.6)'" \
--conflicts=syncevolution-foobar \
--replaces=syncevolution-foobar
SYNCEVOLUTION_evolution_DEB_REQUIRES = \
, libebook1.2-5 | libebook1.2-6 | libebook1.2-7 | libebook1.2-8 | libebook1.2-9 | libebook1.2-10 | libebook1.2-11 | libebook-1.2-11 | libebook-1.2-12 | libebook-1.2-13 \
, libecal1.2-3 | libecal1.2-4 | libecal1.2-5 | libecal1.2-6 | libecal1.2-7 | libecal1.2-8 | libecal1.2-9 | libecal1.2-10 | libecal-1.2-10 | libecal-1.2-11
, libebook1.2-5 | libebook1.2-6 | libebook1.2-7 | libebook1.2-8 | libebook1.2-9 | libebook1.2-10 | libebook1.2-11 | libebook-1.2-11 | libebook-1.2-12 | libebook-1.2-13 $(EXTRA_BACKENDS_EBOOK_REQUIRES) \
, libecal1.2-3 | libecal1.2-4 | libecal1.2-5 | libecal1.2-6 | libecal1.2-7 | libecal1.2-8 | libecal1.2-9 | libecal1.2-10 | libecal-1.2-10 | libecal-1.2-11 $(EXTRA_BACKENDS_ECAL_REQUIRES)
syncevolution-%-deb: checkinstall/dist/$(distdir) checkinstall/dist/debian/control
(echo "SyncEvolution - meta package for $*" && cat $(srcdir)/description) >checkinstall/description-pak
@ -416,14 +416,16 @@ uninstall-hook: $(all_uninstall_hooks)
# during concurrent distcheck (a backend was relinked against not yet installed
# libsyncevolution.la).
#
# Also used to add additional backends.
# Also used to add additional backends. EXTRA_BACKENDS must already contain
# renamed files, by convention using -2.so, -3.so, etc as suffix instead of the
# base file's .so.
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am
@$(MAKE) $(AM_MAKEFLAGS) install-data-am
for i in $(EXTRA_BACKENDS); do $(INSTALL) $$i $(DESTDIR)/$(BACKENDS_DIRECTORY)/`basename $$i .so`-2.so; done
for i in $(EXTRA_BACKENDS); do $(INSTALL) $$i $(DESTDIR)/$(BACKENDS_DIRECTORY)/; done
# Necessary for "make distcheck": must not leave files behind.
uninstall-local:
rm -f $(DESTDIR)/$(BACKENDS_DIRECTORY)/*-2.so
rm -f $(DESTDIR)/$(BACKENDS_DIRECTORY)/*-[0-9].so
.DELETE_ON_ERROR:

View File

@ -194,7 +194,7 @@ extern "C" void EDSAbiWrapperInit()
# ifdef ENABLE_EBOOK
static const int libebookMinVersion = 5,
libebookMaxVersion = 13;
libebookMaxVersion = 13; // EDS 3.4
ebookhandle =
findSymbols("libebook-1.2.so", libebookMinVersion, libebookMaxVersion,
FIND_SYMBOLS_NEED_ALL, NULL,
@ -319,7 +319,7 @@ extern "C" void EDSAbiWrapperInit()
# ifdef ENABLE_ECAL
static const int libecalMinVersion = 3,
libecalMaxVersion = 11;
libecalMaxVersion = 11; // EDS 3.4
ecalhandle =
findSymbols("libecal-1.2.so", libecalMinVersion, libecalMaxVersion,
FIND_SYMBOLS_NEED_ALL, NULL,