diff options
author | David Seifert <soap@gentoo.org> | 2023-08-03 17:33:46 +0200 |
---|---|---|
committer | David Seifert <soap@gentoo.org> | 2023-08-03 17:33:46 +0200 |
commit | d32095b165e0f127a89bbf6af1d99b0c7386cfa2 (patch) | |
tree | e24c650b3a8cb2411131e4b719d67f03b085fa71 /net-fs | |
parent | media-sound/qsynth: Stabilize 0.9.11-r2 amd64, #911640 (diff) | |
download | gentoo-d32095b165e0f127a89bbf6af1d99b0c7386cfa2.tar.gz gentoo-d32095b165e0f127a89bbf6af1d99b0c7386cfa2.tar.bz2 gentoo-d32095b165e0f127a89bbf6af1d99b0c7386cfa2.zip |
net-fs/samba: drop 4.16.8
Bug: https://bugs.gentoo.org/910306
Bug: https://bugs.gentoo.org/910334
Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to 'net-fs')
-rw-r--r-- | net-fs/samba/Manifest | 1 | ||||
-rw-r--r-- | net-fs/samba/files/samba-4.15.12-configure-clang16.patch | 117 | ||||
-rw-r--r-- | net-fs/samba/files/samba-4.15.9-libunwind-automagic.patch | 118 | ||||
-rw-r--r-- | net-fs/samba/files/samba-4.16.1-netdb-defines.patch | 25 | ||||
-rw-r--r-- | net-fs/samba/files/samba-4.16.2-fix-musl-without-innetgr.patch | 25 | ||||
-rw-r--r-- | net-fs/samba/files/samba-4.4.0-pam.patch | 29 | ||||
-rw-r--r-- | net-fs/samba/samba-4.16.8.ebuild | 387 |
7 files changed, 0 insertions, 702 deletions
diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest index 3db3f87a9133..5c0bcd72096d 100644 --- a/net-fs/samba/Manifest +++ b/net-fs/samba/Manifest @@ -1,2 +1 @@ -DIST samba-4.16.8.tar.gz 30682100 BLAKE2B bbb9a89a39cc0bae88ba350df38aae35df0bd18c27dd37b093eb023cf71274c12f14c44037e9704404ee3ba27ab930e866b3b951bcc7a5f4499cbc544f231e6b SHA512 55fa977e046de4470a9f1cb4c7956ca1368a21fc88e6bb6ae93d3cadb5400caaebd5b7d51a5ff1aaea884ec58d8abe6c90f448168aaa175d0f6c018f1a913c70 DIST samba-4.18.4.tar.gz 41311410 BLAKE2B 1f1aab7eb933111b9b1c72af8c3dd379fe34014085129e9d5cc400b4e434742e1c08ad4fdf2a98291d6063ce9b2ddc811e9ab5dbb133a85e97f2158f83dd7c96 SHA512 bc8d792b510061556c07b6844a825801a4271eed45e01133a4718c1839d123e2908fa0e31e67af43098500e98a9082eb104052e711a8a034fac23d86e15c29ee diff --git a/net-fs/samba/files/samba-4.15.12-configure-clang16.patch b/net-fs/samba/files/samba-4.15.12-configure-clang16.patch deleted file mode 100644 index 0d9c919bd9eb..000000000000 --- a/net-fs/samba/files/samba-4.15.12-configure-clang16.patch +++ /dev/null @@ -1,117 +0,0 @@ -https://bugs.gentoo.org/870043 -https://gitlab.com/samba-team/samba/-/merge_requests/2807 - -From afc5144819e0db141aa9c58de385e5829b952096 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 21 Nov 2022 13:37:41 +0100 -Subject: [PATCH 1/3] buildtools/wafsamba: Avoid calling lib_func without a - prototype - -This is a backport of commit f4c0a750d4adebcf2342a44e85f04526c34 -("WAF: Fix detection of linker features") -to buildtools/wafsamba/samba_conftests.py. It fixes the check for -rpath support with compilers in strict C99 mode. - -Signed-off-by: Florian Weimer <fweimer@redhat.com> ---- a/buildtools/wafsamba/samba_waf18.py -+++ b/buildtools/wafsamba/samba_waf18.py -@@ -209,7 +209,8 @@ def CHECK_LIBRARY_SUPPORT(conf, rpath=False, version_script=False, msg=None): - lib_node.parent.mkdir() - lib_node.write('int lib_func(void) { return 42; }\n', 'w') - main_node = bld.srcnode.make_node('main.c') -- main_node.write('int main(void) {return !(lib_func() == 42);}', 'w') -+ main_node.write('int lib_func(void);\n' -+ 'int main(void) {return !(lib_func() == 42);}', 'w') - linkflags = [] - if version_script: - script = bld.srcnode.make_node('ldscript') -GitLab -From d8c6a9e5558085dfdb144bb64365822415affe84 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 21 Nov 2022 13:53:17 +0100 -Subject: [PATCH 2/3] source3/wscript: Fix detection of major/minor macros - -These macros are only available via <sys/sysmacros.h> as of glibc -commit e16deca62e16f645213dffd4ecd1153c37765f17 ("[BZ #19239] Don't -include sys/sysmacros.h from sys/types.h."), which went into -glibc 2.28. - -This is different from the usual C99 cleanups because it changes -the configure check result with existing compilers that usually -accept implicit function declarations. - -Signed-off-by: Florian Weimer <fweimer@redhat.com> ---- a/source3/wscript -+++ b/source3/wscript -@@ -603,11 +603,11 @@ msg.msg_accrightslen = sizeof(fd); - conf.CHECK_HEADERS('asm/types.h') - - conf.CHECK_CODE('dev_t dev; int i = major(dev); return 0', "HAVE_DEVICE_MAJOR_FN", -- headers='unistd.h sys/types.h', -+ headers='sys/sysmacros.h unistd.h sys/types.h', - msg="Checking for major macro") - - conf.CHECK_CODE('dev_t dev; int i = minor(dev); return 0', "HAVE_DEVICE_MINOR_FN", -- headers='unistd.h sys/types.h', -+ headers='sys/sysmacros.h unistd.h sys/types.h', - msg="Checking for minor macro") - - conf.CHECK_STRUCTURE_MEMBER('struct dirent', 'd_off', -GitLab -From 1f5c44d982c112e21879b64911a4184c063ba4d4 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Mon, 21 Nov 2022 14:12:43 +0100 -Subject: [PATCH 3/3] source3/wscript: Remove implict int and implicit function - declarations - -This should fix the remaining C89isms in these configure checks. - -Signed-off-by: Florian Weimer <fweimer@redhat.com> ---- a/source3/wscript -+++ b/source3/wscript -@@ -1314,7 +1314,7 @@ syscall(SYS_initgroups, 16, NULL, NULL, 0); - - if conf.CHECK_CODE(''' - #include <time.h> --main() { -+int main() { - struct tm *tm; - if (sizeof(time_t) == 8) { - time_t max_time = 0x7fffffffffffffffll; -@@ -1345,7 +1345,7 @@ main() { - #if defined(HAVE_SYS_SYSMACROS_H) - #include <sys/sysmacros.h> - #endif --main() { dev_t dev = makedev(1,2); return 0; } -+int main() { dev_t dev = makedev(1,2); return 0; } - ''', - 'HAVE_MAKEDEV', - addmain=False, -@@ -1355,12 +1355,13 @@ main() { dev_t dev = makedev(1,2); return 0; } - #include <stdio.h> - #include <limits.h> - #include <signal.h> -+#include <stdlib.h> - - void exit_on_core(int ignored) { - exit(1); - } - --main() { -+int main() { - char *newpath; - signal(SIGSEGV, exit_on_core); - newpath = realpath("/tmp", NULL); -@@ -1517,9 +1518,9 @@ main() { - # Check for getcwd allowing a NULL arg. - conf.CHECK_CODE(''' - #include <unistd.h> --main() { -+int main() { - char *s = getcwd(NULL,0); -- exit(s != NULL ? 0 : 1); -+ return s != NULL ? 0 : 1; - }''', 'GETCWD_TAKES_NULL', addmain=False, execute=True, - msg="getcwd takes a NULL argument") - -GitLab diff --git a/net-fs/samba/files/samba-4.15.9-libunwind-automagic.patch b/net-fs/samba/files/samba-4.15.9-libunwind-automagic.patch deleted file mode 100644 index c3a2c802e6e9..000000000000 --- a/net-fs/samba/files/samba-4.15.9-libunwind-automagic.patch +++ /dev/null @@ -1,118 +0,0 @@ -https://gitlab.com/samba-team/samba/-/commit/14feb93d481011765f62614ab49b304e17e4f6fd -https://gitlab.com/samba-team/samba/-/merge_requests/2401?commit_id=ac8064cb0d79db377df75a22a240632dbc37f99f -https://bugs.gentoo.org/791349 - -From 14feb93d481011765f62614ab49b304e17e4f6fd Mon Sep 17 00:00:00 2001 -From: Andrew Bartlett <abartlet@samba.org> -Date: Tue, 7 Jun 2022 15:07:59 +1200 -Subject: [PATCH] lib/util: Prefer backtrace_symbols() for internal backtraces - -Backtraces when Samba is in PANIC state are better with -backtrace_symbols() than with libunwind on Ubuntu 20.04 x86_64 -so move libunwind to a off-by-default option, prompted for -if backtrace_symbols() is not available. - -Based on a request by Fco Javier Felix <ffelix@inode64.com> - -Signed-off-by: Andrew Bartlett <abartlet@samba.org> -Reviewed-by: Joseph Sutton <josephsutton@catalyst.net.nz> ---- a/lib/util/fault.c -+++ b/lib/util/fault.c -@@ -222,9 +222,13 @@ _PUBLIC_ void smb_panic(const char *why) - void log_stack_trace(void) - { - #ifdef HAVE_LIBUNWIND -- /* Try to use libunwind before any other technique since on ia64 -- * libunwind correctly walks the stack in more circumstances than -- * backtrace. -+ /* -+ * --with-libunwind is required to use libunwind, the -+ * backtrace_symbols() code below is the default. -+ * -+ * This code is available because a previous version of this -+ * comment asserted that on ia64 libunwind correctly walks the -+ * stack in more circumstances than backtrace. - */ - unw_cursor_t cursor; - unw_context_t uc; ---- a/lib/util/wscript -+++ b/lib/util/wscript -@@ -2,6 +2,15 @@ def options(opt): - ''' This is a bit strange, but disable is the flag, not enable. ''' - opt.add_option('--disable-fault-handling', action='store_true', dest='disable_fault_handling', help=('disable the fault handlers'), default=False) - -+ # We do not want libunwind by default (backtrace_symbols() in -+ # glibc is better) but allow (eg) IA-64 to build with it where it -+ # might be better (per old comment in fault.c) -+ opt.samba_add_onoff_option('libunwind', -+ default=None, -+ help='''Use libunwind instead of the default backtrace_symbols() -+ from libc, for example on IA-64 where it might give a better -+ backtrace.''') -+ - opt.add_option('--with-systemd', - help=("Enable systemd integration"), - action='store_true', dest='enable_systemd') ---- a/lib/util/wscript_configure -+++ b/lib/util/wscript_configure -@@ -1,23 +1,35 @@ - #!/usr/bin/env python --from waflib import Logs, Options -+from waflib import Logs, Options, Errors - - import os, sys - - if Options.options.disable_fault_handling: - conf.DEFINE('HAVE_DISABLE_FAULT_HANDLING',1) - --# backtrace could be in libexecinfo or in libc -+# backtrace could be in libexecinfo or in libc. -+# This is our preferred backtrace handler (more useful output than libunwind as at Ubuntu 20.04 x86_64) - conf.CHECK_FUNCS_IN('backtrace backtrace_symbols', 'execinfo', checklibc=True, headers='execinfo.h') - conf.CHECK_HEADERS('execinfo.h') - - conf.SET_TARGET_TYPE('LIBUNWIND', 'EMPTY') --if conf.check_cfg(package='libunwind-generic', -- args='--cflags --libs', -- msg='Checking for libunwind', -- uselib_store='LIBUNWIND', -- mandatory=False): -- if conf.CHECK_HEADERS('libunwind.h'): -- conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB') -+if Options.options.with_libunwind: -+ if conf.check_cfg(package='libunwind-generic', -+ args='--cflags --libs', -+ msg='Checking for libunwind', -+ uselib_store='LIBUNWIND', -+ mandatory=False): -+ if conf.CHECK_HEADERS('libunwind.h'): -+ conf.SET_TARGET_TYPE('LIBUNWIND', 'SYSLIB') -+ else: -+ raise Errors.WafError('--with-libunwind specified but libunwind not found') -+elif Options.options.with_libunwind == None: -+ if not conf.CONFIG_SET('HAVE_BACKTRACE_SYMBOLS') \ -+ and not Options.options.disable_fault_handling: -+ raise Errors.WafError( -+'''backtrace_symbols() not found but -+--with-libunwind not specified. -+Use --without-libunwind to build without internal backtrace support or -+--disable-fault-handling to totally defer fault handling to the OS.''') - - conf.CHECK_STRUCTURE_MEMBER('struct statvfs', 'f_frsize', define='HAVE_FRSIZE', headers='sys/statvfs.h') - ---- a/script/autobuild.py -+++ b/script/autobuild.py -@@ -480,10 +480,11 @@ tasks = { - # MIT Kerberos from the current system. Runtime behaviour is - # confirmed via the ktest (static ccache and keytab) environment - -+ # This environment also used to confirm we can still build with --with-libunwind - "samba-ktest-mit": { - "sequence": [ - ("random-sleep", random_sleep(300, 900)), -- ("configure", "./configure.developer --without-ad-dc --with-system-mitkrb5 " + samba_configure_params), -+ ("configure", "./configure.developer --without-ad-dc --with-libunwind --with-system-mitkrb5 " + samba_configure_params), - ("make", "make -j"), - ("test", make_test(include_envs=[ - "ktest", # ktest is also tested in fileserver, samba and -GitLab diff --git a/net-fs/samba/files/samba-4.16.1-netdb-defines.patch b/net-fs/samba/files/samba-4.16.1-netdb-defines.patch deleted file mode 100644 index 6f5a82505f7e..000000000000 --- a/net-fs/samba/files/samba-4.16.1-netdb-defines.patch +++ /dev/null @@ -1,25 +0,0 @@ -https://gitlab.com/samba-team/samba/-/commit/e13875601ff6f488b48e7de0f6838db3565401d4 -https://gitlab.com/samba-team/samba/-/merge_requests/2617 -https://gitlab.com/samba-team/samba/-/merge_requests/1025 - -# Define NETDB_INTERNAL and NETDB_SUCCESS if they are not defined -# -# Gentoo bug 832629 and 835017 - ---- a/nsswitch/wins.c -+++ b/nsswitch/wins.c -@@ -40,6 +40,14 @@ static pthread_mutex_t wins_nss_mutex = PTHREAD_MUTEX_INITIALIZER; - #define INADDRSZ 4 - #endif - -+#ifndef NETDB_INTERNAL -+#define NETDB_INTERNAL -1 -+#endif -+ -+#ifndef NETDB_SUCCESS -+#define NETDB_SUCCESS 0 -+#endif -+ - _PUBLIC_ON_LINUX_ - NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname, - struct hostent *he, diff --git a/net-fs/samba/files/samba-4.16.2-fix-musl-without-innetgr.patch b/net-fs/samba/files/samba-4.16.2-fix-musl-without-innetgr.patch deleted file mode 100644 index 19abe8ffbe33..000000000000 --- a/net-fs/samba/files/samba-4.16.2-fix-musl-without-innetgr.patch +++ /dev/null @@ -1,25 +0,0 @@ -https://gitlab.com/samba-team/samba/-/commit/fb937ddc838043deb82b6a557dce8f29001d0a19 - -# Gentoo bug 855047 ---- a/lib/util/access.c -+++ b/lib/util/access.c -@@ -115,7 +115,7 @@ static bool string_match(const char *tok,const char *s) - return true; - } - } else if (tok[0] == '@') { /* netgroup: look it up */ --#ifdef HAVE_NETGROUP -+#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR) - DATA_BLOB tmp; - char *mydomain = NULL; - char *hostname = NULL; ---- a/source3/auth/user_util.c -+++ b/source3/auth/user_util.c -@@ -135,7 +135,7 @@ static void store_map_in_gencache(TALLOC_CTX *ctx, const char *from, const char - - bool user_in_netgroup(TALLOC_CTX *ctx, const char *user, const char *ngname) - { --#ifdef HAVE_NETGROUP -+#if defined(HAVE_NETGROUP) && defined(HAVE_INNETGR) - char nis_domain_buf[256]; - const char *nis_domain = NULL; - char *lowercase_user = NULL; diff --git a/net-fs/samba/files/samba-4.4.0-pam.patch b/net-fs/samba/files/samba-4.4.0-pam.patch deleted file mode 100644 index 451601383d4b..000000000000 --- a/net-fs/samba/files/samba-4.4.0-pam.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- samba-4.4.0rc2/source3/wscript -+++ samba-4.4.0rc2/source3/wscript -@@ -870,7 +870,7 @@ - if conf.env.with_iconv: - conf.DEFINE('HAVE_ICONV', 1) - -- if Options.options.with_pam: -+ if Options.options.with_pam != False: - use_pam=True - conf.CHECK_HEADERS('security/pam_appl.h pam/pam_appl.h') - if not conf.CONFIG_SET('HAVE_SECURITY_PAM_APPL_H') and not conf.CONFIG_SET('HAVE_PAM_PAM_APPL_H'): -@@ -943,6 +943,17 @@ - conf.DEFINE('WITH_PAM', 1) - conf.DEFINE('WITH_PAM_MODULES', 1) - -+ else: -+ Logs.warn("PAM disabled") -+ use_pam=False -+ conf.undefine('WITH_PAM') -+ conf.undefine('WITH_PAM_MODULES') -+ conf.undefine('HAVE_SECURITY_PAM_APPL_H') -+ conf.undefine('PAM_RHOST') -+ conf.undefine('PAM_TTY') -+ conf.undefine('HAVE_PAM_PAM_APPL_H') -+ -+ - seteuid = False - - # diff --git a/net-fs/samba/samba-4.16.8.ebuild b/net-fs/samba/samba-4.16.8.ebuild deleted file mode 100644 index 3cefea75dfa9..000000000000 --- a/net-fs/samba/samba-4.16.8.ebuild +++ /dev/null @@ -1,387 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) -PYTHON_REQ_USE="threads(+),xml(+)" -inherit python-single-r1 flag-o-matic waf-utils multilib-minimal linux-info systemd pam tmpfiles - -DESCRIPTION="Samba Suite Version 4" -HOMEPAGE="https://samba.org/" - -MY_PV="${PV/_rc/rc}" -MY_P="${PN}-${MY_PV}" -if [[ ${PV} == *_rc* ]]; then - SRC_URI="mirror://samba/rc/${MY_P}.tar.gz" -else - SRC_URI="mirror://samba/stable/${MY_P}.tar.gz" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv sparc x86" -fi -S="${WORKDIR}/${MY_P}" - -LICENSE="GPL-3" -SLOT="0" -IUSE="acl addc ads ceph client cluster cpu_flags_x86_aes cups debug fam glusterfs gpg" -IUSE+=" iprint json ldap llvm-libunwind pam profiling-data python quota +regedit selinux" -IUSE+=" snapper spotlight syslog system-heimdal +system-mitkrb5 systemd test unwind winbind" -IUSE+=" zeroconf" - -REQUIRED_USE="${PYTHON_REQUIRED_USE} - addc? ( json python !system-mitkrb5 winbind ) - ads? ( acl ldap python winbind ) - cluster? ( ads ) - gpg? ( addc ) - spotlight? ( json ) - test? ( python ) - !ads? ( !addc ) - ?? ( system-heimdal system-mitkrb5 ) -" - -# the test suite is messed, it uses system-installed samba -# bits instead of what was built, tests things disabled via use -# flags, and generally just fails to work in a way ebuilds could -# rely on in its current state -RESTRICT="test" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/samba-4.0/policy.h - /usr/include/samba-4.0/dcerpc_server.h - /usr/include/samba-4.0/ctdb.h - /usr/include/samba-4.0/ctdb_client.h - /usr/include/samba-4.0/ctdb_protocol.h - /usr/include/samba-4.0/ctdb_private.h - /usr/include/samba-4.0/ctdb_typesafe_cb.h - /usr/include/samba-4.0/ctdb_version.h -) - -TALLOC_VERSION="2.3.3" -TDB_VERSION="1.4.6" -TEVENT_VERSION="0.11.0" - -COMMON_DEPEND=" - >=app-arch/libarchive-3.1.2:=[${MULTILIB_USEDEP}] - dev-lang/perl:= - dev-libs/icu:=[${MULTILIB_USEDEP}] - dev-libs/libbsd[${MULTILIB_USEDEP}] - dev-libs/libtasn1:=[${MULTILIB_USEDEP}] - dev-libs/popt[${MULTILIB_USEDEP}] - dev-perl/Parse-Yapp - >=net-libs/gnutls-3.4.7:=[${MULTILIB_USEDEP}] - >=sys-fs/e2fsprogs-1.46.4-r51[${MULTILIB_USEDEP}] - >=sys-libs/ldb-2.5.2:=[ldap(+)?,${MULTILIB_USEDEP}] - <sys-libs/ldb-2.6.0:=[ldap(+)?,${MULTILIB_USEDEP}] - sys-libs/libcap[${MULTILIB_USEDEP}] - sys-libs/liburing:=[${MULTILIB_USEDEP}] - sys-libs/ncurses:= - sys-libs/readline:= - >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}] - >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}] - >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - virtual/libcrypt:=[${MULTILIB_USEDEP}] - virtual/libiconv - $(python_gen_cond_dep ' - addc? ( - dev-python/dnspython:=[${PYTHON_USEDEP}] - dev-python/markdown[${PYTHON_USEDEP}] - ) - ads? ( - dev-python/dnspython:=[${PYTHON_USEDEP}] - net-dns/bind-tools[gssapi] - ) - ') - acl? ( virtual/acl ) - ceph? ( sys-cluster/ceph ) - cluster? ( net-libs/rpcsvc-proto ) - cups? ( net-print/cups ) - debug? ( dev-util/lttng-ust ) - fam? ( virtual/fam ) - gpg? ( app-crypt/gpgme:= ) - json? ( dev-libs/jansson:= ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - pam? ( sys-libs/pam ) - python? ( - sys-libs/ldb[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}] - sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}] - ) - snapper? ( sys-apps/dbus ) - system-heimdal? ( >=app-crypt/heimdal-1.5[-ssl,${MULTILIB_USEDEP}] ) - system-mitkrb5? ( >=app-crypt/mit-krb5-1.19[${MULTILIB_USEDEP}] ) - systemd? ( sys-apps/systemd:= ) - unwind? ( - llvm-libunwind? ( sys-libs/llvm-libunwind:= ) - !llvm-libunwind? ( sys-libs/libunwind:= ) - ) - zeroconf? ( net-dns/avahi[dbus] ) -" -DEPEND="${COMMON_DEPEND} - dev-perl/JSON - net-libs/libtirpc[${MULTILIB_USEDEP}] - net-libs/rpcsvc-proto - spotlight? ( dev-libs/glib ) - test? ( - >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] - $(python_gen_cond_dep "dev-python/subunit[\${PYTHON_USEDEP},${MULTILIB_USEDEP}]" ) - !system-mitkrb5? ( - >=net-dns/resolv_wrapper-1.1.4 - >=net-libs/socket_wrapper-1.1.9 - >=sys-libs/nss_wrapper-1.1.3 - >=sys-libs/uid_wrapper-1.2.1 - ) - )" -RDEPEND="${COMMON_DEPEND} - client? ( net-fs/cifs-utils[ads?] ) - python? ( ${PYTHON_DEPS} ) - selinux? ( sec-policy/selinux-samba ) -" -BDEPEND="${PYTHON_DEPS} - app-text/docbook-xsl-stylesheets - dev-libs/libxslt - virtual/pkgconfig -" - -PATCHES=( - "${FILESDIR}/${PN}-4.4.0-pam.patch" - "${FILESDIR}/${PN}-4.16.1-netdb-defines.patch" - "${FILESDIR}/${PN}-4.16.2-fix-musl-without-innetgr.patch" - "${FILESDIR}/ldb-2.5.2-skip-wav-tevent-check.patch" - "${FILESDIR}/${PN}-4.15.9-libunwind-automagic.patch" - "${FILESDIR}/${PN}-4.15.12-configure-clang16.patch" -) - -CONFDIR="${FILESDIR}/4.4" -WAF_BINARY="${S}/buildtools/bin/waf" -SHAREDMODS="" - -pkg_setup() { - # Package fails to build with distcc - export DISTCC_DISABLE=1 - export PYTHONHASHSEED=1 - - python-single-r1_pkg_setup - - SHAREDMODS="$(usev !snapper '!')vfs_snapper" - if use cluster ; then - SHAREDMODS+=",idmap_rid,idmap_tdb2,idmap_ad" - elif use ads ; then - SHAREDMODS+=",idmap_ad" - fi -} - -check_samba_dep_versions() { - actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die) - if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then - eerror "Source talloc version: ${TALLOC_VERSION}" - eerror "Ebuild talloc version: ${actual_talloc_version}" - die "Ebuild needs to fix TALLOC_VERSION!" - fi - - actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die) - if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then - eerror "Source tdb version: ${TDB_VERSION}" - eerror "Ebuild tdb version: ${actual_tdb_version}" - die "Ebuild needs to fix TDB_VERSION!" - fi - - actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die) - if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then - eerror "Source tevent version: ${TEVENT_VERSION}" - eerror "Ebuild tevent version: ${actual_tevent_version}" - die "Ebuild needs to fix TEVENT_VERSION!" - fi -} - -src_prepare() { - default - - check_samba_dep_versions - - # Unbundle dnspython - sed -i -e '/"dns.resolver":/d' "${S}"/third_party/wscript || die - - # Unbundle iso8601 unless tests are enabled - if ! use test ; then - sed -i -e '/"iso8601":/d' "${S}"/third_party/wscript || die - fi - - # Ugly hackaround for bug #592502 - #cp /usr/include/tevent_internal.h "${S}"/lib/tevent/ || die - - sed -e 's:<gpgme\.h>:<gpgme/gpgme.h>:' \ - -i source4/dsdb/samdb/ldb_modules/password_hash.c \ - || die - - # WAF - multilib_copy_sources -} - -multilib_src_configure() { - # When specifying libs for samba build you must append NONE to the end to - # stop it automatically including things - local bundled_libs="NONE" - if ! use system-heimdal && ! use system-mitkrb5 ; then - bundled_libs="heimbase,heimntlm,hdb,kdc,krb5,wind,gssapi,hcrypto,hx509,roken,asn1,com_err,NONE" - fi - - # We "use" bundled cmocka when we're not running tests as we're - # not using it anyway. Means we avoid making users install it for - # no reason. bug #802531 - if ! use test ; then - bundled_libs="cmocka,${bundled_libs}" - fi - - # bug #874633 - if use llvm-libunwind ; then - mkdir -p "${T}"/${ABI}/pkgconfig || die - - local -x PKG_CONFIG_PATH="${T}/${ABI}/pkgconfig:${PKG_CONFIG_PATH}" - - cat <<-EOF > "${T}"/${ABI}/pkgconfig/libunwind-generic.pc || die - exec_prefix=\${prefix} - libdir=/usr/$(get_libdir) - includedir=\${prefix}/include - - Name: libunwind-generic - Description: libunwind generic library - Version: 1.70 - Libs: -L\${libdir} -lunwind - Cflags: -I\${includedir} - EOF - fi - - local myconf=( - --enable-fhs - --sysconfdir="${EPREFIX}/etc" - --localstatedir="${EPREFIX}/var" - --with-modulesdir="${EPREFIX}/usr/$(get_libdir)/samba" - --with-piddir="${EPREFIX}/run/${PN}" - --bundled-libraries="${bundled_libs}" - --builtin-libraries=NONE - --disable-rpath - --disable-rpath-install - --nopyc - --nopyo - --without-winexe - --accel-aes=$(usex cpu_flags_x86_aes intelaesni none) - $(multilib_native_use_with acl acl-support) - $(multilib_native_usex addc '' '--without-ad-dc') - $(multilib_native_use_with ads) - $(multilib_native_use_enable ceph cephfs) - $(multilib_native_use_with cluster cluster-support) - $(multilib_native_use_enable cups) - --without-dmapi - $(multilib_native_use_with fam) - $(multilib_native_use_enable glusterfs) - $(multilib_native_use_with gpg gpgme) - $(multilib_native_use_with json) - $(multilib_native_use_enable iprint) - $(multilib_native_use_with pam) - $(multilib_native_usex pam "--with-pammodulesdir=${EPREFIX}/$(get_libdir)/security" '') - $(multilib_native_use_with quota quotas) - $(multilib_native_use_with regedit) - $(multilib_native_use_enable spotlight) - $(multilib_native_use_with syslog) - $(multilib_native_use_with systemd) - --systemd-install-services - --with-systemddir="$(systemd_get_systemunitdir)" - $(multilib_native_use_with unwind libunwind) - $(multilib_native_use_with winbind) - $(multilib_native_usex python '' '--disable-python') - $(multilib_native_use_enable zeroconf avahi) - $(multilib_native_usex test '--enable-selftest' '') - $(usev system-mitkrb5 "--with-system-mitkrb5 $(multilib_native_usex addc --with-experimental-mit-ad-dc '')") - $(use_with debug lttng) - $(use_with ldap) - $(use_with profiling-data) - # bug #683148 - --jobs 1 - ) - - if multilib_is_native_abi ; then - myconf+=( --with-shared-modules=${SHAREDMODS} ) - else - myconf+=( --with-shared-modules=DEFAULT,!vfs_snapper ) - fi - - append-cppflags "-I${ESYSROOT}/usr/include/et" - - waf-utils_src_configure ${myconf[@]} -} - -multilib_src_compile() { - waf-utils_src_compile -} - -multilib_src_test() { - if multilib_is_native_abi ; then - "${WAF_BINARY}" test || die "Test failed" - fi -} - -multilib_src_install() { - waf-utils_src_install - - # Make all .so files executable - find "${ED}" -type f -name "*.so" -exec chmod +x {} + || die - # smbspool_krb5_wrapper must only be accessible to root, bug #880739 - find "${ED}" -type f -name "smbspool_krb5_wrapper" -exec chmod go-rwx {} + || die - - # Remove empty runtime dirs created by build system (bug #892341) - find "${ED}"/{run,var} -type d -empty -delete || die - - if multilib_is_native_abi ; then - # Install ldap schema for server (bug #491002) - if use ldap ; then - insinto /etc/openldap/schema - doins examples/LDAP/samba.schema - fi - - # Create symlink for cups (bug #552310) - if use cups ; then - dosym ../../../bin/smbspool \ - /usr/libexec/cups/backend/smb - fi - - # Install example config file - insinto /etc/samba - doins examples/smb.conf.default - - # Fix paths in example file (bug #603964) - sed \ - -e '/log file =/s@/usr/local/samba/var/@/var/log/samba/@' \ - -e '/include =/s@/usr/local/samba/lib/@/etc/samba/@' \ - -e '/path =/s@/usr/local/samba/lib/@/var/lib/samba/@' \ - -e '/path =/s@/usr/local/samba/@/var/lib/samba/@' \ - -e '/path =/s@/usr/spool/samba@/var/spool/samba@' \ - -i "${ED}"/etc/samba/smb.conf.default || die - - # Install init script and conf.d file - newinitd "${CONFDIR}/samba4.initd-r1" samba - newconfd "${CONFDIR}/samba4.confd" samba - - dotmpfiles "${FILESDIR}"/samba.conf - if ! use addc ; then - rm "${D}/$(systemd_get_systemunitdir)/samba.service" \ - || die - fi - - # Preserve functionality for old gentoo-specific unit names - dosym nmb.service "$(systemd_get_systemunitdir)/nmbd.service" - dosym smb.service "$(systemd_get_systemunitdir)/smbd.service" - dosym winbind.service "$(systemd_get_systemunitdir)/winbindd.service" - fi - - if use pam && use winbind ; then - newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind - # bugs #376853 and #590374 - insinto /etc/security - doins examples/pam_winbind/pam_winbind.conf - fi -} - -pkg_postinst() { - tmpfiles_process samba.conf -} |