Hello...
I've just won fsvs on Solaris. At first it compiled and worked quite
good, but core dumped on Door devices. /etc contains several doors, so I
couldn't put it in repository... However, I changed this in src/helper.c
(treat doors as sockets and fifos).
The complete Solaris patch (tested on OpenSolaris-b130) is attached.
Configure string is the following:
CFLAGS=-I /usr/apr/1.3/include -I /usr/apr-util/1.3/include -I
/usr/include/pcre LDFLAGS=-L /usr/apr/1.3/lib -L /usr/apr-util/1.3/lib
CPATH=/usr/include/pcre ./configure --with-svnlib=/usr/lib/svn/
--prefix=/usr/local --with-aprlib=/usr/apr-util/1.3/lib
--with-svninc=/usr/include/svn/ --enable-dev-fake
fsvs commit,diff -v,rollback and update works.
It would be cool for fsvs to support ZFS ACLs :)
One more question. Some FSVS data is stored in /etc. So if we have 2
dirs under fsvs control, e.g., /home and /etc, what will be with /home
changes on /etc revert ? Will they be accessible in any way in the
following scenario?
cd /etc
fsvs url file:///var/svn/trunk/etc
fsvs commit -o mkdir_base=yes
cd /home
fsvs url file:///var/svn/trunk/home
fsvs commit -o mkdir_base=yes
cd /etc
fsvs revert
How can I access /home history now when /etc/fsvs rolled back?
--
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of South Federal University
------------------------------------------------------
http://fsvs.tigris.org/ds/viewMessage.do?dsForumId=3928&dsMessageId=2436296
To unsubscribe from this discussion, e-mail:
[[email protected]].
--- fsvs-1.2.1/configure.in 2009-09-24 12:22:45.000000000 +0400
+++ fsvs-1.2.1_patched/configure.in 2009-12-29 12:16:35.025272313 +0300
@@ -68,7 +68,7 @@
# We allow from 3 characters on, although it might not make
much
# sense.
WAA_WC_MD5_CHARS=`perl -e '$_=0+shift; print $_+0 if $_==0 ||
($_>3 && $_<=16)' "$withval"`
- if [[ "$WAA_WC_MD5_CHARS" == "" ]]
+ if [[ "$WAA_WC_MD5_CHARS" = "" ]]
then
AC_MSG_ERROR([[The given value for --with-waa_md5 is
invalid.]])
fi
@@ -222,7 +222,7 @@
fi
AC_SUBST(HAVE_O_DIRECTORY)
-AC_COMPILE_IFELSE(
+AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[ #include <stdio.h> ]],
[[ int main(int argc, char *args[])
@@ -268,7 +268,7 @@
[])
AC_SUBST(ENABLE_RELEASE)
-if [[ "$ENABLE_RELEASE$ENABLE_DEBUG" == "11" ]]
+if [[ "$ENABLE_RELEASE$ENABLE_DEBUG" = "11" ]]
then
AC_MSG_ERROR([[--enable-debug and --enable-release are incompatibel.
Use one or the other.]])
@@ -292,7 +292,7 @@
AC_SUBST(HAS_FASTCALL)
# Only i386 (32bit) has fastcall.
-if [[ `uname -m` == i?86 ]]
+if [[ `uname -m` = i?86 ]]
then
HAS_FASTCALL=1
fi
@@ -300,7 +300,7 @@
AC_TYPE_UINT32_T
AC_SUBST(HAVE_UINT32_T)
# See config.h for an explanation.
-if [[ "$ac_cv_c_uint32_t" == "yes" ]]
+if [[ "$ac_cv_c_uint32_t" = "yes" ]]
then
ac_cv_c_uint32_t=uint32_t
fi
@@ -308,7 +308,7 @@
AC_TYPE_UINT64_T
AC_SUBST(HAVE_UINT64_T)
-if [[ "$ac_cv_c_uint64_t" == "yes" ]]
+if [[ "$ac_cv_c_uint64_t" = "yes" ]]
then
ac_cv_c_uint64_t=uint64_t
fi
@@ -335,8 +335,7 @@
# Cause a recompile
touch src/config.h
-if [ [[ "$ac_cv_header_linux_kdev_t_h" == "no" &&
- "x$ENABLE_DEV_FAKE" == "x" ]] ]
+if [ [ "$ac_cv_header_linux_kdev_t_h" = "no" -a "x$ENABLE_DEV_FAKE" = "x" ] ]
then
AC_MSG_WARN([
* MAJOR(), MINOR() and MAKEDEV() definitions not found.
--- fsvs-1.2.1/src/est_ops.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1_patched/src/est_ops.c 2009-12-28 13:02:00.043453670 +0300
@@ -1715,7 +1715,7 @@
/* Read data. */
len_read=special_len;
STOPIF( apr_file_read( a_stream, special_data, &len_read), NULL);
- STOPIF_CODE_ERR( len_read != special_len, ENODATA,
+ STOPIF_CODE_ERR( len_read != special_len, APR_EOF,
"Reading was cut off at byte %llu of %llu",
(t_ull)len_read, (t_ull)special_len);
special_data[len_read]=0;
--- fsvs-1.2.1/src/status.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1_patched/src/status.c 2009-12-28 13:04:08.633082993 +0300
@@ -786,8 +786,8 @@
STOPIF_CODE_EPIPE( printf(" Device nr.:\t%llu:%llu\n",
(t_ull)MAJOR(sts->st.rdev),
(t_ull)MINOR(sts->st.rdev)), NULL);
- }
#endif
+ }
else
STOPIF_CODE_EPIPE( printf(" Size: \t%llu\n",
(t_ull)sts->st.size), NULL);
diff -ru fsvs-1.2.1/src/checksum.h fsvs-1.2.1.patched/src/checksum.h
--- fsvs-1.2.1/src/checksum.h 2009-01-19 10:29:41.000000000 +0300
+++ fsvs-1.2.1.patched/src/checksum.h 2010-01-11 13:28:59.004137644 +0300
@@ -11,7 +11,7 @@
#include "global.h"
#include "interface.h"
-#include <subversion-1/svn_delta.h>
+#include <svn_delta.h>
/** \file
* CRC, manber function header file. */
diff -ru fsvs-1.2.1/src/commit.c fsvs-1.2.1.patched/src/commit.c
--- fsvs-1.2.1/src/commit.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/commit.c 2010-01-11 13:28:59.176731969 +0300
@@ -69,11 +69,11 @@
#include <apr_pools.h>
#include <apr_user.h>
#include <apr_file_io.h>
-#include <subversion-1/svn_delta.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_error.h>
-#include <subversion-1/svn_string.h>
-#include <subversion-1/svn_time.h>
+#include <svn_delta.h>
+#include <svn_ra.h>
+#include <svn_error.h>
+#include <svn_string.h>
+#include <svn_time.h>
#include <sys/types.h>
#include <sys/mman.h>
diff -ru fsvs-1.2.1/src/commit.h fsvs-1.2.1.patched/src/commit.h
--- fsvs-1.2.1/src/commit.h 2008-02-19 08:57:01.000000000 +0300
+++ fsvs-1.2.1.patched/src/commit.h 2010-01-11 13:28:58.978569371 +0300
@@ -9,7 +9,7 @@
#ifndef __COMMIT_H__
#define __COMMIT_H__
-#include <subversion-1/svn_delta.h>
+#include <svn_delta.h>
#include "actions.h"
diff -ru fsvs-1.2.1/src/export.c fsvs-1.2.1.patched/src/export.c
--- fsvs-1.2.1/src/export.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/export.c 2010-01-11 13:28:59.135906715 +0300
@@ -14,9 +14,9 @@
* a WAA area.
* */
-#include <subversion-1/svn_delta.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_error.h>
+#include <svn_delta.h>
+#include <svn_ra.h>
+#include <svn_error.h>
#include "export.h"
#include "helper.h"
diff -ru fsvs-1.2.1/src/fsvs.c fsvs-1.2.1.patched/src/fsvs.c
--- fsvs-1.2.1/src/fsvs.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/fsvs.c 2010-01-11 13:28:58.958689284 +0300
@@ -18,7 +18,7 @@
#include <apr_pools.h>
-#include <subversion-1/svn_error.h>
+#include <svn_error.h>
#include "global.h"
#include "interface.h"
diff -ru fsvs-1.2.1/src/global.h fsvs-1.2.1.patched/src/global.h
--- fsvs-1.2.1/src/global.h 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/global.h 2010-01-11 13:28:59.211241833 +0300
@@ -19,8 +19,10 @@
#include <sys/types.h>
#include <apr_md5.h>
#include <apr_file_io.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_string.h>
+//#include <subversion-1/svn_ra.h>
+#include <svn_ra.h>
+//#include <subversion-1/svn_string.h>
+#include <svn_string.h>
#include <pcre.h>
diff -ru fsvs-1.2.1/src/hash_ops.h fsvs-1.2.1.patched/src/hash_ops.h
--- fsvs-1.2.1/src/hash_ops.h 2008-05-16 08:45:04.000000000 +0400
+++ fsvs-1.2.1.patched/src/hash_ops.h 2010-01-11 13:28:59.039092962 +0300
@@ -10,7 +10,8 @@
#define __HASH_OPS_H
#include "global.h"
-#include <db.h>
+//#include <db.h>
+#include <gdbm.h>
/** \file
* Hash operations header file.
diff -ru fsvs-1.2.1/src/helper.c fsvs-1.2.1.patched/src/helper.c
--- fsvs-1.2.1/src/helper.c 2009-08-21 22:02:29.000000000 +0400
+++ fsvs-1.2.1.patched/src/helper.c 2010-01-11 13:28:59.034112804 +0300
@@ -19,7 +19,7 @@
#include <pwd.h>
#include <apr_file_io.h>
#include <apr_md5.h>
-#include <subversion-1/svn_config.h>
+#include <svn_config.h>
#include "global.h"
#include "waa.h"
diff -ru fsvs-1.2.1/src/log.c fsvs-1.2.1.patched/src/log.c
--- fsvs-1.2.1/src/log.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/log.c 2010-01-11 13:28:59.039911995 +0300
@@ -45,10 +45,10 @@
#include <apr_pools.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_error.h>
-#include <subversion-1/svn_string.h>
-#include <subversion-1/svn_time.h>
+#include <svn_ra.h>
+#include <svn_error.h>
+#include <svn_string.h>
+#include <svn_time.h>
#include <sys/types.h>
#include <unistd.h>
diff -ru fsvs-1.2.1/src/props.c fsvs-1.2.1.patched/src/props.c
--- fsvs-1.2.1/src/props.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/props.c 2010-01-11 13:28:59.220024195 +0300
@@ -24,7 +24,7 @@
#include <unistd.h>
#include <gdbm.h>
#include <fcntl.h>
-#include <subversion-1/svn_props.h>
+#include <svn_props.h>
#include "global.h"
#include "waa.h"
diff -ru fsvs-1.2.1/src/racallback.c fsvs-1.2.1.patched/src/racallback.c
--- fsvs-1.2.1/src/racallback.c 2009-08-20 22:07:53.000000000 +0400
+++ fsvs-1.2.1.patched/src/racallback.c 2010-01-11 13:28:59.026560506 +0300
@@ -15,10 +15,10 @@
#include <time.h>
#include <unistd.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_auth.h>
-#include <subversion-1/svn_client.h>
-#include <subversion-1/svn_cmdline.h>
+#include <svn_ra.h>
+#include <svn_auth.h>
+#include <svn_client.h>
+#include <svn_cmdline.h>
diff -ru fsvs-1.2.1/src/racallback.h fsvs-1.2.1.patched/src/racallback.h
--- fsvs-1.2.1/src/racallback.h 2009-06-10 10:22:59.000000000 +0400
+++ fsvs-1.2.1.patched/src/racallback.h 2010-01-11 13:28:59.159917534 +0300
@@ -9,7 +9,7 @@
#ifndef __RACALLBACK_H__
#define __RACALLBACK_H__
-#include <subversion-1/svn_ra.h>
+#include <svn_ra.h>
/** \file
* The cb__record_changes() and other callback functions header file. */
diff -ru fsvs-1.2.1/src/revert.c fsvs-1.2.1.patched/src/revert.c
--- fsvs-1.2.1/src/revert.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/revert.c 2010-01-11 13:28:58.947262954 +0300
@@ -10,8 +10,8 @@
#include <fcntl.h>
#include <time.h>
-#include <subversion-1/svn_delta.h>
-#include <subversion-1/svn_ra.h>
+#include <svn_delta.h>
+#include <svn_ra.h>
#include "revert.h"
#include "waa.h"
diff -ru fsvs-1.2.1/src/sync.c fsvs-1.2.1.patched/src/sync.c
--- fsvs-1.2.1/src/sync.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/sync.c 2010-01-11 13:28:59.163945437 +0300
@@ -65,11 +65,11 @@
#include <apr_pools.h>
#include <apr_user.h>
#include <apr_file_io.h>
-#include <subversion-1/svn_delta.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_error.h>
-#include <subversion-1/svn_string.h>
-#include <subversion-1/svn_time.h>
+#include <svn_delta.h>
+#include <svn_ra.h>
+#include <svn_error.h>
+#include <svn_string.h>
+#include <svn_time.h>
#include <sys/types.h>
#include <unistd.h>
diff -ru fsvs-1.2.1/src/update.c fsvs-1.2.1.patched/src/update.c
--- fsvs-1.2.1/src/update.c 2009-10-12 23:05:54.000000000 +0400
+++ fsvs-1.2.1.patched/src/update.c 2010-01-11 13:28:59.087366536 +0300
@@ -57,11 +57,11 @@
#include <apr_pools.h>
#include <apr_user.h>
#include <apr_file_io.h>
-#include <subversion-1/svn_delta.h>
-#include <subversion-1/svn_ra.h>
-#include <subversion-1/svn_error.h>
-#include <subversion-1/svn_string.h>
-#include <subversion-1/svn_time.h>
+#include <svn_delta.h>
+#include <svn_ra.h>
+#include <svn_error.h>
+#include <svn_string.h>
+#include <svn_time.h>
#include <sys/types.h>
#include <unistd.h>
diff -ru fsvs-1.2.1/src/waa.c fsvs-1.2.1.patched/src/waa.c
--- fsvs-1.2.1/src/waa.c 2009-09-23 09:37:40.000000000 +0400
+++ fsvs-1.2.1.patched/src/waa.c 2010-01-11 13:28:58.940216412 +0300
@@ -12,7 +12,7 @@
#include <errno.h>
#include <apr_pools.h>
#include <apr_md5.h>
-#include <subversion-1/svn_md5.h>
+#include <svn_md5.h>
#include <ctype.h>
#include <unistd.h>
#include <strings.h>
--- fsvs-1.2.1/src/helper.c 2010-01-11 17:14:13.896243338 +0300
+++ fsvs-1.2.1.patched/src/helper.c 2010-01-11 17:14:39.878913762 +0300
@@ -358,7 +358,7 @@
/* We should return -ENOENT here, so that higher levels can
give
* different error messages ... it might be confusing if "fsvs
info
* socket" denies some existing entry. */
- if (S_ISFIFO(st64.st_mode) || S_ISSOCK(st64.st_mode))
+ if (S_ISFIFO(st64.st_mode) || S_ISSOCK(st64.st_mode)||
S_ISDOOR(st64.st_mode))
{
st64.st_mode = (st64.st_mode & ~S_IFMT) | S_IFGARBAGE;
status=-ENOENT;