srv/web/ipfire/cgi-bin/pppsetup.cgi
srv/web/ipfire/cgi-bin/proxy.cgi
srv/web/ipfire/cgi-bin/services.cgi
+srv/web/ipfire/cgi-bin/vpnmain.cgi
var/ipfire/langs/de.pl
var/ipfire/langs/en.pl
var/ipfire/langs/es.pl
--- /dev/null
+#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
# Allow nothing or a string (DN,FDQN,) beginning with @
# with no comma but slashes between RID eg @O=FR/C=Paris/OU=myhome/CN=franck
- if ( ($cgiparams{'LOCAL_ID'} !~ /^(|[\w.-]*@[\w. =*\/-]+|\d\.\d\.\d\.\d)$/) ||
- ($cgiparams{'REMOTE_ID'} !~ /^(|[\w.-]*@[\w. =*\/-]+|\d\.\d\.\d\.\d)$/) ||
+ if ( ($cgiparams{'LOCAL_ID'} !~ /^(|[\w.-]*@[\w. =*\/-]+|\d+\.\d+\.\d+\.\d+)$/) ||
+ ($cgiparams{'REMOTE_ID'} !~ /^(|[\w.-]*@[\w. =*\/-]+|\d+\.\d+\.\d+\.\d+)$/) ||
(($cgiparams{'REMOTE_ID'} eq $cgiparams{'LOCAL_ID'}) && ($cgiparams{'LOCAL_ID'} ne ''))
) {
$errormessage = $Lang::tr{'invalid local-remote id'} . '<br />' .
'DER_ASN1_DN: @c=FR/ou=Paris/ou=Home/cn=*<br />' .
'FQDN: @ipfire.org<br />' .
'USER_FQDN: info@ipfire.org<br />' .
- 'IPV4_ADDR: @123.123.123.123';
+ 'IPV4_ADDR: 123.123.123.123';
goto VPNCONF_ERROR;
}
# If Auth is DN, verify existance of Remote ID.
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# Copyright (C) 2007-2011 IPFire Team <info@ipfire.org> #
# #
# 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 #
else
ifeq "$(PASS)" "1"
TARGET = $(DIR_INFO)/$(THISAPP)-tools1
- EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror
+ EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror --disable-gprof
EXTRA_MAKE = LDFLAGS="-all-static"
EXTRA_INSTALL =
else
--- /dev/null
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2011 IPFire Team <info@ipfire.org> #
+# #
+# 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.4
+
+THISAPP = libsatsolver-$(VER)
+DL_FILE = $(THISAPP).tar.bz2
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+
+PROG = libsatsolver
+DEPS = ""
+PAK_VER = 1
+
+###############################################################################
+# 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))
+
+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)
+ @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)
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
+# Copyright (C) 2007-2011 IPFire Team <info@ipfire.org> #
# #
# 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 #
EXTRA_MAKE =
EXTRA_INSTALL =
else
- TARGET = $(DIR_INFO)/$(THISAPP)-tools
+ TARGET = $(DIR_INFO)/$(THISAPP)-tools-pass$(PASS)
EXTRA_CONFIG = --prefix=/tools --disable-nls
EXTRA_MAKE =
EXTRA_INSTALL =
NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
lfsmake1 ccache PASS=1
+ lfsmake1 make PASS=1
lfsmake1 binutils PASS=1
lfsmake1 gcc PASS=1
export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
lfsmake1 grep
lfsmake1 gzip
lfsmake1 m4
- lfsmake1 make
+ lfsmake1 make PASS=2
lfsmake1 patch
lfsmake1 perl
lfsmake1 sed
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
--- /dev/null
+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}")
--- /dev/null
+>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
+
--- /dev/null
+>From 1f9659b55013f222046b9d161fd5a0f2fc399cb8 Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+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 <michael.tremer@ipfire.org>
+---
+ 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
+