Skip to contentSkip to conversation

openssh: add linux-pam support

PATCH New Danomi Manchego 2 participants 5 messages Aug 12, 2012 – Sep 16, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 openssh: add linux-pam support

---
 package/openssh/openssh.mk |    5 +++++
 1 file changed, 5 insertions(+)
package/openssh/openssh.mk +5 -0
index 0878fce..815ed33 100644
@@ -12,6 +12,11 @@ OPENSSH_CONF_OPT = --libexecdir=/usr/lib --disable-lastlog --disable-utmp \
 
 OPENSSH_DEPENDENCIES = zlib openssl
 
+ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
+OPENSSH_DEPENDENCIES += linux-pam
+OPENSSH_CONF_OPT += --with-pam
+endif
+
 define OPENSSH_INSTALL_INITSCRIPT
 	$(INSTALL) -D -m 755 package/openssh/S50sshd $(TARGET_DIR)/etc/init.d/S50sshd
 endef
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 2/2 vsftpd: add linux-pam support

---
 package/vsftpd/vsftpd.mk |    5 +++++
 1 file changed, 5 insertions(+)
package/vsftpd/vsftpd.mk +5 -0
index ca711bb..ce042c5 100644
@@ -23,6 +23,11 @@ VSFTPD_DEPENDENCIES += libcap
 VSFTPD_LIBS += -lcap
 endif
 
+ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
+VSFTPD_DEPENDENCIES += linux-pam
+VSFTPD_LIBS += -lpam
+endif
+
 define VSFTPD_BUILD_CMDS
 	$(MAKE) CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
 		LDFLAGS="$(TARGET_LDFLAGS)" LIBS="$(VSFTPD_LIBS)" -C $(@D)
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH 2/2 vsftpd: add linux-pam support

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Danomi" == Danomi Manchego <[email protected]> writes:

Danomi> Signed-off-by: Danomi Manchego <[email protected]>

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 1/2 openssh: add linux-pam support

In reply to Danomi Manchego
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Danomi" == Danomi Manchego <[email protected]> writes:

Danomi> Signed-off-by: Danomi Manchego <[email protected]>

Danomi> ---

 Danomi>  package/openssh/openssh.mk |    5 +++++

Danomi> 1 file changed, 5 insertions(+)

Danomi> diff --git a/package/openssh/openssh.mk b/package/openssh/openssh.mk
Danomi> index 0878fce..815ed33 100644
Danomi> --- a/package/openssh/openssh.mk
Danomi> +++ b/package/openssh/openssh.mk
Danomi> @@ -12,6 +12,11 @@ OPENSSH_CONF_OPT = --libexecdir=/usr/lib --disable-lastlog --disable-utmp \

Danomi> OPENSSH_DEPENDENCIES = zlib openssl

Danomi> +ifeq ($(BR2_PACKAGE_LINUX_PAM),y)
Danomi> +OPENSSH_DEPENDENCIES += linux-pam
Danomi> +OPENSSH_CONF_OPT += --with-pam
Danomi> +endif

What configurations did you test this with? It seems to break here with the internal toolchain because pthread.h somehow gets included:

output/host/usr/bin/arm-linux-gcc -pipe -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wformat-security -Wno-pointer-sign -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -fno-builtin-memset -I. -I. -DSSHDIR=\"/etc\" -D_PATH_SSH_PROGRAM=\"/usr/bin/ssh\" -D_PATH_SSH_ASKPASS_DEFAULT=\"/usr/lib/ssh-askpass\" -D_PATH_SFTP_SERVER=\"/usr/lib/sftp-server\" -D_PATH_SSH_KEY_SIGN=\"/usr/lib/ssh-keysign\" -D_PATH_SSH_PKCS11_HELPER=\"/usr/lib/ssh-pkcs11-helper\" -D_PATH_SSH_PIDDIR=\"/var/run\" -D_PATH_PRIVSEP_CHROOT_DIR=\"/var/empty\" -DHAVE_CONFIG_H -c auth-pam.c auth-pam.c:171: error: static declaration of ?pthread_exit? follows non-static declaration
/home/peko/source/buildroot/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/include/pthread.h:236: error: previous declaration of ?pthread_exit? was here
auth-pam.c:178: error: conflicting types for ?pthread_create?
/home/peko/source/buildroot/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/include/pthread.h:227: error: previous declaration of ?pthread_create? was here
auth-pam.c:204: error: conflicting types for ?pthread_cancel?
/home/peko/source/buildroot/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot/usr/include/pthread.h:487:
error: previous declaration of ?pthread_cancel? was here

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw

PATCH 1/2 openssh: add linux-pam support

Hi Peter,

Quoted 2 lines

What configurations did you test this with? It seems to break here with the internal toolchain because pthread.h somehow gets included:

All my projects use codesourcery toolchains. Sorry, I don't regularly use any uclibc
toolchains. However, I gave it a try, and reproduced the breakdown. It appears
that when PAM is enabled, openssh used a local static definition of the common
pthread functions. But when a uclibc toolchain is used, somehow pthreads.h gets
included indirectly. The exported and static definitions clash, causing the error.

Googling around, it seems that both the openwrt and the oe people have hit on this problem. The oe people elected to simply force openssh to be configured
with pam disabled when a uclibc toolchain is used. The openwrt people, on the other hand, changed all the pthead_*() calls to pthread2_*(). I think a variant
of the second approach would be best - I added macros above each static declaration
to map the static definitions (and the subsequent calls) to different, unique names.

I will resubmit this change as a v2.

Thanks,
Danomi -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120915/993a0426/attachment.html>