Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

subversion: initial package #5296

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open
34 changes: 34 additions & 0 deletions cross/apr-util/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
PKG_NAME = apr-util
PKG_VERS = 1.6.3
PKG_EXT = tar.bz2
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://archive.apache.org/dist/apr
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/apr cross/libexpat

HOMEPAGE = https://apr.apache.org
COMMENT = APR-util provides a number of helpful abstractions on top of APR.
LICENSE = Apache 2.0

POST_CONFIGURE_TARGET = apr-util_post_configure
POST_INSTALL_TARGET = apr-util_post_install

GNU_CONFIGURE = 1
CONFIGURE_ARGS = --enable-layout=GNU
CONFIGURE_ARGS += --with-apr=$(STAGING_INSTALL_PREFIX)/bin/apr-1-config
ADDITIONAL_CFLAGS = -I$(STAGING_INSTALL_PREFIX)/include/apache2

include ../../mk/spksrc.cross-cc.mk

.PHONY: apr-util_post_configure
apr-util_post_configure:
cp $(STAGING_INSTALL_PREFIX)/share/apache2/build/apr_rules.mk $(WORK_DIR)/$(PKG_DIR)/build/rules.mk
sed -e 's#^apr_builddir=\(.*\)$$#apr_builddir=$(INSTALL_DIR)\1#' \
-e 's#^apr_builders=\(.*\)$$#apr_builders=$(INSTALL_DIR)\1#' \
-e 's#^top_builddir=\(.*\)$$#top_builddir=$(INSTALL_DIR)\1#' \
-i $(WORK_DIR)/$(PKG_DIR)/build/rules.mk

.PHONY: apr-util_post_install
apr-util_post_install:
sed -i -e 's|^prefix="$(INSTALL_PREFIX)"$$|prefix="$(STAGING_INSTALL_PREFIX)"|' $(STAGING_INSTALL_PREFIX)/bin/apr-1-config
3 changes: 3 additions & 0 deletions cross/apr-util/PLIST
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lnk:lib/libaprutil.so
lnk:lib/libaprutil.so.0
lib:lib/libaprutil.so.0.6.3
3 changes: 3 additions & 0 deletions cross/apr-util/digests
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
apr-util-1.6.3.tar.bz2 SHA1 8c6293a787b69986ce43bc49c7c247d4ff5fc828
apr-util-1.6.3.tar.bz2 SHA256 a41076e3710746326c3945042994ad9a4fcac0ce0277dd8fea076fec3c9772b5
apr-util-1.6.3.tar.bz2 MD5 b6e8c9b31d938fe5797ceb0d1ff2eb69
29 changes: 29 additions & 0 deletions cross/apr/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
PKG_NAME = apr
PKG_VERS = 1.7.5
PKG_EXT = tar.bz2
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://archive.apache.org/dist/apr
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/libuuid

HOMEPAGE = https://apr.apache.org
COMMENT = The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations.
LICENSE = Apache 2.0

GNU_CONFIGURE = 1
CONFIGURE_ARGS = --disable-static
CONFIGURE_ARGS += --enable-layout=GNU
CONFIGURE_ARGS += ac_cv_file__dev_zero=yes
CONFIGURE_ARGS += ac_cv_func_setpgrp_void=yes
CONFIGURE_ARGS += apr_cv_process_shared_works=no
CONFIGURE_ARGS += apr_cv_tcp_nodelay_with_cork=yes
CONFIGURE_ARGS += ac_cv_sizeof_struct_iovec=8

POST_INSTALL_TARGET = apr_post_install

include ../../mk/spksrc.cross-cc.mk

.PHONY: apr_post_install
apr_post_install:
sed -i -e 's|^prefix="$(INSTALL_PREFIX)"$$|prefix="$(STAGING_INSTALL_PREFIX)"|' $(STAGING_INSTALL_PREFIX)/bin/apr-1-config
3 changes: 3 additions & 0 deletions cross/apr/PLIST
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lnk:lib/libapr.so
lnk:lib/libapr.so.0
lib:lib/libapr.so.0.7.5
3 changes: 3 additions & 0 deletions cross/apr/digests
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
apr-1.7.5.tar.bz2 SHA1 b6acc2ea8048d582136c93512bff520fe446d095
apr-1.7.5.tar.bz2 SHA256 cd0f5d52b9ab1704c72160c5ee3ed5d3d4ca2df4a7f8ab564e3cb352b67232f2
apr-1.7.5.tar.bz2 MD5 8b156d4d0e804cb1f172312ffe087c25
29 changes: 29 additions & 0 deletions cross/serf/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
PKG_NAME = serf
PKG_VERS = 1.3.10
PKG_EXT = tar.bz2
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://archive.apache.org/dist/serf
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/apr cross/apr-util cross/openssl3

HOMEPAGE = https://serf.apache.org
COMMENT = The serf library is a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library. Serf is the default client library of Apache Subversion and Apache OpenOffice.
LICENSE = Apache 2.0

CONFIGURE_TARGET = nop
COMPILE_TARGET = serf_compile
INSTALL_TARGET = serf_install

CONFIGURE_ARGS = --with-apr=$(STAGING_INSTALL_PREFIX)
CONFIGURE_ARGS += --with-apr-util=$(STAGING_INSTALL_PREFIX)

include ../../mk/spksrc.cross-cc.mk

.PHONY: serf_compile
serf_compile:
cd $(WORK_DIR)/$(PKG_DIR) && scons CC=$(TC_PATH)/$(TC_PREFIX)gcc APR=$(STAGING_INSTALL_PREFIX) APU=$(STAGING_INSTALL_PREFIX) OPENSSL=$(STAGING_INSTALL_PREFIX) PREFIX=$(INSTALL_PREFIX) LIBDIR=$(STAGING_INSTALL_PREFIX)/lib

.PHONY: serf_install
serf_install:
cd $(WORK_DIR)/$(PKG_DIR) && scons PREFIX=$(STAGING_INSTALL_PREFIX) install
3 changes: 3 additions & 0 deletions cross/serf/PLIST
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
lnk:lib/libserf-1.so
lnk:lib/libserf-1.so.1
lib:lib/libserf-1.so.1.3.0
3 changes: 3 additions & 0 deletions cross/serf/digests
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
serf-1.3.10.tar.bz2 SHA1 d67c209cb0161c4707ba114d1195c5ba3becfa73
serf-1.3.10.tar.bz2 SHA256 be81ef08baa2516ecda76a77adf7def7bc3227eeb578b9a33b45f7b41dc064e6
serf-1.3.10.tar.bz2 MD5 5320087299084c297eff8e1dacfab1af
31 changes: 31 additions & 0 deletions cross/subversion/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
PKG_NAME = subversion
PKG_VERS = 1.14.5
PKG_EXT = tar.bz2
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://archive.apache.org/dist/subversion
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

DEPENDS = cross/zlib
DEPENDS += cross/apr
DEPENDS += cross/apr-util
DEPENDS += cross/serf
DEPENDS += cross/sqlite
DEPENDS += cross/cyrus-sasl
DEPENDS += cross/lz4
DEPENDS += cross/file

HOMEPAGE = https://subversion.apache.org/
COMMENT = Subversion is an open source version control system.
LICENSE = Apache 2.0

GNU_CONFIGURE = 1

CONFIGURE_ARGS = --disable-static
CONFIGURE_ARGS += --with-apr=$(STAGING_INSTALL_PREFIX)
CONFIGURE_ARGS += --with-apr-util=$(STAGING_INSTALL_PREFIX)
CONFIGURE_ARGS += --with-serf=$(STAGING_INSTALL_PREFIX)
CONFIGURE_ARGS += --with-zlib=$(STAGING_INSTALL_PREFIX)
CONFIGURE_ARGS += --without-berkeley-db
CONFIGURE_ARGS += --with-utf8proc=internal

include ../../mk/spksrc.cross-cc.mk
54 changes: 54 additions & 0 deletions cross/subversion/PLIST
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
bin:bin/svn
bin:bin/svnadmin
bin:bin/svnbench
bin:bin/svndumpfilter
bin:bin/svnfsfs
bin:bin/svnlook
bin:bin/svnmucc
bin:bin/svnrdump
bin:bin/svnserve
bin:bin/svnsync
bin:bin/svnversion
lnk:lib/libsvn_client-1.so
lnk:lib/libsvn_client-1.so.0
lib:lib/libsvn_client-1.so.0.0.0
lnk:lib/libsvn_delta-1.so
lnk:lib/libsvn_delta-1.so.0
lib:lib/libsvn_delta-1.so.0.0.0
lnk:lib/libsvn_diff-1.so
lnk:lib/libsvn_diff-1.so.0
lib:lib/libsvn_diff-1.so.0.0.0
lnk:lib/libsvn_fs-1.so
lnk:lib/libsvn_fs-1.so.0
lib:lib/libsvn_fs-1.so.0.0.0
lnk:lib/libsvn_fs_fs-1.so
lnk:lib/libsvn_fs_fs-1.so.0
lib:lib/libsvn_fs_fs-1.so.0.0.0
lnk:lib/libsvn_fs_util-1.so
lnk:lib/libsvn_fs_util-1.so.0
lib:lib/libsvn_fs_util-1.so.0.0.0
lnk:lib/libsvn_fs_x-1.so
lnk:lib/libsvn_fs_x-1.so.0
lib:lib/libsvn_fs_x-1.so.0.0.0
lnk:lib/libsvn_ra-1.so
lnk:lib/libsvn_ra-1.so.0
lib:lib/libsvn_ra-1.so.0.0.0
lnk:lib/libsvn_ra_local-1.so
lnk:lib/libsvn_ra_local-1.so.0
lib:lib/libsvn_ra_local-1.so.0.0.0
lnk:lib/libsvn_ra_serf-1.so
lnk:lib/libsvn_ra_serf-1.so.0
lib:lib/libsvn_ra_serf-1.so.0.0.0
lnk:lib/libsvn_ra_svn-1.so
lnk:lib/libsvn_ra_svn-1.so.0
lib:lib/libsvn_ra_svn-1.so.0.0.0
lnk:lib/libsvn_repos-1.so
lnk:lib/libsvn_repos-1.so.0
lib:lib/libsvn_repos-1.so.0.0.0
lnk:lib/libsvn_subr-1.so
lnk:lib/libsvn_subr-1.so.0
lib:lib/libsvn_subr-1.so.0.0.0
lnk:lib/libsvn_wc-1.so
lnk:lib/libsvn_wc-1.so.0
lib:lib/libsvn_wc-1.so.0.0.0
rsc:share/locale/
3 changes: 3 additions & 0 deletions cross/subversion/digests
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
subversion-1.14.5.tar.bz2 SHA1 5350ef7ea238b5fff21f822dc9dbeed6e0e426c2
subversion-1.14.5.tar.bz2 SHA256 e78a29e7766b8b7b354497d08f71a55641abc53675ce1875584781aae35644a1
subversion-1.14.5.tar.bz2 MD5 af6001dc7af2f1242a4f72e8a5c565d2
54 changes: 54 additions & 0 deletions spk/subversion/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
SPK_NAME = subversion
SPK_VERS = 1.14.5
SPK_REV = 1
SPK_ICON = src/subversion.png

DEPENDS = cross/subversion

MAINTAINER = hgy59
DESCRIPTION = Subversion is an open source version control system.

DISPLAY_NAME = Subversion
CHANGELOG = "Initial SynoCommunity Package release."

HOMEPAGE = https://subversion.apache.org/
LICENSE = Apache 2.0

include ../../mk/spksrc.common.mk

ifeq ($(call version_ge, ${TCVERSION}, 7.0),1)
SERVICE_PORT = 3690
else
SERVICE_PORT = 3691
DESCRIPTION += Port 3691 is used \(on DSM 6.x\) to avoid conflict with Subversion package of Synology.
endif

WIZARDS_DIR = src/wizard
SERVICE_WIZARD_SHARENAME = wizard_repo_directory

STARTABLE = yes
SERVICE_USER = auto
SERVICE_SETUP = src/service-setup.sh
NO_SERVICE_SHORTCUT = yes

POST_STRIP_TARGET = subversion_extra_install

SPK_COMMANDS = bin/svn
SPK_COMMANDS += bin/svnadmin
SPK_COMMANDS += bin/svnbench
SPK_COMMANDS += bin/svndumpfilter
SPK_COMMANDS += bin/svnfsfs
SPK_COMMANDS += bin/svnlook
SPK_COMMANDS += bin/svnmucc
SPK_COMMANDS += bin/svnrdump
SPK_COMMANDS += bin/svnserve
SPK_COMMANDS += bin/svnsync
SPK_COMMANDS += bin/svnversion

include ../../mk/spksrc.spk.mk

.PHONY: subversion_extra_install
subversion_extra_install:
@$(MSG) Install template for service-variables
install -m 755 -d $(STAGING_DIR)/var
install -m 644 src/service-variables.template $(STAGING_DIR)/var/service-variables.template
26 changes: 26 additions & 0 deletions spk/subversion/src/service-setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

SERVICE_VARIABLES="${SYNOPKG_PKGVAR}/service-variables"
SERVICE_VARIABLES_TEMPLATE="${SYNOPKG_PKGVAR}/service-variables.template"

service_postinst ()
{
if [ ! -f "${SERVICE_VARIABLES}" ]; then
echo "Create ${SERVICE_VARIABLES}"
cp -f ${SERVICE_VARIABLES_TEMPLATE} ${SERVICE_VARIABLES}
fi

sed -i -e "s|@@share_path@@|${SHARE_PATH}|g" ${SERVICE_VARIABLES}
}

service_prestart ()
{
if [ -f "${SERVICE_VARIABLES}" ]; then
FUNCTIONS=$(dirname $0)"/functions"
if [ -r "${FUNCTIONS}" ]; then
. "${FUNCTIONS}"
fi
load_variables_from_file "${SERVICE_VARIABLES}"
fi

SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/svnserve --daemon --root ${SHARE_PATH} --listen-port ${SERVICE_PORT} --log-file ${LOG_FILE} --pid-file ${PID_FILE}"
}
2 changes: 2 additions & 0 deletions spk/subversion/src/service-variables.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# variables for service command
SHARE_PATH=@@share_path@@
Binary file added spk/subversion/src/subversion.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions spk/subversion/src/wizard/install_uifile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[
{
"step_title": "Subversion repository configuration",
"items": [
{
"type": "textfield",
"desc": "Repository shared folder (either existing share, or new share that will be created)",
"subitems": [
{
"key": "wizard_repo_directory",
"desc": "Repository folder",
"defaultValue": "svn",
"validator": {
"allowBlank": false,
"regex": {
"expr": "/^[\\w _-]+$/",
"errorText": "Subdirectories are not supported."
}
}
}
]
},
{
"desc": "The folder will be created on demand as regular DSM shared folder for the service user <b>sc-subversion</b>. For details about the DSM permissions see <a target=\"_blank\" href=\"https://github.com/SynoCommunity/spksrc/wiki/Permission-Management\">Permission Management</a>.<p/>"
}
]
}
]
Loading