public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Marek Szuba" <marecki@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: profiles/, net-libs/axtls/
Date: Sun, 20 Dec 2020 20:59:51 +0000 (UTC)	[thread overview]
Message-ID: <1608497982.809959b9f502b56f82746dce503e763bf22f86c0.marecki@gentoo> (raw)

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	other threads:[~2020-12-20 20:59 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1608497982.809959b9f502b56f82746dce503e763bf22f86c0.marecki@gentoo \
    --to=marecki@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox