# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI="6" inherit 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 ~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? ( dev-lang/lua ) cgi-php? ( dev-lang/php[cgi] ) )" #Note1: static, cgi-* makes no sense if httpd is not given REQUIRED_USE=" static? ( httpd ) cgi-lua? ( httpd ) cgi-php? ( httpd )" AXTLS_GROUP="axtls" AXTLS_USER="axtls" 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=\"${LDLAGS}\":" \ 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 else sed -i -e 's:^CONFIG_AXHTTPD:# CONFIG_AXHTTPD:' \ config/.config || die fi yes "n" | emake -j1 oldconfig > /dev/null || die } 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 yes "" | emake -j1 oldconfig > /dev/null || die 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 }