summaryrefslogtreecommitdiff
path: root/net-libs/c-client/c-client-2007f_p7.ebuild
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-02-06 09:19:42 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-02-06 09:19:42 +0000
commitc8fb42216b10862e8178f91831e4c51fb2c55ac4 (patch)
tree9f469cb5c01b2df6f8591e65242eb65ee749c506 /net-libs/c-client/c-client-2007f_p7.ebuild
parenta2f130f3156ea1d203e99a781424790176b9b2b5 (diff)
gentoo auto-resync : 06:02:2023 - 09:19:42
Diffstat (limited to 'net-libs/c-client/c-client-2007f_p7.ebuild')
-rw-r--r--net-libs/c-client/c-client-2007f_p7.ebuild172
1 files changed, 172 insertions, 0 deletions
diff --git a/net-libs/c-client/c-client-2007f_p7.ebuild b/net-libs/c-client/c-client-2007f_p7.ebuild
new file mode 100644
index 000000000000..c3fd74b4a8a9
--- /dev/null
+++ b/net-libs/c-client/c-client-2007f_p7.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic libtool toolchain-funcs
+
+MY_PN=imap
+MY_P="${MY_PN}-${PV}"
+
+CHAPPA_PL=115
+DESCRIPTION="UW IMAP c-client library"
+HOMEPAGE="http://www.washington.edu/imap/"
+SRC_URI="
+ ftp://ftp.cac.washington.edu/imap/${MY_PN}-$(ver_cut 1-2).tar.Z
+ mirror://debian/pool/main/u/uw-${MY_PN}/uw-${MY_PN}_${PV/_p/"~dfsg-"}.debian.tar.xz
+ chappa? ( mirror://gentoo/${PN}-$(ver_cut 1-2)-chappa-${CHAPPA_PL}-all.patch.gz )
+"
+S="${WORKDIR}"/${MY_PN}-$(ver_cut 1-2)
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc +ipv6 kerberos pam ssl static-libs topal chappa"
+
+RDEPEND="
+ ssl? (
+ dev-libs/openssl:=
+ )
+ kernel_linux? (
+ pam? ( >=sys-libs/pam-0.72 )
+ !pam? ( virtual/libcrypt:= )
+ )
+ kerberos? ( app-crypt/mit-krb5 )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${WORKDIR}"/debian/patches
+
+ # Apply a patch to only build the stuff we need for c-client
+ "${FILESDIR}/${PN}-2006k_GENTOO_Makefile.patch"
+
+ # Apply patch to add the compilation of a .so for PHP
+ # This was previously conditional, but is more widely useful.
+ "${FILESDIR}/${PN}-2007f_GENTOO_amd64-so-fix.patch"
+
+ # Respect LDFLAGS
+ "${FILESDIR}/${PN}-2007f_p7-ldflags.patch"
+
+ # build fix for -Werror=implicit-function-declaration and
+ # incompatible function pointer types, bug #870478
+ "${FILESDIR}/${PN}-2007f-scandir-callback-types.patch"
+ "${FILESDIR}/${PN}-2007f_p7-implicit-declaration-fix.patch"
+)
+
+src_prepare() {
+ use topal && PATCHES+=( "${FILESDIR}/${P}-topal.patch" )
+
+ default
+
+ use chappa && eapply -p2 "${WORKDIR}/${P}-chappa-${CHAPPA_PL}-all.patch"
+
+ # Tarball packed with bad file perms
+ chmod -R u+rwX,go-w . || die "failed to fix permissions"
+
+ # Lots of things need -fPIC, including various platforms, and this library
+ # generally should be built with it anyway.
+ append-flags -fPIC
+
+ # Modifications so we can build it optimally and correctly
+ sed \
+ -e "s:BASECFLAGS=\".*\":BASECFLAGS=:g" \
+ -e 's:SSLDIR=/usr/local/ssl:SSLDIR=/usr:g' \
+ -e 's:SSLCERTS=$(SSLDIR)/certs:SSLCERTS=/etc/ssl/certs:g' \
+ -i src/osdep/unix/Makefile \
+ || die "failed to fix compiler flags and SSL paths in the Makefile"
+
+ # Make the build system more multilib aware
+ sed \
+ -e "s:^SSLLIB=\$(SSLDIR)/lib:SSLLIB=\$(SSLDIR)/$(get_libdir):" \
+ -e "s:^AFSLIB=\$(AFSDIR)/lib:AFSLIB=\$(AFSDIR)/$(get_libdir):" \
+ -i src/osdep/unix/Makefile \
+ || die "failed to fix our libdir in the Makefile"
+
+ # Targets should use the Gentoo (ie linux) fs
+ sed -e '/^bsf:/,/^$/ s:ACTIVEFILE=.*:ACTIVEFILE=/var/lib/news/active:g' \
+ -i src/osdep/unix/Makefile \
+ || die "failed to fix the FreeBSD ACTIVEFILE path in the Makefile"
+
+ # Remove the pesky checks about SSL stuff
+ sed -e '/read.*exit/d' -i Makefile \
+ || die "failed to disable SSL warning in the Makefile"
+
+ sed -e "s:CC=cc:CC=$(tc-getCC):" \
+ -e "s:ARRC=ar:ARRC=$(tc-getAR):" \
+ -e "s:RANLIB=ranlib:RANLIB=$(tc-getRANLIB):" \
+ -i src/osdep/unix/Makefile \
+ || die "failed to fix build flags support in the Makefile"
+
+ elibtoolize
+}
+
+src_compile() {
+ local mymake target passwdtype
+
+ local ipver='IP=4'
+ if use ipv6 ; then
+ ipver="IP=6"
+ touch ip6 || die "failed to create ip6 file"
+ fi
+
+ local ssltype="none"
+ if use ssl ; then
+ ssltype="unix"
+ fi
+
+ if use kernel_linux ; then
+ # Fall back to "slx" when USE=pam is not set. This ensures that
+ # we link in libcrypt to get the crypt() routine (bug #456928).
+ use pam && target=lnps passwdtype=pam || target=slx passwdtype=std
+ fi
+
+ if use kerberos ; then
+ mymake="EXTRAAUTHENTICATORS=gss"
+ EXTRALIBS="-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
+ fi
+
+ emake -j1 \
+ SSLTYPE=${ssltype} ${target} \
+ PASSWDTYPE=${passwdtype} ${ipver} ${mymake} \
+ EXTRACFLAGS="${CFLAGS}" \
+ EXTRALDFLAGS="${LDFLAGS}" \
+ EXTRALIBS="${EXTRALIBS}" \
+ GSSDIR=/usr
+}
+
+src_install() {
+ if use static-libs; then
+ # Library binary
+ dolib.a c-client/c-client.a
+ dosym c-client.a "/usr/$(get_libdir)/libc-client.a"
+ fi
+
+ # Now the shared library
+ dolib.so c-client/libc-client.so.1.0.0
+
+ dosym libc-client.so.1.0.0 "/usr/$(get_libdir)/libc-client.so"
+ dosym libc-client.so.1.0.0 "/usr/$(get_libdir)/libc-client.so.1"
+
+ # Headers
+ insinto /usr/include/imap
+ doins src/osdep/unix/*.h
+ doins src/c-client/*.h
+ doins c-client/linkage.h
+ doins c-client/linkage.c
+ doins c-client/osdep.h
+
+ if use ssl; then
+ echo " ssl_onceonlyinit ();" >> "${D}"/usr/include/imap/linkage.c \
+ || die "failed to add ssl init statement to linkage.c"
+ fi
+
+ # Documentation
+ dodoc README docs/*.txt docs/BUILD docs/CONFIG docs/RELNOTES docs/SSLBUILD
+ if use doc; then
+ docinto rfc
+ dodoc docs/rfc/*.txt
+ docinto draft
+ dodoc docs/draft/*
+ fi
+}