$ yum -y install wget gcc automake subversion patch gcc-c++ openssl-devel libxml2-devel libtool swig perl-ExtUtils-Embed java-1.8.0-openjdk-devel gperf $ export JAVA_HOME=/usr/lib/jvm/java $ export LIBTOOL_M4=/usr/share/aclocal $ export LIBTOOL_CONFIG=/usr/share/libtool/config $ wget http://prdownloads.sourceforge.net/scons/scons-2.4.1.tar.gz $ tar xzfv scons-2.4.1.tar.gz $ cd scons-2.4.1 $ python setup.py install $ cd .. $ mkdir svn $ cd svn $ wget http://svn.apache.org/repos/asf/subversion/trunk/tools/dev/unix-build/Makefile.svn $ ln -s Makefile.svn GNUmakefile $ make ###################ERROR################### gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I/root/svn/src/libiconv-1.14/srclib -I.. -I../lib -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 -g -c /root/svn/src/libiconv-1.14/srclib/progname.c In file included from /root/svn/src/libiconv-1.14/srclib/progname.c:26:0: ./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function) _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); ^ make[3]: *** [progname.o] Error 1 make[3]: Leaving directory `/root/svn/objdir/libiconv-1.14/srclib' make[2]: *** [all] Error 2 make[2]: Leaving directory `/root/svn/objdir/libiconv-1.14/srclib' make[1]: *** [all] Error 2 make[1]: Leaving directory `/root/svn/objdir/libiconv-1.14' make: *** [/root/svn/objdir/libiconv-1.14/.compiled] Error 2 $ sed -i -e '1010d' objdir/libiconv-1.14/srclib/stdio.h $ make ###################ERROR################### gcc -I. -I../.. -I/root/svn/src/ruby-1.8.7-p374 -I/root/svn/src/ruby-1.8.7-p374/ext/openssl -DRUBY_EXTCONF_H=\"extconf.h\" -fPIC -g -fPIC -c /root/svn/src/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c /root/svn/src/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c: In function ‘ossl_ec_group_initialize’: /root/svn/src/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c:761:24: warning: assignment makes pointer from integer without a cast [enabled by default] method = EC_GF2m_simple_method(); ^ /root/svn/src/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c:815:29: error: ‘EC_GROUP_new_curve_GF2m’ undeclared (first use in this function) new_curve = EC_GROUP_new_curve_GF2m; ^ /root/svn/src/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c:815:29: note: each undeclared identifier is reported only once for each function it appears in make[2]: *** [ossl_pkey_ec.o] Error 1 make[2]: Leaving directory `/root/svn/objdir/ruby-1.8.7-p374/ext/openssl' make[1]: *** [all] Error 1 make[1]: Leaving directory `/root/svn/objdir/ruby-1.8.7-p374' make: *** [/root/svn/objdir/ruby-1.8.7-p374/.compiled] Error 2 $ cat << EOF > patch --- ossl_pkey_ec.c @@ -762,8 +762,10 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self) method = EC_GFp_mont_method(); } else if (id == s_GFp_nist) { method = EC_GFp_nist_method(); +#if !defined(OPENSSL_NO_EC2M) } else if (id == s_GF2m_simple) { method = EC_GF2m_simple_method(); +#endif } if (method) { @@ -817,8 +819,10 @@ static VALUE ossl_ec_group_initialize(int argc, VALUE *argv, VALUE self) if (id == s_GFp) { new_curve = EC_GROUP_new_curve_GFp; +#if !defined(OPENSSL_NO_EC2M) } else if (id == s_GF2m) { new_curve = EC_GROUP_new_curve_GF2m; +#endif } else { ossl_raise(rb_eArgError, "unknown symbol, must be :GFp or :GF2m"); } EOF $ patch src/ruby-1.8.7-p374/ext/openssl/ossl_pkey_ec.c < patch $ make $ echo $? $ ./prefix/svn-trunk/bin/svn --version