# Maintainer: Natanael Copa pkgname=samba pkgver=4.16.11 pkgrel=0 pkgdesc="Tools to access a server's filespace and printers via SMB" url="https://www.samba.org/" arch="all" license="GPL-3.0-or-later LGPL-3.0-or-later" subpackages=" $pkgname-dev $pkgname-doc $pkgname-server-openrc libwbclient $pkgname-util-libs:_util_libs $pkgname-common:_common:noarch $pkgname-common-tools:_common_tools $pkgname-common-server-libs:_common_server_libs libsmbclient $pkgname-client $pkgname-client-libs:_client_libs $pkgname-winbind $pkgname-winbind-clients:_winbind_clients $pkgname-winbind-krb5-locator:_winbind_krb5_locator $pkgname-libnss-winbind:_libnss_winbind pam-winbind:_pam_winbind $pkgname-dc $pkgname-dc-libs:_dc_libs $pkgname-server $pkgname-server-libs:_server_libs $pkgname-pidl::noarch py3-$pkgname:_py3 $pkgname-test:_test $pkgname-libs-py3:_libs_py3 $pkgname-libs " depends=" $pkgname-server=$pkgver-r$pkgrel $pkgname-client=$pkgver-r$pkgrel $pkgname-common-tools=$pkgver-r$pkgrel " _dc_deps="py3-dnspython py3-markdown tdb~1.4.6" # note that heimdal is required (over mit krb5) for AD DC functionality makedepends=" acl-dev bind-dev cups-dev dbus-dev docbook-xsl e2fsprogs-dev fuse-dev gnutls-dev iniparser-dev jansson-dev ldb-dev<2.6 libarchive-dev libcap-dev libtirpc-dev liburing-dev linux-pam-dev musl-nscd-dev ncurses-dev openldap-dev perl perl-json perl-parse-yapp popt-dev py3-ldb<2.6 py3-tdb~1.4.6 py3-tevent python3-dev rpcgen subunit-dev talloc-dev tdb-dev tevent-dev zlib-dev $_dc_deps " # vfs_btrfs patch from https://bugzilla.samba.org/show_bug.cgi?id=14790 source=" https://download.samba.org/pub/samba/stable/samba-$pkgver.tar.gz netgroup.patch getpwent_r.patch musl_uintptr.patch netdb-defines.patch missing-headers.patch musl_rm_unistd_incl.patch add_missing___compar_fn_t.patch pidl.patch samba-bgqd-include-signal-h.patch $pkgname.initd $pkgname.confd $pkgname.logrotate " pkggroups="winbind" # secfixes: # 4.16.6-r0: # - CVE-2022-3437 # - CVE-2022-3592 # 4.15.9-r0: # - CVE-2022-2031 # - CVE-2021-3670 # - CVE-2022-32744 # - CVE-2022-32745 # - CVE-2022-32746 # - CVE-2022-32742 # 4.15.2-r0: # - CVE-2016-2124 # - CVE-2020-25717 # - CVE-2020-25718 # - CVE-2020-25719 # - CVE-2020-25721 # - CVE-2020-25722 # - CVE-2021-23192 # - CVE-2021-3738 # 4.15.0-r0: # - CVE-2021-3671 # 4.14.4-r0: # - CVE-2021-20254 # 4.14.2-r0: # - CVE-2020-27840 # - CVE-2021-20277 # 4.12.9-r0: # - CVE-2020-14318 # - CVE-2020-14323 # - CVE-2020-14383 # 4.12.7-r0: # - CVE-2020-1472 # 4.12.5-r0: # - CVE-2020-10730 # - CVE-2020-10745 # - CVE-2020-10760 # - CVE-2020-14303 # 4.12.2-r0: # - CVE-2020-10700 # - CVE-2020-10704 # 4.11.5-r0: # - CVE-2019-14902 # - CVE-2019-14907 # - CVE-2019-19344 # 4.11.3-r0: # - CVE-2019-14861 # - CVE-2019-14870 # 4.11.2-r0: # - CVE-2019-10218 # - CVE-2019-14833 # 4.10.8-r0: # - CVE-2019-10197 # 4.10.5-r0: # - CVE-2019-12435 # - CVE-2019-12436 # 4.10.3-r0: # - CVE-2018-16860 # 4.8.11-r0: # - CVE-2018-14629 # - CVE-2019-3880 # 4.8.7-r0: # - CVE-2018-16841 # - CVE-2018-16851 # - CVE-2018-16853 # 4.8.4-r0: # - CVE-2018-1139 # - CVE-2018-1140 # - CVE-2018-10858 # - CVE-2018-10918 # - CVE-2018-10919 # 4.7.6-r0: # - CVE-2018-1050 # - CVE-2018-1057 # 4.7.3-r0: # - CVE-2017-14746 # - CVE-2017-15275 # 4.7.0-r0: # - CVE-2017-12150 # - CVE-2017-12151 # - CVE-2017-12163 # 4.6.1-r0: # - CVE-2017-2619 build() { local _idmap_modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2 local _pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4 local _auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4 ./configure \ --prefix=/usr \ --sysconfdir=/etc/$pkgname \ --with-configdir=/etc/$pkgname \ --localstatedir=/var \ --libexecdir=/usr/lib \ --enable-fhs \ --with-lockdir=/var/cache/$pkgname \ --with-piddir=/run/$pkgname \ --with-logfilebase=/var/log/$pkgname \ --with-pam \ --without-systemd \ --with-ads \ --with-shared-modules=$_idmap_modules,$_pdb_modules,$_auth_modules,vfs_io_uring \ --enable-cups \ --without-gettext \ --bundled-libraries=NONE,ntdb,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,cmocka \ --disable-rpath-install \ --without-gpgme make -j"$(nproc)" } package() { make DESTDIR="$pkgdir" install install -d "$pkgdir"/var/log/$pkgname \ "$pkgdir"/usr/share/doc/$pkgname install -dm755 "$pkgdir"/var/lib/$pkgname/sysvol install -Dm644 examples/smb.conf.default \ "$pkgdir"/etc/$pkgname/smb.conf install -m744 packaging/printing/smbprint \ "$pkgdir"/usr/bin/smbprint install -Dm644 "$srcdir"/$pkgname.logrotate \ "$pkgdir"/etc/logrotate.d/$pkgname install -Dm755 "$srcdir/$pkgname.initd" "$pkgdir/etc/init.d/$pkgname" install -Dm644 "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname" } _common() { pkgdesc="Samba common files for both client an servers" depends= amove etc var install -d -m700 "$subpkgdir"/var/lib/$pkgname/private } # common-libs is an attempt to avoid libpython dependency for libsmbclient _libs_py3() { pkgdesc="Libraries that require libpython" depends= amove \ usr/lib/$pkgname/libsamba-net*samba4.so \ usr/lib/$pkgname/libsamba-python*samba4.so return 0 } # may depend on samba-common-server-libs but not samba-server-libs _common_tools() { pkgdesc="Tools for Samba servers and clients" depends= amove \ usr/bin/net \ usr/bin/pdbedit \ usr/bin/profiles \ usr/bin/smbcontrol \ usr/bin/smbpasswd \ usr/bin/testparm \ usr/lib/$pkgname/libgpext-samba4.so \ usr/lib/$pkgname/libnet-keytab-samba4.so } # should not depend on client libs _common_server_libs() { pkgdesc="Samba libraries shared by common-tools and servers" # not shared with clients depends="" amove \ usr/lib/libdcerpc-server-core.so.* \ usr/lib/libnetapi.so.* \ usr/lib/$pkgname/libRPC-SERVER-LOOP-samba4.so \ usr/lib/$pkgname/libdfs-server-ad-samba4.so \ usr/lib/$pkgname/libprinting-migrate-samba4.so \ usr/lib/$pkgname/libsmbd-base-samba4.so \ usr/lib/$pkgname/libsmbldaphelper-samba4.so \ usr/lib/$pkgname/pdb } libsmbclient() { pkgdesc="The SMB client library" depends= amove \ usr/lib/libsmbclient.so.* } # should only depend on samba-util-libs, libwbclient and samba-libs _client_libs() { pkgdesc="Samba libraries used by clients" depends= amove \ usr/lib/$pkgname/libcli-ldap-samba4.so \ usr/lib/$pkgname/libcmdline-contexts-samba4.so \ usr/lib/$pkgname/libdsdb-garbage-collect-tombstones-samba4.so \ usr/lib/$pkgname/libgpo-samba4.so \ usr/lib/$pkgname/libhttp-samba4.so \ usr/lib/$pkgname/libmscat-samba4.so \ usr/lib/$pkgname/libnetif-samba4.so \ usr/lib/$pkgname/libprinter-driver-samba4.so \ usr/lib/$pkgname/libregistry-samba4.so \ usr/lib/$pkgname/libsmbclient-raw-samba4.so \ usr/lib/libdcerpc.so.* } client() { pkgdesc="Samba client programs" depends="$pkgname-common=$pkgver-r$pkgrel" cd "$pkgdir" amove \ usr/bin/cifsdd \ usr/bin/dumpmscat \ usr/bin/dbwrap_tool \ usr/bin/mdsearch \ usr/bin/mvxattr \ usr/bin/nmblookup \ usr/bin/oLschema2ldif \ usr/bin/regdiff \ usr/bin/regpatch \ usr/bin/regshell \ usr/bin/regtree \ usr/bin/rpcclient \ usr/bin/samba-regedit \ usr/bin/sharesec \ usr/bin/smbcacls \ usr/bin/smbclient \ usr/bin/smbcquotas \ usr/bin/smbget \ usr/bin/smbprint \ usr/bin/smbspool \ usr/bin/smbtar \ usr/bin/smbtree \ usr/lib/$pkgname/smbspool_krb5_wrapper } # should not pull in samba-client-libs _server_libs() { pkgdesc="Samba libraries shared by server and windbind" depends= amove \ usr/lib/$pkgname/libdcerpc-samba4.so \ usr/lib/$pkgname/libidmap-samba4.so \ usr/lib/$pkgname/libnss-info-samba4.so } # should not pull in samba-client-libs winbind() { pkgdesc="Samba user and group resolver" depends="$pkgname-common=$pkgver-r$pkgrel" install="winbind.pre-install winbind.pre-upgrade winbind.post-install winbind.post-upgrade" amove \ usr/sbin/winbindd \ usr/lib/$pkgname/idmap \ usr/lib/$pkgname/nss_info install -d -g winbind -m 750 \ "$subpkgdir"/var/cache/$pkgname/winbindd_privileged } # should not depend on any other samba package _util_libs() { pkgdesc="Samba utility libraries" depends= amove \ usr/lib/libsamba-util.so.* \ usr/lib/$pkgname/libgenrand-samba4.so \ usr/lib/$pkgname/libsocket-blocking-samba4.so \ usr/lib/$pkgname/libsamba-debug-samba4.so \ usr/lib/$pkgname/libtime-basic-samba4.so \ usr/lib/$pkgname/libsys-rw-samba4.so \ usr/lib/$pkgname/libiov-buf-samba4.so \ usr/lib/$pkgname/libcom-err-samba4.so \ usr/lib/$pkgname/libreplace-samba4.so } # should only depend on samba-util-libs libwbclient() { pkgdesc="Samba winbind client libraries" depends= amove usr/lib/libwbclient.so.* } _winbind_clients() { pkgdesc="Samba winbind client tools" depends= amove \ usr/bin/ntlm_auth \ usr/bin/wbinfo } _libnss_winbind() { pkgdesc="Samba winbind NSS plugin" depends= amove \ usr/lib/libnss_winbind.so* \ usr/lib/libnss_wins.so* } _winbind_krb5_locator() { pkgdesc="Samba winbind krb5 locator" depends= amove \ usr/lib/samba/krb5 } _pam_winbind() { pkgdesc="PAM module for winbind" depends= mkdir -p "$subpkgdir"/lib/security mv "$pkgdir"/usr/lib/security/* "$subpkgdir"/lib/security/ rmdir -p "$pkgdir"/usr/lib/security || true } dc() { pkgdesc="Samba AD Domain Controller" depends="$pkgname-common=$pkgver-r$pkgrel $pkgname-server=$pkgver-r$pkgrel $pkgname-winbind=$pkgver-r$pkgrel py3-$pkgname=$pkgver-r$pkgrel $_dc_deps" amove \ usr/bin/samba-tool \ usr/sbin/samba* \ usr/share/$pkgname \ usr/lib/$pkgname/auth/samba4.so \ usr/lib/$pkgname/gensec \ usr/lib/$pkgname/ldb \ usr/lib/$pkgname/libsmbpasswdparser-samba4.so \ usr/lib/$pkgname/vfs/posix_eadb.so } _dc_libs() { pkgdesc="Samba AD Domain Controller libraries" amove \ usr/lib/libdcerpc-samr.so.* \ usr/lib/libdcerpc-server.so.* \ usr/lib/libsamba-policy.* \ usr/lib/$pkgname/bind9 \ usr/lib/$pkgname/libHDB-SAMBA4-samba4.so \ usr/lib/$pkgname/libLIBWBCLIENT-OLD-samba4.so \ usr/lib/$pkgname/libauth-unix-token-samba4.so \ usr/lib/$pkgname/libauth4-samba4.so \ usr/lib/$pkgname/libdb-glue-samba4.so \ usr/lib/$pkgname/libdnsserver-common-samba4.so \ usr/lib/$pkgname/libdsdb-module-samba4.so \ usr/lib/$pkgname/libgss-preauth-samba4.so \ usr/lib/$pkgname/libhdb-samba4.so* \ usr/lib/$pkgname/libkdc-samba4.so* \ usr/lib/$pkgname/libpac-samba4.so \ usr/lib/$pkgname/libposix-eadb-samba4.so \ usr/lib/$pkgname/libprocess-model-samba4.so \ usr/lib/$pkgname/libscavenge-dns-records-samba4.so \ usr/lib/$pkgname/libservice-samba4.so \ usr/lib/$pkgname/libshares-samba4.so \ usr/lib/$pkgname/process_model \ usr/lib/$pkgname/service } server() { pkgdesc="Samba server" depends="$pkgname-common=$pkgver-r$pkgrel" amove \ usr/sbin/nmbd \ usr/sbin/smbd \ usr/sbin/eventlogadm \ usr/bin/smbstatus \ \ usr/lib/$pkgname/auth \ usr/lib/$pkgname/libREG-FULL-samba4.so \ usr/lib/$pkgname/libRPC-WORKER-samba4.so \ usr/lib/$pkgname/libxattr-tdb-samba4.so \ usr/lib/$pkgname/rpcd_* \ usr/lib/$pkgname/samba-bgqd \ usr/lib/$pkgname/samba-dcerpcd \ usr/lib/$pkgname/vfs } pidl() { pkgdesc="Perl IDL compiler" depends="perl" amove \ usr/bin/pidl \ usr/share/perl* } _py3() { pkgdesc="Samba python libraries" depends="py3-tdb" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/ } _test() { pkgdesc="Samba server and client testing tools" depends= amove \ usr/bin/gentest \ usr/bin/locktest \ usr/bin/masktest \ usr/bin/ndrdump \ usr/bin/smbtorture \ usr/lib/$pkgname/libdlz-bind9-for-torture-samba4.so \ usr/lib/$pkgname/libtorture-samba4.so } # should only depend on samba-util-libs and libwbclient libs() { pkgdesc="Samba core libraries shared by common-tools, server and clients" depends= # heimdal libs amove \ usr/lib/$pkgname/libasn1-samba4.so* \ usr/lib/$pkgname/libgssapi-samba4.so* \ usr/lib/$pkgname/libhcrypto-samba4.so* \ usr/lib/$pkgname/libheimbase-samba4.so* \ usr/lib/$pkgname/libheimntlm-samba4.so* \ usr/lib/$pkgname/libhx509-samba4.so* \ usr/lib/$pkgname/libkrb5-samba4.so* \ usr/lib/$pkgname/libroken-samba4.so* \ usr/lib/$pkgname/libwind-samba4.so* amove \ usr/lib/$pkgname/libCHARSET3-samba4.so \ usr/lib/$pkgname/libMESSAGING-SEND-samba4.so \ usr/lib/$pkgname/libMESSAGING-samba4.so \ usr/lib/$pkgname/libaddns-samba4.so \ usr/lib/$pkgname/libads-samba4.so \ usr/lib/$pkgname/libasn1util-samba4.so \ usr/lib/$pkgname/libauth-samba4.so \ usr/lib/$pkgname/libauthkrb5-samba4.so \ usr/lib/$pkgname/libcli-cldap-samba4.so \ usr/lib/$pkgname/libcli-ldap-common-samba4.so \ usr/lib/$pkgname/libcli-nbt-samba4.so \ usr/lib/$pkgname/libcli-smb-common-samba4.so \ usr/lib/$pkgname/libcli-spoolss-samba4.so \ usr/lib/$pkgname/libcliauth-samba4.so \ usr/lib/$pkgname/libclidns-samba4.so \ usr/lib/$pkgname/libcluster-samba4.so \ usr/lib/$pkgname/libcmdline-samba4.so \ usr/lib/$pkgname/libcmocka-samba4.so \ usr/lib/$pkgname/libcommon-auth-samba4.so \ usr/lib/$pkgname/libdbwrap-samba4.so \ usr/lib/$pkgname/libdcerpc-pkt-auth-samba4.so \ usr/lib/$pkgname/libdcerpc-samba-samba4.so \ usr/lib/$pkgname/libevents-samba4.so \ usr/lib/$pkgname/libflag-mapping-samba4.so \ usr/lib/$pkgname/libgensec-samba4.so \ usr/lib/$pkgname/libgse-samba4.so \ usr/lib/$pkgname/libinterfaces-samba4.so \ usr/lib/$pkgname/libkrb5samba-samba4.so \ usr/lib/$pkgname/libldbsamba-samba4.so \ usr/lib/$pkgname/liblibcli-lsa3-samba4.so \ usr/lib/$pkgname/liblibcli-netlogon3-samba4.so \ usr/lib/$pkgname/liblibsmb-samba4.so \ usr/lib/$pkgname/libmessages-dgm-samba4.so \ usr/lib/$pkgname/libmessages-util-samba4.so \ usr/lib/$pkgname/libmsghdr-samba4.so \ usr/lib/$pkgname/libmsrpc3-samba4.so \ usr/lib/$pkgname/libndr-samba-samba4.so \ usr/lib/$pkgname/libndr-samba4.so \ usr/lib/$pkgname/libnpa-tstream-samba4.so \ usr/lib/$pkgname/libsamba-cluster-support-samba4.so \ usr/lib/$pkgname/libsamba-modules-samba4.so \ usr/lib/$pkgname/libsamba-security-samba4.so \ usr/lib/$pkgname/libsamba-sockets-samba4.so \ usr/lib/$pkgname/libsamba3-util-samba4.so \ usr/lib/$pkgname/libsamdb-common-samba4.so \ usr/lib/$pkgname/libsecrets3-samba4.so \ usr/lib/$pkgname/libserver-id-db-samba4.so \ usr/lib/$pkgname/libserver-role-samba4.so \ usr/lib/$pkgname/libsmb-transport-samba4.so \ usr/lib/$pkgname/libsmbd-shim-samba4.so \ usr/lib/$pkgname/libtalloc-report-printf-samba4.so \ usr/lib/$pkgname/libtalloc-report-samba4.so \ usr/lib/$pkgname/libtdb-wrap-samba4.so \ usr/lib/$pkgname/libtrusts-util-samba4.so \ usr/lib/$pkgname/libutil-reg-samba4.so \ usr/lib/$pkgname/libutil-setid-samba4.so \ usr/lib/$pkgname/libutil-tdb-samba4.so \ usr/lib/libdcerpc-binding.so.* \ usr/lib/libndr-krb5pac.so.* \ usr/lib/libndr-nbt.so.* \ usr/lib/libndr-standard.so.* \ usr/lib/libndr.so.* \ usr/lib/libsamba-credentials.so.* \ usr/lib/libsamba-errors.so.* \ usr/lib/libsamba-hostconfig.so.* \ usr/lib/libsamba-passdb.so.* \ usr/lib/libsamdb.so.* \ usr/lib/libsmbconf.so.* \ usr/lib/libsmbldap.so.* \ usr/lib/libtevent-util.so.* # exit with error if some stuff stayed at main pack local leftovers="$(find "$pkgdir" -type f)" if [ -n "$leftovers" ]; then error "files left in main package:" echo "$leftovers" >&2 return 1 fi } sha512sums=" e18c1dd3d476d0ac8eaee7d7cbb955524c675046f4b4fd3fb684bc5138460099566e6e9e3d7f4e09c42b300e07c0d107c74f4ae1f73b5cf426d88d80e110fea2 samba-4.16.11.tar.gz f997d0bca9de64a567bccc245bec41e4aa00bacb379d8e348678dcafcf7e723e8716608c5d2d266ad816439b8b93bb8ee28371308a01c9d9c50229f1fc8deb67 netgroup.patch 58de5e79fdfd06e828d478e112d581d333a8bee88d2602b92204d780f0d707b27dd84f8e2e6b00fca40da81c8fe99aa5bcec70d8b393d3a0a83199c72a4aa48b getpwent_r.patch b7906d66fe55a980a54161ee3f311b51bcbce76b8d4c8cc1ba6d0c5bdf98232cb192b9d2c1aa7b3e2742f5b9848c6cf429347940eefe66c3e0eda1d5aac1bf93 musl_uintptr.patch 3a9363b10b6eed5d5c6e6fa73980f1012e66194254ebe7501bd66a2b6f358edf3358da8c5a7196a0b9dd6b3ce777a39bff41e7ddf7285c7fd891088cf4dc0085 netdb-defines.patch c0afe8b1dfddc5290c9aa611163d20adc3a546f54bba0081f739cda4255829f1a72bae422b6cb049aca82e58d4daf63ad5553f4c5c51671019bfbbc2781460f0 missing-headers.patch 9bf4bbc8b03d9ea17d2f8ffeaf3a83541b171936a90bb8d75b08cc5afbdbaaec545c1b3782c90ae2ffc4568ab4e6f15fb21899d80c654a796301e16429c93b65 musl_rm_unistd_incl.patch bc2df70e327fea5dfbd923600225f1448815d842c37d6937dd74eab7f7699d7f52cd7a8e28a61233974649cf86661a0107dce5019d33b71205e4b41bac73f4e2 add_missing___compar_fn_t.patch c0bbe1186b150a9bb2a0b741a8cfbd7a5109e5fed1eaa07aaa38cf026ebe054d38cc01e2496f0cab7b40f743e1b7ecfbf8a4d5820810226c4152021df65f36dc pidl.patch e98fd19f65d954f04f7e3b5be86e9c4bcc9ac090c40037de77bfeb266617747c514aeb42f3daf84113b2f3374480d25e368bc1fdebc1870458eda12329d2062e samba-bgqd-include-signal-h.patch 96070e2461370437f48571e7de550c13a332fef869480cfe92e7cac73a998f6c2ee85d2580df58211953bebd0e577691aa710c8edddf3ea0f30e9d47d0a2fd44 samba.initd e2b49cb394e758447ca97de155a61b4276499983a0a5c00b44ae621c5559b759a766f8d1c8d3ee98ad5560f4064a847a7a20cfa2e14f85c061bec8b80fd649eb samba.confd 3458a4e1f8a8b44c966afb339b2dca51615be049f594c14911fc4d8203623deee416b6fe881436e246fc7d49c97a2b3bf9c5f33ba774302b24190a1103d6b67d samba.logrotate "