summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2020-12-20 20:55:09 +0000
committerMarek Szuba <marecki@gentoo.org>2020-12-20 20:59:42 +0000
commit809959b9f502b56f82746dce503e763bf22f86c0 (patch)
tree56fd41c4f0f85451ac43f2186f5f07f9c80c3bf7 /net-libs
parentpackage.mask: Mask =dev-lang/python-3.8.7_rc1 (diff)
downloadgentoo-809959b9f502b56f82746dce503e763bf22f86c0.tar.gz
gentoo-809959b9f502b56f82746dce503e763bf22f86c0.tar.bz2
gentoo-809959b9f502b56f82746dce503e763bf22f86c0.zip
net-libs/axtls: migrate to lua-single.eclass
axtls in cgi-lua mode simply executes the Lua interpreter so a) it can support all Lua implementations currently in the tree, and b) all we have to do at build time is substitute /usr/bin/lua with ${LUA} in .config. Closes: https://bugs.gentoo.org/752816 Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'net-libs')
-rw-r--r--net-libs/axtls/axtls-2.1.5-r100.ebuild184
1 files changed, 184 insertions, 0 deletions
diff --git a/net-libs/axtls/axtls-2.1.5-r100.ebuild b/net-libs/axtls/axtls-2.1.5-r100.ebuild
new file mode 100644
index 000000000000..a988deef75dd
--- /dev/null
+++ b/net-libs/axtls/axtls-2.1.5-r100.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-{1..4} luajit )
+
+inherit lua-single multilib multilib-minimal savedconfig toolchain-funcs user
+
+################################################################################
+# axtls CONFIG MINI-HOWTO
+#
+# Note: axtls is highly configurable and uses mconf, like the linux kernel.
+# You can configure it in a couple of ways:
+#
+# 1) USE="-savedconfig" and set/unset the remaining flags to obtain the features
+# you want, and possibly a lot more.
+#
+# 2) You can create your own configuration file by doing
+#
+# FEATURES="keepwork" USE="savedconfig -*" emerge axtls
+# cd /var/tmp/portage/net-libs/axtls*/work/axTLS
+# make menuconfig
+#
+# Now configure axtls as you want. Finally save your config file:
+#
+# cp config/.config /etc/portage/savedconfig/net-libs/axtls-${PV}
+#
+# where ${PV} is the current version. You can then run emerge again with
+# your configuration by doing
+#
+# USE="savedconfig" emerge axtls
+#
+################################################################################
+
+MY_PN=${PN/tls/TLS}
+
+DESCRIPTION="Embedded client/server TLSv1 SSL library and small HTTP(S) server"
+HOMEPAGE="http://axtls.sourceforge.net/"
+SRC_URI="mirror://sourceforge/axtls/${MY_PN}-${PV}.tar.gz"
+S="${WORKDIR}/${PN}-code"
+
+LICENSE="BSD GPL-2"
+SLOT="0/1"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+IUSE="httpd cgi-lua cgi-php static static-libs doc"
+
+# TODO: add ipv6, and c#, java, lua, perl bindings
+# Currently these all have some issue
+DEPEND="doc? ( app-doc/doxygen )"
+RDEPEND="
+ httpd? (
+ cgi-lua? ( ${LUA_DEPS} )
+ cgi-php? ( dev-lang/php[cgi] )
+ )"
+
+#Note1: static, cgi-* makes no sense if httpd is not given
+REQUIRED_USE="
+ static? ( httpd )
+ cgi-lua? ( httpd ${LUA_REQUIRED_USE} )
+ cgi-php? ( httpd )"
+
+AXTLS_GROUP="axtls"
+AXTLS_USER="axtls"
+
+pkg_setup() {
+ use cgi-lua && lua-single_pkg_setup
+
+ use httpd && {
+ ebegin "Creating axtls user and group"
+ enewgroup ${AXTLS_GROUP}
+ enewuser ${AXTLS_USER} -1 -1 -1 ${AXTLS_GROUP}
+ }
+}
+
+src_prepare() {
+ tc-export AR CC
+
+ eapply "${FILESDIR}/explicit-libdir-r1.patch"
+
+ #We want CONFIG_DEBUG to avoid stripping
+ #but not for debugging info
+ sed -i -e 's: -g::' config/Rules.mak || die
+ sed -i -e 's: -g::' config/makefile.conf || die
+
+ eapply_user
+
+ multilib_copy_sources
+}
+
+use_flag_config() {
+ cp "${FILESDIR}"/config config/.config || die
+
+ #Respect CFLAGS/LDFLAGS
+ sed -i -e "s:^CONFIG_EXTRA_CFLAGS_OPTIONS.*$:CONFIG_EXTRA_CFLAGS_OPTIONS=\"${CFLAGS}\":" \
+ config/.config || die
+ sed -i -e "s:^CONFIG_EXTRA_LDFLAGS_OPTIONS.*$:CONFIG_EXTRA_LDFLAGS_OPTIONS=\"${LDFLAGS}\":" \
+ config/.config || die
+
+ #The logic is that the default config file enables everything and we disable
+ #here with sed unless a USE flags says to keep it
+ if use httpd; then
+ if ! use static; then
+ sed -i -e 's:^CONFIG_HTTP_STATIC_BUILD:# CONFIG_HTTP_STATIC_BUILD:' \
+ config/.config || die
+ fi
+ if ! use cgi-php && ! use cgi-lua; then sed -i -e 's:^CONFIG_HTTP_HAS_CGI:# CONFIG_HTTP_HAS_CGI:' \
+ config/.config || die
+ fi
+ if ! use cgi-php; then
+ sed -i -e 's:,.php::' config/.config || die
+ fi
+ if ! use cgi-lua; then
+ sed -i -e 's:\.lua,::' \
+ -e 's:lua:php:' \
+ -e 's:^CONFIG_HTTP_ENABLE_LUA:# CONFIG_HTTP_ENABLE_LUA:' \
+ config/.config || die
+ fi
+ if use cgi-lua; then
+ sed -i -e "s:/usr/bin/lua:${LUA}:" config/.config || die
+ fi
+ else
+ sed -i -e 's:^CONFIG_AXHTTPD:# CONFIG_AXHTTPD:' \
+ config/.config || die
+ fi
+
+ emake -j1 oldconfig < <(yes n) > /dev/null
+}
+
+multilib_src_configure() {
+ #Per-ABI substitutions.
+ sed -i -e 's:^LIBDIR.*/lib:LIBDIR = $(PREFIX)/'"$(get_libdir):" \
+ Makefile || die
+
+ #Use CC as the host compiler for mconf
+ sed -i -e "s:^HOSTCC.*:HOSTCC=${CC}:" \
+ config/Rules.mak || die
+
+ if use savedconfig; then
+ restore_config config/.config
+ if [[ -f config/.config ]]; then
+ ewarn "Using saved config, all other USE flags ignored"
+ else
+ ewarn "No saved config, seeding with the default"
+ cp "${FILESDIR}"/config config/.config || die
+ fi
+ emake -j1 oldconfig < <(yes '') > /dev/null
+ else
+ use_flag_config
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi && use savedconfig; then
+ save_config config/.config
+ fi
+
+ emake PREFIX="${ED}/usr" install
+
+ if ! use static-libs; then
+ rm -f "${ED}"/usr/$(get_libdir)/libaxtls.a || die
+ fi
+
+ # The build system needs to install before it builds docs
+ if multilib_is_native_abi && use doc; then
+ emake docs
+ dodoc -r docsrc/html
+ fi
+}
+
+multilib_src_install_all() {
+ if [[ -f "${ED}"/usr/bin/htpasswd ]]; then
+ mv "${ED}"/usr/bin/{,ax}htpasswd || die
+ fi
+
+ if use httpd; then
+ newinitd "${FILESDIR}"/axhttpd.initd axhttpd
+ newconfd "${FILESDIR}"/axhttpd.confd axhttpd
+ fi
+
+ docompress -x /usr/share/doc/${PF}/README
+ dodoc README
+}