diff options
author | Stijn Tintel <stijn@linux-ipv6.be> | 2023-02-02 01:16:18 +0200 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-02-14 03:12:59 +0000 |
commit | 818d8486a6d06bd4fc7b4212d1755f927fd2f529 (patch) | |
tree | b38995a743be27d211d089aff22874e762cc0f84 /app-crypt | |
parent | net-misc/gallery-dl: Stabilize 1.24.4 arm64, #894244 (diff) | |
download | gentoo-818d8486a6d06bd4fc7b4212d1755f927fd2f529.tar.gz gentoo-818d8486a6d06bd4fc7b4212d1755f927fd2f529.tar.bz2 gentoo-818d8486a6d06bd4fc7b4212d1755f927fd2f529.zip |
app-crypt/trousers: add musl patch
[sam: This has been sent upstream but pending moderator approval.]
Bug: https://bugs.gentoo.org/713444
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-crypt')
-rw-r--r-- | app-crypt/trousers/files/trousers-0.3.15-tspi-drop-the-use-of-getpwent_r.patch | 69 | ||||
-rw-r--r-- | app-crypt/trousers/trousers-0.3.15-r1.ebuild | 73 |
2 files changed, 142 insertions, 0 deletions
diff --git a/app-crypt/trousers/files/trousers-0.3.15-tspi-drop-the-use-of-getpwent_r.patch b/app-crypt/trousers/files/trousers-0.3.15-tspi-drop-the-use-of-getpwent_r.patch new file mode 100644 index 000000000000..ab6ef762bce1 --- /dev/null +++ b/app-crypt/trousers/files/trousers-0.3.15-tspi-drop-the-use-of-getpwent_r.patch @@ -0,0 +1,69 @@ +https://bugs.gentoo.org/713444 + +From 2299eadf77ae7a7ec52148b6a8f4ea37e217eafa Mon Sep 17 00:00:00 2001 +From: Stijn Tintel <stijn@linux-ipv6.be> +Date: Thu, 2 Feb 2023 01:06:15 +0200 +Subject: [PATCH] tspi: drop the use of getpwent_r + +On systems with musl libc, libtspi.so is unusable due to the lack of +getpwent_r. As there are multiple historical functions named getpwent_r +that all behave differently, let's just play it safe and stop using it +altogether. + +Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> +--- + src/tspi/ps/tspps.c | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/src/tspi/ps/tspps.c b/src/tspi/ps/tspps.c +index b5e83d0..ae7b3df 100644 +--- a/src/tspi/ps/tspps.c ++++ b/src/tspi/ps/tspps.c +@@ -51,9 +51,7 @@ + + static int user_ps_fd = -1; + static MUTEX_DECLARE_INIT(user_ps_lock); +-#if (defined (__FreeBSD__) || defined (__OpenBSD__)) + static MUTEX_DECLARE_INIT(user_ps_path); +-#endif + static struct flock fl; + + +@@ -66,9 +64,6 @@ get_user_ps_path(char **file) + TSS_RESULT result; + char *file_name = NULL, *home_dir = NULL; + struct passwd *pwp; +-#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) +- struct passwd pw; +-#endif + struct stat stat_buf; + char buf[PASSWD_BUFSIZE]; + uid_t euid; +@@ -96,16 +91,6 @@ get_user_ps_path(char **file) + #else + setpwent(); + while (1) { +-#if (defined (__linux) || defined (linux) || defined(__GLIBC__)) +- rc = getpwent_r(&pw, buf, PASSWD_BUFSIZE, &pwp); +- if (rc) { +- LogDebugFn("USER PS: Error getting path to home directory: getpwent_r: %s", +- strerror(rc)); +- endpwent(); +- return TSPERR(TSS_E_INTERNAL_ERROR); +- } +- +-#elif (defined (__FreeBSD__) || defined (__OpenBSD__)) + if ((pwp = getpwent()) == NULL) { + LogDebugFn("USER PS: Error getting path to home directory: getpwent: %s", + strerror(rc)); +@@ -113,7 +98,6 @@ get_user_ps_path(char **file) + MUTEX_UNLOCK(user_ps_path); + return TSPERR(TSS_E_INTERNAL_ERROR); + } +-#endif + if (euid == pwp->pw_uid) { + home_dir = strdup(pwp->pw_dir); + break; +-- +2.39.1 + diff --git a/app-crypt/trousers/trousers-0.3.15-r1.ebuild b/app-crypt/trousers/trousers-0.3.15-r1.ebuild new file mode 100644 index 000000000000..fd92b70007d2 --- /dev/null +++ b/app-crypt/trousers/trousers-0.3.15-r1.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools linux-info readme.gentoo-r1 systemd udev + +DESCRIPTION="An open-source TCG Software Stack (TSS) v1.1 implementation" +HOMEPAGE="http://trousers.sf.net" +SRC_URI="mirror://sourceforge/trousers/${PN}/${P}.tar.gz" + +LICENSE="CPL-1.0 GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~x86" +IUSE="doc selinux" # gtk + +# gtk support presently does NOT compile. +# gtk? ( >=x11-libs/gtk+-2 ) + +DEPEND="acct-group/tss + acct-user/tss + >=dev-libs/glib-2 + >=dev-libs/openssl-0.9.7:0= + " +RDEPEND="${DEPEND} + selinux? ( sec-policy/selinux-tcsd )" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/${PN}-0.3.13-nouseradd.patch" + "${FILESDIR}/${PN}-0.3.14-Makefile.am-Mark-tddl.a-nodist.patch" + "${FILESDIR}/${P}-tspi-drop-the-use-of-getpwent_r.patch" +) + +DOCS="AUTHORS ChangeLog NICETOHAVES README TODO" + +DOC_CONTENTS=" + If you have problems starting tcsd, please check permissions and + ownership on /dev/tpm* and ~tss/system.data +" + +CONFIG_CHECK="~TCG_TPM" + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # econf --with-gui=$(usex gtk gtk openssl) + econf --with-gui=openssl +} + +src_install() { + default + find "${D}" -name '*.la' -delete || die + + keepdir /var/lib/tpm + use doc && dodoc doc/* + newinitd "${FILESDIR}"/tcsd.initd tcsd + systemd_dounit "${FILESDIR}"/tcsd.service + udev_dorules "${FILESDIR}"/61-trousers.rules + fowners tss:tss /var/lib/tpm + readme.gentoo_create_doc +} + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} |