summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2019-01-04 21:51:46 +0100
committerThomas Deutschmann <whissi@gentoo.org>2019-01-04 21:54:06 +0100
commit3fe8e9910002b6523d995512a646b063565d0447 (patch)
tree6f3f39b38eb75b9e241504d85c69e35208a99b04
parentnet-print/splix: fix for big-endian hosts (diff)
downloadgentoo-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.patch41
-rw-r--r--sys-block/partimage/partimage-0.6.9-r1.ebuild144
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
+}