#!/usr/bin/bash # JOBoRun : Jwm OpenBox Obarun RUNit # Maintainer : Joe Bo Run # PkgSource : url="https://gittea.disroot.org/joborun-pkg/jobextra/$pkgname" # Website : https://pozol.eu #-----------------------------------------| DESCRIPTION |--------------------------------------- pkgbase=samba pkgname=('smbclient' 'samba') pkgver=4.17.1 pkgrel=02 arch=(x86_64) url="https://www.samba.org" makedepends=('python' 'python-markdown' 'python-dnspython' 'docbook-xsl' 'pkg-config' 'libbsd' 'db' 'popt' 'libcups' 'readline' 'tevent' 'acl' 'libldap' 'libcap' 'ldb' 'krb5' 'pam' 'gnutls' 'talloc' 'tdb' 'dbus' 'libaio' 'perl-parse-yapp' 'libnsl' 'libtirpc' 'rpcsvc-proto' 'jansson' 'liburing' 'perl-json' 'glusterfs') optdepends=( 'python-dnspython: samba_dnsupdate and samba_upgradedns in AD setup' 'python-markdown: for samba-tool domain schemeupgrade' 'glusterfs: for vfs_glusterfs support') source=(https://us1.samba.org/samba/ftp/stable/${pkgbase}-${pkgver}.tar{.gz,.asc} samba.logrotate samba.pam samba.sysconfig samba.tmpfiles) ### UNINSTALL dmapi package before building!!! #prepare() { # cd samba-${pkgver} # patch -Np1 -i ${srcdir}/samba-4.17.0-15195.patch #} build() { # 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) _pkgsrc="${srcdir}"/samba-pkg rm -rf ${_pkgsrc} _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 cd samba-${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 \ --without-systemd \ --with-pam \ --with-pammodulesdir=/usr/lib/security \ --bundled-libraries=!tdb,!talloc,!pytalloc-util,!tevent,!popt,!ldb,!pyldb-util \ --with-shared-modules=${_samba4_idmap_modules},${_samba4_pdb_modules},${_samba4_auth_modules},vfs_io_uring \ --disable-rpath-install \ --with-profiling-data \ --enable-fhs # 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 } package_smbclient() { pkgdesc="Tools to access a server's filespace and printers via SMB w/o systemd" depends=('popt' 'cifs-utils' 'tdb' 'ldb' 'tevent' 'libgcrypt' 'python' 'talloc' 'readline' 'gnutls' 'libbsd' 'libldap' 'libcups' 'libarchive' 'libnsl' 'jansson' 'libldb.so' 'libtdb.so' 'libtevent.so' 'libreadline.so' 'icu' 'libunwind') replaces=('libwbclient') provides=('libwbclient') _smbclient_bins=('smbclient' 'rpcclient' 'smbspool' 'smbtree' 'smbcacls' 'smbcquotas' 'smbget' 'net' 'nmblookup' 'smbtar') # 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) _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/ mv "${_pkgsrc}"/usr/lib/pkgconfig/wbclient.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/ mv "${_pkgsrc}"/usr/include/samba-4.0/wbclient.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 w/o systemd" depends=('db>=4.7' 'popt' 'libcups' 'libcap>=2.16' 'gnutls>=2.4.1' 'talloc' 'ldb' 'libbsd' 'python' 'iniparser' 'tdb' 'libaio' 'perl-parse-yapp' "smbclient>=$pkgver" 'gpgme' 'libldb.so' 'libtdb.so' 'libtevent.so' 'liburing' 'libunwind') backup=(etc/logrotate.d/samba etc/pam.d/samba etc/conf.d/samba) install=samba.install # 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) _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/ a\ sys.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.sysconfig "${pkgdir}"/etc/conf.d/samba # create ephemeral dirs via tmpfiles rather than shipping them in package install -D -m644 "${srcdir}"/samba.tmpfiles "${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 } #---- license gpg-key sha256sums ---- license=('GPL3') validpgpkeys=('81F5E2832BD2545A1897B713AA99442FB680B620') #Samba Distribution Verification Key sha256sums=(1b939d03f8ca57194c413ed863014a3850c9ce9f9e31c2a7df706806fba77c01 # samba-4.17.1.tar.gz c4b3ec76d23064b27e30966408a766439eef9cad54ec5f32d253348c4d5a53f7 # samba-4.17.1.tar.asc 0b570570ea49f82e6f9da47b1cce3b441859f52de105b54d4d79b873b924623f # samba.logrotate 0b570570ea49f82e6f9da47b1cce3b441859f52de105b54d4d79b873b924623f # samba.logrotate 57dfd072fd7ef0018c6b0a798367aac1abb5979060ff3f9df22d1048bb71c0d5 # samba.pam f2d11032015ef917f4af50f3933d432fa744b5f846ab4d980247e329e52d34bc # samba.sysconfig 5398a42ccb36ac3b87cfa42c8050b535efc2ca38ab3b9354a52f4e0fe71b5800) # samba.tmpfiles