summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-09-30 21:12:20 +0100
committerSam James <sam@gentoo.org>2022-09-30 21:32:32 +0100
commit442365d12cdeabc1d2c7ac471d415cec2dd79356 (patch)
treed9bee18cf28c5063a31ab3c9dbde8cff4997dbaa /sys-auth
parentwww-client/fetch: fix configure w/ clang 16 (diff)
downloadgentoo-442365d12cdeabc1d2c7ac471d415cec2dd79356.tar.gz
gentoo-442365d12cdeabc1d2c7ac471d415cec2dd79356.tar.bz2
gentoo-442365d12cdeabc1d2c7ac471d415cec2dd79356.zip
sys-auth/pam_ssh_agent_auth: add 0.10.4; fix build with Clang 16
Closes: https://bugs.gentoo.org/725720 Closes: https://bugs.gentoo.org/870721 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-auth')
-rw-r--r--sys-auth/pam_ssh_agent_auth/Manifest2
-rw-r--r--sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0001-Fix-function-prototypes-in-configure.patch49
-rw-r--r--sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0002-Add-missing-includes-implicit-function-declarations.patch176
-rw-r--r--sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-0.10.4.ebuild70
-rw-r--r--sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-9999.ebuild46
5 files changed, 329 insertions, 14 deletions
diff --git a/sys-auth/pam_ssh_agent_auth/Manifest b/sys-auth/pam_ssh_agent_auth/Manifest
index 023aa7f9e0ca..d53c12c96e1c 100644
--- a/sys-auth/pam_ssh_agent_auth/Manifest
+++ b/sys-auth/pam_ssh_agent_auth/Manifest
@@ -1,2 +1,4 @@
DIST pam_ssh_agent_auth-0.10.3-openssl-1.1.1.patch 46417 BLAKE2B bb62c32fc9c1eb5dc0788b9a535fdf6000812c57a6a758e693406a0d01bcf0cc5ec9f7622c4f21cee74895657a5a3ad13255e19d51e20eca8978e63864266629 SHA512 279fad3be9289c1da06d34e08d2b81a8ad863e07c7b0471419c029aa121abe9942ae4cc4259b7f1e2c2dd32368fc07dc1f9432aba860820455e0d9419c9e7f74
DIST pam_ssh_agent_auth-0.10.3.tar.bz2 1066393 BLAKE2B 07b113d05e09f770d63dbea813ea644199d2b103f9c6d7e5960bfad37cb181ce5a5f111f72e0274c0335e4c217ccd19bd53d61af23f8bc6aff14c1995fc4edc9 SHA512 d75062c4e46b0b011f46aed9704a99049995fea8b5115ff7ee26dad7e93cbcf54a8af7efc6b521109d77dc03c6f5284574d2e1b84c6829cec25610f24fb4bd66
+DIST pam_ssh_agent_auth-0.10.4.tar.gz 307110 BLAKE2B dad39724db4c35ff42e28492c23ab1073baf859ecf797003509b8aa3d29c71e7fae9601d193af1def58c64f149ced07e4e050fac89ae7f42fcbce5241b99df7b SHA512 caccf72174d15e43f4c86a459ac6448682e62116557cf1e1e828955f3d1731595b238df42adec57860e7f341e92daf5d8285020bcb5018f3b8a5145aa32ee1c2
+DIST pam_ssh_agent_auth-ed25519-donna.tar.gz 1169972 BLAKE2B f44fa6c00dbb5cdfe51661cb559428bf24c9886e166366d1700d479f033b8b61621d7821d39a9949a7ef7cd6f5be16be575790a8f6fee03276c2c142f65a792a SHA512 5e8b838bc66bdb1983e62b0ae969449741a3fb223198bce26fe3a8996e324728e8ba0e5259f9ef3db613fd484db21459e98c39367f7240940bc537210c6d7f63
diff --git a/sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0001-Fix-function-prototypes-in-configure.patch b/sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0001-Fix-function-prototypes-in-configure.patch
new file mode 100644
index 000000000000..143f7b7672f4
--- /dev/null
+++ b/sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0001-Fix-function-prototypes-in-configure.patch
@@ -0,0 +1,49 @@
+https://github.com/jbeverly/pam_ssh_agent_auth/pull/41
+
+From ad2cc74dce3a6eaff0df193a2ae3db177e0d594f Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 30 Sep 2022 20:51:17 +0100
+Subject: [PATCH 1/2] Fix function prototypes in configure
+
+This fixes building with Clang 16.
+
+Bug: https://bugs.gentoo.org/870721
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.ac
++++ b/configure.ac
+@@ -500,7 +500,7 @@ int main(void) { exit(0); }
+ AC_DEFINE(HAVE_BUNDLE, 1, [Define if your system uses bundles instead of ELF shared objects])
+ AC_MSG_CHECKING(if we have working getaddrinfo)
+ AC_TRY_RUN([#include <mach-o/dyld.h>
+-main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
++int main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
+ exit(0);
+ else
+ exit(1);
+@@ -1467,7 +1467,7 @@ AC_MSG_CHECKING([for (overly) strict mkstemp])
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdlib.h>
+-main() { char template[]="conftest.mkstemp-test";
++int main() { char template[]="conftest.mkstemp-test";
+ if (mkstemp(template) == -1)
+ exit(1);
+ unlink(template); exit(0);
+@@ -2598,7 +2598,7 @@ dnl test snprintf (broken on SCO w/gcc)
+ #include <stdio.h>
+ #include <string.h>
+ #ifdef HAVE_SNPRINTF
+-main()
++int main()
+ {
+ char buf[50];
+ char expected_out[50];
+@@ -2615,7 +2615,7 @@ main()
+ exit(0);
+ }
+ #else
+-main() { exit(0); }
++int main() { exit(0); }
+ #endif
+ ]])], [ true ], [ AC_DEFINE(BROKEN_SNPRINTF) ],
+ AC_MSG_WARN([cross compiling: Assuming working snprintf()])
diff --git a/sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0002-Add-missing-includes-implicit-function-declarations.patch b/sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0002-Add-missing-includes-implicit-function-declarations.patch
new file mode 100644
index 000000000000..dda8c88128f6
--- /dev/null
+++ b/sys-auth/pam_ssh_agent_auth/files/pam_ssh_agent_auth-0.10.4-0002-Add-missing-includes-implicit-function-declarations.patch
@@ -0,0 +1,176 @@
+https://github.com/jbeverly/pam_ssh_agent_auth/pull/41
+
+From a12729d18c7ddeae9781a20155d5db1396e9e954 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 30 Sep 2022 20:54:45 +0100
+Subject: [PATCH 2/2] Add missing includes (implicit function declarations)
+
+This fixes building with Clang 16.
+
+Bug: https://bugs.gentoo.org/870721
+Closes: https://github.com/jbeverly/pam_ssh_agent_auth/pull/36
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.ac
++++ b/configure.ac
+@@ -388,6 +388,7 @@ case "$host" in
+ [AC_LANG_SOURCE([[
+ #define testmacro foo
+ #define testmacro bar
++#include <stdlib.h>
+ int main(void) { exit(0); }
+ ]])],
+ [ AC_MSG_RESULT(yes) ],
+@@ -500,6 +501,7 @@ int main(void) { exit(0); }
+ AC_DEFINE(HAVE_BUNDLE, 1, [Define if your system uses bundles instead of ELF shared objects])
+ AC_MSG_CHECKING(if we have working getaddrinfo)
+ AC_TRY_RUN([#include <mach-o/dyld.h>
++#include <stdlib.h>
+ int main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16))
+ exit(0);
+ else
+@@ -918,6 +920,7 @@ AC_MSG_CHECKING(compiler and flags for sanity)
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([
+ #include <stdio.h>
++#include <stdlib.h>
+ int main(){exit(0);}
+ ])],
+ [ AC_MSG_RESULT(yes) ],
+@@ -944,6 +947,7 @@ AC_CHECK_FUNCS(dirname, [AC_CHECK_HEADERS(libgen.h)] ,[
+ [AC_LANG_SOURCE([[
+ #include <libgen.h>
+ #include <string.h>
++#include <stdlib.h>
+
+ int main(int argc, char **argv) {
+ char *s, buf[32];
+@@ -1102,6 +1106,7 @@ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <sys/types.h>
+ #include <dirent.h>
++#include <stdlib.h>
+ int main(void){struct dirent d;exit(sizeof(d.d_name)<=sizeof(char));}
+ ]])],
+ [AC_MSG_RESULT(yes)],
+@@ -1384,6 +1389,7 @@ if test "x$ac_cv_func_snprintf" = "xyes" ; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
++#include <stdlib.h>
+ int main(void){char b[5];snprintf(b,5,"123456789");exit(b[4]!='\0');}
+ ]])],
+ [AC_MSG_RESULT(yes)],
+@@ -1408,6 +1414,7 @@ if test "x$ac_cv_func_asprintf" != "xyes" && \
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <stdarg.h>
++#include <stdlib.h>
+
+ int x_snprintf(char *str,size_t count,const char *fmt,...)
+ {
+@@ -1496,6 +1503,7 @@ if test ! -z "$check_for_openpty_ctty_bug"; then
+ #include <sys/fcntl.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
++#include <stdlib.h>
+
+ int
+ main()
+@@ -1543,6 +1551,7 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
+ #include <errno.h>
+@@ -1615,6 +1624,7 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
+ #include <errno.h>
+@@ -1677,6 +1687,7 @@ if test "x$check_for_conflicting_getspnam" = "x1"; then
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [
+ #include <shadow.h>
++#include <stdlib.h>
+ int main(void) {exit(0);}
+ ])],
+ [
+@@ -1750,6 +1761,7 @@ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include <openssl/opensslv.h>
+ #define DATA "conftest.sslincver"
+ int main(void) {
+@@ -1785,6 +1797,7 @@ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include <openssl/opensslv.h>
+ #include <openssl/crypto.h>
+ #define DATA "conftest.ssllibver"
+@@ -1828,7 +1841,9 @@ AC_MSG_CHECKING([whether OpenSSL's headers match the library])
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <string.h>
++#include <openssl/crypto.h>
+ #include <openssl/opensslv.h>
++#include <stdlib.h>
+ int main(void) { exit(SSLeay() == OPENSSL_VERSION_NUMBER ? 0 : 1); }
+ ]])],
+ [
+@@ -1907,6 +1922,7 @@ AC_MSG_CHECKING([whether OpenSSL has crippled AES support])
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <string.h>
++#include <stdlib.h>
+ #include <openssl/evp.h>
+ int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL);}
+ ]])],
+@@ -1952,6 +1968,7 @@ AC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded])
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <string.h>
++#include <stdlib.h>
+ #include <openssl/rand.h>
+ int main(void) { exit(RAND_status() == 1 ? 0 : 1); }
+ ]])],
+@@ -2123,6 +2140,7 @@ if test -z "$have_llong_max"; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
++#include <stdlib.h>
+ /* Why is this so damn hard? */
+ #ifdef __GNUC__
+ # undef __GNUC__
+@@ -2597,6 +2615,7 @@ dnl test snprintf (broken on SCO w/gcc)
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+ #ifdef HAVE_SNPRINTF
+ int main()
+ {
+@@ -2740,6 +2759,7 @@ AC_CACHE_CHECK([for msg_accrights field in struct msghdr],
+ ac_cv_have_accrights_in_msghdr, [
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/uio.h>
+@@ -2767,6 +2787,7 @@ AC_CACHE_CHECK([for msg_control field in struct msghdr],
+ ac_cv_have_control_in_msghdr, [
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/uio.h>
diff --git a/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-0.10.4.ebuild b/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-0.10.4.ebuild
new file mode 100644
index 000000000000..d633a44c02ec
--- /dev/null
+++ b/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-0.10.4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs pam
+
+DESCRIPTION="Simple module to authenticate users against their ssh-agent keys"
+HOMEPAGE="http://pamsshagentauth.sourceforge.net"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/jbeverly/${PN}.git"
+ inherit git-r3
+else
+ ED25519_DONNA_COMMIT="8757bd4cd209cb032853ece0ce413f122eef212c"
+ SRC_URI="https://github.com/jbeverly/pam_ssh_agent_auth/archive/refs/tags/${P}.tar.gz"
+ SRC_URI+=" https://github.com/floodyberry/ed25519-donna/archive/${ED25519_DONNA_COMMIT}.tar.gz -> ${PN}-ed25519-donna.tar.gz"
+ S="${WORKDIR}"/${PN}-${P}
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+DEPEND="
+ dev-libs/openssl:=
+ sys-libs/pam
+"
+RDEPEND="
+ ${DEPEND}
+ virtual/ssh
+"
+# Needed for pod2man
+BDEPEND="dev-lang/perl"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.10.4-0001-Fix-function-prototypes-in-configure.patch
+ "${FILESDIR}"/${PN}-0.10.4-0002-Add-missing-includes-implicit-function-declarations.patch
+)
+
+src_prepare() {
+ default
+
+ # Missing from tag
+ rm -r ed25519-donna || die
+ ln -s "${WORKDIR}"/ed25519-donna-${ED25519_DONNA_COMMIT} "${S}"/ed25519-donna || die
+
+ # For configure patches
+ eautoreconf
+}
+
+src_configure() {
+ pammod_hide_symbols
+
+ # bug #725720
+ export AR="$(type -P $(tc-getAR))"
+
+ econf \
+ --without-openssl-header-check \
+ --libexecdir="$(getpam_mod_dir)"
+}
+
+src_install() {
+ # Don't use emake install as it makes it harder to have proper
+ # install paths.
+ dopammod pam_ssh_agent_auth.so
+ doman pam_ssh_agent_auth.8
+
+ dodoc CONTRIBUTORS
+}
diff --git a/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-9999.ebuild b/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-9999.ebuild
index 0f8057731085..d633a44c02ec 100644
--- a/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-9999.ebuild
+++ b/sys-auth/pam_ssh_agent_auth/pam_ssh_agent_auth-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit pam
+inherit autotools toolchain-funcs pam
DESCRIPTION="Simple module to authenticate users against their ssh-agent keys"
HOMEPAGE="http://pamsshagentauth.sourceforge.net"
@@ -12,31 +12,49 @@ if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://github.com/jbeverly/${PN}.git"
inherit git-r3
else
- SRC_URI="mirror://sourceforge/pamsshagentauth/${PN}/v${PV}/${P}.tar.bz2
- https://dev.gentoo.org/~juippis/distfiles/tmp/pam_ssh_agent_auth-0.10.3-openssl-1.1.1.patch"
+ ED25519_DONNA_COMMIT="8757bd4cd209cb032853ece0ce413f122eef212c"
+ SRC_URI="https://github.com/jbeverly/pam_ssh_agent_auth/archive/refs/tags/${P}.tar.gz"
+ SRC_URI+=" https://github.com/floodyberry/ed25519-donna/archive/${ED25519_DONNA_COMMIT}.tar.gz -> ${PN}-ed25519-donna.tar.gz"
+ S="${WORKDIR}"/${PN}-${P}
KEYWORDS="~amd64 ~arm ~x86"
fi
LICENSE="MIT"
SLOT="0"
-IUSE=""
+
+DEPEND="
+ dev-libs/openssl:=
+ sys-libs/pam
+"
+RDEPEND="
+ ${DEPEND}
+ virtual/ssh
+"
+# Needed for pod2man
+BDEPEND="dev-lang/perl"
PATCHES=(
- "${DISTDIR}/${P}-openssl-1.1.1.patch"
+ "${FILESDIR}"/${PN}-0.10.4-0001-Fix-function-prototypes-in-configure.patch
+ "${FILESDIR}"/${PN}-0.10.4-0002-Add-missing-includes-implicit-function-declarations.patch
)
-DEPEND="sys-libs/pam
- dev-libs/openssl:0="
-RDEPEND="${DEPEND}
- virtual/ssh"
+src_prepare() {
+ default
+
+ # Missing from tag
+ rm -r ed25519-donna || die
+ ln -s "${WORKDIR}"/ed25519-donna-${ED25519_DONNA_COMMIT} "${S}"/ed25519-donna || die
-# needed for pod2man
-DEPEND="${DEPEND}
- dev-lang/perl"
+ # For configure patches
+ eautoreconf
+}
src_configure() {
pammod_hide_symbols
+ # bug #725720
+ export AR="$(type -P $(tc-getAR))"
+
econf \
--without-openssl-header-check \
--libexecdir="$(getpam_mod_dir)"