Bring back Subversion from oldpackages and update to the latest version. Create prerm script to stop subversion server and remove init script on uninstall. Signed-off-by: Donald Rumata <donald.rumata@gmail.com>lilik-openwrt-22.03
@ -0,0 +1,141 @@ | |||
# | |||
# Copyright (C) 2007-2016 OpenWrt.org | |||
# | |||
# This is free software, licensed under the GNU General Public License v2. | |||
# See /LICENSE for more information. | |||
# | |||
include $(TOPDIR)/rules.mk | |||
PKG_NAME:=subversion | |||
PKG_RELEASE:=1 | |||
PKG_VERSION:=1.9.4 | |||
PKG_SOURCE_URL:=@APACHE/subversion | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | |||
PKG_MD5SUM:=29121a038f87641055a8183f49e9739f | |||
PKG_LICENSE:=Apache-2.0 | |||
PKG_LICENSE_FILES:=LICENSE | |||
PKG_MAINTAINER:=Donald Rumata <donald.rumata@gmail.com> | |||
PKG_FIXUP:=autoreconf | |||
PKG_MACRO_PATHS:=build/ac-macros | |||
include $(INCLUDE_DIR)/package.mk | |||
include $(INCLUDE_DIR)/nls.mk | |||
define Package/subversion/Default | |||
SECTION:=net | |||
CATEGORY:=Network | |||
SUBMENU:=Version Control Systems | |||
TITLE:=A compelling replacement for CVS | |||
DEPENDS:=+zlib +libsqlite3 +libapr +libaprutil +libmagic \ | |||
$(ICONV_DEPENDS) $(INTL_DEPENDS) | |||
URL:=http://subversion.apache.org/ | |||
endef | |||
define Package/subversion/Default/description | |||
Subversion is a free/open-source version control system. That is, | |||
Subversion manages files and directories, and the changes made to them, | |||
over time. This allows you to recover older versions of your data, or | |||
examine the history of how your data changed. In this regard, many | |||
people think of a version control system as a sort of time machine. | |||
endef | |||
define Package/subversion-libs | |||
$(call Package/subversion/Default) | |||
TITLE:=subversion libs | |||
endef | |||
define Package/subversion-libs/description | |||
$(call Package/subversion/Default/description) | |||
This package contains the Subversion libraries. | |||
endef | |||
define Package/subversion-client | |||
$(call Package/subversion/Default) | |||
DEPENDS:=+subversion-libs | |||
TITLE:=subversion client tools | |||
endef | |||
define Package/subversion-client/description | |||
$(call Package/subversion/Default/description) | |||
This package contains the Subversion client tools. | |||
endef | |||
define Package/subversion-server | |||
$(call Package/subversion/Default) | |||
DEPENDS:=+subversion-libs | |||
TITLE:=subversion server | |||
endef | |||
define Package/subversion-server/description | |||
$(call Package/subversion/Default/description) | |||
This package contains the Subversion server. | |||
endef | |||
define Package/subversion-server/conffiles | |||
/etc/config/subversion | |||
endef | |||
TARGET_CFLAGS += $(FPIC) | |||
TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE | |||
CONFIGURE_ARGS += \ | |||
--with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \ | |||
--with-apr-util="$(STAGING_DIR)/usr/bin/apu-1-config" \ | |||
--with-libmagic="$(STAGING_DIR)/usr" \ | |||
--disable-mod-activation \ | |||
--without-ruby-sitedir \ | |||
--without-swig \ | |||
--without-jikes \ | |||
--without-junit \ | |||
--without-berkeley-db \ | |||
--without-apxs \ | |||
--without-sasl | |||
ifdef $(INTL_FULL) | |||
CONFIGURE_ARGS += --enable-nls | |||
else | |||
CONFIGURE_ARGS += --disable-nls | |||
endif | |||
CONFIGURE_VARS += \ | |||
LDFLAGS="$(TARGET_LDFLAGS) -lcrypt -lm \ | |||
-lz -lpthread $(if $(INTL_FULL),-lintl)" | |||
CPPFLAGS="$(TARGET_CPPFLAGS)" | |||
define Build/Compile | |||
$(MAKE) -C $(PKG_BUILD_DIR) \ | |||
DESTDIR="$(PKG_INSTALL_DIR)" \ | |||
all local-install | |||
endef | |||
define Package/subversion-libs/install | |||
$(INSTALL_DIR) $(1)/usr/lib | |||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsvn_*.so.* $(1)/usr/lib/ | |||
endef | |||
define Package/subversion-client/install | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{svn,svnversion,svnsync} $(1)/usr/bin/ | |||
endef | |||
define Package/subversion-server/install | |||
$(INSTALL_DIR) $(1)/usr/bin | |||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/svn{look,admin,dumpfilter,serve} $(1)/usr/bin/ | |||
$(INSTALL_DIR) $(1)/etc/config | |||
$(INSTALL_CONF) ./files/subversion.config $(1)/etc/config/subversion | |||
$(INSTALL_DIR) $(1)/etc/init.d | |||
$(INSTALL_BIN) ./files/subversion.init $(1)/etc/init.d/subversion | |||
endef | |||
define Package/subversion-server/prerm | |||
#!/bin/sh | |||
ps | grep '\(/svnserve$\| svnserve\)' | grep -cvq grep >/dev/null && /etc/init.d/subversion stop | |||
/etc/init.d/subversion disable | |||
endef | |||
$(eval $(call BuildPackage,subversion-libs)) | |||
$(eval $(call BuildPackage,subversion-client)) | |||
$(eval $(call BuildPackage,subversion-server)) |
@ -0,0 +1,3 @@ | |||
config subversion | |||
option path '/var/local/svn' | |||
option port '3690' |
@ -0,0 +1,37 @@ | |||
#!/bin/sh /etc/rc.common | |||
# Copyright (C) 2006-2016 OpenWrt.org | |||
START=50 | |||
start_instance () { | |||
local section="$1" | |||
config_get path "$section" 'path' | |||
config_get port "$section" 'port' | |||
if [ ! -d "$path" ]; then | |||
echo "The subversion repository (${path}) does not exist." | |||
echo "Create a new repository and/or change the path in /etc/config/subversion" | |||
echo | |||
echo "Create a new subversion repository with:" | |||
echo " mkdir -p ${path}" | |||
echo " svnadmin create --fs-type fsfs ${path}" | |||
echo | |||
echo "Changing the path using UCI (default path is: /var/local/svn):" | |||
echo " uci set subversion.@[0].path="/srv/svn"" | |||
echo " uci commit" | |||
echo " /etc/init.d/subversion restart" | |||
return 1 | |||
fi | |||
service_start /usr/bin/svnserve -d --listen-port ${port} -r ${path} | |||
} | |||
start() { | |||
config_load 'subversion' | |||
config_foreach start_instance 'subversion' | |||
} | |||
stop() { | |||
SERVICE_SIG_STOP="INT" \ | |||
service_stop /usr/bin/svnserve | |||
} |
@ -0,0 +1,97 @@ | |||
--- a/build/ac-macros/macosx.m4 2016-02-09 01:24:13.181409245 -0500 | |||
+++ b/build/ac-macros/macosx.m4 2016-02-09 01:25:15.873408288 -0500 | |||
@@ -17,94 +17,4 @@ dnl specific language governing permis | |||
dnl under the License. | |||
dnl =================================================================== | |||
dnl | |||
-dnl Mac OS X specific checks | |||
-dnl SVN_LIB_MACHO_ITERATE | |||
-dnl Check for _dyld_image_name and _dyld_image_header availability | |||
-AC_DEFUN(SVN_LIB_MACHO_ITERATE, | |||
-[ | |||
- AC_MSG_CHECKING([for Mach-O dynamic module iteration functions]) | |||
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[ | |||
- #include <mach-o/dyld.h> | |||
- #include <mach-o/loader.h> | |||
- ]],[[ | |||
- const struct mach_header *header = _dyld_get_image_header(0); | |||
- const char *name = _dyld_get_image_name(0); | |||
- if (name && header) return 0; | |||
- return 1; | |||
- ]])],[ | |||
- AC_DEFINE([SVN_HAVE_MACHO_ITERATE], [1], | |||
- [Is Mach-O low-level _dyld API available?]) | |||
- AC_MSG_RESULT([yes]) | |||
- ],[ | |||
- AC_MSG_RESULT([no]) | |||
- ]) | |||
-]) | |||
- | |||
-dnl SVN_LIB_MACOS_PLIST | |||
-dnl Assign variables for Mac OS property list support | |||
-AC_DEFUN(SVN_LIB_MACOS_PLIST, | |||
-[ | |||
- AC_MSG_CHECKING([for Mac OS property list utilities]) | |||
- | |||
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |||
- #include <AvailabilityMacros.h> | |||
- #if !defined(MAC_OS_X_VERSION_MAX_ALLOWED) \ | |||
- || !defined(MAC_OS_X_VERSION_10_0) \ | |||
- || (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_0) | |||
- #error ProperyList API unavailable. | |||
- #endif | |||
- ]],[[]])],[ | |||
- dnl ### Hack. We should only need to pass the -framework options when | |||
- dnl linking libsvn_subr, since it is the only library that uses Keychain. | |||
- dnl | |||
- dnl Unfortunately, libtool 1.5.x doesn't track transitive dependencies for | |||
- dnl OS X frameworks like it does for normal libraries, so we need to | |||
- dnl explicitly pass the option to all the users of libsvn_subr to allow | |||
- dnl static builds to link successfully. | |||
- dnl | |||
- dnl This does mean that all executables we link will be linked directly | |||
- dnl to these frameworks - even when building shared libraries - but that | |||
- dnl shouldn't cause any problems. | |||
- | |||
- LIBS="$LIBS -framework CoreFoundation" | |||
- AC_DEFINE([SVN_HAVE_MACOS_PLIST], [1], | |||
- [Is Mac OS property list API available?]) | |||
- AC_MSG_RESULT([yes]) | |||
- ],[ | |||
- AC_MSG_RESULT([no]) | |||
- ]) | |||
-]) | |||
- | |||
-dnl SVN_LIB_MACOS_KEYCHAIN | |||
-dnl Check configure options and assign variables related to Keychain support | |||
- | |||
-AC_DEFUN(SVN_LIB_MACOS_KEYCHAIN, | |||
-[ | |||
- AC_ARG_ENABLE(keychain, | |||
- AS_HELP_STRING([--disable-keychain], | |||
- [Disable use of Mac OS KeyChain for auth credentials]), | |||
- [enable_keychain=$enableval],[enable_keychain=yes]) | |||
- | |||
- AC_MSG_CHECKING([for Mac OS KeyChain Services]) | |||
- | |||
- if test "$enable_keychain" = "yes"; then | |||
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |||
- #include <AvailabilityMacros.h> | |||
- #if !defined(MAC_OS_X_VERSION_MAX_ALLOWED) \ | |||
- || !defined(MAC_OS_X_VERSION_10_2) \ | |||
- || (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_2) | |||
- #error KeyChain API unavailable. | |||
- #endif | |||
- ]],[[]])],[ | |||
- dnl ### Hack, see SVN_LIB_MACOS_PLIST | |||
- LIBS="$LIBS -framework Security" | |||
- LIBS="$LIBS -framework CoreServices" | |||
- AC_DEFINE([SVN_HAVE_KEYCHAIN_SERVICES], [1], [Is Mac OS KeyChain support enabled?]) | |||
- AC_MSG_RESULT([yes]) | |||
- ],[ | |||
- enable_keychain=no | |||
- AC_MSG_RESULT([no]) | |||
- ]) | |||
- fi | |||
-]) |