浏览代码

finalize Python bindings and add restarting/stopping of daemon on upgrade/erase

Ralf S. Engelschall 20 年之前
父节点
当前提交
23e36b867f
共有 2 个文件被更改,包括 112 次插入3 次删除
  1. 88 0
      subversion/subversion.patch
  2. 24 3
      subversion/subversion.spec

+ 88 - 0
subversion/subversion.patch

@@ -56,3 +56,91 @@ Index: Makefile.in
  
  swig-pl_DEPS = libsvn_client libsvn_delta libsvn_diff libsvn_fs libsvn_ra libsvn_repos libsvn_subr libsvn_wc libsvn_swig_perl $(SWIG_PL_DIR)/native/Makefile
  swig-pl: $(swig-pl_DEPS)
+Index: build-outputs.mk
+--- build-outputs.mk.orig	2005-01-14 18:34:19 +0100
++++ build-outputs.mk	2005-03-08 11:24:20 +0100
+@@ -1,5 +1,33 @@
+ # DO NOT EDIT -- AUTOMATICALLY GENERATED
+ 
++OPENPKG_LIBS_ROOT = \
++    ../../../../subversion
++OPENPKG_LIBS_SVN = \
++    $(OPENPKG_LIBS_ROOT)/libsvn_client/libsvn_client-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_delta/libsvn_delta-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_diff/libsvn_diff-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_fs/libsvn_fs-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_fs_base/libsvn_fs_base-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_fs_fs/libsvn_fs_fs-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_ra/libsvn_ra-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_ra_dav/libsvn_ra_dav-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_ra_local/libsvn_ra_local-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_ra_svn/libsvn_ra_svn-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_repos/libsvn_repos-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_subr/libsvn_subr-1.la \
++    $(OPENPKG_LIBS_ROOT)/libsvn_wc/libsvn_wc-1.la
++OPENPKG_LIBS_EXT = \
++    -liconv -lz `neon-config --libs` -lssl -lcrypto -lxml2
++OPENPKG_PYTHON_LIBS = \
++    $(OPENPKG_LIBS_SVN) \
++    $(OPENPKG_LIBS_SVN) \
++    $(OPENPKG_LIBS_SVN) \
++    $(OPENPKG_LIBS_SVN) \
++    $(SVN_APRUTIL_LIBS) \
++    $(SVN_APR_LIBS) \
++    $(OPENPKG_LIBS_EXT) \
++    $(LIBS)
++
+ FS_BASE_DEPS = subversion/libsvn_fs_base/libsvn_fs_base-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ FS_BASE_LINK = ../../subversion/libsvn_fs_base/libsvn_fs_base-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la
+ 
+@@ -267,42 +295,42 @@
+ python_client_DEPS =  subversion/bindings/swig/python/svn_client.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_client/libsvn_client-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_client_OBJECTS = svn_client.lo
+ subversion/bindings/swig/python/_client.la: $(python_client_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _client.la $(LT_NO_UNDEFINED) $(python_client_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _client.la $(LT_NO_UNDEFINED) $(python_client_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_client/libsvn_client-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_core_DEPS =  subversion/bindings/swig/python/core.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_diff/libsvn_diff-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_core_OBJECTS = core.lo
+ subversion/bindings/swig/python/_core.la: $(python_core_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _core.la $(LT_NO_UNDEFINED) $(python_core_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _core.la $(LT_NO_UNDEFINED) $(python_core_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_diff/libsvn_diff-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(SVN_APR_LIBS) $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_delta_DEPS =  subversion/bindings/swig/python/svn_delta.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_delta_OBJECTS = svn_delta.lo
+ subversion/bindings/swig/python/_delta.la: $(python_delta_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _delta.la $(LT_NO_UNDEFINED) $(python_delta_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _delta.la $(LT_NO_UNDEFINED) $(python_delta_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_delta/libsvn_delta-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_fs_DEPS =  subversion/bindings/swig/python/svn_fs.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_fs_OBJECTS = svn_fs.lo
+ subversion/bindings/swig/python/_fs.la: $(python_fs_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _fs.la $(LT_NO_UNDEFINED) $(python_fs_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _fs.la $(LT_NO_UNDEFINED) $(python_fs_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_fs/libsvn_fs-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_ra_DEPS =  subversion/bindings/swig/python/svn_ra.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_ra_OBJECTS = svn_ra.lo
+ subversion/bindings/swig/python/_ra.la: $(python_ra_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _ra.la $(LT_NO_UNDEFINED) $(python_ra_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _ra.la $(LT_NO_UNDEFINED) $(python_ra_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_ra/libsvn_ra-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_repos_DEPS =  subversion/bindings/swig/python/svn_repos.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_repos/libsvn_repos-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_repos_OBJECTS = svn_repos.lo
+ subversion/bindings/swig/python/_repos.la: $(python_repos_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _repos.la $(LT_NO_UNDEFINED) $(python_repos_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _repos.la $(LT_NO_UNDEFINED) $(python_repos_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_repos/libsvn_repos-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_runtime_DEPS = mkdir-init subversion/bindings/swig/python/swigpy.lo
+ python_runtime_OBJECTS = swigpy.lo
+ subversion/bindings/swig/python/swigpy.la: $(python_runtime_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o swigpy.la $(LT_NO_UNDEFINED) $(python_runtime_OBJECTS)  $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o swigpy.la $(LT_NO_UNDEFINED) $(python_runtime_OBJECTS)  $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ python_wc_DEPS =  subversion/bindings/swig/python/svn_wc.lo subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la subversion/libsvn_wc/libsvn_wc-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ python_wc_OBJECTS = svn_wc.lo
+ subversion/bindings/swig/python/_wc.la: $(python_wc_DEPS)
+-	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _wc.la $(LT_NO_UNDEFINED) $(python_wc_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS)
++	cd subversion/bindings/swig/python && $(LINK_PY_WRAPPER) -o _wc.la $(LT_NO_UNDEFINED) $(python_wc_OBJECTS) -lswigpy ../../../../subversion/bindings/swig/python/libsvn_swig_py/libsvn_swig_py-1.la ../../../../subversion/libsvn_wc/libsvn_wc-1.la ../../../../subversion/libsvn_subr/libsvn_subr-1.la $(LIBS) $(OPENPKG_PYTHON_LIBS)
+ 
+ ra_local_test_DEPS =  subversion/tests/libsvn_ra_local/ra-local-test.o subversion/tests/libsvn_test-1.la subversion/libsvn_ra/libsvn_ra-1.la subversion/libsvn_fs/libsvn_fs-1.la subversion/libsvn_delta/libsvn_delta-1.la subversion/libsvn_subr/libsvn_subr-1.la
+ ra_local_test_OBJECTS = ra-local-test.o

+ 24 - 3
subversion/subversion.spec

@@ -39,7 +39,7 @@ Class:        BASE
 Group:        SCM
 License:      Apache/BSD
 Version:      %{V_opkg}
-Release:      20050306
+Release:      20050308
 
 #   package options
 %option       with_cvs2svn  no
@@ -58,7 +58,7 @@ Patch0:       subversion.patch
 #   build information
 Prefix:       %{l_prefix}
 BuildRoot:    %{l_buildroot}
-BuildPreReq:  OpenPKG, openpkg >= 20040130, make
+BuildPreReq:  OpenPKG, openpkg >= 20040130, make, libtool
 PreReq:       OpenPKG, openpkg >= 20040130
 BuildPreReq:  diffutils, libxml, db, openssl, zlib, neon
 PreReq:       diffutils, libxml, db, openssl, zlib, neon
@@ -152,6 +152,8 @@ AutoReqProv:  no
     %{l_make} %{l_mflags} swig-pl
 %endif
 %if "%{with_python}" == "yes"
+    mv libtool libtool.orig
+    ln -s %{l_prefix}/bin/libtool .
     %{l_make} %{l_mflags} swig-py
 %endif
 
@@ -174,6 +176,13 @@ AutoReqProv:  no
     strip  $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
 %if "%{with_perl}" == "yes"
     %{l_prefix}/bin/perl-openpkg -F- fixate >/dev/null
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/libsvn_swig_perl*
+%endif
+%if "%{with_python}" == "yes"
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/libsvn_swig_py*
+    rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/svn-python/libsvn/_*.a
+    mv $RPM_BUILD_ROOT%{l_prefix}/lib/svn-python \
+       $RPM_BUILD_ROOT%{l_prefix}/lib/python
 %endif
 
     #   install svn_load_dirs(1) tool
@@ -264,9 +273,21 @@ AutoReqProv:  no
     rm -rf $RPM_BUILD_ROOT
 
 %post
+    #   create default repository
     if [ ! -d $RPM_INSTALL_PREFIX/var/subversion/default ]; then
-        #   create default repository
         $RPM_INSTALL_PREFIX/bin/svnadmin create \
             $RPM_INSTALL_PREFIX/var/subversion/default
     fi
 
+    #   after upgrade, restart service
+    [ $1 -eq 2 ] || exit 0
+    eval `%{l_rc} subversion status 2>/dev/null`
+    [ ".$subversion_active" = .yes ] && %{l_rc} subversion restart
+    exit 0
+
+%preun
+    #   before erase, stop service
+    [ $1 -eq 0 ] || exit 0
+    %{l_rc} subversion stop 2>/dev/null
+    exit 0
+