From 709c4d66e0b107ca606941b988bad717c0b45d9b Mon Sep 17 00:00:00 2001 From: Denys Dmytriyenko Date: Tue, 17 Mar 2009 14:32:59 -0400 Subject: rename packages/ to recipes/ per earlier agreement See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko Acked-by: Mike Westerhof Acked-by: Philip Balister Acked-by: Khem Raj Acked-by: Marcin Juszkiewicz Acked-by: Koen Kooi Acked-by: Frans Meulenbroeks --- recipes/pam/files/libpam-config.patch | 261 ++++++++++++++++++++++++++++++ recipes/pam/files/libpam-make.patch | 10 ++ recipes/pam/libpam-1.0.2/pam-nodocs.patch | 35 ++++ recipes/pam/libpam_0.79.bb | 71 ++++++++ recipes/pam/libpam_1.0.2.bb | 50 ++++++ 5 files changed, 427 insertions(+) create mode 100644 recipes/pam/files/libpam-config.patch create mode 100644 recipes/pam/files/libpam-make.patch create mode 100644 recipes/pam/libpam-1.0.2/pam-nodocs.patch create mode 100644 recipes/pam/libpam_0.79.bb create mode 100644 recipes/pam/libpam_1.0.2.bb (limited to 'recipes/pam') diff --git a/recipes/pam/files/libpam-config.patch b/recipes/pam/files/libpam-config.patch new file mode 100644 index 0000000000..c1b7aef5e9 --- /dev/null +++ b/recipes/pam/files/libpam-config.patch @@ -0,0 +1,261 @@ +--- Linux-PAM-0.79/.pc/ac-define.patch/configure.in 2005-03-30 06:32:52.000000000 -0800 ++++ Linux-PAM-0.79/configure.in 2005-04-15 00:14:58.514541928 -0700 +@@ -13,8 +13,8 @@ + + AC_SUBST(LIBPAM_VERSION_MAJOR) + AC_SUBST(LIBPAM_VERSION_MINOR) +-AC_DEFINE(LIBPAM_VERSION_MAJOR) +-AC_DEFINE(LIBPAM_VERSION_MINOR) ++AC_DEFINE_UNQUOTED(LIBPAM_VERSION_MAJOR, $LIBPAM_VERSION_MAJOR, [libpam major version number]) ++AC_DEFINE_UNQUOTED(LIBPAM_VERSION_MINOR, $LIBPAM_VERSION_MINOR, [libpam minor version number]) + + dnl + dnl By default, everything under PAM is installed under the root fs. +@@ -28,8 +28,6 @@ + dnl + LOCALSRCDIR=`/bin/pwd` ; AC_SUBST(LOCALSRCDIR) + LOCALOBJDIR=`/bin/pwd` ; AC_SUBST(LOCALOBJDIR) +-OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` +-AC_SUBST(OS) + + dnl + dnl Rules needed for the following (hardcoded Linux defaults for now) +@@ -45,7 +43,16 @@ + USESONAME=yes ; AC_SUBST(USESONAME) + SOSWITCH="-Wl,-soname -Wl," ; AC_SUBST(SOSWITCH) + NEEDSONAME=yes ; AC_SUBST(NEEDSONAME) +-LDCONFIG=/sbin/ldconfig ; AC_SUBST(LDCONFIG) ++ ++dnl Cross compiling requires no ldconfig, as the library will not be used here. ++if test "$cross_compiling" = yes ; then ++ LDCONFIG=: ++else ++ LDCONFIG=/sbin/ldconfig ++fi ++AC_SUBST(LDCONFIG) ++MV=mv ++AC_SUBST(MV) + + dnl Checks for programs. + AC_PROG_CC +@@ -63,24 +70,24 @@ + dnl lots of debugging information goes to /tmp/pam-debug.log + AC_ARG_ENABLE(debug, + [ --enable-debug specify you are building with debugging on], +- WITH_DEBUG=yes ; AC_DEFINE(DEBUG) , WITH_DEBUG=no) ++ WITH_DEBUG=yes ; AC_DEFINE(DEBUG, 1, [lots of stuff gets written to /tmp/pam-debug.log]) , WITH_DEBUG=no) + AC_SUBST(WITH_DEBUG) + + AC_ARG_ENABLE(memory-debug, + [ --enable-memory-debug specify you want every malloc etc. call tracked], +- WITH_MEMORY_DEBUG=yes ; AC_DEFINE(MEMORY_DEBUG) , WITH_MEMORY_DEBUG=no) ++ WITH_MEMORY_DEBUG=yes ; AC_DEFINE(MEMORY_DEBUG, 1, [track all memory allocations and liberations]) , WITH_MEMORY_DEBUG=no) + AC_SUBST(WITH_MEMORY_DEBUG) + + dnl build specially named libraries (for debugging purposes) + AC_ARG_ENABLE(libdebug, + [ --enable-libdebug specify you are building debugging libraries], +- WITH_LIBDEBUG=yes ; AC_DEFINE(WITH_LIBDEBUG) , WITH_LIBDEBUG=no) ++ WITH_LIBDEBUG=yes ; AC_DEFINE(WITH_LIBDEBUG, 1, [build libraries with different names (suffixed with 'd')]) , WITH_LIBDEBUG=no) + AC_SUBST(WITH_LIBDEBUG) + + dnl have prelude support + AC_ARG_ENABLE(prelude, + [ --enable-prelude build prelude ids support], +- WITH_PRELUDE=yes ; AC_DEFINE(WITH_PRELUDE), WITH_PRELUDE=no) ++ WITH_PRELUDE=yes ; AC_DEFINE(WITH_PRELUDE, 1, [build prelude ids support]), WITH_PRELUDE=no) + AC_SUBST(WITH_PRELUDE) + + dnl packaging convenience +@@ -128,16 +135,16 @@ + + AC_ARG_ENABLE(pamlocking, + [ --enable-pamlocking configure libpam to observe a global authentication lock], +- WITH_PAMLOCKING=yes ; AC_DEFINE(PAM_LOCKING) , WITH_PAMLOCKING=no) ++ WITH_PAMLOCKING=yes ; AC_DEFINE(PAM_LOCKING, 1, [provide a global locking facility within libpam]) , WITH_PAMLOCKING=no) + AC_SUBST(WITH_PAMLOCKING) + + AC_ARG_ENABLE(uglyhack, + [ --enable-uglyhack configure libpam to try to honor old pam_strerror syntax], +- AC_DEFINE(UGLY_HACK_FOR_PRIOR_BEHAVIOR_SUPPORT)) ++ AC_DEFINE(UGLY_HACK_FOR_PRIOR_BEHAVIOR_SUPPORT, 1, [ugly hack to partially support old pam_strerror syntax])) + + AC_ARG_ENABLE(read-both-confs, + [ --enable-read-both-confs read both /etc/pam.d and /etc/pam.conf files], +- AC_DEFINE(PAM_READ_BOTH_CONFS)) ++ AC_DEFINE(PAM_READ_BOTH_CONFS, 1, [read both confs - read /etc/pam.d and /etc/pam.conf in serial])) + AC_SUBST(PAM_READ_BOTH_CONFS) + + AC_ARG_ENABLE(static-libpam, [ --enable-static-libpam build a libpam.a library], +@@ -182,7 +189,7 @@ + pam_mail_spool="\"/var/spool/mail\"", + pam_mail_spool="\"/var/spool/mail\"") + fi +-AC_DEFINE_UNQUOTED(PAM_PATH_MAILDIR, $pam_mail_spool) ++AC_DEFINE_UNQUOTED(PAM_PATH_MAILDIR, $pam_mail_spool, [location of the mail spool directory]) + + dnl Checks for libraries. + AC_CHECK_LIB(c, __libc_sched_setscheduler, PAM_NEEDS_LIBC=, PAM_NEEDS_LIBC=-lc) +@@ -200,47 +207,50 @@ + dnl At least on Solaris, the existing libcrack must be dynamic. + dnl Ought to introduce a check for this. + dnl +-AC_CHECK_LIB(crack, FascistCheck, HAVE_LIBCRACK=yes ; AC_DEFINE(HAVE_LIBCRACK), ++AC_CHECK_LIB(crack, FascistCheck, HAVE_LIBCRACK=yes ; AC_DEFINE(HAVE_LIBCRACK, 1, [we have libcrack available]), + HAVE_LIBCRACK=no) + AC_SUBST(HAVE_LIBCRACK) + +-AC_CHECK_LIB(crypt, crypt, HAVE_LIBCRYPT=yes ; AC_DEFINE(HAVE_LIBCRYPT), ++AC_CHECK_LIB(crypt, crypt, HAVE_LIBCRYPT=yes ; AC_DEFINE(HAVE_LIBCRYPT, 1, [we have libcrypt - its not part of libc (do we need both definitions?)]), + HAVE_LIBCRYPT=no) + AC_SUBST(HAVE_LIBCRYPT) +-AC_CHECK_LIB(util, logwtmp, HAVE_LIBUTIL=yes ; AC_DEFINE(HAVE_LIBUTIL), ++AC_CHECK_LIB(util, logwtmp, HAVE_LIBUTIL=yes ; AC_DEFINE(HAVE_LIBUTIL, 1, [we have libutil]), + HAVE_LIBUTIL=no) + AC_SUBST(HAVE_LIBUTIL) +-AC_CHECK_LIB(ndbm, dbm_store, HAVE_LIBNDBM=yes ; AC_DEFINE(HAVE_LIBNDBM), ++AC_CHECK_LIB(ndbm, dbm_store, HAVE_LIBNDBM=yes ; AC_DEFINE(HAVE_LIBNDBM, 1, [we have libndbm]), + HAVE_LIBNDBM=no) + AC_SUBST(HAVE_LIBNDBM) +-AC_CHECK_LIB(db, dbm_store, HAVE_LIBDB=yes ; AC_DEFINE(HAVE_LIBDB), ++AC_CHECK_LIB(db, dbm_store, HAVE_LIBDB=yes ; AC_DEFINE(HAVE_LIBDB, 1, [we have libdb]), + HAVE_LIBDB=no) + if test x$HAVE_LIBDB != xyes ; then + AC_CHECK_LIB(db, db_create, HAVE_LIBDB=yes ; AC_DEFINE(HAVE_LIBDB), + HAVE_LIBDB=no) + fi + AC_SUBST(HAVE_LIBDB) +-AC_CHECK_LIB(fl, yylex, yyterminate, HAVE_LIBFL=yes ; AC_DEFINE(HAVE_LIBFL), ++AC_CHECK_LIB(fl, yylex, yyterminate, HAVE_LIBFL=yes ; AC_DEFINE(HAVE_LIBFL, 1, [have libfl (Flex)]), + HAVE_LIBFL=no) + AC_SUBST(HAVE_LIBFL) +-AC_CHECK_LIB(nsl, yp_maplist, HAVE_LIBNSL=yes ; AC_DEFINE(HAVE_LIBNSL), ++AC_CHECK_LIB(nsl, yp_maplist, HAVE_LIBNSL=yes ; AC_DEFINE(HAVE_LIBNSL, 1, [have libnsl - instead of libc support]), + HAVE_LIBNSL=no) + AC_SUBST(HAVE_LIBNSL) + + if test $HAVE_LIBNSL = yes ; then + pwdblibs="$pwdblibs -lnsl" + fi +-AC_CHECK_LIB(pwdb, pwdb_db_name, HAVE_LIBPWDB=yes ; AC_DEFINE(HAVE_LIBPWDB), ++AC_CHECK_LIB(pwdb, pwdb_db_name, HAVE_LIBPWDB=yes ; AC_DEFINE(HAVE_LIBPWDB, 1, [have libpwdb - don't expect this to be important for much longer]), + HAVE_LIBPWDB=no,$pwdblibs) + AC_SUBST(HAVE_LIBPWDB) + unset pwdblibs + +-AC_CHECK_LIB(fl, yywrap, HAVE_LIBFLEX=yes ; AC_DEFINE(HAVE_LIBFLEX), ++AC_CHECK_LIB(fl, yywrap, HAVE_LIBFLEX=yes ; AC_DEFINE(HAVE_LIBFLEX, 1, [have libflex]), + HAVE_LIBFLEX=no) + AC_SUBST(HAVE_LIBFLEX) +-AC_CHECK_LIB(l, yywrap, HAVE_LIBLEX=yes ; AC_DEFINE(HAVE_LIBLEX), ++AC_CHECK_LIB(l, yywrap, HAVE_LIBLEX=yes ; AC_DEFINE(HAVE_LIBLEX, 1, [have liblex]), + HAVE_LIBLEX=no) + AC_SUBST(HAVE_LIBLEX) ++AC_CHECK_LIB(cap, capget, HAVE_LIBCAP=yes ; AC_DEFINE(HAVE_LIBCAP, 1, [have libcap (POSIX 1003.e capabilities)]), ++ HAVE_LIBCAP=no) ++AC_SUBST(HAVE_LIBCAP) + + dnl Checks for header files. + AC_HEADER_DIRENT +@@ -308,44 +318,38 @@ + -Wnested-externs -Winline -Wshadow" + + if test "$GCC" = yes; then +- CC=gcc ; AC_SUBST(CC) + ### May need per-OS attention + ### Example: -D_POSIX_SOURCE: needed on Linux but harms Solaris. +- case $OS in +- linux) ++ case "$target_alias" in ++ *linux) ++ OS="linux" + OS_CFLAGS= + LD_D="$CC -shared $LDFLAGS" + WARNINGS="$GCC_WARNINGS" + PIC="-fPIC" + DYNTYPE=so +- LD=gcc + LD_L="$CC -shared $LDFLAGS" +- RANLIB=: +- STRIP=strip + CC_STATIC="-Xlinker -export-dynamic" + ;; +- sunos) ++ *sunos) ++ OS="sunos" + OS_CFLAGS="-ansi -pedantic" + LD_D="gcc -shared -Xlinker -x" + WARNINGS="$GCC_WARNINGS" + PIC="-fPIC" + DYNTYPE=so +- LD=ld + LD_L="$LD -x -shared" +- RANLIB=ranlib +- STRIP=strip + CC_STATIC="-Xlinker -export-dynamic" + ;; +- aix) ++ *aix) ++ OS="aix" + OS_CFLAGS="" + DYNTYPE=lo +- LD=ld + LD_L=ld -bexpall -bM:SRE -bnoentry + LD_D="$LD_L" +- RANLIB=ranlib +- STRIP=strip + ;; + *) ++ OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + OS_CFLAGS="" + ;; + esac +@@ -354,34 +358,31 @@ + ### Non-gcc needs attention on per-OS basis + ### + case "$OS" in +- darwin) ++ *darwin) ++ OS="darwin" + # add some stuff here (see sourceforge bug 534205) + # DOCDIR=/System/Documentation/Administration/Libraries/PAM + # MANDIR=/usr/share/man + ;; +- solaris) ++ *solaris) + ### Support for Solaris-C ++ OS="solaris" + OS_CFLAGS="" + WARNINGS="" + PIC="-K pic" +- LD=ld + LD_D="cc -z text -G -R." + LD_L="$LD_D" +- RANLIB=ranlib +- STRIP=strip + CC_STATIC= + ;; +- irix*) ++ *irix*) ++ OS="irix" + OSRELEASE=`uname -r` + if test "$OSRELEASE" = 6.5; then + OS_CFLAGS="" + WARNINGS="-fullwarn" + PIC= #PIC code is default for IRIX +- LD="cc -shared" # modules friendly approach + LD_D="cc -shared" + LD_L="ld -G -z redlocsym" +- RANLIB=echo +- STRIP=strip + CC_STATIC= + else + echo "IRIX prior to 6.5 not allowed for" +@@ -394,6 +395,7 @@ + esac + fi + ++AC_SUBST(OS) + AC_SUBST(DYNTYPE) + AC_SUBST(OS_CFLAGS) + AC_SUBST(WARNINGS) diff --git a/recipes/pam/files/libpam-make.patch b/recipes/pam/files/libpam-make.patch new file mode 100644 index 0000000000..4991231aa5 --- /dev/null +++ b/recipes/pam/files/libpam-make.patch @@ -0,0 +1,10 @@ +--- Linux-PAM-0.79/Make.Rules.in.orig 2005-04-15 01:28:45.695508120 -0700 ++++ Linux-PAM-0.79/Make.Rules.in 2005-04-15 01:28:10.274892872 -0700 +@@ -122,3 +122,7 @@ + ifdef DYNAMIC + CFLAGS += $(PIC) + endif ++ ++ifdef DESTDIR ++FAKEROOT = $(DESTDIR) ++endif diff --git a/recipes/pam/libpam-1.0.2/pam-nodocs.patch b/recipes/pam/libpam-1.0.2/pam-nodocs.patch new file mode 100644 index 0000000000..895f0e182a --- /dev/null +++ b/recipes/pam/libpam-1.0.2/pam-nodocs.patch @@ -0,0 +1,35 @@ +--- /tmp/Makefile.am 2008-09-05 15:16:21.000000000 +0200 ++++ Linux-PAM-1.0.2/Makefile.am 2008-09-05 15:16:56.153198000 +0200 +@@ -5,9 +5,9 @@ + AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news + + if STATIC_MODULES +-SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests ++SUBDIRS = modules libpam libpamc libpam_misc tests po conf examples xtests + else +-SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests ++SUBDIRS = libpam tests libpamc libpam_misc modules po conf examples xtests + endif + + CLEANFILES = *~ +@@ -28,19 +28,7 @@ + + ACLOCAL_AMFLAGS = -I m4 + +-release: dist releasedocs +- +-release-docs: releasedocs +- +-releasedocs: +- rm -rf Linux-PAM-$(VERSION) +- mkdir -p Linux-PAM-$(VERSION)/doc +- make -C doc releasedocs +- tar zfc Linux-PAM-$(VERSION)-docs.tar.gz \ +- Linux-PAM-$(VERSION)/doc +- tar jfc Linux-PAM-$(VERSION)-docs.tar.bz2 \ +- Linux-PAM-$(VERSION)/doc +- rm -rf Linux-PAM-$(VERSION) ++release: dist + + xtests: + make -C xtests xtests diff --git a/recipes/pam/libpam_0.79.bb b/recipes/pam/libpam_0.79.bb new file mode 100644 index 0000000000..7a5ff4bdc8 --- /dev/null +++ b/recipes/pam/libpam_0.79.bb @@ -0,0 +1,71 @@ +# PAM authentication library for Linux - Linux-PAM +# +# NOTE: this is a library with plug-in modules, at present all +# the modules are built and installed into the main libpam +# ipkg. This causes lots of problems (e.g. it is not possible +# to build on uClibC) so *do not* rely on this behaviour - +# assume the modules will be moved to individual ipks (like +# the kernel modules.) +# +DESCRIPTION = "\ +PAM authentication library for Linux. \ +Linux-PAM (Pluggable Authentication Modules for Linux) is a \ +library that enables the local system administrator to choose \ +how individual applications authenticate users. For an \ +overview of the Linux-PAM library see the Linux-PAM System \ +Administrators' Guide." +HOMEPAGE = "http://www.kernel.org/pub/linux/libs/pam" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPLv2" +PR = "r2" + +# The project is actually called Linux-PAM but that gives +# a bad OE package name because of the upper case characters +pn = "Linux-PAM" +p = "${pn}-${PV}" +S = "${WORKDIR}/${p}" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/pam/pre/library/${p}.tar.bz2" + +# the patches are necessary to get the autoreconf and cross build +# to work correctly +SRC_URI += " file://libpam-config.patch;patch=1" +# The Makefile uses 'FAKEROOT' not DESTDIR. +SRC_URI += " file://libpam-make.patch;patch=1" + +inherit autotools + +# maintain the pam default layout +EXTRA_OECONF += " --includedir=${includedir}/security" + +# EXTRA_OECONF += " --enable-static-libpam" +# Disable building of the documentation - it requires too many different +# programs installed on the build system and is a waste of time. This +# leaves the man documentation in the build. +EXTRA_OECONF += "ac_cv_prog_HAVE_SGML2TXT=no" +EXTRA_OECONF += "ac_cv_prog_HAVE_SGML2HTML=no" +EXTRA_OECONF += "ac_cv_prog_HAVE_SGML2LATEX=no" +EXTRA_OECONF += "ac_cv_prog_HAVE_PS2PDF=no" +EXTRA_OECONF += "ac_cv_prog_HAVE_SGML2PS=no" + +LEAD_SONAME = "libpam.so.*" + +# This is crude - the modules maybe should each have independent ipks +FILES_${PN} += "/usr/lib/security/pam_*.so /usr/lib/security/pam_filter/*" + +do_stage() { + autotools_stage_all +} + +# An attempt to build on uclibc will fail, causing annoyance, +# so force the package to be skipped here (this will cause a +# 'nothing provides' error) +#NOTE: this can be fixed, but it means hacking the modules so +# that those which use YP don't get built on uClibC, this looks +# like a big patch... +python () { + os = bb.data.getVar("TARGET_OS", d, 1) + if os == "linux-uclibc": + raise bb.parse.SkipPackage("Some PAM modules require rpcsvc/yp.h, uClibC does not provide this") +} diff --git a/recipes/pam/libpam_1.0.2.bb b/recipes/pam/libpam_1.0.2.bb new file mode 100644 index 0000000000..2acbe0ac6f --- /dev/null +++ b/recipes/pam/libpam_1.0.2.bb @@ -0,0 +1,50 @@ +DESCRIPTION = "\ +PAM authentication library for Linux. \ +Linux-PAM (Pluggable Authentication Modules for Linux) is a \ +library that enables the local system administrator to choose \ +how individual applications authenticate users. For an \ +overview of the Linux-PAM library see the Linux-PAM System \ +Administrators' Guide." +HOMEPAGE = "http://kernel.org/pub/linux/libs/pam" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPLv2" + +DEPENDS = "flex flex-native" + +PR = "r2" + +# The project is actually called Linux-PAM but that gives +# a bad OE package name because of the upper case characters +pn = "Linux-PAM" +p = "${pn}-${PV}" +S = "${WORKDIR}/${p}" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/pam/library/${p}.tar.bz2 \ + file://pam-nodocs.patch;patch=1 " + +inherit autotools + +LEAD_SONAME = "libpam.so.*" + +# maintain the pam default layout +EXTRA_OECONF += " --includedir=${includedir}/security" + +PACKAGES_DYNAMIC += " pam-plugin-*" +python populate_packages_prepend () { + import os.path + + pam_libdir = bb.data.expand('${libdir}/security', d) + pam_libdirdebug = bb.data.expand('${libdir}/security/.debug', d) + pam_filterdir = bb.data.expand('${libdir}/security/pam_filter', d) + do_split_packages(d, pam_libdir, '^pam(.*)\.so$', 'pam-plugin%s', 'PAM plugin for %s', extra_depends='') + do_split_packages(d, pam_libdir, '^pam(.*)\.la$', 'pam-plugin%s-dev', 'PAM plugin for %s dev', extra_depends='') + if os.path.exists(pam_libdirdebug): + do_split_packages(d, pam_libdirdebug, '^pam(.*)\.so$', 'pam-plugin%s-dbg', 'PAM plugin for %s debugging symbols', extra_depends='') + do_split_packages(d, pam_filterdir, '^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='') +} + + +do_stage() { + autotools_stage_all +} -- cgit 1.2.3-korg