From: Stefan Schantl Date: Sat, 7 May 2011 18:31:31 +0000 (+0200) Subject: libsatsolver: New package. X-Git-Url: http://git.ipfire.org/?p=people%2Fteissler%2Fipfire-2.x.git;a=commitdiff_plain;h=93aa811ed014f3bf91add965e7f41e9de73f213c libsatsolver: New package. --- diff --git a/config/rootfiles/packages/libsatsolver b/config/rootfiles/packages/libsatsolver new file mode 100644 index 000000000..212eeea53 --- /dev/null +++ b/config/rootfiles/packages/libsatsolver @@ -0,0 +1,52 @@ +#usr/include/satsolver +#usr/include/satsolver/bitmap.h +#usr/include/satsolver/chksum.h +#usr/include/satsolver/dirpool.h +#usr/include/satsolver/evr.h +#usr/include/satsolver/hash.h +#usr/include/satsolver/knownid.h +#usr/include/satsolver/md5.h +#usr/include/satsolver/policy.h +#usr/include/satsolver/pool.h +#usr/include/satsolver/pool_fileconflicts.h +#usr/include/satsolver/poolarch.h +#usr/include/satsolver/poolid.h +#usr/include/satsolver/pooltypes.h +#usr/include/satsolver/poolvendor.h +#usr/include/satsolver/problems.h +#usr/include/satsolver/queue.h +#usr/include/satsolver/repo.h +#usr/include/satsolver/repo_content.h +#usr/include/satsolver/repo_deb.h +#usr/include/satsolver/repo_deltainfoxml.h +#usr/include/satsolver/repo_helix.h +#usr/include/satsolver/repo_products.h +#usr/include/satsolver/repo_releasefile_products.h +#usr/include/satsolver/repo_repomdxml.h +#usr/include/satsolver/repo_rpmdb.h +#usr/include/satsolver/repo_rpmmd.h +#usr/include/satsolver/repo_solv.h +#usr/include/satsolver/repo_susetags.h +#usr/include/satsolver/repo_updateinfoxml.h +#usr/include/satsolver/repo_write.h +#usr/include/satsolver/repo_zyppdb.h +#usr/include/satsolver/repodata.h +#usr/include/satsolver/repopage.h +#usr/include/satsolver/rules.h +#usr/include/satsolver/sat_xfopen.h +#usr/include/satsolver/satversion.h +#usr/include/satsolver/sha1.h +#usr/include/satsolver/sha2.h +#usr/include/satsolver/solvable.h +#usr/include/satsolver/solver.h +#usr/include/satsolver/solverdebug.h +#usr/include/satsolver/strpool.h +#usr/include/satsolver/tools_util.h +#usr/include/satsolver/transaction.h +#usr/include/satsolver/util.h +usr/lib/libsatsolver.so +usr/lib/libsatsolver.so.0 +usr/lib/libsatsolver.so.0.16 +usr/lib/libsatsolverext.so +usr/lib/libsatsolverext.so.0 +usr/lib/libsatsolverext.so.0.16 diff --git a/lfs/libsatsolver b/lfs/libsatsolver new file mode 100644 index 000000000..619c4778c --- /dev/null +++ b/lfs/libsatsolver @@ -0,0 +1,99 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 0.16.4 + +THISAPP = libsatsolver-$(VER) +DL_FILE = $(THISAPP).tar.bz2 +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) + +$(DL_FILE)_MD5 = 563414330c29e9b49be0e43358185a78 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsatsolver-Build-only-libraries.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsatsolver-Make-libsatsolver-ext-a-versioned-shared-lib.patch + + # Who releases code with -Werror? + cd $(DIR_APP) && sed -e "s/-Werror//g" -i CMakeLists.txt + + # Make sure that libsatsolverext is linked properly to all needed + # libraries. + cd $(DIR_APP) && echo "TARGET_LINK_LIBRARIES(satsolverext satsolver \$${EXPAT_LIBRARY} \$${ZLIB_LIBRARY})" \ + >> ext/CMakeLists.txt + + # Remove the RPM stuff when we build with -DFEDORA=1 because we + # do not support RPM. + cd $(DIR_APP) && sed -e "s/DEBIAN/FEDORA/g" -i ext/CMakeLists.txt + + cd $(DIR_APP) && mkdir build + cd $(DIR_APP)/build && cmake .. -DFEDORA=1 \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=1 + cd $(DIR_APP)/build && make $(PARALELLISMFLAGS) + + cd $(DIR_APP)/build && make install + + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/make.sh b/make.sh index f572b9304..b89c77a4a 100755 --- a/make.sh +++ b/make.sh @@ -689,6 +689,7 @@ buildipfire() { ipfiremake swig ipfiremake python-m2crypto ipfiremake crda + ipfiremake libsatsolver echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild echo >> $BASEDIR/build/var/ipfire/firebuild diff --git a/src/patches/libsatsolver-Build-only-libraries.patch b/src/patches/libsatsolver-Build-only-libraries.patch new file mode 100644 index 000000000..47e24e481 --- /dev/null +++ b/src/patches/libsatsolver-Build-only-libraries.patch @@ -0,0 +1,26 @@ +diff -Nur old/CMakeLists.txt new/CMakeLists.txt +--- old/CMakeLists.txt 2011-04-10 23:55:09.506257000 +0200 ++++ new/CMakeLists.txt 2011-04-10 23:46:30.612257002 +0200 +@@ -32,7 +32,7 @@ + INCLUDE( ${CMAKE_SOURCE_DIR}/VERSION.cmake ) + + FIND_PACKAGE(EXPAT REQUIRED) +-FIND_PACKAGE(Check REQUIRED) ++#FIND_PACKAGE(Check REQUIRED) + FIND_PACKAGE(ZLIB REQUIRED) + + IF ( FEDORA ) +@@ -190,10 +190,10 @@ + + ADD_SUBDIRECTORY(src) + ADD_SUBDIRECTORY(ext) +-ADD_SUBDIRECTORY(tools) +-ADD_SUBDIRECTORY(tests) +-ADD_SUBDIRECTORY(examples) +-ADD_SUBDIRECTORY(doc) ++#ADD_SUBDIRECTORY(tools) ++#ADD_SUBDIRECTORY(tests) ++#ADD_SUBDIRECTORY(examples) ++#ADD_SUBDIRECTORY(doc) + + MESSAGE(STATUS "version: ${VERSION}") diff --git a/src/patches/libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch b/src/patches/libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch new file mode 100644 index 000000000..5ba4fa229 --- /dev/null +++ b/src/patches/libsatsolver-Create-linker-scripts-that-do-only-export-the-needed.patch @@ -0,0 +1,439 @@ +>From a42d7e17fa3e39a8306126c19f1b3b54f1fdd79e Mon Sep 17 00:00:00 2001 +From: Michael Tremer +Date: Thu, 21 Apr 2011 16:40:11 +0200 +Subject: [PATCH] Create linker-scripts that do only export the needed symbols + of libsatsolver{,ext}. + +See these posts for reference: + http://lists.opensuse.org/zypp-devel/2011-04/msg00012.html + http://lists.opensuse.org/zypp-devel/2011-04/msg00014.html + +Signed-off-by: Michael Tremer +--- + ext/CMakeLists.txt | 1 + + ext/libsatsolverext.ver | 25 ++++ + src/CMakeLists.txt | 1 + + src/libsatsolver.ver | 355 +++++++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 382 insertions(+), 0 deletions(-) + create mode 100644 ext/libsatsolverext.ver + create mode 100644 src/libsatsolver.ver + +diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt +index 68e1c3c..d51a43b 100644 +--- a/ext/CMakeLists.txt ++++ b/ext/CMakeLists.txt +@@ -21,6 +21,7 @@ SET(libsatsolverext_HEADERS + tools_util.h repo_deb.h sat_xfopen.h) + + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") ++SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${satsolver_SOURCE_DIR}/ext/libsatsolverext.ver") + + INSTALL(FILES ${libsatsolverext_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver") + INSTALL(TARGETS satsolverext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +diff --git a/ext/libsatsolverext.ver b/ext/libsatsolverext.ver +new file mode 100644 +index 0000000..4869d37 +--- /dev/null ++++ b/ext/libsatsolverext.ver +@@ -0,0 +1,25 @@ ++EXT1.0 { ++ global: ++ repo_add_code11_products; ++ repo_add_content; ++ repo_add_deb; ++ repo_add_debdb; ++ repo_add_debpackages; ++ repo_add_debs; ++ repo_add_deltainfoxml; ++ repo_add_helix; ++ repo_add_products; ++ repo_add_releasefile_products; ++ repo_add_repomdxml; ++ repo_add_rpmmd; ++ repo_add_susetags; ++ repo_add_updateinfoxml; ++ repo_add_zyppdb_products; ++ repodata_write; ++ repo_write; ++ repo_write_stdkeyfilter; ++ sat_xfopen; ++ sat_xfopen_fd; ++ local: ++ *; ++}; +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6a14d10..b54d01d 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -20,6 +20,7 @@ SET(libsatsolver_HEADERS + chksum.h md5.h sha1.h sha2.h ${CMAKE_BINARY_DIR}/src/satversion.h) + + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") ++SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS} -Wl,--version-script=${satsolver_SOURCE_DIR}/src/libsatsolver.ver") + + INSTALL(FILES ${libsatsolver_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/satsolver") + INSTALL(TARGETS satsolver LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +diff --git a/src/libsatsolver.ver b/src/libsatsolver.ver +new file mode 100644 +index 0000000..dab3576 +--- /dev/null ++++ b/src/libsatsolver.ver +@@ -0,0 +1,355 @@ ++SAT1.0 { ++ global: ++ dataiterator_clonepos; ++ dataiterator_entersub; ++ dataiterator_free; ++ dataiterator_init; ++ dataiterator_init_clone; ++ dataiterator_jump_to_repo; ++ dataiterator_jump_to_solvid; ++ dataiterator_match; ++ dataiterator_prepend_keyname; ++ dataiterator_seek; ++ dataiterator_set_keyname; ++ dataiterator_set_match; ++ dataiterator_setpos; ++ dataiterator_setpos_parent; ++ dataiterator_set_search; ++ dataiterator_skip_attribute; ++ dataiterator_skip_repo; ++ dataiterator_skip_solvable; ++ dataiterator_step; ++ datamatcher_free; ++ datamatcher_init; ++ datamatcher_match; ++ data_read_idarray; ++ data_read_rel_idarray; ++ data_skip_key; ++ dep2str; ++ dirpool_add_dir; ++ dirpool_free; ++ dirpool_init; ++ dirpool_make_dirtraverse; ++ evrcmp; ++ evrmatch; ++ id2str; ++ map_free; ++ map_grow; ++ map_init; ++ map_init_clone; ++ policy_create_obsolete_index; ++ policy_filter_unwanted; ++ policy_findupdatepackages; ++ policy_illegal2str; ++ policy_illegal_archchange; ++ policy_illegal_vendorchange; ++ policy_is_illegal; ++ pool_add_fileconflicts_deps; ++ pool_addfileprovides; ++ pool_addfileprovides_ids; ++ pool_addrelproviders; ++ pool_add_solvable; ++ pool_add_solvable_block; ++ pool_alloctmpspace; ++ pool_arch2color_slow; ++ pool_bin2hex; ++ pool_calc_duchanges; ++ pool_calc_installsizechange; ++ pool_clear_pos; ++ pool_create; ++ pool_create_state_maps; ++ pool_createwhatprovides; ++ pool_debug; ++ pool_free; ++ pool_freeidhashes; ++ pool_free_solvable_block; ++ pool_freetmpspace; ++ pool_freewhatprovides; ++ pool_id2langid; ++ pool_job2str; ++ pool_lookup_bin_checksum; ++ pool_lookup_checksum; ++ pool_lookup_id; ++ pool_lookup_num; ++ pool_lookup_str; ++ pool_lookup_void; ++ pool_match_dep; ++ pool_match_nevr_rel; ++ pool_queuetowhatprovides; ++ pool_search; ++ pool_setarch; ++ pool_setarchpolicy; ++ pool_setdebuglevel; ++ pool_set_installed; ++ pool_set_languages; ++ pool_setvendorclasses; ++ pool_shrink_rels; ++ pool_shrink_strings; ++ pool_tmpappend; ++ pool_tmpjoin; ++ pool_trivial_installable; ++ pool_trivial_installable_noobsoletesmap; ++ pool_vendor2mask; ++ prune_best_arch_name_version; ++ prune_to_best_arch; ++ prune_to_best_version; ++ queue_alloc_one; ++ queue_alloc_one_head; ++ queue_delete; ++ queue_delete2; ++ queue_deleten; ++ queue_free; ++ queue_init; ++ queue_init_buffer; ++ queue_init_clone; ++ queue_insert; ++ queue_insert2; ++ queue_insertn; ++ rel2id; ++ repo_addid; ++ repo_addid_dep; ++ repo_add_poolstr_array; ++ repo_add_repodata; ++ repo_add_solv; ++ repo_add_solv_flags; ++ repo_create; ++ repodata_add_dirnumnum; ++ repodata_add_dirstr; ++ repodata_add_fixarray; ++ repodata_add_flexarray; ++ repodata_add_idarray; ++ repodata_add_poolstr_array; ++ repodata_chk2str; ++ repodata_create; ++ repodata_create_stubs; ++ repodata_delete; ++ repodata_delete_uninternalized; ++ repodata_dir2str; ++ repodata_disable_paging; ++ repodata_empty; ++ repodata_extend; ++ repodata_extend_block; ++ repodata_filelistfilter_matches; ++ repodata_free; ++ repodata_freedata; ++ repodata_free_schemahash; ++ repodata_globalize_id; ++ repodata_initdata; ++ repodata_internalize; ++ repodata_key2id; ++ repodata_localize_id; ++ repodata_lookup_bin_checksum; ++ repodata_lookup_id; ++ repodata_lookup_idarray; ++ repodata_lookup_num; ++ repodata_lookup_str; ++ repodata_lookup_type; ++ repodata_lookup_void; ++ repodata_merge_attrs; ++ repodata_merge_some_attrs; ++ repodata_new_handle; ++ repodata_schema2id; ++ repodata_search; ++ repodata_set_binary; ++ repodata_set_bin_checksum; ++ repodata_set_checksum; ++ repodata_set_constant; ++ repodata_set_constantid; ++ repodata_set_id; ++ repodata_set_idarray; ++ repodata_set_location; ++ repodata_set_num; ++ repodata_set_poolstr; ++ repodata_setpos_kv; ++ repodata_set_str; ++ repodata_set_void; ++ repodata_shrink; ++ repodata_str2dir; ++ repodata_stringify; ++ repo_disable_paging; ++ repo_empty; ++ repo_fix_conflicts; ++ repo_fix_supplements; ++ repo_free; ++ repo_freeallrepos; ++ repo_free_solvable_block; ++ repo_internalize; ++ repo_last_repodata; ++ repo_lookup_bin_checksum; ++ repo_lookup_checksum; ++ repo_lookup_id; ++ repo_lookup_idarray; ++ repo_lookup_num; ++ repo_lookup_str; ++ repo_lookup_type; ++ repo_lookup_void; ++ repo_matchvalue; ++ repopagestore_compress_page; ++ repopagestore_disable_paging; ++ repopagestore_free; ++ repopagestore_init; ++ repopagestore_load_page_range; ++ repopagestore_read_or_setup_pages; ++ repo_reserve_ids; ++ repo_search; ++ repo_set_id; ++ repo_set_num; ++ repo_set_poolstr; ++ repo_set_str; ++ repo_sidedata_create; ++ repo_sidedata_extend; ++ sat_bin2hex; ++ sat_calloc; ++ sat_chksum_add; ++ sat_chksum_create; ++ sat_chksum_create_from_bin; ++ sat_chksum_free; ++ sat_chksum_get; ++ sat_chksum_get_type; ++ sat_chksum_isfinished; ++ sat_chksum_str2type; ++ sat_chksum_type2str; ++ sat_dupappend; ++ sat_dupjoin; ++ sat_free; ++ sat_hex2bin; ++ sat_malloc; ++ sat_malloc2; ++ sat_MD5_Final; ++ sat_MD5_Init; ++ sat_MD5_Update; ++ sat_oom; ++ sat_realloc; ++ sat_realloc2; ++ sat_SHA1_Final; ++ sat_SHA1_Init; ++ sat_SHA1_Update; ++ sat_SHA256_Data; ++ sat_SHA256_End; ++ sat_SHA256_Final; ++ sat_SHA256_Init; ++ sat_SHA256_Update; ++ sat_SHA384_Data; ++ sat_SHA384_End; ++ sat_SHA384_Final; ++ sat_SHA384_Init; ++ sat_SHA384_Update; ++ sat_SHA512_Data; ++ sat_SHA512_End; ++ sat_SHA512_Final; ++ sat_SHA512_Init; ++ sat_SHA512_Update; ++ sat_sort; ++ sat_timems; ++ sat_version; ++ sat_version_major; ++ sat_version_minor; ++ sat_version_patch; ++ solvable2str; ++ solvable_get_location; ++ solvable_identical; ++ solvable_lookup_bin_checksum; ++ solvable_lookup_bool; ++ solvable_lookup_checksum; ++ solvable_lookup_id; ++ solvable_lookup_idarray; ++ solvable_lookup_num; ++ solvable_lookup_str; ++ solvable_lookup_str_lang; ++ solvable_lookup_str_poollang; ++ solvable_lookup_void; ++ solvable_selfprovidedep; ++ solvable_trivial_installable_map; ++ solvable_trivial_installable_queue; ++ solvable_trivial_installable_repo; ++ solver_addchoicerules; ++ solver_addduprules; ++ solver_addinfarchrules; ++ solver_addrpmrulesforsolvable; ++ solver_addrpmrulesforupdaters; ++ solver_addrpmrulesforweak; ++ solver_addrule; ++ solver_addupdaterule; ++ solver_allruleinfos; ++ solver_calc_duchanges; ++ solver_calc_installsizechange; ++ solver_calculate_noobsmap; ++ solver_create; ++ solver_create_decisions_obsoletesmap; ++ solver_createdupmaps; ++ solver_dep_installed; ++ solver_disablechoicerules; ++ solver_disablepolicyrules; ++ solver_disableproblem; ++ solver_enableproblem; ++ solver_findallproblemrules; ++ solver_findproblemrule; ++ solver_free; ++ solver_freedupmaps; ++ solver_next_problem; ++ solver_next_solution; ++ solver_next_solutionelement; ++ solver_prepare_solutions; ++ solver_printallsolutions; ++ solver_printcompleteprobleminfo; ++ solver_printdecisionq; ++ solver_printdecisions; ++ solver_printproblem; ++ solver_printprobleminfo; ++ solver_printproblemruleinfo; ++ solver_printrule; ++ solver_printruleclass; ++ solver_printruleelement; ++ solver_printsolution; ++ solver_printtransaction; ++ solver_printtrivial; ++ solver_printwatches; ++ solver_problem_count; ++ solver_problemruleinfo; ++ solver_problemruleinfo2str; ++ solver_reenablepolicyrules; ++ solver_reset; ++ solver_ruleinfo; ++ solver_run_sat; ++ solver_samerule; ++ solver_select2str; ++ solver_solution_count; ++ solver_solutionelement2str; ++ solver_solutionelement_count; ++ solver_solve; ++ solver_splitprovides; ++ solver_take_solution; ++ solver_take_solutionelement; ++ solver_trivial_installable; ++ solver_unifyrules; ++ str2id; ++ strn2id; ++ stringpool_clone; ++ stringpool_free; ++ stringpool_freehash; ++ stringpool_init; ++ stringpool_init_empty; ++ stringpool_shrink; ++ stringpool_str2id; ++ stringpool_strn2id; ++ transaction_add_obsoleted; ++ transaction_all_obs_pkgs; ++ transaction_calc_duchanges; ++ transaction_calc_installsizechange; ++ transaction_calculate; ++ transaction_check_order; ++ transaction_classify; ++ transaction_classify_pkgs; ++ transaction_free; ++ transaction_free_orderdata; ++ transaction_init; ++ transaction_init_clone; ++ transaction_installedresult; ++ transaction_obs_pkg; ++ transaction_order; ++ transaction_order_add_choices; ++ transaction_type; ++ vercmp; ++ local: ++ *; ++}; +-- +1.7.4.4 + diff --git a/src/patches/libsatsolver-Make-libsatsolver-ext-a-versioned-shared-lib.patch b/src/patches/libsatsolver-Make-libsatsolver-ext-a-versioned-shared-lib.patch new file mode 100644 index 000000000..449275cf5 --- /dev/null +++ b/src/patches/libsatsolver-Make-libsatsolver-ext-a-versioned-shared-lib.patch @@ -0,0 +1,94 @@ +>From 1f9659b55013f222046b9d161fd5a0f2fc399cb8 Mon Sep 17 00:00:00 2001 +From: Michael Tremer +Date: Thu, 21 Apr 2011 12:48:41 +0200 +Subject: [PATCH] Make libsatsolver{,ext} a versioned shared lib. + +Most distributions only do accept shared libraries because of +relro and hardening stuff. + +Previously, libsatsolver was statically compiled because the ABI +was assumed to be changed from time to time but has now become +very stable. + +Signed-off-by: Michael Tremer +--- + ext/CMakeLists.txt | 6 +++++- + src/CMakeLists.txt | 6 +++++- + tools/CMakeLists.txt | 12 ++++++------ + 3 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt +index 8e71eee..68e1c3c 100644 +--- a/ext/CMakeLists.txt ++++ b/ext/CMakeLists.txt +@@ -8,7 +8,11 @@ SET(libsatsolverext_SRCS + ${libsatsolverext_SRCS} pool_fileconflicts.c repo_rpmdb.c) + ENDIF (NOT DEBIAN) + +-ADD_LIBRARY(satsolverext STATIC ${libsatsolverext_SRCS}) ++ADD_LIBRARY(satsolverext SHARED ${libsatsolverext_SRCS}) ++SET_TARGET_PROPERTIES(satsolverext PROPERTIES ++ VERSION "${LIBSATSOLVER_MAJOR}.${LIBSATSOLVER_MINOR}" ++ SOVERSION "${LIBSATSOLVER_MAJOR}" ++) + + SET(libsatsolverext_HEADERS + pool_fileconflicts.h repo_content.h repo_deltainfoxml.h repo_helix.h repo_products.h +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 9bd0fde..6a14d10 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -6,7 +6,11 @@ SET(libsatsolver_SRCS + transaction.c rules.c problems.c + chksum.c md5.c sha1.c sha2.c satversion.c) + +-ADD_LIBRARY(satsolver STATIC ${libsatsolver_SRCS}) ++ADD_LIBRARY(satsolver SHARED ${libsatsolver_SRCS}) ++SET_TARGET_PROPERTIES(satsolver PROPERTIES ++ VERSION "${LIBSATSOLVER_MAJOR}.${LIBSATSOLVER_MINOR}" ++ SOVERSION "${LIBSATSOLVER_MAJOR}" ++) + + SET(libsatsolver_HEADERS + bitmap.h evr.h hash.h policy.h poolarch.h poolvendor.h pool.h +diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt +index 79d4890..7696612 100644 +--- a/tools/CMakeLists.txt ++++ b/tools/CMakeLists.txt +@@ -20,19 +20,19 @@ ADD_EXECUTABLE(rpmmd2solv rpmmd2solv.c) + TARGET_LINK_LIBRARIES(rpmmd2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(helix2solv helix2solv.c) +-TARGET_LINK_LIBRARIES(helix2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(helix2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(susetags2solv susetags2solv.c) +-TARGET_LINK_LIBRARIES(susetags2solv toolstuff satsolverext satsolver ${ZLIB_LIBRARY}) ++TARGET_LINK_LIBRARIES(susetags2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(updateinfoxml2solv updateinfoxml2solv.c) +-TARGET_LINK_LIBRARIES(updateinfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(updateinfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(deltainfoxml2solv deltainfoxml2solv.c) +-TARGET_LINK_LIBRARIES(deltainfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(deltainfoxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(repomdxml2solv repomdxml2solv.c) +-TARGET_LINK_LIBRARIES(repomdxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY}) ++TARGET_LINK_LIBRARIES(repomdxml2solv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + ADD_EXECUTABLE(installcheck installcheck.c) + TARGET_LINK_LIBRARIES(installcheck satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) +@@ -44,7 +44,7 @@ ADD_EXECUTABLE(dumpsolv dumpsolv.c ) + TARGET_LINK_LIBRARIES(dumpsolv satsolver) + + ADD_EXECUTABLE(mergesolv mergesolv.c ) +-TARGET_LINK_LIBRARIES(mergesolv toolstuff satsolverext satsolver) ++TARGET_LINK_LIBRARIES(mergesolv toolstuff satsolverext satsolver ${EXPAT_LIBRARY} ${ZLIB_LIBRARY}) + + install(TARGETS + mergesolv +-- +1.7.4.4 +