diff --git a/net/Makefile b/net/Makefile index a014bbd8d59c..477d938a87ff 100644 --- a/net/Makefile +++ b/net/Makefile @@ -1,1772 +1,1773 @@ COMMENT = Networking tools SUBDIR += 389-ds-base SUBDIR += 3proxy SUBDIR += 44bsd-rdist SUBDIR += 6tunnel SUBDIR += R-cran-pingr SUBDIR += R-cran-twitteR SUBDIR += Sockets SUBDIR += activemq SUBDIR += addrwatch SUBDIR += afpfs-ng SUBDIR += aget SUBDIR += akhq SUBDIR += akonadi-calendar SUBDIR += akonadi-contacts SUBDIR += akonadi-mime SUBDIR += akonadi-search SUBDIR += alligator SUBDIR += aluminum SUBDIR += amnezia-kmod SUBDIR += amnezia-tools SUBDIR += amneziawg-go SUBDIR += amqpcat SUBDIR += apache-commons-net SUBDIR += apinger SUBDIR += aprsc SUBDIR += aquantia-atlantic-kmod SUBDIR += arataga SUBDIR += arp-scan SUBDIR += arp-sk SUBDIR += arpdig SUBDIR += arping SUBDIR += arpoison SUBDIR += arprelease SUBDIR += arrowdl SUBDIR += asio SUBDIR += asio130 SUBDIR += asterisk-chan_sccp SUBDIR += asterisk-g72x SUBDIR += asterisk20 SUBDIR += asterisk22 SUBDIR += astron SUBDIR += avahi SUBDIR += avahi-app SUBDIR += avahi-autoipd SUBDIR += avahi-gtk SUBDIR += avahi-gtk3 SUBDIR += avahi-header SUBDIR += avahi-libdns SUBDIR += avahi-qt5 SUBDIR += avahi-sharp SUBDIR += aws-ec2-imdsv2-get SUBDIR += axa SUBDIR += babeld SUBDIR += balance SUBDIR += bctoolbox SUBDIR += beacon SUBDIR += beanstalkd SUBDIR += belle-sip SUBDIR += bindtest SUBDIR += binkd SUBDIR += bird2 SUBDIR += bird3 SUBDIR += bittwist SUBDIR += bmon SUBDIR += boinc-client SUBDIR += boinc_curses SUBDIR += boinctui SUBDIR += bone-kmods SUBDIR += bone-utils SUBDIR += bounce SUBDIR += bredbandskollen SUBDIR += brynet SUBDIR += bsdec2-image-upload SUBDIR += bsdrcmds SUBDIR += bwi-firmware-kmod SUBDIR += bwn-firmware-kmod SUBDIR += bwping SUBDIR += c3270 SUBDIR += calendarsupport SUBDIR += ccxstream SUBDIR += charm SUBDIR += chrony SUBDIR += chrony-lite SUBDIR += citrix_ica SUBDIR += cjdns SUBDIR += claws SUBDIR += cliproxyapi SUBDIR += cloud-init SUBDIR += cloudflare-speed-cli SUBDIR += cloudflared SUBDIR += cloudquery SUBDIR += clusterit SUBDIR += cnd SUBDIR += containernetworking-plugins SUBDIR += corkscrew SUBDIR += corosync2 SUBDIR += corosync3 SUBDIR += courier-authlib-ldap SUBDIR += courier-sox SUBDIR += cppzmq SUBDIR += croc SUBDIR += cryptcat SUBDIR += csync2 SUBDIR += ctrace SUBDIR += cvsup-static SUBDIR += cvsync SUBDIR += czmq SUBDIR += czmq4 SUBDIR += daemonlogger SUBDIR += dante SUBDIR += daq SUBDIR += datapipe SUBDIR += dataplaneapi SUBDIR += dbeacon SUBDIR += delegate SUBDIR += deltachat-rpc-server SUBDIR += devfile SUBDIR += deviceatlas-enterprise-c SUBDIR += dgd SUBDIR += dgd-kernel SUBDIR += dgd-lpmud SUBDIR += dhcp6 SUBDIR += dhcpcd SUBDIR += dhcpcd-ui SUBDIR += dhcpd SUBDIR += dhcpd-pools SUBDIR += dhcpdump SUBDIR += dhcperf SUBDIR += dhcping SUBDIR += dhcprelya SUBDIR += dico SUBDIR += dictd SUBDIR += dogtag-ldap-sdk SUBDIR += dot1ag-utils SUBDIR += dpdk SUBDIR += dpdk-20.11 SUBDIR += dpinger SUBDIR += drawterm SUBDIR += dropbox-api-command SUBDIR += dropbox-uploader SUBDIR += dshell SUBDIR += dtcp SUBDIR += dtcpclient SUBDIR += dual-dhclient SUBDIR += dual-dhclient-daemon SUBDIR += dumbpipe SUBDIR += ecal SUBDIR += echoping SUBDIR += empty SUBDIR += endlessh SUBDIR += enet SUBDIR += eternalterminal SUBDIR += eturnal SUBDIR += evans SUBDIR += eventviews SUBDIR += exabgp4 SUBDIR += exoscale-cli SUBDIR += fb303 SUBDIR += fiche SUBDIR += file2pcap SUBDIR += findmtu SUBDIR += findomain SUBDIR += foreman-proxy SUBDIR += fort SUBDIR += fping SUBDIR += freebsd-route6d SUBDIR += freebsd-routed SUBDIR += freebsd-telnetd SUBDIR += freebsd-uucp SUBDIR += freediameter SUBDIR += freeipa-client SUBDIR += freeipa-server SUBDIR += freeradius-client SUBDIR += freeradius3 SUBDIR += freerdp SUBDIR += freerdp3 SUBDIR += freeswitch SUBDIR += freevrrpd SUBDIR += frp SUBDIR += frr10 SUBDIR += frr10-pythontools SUBDIR += frr9 SUBDIR += frr9-pythontools SUBDIR += fspclient SUBDIR += fspd SUBDIR += fsplib SUBDIR += gamenetworkingsockets SUBDIR += gdrive SUBDIR += gemget SUBDIR += gemserv SUBDIR += geoclue SUBDIR += geocode-glib SUBDIR += geocode-glib2 SUBDIR += geoipupdate SUBDIR += gerbera SUBDIR += gfbgraph SUBDIR += gitlab-agent SUBDIR += gitup SUBDIR += glflow SUBDIR += glib-networking SUBDIR += gmid SUBDIR += gnet2 SUBDIR += gnetcat SUBDIR += gnome-connections SUBDIR += gnome-nettool SUBDIR += gnome-online-accounts SUBDIR += gnu-radius SUBDIR += gnunet SUBDIR += go-bapu SUBDIR += go-cs SUBDIR += go-pkgsite SUBDIR += go-tcping SUBDIR += gobgp SUBDIR += gofish SUBDIR += google-cloud-sdk SUBDIR += gopher SUBDIR += goreplay SUBDIR += gorss SUBDIR += gotify-cli SUBDIR += gotify-server SUBDIR += gotthard SUBDIR += graphpath SUBDIR += grilo SUBDIR += grilo-plugins SUBDIR += grive2 SUBDIR += grpcox SUBDIR += grpcui SUBDIR += grpcurl SUBDIR += grsync SUBDIR += gscloud SUBDIR += gsk SUBDIR += gsocket SUBDIR += gspoof SUBDIR += gssdp SUBDIR += gssdp14 SUBDIR += gstreamer1-plugins-sctp SUBDIR += gstreamer1-plugins-srtp SUBDIR += gtk-vnc SUBDIR += guacamole-server SUBDIR += gupnp SUBDIR += gupnp-av SUBDIR += gupnp-igd SUBDIR += gupnp-tools SUBDIR += gutenfetch SUBDIR += h323plus SUBDIR += hanstunnel SUBDIR += haproxy SUBDIR += haproxy-devel SUBDIR += haproxy26 SUBDIR += haproxy28 SUBDIR += haproxy30 SUBDIR += haproxy32 SUBDIR += haproxy33 SUBDIR += hblock SUBDIR += hexinject SUBDIR += hlmaster SUBDIR += honeyd SUBDIR += hostapd SUBDIR += hostapd-devel SUBDIR += hostapd210 SUBDIR += hostapd29 SUBDIR += hping3 SUBDIR += hsflowd SUBDIR += htpdate SUBDIR += http_ping SUBDIR += httping SUBDIR += httpry SUBDIR += icmpinfo SUBDIR += icpld SUBDIR += identme SUBDIR += ifdepd SUBDIR += iffinder SUBDIR += ifstat SUBDIR += ifstated SUBDIR += igmpproxy SUBDIR += iipsrv SUBDIR += ilbc SUBDIR += imapproxy SUBDIR += incidenceeditor SUBDIR += intel-em-kmod SUBDIR += intel-iavf-kmod SUBDIR += intel-ice-kmod SUBDIR += intel-igb-kmod SUBDIR += intel-irdma-kmod SUBDIR += intel-ix-kmod SUBDIR += intel-ixl-kmod SUBDIR += intel-ixv-kmod SUBDIR += iodine SUBDIR += ip2location SUBDIR += ip2proxy SUBDIR += ip6_int SUBDIR += ipaddr SUBDIR += ipdecap SUBDIR += ipgrab SUBDIR += ipinfo-cli SUBDIR += ipsumdump SUBDIR += ipxe SUBDIR += irrd SUBDIR += isboot-kmod SUBDIR += isboot-kmod-devel SUBDIR += isc-dhcp44-client SUBDIR += isc-dhcp44-relay SUBDIR += isc-dhcp44-server SUBDIR += istgt SUBDIR += iwnet SUBDIR += java-beepcore SUBDIR += jcifs SUBDIR += jgroups SUBDIR += jose SUBDIR += jotta-cli SUBDIR += jrdesktop SUBDIR += jumpgate SUBDIR += jwhois SUBDIR += k6 SUBDIR += kafka SUBDIR += kamailio SUBDIR += kcalutils SUBDIR += kcat SUBDIR += kdenetwork SUBDIR += kdenetwork-filesharing SUBDIR += kea SUBDIR += kea-devel SUBDIR += keama SUBDIR += keycloak SUBDIR += kf5-kcalendarcore SUBDIR += kf5-kcontacts SUBDIR += kf5-kdav SUBDIR += kf5-kholidays SUBDIR += kf5-kxmlrpcclient SUBDIR += kf5-syndication SUBDIR += kf6-kcalendarcore SUBDIR += kf6-kcontacts SUBDIR += kf6-kdav SUBDIR += kf6-kholidays SUBDIR += kf6-kmime SUBDIR += kf6-syndication SUBDIR += kget SUBDIR += kidentitymanagement SUBDIR += kimap SUBDIR += kio-gdrive SUBDIR += kio-gopher SUBDIR += kio-zeroconf SUBDIR += kippo SUBDIR += kitinerary SUBDIR += kldap SUBDIR += kmailtransport SUBDIR += kmbox SUBDIR += kmime SUBDIR += knc SUBDIR += knxd SUBDIR += kontactinterface SUBDIR += kpimtextedit SUBDIR += krakend-ce SUBDIR += krdc SUBDIR += krfb SUBDIR += krill SUBDIR += ksmtp SUBDIR += ktcplist SUBDIR += ktnef SUBDIR += kube-apiserver SUBDIR += kube-controller-manager SUBDIR += kube-scheduler SUBDIR += l2tpd SUBDIR += ladvd SUBDIR += lambdamoo SUBDIR += latd SUBDIR += lavinmq SUBDIR += lazyrsync SUBDIR += ldap-stats SUBDIR += ldapbrowser SUBDIR += ldapdiff SUBDIR += ldapscripts SUBDIR += ldapsdk SUBDIR += ldapsh SUBDIR += leproxy SUBDIR += lft SUBDIR += libarcus SUBDIR += libarms SUBDIR += libbgpdump SUBDIR += libcapn SUBDIR += libcharon SUBDIR += libcloudproviders SUBDIR += libcmis SUBDIR += libcoap SUBDIR += libdaq SUBDIR += libdmapsharing SUBDIR += libdnet SUBDIR += libexosip2 SUBDIR += libfabric SUBDIR += libfb SUBDIR += libfixbuf SUBDIR += libgravatar SUBDIR += libgrss SUBDIR += libgweather SUBDIR += libgweather4 SUBDIR += libifconfig SUBDIR += libilbc SUBDIR += libiscsi SUBDIR += libkgapi SUBDIR += libksieve SUBDIR += liblinphone SUBDIR += libmaia SUBDIR += libmateweather SUBDIR += libmaxminddb SUBDIR += libmdf SUBDIR += libnatpmp SUBDIR += libndp SUBDIR += libnet SUBDIR += libnfs SUBDIR += libngtcp2 SUBDIR += libngtcp2-boringssl SUBDIR += libngtcp2-gnutls SUBDIR += libngtcp2-wolfssl SUBDIR += libnids SUBDIR += libnpupnp SUBDIR += libnss-cache SUBDIR += libnss-mysql SUBDIR += libnss-pgsql SUBDIR += liboauth SUBDIR += libopennet SUBDIR += liboping SUBDIR += libosip2 SUBDIR += libpaho-mqtt3 SUBDIR += libpcap SUBDIR += libpcapnav SUBDIR += libpfctl SUBDIR += libproxy SUBDIR += librdkafka SUBDIR += librespeed-cli SUBDIR += librespeed-go SUBDIR += librest1 SUBDIR += librsync SUBDIR += libsignal-protocol-c SUBDIR += libslirp SUBDIR += libsockpp SUBDIR += libsrtp2 SUBDIR += libtrace SUBDIR += libunp SUBDIR += libusipp SUBDIR += libusrsctp SUBDIR += libvncserver SUBDIR += libwebsockets SUBDIR += libyang2 SUBDIR += libyang3 SUBDIR += libzapojit SUBDIR += libzmq4 SUBDIR += liferea SUBDIR += linphone SUBDIR += linux-c7-avahi-libs SUBDIR += linux-c7-openldap SUBDIR += linux-c7-tcp_wrappers-libs SUBDIR += linux-rl9-avahi-libs SUBDIR += linux-rl9-openldap SUBDIR += linux-rl9-sdl_net SUBDIR += linux-rl9-tcp_wrappers-libs SUBDIR += liveMedia SUBDIR += lla SUBDIR += lldap SUBDIR += localgo SUBDIR += lua-luasocket SUBDIR += lualdap SUBDIR += mDNSResponder SUBDIR += macchanger SUBDIR += mad_fcl SUBDIR += madonctl SUBDIR += mailcommon SUBDIR += mailimporter SUBDIR += malo-firmware-kmod SUBDIR += mcast-bridge SUBDIR += mcjoin SUBDIR += mdns-bridge SUBDIR += mdns-repeater SUBDIR += measurement-kit SUBDIR += mediastreamer SUBDIR += megacmd SUBDIR += megatools SUBDIR += mercury SUBDIR += messagelib SUBDIR += mgen SUBDIR += micro_inetd SUBDIR += micro_proxy SUBDIR += microsocks SUBDIR += mihomo SUBDIR += mimetreeparser SUBDIR += minidlna SUBDIR += minissdpd SUBDIR += miniupnpc SUBDIR += miniupnpd SUBDIR += miredo SUBDIR += miruo SUBDIR += mlvpn SUBDIR += mobile-broadband-provider-info SUBDIR += mod_amd SUBDIR += mopd SUBDIR += mosh SUBDIR += mosquitto SUBDIR += motsognir SUBDIR += mpd-l2tp-ipv6pd-client SUBDIR += mpd5 SUBDIR += mpich SUBDIR += mpifx SUBDIR += mping SUBDIR += mptsd SUBDIR += mrouted SUBDIR += mrtparse SUBDIR += msend SUBDIR += msgraph SUBDIR += msoak SUBDIR += mtg SUBDIR += mtr SUBDIR += multicat SUBDIR += mvfst SUBDIR += nanomsg SUBDIR += narrowlink SUBDIR += nast SUBDIR += nats-nkeys SUBDIR += nats-nsc SUBDIR += nats-server SUBDIR += nats-streaming-server SUBDIR += nats-surveyor SUBDIR += nats-top SUBDIR += natscli SUBDIR += nbd-server SUBDIR += nbdkit SUBDIR += nc SUBDIR += ncp SUBDIR += ndisc6 SUBDIR += ndpi SUBDIR += ndproxy SUBDIR += neatvnc SUBDIR += nekobox SUBDIR += nemesis SUBDIR += netatalk4 SUBDIR += netcat SUBDIR += netcode SUBDIR += netdiscover SUBDIR += netembryo SUBDIR += nethogs SUBDIR += netmap SUBDIR += netpeek SUBDIR += netpipes SUBDIR += netscript SUBDIR += netsed SUBDIR += netselect SUBDIR += netstrain SUBDIR += netwib SUBDIR += nfsshell SUBDIR += nfstrace SUBDIR += ng_mikrotik_eoip SUBDIR += ngrep SUBDIR += nifmon SUBDIR += nload SUBDIR += nmsg SUBDIR += nncp SUBDIR += nng SUBDIR += norm SUBDIR += nqptp SUBDIR += nsq SUBDIR += nss-pam-ldapd SUBDIR += nss-pam-ldapd-sasl SUBDIR += nss_ldap SUBDIR += ntimed SUBDIR += ntopng SUBDIR += ntp SUBDIR += ntpa SUBDIR += ntpd-rs SUBDIR += ntpsec SUBDIR += ntraceroute SUBDIR += nusoap SUBDIR += nxproxy SUBDIR += nyancat SUBDIR += nylon SUBDIR += ocserv SUBDIR += oha SUBDIR += olsrd SUBDIR += omnitty SUBDIR += onedrive SUBDIR += onedrivegui SUBDIR += onenetd SUBDIR += onioncat SUBDIR += onionprobe SUBDIR += ooni-mini SUBDIR += ooni-probe-cli SUBDIR += open-isns SUBDIR += openbgpd7 SUBDIR += openbgpd8 SUBDIR += openbgpd9 SUBDIR += openldap25-client SUBDIR += openldap25-server SUBDIR += openldap26-client SUBDIR += openldap26-server SUBDIR += openmdns SUBDIR += openmpi SUBDIR += openmpi4 SUBDIR += openntpd SUBDIR += openpgm SUBDIR += openradius SUBDIR += openrsync SUBDIR += openslp SUBDIR += openvswitch SUBDIR += ortp SUBDIR += osrtspproxy SUBDIR += otelcol-contrib SUBDIR += ovhcloud-cli SUBDIR += owamp SUBDIR += p5-Acme-HTTP SUBDIR += p5-AddressBook SUBDIR += p5-Amazon-SQS-Simple SUBDIR += p5-AnyEvent-MPRPC SUBDIR += p5-AnyEvent-MQTT SUBDIR += p5-AnyEvent-RabbitMQ SUBDIR += p5-AnyEvent-Twitter SUBDIR += p5-AnyEvent-Twitter-Stream SUBDIR += p5-AnyMQ-AMQP SUBDIR += p5-Apache2-SOAP SUBDIR += p5-BBS-Client SUBDIR += p5-BBS-UserInfo SUBDIR += p5-BBS-UserInfo-Maple3 SUBDIR += p5-BBS-UserInfo-Maple3itoc SUBDIR += p5-BBS-UserInfo-Ptt SUBDIR += p5-BBS-UserInfo-SOB SUBDIR += p5-BBS-UserInfo-Wretch SUBDIR += p5-Beanstalk-Client SUBDIR += p5-Cisco-IPPhone SUBDIR += p5-Crypt-DH-GMP SUBDIR += p5-Daemon-Generic SUBDIR += p5-Data-IPV4-Range-Parse SUBDIR += p5-EasyTCP SUBDIR += p5-Event-tcp SUBDIR += p5-File-Rsync SUBDIR += p5-File-RsyncP SUBDIR += p5-Frontier-RPC SUBDIR += p5-Geo-IP-PurePerl SUBDIR += p5-Geo-IPfree SUBDIR += p5-GeoIP2 SUBDIR += p5-Google-SAML-Request SUBDIR += p5-Google-SAML-Response SUBDIR += p5-Growl-GNTP SUBDIR += p5-IO-Interface SUBDIR += p5-IO-Socket-INET6 SUBDIR += p5-IO-Socket-IP SUBDIR += p5-IO-Socket-Multicast SUBDIR += p5-IO-Socket-Multicast6 SUBDIR += p5-IO-Socket-Socks SUBDIR += p5-IO-Socket-Socks-Wrapper SUBDIR += p5-IO-Socket-Timeout SUBDIR += p5-IO-Socket-UNIX-Util SUBDIR += p5-IP-Anonymous SUBDIR += p5-IP-Country SUBDIR += p5-IPC-Session SUBDIR += p5-IPv6-Address SUBDIR += p5-JavaScript-RPC SUBDIR += p5-Kafka SUBDIR += p5-MaxMind-DB-Common SUBDIR += p5-MaxMind-DB-Reader SUBDIR += p5-MaxMind-DB-Reader-XS SUBDIR += p5-Mojo-RabbitMQ-Client SUBDIR += p5-Net SUBDIR += p5-Net-ACME2 SUBDIR += p5-Net-AMQP SUBDIR += p5-Net-AMQP-RabbitMQ SUBDIR += p5-Net-APNS SUBDIR += p5-Net-APNs-Extended SUBDIR += p5-Net-ARP SUBDIR += p5-Net-Address-Ethernet SUBDIR += p5-Net-Address-IPv4-Local SUBDIR += p5-Net-Amazon SUBDIR += p5-Net-Amazon-AWSSign SUBDIR += p5-Net-Amazon-EC2 SUBDIR += p5-Net-Amazon-MechanicalTurk SUBDIR += p5-Net-Amazon-S3 SUBDIR += p5-Net-Amazon-Signature SUBDIR += p5-Net-Amazon-Signature-V3 SUBDIR += p5-Net-Amazon-Signature-V4 SUBDIR += p5-Net-Amazon-Thumbnail SUBDIR += p5-Net-Analysis SUBDIR += p5-Net-Appliance-Phrasebook SUBDIR += p5-Net-Appliance-Session SUBDIR += p5-Net-BGP SUBDIR += p5-Net-Blogger SUBDIR += p5-Net-CIDR-Lite SUBDIR += p5-Net-CIDR-MobileJP SUBDIR += p5-Net-CIDR-Set SUBDIR += p5-Net-CLI-Interact SUBDIR += p5-Net-CSTA SUBDIR += p5-Net-CascadeCopy SUBDIR += p5-Net-Cassandra SUBDIR += p5-Net-Cassandra-Easy SUBDIR += p5-Net-Connection SUBDIR += p5-Net-Connection-Match SUBDIR += p5-Net-Connection-Sort SUBDIR += p5-Net-Connection-lsof SUBDIR += p5-Net-Connection-ncnetstat SUBDIR += p5-Net-DAV-Server SUBDIR += p5-Net-DHCP SUBDIR += p5-Net-DHCP-Watch SUBDIR += p5-Net-DHCPClient SUBDIR += p5-Net-DLookup SUBDIR += p5-Net-Daemon SUBDIR += p5-Net-Delicious SUBDIR += p5-Net-Dict SUBDIR += p5-Net-Divert SUBDIR += p5-Net-Dropbox-API SUBDIR += p5-Net-EPP SUBDIR += p5-Net-EPP-Proxy SUBDIR += p5-Net-FS-Flickr SUBDIR += p5-Net-FS-Gmail SUBDIR += p5-Net-FTP-AutoReconnect SUBDIR += p5-Net-FTP-File SUBDIR += p5-Net-Finger SUBDIR += p5-Net-Flow SUBDIR += p5-Net-Frame SUBDIR += p5-Net-Frame-Device SUBDIR += p5-Net-Frame-Dump SUBDIR += p5-Net-Frame-Layer-ICMPv6 SUBDIR += p5-Net-Frame-Layer-IPv6 SUBDIR += p5-Net-Frame-Simple SUBDIR += p5-Net-GitHub SUBDIR += p5-Net-Gnats SUBDIR += p5-Net-Google SUBDIR += p5-Net-Google-Analytics SUBDIR += p5-Net-Google-AuthSub SUBDIR += p5-Net-Google-Calendar SUBDIR += p5-Net-Google-Code SUBDIR += p5-Net-Google-DataAPI SUBDIR += p5-Net-Google-PicasaWeb SUBDIR += p5-Net-Google-SafeBrowsing2 SUBDIR += p5-Net-Google-Spreadsheets SUBDIR += p5-Net-Growl SUBDIR += p5-Net-GrowlClient SUBDIR += p5-Net-HL7 SUBDIR += p5-Net-HTTP SUBDIR += p5-Net-HTTP-Spore SUBDIR += p5-Net-HTTP-Spore-Middleware-Header SUBDIR += p5-Net-HTTPS-Any SUBDIR += p5-Net-HTTPS-NB SUBDIR += p5-Net-Hiveminder SUBDIR += p5-Net-INET6Glue SUBDIR += p5-Net-IP-Minimal SUBDIR += p5-Net-IP-RangeCompare SUBDIR += p5-Net-IPTrie SUBDIR += p5-Net-IRR SUBDIR += p5-Net-Ident SUBDIR += p5-Net-Ifconfig-Wrapper SUBDIR += p5-Net-Interface SUBDIR += p5-Net-Jifty SUBDIR += p5-Net-LDAP-AutoDNs SUBDIR += p5-Net-LDAP-AutoServer SUBDIR += p5-Net-LDAP-Express SUBDIR += p5-Net-LDAP-FilterBuilder SUBDIR += p5-Net-LDAP-LDAPhash SUBDIR += p5-Net-LDAP-Makepath SUBDIR += p5-Net-LDAP-Server SUBDIR += p5-Net-LDAP-Server-Test SUBDIR += p5-Net-LDAP-posixAccount SUBDIR += p5-Net-LDAP-posixGroup SUBDIR += p5-Net-Libdnet SUBDIR += p5-Net-Libdnet6 SUBDIR += p5-Net-LimeLight-Purge SUBDIR += p5-Net-MAC SUBDIR += p5-Net-MAC-Vendor SUBDIR += p5-Net-MQTT SUBDIR += p5-Net-Mosso-CloudFiles SUBDIR += p5-Net-MovableType SUBDIR += p5-Net-NBName SUBDIR += p5-Net-NBsocket SUBDIR += p5-Net-NIS SUBDIR += p5-Net-NIS-Listgroup SUBDIR += p5-Net-NTP SUBDIR += p5-Net-Nessus-XMLRPC SUBDIR += p5-Net-Netcat SUBDIR += p5-Net-Nmsg SUBDIR += p5-Net-OAuth SUBDIR += p5-Net-OAuth-Simple SUBDIR += p5-Net-OAuth2 SUBDIR += p5-Net-OpenID-Consumer SUBDIR += p5-Net-OpenSSH SUBDIR += p5-Net-OpenSSH-Parallel SUBDIR += p5-Net-OpenStack-Attack SUBDIR += p5-Net-Packet SUBDIR += p5-Net-Packet-Target SUBDIR += p5-Net-ParseWhois SUBDIR += p5-Net-Patricia SUBDIR += p5-Net-Pcap SUBDIR += p5-Net-PcapUtils SUBDIR += p5-Net-Ping SUBDIR += p5-Net-Ping-External SUBDIR += p5-Net-Proxy SUBDIR += p5-Net-PubSubHubbub-Publisher SUBDIR += p5-Net-RTP SUBDIR += p5-Net-RabbitFoot SUBDIR += p5-Net-RabbitMQ SUBDIR += p5-Net-Radius SUBDIR += p5-Net-Random SUBDIR += p5-Net-RawIP SUBDIR += p5-Net-Rendezvous-Publish SUBDIR += p5-Net-Riak SUBDIR += p5-Net-Rsh SUBDIR += p5-Net-SAP SUBDIR += p5-Net-SCP SUBDIR += p5-Net-SCP-Expect SUBDIR += p5-Net-SDP SUBDIR += p5-Net-SFTP SUBDIR += p5-Net-SFTP-Foreign SUBDIR += p5-Net-SIP SUBDIR += p5-Net-SMPP SUBDIR += p5-Net-SMS-Clickatell SUBDIR += p5-Net-SMS-Mollie SUBDIR += p5-Net-SMS-PChome SUBDIR += p5-Net-SNPP SUBDIR += p5-Net-SSH SUBDIR += p5-Net-SSH-Expect SUBDIR += p5-Net-SSH-Mechanize SUBDIR += p5-Net-SSH-Perl SUBDIR += p5-Net-SSH2 SUBDIR += p5-Net-STOMP-Client SUBDIR += p5-Net-Server SUBDIR += p5-Net-Server-Coro SUBDIR += p5-Net-Server-SS-PreFork SUBDIR += p5-Net-Subnet SUBDIR += p5-Net-Syslog SUBDIR += p5-Net-TCLink SUBDIR += p5-Net-TacacsPlus SUBDIR += p5-Net-TcpDumpLog SUBDIR += p5-Net-Telnet SUBDIR += p5-Net-Telnet-Netscreen SUBDIR += p5-Net-TiVo SUBDIR += p5-Net-Todoist SUBDIR += p5-Net-Traceroute SUBDIR += p5-Net-Traceroute-PurePerl SUBDIR += p5-Net-Traceroute6 SUBDIR += p5-Net-Trackback SUBDIR += p5-Net-Twitter SUBDIR += p5-Net-Twitter-Lite SUBDIR += p5-Net-VNC SUBDIR += p5-Net-Wake SUBDIR += p5-Net-WhitePages SUBDIR += p5-Net-Whois SUBDIR += p5-Net-Whois-ARIN SUBDIR += p5-Net-Whois-IP SUBDIR += p5-Net-Whois-RIPE SUBDIR += p5-Net-Whois-Raw SUBDIR += p5-Net-Works SUBDIR += p5-Net-Write SUBDIR += p5-Net-XWhois SUBDIR += p5-Net-Yadis SUBDIR += p5-Net-Z3950-SimpleServer SUBDIR += p5-Net-Z3950-ZOOM SUBDIR += p5-Net-ext SUBDIR += p5-Net-sFlow SUBDIR += p5-Net-uFTP SUBDIR += p5-NetAddr-IP-Count SUBDIR += p5-NetAddr-MAC SUBDIR += p5-NetPacket SUBDIR += p5-OAI-Harvester SUBDIR += p5-OurNet-BBS SUBDIR += p5-OurNet-BBSAgent SUBDIR += p5-POE-Component-Client-Ident SUBDIR += p5-POE-Component-Client-Keepalive SUBDIR += p5-POE-Component-Client-Ping SUBDIR += p5-POE-Component-Client-Telnet SUBDIR += p5-POE-Component-Client-Traceroute SUBDIR += p5-POE-Component-Client-Twitter SUBDIR += p5-POE-Component-Client-Whois SUBDIR += p5-POE-Component-ControlPort SUBDIR += p5-POE-Component-Generic SUBDIR += p5-POE-Component-Jabber SUBDIR += p5-POE-Component-Pcap SUBDIR += p5-POE-Component-PubSub SUBDIR += p5-POE-Component-Server-Twirc SUBDIR += p5-POEx-Role-TCPServer SUBDIR += p5-POSIX-Socket SUBDIR += p5-POSIX-getpeername SUBDIR += p5-Parallel-Pvm SUBDIR += p5-Parse-Netstat SUBDIR += p5-Phone-Info SUBDIR += p5-PlRPC SUBDIR += p5-Queue-Beanstalk SUBDIR += p5-REST-Application SUBDIR += p5-REST-Google SUBDIR += p5-RPC-EPC-Service SUBDIR += p5-RPC-Simple SUBDIR += p5-RPC-XML SUBDIR += p5-ResourcePool-Resource-Net-LDAP SUBDIR += p5-ResourcePool-Resource-SOAP-Lite SUBDIR += p5-Rose-URI SUBDIR += p5-S3 SUBDIR += p5-SOAP SUBDIR += p5-SOAP-Amazon-S3 SUBDIR += p5-SOAP-Data-Builder SUBDIR += p5-SOAP-Lite SUBDIR += p5-SOAP-MySOAP SUBDIR += p5-SOAP-XML-Client SUBDIR += p5-Samba-LDAP SUBDIR += p5-Server-Starter SUBDIR += p5-Socket SUBDIR += p5-Socket-Class SUBDIR += p5-Socket-GetAddrInfo SUBDIR += p5-Socket-Multicast6 SUBDIR += p5-Socket-Netlink SUBDIR += p5-Socket6 SUBDIR += p5-Socks SUBDIR += p5-Sort-Key-IPv4 SUBDIR += p5-TFTP SUBDIR += p5-Test-URI SUBDIR += p5-Text-Authinfo SUBDIR += p5-Twitter-API SUBDIR += p5-URI SUBDIR += p5-URI-Based SUBDIR += p5-URI-Encode-XS SUBDIR += p5-URI-Fast SUBDIR += p5-URI-FromHash SUBDIR += p5-URI-Match SUBDIR += p5-URI-NamespaceMap SUBDIR += p5-URI-Nested SUBDIR += p5-URI-OpenURL SUBDIR += p5-URI-Query SUBDIR += p5-URI-SmartURI SUBDIR += p5-URI-Template SUBDIR += p5-URI-Template-Restrict SUBDIR += p5-URI-cpan SUBDIR += p5-URI-db SUBDIR += p5-VM-EC2 SUBDIR += p5-VM-EC2-Security-CredentialCache SUBDIR += p5-Validate-Net SUBDIR += p5-WebService-Dropbox SUBDIR += p5-WebService-Prowl SUBDIR += p5-What SUBDIR += p5-X500-DN SUBDIR += p5-XML-Compile-SOAP SUBDIR += p5-XML-Compile-SOAP-AnyEvent SUBDIR += p5-XML-Compile-SOAP-Daemon SUBDIR += p5-XML-Compile-SOAP-WSA SUBDIR += p5-XML-Compile-WSDL11 SUBDIR += p5-XML-Fast SUBDIR += p5-XML-RPC SUBDIR += p5-XML-RPC-Fast SUBDIR += p5-XMLRPC-Lite SUBDIR += p5-XPC SUBDIR += p5-ZMQ-FFI SUBDIR += p5-ip2location-perl SUBDIR += p5-ldap2pf SUBDIR += p5-ldap2pw SUBDIR += p5-perl-ldap SUBDIR += p5-srv2pf SUBDIR += pacemaker2 SUBDIR += packetdrill SUBDIR += packter-agent SUBDIR += parpd SUBDIR += pathneck SUBDIR += pbnc SUBDIR += pear-Auth_RADIUS SUBDIR += pear-File_Bittorrent2 SUBDIR += pear-Horde_Kolab_Server SUBDIR += pear-Horde_Kolab_Session SUBDIR += pear-Horde_Ldap SUBDIR += pear-Horde_Rpc SUBDIR += pear-Horde_Scribe SUBDIR += pear-Horde_Socket_Client SUBDIR += pear-Horde_Url SUBDIR += pear-Net_CheckIP SUBDIR += pear-Net_DIME SUBDIR += pear-Net_DNSBL SUBDIR += pear-Net_Dict SUBDIR += pear-Net_Finger SUBDIR += pear-Net_Geo SUBDIR += pear-Net_GeoIP SUBDIR += pear-Net_Growl SUBDIR += pear-Net_IDNA SUBDIR += pear-Net_IPv4 SUBDIR += pear-Net_IPv6 SUBDIR += pear-Net_Ident SUBDIR += pear-Net_LDAP SUBDIR += pear-Net_LDAP2 SUBDIR += pear-Net_MAC SUBDIR += pear-Net_NNTP SUBDIR += pear-Net_Nmap SUBDIR += pear-Net_POP3 SUBDIR += pear-Net_Ping SUBDIR += pear-Net_SMS SUBDIR += pear-Net_SMTP SUBDIR += pear-Net_Server SUBDIR += pear-Net_Sieve SUBDIR += pear-Net_Socket SUBDIR += pear-Net_Traceroute SUBDIR += pear-Net_URL SUBDIR += pear-Net_URL2 SUBDIR += pear-Net_URL_Mapper SUBDIR += pear-Net_UserAgent_Detect SUBDIR += pear-Net_UserAgent_Mobile SUBDIR += pear-Net_Vpopmaild SUBDIR += pear-Net_Whois SUBDIR += pear-SOAP SUBDIR += pear-Services_Pingback SUBDIR += pear-Services_Twitter SUBDIR += pear-URI_Template SUBDIR += pear-XML_RPC SUBDIR += pear-XML_RPC2 SUBDIR += pecl-amqp SUBDIR += pecl-radius SUBDIR += pecl-rdkafka SUBDIR += pecl-smbclient SUBDIR += pen SUBDIR += php-oauth SUBDIR += php-xmlrpc SUBDIR += php82-ldap SUBDIR += php82-soap SUBDIR += php82-sockets SUBDIR += php83-ldap SUBDIR += php83-soap SUBDIR += php83-sockets SUBDIR += php84-ldap SUBDIR += php84-soap SUBDIR += php84-sockets SUBDIR += php85-ldap SUBDIR += php85-soap SUBDIR += php85-sockets SUBDIR += php86-ldap SUBDIR += php86-soap SUBDIR += php86-sockets SUBDIR += phpldapadmin SUBDIR += pimcommon SUBDIR += pimd SUBDIR += pimdd SUBDIR += pjsip SUBDIR += pkt-gen SUBDIR += pktanon SUBDIR += pload SUBDIR += plugdaemon SUBDIR += pmix SUBDIR += poptop SUBDIR += portfwd SUBDIR += pptpclient SUBDIR += proby SUBDIR += proftpd-mod_ldap SUBDIR += prosearch SUBDIR += proxy-suite SUBDIR += proxychains-ng SUBDIR += prrte SUBDIR += prtunnel SUBDIR += ptpd2 SUBDIR += ptunnel SUBDIR += pvm SUBDIR += pwhois SUBDIR += pwnat SUBDIR += pxe SUBDIR += pxe-pdhcp SUBDIR += py-DTLSSocket SUBDIR += py-GeoIP2 SUBDIR += py-aiocoap SUBDIR += py-aiohappyeyeballs SUBDIR += py-aiohttp-socks SUBDIR += py-aiostalk SUBDIR += py-amqp SUBDIR += py-amqplib SUBDIR += py-avahi SUBDIR += py-awsipranges SUBDIR += py-blobfile SUBDIR += py-bonsai SUBDIR += py-casttube SUBDIR += py-cepa SUBDIR += py-cjdns SUBDIR += py-cloudflare-scrape SUBDIR += py-cloudflare-scrape-js2py SUBDIR += py-cloudscraper SUBDIR += py-confluent-kafka SUBDIR += py-cymruwhois SUBDIR += py-dpkt SUBDIR += py-duet SUBDIR += py-dugong SUBDIR += py-ephemeral-port-reserve SUBDIR += py-err-backend-discord SUBDIR += py-err-backend-mattermost SUBDIR += py-errbot SUBDIR += py-errbot-backend-slackv3 SUBDIR += py-eventlet SUBDIR += py-gdown SUBDIR += py-geopy SUBDIR += py-gntp SUBDIR += py-google-cloud-pubsub SUBDIR += py-greenstalk SUBDIR += py-gspread SUBDIR += py-h11 SUBDIR += py-haproxy-cli SUBDIR += py-haproxy-log-analysis SUBDIR += py-haproxyctl SUBDIR += py-httpstat SUBDIR += py-icmplib SUBDIR += py-ifaddr SUBDIR += py-impacket SUBDIR += py-iplib SUBDIR += py-iptools SUBDIR += py-kafka-python SUBDIR += py-kombu SUBDIR += py-ldap0 SUBDIR += py-ldap3 SUBDIR += py-ldapdomaindump SUBDIR += py-ldappool SUBDIR += py-lib389 SUBDIR += py-libcloud SUBDIR += py-libdnet SUBDIR += py-macaddress SUBDIR += py-magic-wormhole SUBDIR += py-matrix-synapse-ldap3 SUBDIR += py-maxminddb SUBDIR += py-miniupnpc SUBDIR += py-mpi4py SUBDIR += py-mpi4py-mpich SUBDIR += py-msrplib SUBDIR += py-ndg-httpsclient SUBDIR += py-netaddr SUBDIR += py-netifaces SUBDIR += py-netifaces-plus SUBDIR += py-netsnmpagent SUBDIR += py-nnpy SUBDIR += py-ntplib SUBDIR += py-oauth SUBDIR += py-oauth2 SUBDIR += py-paho-mqtt SUBDIR += py-pamqp SUBDIR += py-pcapy SUBDIR += py-pcapy-ng SUBDIR += py-pook SUBDIR += py-port-for SUBDIR += py-portend SUBDIR += py-pychromecast SUBDIR += py-pyenet SUBDIR += py-pyfixbuf SUBDIR += py-pygeoip SUBDIR += py-pyicap SUBDIR += py-pynamecheap SUBDIR += py-pynmsg SUBDIR += py-pynsq SUBDIR += py-pypacker SUBDIR += py-pypcap SUBDIR += py-pyprowl SUBDIR += py-pyroute2 SUBDIR += py-pyroute2.minimal SUBDIR += py-pyroute2.protocols SUBDIR += py-pysendfile SUBDIR += py-pyshark SUBDIR += py-pysimplesoap SUBDIR += py-pysmb SUBDIR += py-pysocks SUBDIR += py-pystun SUBDIR += py-pystun3 SUBDIR += py-python-barbicanclient SUBDIR += py-python-bitcoinrpc SUBDIR += py-python-cinderclient SUBDIR += py-python-designateclient SUBDIR += py-python-glanceclient SUBDIR += py-python-heatclient SUBDIR += py-python-ipware SUBDIR += py-python-keystoneclient SUBDIR += py-python-ldap SUBDIR += py-python-neutronclient SUBDIR += py-python-novaclient SUBDIR += py-python-openstackclient SUBDIR += py-python-socks SUBDIR += py-python-twitter SUBDIR += py-pytradfri SUBDIR += py-pyu2f SUBDIR += py-pyvmomi SUBDIR += py-pyzmq SUBDIR += py-qt5-networkauth SUBDIR += py-qt6-networkauth SUBDIR += py-rabbitpy SUBDIR += py-radix SUBDIR += py-raet SUBDIR += py-rdap SUBDIR += py-ripe.atlas.cousteau SUBDIR += py-ripe.atlas.sagan SUBDIR += py-ripe.atlas.tools SUBDIR += py-s3cmd SUBDIR += py-s3transfer SUBDIR += py-s4cmd SUBDIR += py-saltyrtc.server SUBDIR += py-sbws SUBDIR += py-scamper SUBDIR += py-shodan SUBDIR += py-siosocks SUBDIR += py-smart-open SUBDIR += py-smbpasswd SUBDIR += py-smbprotocol SUBDIR += py-socketio-client SUBDIR += py-socksio SUBDIR += py-softlayer SUBDIR += py-speedometer SUBDIR += py-speedtest-cli SUBDIR += py-sshtunnel SUBDIR += py-sshuttle SUBDIR += py-stomp.py SUBDIR += py-suds SUBDIR += py-terminado SUBDIR += py-tiny-proxy SUBDIR += py-tofu SUBDIR += py-transip SUBDIR += py-trio SUBDIR += py-trio-websocket SUBDIR += py-tweepy SUBDIR += py-twitter-tools SUBDIR += py-txamqp SUBDIR += py-txrestapi SUBDIR += py-uri-template SUBDIR += py-uritemplate SUBDIR += py-uritools SUBDIR += py-url-normalize SUBDIR += py-urlextract SUBDIR += py-urllib3 SUBDIR += py-urllib3-future SUBDIR += py-whois SUBDIR += py-wmi-query SUBDIR += py-wsdd SUBDIR += py-wsproto SUBDIR += py-zeep SUBDIR += py-zeroconf SUBDIR += py-zope.proxy SUBDIR += pyrad SUBDIR += qadsl SUBDIR += qoauth-qt5 SUBDIR += qrcp SUBDIR += qt5-network SUBDIR += qt5-networkauth SUBDIR += qt6-coap SUBDIR += qt6-mqtt SUBDIR += qt6-networkauth SUBDIR += quagga SUBDIR += quiche SUBDIR += quoted SUBDIR += rabbitmq SUBDIR += rabbitmq-c SUBDIR += rabbitmqadmin SUBDIR += radcli SUBDIR += raddump SUBDIR += radiator SUBDIR += radiusclient SUBDIR += radreport SUBDIR += radsecproxy SUBDIR += radvd SUBDIR += rathole SUBDIR += rclone SUBDIR += rclone-browser SUBDIR += rdapper SUBDIR += rdesktop SUBDIR += rdist6 SUBDIR += rdist7 SUBDIR += rdma-core SUBDIR += rdp2tcp SUBDIR += read_bbrlog SUBDIR += realtek-re-kmod SUBDIR += realtek-re-kmod198 SUBDIR += realtek-rge-kmod SUBDIR += reaver SUBDIR += recvnet SUBDIR += redir SUBDIR += redpanda-connect SUBDIR += relayd SUBDIR += reliable SUBDIR += remarkable-devd SUBDIR += remmina SUBDIR += remotebox SUBDIR += remotedesk SUBDIR += repeater SUBDIR += revsocks SUBDIR += rfbproxy SUBDIR += rinetd SUBDIR += ripe-whois SUBDIR += rosenpass SUBDIR += rospo SUBDIR += route-summarization SUBDIR += routinator SUBDIR += rpki-client SUBDIR += rscsi SUBDIR += rsplib SUBDIR += rssguard SUBDIR += rsyn SUBDIR += rsync SUBDIR += rsync-bpc SUBDIR += rtg SUBDIR += rtpproxy SUBDIR += rtptools SUBDIR += rubygem-activestorage-gitlab SUBDIR += rubygem-activestorage52 SUBDIR += rubygem-activestorage60 SUBDIR += rubygem-activestorage61 SUBDIR += rubygem-activestorage70 SUBDIR += rubygem-activestorage71 SUBDIR += rubygem-activestorage72 SUBDIR += rubygem-activestorage80 SUBDIR += rubygem-activestorage81 SUBDIR += rubygem-amazon-ec2 SUBDIR += rubygem-amq-protocol SUBDIR += rubygem-amqp SUBDIR += rubygem-amqp-utils SUBDIR += rubygem-apnotic SUBDIR += rubygem-apollo_upload_server SUBDIR += rubygem-app_store_connect SUBDIR += rubygem-asset_sync SUBDIR += rubygem-aws-s3 SUBDIR += rubygem-aws-ses SUBDIR += rubygem-azure SUBDIR += rubygem-azure-core SUBDIR += rubygem-beefcake SUBDIR += rubygem-bunny SUBDIR += rubygem-cloudflare SUBDIR += rubygem-connection_pool SUBDIR += rubygem-connection_pool-gitlab SUBDIR += rubygem-devfile SUBDIR += rubygem-docker-api SUBDIR += rubygem-dogapi SUBDIR += rubygem-domain_name SUBDIR += rubygem-dropbox-sdk SUBDIR += rubygem-epp-client-afnic SUBDIR += rubygem-epp-client-base SUBDIR += rubygem-epp-client-rgp SUBDIR += rubygem-epp-client-secdns SUBDIR += rubygem-epp-client-smallregistry SUBDIR += rubygem-fog-aliyun SUBDIR += rubygem-fog-aliyun-gitlab SUBDIR += rubygem-fog-atmos SUBDIR += rubygem-fog-aws SUBDIR += rubygem-fog-aws-gitlab SUBDIR += rubygem-fog-azure SUBDIR += rubygem-fog-brightbox SUBDIR += rubygem-fog-cloudatcost SUBDIR += rubygem-fog-cloudstack SUBDIR += rubygem-fog-digitalocean SUBDIR += rubygem-fog-dnsimple SUBDIR += rubygem-fog-dynect SUBDIR += rubygem-fog-ecloud SUBDIR += rubygem-fog-google SUBDIR += rubygem-fog-google-gitlab SUBDIR += rubygem-fog-gridscale SUBDIR += rubygem-fog-internet-archive SUBDIR += rubygem-fog-joyent SUBDIR += rubygem-fog-local SUBDIR += rubygem-fog-local-gitlab SUBDIR += rubygem-fog-openstack SUBDIR += rubygem-fog-ovirt SUBDIR += rubygem-fog-powerdns SUBDIR += rubygem-fog-profitbricks SUBDIR += rubygem-fog-rackspace SUBDIR += rubygem-fog-radosgw SUBDIR += rubygem-fog-riakcs SUBDIR += rubygem-fog-sakuracloud SUBDIR += rubygem-fog-serverlove SUBDIR += rubygem-fog-softlayer SUBDIR += rubygem-fog-storm_on_demand SUBDIR += rubygem-fog-terremark SUBDIR += rubygem-fog-vmfusion SUBDIR += rubygem-fog-voxel SUBDIR += rubygem-fog-vsphere SUBDIR += rubygem-fog-xenserver SUBDIR += rubygem-gitaly SUBDIR += rubygem-gitlab-fog-azure-rm SUBDIR += rubygem-gitlab-gkg-proto SUBDIR += rubygem-gitlab-kas-grpc SUBDIR += rubygem-gitlab-orbit-proto SUBDIR += rubygem-gitlab_omniauth-ldap SUBDIR += rubygem-gitlab_omniauth-ldap-gitlab SUBDIR += rubygem-google-cloud-bigquery SUBDIR += rubygem-google-cloud-bigtable SUBDIR += rubygem-google-cloud-bigtable-admin-v2 SUBDIR += rubygem-google-cloud-bigtable-v2 SUBDIR += rubygem-google-cloud-compute-v1 SUBDIR += rubygem-google-cloud-core SUBDIR += rubygem-google-cloud-core-gitlab SUBDIR += rubygem-google-cloud-env SUBDIR += rubygem-google-cloud-env-gitlab SUBDIR += rubygem-google-cloud-errors SUBDIR += rubygem-google-cloud-location SUBDIR += rubygem-google-cloud-location-gitlab SUBDIR += rubygem-google-cloud-logging SUBDIR += rubygem-google-cloud-logging-v2 SUBDIR += rubygem-google-cloud-monitoring SUBDIR += rubygem-google-cloud-monitoring-dashboard-v1 SUBDIR += rubygem-google-cloud-monitoring-metrics_scope-v1 SUBDIR += rubygem-google-cloud-monitoring-v3 SUBDIR += rubygem-google-cloud-pubsub SUBDIR += rubygem-google-cloud-pubsub-v1 SUBDIR += rubygem-google-cloud-resource_manager SUBDIR += rubygem-google-cloud-spanner SUBDIR += rubygem-google-cloud-spanner-admin-database-v1 SUBDIR += rubygem-google-cloud-spanner-admin-instance-v1 SUBDIR += rubygem-google-cloud-spanner-v1 SUBDIR += rubygem-google-cloud-storage SUBDIR += rubygem-google-cloud-storage-gitlab SUBDIR += rubygem-google-cloud-storage_transfer SUBDIR += rubygem-google-cloud-storage_transfer-gitlab SUBDIR += rubygem-google-cloud-storage_transfer-v1 SUBDIR += rubygem-google-cloud-storage_transfer-v1-gitlab SUBDIR += rubygem-google-cloud-storage_transfer12 SUBDIR += rubygem-google-cloud-trace SUBDIR += rubygem-google-cloud-trace-v1 SUBDIR += rubygem-google-cloud-trace-v2 SUBDIR += rubygem-grpc SUBDIR += rubygem-grpc-gitlab SUBDIR += rubygem-grpc-tools SUBDIR += rubygem-grpc_reflection SUBDIR += rubygem-hangouts-chat SUBDIR += rubygem-http-2 SUBDIR += rubygem-http-parser SUBDIR += rubygem-http_parser.rb SUBDIR += rubygem-httpauth SUBDIR += rubygem-interfacez SUBDIR += rubygem-ipaddr SUBDIR += rubygem-ipaddress SUBDIR += rubygem-iproto SUBDIR += rubygem-lita-gems SUBDIR += rubygem-macaddr SUBDIR += rubygem-maxmind-db SUBDIR += rubygem-mqtt SUBDIR += rubygem-nats-pure SUBDIR += rubygem-nats-pure-gitlab SUBDIR += rubygem-net-http2 SUBDIR += rubygem-net-ldap SUBDIR += rubygem-net-ldap017 SUBDIR += rubygem-net-netrc SUBDIR += rubygem-net-ntp SUBDIR += rubygem-net-ping SUBDIR += rubygem-net-protocol SUBDIR += rubygem-net-protocol01 SUBDIR += rubygem-netrc SUBDIR += rubygem-network_interface SUBDIR += rubygem-nkf SUBDIR += rubygem-nkf-gitlab SUBDIR += rubygem-no_proxy_fix SUBDIR += rubygem-oauth SUBDIR += rubygem-oauth-gitlab SUBDIR += rubygem-oauth-tty SUBDIR += rubygem-oauth-tty-gitlab SUBDIR += rubygem-oauth0 SUBDIR += rubygem-oauth2 SUBDIR += rubygem-oauth2-gitlab SUBDIR += rubygem-oauth21 SUBDIR += rubygem-octokit SUBDIR += rubygem-octokit-gitlab SUBDIR += rubygem-octokit4 SUBDIR += rubygem-octopress-deploy SUBDIR += rubygem-omniauth-auth0 SUBDIR += rubygem-omniauth-auth0-gitlab SUBDIR += rubygem-omniauth-authentiq SUBDIR += rubygem-omniauth-azure-activedirectory-v2 SUBDIR += rubygem-omniauth-azure-oauth2 SUBDIR += rubygem-omniauth-facebook SUBDIR += rubygem-omniauth-github SUBDIR += rubygem-omniauth-github-discourse SUBDIR += rubygem-omniauth-github-gitlab SUBDIR += rubygem-omniauth-google-oauth2 SUBDIR += rubygem-omniauth-google-oauth2-gitlab SUBDIR += rubygem-omniauth-kerberos SUBDIR += rubygem-omniauth-oauth SUBDIR += rubygem-omniauth-oauth2 SUBDIR += rubygem-omniauth-oauth2-gitlab SUBDIR += rubygem-omniauth-openid SUBDIR += rubygem-omniauth-salesforce SUBDIR += rubygem-omniauth-twitter SUBDIR += rubygem-omniauth-ultraauth SUBDIR += rubygem-omniauth_openid_connect SUBDIR += rubygem-open-uri SUBDIR += rubygem-open-uri-cached SUBDIR += rubygem-openid_connect SUBDIR += rubygem-opennebula SUBDIR += rubygem-orchestrator_client SUBDIR += rubygem-ovirt-engine-sdk SUBDIR += rubygem-packetfu SUBDIR += rubygem-packetgen SUBDIR += rubygem-pcaprub SUBDIR += rubygem-private_address_check SUBDIR += rubygem-proxifier SUBDIR += rubygem-proxifier2 SUBDIR += rubygem-qiniu SUBDIR += rubygem-rabbiter SUBDIR += rubygem-rbvmomi SUBDIR += rubygem-rbvmomi2 SUBDIR += rubygem-right_aws SUBDIR += rubygem-right_flexiscale SUBDIR += rubygem-right_gogrid SUBDIR += rubygem-right_http_connection SUBDIR += rubygem-right_slicehost SUBDIR += rubygem-rsync SUBDIR += rubygem-ruby-growl SUBDIR += rubygem-ruby-openid SUBDIR += rubygem-ruby-yadis SUBDIR += rubygem-ruby_smb SUBDIR += rubygem-rubyntlm SUBDIR += rubygem-rubytter SUBDIR += rubygem-rudy SUBDIR += rubygem-rye SUBDIR += rubygem-serverengine SUBDIR += rubygem-simple_oauth SUBDIR += rubygem-spamcheck SUBDIR += rubygem-stackdriver-core SUBDIR += rubygem-stompserver SUBDIR += rubygem-t SUBDIR += rubygem-train SUBDIR += rubygem-train-core SUBDIR += rubygem-train-rest SUBDIR += rubygem-train-winrm SUBDIR += rubygem-tweetstream SUBDIR += rubygem-twitter SUBDIR += rubygem-twitter-stream SUBDIR += rubygem-twitter4r SUBDIR += rubygem-u2f SUBDIR += rubygem-uri SUBDIR += rubygem-uri-gitlab SUBDIR += rubygem-uri-redis SUBDIR += rubygem-uri_template SUBDIR += rubygem-whois SUBDIR += rubygem-x SUBDIR += rubygem-xmlrpc SUBDIR += rude SUBDIR += rustconn SUBDIR += rustdesk-server SUBDIR += ryu SUBDIR += s3m SUBDIR += s3req SUBDIR += s5cmd SUBDIR += s6-networking SUBDIR += sacc SUBDIR += sakisafecli SUBDIR += samba416 SUBDIR += samba419 SUBDIR += samba420 SUBDIR += samba422 SUBDIR += samba423 + SUBDIR += samba424 SUBDIR += samplicator SUBDIR += savvycan SUBDIR += sbm SUBDIR += scamper SUBDIR += scapy SUBDIR += scr_ipfm SUBDIR += sctplib SUBDIR += sdl2_net SUBDIR += sdl3_net SUBDIR += sdl_net SUBDIR += seaweedfs SUBDIR += self-service-password SUBDIR += sendemail SUBDIR += sendme SUBDIR += sendsms SUBDIR += sendsnpp SUBDIR += serveez SUBDIR += serviio SUBDIR += sflowtool SUBDIR += shadowsocks-rust SUBDIR += shelldap SUBDIR += shmux SUBDIR += sie-nmsg SUBDIR += simpleproxy SUBDIR += sing-box SUBDIR += siproxd SUBDIR += sipsak SUBDIR += sl2tps SUBDIR += slackcat SUBDIR += slapi-nis SUBDIR += slurm SUBDIR += smb4k SUBDIR += smbldap-tools SUBDIR += smcroute SUBDIR += smm++ SUBDIR += sngrep SUBDIR += sniffit SUBDIR += sniffnet SUBDIR += sniproxy SUBDIR += sntop SUBDIR += socat SUBDIR += sock SUBDIR += socketapi SUBDIR += socketbind SUBDIR += socketpipe SUBDIR += socketw SUBDIR += sofia-sip SUBDIR += speedtest SUBDIR += speedtest-go SUBDIR += spiritvnc SUBDIR += spoofdpi SUBDIR += spoofer SUBDIR += spread SUBDIR += spread-j SUBDIR += sqtop SUBDIR += srelay SUBDIR += ss5 SUBDIR += sshping SUBDIR += ssldump SUBDIR += sslh SUBDIR += ssspl SUBDIR += stc SUBDIR += stone SUBDIR += storj SUBDIR += stund SUBDIR += subnetcalc SUBDIR += suckblow SUBDIR += sup SUBDIR += svnup SUBDIR += syncthing SUBDIR += syncthing1 SUBDIR += tableutil SUBDIR += tac_plus4 SUBDIR += tacacs SUBDIR += tapidbus SUBDIR += tayga SUBDIR += tclsoap SUBDIR += tcludp SUBDIR += tcpcat SUBDIR += tcpdump SUBDIR += tcpflow SUBDIR += tcpick SUBDIR += tcpillust SUBDIR += tcping SUBDIR += tcplog_dumper SUBDIR += tcpmssd SUBDIR += tcpproxy SUBDIR += tcpreen SUBDIR += tcprtt SUBDIR += tcpsg SUBDIR += tcpshow SUBDIR += tcpslice SUBDIR += tcpsplit SUBDIR += tcpstat SUBDIR += tcpstats-kmod SUBDIR += tcpstats-reader SUBDIR += tcptestsuite SUBDIR += tcptrace SUBDIR += tcptraceroute SUBDIR += tcpview SUBDIR += tcpwatch SUBDIR += tcpxd SUBDIR += tcpxtract SUBDIR += td-system-tools SUBDIR += tdetect SUBDIR += teddycloud SUBDIR += telemt SUBDIR += termshark SUBDIR += tftpgrab SUBDIR += throttled SUBDIR += tigervnc-server SUBDIR += tigervnc-viewer SUBDIR += tigervnc-viewer-java SUBDIR += tightvnc SUBDIR += timed SUBDIR += tintin++ SUBDIR += tiny-network-utilities SUBDIR += tinyfugue SUBDIR += tinyfugue-devel SUBDIR += tinyldap SUBDIR += tn5250 SUBDIR += toonel SUBDIR += torsocks SUBDIR += toxiproxy-cli SUBDIR += toxiproxy-server SUBDIR += traefik SUBDIR += traff SUBDIR += trafshow SUBDIR += trafshow3 SUBDIR += trantor SUBDIR += trickle SUBDIR += trippy SUBDIR += ts-warp SUBDIR += tsclient SUBDIR += tsctp SUBDIR += tsocks SUBDIR += ttl SUBDIR += tun2socks SUBDIR += tunneller SUBDIR += turnserver SUBDIR += u6rd SUBDIR += ucarp SUBDIR += ucx SUBDIR += udp-over-tcp SUBDIR += udpbroadcastrelay SUBDIR += udptunnel SUBDIR += udpxy SUBDIR += udt SUBDIR += uget SUBDIR += uhttpmock SUBDIR += uhttpmock0 SUBDIR += ulxmlrpcpp SUBDIR += unfs3 SUBDIR += unison SUBDIR += unison253 SUBDIR += unix2tcp SUBDIR += urelay SUBDIR += uriparser SUBDIR += urlendec SUBDIR += usbredir SUBDIR += usockets SUBDIR += utftpd SUBDIR += uvgrtp SUBDIR += v2ray SUBDIR += vde SUBDIR += vde2 SUBDIR += vether-kmod SUBDIR += viamillipede SUBDIR += vinagre SUBDIR += vino SUBDIR += vmware-vsphere-cli SUBDIR += vncreflector SUBDIR += vnstat SUBDIR += vortex SUBDIR += vpp SUBDIR += wackamole SUBDIR += wakeonlan SUBDIR += wangle SUBDIR += waypipe SUBDIR += wayvnc SUBDIR += webalizer-geodb SUBDIR += wgcf SUBDIR += whois SUBDIR += widentd SUBDIR += wifi-firmware-ath10k-kmod SUBDIR += wifi-firmware-ath11k-kmod SUBDIR += wifi-firmware-ath12k-kmod SUBDIR += wifi-firmware-iwlwifi-kmod SUBDIR += wifi-firmware-kmod SUBDIR += wifi-firmware-mt76-kmod SUBDIR += wifi-firmware-mt7601u-kmod SUBDIR += wifi-firmware-rtw88-kmod SUBDIR += wifi-firmware-rtw89-kmod SUBDIR += wifibox SUBDIR += wifibox-alpine SUBDIR += wifibox-core SUBDIR += wireguard-go SUBDIR += wireguard-tools SUBDIR += wireproxy SUBDIR += wireshark SUBDIR += wlan2eth SUBDIR += wlvncc SUBDIR += wmnd SUBDIR += wmnet SUBDIR += wmnetload SUBDIR += wmping SUBDIR += wmwave SUBDIR += wmwifi SUBDIR += wol SUBDIR += wpa_supplicant_gui SUBDIR += wping SUBDIR += wstunnel SUBDIR += wutil SUBDIR += x11vnc SUBDIR += x2goclient SUBDIR += x2goclient-cli SUBDIR += xapsd SUBDIR += xisp SUBDIR += xmlrpc-c SUBDIR += xmlrpc-epi SUBDIR += xprobe SUBDIR += xrdesktop2 SUBDIR += xrdp SUBDIR += xrdp-devel SUBDIR += yami4 SUBDIR += yaph SUBDIR += yate SUBDIR += yaz SUBDIR += yaz++ SUBDIR += yazproxy SUBDIR += yconalyzer SUBDIR += yggdrasil SUBDIR += yojimbo SUBDIR += yptransitd SUBDIR += zapret SUBDIR += zapret2 SUBDIR += zebra-server SUBDIR += zerotier SUBDIR += zmap SUBDIR += zmate SUBDIR += zsync SUBDIR += zyre .include diff --git a/net/samba424/Makefile b/net/samba424/Makefile new file mode 100644 index 000000000000..fabc81db701c --- /dev/null +++ b/net/samba424/Makefile @@ -0,0 +1,458 @@ +PORTNAME= samba424 +DISTVERSION= 4.24.6 +CATEGORIES?= net +MASTER_SITES= SAMBA/samba/stable \ + SAMBA/samba/rc +DISTNAME= samba-${DISTVERSION:S|.p|pre|:S|.r|rc|:S|.t|tp|:S|.a|alpha|} + +MAINTAINER= samba@FreeBSD.org +COMMENT= Free SMB/CIFS and AD/DC server and client for Unix +WWW= https://gitlab.com/samba-freebsd/ + +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/COPYING + +# The SAMBA4_BUNDLED_* variables are deprecated. +.for bvar in SAMBA4_BUNDLED_CMOCKA SAMBA4_BUNDLED_TALLOC SAMBA4_BUNDLED_TDB \ + SAMBA4_BUNDLED_TEVENT +. if defined(${bvar}) && ${${bvar}} == yes +IGNORE= does not support bundling dependencies via ${bvar}; use option ${bvar:S/^SAMBA4_//} instead +. endif +.endfor + +BUILD_DEPENDS= ${_JANSSON_DEPENDS} \ + ${_LIBARCHIVE_DEPENDS} \ + ${_TASN1_DEPENDS} \ + p5-Parse-Yapp>=0:devel/p5-Parse-Yapp +LIB_DEPENDS= ${_VFS_SNAPPER_LIB_DEPENDS} \ + libgcrypt.so:security/libgcrypt \ + libgnutls.so:security/gnutls \ + libiconv.so:converters/libiconv \ + libicui18n.so:devel/icu \ + libicuuc.so:devel/icu \ + libinotify.so:devel/libinotify \ + libpopt.so:devel/popt \ + libreadline.so:devel/readline \ + libsunacl.so:sysutils/libsunacl \ + libunwind.so:devel/libunwind +RUN_DEPENDS= ${_JANSSON_DEPENDS} \ + ${_LIBARCHIVE_DEPENDS} \ + ${_TASN1_DEPENDS} +TEST_DEPENDS= bash:shells/bash \ + tshark:net/wireshark@nox11 + +USES= compiler:c++11-lang cpe gettext-runtime iconv localbase:ldflags \ + ncurses perl5 pkgconfig samba:self shebangfix waf +CPE_VENDOR= samba +CPE_PRODUCT= samba +USE_LDCONFIG= ${SAMBA_LIBDIR} +USE_PERL5= build +USE_RC_SUBR= samba_server +WAF_CMD= buildtools/bin/waf +SHEBANG_FILES= selftest/* source3/script* source4/scripting/bin/* + +CONFIGURE_LOG= bin/config.log +CONFIGURE_ARGS= --datadir="${DATADIR}" \ + --includedir="${SAMBA_INCLUDEDIR}" \ + --libdir="${SAMBA_LIBDIR}" \ + --localstatedir="${_LOCALSTATEDIR}" \ + --mandir="${PREFIX}/share/man" \ + --sysconfdir="${ETCDIR}" \ + --with-bind-dns-dir=${_BINDDNSDIR} \ + --with-cachedir="${_LOCKDIR}" \ + --with-ldbmodulesdir="${SAMBA_LDB_MODULESDIR}" \ + --with-lockdir="${_LOCKDIR}" \ + --with-logfilebase="${_LOGDIR}" \ + --with-modulesdir="${SAMBA_MODULESDIR}" \ + --with-pammodulesdir="${_PAMDIR}" \ + --with-piddir="${_RUNDIR}" \ + --with-pkgconfigdir="${_PKGCONFIGDIR}" \ + --with-privatedir="${_PRIVATEDIR}" \ + --with-privatelibdir="${SAMBA_LIBDIR}/private" \ + --with-privileged-socket-dir="${_RUNDIR}" \ + --with-sockets-dir="${_RUNDIR}" \ + --with-statedir="${_LOCKDIR}" +CONFIGURE_ARGS+= ${_BUNDLED_LIBS:D--bundled-libraries="${_BUNDLED_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"} \ + ${_PRIVATE_LIBS:D--private-libraries="${_PRIVATE_LIBS:Q:C|(\\\\ )+|,|g:S|\\||g}"} \ + ${_SHARED_MODULES:D--with-shared-modules="${_SHARED_MODULES:C|-|_|:Q:C|(\\\\ )+|,|g:S|\\||g}"} \ + ${PORT_OPTIONS:MAVAHI:C/.+/--enable-avahi/} \ + ${WITH_DEBUG:D --verbose --enable-debug} \ + --disable-ctdb-tests \ + --disable-rpath \ + --disable-spotlight \ + --enable-pthreadpool \ + --with-acl-support \ + --with-iconv \ + --with-libarchive \ + --with-libiconv="${ICONV_PREFIX}" \ + --with-pam \ + --with-regedit \ + --with-sendfile-support \ + --with-winbind \ + --without-fake-kaserver \ + --without-gettext \ + --without-lttng \ + --without-systemd + +CONFIGURE_ENV= PTHREAD_LDFLAGS="-lpthread" \ + PYTHONHASHSEED=1 + +MAKE_ARGS= ${WITH_DEBUG:D --verbose} +MAKE_ENV= PYTHONHASHSEED=1 \ + RPCGEN_CPP="${CPP}" +TEST_ENV= MD5SUM=${MD5} \ + PYTHON="${PYTHON_CMD}" \ + PYTHONDONTWRITEBYTECODE=1 \ + SHA1SUM=/sbin/sha1 \ + SHA256SUM=${SHA256} + +CFLAGS+= ${_CFLAGS_${CHOSEN_COMPILER_TYPE}} +.ifnmake portclippy +_CFLAGS_clang= -fno-color-diagnostics +.endif +CONFIGURE_ENV+= NOCOLOR=yes \ + WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s' +MAKE_ENV+= NOCOLOR=yes \ + WAF_LOG_FORMAT='%(c1)s%(zone)s%(c2)s %(message)s' +CFLAGS_amd64+= -fno-omit-frame-pointer +DEBUG_FLAGS?= -g -ggdb3 -O0 +LDFLAGS+= -Wl,--undefined-version + +CONFLICTS_INSTALL= ldb2[0-9]-* samba4* + +ETCDIR= ${PREFIX}/etc +SUB_FILES= pkg-message README.FreeBSD +SUB_LIST= ${_SAMBA_SUB} + +PLIST?= ${PKGDIR}/pkg-plist +PLIST_DIRS= ${_MODULE_CLASSES:S|^|${SAMBA_MODULESDIR}/|} \ + ${SAMBA_MODULESDIR} +PLIST_FILES+= ${_SHARED_MODULES:C|_|/|:C|-|_|:S|^|${SAMBA_MODULESDIR}/|:S|$|.so|} +PLIST_SUB= ${_SAMBA_SUB} +PORTDOCS= README.FreeBSD + +OPTIONS_DEFINE= AD_DC ADS CLUSTER CUPS DOCS FAM GPGME LDAP \ + MANPAGES PROFILE PYTHON3 QUOTAS SYSLOG UTMP +OPTIONS_DEFAULT= AD_DC ADS AVAHI DOCS FAM FRUIT GSSAPI_BUILTIN \ + LDAP MANPAGES PROFILE PYTHON3 QUOTAS SYSLOG \ + UTMP +OPTIONS_GROUP= BUNDLED_DEPS DEVELOPMENT VFS +OPTIONS_GROUP_BUNDLED_DEPS= BUNDLED_CMOCKA BUNDLED_TALLOC BUNDLED_TDB \ + BUNDLED_TEVENT +OPTIONS_GROUP_DEVELOPMENT= DEVELOPER MEMORY_DEBUG TEST +OPTIONS_GROUP_VFS= FRUIT GLUSTERFS +OPTIONS_SINGLE= GSSAPI ZEROCONF +OPTIONS_SINGLE_GSSAPI= GSSAPI_BUILTIN GSSAPI_MIT +OPTIONS_SINGLE_ZEROCONF= AVAHI MDNSRESPONDER ZEROCONF_NONE +OPTIONS_SUB= yes + +ADS_DESC= Active Directory client +AD_DC_DESC= Active Directory Domain Controller(implies PYTHON3) +BUNDLED_CMOCKA_DESC= Bundle cmocka instead of depending on a standalone port +BUNDLED_DEPS_DESC= Bundled dependencies +BUNDLED_TALLOC_DESC= Bundle talloc instead of depending on a standalone port +BUNDLED_TDB_DESC= Bundle TDB instead of depending on a standalone port +BUNDLED_TEVENT_DESC= Bundle Tevent instead of depending on a standalone port +CLUSTER_DESC= Clustering support +DEVELOPER_DESC= With developer framework +DEVELOPMENT_DESC= Testing, debugging, and development +FAM_DESC= File Alteration Monitor +FRUIT_DESC= MacOSX and TimeMachine support +GLUSTERFS_DESC= GlusterFS support +GPGME_DESC= GpgME support +GSSAPI_BUILTIN_DESC= GSSAPI support via bundled Heimdal +LDAP_DESC= LDAP client +MEMORY_DEBUG_DESC= Debug memory allocator +PROFILE_DESC= Profiling data +QUOTAS_DESC= Disk quota support +UTMP_DESC= UTMP accounting +VFS_DESC= VFS modules +ZEROCONF_DESC= Zero configuration networking +ZEROCONF_NONE_DESC= Zeroconf support is absent + +ADS_IMPLIES= LDAP +ADS_CONFIGURE_WITH= ads +ADS_VARS= _SHARED_MODULES+="idmap_ad idmap_rfc2307 nss-info_template nss-info_rfc2307 nss-info_sfu nss-info_sfu20" + +AD_DC_IMPLIES= ADS PYTHON3 +AD_DC_BUILD_DEPENDS= ${_LMDB_DEPENDS} +AD_DC_RUN_DEPENDS= ${_LMDB_DEPENDS} +AD_DC_CONFIGURE_OFF= --without-ad-dc \ + --without-ldb-lmdb +AD_DC_VARS= PLIST+=${PKGDIR}/pkg-plist.ad_dc +AD_DC_BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dnspython>=2.2.1:dns/py-dnspython@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdown@${PY_FLAVOR} +AD_DC_RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dnspython>=2.2.1:dns/py-dnspython@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7:textproc/py-markdown@${PY_FLAVOR} + +AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app +AVAHI_CONFIGURE_ENABLE= avahi +AVAHI_VARS= _SAMBA_SERVICES+=avahi_daemon + +BUNDLED_CMOCKA_BUILD_DEPENDS_OFF= cmocka>=1.1.3:sysutils/cmocka +BUNDLED_CMOCKA_TEST_DEPENDS_OFF= cmocka>=1.1.3:sysutils/cmocka +BUNDLED_CMOCKA_CONFLICTS_INSTALL= cmocka-1.* +BUNDLED_CMOCKA_VARS= _BUNDLED_LIB_REPLACE=replace \ + _BUNDLED_LIBS+=cmocka +BUNDLED_CMOCKA_VARS_OFF= _BUNDLED_LIBS+=!cmocka + +BUNDLED_TALLOC_BUILD_DEPENDS_OFF= talloc244>=2.4.4:devel/talloc244 +BUNDLED_TALLOC_RUN_DEPENDS_OFF= talloc244>=2.4.4:devel/talloc244 +BUNDLED_TALLOC_CONFLICTS_INSTALL= talloc-* talloc2* +BUNDLED_TALLOC_VARS= _BUNDLED_LIB_REPLACE=replace \ + _BUNDLED_LIBS+=talloc +BUNDLED_TALLOC_VARS_OFF= _BUNDLED_LIBS+=!talloc + +BUNDLED_TDB_BUILD_DEPENDS_OFF= tdb1415>=1.4.15:databases/tdb1415 +BUNDLED_TDB_RUN_DEPENDS_OFF= tdb1415>=1.4.15:databases/tdb1415 +BUNDLED_TDB_CONFLICTS_INSTALL= tdb-* tdb1* +BUNDLED_TDB_VARS= _BUNDLED_LIB_REPLACE=replace \ + _BUNDLED_LIBS+=tdb +BUNDLED_TDB_VARS_OFF= _BUNDLED_LIBS+=!tdb + +BUNDLED_TEVENT_BUILD_DEPENDS_OFF= tevent017>=0.17.1:devel/tevent017 +BUNDLED_TEVENT_RUN_DEPENDS_OFF= tevent017>=0.17.1:devel/tevent017 +BUNDLED_TEVENT_CONFLICTS_INSTALL= tevent-* tevent0* +BUNDLED_TEVENT_VARS= _BUNDLED_LIB_REPLACE=replace \ + _BUNDLED_LIBS+=tevent +BUNDLED_TEVENT_VARS_OFF= _BUNDLED_LIBS+=!tevent + +CLUSTER_LIB_DEPENDS= libpcap.so:net/libpcap +CLUSTER_CONFIGURE_WITH= cluster-support +CLUSTER_VARS= PLIST+=${PKGDIR}/pkg-plist.cluster + +CUPS_LIB_DEPENDS= libcups.so:print/cups +CUPS_CONFIGURE_ENABLE= cups iprint + +DEVELOPER_BUILD_DEPENDS= ${_GDB_CMD}:devel/gdb \ + ${_LMDB_DEPENDS} +DEVELOPER_RUN_DEPENDS= ${_LMDB_DEPENDS} +DEVELOPER_TEST_DEPENDS= ${_GDB_CMD}:devel/gdb +DEVELOPER_CONFIGURE_ON= --abi-check-disable \ + --enable-developer \ + --enable-selftest +DEVELOPER_CONFIGURE_ENV= WAF_CMD_FORMAT=string +DEVELOPER_VARS= _SHARED_MODULES+="auth_skel pdb_test gpext_security gpext_registry gpext_scripts perfcount_test vfs_fake_dfq vfs_skel_opaque vfs_skel_transparent vfs_shadow_copy_test vfs_fake_acls vfs_nfs4acl_xattr vfs_error_inject vfs_delay_inject" +DEVELOPER_VARS_OFF= _GDB_CMD=true + +FAM_LIB_DEPENDS= libfam.so.0:devel/gamin +FAM_CONFIGURE_WITH= fam + +FRUIT_PREVENTS= ZEROCONF_NONE +FRUIT_PREVENTS_MSG= MacOSX support requires Zeroconf(AVAHI or \ + MDNSRESPONDER) +FRUIT_PLIST_FILES= ${MANPAGES}share/man/man8/vfs_fruit.8.gz +FRUIT_VARS= _SHARED_MODULES+=vfs_fruit + +GLUSTERFS_LIB_DEPENDS= libglusterfs.so:net/glusterfs +GLUSTERFS_CONFIGURE_ENABLE= glusterfs +GLUSTERFS_PLIST_FILES= ${MANPAGES}share/man/man8/vfs_glusterfs.8.gz +GLUSTERFS_VARS= _SHARED_MODULES+=vfs_glusterfs + +GPGME_LIB_DEPENDS= libgpgme.so:security/gpgme +GPGME_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}gpg>=2.0.0:security/py-gpg@${PY_FLAVOR} +GPGME_CONFIGURE_WITH= gpgme + +GSSAPI_BUILTIN_USES= bison + +GSSAPI_MIT_USES= bison gssapi:mit +GSSAPI_MIT_CONFIGURE_ON= --with-experimental-mit-ad-dc \ + --with-system-mitkdc=${GSSAPIBASEDIR}/sbin/krb5kdc \ + --with-system-mitkrb5 +GSSAPI_MIT_PLIST_FILES= ${SAMBA_MODULESDIR}/krb5/winbind_krb5_localauth.so \ + %%AD_DC%%${SAMBA_LIBDIR}/krb5/plugins/kdb/samba.so \ + %%MANPAGES%%share/man/man8/winbind_krb5_localauth.8.gz + +LDAP_USES= ldap +LDAP_CONFIGURE_WITH= ldap +LDAP_VARS= _SHARED_MODULES+=idmap_ldap + +MANPAGES_BUILD_DEPENDS= ${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \ + xsltproc:textproc/libxslt +MANPAGES_CONFIGURE_ENV_OFF= XSLTPROC="false" + +MDNSRESPONDER_LIB_DEPENDS= libdns_sd.so:net/mDNSResponder +MDNSRESPONDER_VARS= _SAMBA_SERVICES+=mdnsd + +# FreeBSD 14+ uses jemalloc as the base system allocator. +# The devel/jemalloc port is gone and base does not install public headers. +MEMORY_DEBUG_CONFIGURE_ENV= ADDITIONAL_CFLAGS="-DENABLE_JEMALLOC" + +PROFILE_CONFIGURE_WITH= profiling-data + +PYTHON3_USES= python +PYTHON3_USES_OFF= python:build,test +PYTHON3_CONFIGURE_ON= --nopycache +PYTHON3_CONFIGURE_OFF= --disable-python +PYTHON3_MAKE_ENV= PYTHONDONTWRITEBYTECODE=1 +PYTHON3_VARS= _BUNDLED_LIBS+="pyldb pyldb-util" \ + PLIST+=${PKGDIR}/pkg-plist.python + +QUOTAS_CONFIGURE_WITH= quotas + +SYSLOG_CONFIGURE_WITH= syslog + +TEST_BUILD_DEPENDS= ${_ISO8601_DEPENDS} +TEST_RUN_DEPENDS= ${_ISO8601_DEPENDS} + +UTMP_CONFIGURE_WITH= utmp + +ZEROCONF_NONE_MAKE_ENV= ZEROCONF=none + +.ifnmake portclippy +. if !defined(WANT_EXP_MODULES) || empty(WANT_EXP_MODULES) +WANT_EXP_MODULES= vfs_cacheprime +. endif +.endif + +_GDB_CMD= ${LOCALBASE}/bin/gdb + +_ISO8601_DEPENDS= ${PYTHON_PKGNAMEPREFIX}iso8601>=0.1.11:devel/py-iso8601@${PY_FLAVOR} +_JANSSON_DEPENDS= jansson>=2.10:devel/jansson +_LIBARCHIVE_DEPENDS= libarchive>=3.1.2:archivers/libarchive +_TASN1_DEPENDS= libtasn1>=3.8:security/libtasn1 +.if ${WANT_EXP_MODULES:Mvfs_snapper} +_VFS_SNAPPER_LIB_DEPENDS= libdbus-1.so:devel/dbus \ + libdbus-glib-1.so:devel/dbus-glib +.endif + +_BUNDLED_LIBS= !libarchive com_err ${_BUNDLED_LIB_replace} + +_MODULE_CLASSES= auth bind9 gensec gpext idmap ldb nss_info pdb \ + perfcount process_model service vfs +_PRIVATE_LIBS= !ldb +_SHARED_MODULES+= ${WANT_EXP_MODULES} krb5_async_dns_krb5_locator \ + krb5_winbind_krb5_locator idmap_nss idmap_autorid \ + idmap_rid idmap_hash idmap_tdb idmap_tdb2 idmap_script \ + nss-info_hash vfs_freebsd vfs_acl_tdb vfs_acl_xattr \ + vfs_aio_fork vfs_aio_pthread vfs_audit vfs_cap \ + vfs_catia vfs_commit vfs_crossrename vfs_default_quota \ + vfs_dirsort vfs_expand_msdfs vfs_extd_audit \ + vfs_fake_perms vfs_full_audit vfs_linux_xfs_sgid \ + vfs_media_harmony vfs_offline vfs_preopen vfs_readahead \ + vfs_readonly vfs_recycle vfs_shadow_copy \ + vfs_shadow_copy2 vfs_shell_snap vfs_streams_depot \ + vfs_streams_xattr vfs_syncops vfs_time_audit \ + vfs_unityed_media vfs_virusfilter vfs_widelinks \ + vfs_worm vfs_xattr_tdb vfs_zfsacl + +_SAMBA_MAJVERNAME= samba4 +_SAMBA_SUB= PKGCONFIGDIR=${_PKGCONFIGDIR_REL} \ + SAMBA4_LOGDIR="${_LOGDIR}" SAMBA4_RUNDIR="${_RUNDIR}" \ + SAMBA4_LOCKDIR="${_LOCKDIR}" \ + SAMBA4_LIBDIR="${SAMBA_LIBDIR}" \ + SAMBA4_MODULEDIR="${SAMBA_MODULESDIR}" \ + SAMBA_LDB_MODULESDIR="${SAMBA_LDB_MODULESDIR}" \ + SAMBA4_BINDDNSDIR="${_BINDDNSDIR}" \ + SAMBA4_PRIVATEDIR="${_PRIVATEDIR}" \ + SAMBA4_CONFIG="${_SAMBA_CONFIG}" \ + SAMBA4_SERVICES="${_SAMBA_SERVICES}" + +_SAMBA_CONFIG= smb4.conf + +_BINDDNSDIR= ${_LOCKDIR}/bind-dns +_LOCALSTATEDIR= ${_VARDIR} +_LOCKDIR= ${_VARDIR}/db/${_SAMBA_MAJVERNAME} +_LOGDIR= ${_VARDIR}/log/${_SAMBA_MAJVERNAME} +_PAMDIR= ${PREFIX}/lib +_PKGCONFIGDIR= ${PREFIX}/${_PKGCONFIGDIR_REL} +_PKGCONFIGDIR_REL= libdata/pkgconfig +_PRIVATEDIR= ${_LOCKDIR}/private +_RUNDIR= ${_VARDIR}/run/${_SAMBA_MAJVERNAME} +_VARDIR?= ${VARDIR:U/var} + + +.include + +.if ${PORT_OPTIONS:MPYTHON3} +_BUNDLED_LIBS+= ${"${PORT_OPTIONS:MBUNDLED_TALLOC}" == "BUNDLED_TALLOC":?:!}pytalloc-util \ + ${"${PORT_OPTIONS:MBUNDLED_TEVENT}" == "BUNDLED_TEVENT":?:!}pytevent \ + ${"${PORT_OPTIONS:MBUNDLED_TDB}" == "BUNDLED_TDB":?:!}pytdb +.endif + +# Only for 64-bit architectures +.if ${ARCH} != armv6 && ${ARCH} != armv7 && ${ARCH} != i386 && ${ARCH} != \ + powerpc && ${ARCH} != powerpcspe +. if (${PORT_OPTIONS:MAD_DC} || ${PORT_OPTIONS:MDEVELOPER}) +# LMDB +_LMDB_DEPENDS= lmdb0>=0.9.16:databases/lmdb0 +PLIST_FILES+= ${SAMBA_LDB_MODULESDIR}/mdb.so \ + ${SAMBA_LIBDIR}/private/libldb-mdb-int-private-samba.so +. endif +.endif + +post-extract: + @${RM} -r ${WRKSRC}/pidl/lib/Parse/Yapp + +post-patch: + @${REINPLACE_CMD} -e 's|$${PKGCONFIGDIR}|${_PKGCONFIGDIR}|g' \ + ${PATCH_WRKSRC}/buildtools/wafsamba/pkgconfig.py + @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ + ${PATCH_WRKSRC}/buildtools/wafsamba/wafsamba.py + @${REINPLACE_CMD} -e 's|%%GDB_CMD%%|${_GDB_CMD}|g' \ + ${PATCH_WRKSRC}/buildtools/scripts/abi_gen.sh + @${REINPLACE_CMD} -e 's|%%SAMBA4_CONFIG%%|${_SAMBA_CONFIG}|g' \ + ${PATCH_WRKSRC}/dynconfig/wscript + +post-install: + ${RM} -r ${STAGEDIR}${PYTHON_SITELIBDIR}/samba/third_party + ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -type d -name __pycache__ \ + -exec ${RM} -r {} + + ${FIND} ${STAGEDIR} -type f -empty -delete + +.for dir in ${_LOGDIR} ${_RUNDIR} ${_LOCKDIR} ${SAMBA_MODULESDIR} + ${INSTALL} -d -m 0755 "${STAGEDIR}${dir}" +.endfor + ${INSTALL} -d -m 0750 "${STAGEDIR}${_BINDDNSDIR}" + ${INSTALL} -d -m 0750 "${STAGEDIR}${_PRIVATEDIR}" +.for module_class in ${_MODULE_CLASSES} + ${INSTALL} -d -m 0755 "${STAGEDIR}${SAMBA_MODULESDIR}/${module_class}" +.endfor +.if !defined(WITH_DEBUG) + -${FIND} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/sbin ${STAGEDIR}${PREFIX}/libexec \ + -type f -print0 | ${XARGS} -0 -n 1 -t ${STRIP_CMD} + -${FIND} ${STAGEDIR}${PREFIX}/lib -name '*.so*' \ + -type f -print0 | ${XARGS} -0 -n 1 -t ${STRIP_CMD} +.endif + +post-install-BUNDLED_TALLOC-on: +.if ${PORT_OPTIONS:MMANPAGES} +. for f in talloc.3 + ${MV} ${STAGEDIR}${PREFIX}/share/man/man3/${f} ${STAGEDIR}${PREFIX}/share/man/man3/samba-${f} +. endfor +.endif + +post-install-BUNDLED_TDB-on: +.if ${PORT_OPTIONS:MMANPAGES} +. for f in tdbbackup.8 tdbdump.8 tdbrestore.8 tdbtool.8 + ${MV} ${STAGEDIR}${PREFIX}/share/man/man8/${f} ${STAGEDIR}${PREFIX}/share/man/man8/samba-${f} +. endfor +.endif + +post-install-CLUSTER-on: + ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/00.ctdb.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/00.ctdb.script + ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/01.reclock.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/01.reclock.script + ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/05.system.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/05.system.script + ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/10.interface.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/10.interface.script + ${RLN} ${STAGEDIR}${PREFIX}/share/ctdb/events/legacy/95.database.script ${STAGEDIR}${PREFIX}/etc/ctdb/events/legacy/95.database.script + + ${RLN} ${STAGEDIR}${PREFIX}/libexec/ctdb/statd_callout ${STAGEDIR}${PREFIX}/etc/ctdb/statd-callout + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} +.for doc in ${PORTDOCS} + ${INSTALL_DATA} ${WRKDIR}/${doc} ${STAGEDIR}${DOCSDIR} +.endfor + +post-install-FRUIT-off: + ${RM} ${STAGEDIR}${SAMBA_MODULESDIR}/vfs/fruit.so + ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/vfs_fruit.8 + +post-install-MANPAGES-on: + ${RLN} ${STAGEDIR}${PREFIX}/share/man/man5/smb.conf.5 ${STAGEDIR}${PREFIX}/share/man/man5/smb4.conf.5 + +.for f in vfs_aio_linux.8 vfs_btrfs.8 vfs_ceph.8 vfs_gpfs.8 + ${RM} ${STAGEDIR}${PREFIX}/share/man/man8/${f} +.endfor + +.include diff --git a/net/samba424/distinfo b/net/samba424/distinfo new file mode 100644 index 000000000000..296ef5a8212a --- /dev/null +++ b/net/samba424/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1786719234 +SHA256 (samba-4.24.6.tar.gz) = 810cc955acb367e9bde556dccfb50db177a02b7c553aa1629a0b905fa7616267 +SIZE (samba-4.24.6.tar.gz) = 43449390 diff --git a/net/samba424/files/README.FreeBSD.in b/net/samba424/files/README.FreeBSD.in new file mode 100644 index 000000000000..4e06a33160ba --- /dev/null +++ b/net/samba424/files/README.FreeBSD.in @@ -0,0 +1,91 @@ + + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !!! Please read before running any tools !!! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +Documentation +============= + + o https://wiki.samba.org/index.php/Samba4/HOWTO + + o https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO + + o https://wiki.samba.org/index.php/Samba4/samba-tool/domain/classicupgrade/HOWTO + +FreeBSD specific information +============================ + +* Your configuration is in: %%ETCDIR%%/%%SAMBA4_CONFIG%% + +* All the logs are under: %%SAMBA4_LOGDIR%% + +* All the relevant databases are under: %%SAMBA4_LOCKDIR%% + +* Provisioning script is: %%PREFIX%%/bin/samba-tool + +Samba4 provisioning requires file system(s) with the ACLs support. On +UFS2 you need to enable POSIX ACLs by adding 'acls' option to the mount +flags, on ZFS you need to use NFSv4 ACLs and `zfsacl` VFS module to get +provisioning work. + +There is a hack in the code, that makes provisioning work on UFS2 and in +the jails on the price of using USER extattr(2) namespace, which is less +secure than SYSTEM namespace, as can be edited not only by root user, but +also by the owner of the file. + +For the provisioning on ZFS you need to use additional parameters to the +samba-tool, that would explicitly add `zfsacl` to the default `vfs objects`: + + # samba-tool domain provision --interactive \ + --option="vfs objects"="dfs_samba4 zfsacl" + +To run this port you need to perform the following steps: +--------------------------------------------------------- + +0. If you had Samba3 port installed before, please, *take backups* of +all the relevant files. That includes 'smb.conf' file and all the +content of the '/var/db/samba/' directory. + +1a. Create new '%%ETCDIR%%/%%SAMBA4_CONFIG%%' file by running: + + # samba-tool domain provision + +1b. Or upgrade from the Samba3 'smb.conf' file by running: + + # samba-tool domain classicupgrade + +%%AD_DC%%1c. You will need to specify location of the 'nsupdate' command in the +%%AD_DC%%'%%SAMBA4_CONFIG%%' file: +%%AD_DC%% +%%AD_DC%% nsupdate command = %%PREFIX%%/bin/samba-nsupdate -g +%%AD_DC%% +2. Put string 'samba_server_enable="YES"' into your /etc/rc.conf. + +3. Make sure that your server doesn't run Samba3, OpenLDAP and named. +Stop them, if necessary. + +4. Run '%%PREFIX%%/etc/rc.d/samba_server start' or reboot. + +Please, check archives of samba@lists.samba.org and ask there for help, +if necessary: + + https://lists.samba.org/archive/samba/ + +Port related bugs can be reported to the FreeBSD Bugzilla or directly to: + + https://gitlab.com/samba-freebsd/ports/-/issues + +In case you found a bug which is clearly not related to the port build +process itself, please file a bug report at: + + https://bugzilla.samba.org/ + +And add me to CC list. + +You may find those tools helpful: +--------------------------------- + +Microsoft Remote Server Administration Tools (RSAT) for: + +* Vista: http://www.microsoft.com/en-us/download/details.aspx?id=21090 +* Windows 7: http://www.microsoft.com/en-us/download/details.aspx?id=7887 diff --git a/net/samba424/files/patch-buildtools_scripts_abi__gen.sh b/net/samba424/files/patch-buildtools_scripts_abi__gen.sh new file mode 100644 index 000000000000..16e53ae61243 --- /dev/null +++ b/net/samba424/files/patch-buildtools_scripts_abi__gen.sh @@ -0,0 +1,17 @@ +--- buildtools/scripts/abi_gen.sh.orig 2026-01-20 15:42:53 UTC ++++ buildtools/scripts/abi_gen.sh +@@ -9,6 +9,7 @@ set width 0 + cat <$GDBSCRIPT + + # forcing the terminal avoids a problem on Fedora12 +-TERM=none gdb -n -batch -x $GDBSCRIPT "$SHAREDLIB" ++ ++ ++ ++ ++ vfs_freebsd ++ 8 ++ Samba ++ System Administration tools ++ &doc.version; ++ ++ ++ ++ vfs_freebsd ++ FreeBSD-specific VFS functions ++ ++ ++ ++ ++ vfs objects = freebsd ++ ++ ++ ++ ++ DESCRIPTION ++ ++ This VFS module is part of the samba ++ 7 suite. ++ ++ The vfs_freebsd module implements some of the FreeBSD-specific VFS functions. ++ ++ This module is stackable. ++ ++ ++ ++ ++ OPTIONS ++ ++ ++ ++ ++ freebsd:extattr mode=[legacy|compat|secure] ++ ++ This parameter defines how the emulation of the Linux attr(5) extended attributes ++ is performed through the FreeBSD native extattr(9) system calls. ++ ++ Currently the security, system, ++ trusted and user extended attribute(xattr) ++ classes are defined in Linux. Contrary FreeBSD has only USER ++ and SYSTEM extended attribute(extattr) namespaces, so mapping ++ of one set into another isn't straightforward and can be done in different ways. ++ ++ Historically the Samba(7) built-in xattr mapping implementation simply converted ++ system and user xattr into corresponding ++ SYSTEM and USER extattr namespaces, dropping ++ the class prefix name with the separating dot and using attribute name only within the ++ mapped namespace. It also rejected any other xattr classes, like security ++ and trusted as invalid. Such behavior in particular broke AD ++ provisioning on UFS2 file systems as essential security.NTACL ++ xattr was rejected as invalid. ++ ++ This module tries to address this problem and provide secure, where it's possible, ++ way to map Linux xattr into FreeBSD's extattr. ++ ++ When mode is set to the legacy (default) ++ then modified version of built-in mapping is used, where system xattr ++ is mapped into SYSTEM namespace, while secure, trusted ++ and user xattr are all mapped into the USER namespace, dropping class ++ prefixes and mix them all together. This is the way how Samba FreeBSD ports were patched ++ up to the 4.9 version and that created multiple potential security issues. This mode is aimed for ++ the compatibility with the legacy installations only and should be avoided in new setups. ++ ++ The compat mode is mostly designed for the jailed environments, ++ where it's not possible to write extattrs into the secure SYSTEM namespace, so all four ++ classes are mapped into the USER namespace. To preserve information about origin of the ++ extended attribute it is stored together with the class preffix in the class.attribute ++ format. ++ ++ The secure mode is meant for storing extended attributes in a secure ++ manner, so that security, system and trusted ++ are stored in the SYSTEM namespace, which can be modified only by root. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Attributes mapping ++ ++ ++ ++ ++ built-in ++ legacy ++ compat/jail ++ secure ++ ++ ++ ++ ++ user ++ USER; attribute ++ USER; attribute ++ USER; user.attribute ++ USER; user.attribute ++ ++ ++ system ++ SYSTEM; attribute ++ SYSTEM; attribute ++ USER; system.attribute ++ SYSTEM; system.attribute ++ ++ ++ trusted ++ FAIL ++ USER; attribute ++ USER; trusted.attribute ++ SYSTEM; trusted.attribute ++ ++ ++ security ++ FAIL ++ USER; attribute ++ USER; security.attribute ++ SYSTEM; security.attribute ++ ++ ++ ++
++
++ ++ ++ EXAMPLES ++ ++ Use secure method of setting extended attributes on the share: ++ ++ ++ ++ freebsd ++ secure ++ ++ ++ ++ ++ ++ VERSION ++ ++ This man page is part of version &doc.version; of the Samba suite. ++ ++ ++ ++ ++ AUTHOR ++ ++ The original Samba software and related utilities ++ were created by Andrew Tridgell. Samba is now developed ++ by the Samba Team as an Open Source project similar ++ to the way the Linux kernel is developed. ++ ++ This module was written by Timur I. Bakeyev ++ ++ ++ ++
diff --git a/net/samba424/files/patch-docs-xml_wscript__build b/net/samba424/files/patch-docs-xml_wscript__build new file mode 100644 index 000000000000..7df0bafd734c --- /dev/null +++ b/net/samba424/files/patch-docs-xml_wscript__build @@ -0,0 +1,10 @@ +--- docs-xml/wscript_build.orig 2026-01-20 15:42:54 UTC ++++ docs-xml/wscript_build +@@ -91,6 +91,7 @@ vfs_module_manpages = ['vfs_acl_tdb', + 'vfs_extd_audit', + 'vfs_fake_perms', + 'vfs_fileid', ++ 'vfs_freebsd', + 'vfs_fruit', + 'vfs_full_audit', + 'vfs_glusterfs', diff --git a/net/samba424/files/patch-dynconfig_wscript b/net/samba424/files/patch-dynconfig_wscript new file mode 100644 index 000000000000..195a5cccdce2 --- /dev/null +++ b/net/samba424/files/patch-dynconfig_wscript @@ -0,0 +1,32 @@ +--- dynconfig/wscript.orig 2026-01-20 15:42:54 UTC ++++ dynconfig/wscript +@@ -156,6 +156,8 @@ dynconfig = { + 'PKGCONFIGDIR' : { + 'STD-PATH': '${LIBDIR}/pkgconfig', + 'FHS-PATH': '${LIBDIR}/pkgconfig', ++ 'OPTION': '--with-pkgconfigdir', ++ 'HELPTEXT': 'Where to put .pc files', + }, + 'CODEPAGEDIR' : { + 'STD-PATH': '${DATADIR}/codepages', +@@ -269,8 +271,8 @@ dynconfig = { + 'DELAY': True, + }, + 'CONFIGFILE' : { +- 'STD-PATH': '${CONFIGDIR}/smb.conf', +- 'FHS-PATH': '${CONFIGDIR}/smb.conf', ++ 'STD-PATH': '${CONFIGDIR}/smb4.conf', ++ 'FHS-PATH': '${CONFIGDIR}/smb4.conf', + 'DELAY': True, + }, + 'LMHOSTSFILE' : { +@@ -328,9 +330,6 @@ def configure(conf): + flavor = 'FHS-PATH' + else: + flavor = 'STD-PATH' +- if conf.env.PREFIX == '/usr' or conf.env.PREFIX == '/usr/local': +- Logs.error("Don't install directly under /usr or /usr/local without using the FHS option (--enable-fhs)") +- raise Errors.WafError("ERROR: invalid --prefix=%s value" % (conf.env.PREFIX)) + + explicit_set ={} + diff --git a/net/samba424/files/patch-examples_pdb_wscript__build b/net/samba424/files/patch-examples_pdb_wscript__build new file mode 100644 index 000000000000..6b8e2685e80a --- /dev/null +++ b/net/samba424/files/patch-examples_pdb_wscript__build @@ -0,0 +1,11 @@ +--- examples/pdb/wscript_build.orig 2019-01-15 10:07:00 UTC ++++ examples/pdb/wscript_build +@@ -3,7 +3,7 @@ + bld.SAMBA3_MODULE('pdb_test', + subsystem='pdb', + source='test.c', +- deps='samba-util', ++ deps='samba-util samba-debug', + init_function='', + internal_module=bld.SAMBA3_IS_STATIC_MODULE('pdb_test'), + enabled=bld.SAMBA3_IS_ENABLED_MODULE('pdb_test')) diff --git a/net/samba424/files/patch-lib_dbwrap_dbwrap.c b/net/samba424/files/patch-lib_dbwrap_dbwrap.c new file mode 100644 index 000000000000..985f26104037 --- /dev/null +++ b/net/samba424/files/patch-lib_dbwrap_dbwrap.c @@ -0,0 +1,12 @@ +--- lib/dbwrap/dbwrap.c.orig 2026-01-20 15:42:54 UTC ++++ lib/dbwrap/dbwrap.c +@@ -28,6 +28,9 @@ + #include "lib/util/util_tdb.h" + #include "lib/util/tevent_ntstatus.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + /* + * Fall back using fetch if no genuine exists operation is provided + */ diff --git a/net/samba424/files/patch-lib_dbwrap_dbwrap__local__open.c b/net/samba424/files/patch-lib_dbwrap_dbwrap__local__open.c new file mode 100644 index 000000000000..b32b75d76663 --- /dev/null +++ b/net/samba424/files/patch-lib_dbwrap_dbwrap__local__open.c @@ -0,0 +1,12 @@ +--- lib/dbwrap/dbwrap_local_open.c.orig 2026-01-20 15:42:54 UTC ++++ lib/dbwrap/dbwrap_local_open.c +@@ -23,6 +23,9 @@ + #include "dbwrap/dbwrap_tdb.h" + #include "tdb.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + struct db_context *dbwrap_local_open(TALLOC_CTX *mem_ctx, + const char *name, + int hash_size, int tdb_flags, diff --git a/net/samba424/files/patch-lib_dbwrap_dbwrap__rbt.c b/net/samba424/files/patch-lib_dbwrap_dbwrap__rbt.c new file mode 100644 index 000000000000..98bbc51aaeb6 --- /dev/null +++ b/net/samba424/files/patch-lib_dbwrap_dbwrap__rbt.c @@ -0,0 +1,12 @@ +--- lib/dbwrap/dbwrap_rbt.c.orig 2026-01-20 15:42:54 UTC ++++ lib/dbwrap/dbwrap_rbt.c +@@ -24,6 +24,9 @@ + #include "../lib/util/rbtree.h" + #include "../lib/util/dlinklist.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + #define DBWRAP_RBT_ALIGN(_size_) (((_size_)+15)&~15) + + struct db_rbt_ctx { diff --git a/net/samba424/files/patch-lib_dbwrap_dbwrap__tdb.c b/net/samba424/files/patch-lib_dbwrap_dbwrap__tdb.c new file mode 100644 index 000000000000..8575959aef41 --- /dev/null +++ b/net/samba424/files/patch-lib_dbwrap_dbwrap__tdb.c @@ -0,0 +1,12 @@ +--- lib/dbwrap/dbwrap_tdb.c.orig 2026-01-20 15:42:54 UTC ++++ lib/dbwrap/dbwrap_tdb.c +@@ -29,6 +29,9 @@ + #include "lib/param/param.h" + #include "libcli/util/error.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + struct db_tdb_ctx { + struct tdb_wrap *wtdb; + diff --git a/net/samba424/files/patch-lib_dbwrap_dbwrap__util.c b/net/samba424/files/patch-lib_dbwrap_dbwrap__util.c new file mode 100644 index 000000000000..2527ffb59549 --- /dev/null +++ b/net/samba424/files/patch-lib_dbwrap_dbwrap__util.c @@ -0,0 +1,12 @@ +--- lib/dbwrap/dbwrap_util.c.orig 2026-01-20 15:42:54 UTC ++++ lib/dbwrap/dbwrap_util.c +@@ -26,6 +26,9 @@ + #include "dbwrap.h" + #include "lib/util/util_tdb.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + struct dbwrap_fetch_int32_state { + NTSTATUS status; + int32_t result; diff --git a/net/samba424/files/patch-lib_ldb_ldb__key__value_ldb__kv__cache.c b/net/samba424/files/patch-lib_ldb_ldb__key__value_ldb__kv__cache.c new file mode 100644 index 000000000000..fb3736958f10 --- /dev/null +++ b/net/samba424/files/patch-lib_ldb_ldb__key__value_ldb__kv__cache.c @@ -0,0 +1,13 @@ +--- lib/ldb/ldb_key_value/ldb_kv_cache.c.orig 2026-01-20 15:42:54 UTC ++++ lib/ldb/ldb_key_value/ldb_kv_cache.c +@@ -92,7 +92,9 @@ static int ldb_schema_attribute_compare(const void *p1 + { + const struct ldb_schema_attribute *sa1 = (const struct ldb_schema_attribute *)p1; + const struct ldb_schema_attribute *sa2 = (const struct ldb_schema_attribute *)p2; +- return ldb_attr_cmp(sa1->name, sa2->name); ++ int res = ldb_attr_cmp(sa1->name, sa2->name); ++ ++ return (res) ? res : (sa1->flags > sa2->flags) ? 1 : (sa1->flags < sa2->flags) ? -1 : 0; + } + + /* diff --git a/net/samba424/files/patch-lib_replace_wscript b/net/samba424/files/patch-lib_replace_wscript new file mode 100644 index 000000000000..cadca8e54147 --- /dev/null +++ b/net/samba424/files/patch-lib_replace_wscript @@ -0,0 +1,11 @@ +--- lib/replace/wscript.orig 2026-01-20 15:42:54 UTC ++++ lib/replace/wscript +@@ -122,7 +122,7 @@ def configure(conf): + conf.CHECK_HEADERS('sys/atomic.h stdatomic.h') + conf.CHECK_HEADERS('libgen.h') + +- if conf.CHECK_CFLAGS('-Wno-format-truncation'): ++ if conf.CHECK_CFLAGS(['-Wno-format-truncation'] + conf.env.WERROR_CFLAGS): + conf.define('HAVE_WNO_FORMAT_TRUNCATION', '1') + + if conf.CHECK_CFLAGS('-Wno-unused-function'): diff --git a/net/samba424/files/patch-lib_replace_xattr.c b/net/samba424/files/patch-lib_replace_xattr.c new file mode 100644 index 000000000000..8e11ab29cf39 --- /dev/null +++ b/net/samba424/files/patch-lib_replace_xattr.c @@ -0,0 +1,14 @@ +--- lib/replace/xattr.c.orig 2026-01-23 10:53:40 UTC ++++ lib/replace/xattr.c +@@ -279,9 +279,9 @@ static ssize_t bsd_attr_list (int type, extattr_arg ar + errno = ERANGE; + return -1; + } +- strncpy(list, extattr[t].name, extattr[t].len + 1); ++ memmove(list, extattr[t].name, extattr[t].len + 1); + list += extattr[t].len; +- strncpy(list, buf + i + 1, len); ++ memmove(list, buf + i + 1, len); + list[len] = '\0'; + list += len + 1; + } diff --git a/net/samba424/files/patch-lib_talloc_talloc.c b/net/samba424/files/patch-lib_talloc_talloc.c new file mode 100644 index 000000000000..9ab26d7cfa56 --- /dev/null +++ b/net/samba424/files/patch-lib_talloc_talloc.c @@ -0,0 +1,20 @@ +--- lib/talloc/talloc.c.orig 2026-01-20 15:42:54 UTC ++++ lib/talloc/talloc.c +@@ -397,6 +397,9 @@ void talloc_lib_init(void) + void talloc_lib_init(void) + { + uint32_t random_value; ++#if defined(HAVE_ARC4RANDOM) ++ random_value = arc4random(); ++#else + #if defined(HAVE_GETAUXVAL) && defined(AT_RANDOM) + uint8_t *p; + /* +@@ -430,6 +433,7 @@ void talloc_lib_init(void) + */ + random_value = ((uintptr_t)talloc_lib_init & 0xFFFFFFFF); + } ++#endif /* HAVE_ARC4RANDOM */ + talloc_magic = random_value & ~TALLOC_FLAG_MASK; + } + #else diff --git a/net/samba424/files/patch-lib_talloc_wscript b/net/samba424/files/patch-lib_talloc_wscript new file mode 100644 index 000000000000..da5d984c220e --- /dev/null +++ b/net/samba424/files/patch-lib_talloc_wscript @@ -0,0 +1,10 @@ +--- lib/talloc/wscript.orig 2026-01-20 15:42:54 UTC ++++ lib/talloc/wscript +@@ -52,6 +52,7 @@ def configure(conf): + + conf.CHECK_HEADERS('sys/auxv.h') + conf.CHECK_FUNCS('getauxval') ++ conf.CHECK_FUNCS('arc4random') + + conf.SAMBA_CONFIG_H() + diff --git a/net/samba424/files/patch-lib_tevent_echo__server.c b/net/samba424/files/patch-lib_tevent_echo__server.c new file mode 100644 index 000000000000..094a059acc3f --- /dev/null +++ b/net/samba424/files/patch-lib_tevent_echo__server.c @@ -0,0 +1,11 @@ +--- lib/tevent/echo_server.c.orig 2026-01-20 15:42:54 UTC ++++ lib/tevent/echo_server.c +@@ -633,7 +633,7 @@ int main(int argc, const char **argv) + exit(1); + } + +- ret = listen(listen_sock, 5); ++ ret = listen(listen_sock, DEFAULT_LISTEN_BACKLOG); + if (ret == -1) { + perror("listen() failed"); + exit(1); diff --git a/net/samba424/files/patch-lib_util_time.h b/net/samba424/files/patch-lib_util_time.h new file mode 100644 index 000000000000..48911cfd134d --- /dev/null +++ b/net/samba424/files/patch-lib_util_time.h @@ -0,0 +1,11 @@ +--- lib/util/time.h.orig 2025-12-12 13:34:55 UTC ++++ lib/util/time.h +@@ -24,6 +24,8 @@ + #ifndef _SAMBA_TIME_H_ + #define _SAMBA_TIME_H_ + ++#include ++ + #include + #include + #include diff --git a/net/samba424/files/patch-lib_util_util__crypt.c b/net/samba424/files/patch-lib_util_util__crypt.c new file mode 100644 index 000000000000..3dd00a72c415 --- /dev/null +++ b/net/samba424/files/patch-lib_util_util__crypt.c @@ -0,0 +1,12 @@ +Index: lib/util/util_crypt.c +--- lib/util/util_crypt.c.orig 2026-01-20 15:42:54 UTC ++++ lib/util/util_crypt.c +@@ -4,6 +4,8 @@ + #include + #ifdef HAVE_CRYPT_H + #include ++#else ++#include + #endif + #include "util_crypt.h" + diff --git a/net/samba424/files/patch-libcli_http_http.c b/net/samba424/files/patch-libcli_http_http.c new file mode 100644 index 000000000000..0ffd8755f43c --- /dev/null +++ b/net/samba424/files/patch-libcli_http_http.c @@ -0,0 +1,68 @@ +--- libcli/http/http.c.orig 2026-01-20 15:42:54 UTC ++++ libcli/http/http.c +@@ -177,7 +177,19 @@ static enum http_read_status http_parse_headers(struct + return HTTP_ALL_DATA_READ; + } + ++#ifdef FREEBSD ++ int s0, s1, s2, s3; s0 = s1 = s2 = s3 = 0; ++ n = sscanf(line, "%n%*[^:]%n: %n%*[^\r\n]%n\r\n", &s0, &s1, &s2, &s3); ++ ++ if(n >= 0) { ++ key = calloc(sizeof(char), s1-s0+1); ++ value = calloc(sizeof(char), s3-s2+1); ++ ++ n = sscanf(line, "%[^:]: %[^\r\n]\r\n", key, value); ++ } ++#else + n = sscanf(line, "%m[^:]: %m[^\r\n]\r\n", &key, &value); ++#endif + if (n != 2) { + DEBUG(0, ("%s: Error parsing header '%s'\n", __func__, line)); + status = HTTP_DATA_CORRUPTED; +@@ -338,7 +350,7 @@ static bool http_parse_response_line(struct http_read_ + static bool http_parse_response_line(struct http_read_response_state *state) + { + bool status = true; +- char *protocol; ++ char *protocol = NULL; + char *msg = NULL; + char major; + char minor; +@@ -358,18 +370,32 @@ static bool http_parse_response_line(struct http_read_ + return false; + } + ++#ifdef FREEBSD ++ int s0, s1, s2, s3; s0 = s1 = s2 = s3 = 0; ++ n = sscanf(line, "%n%*[^/]%n/%c.%c %d %n%*[^\r\n]%n\r\n", ++ &s0, &s1, &major, &minor, &code, &s2, &s3); ++ ++ if(n == 3) { ++ protocol = calloc(sizeof(char), s1-s0+1); ++ msg = calloc(sizeof(char), s3-s2+1); ++ ++ n = sscanf(line, "%[^/]/%c.%c %d %[^\r\n]\r\n", ++ protocol, &major, &minor, &code, msg); ++ } ++#else + n = sscanf(line, "%m[^/]/%c.%c %d %m[^\r\n]\r\n", + &protocol, &major, &minor, &code, &msg); ++#endif + +- DEBUG(11, ("%s: Header parsed(%i): protocol->%s, major->%c, minor->%c, " +- "code->%d, message->%s\n", __func__, n, protocol, major, minor, +- code, msg)); +- + if (n != 5) { + DEBUG(0, ("%s: Error parsing header\n", __func__)); + status = false; + goto error; + } ++ ++ DEBUG(11, ("%s: Header parsed(%i): protocol->%s, major->%c, minor->%c, " ++ "code->%d, message->%s\n", __func__, n, protocol, major, minor, ++ code, msg)); + + if (major != '1') { + DEBUG(0, ("%s: Bad HTTP major number '%c'\n", __func__, major)); diff --git a/net/samba424/files/patch-nsswitch_wscript__build b/net/samba424/files/patch-nsswitch_wscript__build new file mode 100644 index 000000000000..98b340284ab5 --- /dev/null +++ b/net/samba424/files/patch-nsswitch_wscript__build @@ -0,0 +1,17 @@ +--- nsswitch/wscript_build.orig 2026-01-20 15:42:54 UTC ++++ nsswitch/wscript_build +@@ -57,12 +57,14 @@ elif (host_os.rfind('freebsd') > -1): + source='winbind_nss_linux.c winbind_nss_freebsd.c', + deps='wbclient', + realname='nss_winbind.so.1', ++ install_path='${PAMMODULESDIR}', + vnum='1') + + bld.SAMBA3_PLUGIN('nss_wins', + source='wins.c wins_freebsd.c', + deps='''wbclient''', + realname='nss_wins.so.1', ++ install_path='${PAMMODULESDIR}', + vnum='1') + + elif (host_os.rfind('netbsd') > -1): diff --git a/net/samba424/files/patch-python_samba_join.py b/net/samba424/files/patch-python_samba_join.py new file mode 100644 index 000000000000..03e0f3ff3b0b --- /dev/null +++ b/net/samba424/files/patch-python_samba_join.py @@ -0,0 +1,11 @@ +--- python/samba/join.py.orig 2026-01-20 15:42:54 UTC ++++ python/samba/join.py +@@ -919,7 +919,7 @@ class DCJoinContext(object): + secrets_ldb = Ldb(ctx.paths.secrets, session_info=system_session(), lp=ctx.lp) + + provision_fill(ctx.local_samdb, secrets_ldb, +- ctx.logger, ctx.names, ctx.paths, ++ ctx.logger, ctx.names, ctx.targetdir, ctx.paths, + dom_for_fun_level=ctx.behavior_version, + samdb_fill=FILL_SUBDOMAIN, + machinepass=ctx.acct_pass, serverrole="active directory domain controller", diff --git a/net/samba424/files/patch-python_samba_provision_____init____.py b/net/samba424/files/patch-python_samba_provision_____init____.py new file mode 100644 index 000000000000..7eeec6fdfd45 --- /dev/null +++ b/net/samba424/files/patch-python_samba_provision_____init____.py @@ -0,0 +1,71 @@ +--- python/samba/provision/__init__.py.orig 2026-01-20 15:42:54 UTC ++++ python/samba/provision/__init__.py +@@ -1676,19 +1676,25 @@ def setsysvolacl(samdb, sysvol, uid, gid, domainsid, d + s3conf = s3param.get_context() + s3conf.load(lp.configfile) + +- file = tempfile.NamedTemporaryFile(dir=os.path.abspath(sysvol)) ++ sysvol_dir = os.path.abspath(sysvol) ++ ++ set_simple_acl = smbd.set_simple_acl ++ if smbd.has_nfsv4_acls(sysvol_dir): ++ set_simple_acl = smbd.set_simple_nfsv4_acl ++ ++ file = tempfile.NamedTemporaryFile(dir=sysvol_dir) + try: + try: +- smbd.set_simple_acl(file.name, 0o755, system_session_unix(), gid) ++ set_simple_acl(file.name, 0o755, system_session_unix(), gid) + except OSError: +- if not smbd.have_posix_acls(): ++ if not smbd.have_posix_acls() and not smbd.have_nfsv4_acls(): + # This clue is only strictly correct for RPM and + # Debian-like Linux systems, but hopefully other users + # will get enough clue from it. +- raise ProvisioningError("Samba was compiled without the posix ACL support that s3fs requires. " ++ raise ProvisioningError("Samba was compiled without the ACL support that s3fs requires. " + "Try installing libacl1-dev or libacl-devel, then re-run configure and make.") + +- raise ProvisioningError("Your filesystem or build does not support posix ACLs, which s3fs requires. " ++ raise ProvisioningError("Your filesystem or build does not support ACLs, which s3fs requires. " + "Try the mounting the filesystem with the 'acl' option.") + try: + smbd.chown(file.name, uid, gid, system_session_unix()) +@@ -1911,7 +1917,7 @@ def interface_ips_v6(lp): + return ret + + +-def provision_fill(samdb, secrets_ldb, logger, names, paths, ++def provision_fill(samdb, secrets_ldb, logger, names, paths, targetdir, + schema=None, + samdb_fill=FILL_FULL, + hostip=None, hostip6=None, +@@ -1970,6 +1976,9 @@ def provision_fill(samdb, secrets_ldb, logger, names, + samdb.transaction_commit() + + if serverrole == "active directory domain controller": ++ if targetdir and smbd.have_nfsv4_acls() and smbd.has_nfsv4_acls(targetdir): ++ smbd.set_nfsv4_defaults() ++ + # Continue setting up sysvol for GPO. This appears to require being + # outside a transaction. + if not skip_sysvolacl: +@@ -2346,6 +2355,9 @@ def provision(logger, session_info, smbconf=None, + if not os.path.isdir(paths.netlogon): + os.makedirs(paths.netlogon, 0o755) + ++ if smbd.have_nfsv4_acls() and smbd.has_nfsv4_acls(paths.sysvol): ++ smbd.set_nfsv4_defaults() ++ + if adminpass is None: + adminpass = samba.generate_random_password(12, 32) + adminpass_generated = True +@@ -2355,7 +2367,7 @@ def provision(logger, session_info, smbconf=None, + adminpass_generated = False + + if samdb_fill == FILL_FULL: +- provision_fill(samdb, secrets_ldb, logger, names, paths, ++ provision_fill(samdb, secrets_ldb, logger, names, paths, targetdir, + schema=schema, samdb_fill=samdb_fill, + hostip=hostip, hostip6=hostip6, + next_rid=next_rid, dc_rid=dc_rid, adminpass=adminpass, diff --git a/net/samba424/files/patch-python_samba_provision_sambadns.py b/net/samba424/files/patch-python_samba_provision_sambadns.py new file mode 100644 index 000000000000..07bdefc84152 --- /dev/null +++ b/net/samba424/files/patch-python_samba_provision_sambadns.py @@ -0,0 +1,90 @@ +--- python/samba/provision/sambadns.py.orig 2026-01-20 15:42:54 UTC ++++ python/samba/provision/sambadns.py +@@ -21,6 +21,7 @@ import os + """DNS-related provisioning""" + + import os ++import re + import uuid + import shutil + import time +@@ -1008,53 +1009,37 @@ def create_named_conf(paths, realm, dnsdomain, dns_bac + stderr=subprocess.STDOUT, + cwd='.').communicate()[0] + bind_info = get_string(bind_info) +- bind9_8 = '#' +- bind9_9 = '#' +- bind9_10 = '#' +- bind9_11 = '#' +- bind9_12 = '#' +- bind9_14 = '#' +- bind9_16 = '#' +- bind9_18 = '#' +- if bind_info.upper().find('BIND 9.8') != -1: +- bind9_8 = '' +- elif bind_info.upper().find('BIND 9.9') != -1: +- bind9_9 = '' +- elif bind_info.upper().find('BIND 9.10') != -1: +- bind9_10 = '' +- elif bind_info.upper().find('BIND 9.11') != -1: +- bind9_11 = '' +- elif bind_info.upper().find('BIND 9.12') != -1: +- bind9_12 = '' +- elif bind_info.upper().find('BIND 9.14') != -1: +- bind9_14 = '' +- elif bind_info.upper().find('BIND 9.16') != -1: +- bind9_16 = '' +- elif bind_info.upper().find('BIND 9.18') != -1 \ +- or bind_info.upper().find('BIND 9.20') != -1: +- bind9_18 = '' +- elif bind_info.upper().find('BIND 9.7') != -1: +- raise ProvisioningError("DLZ option incompatible with BIND 9.7.") +- elif bind_info.upper().find('BIND_9.13') != -1: +- raise ProvisioningError("Only stable/esv releases of BIND are supported.") +- elif bind_info.upper().find('BIND_9.15') != -1: +- raise ProvisioningError("Only stable/esv releases of BIND are supported.") +- elif bind_info.upper().find('BIND_9.17') != -1: +- raise ProvisioningError("Only stable/esv releases of BIND are supported.") ++ bind9_release = re.search('BIND (9)\.(\d+)\.', bind_info, re.I) ++ if bind9_release: ++ bind9_disabled = '' ++ bind9_version = bind9_release.group(0) + "x" ++ bind9_version_major = int(bind9_release.group(1)) ++ bind9_version_minor = int(bind9_release.group(2)) ++ if bind9_version_minor == 7: ++ raise ProvisioningError("DLZ option incompatible with BIND 9.7.") ++ elif bind9_version_minor == 8: ++ bind9_dlz_version = "9" ++ elif bind9_version_minor in [13, 15, 17]: ++ raise ProvisioningError("Only stable/esv releases of BIND are supported.") ++ else: ++ bind9_dlz_version = "%d_%d" % (bind9_version_major, bind9_version_minor) + else: ++ bind9_disabled = '# ' ++ bind9_version = "BIND z.y.x" ++ bind9_dlz_version = "z_y" + logger.warning("BIND version unknown, please modify %s manually." % paths.namedconf) ++ ++ bind9_dlz = ( ++ ' # For %s\n' ++ ' %sdatabase "dlopen %s/bind9/dlz_bind%s.so";' ++ ) % ( ++ bind9_version, bind9_disabled, samba.param.modules_dir(), bind9_dlz_version ++ ) + setup_file(setup_path("named.conf.dlz"), paths.namedconf, { + "NAMED_CONF": paths.namedconf, + "MODULESDIR": samba.param.modules_dir(), +- "BIND9_8": bind9_8, +- "BIND9_9": bind9_9, +- "BIND9_10": bind9_10, +- "BIND9_11": bind9_11, +- "BIND9_12": bind9_12, +- "BIND9_14": bind9_14, +- "BIND9_16": bind9_16, +- "BIND9_18": bind9_18 +- }) ++ "BIND9_DLZ": bind9_dlz ++ }) + + + def create_named_txt(path, realm, dnsdomain, dnsname, binddns_dir, diff --git a/net/samba424/files/patch-python_samba_provision_sambadns_syntaxwarning b/net/samba424/files/patch-python_samba_provision_sambadns_syntaxwarning new file mode 100644 index 000000000000..2f5c52bc5a39 --- /dev/null +++ b/net/samba424/files/patch-python_samba_provision_sambadns_syntaxwarning @@ -0,0 +1,11 @@ +--- python/samba/provision/sambadns.py.orig ++++ python/samba/provision/sambadns.py +@@ -1009,7 +1009,7 @@ def create_named_conf(paths, realm, dnsdomain, dns_bac + stderr=subprocess.STDOUT, + cwd='.').communicate()[0] + bind_info = get_string(bind_info) +- bind9_release = re.search('BIND (9)\.(\d+)\.', bind_info, re.I) ++ bind9_release = re.search(r'BIND (9)\.(\d+)\.', bind_info, re.I) + if bind9_release: + bind9_disabled = '' + bind9_version = bind9_release.group(0) + "x" diff --git a/net/samba424/files/patch-source3_client_dnsbrowse.c b/net/samba424/files/patch-source3_client_dnsbrowse.c new file mode 100644 index 000000000000..f602f1e5aeaf --- /dev/null +++ b/net/samba424/files/patch-source3_client_dnsbrowse.c @@ -0,0 +1,66 @@ +--- source3/client/dnsbrowse.c.orig 2026-01-20 15:42:54 UTC ++++ source3/client/dnsbrowse.c +@@ -39,6 +39,7 @@ struct mdns_browse_state + struct mdns_browse_state + { + struct mdns_smbsrv_result *listhead; /* Browse result list head */ ++ TALLOC_CTX * ctx; + int browseDone; + + }; +@@ -64,7 +65,7 @@ static void do_smb_resolve(struct mdns_smbsrv_result * + struct timeval tv; + DNSServiceErrorType err; + +- TALLOC_CTX * ctx = talloc_tos(); ++ TALLOC_CTX * ctx = talloc_new(NULL); + + err = DNSServiceResolve(&mdns_conn_sdref, 0 /* flags */, + browsesrv->ifIndex, +@@ -91,7 +92,7 @@ static void do_smb_resolve(struct mdns_smbsrv_result * + } + } + +- TALLOC_FREE(fdset); ++ TALLOC_FREE(ctx); + DNSServiceRefDeallocate(mdns_conn_sdref); + } + +@@ -124,18 +125,19 @@ do_smb_browse_reply(DNSServiceRef sdRef, DNSServiceFla + return; + } + +- bresult = talloc_array(talloc_tos(), struct mdns_smbsrv_result, 1); ++ bresult = talloc_array(bstatep->ctx, struct mdns_smbsrv_result, 1); + if (bresult == NULL) { + return; + } + ++ bresult->nextResult = NULL; + if (bstatep->listhead != NULL) { + bresult->nextResult = bstatep->listhead; + } + +- bresult->serviceName = talloc_strdup(talloc_tos(), serviceName); +- bresult->regType = talloc_strdup(talloc_tos(), regtype); +- bresult->domain = talloc_strdup(talloc_tos(), replyDomain); ++ bresult->serviceName = talloc_strdup(bstatep->ctx, serviceName); ++ bresult->regType = talloc_strdup(bstatep->ctx, regtype); ++ bresult->domain = talloc_strdup(bstatep->ctx, replyDomain); + bresult->ifIndex = interfaceIndex; + bstatep->listhead = bresult; + } +@@ -151,9 +153,12 @@ int do_smb_browse(void) + DNSServiceRef mdns_conn_sdref = NULL; + DNSServiceErrorType err; + +- TALLOC_CTX * ctx = talloc_stackframe(); ++ TALLOC_CTX * ctx = talloc_new(NULL); + + ZERO_STRUCT(bstate); ++ ++ bstate.ctx = ctx; ++ bstate.listhead = NULL; + + err = DNSServiceBrowse(&mdns_conn_sdref, 0, 0, "_smb._tcp", "", + do_smb_browse_reply, &bstate); diff --git a/net/samba424/files/patch-source3_include_includes.h b/net/samba424/files/patch-source3_include_includes.h new file mode 100644 index 000000000000..2db12a82fc75 --- /dev/null +++ b/net/samba424/files/patch-source3_include_includes.h @@ -0,0 +1,13 @@ +--- source3/include/includes.h.orig 2026-01-20 15:42:54 UTC ++++ source3/include/includes.h +@@ -307,8 +307,9 @@ enum timestamp_set_resolution { + * the *bottom* of include files so as not to conflict. */ + #ifdef ENABLE_DMALLOC + # include ++#elif defined(ENABLE_JEMALLOC) && !defined(__FreeBSD__) ++# include + #endif +- + + #define MAX_SEC_CTX_DEPTH 8 /* Maximum number of security contexts */ + diff --git a/net/samba424/files/patch-source3_include_local.h b/net/samba424/files/patch-source3_include_local.h new file mode 100644 index 000000000000..9aa6ff0c6053 --- /dev/null +++ b/net/samba424/files/patch-source3_include_local.h @@ -0,0 +1,21 @@ +--- source3/include/local.h.orig 2026-01-20 15:42:54 UTC ++++ source3/include/local.h +@@ -131,7 +131,18 @@ + #define WINBIND_SERVER_MUTEX_WAIT_TIME (( ((NUM_CLI_AUTH_CONNECT_RETRIES) * ((CLI_AUTH_TIMEOUT)/1000)) + 5)*2) + + /* size of listen() backlog in smbd */ ++#if defined (FREEBSD) ++#define SMBD_LISTEN_BACKLOG -1 ++#else + #define SMBD_LISTEN_BACKLOG 50 ++#endif ++ ++/* size of listen() default backlog */ ++#if defined (FREEBSD) ++#define DEFAULT_LISTEN_BACKLOG -1 ++#else ++#define DEFAULT_LISTEN_BACKLOG 5 ++#endif + + /* Number of microseconds to wait before a sharing violation. */ + #define SHARING_VIOLATION_USEC_WAIT 950000 diff --git a/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__ctdb.c b/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__ctdb.c new file mode 100644 index 000000000000..f11dd4675ced --- /dev/null +++ b/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__ctdb.c @@ -0,0 +1,12 @@ +--- source3/lib/dbwrap/dbwrap_ctdb.c.orig 2026-01-20 15:42:54 UTC ++++ source3/lib/dbwrap/dbwrap_ctdb.c +@@ -38,6 +38,9 @@ + #include "lib/cluster_support.h" + #include "lib/util/tevent_ntstatus.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + struct db_ctdb_transaction_handle { + struct db_ctdb_ctx *ctx; + /* diff --git a/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__open.c b/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__open.c new file mode 100644 index 000000000000..8b46c33204a2 --- /dev/null +++ b/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__open.c @@ -0,0 +1,12 @@ +--- source3/lib/dbwrap/dbwrap_open.c.orig 2026-01-20 15:42:54 UTC ++++ source3/lib/dbwrap/dbwrap_open.c +@@ -31,6 +31,9 @@ + #include "ctdbd_conn.h" + #include "global_contexts.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + bool db_is_local(const char *name) + { + const char *sockname = lp_ctdbd_socket(); diff --git a/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__watch.c b/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__watch.c new file mode 100644 index 000000000000..b0c2e49f11a1 --- /dev/null +++ b/net/samba424/files/patch-source3_lib_dbwrap_dbwrap__watch.c @@ -0,0 +1,12 @@ +--- source3/lib/dbwrap/dbwrap_watch.c.orig 2026-01-20 15:42:54 UTC ++++ source3/lib/dbwrap/dbwrap_watch.c +@@ -29,6 +29,9 @@ + #include "server_id_watch.h" + #include "lib/dbwrap/dbwrap_private.h" + ++#undef DBGC_CLASS ++#define DBGC_CLASS DBGC_LOCKING ++ + struct dbwrap_watcher { + /* + * Process watching this record diff --git a/net/samba424/files/patch-source3_lib_sysacls.c b/net/samba424/files/patch-source3_lib_sysacls.c new file mode 100644 index 000000000000..dda39ee2828e --- /dev/null +++ b/net/samba424/files/patch-source3_lib_sysacls.c @@ -0,0 +1,19 @@ +--- source3/lib/sysacls.c.orig 2025-02-06 10:31:54 UTC ++++ source3/lib/sysacls.c +@@ -38,6 +38,16 @@ + #include "modules/vfs_aixacl.h" + #endif + ++/* ++ * NFSv4 ACL's should be understood and a first class citizen. Work ++ * needs to be done in librpc/idl/smb_acl.idl for this to occur. ++ */ ++#if defined(HAVE_LIBSUNACL) && defined(FREEBSD) ++#if 0 ++#include "modules/nfs4_acls.h" ++#endif ++#endif ++ + #undef DBGC_CLASS + #define DBGC_CLASS DBGC_ACLS + diff --git a/net/samba424/files/patch-source3_lib_sysquotas__4B.c b/net/samba424/files/patch-source3_lib_sysquotas__4B.c new file mode 100644 index 000000000000..387bce488f14 --- /dev/null +++ b/net/samba424/files/patch-source3_lib_sysquotas__4B.c @@ -0,0 +1,18 @@ +--- source3/lib/sysquotas_4B.c.orig 2026-01-20 15:42:54 UTC ++++ source3/lib/sysquotas_4B.c +@@ -140,7 +140,14 @@ static int sys_quotactl_4B(const char * path, int cmd, + /* ENOTSUP means quota support is not compiled in. EINVAL + * means that quotas are not configured (commonly). + */ +- if (errno != ENOTSUP && errno != EINVAL) { ++ if (errno != ENOTSUP && errno != EINVAL ++/* ++ * FreeBSD 12 between r336017 and r342928 wrongfuly return ENOENT for the not enabled qoutas on ZFS. ++ */ ++#if defined(__FreeBSD__) && ((__FreeBSD_version >= 1102503 && __FreeBSD_version <= 1102506) || (__FreeBSD_version >= 1200072 && __FreeBSD_version <= 1200503) || (__FreeBSD_version >= 1300000 && __FreeBSD_version <= 1300009)) ++ && errno != ENOENT ++#endif ++ ) { + DEBUG(5, ("failed to %s quota for %s ID %u on %s: %s\n", + (cmd & QCMD(Q_GETQUOTA, 0)) ? "get" : "set", + (cmd & QCMD(0, GRPQUOTA)) ? "group" : "user", diff --git a/net/samba424/files/patch-source3_librpc_crypto_gse.c b/net/samba424/files/patch-source3_librpc_crypto_gse.c new file mode 100644 index 000000000000..98163ae20cfa --- /dev/null +++ b/net/samba424/files/patch-source3_librpc_crypto_gse.c @@ -0,0 +1,16 @@ +--- source3/librpc/crypto/gse.c.orig 2026-01-20 15:42:54 UTC ++++ source3/librpc/crypto/gse.c +@@ -772,11 +772,12 @@ static NTSTATUS gse_get_server_auth_token(TALLOC_CTX * + struct gse_context *gse_ctx = + talloc_get_type_abort(gensec_security->private_data, + struct gse_context); +- OM_uint32 gss_maj, gss_min; ++ OM_uint32 gss_min; + gss_buffer_desc in_data; + gss_buffer_desc out_data; + DATA_BLOB blob = data_blob_null; + NTSTATUS status; ++ OM_uint32 gss_maj = -1; + OM_uint32 time_rec = 0; + struct timeval tv; + diff --git a/net/samba424/files/patch-source3_libsmb_unexpected.c b/net/samba424/files/patch-source3_libsmb_unexpected.c new file mode 100644 index 000000000000..df1d9a2ec350 --- /dev/null +++ b/net/samba424/files/patch-source3_libsmb_unexpected.c @@ -0,0 +1,11 @@ +--- source3/libsmb/unexpected.c.orig 2026-01-20 15:42:54 UTC ++++ source3/libsmb/unexpected.c +@@ -90,7 +90,7 @@ NTSTATUS nb_packet_server_create(TALLOC_CTX *mem_ctx, + status = map_nt_error_from_unix(errno); + goto fail; + } +- rc = listen(result->listen_sock, 5); ++ rc = listen(result->listen_sock, DEFAULT_LISTEN_BACKLOG); + if (rc < 0) { + status = map_nt_error_from_unix(errno); + goto fail; diff --git a/net/samba424/files/patch-source3_modules_vfs__freebsd.c b/net/samba424/files/patch-source3_modules_vfs__freebsd.c new file mode 100644 index 000000000000..9d3e41041117 --- /dev/null +++ b/net/samba424/files/patch-source3_modules_vfs__freebsd.c @@ -0,0 +1,702 @@ +--- source3/modules/vfs_freebsd.c.orig 2025-07-11 10:55:17 UTC ++++ source3/modules/vfs_freebsd.c +@@ -0,0 +1,699 @@ ++/* ++ * This module implements VFS calls specific to FreeBSD ++ * ++ * Copyright (C) Timur I. Bakeyev, 2018 ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, see . ++ */ ++ ++#include "includes.h" ++ ++#include "lib/util/tevent_unix.h" ++#include "lib/util/tevent_ntstatus.h" ++#include "system/filesys.h" ++#include "smbd/smbd.h" ++ ++#include ++ ++static int vfs_freebsd_debug_level = DBGC_VFS; ++ ++#undef DBGC_CLASS ++#define DBGC_CLASS vfs_freebsd_debug_level ++ ++#ifndef EXTATTR_MAXNAMELEN ++#define EXTATTR_MAXNAMELEN UINT8_MAX ++#endif ++ ++#define EXTATTR_NAMESPACE(NS) EXTATTR_NAMESPACE_ ## NS, \ ++ EXTATTR_NAMESPACE_ ## NS ## _STRING ".", \ ++ .data.len = (sizeof(EXTATTR_NAMESPACE_ ## NS ## _STRING ".") - 1) ++ ++#define EXTATTR_EMPTY 0x00 ++#define EXTATTR_USER 0x01 ++#define EXTATTR_SYSTEM 0x02 ++#define EXTATTR_SECURITY 0x03 ++#define EXTATTR_TRUSTED 0x04 ++ ++enum extattr_mode { ++ FREEBSD_EXTATTR_SECURE, ++ FREEBSD_EXTATTR_COMPAT, ++ FREEBSD_EXTATTR_LEGACY ++}; ++ ++struct freebsd_handle_data { ++ enum extattr_mode extattr_mode; ++}; ++ ++typedef struct { ++ int namespace; ++ char name[EXTATTR_MAXNAMELEN+1]; ++ union { ++ uint16_t len; ++ uint16_t flags; ++ } data; ++} extattr_attr; ++ ++static const struct enum_list extattr_mode_param[] = { ++ { FREEBSD_EXTATTR_SECURE, "secure" }, /* */ ++ { FREEBSD_EXTATTR_COMPAT, "compat" }, /* */ ++ { FREEBSD_EXTATTR_LEGACY, "legacy" }, /* */ ++ { -1, NULL } ++}; ++ ++/* XXX: This order doesn't match namespace ids order! */ ++static extattr_attr extattr[] = { ++ { EXTATTR_NAMESPACE(EMPTY) }, ++ { EXTATTR_NAMESPACE(SYSTEM) }, ++ { EXTATTR_NAMESPACE(USER) }, ++}; ++ ++ ++static bool freebsd_in_jail(void) { ++ int val = 0; ++ size_t val_len = sizeof(val); ++ ++ if((sysctlbyname("security.jail.jailed", &val, &val_len, NULL, 0) != -1) && val == 1) { ++ return true; ++ } ++ return false; ++} ++ ++ ++static uint16_t freebsd_map_attrname(const char *name) ++{ ++ if(name == NULL || name[0] == '\0') { ++ return EXTATTR_EMPTY; ++ } ++ ++ switch(name[0]) { ++ case 'u': ++ if(strncmp(name, "user.", 5) == 0) ++ return EXTATTR_USER; ++ break; ++ case 't': ++ if(strncmp(name, "trusted.", 8) == 0) ++ return EXTATTR_TRUSTED; ++ break; ++ case 's': ++ /* name[1] could be any character, including '\0' */ ++ switch(name[1]) { ++ case 'e': ++ if(strncmp(name, "security.", 9) == 0) ++ return EXTATTR_SECURITY; ++ break; ++ case 'y': ++ if(strncmp(name, "system.", 7) == 0) ++ return EXTATTR_SYSTEM; ++ break; ++ } ++ break; ++ } ++ return EXTATTR_USER; ++} ++ ++ ++/* security, system, trusted or user */ ++static extattr_attr* freebsd_map_xattr(enum extattr_mode extattr_mode, const char *name, extattr_attr *attr) ++{ ++ int attrnamespace = EXTATTR_NAMESPACE_EMPTY; ++ const char *p, *attrname = name; ++ ++ if(name == NULL || name[0] == '\0') { ++ return NULL; ++ } ++ ++ if(attr == NULL) { ++ return NULL; ++ } ++ ++ uint16_t flags = freebsd_map_attrname(name); ++ ++ switch(flags) { ++ case EXTATTR_SECURITY: ++ case EXTATTR_TRUSTED: ++ case EXTATTR_SYSTEM: ++ attrnamespace = (extattr_mode == FREEBSD_EXTATTR_SECURE) ? ++ EXTATTR_NAMESPACE_SYSTEM : ++ EXTATTR_NAMESPACE_USER; ++ break; ++ case EXTATTR_USER: ++ attrnamespace = EXTATTR_NAMESPACE_USER; ++ break; ++ default: ++ /* Default to "user" namespace if nothing else was specified */ ++ attrnamespace = EXTATTR_NAMESPACE_USER; ++ flags = EXTATTR_USER; ++ break; ++ } ++ ++ if (extattr_mode == FREEBSD_EXTATTR_LEGACY) { ++ switch(flags) { ++ case EXTATTR_SECURITY: ++ attrname = name + 9; ++ break; ++ case EXTATTR_TRUSTED: ++ attrname = name + 8; ++ break; ++ case EXTATTR_SYSTEM: ++ attrname = name + 7; ++ break; ++ case EXTATTR_USER: ++ attrname = name + 5; ++ break; ++ default: ++ attrname = ((p=strchr(name, '.')) != NULL) ? p + 1 : name; ++ break; ++ } ++ } ++ ++ attr->namespace = attrnamespace; ++ attr->data.flags = flags; ++ strlcpy(attr->name, attrname, EXTATTR_MAXNAMELEN + 1); ++ ++ return attr; ++} ++ ++ ++static ssize_t extattr_size(struct files_struct *fsp, extattr_attr *attr) ++{ ++ ssize_t result; ++ ++ SMB_ASSERT(!fsp_is_alternate_stream(fsp)); ++ ++ int fd = fsp_get_pathref_fd(fsp); ++ ++ if (fsp->fsp_flags.is_pathref) { ++ const char *path = fsp->fsp_name->base_name; ++ if (fsp->fsp_flags.have_proc_fds) { ++ char buf[PATH_MAX]; ++ path = sys_proc_fd_path(fd, &buf); ++ if (path == NULL) { ++ return -1; ++ } ++ } ++ /* ++ * This is no longer a handle based call. ++ */ ++ return extattr_get_file(path, attr->namespace, attr->name, NULL, 0); ++ } ++ else { ++ return extattr_get_fd(fd, attr->namespace, attr->name, NULL, 0); ++ } ++} ++ ++/* ++ * The list of names is returned as an unordered array of NULL-terminated ++ * character strings (attribute names are separated by NULL characters), ++ * like this: ++ * user.name1\0system.name1\0user.name2\0 ++ * ++ * Filesystems like ext2, ext3 and XFS which implement POSIX ACLs using ++ * extended attributes, might return a list like this: ++ * system.posix_acl_access\0system.posix_acl_default\0 ++ */ ++/* ++ * The extattr_list_file() returns a list of attributes present in the ++ * requested namespace. Each list entry consists of a single byte containing ++ * the length of the attribute name, followed by the attribute name. The ++ * attribute name is not terminated by ASCII 0 (nul). ++*/ ++static ssize_t freebsd_extattr_list(struct files_struct *fsp, enum extattr_mode extattr_mode, char *list, size_t size) ++{ ++ ssize_t list_size, total_size = 0; ++ char *p, *q, *list_end; ++ int len; ++ /* ++ Ignore all but user namespace when we are not root or in jail ++ See: https://bugzilla.samba.org/show_bug.cgi?id=10247 ++ */ ++ bool as_root = (geteuid() == 0); ++ ++ int ns = (extattr_mode == FREEBSD_EXTATTR_SECURE && as_root) ? 1 : 2; ++ ++ int fd = fsp_get_pathref_fd(fsp); ++ ++ /* Iterate through extattr(2) namespaces */ ++ for(; ns < ARRAY_SIZE(extattr); ns++) { ++ list_size = -1; ++ ++ if (fsp->fsp_flags.is_pathref) { ++ const char *path = fsp->fsp_name->base_name; ++ if (fsp->fsp_flags.have_proc_fds) { ++ char buf[PATH_MAX]; ++ path = sys_proc_fd_path(fd, &buf); ++ if (path == NULL) { ++ return -1; ++ } ++ } ++ /* ++ * This is no longer a handle based call. ++ */ ++ list_size = extattr_list_file(path, extattr[ns].namespace, list, size); ++ } ++ else { ++ list_size = extattr_list_fd(fd, extattr[ns].namespace, list, size); ++ } ++ /* Some error happend. Errno should be set by the previous call */ ++ if(list_size < 0) ++ return -1; ++ /* No attributes in this namespace */ ++ if(list_size == 0) ++ continue; ++ /* ++ Call with an empty buffer may be used to calculate ++ necessary buffer size. ++ */ ++ if(list == NULL) { ++ /* ++ XXX: Unfortunately, we can't say, how many attributes were ++ returned, so here is the potential problem with the emulation. ++ */ ++ if(extattr_mode == FREEBSD_EXTATTR_LEGACY) { ++ /* ++ Take the worse case of one char attribute names - ++ two bytes per name plus one more for sanity. ++ */ ++ total_size += list_size + (list_size/2 + 1)*extattr[ns].data.len; ++ } ++ else { ++ total_size += list_size; ++ } ++ continue; ++ } ++ ++ if(extattr_mode == FREEBSD_EXTATTR_LEGACY) { ++ /* Count necessary offset to fit namespace prefixes */ ++ int extra_len = 0; ++ uint16_t flags; ++ list_end = list + list_size; ++ for(list_size = 0, p = q = list; p < list_end; p += len) { ++ len = p[0] + 1; ++ (void)strlcpy(q, p + 1, len); ++ flags = freebsd_map_attrname(q); ++ /* Skip secure attributes for non-root user */ ++ if(extattr_mode != FREEBSD_EXTATTR_SECURE && !as_root && flags > EXTATTR_USER) { ++ continue; ++ } ++ if(flags <= EXTATTR_USER) { ++ /* Don't count trailing '\0' */ ++ extra_len += extattr[ns].data.len; ++ } ++ list_size += len; ++ q += len; ++ } ++ total_size += list_size + extra_len; ++ /* Buffer is too small to fit the results */ ++ if(total_size > size) { ++ errno = ERANGE; ++ return -1; ++ } ++ /* Shift results backwards, so we can prepend prefixes */ ++ list_end = list + extra_len; ++ p = (char*)memmove(list_end, list, list_size); ++ /* ++ We enter the loop with `p` pointing to the shifted list and ++ `extra_len` having the total margin between `list` and `p` ++ */ ++ for(list_end += list_size; p < list_end; p += len) { ++ len = strlen(p) + 1; ++ flags = freebsd_map_attrname(p); ++ if(flags <= EXTATTR_USER) { ++ /* Add namespace prefix */ ++ (void)strncpy(list, extattr[ns].name, extattr[ns].data.len); ++ list += extattr[ns].data.len; ++ } ++ /* Append attribute name */ ++ (void)strlcpy(list, p, len); ++ list += len; ++ } ++ } ++ else { ++ /* Convert UCSD strings into nul-terminated strings */ ++ for(list_end = list + list_size; list < list_end; list += len) { ++ len = list[0] + 1; ++ (void)strlcpy(list, list + 1, len); ++ } ++ total_size += list_size; ++ } ++ } ++ return total_size; ++} ++ ++/* ++static ssize_t freebsd_fgetxattr_size(struct vfs_handle_struct *handle, ++ struct files_struct *fsp, ++ const char *name) ++{ ++ struct freebsd_handle_data *data; ++ extattr_attr attr; ++ ++ SMB_ASSERT(!fsp_is_alternate_stream(fsp)); ++ ++ SMB_VFS_HANDLE_GET_DATA(handle, data, ++ struct freebsd_handle_data, ++ return -1); ++ ++ if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { ++ errno = ENOATTR; ++ return -1; ++ } ++ ++ return extattr_size(fsp, &attr); ++} ++*/ ++ ++/* VFS entries */ ++static ssize_t freebsd_fgetxattr(struct vfs_handle_struct *handle, ++ struct files_struct *fsp, ++ const char *name, ++ void *value, ++ size_t size) ++{ ++#if defined(HAVE_XATTR_EXTATTR) ++ struct freebsd_handle_data *data; ++ extattr_attr attr; ++ ssize_t res; ++ int fd; ++ ++ SMB_ASSERT(!fsp_is_alternate_stream(fsp)); ++ ++ SMB_VFS_HANDLE_GET_DATA(handle, data, ++ struct freebsd_handle_data, ++ return -1); ++ ++ if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ /* Filter out 'secure' entries */ ++ if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { ++ errno = ENOATTR; ++ return -1; ++ } ++ ++ /* ++ * The BSD implementation has a nasty habit of silently truncating ++ * the returned value to the size of the buffer, so we have to check ++ * that the buffer is large enough to fit the returned value. ++ */ ++ if((res=extattr_size(fsp, &attr)) < 0) { ++ return -1; ++ } ++ ++ if (size == 0) { ++ return res; ++ } ++ else if (res > size) { ++ errno = ERANGE; ++ return -1; ++ } ++ ++ fd = fsp_get_pathref_fd(fsp); ++ ++ if (fsp->fsp_flags.is_pathref) { ++ const char *path = fsp->fsp_name->base_name; ++ if (fsp->fsp_flags.have_proc_fds) { ++ char buf[PATH_MAX]; ++ path = sys_proc_fd_path(fd, &buf); ++ if (path == NULL) { ++ return -1; ++ } ++ } ++ /* ++ * This is no longer a handle based call. ++ */ ++ return extattr_get_file(path, attr.namespace, attr.name, value, size); ++ } ++ else { ++ return extattr_get_fd(fd, attr.namespace, attr.name, value, size); ++ } ++ return -1; ++#else ++ errno = ENOSYS; ++ return -1; ++#endif ++} ++ ++ ++static ssize_t freebsd_flistxattr(struct vfs_handle_struct *handle, ++ struct files_struct *fsp, ++ char *list, ++ size_t size) ++{ ++#if defined(HAVE_XATTR_EXTATTR) ++ struct freebsd_handle_data *data; ++ ++ SMB_ASSERT(!fsp_is_alternate_stream(fsp)); ++ ++ SMB_VFS_HANDLE_GET_DATA(handle, data, ++ struct freebsd_handle_data, ++ return -1); ++ ++ return freebsd_extattr_list(fsp, data->extattr_mode, list, size); ++#else ++ errno = ENOSYS; ++ return -1; ++#endif ++} ++ ++ ++static int freebsd_fremovexattr(struct vfs_handle_struct *handle, ++ struct files_struct *fsp, ++ const char *name) ++{ ++#if defined(HAVE_XATTR_EXTATTR) ++ struct freebsd_handle_data *data; ++ extattr_attr attr; ++ int fd; ++ ++ SMB_ASSERT(!fsp_is_alternate_stream(fsp)); ++ ++ SMB_VFS_HANDLE_GET_DATA(handle, data, ++ struct freebsd_handle_data, ++ return -1); ++ ++ if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ /* Filter out 'secure' entries */ ++ if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { ++ errno = ENOATTR; ++ return -1; ++ } ++ ++ fd = fsp_get_pathref_fd(fsp); ++ ++ if (fsp->fsp_flags.is_pathref) { ++ const char *path = fsp->fsp_name->base_name; ++ if (fsp->fsp_flags.have_proc_fds) { ++ char buf[PATH_MAX]; ++ path = sys_proc_fd_path(fd, &buf); ++ if (path == NULL) { ++ return -1; ++ } ++ } ++ /* ++ * This is no longer a handle based call. ++ */ ++ return extattr_delete_file(path, attr.namespace, attr.name); ++ } ++ else { ++ return extattr_delete_fd(fd, attr.namespace, attr.name); ++ } ++ return -1; ++#else ++ errno = ENOSYS; ++ return -1; ++#endif ++} ++ ++ ++static int freebsd_fsetxattr(struct vfs_handle_struct *handle, ++ struct files_struct *fsp, ++ const char *name, ++ const void *value, ++ size_t size, ++ int flags) ++{ ++#if defined(HAVE_XATTR_EXTATTR) ++ struct freebsd_handle_data *data; ++ extattr_attr attr; ++ ssize_t res; ++ int fd; ++ ++ SMB_ASSERT(!fsp_is_alternate_stream(fsp)); ++ ++ SMB_VFS_HANDLE_GET_DATA(handle, data, ++ struct freebsd_handle_data, ++ return -1); ++ ++ if(!freebsd_map_xattr(data->extattr_mode, name, &attr)) { ++ errno = EINVAL; ++ return -1; ++ } ++ ++ /* Filter out 'secure' entries */ ++ if(data->extattr_mode != FREEBSD_EXTATTR_SECURE && geteuid() != 0 && attr.data.flags > EXTATTR_USER) { ++ errno = ENOATTR; ++ return -1; ++ } ++ ++ if (flags) { ++ /* Check attribute existence */ ++ res = extattr_size(fsp, &attr); ++ if (res < 0) { ++ /* REPLACE attribute, that doesn't exist */ ++ if ((flags & XATTR_REPLACE) && errno == ENOATTR) { ++ errno = ENOATTR; ++ return -1; ++ } ++ /* Ignore other errors */ ++ } ++ else { ++ /* CREATE attribute, that already exists */ ++ if (flags & XATTR_CREATE) { ++ errno = EEXIST; ++ return -1; ++ } ++ } ++ } ++ ++ fd = fsp_get_pathref_fd(fsp); ++ ++ if (fsp->fsp_flags.is_pathref) { ++ const char *path = fsp->fsp_name->base_name; ++ if (fsp->fsp_flags.have_proc_fds) { ++ char buf[PATH_MAX]; ++ path = sys_proc_fd_path(fd, &buf); ++ if (path == NULL) { ++ return -1; ++ } ++ } ++ /* ++ * This is no longer a handle based call. ++ */ ++ res = extattr_set_file(path, attr.namespace, attr.name, value, size); ++ } ++ else { ++ res = extattr_set_fd(fd, attr.namespace, attr.name, value, size); ++ } ++ return (res >= 0) ? 0 : -1; ++#else ++ errno = ENOSYS; ++ return -1; ++#endif ++} ++ ++ ++static int freebsd_connect(struct vfs_handle_struct *handle, ++ const char *service, ++ const char *user) ++{ ++ struct freebsd_handle_data *data; ++ int enumval, saved_errno; ++ ++ int ret = SMB_VFS_NEXT_CONNECT(handle, service, user); ++ ++ if (ret < 0) { ++ return ret; ++ } ++ ++ data = talloc_zero(handle->conn, struct freebsd_handle_data); ++ if (!data) { ++ saved_errno = errno; ++ SMB_VFS_NEXT_DISCONNECT(handle); ++ DEBUG(0, ("talloc_zero() failed\n")); ++ errno = saved_errno; ++ return -1; ++ } ++ ++ enumval = lp_parm_enum(SNUM(handle->conn), "freebsd", ++ "extattr mode", extattr_mode_param, FREEBSD_EXTATTR_LEGACY); ++ if (enumval == -1) { ++ saved_errno = errno; ++ SMB_VFS_NEXT_DISCONNECT(handle); ++ DBG_DEBUG("value for freebsd: 'extattr mode' is unknown\n"); ++ errno = saved_errno; ++ return -1; ++ } ++ ++ if(freebsd_in_jail()) { ++ enumval = FREEBSD_EXTATTR_COMPAT; ++ DBG_WARNING("running in jail, enforcing 'compat' mode\n"); ++ } ++ ++ data->extattr_mode = (enum extattr_mode)enumval; ++ ++ SMB_VFS_HANDLE_SET_DATA(handle, data, NULL, ++ struct freebsd_handle_data, ++ return -1); ++ ++ DBG_DEBUG("connect to service[%s] with '%s' extattr mode\n", ++ service, extattr_mode_param[data->extattr_mode].name); ++ ++ return 0; ++} ++ ++ ++static void freebsd_disconnect(vfs_handle_struct *handle) ++{ ++ SMB_VFS_NEXT_DISCONNECT(handle); ++} ++ ++/* VFS operations structure */ ++ ++struct vfs_fn_pointers freebsd_fns = { ++ /* Disk operations */ ++ .connect_fn = freebsd_connect, ++ .disconnect_fn = freebsd_disconnect, ++ ++ /* EA operations. */ ++ .getxattrat_send_fn = vfs_not_implemented_getxattrat_send, ++ .getxattrat_recv_fn = vfs_not_implemented_getxattrat_recv, ++ .fgetxattr_fn = freebsd_fgetxattr, ++ .flistxattr_fn = freebsd_flistxattr, ++ .fremovexattr_fn = freebsd_fremovexattr, ++ .fsetxattr_fn = freebsd_fsetxattr, ++}; ++ ++static_decl_vfs; ++NTSTATUS vfs_freebsd_init(TALLOC_CTX *ctx) ++{ ++ NTSTATUS ret; ++ ++ ret = smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "freebsd", ++ &freebsd_fns); ++ ++ if (!NT_STATUS_IS_OK(ret)) { ++ return ret; ++ } ++ ++ vfs_freebsd_debug_level = debug_add_class("freebsd"); ++ if (vfs_freebsd_debug_level == -1) { ++ vfs_freebsd_debug_level = DBGC_VFS; ++ DEBUG(0, ("vfs_freebsd: Couldn't register custom debugging class!\n")); ++ } else { ++ DEBUG(10, ("vfs_freebsd: Debug class number of 'fileid': %d\n", vfs_freebsd_debug_level)); ++ } ++ ++ return ret; ++} diff --git a/net/samba424/files/patch-source3_modules_vfs__fruit.c b/net/samba424/files/patch-source3_modules_vfs__fruit.c new file mode 100644 index 000000000000..4e204555425b --- /dev/null +++ b/net/samba424/files/patch-source3_modules_vfs__fruit.c @@ -0,0 +1,80 @@ +--- source3/modules/vfs_fruit.c.orig 2026-06-30 19:00:05 UTC ++++ source3/modules/vfs_fruit.c +@@ -2339,36 +2339,53 @@ static ssize_t fruit_pread_meta_stream(vfs_handle_stru + } + + static ssize_t fruit_pread_meta_stream(vfs_handle_struct *handle, +- files_struct *fsp, void *data, +- size_t n, off_t offset) ++ files_struct *fsp, void *data, ++ size_t n, off_t offset) + { +- struct fio *fio = fruit_get_complete_fio(handle, fsp); +- ssize_t nread; +- int ret; ++ struct fio *fio = fruit_get_complete_fio(handle, fsp); ++ ssize_t nread; ++ int ret; ++ char *p = (char *)data; + +- if ((fio == NULL) || fio->fake_fd) { +- return -1; +- } ++ if ((fio == NULL) || fio->fake_fd) { ++ return -1; ++ } + +- nread = SMB_VFS_NEXT_PREAD(handle, fsp, data, n, offset); +- if (nread == -1 || ((size_t)nread == n)) { +- return nread; +- } ++ nread = SMB_VFS_NEXT_PREAD(handle, fsp, data, n, offset); ++ if (nread <= 0) { ++ /* ++ * fruit_meta_open_stream() removes O_CREAT flag ++ * from xattr open. This results in vfs_streams_xattr ++ * not generating an FSP extension for the files_struct ++ * and causes subsequent pread() of stream to return ++ * nread=0 if pread() occurs before pwrite(). ++ */ ++ return nread; ++ } + +- DBG_ERR("Removing [%s] after short read [%zd]\n", +- fsp_str_dbg(fsp), nread); ++ if ((size_t)nread == n) { ++ if (offset == 0 && nread > 3 && p[0] == 0 && p[1] == 'F' && p[2] == 'P') { ++ DBG_NOTICE("Fixing AFP_Info of [%s]\n", ++ fsp_str_dbg(fsp)); ++ p[0] = 'A'; ++ } ++ return nread; ++ } + +- ret = SMB_VFS_NEXT_UNLINKAT(handle, +- fsp->conn->cwd_fsp, +- fsp->fsp_name, +- 0); +- if (ret != 0) { +- DBG_ERR("Removing [%s] failed\n", fsp_str_dbg(fsp)); +- return -1; +- } ++ DBG_ERR("Removing [%s] after short read [%zd]\n", ++ fsp_str_dbg(fsp), nread); + +- errno = EINVAL; +- return -1; ++ ret = SMB_VFS_NEXT_UNLINKAT(handle, ++ fsp->conn->cwd_fsp, ++ fsp->fsp_name, ++ 0); ++ if (ret != 0) { ++ DBG_ERR("Removing [%s] failed\n", fsp_str_dbg(fsp)); ++ return -1; ++ } ++ ++ errno = EINVAL; ++ return -1; + } + + static ssize_t fruit_pread_meta_adouble(vfs_handle_struct *handle, diff --git a/net/samba424/files/patch-source3_modules_vfs__streams__xattr.c b/net/samba424/files/patch-source3_modules_vfs__streams__xattr.c new file mode 100644 index 000000000000..0d630ca22c8c --- /dev/null +++ b/net/samba424/files/patch-source3_modules_vfs__streams__xattr.c @@ -0,0 +1,16 @@ +--- source3/modules/vfs_streams_xattr.c.orig 2026-07-23 20:25:05 UTC ++++ source3/modules/vfs_streams_xattr.c +@@ -22,6 +22,13 @@ + */ + + #include "includes.h" ++#ifndef ENODATA ++#ifdef ENOATTR ++#define ENODATA ENOATTR ++#else ++#define ENODATA ENOENT ++#endif ++#endif + #include "smbd/smbd.h" + #include "system/filesys.h" + #include "lib/util/tevent_unix.h" diff --git a/net/samba424/files/patch-source3_modules_vfs__virusfilter__utils.c b/net/samba424/files/patch-source3_modules_vfs__virusfilter__utils.c new file mode 100644 index 000000000000..6bf2dd36ea77 --- /dev/null +++ b/net/samba424/files/patch-source3_modules_vfs__virusfilter__utils.c @@ -0,0 +1,36 @@ +--- source3/modules/vfs_virusfilter_utils.c.orig 2026-01-20 15:42:54 UTC ++++ source3/modules/vfs_virusfilter_utils.c +@@ -401,6 +401,10 @@ bool PRINTF_ATTRIBUTE(2, 3) virusfilter_io_writefl( + + bool PRINTF_ATTRIBUTE(2, 3) virusfilter_io_writefl( + struct virusfilter_io_handle *io_h, ++ const char *data_fmt, ...) PRINTF_ATTRIBUTE(2, 3); ++ ++bool virusfilter_io_writefl( ++ struct virusfilter_io_handle *io_h, + const char *data_fmt, ...) + { + va_list ap; +@@ -424,6 +428,10 @@ bool PRINTF_ATTRIBUTE(2, 0) virusfilter_io_vwritefl( + + bool PRINTF_ATTRIBUTE(2, 0) virusfilter_io_vwritefl( + struct virusfilter_io_handle *io_h, ++ const char *data_fmt, va_list ap) PRINTF_ATTRIBUTE(2, 0); ++ ++bool virusfilter_io_vwritefl( ++ struct virusfilter_io_handle *io_h, + const char *data_fmt, va_list ap) + { + char data[VIRUSFILTER_IO_BUFFER_SIZE + VIRUSFILTER_IO_EOL_SIZE]; +@@ -673,6 +681,11 @@ bool PRINTF_ATTRIBUTE(3, 4) virusfilter_io_writefl_rea + } + + bool PRINTF_ATTRIBUTE(3, 4) virusfilter_io_writefl_readl( ++ struct virusfilter_io_handle *io_h, ++ char **read_line, ++ const char *fmt, ...) PRINTF_ATTRIBUTE(3, 4); ++ ++bool virusfilter_io_writefl_readl( + struct virusfilter_io_handle *io_h, + char **read_line, + const char *fmt, ...) diff --git a/net/samba424/files/patch-source3_modules_vfs__zfsacl.c b/net/samba424/files/patch-source3_modules_vfs__zfsacl.c new file mode 100644 index 000000000000..905e6b736390 --- /dev/null +++ b/net/samba424/files/patch-source3_modules_vfs__zfsacl.c @@ -0,0 +1,182 @@ +--- source3/modules/vfs_zfsacl.c.orig 2026-01-20 15:42:54 UTC ++++ source3/modules/vfs_zfsacl.c +@@ -169,6 +169,7 @@ static bool zfs_process_smbacl(vfs_handle_struct *hand + bool must_add_empty_ace = false; + struct zfsacl_config_data *config = NULL; + int fd; ++ struct sys_proc_fd_path_buf buf; + + SMB_VFS_HANDLE_GET_DATA(handle, config, + struct zfsacl_config_data, +@@ -235,24 +236,52 @@ static bool zfs_process_smbacl(vfs_handle_struct *hand + SMB_ASSERT(i == naces); + + /* store acl */ +- fd = fsp_get_pathref_fd(fsp); +- if (fd == -1) { ++ ++ if (!fsp->fsp_flags.is_pathref) { ++ fd = fsp_get_io_fd(fsp); ++ ++ rv = facl(fd, ACE_SETACL, naces, acebuf); ++ if (rv != 0) { ++ DEBUG(8, ("zfs_process_smbacl(%s): Not PATHREF: facl(ACE_SETACL, %d): %s\n", ++ fsp_str_dbg(fsp), naces, ++ strerror(errno))); ++ return false; ++ } ++ DEBUG(10, ("zfs_process_smbacl(%s): Not PATHREF: facl(ACE_SETACL, %d) -> %d\n", ++ fsp_str_dbg(fsp), naces, ++ rv)); ++ ++ } else if (fsp->fsp_flags.have_proc_fds) { ++ fd = fsp_get_pathref_fd(fsp); ++ if (fd == -1) { ++ DEBUG(8, ("zfs_process_smbacl(%s): PATHREF(proc_fd): fsp_get_pathref_fd=-1: %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); + errno = EBADF; + return false; +- } +- rv = facl(fd, ACE_SETACL, naces, acebuf); +- if (rv != 0) { +- if(errno == ENOSYS) { +- DEBUG(9, ("acl(ACE_SETACL, %s): Operation is not " +- "supported on the filesystem where the file " +- "resides\n", fsp_str_dbg(fsp))); +- } else { +- DEBUG(9, ("acl(ACE_SETACL, %s): %s\n", fsp_str_dbg(fsp), +- strerror(errno))); +- } ++ } ++ rv = acl(sys_proc_fd_path(fd, &buf), ACE_SETACL, naces, acebuf); ++ if (rv != 0) { ++ DEBUG(8, ("zfs_process_smbacl(%s): acl(ACE_SETACL, %d): %s\n", ++ fsp_str_dbg(fsp), naces, ++ strerror(errno))); + return false; ++ } ++ DEBUG(10, ("zfs_process_smbacl(%s): PATHREF(proc_fd): acl(ACE_SETACL, %d) -> %d\n", ++ fsp_str_dbg(fsp), naces, ++ rv)); ++ } else { ++ rv = acl(fsp->fsp_name->base_name, ACE_SETACL, naces, acebuf); ++ if (rv != 0) { ++ DEBUG(8, ("zfs_process_smbacl(%s): PATHREF(base_name): acl(ACE_SETACL, %d): %s\n", ++ fsp_str_dbg(fsp), naces, ++ strerror(errno))); ++ return false; ++ } ++ DEBUG(10, ("zfs_process_smbacl(%s): PATHREF(base_name): facl(ACE_SETACL, %d) -> %d\n", ++ fsp_str_dbg(fsp), naces, ++ rv)); + } +- ++ + return True; + } + +@@ -282,25 +311,46 @@ static int fget_zfsacl(TALLOC_CTX *mem_ctx, + struct files_struct *fsp, + ace_t **outbuf) + { +- int naces, rv; ++ int naces, rv = -1, fd = -1; + ace_t *acebuf = NULL; +- int fd; ++ struct sys_proc_fd_path_buf buf; + +- fd = fsp_get_pathref_fd(fsp); +- if (fd == -1) { ++ ++ if (!fsp->fsp_flags.is_pathref) { ++ fd = fsp_get_io_fd(fsp); ++ if (fd == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): Not PATHREF: fsp_get_io_fd=-1: %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); + errno = EBADF; + return -1; +- } +- naces = facl(fd, ACE_GETACLCNT, 0, NULL); +- if (naces == -1) { +- int dbg_level = 10; +- +- if (errno == ENOSYS) { +- dbg_level = 1; +- } +- DEBUG(dbg_level, ("facl(ACE_GETACLCNT, %s): %s\n", ++ } ++ naces = facl(fd, ACE_GETACLCNT, 0, NULL); ++ if (naces == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): Not PATHREF: facl(ACE_GETACLCNT): %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); ++ return -1; ++ } ++ } else if (fsp->fsp_flags.have_proc_fds) { ++ fd = fsp_get_pathref_fd(fsp); ++ if (fd == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): PATHREF(proc_fd): fsp_get_pathref_fd=-1: %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); ++ errno = EBADF; ++ return -1; ++ } ++ naces = acl(sys_proc_fd_path(fd, &buf), ACE_GETACLCNT, 0, NULL); ++ if (naces == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): PATHREF(proc_fd): acl(ACE_GETACLCNT): %s\n", + fsp_str_dbg(fsp), strerror(errno))); +- return naces; ++ return -1; ++ } ++ } else { ++ naces = acl(fsp->fsp_name->base_name, ACE_GETACLCNT, 0, NULL); ++ if (naces == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): PATHREF(base_name): acl(ACE_GETACLCNT): %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); ++ return -1; ++ } + } + + acebuf = talloc_size(mem_ctx, sizeof(ace_t)*naces); +@@ -309,15 +359,37 @@ static int fget_zfsacl(TALLOC_CTX *mem_ctx, + return -1; + } + +- rv = facl(fd, ACE_GETACL, naces, acebuf); +- if (rv == -1) { +- DBG_DEBUG("acl(ACE_GETACL, %s): %s\n", +- fsp_str_dbg(fsp), strerror(errno)); ++ if (!fsp->fsp_flags.is_pathref) { ++ rv = facl(fd, ACE_GETACL, naces, acebuf); ++ if (rv == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): Not PATHREF: facl(ACE_GETACL): %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); + return -1; ++ } ++ DEBUG(10, ("fget_zfsacl(%s): Not PATHREF: facl(ACE_GETACL) -> %d entries\n", ++ fsp_str_dbg(fsp), rv)); ++ } else if (fsp->fsp_flags.have_proc_fds) { ++ rv = acl(sys_proc_fd_path(fd, &buf), ACE_GETACL, naces, acebuf); ++ if (rv == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): PATHREF(proc_fd): acl(ACE_GETACL): %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); ++ return -1; ++ } ++ DEBUG(10, ("fget_zfsacl(%s): PATHREF(proc_fd): acl(ACE_GETACL) -> %d entries\n", ++ fsp_str_dbg(fsp), rv)); ++ } else { ++ rv = acl(fsp->fsp_name->base_name, ACE_GETACL, naces, acebuf); ++ if (rv == -1) { ++ DEBUG(8, ("fget_zfsacl(%s): PATHREF(base_name): acl(ACE_GETACL): %s\n", ++ fsp_str_dbg(fsp), strerror(errno))); ++ return -1; ++ } ++ DEBUG(10, ("fget_zfsacl(%s): PATHREF(base_name): acl(ACE_GETACL) -> %d entries\n", ++ fsp_str_dbg(fsp), rv)); + } +- ++ + *outbuf = acebuf; +- return naces; ++ return rv; + } + + static NTSTATUS zfsacl_fget_nt_acl(struct vfs_handle_struct *handle, diff --git a/net/samba424/files/patch-source3_modules_wscript__build b/net/samba424/files/patch-source3_modules_wscript__build new file mode 100644 index 000000000000..a8a9c184c7cb --- /dev/null +++ b/net/samba424/files/patch-source3_modules_wscript__build @@ -0,0 +1,16 @@ +--- source3/modules/wscript_build.orig 2026-01-20 15:42:54 UTC ++++ source3/modules/wscript_build +@@ -649,6 +649,13 @@ bld.SAMBA3_MODULE('vfs_delay_inject', + enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_delay_inject'), + install=False) + ++bld.SAMBA3_MODULE('vfs_freebsd', ++ subsystem='vfs', ++ source='vfs_freebsd.c', ++ init_function='', ++ internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_freebsd'), ++ enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_freebsd')) ++ + bld.SAMBA3_MODULE('vfs_widelinks', + subsystem='vfs', + source='vfs_widelinks.c', diff --git a/net/samba424/files/patch-source3_param_loadparm.c b/net/samba424/files/patch-source3_param_loadparm.c new file mode 100644 index 000000000000..63568e68ba62 --- /dev/null +++ b/net/samba424/files/patch-source3_param_loadparm.c @@ -0,0 +1,32 @@ +--- source3/param/loadparm.c.orig 2026-01-20 15:42:54 UTC ++++ source3/param/loadparm.c +@@ -2895,9 +2895,29 @@ static void init_locals(void) + } else { + if (lp_parm_const_string(-1, "xattr_tdb", "file", NULL)) { + lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr xattr_tdb"); ++ /* ++ * By default, the samba sysvol is located in the statedir. Provisioning will fail in setntacl ++ * unless we have zfacl enabled. Unfortunately, at this point the smb.conf has not been generated. ++ * This workaround is freebsd-specific. ++ */ ++#if defined(_PC_ACL_EXTENDED) ++ } else if (pathconf(lp_state_directory(), _PC_ACL_EXTENDED) == 1) { ++ lp_do_parameter(-1, "vfs objects", "dfs_samba4 freebsd"); ++#endif ++#if defined(_PC_ACL_NFS4) ++ } else if (pathconf(lp_state_directory(), _PC_ACL_NFS4) == 1) { ++ lp_do_parameter(-1, "vfs objects", "dfs_samba4 zfsacl"); ++#endif + } else if (lp_parm_const_string(-1, "posix", "eadb", NULL)) { + lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr posix_eadb"); + } else { ++ /* ++ * This should only set dfs_samba4 and leave acl_xattr ++ * to be set later (or zfsacl). The only reason the decision ++ * can't be made here to load acl_xattr or zfsacl is ++ * that we don't have access to what the target ++ * directory is. ++ */ + lp_do_parameter(-1, "vfs objects", "dfs_samba4 acl_xattr"); + } + } diff --git a/net/samba424/files/patch-source3_registry_tests_test__regfio.c b/net/samba424/files/patch-source3_registry_tests_test__regfio.c new file mode 100644 index 000000000000..e24781f6a816 --- /dev/null +++ b/net/samba424/files/patch-source3_registry_tests_test__regfio.c @@ -0,0 +1,10 @@ +--- source3/registry/tests/test_regfio.c.orig 2026-01-20 15:42:54 UTC ++++ source3/registry/tests/test_regfio.c +@@ -25,6 +25,7 @@ + + #include + #include ++#include + #include + #include + #include diff --git a/net/samba424/files/patch-source3_smbd_pysmbd.c b/net/samba424/files/patch-source3_smbd_pysmbd.c new file mode 100644 index 000000000000..0129d00d1b31 --- /dev/null +++ b/net/samba424/files/patch-source3_smbd_pysmbd.c @@ -0,0 +1,230 @@ +--- source3/smbd/pysmbd.c.orig 2026-01-20 15:42:54 UTC ++++ source3/smbd/pysmbd.c +@@ -501,6 +501,20 @@ static SMB_ACL_T make_simple_acl(TALLOC_CTX *mem_ctx, + return acl; + } + ++static SMB_ACL_T make_simple_nfsv4_acl(TALLOC_CTX *mem_ctx, ++ gid_t gid, ++ mode_t chmod_mode) ++{ ++ /* ++ * This function needs to create an NFSv4 ACL. Currently, the only way ++ * to do so is to use the operating system interface, or to use the ++ * functions in source3/modules/nfs4_acls.c. These seems ugly and ++ * hacky. NFSv4 ACL's should be a first class citizen and ++ * librpc/idl/smb_acl.idl should be modified accordingly. ++ */ ++ return NULL; ++} ++ + /* + set a simple ACL on a file, as a test + */ +@@ -573,7 +587,85 @@ static PyObject *py_smbd_set_simple_acl(PyObject *self + Py_RETURN_NONE; + } + ++ + /* ++ set a simple NFSv4 ACL on a file, as a test ++ */ ++static PyObject *py_smbd_set_simple_nfsv4_acl(PyObject *self, PyObject *args, PyObject *kwargs) ++{ ++ const char * const kwnames[] = { ++ "fname", ++ "mode", ++ "session_info", ++ "gid", ++ "service", ++ NULL ++ }; ++ char *fname, *service = NULL; ++ PyObject *py_session = Py_None; ++ struct auth_session_info *session_info = NULL; ++ int ret; ++ int mode, gid = -1; ++ SMB_ACL_T acl; ++ TALLOC_CTX *frame; ++ connection_struct *conn; ++ ++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "siO|iz", ++ discard_const_p(char *, kwnames), ++ &fname, ++ &mode, ++ &py_session, ++ &gid, ++ &service)) ++ return NULL; ++ ++ if (!py_check_dcerpc_type(py_session, ++ "samba.dcerpc.auth", ++ "session_info")) { ++ return NULL; ++ } ++ session_info = pytalloc_get_type(py_session, ++ struct auth_session_info); ++ if (session_info == NULL) { ++ PyErr_Format(PyExc_TypeError, ++ "Expected auth_session_info for session_info argument got %s", ++ pytalloc_get_name(py_session)); ++ return NULL; ++ } ++ ++ frame = talloc_stackframe(); ++ ++ acl = make_simple_nfsv4_acl(frame, gid, mode); ++ if (acl == NULL) { ++ TALLOC_FREE(frame); ++ Py_RETURN_NONE; ++ } ++ ++ conn = get_conn_tos(service, session_info); ++ if (!conn) { ++ TALLOC_FREE(frame); ++ Py_RETURN_NONE; ++ } ++ ++ /* ++ * SMB_ACL_TYPE_ACCESS -> ACL_TYPE_ACCESS -> Not valid for NFSv4 ACL ++ */ ++ ret = 0; ++ ++ /* ret = set_sys_acl_conn(fname, SMB_ACL_TYPE_ACCESS, acl, conn); */ ++ ++ if (ret != 0) { ++ TALLOC_FREE(frame); ++ errno = ret; ++ return PyErr_SetFromErrno(PyExc_OSError); ++ } ++ ++ TALLOC_FREE(frame); ++ ++ Py_RETURN_NONE; ++} ++ ++/* + chown a file + */ + static PyObject *py_smbd_chown(PyObject *self, PyObject *args, PyObject *kwargs) +@@ -759,7 +851,7 @@ static PyObject *py_smbd_unlink(PyObject *self, PyObje + } + + /* +- check if we have ACL support ++ check if we have POSIX.1e ACL support + */ + static PyObject *py_smbd_have_posix_acls(PyObject *self, + PyObject *Py_UNUSED(ignored)) +@@ -771,7 +863,84 @@ static PyObject *py_smbd_have_posix_acls(PyObject *sel + #endif + } + ++static PyObject *py_smbd_has_posix_acls(PyObject *self, PyObject *args, PyObject *kwargs) ++{ ++ const char * const kwnames[] = { "path", NULL }; ++ char *path = NULL; ++ TALLOC_CTX *frame; ++ struct statfs fs; ++ int ret = false; ++ ++ frame = talloc_stackframe(); ++ ++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z", ++ discard_const_p(char *, kwnames), &path)) { ++ TALLOC_FREE(frame); ++ return NULL; ++ } ++ ++ if (statfs(path, &fs) != 0) { ++ TALLOC_FREE(frame); ++ return NULL; ++ } ++ ++ if (fs.f_flags & MNT_ACLS) ++ ret = true; ++ ++ TALLOC_FREE(frame); ++ return PyBool_FromLong(ret); ++} ++ + /* ++ check if we have NFSv4 ACL support ++ */ ++static PyObject *py_smbd_have_nfsv4_acls(PyObject *self) ++{ ++#ifdef HAVE_LIBSUNACL ++ return PyBool_FromLong(true); ++#else ++ return PyBool_FromLong(false); ++#endif ++} ++ ++static PyObject *py_smbd_has_nfsv4_acls(PyObject *self, PyObject *args, PyObject *kwargs) ++{ ++ const char * const kwnames[] = { "path", NULL }; ++ char *path = NULL; ++ TALLOC_CTX *frame; ++ struct statfs fs; ++ int ret = false; ++ ++ frame = talloc_stackframe(); ++ ++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "s|z", ++ discard_const_p(char *, kwnames), &path)) { ++ TALLOC_FREE(frame); ++ return NULL; ++ } ++ ++ if (statfs(path, &fs) != 0) { ++ TALLOC_FREE(frame); ++ return NULL; ++ } ++ ++ if (fs.f_flags & MNT_NFS4ACLS) ++ ret = true; ++ ++ TALLOC_FREE(frame); ++ return PyBool_FromLong(ret); ++} ++ ++ ++static PyObject *py_smbd_set_nfsv4_defaults(PyObject *self) ++{ ++ /* ++ * It is really be done in source3/param/loadparm.c ++ */ ++ Py_RETURN_NONE; ++} ++ ++/* + set the NT ACL on a file + */ + static PyObject *py_smbd_set_nt_acl(PyObject *self, PyObject *args, PyObject *kwargs) +@@ -1272,8 +1441,26 @@ static PyMethodDef py_smbd_methods[] = { + { "have_posix_acls", + (PyCFunction)py_smbd_have_posix_acls, METH_NOARGS, + NULL }, ++ { "has_posix_acls", ++ PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_has_posix_acls), ++ METH_VARARGS|METH_KEYWORDS, ++ NULL }, ++ { "have_nfsv4_acls", ++ (PyCFunction)py_smbd_have_nfsv4_acls, METH_NOARGS, ++ NULL }, ++ { "has_nfsv4_acls", ++ PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_has_nfsv4_acls), ++ METH_VARARGS|METH_KEYWORDS, ++ NULL }, ++ { "set_nfsv4_defaults", ++ (PyCFunction)py_smbd_set_nfsv4_defaults, METH_NOARGS, ++ NULL }, + { "set_simple_acl", + PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_simple_acl), ++ METH_VARARGS|METH_KEYWORDS, ++ NULL }, ++ { "set_simple_nfsv4_acl", ++ PY_DISCARD_FUNC_SIG(PyCFunction, py_smbd_set_simple_nfsv4_acl), + METH_VARARGS|METH_KEYWORDS, + NULL }, + { "set_nt_acl", diff --git a/net/samba424/files/patch-source3_smbd_quotas.c b/net/samba424/files/patch-source3_smbd_quotas.c new file mode 100644 index 000000000000..56e28b6733ea --- /dev/null +++ b/net/samba424/files/patch-source3_smbd_quotas.c @@ -0,0 +1,19 @@ +--- source3/smbd/quotas.c.orig 2026-01-20 15:42:54 UTC ++++ source3/smbd/quotas.c +@@ -125,6 +125,7 @@ static bool nfs_quotas(char *nfspath, uid_t euser_id, + if (!cutstr) + return False; + ++ memset(&D, '\0', sizeof(D)); + memset(cutstr, '\0', len+1); + host = strncat(cutstr,mnttype, sizeof(char) * len ); + DEBUG(5,("nfs_quotas: looking for mount on \"%s\"\n", cutstr)); +@@ -133,7 +134,7 @@ static bool nfs_quotas(char *nfspath, uid_t euser_id, + args.gqa_pathp = testpath+1; + args.gqa_uid = uid; + +- DEBUG(5,("nfs_quotas: Asking for host \"%s\" rpcprog \"%i\" rpcvers \"%i\" network \"%s\"\n", host, RQUOTAPROG, RQUOTAVERS, "udp")); ++ DEBUG(5,("nfs_quotas: Asking for host \"%s\" rpcprog \"%lu\" rpcvers \"%lu\" network \"%s\"\n", host, RQUOTAPROG, RQUOTAVERS, "udp")); + + if ((clnt = clnt_create(host, RQUOTAPROG, RQUOTAVERS, "udp")) == NULL) { + ret = False; diff --git a/net/samba424/files/patch-source3_smbd_utmp.c b/net/samba424/files/patch-source3_smbd_utmp.c new file mode 100644 index 000000000000..9a47ac29c0ed --- /dev/null +++ b/net/samba424/files/patch-source3_smbd_utmp.c @@ -0,0 +1,261 @@ +--- source3/smbd/utmp.c.orig 2026-01-20 15:42:54 UTC ++++ source3/smbd/utmp.c +@@ -257,7 +257,7 @@ static char *uw_pathname(TALLOC_CTX *ctx, + Update utmp file directly. No subroutine interface: probably a BSD system. + ****************************************************************************/ + +-static void pututline_my(const char *uname, struct utmp *u, bool claim) ++static void pututline_my(const char *uname, STRUCT_UTMP *u, bool claim) + { + DEBUG(1,("pututline_my: not yet implemented\n")); + /* BSD implementor: may want to consider (or not) adjusting "lastlog" */ +@@ -271,7 +271,7 @@ static void pututline_my(const char *uname, struct utm + Credit: Michail Vidiassov + ****************************************************************************/ + +-static void updwtmp_my(const char *wname, struct utmp *u, bool claim) ++static void updwtmp_my(const char *wname, STRUCT_UTMP *u, bool claim) + { + int fd; + struct stat buf; +@@ -303,7 +303,7 @@ static void updwtmp_my(const char *wname, struct utmp + if ((fd = open(wname, O_WRONLY|O_APPEND, 0)) < 0) + return; + if (fstat(fd, &buf) == 0) { +- if (write(fd, (char *)u, sizeof(struct utmp)) != sizeof(struct utmp)) ++ if (write(fd, (char *)u, sizeof(STRUCT_UTMP)) != sizeof(STRUCT_UTMP)) + (void) ftruncate(fd, buf.st_size); + } + (void) close(fd); +@@ -314,12 +314,12 @@ static void updwtmp_my(const char *wname, struct utmp + Update via utmp/wtmp (not utmpx/wtmpx). + ****************************************************************************/ + +-static void utmp_nox_update(struct utmp *u, bool claim) ++static void utmp_nox_update(STRUCT_UTMP *u, bool claim) + { + char *uname = NULL; + char *wname = NULL; + #if defined(PUTUTLINE_RETURNS_UTMP) +- struct utmp *urc; ++ STRUCT_UTMP *urc; + #endif /* PUTUTLINE_RETURNS_UTMP */ + + uname = uw_pathname(talloc_tos(), "utmp", ut_pathname); +@@ -376,127 +376,52 @@ static void utmp_nox_update(struct utmp *u, bool claim + } + } + +-/**************************************************************************** +- Copy a string in the utmp structure. +-****************************************************************************/ + +-static void utmp_strcpy(char *dest, const char *src, size_t n) +-{ +- size_t len = 0; + +- memset(dest, '\0', n); +- if (src) +- len = strlen(src); +- if (len >= n) { +- memcpy(dest, src, n); +- } else { +- if (len) +- memcpy(dest, src, len); +- } +-} + ++ + /**************************************************************************** + Update via utmpx/wtmpx (preferred) or via utmp/wtmp. + ****************************************************************************/ + +-static void sys_utmp_update(struct utmp *u, const char *hostname, bool claim) ++static void sys_utmp_update(STRUCT_UTMP *u, const char *hostname, bool claim) + { +-#if !defined(HAVE_UTMPX_H) +- /* No utmpx stuff. Drop to non-x stuff */ +- utmp_nox_update(u, claim); +-#elif !defined(HAVE_PUTUTXLINE) +- /* Odd. Have utmpx.h but no "pututxline()". Drop to non-x stuff */ +- DEBUG(1,("utmp_update: have utmpx.h but no pututxline() function\n")); +- utmp_nox_update(u, claim); +-#elif !defined(HAVE_GETUTMPX) +- /* Odd. Have utmpx.h but no "getutmpx()". Drop to non-x stuff */ +- DEBUG(1,("utmp_update: have utmpx.h but no getutmpx() function\n")); +- utmp_nox_update(u, claim); +-#elif !defined(HAVE_UPDWTMPX) +- /* Have utmpx.h but no "updwtmpx()". Drop to non-x stuff */ +- DEBUG(1,("utmp_update: have utmpx.h but no updwtmpx() function\n")); +- utmp_nox_update(u, claim); +-#else +- char *uname = NULL; +- char *wname = NULL; +- struct utmpx ux, *uxrc; ++ STRUCT_UTMP *urc; + +- getutmpx(u, &ux); +- +-#if defined(HAVE_UX_UT_SYSLEN) +- if (hostname) +- ux.ut_syslen = strlen(hostname) + 1; /* include end NULL */ +- else +- ux.ut_syslen = 0; +-#endif +-#if defined(HAVE_UX_UT_HOST) +- utmp_strcpy(ux.ut_host, hostname, sizeof(ux.ut_host)); +-#endif +- +- uname = uw_pathname(talloc_tos(), "utmpx", ux_pathname); +- wname = uw_pathname(talloc_tos(), "wtmpx", wx_pathname); +- if (uname && wname) { +- DEBUG(2,("utmp_update: uname:%s wname:%s\n", uname, wname)); ++ setutxent(); ++ urc = pututxline(u); ++ endutxent(); ++ if (urc == NULL) { ++ DEBUG(2,("utmp_update: pututxline() failed\n")); ++ return; + } +- +- /* +- * Check for either uname or wname being empty. +- * Some systems, such as Redhat 6, have a "utmpx.h" which doesn't +- * define default filenames. +- * Also, our local installation has not provided an override. +- * Drop to non-x method. (E.g. RH6 has good defaults in "utmp.h".) +- */ +- if (!uname || !wname || (strlen(uname) == 0) || (strlen(wname) == 0)) { +- utmp_nox_update(u, claim); +- } else { +- utmpxname(uname); +- setutxent(); +- uxrc = pututxline(&ux); +- endutxent(); +- if (uxrc == NULL) { +- DEBUG(2,("utmp_update: pututxline() failed\n")); +- return; +- } +- updwtmpx(wname, &ux); +- } +-#endif /* HAVE_UTMPX_H */ + } + + #if defined(HAVE_UT_UT_ID) + /**************************************************************************** + Encode the unique connection number into "ut_id". + ****************************************************************************/ +- +-static int ut_id_encode(int i, char *fourbyte) ++static void ut_id_encode(char *buf, int id, size_t buf_size) + { +- int nbase; +- const char *ut_id_encstr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; ++ const char ut_id_encstr[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + +-/* +- * 'ut_id_encstr' is the character set on which modulo arithmetic is done. +- * Example: digits would produce the base-10 numbers from '001'. +- */ +- nbase = strlen(ut_id_encstr); ++ int nbase = sizeof(ut_id_encstr) - 1; ++ /* ++ * 'ut_id_encstr' is the character set on which modulo arithmetic is done. ++ * Example: digits would produce the base-10 numbers from '001'. ++ */ + +- fourbyte[0] = ut_id_encstr[i % nbase]; +- i /= nbase; +- fourbyte[1] = ut_id_encstr[i % nbase]; +- i /= nbase; +- fourbyte[3] = ut_id_encstr[i % nbase]; +- i /= nbase; +- fourbyte[2] = ut_id_encstr[i % nbase]; +- i /= nbase; +- +- /* we do not care about overflows as i is a random number */ +- return 0; ++ for(int i = 0; i < buf_size; i++) { ++ buf[i] = ut_id_encstr[id % nbase]; ++ id /= nbase; ++ } + } + #endif /* defined(HAVE_UT_UT_ID) */ + +- + /* + fill a system utmp structure given all the info we can gather + */ +-static bool sys_utmp_fill(struct utmp *u, ++static bool sys_utmp_fill(STRUCT_UTMP *u, + const char *username, const char *hostname, + const char *id_str, int id_num) + { +@@ -509,16 +434,16 @@ static bool sys_utmp_fill(struct utmp *u, + * rather than to try to detect and optimise. + */ + #if defined(HAVE_UT_UT_USER) +- utmp_strcpy(u->ut_user, username, sizeof(u->ut_user)); ++ strncpy(u->ut_user, username, sizeof(u->ut_user)); + #elif defined(HAVE_UT_UT_NAME) +- utmp_strcpy(u->ut_name, username, sizeof(u->ut_name)); ++ strncpy(u->ut_name, username, sizeof(u->ut_name)); + #endif + + /* + * ut_line: + * If size limit proves troublesome, then perhaps use "ut_id_encode()". + */ +- utmp_strcpy(u->ut_line, id_str, sizeof(u->ut_line)); ++ strncpy(u->ut_line, id_str, sizeof(u->ut_line)); + + #if defined(HAVE_UT_UT_PID) + u->ut_pid = getpid(); +@@ -535,20 +460,23 @@ static bool sys_utmp_fill(struct utmp *u, + u->ut_time = timeval.tv_sec; + #elif defined(HAVE_UT_UT_TV) + GetTimeOfDay(&timeval); +- u->ut_tv = timeval; ++ u->ut_tv.tv_sec = timeval.tv_sec; ++ u->ut_tv.tv_usec = timeval.tv_usec; + #else + #error "with-utmp must have UT_TIME or UT_TV" + #endif + + #if defined(HAVE_UT_UT_HOST) +- utmp_strcpy(u->ut_host, hostname, sizeof(u->ut_host)); ++ if(hostname != NULL) { ++ strncpy(u->ut_host, hostname, sizeof(u->ut_host)); ++#if defined(HAVE_UT_UT_SYSLEN) ++ u->ut_syslen = strlen(hostname) + 1; /* include trailing NULL */ + #endif ++ } ++#endif + + #if defined(HAVE_UT_UT_ID) +- if (ut_id_encode(id_num, u->ut_id) != 0) { +- DEBUG(1,("utmp_fill: cannot encode id %d\n", id_num)); +- return False; +- } ++ ut_id_encode(u->ut_id, id_num, sizeof(u->ut_id)); + #endif + + return True; +@@ -561,7 +489,7 @@ void sys_utmp_yield(const char *username, const char * + void sys_utmp_yield(const char *username, const char *hostname, + const char *id_str, int id_num) + { +- struct utmp u; ++ STRUCT_UTMP u; + + ZERO_STRUCT(u); + +@@ -587,7 +515,7 @@ void sys_utmp_claim(const char *username, const char * + void sys_utmp_claim(const char *username, const char *hostname, + const char *id_str, int id_num) + { +- struct utmp u; ++ STRUCT_UTMP u; + + ZERO_STRUCT(u); + diff --git a/net/samba424/files/patch-source3_torture_cmd__vfs.c b/net/samba424/files/patch-source3_torture_cmd__vfs.c new file mode 100644 index 000000000000..80423370d6e3 --- /dev/null +++ b/net/samba424/files/patch-source3_torture_cmd__vfs.c @@ -0,0 +1,95 @@ +--- source3/torture/cmd_vfs.c.orig 2026-01-20 15:42:54 UTC ++++ source3/torture/cmd_vfs.c +@@ -146,7 +146,84 @@ static NTSTATUS cmd_disk_free(struct vfs_state *vfs, T + return NT_STATUS_OK; + } + ++static NTSTATUS cmd_get_quota(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, const char **argv) ++{ ++ struct smb_filename *smb_fname = NULL; ++ uint64_t bsize, dfree, dsize; ++ enum SMB_QUOTA_TYPE qtype; ++ SMB_DISK_QUOTA D; ++ unid_t id; ++ int r; + ++ if (argc != 4) { ++ printf("Usage: get_quota [user|group] id\n"); ++ return NT_STATUS_OK; ++ } ++ ++ smb_fname = synthetic_smb_fname(talloc_tos(), ++ argv[1], ++ NULL, ++ NULL, ++ 0, ++ ssf_flags()); ++ if (smb_fname == NULL) { ++ return NT_STATUS_NO_MEMORY; ++ } ++ ++ if(strcmp(argv[2], "user") == 0) { ++ qtype = SMB_USER_FS_QUOTA_TYPE; ++ } ++ else if(strcmp(argv[2], "group") == 0) { ++ qtype = SMB_GROUP_FS_QUOTA_TYPE; ++ } ++ else { ++ printf("Usage: get_quota [user|group] id\n"); ++ return NT_STATUS_OK; ++ } ++ ++ id.uid = atoi(argv[3]); ++ ++ ZERO_STRUCT(D); ++ ++ r = SMB_VFS_GET_QUOTA(vfs->conn, smb_fname, qtype, id, &D); ++ ++ if (r == -1 && errno != ENOSYS) { ++ return NT_STATUS_UNSUCCESSFUL; ++ } ++ ++ if (r == 0 && (D.qflags & QUOTAS_DENY_DISK) == 0) { ++ return NT_STATUS_UNSUCCESSFUL; ++ } ++ ++ bsize = D.bsize; ++ /* Use softlimit to determine disk space, except when it has been exceeded */ ++ if ( ++ (D.softlimit && D.curblocks >= D.softlimit) || ++ (D.hardlimit && D.curblocks >= D.hardlimit) || ++ (D.isoftlimit && D.curinodes >= D.isoftlimit) || ++ (D.ihardlimit && D.curinodes>=D.ihardlimit) ++ ) { ++ dfree = 0; ++ dsize = D.curblocks; ++ } else if (D.softlimit==0 && D.hardlimit==0) { ++ return NT_STATUS_UNSUCCESSFUL; ++ } else { ++ if (D.softlimit == 0) { ++ D.softlimit = D.hardlimit; ++ } ++ dfree = D.softlimit - D.curblocks; ++ dsize = D.softlimit; ++ } ++ ++ printf("get_quota: bsize = %lu, dfree = %lu, dsize = %lu\n", ++ (unsigned long)bsize, ++ (unsigned long)dfree, ++ (unsigned long)dsize); ++ ++ return NT_STATUS_OK; ++} ++ ++ + static NTSTATUS cmd_opendir(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, const char **argv) + { + struct smb_filename *smb_fname = NULL; +@@ -2252,6 +2329,7 @@ struct cmd_set vfs_commands[] = { + { "connect", cmd_connect, "VFS connect()", "connect" }, + { "disconnect", cmd_disconnect, "VFS disconnect()", "disconnect" }, + { "disk_free", cmd_disk_free, "VFS disk_free()", "disk_free " }, ++ { "get_quota", cmd_get_quota, "VFS get_quota()", "get_quota [user|group] id" }, + { "opendir", cmd_opendir, "VFS opendir()", "opendir " }, + { "readdir", cmd_readdir, "VFS readdir()", "readdir" }, + { "mkdir", cmd_mkdir, "VFS mkdir()", "mkdir " }, diff --git a/net/samba424/files/patch-source3_torture_wscript__build b/net/samba424/files/patch-source3_torture_wscript__build new file mode 100644 index 000000000000..5262af8eba1f --- /dev/null +++ b/net/samba424/files/patch-source3_torture_wscript__build @@ -0,0 +1,11 @@ +--- source3/torture/wscript_build.orig 2026-06-23 10:45:53 UTC ++++ source3/torture/wscript_build +@@ -132,7 +132,7 @@ bld.SAMBA3_BINARY('vfstest', + smbconf + SMBREADLINE + ''', +- for_selftest=True) ++ install=True) + + bld.SAMBA3_BINARY('test_rpc_samr', + source='test_rpc_samr.c', diff --git a/net/samba424/files/patch-source3_utils_net__time.c b/net/samba424/files/patch-source3_utils_net__time.c new file mode 100644 index 000000000000..cb699bedadc2 --- /dev/null +++ b/net/samba424/files/patch-source3_utils_net__time.c @@ -0,0 +1,19 @@ +--- source3/utils/net_time.c.orig 2026-01-20 15:42:54 UTC ++++ source3/utils/net_time.c +@@ -97,10 +97,15 @@ static const char *systime(time_t t) + if (!tm) { + return "unknown"; + } +- ++#if defined(FREEBSD) ++ return talloc_asprintf(talloc_tos(), "%04d%02d%02d%02d%02d.%02d", ++ tm->tm_year + 1900, tm->tm_mon+1, tm->tm_mday, ++ tm->tm_hour, tm->tm_min, tm->tm_sec); ++#else + return talloc_asprintf(talloc_tos(), "%02d%02d%02d%02d%04d.%02d", + tm->tm_mon+1, tm->tm_mday, tm->tm_hour, + tm->tm_min, tm->tm_year + 1900, tm->tm_sec); ++#endif + } + + int net_time_usage(struct net_context *c, int argc, const char **argv) diff --git a/net/samba424/files/patch-source3_utils_smbfilter.c b/net/samba424/files/patch-source3_utils_smbfilter.c new file mode 100644 index 000000000000..541d622da19a --- /dev/null +++ b/net/samba424/files/patch-source3_utils_smbfilter.c @@ -0,0 +1,11 @@ +--- source3/utils/smbfilter.c.orig 2026-01-20 15:42:54 UTC ++++ source3/utils/smbfilter.c +@@ -291,7 +291,7 @@ static void start_filter(char *desthost) + exit(1); + } + +- if (listen(s, 5) == -1) { ++ if (listen(s, DEFAULT_LISTEN_BACKLOG) == -1) { + d_printf("listen failed\n"); + } + diff --git a/net/samba424/files/patch-source3_winbindd_winbindd.c b/net/samba424/files/patch-source3_winbindd_winbindd.c new file mode 100644 index 000000000000..d77f4b3167a7 --- /dev/null +++ b/net/samba424/files/patch-source3_winbindd_winbindd.c @@ -0,0 +1,20 @@ +--- source3/winbindd/winbindd.c.orig 2026-01-20 15:42:54 UTC ++++ source3/winbindd/winbindd.c +@@ -1038,7 +1038,7 @@ static bool winbindd_setup_listeners(void) + if (pub_state->fd == -1) { + goto failed; + } +- rc = listen(pub_state->fd, 5); ++ rc = listen(pub_state->fd, DEFAULT_LISTEN_BACKLOG); + if (rc < 0) { + goto failed; + } +@@ -1070,7 +1070,7 @@ static bool winbindd_setup_listeners(void) + if (priv_state->fd == -1) { + goto failed; + } +- rc = listen(priv_state->fd, 5); ++ rc = listen(priv_state->fd, DEFAULT_LISTEN_BACKLOG); + if (rc < 0) { + goto failed; + } diff --git a/net/samba424/files/patch-source3_winbindd_wscript__build b/net/samba424/files/patch-source3_winbindd_wscript__build new file mode 100644 index 000000000000..60acba0507a6 --- /dev/null +++ b/net/samba424/files/patch-source3_winbindd_wscript__build @@ -0,0 +1,11 @@ +--- source3/winbindd/wscript_build.orig 2019-01-15 10:07:00 UTC ++++ source3/winbindd/wscript_build +@@ -2,7 +2,7 @@ + + bld.SAMBA3_LIBRARY('idmap', + source='idmap.c idmap_util.c', +- deps='samba-util pdb', ++ deps='pdb samba-modules secrets3', + allow_undefined_symbols=True, + private_library=True) + diff --git a/net/samba424/files/patch-source3_wscript b/net/samba424/files/patch-source3_wscript new file mode 100644 index 000000000000..3f8bac96d9d4 --- /dev/null +++ b/net/samba424/files/patch-source3_wscript @@ -0,0 +1,57 @@ +--- source3/wscript.orig 2026-01-20 15:42:54 UTC ++++ source3/wscript +@@ -788,34 +788,38 @@ msg.msg_accrightslen = sizeof(fd); + + if Options.options.with_utmp: + conf.env.with_utmp = True +- if not conf.CHECK_HEADERS('utmp.h'): conf.env.with_utmp = False +- conf.CHECK_FUNCS('pututline pututxline updwtmp updwtmpx getutmpx') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_name', headers='utmp.h', ++ if not conf.CHECK_HEADERS('utmpx.h') and not conf.CHECK_HEADERS('utmp.h'): ++ conf.env.with_utmp = False ++ if conf.CONFIG_SET('HAVE_UTMPX_H'): ++ conf.DEFINE('STRUCT_UTMP', 'struct utmpx') ++ elif conf.CONFIG_SET('HAVE_UTMP_H'): ++ conf.DEFINE('STRUCT_UTMP', 'struct utmp') ++ conf.CHECK_FUNCS('pututxline getutxid getutxline updwtmpx getutmpx setutxent endutxent') ++ conf.CHECK_FUNCS('pututline getutid getutline updwtmp getutmp setutent endutent') ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_name', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_NAME') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_user', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_user', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_USER') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_id', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_id', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_ID') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_host', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_host', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_HOST') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_time', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_time', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_TIME') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_tv', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_tv', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_TV') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_type', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_type', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_TYPE') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_pid', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_pid', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_PID') +- conf.CHECK_STRUCTURE_MEMBER('struct utmp', 'ut_exit.e_exit', headers='utmp.h', ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_exit.e_exit', headers='utmpx.h utmp.h', + define='HAVE_UT_UT_EXIT') +- conf.CHECK_STRUCTURE_MEMBER('struct utmpx', 'ut_syslen', headers='utmpx.h', +- define='HAVE_UX_UT_SYSLEN') +- conf.CHECK_STRUCTURE_MEMBER('struct utmpx', 'ut_host', headers='utmpx.h', +- define='HAVE_UX_UT_HOST') ++ conf.CHECK_STRUCTURE_MEMBER('STRUCT_UTMP', 'ut_syslen', headers='utmpx.h utmp.h', ++ define='HAVE_UT_UT_SYSLEN') + conf.CHECK_CODE('struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);', + 'PUTUTLINE_RETURNS_UTMP', headers='utmp.h', + msg="Checking whether pututline returns pointer") +- conf.CHECK_SIZEOF(['((struct utmp *)NULL)->ut_line'], headers='utmp.h', ++ conf.CHECK_SIZEOF(['((STRUCT_UTMP *)NULL)->ut_line'], headers='utmpx.h utmp.h', + define='SIZEOF_UTMP_UT_LINE', critical=False) + if not conf.CONFIG_SET('SIZEOF_UTMP_UT_LINE'): + conf.env.with_utmp = False diff --git a/net/samba424/files/patch-source4_dns__server_dlz__minimal.h b/net/samba424/files/patch-source4_dns__server_dlz__minimal.h new file mode 100644 index 000000000000..bec85f854a08 --- /dev/null +++ b/net/samba424/files/patch-source4_dns__server_dlz__minimal.h @@ -0,0 +1,53 @@ +--- source4/dns_server/dlz_minimal.h.orig 2026-01-20 15:42:54 UTC ++++ source4/dns_server/dlz_minimal.h +@@ -26,31 +26,25 @@ + #include + #include + +-#if defined (BIND_VERSION_9_8) +-# error Bind 9.8 is not supported! +-#elif defined (BIND_VERSION_9_9) +-# error Bind 9.9 is not supported! +-#elif defined (BIND_VERSION_9_10) +-# define DLZ_DLOPEN_VERSION 3 +-# define DNS_CLIENTINFO_VERSION 1 +-# define ISC_BOOLEAN_AS_BOOL 0 +-#elif defined (BIND_VERSION_9_11) +-# define DLZ_DLOPEN_VERSION 3 +-# define DNS_CLIENTINFO_VERSION 2 +-# define ISC_BOOLEAN_AS_BOOL 0 +-#elif defined (BIND_VERSION_9_12) +-# define DLZ_DLOPEN_VERSION 3 +-# define DNS_CLIENTINFO_VERSION 2 +-# define ISC_BOOLEAN_AS_BOOL 0 +-#elif defined (BIND_VERSION_9_14) +-# define DLZ_DLOPEN_VERSION 3 +-# define DNS_CLIENTINFO_VERSION 2 +-#elif defined (BIND_VERSION_9_16) +-# define DLZ_DLOPEN_VERSION 3 +-# define DNS_CLIENTINFO_VERSION 2 +-#elif defined (BIND_VERSION_9_18) +-# define DLZ_DLOPEN_VERSION 3 +-# define DNS_CLIENTINFO_VERSION 2 ++#if defined (BIND_VERSION) ++# if BIND_VERSION == 908 ++# error Bind 9.8 is not supported! ++# elif BIND_VERSION == 909 ++# error Bind 9.9 is not supported! ++# elif BIND_VERSION == 910 ++# define DLZ_DLOPEN_VERSION 3 ++# define DNS_CLIENTINFO_VERSION 1 ++# define ISC_BOOLEAN_AS_BOOL 0 ++# elif BIND_VERSION == 911 || BIND_VERSION == 912 ++# define DLZ_DLOPEN_VERSION 3 ++# define DNS_CLIENTINFO_VERSION 2 ++# define ISC_BOOLEAN_AS_BOOL 0 ++# elif BIND_VERSION >= 914 ++# define DLZ_DLOPEN_VERSION 3 ++# define DNS_CLIENTINFO_VERSION 2 ++# else ++# error Unsupported BIND version ++# endif + #else + # error Unsupported BIND version + #endif diff --git a/net/samba424/files/patch-source4_dns__server_wscript__build b/net/samba424/files/patch-source4_dns__server_wscript__build new file mode 100644 index 000000000000..6af1d91f9dea --- /dev/null +++ b/net/samba424/files/patch-source4_dns__server_wscript__build @@ -0,0 +1,79 @@ +--- source4/dns_server/wscript_build.orig 2026-01-20 15:42:54 UTC ++++ source4/dns_server/wscript_build +@@ -20,69 +20,21 @@ bld.SAMBA_MODULE('service_dns', + ) + + # a bind9 dlz module giving access to the Samba DNS SAM +-bld.SAMBA_LIBRARY('dlz_bind9_10', ++for bind_version in (910, 911, 912, 914, 916, 918, 920): ++ string_version='%d_%d' % (bind_version // 100, bind_version % 100) ++ bld.SAMBA_LIBRARY('dlz_bind%s' % (string_version), + source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_10', ++ cflags='-DBIND_VERSION=%d' % bind_version, + private_library=True, +- link_name='modules/bind9/dlz_bind9_10.so', +- realname='dlz_bind9_10.so', ++ link_name='modules/bind9/dlz_bind%s.so' % (string_version), ++ realname='dlz_bind%s.so' % (string_version), + install_path='${MODULESDIR}/bind9', + deps='samba-hostconfig samdb-common gensec popt dnsserver_common', + enabled=bld.AD_DC_BUILD_IS_ENABLED()) + +-bld.SAMBA_LIBRARY('dlz_bind9_11', +- source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_11', +- private_library=True, +- link_name='modules/bind9/dlz_bind9_11.so', +- realname='dlz_bind9_11.so', +- install_path='${MODULESDIR}/bind9', +- deps='samba-hostconfig samdb-common gensec popt dnsserver_common', +- enabled=bld.AD_DC_BUILD_IS_ENABLED()) +- +-bld.SAMBA_LIBRARY('dlz_bind9_12', +- source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_12', +- private_library=True, +- link_name='modules/bind9/dlz_bind9_12.so', +- realname='dlz_bind9_12.so', +- install_path='${MODULESDIR}/bind9', +- deps='samba-hostconfig samdb-common gensec popt dnsserver_common', +- enabled=bld.AD_DC_BUILD_IS_ENABLED()) +- +-bld.SAMBA_LIBRARY('dlz_bind9_14', +- source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_14', +- private_library=True, +- link_name='modules/bind9/dlz_bind9_14.so', +- realname='dlz_bind9_14.so', +- install_path='${MODULESDIR}/bind9', +- deps='samba-hostconfig samdb-common gensec popt dnsserver_common', +- enabled=bld.AD_DC_BUILD_IS_ENABLED()) +- +-bld.SAMBA_LIBRARY('dlz_bind9_16', +- source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_16', +- private_library=True, +- link_name='modules/bind9/dlz_bind9_16.so', +- realname='dlz_bind9_16.so', +- install_path='${MODULESDIR}/bind9', +- deps='samba-hostconfig samdb-common gensec popt dnsserver_common', +- enabled=bld.AD_DC_BUILD_IS_ENABLED()) +- +-bld.SAMBA_LIBRARY('dlz_bind9_18', +- source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_18', +- private_library=True, +- link_name='modules/bind9/dlz_bind9_18.so', +- realname='dlz_bind9_18.so', +- install_path='${MODULESDIR}/bind9', +- deps='samba-hostconfig samdb-common gensec popt dnsserver_common', +- enabled=bld.AD_DC_BUILD_IS_ENABLED()) +- + bld.SAMBA_LIBRARY('dlz_bind9_for_torture', + source='dlz_bind9.c', +- cflags='-DBIND_VERSION_9_16', ++ cflags='-DBIND_VERSION=920', + private_library=True, + deps='samba-hostconfig samdb-common gensec popt dnsserver_common', + enabled=bld.AD_DC_BUILD_IS_ENABLED()) diff --git a/net/samba424/files/patch-source4_kdc_kdc-service-mit.c b/net/samba424/files/patch-source4_kdc_kdc-service-mit.c new file mode 100644 index 000000000000..6a3f1e3c97ef --- /dev/null +++ b/net/samba424/files/patch-source4_kdc_kdc-service-mit.c @@ -0,0 +1,16 @@ +--- source4/kdc/kdc-service-mit.c.orig 2026-01-20 15:42:54 UTC ++++ source4/kdc/kdc-service-mit.c +@@ -36,8 +36,12 @@ + #include "kdc/samba_kdc.h" + #include "kdc/kdc-server.h" + #include "kdc/kpasswd-service.h" +-#include + #include ++ ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wstrict-prototypes" ++#include ++#pragma clang diagnostic pop + + #include "source4/kdc/mit_kdc_irpc.h" + diff --git a/net/samba424/files/patch-source4_kdc_wdc-samba4.c b/net/samba424/files/patch-source4_kdc_wdc-samba4.c new file mode 100644 index 000000000000..0330052d4838 --- /dev/null +++ b/net/samba424/files/patch-source4_kdc_wdc-samba4.c @@ -0,0 +1,25 @@ +--- source4/kdc/wdc-samba4.c.orig 2026-01-20 15:42:54 UTC ++++ source4/kdc/wdc-samba4.c +@@ -22,6 +22,10 @@ + */ + + #include "includes.h" ++ ++#include ++#include ++ + #include "kdc/authn_policy_util.h" + #include "kdc/kdc-glue.h" + #include "kdc/db-glue.h" +@@ -29,6 +33,11 @@ + #include "sdb.h" + #include "sdb_hdb.h" + #include "librpc/gen_ndr/auth.h" ++ ++#ifndef PACKAGE_NAME ++#define PACKAGE_NAME "Heimdal" ++#endif ++ + #include + #include "lib/replace/system/filesys.h" + diff --git a/net/samba424/files/patch-source4_libcli_ldap_ldap__client.c b/net/samba424/files/patch-source4_libcli_ldap_ldap__client.c new file mode 100644 index 000000000000..31ee3a405db3 --- /dev/null +++ b/net/samba424/files/patch-source4_libcli_ldap_ldap__client.c @@ -0,0 +1,23 @@ +--- source4/libcli/ldap/ldap_client.c.orig 2026-01-20 15:42:54 UTC ++++ source4/libcli/ldap/ldap_client.c +@@ -407,8 +407,20 @@ static int ldap_parse_basic_url( + *pport = port; + return 0; + } ++#ifdef FREEBSD ++ int s0, s1; s0 = s1 = 0; ++ ret = sscanf(url, "%n%*[^:/]%n:%d", &s0, &s1, &port); + ++ if(ret >= 0) { ++ host = calloc(sizeof(char), s1 - s0 + 1); ++ if (host == NULL) { ++ return ENOMEM; ++ } ++ ret = sscanf(url, "%[^:/]:%d", host, &port); ++ } ++#else + ret = sscanf(url, "%m[^:/]:%d", &host, &port); ++#endif + if (ret < 1) { + return EINVAL; + } diff --git a/net/samba424/files/patch-source4_setup_named.conf.dlz b/net/samba424/files/patch-source4_setup_named.conf.dlz new file mode 100644 index 000000000000..3598881ac8d1 --- /dev/null +++ b/net/samba424/files/patch-source4_setup_named.conf.dlz @@ -0,0 +1,32 @@ +--- source4/setup/named.conf.dlz.orig 2026-01-20 15:42:56 UTC ++++ source4/setup/named.conf.dlz +@@ -10,28 +10,5 @@ dlz "AD DNS Zone" { + # Uncomment only single database line, depending on your BIND version + # + dlz "AD DNS Zone" { +- # For BIND 9.8.x +- ${BIND9_8} database "dlopen ${MODULESDIR}/bind9/dlz_bind9.so"; +- +- # For BIND 9.9.x +- ${BIND9_9} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_9.so"; +- +- # For BIND 9.10.x +- ${BIND9_10} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_10.so"; +- +- # For BIND 9.11.x +- ${BIND9_11} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_11.so"; +- +- # For BIND 9.12.x +- ${BIND9_12} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_12.so"; +- +- # For BIND 9.14.x +- ${BIND9_14} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_14.so"; +- +- # For BIND 9.16.x +- ${BIND9_16} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_16.so"; +- +- # For BIND 9.18.x and 9.20.x +- ${BIND9_18} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_18.so"; ++${BIND9_DLZ} + }; +- diff --git a/net/samba424/files/patch-source4_torture_dns_wscript__build b/net/samba424/files/patch-source4_torture_dns_wscript__build new file mode 100644 index 000000000000..00da5a992694 --- /dev/null +++ b/net/samba424/files/patch-source4_torture_dns_wscript__build @@ -0,0 +1,11 @@ +--- source4/torture/dns/wscript_build.orig 2026-01-20 15:42:56 UTC ++++ source4/torture/dns/wscript_build +@@ -5,7 +5,7 @@ if bld.AD_DC_BUILD_IS_ENABLED(): + source='dlz_bind9.c', + subsystem='smbtorture', + init_function='torture_bind_dns_init', +- cflags='-DBIND_VERSION_9_16', ++ cflags='-DBIND_VERSION=920', + deps='torture talloc torturemain dlz_bind9_for_torture', + internal_module=True + ) diff --git a/net/samba424/files/patch-source4_torture_ndr_ndr.h b/net/samba424/files/patch-source4_torture_ndr_ndr.h new file mode 100644 index 000000000000..21382338c295 --- /dev/null +++ b/net/samba424/files/patch-source4_torture_ndr_ndr.h @@ -0,0 +1,11 @@ +--- source4/torture/ndr/ndr.h.orig 2025-12-12 13:34:56 UTC ++++ source4/torture/ndr/ndr.h +@@ -20,6 +20,8 @@ + #ifndef __TORTURE_NDR_H__ + #define __TORTURE_NDR_H__ + ++#include ++ + #include "torture/torture.h" + #include "librpc/ndr/libndr.h" + #include "libcli/security/security.h" diff --git a/net/samba424/files/patch-third__party_heimdal_kdc_kdc__locl.h b/net/samba424/files/patch-third__party_heimdal_kdc_kdc__locl.h new file mode 100644 index 000000000000..53d8eea2e6e6 --- /dev/null +++ b/net/samba424/files/patch-third__party_heimdal_kdc_kdc__locl.h @@ -0,0 +1,13 @@ +--- third_party/heimdal/kdc/kdc_locl.h.orig 2026-01-20 15:42:56 UTC ++++ third_party/heimdal/kdc/kdc_locl.h +@@ -38,6 +38,10 @@ + #ifndef __KDC_LOCL_H__ + #define __KDC_LOCL_H__ + ++#include "gssapi/gssapi.h" ++#include "gssapi/gssapi_krb5.h" ++#include "gssapi/gssapi_spnego.h" ++ + #include "headers.h" + + typedef struct pk_client_params pk_client_params; diff --git a/net/samba424/files/pkg-message.in b/net/samba424/files/pkg-message.in new file mode 100644 index 000000000000..afdc959dd436 --- /dev/null +++ b/net/samba424/files/pkg-message.in @@ -0,0 +1,31 @@ +[ +{ type: install + message: </dev/null 2>&1; then + echo "OK" + else + echo "FAILED" + return 1 + fi +} + +samba_server_prestart() +{ + samba_server_checkconfig + # Make sure we have our RUNDIR, even if it's on a tmpfs + if [ -d "${samba_server_piddir}" ] || [ ! -e "${samba_server_piddir}" ]; then + install -d -m 0755 "${samba_server_piddir}" + fi + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200186 + if [ -d "${samba_server_privatedir}" ] || [ ! -e "${samba_server_privatedir}" ]; then + install -d -m 0700 "${samba_server_privatedir}" + fi + # + if ! df -t fdescfs -T "${samba_server_piddir}/fd" >/dev/null 2>&1; then + install -d -m 0555 "${samba_server_piddir}/fd" + if can_mount fdescfs; then + mount -t fdescfs -o nodup none "${samba_server_piddir}/fd" + else + warn "${name}: cannot fdescfs mount to ${samba_server_piddir}/fd" + fi + fi +} + +samba_server_poststop() +{ + if df -t fdescfs -T "${samba_server_piddir}/fd" >/dev/null 2>&1; then + if can_mount fdescfs; then + umount "${samba_server_piddir}/fd" + fi + fi +} + +samba_server_rcvar_cmd() +{ + local name rcvar desc + rcvar=${name}_enable + # Prevent recursive calling + unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd" + # Check master variable + run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args} + # Check dependent variables + #unset desc + for name in ${samba_daemons}; do + # reset loop vars + rcvars=''; v='' + rcvar=${name}_enable + eval "desc=\${${name}_desc}" + run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args} + done +} + +samba_server_reload_cmd() +{ + local name rcvar command pidfile force_run + # Prevent recursive calling + unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd" + # Ignore rcvar and run command + if [ -n "${_rc_prefix}" ] && [ "${_rc_prefix}" = "one" ] || [ -n "${rc_force}" ] || [ -n "${rc_fast}" ]; then + force_run=yes + fi + # Apply to all daemons + for name in ${samba_daemons}; do + rcvar=${name}_enable + command="%%PREFIX%%/sbin/${name}" + pidfile="${samba_server_piddir}/${name}.pid" + # Daemon should be enabled and running + if ( [ -n "${rcvar}" ] && checkyesno "${rcvar}" ) || [ -n "$force_run" ]; then + if [ -n "$(check_pidfile "${pidfile}" "${command}")" ]; then + debug "reloading ${name} configuration" + echo "Reloading ${name}." + ${smbcontrol_command} "${name}" 'reload-config' ${command_args} >/dev/null 2>&1 + fi + fi + done +} + +samba_server_cmd() +{ + local name rcvar rcvars v command pidfile samba_daemons samba_postcmd result force_run + # Stop processes in the reverse order + if [ "${rc_arg}" = "stop" ] ; then + samba_daemons=$(reverse_list ${samba_daemons}) + fi + # Within the cmd itself we operate with the global _precmd, _cmd and _postcmd + samba_postcmd=$_postcmd + # Prevent recursive calling + unset "${rc_arg}_cmd" "${rc_arg}_precmd" "${rc_arg}_postcmd" + # Ignore rcvar and run command + if [ -n "${_rc_prefix}" ] && [ "${_rc_prefix}" = "one" ] || [ -n "${rc_force}" ] || [ -n "${rc_fast}" ]; then + force_run=yes + fi + # Assume success + result=0 + # Apply to all daemons + for name in ${samba_daemons}; do + # XXX + #rcvars=''; v='' + rcvar=${name}_enable + command="%%PREFIX%%/sbin/${name}" + pidfile="${samba_server_piddir}/${name}.pid" + # Daemon should be enabled and running + if ( [ -n "${rcvar}" ] && checkyesno "${rcvar}" ) || [ -n "$force_run" ]; then + run_rc_command "${_rc_prefix}${rc_arg}" ${rc_extra_args} + # If any of the commands failed, take it as a global result + result=$((result || $?)) + fi + done + if [ -n "${samba_postcmd}" ]; then + eval "_postcmd=${samba_postcmd}" + fi + return $result +} + +samba_server_config_init() +{ + local name + # Defaults + samba_server_enable=${samba_server_enable:=NO} + samba_server_config=${samba_server_config=${samba_server_config_default}} + samba_server_configfile_arg=${samba_server_config:+--configfile="${samba_server_config}"} #" + #testparm_command="%%PREFIX%%/bin/samba-tool testparm --suppress-prompt --verbose ${samba_server_configfile_arg}" + testparm_command="%%PREFIX%%/bin/testparm --suppress-prompt --verbose ${samba_server_config}" + # Determine what daemons are necessary to run Samba in the current role + samba_server_role=$(${testparm_command} --parameter-name='server role' 2>/dev/null) + case "${samba_server_role}" in + active\ directory\ domain\ controller) + samba_daemons="samba" + ;; + auto|*) + samba_daemons="nmbd smbd winbindd" + ;; + esac + # Load daemons configuration + for name in ${samba_daemons}; do + load_rc_config "${name}" + # If samba_server_enable is 'YES' + if [ -n "${rcvar}" ] && checkyesno "${rcvar}"; then + if [ "${name}" != "winbindd" ]; then + # Set variable to 'YES' only if it is unset + eval "${name}_enable=\${${name}_enable-YES}" + else + # Winbindd + samba_server_idmap=$(${testparm_command} --parameter-name='idmap uid' 2>/dev/null) + if [ -n "${samba_server_idmap}" ]; then + winbindd_enable="YES" + fi + fi + fi + # If variable is empty, set it to 'NO' + eval "${name}_enable=\${${name}_enable:-NO}" + done + # Fetch parameters from configuration file + samba_server_lockdir="$(${testparm_command} --parameter-name='lock directory' 2>/dev/null)" + samba_server_lockdir=${samba_server_lockdir:=%%SAMBA4_LOCKDIR%%} + samba_server_piddir="$(${testparm_command} --parameter-name='pid directory' 2>/dev/null)" + samba_server_piddir=${samba_server_piddir:=%%SAMBA4_RUNDIR%%} + samba_server_privatedir="$(${testparm_command} --parameter-name='private dir' 2>/dev/null)" + samba_server_privatedir=${samba_server_privatedir:=%%SAMBA4_PRIVATEDIR%%} +} + +can_mount() +{ + local kld + kld=$1 + if ! load_kld $kld; then + return 1 + fi + if [ $(${SYSCTL_N} security.jail.jailed) -eq 0 ]; then + return 0 + fi + if [ $(${SYSCTL_N} security.jail.mount_allowed) -eq 1 ] && + [ $(${SYSCTL_N} security.jail.mount_${kld}_allowed) -eq 1 ]; then + return 0 + fi + return 1 +} + +# Load configuration variables +samba_server_config_init +nmbd_desc="NetBIOS name server" +smbd_desc="SMB/CIFS services server" +winbindd_desc="Name Service Switch server" +# Common flags +command_args=${samba_server_configfile_arg} +samba_flags=${samba_flags="--daemon"} +nmbd_flags=${nmbd_flags="--daemon"} +smbd_flags=${smbd_flags="--daemon"} +winbindd_flags=${winbindd_flags="--daemon"} +# Requirements +required_files="${samba_server_config}" +required_dirs="${samba_server_lockdir}" + +run_rc_command "$1" diff --git a/net/samba424/pkg-descr b/net/samba424/pkg-descr new file mode 100644 index 000000000000..885f153e054e --- /dev/null +++ b/net/samba424/pkg-descr @@ -0,0 +1,6 @@ +Samba4 is an attempt to implement an Active Directory compatible Domain +Controller. + +In short, you can join a WinNT, Win2000, WinXP or Win 2003 - 2016 member +server to a Samba4 domain, and it will behave much as it does in AD, +including Kerberos domain logins where applicable. diff --git a/net/samba424/pkg-plist b/net/samba424/pkg-plist new file mode 100644 index 000000000000..2e104d020ce0 --- /dev/null +++ b/net/samba424/pkg-plist @@ -0,0 +1,483 @@ +bin/cifsdd +bin/dbwrap_tool +bin/dumpmscat +bin/gentest +bin/locktest +bin/masktest +bin/mdsearch +bin/mvxattr +bin/ndrdump +bin/net +bin/nmblookup +bin/ntlm_auth +bin/oLschema2ldif +bin/pdbedit +bin/profiles +bin/regdiff +bin/regpatch +bin/regshell +bin/regtree +bin/rpcclient +bin/samba-log-parser +bin/samba-regedit +%%ADS%%bin/samba-tool +bin/sharesec +bin/smbcacls +bin/smbclient +bin/smbcontrol +bin/smbcquotas +bin/smbget +bin/smbpasswd +bin/smbspool +bin/smbstatus +bin/smbtar +bin/smbtree +bin/testparm +bin/vfstest +bin/wbinfo +bin/wspsearch +sbin/eventlogadm +sbin/nmbd +sbin/smbd +sbin/winbindd +include/samba4/credentials.h +include/samba4/dcerpc.h +include/samba4/gen_ndr/ndr_samr_c.h +include/samba4/ldb.h +include/samba4/ldb_errors.h +include/samba4/ldb_handlers.h +include/samba4/ldb_module.h +include/samba4/ldb_version.h +include/samba4/param.h +include/samba4/policy.h +include/samba4/util/tevent_ntstatus.h +include/samba4/util/tevent_unix.h +include/samba4/util/tevent_werror.h +include/samba4/util/talloc_keep_secret.h +include/samba4/charset.h +include/samba4/core/doserr.h +include/samba4/core/error.h +include/samba4/core/hresult.h +include/samba4/core/ntstatus_gen.h +include/samba4/core/ntstatus.h +include/samba4/core/werror_gen.h +include/samba4/core/werror.h +%%LDAP%%include/samba4/smb_ldap.h +%%LDAP%%include/samba4/smbldap.h +include/samba4/dcesrv_core.h +include/samba4/domain_credentials.h +include/samba4/gen_ndr/atsvc.h +include/samba4/gen_ndr/auth.h +include/samba4/gen_ndr/claims.h +include/samba4/gen_ndr/dcerpc.h +include/samba4/gen_ndr/drsblobs.h +include/samba4/gen_ndr/drsuapi.h +include/samba4/gen_ndr/krb5pac.h +include/samba4/gen_ndr/lsa.h +include/samba4/gen_ndr/misc.h +include/samba4/gen_ndr/nbt.h +include/samba4/gen_ndr/ndr_atsvc.h +include/samba4/gen_ndr/ndr_dcerpc.h +include/samba4/gen_ndr/ndr_drsblobs.h +include/samba4/gen_ndr/ndr_drsuapi.h +include/samba4/gen_ndr/ndr_krb5pac.h +include/samba4/gen_ndr/ndr_misc.h +include/samba4/gen_ndr/ndr_nbt.h +include/samba4/gen_ndr/ndr_samr.h +include/samba4/gen_ndr/ndr_svcctl_c.h +include/samba4/gen_ndr/ndr_svcctl.h +include/samba4/gen_ndr/netlogon.h +include/samba4/gen_ndr/samr.h +include/samba4/gen_ndr/security.h +include/samba4/gen_ndr/server_id.h +include/samba4/gen_ndr/svcctl.h +include/samba4/ldb_wrap.h +include/samba4/libsmbclient.h +include/samba4/lookup_sid.h +include/samba4/machine_sid.h +include/samba4/ndr.h +include/samba4/ndr/ndr_dcerpc.h +include/samba4/ndr/ndr_drsblobs.h +include/samba4/ndr/ndr_drsuapi.h +include/samba4/ndr/ndr_krb5pac.h +include/samba4/ndr/ndr_nbt.h +include/samba4/ndr/ndr_svcctl.h +include/samba4/netapi.h +include/samba4/passdb.h +include/samba4/rpc_common.h +include/samba4/samba/session.h +include/samba4/samba/version.h +include/samba4/share.h +include/samba4/smb2_lease_struct.h +include/samba4/smb3posix.h +include/samba4/smbconf.h +include/samba4/tdr.h +include/samba4/tsocket_internal.h +include/samba4/tsocket.h +include/samba4/util_ldb.h +include/samba4/util/attr.h +include/samba4/util/blocking.h +include/samba4/util/data_blob.h +include/samba4/util/debug.h +include/samba4/util/discard.h +include/samba4/util/fault.h +include/samba4/util/genrand.h +include/samba4/util/idtree_random.h +include/samba4/util/idtree.h +include/samba4/util/signal.h +include/samba4/util/substitute.h +include/samba4/util/tfork.h +include/samba4/util/time.h +include/samba4/wbclient.h +@dir include/samba4/util +@dir include/samba4/samba +@dir include/samba4/ndr +@dir include/samba4/gen_ndr +@dir include/samba4/core +@dir include/samba4 +%%SAMBA4_LIBDIR%%/libdcerpc-samr.so +%%SAMBA4_LIBDIR%%/libdcerpc-samr.so.0 +%%SAMBA4_LIBDIR%%/libdcerpc.so +%%SAMBA4_LIBDIR%%/libdcerpc.so.0 +%%SAMBA4_LIBDIR%%/libldb.so +%%SAMBA4_LIBDIR%%/libldb.so.2 +%%SAMBA4_LIBDIR%%/libsamba-credentials.so +%%SAMBA4_LIBDIR%%/libsamba-credentials.so.1 +%%SAMBA4_LIBDIR%%/libsamba-hostconfig.so +%%SAMBA4_LIBDIR%%/libsamba-hostconfig.so.0 +%%SAMBA4_LIBDIR%%/libsamba-policy.so +%%SAMBA4_LIBDIR%%/libsamba-policy.so.0 +%%SAMBA4_LIBDIR%%/libsamdb.so +%%SAMBA4_LIBDIR%%/libsamdb.so.0 +%%SAMBA4_LIBDIR%%/libtevent-util.so +%%SAMBA4_LIBDIR%%/libtevent-util.so.0 +%%SAMBA4_LIBDIR%%/libdcerpc-binding.so +%%SAMBA4_LIBDIR%%/libdcerpc-binding.so.0 +%%SAMBA4_LIBDIR%%/libdcerpc-server-core.so +%%SAMBA4_LIBDIR%%/libdcerpc-server-core.so.0 +%%SAMBA4_LIBDIR%%/libndr-krb5pac.so +%%SAMBA4_LIBDIR%%/libndr-krb5pac.so.0 +%%SAMBA4_LIBDIR%%/libndr-nbt.so +%%SAMBA4_LIBDIR%%/libndr-nbt.so.0 +%%SAMBA4_LIBDIR%%/libndr-standard.so +%%SAMBA4_LIBDIR%%/libndr-standard.so.0 +%%SAMBA4_LIBDIR%%/libndr.so +%%SAMBA4_LIBDIR%%/libndr.so.6 +%%SAMBA4_LIBDIR%%/libnetapi.so +%%SAMBA4_LIBDIR%%/libnetapi.so.1 +%%SAMBA4_LIBDIR%%/libsamba-errors.so +%%SAMBA4_LIBDIR%%/libsamba-errors.so.1 +%%SAMBA4_LIBDIR%%/libsamba-passdb.so +%%SAMBA4_LIBDIR%%/libsamba-passdb.so.0 +%%SAMBA4_LIBDIR%%/libsamba-util.so +%%SAMBA4_LIBDIR%%/libsamba-util.so.0 +%%SAMBA4_LIBDIR%%/libsmbclient.so +%%SAMBA4_LIBDIR%%/libsmbclient.so.0 +%%SAMBA4_LIBDIR%%/libsmbconf.so +%%SAMBA4_LIBDIR%%/libsmbconf.so.0 +%%LDAP%%%%SAMBA4_LIBDIR%%/libsmbldap.so +%%LDAP%%%%SAMBA4_LIBDIR%%/libsmbldap.so.2 +%%SAMBA4_LIBDIR%%/libwbclient.so +%%SAMBA4_LIBDIR%%/libwbclient.so.0 +lib/nss_winbind.so.1 +lib/nss_wins.so.1 +lib/pam_winbind.so +%%CUPS%%libexec/samba/smbspool_krb5_wrapper +libexec/samba/rpcd_classic +libexec/samba/rpcd_epmapper +libexec/samba/rpcd_fsrvp +libexec/samba/rpcd_lsad +libexec/samba/rpcd_mdssvc +libexec/samba/rpcd_spoolss +libexec/samba/rpcd_winreg +libexec/samba/samba-bgqd +libexec/samba/samba-dcerpcd +%%LDAP%%%%SAMBA4_LIBDIR%%/private/libsmbldaphelper-private-samba.so +%%SAMBA4_LIBDIR%%/private/libaddns-private-samba.so +%%SAMBA4_LIBDIR%%/private/libads-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libasn1-private-samba.so +%%SAMBA4_LIBDIR%%/private/libasn1util-private-samba.so +%%SAMBA4_LIBDIR%%/private/libauth-private-samba.so +%%SAMBA4_LIBDIR%%/private/libauth-unix-token-private-samba.so +%%SAMBA4_LIBDIR%%/private/libauth4-private-samba.so +%%SAMBA4_LIBDIR%%/private/libauthkrb5-private-samba.so +%%SAMBA4_LIBDIR%%/private/libCHARSET3-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcli-cldap-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcli-ldap-common-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcli-ldap-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcli-nbt-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcli-smb-common-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcli-spoolss-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcliauth-private-samba.so +%%SAMBA4_LIBDIR%%/private/libclidns-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcluster-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcmdline-contexts-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcmdline-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libcom-err-private-samba.so +%%SAMBA4_LIBDIR%%/private/libcommon-auth-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdbwrap-private-samba.so +%%SAMBA4_LIBDIR%%/private/libutil-crypt-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdcerpc-pkt-auth-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdcerpc-samba-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdcerpc-samba4-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdnsserver-common-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdsdb-module-private-samba.so +%%SAMBA4_LIBDIR%%/private/libevents-private-samba.so +%%SAMBA4_LIBDIR%%/private/libflag-mapping-private-samba.so +%%SAMBA4_LIBDIR%%/private/libgenrand-private-samba.so +%%SAMBA4_LIBDIR%%/private/libgensec-private-samba.so +%%SAMBA4_LIBDIR%%/private/libgpext-private-samba.so +%%SAMBA4_LIBDIR%%/private/libgpo-private-samba.so +%%SAMBA4_LIBDIR%%/private/libgse-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libgss-preauth-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libgssapi-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libhcrypto-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libhdb-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libheimbase-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libheimntlm-private-samba.so +%%SAMBA4_LIBDIR%%/private/libhttp-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libhx509-private-samba.so +%%SAMBA4_LIBDIR%%/private/libidmap-private-samba.so +%%SAMBA4_LIBDIR%%/private/libinterfaces-private-samba.so +%%SAMBA4_LIBDIR%%/private/libiov-buf-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libkdc-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libkrb5-private-samba.so +%%SAMBA4_LIBDIR%%/private/libkrb5samba-private-samba.so +%%SAMBA4_LIBDIR%%/private/libldbsamba-private-samba.so +%%SAMBA4_LIBDIR%%/private/liblibcli-lsa3-private-samba.so +%%SAMBA4_LIBDIR%%/private/liblibcli-netlogon3-private-samba.so +%%SAMBA4_LIBDIR%%/private/liblibsmb-private-samba.so +%%SAMBA4_LIBDIR%%/private/libLIBWBCLIENT-OLD-private-samba.so +%%SAMBA4_LIBDIR%%/private/libmessages-dgm-private-samba.so +%%SAMBA4_LIBDIR%%/private/libmessages-util-private-samba.so +%%SAMBA4_LIBDIR%%/private/libMESSAGING-private-samba.so +%%SAMBA4_LIBDIR%%/private/libMESSAGING-SEND-private-samba.so +%%SAMBA4_LIBDIR%%/private/libmscat-private-samba.so +%%SAMBA4_LIBDIR%%/private/libmsghdr-private-samba.so +%%SAMBA4_LIBDIR%%/private/libmsrpc3-private-samba.so +%%SAMBA4_LIBDIR%%/private/libndr-samba-private-samba.so +%%SAMBA4_LIBDIR%%/private/libndr-samba4-private-samba.so +%%SAMBA4_LIBDIR%%/private/libnet-keytab-private-samba.so +%%SAMBA4_LIBDIR%%/private/libnetif-private-samba.so +%%SAMBA4_LIBDIR%%/private/libnpa-tstream-private-samba.so +%%SAMBA4_LIBDIR%%/private/libnss-info-private-samba.so +%%SAMBA4_LIBDIR%%/private/libposix-eadb-private-samba.so +%%SAMBA4_LIBDIR%%/private/libprinter-driver-private-samba.so +%%SAMBA4_LIBDIR%%/private/libprinting-migrate-private-samba.so +%%SAMBA4_LIBDIR%%/private/libREG-FULL-private-samba.so +%%SAMBA4_LIBDIR%%/private/libregistry-private-samba.so +%%SAMBA4_LIBDIR%%/private/libreplace-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libroken-private-samba.so +%%SAMBA4_LIBDIR%%/private/libRPC-SERVER-LOOP-private-samba.so +%%SAMBA4_LIBDIR%%/private/libRPC-WORKER-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamdb-common-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsecrets3-private-samba.so +%%SAMBA4_LIBDIR%%/private/libserver-id-db-private-samba.so +%%SAMBA4_LIBDIR%%/private/libserver-role-private-samba.so +%%SAMBA4_LIBDIR%%/private/libshares-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsmbclient-raw-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsmbd-base-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsmbd-shim-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsmbpasswdparser-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsocket-blocking-private-samba.so +%%SAMBA4_LIBDIR%%/private/libstable-sort-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsys-rw-private-samba.so +%%SAMBA4_LIBDIR%%/private/libtalloc-report-printf-private-samba.so +%%SAMBA4_LIBDIR%%/private/libtalloc-report-private-samba.so +%%SAMBA4_LIBDIR%%/private/libtdb-wrap-private-samba.so +%%SAMBA4_LIBDIR%%/private/libtime-basic-private-samba.so +%%SAMBA4_LIBDIR%%/private/libtorture-private-samba.so +%%SAMBA4_LIBDIR%%/private/libutil-reg-private-samba.so +%%SAMBA4_LIBDIR%%/private/libutil-setid-private-samba.so +%%SAMBA4_LIBDIR%%/private/libutil-tdb-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libwind-private-samba.so +%%SAMBA4_LIBDIR%%/private/libxattr-tdb-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-cluster-support-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-debug-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-modules-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-net-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-security-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-security-trusts-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba-sockets-private-samba.so +%%SAMBA4_LIBDIR%%/private/libsamba3-util-private-samba.so +@dir %%SAMBA4_LIBDIR%%/private +@dir %%SAMBA4_LIBDIR%% +%%PKGCONFIGDIR%%/ndr.pc +%%PKGCONFIGDIR%%/ndr_krb5pac.pc +%%PKGCONFIGDIR%%/ndr_nbt.pc +%%PKGCONFIGDIR%%/ndr_standard.pc +%%PKGCONFIGDIR%%/netapi.pc +%%PKGCONFIGDIR%%/samba-util.pc +%%PKGCONFIGDIR%%/smbclient.pc +%%PKGCONFIGDIR%%/wbclient.pc +%%PKGCONFIGDIR%%/dcerpc.pc +%%PKGCONFIGDIR%%/dcerpc_samr.pc +%%PKGCONFIGDIR%%/ldb.pc +%%PKGCONFIGDIR%%/samba-credentials.pc +%%PKGCONFIGDIR%%/samba-hostconfig.pc +%%PKGCONFIGDIR%%/samba-policy.pc +%%PKGCONFIGDIR%%/samdb.pc +@comment Setup files +@comment Man pages +%%MANPAGES%%share/man/man1/dbwrap_tool.1.gz +%%MANPAGES%%share/man/man1/gentest.1.gz +%%MANPAGES%%share/man/man1/locktest.1.gz +%%MANPAGES%%share/man/man1/log2pcap.1.gz +%%MANPAGES%%share/man/man1/masktest.1.gz +%%MANPAGES%%share/man/man1/mdsearch.1.gz +%%MANPAGES%%share/man/man1/mvxattr.1.gz +%%MANPAGES%%share/man/man1/ndrdump.1.gz +%%MANPAGES%%share/man/man1/nmblookup.1.gz +%%MANPAGES%%share/man/man1/ntlm_auth.1.gz +%%MANPAGES%%share/man/man1/oLschema2ldif.1.gz +%%MANPAGES%%share/man/man1/profiles.1.gz +%%MANPAGES%%share/man/man1/regdiff.1.gz +%%MANPAGES%%share/man/man1/regpatch.1.gz +%%MANPAGES%%share/man/man1/regshell.1.gz +%%MANPAGES%%share/man/man1/regtree.1.gz +%%MANPAGES%%share/man/man1/rpcclient.1.gz +%%MANPAGES%%share/man/man1/samba-log-parser.1.gz +%%MANPAGES%%share/man/man1/sharesec.1.gz +%%MANPAGES%%share/man/man1/smbcacls.1.gz +%%MANPAGES%%share/man/man1/smbclient.1.gz +%%MANPAGES%%share/man/man1/smbcontrol.1.gz +%%MANPAGES%%share/man/man1/smbcquotas.1.gz +%%MANPAGES%%share/man/man1/smbget.1.gz +%%MANPAGES%%share/man/man1/smbstatus.1.gz +%%MANPAGES%%share/man/man1/smbtar.1.gz +%%MANPAGES%%share/man/man1/smbtree.1.gz +%%MANPAGES%%share/man/man1/testparm.1.gz +%%MANPAGES%%share/man/man1/wbinfo.1.gz +%%MANPAGES%%share/man/man1/wspsearch.1.gz +%%MANPAGES%%share/man/man5/lmhosts.5.gz +%%MANPAGES%%share/man/man5/pam_winbind.conf.5.gz +%%MANPAGES%%share/man/man5/smb.conf.5.gz +%%MANPAGES%%share/man/man5/smb4.conf.5.gz +%%MANPAGES%%share/man/man5/smbpasswd.5.gz +%%MANPAGES%%share/man/man7/libsmbclient.7.gz +%%MANPAGES%%share/man/man7/samba.7.gz +%%MANPAGES%%share/man/man7/traffic_learner.7.gz +%%MANPAGES%%share/man/man7/traffic_replay.7.gz +%%MANPAGES%%share/man/man8/cifsdd.8.gz +%%MANPAGES%%share/man/man8/eventlogadm.8.gz +%%MANPAGES%%share/man/man8/idmap_ad.8.gz +%%MANPAGES%%share/man/man8/idmap_autorid.8.gz +%%MANPAGES%%share/man/man8/idmap_hash.8.gz +%%MANPAGES%%share/man/man8/idmap_ldap.8.gz +%%MANPAGES%%share/man/man8/idmap_nss.8.gz +%%MANPAGES%%share/man/man8/idmap_rfc2307.8.gz +%%MANPAGES%%share/man/man8/idmap_rid.8.gz +%%MANPAGES%%share/man/man8/idmap_script.8.gz +%%MANPAGES%%share/man/man8/idmap_tdb.8.gz +%%MANPAGES%%share/man/man8/idmap_tdb2.8.gz +%%MANPAGES%%share/man/man8/net.8.gz +%%MANPAGES%%share/man/man8/nmbd.8.gz +%%MANPAGES%%share/man/man8/pam_winbind.8.gz +%%MANPAGES%%share/man/man8/pdbedit.8.gz +%%MANPAGES%%share/man/man8/samba-bgqd.8.gz +%%MANPAGES%%share/man/man8/samba-dcerpcd.8.gz +%%MANPAGES%%share/man/man8/samba-regedit.8.gz +%%MANPAGES%%share/man/man8/samba-tool.8.gz +%%MANPAGES%%share/man/man8/samba.8.gz +%%MANPAGES%%share/man/man8/samba_downgrade_db.8.gz +%%MANPAGES%%share/man/man8/smbd.8.gz +%%MANPAGES%%share/man/man8/smbpasswd.8.gz +%%MANPAGES%%share/man/man8/smbspool.8.gz +%%MANPAGES%%%%CUPS%%share/man/man8/smbspool_krb5_wrapper.8.gz +%%MANPAGES%%share/man/man8/vfs_acl_tdb.8.gz +%%MANPAGES%%share/man/man8/vfs_acl_xattr.8.gz +%%MANPAGES%%share/man/man8/vfs_aio_fork.8.gz +%%MANPAGES%%share/man/man8/vfs_aio_pthread.8.gz +%%SAMBA4_MODULEDIR%%/vfs/aio_ratelimit.so +%%MANPAGES%%share/man/man8/vfs_aio_ratelimit.8.gz +%%MANPAGES%%share/man/man8/vfs_audit.8.gz +%%MANPAGES%%share/man/man8/vfs_cacheprime.8.gz +%%MANPAGES%%share/man/man8/vfs_cap.8.gz +%%MANPAGES%%share/man/man8/vfs_catia.8.gz +%%MANPAGES%%share/man/man8/vfs_commit.8.gz +%%MANPAGES%%share/man/man8/vfs_crossrename.8.gz +%%MANPAGES%%share/man/man8/vfs_default_quota.8.gz +%%MANPAGES%%share/man/man8/vfs_dirsort.8.gz +%%MANPAGES%%share/man/man8/vfs_expand_msdfs.8.gz +%%MANPAGES%%share/man/man8/vfs_extd_audit.8.gz +%%MANPAGES%%share/man/man8/vfs_fake_perms.8.gz +%%MANPAGES%%share/man/man8/vfs_freebsd.8.gz +%%MANPAGES%%share/man/man8/vfs_full_audit.8.gz +%%MANPAGES%%share/man/man8/vfs_linux_xfs_sgid.8.gz +%%MANPAGES%%share/man/man8/vfs_media_harmony.8.gz +%%MANPAGES%%share/man/man8/vfs_offline.8.gz +%%MANPAGES%%share/man/man8/vfs_preopen.8.gz +%%MANPAGES%%share/man/man8/vfs_readahead.8.gz +%%MANPAGES%%share/man/man8/vfs_readonly.8.gz +%%MANPAGES%%share/man/man8/vfs_recycle.8.gz +%%MANPAGES%%share/man/man8/vfs_shadow_copy.8.gz +%%MANPAGES%%share/man/man8/vfs_shadow_copy2.8.gz +%%MANPAGES%%share/man/man8/vfs_shell_snap.8.gz +%%MANPAGES%%share/man/man8/vfs_streams_depot.8.gz +%%MANPAGES%%share/man/man8/vfs_streams_xattr.8.gz +%%MANPAGES%%share/man/man8/vfs_syncops.8.gz +%%MANPAGES%%share/man/man8/vfs_time_audit.8.gz +%%MANPAGES%%share/man/man8/vfs_unityed_media.8.gz +%%MANPAGES%%share/man/man8/vfs_virusfilter.8.gz +%%MANPAGES%%share/man/man8/vfs_widelinks.8.gz +%%MANPAGES%%share/man/man8/vfs_worm.8.gz +%%MANPAGES%%share/man/man8/vfs_xattr_tdb.8.gz +%%MANPAGES%%share/man/man8/vfs_zfsacl.8.gz +%%MANPAGES%%share/man/man8/winbind_krb5_locator.8.gz +%%MANPAGES%%share/man/man8/winbindd.8.gz +@dir %%SAMBA4_RUNDIR%% +@dir %%SAMBA4_LOGDIR%% +@dir %%SAMBA4_LOCKDIR%% +@dir %%SAMBA4_PRIVATEDIR%% +@dir %%SAMBA4_BINDDNSDIR%% +@comment Use bundled libraries +%%BUNDLED_CMOCKA%%%%SAMBA4_LIBDIR%%/private/libcmocka-private-samba.so +%%PYTHON3%%%%PYTHON_SITELIBDIR%%/_ldb_text.py +%%PYTHON3%%%%PYTHON_SITELIBDIR%%/ldb%%PYTHON_TAG%%.so +%%PYTHON3%%%%SAMBA4_LIBDIR%%/private/libpyldb-util%%PYTHON_TAG%%-private-samba.so +bin/ldbadd +bin/ldbdel +bin/ldbedit +bin/ldbmodify +bin/ldbrename +bin/ldbsearch +%%SAMBA4_LIBDIR%%/private/libldb-cmdline-private-samba.so +%%SAMBA4_LIBDIR%%/private/libldb-key-value-private-samba.so +%%SAMBA4_LIBDIR%%/private/libldb-tdb-err-map-private-samba.so +%%SAMBA4_LIBDIR%%/private/libldb-tdb-int-private-samba.so +%%LDAP%%%%SAMBA_LDB_MODULESDIR%%/ldap.so +%%SAMBA_LDB_MODULESDIR%%/asq.so +%%SAMBA_LDB_MODULESDIR%%/ildap.so +%%SAMBA_LDB_MODULESDIR%%/ldb.so +%%SAMBA_LDB_MODULESDIR%%/ldbsamba_extensions.so +%%SAMBA_LDB_MODULESDIR%%/paged_searches.so +%%SAMBA_LDB_MODULESDIR%%/rdn_name.so +%%SAMBA_LDB_MODULESDIR%%/sample.so +%%SAMBA_LDB_MODULESDIR%%/server_sort.so +%%SAMBA_LDB_MODULESDIR%%/skel.so +%%SAMBA_LDB_MODULESDIR%%/tdb.so +%%MANPAGES%%share/man/man3/ldb.3.gz +%%MANPAGES%%share/man/man1/ldbadd.1.gz +%%MANPAGES%%share/man/man1/ldbdel.1.gz +%%MANPAGES%%share/man/man1/ldbedit.1.gz +%%MANPAGES%%share/man/man1/ldbmodify.1.gz +%%MANPAGES%%share/man/man1/ldbrename.1.gz +%%MANPAGES%%share/man/man1/ldbsearch.1.gz +%%MANPAGES%%%%BUNDLED_TDB%%share/man/man8/samba-tdbbackup.8.gz +%%MANPAGES%%%%BUNDLED_TDB%%share/man/man8/samba-tdbdump.8.gz +%%MANPAGES%%%%BUNDLED_TDB%%share/man/man8/samba-tdbrestore.8.gz +%%MANPAGES%%%%BUNDLED_TDB%%share/man/man8/samba-tdbtool.8.gz +%%BUNDLED_TALLOC%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/talloc%%PYTHON_TAG%%.so +%%BUNDLED_TALLOC%%%%PYTHON3%%%%SAMBA4_LIBDIR%%/private/libpytalloc-util%%PYTHON_TAG%%-private-samba.so +%%BUNDLED_TALLOC%%%%SAMBA4_LIBDIR%%/private/libtalloc-private-samba.so +%%MANPAGES%%%%BUNDLED_TALLOC%%share/man/man3/samba-talloc.3.gz +%%BUNDLED_TDB%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/_tdb_text.py +%%BUNDLED_TDB%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/tdb%%PYTHON_TAG%%.so +%%BUNDLED_TDB%%bin/tdbbackup +%%BUNDLED_TDB%%bin/tdbdump +%%BUNDLED_TDB%%bin/tdbrestore +%%BUNDLED_TDB%%bin/tdbtool +%%BUNDLED_TDB%%%%SAMBA4_LIBDIR%%/private/libtdb-private-samba.so +%%BUNDLED_TEVENT%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/_tevent%%PYTHON_TAG%%.so +%%BUNDLED_TEVENT%%%%PYTHON3%%%%PYTHON_SITELIBDIR%%/tevent.py +%%BUNDLED_TEVENT%%%%SAMBA4_LIBDIR%%/private/libtevent-private-samba.so diff --git a/net/samba424/pkg-plist.ad_dc b/net/samba424/pkg-plist.ad_dc new file mode 100644 index 000000000000..5ac044105f7b --- /dev/null +++ b/net/samba424/pkg-plist.ad_dc @@ -0,0 +1,183 @@ +sbin/samba_downgrade_db +sbin/samba +sbin/samba_dnsupdate +sbin/samba_kcc +sbin/samba_spnupdate +sbin/samba_upgradedns +include/samba4/dcerpc_server.h +%%SAMBA4_LIBDIR%%/libdcerpc-server.so +%%SAMBA4_LIBDIR%%/libdcerpc-server.so.0 +%%SAMBA4_LIBDIR%%/private/libad-claims-private-samba.so +%%SAMBA4_LIBDIR%%/private/libauthn-policy-util-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdlz-bind9-for-torture-private-samba.so +%%SAMBA4_LIBDIR%%/private/libprocess-model-private-samba.so +%%SAMBA4_LIBDIR%%/private/libservice-private-samba.so +%%GSSAPI_BUILTIN%%%%SAMBA4_LIBDIR%%/private/libHDB-SAMBA4-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdb-glue-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdfs-server-ad-private-samba.so +%%SAMBA4_LIBDIR%%/private/libdsdb-garbage-collect-tombstones-private-samba.so +%%SAMBA4_LIBDIR%%/private/libpac-private-samba.so +%%SAMBA4_LIBDIR%%/private/libscavenge-dns-records-private-samba.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_10.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_11.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_12.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_14.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_16.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_18.so +%%SAMBA4_MODULEDIR%%/bind9/dlz_bind9_20.so +%%SAMBA4_MODULEDIR%%/gensec/krb5.so +%%SAMBA_LDB_MODULESDIR%%/acl.so +%%SAMBA_LDB_MODULESDIR%%/aclread.so +%%SAMBA_LDB_MODULESDIR%%/anr.so +%%SAMBA_LDB_MODULESDIR%%/audit_log.so +%%SAMBA_LDB_MODULESDIR%%/count_attrs.so +%%SAMBA_LDB_MODULESDIR%%/descriptor.so +%%SAMBA_LDB_MODULESDIR%%/dirsync.so +%%SAMBA_LDB_MODULESDIR%%/dns_notify.so +%%SAMBA_LDB_MODULESDIR%%/dsdb_notification.so +%%SAMBA_LDB_MODULESDIR%%/encrypted_secrets.so +%%SAMBA_LDB_MODULESDIR%%/extended_dn_in.so +%%SAMBA_LDB_MODULESDIR%%/extended_dn_out.so +%%SAMBA_LDB_MODULESDIR%%/extended_dn_store.so +%%SAMBA_LDB_MODULESDIR%%/group_audit_log.so +%%SAMBA_LDB_MODULESDIR%%/instancetype.so +%%SAMBA_LDB_MODULESDIR%%/lazy_commit.so +%%SAMBA_LDB_MODULESDIR%%/linked_attributes.so +%%SAMBA_LDB_MODULESDIR%%/new_partition.so +%%SAMBA_LDB_MODULESDIR%%/objectclass.so +%%SAMBA_LDB_MODULESDIR%%/objectclass_attrs.so +%%SAMBA_LDB_MODULESDIR%%/objectguid.so +%%SAMBA_LDB_MODULESDIR%%/operational.so +%%SAMBA_LDB_MODULESDIR%%/paged_results.so +%%SAMBA_LDB_MODULESDIR%%/partition.so +%%SAMBA_LDB_MODULESDIR%%/password_hash.so +%%SAMBA_LDB_MODULESDIR%%/ranged_results.so +%%SAMBA_LDB_MODULESDIR%%/repl_meta_data.so +%%SAMBA_LDB_MODULESDIR%%/resolve_oids.so +%%SAMBA_LDB_MODULESDIR%%/rootdse.so +%%SAMBA_LDB_MODULESDIR%%/samba3sam.so +%%SAMBA_LDB_MODULESDIR%%/samba3sid.so +%%SAMBA_LDB_MODULESDIR%%/samba_dsdb.so +%%SAMBA_LDB_MODULESDIR%%/samba_secrets.so +%%SAMBA_LDB_MODULESDIR%%/samldb.so +%%SAMBA_LDB_MODULESDIR%%/schema_data.so +%%SAMBA_LDB_MODULESDIR%%/schema_load.so +%%SAMBA_LDB_MODULESDIR%%/secrets_tdb_sync.so +%%SAMBA_LDB_MODULESDIR%%/show_deleted.so +%%SAMBA_LDB_MODULESDIR%%/subtree_delete.so +%%SAMBA_LDB_MODULESDIR%%/subtree_rename.so +%%SAMBA_LDB_MODULESDIR%%/tombstone_reanimate.so +%%SAMBA_LDB_MODULESDIR%%/trust_notify.so +%%SAMBA_LDB_MODULESDIR%%/unique_object_sids.so +%%SAMBA_LDB_MODULESDIR%%/update_keytab.so +%%SAMBA_LDB_MODULESDIR%%/vlv.so +%%SAMBA_LDB_MODULESDIR%%/wins_ldb.so +%%SAMBA4_MODULEDIR%%/process_model/prefork.so +%%SAMBA4_MODULEDIR%%/process_model/standard.so +%%SAMBA4_MODULEDIR%%/service/cldap.so +%%SAMBA4_MODULEDIR%%/service/dcerpc.so +%%SAMBA4_MODULEDIR%%/service/dns.so +%%SAMBA4_MODULEDIR%%/service/dns_update.so +%%SAMBA4_MODULEDIR%%/service/drepl.so +%%SAMBA4_MODULEDIR%%/service/ft_scanner.so +%%SAMBA4_MODULEDIR%%/service/kcc.so +%%SAMBA4_MODULEDIR%%/service/kdc.so +%%SAMBA4_MODULEDIR%%/service/ldap.so +%%SAMBA4_MODULEDIR%%/service/nbtd.so +%%SAMBA4_MODULEDIR%%/service/ntp_signd.so +%%SAMBA4_MODULEDIR%%/service/s3fs.so +%%SAMBA4_MODULEDIR%%/service/winbindd.so +%%SAMBA4_MODULEDIR%%/service/wrepl.so +%%SAMBA4_MODULEDIR%%/vfs/posix_eadb.so +%%DATADIR%%/samba/admx/GNOME_Settings.admx +%%DATADIR%%/samba/admx/en-US/GNOME_Settings.adml +%%DATADIR%%/samba/admx/en-US/samba.adml +%%DATADIR%%/samba/admx/ru-RU/GNOME_Settings.adml +%%DATADIR%%/samba/admx/samba.admx +%%DATADIR%%/setup/ad-schema/AD_DS_Attributes_Windows_Server_v1903.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Attributes__Windows_Server_2012_R2.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Attributes__Windows_Server_2016.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Attributes__Windows_Server_v1803.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Classes_Windows_Server_v1903.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Classes__Windows_Server_2012_R2.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Classes__Windows_Server_2016.ldf +%%DATADIR%%/setup/ad-schema/AD_DS_Classes__Windows_Server_v1803.ldf +%%DATADIR%%/setup/ad-schema/Attributes_for_AD_DS__Windows_Server_2008_R2.ldf +%%DATADIR%%/setup/ad-schema/Attributes_for_AD_DS__Windows_Server_2012.ldf +%%DATADIR%%/setup/ad-schema/Classes_for_AD_DS__Windows_Server_2008_R2.ldf +%%DATADIR%%/setup/ad-schema/Classes_for_AD_DS__Windows_Server_2012.ldf +%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_Attributes.txt +%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_Classes.txt +%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_R2_Attributes.txt +%%DATADIR%%/setup/ad-schema/MS-AD_Schema_2K8_R2_Classes.txt +%%DATADIR%%/setup/ad-schema/licence.txt +%%DATADIR%%/setup/adprep/WindowsServerDocs/Forest-Wide-Updates.md +%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch49.ldf.diff +%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch50.ldf.diff +%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch51.ldf.diff +%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch57.ldf.diff +%%DATADIR%%/setup/adprep/WindowsServerDocs/Sch59.ldf.diff +%%DATADIR%%/setup/adprep/WindowsServerDocs/Schema-Updates.md +%%DATADIR%%/setup/adprep/fix-forest-rev.ldf +%%DATADIR%%/setup/aggregate_schema.ldif +%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k0.txt +%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k3.txt +%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k3R2.txt +%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k8.txt +%%DATADIR%%/setup/display-specifiers/DisplaySpecifiers-Win2k8R2.txt +%%DATADIR%%/setup/dns_update_list +%%DATADIR%%/setup/extended-rights.ldif +%%DATADIR%%/setup/idmap_init.ldif +%%DATADIR%%/setup/krb5.conf +%%DATADIR%%/setup/named.conf +%%DATADIR%%/setup/named.conf.dlz +%%DATADIR%%/setup/named.conf.update +%%DATADIR%%/setup/named.txt +%%DATADIR%%/setup/prefixMap.txt +%%DATADIR%%/setup/provision.ldif +%%DATADIR%%/setup/provision.reg +%%DATADIR%%/setup/provision.zone +%%DATADIR%%/setup/provision_basedn.ldif +%%DATADIR%%/setup/provision_basedn_modify.ldif +%%DATADIR%%/setup/provision_basedn_options.ldif +%%DATADIR%%/setup/provision_basedn_references.ldif +%%DATADIR%%/setup/provision_computers_add.ldif +%%DATADIR%%/setup/provision_computers_modify.ldif +%%DATADIR%%/setup/provision_configuration.ldif +%%DATADIR%%/setup/provision_configuration_basedn.ldif +%%DATADIR%%/setup/provision_configuration_modify.ldif +%%DATADIR%%/setup/provision_configuration_references.ldif +%%DATADIR%%/setup/provision_dns_accounts_add.ldif +%%DATADIR%%/setup/provision_dns_add_samba.ldif +%%DATADIR%%/setup/provision_dnszones_add.ldif +%%DATADIR%%/setup/provision_dnszones_modify.ldif +%%DATADIR%%/setup/provision_dnszones_partitions.ldif +%%DATADIR%%/setup/provision_group_policy.ldif +%%DATADIR%%/setup/provision_init.ldif +%%DATADIR%%/setup/provision_partitions.ldif +%%DATADIR%%/setup/provision_privilege.ldif +%%DATADIR%%/setup/provision_rootdse_add.ldif +%%DATADIR%%/setup/provision_rootdse_modify.ldif +%%DATADIR%%/setup/provision_schema_basedn.ldif +%%DATADIR%%/setup/provision_schema_basedn_modify.ldif +%%DATADIR%%/setup/provision_self_join.ldif +%%DATADIR%%/setup/provision_self_join_config.ldif +%%DATADIR%%/setup/provision_self_join_modify.ldif +%%DATADIR%%/setup/provision_self_join_modify_config.ldif +%%DATADIR%%/setup/provision_self_join_modify_schema.ldif +%%DATADIR%%/setup/provision_users.ldif +%%DATADIR%%/setup/provision_users_add.ldif +%%DATADIR%%/setup/provision_users_modify.ldif +%%DATADIR%%/setup/provision_well_known_sec_princ.ldif +%%DATADIR%%/setup/schema_samba4.ldif +%%DATADIR%%/setup/secrets.ldif +%%DATADIR%%/setup/secrets_dns.ldif +%%DATADIR%%/setup/secrets_init.ldif +%%DATADIR%%/setup/share.ldif +%%DATADIR%%/setup/spn_update_list +%%DATADIR%%/setup/ypServ30.ldif +%%PKGCONFIGDIR%%/dcerpc_server.pc +@dir %%DATADIR%%/setup/display-specifiers +@dir %%DATADIR%%/setup/ad-schema +@dir %%DATADIR%%/setup +@dir %%DATADIR%% diff --git a/net/samba424/pkg-plist.cluster b/net/samba424/pkg-plist.cluster new file mode 100644 index 000000000000..90bafe54170d --- /dev/null +++ b/net/samba424/pkg-plist.cluster @@ -0,0 +1,83 @@ +@comment Cluster +bin/ctdb +bin/ctdb_diagnostics +bin/ltdbtool +bin/onnode +bin/ping_pong +etc/ctdb/ctdb-backup-persistent-tdbs.sh +etc/ctdb/ctdb-crash-cleanup.sh +etc/ctdb/debug-hung-script.sh +etc/ctdb/debug_locks.sh +etc/ctdb/events/legacy/00.ctdb.script +etc/ctdb/events/legacy/01.reclock.script +etc/ctdb/events/legacy/05.system.script +etc/ctdb/events/legacy/10.interface.script +etc/ctdb/events/legacy/95.database.script +etc/ctdb/events/notification/README +etc/ctdb/functions +etc/ctdb/nfs-checks.d/00.portmapper.check +etc/ctdb/nfs-checks.d/10.status.check +etc/ctdb/nfs-checks.d/20.nfs.check +etc/ctdb/nfs-checks.d/30.nlockmgr.check +etc/ctdb/nfs-checks.d/40.mountd.check +etc/ctdb/nfs-checks.d/50.rquotad.check +etc/ctdb/nfs-checks.d/README +etc/ctdb/nfs-linux-kernel-callout +etc/ctdb/notify.sh +etc/ctdb/statd-callout +lib/samba4/private/libctdb-event-client-private-samba.so +libexec/ctdb/ctdb-config +libexec/ctdb/ctdb-event +libexec/ctdb/ctdb-eventd +libexec/ctdb/ctdb-path +libexec/ctdb/ctdb_killtcp +libexec/ctdb/ctdb_lock_helper +libexec/ctdb/ctdb_lvs +libexec/ctdb/ctdb_mutex_fcntl_helper +libexec/ctdb/ctdb_natgw +libexec/ctdb/ctdb_recovery_helper +libexec/ctdb/ctdb_smnotify_helper +libexec/ctdb/ctdb_takeover_helper +libexec/ctdb/statd_callout +libexec/ctdb/statd_callout_helper +libexec/samba/rpcd_witness +%%MANPAGES%%share/man/man1/ctdb_diagnostics.1.gz +%%MANPAGES%%share/man/man1/ctdb.1.gz +%%MANPAGES%%share/man/man1/ctdbd.1.gz +%%MANPAGES%%share/man/man1/ltdbtool.1.gz +%%MANPAGES%%share/man/man1/onnode.1.gz +%%MANPAGES%%share/man/man1/ping_pong.1.gz +%%MANPAGES%%share/man/man5/ctdb-script.options.5.gz +%%MANPAGES%%share/man/man5/ctdb.conf.5.gz +%%MANPAGES%%share/man/man5/ctdb.sysconfig.5.gz +%%MANPAGES%%share/man/man7/ctdb-statistics.7.gz +%%MANPAGES%%share/man/man7/ctdb-tunables.7.gz +%%MANPAGES%%share/man/man7/ctdb.7.gz +sbin/ctdbd +share/ctdb/events/legacy/00.ctdb.script +share/ctdb/events/legacy/01.reclock.script +share/ctdb/events/legacy/05.system.script +share/ctdb/events/legacy/10.interface.script +share/ctdb/events/legacy/11.natgw.script +share/ctdb/events/legacy/11.routing.script +share/ctdb/events/legacy/13.per_ip_routing.script +share/ctdb/events/legacy/20.multipathd.script +share/ctdb/events/legacy/31.clamd.script +share/ctdb/events/legacy/40.vsftpd.script +share/ctdb/events/legacy/41.httpd.script +share/ctdb/events/legacy/46.update-keytabs.script +share/ctdb/events/legacy/47.samba-dcerpcd.script +share/ctdb/events/legacy/48.netbios.script +share/ctdb/events/legacy/49.winbind.script +share/ctdb/events/legacy/50.samba.script +share/ctdb/events/legacy/60.nfs.script +share/ctdb/events/legacy/70.iscsi.script +share/ctdb/events/legacy/91.lvs.script +share/ctdb/events/legacy/95.database.script +share/ctdb/scripts/winbind_ctdb_updatekeytab.sh +@dir /var/lib/ctdb/volatile +@dir /var/lib/ctdb/state +@dir /var/lib/ctdb/persistent +@dir /var/lib/ctdb +@dir /var/lib +@dir /var/run/ctdb diff --git a/net/samba424/pkg-plist.python b/net/samba424/pkg-plist.python new file mode 100644 index 000000000000..83c3d464827b --- /dev/null +++ b/net/samba424/pkg-plist.python @@ -0,0 +1,622 @@ +bin/smbtorture +sbin/samba-gpupdate +%%MANPAGES%%share/man/man1/smbtorture.1.gz +%%MANPAGES%%share/man/man8/samba-gpupdate.8.gz +lib/samba4/private/libsamba-net-join%%PYTHON_TAG%%-private-samba.so +lib/samba4/private/libsamba-python%%PYTHON_TAG%%-private-samba.so +@comment Python block +%%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/dckeytab%%PYTHON_TAG%%.so +%%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/posix_eadb%%PYTHON_TAG%%.so +%%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/xattr_native%%PYTHON_TAG%%.so +%%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/xattr_tdb%%PYTHON_TAG%%.so +%%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/dsdb_dns%%PYTHON_TAG%%.so +%%AD_DC%%%%PYTHON_SITELIBDIR%%/samba/dsdb%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/__init__.py +%%PYTHON_SITELIBDIR%%/samba/_glue%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/_ldb%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/auth%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/auth_util.py +%%PYTHON_SITELIBDIR%%/samba/colour.py +%%PYTHON_SITELIBDIR%%/samba/common.py +%%PYTHON_SITELIBDIR%%/samba/compression%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/credentials%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/crypto%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dbchecker.py +%%PYTHON_SITELIBDIR%%/samba/dcerpc/__init__.py +%%PYTHON_SITELIBDIR%%/samba/dcerpc/atsvc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/auth%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/base%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/bcrypt_rsakey_blob%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/claims%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/conditional_ace%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/dcerpc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/dfs%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/dns%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/dnsp%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/dnsserver%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/drsblobs%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/drsuapi%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/echo%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/epmapper%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/gkdi%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/gmsa%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/idmap%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/initshutdown%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/irpc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/keycredlink%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/krb5ccache%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/krb5pac%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/lsa%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/mdssvc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/messaging%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/mgmt%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/misc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/nbt%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/netlogon%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/ntlmssp%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/preg%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/samr%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/schannel%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/security%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/server_id%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/smb3posix%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/smbXsrv%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/smb_acl%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/spoolss%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/srvsvc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/svcctl%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/tpm20_rsakey_blob%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/unixinfo%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/winbind%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/windows_event_ids%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/winreg%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/winspool%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/witness%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/wkssvc%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/dcerpc/xattr%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/domain/__init__.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/__init__.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/auth_policy.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/auth_silo.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/claim_type.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/computer.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/constants.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/container.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/exceptions.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/fields.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/gmsa.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/group.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/model.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/org.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/person.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/query.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/registry.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/schema.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/site.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/subnet.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/types.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/user.py +%%PYTHON_SITELIBDIR%%/samba/domain/models/value_type.py +%%PYTHON_SITELIBDIR%%/samba/descriptor.py +%%PYTHON_SITELIBDIR%%/samba/dnsresolver.py +%%PYTHON_SITELIBDIR%%/samba/dnsserver.py +%%PYTHON_SITELIBDIR%%/samba/domain_update.py +%%PYTHON_SITELIBDIR%%/samba/drs_utils.py +%%PYTHON_SITELIBDIR%%/samba/emulate/__init__.py +%%PYTHON_SITELIBDIR%%/samba/emulate/traffic.py +%%PYTHON_SITELIBDIR%%/samba/emulate/traffic_packets.py +%%PYTHON_SITELIBDIR%%/samba/forest_update.py +%%PYTHON_SITELIBDIR%%/samba/functional_level.py +%%PYTHON_SITELIBDIR%%/samba/gensec%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/getopt.py +%%PYTHON_SITELIBDIR%%/samba/gkdi.py +%%PYTHON_SITELIBDIR%%/samba/gp/__init__.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_centrify_crontab_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_centrify_sudoers_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_cert_auto_enroll_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_chromium_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_drive_maps_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_ext_loader.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_firefox_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_firewalld_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_gnome_settings_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_msgs_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_scripts_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_sec_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_smb_conf_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gp_sudoers_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/gpclass.py +%%PYTHON_SITELIBDIR%%/samba/gp/util/logging.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_access_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_files_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_issue_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_motd_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_openssh_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_startup_scripts_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_sudoers_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp/vgp_symlink_ext.py +%%PYTHON_SITELIBDIR%%/samba/gp_parse/__init__.py +%%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_aas.py +%%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_csv.py +%%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_inf.py +%%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_ini.py +%%PYTHON_SITELIBDIR%%/samba/gp_parse/gp_pol.py +%%PYTHON_SITELIBDIR%%/samba/gpo%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/graph.py +%%PYTHON_SITELIBDIR%%/samba/hostconfig.py +%%PYTHON_SITELIBDIR%%/samba/hresult%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/idmap.py +%%PYTHON_SITELIBDIR%%/samba/join.py +%%PYTHON_SITELIBDIR%%/samba/kcc/__init__.py +%%PYTHON_SITELIBDIR%%/samba/kcc/debug.py +%%PYTHON_SITELIBDIR%%/samba/kcc/graph.py +%%PYTHON_SITELIBDIR%%/samba/kcc/graph_utils.py +%%PYTHON_SITELIBDIR%%/samba/kcc/kcc_utils.py +%%PYTHON_SITELIBDIR%%/samba/kcc/ldif_import_export.py +%%PYTHON_SITELIBDIR%%/samba/logger.py +%%PYTHON_SITELIBDIR%%/samba/lsa_utils.py +%%PYTHON_SITELIBDIR%%/samba/mdb_util.py +%%PYTHON_SITELIBDIR%%/samba/messaging%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/ms_display_specifiers.py +%%PYTHON_SITELIBDIR%%/samba/ms_forest_updates_markdown.py +%%PYTHON_SITELIBDIR%%/samba/ms_schema.py +%%PYTHON_SITELIBDIR%%/samba/ms_schema_markdown.py +%%PYTHON_SITELIBDIR%%/samba/ndr.py +%%PYTHON_SITELIBDIR%%/samba/net%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/net_s3%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/netbios%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/netcmd/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/common.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/computer.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/contact.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/dbcheck.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/delegation.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/dns.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/computer_allowed_to_authenticate_to.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/policy.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/service_allowed_to_authenticate_from.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/service_allowed_to_authenticate_to.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/user_allowed_to_authenticate_from.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/policy/user_allowed_to_authenticate_to.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/silo/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/silo/member.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/auth/silo/silo.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/kds/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/kds/root_key.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/backup.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/claim/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/claim/claim_type.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/claim/value_type.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/classicupgrade.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/common.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/dcpromo.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/demote.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/functional_prep.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/info.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/join.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/keytab.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/leave.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/level.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/passwordsettings.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/provision.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/samba3upgrade.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/schemaupgrade.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/service_account/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/service_account/group_msa_membership.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/service_account/service_account.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/tombstones.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/domain/trust.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/drs.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/dsacl.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/encoders.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/forest.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/fsmo.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/gpcommon.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/gpo.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/group.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/ldapcmp.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/main.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/nettime.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/ntacl.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/ou.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/processes.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/pso.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/rodc.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/schema.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/shell.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/sites.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/spn.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/testparm.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/add.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/add_unix_attrs.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/auth/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/auth/policy.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/auth/silo.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/delete.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/disable.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/edit.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/enable.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/getgroups.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/list.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/move.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/password.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords/__init__.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords/common.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords/get_kerberos_ticket.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords/getpassword.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords/show.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords/syncpasswords.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/rename.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/sensitive.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/setexpiry.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/setpassword.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/setprimarygroup.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/unlock.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/validators.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/visualize.py +%%PYTHON_SITELIBDIR%%/samba/nt_time.py +%%PYTHON_SITELIBDIR%%/samba/ntacls.py +%%PYTHON_SITELIBDIR%%/samba/ntstatus%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/param%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/policies.py +%%PYTHON_SITELIBDIR%%/samba/policy%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/provision/__init__.py +%%PYTHON_SITELIBDIR%%/samba/provision/backend.py +%%PYTHON_SITELIBDIR%%/samba/provision/common.py +%%PYTHON_SITELIBDIR%%/samba/provision/kerberos.py +%%PYTHON_SITELIBDIR%%/samba/provision/kerberos_implementation.py +%%PYTHON_SITELIBDIR%%/samba/provision/sambadns.py +%%PYTHON_SITELIBDIR%%/samba/registry%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/remove_dc.py +%%PYTHON_SITELIBDIR%%/samba/reparse_symlink%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/safe_tarfile.py +%%PYTHON_SITELIBDIR%%/samba/samba3/__init__.py +%%PYTHON_SITELIBDIR%%/samba/samba3/libsmb_samba_cwrapper%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/samba3/libsmb_samba_internal.py +%%PYTHON_SITELIBDIR%%/samba/samba3/mdscli%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/samba3/param%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/samba3/passdb%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/samba3/smbconf%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/samba3/smbd%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/samdb.py +%%PYTHON_SITELIBDIR%%/samba/schema.py +%%PYTHON_SITELIBDIR%%/samba/sd_utils.py +%%PYTHON_SITELIBDIR%%/samba/security%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/sites.py +%%PYTHON_SITELIBDIR%%/samba/smbconf%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/subnets.py +%%PYTHON_SITELIBDIR%%/samba/subunit/__init__.py +%%PYTHON_SITELIBDIR%%/samba/subunit/run.py +%%PYTHON_SITELIBDIR%%/samba/tdb_util.py +%%PYTHON_SITELIBDIR%%/samba/tests/__init__.py +%%PYTHON_SITELIBDIR%%/samba/tests/audit_log_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/audit_log_dsdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/audit_log_pass_change.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_ncalrpc.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_netlogon.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_netlogon_bad_creds.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_pass_change.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_samlogon.py +%%PYTHON_SITELIBDIR%%/samba/tests/auth_log_winbind.py +%%PYTHON_SITELIBDIR%%/samba/tests/bcrypt_rsakey_blob.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/__init__.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/bug13653.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/check_output.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/claims.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/downgradedatabase.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/gmsa.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/http_chunk.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/http_content.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/mdsearch.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/misc_dfs_widelink.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/ndrdump.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/netads_dns.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/netads_json.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/rpcd_witness_samba_only.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/samba_dnsupdate.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcacls.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcacls_basic.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcacls_dfs_propagate_inherit.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcacls_propagate_inhertance.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcacls_save_restore.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcontrol.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/smbcontrol_process.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/traffic_learner.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/traffic_replay.py +%%PYTHON_SITELIBDIR%%/samba/tests/blackbox/traffic_summary.py +%%PYTHON_SITELIBDIR%%/samba/tests/common.py +%%PYTHON_SITELIBDIR%%/samba/tests/complex_expressions.py +%%PYTHON_SITELIBDIR%%/samba/tests/compression.py +%%PYTHON_SITELIBDIR%%/samba/tests/conditional_ace_assembler.py +%%PYTHON_SITELIBDIR%%/samba/tests/conditional_ace_bytes.py +%%PYTHON_SITELIBDIR%%/samba/tests/conditional_ace_claims.py +%%PYTHON_SITELIBDIR%%/samba/tests/core.py +%%PYTHON_SITELIBDIR%%/samba/tests/cred_opt.py +%%PYTHON_SITELIBDIR%%/samba/tests/credentials.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/__init__.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/array.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/bare.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/binding.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/dfs.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/dnsserver.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/integer.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/lsa.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/lsa_utils.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/mdssvc.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/misc.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/raw_protocol.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/raw_testcase.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/registry.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/rpc_talloc.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/rpcecho.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/sam.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/samr_change_password.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/srvsvc.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/string_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/testrpc.py +%%PYTHON_SITELIBDIR%%/samba/tests/dcerpc/unix.py +%%PYTHON_SITELIBDIR%%/samba/tests/dckeytab.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_aging.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_forwarder.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_forwarder_helpers/server.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_invalid.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_packet.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_tkey.py +%%PYTHON_SITELIBDIR%%/samba/tests/dns_wildcard.py +%%PYTHON_SITELIBDIR%%/samba/tests/docs.py +%%PYTHON_SITELIBDIR%%/samba/tests/domain_backup.py +%%PYTHON_SITELIBDIR%%/samba/tests/domain_backup_offline.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_api.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_dns.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_lock.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_quiet_env_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_quiet_provision_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_schema_attributes.py +%%PYTHON_SITELIBDIR%%/samba/tests/emulate/__init__.py +%%PYTHON_SITELIBDIR%%/samba/tests/emulate/traffic.py +%%PYTHON_SITELIBDIR%%/samba/tests/emulate/traffic_packet.py +%%PYTHON_SITELIBDIR%%/samba/tests/encrypted_secrets.py +%%PYTHON_SITELIBDIR%%/samba/tests/gensec.py +%%PYTHON_SITELIBDIR%%/samba/tests/get_opt.py +%%PYTHON_SITELIBDIR%%/samba/tests/getdcname.py +%%PYTHON_SITELIBDIR%%/samba/tests/gkdi.py +%%PYTHON_SITELIBDIR%%/samba/tests/glue.py +%%PYTHON_SITELIBDIR%%/samba/tests/gpo.py +%%PYTHON_SITELIBDIR%%/samba/tests/gpo_member.py +%%PYTHON_SITELIBDIR%%/samba/tests/graph.py +%%PYTHON_SITELIBDIR%%/samba/tests/group_audit.py +%%PYTHON_SITELIBDIR%%/samba/tests/hostconfig.py +%%PYTHON_SITELIBDIR%%/samba/tests/imports.py +%%PYTHON_SITELIBDIR%%/samba/tests/join.py +%%PYTHON_SITELIBDIR%%/samba/tests/kcc/__init__.py +%%PYTHON_SITELIBDIR%%/samba/tests/kcc/graph.py +%%PYTHON_SITELIBDIR%%/samba/tests/kcc/graph_utils.py +%%PYTHON_SITELIBDIR%%/samba/tests/kcc/kcc_utils.py +%%PYTHON_SITELIBDIR%%/samba/tests/kcc/ldif_import_export.py +%%PYTHON_SITELIBDIR%%/samba/tests/key_credential_link.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/alias_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/as_canonicalization_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/as_req_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/authn_policy_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/claims_in_pac.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/claims_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/compatability_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/conditional_ace_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/device_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/etype_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/fast_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/gkdi_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/gmsa_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/group_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/kcrypto.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/kdc_base_test.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/kdc_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/kdc_tgs_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/kdc_tgt_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/kpasswd_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/lockout_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/ms_kile_client_principal_lookup_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/netlogon.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/nt_hash_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/pac_align_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/pkinit_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/protected_users_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/raw_testcase.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/rfc4120_constants.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/rfc4120_pyasn1.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/rfc4120_pyasn1_generated.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/rodc_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/s4u_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/salt_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/simple_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/spn_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/test_ccache.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/test_idmap_nss.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/test_ldap.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/test_min_domain_uid.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/test_rpc.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/test_smb.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/xrealm_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5_credentials.py +%%PYTHON_SITELIBDIR%%/samba/tests/ldap_raw.py +%%PYTHON_SITELIBDIR%%/samba/tests/ldap_referrals.py +%%PYTHON_SITELIBDIR%%/samba/tests/ldap_spn.py +%%PYTHON_SITELIBDIR%%/samba/tests/ldap_upn_sam_account.py +%%PYTHON_SITELIBDIR%%/samba/tests/ldap_whoami.py +%%PYTHON_SITELIBDIR%%/samba/tests/libsmb-basic.py +%%PYTHON_SITELIBDIR%%/samba/tests/libsmb.py +%%PYTHON_SITELIBDIR%%/samba/tests/loadparm.py +%%PYTHON_SITELIBDIR%%/samba/tests/logfiles.py +%%PYTHON_SITELIBDIR%%/samba/tests/lsa_string.py +%%PYTHON_SITELIBDIR%%/samba/tests/messaging.py +%%PYTHON_SITELIBDIR%%/samba/tests/ndr/gkdi.py +%%PYTHON_SITELIBDIR%%/samba/tests/ndr/gmsa.py +%%PYTHON_SITELIBDIR%%/samba/tests/ndr/sd.py +%%PYTHON_SITELIBDIR%%/samba/tests/ndr/wbint.py +%%PYTHON_SITELIBDIR%%/samba/tests/net_join.py +%%PYTHON_SITELIBDIR%%/samba/tests/net_join_no_spnego.py +%%PYTHON_SITELIBDIR%%/samba/tests/netbios.py +%%PYTHON_SITELIBDIR%%/samba/tests/netcmd.py +%%PYTHON_SITELIBDIR%%/samba/tests/netlogonsvc.py +%%PYTHON_SITELIBDIR%%/samba/tests/nss/base.py +%%PYTHON_SITELIBDIR%%/samba/tests/nss/group.py +%%PYTHON_SITELIBDIR%%/samba/tests/ntacls.py +%%PYTHON_SITELIBDIR%%/samba/tests/ntacls_backup.py +%%PYTHON_SITELIBDIR%%/samba/tests/ntlm_auth.py +%%PYTHON_SITELIBDIR%%/samba/tests/ntlm_auth_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/ntlm_auth_krb5.py +%%PYTHON_SITELIBDIR%%/samba/tests/ntlmdisabled.py +%%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind.py +%%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind_chauthtok.py +%%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind_setcred.py +%%PYTHON_SITELIBDIR%%/samba/tests/pam_winbind_warn_pwd_expire.py +%%PYTHON_SITELIBDIR%%/samba/tests/param.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_hash.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_hash_fl2003.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_hash_fl2008.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_hash_gpgme.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_hash_ldap.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_quality.py +%%PYTHON_SITELIBDIR%%/samba/tests/password_test.py +%%PYTHON_SITELIBDIR%%/samba/tests/policy.py +%%PYTHON_SITELIBDIR%%/samba/tests/posixacl.py +%%PYTHON_SITELIBDIR%%/samba/tests/prefork_restart.py +%%PYTHON_SITELIBDIR%%/samba/tests/process_limits.py +%%PYTHON_SITELIBDIR%%/samba/tests/provision.py +%%PYTHON_SITELIBDIR%%/samba/tests/pso.py +%%PYTHON_SITELIBDIR%%/samba/tests/py_credentials.py +%%PYTHON_SITELIBDIR%%/samba/tests/registry.py +%%PYTHON_SITELIBDIR%%/samba/tests/reparsepoints.py +%%PYTHON_SITELIBDIR%%/samba/tests/rust.py +%%PYTHON_SITELIBDIR%%/samba/tests/s3_net_join.py +%%PYTHON_SITELIBDIR%%/samba/tests/s3idmapdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/s3param.py +%%PYTHON_SITELIBDIR%%/samba/tests/s3passdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/s3registry.py +%%PYTHON_SITELIBDIR%%/samba/tests/s3windb.py +%%PYTHON_SITELIBDIR%%/samba/tests/safe_tarfile.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba3sam.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_startup_fl_change.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/__init__.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/base.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/computer.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/contact.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/demote.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/dnscmd.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/domain_auth_policy.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/domain_auth_silo.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/domain_claim.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/domain_kds_root_key.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/domain_models.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/drs_clone_dc_data_lmdb_size.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/dsacl.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/forest.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/fsmo.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/gpo.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/gpo_exts.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/group.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/help.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/join.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/join_lmdb_size.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/join_member.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/ntacl.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/ou.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/passwordsettings.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/processes.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/promote_dc_lmdb_size.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/provision_lmdb_size.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/provision_password_check.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/provision_userPassword_crypt.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/rodc.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/schema.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/service_account.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/silo_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/sites.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/timecmd.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_auth_policy.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_auth_silo.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_check_password_script.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_get_kerberos_ticket.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_getpassword_gmsa.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_virtualCryptSHA.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_virtualCryptSHA_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_virtualCryptSHA_gpg.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_virtualCryptSHA_userPassword.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_wdigest.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/visualize.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/visualize_drs.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_upgradedns_lmdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/samdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/samdb_api.py +%%PYTHON_SITELIBDIR%%/samba/tests/sddl.py +%%PYTHON_SITELIBDIR%%/samba/tests/sddl_conditional_ace.py +%%PYTHON_SITELIBDIR%%/samba/tests/security.py +%%PYTHON_SITELIBDIR%%/samba/tests/security_descriptors.py +%%PYTHON_SITELIBDIR%%/samba/tests/segfault.py +%%PYTHON_SITELIBDIR%%/samba/tests/sid_strings.py +%%PYTHON_SITELIBDIR%%/samba/tests/smb-notify.py +%%PYTHON_SITELIBDIR%%/samba/tests/smb.py +%%PYTHON_SITELIBDIR%%/samba/tests/smb1posix.py +%%PYTHON_SITELIBDIR%%/samba/tests/smb2symlink.py +%%PYTHON_SITELIBDIR%%/samba/tests/smb3unix.py +%%PYTHON_SITELIBDIR%%/samba/tests/smbconf.py +%%PYTHON_SITELIBDIR%%/samba/tests/smbd_base.py +%%PYTHON_SITELIBDIR%%/samba/tests/smbd_fuzztest.py +%%PYTHON_SITELIBDIR%%/samba/tests/source.py +%%PYTHON_SITELIBDIR%%/samba/tests/source_chars.py +%%PYTHON_SITELIBDIR%%/samba/tests/strings.py +%%PYTHON_SITELIBDIR%%/samba/tests/subunitrun.py +%%PYTHON_SITELIBDIR%%/samba/tests/tdb_util.py +%%PYTHON_SITELIBDIR%%/samba/tests/token_factory.py +%%PYTHON_SITELIBDIR%%/samba/tests/tpm20_rsakey_blob.py +%%PYTHON_SITELIBDIR%%/samba/tests/upgrade.py +%%PYTHON_SITELIBDIR%%/samba/tests/upgradeprovision.py +%%PYTHON_SITELIBDIR%%/samba/tests/upgradeprovisionneeddc.py +%%PYTHON_SITELIBDIR%%/samba/tests/usage.py +%%PYTHON_SITELIBDIR%%/samba/tests/varlink/base.py +%%PYTHON_SITELIBDIR%%/samba/tests/varlink/getgrouprecord.py +%%PYTHON_SITELIBDIR%%/samba/tests/varlink/getmemberships.py +%%PYTHON_SITELIBDIR%%/samba/tests/varlink/getuserrecord.py +%%PYTHON_SITELIBDIR%%/samba/tests/xattr.py +%%PYTHON_SITELIBDIR%%/samba/upgrade.py +%%PYTHON_SITELIBDIR%%/samba/upgradehelpers.py +%%PYTHON_SITELIBDIR%%/samba/uptodateness.py +%%PYTHON_SITELIBDIR%%/samba/werror%%PYTHON_TAG%%.so +%%PYTHON_SITELIBDIR%%/samba/xattr.py +%%PYTHON_SITELIBDIR%%/samba/asn1.py +%%PYTHON_SITELIBDIR%%/samba/generate_csr.py +%%PYTHON_SITELIBDIR%%/samba/key_credential_link.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/computer_generate_csr.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/computer_keytrust.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/generate_csr.py +%%PYTHON_SITELIBDIR%%/samba/netcmd/user/keytrust.py +%%PYTHON_SITELIBDIR%%/samba/tests/dsdb_dn.py +%%PYTHON_SITELIBDIR%%/samba/tests/key_credential_link_samdb.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/key_trust_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/krb5/pkinit_certificate_mapping_tests.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_generate_csr.py +%%PYTHON_SITELIBDIR%%/samba/tests/samba_tool/user_keytrust.py +@dir %%PYTHON_SITELIBDIR%%/samba/tests/samba_tool +@dir %%PYTHON_SITELIBDIR%%/samba/tests/ndr +@dir %%PYTHON_SITELIBDIR%%/samba/tests/dcerpc +@dir %%PYTHON_SITELIBDIR%%/samba/tests/blackbox +@dir %%PYTHON_SITELIBDIR%%/samba/tests +@dir %%PYTHON_SITELIBDIR%%/samba/samba3 +@dir %%PYTHON_SITELIBDIR%%/samba/provision +@dir %%PYTHON_SITELIBDIR%%/samba/netcmd/user/readpasswords +@dir %%PYTHON_SITELIBDIR%%/samba/netcmd/user/auth +@dir %%PYTHON_SITELIBDIR%%/samba/netcmd/user +@dir %%PYTHON_SITELIBDIR%%/samba/netcmd +@dir %%PYTHON_SITELIBDIR%%/samba/dcerpc +@dir %%PYTHON_SITELIBDIR%%/samba