From d9d021d68b70d378a308a329904947393fa2fee9 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Fri, 3 Sep 2010 15:47:21 +0100 Subject: [PATCH] - restore PIE support --- subversion-1.6.0-pie.patch | 62 ------------------------------------- subversion-1.6.11-pie.patch | 49 +++++++++++++++++++++++++++++ subversion.spec | 18 +++++++---- 3 files changed, 61 insertions(+), 68 deletions(-) delete mode 100644 subversion-1.6.0-pie.patch create mode 100644 subversion-1.6.11-pie.patch diff --git a/subversion-1.6.0-pie.patch b/subversion-1.6.0-pie.patch deleted file mode 100644 index 15cfa8f..0000000 --- a/subversion-1.6.0-pie.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- subversion-1.6.0/build.conf.pie -+++ subversion-1.6.0/build.conf -@@ -472,7 +472,7 @@ type = swig_lib - lang = python - path = subversion/bindings/swig/python/libsvn_swig_py - libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr apriconv apr --link-cmd = $(LINK) $(SWIG_PY_LIBS) -+link-cmd = $(LINK_LIB) $(SWIG_PY_LIBS) - install = swig-py-lib - # need special build rule to include -DSWIGPYTHON - compile-cmd = $(COMPILE_SWIG_PY) -@@ -495,7 +495,7 @@ type = swig_lib - lang = ruby - path = subversion/bindings/swig/ruby/libsvn_swig_ruby - libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr --link-cmd = $(LINK) $(SWIG_RB_LIBS) -+link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS) - install = swig-rb-lib - # need special build rule to include - compile-cmd = $(COMPILE_SWIG_RB) ---- subversion-1.6.0/build/generator/gen_base.py.pie -+++ subversion-1.6.0/build/generator/gen_base.py -@@ -413,6 +413,9 @@ class TargetExe(TargetLinked): - self.manpages = options.get('manpages', '') - self.testing = options.get('testing') - -+ if self.install == 'test' or self.install == 'bdb-test': -+ self.link_cmd = '$(LINK_TEST)' -+ - def add_dependencies(self): - TargetLinked.add_dependencies(self) - -@@ -455,8 +458,11 @@ class TargetLib(TargetLinked): - self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target - self.msvc_export = options.get('msvc-export', '').split() - -- ### hmm. this is Makefile-specific -- self.link_cmd = '$(LINK_LIB)' -+ ### more Makefile-specific stuff: -+ if self.install == 'test': -+ self.link_cmd = '$(LINK_TEST_LIB)' -+ elif self.link_cmd == '$(LINK)': -+ self.link_cmd = '$(LINK_LIB)' - - class TargetApacheMod(TargetLib): - ---- subversion-1.6.0/Makefile.in.pie -+++ subversion-1.6.0/Makefile.in -@@ -184,8 +185,11 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF - COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS) - COMPILE_JAVAHL_JAVAH = $(JAVAH) - --LINK_LIB = $(LINK) -rpath $(libdir) --LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) -+BASE_LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -+LINK = $(BASE_LINK) -pie -+LINK_TEST = $(BASE_LINK) -no-install -+LINK_LIB = $(BASE_LINK) -rpath $(libdir) -+LINK_TEST_LIB = $(BASE_LINK) - LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir) - - # special link rule for mod_dav_svn diff --git a/subversion-1.6.11-pie.patch b/subversion-1.6.11-pie.patch new file mode 100644 index 0000000..1747122 --- /dev/null +++ b/subversion-1.6.11-pie.patch @@ -0,0 +1,49 @@ +--- subversion-1.6.11/build/generator/gen_base.py.pie ++++ subversion-1.6.11/build/generator/gen_base.py +@@ -357,7 +357,7 @@ class TargetLinked(Target): + self.install = options.get('install') + self.compile_cmd = options.get('compile-cmd') + self.sources = options.get('sources', '*.c *.cpp') +- self.link_cmd = options.get('link-cmd', '$(LINK)') ++ self.link_cmd = options.get('link-cmd', '$(LINK_LIB)') + + self.external_lib = options.get('external-lib') + self.external_project = options.get('external-project') +@@ -413,6 +413,11 @@ class TargetExe(TargetLinked): + self.manpages = options.get('manpages', '') + self.testing = options.get('testing') + ++ if self.install == 'test' or self.install == 'bdb-test': ++ self.link_cmd = '$(LINK_TEST)' ++ else: ++ self.link_cmd = '$(LINK_EXE)' ++ + def add_dependencies(self): + TargetLinked.add_dependencies(self) + +@@ -456,8 +461,8 @@ class TargetLib(TargetLinked): + self.msvc_export = options.get('msvc-export', '').split() + + ### hmm. this is Makefile-specific +- if self.link_cmd == '$(LINK)': +- self.link_cmd = '$(LINK_LIB)' ++ if self.install == 'test': ++ self.link_cmd = '$(LINK_TEST_LIB)' + + class TargetApacheMod(TargetLib): + +--- subversion-1.6.11/Makefile.in.pie ++++ subversion-1.6.11/Makefile.in +@@ -184,8 +184,11 @@ COMPILE_JAVAHL_CXX = $(LIBTOOL) $(LTCXXF + COMPILE_JAVAHL_JAVAC = $(JAVAC) $(JAVAC_FLAGS) + COMPILE_JAVAHL_JAVAH = $(JAVAH) + +-LINK_LIB = $(LINK) -rpath $(libdir) + LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) ++LINK_LIB = $(LINK) -rpath $(libdir) ++LINK_TEST = $(LINK) -no-install ++LINK_TEST_LIB = $(LINK) -avoid-version ++LINK_EXE = $(LINK) -pie + LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir) + + # special link rule for mod_dav_svn diff --git a/subversion.spec b/subversion.spec index 455689a..049fa25 100644 --- a/subversion.spec +++ b/subversion.spec @@ -30,7 +30,7 @@ Source5: psvn-init.el Patch0: subversion-1.6.5-newlines.patch Patch2: subversion-1.6.0-deplibs.patch Patch3: subversion-1.6.1-rpath.patch -Patch6: subversion-1.6.0-pie.patch +Patch6: subversion-1.6.11-pie.patch Patch7: subversion-1.1.3-java.patch Patch8: subversion-1.6.6-kwallet.patch Patch9: subversion-1.6.12-disable-client-test.patch @@ -152,13 +152,10 @@ cd contrib/client-side/svn2cl cd ../../.. %patch2 -p1 -b .deplibs %patch3 -p1 -b .rpath -#patch6 -p1 -b .pie +%patch6 -p1 -b .pie %if %{with_java} %patch7 -p1 -b .java %endif -%ifarch sparc64 -sed -i -e 's|-fpie|-fPIE|g' Makefile.in -%endif %patch8 -p1 -b .kwallet %patch9 -p1 -b .disable-client-test @@ -188,7 +185,13 @@ export svn_cv_ruby_link="%{__cc} -shared" export svn_cv_ruby_sitedir_libsuffix="" export svn_cv_ruby_sitedir_archsuffix="" -export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS" +%ifarch sparc64 +pieflag=-fPIE +%else +pieflag=-fpie +%endif + +export CC=gcc CXX=g++ JAVA_HOME=%{jdk_path} CFLAGS="$RPM_OPT_FLAGS $pieflag" %configure --with-apr=%{_prefix} --with-apr-util=%{_prefix} \ --with-swig --with-neon=%{_prefix} \ --with-ruby-sitedir=%{ruby_sitearch} \ @@ -393,6 +396,9 @@ rm -rf ${RPM_BUILD_ROOT} %{_mandir}/man1/svn2cl.1* %changelog +* Fri Sep 3 2010 Joe Orton - 1.6.12-3 +- restore PIE support + * Sat Jul 24 2010 David Malcolm - 1.6.12-3 - for now, disable python cases that fail against python 2.7 (patch 9)