{subversion,neon}: update to latest stable upstream

This pulls in the latest upstream version which includes moving categories
(dev-util -> dev-vcs).  But we don't actually switch to this version until
the cros overlay updates and forces it.

BUG=chromium-os:24360
TEST=`emerge dev-vcs/subversion` works
TEST=`svn co svn://anonsvn.gentoo.org/baselayout` works

Change-Id: Ib4cd81761f6796c5e9e783be360ce96d31949fe0
Reviewed-on: https://gerrit.chromium.org/gerrit/13146
Reviewed-by: David James <davidjames@chromium.org>
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
This commit is contained in:
Mike Frysinger 2011-12-19 14:08:51 -05:00 committed by Gerrit
parent 6e0b0c2f97
commit 18dfbfed41
13 changed files with 1330 additions and 0 deletions

View File

@ -0,0 +1,16 @@
<IfDefine SVN>
LoadModule dav_svn_module modules/mod_dav_svn.so
<IfDefine SVN_AUTHZ>
LoadModule authz_svn_module modules/mod_authz_svn.so
</IfDefine>
# Example configuration:
#<Location /svn/repos>
# DAV svn
# SVNPath ${SVN_REPOS_LOC}/repos
# AuthType Basic
# AuthName "Subversion repository"
# AuthUserFile ${SVN_REPOS_LOC}/conf/svnusers
# Require valid-user
#</Location>
</IfDefine>

View File

@ -0,0 +1,13 @@
;;; subversion site-lisp configuration
(add-to-list 'load-path "@SITELISP@")
(and (< emacs-major-version 22)
(add-to-list 'load-path "@SITELISP@/compat"))
(add-to-list 'vc-handled-backends 'SVN)
(defalias 'svn-examine 'svn-status)
(autoload 'svn-status "dsvn" "Run `svn status'." t)
(autoload 'svn-update "dsvn" "Run `svn update'." t)
(autoload 'svn-status "psvn"
"Examine the status of Subversion working copy in directory DIR." t)

View File

@ -0,0 +1,114 @@
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h subversion-1.5.4/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h 2008-10-29 08:22:36 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h 2008-10-29 08:52:31 +0100
@@ -49,6 +49,11 @@
# endif
#endif
+// This is bad, but better than nothing ;)
+#if defined(__INTERIX)
+# define strtoll strtol
+#endif
+
#if defined(SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/core.c subversion-1.5.4/subversion/bindings/swig/perl/native/core.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/core.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/core.c 2008-10-29 08:53:40 +0100
@@ -1733,7 +1733,10 @@
# endif
#endif
-
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_client.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_client.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_client.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_client.c 2008-10-29 08:54:17 +0100
@@ -1872,6 +1872,10 @@
#endif
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_delta.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_delta.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_delta.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_delta.c 2008-10-29 08:54:28 +0100
@@ -1745,6 +1745,10 @@
#endif
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_fs.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_fs.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_fs.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_fs.c 2008-10-29 08:54:41 +0100
@@ -1818,6 +1818,10 @@
#endif
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_ra.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_ra.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_ra.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_ra.c 2008-10-29 08:54:52 +0100
@@ -1661,6 +1661,10 @@
# endif
#endif
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_repos.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_repos.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_repos.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_repos.c 2008-10-29 08:55:05 +0100
@@ -1792,6 +1792,10 @@
#endif
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)
diff -ru subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_wc.c subversion-1.5.4/subversion/bindings/swig/perl/native/svn_wc.c
--- subversion-1.5.4.orig/subversion/bindings/swig/perl/native/svn_wc.c 2008-10-29 08:22:37 +0100
+++ subversion-1.5.4/subversion/bindings/swig/perl/native/svn_wc.c 2008-10-29 08:55:17 +0100
@@ -1816,6 +1816,10 @@
#endif
+#ifdef __INTERIX
+# define strtoull strtoul
+# define strtoll strtol
+#endif
SWIGINTERN int
SWIG_AsVal_long_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, long long *val)

View File

@ -0,0 +1,21 @@
On AIX, load shared libraries even when created with full aix-soname support:
http://lists.gnu.org/archive/html/libtool/2011-01/msg00023.html
http://lists.gnu.org/archive/html/libtool/2011-02/msg00000.html
Once there is an agreement on that, this patch eventually is for upstream too.
--- subversion/libsvn_ra/ra_loader.c.orig 2009-04-28 14:53:35 +0200
+++ subversion/libsvn_ra/ra_loader.c 2009-04-28 14:55:37 +0200
@@ -164,6 +164,13 @@
/* find/load the specified library */
SVN_ERR(svn_dso_load(&dso, libname));
+#ifdef _AIX
+ if (! dso) {
+ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0(shr.o)",
+ ra_name, SVN_VER_MAJOR);
+ SVN_ERR(svn_dso_load(&dso, libname));
+ }
+#endif
if (! dso)
return SVN_NO_ERROR;

View File

@ -0,0 +1,56 @@
--- Makefile.in
+++ Makefile.in
@@ -47,6 +47,7 @@
SVN_SASL_LIBS = @SVN_SASL_LIBS@
SVN_SERF_LIBS = @SVN_SERF_LIBS@
SVN_SQLITE_LIBS = @SVN_SQLITE_LIBS@
+SVN_XML_LIBS = -lexpat
SVN_ZLIB_LIBS = @SVN_ZLIB_LIBS@
LIBS = @LIBS@
--- build/ac-macros/aprutil.m4
+++ build/ac-macros/aprutil.m4
@@ -77,16 +77,14 @@
AC_MSG_ERROR([apu-config --prefix failed])
fi
- dnl When APR stores the dependent libs in the .la file, we don't need
- dnl --libs.
- SVN_APRUTIL_LIBS="`$apu_config --link-libtool --libs`"
+ SVN_APRUTIL_LIBS="`$apu_config --link-libtool`"
if test $? -ne 0; then
- AC_MSG_ERROR([apu-config --link-libtool --libs failed])
+ AC_MSG_ERROR([apu-config --link-libtool failed])
fi
- SVN_APRUTIL_EXPORT_LIBS="`$apu_config --link-ld --libs`"
+ SVN_APRUTIL_EXPORT_LIBS="`$apu_config --link-ld`"
if test $? -ne 0; then
- AC_MSG_ERROR([apu-config --link-ld --libs failed])
+ AC_MSG_ERROR([apu-config --link-ld failed])
fi
AC_SUBST(SVN_APRUTIL_INCLUDES)
--- build/ac-macros/apr.m4
+++ build/ac-macros/apr.m4
@@ -74,16 +74,14 @@
AC_MSG_ERROR([apr-config --prefix failed])
fi
- dnl When APR stores the dependent libs in the .la file, we don't need
- dnl --libs.
- SVN_APR_LIBS="`$apr_config --link-libtool --libs`"
+ SVN_APR_LIBS="`$apr_config --link-libtool`"
if test $? -ne 0; then
- AC_MSG_ERROR([apr-config --link-libtool --libs failed])
+ AC_MSG_ERROR([apr-config --link-libtool failed])
fi
- SVN_APR_EXPORT_LIBS="`$apr_config --link-ld --libs`"
+ SVN_APR_EXPORT_LIBS="`$apr_config --link-ld`"
if test $? -ne 0; then
- AC_MSG_ERROR([apr-config --link-ld --libs failed])
+ AC_MSG_ERROR([apr-config --link-ld failed])
fi
SVN_APR_SHLIB_PATH_VAR="`$apr_config --shlib-path-var`"

View File

@ -0,0 +1,165 @@
--- configure.ac
+++ configure.ac
@@ -198,6 +198,24 @@
AC_SUBST(LT_LDFLAGS)
+AC_ARG_ENABLE(local-library-preloading,
+ AS_HELP_STRING([--disable-local-library-preloading],
+ [Disable preloading of locally built libraries in locally built executables]),
+ [
+ if test "$enableval" != "no"; then
+ TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts"
+ else
+ TRANSFORM_LIBTOOL_SCRIPTS=""
+ fi
+ ], [
+ if test "`uname`" != "Darwin"; then
+ TRANSFORM_LIBTOOL_SCRIPTS="transform-libtool-scripts"
+ else
+ TRANSFORM_LIBTOOL_SCRIPTS=""
+ fi
+])
+AC_SUBST(TRANSFORM_LIBTOOL_SCRIPTS)
+
dnl Check if -no-undefined is needed for the platform.
dnl It should always work but with libtool 1.4.3 on OS X it breaks the build.
dnl So we only turn it on for platforms where we know we really need it.
--- Makefile.in
+++ Makefile.in
@@ -309,7 +309,10 @@
@INCLUDE_OUTPUTS@
-local-all: @BUILD_RULES@
+local-all: @BUILD_RULES@ @TRANSFORM_LIBTOOL_SCRIPTS@
+
+transform-libtool-scripts: @BUILD_RULES@
+ @$(top_srcdir)/build/transform_libtool_scripts.sh
locale-gnu-pot:
cd $(abs_srcdir) && XGETTEXT="$(XGETTEXT)" MSGMERGE="$(MSGMERGE)" \
--- build/transform_libtool_scripts.sh
+++ build/transform_libtool_scripts.sh
@@ -0,0 +1,121 @@
+#!/bin/sh
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+# Dependencies of libraries
+subr="subr"
+auth_gnome_keyring="auth_gnome_keyring $subr"
+auth_kwallet="auth_kwallet $subr"
+delta="delta $subr"
+diff="diff $subr"
+fs_util="fs_util $subr"
+fs_base="fs_base $delta $fs_util $subr"
+fs_fs="fs_fs $delta $fs_util $subr"
+fs="fs $fs_base $fs_fs $fs_util $subr"
+repos="repos $delta $fs $fs_util $subr"
+ra_local="ra_local $delta $fs $fs_util $repos $subr"
+ra_neon="ra_neon $delta $subr"
+ra_serf="ra_serf $delta $subr"
+ra_svn="ra_svn $delta $subr"
+ra="ra $delta $ra_local $ra_neon $ra_serf $ra_svn $subr"
+wc="wc $delta $diff $subr"
+client="client $delta $diff $ra $subr $wc"
+
+# Variable 'libraries' containing names of variables corresponding to libraries
+libraries="auth_gnome_keyring auth_kwallet client delta diff fs fs_base fs_fs fs_util ra ra_local ra_neon ra_serf ra_svn repos subr wc"
+
+for library in $libraries; do
+ # Delete duplicates in dependencies of libraries
+ library_dependencies="$(echo -n $(for x in $(eval echo "\$$library"); do echo $x; done | sort -u))"
+ eval "$library=\$library_dependencies"
+done
+
+# Dependencies of executables
+svn="$auth_gnome_keyring $auth_kwallet $client $delta $diff $ra $subr $wc"
+svnadmin="$delta $fs $repos $subr"
+svndumpfilter="$delta $fs $repos $subr"
+svnlook="$delta $diff $fs $repos $subr"
+svnserve="$delta $fs $ra_svn $repos $subr"
+svnsync="$auth_gnome_keyring $auth_kwallet $delta $ra $subr"
+svnversion="$subr $wc"
+entries_dump="$subr $wc"
+
+# Variable 'executables' containing names of variables corresponding to executables
+executables="svn svnadmin svndumpfilter svnlook svnserve svnsync svnversion entries_dump"
+
+for executable in $executables; do
+ # Set variables containing paths of executables
+ if [ "$executable" != entries_dump ]; then
+ eval "${executable}_path=subversion/$executable/$executable"
+ else
+ eval "${executable}_path=subversion/tests/cmdline/entries-dump"
+ fi
+ # Delete duplicates in dependencies of executables
+ executable_dependencies="$(echo -n $(for x in $(eval echo "\$$executable"); do echo $x; done | sort -u))"
+ eval "$executable=\$executable_dependencies"
+done
+
+test_paths="$(find subversion/tests -mindepth 2 -maxdepth 2 -name '*-test' ! -path '*/.libs/*' | sort)"
+for test in $test_paths; do
+ test_path="$test"
+ # Dependencies of tests are based on names of directories containing tests
+ test_library="$(echo $test | sed -e 's:^subversion/tests/libsvn_\([^/]*\)/.*:\1:')"
+ test_dependencies="$(eval echo "\$$test_library")"
+ # Set variables corresponding to tests and containing dependencies of tests
+ test="$(echo $test | sed -e 's:^subversion/tests/libsvn_[^/]*/\(.*\):\1:' -e 's/-/_/g')"
+ eval "$test=\$test_dependencies"
+ # Set variables containing paths of tests
+ eval "${test}_path=\$test_path"
+ # Set variable 'tests' containing names of variables corresponding to tests
+ tests="$tests $test"
+done
+
+# auth-test dynamically loads libsvn_auth_gnome_keyring and libsvn_auth_kwallet libraries
+auth_test="auth_gnome_keyring auth_kwallet $auth_test"
+
+# Usage: sed_append LINE_NUMBER TEXT FILE
+sed_append()
+{
+ sed -e "$1a\\
+$2" "$3" > "$3.new"
+ mv -f "$3.new" "$3"
+}
+
+current_directory="$(pwd)"
+for libtool_script in $executables $tests; do
+ eval "libtool_script_path=\$${libtool_script}_path"
+ libtool_script_libraries=""
+ if [ -f "$libtool_script_path" ]; then
+ if { grep LD_LIBRARY_PATH "$libtool_script_path" && ! grep LD_PRELOAD "$libtool_script_path"; } > /dev/null; then
+ echo "Transforming $libtool_script_path"
+ libtool_script_dependencies="$(eval echo "\$$libtool_script")"
+ for libtool_script_dependency in $libtool_script_dependencies; do
+ libtool_script_library="$current_directory/subversion/libsvn_$libtool_script_dependency/.libs/libsvn_$libtool_script_dependency-1.so"
+ [ -f "$libtool_script_library" ] && libtool_script_libraries="$libtool_script_libraries $libtool_script_library"
+ done
+ libtool_script_libraries="${libtool_script_libraries# *}"
+ # Append definitions of LD_PRELOAD to libtool scripts
+ sed_append 4 "LD_PRELOAD=\"$libtool_script_libraries\"" "$libtool_script_path"
+ sed_append 5 "export LD_PRELOAD" "$libtool_script_path"
+ chmod +x "$libtool_script_path"
+ fi
+ fi
+done

View File

@ -0,0 +1,16 @@
--- subversion/libsvn_ra/ra_loader.c.orig 2009-07-20 14:46:02 +0200
+++ subversion/libsvn_ra/ra_loader.c 2009-07-20 14:50:02 +0200
@@ -154,8 +154,13 @@
const char *compat_funcname;
apr_status_t status;
+#if defined(__hpux) && defined(__hppa)
+ libname = apr_psprintf(pool, "libsvn_ra_%s-%d.sl.0",
+ ra_name, SVN_VER_MAJOR);
+#else
libname = apr_psprintf(pool, "libsvn_ra_%s-%d.so.0",
ra_name, SVN_VER_MAJOR);
+#endif
funcname = apr_psprintf(pool, "svn_ra_%s__init", ra_name);
compat_funcname = apr_psprintf(pool, "svn_ra_%s_init", ra_name);

View File

@ -0,0 +1,298 @@
https://svn.collab.net/viewvc/svn?view=revision&revision=38004
https://svn.collab.net/viewvc/svn?view=revision&revision=38014
https://svn.collab.net/viewvc/svn?view=revision&revision=38028
https://svn.collab.net/viewvc/svn?view=revision&revision=38122
--- subversion/libsvn_auth_kwallet/kwallet.cpp
+++ subversion/libsvn_auth_kwallet/kwallet.cpp
@@ -22,6 +22,7 @@
/*** Includes. ***/
+#include <stdlib.h>
#include <string.h>
#include <unistd.h>
@@ -30,6 +31,9 @@
#include "svn_auth.h"
#include "svn_config.h"
#include "svn_error.h"
+#include "svn_io.h"
+#include "svn_pools.h"
+#include "svn_string.h"
#include "svn_version.h"
#include "private/svn_auth_private.h"
@@ -38,13 +42,20 @@
#include <dbus/dbus.h>
#include <QtCore/QCoreApplication>
+#include <QtCore/QList>
+#include <QtCore/QMap>
#include <QtCore/QString>
+#include <QtGui/QApplication>
+#include <QtGui/QX11Info>
#include <kaboutdata.h>
#include <kcmdlineargs.h>
#include <kcomponentdata.h>
#include <klocalizedstring.h>
#include <kwallet.h>
+#include <kwindowsystem.h>
+#include <netwm.h>
+#include <netwm_def.h>
/*-----------------------------------------------------------------------*/
@@ -52,6 +63,28 @@
/*-----------------------------------------------------------------------*/
+#define INITIALIZE_APPLICATION \
+ if (apr_hash_get(parameters, \
+ "svn:auth:qapplication-safe", \
+ APR_HASH_KEY_STRING)) \
+ { \
+ QApplication *app; \
+ if (! qApp) \
+ { \
+ int argc = 1; \
+ app = new QApplication(argc, (char *[1]) {(char *) "svn"}); \
+ } \
+ } \
+ else \
+ { \
+ QCoreApplication *app; \
+ if (! qApp) \
+ { \
+ int argc = 1; \
+ app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"}); \
+ } \
+ }
+
static const char *
get_application_name(apr_hash_t *parameters,
apr_pool_t *pool)
@@ -69,8 +102,7 @@
const char *svn_application_name;
if (svn_application_name_with_pid)
{
- long pid = getpid();
- svn_application_name = apr_psprintf(pool, "Subversion [%ld]", pid);
+ svn_application_name = apr_psprintf(pool, "Subversion [%ld]", long(getpid()));
}
else
{
@@ -102,9 +134,108 @@
}
}
+static pid_t
+get_parent_pid(pid_t pid,
+ apr_pool_t *pool)
+{
+ pid_t parent_pid = 0;
+
+#ifdef __linux__
+ svn_stream_t *stat_file_stream;
+ svn_string_t *stat_file_string;
+ const char *preceeding_space, *following_space, *parent_pid_string;
+
+ const char *path = apr_psprintf(pool, "/proc/%ld/stat", long(pid));
+ svn_error_t *err = svn_stream_open_readonly(&stat_file_stream, path, pool, pool);
+ if (err == SVN_NO_ERROR)
+ {
+ err = svn_string_from_stream(&stat_file_string, stat_file_stream, pool, pool);
+ if (err == SVN_NO_ERROR)
+ {
+ if ((preceeding_space = strchr(stat_file_string->data, ' ')))
+ {
+ if ((preceeding_space = strchr(preceeding_space + 1, ' ')))
+ {
+ if ((preceeding_space = strchr(preceeding_space + 1, ' ')))
+ {
+ if ((following_space = strchr(preceeding_space + 1, ' ')))
+ {
+ parent_pid_string = apr_pstrndup(pool,
+ preceeding_space + 1,
+ following_space - preceeding_space);
+ parent_pid = atol(parent_pid_string);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (err)
+ {
+ svn_error_clear(err);
+ }
+#endif
+
+ return parent_pid;
+}
+
+static WId
+get_wid(apr_hash_t *parameters,
+ apr_pool_t *pool)
+{
+ WId wid = 1;
+
+ if (apr_hash_get(parameters,
+ "svn:auth:qapplication-safe",
+ APR_HASH_KEY_STRING))
+ {
+ QMap<pid_t, WId> process_info_list;
+ QList<WId> windows(KWindowSystem::windows());
+ QList<WId>::const_iterator i;
+ for (i = windows.begin(); i != windows.end(); i++)
+ {
+ process_info_list[NETWinInfo(QX11Info::display(),
+ *i,
+ QX11Info::appRootWindow(),
+ NET::WMPid).pid()] = *i;
+ }
+
+ apr_pool_t *iterpool = svn_pool_create(pool);
+ pid_t pid = getpid();
+ while (pid != 0)
+ {
+ svn_pool_clear(iterpool);
+ if (process_info_list.contains(pid))
+ {
+ wid = process_info_list[pid];
+ break;
+ }
+ pid = get_parent_pid(pid, iterpool);
+ }
+ svn_pool_destroy(iterpool);
+ }
+
+ if (wid == 1)
+ {
+ const char *wid_env_string = getenv("WINDOWID");
+ if (wid_env_string)
+ {
+ long wid_env = atol(wid_env_string);
+ if (wid_env != 0)
+ {
+ wid = wid_env;
+ }
+ }
+ }
+
+ return wid;
+}
+
static KWallet::Wallet *
get_wallet(QString wallet_name,
- apr_hash_t *parameters)
+ apr_hash_t *parameters,
+ apr_pool_t *pool)
{
KWallet::Wallet *wallet =
static_cast<KWallet::Wallet *> (apr_hash_get(parameters,
@@ -115,7 +246,7 @@
APR_HASH_KEY_STRING))
{
wallet = KWallet::Wallet::openWallet(wallet_name,
- -1,
+ pool ? get_wid(parameters, pool) : 1,
KWallet::Wallet::Synchronous);
}
if (wallet)
@@ -141,7 +272,7 @@
apr_hash_t *parameters = static_cast<apr_hash_t *> (data);
if (apr_hash_get(parameters, "kwallet-initialized", APR_HASH_KEY_STRING))
{
- KWallet::Wallet *wallet = get_wallet(NULL, parameters);
+ KWallet::Wallet *wallet = get_wallet(NULL, parameters, NULL);
delete wallet;
apr_hash_set(parameters,
"kwallet-initialized",
@@ -172,12 +303,7 @@
return FALSE;
}
- QCoreApplication *app;
- if (! qApp)
- {
- int argc = 1;
- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
- }
+ INITIALIZE_APPLICATION
KCmdLineArgs::init(1,
(char *[1]) {(char *) "svn"},
@@ -195,7 +321,7 @@
QString::fromUtf8(username) + "@" + QString::fromUtf8(realmstring);
if (! KWallet::Wallet::keyDoesNotExist(wallet_name, folder, key))
{
- KWallet::Wallet *wallet = get_wallet(wallet_name, parameters);
+ KWallet::Wallet *wallet = get_wallet(wallet_name, parameters, pool);
if (wallet)
{
apr_hash_set(parameters,
@@ -242,12 +368,7 @@
return FALSE;
}
- QCoreApplication *app;
- if (! qApp)
- {
- int argc = 1;
- app = new QCoreApplication(argc, (char *[1]) {(char *) "svn"});
- }
+ INITIALIZE_APPLICATION
KCmdLineArgs::init(1,
(char *[1]) {(char *) "svn"},
@@ -262,7 +383,7 @@
QString q_password = QString::fromUtf8(password);
QString wallet_name = get_wallet_name(parameters);
QString folder = QString::fromUtf8("Subversion");
- KWallet::Wallet *wallet = get_wallet(wallet_name, parameters);
+ KWallet::Wallet *wallet = get_wallet(wallet_name, parameters, pool);
if (wallet)
{
apr_hash_set(parameters,
--- subversion/svn/main.c
+++ subversion/svn/main.c
@@ -2067,6 +2067,9 @@
pool)))
svn_handle_error2(err, stderr, TRUE, "svn: ");
+ /* svn can safely create instance of QApplication class. */
+ svn_auth_set_parameter(ab, "svn:auth:qapplication-safe", "1");
+
ctx->auth_baton = ab;
/* Set up conflict resolution callback. */
--- subversion/svnsync/main.c
+++ subversion/svnsync/main.c
@@ -1,6 +1,6 @@
/*
* ====================================================================
- * Copyright (c) 2005-2008 CollabNet. All rights reserved.
+ * Copyright (c) 2005-2009 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -2362,7 +2362,15 @@
check_cancel, NULL,
pool);
if (! err)
- err = (*subcommand->cmd_func)(os, &opt_baton, pool);
+ {
+ /* svnsync can safely create instance of QApplication class. */
+ svn_auth_set_parameter(opt_baton.source_auth_baton,
+ "svn:auth:qapplication-safe", "1");
+ svn_auth_set_parameter(opt_baton.sync_auth_baton,
+ "svn:auth:qapplication-safe", "1");
+
+ err = (*subcommand->cmd_func)(os, &opt_baton, pool);
+ }
if (err)
{
/* For argument-related problems, suggest using the 'help'

View File

@ -0,0 +1,10 @@
# The commented variables in this file are the defaults that are used
# in the init-script. You don't need to uncomment them except to
# customize them to different values.
# Options for svnserve
#SVNSERVE_OPTS="--root=/var/svn"
# User and group as which to run svnserve
#SVNSERVE_USER="svn"
#SVNSERVE_GROUP="svnusers"

View File

@ -0,0 +1,26 @@
#!/sbin/runscript
# Copyright 2004-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/files/svnserve.initd2,v 1.1 2011/08/18 09:51:23 chainsaw Exp $
depend() {
need net
}
start() {
ebegin "Starting svnserve"
# Ensure that we run from a readable working dir, and that we do not
# lock filesystems when being run from such a location.
cd /
start-stop-daemon --start --quiet --background --make-pidfile \
--pidfile /var/run/svnserve.pid --exec /usr/bin/svnserve \
--user ${SVNSERVE_USER:-apache}:${SVNSERVE_GROUP:-apache} -- \
--foreground --daemon ${SVNSERVE_OPTS:---root=/var/svn}
eend $?
}
stop() {
ebegin "Stopping svnserve"
start-stop-daemon --stop --quiet --pidfile /var/run/svnserve.pid
eend $?
}

View File

@ -0,0 +1,14 @@
service svn
{
socket_type = stream
wait = no
user = apache
group = apache
umask = 002
protocol = tcp
log_on_failure += USERID HOST
port = 3690
server = /usr/bin/svnserve
server_args = -i
disable = yes
}

View File

@ -0,0 +1,473 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-vcs/subversion/subversion-1.6.17-r7.ebuild,v 1.7 2011/11/06 16:07:18 ranger Exp $
EAPI="3"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.* *-jython"
WANT_AUTOMAKE="none"
MY_P="${P/_/-}"
inherit autotools base bash-completion db-use depend.apache elisp-common flag-o-matic java-pkg-opt-2 libtool multilib perl-module python
DESCRIPTION="Advanced version control system"
HOMEPAGE="http://subversion.apache.org/"
SRC_URI="http://subversion.tigris.org/downloads/${MY_P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
LICENSE="Subversion"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ~ppc64 s390 sh sparc x86 ~ppc-aix ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="apache2 berkdb ctypes-python debug doc +dso emacs extras gnome-keyring java kde nls perl python ruby sasl vim-syntax +webdav-neon webdav-serf"
CDEPEND=">=dev-db/sqlite-3.4
>=dev-libs/apr-1.3:1
>=dev-libs/apr-util-1.3:1
dev-libs/expat
sys-libs/zlib
berkdb? ( >=sys-libs/db-4.0.14 )
ctypes-python? ( =dev-lang/python-2* )
emacs? ( virtual/emacs )
gnome-keyring? ( dev-libs/glib:2 sys-apps/dbus gnome-base/gnome-keyring )
kde? ( sys-apps/dbus x11-libs/qt-core x11-libs/qt-dbus x11-libs/qt-gui >=kde-base/kdelibs-4 )
perl? ( dev-lang/perl )
python? ( =dev-lang/python-2* )
ruby? ( >=dev-lang/ruby-1.8.2 )
sasl? ( dev-libs/cyrus-sasl )
webdav-neon? ( >=net-libs/neon-0.28 )
webdav-serf? ( >=net-libs/serf-0.3.0 )"
RDEPEND="${CDEPEND}
apache2? ( www-servers/apache[apache2_modules_dav] )
java? ( >=virtual/jre-1.5 )
kde? ( kde-base/kwalletd )
nls? ( virtual/libintl )
perl? ( dev-perl/URI )"
DEPEND="${CDEPEND}
!!<sys-apps/sandbox-1.6
ctypes-python? ( dev-python/ctypesgen )
doc? ( app-doc/doxygen )
gnome-keyring? ( dev-util/pkgconfig )
java? ( >=virtual/jdk-1.5 )
kde? ( dev-util/pkgconfig )
nls? ( sys-devel/gettext )
webdav-neon? ( dev-util/pkgconfig )"
PATCHES=(
"${FILESDIR}/${PN}-1.6.0-disable_linking_against_unneeded_libraries.patch"
"${FILESDIR}/${PN}-1.6.2-local_library_preloading.patch"
"${FILESDIR}/${PN}-1.6.3-kwallet_window.patch"
"${FILESDIR}/${PN}-1.5.4-interix.patch"
"${FILESDIR}/${PN}-1.5.6-aix-dso.patch"
"${FILESDIR}/${PN}-1.6.3-hpux-dso.patch"
)
want_apache
pkg_setup() {
if use berkdb; then
local apu_bdb_version="$(${EPREFIX}/usr/bin/apu-1-config --includes \
| grep -Eoe '-I${EPREFIX}/usr/include/db[[:digit:]]\.[[:digit:]]' \
| sed 's:.*b::')"
einfo
if [[ -z "${SVN_BDB_VERSION}" ]]; then
if [[ -n "${apu_bdb_version}" ]]; then
SVN_BDB_VERSION="${apu_bdb_version}"
einfo "Matching db version to apr-util"
else
SVN_BDB_VERSION="$(db_ver_to_slot "$(db_findver sys-libs/db 2>/dev/null)")"
einfo "SVN_BDB_VERSION variable isn't set. You can set it to enforce using of specific version of Berkeley DB."
fi
fi
einfo "Using: Berkeley DB ${SVN_BDB_VERSION}"
einfo
if [[ -n "${apu_bdb_version}" && "${SVN_BDB_VERSION}" != "${apu_bdb_version}" ]]; then
eerror "APR-Util is linked against Berkeley DB ${apu_bdb_version}, but you are trying"
eerror "to build Subversion with support for Berkeley DB ${SVN_BDB_VERSION}."
eerror "Rebuild dev-libs/apr-util or set SVN_BDB_VERSION=\"${apu_bdb_version}\"."
eerror "Aborting to avoid possible run-time crashes."
die "Berkeley DB version mismatch"
fi
fi
depend.apache_pkg_setup
java-pkg-opt-2_pkg_setup
if use ctypes-python || use python; then
python_pkg_setup
fi
if ! use webdav-neon && ! use webdav-serf; then
ewarn "WebDAV support is disabled. You need WebDAV to"
ewarn "access repositories through the HTTP protocol."
ewarn "Consider enabling one of the following USE-flags:"
ewarn " webdav-neon webdav-serf"
echo -ne "\a"
fi
if use debug; then
append-cppflags -DSVN_DEBUG -DAP_DEBUG
fi
# Allow for custom repository locations.
SVN_REPOS_LOC="${SVN_REPOS_LOC:-${EPREFIX}/var/svn}"
}
src_prepare() {
base_src_prepare
fperms +x build/transform_libtool_scripts.sh
sed -i \
-e "s/\(BUILD_RULES=.*\) bdb-test\(.*\)/\1\2/g" \
-e "s/\(BUILD_RULES=.*\) test\(.*\)/\1\2/g" configure.ac
sed -e "/SWIG_PY_INCLUDES=/s/\$ac_cv_python_includes/\\\\\$(PYTHON_INCLUDES)/" -i build/ac-macros/swig.m4 || die "sed failed"
# this bites us in particular on Solaris
sed -i -e '1c\#!/usr/bin/env sh' build/transform_libtool_scripts.sh || \
die "/bin/sh is not POSIX shell!"
eautoconf
elibtoolize
sed -e "s/libsvn_swig_py-1\.la/libsvn_swig_py-\$(PYTHON_VERSION)-1.la/" -i build-outputs.mk || die "sed failed"
}
src_configure() {
local myconf
if use python || use perl || use ruby; then
myconf+=" --with-swig"
else
myconf+=" --without-swig"
fi
if use java; then
myconf+=" --without-junit"
fi
if use kde || use nls; then
myconf+=" --enable-nls"
else
myconf+=" --disable-nls"
fi
case ${CHOST} in
*-solaris*)
# -lintl isn't added for some reason (makes Neon check fail)
use nls && append-libs -lintl
;;
*-aix*)
# avoid recording immediate path to sharedlibs into executables
append-ldflags -Wl,-bnoipath
;;
*-interix*)
# loader crashes on the LD_PRELOADs...
myconf="${myconf} --disable-local-library-preloading"
;;
esac
econf --libdir="${EPREFIX}/usr/$(get_libdir)" \
$(use_with apache2 apxs "${APXS}") \
$(use_with berkdb berkeley-db "db.h:${EPREFIX}/usr/include/db${SVN_BDB_VERSION}::db-${SVN_BDB_VERSION}") \
$(use_with ctypes-python ctypesgen "${EPREFIX}/usr") \
$(use_enable dso runtime-module-search) \
$(use_with gnome-keyring) \
$(use_enable java javahl) \
$(use_with java jdk "${JAVA_HOME}") \
$(use_with kde kwallet) \
$(use_with sasl) \
$(use_with webdav-neon neon) \
$(use_with webdav-serf serf "${EPREFIX}/usr") \
${myconf} \
--with-apr="${EPREFIX}/usr/bin/apr-1-config" \
--with-apr-util="${EPREFIX}/usr/bin/apu-1-config" \
--disable-experimental-libtool \
--without-jikes \
--enable-local-library-preloading \
--disable-mod-activation \
--disable-neon-version-check \
--disable-static \
--with-sqlite="${EPREFIX}/usr"
}
src_compile() {
emake local-all || die "Building of core of Subversion failed"
if use ctypes-python; then
python_copy_sources subversion/bindings/ctypes-python
rm -fr subversion/bindings/ctypes-python
ctypes_python_bindings_building() {
rm -f subversion/bindings/ctypes-python
ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python
emake ctypes-python
}
python_execute_function \
--action-message 'Building of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \
--failure-message 'Building of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \
ctypes_python_bindings_building
fi
if use python; then
python_copy_sources subversion/bindings/swig/python
rm -fr subversion/bindings/swig/python
swig_python_bindings_building() {
rm -f subversion/bindings/swig/python
ln -s python-${PYTHON_ABI} subversion/bindings/swig/python
emake \
PYTHON_INCLUDES="-I${EPREFIX}$(python_get_includedir)" \
PYTHON_VERSION="$(python_get_version)" \
swig_pydir="${EPREFIX}$(python_get_sitedir)/libsvn" \
swig_pydir_extra="${EPREFIX}$(python_get_sitedir)/svn" \
swig-py
}
python_execute_function \
--action-message 'Building of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \
--failure-message 'Building of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \
swig_python_bindings_building
fi
if use perl; then
emake swig-pl || die "Building of Subversion SWIG Perl bindings failed"
fi
if use ruby; then
emake swig-rb || die "Building of Subversion SWIG Ruby bindings failed"
fi
if use java; then
emake -j1 JAVAC_FLAGS="$(java-pkg_javac-args) -encoding iso8859-1" javahl || die "Building of Subversion JavaHL library failed"
fi
if use emacs; then
elisp-compile contrib/client-side/emacs/{dsvn,psvn,vc-svn}.el doc/svn-doc.el doc/tools/svnbook.el || die "Compilation of Emacs modules failed"
fi
if use extras; then
emake contrib || die "Building of contrib failed"
emake tools || die "Building of tools failed"
fi
if use doc; then
doxygen doc/doxygen.conf || die "Building of Subversion HTML documentation failed"
if use java; then
emake doc-javahl || die "Building of Subversion JavaHL library HTML documentation failed"
fi
fi
}
src_install() {
emake -j1 DESTDIR="${D}" local-install || die "Installation of core of Subversion failed"
if use ctypes-python; then
ctypes_python_bindings_installation() {
rm -f subversion/bindings/ctypes-python
ln -s ctypes-python-${PYTHON_ABI} subversion/bindings/ctypes-python
emake DESTDIR="${D}" install-ctypes-python
}
python_execute_function \
--action-message 'Installation of Subversion Ctypes Python bindings with $(python_get_implementation) $(python_get_version)' \
--failure-message 'Installation of Subversion Ctypes Python bindings failed with $(python_get_implementation) $(python_get_version)' \
ctypes_python_bindings_installation
fi
if use python; then
swig_python_bindings_installation() {
rm -f subversion/bindings/swig/python
ln -s python-${PYTHON_ABI} subversion/bindings/swig/python
emake \
DESTDIR="${D}" \
PYTHON_VERSION="$(python_get_version)" \
swig_pydir="${EPREFIX}$(python_get_sitedir)/libsvn" \
swig_pydir_extra="${EPREFIX}$(python_get_sitedir)/svn" \
install-swig-py
}
python_execute_function \
--action-message 'Installation of Subversion SWIG Python bindings with $(python_get_implementation) $(python_get_version)' \
--failure-message 'Installation of Subversion SWIG Python bindings failed with $(python_get_implementation) $(python_get_version)' \
swig_python_bindings_installation
fi
if use ctypes-python || use python; then
python_clean_installation_image -q
fi
if use perl; then
emake DESTDIR="${D}" INSTALLDIRS="vendor" install-swig-pl || die "Installation of Subversion SWIG Perl bindings failed"
fixlocalpod
find "${ED}" "(" -name .packlist -o -name "*.bs" ")" -print0 | xargs -0 rm -fr
fi
if use ruby; then
emake DESTDIR="${D}" install-swig-rb || die "Installation of Subversion SWIG Ruby bindings failed"
fi
if use java; then
emake DESTDIR="${D}" install-javahl || die "Installation of Subversion JavaHL library failed"
java-pkg_regso "${ED}"usr/$(get_libdir)/libsvnjavahl*.so
java-pkg_dojar "${ED}"usr/$(get_libdir)/svn-javahl/svn-javahl.jar
rm -fr "${ED}"usr/$(get_libdir)/svn-javahl/*.jar
fi
# Install Apache module configuration.
if use apache2; then
keepdir "${APACHE_MODULES_CONFDIR}"
insinto "${APACHE_MODULES_CONFDIR}"
doins "${FILESDIR}/47_mod_dav_svn.conf"
fi
# Install Bash Completion, bug 43179.
dobashcompletion tools/client-side/bash_completion subversion
rm -f tools/client-side/bash_completion
# Install hot backup script, bug 54304.
newbin tools/backup/hot-backup.py svn-hot-backup
rm -fr tools/backup
# Install svn_load_dirs.pl.
if use perl; then
dobin contrib/client-side/svn_load_dirs/svn_load_dirs.pl
fi
rm -f contrib/client-side/svn_load_dirs/svn_load_dirs.pl
# Install svnserve init-script and xinet.d snippet, bug 43245.
newinitd "${FILESDIR}"/svnserve.initd2 svnserve
newconfd "${FILESDIR}"/svnserve.confd svnserve
insinto /etc/xinetd.d
newins "${FILESDIR}"/svnserve.xinetd svnserve
# Install documentation.
dodoc CHANGES COMMITTERS README
dodoc tools/xslt/svnindex.{css,xsl}
rm -fr tools/xslt
# Install Vim syntax files.
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax
doins contrib/client-side/vim/svn.vim
fi
rm -f contrib/client-side/vim/svn.vim
# Install Emacs Lisps.
if use emacs; then
elisp-install ${PN} contrib/client-side/emacs/{dsvn,psvn}.{el,elc} doc/svn-doc.{el,elc} doc/tools/svnbook.{el,elc} || die "Installation of Emacs modules failed"
elisp-install ${PN}/compat contrib/client-side/emacs/vc-svn.{el,elc} || die "Installation of Emacs modules failed"
touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
elisp-site-file-install "${FILESDIR}/70svn-gentoo.el" || die "Installation of Emacs site-init file failed"
fi
rm -fr contrib/client-side/emacs
# Install extra files.
if use extras; then
cat << EOF > 80subversion-extras
PATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
ROOTPATH="${EPREFIX}/usr/$(get_libdir)/subversion/bin"
EOF
doenvd 80subversion-extras
emake DESTDIR="${D}" contribdir="/usr/$(get_libdir)/subversion/bin" install-contrib || die "Installation of contrib failed"
emake DESTDIR="${D}" toolsdir="/usr/$(get_libdir)/subversion/bin" install-tools || die "Installation of tools failed"
find contrib tools "(" -name "*.bat" -o -name "*.in" -o -name ".libs" ")" -print0 | xargs -0 rm -fr
rm -fr contrib/client-side/svn-push
rm -fr contrib/server-side/svnstsw
rm -fr tools/client-side/svnmucc
rm -fr tools/server-side/{svn-populate-node-origins-index,svnauthz-validate}*
rm -fr tools/{buildbot,dev,diff,po}
insinto /usr/share/${PN}
doins -r contrib tools
fi
if use doc; then
dohtml -r doc/doxygen/html/* || die "Installation of Subversion HTML documentation failed"
dodoc notes/*
if use java; then
java-pkg_dojavadoc doc/javadoc
fi
fi
find "${D}" '(' -name '*.la' ')' -print0 | xargs -0 rm -f
}
pkg_preinst() {
# Compare versions of Berkeley DB, bug 122877.
if use berkdb && [[ -f "${EROOT}usr/bin/svn" ]]; then
OLD_BDB_VERSION="$(scanelf -nq "${EROOT}usr/$(get_libdir)/libsvn_subr-1.so.0" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
NEW_BDB_VERSION="$(scanelf -nq "${ED}usr/$(get_libdir)/libsvn_subr-1.so.0" | grep -Eo "libdb-[[:digit:]]+\.[[:digit:]]+" | sed -e "s/libdb-\(.*\)/\1/")"
if [[ "${OLD_BDB_VERSION}" != "${NEW_BDB_VERSION}" ]]; then
CHANGED_BDB_VERSION="1"
fi
fi
}
pkg_postinst() {
use emacs && elisp-site-regen
use perl && perl-module_pkg_postinst
if use ctypes-python; then
python_mod_optimize csvn
fi
if use python; then
python_mod_optimize libsvn svn
fi
if [[ -n "${CHANGED_BDB_VERSION}" ]]; then
ewarn "You upgraded from an older version of Berkeley DB and may experience"
ewarn "problems with your repository. Run the following commands as root to fix it:"
ewarn " db4_recover -h ${SVN_REPOS_LOC}/repos"
ewarn " chown -Rf apache:apache ${SVN_REPOS_LOC}/repos"
fi
ewarn "If you run subversion as a daemon, you will need to restart it to avoid module mismatches."
}
pkg_postrm() {
use emacs && elisp-site-regen
use perl && perl-module_pkg_postrm
if use ctypes-python; then
python_mod_cleanup csvn
fi
if use python; then
python_mod_cleanup libsvn svn
fi
}
pkg_config() {
# Remember: Don't use ${EROOT}${SVN_REPOS_LOC} since ${SVN_REPOS_LOC}
# already has EPREFIX in it
einfo "Initializing the database in ${ROOT}${SVN_REPOS_LOC}..."
if [[ -e "${ROOT}${SVN_REPOS_LOC}/repos" ]]; then
echo "A Subversion repository already exists and I will not overwrite it."
echo "Delete \"${ROOT}${SVN_REPOS_LOC}/repos\" first if you're sure you want to have a clean version."
else
mkdir -p "${ROOT}${SVN_REPOS_LOC}/conf"
einfo "Populating repository directory..."
# Create initial repository.
"${EROOT}usr/bin/svnadmin" create "${ROOT}${SVN_REPOS_LOC}/repos"
einfo "Setting repository permissions..."
SVNSERVE_USER="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_USER}")"
SVNSERVE_GROUP="$(. "${EROOT}etc/conf.d/svnserve"; echo "${SVNSERVE_GROUP}")"
if use apache2; then
[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="apache"
[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="apache"
else
[[ -z "${SVNSERVE_USER}" ]] && SVNSERVE_USER="svn"
[[ -z "${SVNSERVE_GROUP}" ]] && SVNSERVE_GROUP="svnusers"
enewgroup "${SVNSERVE_GROUP}"
enewuser "${SVNSERVE_USER}" -1 -1 "${SVN_REPOS_LOC}" "${SVNSERVE_GROUP}"
fi
chown -Rf "${SVNSERVE_USER}:${SVNSERVE_GROUP}" "${ROOT}${SVN_REPOS_LOC}/repos"
chmod -Rf go-rwx "${ROOT}${SVN_REPOS_LOC}/conf"
chmod -Rf o-rwx "${ROOT}${SVN_REPOS_LOC}/repos"
fi
}

View File

@ -0,0 +1,108 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-libs/neon/neon-0.29.6.ebuild,v 1.8 2011/07/20 22:14:39 halcy0n Exp $
EAPI="3"
inherit autotools libtool versionator
DESCRIPTION="HTTP and WebDAV client library"
HOMEPAGE="http://www.webdav.org/neon/"
SRC_URI="http://www.webdav.org/neon/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="doc expat gnutls kerberos libproxy nls pkcs11 ssl static-libs zlib"
IUSE_LINGUAS="cs de fr ja nn pl ru tr zh_CN"
for lingua in ${IUSE_LINGUAS}; do
IUSE+=" linguas_${lingua}"
done
unset lingua
RESTRICT="test"
RDEPEND="expat? ( dev-libs/expat )
!expat? ( dev-libs/libxml2 )
gnutls? (
app-misc/ca-certificates
>=net-libs/gnutls-2.0
pkcs11? ( dev-libs/pakchois )
)
!gnutls? ( ssl? (
>=dev-libs/openssl-0.9.6f
pkcs11? ( dev-libs/pakchois )
) )
kerberos? ( virtual/krb5 )
libproxy? ( net-libs/libproxy )
nls? ( virtual/libintl )
zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}
dev-util/pkgconfig"
src_prepare() {
local lingua linguas
for lingua in ${IUSE_LINGUAS}; do
use linguas_${lingua} && linguas+=" ${lingua}"
done
sed -i -e "s/ALL_LINGUAS=.*/ALL_LINGUAS=\"${linguas}\"/g" configure.in
AT_M4DIR="macros" eautoreconf
elibtoolize
}
src_configure() {
local myconf
if has_version sys-libs/glibc; then
einfo "Enabling SSL library thread-safety using POSIX threads..."
myconf+=" --enable-threadsafe-ssl=posix"
fi
if use expat; then
myconf+=" --with-expat"
else
myconf+=" --with-libxml2"
fi
if use gnutls; then
myconf+=" --with-ssl=gnutls --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
elif use ssl; then
myconf+=" --with-ssl=openssl"
fi
econf \
--enable-shared \
$(use_with kerberos gssapi) \
$(use_with libproxy) \
$(use_enable nls) \
$(use_with pkcs11 pakchois) \
$(use_enable static-libs static) \
$(use_with zlib) \
${myconf}
}
src_install() {
emake DESTDIR="${D}" install-lib install-headers install-config install-nls || die "emake install failed"
find "${ED}" -name "*.la" -print0 | xargs -0 rm -f
if use doc; then
emake DESTDIR="${D}" install-docs || die "emake install-docs failed"
fi
dodoc AUTHORS BUGS NEWS README THANKS TODO
doman doc/man/*.[1-8]
}
pkg_postinst() {
ewarn "Neon has a policy of breaking API across minor versions, this means"
ewarn "that any package that links against Neon may be broken after"
ewarn "updating. They will remain broken until they are ported to the"
ewarn "new API. You can downgrade Neon to the previous version by doing:"
ewarn
ewarn " emerge --oneshot '<${CATEGORY}/${PN}-$(get_version_component_range 1-2 ${PV})'"
ewarn
ewarn "You may also have to downgrade any package that has not been"
ewarn "ported to the new API yet."
}