added extra/samba

This commit is contained in:
Kevin Mihelich 2024-09-10 13:34:31 +00:00
parent c2f31e8de4
commit 75c38e21c4
9 changed files with 689 additions and 0 deletions

116
extra/samba/.SRCINFO Normal file
View file

@ -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

358
extra/samba/PKGBUILD Normal file
View file

@ -0,0 +1,358 @@
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
# Contributor: Michael Hansen <zrax0111 gmail com>
# Contributor: Marco A Rojas <marquicus at gmail.com>
# Contributor: Netanel Shine <netanel at archlinux.org.il >
# Contributor: ngoonee <ngoonee.talk@gmail.com>
# Contributor: Adam Russell <adamlr6+arch@gmail.com>
# Contributor: Dhananjay Sathe <dhananjaysathe@gmail.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - 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 <samba-bugs@samba.org>
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
}

View file

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=nGpF
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -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;
}
/*

View file

@ -0,0 +1,57 @@
From eee9ff0228f52008bfc565241f6dfe07ae7a7044 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@samba.org>
Date: Tue, 2 Aug 2022 07:55:46 +0200
Subject: [PATCH] lib:replace: Only include <sys/mount.h> 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 <asn@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
(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 <sys/param.h>
#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 <sys/mount.h>
#endif
@@ -44,6 +45,7 @@
#include <mntent.h>
#endif
+/* This include is required on Linux for statfs() */
#ifdef HAVE_SYS_VFS_H
#include <sys/vfs.h>
#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

2
extra/samba/samba.conf Normal file
View file

@ -0,0 +1,2 @@
D /run/samba 0755 - - -
d /var/log/samba 0755 - - -

10
extra/samba/samba.install Normal file
View file

@ -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:

View file

@ -0,0 +1,5 @@
/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
notifempty
missingok
copytruncate
}

3
extra/samba/samba.pam Normal file
View file

@ -0,0 +1,3 @@
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so