Merge branch 'libsatsolver' into next

This commit is contained in:
Michael Tremer
2011-07-21 18:21:08 +02:00
4 changed files with 5 additions and 548 deletions

View File

@@ -24,17 +24,17 @@
include Config
VER = 0.16.4
VER = 0.16.4-c57e9df
THISAPP = libsatsolver-$(VER)
DL_FILE = $(THISAPP).tar.bz2
DL_FILE = $(THISAPP).tar.gz
DL_FROM = $(URL_IPFIRE)
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = libsatsolver
DEPS = ""
PAK_VER = 1
PAK_VER = 2
###############################################################################
# Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
$(DL_FILE)_MD5 = 563414330c29e9b49be0e43358185a78
$(DL_FILE)_MD5 = 756cae7df92fd3faa0a49883378d8c98
install : $(TARGET)
@@ -76,9 +76,8 @@ $(subst %,%_MD5,$(objects)) :
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(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?

View File

@@ -1,102 +0,0 @@
###############################################################################
# #
# 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 <http://www.gnu.org/licenses/>. #
# #
###############################################################################
###############################################################################
# Definitions
###############################################################################
include Config
VER = 0.16.0-20110429-868eae9
THISAPP = sat-solver-bindings-$(VER)
DL_FILE = $(THISAPP).tar.xz
DL_FROM = http://source.ipfire.org/source-3.x
DIR_APP = $(DIR_SRC)/$(THISAPP)
TARGET = $(DIR_INFO)/$(THISAPP)
PROG = python-satsolver
DEPS = "libsatsolver"
PAK_VER = 1
###############################################################################
# Top-level Rules
###############################################################################
objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
$(DL_FILE)_MD5 = 479f3b57a9f9a59c7b24e37aedda7469
install : $(TARGET)
check : $(patsubst %,$(DIR_CHK)/%,$(objects))
download :$(patsubst %,$(DIR_DL)/%,$(objects))
md5 : $(subst %,%_MD5,$(objects))
dist :
$(PAK)
###############################################################################
# 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)
# Workaround for weak tarball
@rm -rf $(DIR_APP) && mkdir $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE) -C $(DIR_APP)
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python-satsover-fix-building-without-rpm.patch
cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/python-satsolver-only-python-bindings.patch
# Aaaahh!
cd $(DIR_APP) && sed -e "s/-Werror//g" -i CMakeLists.txt
cd $(DIR_APP) && mkdir build
cd $(DIR_APP)/build && cmake .. -DDEBIAN=1 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SKIP_RPATH=1 \
-DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
-DPYTHON_INCLUDE_PATH=/usr/include/python2.7
cd $(DIR_APP)/build && make $(PARALELLISMFLAGS)
# Install only the python bindings. That's all we need.
cd $(DIR_APP)/build/bindings/python && make install
@rm -rf $(DIR_APP)
@$(POSTBUILD)

View File

@@ -693,7 +693,6 @@ buildipfire() {
ipfiremake wireless-regdb
ipfiremake crda
ipfiremake libsatsolver
ipfiremake python-satsolver
ipfiremake python-distutils-extra
ipfiremake python-lzma
ipfiremake python-progressbar

View File

@@ -1,439 +0,0 @@
>From a42d7e17fa3e39a8306126c19f1b3b54f1fdd79e Mon Sep 17 00:00:00 2001
From: Michael Tremer <michael.tremer@ipfire.org>
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 <michael.tremer@ipfire.org>
---
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