autofs: Upgrade to 5.1.7

License-Update:  correct fsf address [1]

- Drop upstreamed autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch
- Forward port remaining patches
- Package libautofs.so which is new
- Add a patch to fix build on musl systems
- Detailed ChangeLog [2]

[1] https://git.kernel.org/pub/scm/linux/storage/autofs/autofs.git/commit/COPYING?id=b74dcdd3f6b05522388729141c29286829c302fc
[2] https://www.spinics.net/lists/autofs/msg02344.html

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2021-07-16 15:52:43 -07:00
parent d774c88023
commit 7d64ce0490
7 changed files with 175 additions and 91 deletions

View File

@ -0,0 +1,124 @@
From 9fe90ab1e333b2e2bed370ff13ba552eb54c3aaf Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 17 Jul 2021 09:56:28 -0700
Subject: [PATCH] Define __SWORD_TYPE if undefined
These fixes are inspired when building autofs on musl
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
daemon/automount.c | 20 ++++++++++++++------
include/hash.h | 5 +++++
lib/log.c | 6 +++++-
3 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/daemon/automount.c b/daemon/automount.c
index e476f6b..3a1514b 100644
--- a/daemon/automount.c
+++ b/daemon/automount.c
@@ -1,7 +1,7 @@
/* ----------------------------------------------------------------------- *
*
* automount.c - Linux automounter daemon
- *
+ *
* Copyright 1997 Transmeta Corporation - All Rights Reserved
* Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
* Copyright 2001-2005 Ian Kent <raven@themaw.net>
@@ -11,7 +11,7 @@
* the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
* USA; either version 2 of the License, or (at your option) any later
* version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -40,6 +40,14 @@
#include <systemd/sd-daemon.h>
#endif
+#ifndef __SWORD_TYPE
+# if __WORDSIZE == 32 /* System word size */
+# define __SWORD_TYPE int
+# else /* __WORDSIZE == 64 */
+# define __SWORD_TYPE long int
+# endif
+#endif
+
#include "automount.h"
#if defined(LIBXML2_WORKAROUND) || defined(TIRPC_WORKAROUND)
#include <dlfcn.h>
@@ -282,7 +290,7 @@ int rmdir_path(struct autofs_point *ap, const char *path, dev_t dev)
dev, buf, st.st_dev);
return -1;
}
-
+
/*
* Last element of path may be a symbolic link; all others
* are directories (and the last directory element is
@@ -455,7 +463,7 @@ int count_mounts(struct autofs_point *ap, const char *path, dev_t dev)
counter.count = 0;
counter.dev = dev;
-
+
if (walk_tree(path, counter_fn, 1, ap, &counter) == -1)
return -1;
@@ -811,7 +819,7 @@ static char *automount_path_to_fifo(unsigned logopt, const char *path)
/*
* An automount path can be made up of subdirectories. So, to
* create the fifo name, we will just replace instances of '/' with
- * '-'.
+ * '-'.
*/
p = fifo_name + strlen(fifodir);
while (*p != '\0') {
@@ -1640,7 +1648,7 @@ static void return_start_status(void *arg)
sc->done = 1;
/*
- * Startup condition mutex must be locked during
+ * Startup condition mutex must be locked during
* the startup process.
*/
status = pthread_cond_signal(&sc->cond);
diff --git a/include/hash.h b/include/hash.h
index 2447f29..6f0dee6 100644
--- a/include/hash.h
+++ b/include/hash.h
@@ -5,6 +5,11 @@
#include <sys/types.h>
#include <stdint.h>
+#include <linux/stddef.h>
+
+#ifndef __GLIBC__
+#include <sys/reg.h>
+#endif
/*
* The "GOLDEN_RATIO_PRIME" is used in ifs/btrfs/brtfs_inode.h and
diff --git a/lib/log.c b/lib/log.c
index 0cb47d7..39b1e3b 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -38,7 +38,11 @@ static char *prepare_attempt_prefix(const char *msg)
char buffer[ATTEMPT_ID_SIZE + 1];
char *prefixed_msg = NULL;
- attempt_id = pthread_getspecific(key_thread_attempt_id);
+ if (key_thread_attempt_id) {
+ attempt_id = pthread_getspecific(key_thread_attempt_id);
+ } else {
+ attempt_id = 0;
+ }
if (attempt_id) {
int len = sizeof(buffer) + 1 + strlen(msg) + 1;
--
2.32.0

View File

@ -15,12 +15,10 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
configure.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.in b/configure.in
index 493b9f1..268d06b 100644
--- a/configure.in
+++ b/configure.in
@@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl
AC_INIT(.autofs-5.1.6)
AC_INIT(.autofs-5.1.7)
# for pkg-config macros
-m4_include([/usr/share/aclocal/pkg.m4])
@ -28,6 +26,3 @@ index 493b9f1..268d06b 100644
#
# autofs installs by default in /usr
--
2.7.4

View File

@ -16,29 +16,27 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
modules/lookup_multi.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/daemon/lookup.c b/daemon/lookup.c
index 18df935..d35d484 100644
--- a/daemon/lookup.c
+++ b/daemon/lookup.c
@@ -382,7 +382,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source
if (!S_ISREG(st.st_mode))
@@ -397,7 +397,7 @@ static int read_file_source_instance(str
return NSS_STATUS_NOTFOUND;
}
- if (st.st_mode & __S_IEXEC)
+ if (st.st_mode & S_IEXEC)
type = src_prog;
else
type = src_file;
@@ -942,7 +942,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_
if (!S_ISREG(st.st_mode))
@@ -930,7 +930,7 @@ static int lookup_name_file_source_insta
return NSS_STATUS_NOTFOUND;
}
- if (st.st_mode & __S_IEXEC)
+ if (st.st_mode & S_IEXEC)
type = src_prog;
else
type = src_file;
@@ -1118,7 +1118,7 @@ static struct map_source *lookup_get_map_source(struct master_mapent *entry)
@@ -1077,7 +1077,7 @@ static struct map_source *lookup_get_map
if (!S_ISREG(st.st_mode))
return NULL;
@ -47,11 +45,9 @@ index 18df935..d35d484 100644
type = "program";
else
type = "file";
diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c
index bb9f88c..cf109de 100644
--- a/modules/lookup_multi.c
+++ b/modules/lookup_multi.c
@@ -247,7 +247,7 @@ static struct lookup_mod *nss_open_lookup(const char *format, int argc, const ch
@@ -247,7 +247,7 @@ static struct lookup_mod *nss_open_looku
continue;
}
@ -60,6 +56,3 @@ index bb9f88c..cf109de 100644
type = src_prog;
else
type = src_file;
--
2.7.4

View File

@ -1,30 +0,0 @@
From 2256b8aa98cff15ddf2a8d36496e6c9125927901 Mon Sep 17 00:00:00 2001
From: Andreas Oberritter <obi@opendreambox.org>
Date: Wed, 13 Mar 2013 16:17:08 +0100
Subject: [PATCH] autofs-5.0.7: include linux/nfs.h directly in rpc_subs.h
Upstream-Status: Pending
Fixes compile error with uclibc. Glibc's nfs/nfs.h contains
nothing but "#include linux/nfs.h". rpc_subs.h already includes
other linux/nfs*.h files directly.
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
---
include/rpc_subs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/rpc_subs.h b/include/rpc_subs.h
index e744e89..83db47e 100644
--- a/include/rpc_subs.h
+++ b/include/rpc_subs.h
@@ -18,7 +18,7 @@
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
-#include <nfs/nfs.h>
+#include <linux/nfs.h>
#include <linux/nfs2.h>
#include <linux/nfs3.h>

View File

@ -23,21 +23,9 @@ Signed-off-by: Roy Li <rongqing.li@windriver.com>
modules/Makefile | 3 ++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lib/Makefile b/lib/Makefile
index 4798a4b..c40cf86 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -57,7 +57,8 @@ mount_xdr.o: mount_xdr.c
master_tok.c: master_tok.l
$(LEX) -o$@ -Pmaster_ $?
-master_parse.tab.c master_parse.tab.h: master_parse.y
+master_parse.tab.h: master_parse.tab.c
+master_parse.tab.c: master_parse.y
$(YACC) -v -d -p master_ -b master_parse $?
master_tok.o: master_tok.c master_parse.tab.h
@@ -67,7 +68,8 @@ master_parse.tab.o: master_parse.tab.c master_parse.tab.h
@@ -53,7 +53,8 @@ mount_xdr.o: mount_xdr.c
nss_tok.c: nss_tok.l
$(LEX) -o$@ -Pnss_ $?
@ -47,8 +35,6 @@ index 4798a4b..c40cf86 100644
$(YACC) -v -d -p nss_ -b nss_parse $?
nss_tok.o: nss_tok.c nss_parse.tab.h
diff --git a/modules/Makefile b/modules/Makefile
index d9ab06c..abc7698 100644
--- a/modules/Makefile
+++ b/modules/Makefile
@@ -103,7 +103,8 @@ amd_tok.c: amd_tok.l
@ -61,3 +47,30 @@ index d9ab06c..abc7698 100644
$(YACC) -v -d -p amd_ -b amd_parse $?
amd_parse.tab.o: amd_parse.tab.c amd_parse.tab.h
--- a/daemon/Makefile
+++ b/daemon/Makefile
@@ -16,7 +16,7 @@ YACCSRC = master_tok.c master_parse.tab.
version := $(shell cat ../.version)
CFLAGS += -rdynamic $(DAEMON_CFLAGS) -D_GNU_SOURCE -I../include
-CFLAGS += -DAUTOFS_LIB_DIR=\"$(autofslibdir)\"
+CFLAGS += -DAUTOFS_LIB_DIR=\"$(autofslibdir)\"
CFLAGS += -DAUTOFS_MAP_DIR=\"$(autofsmapdir)\"
CFLAGS += -DAUTOFS_CONF_DIR=\"$(autofsconfdir)\"
CFLAGS += -DAUTOFS_FIFO_DIR=\"$(autofsfifodir)\"
@@ -44,7 +44,8 @@ automount: $(OBJS) $(AUTOFS_LIB)
master_tok.c: master_tok.l
$(LEX) -o$@ -Pmaster_ $?
-master_parse.tab.c master_parse.tab.h: master_parse.y
+master_parse.tab.h: master_parse.tab.c
+master_parse.tab.c: master_parse.y
$(YACC) -v -d -p master_ -b master_parse $?
master_tok.o: master_tok.c master_parse.tab.h
@@ -57,5 +58,3 @@ clean:
install: all
install -d -m 755 $(INSTALLROOT)$(sbindir)
install -c automount -m 755 $(INSTALLROOT)$(sbindir)
-
-

View File

@ -16,33 +16,21 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com>
configure.in | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/configure.in b/configure.in
index f5fbb35..76ecb40 100644
--- a/configure.in
+++ b/configure.in
@@ -211,8 +211,20 @@ fi
AC_SUBST(ENABLE_FEDFS)
# LDAP SASL auth needs libxml and Kerberos
-AF_CHECK_LIBXML()
@@ -215,7 +215,14 @@ PKG_CHECK_MODULES([XML], [libxml-2.0], [
AC_DEFINE(LIBXML2_WORKAROUND, 1, [Use libxml2 tsd usage workaround])
], [HAVE_LIBXML=0])
-AF_CHECK_KRB5()
+PKG_CHECK_MODULES(XML, [libxml-2.0],HAVE_LIBXML=1,HAVE_LIBXML=0)
+AC_SUBST([HAVE_LIBXML])
+XML_FLAGS=$XML_CFLAGS
+
+PKG_CHECK_MODULES(KRB5, [krb5],HAVE_KRB5=1,HAVE_KRB5=0)
+AC_SUBST([HAVE_KRB5])
+if test "x$HAVE_KRB5" = "x1"; then
+PKG_CHECK_MODULES(KRB5, [krb5], [
+ HAVE_KRB5=1
+ SAVE_CFLAGS=$CFLAGS
+ SAVE_LIBS=$LIBS
+ CFLAGS="$CFLAGS $KRB5_FLAGS"
+ LIBS="$LIBS $KRB5_LIBS"
+
+ AC_CHECK_FUNCS([krb5_principal_get_realm])
+fi
+], [HAVE_KRB5=0])
AC_SEARCH_LIBS([versionsort],[])
if test "$ac_cv_search_versionsort" = "no"; then
--
2.7.4

View File

@ -1,7 +1,7 @@
SUMMARY = "Kernel based automounter for linux"
SECTION = "utils"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
LIC_FILES_CHKSUM = "file://COPYING;md5=ee9324a6f564bb2376b63878ac396798"
DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2"
@ -10,7 +10,6 @@ CFLAGS += "-I${STAGING_INCDIR}/tirpc"
inherit autotools-brokensep systemd update-rc.d pkgconfig
SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \
file://no-bash.patch \
file://cross.patch \
file://fix_disable_ldap.patch \
@ -26,11 +25,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
file://0001-Do-not-hardcode-path-for-pkg.m4.patch \
file://0001-Bug-fix-for-pid_t-not-found-on-musl.patch \
file://0001-Define-__SWORD_TYPE-if-undefined.patch \
"
SRC_URI[md5sum] = "e6800e0afd6009ecdff148088c564050"
SRC_URI[sha256sum] = "82094cad44f4e5c4f93eff2789cd66b57d7ab3fa646b7722d97608571001e694"
SRC_URI[sha256sum] = "a18619e5ad18960fe382354eef33f070e57e4e5711d484b010acde080a003312"
UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/"
@ -87,10 +84,14 @@ do_install_append () {
}
SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
# all the libraries are unversioned, so don't pack it on PN-dev
SOLIBS = ".so"
FILES_SOLIBSDEV = ""
# Some symlinks are created in plugins dir e.g.
# mount_nfs4.so -> mount_nfs.so
INSANE_SKIP_${PN} = "dev-so"
RPROVIDES_${PN} += "${PN}-systemd"
RREPLACES_${PN} += "${PN}-systemd"
RCONFLICTS_${PN} += "${PN}-systemd"
SYSTEMD_SERVICE_${PN} = "autofs.service"