commit:     809959b9f502b56f82746dce503e763bf22f86c0
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 20 20:55:09 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sun Dec 20 20:59:42 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=809959b9

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 <AT> gentoo.org>

 net-libs/axtls/axtls-2.1.5-r100.ebuild | 184 +++++++++++++++++++++++++++++++++
 profiles/package.mask                  |   1 +
 2 files changed, 185 insertions(+)

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 00000000000..a988deef75d
--- /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
+}

diff --git a/profiles/package.mask b/profiles/package.mask
index 09cc0063e05..e28e38dcce1 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -537,6 +537,7 @@ kde-apps/kdebase-meta:5
 >=net-analyzer/suricata-6.0.1-r100
 >=net-im/prosody-0.11.7-r100
 >=net-im/swift-4.0.2-r100
+>=net-libs/axtls-2.1.5-r100
 >=net-misc/asterisk-16.14.0-r100
 >=net-mail/dovecot-2.3.11.3-r100
 >=net-p2p/eiskaltdcpp-2.2.10-r100

Reply via email to