From: Kacper Kowalik Date: Thu, 17 Jun 2010 20:08:04 +0000 (+0000) Subject: Updating ebuild and gnutls patch. Fixes bug 293835, 293866, 298333. Thanks Giampaolo... X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1f5c4e2836a8648a810c9f2cb4ad3c95ca027e80;p=gentoo.git Updating ebuild and gnutls patch. Fixes bug 293835, 293866, 298333. Thanks Giampaolo Tomassoni for patch Package-Manager: portage-2.1.8.3/cvs/Linux x86_64 --- diff --git a/sys-cluster/csync2/ChangeLog b/sys-cluster/csync2/ChangeLog index b405db38a6b4..ae46cc6f5f72 100644 --- a/sys-cluster/csync2/ChangeLog +++ b/sys-cluster/csync2/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sys-cluster/csync2 -# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/csync2/ChangeLog,v 1.27 2009/11/15 13:38:29 xmerlin Exp $ +# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/csync2/ChangeLog,v 1.28 2010/06/17 20:08:04 xarthisius Exp $ + +*csync2-1.34-r1 (17 Jun 2010) + + 17 Jun 2010; Kacper Kowalik + +csync2-1.34-r1.ebuild, +files/csync2-1.34-gnutls.patch: + Updating ebuild and gnutls patch. Fixes bug 293835, 293866, 298333. Thanks + Giampaolo Tomassoni for patch 15 Nov 2009; Christian Zoffoli csync2-1.34.ebuild: Fixed compilation with gnutls-2.xx, thanks to Giampaolo Tomassoni diff --git a/sys-cluster/csync2/Manifest b/sys-cluster/csync2/Manifest index 69493497ba22..f5258097e74f 100644 --- a/sys-cluster/csync2/Manifest +++ b/sys-cluster/csync2/Manifest @@ -1,16 +1,20 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 +AUX csync2-1.34-gnutls.patch 8226 RMD160 2cac45c9a43dab135ef3132aeca4c0f89be13b3d SHA1 184b63d83c6901efec381ee1ece7d80d10d46deb SHA256 aecfc03ca63ee4842b762ca856782dd0193aa39fecfa903b3443c9645786b5f3 AUX csync2.xinetd 388 RMD160 d1d6cd433c34356b649936958a43b16f247e7cd9 SHA1 60fd6dc9a8eb7c8ee2adf00e66049c3b650e6421 SHA256 c281d7e494088abd84ef09b5487482cfa886f12aa0ab717f4cb579b729cc7ee9 DIST csync2-1.34-pure-gnutls.patch.bz2 32879 RMD160 281e393fd9cd831467dc0219c5fd3599d82a7659 SHA1 7f392f575af1080f4417e4ae46418f43ac57dbc1 SHA256 292121b82711b2988f7b98d0fa488262b6bb453aed4bc331a0673802b1ba5846 DIST csync2-1.34.tar.gz 222765 RMD160 d79ddf0e608934d40f0095dde8aa5785c6094d84 SHA1 59b95388d378b659d64d17f7b736068dec7bf7ed SHA256 32b250dd4a0353f71015c5c3961174b975dd5e799e4a084e8f6d00792bd8c833 +EBUILD csync2-1.34-r1.ebuild 2477 RMD160 b1659ea72b050354cde8da4309064100def2c59e SHA1 bc2bc1c9ee9e069d84e3a7cb3b3c817c0f272fed SHA256 2cced61d0f383bb409014d74db325f0bfce94844aab50880e13ca72667ca2b74 EBUILD csync2-1.34.ebuild 2576 RMD160 4a6f158e282f8f92961e8ee3f453431dfd491568 SHA1 f637817e135cb18e528426c582aab583809c77f0 SHA256 e5d0c5a43df02e3b6e3e81e9dc0bd857c0104cec3a6246ca2133a3f715742883 -MISC ChangeLog 4121 RMD160 ecc6b78ff5f3a55c180e9adbec034b55d7897180 SHA1 48df155108528a9f3ccc0e2a21511e7577169d28 SHA256 0ba778ba531c6598af34bc57e826e8665970d4cb9f0ed9b7900a2db59e72dbb7 +MISC ChangeLog 4378 RMD160 b8a927fe56082abe1790a9337d264101f0b074d2 SHA1 3a07dab26880ae902d2295f3732a08d26f3f07ad SHA256 df8caf2873838f7d77ba24e5e903efb8f9a0b52bd3565cf8b8088ac638d18e27 MISC metadata.xml 229 RMD160 4dcf17b88c5f4db2e817f473f3e8269b0bff2e6e SHA1 e6315be43241c55bdc0d12a42fa05632c5ff9b79 SHA256 49e13d2d49bef7298e3bb665ebeceeff9b0880fae5ff639cb8405993504f244f -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.9 (GNU/Linux) +Version: GnuPG v2.0.15 (GNU/Linux) -iEYEARECAAYFAksAKXIACgkQgMUyd/cdjWu4aQCfQz6RLNRXVSINzn1NcGUTEkLX -BsUAnRaC/ZmZHLz9zcUw4Hmed3G4Zi3E -=Ek3B +iJwEAQECAAYFAkwagK0ACgkQIiMqcbOVdxRA2AP/WSuO6G8lu1PJUuB2Jx220lGF +j6DhDWXEl+4cDlXQkgTOKP5RQvkDsSUpu31iHQG4f+g300VmCEDCAjKtKEBcyQ7r +KkjuUHzMpLImwD+1JvUJPCXEL8zjbyPQ8aU4NRnRzLVPYLlWNye/Y/+FGBThrENB +zdFzK3qe9peu4NYKLBQ= +=vAyD -----END PGP SIGNATURE----- diff --git a/sys-cluster/csync2/csync2-1.34-r1.ebuild b/sys-cluster/csync2/csync2-1.34-r1.ebuild new file mode 100644 index 000000000000..838137324215 --- /dev/null +++ b/sys-cluster/csync2/csync2-1.34-r1.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/csync2/csync2-1.34-r1.ebuild,v 1.1 2010/06/17 20:08:04 xarthisius Exp $ + +EAPI=2 + +inherit autotools eutils + +DESCRIPTION="Cluster synchronization tool." +HOMEPAGE="http://oss.linbit.com/csync2/" +SRC_URI="http://oss.linbit.com/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~x86" + +IUSE="ssl" + +RDEPEND=">=net-libs/librsync-0.9.5 + =dev-db/sqlite-2.8* + >=net-libs/gnutls-2.7.3" +DEPEND="${RDEPEND} + dev-util/pkgconfig" + +SLOT="0" + +src_prepare() { + epatch "${FILESDIR}"/${P}-gnutls.patch #274213 + eautoreconf +} + +src_configure() { + econf \ + --localstatedir=/var \ + --sysconfdir=/etc/csync2 \ + $(use_enable ssl gnutls) +} + +src_install() { + emake DESTDIR="${D}" \ + localstatedir=/var \ + sysconfdir=/etc/csync2 \ + install || die "install problem" + + insinto /etc/xinetd.d + newins "${FILESDIR}"/${PN}.xinetd ${PN} || die + + dodir /var/lib/csync2/ || die + keepdir /var/lib/csync2/ + + dodoc AUTHORS ChangeLog INSTALL NEWS README TODO csync2_locheck.sh || die +} + +pkg_postinst() { + echo + einfo "After you setup your conf file, edit the xinetd" + einfo "entry in /etc/xinetd.d/${PN} to enable, then" + einfo "start xinetd: /etc/init.d/xinetd start" + echo + einfo "To add ${PN} to your services file just run" + einfo "this command after you install:" + echo + einfo "emerge --config =${PF}" + echo + einfo "Now you can find csync2.cfg under /etc/${PN}" + einfo "Please move you old config to the right location" + echo +} + +pkg_config() { + einfo "Updating ${ROOT}/etc/services" + { grep -v ^${PN} "${ROOT}"/etc/services; + echo "csync2 30865/tcp" + } > "${ROOT}"/etc/services.new + mv -f "${ROOT}"/etc/services.new "${ROOT}"/etc/services + + if [ ! -f "${ROOT}"/etc/${PN}/csync2_ssl_key.pem ]; then + einfo "Creating default certificate in ${ROOT}/etc/${PN}" + + openssl genrsa -out "${ROOT}"/etc/${PN}/csync2_ssl_key.pem 1024 &> /dev/null + + yes '' | \ + openssl req -new \ + -key "${ROOT}"/etc/${PN}/csync2_ssl_key.pem \ + -out "${ROOT}"/etc/${PN}/csync2_ssl_cert.csr \ + &> "${ROOT}"/dev/null + + openssl x509 -req -days 600 \ + -in "${ROOT}"/etc/${PN}/csync2_ssl_cert.csr \ + -signkey "${ROOT}"/etc/${PN}/csync2_ssl_key.pem \ + -out "${ROOT}"/etc/${PN}/csync2_ssl_cert.pem \ + &> "${ROOT}"/dev/null + + rm "${ROOT}"/etc/${PN}/csync2_ssl_cert.csr + chmod 400 "${ROOT}"/etc/${PN}/csync2_ssl_key.pem "${ROOT}"/etc/${PN}/csync2_ssl_cert.pem + fi +} diff --git a/sys-cluster/csync2/files/csync2-1.34-gnutls.patch b/sys-cluster/csync2/files/csync2-1.34-gnutls.patch new file mode 100644 index 000000000000..64af5229be74 --- /dev/null +++ b/sys-cluster/csync2/files/csync2-1.34-gnutls.patch @@ -0,0 +1,279 @@ +Fixes build with >=net-libs/gnutls-2.7.1 + +http://bugs.gentoo.org/show_bug.cgi?id=274213 + +--- conn.c ++++ conn.c +@@ -32,7 +32,7 @@ + + #ifdef HAVE_LIBGNUTLS_OPENSSL + # include +-# include ++# include + #endif + + int conn_fd_in = -1; +@@ -42,9 +42,8 @@ + #ifdef HAVE_LIBGNUTLS_OPENSSL + int csync_conn_usessl = 0; + +-SSL_METHOD *conn_ssl_meth; +-SSL_CTX *conn_ssl_ctx; +-SSL *conn_ssl; ++static gnutls_session_t conn_tls_session; ++static gnutls_certificate_credentials_t conn_x509_cred; + #endif + + int conn_open(const char *peername) +@@ -112,41 +111,104 @@ + + #ifdef HAVE_LIBGNUTLS_OPENSSL + +-char *ssl_keyfile = ETCDIR "/csync2_ssl_key.pem"; +-char *ssl_certfile = ETCDIR "/csync2_ssl_cert.pem"; ++static void ssl_log(int level, const char* msg) ++{ csync_debug(level, "%s", msg); } ++ ++static const char *ssl_keyfile = ETCDIR "/csync2_ssl_key.pem"; ++static const char *ssl_certfile = ETCDIR "/csync2_ssl_cert.pem"; + + int conn_activate_ssl(int server_role) + { +- static int sslinit = 0; ++ gnutls_alert_description_t alrt; ++ int err; + + if (csync_conn_usessl) + return 0; + +- if (!sslinit) { +- SSL_load_error_strings(); +- SSL_library_init(); +- sslinit=1; ++ gnutls_global_init(); ++ gnutls_global_set_log_function(ssl_log); ++ gnutls_global_set_log_level(10); ++ ++ gnutls_certificate_allocate_credentials(&conn_x509_cred); ++ ++ err = gnutls_certificate_set_x509_key_file(conn_x509_cred, ssl_certfile, ssl_keyfile, GNUTLS_X509_FMT_PEM); ++ if(err != GNUTLS_E_SUCCESS) { ++ gnutls_certificate_free_credentials(conn_x509_cred); ++ gnutls_global_deinit(); ++ ++ csync_fatal( ++ "SSL: failed to use key file %s and/or certificate file %s: %s (%s)\n", ++ ssl_keyfile, ++ ssl_certfile, ++ gnutls_strerror(err), ++ gnutls_strerror_name(err) ++ ); + } + +- conn_ssl_meth = (server_role ? SSLv23_server_method : SSLv23_client_method)(); +- conn_ssl_ctx = SSL_CTX_new(conn_ssl_meth); +- +- if (SSL_CTX_use_PrivateKey_file(conn_ssl_ctx, ssl_keyfile, SSL_FILETYPE_PEM) <= 0) +- csync_fatal("SSL: failed to use key file %s.\n", ssl_keyfile); +- +- if (SSL_CTX_use_certificate_file(conn_ssl_ctx, ssl_certfile, SSL_FILETYPE_PEM) <= 0) +- csync_fatal("SSL: failed to use certificate file %s.\n", ssl_certfile); ++ if(server_role) { ++ gnutls_certificate_free_cas(conn_x509_cred); + +- if (! (conn_ssl = SSL_new(conn_ssl_ctx)) ) +- csync_fatal("Creating a new SSL handle failed.\n"); +- +- gnutls_certificate_server_set_request(conn_ssl->gnutls_state, GNUTLS_CERT_REQUIRE); ++ if(gnutls_certificate_set_x509_trust_file(conn_x509_cred, ssl_certfile, GNUTLS_X509_FMT_PEM) < 1) { ++ gnutls_certificate_free_credentials(conn_x509_cred); ++ gnutls_global_deinit(); ++ ++ csync_fatal( ++ "SSL: failed to use certificate file %s as CA.\n", ++ ssl_certfile ++ ); ++ } ++ } else ++ gnutls_certificate_free_ca_names(conn_x509_cred); + +- SSL_set_rfd(conn_ssl, conn_fd_in); +- SSL_set_wfd(conn_ssl, conn_fd_out); ++ gnutls_init(&conn_tls_session, (server_role ? GNUTLS_SERVER : GNUTLS_CLIENT)); ++ gnutls_priority_set_direct(conn_tls_session, "PERFORMANCE", NULL); ++ gnutls_credentials_set(conn_tls_session, GNUTLS_CRD_CERTIFICATE, conn_x509_cred); ++ ++ if(server_role) { ++ gnutls_certificate_send_x509_rdn_sequence(conn_tls_session, 0); ++ gnutls_certificate_server_set_request(conn_tls_session, GNUTLS_CERT_REQUIRE); ++ } + +- if ( (server_role ? SSL_accept : SSL_connect)(conn_ssl) < 1 ) +- csync_fatal("Establishing SSL connection failed.\n"); ++ gnutls_transport_set_ptr2( ++ conn_tls_session, ++ (gnutls_transport_ptr_t)conn_fd_in, ++ (gnutls_transport_ptr_t)conn_fd_out ++ ); ++ ++ err = gnutls_handshake(conn_tls_session); ++ switch(err) { ++ case GNUTLS_E_SUCCESS: ++ break; ++ ++ case GNUTLS_E_WARNING_ALERT_RECEIVED: ++ alrt = gnutls_alert_get(conn_tls_session); ++ fprintf( ++ csync_debug_out, ++ "SSL: warning alert received from peer: %d (%s).\n", ++ alrt, gnutls_alert_get_name(alrt) ++ ); ++ break; ++ ++ case GNUTLS_E_FATAL_ALERT_RECEIVED: ++ alrt = gnutls_alert_get(conn_tls_session); ++ fprintf( ++ csync_debug_out, ++ "SSL: fatal alert received from peer: %d (%s).\n", ++ alrt, gnutls_alert_get_name(alrt) ++ ); ++ ++ default: ++ gnutls_bye(conn_tls_session, GNUTLS_SHUT_RDWR); ++ gnutls_deinit(conn_tls_session); ++ gnutls_certificate_free_credentials(conn_x509_cred); ++ gnutls_global_deinit(); ++ ++ csync_fatal( ++ "SSL: handshake failed: %s (%s)\n", ++ gnutls_strerror(err), ++ gnutls_strerror_name(err) ++ ); ++ } + + csync_conn_usessl = 1; + +@@ -155,15 +217,15 @@ + + int conn_check_peer_cert(const char *peername, int callfatal) + { +- const X509 *peercert; ++ const gnutls_datum_t *peercerts; ++ unsigned npeercerts; + int i, cert_is_ok = -1; + + if (!csync_conn_usessl) + return 1; + +- peercert = SSL_get_peer_certificate(conn_ssl); +- +- if (!peercert || peercert->size <= 0) { ++ peercerts = gnutls_certificate_get_peers(conn_tls_session, &npeercerts); ++ if(peercerts == NULL || npeercerts == 0) { + if (callfatal) + csync_fatal("Peer did not provide an SSL X509 cetrificate.\n"); + csync_debug(1, "Peer did not provide an SSL X509 cetrificate.\n"); +@@ -171,11 +233,11 @@ + } + + { +- char certdata[peercert->size*2 + 1]; ++ char certdata[2*peercerts[0].size + 1]; + +- for (i=0; isize; i++) +- sprintf(certdata+i*2, "%02X", peercert->data[i]); +- certdata[peercert->size*2] = 0; ++ for (i=0; i