Hello Peter! On Friday 06 February 2009 Peter Kruse wrote: > On Fri, Feb 6, 2009 at 2:17 PM, Philipp Marek <[email protected]> wrote: > >> 1. src/config.h needs > >> #define NAME_MAX (FILENAME_MAX) > >> that has been reported before but is not > >> included in the source distribution > > > > This should be solved by an #ifndef. > ok, that would be great. Done in r2149. http://fsvs.tigris.org/source/browse/fsvs/trunk/fsvs/src/config.h.in?r1=2149&r2=2148&pathrev=2149
> >> 2. Solaris does not have strsep() so I had > >> to include a replacement, as mentioned in > >> > >> http://www.winehq.org/pipermail/wine-patches/2001-November/001322.html > > > > Does Solaris have something similar? That's used only in a single place, > > and could maybe replaced with something else. > > > > Or could you extend configure.in with a test, and if strsep() is not > > found we can include it (eg. in helper.c): > > #ifndef HAVE_STRSEP > > char* strsep(char** str, const char* delims) > > ... > > #endif > > the function you find in the above URL seems to work, maybe you could > just use that? Wine is LGPL, glibc too ... is that compatible? Does Solaris provide anything similar? > >> 3. the Makefile does not use $(DESTDIR) but > >> that is required for packaging > > > > Could you elaborate a bit, and perhaps send a patch? > > if you want to package fsvs, you need to temporarily install > it in a directory (normally as non-root). All files found in > that directory will be included in the package. Usually > you can accomplish this by running > make DESTDIR=/my/package/dir install > then the files will be installed as: > > /my/package/dir/etc/fsvs > /my/package/dir/var/spool/fsvs > /my/package/dir/usr/bin/fsvs > > so you only have to prepend $(DESTDIR) to the destination directories like > this: > > for d in /etc/fsvs /var/spool/fsvs $(bindir) ; do test -d > $(DESTDIR)$$d || mkdir -p $(DESTDIR)$$d; done > cp $(DEST) $(DESTDIR)$(bindir) Well, the current configure warns config.status: WARNING: src/Makefile.in seems to ignore the --datarootdir setting Maybe if that's fixed you could just use ./configure --prefix=$DESTDIR or something like that? > >> 4. "make install" uses "cp -a" but "-a" > >> is no option to "cp" on Solaris > > > > Could you send me a patch for configure.in and Makefile.in? > > unfortunately I'm not that familiar with that autoconf stuff, but > cp could probably be replaced with install(1), although I'm > not 100% sure that the usage is the same on all platforms. > OTOH a basic call like `install -m 0755' should work. Patch, please? > >> 5. in src/options.c replace this: > >> .name="softroot", .cp_val=NULL, .parse=opt___normalized_path, > >> with that: > >> .name="softroot", .cp_val="", .parse=opt___normalized_path, > >> otherwise fsvs will dump core on initialization > > > > That I can't really explain ... Where did it crash? And why? > > Could you send me the last few lines (privately, if you like) of > > a "--enable-debug" configured build, fsvs started with "-d"? > > I attach a file where I have used > .name="softroot", .cp_val="/", .parse=opt___normalized_path, > and ran `fsvs -d commit -m initial' > > and where I left it as > .name="softroot", .cp_val=NULL, .parse=opt___normalized_path, > and ran 'fsvs -d help' but that backtrace is not very long. > I guess because fsvs does not come very far. strlen() is > call with a NULL argument that causes the segmentation fault > in waa__init(): > > setenv(opt__variable_from_option(OPT__SOFTROOT), > opt__get_string(OPT__SOFTROOT), 1); > > and in opt__get_string() the reference to > opt__list[which].cp_val; > causes the segmentation violation. When I run > src/fsvs -o softroot=./ help > the help is displayed, but I'm not sure if other commands will work like > this. Ok, that seems to be some Solaris-specific behaviour for setenv(). Does r2150 work for you? http://fsvs.tigris.org/source/browse/fsvs/trunk/fsvs/src/waa.c?r1=2150&r2=2149&pathrev=2150 > > But the rest doesn't work, still? > > I forgot to mention that configure mentions: > > LIBS libraries to pass to the linker, e.g. -l<library> > > but the Makefile uses LDLIBS. And under Solaris these libraries > need to be explicitely added: "-lsocket -lnsl -laprutil-1 -lapr-1" Sigh ... I'd hoped that autoconf would do that for me. Can you send me the output of $ grep uname config.log so that I can special-code that for Solaris? > But some things work, I can add a single file to a repository > but it dumps core when trying to add a directory. > > > Thank you for your feedback (and for your help, I hope ;-). > > thank you for your reply. For now I'm off for the weekend, and > can work on this issue on thursday and friday next week. Ok. Please send me the output of "fsvs ci -mX -d" for the failing commit of a directory, and the gcc version. Thank you! Happy weekend! Regards, Phil -- Versioning your /etc, /home or even your whole installation? Try fsvs (fsvs.tigris.org)!
