public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: app-crypt/ekeyd/, profiles/, app-crypt/ekeyd/files/
@ 2020-11-24 13:15 Marek Szuba
  0 siblings, 0 replies; only message in thread
From: Marek Szuba @ 2020-11-24 13:15 UTC (permalink / raw
  To: gentoo-commits

commit:     a493d13cd0653e1b3d2703339d0cf9d3cb74c9d5
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 24 13:11:27 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Tue Nov 24 13:15:33 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a493d13c

app-crypt/ekeyd: migrate to lua-single.eclass

Confirmed not to work with lua5.2 - linking ekeyd fails with

host/lstate.c:430: undefined reference to `luaL_register' .

In light of the above and given the age of this code, didn't even bother
testing it with 5.3 and 5.4.

Closes: https://bugs.gentoo.org/752894
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 app-crypt/ekeyd/ekeyd-1.1.5-r100.ebuild            | 170 +++++++++++++++++++++
 .../files/ekeyd-1.1.5-makefile-lua-libs.patch      |  15 ++
 profiles/package.mask                              |   1 +
 3 files changed, 186 insertions(+)

diff --git a/app-crypt/ekeyd/ekeyd-1.1.5-r100.ebuild b/app-crypt/ekeyd/ekeyd-1.1.5-r100.ebuild
new file mode 100644
index 00000000000..7bec7620063
--- /dev/null
+++ b/app-crypt/ekeyd/ekeyd-1.1.5-r100.ebuild
@@ -0,0 +1,170 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-1 )
+
+inherit multilib linux-info lua-single toolchain-funcs udev systemd
+
+DESCRIPTION="Entropy Key userspace daemon"
+HOMEPAGE="http://www.entropykey.co.uk/"
+SRC_URI="mirror://ubuntu/pool/universe/e/ekeyd/ekeyd_${PV}.orig.tar.gz"
+
+LICENSE="MIT GPL-2" # GPL-2 (only) for init script
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="kernel_linux munin minimal usb"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}
+	minimal? ( !munin )"
+
+EKEYD_RDEPEND="${LUA_DEPS}"
+EKEYD_DEPEND="${EKEYD_RDEPEND}"
+EKEYD_RDEPEND="${EKEYD_RDEPEND}
+	$(lua_gen_cond_dep '
+		dev-lua/luasocket[${LUA_USEDEP}]
+	')
+	kernel_linux? ( virtual/udev )
+	munin? ( net-analyzer/munin )"
+
+RDEPEND="!minimal? ( ${EKEYD_RDEPEND} )
+	virtual/service-manager"
+DEPEND="!minimal? ( ${EKEYD_DEPEND} )"
+
+CONFIG_CHECK="~USB_ACM"
+
+pkg_setup() {
+	if ! use minimal && use kernel_linux && ! use usb && linux_config_exists; then
+		check_extra_config
+	fi
+	lua-single_pkg_setup
+}
+
+PATCHES=(
+	"${FILESDIR}"/${P}-const_char_usage.patch
+	"${FILESDIR}"/${P}-enoent.patch
+	"${FILESDIR}"/${P}-path-fixes.patch
+	"${FILESDIR}"/${P}-udev-rule.patch
+	"${FILESDIR}"/${P}-remove-werror.patch
+	"${FILESDIR}"/${P}-misc.patch
+	"${FILESDIR}"/${P}-makefile-lua-libs.patch
+)
+
+src_compile() {
+	local osname
+
+	# Override automatic detection: upstream provides this with uname,
+	# we don't like using uname.
+	case ${CHOST} in
+		*-linux-*)
+			osname=linux;;
+		*-freebsd*)
+			osname=freebsd;;
+		*-kfrebsd-gnu)
+			osname=gnukfreebsd;;
+		*-openbsd*)
+			osname=openbsd;;
+		*)
+			die "Unsupported operating system!"
+			;;
+	esac
+
+	emake -C host \
+		CC="$(tc-getCC)" \
+		LUA_V=${ELUA#lua} \
+		LUA_INC="-I$(lua_get_include_dir)" \
+		OSNAME=${osname} \
+		OPT="${CFLAGS}" \
+		BUILD_ULUSBD=no \
+		$(use minimal && echo egd-linux)
+}
+
+src_install() {
+	exeinto /usr/libexec
+	newexe host/egd-linux   ekey-egd-linux
+	newman host/egd-linux.8 ekey-egd-linux.8
+
+	newconfd "${FILESDIR}"/ekey-egd-linux.conf.2 ekey-egd-linux
+	newinitd "${FILESDIR}"/ekey-egd-linux.init.2 ekey-egd-linux
+
+	dodoc doc/* AUTHORS ChangeLog THANKS
+
+	use minimal && return
+	# from here on, install everything that is not part of the minimal
+	# support.
+
+	emake -C host \
+		DESTDIR="${D}" \
+		MANZCMD=cat MANZEXT= \
+		install-ekeyd
+
+	# We move the daemons around to avoid polluting the available
+	# commands.
+	dodir /usr/libexec
+	mv "${D}"/usr/sbin/ekey*d "${D}"/usr/libexec
+
+	systemd_dounit "${FILESDIR}/ekeyd.service"
+
+	newinitd "${FILESDIR}"/${PN}.init.2 ${PN}
+
+	if use kernel_linux; then
+		local rules="${FILESDIR}/90-ekeyd.rules"
+		udev_newrules ${rules} 90-${PN}.rules
+	fi
+
+	if use munin; then
+		exeinto /usr/libexec/munin/plugins
+		doexe munin/ekeyd_stat_
+
+		insinto /etc/munin/plugin-conf.d
+		newins munin/plugin-conf.d_ekeyd ekeyd
+	fi
+}
+
+pkg_postinst() {
+	elog "${CATEGORY}/${PN} now install also the EGD client service ekey-egd-linux."
+	elog "To use this service, you need enable EGDTCPSocket for the ekeyd service"
+	elog "managing the key(s)."
+	elog ""
+	elog "The daemon will send more entropy to the kernel once the available pool"
+	elog "falls below the value set in the kernel.random.write_wakeup_threshold"
+	elog "sysctl entry."
+	elog ""
+	ewarn "Since version 1.1.4-r1, ekey-egd-linux will *not* set the watermark for"
+	ewarn "you, instead you'll have to configure the sysctl in /etc/sysctl.conf"
+
+	use minimal && return
+	# from here on, document everything that is not part of the minimal
+	# support.
+
+	elog ""
+	elog "To make use of your EntropyKey, make sure to execute ekey-rekey"
+	elog "the first time, and then start the ekeyd service."
+	elog ""
+	elog "By default ekeyd will feed the entropy directly to the kernel's pool;"
+	elog "if your system has jumps in load average, you might prefer using the"
+	elog "EGD compatibility mode, by enabling EGDTCPSocket for ekeyd and then"
+	elog "starting the ekey-egd-linux service."
+	elog ""
+	elog "The same applies if you intend to provide entropy for multiple hosts"
+	elog "over the network. If you want to have the ekey-egd-linux service on"
+	elog "other hosts, you can enable the 'minimal' USE flag."
+	elog ""
+	elog "The service supports multiplexing if you wish to use multiple"
+	elog "keys, just symlink /etc/init.d/ekeyd -> /etc/init.d/ekeyd.identifier"
+	elog "and it'll be looking for /etc/entropykey/identifier.conf"
+	elog ""
+
+		if use kernel_linux; then
+			elog "Some versions of Linux have a faulty CDC ACM driver that stops"
+			elog "EntropyKey from working properly; please check the compatibility"
+			elog "table at http://www.entropykey.co.uk/download/"
+		else
+			elog "Make sure your operating system supports the CDC ACM driver"
+			elog "or otherwise you won't be able to use the EntropyKey."
+		fi
+		elog ""
+		elog "If you're unsure about the working state of the CDC ACM driver"
+		elog "enable the usb USE flag and use the userland USB daemon"
+}

diff --git a/app-crypt/ekeyd/files/ekeyd-1.1.5-makefile-lua-libs.patch b/app-crypt/ekeyd/files/ekeyd-1.1.5-makefile-lua-libs.patch
new file mode 100644
index 00000000000..7a929bdb64c
--- /dev/null
+++ b/app-crypt/ekeyd/files/ekeyd-1.1.5-makefile-lua-libs.patch
@@ -0,0 +1,15 @@
+If LUA_V is passed directly to LIBS it ends up being expanded to an empty
+string at link time.
+
+--- a/host/Makefile
++++ b/host/Makefile
+@@ -111,7 +111,8 @@
+ CFLAGS += '-DEKEYD_VERSION_S=""$(EKEYD_VERSION_S)""'
+ CFLAGS += $(EXTRA_CFLAGS)
+ 
+-LIBS += -llua -lm $(LIBDL)
++LUA_LIBS += -llua$(LUA_V) -lm
++LIBS += $(LUA_LIBS) $(LIBDL)
+ LDFLAGS += $(LIBDIRS)
+ 
+ 

diff --git a/profiles/package.mask b/profiles/package.mask
index 92fab4f1e58..25844470d49 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -498,6 +498,7 @@ dev-lua/luacrypto
 >=app-admin/conky-1.11.4
 >=app-benchmarks/sysbench-1.0.20-r100
 >=app-benchmarks/wrk-4.1.0-r100
+>=app-crypt/ekeyd-1.1.5-r100
 >=app-misc/worker-3.8.3-r100
 =dev-games/openscenegraph-openmw-3.4_p20200425-r100
 =dev-libs/efl-1.25.1-r10


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-11-24 13:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-11-24 13:15 [gentoo-commits] repo/gentoo:master commit in: app-crypt/ekeyd/, profiles/, app-crypt/ekeyd/files/ Marek Szuba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox