From 75c38e21c4e9fa099106fc6cdf76f0cc5cf14909 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Tue, 10 Sep 2024 13:34:31 +0000 Subject: [PATCH] added extra/samba --- extra/samba/.SRCINFO | 116 ++++++ extra/samba/PKGBUILD | 358 ++++++++++++++++++ ...F5E2832BD2545A1897B713AA99442FB680B620.asc | 52 +++ extra/samba/samba-4.17.0-15195.patch | 86 +++++ extra/samba/samba-glibc-2.36.patch | 57 +++ extra/samba/samba.conf | 2 + extra/samba/samba.install | 10 + extra/samba/samba.logrotate | 5 + extra/samba/samba.pam | 3 + 9 files changed, 689 insertions(+) create mode 100644 extra/samba/.SRCINFO create mode 100644 extra/samba/PKGBUILD create mode 100644 extra/samba/keys/pgp/81F5E2832BD2545A1897B713AA99442FB680B620.asc create mode 100644 extra/samba/samba-4.17.0-15195.patch create mode 100644 extra/samba/samba-glibc-2.36.patch create mode 100644 extra/samba/samba.conf create mode 100644 extra/samba/samba.install create mode 100644 extra/samba/samba.logrotate create mode 100644 extra/samba/samba.pam diff --git a/extra/samba/.SRCINFO b/extra/samba/.SRCINFO new file mode 100644 index 000000000..3190eca48 --- /dev/null +++ b/extra/samba/.SRCINFO @@ -0,0 +1,116 @@ +pkgbase = samba + pkgver = 4.21.0 + pkgrel = 2 + epoch = 2 + url = https://www.samba.org + arch = x86_64 + license = GPL-3.0-or-later + makedepends = acl + makedepends = dateutils + makedepends = dbus + makedepends = docbook-xsl + makedepends = glusterfs + makedepends = gnutls + makedepends = jansson + makedepends = krb5 + makedepends = libbsd + makedepends = libcap + makedepends = libcups + makedepends = libldap + makedepends = libnsl + makedepends = libtirpc + makedepends = liburing + makedepends = pam + makedepends = perl-json + makedepends = perl-parse-yapp + makedepends = pkg-config + makedepends = popt + makedepends = python + makedepends = python-dnspython + makedepends = python-markdown + makedepends = readline + makedepends = rpcsvc-proto + makedepends = systemd + makedepends = talloc + makedepends = tdb + makedepends = tevent + optdepends = python-dnspython: samba_dnsupdate and samba_upgradedns in AD setup + optdepends = python-markdown: for samba-tool domain schemeupgrade + optdepends = glusterfs: for vfs_glusterfs support + source = https://us1.samba.org/samba/ftp/stable/samba-4.21.0.tar.gz + source = https://us1.samba.org/samba/ftp/stable/samba-4.21.0.tar.asc + source = samba.logrotate + source = samba.pam + source = samba.conf + validpgpkeys = 81F5E2832BD2545A1897B713AA99442FB680B620 + b2sums = 0889f2be3b78affee88250114397de87a77da77d9674815ec5605780a6bb3e2e28dbbae53b66695196408f4aef550acce793e6397045fbea4bb236fdd095ce1a + b2sums = SKIP + b2sums = 72ecb413ca3499af984a0bb391f96e678a24a19d8e5c96050ba227878f0770f03466ac7a0ee328416e08204e92e9d16ec22d63ef25b53c20d957a17221cd3a98 + b2sums = 3eab84d332d96678fe6e435ee243c8f1a82b838f601d61d3604d11e918aed7a62202edca5e476c4b9031ed284570e6fcd6c659cfdbd9624aa0019d3233755f81 + b2sums = e1f49e14d34cf1a48378cad9f427215101ff55b2461340e0dc2376192f07c45fc238463a07672348c0823e3aa7892c83a939a7d358aabac818e2108ca2c1900f + +pkgname = libwbclient + pkgdesc = winbind client library + depends = libbsd + +pkgname = ldb + pkgdesc = Schema-less, ldap like, API and database + url = https://ldb.samba.org/ + depends = libtevent.so + depends = lmdb + depends = popt + depends = talloc + depends = tdb + depends = libtdb.so + optdepends = python: for python bindings + provides = libldb.so + +pkgname = smbclient + pkgdesc = Tools to access a server's filespace and printers via SMB + depends = cifs-utils + depends = gnutls + depends = icu + depends = jansson + depends = ldb + depends = libarchive + depends = libbsd + depends = libcups + depends = libldap + depends = libldb.so + depends = libnsl + depends = libreadline.so + depends = libtdb.so + depends = libtevent.so + depends = libwbclient + depends = popt + depends = python + depends = readline + depends = talloc + depends = tdb + depends = tevent + +pkgname = samba + pkgdesc = SMB Fileserver and AD Domain server + install = samba.install + depends = gnutls>=2.4.1 + depends = gpgme + depends = ldb + depends = libbsd + depends = libcups + depends = libcap>=2.16 + depends = libldb.so + depends = libtdb.so + depends = libtevent.so + depends = liburing + depends = libwbclient + depends = popt + depends = python + depends = smbclient>=4.21.0 + depends = talloc + depends = tdb + optdepends = python-dnspython: netads_dns.py, dnsresolver.py and traffic_packets.py + optdepends = python-markdown: ms_schema_markdown.py and ms_forest_updates_markdown.py + optdepends = python-cryptography: lockout_tests.py gp_cert_auto_enroll_ext.py gpo.py and kcrypto.py + backup = etc/logrotate.d/samba + backup = etc/pam.d/samba + backup = etc/conf.d/samba diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD new file mode 100644 index 000000000..debb42961 --- /dev/null +++ b/extra/samba/PKGBUILD @@ -0,0 +1,358 @@ +# Maintainer: Tobias Powalowski +# Contributor: judd +# Contributor: Michael Hansen +# Contributor: Marco A Rojas +# Contributor: Netanel Shine +# Contributor: ngoonee +# Contributor: Adam Russell +# Contributor: Dhananjay Sathe + +# ALARM: Kevin Mihelich +# - generalize cpython arch-dependent install line + +pkgbase=samba +pkgname=('libwbclient' 'ldb' 'smbclient' 'samba') +pkgver=4.21.0 +pkgrel=2 +arch=(x86_64) +url="https://www.samba.org" +license=('GPL-3.0-or-later') +makedepends=( + acl + dateutils + dbus + docbook-xsl + glusterfs + gnutls + jansson + krb5 + libbsd + libcap + libcups + libldap + libnsl + libtirpc + liburing + pam + perl-json + perl-parse-yapp + pkg-config + popt + python + python-dnspython + python-markdown + readline + rpcsvc-proto + systemd + talloc + tdb + tevent +) +#checkdepends=( +# git +# python-cryptography +# python-iso8601 +# python-pyasn1 +#) +optdepends=( + 'python-dnspython: samba_dnsupdate and samba_upgradedns in AD setup' + 'python-markdown: for samba-tool domain schemeupgrade' + 'glusterfs: for vfs_glusterfs support' +) +epoch=2 +source=( + https://us1.samba.org/samba/ftp/stable/${pkgbase}-${pkgver}.tar{.gz,.asc} + samba.logrotate + samba.pam + samba.conf +) +validpgpkeys=('81F5E2832BD2545A1897B713AA99442FB680B620') #Samba Distribution Verification Key +b2sums=('0889f2be3b78affee88250114397de87a77da77d9674815ec5605780a6bb3e2e28dbbae53b66695196408f4aef550acce793e6397045fbea4bb236fdd095ce1a' + 'SKIP' + '72ecb413ca3499af984a0bb391f96e678a24a19d8e5c96050ba227878f0770f03466ac7a0ee328416e08204e92e9d16ec22d63ef25b53c20d957a17221cd3a98' + '3eab84d332d96678fe6e435ee243c8f1a82b838f601d61d3604d11e918aed7a62202edca5e476c4b9031ed284570e6fcd6c659cfdbd9624aa0019d3233755f81' + 'e1f49e14d34cf1a48378cad9f427215101ff55b2461340e0dc2376192f07c45fc238463a07672348c0823e3aa7892c83a939a7d358aabac818e2108ca2c1900f') +### UNINSTALL dmapi package before building!!! + +# Use samba-pkg as a staging directory for the split packages +# (This is so RPATHS and symlinks are generated correctly via +# make install, but the otherwise unsplit pieces can be split) +build() { +_samba4_idmap_modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2 +_samba4_pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4 +_samba4_auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4 +_pkgsrc="${srcdir}"/samba-pkg + rm -rf ${_pkgsrc} + cd ${pkgbase}-${pkgver} + ./configure --enable-fhs \ + --prefix=/usr \ + --sysconfdir=/etc \ + --sbindir=/usr/bin \ + --libdir=/usr/lib \ + --libexecdir=/usr/lib/samba \ + --localstatedir=/var \ + --with-configdir=/etc/samba \ + --with-lockdir=/var/cache/samba \ + --with-sockets-dir=/run/samba \ + --with-piddir=/run \ + --with-ads \ + --with-ldap \ + --with-winbind \ + --with-acl-support \ + --with-systemd \ + --systemd-install-services \ + --with-pam \ + --with-pammodulesdir=/usr/lib/security \ + --private-libraries='!ldb' \ + --bundled-libraries='!tdb,!talloc,!pytalloc-util,!tevent,!popt,!pyldb-util' \ + --with-shared-modules="${_samba4_idmap_modules},${_samba4_pdb_modules},${_samba4_auth_modules},vfs_io_uring" \ + --disable-rpath-install \ + --with-profiling-data + # Add this to the options once it's working... + #--with-system-mitkrb5 /opt/heimdal + + make + make DESTDIR="${_pkgsrc}/" install + + # This gets skipped somehow + if [ ! -e "${_pkgsrc}"/usr/bin/smbtar ]; then + install -m755 "${srcdir}"/samba-${pkgver}/source3/script/smbtar "${_pkgsrc}"/usr/bin/ + fi +} + +# --enable-selftest for checks +#check() { +# cd samba-${pkgver} +# make check +#} + +package_libwbclient() { +pkgdesc="winbind client library" +depends=('libbsd') +_pkgsrc="${srcdir}"/samba-pkg + install -d -m755 "${pkgdir}"/usr/lib + for lib in "${_pkgsrc}"/usr/lib/libwbclient.so*; do + mv ${lib} "${pkgdir}"/usr/lib/ + done + install -d -m755 "${pkgdir}"/usr/lib/pkgconfig + mv "${_pkgsrc}"/usr/lib/pkgconfig/wbclient.pc "${pkgdir}"/usr/lib/pkgconfig/ + install -d -m755 "${pkgdir}"/usr/include/samba-4.0 + mv "${_pkgsrc}"/usr/include/samba-4.0/wbclient.h "${pkgdir}"/usr/include/samba-4.0/ +} + +package_ldb() { +pkgdesc='Schema-less, ldap like, API and database' +url="https://ldb.samba.org/" +depends=( + libtevent.so + lmdb + popt + talloc + tdb + libtdb.so +) +optdepends=( + 'python: for python bindings' +) +_ldb_bins=( + ldbadd + ldbdel + ldbedit + ldbmodify + ldbrename + ldbsearch +) +_ldb_headers=( + ldb.h + ldb_errors.h + ldb_handlers.h + ldb_module.h + ldb_version.h +) +provides=(libldb.so) +_pkgsrc="${srcdir}"/samba-pkg + + install -d -m755 "${pkgdir}"/usr/bin + for bin in ${_ldb_bins[@]}; do + mv "${_pkgsrc}"/usr/bin/${bin} "${pkgdir}"/usr/bin/ + done + install -d -m755 "${pkgdir}"/usr/lib + for lib in "${_pkgsrc}"/usr/lib/libldb*; do + mv ${lib} "${pkgdir}"/usr/lib/ + done + install -d -m755 "${pkgdir}"/usr/lib/samba + mv "${_pkgsrc}"/usr/lib/samba/ldb "${pkgdir}"/usr/lib/samba + install -d -m755 "${pkgdir}"/usr/lib/pkgconfig + mv "${_pkgsrc}"/usr/lib/pkgconfig/ldb.pc "${pkgdir}"/usr/lib/pkgconfig/ + install -d -m755 "${pkgdir}"/usr/include/samba-4.0 + for headers in ${_ldb_headers[@]}; do + mv "${_pkgsrc}"/usr/include/samba-4.0/${headers} "${pkgdir}"/usr/include/samba-4.0/ + done + install -d -m755 "${pkgdir}"/usr/lib/python3.12/site-packages/ + mv "${_pkgsrc}"/usr/lib/python3.12/site-packages/{_ldb_text.py,ldb.cpython-312-*-linux-gnu*.so} \ + "${pkgdir}"/usr/lib/python3.12/site-packages/ + + install -d -m755 "${pkgdir}"/usr/share/man/man1 + for bin in ${_ldb_bins[@]}; do + mv "${_pkgsrc}"/usr/share/man/man1/${bin}.1 "${pkgdir}"/usr/share/man/man1/ + done + mv "${_pkgsrc}"/usr/share/man/man3 "${pkgdir}"/usr/share/man/ + +} + +package_smbclient() { +pkgdesc="Tools to access a server's filespace and printers via SMB" +depends=( + cifs-utils + gnutls + icu + jansson + ldb + libarchive + libbsd + libcups + libldap + libldb.so + libnsl + libreadline.so + libtdb.so + libtevent.so + libwbclient + popt + python + readline + talloc + tdb + tevent +) +_smbclient_bins=( + smbclient + rpcclient + smbspool + smbtree + smbcacls + smbcquotas + smbget + net + nmblookup + smbtar +) +_pkgsrc="${srcdir}"/samba-pkg + + install -d -m755 "${pkgdir}"/usr/bin + for bin in ${_smbclient_bins[@]}; do + mv "${_pkgsrc}"/usr/bin/${bin} "${pkgdir}"/usr/bin/ + done + + # smbclient binaries link to the majority of the samba + # libs, so this is a shortcut instead of resolving the + # whole dependency tree by hand + install -d -m755 "${pkgdir}"/usr/lib + for lib in "${_pkgsrc}"/usr/lib/lib*.so*; do + mv ${lib} "${pkgdir}"/usr/lib/ + done + + install -d -m755 "${pkgdir}"/usr/lib/samba + for lib in "${_pkgsrc}"/usr/lib/samba/lib*.so*; do + mv ${lib} "${pkgdir}"/usr/lib/samba/ + done + + install -d -m755 "${pkgdir}"/usr/lib/pkgconfig + mv "${_pkgsrc}"/usr/lib/pkgconfig/smbclient.pc "${pkgdir}"/usr/lib/pkgconfig/ + mv "${_pkgsrc}"/usr/lib/pkgconfig/netapi.pc "${pkgdir}"/usr/lib/pkgconfig/ + + install -d -m755 "${pkgdir}"/usr/share/man/man1 + install -d -m755 "${pkgdir}"/usr/share/man/man7 + install -d -m755 "${pkgdir}"/usr/share/man/man8 + for bin in ${_smbclient_bins[@]}; do + if [ -e "${_pkgsrc}"/usr/share/man/man1/${bin}.1 ]; then + mv "${_pkgsrc}"/usr/share/man/man1/${bin}.1 "${pkgdir}"/usr/share/man/man1/ + fi + if [ -e "${_pkgsrc}"/usr/share/man/man8/${bin}.8 ]; then + mv "${_pkgsrc}"/usr/share/man/man8/${bin}.8 "${pkgdir}"/usr/share/man/man8/ + fi + done + mv "${_pkgsrc}"/usr/share/man/man7/libsmbclient.7 "${pkgdir}"/usr/share/man/man7/ + + install -d -m755 "${pkgdir}"/usr/include/samba-4.0 + mv "${_pkgsrc}"/usr/include/samba-4.0/libsmbclient.h "${pkgdir}"/usr/include/samba-4.0/ + mv "${_pkgsrc}"/usr/include/samba-4.0/netapi.h "${pkgdir}"/usr/include/samba-4.0/ + + mkdir -p "${pkgdir}"/usr/lib/cups/backend + ln -sf /usr/bin/smbspool "${pkgdir}"/usr/lib/cups/backend/smb +} + +package_samba() { +pkgdesc="SMB Fileserver and AD Domain server" +depends=( + "gnutls>=2.4.1" + gpgme + ldb + libbsd + libcups + "libcap>=2.16" + libldb.so + libtdb.so + libtevent.so + liburing + libwbclient + popt + python + "smbclient>=${pkgver}" + talloc + tdb +) +optdepends=( + 'python-dnspython: netads_dns.py, dnsresolver.py and traffic_packets.py ' + 'python-markdown: ms_schema_markdown.py and ms_forest_updates_markdown.py' + 'python-cryptography: lockout_tests.py gp_cert_auto_enroll_ext.py gpo.py and kcrypto.py' +) +backup=( + etc/logrotate.d/samba + etc/pam.d/samba + etc/conf.d/samba +) +install=samba.install + +_pkgsrc="${srcdir}"/samba-pkg + # Everything that libwbclient and smbclient didn't install goes + # into the samba package... + mv "${_pkgsrc}"/* "${pkgdir}" + rmdir "${_pkgsrc}" + + # Make admin scripts look in the right place for the samba python module + for script in bin/samba_dnsupdate bin/samba_kcc bin/samba_spnupdate \ + bin/samba_upgradedns bin/samba-tool + do + sed -i "/^sys\.path\.insert/ asys.path.insert(0, '/usr/lib/python${_pyver}/site-packages')" \ + "${pkgdir}"/usr/${script} + done + + # packaging/wscript_build to use /etc/conf.d + sed -i -e '/^EnvironmentFile/ s/sysconfig/conf.d/' "${pkgdir}"/usr/lib/systemd/system/*.service + install -d -m755 "${pkgdir}"/etc/conf.d + install -m644 "${srcdir}"/samba-${pkgver}/packaging/systemd/samba.sysconfig "${pkgdir}"/etc/conf.d/samba + + # create ephemeral dirs via tmpfiles rather than shipping them in package + install -D -m644 "${srcdir}"/samba.conf "${pkgdir}"/usr/lib/tmpfiles.d/samba.conf + # create config dir + install -d -m755 "${pkgdir}"/etc/samba + + mkdir -p "${pkgdir}"/etc/samba/private + chmod 700 "${pkgdir}"/etc/samba/private + + install -D -m644 "${srcdir}"/samba.logrotate "${pkgdir}"/etc/logrotate.d/samba + install -D -m644 "${srcdir}"/samba.pam "${pkgdir}"/etc/pam.d/samba + + # spool directory + install -d -m1777 "${pkgdir}"/var/spool/samba + + rm -rf "${pkgdir}"/run + rm -rf "${pkgdir}"/var/run + rm -rf "${pkgdir}"/etc/sysconfig + + # copy ldap example + install -D -m644 "${srcdir}"/samba-${pkgver}/examples/LDAP/samba.schema \ + "${pkgdir}"/usr/share/doc/samba/examples/LDAP/samba.schema +} + diff --git a/extra/samba/keys/pgp/81F5E2832BD2545A1897B713AA99442FB680B620.asc b/extra/samba/keys/pgp/81F5E2832BD2545A1897B713AA99442FB680B620.asc new file mode 100644 index 000000000..e54d8f015 --- /dev/null +++ b/extra/samba/keys/pgp/81F5E2832BD2545A1897B713AA99442FB680B620.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=nGpF +-----END PGP PUBLIC KEY BLOCK----- diff --git a/extra/samba/samba-4.17.0-15195.patch b/extra/samba/samba-4.17.0-15195.patch new file mode 100644 index 000000000..5762f69ff --- /dev/null +++ b/extra/samba/samba-4.17.0-15195.patch @@ -0,0 +1,86 @@ +diff --git a/source3/libsmb/libsmb_file.c b/source3/libsmb/libsmb_file.c +index fa301b9fa18..98750754036 100644 +--- a/source3/libsmb/libsmb_file.c ++++ b/source3/libsmb/libsmb_file.c +@@ -464,6 +464,7 @@ SMBC_getatr(SMBCCTX * context, + struct timespec access_time_ts = {0}; + struct timespec write_time_ts = {0}; + struct timespec change_time_ts = {0}; ++ struct timespec w_time_ts = {0}; + time_t write_time = 0; + SMB_INO_T ino = 0; + struct cli_credentials *creds = NULL; +@@ -506,6 +507,7 @@ SMBC_getatr(SMBCCTX * context, + } + + if (!srv->no_pathinfo2) { ++ bool not_supported_error = false; + status = cli_qpathinfo2(targetcli, + targetpath, + &create_time_ts, +@@ -518,11 +520,21 @@ SMBC_getatr(SMBCCTX * context, + if (NT_STATUS_IS_OK(status)) { + goto setup_stat; + } ++ if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_LEVEL) || ++ NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)) { ++ not_supported_error = true; ++ } ++ if (!not_supported_error) { ++ /* "Normal error". Just return it to caller. */ ++ TALLOC_FREE(frame); ++ return status; ++ } + } + + srv->no_pathinfo2 = True; + + if (!srv->no_pathinfo3) { ++ bool not_supported_error = false; + status = cli_qpathinfo3(targetcli, + targetpath, + &create_time_ts, +@@ -535,6 +547,15 @@ SMBC_getatr(SMBCCTX * context, + if (NT_STATUS_IS_OK(status)) { + goto setup_stat; + } ++ if (NT_STATUS_EQUAL(status, NT_STATUS_INVALID_LEVEL) || ++ NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)) { ++ not_supported_error = true; ++ } ++ if (!not_supported_error) { ++ /* "Normal error". Just return it to caller. */ ++ TALLOC_FREE(frame); ++ return status; ++ } + } + + srv->no_pathinfo3 = True; +@@ -545,14 +566,11 @@ SMBC_getatr(SMBCCTX * context, + } + + status = cli_getatr(targetcli, targetpath, &attr, &size, &write_time); +- if (NT_STATUS_IS_OK(status)) { +- struct timespec w_time_ts = +- convert_time_t_to_timespec(write_time); +- +- access_time_ts = change_time_ts = write_time_ts = w_time_ts; +- +- goto setup_stat; ++ if (!NT_STATUS_IS_OK(status)) { ++ goto all_failed; + } ++ w_time_ts = convert_time_t_to_timespec(write_time); ++ access_time_ts = change_time_ts = write_time_ts = w_time_ts; + + setup_stat: + setup_stat(sb, +@@ -573,7 +591,7 @@ all_failed: + srv->no_pathinfo3 = False; + + TALLOC_FREE(frame); +- return NT_STATUS_ACCESS_DENIED; ++ return status; + } + + /* diff --git a/extra/samba/samba-glibc-2.36.patch b/extra/samba/samba-glibc-2.36.patch new file mode 100644 index 000000000..aea0bf51d --- /dev/null +++ b/extra/samba/samba-glibc-2.36.patch @@ -0,0 +1,57 @@ +From eee9ff0228f52008bfc565241f6dfe07ae7a7044 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Tue, 2 Aug 2022 07:55:46 +0200 +Subject: [PATCH] lib:replace: Only include on non-Linux systems + +Details at: +https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=15132 + +Signed-off-by: Andreas Schneider +Reviewed-by: Ralph Boehme +(cherry picked from commit 766151bf5b7ef95ae4c8c98b8994e5c21c5bbec0) +--- + lib/replace/system/filesys.h | 4 +++- + lib/replace/wscript | 3 +++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/lib/replace/system/filesys.h b/lib/replace/system/filesys.h +index 034e5d5886c..bb9482c69af 100644 +--- a/lib/replace/system/filesys.h ++++ b/lib/replace/system/filesys.h +@@ -36,7 +36,8 @@ + #include + #endif + +-#ifdef HAVE_SYS_MOUNT_H ++/* This include is required on UNIX (*BSD, AIX, ...) for statfs() */ ++#if !defined(LINUX) && defined(HAVE_SYS_MOUNT_H) + #include + #endif + +@@ -44,6 +45,7 @@ + #include + #endif + ++/* This include is required on Linux for statfs() */ + #ifdef HAVE_SYS_VFS_H + #include + #endif +diff --git a/lib/replace/wscript b/lib/replace/wscript +index e4c2d513076..0db93d8caf1 100644 +--- a/lib/replace/wscript ++++ b/lib/replace/wscript +@@ -31,6 +31,9 @@ def configure(conf): + + conf.env.standalone_replace = conf.IN_LAUNCH_DIR() + ++ if sys.platform.rfind('linux') > -1: ++ conf.DEFINE('LINUX', '1') ++ + conf.DEFINE('BOOL_DEFINED', 1) + conf.DEFINE('HAVE_LIBREPLACE', 1) + conf.DEFINE('LIBREPLACE_NETWORK_CHECKS', 1) +-- +2.37.1 + diff --git a/extra/samba/samba.conf b/extra/samba/samba.conf new file mode 100644 index 000000000..32e722845 --- /dev/null +++ b/extra/samba/samba.conf @@ -0,0 +1,2 @@ +D /run/samba 0755 - - - +d /var/log/samba 0755 - - - \ No newline at end of file diff --git a/extra/samba/samba.install b/extra/samba/samba.install new file mode 100644 index 000000000..ecdd52b0c --- /dev/null +++ b/extra/samba/samba.install @@ -0,0 +1,10 @@ +#!/bin/sh + +post_upgrade() { + if [ "$(vercmp $2 4.0.4)" -lt 0 ]; then + echo "Major upgrade from samba 3.x to 4.x," + echo "please read the Samba4 migration guide:" + echo "http://wiki.samba.org/index.php/Samba4/samba3upgrade/HOWTO" + fi +} +# vim:set ts=2 sw=2 et: diff --git a/extra/samba/samba.logrotate b/extra/samba/samba.logrotate new file mode 100644 index 000000000..ff286089a --- /dev/null +++ b/extra/samba/samba.logrotate @@ -0,0 +1,5 @@ +/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log { + notifempty + missingok + copytruncate +} diff --git a/extra/samba/samba.pam b/extra/samba/samba.pam new file mode 100644 index 000000000..53724d1f8 --- /dev/null +++ b/extra/samba/samba.pam @@ -0,0 +1,3 @@ +auth required pam_unix.so +account required pam_unix.so +session required pam_unix.so