From ef9915ca4e82aea332d859d7f89d03eaeb209f83 Mon Sep 17 00:00:00 2001 From: zhengruoqin Date: Tue, 26 Oct 2021 09:18:08 +0800 Subject: autofs: upgrade 5.1.7 -> 5.1.8 autofs-5.1.8 changelog: - add xdr_exports(). - remove mount.x and rpcgen dependencies. - dont use realloc in host exports list processing. - use sprintf() when constructing hosts mapent. - fix mnts_remove_amdmount() uses wrong list. - Fix option for master read wait. - eliminate cache_lookup_offset() usage. - fix is mounted check on non existent path. - simplify cache_get_parent(). - set offset parent in update_offset_entry(). - remove redundant variables from mount_autofs_offset(). - remove unused parameter form do_mount_autofs_offset(). - refactor umount_multi_triggers(). - eliminate clean_stale_multi_triggers(). - simplify mount_subtree() mount check. - fix mnts_get_expire_list() expire list construction. - fix inconsistent locking in umount_subtree_mounts(). - fix return from umount_subtree_mounts() on offset list delete. - pass mapent_cache to update_offset_entry(). - fix inconsistent locking in parse_mount(). - remove unused mount offset list lock functions. - eliminate count_mounts() from expire_proc_indirect(). - eliminate some strlen calls in offset handling. - don't add offset mounts to mounted mounts table. - reduce umount EBUSY check delay. - cleanup cache_delete() a little. - rename path to m_offset in update_offset_entry(). - don't pass root to do_mount_autofs_offset(). - rename tree implementation functions. - add some multi-mount macros. - remove unused functions cache_dump_multi() and cache_dump_cache(). - add a len field to struct autofs_point. - make tree implementation data independent. - add mapent tree implementation. - add tree_mapent_add_node(). - add tree_mapent_delete_offsets(). - add tree_mapent_traverse_subtree(). - fix mount_fullpath(). - add tree_mapent_cleanup_offsets(). - add set_offset_tree_catatonic(). - add mount and umount offsets functions. - switch to use tree implementation for offsets. - remove obsolete functions. - remove redundant local var from sun_mount(). - use mount_fullpath() in one spot in parse_mount(). - pass root length to mount_fullpath(). - remove unused function master_submount_list_empty(). - move amd mounts removal into lib/mounts.c. - check for offset with no mount location. - remove mounts_mutex. - remove unused variable from get_exports(). - add missing free in handle_mounts(). - remove redundant if check. - fix possible memory leak in master_parse(). - fix possible memory leak in mnts_add_amdmount(). - fix double unlock in parse_mount(). - add length check in umount_subtree_mounts(). - fix flags check in umount_multi(). - dont try umount after stat() ENOENT fail. - remove redundant assignment in master_add_amd_mount_section_mounts(). - fix dead code in mnts_add_mount(). - fix arg not used in error print. - fix missing lock release in mount_subtree(). - fix double free in parse_mapent(). - refactor lookup_prune_one_cache() a bit. - cater for empty mounts list in mnts_get_expire_list(). - add ext_mount_hash_mutex lock helpers. - fix amd section mounts map reload. - fix dandling symlink creation if nis support is not available. - dont use AUTOFS_DEV_IOCTL_CLOSEMOUNT. - fix lookup_prune_one_cache() refactoring change. - fix amd hosts mount expire. - fix offset entries order. - use mapent tree root for tree_mapent_add_node(). - eliminate redundant cache lookup in tree_mapent_add_node(). - fix hosts map offset order. - fix direct mount deadlock. - add missing description of null map option. - fix nonstrict offset mount fail handling. - fix concat_options() error handling. - eliminate some more alloca usage. - use default stack size for threads. - fix use of possibly NULL var in lookup_program.c:match_key(). - fix incorrect print format specifiers in get_pkt(). - add mapent path length check in handle_packet_expire_direct(). - add copy length check in umount_autofs_indirect(). - add some buffer length checks to master map parser. - add buffer length check to rmdir_path(). - eliminate buffer usage from handle_mounts_cleanup(). - add buffer length checks to autofs mount_mount(). - make NFS version check flags consistent. - refactor get_nfs_info(). - also require TCP_REQUESTED when setting NFS port. 0001-Do-not-hardcode-path-for-pkg.m4.patch refreshed. autofs-5.1.7-use-default-stack-size-for-threads.patch removed since it is included in 5.1.8. Signed-off-by: Zheng Ruoqin Signed-off-by: Khem Raj --- .../0001-Do-not-hardcode-path-for-pkg.m4.patch | 7 +- ...-5.1.7-use-default-stack-size-for-threads.patch | 110 --------------------- .../recipes-daemons/autofs/autofs_5.1.7.bb | 98 ------------------ .../recipes-daemons/autofs/autofs_5.1.8.bb | 97 ++++++++++++++++++ 4 files changed, 102 insertions(+), 210 deletions(-) delete mode 100644 meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.7-use-default-stack-size-for-threads.patch delete mode 100644 meta-networking/recipes-daemons/autofs/autofs_5.1.7.bb create mode 100644 meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb (limited to 'meta-networking') diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch index d5ea417fb2..f18f237d98 100644 --- a/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch +++ b/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch @@ -1,4 +1,4 @@ -From a27217a5437da313d251b4a765bf7cb60ffaa62d Mon Sep 17 00:00:00 2001 +From d7a34bb388e33d16260b67275cdb58f9c877d324 Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Tue, 27 Nov 2018 15:27:47 +0800 Subject: [PATCH] From 6d24365f0828185fd1bb4d199209ca07eb95c41d Mon Sep 17 @@ -11,14 +11,17 @@ Signed-off-by: Khem Raj update patch to version 5.1.6 Signed-off-by: Changqing Li + --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) +diff --git a/configure.in b/configure.in +index 07c2051..e85d718 100644 --- a/configure.in +++ b/configure.in @@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl - AC_INIT(.autofs-5.1.7) + AC_INIT(.autofs-5.1.8) # for pkg-config macros -m4_include([/usr/share/aclocal/pkg.m4]) diff --git a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.7-use-default-stack-size-for-threads.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.7-use-default-stack-size-for-threads.patch deleted file mode 100644 index b21e7c03bf..0000000000 --- a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.7-use-default-stack-size-for-threads.patch +++ /dev/null @@ -1,110 +0,0 @@ -autofs-5.1.7 - use default stack size for threads - -From: Ian Kent - -autofs uses PTHREAD_STACK_MIN to set the stack size for threads it -creates. - -In two cases it is used to reduce the stack size for long running -service threads while it's used to allocate a larger stack for worker -threads that can have larger memory requirements. - -In recent glibc releases PTHREAD_STACK_MIN is no longer a constant -which can lead to unexpectedly different stack sizes on different -architectures and the autofs assumption it's a constant causes a -compile failure. - -The need to alter the stack size was due to observed stack overflow -which was thought to be due the thread stack being too small for autofs -and glibc alloca(3) usage. - -Quite a bit of that alloca(3) usage has been eliminated from autofs now, -particularly those that might be allocating largish amounts of storage, -and there has been a lot of change in glibc too so using the thread -default stack should be ok. - -Signed-off-by: Ian Kent ---- - CHANGELOG | 1 + - daemon/automount.c | 29 ----------------------------- - daemon/state.c | 6 +----- - lib/alarm.c | 6 +----- - 4 files changed, 3 insertions(+), 39 deletions(-) - ---- a/daemon/automount.c -+++ b/daemon/automount.c -@@ -92,7 +92,6 @@ static size_t kpkt_len; - /* Attributes for creating detached and joinable threads */ - pthread_attr_t th_attr; - pthread_attr_t th_attr_detached; --size_t detached_thread_stack_size = PTHREAD_STACK_MIN * 144; - - struct master_readmap_cond mrc = { - PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, NULL, 0, 0, 0, 0}; -@@ -2617,34 +2616,6 @@ int main(int argc, char *argv[]) - if (start_pipefd[1] != -1) { - res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); - close(start_pipefd[1]); -- } -- release_flag_file(); -- macro_free_global_table(); -- exit(1); -- } -- --#ifdef _POSIX_THREAD_ATTR_STACKSIZE -- if (pthread_attr_setstacksize( -- &th_attr_detached, detached_thread_stack_size)) { -- logerr("%s: failed to set stack size thread attribute!", -- program); -- if (start_pipefd[1] != -1) { -- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); -- close(start_pipefd[1]); -- } -- release_flag_file(); -- macro_free_global_table(); -- exit(1); -- } --#endif -- -- if (pthread_attr_getstacksize( -- &th_attr_detached, &detached_thread_stack_size)) { -- logerr("%s: failed to get detached thread stack size!", -- program); -- if (start_pipefd[1] != -1) { -- res = write(start_pipefd[1], pst_stat, sizeof(*pst_stat)); -- close(start_pipefd[1]); - } - release_flag_file(); - macro_free_global_table(); ---- a/daemon/state.c -+++ b/daemon/state.c -@@ -1173,12 +1173,8 @@ int st_start_handler(void) - status = pthread_attr_init(pattrs); - if (status) - pattrs = NULL; -- else { -+ else - pthread_attr_setdetachstate(pattrs, PTHREAD_CREATE_DETACHED); --#ifdef _POSIX_THREAD_ATTR_STACKSIZE -- pthread_attr_setstacksize(pattrs, PTHREAD_STACK_MIN*4); --#endif -- } - - status = pthread_create(&thid, pattrs, st_queue_handler, NULL); - ---- a/lib/alarm.c -+++ b/lib/alarm.c -@@ -270,12 +270,8 @@ int alarm_start_handler(void) - status = pthread_attr_init(pattrs); - if (status) - pattrs = NULL; -- else { -+ else - pthread_attr_setdetachstate(pattrs, PTHREAD_CREATE_DETACHED); --#ifdef _POSIX_THREAD_ATTR_STACKSIZE -- pthread_attr_setstacksize(pattrs, PTHREAD_STACK_MIN*4); --#endif -- } - - status = pthread_condattr_init(&condattrs); - if (status) diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.7.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.7.bb deleted file mode 100644 index 3fc574fd0a..0000000000 --- a/meta-networking/recipes-daemons/autofs/autofs_5.1.7.bb +++ /dev/null @@ -1,98 +0,0 @@ -SUMMARY = "Kernel based automounter for linux" -SECTION = "utils" -LICENSE = "GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=ee9324a6f564bb2376b63878ac396798" - -DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2" - -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://no-bash.patch \ - file://cross.patch \ - file://fix_disable_ldap.patch \ - file://autofs-5.0.7-fix-lib-deps.patch \ - file://add-the-needed-stdarg.h.patch \ - file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \ - file://force-STRIP-to-emtpy.patch \ - file://remove-bashism.patch \ - file://fix-the-YACC-rule-to-fix-a-building-failure.patch \ - file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \ - file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \ - file://pkgconfig-libnsl.patch \ - 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 \ - file://autofs-5.1.7-use-default-stack-size-for-threads.patch \ - " -SRC_URI[sha256sum] = "a18619e5ad18960fe382354eef33f070e57e4e5711d484b010acde080a003312" - -UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/" - -INITSCRIPT_NAME = "autofs" -INITSCRIPT_PARAMS = "defaults" - -# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS -#CFLAGS += "${LDFLAGS}" - -PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" - -EXTRA_OEMAKE = "DONTSTRIP=1" -EXTRA_OECONF += "--disable-mount-locking \ - --enable-ignore-busy --with-openldap=no \ - --with-confdir=${sysconfdir}/default \ - --with-fifodir=/run \ - --with-flagdir=/run \ - --with-sasl=no --with-libtirpc \ - --with-mapdir=${sysconfdir} \ - --with-path=${STAGING_BINDIR_NATIVE} \ - --with-fifodir=${localstatedir}/run \ - --with-flagdir=${localstatedir}/run \ -" -CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ - ac_cv_path_RPCGEN=rpcgen \ - initdir=${INIT_D_DIR} \ - piddir=/run \ -" - -do_configure:prepend () { - if [ ! -e ${S}/acinclude.m4 ]; then - cp ${S}/aclocal.m4 ${S}/acinclude.m4 - fi - cp ${STAGING_DATADIR_NATIVE}/aclocal/pkg.m4 . -} - -do_install:append () { - # samples have been removed from SUBDIRS from 5.1.5, need to install separately - oe_runmake 'DESTDIR=${D}' install_samples - - if [ -d ${D}/run ]; then - rmdir ${D}/run - fi - if [ -d ${D}${localstatedir}/run ]; then - rmdir ${D}${localstatedir}/run - fi - # On hybrid systemd/sysvinit builds, we need to install the sysvinit script by hand. - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d -m 755 ${D}${INIT_D_DIR} - install -m 755 ${S}/samples/rc.autofs ${D}${INIT_D_DIR}/autofs - fi -} -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" diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb new file mode 100644 index 0000000000..c41d0e6b93 --- /dev/null +++ b/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb @@ -0,0 +1,97 @@ +SUMMARY = "Kernel based automounter for linux" +SECTION = "utils" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=ee9324a6f564bb2376b63878ac396798" + +DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2" + +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://no-bash.patch \ + file://cross.patch \ + file://fix_disable_ldap.patch \ + file://autofs-5.0.7-fix-lib-deps.patch \ + file://add-the-needed-stdarg.h.patch \ + file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \ + file://force-STRIP-to-emtpy.patch \ + file://remove-bashism.patch \ + file://fix-the-YACC-rule-to-fix-a-building-failure.patch \ + file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \ + file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \ + file://pkgconfig-libnsl.patch \ + 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[sha256sum] = "0bd401c56f0eb1ca6251344c3a3d70bface3eccf9c67117cd184422c4cace30c" + +UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/" + +INITSCRIPT_NAME = "autofs" +INITSCRIPT_PARAMS = "defaults" + +# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS +#CFLAGS += "${LDFLAGS}" + +PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" + +EXTRA_OEMAKE = "DONTSTRIP=1" +EXTRA_OECONF += "--disable-mount-locking \ + --enable-ignore-busy --with-openldap=no \ + --with-confdir=${sysconfdir}/default \ + --with-fifodir=/run \ + --with-flagdir=/run \ + --with-sasl=no --with-libtirpc \ + --with-mapdir=${sysconfdir} \ + --with-path=${STAGING_BINDIR_NATIVE} \ + --with-fifodir=${localstatedir}/run \ + --with-flagdir=${localstatedir}/run \ +" +CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \ + ac_cv_path_RPCGEN=rpcgen \ + initdir=${INIT_D_DIR} \ + piddir=/run \ +" + +do_configure:prepend () { + if [ ! -e ${S}/acinclude.m4 ]; then + cp ${S}/aclocal.m4 ${S}/acinclude.m4 + fi + cp ${STAGING_DATADIR_NATIVE}/aclocal/pkg.m4 . +} + +do_install:append () { + # samples have been removed from SUBDIRS from 5.1.5, need to install separately + oe_runmake 'DESTDIR=${D}' install_samples + + if [ -d ${D}/run ]; then + rmdir ${D}/run + fi + if [ -d ${D}${localstatedir}/run ]; then + rmdir ${D}${localstatedir}/run + fi + # On hybrid systemd/sysvinit builds, we need to install the sysvinit script by hand. + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d -m 755 ${D}${INIT_D_DIR} + install -m 755 ${S}/samples/rc.autofs ${D}${INIT_D_DIR}/autofs + fi +} +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" -- cgit v1.2.3-54-g00ecf