You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Matt England <me...@mengland.net> on 2005/09/26 15:22:20 UTC

Minimal build instructions for svnserver & fsfs only?

Hello,

I have a Subversion 1.2.0-RC1 server running on my Redhat9 system.  I run 
only svnserve- and fsfs-based capabilities.  I want zero 
dependencies/interaction with Apache or BerkleyDB; in short, I like my 
Subversion running with minimally "dependencies."  My current configuration 
calls for lots of svn+ssh: client looks (and WebSVN stuff)...and that's 
it.  Nothing else.

Unfortunately, I forgot to write down my build process to get my 1.2.0-RC1 
to build like this.  I'm looking to document the procedure.

I am presuming that I can build such a Subversion binary set from a 1.2.3 
source tarball without little if any dependencies on Apache, apr, neon, 
bdb, dav, or any of the similar stuff outside of the extracted 
subversion-1.2.3 directory?

Also, how can I force autogen.sh or configure to make build files that only 
allow non-Apache and non-bdb stuff?

Here's the process as I see it right now:

1) extract the tarball
2) cd into subversion-x.y.z
3) sh ./autogen.sh
4) ./configure
5) make
6) make check
7) make install

Prior to executing this, delete any /usr/local/lib/libsvn* 
files.  Presumably with the "minimal" builds, I won't need to delete 
anything else, correct?

The problem with the above procedure for 1.2.3: the ./configure takes 
**forever**.  This leads me to suspect that there are build processes for 
other things (apr, Apache, dav, bdb, whatever) going on __that I 
specifically do not want__.

So...I author this email.

Any tips, guidance?

Thanks for any help,
-Matt


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Minimal build instructions for svnserver & fsfs only?

Posted by Matt England <me...@mengland.net>.
Summary:

Do I need the --with-apr and --with-apr-util switches?

Details:

Ok, I'm getting closer, but now I'm getting an error with my ./configure line.

First the procedure:

1) extract the tarball for subversion-x.y.z
2) cd into subversion-x.y.z
3) ./configure --without-berkeley-db --with-apr=/usr --with-apr-util=/usr 
--prefix=<prefix>
4) make
5) make check
6) delete <prefix>/lib/libsvn*
7) make install

(Berkeley now spelled correctly. :)

Details at the end of this email.  It complains about the APR config:

"
configure: Apache Portable Runtime (APR) library configuration
checking for APR... configure: error: the --with-apr parameter is 
incorrect. It must specify an install prefix, a build directory, or an 
apr-config file.
"

My guess is there is some source dependency for this apr stuff...and I 
don't have the src rpms install for apr nor apr-util...but I'm not 
sure.  /usr/include/httpd/apr* stuff exists...but I'm not sure what that means.

In any case, is there any reason why I can't just use the apr and apr-util 
dirs in the my subversion source extracted tarball?  Does this make the 
params "--with-arp=. --with-apr-util=."  ...or do I simply not provide the 
params and it defaults to the stuff in the subversion tarball extract?  I 
presume the latter and will run it this way...but it's hard to tell via the 
cmdline output, and so I thought I'd double check here.

-Matt


------------------------ install cmdline details as promised 
---------------------------

mengland@example 5:08pm [...builds/subversion-1.2.3] 19> ./configure 
--without-berkeley-db --with-apr=/usr --with-apr-util=/usr --prefix=/usr/local
configure: Configuring Subversion 1.2.3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
configure: creating config.nice
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking whether ln -s works... yes
configure: Apache Portable Runtime (APR) library configuration
checking for APR... configure: error: the --with-apr parameter is 
incorrect. It must specify an install prefix, a build directory, or an 
apr-config file.
mengland@example 5:09pm [...builds/subversion-1.2.3] 20> pwd
/home/builds/subversion-1.2.3
mengland@example 5:09pm [...builds/subversion-1.2.3] 21> uname -a
Linux example.com 2.4.20-021stab028.17.777-enterprise #1 SMP Tue Jul 19 
19:31:27 MSD 2005 i686 i686 i386 GNU/Linux
mengland@example 5:09pm [...builds/subversion-1.2.3] 22> date
Mon Sep 26 17:09:50 CDT 2005
mengland@example 5:09pm [...builds/subversion-1.2.3] 23>
mengland@example 5:10pm [...builds/subversion-1.2.3] 23> ls -ld 
/usr/lib/libapr*
    1 lrwxrwxrwx    1 root     root           15 Oct 22  2004 
/usr/lib/libapr.so -> libapr.so.0.0.0*
    1 lrwxrwxrwx    1 root     root           15 Aug 31  2004 
/usr/lib/libapr.so.0 -> libapr.so.0.0.0*
1223 -rwxr-xr-x    1 root     root      1247912 Jun  4  2004 
/usr/lib/libapr.so.0.0.0*
    1 lrwxrwxrwx    1 root     root           19 Oct 22  2004 
/usr/lib/libaprutil.so -> libaprutil.so.0.0.0*
    1 lrwxrwxrwx    1 root     root           19 Aug 31  2004 
/usr/lib/libaprutil.so.0 -> libaprutil.so.0.0.0*
  682 -rwxr-xr-x    1 root     root       694434 Jun  4  2004 
/usr/lib/libaprutil.so.0.0.0*
mengland@example 5:10pm [...builds/subversion-1.2.3] 24>
mengland@biz2tek 5:32pm [/usr/include] 36> date
Mon Sep 26 17:32:42 CDT 2005
mengland@biz2tek 5:32pm [/usr/include] 37> pwd
/usr/include
mengland@biz2tek 5:32pm [/usr/include] 38> find . -iname apr.h
./httpd/apr.h
mengland@biz2tek 5:32pm [/usr/include] 39> ls httpd
total 1233
    1 ap_compat.h            5 apr_optional.h           5 http_main.h
   12 ap_config.h            6 apr_optional_hooks.h    29 http_protocol.h
    6 ap_config_auto.h      13 apr_poll.h              18 http_request.h
    5 ap_config_layout.h    26 apr_pools.h              5 http_vhost.h
    6 ap_listen.h           20 apr_portable.h          61 httpd.h
    7 ap_mmn.h               7 apr_proc_mutex.h         5 mod_cgi.h
   11 ap_mpm.h               6 apr_reslist.h            5 mod_core.h
   12 ap_regkey.h           19 apr_ring.h              87 mod_dav.h
    4 ap_release.h           7 apr_rmm.h               13 mod_include.h
   11 apr.h                  9 apr_sdbm.h               4 mod_log_config.h
    9 apr_allocator.h        6 apr_sha1.h              12 mod_proxy.h
    7 apr_anylock.h          7 apr_shm.h               25 mod_ssl.h
   11 apr_atomic.h           5 apr_signal.h             4 mpm.h
    6 apr_base64.h          15 apr_strings.h           12 mpm_common.h
   57 apr_buckets.h          5 apr_strmatch.h           4 mpm_default.h
    9 apr_compat.h           4 apr_support.h            3 os.h
    6 apr_date.h            18 apr_tables.h             3 pcreposix.h
   12 apr_dbm.h              7 apr_thread_cond.h        4 rfc1413.h
    5 apr_dso.h              6 apr_thread_mutex.h      11 scoreboard.h
   50 apr_errno.h           30 apr_thread_proc.h        5 ssl_expr.h
   16 apr_file_info.h        7 apr_thread_rwlock.h      1 ssl_expr_parse.h
   31 apr_file_io.h         11 apr_time.h               7 ssl_toolkit_compat.h
    4 apr_fnmatch.h         10 apr_uri.h                5 ssl_util_ssl.h
   10 apr_general.h          9 apr_user.h              11 ssl_util_table.h
    9 apr_getopt.h           4 apr_uuid.h               6 unixd.h
    9 apr_global_mutex.h     5 apr_version.h            5 util_cfgtree.h
   10 apr_hash.h             5 apr_want.h               4 util_charset.h
   12 apr_hooks.h            9 apr_xlate.h              5 util_ebcdic.h
    4 apr_inherit.h         15 apr_xml.h               23 util_filter.h
    5 apr_ldap.h             5 apu.h                   15 util_ldap.h
   10 apr_lib.h              7 apu_compat.h             5 util_md5.h
    7 apr_md4.h             42 http_config.h            9 util_script.h
    7 apr_md5.h              7 http_connection.h        5 util_time.h
    9 apr_mmap.h            23 http_core.h              4 util_xml.h
   29 apr_network_io.h      14 http_log.h
mengland@biz2tek 5:35pm [/usr/include] 40>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Minimal build instructions for svnserver & fsfs only?

Posted by Eric Hanchrow <of...@blarg.net>.
>>>>> "Matt" == Matt England <me...@mengland.net> writes:

    Matt> Hello, I have a Subversion 1.2.0-RC1 server running on my
    Matt> Redhat9 system.  I run only svnserve- and fsfs-based
    Matt> capabilities.  I want zero dependencies/interaction with
    Matt> Apache or Berkley DB

I don't think it's possible to entirely eliminate dependencies on
Berkeley DB: subversion depends on apr (the "Apache portable runtime",
which despite the name is not actually Apache), which itself depends
on Berkeley DB.

-- 
I've laid out in my will that my heirs should continue working
on my .emacs
        -- johnw


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Minimal build instructions for svnserver & fsfs only?

Posted by Matt England <me...@mengland.net>.
At 9/26/2005 10:50 PM, Bob Proulx wrote:
>Because you say you are running on a GNU/Linux and would normally use 
>shared libraries there I would use the following configure options:
>
>   ./configure --without-berkeley-db
>
>Then check the resulting shared libraries that are linked against the
>svn binary.
>
>   ldd svn

Ahh, this seems to make sense.  Very helpful.

Additionally note:  I found (via ldd) I had a ton of dependencies on 
external, old svn/apr/etc libs...and hence I probably need (or at least I 
presume) to update the procedure to delete said libs in advance prior to 
running the build.  Updated procedure follows.

Also: I want to run Dale Hirt's (sp?) python script to merge repositories, 
hence I want to install the python bindings.  Should I run the 'make 
swig-py' and 'make install-swig-py' commands at the end of the procedure as 
per below?

1) delete the following from <prefix>/lib: libsvn*, libapr*, libneon*
2) extract the tarball for subversion-x.y.z
3) cd into subversion-x.y.z
4) ./configure --without-berkeley-db --prefix=<prefix>
5) make
6) make check
7) make install
8) make swig-py
9) make install-swig-py

Unfortunately, this brings down the existing server for the duration of the 
build.  No fun, but hence I'm up early in the morning so as to not break 
stuff for my developers.

Is my analysis and procedure correct?

-Matt 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Minimal build instructions for svnserver & fsfs only?

Posted by Bob Proulx <bo...@proulx.com>.
Matt England wrote:
> Himanshu Gohel wrote:
> >This is my config that builds on SGI IRIX:
> >
> >./configure -C --disable-nls --without-berkeley-db 
> >--disable-mod-activation --without-be --without-axps --enable-all-static 
> >--disable-shared

My configure options that build on HP-UX are the following:

  ./configure \
    --without-berkeley-db \
    --disable-nls \
    --disable-shared

> >I'm not quite sure what "--without-be" does, but it was suggested to me by 
> >another IRIX user.  Maybe someone on this list can say more about it.

I don't see that in the --help output.  But it looks to be a substring
of --without-berkeley-db.  Perhaps it is redundant with your inclusion
of that?

> Interesting.  How/where can I read more about what all these 
> packages/things (nls, mod-activation, be, axps, shared) do and/or how they 
> are used?  I'd like to disable as much stuff as possible (and therefore 
> remove as many functional dependencies as possible)...but I don't want to 
> shoot myself in the foot (eg, break the existing Subversion-based 
> mechanisms/processes we already have in place) in the process.

Because you say you are running on a GNU/Linux and would normally use
shared libraries there I would use the following configure options:

  ./configure --without-berkeley-db

Then check the resulting shared libraries that are linked against the
svn binary.

  ldd svn

Bob

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Minimal build instructions for svnserver & fsfs only?

Posted by Matt England <me...@mengland.net>.
At 9/26/2005 10:17 PM, Himanshu Gohel wrote:
> > Interesting.  How/where can I read more about what all these
> > packages/things (nls, mod-activation, be, axps, shared) do
> > and/or how they are used?
>
>Matt,
>
>Part of the answer there was in what you snipped:

Part of it, but a very small part as per the excerpt below.  It lists just 
a couple packages, ones that I know a little about already; however I don't 
know what those things do, nor what happens when they are disabled.  Also, 
some packages are not even listed (eg, the "nls" package) and for those I 
have even less info.

I'm curious if there's a doc set somewhere that describes all these 
packages?  I have yet to see anything in any docs (although I have yet to 
do a thorough search--I was hoping someone here would point me in the right 
direction).

-Matt


Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-apr=PATH         prefix for installed APR, path to APR build tree,
                           or the full path to apr-config
   --with-apr-util=PATH    prefix for installed APU, path to APU build tree,
                           or the full path to apu-config
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
   --with-pic              try to use only PIC/non-PIC objects [default=use
                           both]
   --with-tags[=TAGS]
                           include additional configurations [automatic]
   --with-neon=PREFIX      Determine neon library configuration based on
                           'PREFIX/bin/neon-config'. Default is to search for
                           neon in a subdirectory of the top source directory
                           and then to look for neon-config in $PATH.
   --with-apache=DIR       Build static Apache module. DIR is the path to the
                           top-level Apache source directory.
   --with-apxs[=FILE]      Build shared Apache module.  FILE is the optional
                           pathname to the Apache apxs tool; defaults to 
"apxs".
   --with-berkeley-db=PATH
                           The Subversion Berkeley DB based filesystem library
                           requires Berkeley DB $db_version or newer.  If you
                           specify `--without-berkeley-db', that library will
                           not be built.  Otherwise, the configure script 
builds
                           that library if and only if APR-UTIL is linked
                           against a new enough version of Berkeley DB.

                           If and only if you are building APR-UTIL as part of
                           the Subversion build process, you may help APR-UTIL
                           to find the correct Berkeley DB installation by
                           passing a PATH to this option, to cause APR-UTIL to
                           look for the Berkeley DB header and library in
                           `PATH/include' and `PATH/lib'.  If PATH is of the
                           form `HEADER:LIB', then search for header files in
                           HEADER, and the library in LIB.  If you omit the
                           `=PATH' part completely, the configure script will
                           search for Berkeley DB in a number of standard
                           places.
   --with-ssl              This option does NOT affect the Subversion build
                           process in any way. It enables OpenSSL support in
                           the Neon library. If and only if you are building
                           Neon as an integrated part of the Subversion build
                           process, rather than linking to an already installed
                           version of Neon, you probably want to pass this
                           option so that Neon (and so indirectly, Subversion)
                           will be capable of https:// access.
   --with-editor=PATH      Specify a default editor for the subversion client.
   --with-zlib             enable zlib support
   --with-jdk=PATH         Try to use 'PATH/include' to find the JNI headers.
                           If PATH is not specified, look for a Java
                           Development Kit at JAVA_HOME.
   --with-jikes=PATH       Specify the path to a jikes binary to use it as your
                           Java compiler. The default is to look for jikes
                           (PATH optional). This behavior can be switched off
                           by supplying 'no'.
   --with-swig=PATH        Try to use 'PATH/bin/swig' to build the swig
                           bindings. If PATH is not specified, look for a
                           'swig' binary in your PATH.
   --with-ruby-sitedir=SITEDIR
                           install Ruby bindings in SITEDIR (default is same as
                           ruby's one)
   --with-junit=PATH       Specify a path to the junit JAR file.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Minimal build instructions for svnserver & fsfs only?

Posted by Matt England <me...@mengland.net>.
At 9/26/2005 06:55 PM, Himanshu Gohel wrote:
>This is my config that builds on SGI IRIX:
>
>./configure -C --disable-nls --without-berkeley-db 
>--disable-mod-activation --without-be --without-axps --enable-all-static 
>--disable-shared
>
>I'm not quite sure what "--without-be" does, but it was suggested to me by 
>another IRIX user.  Maybe someone on this list can say more about it.

Interesting.  How/where can I read more about what all these 
packages/things (nls, mod-activation, be, axps, shared) do and/or how they 
are used?  I'd like to disable as much stuff as possible (and therefore 
remove as many functional dependencies as possible)...but I don't want to 
shoot myself in the foot (eg, break the existing Subversion-based 
mechanisms/processes we already have in place) in the process.

-Matt


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

RE: Minimal build instructions for svnserver & fsfs only?

Posted by Himanshu Gohel <go...@cse.usf.edu>.
> From: Matt England [mailto:mengland@mengland.net] 
> 
> I have a Subversion 1.2.0-RC1 server running on my Redhat9 
> system.  I run only svnserve- and fsfs-based capabilities.  I want zero 
> dependencies/interaction with Apache or BerkleyDB; in short, 
> I like my Subversion running with minimally "dependencies."  My current 
> configuration calls for lots of svn+ssh: client looks (and WebSVN 
> stuff)...and that's it.  Nothing else.

If you type in "./configure --help" you will get a list of options that you
can use.  This is my config that builds on SGI IRIX:

./configure -C --disable-nls --without-berkeley-db --disable-mod-activation
--without-be --without-axps --enable-all-static --disable-shared

I'm not quite sure what "--without-be" does, but it was suggested to me by
another IRIX user.  Maybe someone on this list can say more about it.

--
Himanshu


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org