diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2019-01-04 21:51:46 +0100 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2019-01-04 21:54:06 +0100 |
commit | 3fe8e9910002b6523d995512a646b063565d0447 (patch) | |
tree | 6f3f39b38eb75b9e241504d85c69e35208a99b04 | |
parent | net-print/splix: fix for big-endian hosts (diff) | |
download | gentoo-3fe8e9910002b6523d995512a646b063565d0447.tar.gz gentoo-3fe8e9910002b6523d995512a646b063565d0447.tar.bz2 gentoo-3fe8e9910002b6523d995512a646b063565d0447.zip |
sys-block/partimage: add OpenSSL 1.1+ compatibility
- EAPI bumped to EAPI=6
- OpenSSL 1.1+ compatibility added
Closes: https://bugs.gentoo.org/674074
Package-Manager: Portage-2.3.53, Repoman-2.3.12
Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
-rw-r--r-- | sys-block/partimage/files/partimage-0.6.9-openssl-1.1-compatibility.patch | 41 | ||||
-rw-r--r-- | sys-block/partimage/partimage-0.6.9-r1.ebuild | 144 |
2 files changed, 185 insertions, 0 deletions
diff --git a/sys-block/partimage/files/partimage-0.6.9-openssl-1.1-compatibility.patch b/sys-block/partimage/files/partimage-0.6.9-openssl-1.1-compatibility.patch new file mode 100644 index 000000000000..af4d9c153df2 --- /dev/null +++ b/sys-block/partimage/files/partimage-0.6.9-openssl-1.1-compatibility.patch @@ -0,0 +1,41 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -240,7 +240,7 @@ if test "$SSL" = "yes"; then + AC_CHECKING([ for SSL Library and Header files ... ]) + AC_SEARCH_HEADERS(rsa.h crypto.h x509.h pem.h ssl.h err.h, + $SSL_HDR_DIR /usr/include/ssl /usr/include/openssl /usr/include, +- [ AC_CHECK_LIB(crypto, CRYPTO_lock, [LIBS="$LIBS -lcrypto"], ++ [ AC_CHECK_LIB(crypto, X509_new, [LIBS="$LIBS -lcrypto"], + AC_MSG_ERROR([ Required for SSL Crypto Library not found. ]) + ) + AC_CHECK_LIB(ssl, SSL_CTX_new, +--- a/src/client/netclient.cpp ++++ b/src/client/netclient.cpp +@@ -43,7 +43,11 @@ CNetClient::CNetClient(bool bMustLogin, bool bUseSSL):CNet() + { + showDebug(3, "initializing client ssl\n"); + SSLeay_add_ssl_algorithms(); +- meth = SSLv2_client_method(); ++#if OPENSSL_VERSION_NUMBER < 0x10100000 ++ meth = TLSv1_client_method(); ++#else ++ meth = TLS_client_method(); ++#endif + SSL_load_error_strings(); + ctx = SSL_CTX_new(meth); + if (!ctx) +--- a/src/server/netserver.cpp ++++ b/src/server/netserver.cpp +@@ -39,7 +39,11 @@ CNetServer::CNetServer(unsigned short int port):CNet() + { + SSL_load_error_strings(); + SSLeay_add_ssl_algorithms(); +- meth = SSLv23_server_method(); ++#if OPENSSL_VERSION_NUMBER < 0x10100000 ++ meth = TLSv1_server_method(); ++#else ++ meth = TLS_server_method(); ++#endif + ctx = SSL_CTX_new(meth); + if (!ctx) + { diff --git a/sys-block/partimage/partimage-0.6.9-r1.ebuild b/sys-block/partimage/partimage-0.6.9-r1.ebuild new file mode 100644 index 000000000000..5828263d3810 --- /dev/null +++ b/sys-block/partimage/partimage-0.6.9-r1.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit autotools flag-o-matic pam user + +DESCRIPTION="Console-based application to efficiently save raw partition data to image file" +HOMEPAGE="http://www.partimage.org/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="nls nologin pam ssl static" + +LIBS_DEPEND="app-arch/bzip2 + >=dev-libs/newt-0.52 + >=sys-libs/slang-2 + sys-libs/zlib:= + ssl? ( dev-libs/openssl:0= )" +PAM_DEPEND="!static? ( pam? ( virtual/pam ) )" +RDEPEND="${PAM_DEPEND} + !static? ( ${LIBS_DEPEND} )" +DEPEND="${PAM_DEPEND} + ${LIBS_DEPEND} + nls? ( sys-devel/gettext )" + +pkg_setup() { + enewgroup partimag 91 + enewuser partimag 91 -1 /var/lib/partimage partimag +} + +src_prepare() { + eapply -p0 "${FILESDIR}"/${P}-zlib-1.2.5.2.patch #405323 + eapply "${FILESDIR}"/${P}-minor-typo.patch #580290 + eapply "${FILESDIR}"/${P}-openssl-1.1-compatibility.patch + + eapply_user + + eautoreconf +} + +src_configure() { + # XXX: Do we still need these? + filter-flags -fno-exceptions + use ppc && append-flags -fsigned-char + + local myconf + + use nologin && myconf="${myconf} --disable-login" + + if use pam && ! use static; then + myconf="${myconf} --enable-pam" + fi + + econf \ + --docdir="${EPREFIX%/}"/usr/share/doc/${PF} \ + --sysconfdir="${EPREFIX%/}"/etc \ + $(use_enable nls) \ + $(use_enable ssl) \ + --disable-pam \ + $(use_enable static all-static) \ + --with-log-dir="${EPREFIX%/}"/var/log/partimage \ + ${myconf} +} + +src_install() { + default + + keepdir /var/lib/partimage + keepdir /var/log/partimage + + newinitd "${FILESDIR}"/partimaged.init.2 partimaged + newconfd "${FILESDIR}"/partimaged.conf partimaged + + if use ssl; then + insinto /etc/partimaged + doins "${FILESDIR}"/servercert.cnf + fi + + if use pam; then + newpamd "${FILESDIR}"/partimaged.pam.2 partimaged + fi +} + +confdir=${EROOT%/}/etc/partimaged +privkey=${confdir}/partimaged.key +cnf=${confdir}/servercert.cnf +csr=${confdir}/partimaged.csr +cert=${confdir}/partimaged.cert + +pkg_config() { + if use ssl; then + ewarn "Please customize /etc/partimaged/servercert.cnf before you continue!" + ewarn "Press Ctrl-C to break now for it, or press enter to continue." + read + if [ ! -f ${privkey} ]; then + einfo "Generating unencrypted private key: ${privkey}" + openssl genrsa -out ${privkey} 1024 || die + else + einfo "Private key already exists: ${privkey}" + fi + if [ ! -f ${csr} ]; then + einfo "Generating certificate request: ${csr}" + openssl req -new -x509 -outform PEM -out ${csr} -key ${privkey} -config ${cnf} || die + else + einfo "Certificate request already exists: ${csr}" + fi + if [ ! -f ${cert} ]; then + einfo "Generating self-signed certificate: ${cert}" + openssl x509 -in ${csr} -out ${cert} -signkey ${privkey} || die + else + einfo "Self-signed certifcate already exists: ${cert}" + fi + einfo "Setting permissions" + partimagesslperms || die + einfo "Done" + else + einfo "SSL is disabled, not building certificates" + fi +} + +partimagesslperms() { + local ret=0 + chmod 600 ${privkey} 2>/dev/null + ret=$((${ret}+$?)) + chown partimag:0 ${privkey} 2>/dev/null + ret=$((${ret}+$?)) + chmod 644 ${cert} ${csr} 2>/dev/null + ret=$((${ret}+$?)) + chown root:0 ${cert} ${csr} 2>/dev/null + ret=$((${ret}+$?)) + return $ret +} + +pkg_postinst() { + if use ssl; then + einfo "To create the required SSL certificates, please do:" + einfo "emerge --config =${PF}" + partimagesslperms + return 0 + fi + chown partimag:0 "${EROOT%/}"/etc/partimaged/partimagedusers || die +} |