s3:script: Remove findsmb from default installation
authorAndreas Schneider <asn@samba.org>
Mon, 19 Apr 2021 07:12:24 +0000 (09:12 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Mon, 19 Apr 2021 14:37:04 +0000 (14:37 +0000)
This tool is the only client tool which requires perl. Distributions are
removing perl from the default installation now.

Also this is a wrapper around nmblookup which is obsolete in the AD
world. However it might still be used by someone so move it just to
examples/scripts/nmb/

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Guenther Deschner <gd@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Mon Apr 19 14:37:04 UTC 2021 on sn-devel-184

docs-xml/manpages/samba.7.xml
docs-xml/wscript_build
examples/scripts/nmb/findsmb [moved from source3/script/findsmb.in with 95% similarity]
examples/scripts/nmb/findsmb.1.xml [moved from docs-xml/manpages/findsmb.1.xml with 82% similarity]
source3/script/wscript_build

index 836ed23619f6f9e56c57fe900450f8f8b0fdb456..627ba636802aa684b7a512f3630682e51d3e1ae2 100644 (file)
                can be used to maintain the local user database on
                a Samba server.</para></listitem></varlistentry>
 
-               <varlistentry>
-               <term><citerefentry><refentrytitle>findsmb</refentrytitle>
-               <manvolnum>1</manvolnum></citerefentry></term>
-               <listitem><para>The <command>findsmb</command> command
-               can be used to find SMB servers on the local network.
-               </para></listitem></varlistentry>
-
                <varlistentry>
                <term><citerefentry><refentrytitle>net</refentrytitle>
                <manvolnum>8</manvolnum></citerefentry></term>
index 37094147e0b249cfe5efeadd004a34ff1fd40987..c2986ed6cd5103acdc51327ed90636445129eff6 100644 (file)
@@ -5,7 +5,6 @@ manpages='''
          manpages/cifsdd.8
          manpages/dbwrap_tool.1
          manpages/eventlogadm.8
-         manpages/findsmb.1
          manpages/idmap_ad.8
          manpages/idmap_autorid.8
          manpages/idmap_hash.8
similarity index 95%
rename from source3/script/findsmb.in
rename to examples/scripts/nmb/findsmb
index 38a6e2a1604fb6153401f20de6d7668a7f552da3..7c58917f55a31a5185ef428485d28df284439683 100755 (executable)
@@ -1,4 +1,4 @@
-#!@PERL@
+#!/usr/bin/env perl
 #
 # Prints info on all smb responding machines on a subnet.
 # This script needs to be run on a machine without nmbd running and be
 # local master browsers for that workgroup. There will be an "*" in front
 # of the workgroup name for machines that are the domain master browser for
 # that workgroup.
-# 
+#
 # Options:
 #
 # -d|-D                enable debug
 # -r           add -r option to nmblookup when finding netbios name
 #
 
-$SAMBABIN = "@BINDIR@";
+$SAMBABIN = "/usr/bin";
 
 for ($i = 0; $i < 2; $i++) {   # test for -d and -r options
        $_ = shift;
@@ -38,7 +38,7 @@ if ($_) {                     # set broadcast address if it was specified
 
 ######################################################################
 # do numeric sort on last field of IP address
-sub ipsort                     
+sub ipsort
 {
        @t1 = split(/\./,$a);
        @t2 = split(/\./,$b);
@@ -48,7 +48,7 @@ sub ipsort
 
 # look for all machines that respond to a name lookup
 
-open(NMBLOOKUP,"$SAMBABIN/nmblookup $BCAST '*' --debuglevel=0|") || 
+open(NMBLOOKUP,"$SAMBABIN/nmblookup $BCAST '*' --debuglevel=0|") ||
        die("Can't run nmblookup '*'.\n");
 
 # get rid of all lines that are not a response IP address,
@@ -68,10 +68,10 @@ foreach $ip (@ipaddrs)              # loop through each IP address found
 
        # find the netbios names registered by each machine
 
-       open(NMBLOOKUP,"$SAMBABIN/nmblookup $R_OPTION -A $ip --debuglevel=0|") || 
+       open(NMBLOOKUP,"$SAMBABIN/nmblookup $R_OPTION -A $ip --debuglevel=0|") ||
                die("Can't get nmb name list.\n");
        @nmblookup = <NMBLOOKUP>;
-       close NMBLOOKUP;
+       close NMBLOOKUP;
 
        # get the first <00> name
 
@@ -80,7 +80,7 @@ foreach $ip (@ipaddrs)                # loop through each IP address found
 
        if ($_) {                       # we have a netbios name
                if (/GROUP/) {          # is it a group name
-                       ($name, $aliases, $type, $length, @addresses) = 
+                       ($name, $aliases, $type, $length, @addresses) =
                        gethostbyaddr(pack('C4',split('\.',$ip)),2);
                        if (! $name) {                  # could not get name
                                $name = "unknown nis name";
@@ -92,7 +92,7 @@ foreach $ip (@ipaddrs)                # loop through each IP address found
                        /(.{1,15})\s+<00>\s+/;
                        $name = $1;
                        $name =~ s/^\s+//g;
-               }
+               }
 
                # do an smbclient command on the netbios name.
 
@@ -146,7 +146,7 @@ foreach $ip (@ipaddrs)              # loop through each IP address found
 
        } else {                                # no netbios name found
                # try getting the host name
-               ($name, $aliases, $type, $length, @addresses) = 
+               ($name, $aliases, $type, $length, @addresses) =
                gethostbyaddr(pack('C4',split('\.',$ip)),2);
                if (! $name) {                  # could not get name
                        $name = "unknown nis name";
@@ -157,5 +157,4 @@ foreach $ip (@ipaddrs)              # loop through each IP address found
                }
                print "$ip".' 'x(16-length($ip))."$name\n";
        }
-} 
-
+}
similarity index 82%
rename from docs-xml/manpages/findsmb.1.xml
rename to examples/scripts/nmb/findsmb.1.xml
index 63233e218e5ab99cef9b5eadc5088e78c0923e32..6b35410d84d504092210ee533fddf74db3f95e5c 100644 (file)
@@ -13,7 +13,7 @@
 
 <refnamediv>
        <refname>findsmb</refname>
-       <refpurpose>list info about machines that respond to SMB 
+       <refpurpose>list info about machines that respond to SMB
        name queries on a subnet</refpurpose>
 </refnamediv>
 
 
 <refsect1>
        <title>DESCRIPTION</title>
-       
+
        <para>This perl script is part of the <citerefentry>
        <refentrytitle>samba</refentrytitle><manvolnum>7</manvolnum></citerefentry>
        suite.</para>
 
        <para><command>findsmb</command> is a perl script that
-       prints out several pieces of information about machines 
+       prints out several pieces of information about machines
        on a subnet that respond to SMB  name query requests.
        It uses <citerefentry><refentrytitle>nmblookup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        and <citerefentry><refentrytitle>smbclient</refentrytitle><manvolnum>1</manvolnum></citerefentry>
        to obtain this information.
        </para>
-</refsect1>            
+</refsect1>
 
 <refsect1>
        <title>OPTIONS</title>
                <listitem><para>Controls whether <command>findsmb</command> takes
                bugs in Windows95 into account when trying to find a Netbios name
                registered of the remote machine. This option is disabled by default
-               because it is specific to Windows 95 and Windows 95 machines only. 
+               because it is specific to Windows 95 and Windows 95 machines only.
                If set, <citerefentry><refentrytitle>nmblookup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
                will be called with <constant>-B</constant> option.</para></listitem>
                </varlistentry>
                <varlistentry>
                <term>subnet broadcast address</term>
                <listitem><para>Without this option, <command>findsmb
-               </command> will probe the subnet of the machine where 
+               </command> will probe the subnet of the machine where
                <citerefentry><refentrytitle>findsmb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
-               is run. This value is passed to 
+               is run. This value is passed to
                <citerefentry><refentrytitle>nmblookup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
                as part of the <constant>-B</constant> option.</para></listitem>
                </varlistentry>
 <refsect1>
        <title>EXAMPLES</title>
 
-       <para>The output of <command>findsmb</command> lists the following 
-       information for all machines that respond to the initial 
-       <command>nmblookup</command> for any name: IP address, NetBIOS name, 
+       <para>The output of <command>findsmb</command> lists the following
+       information for all machines that respond to the initial
+       <command>nmblookup</command> for any name: IP address, NetBIOS name,
        Workgroup name, operating system, and SMB server version.</para>
 
-       <para>There will be a '+' in front of the workgroup name for 
-       machines that are local master browsers for that workgroup. There 
-       will be an '*' in front of the workgroup name for 
-       machines that are the domain master browser for that workgroup. 
-       Machines that are running Windows for Workgroups, Windows 95 or 
-       Windows 98 will 
-       not show any information about the operating system or server 
+       <para>There will be a '+' in front of the workgroup name for
+       machines that are local master browsers for that workgroup. There
+       will be an '*' in front of the workgroup name for
+       machines that are the domain master browser for that workgroup.
+       Machines that are running Windows for Workgroups, Windows 95 or
+       Windows 98 will
+       not show any information about the operating system or server
        version.</para>
 
        <para>The command with <constant>-r</constant> option
        must be run on a system without <citerefentry>
        <refentrytitle>nmbd</refentrytitle><manvolnum>8</manvolnum>
-       </citerefentry> running. 
+       </citerefentry> running.
 
-       If <command>nmbd</command> is running on the system, you will 
-       only  get the IP address and the DNS name of the machine. To 
-       get proper responses  from Windows 95 and Windows 98 machines, 
+       If <command>nmbd</command> is running on the system, you will
+       only  get the IP address and the DNS name of the machine. To
+       get proper responses  from Windows 95 and Windows 98 machines,
        the command must be run as root and with <constant>-r</constant>
        option on a machine without <command>nmbd</command> running.</para>
 
-       <para>For example, running <command>findsmb</command> 
+       <para>For example, running <command>findsmb</command>
        without <constant>-r</constant> option set would yield output similar
        to the following</para>
 
 <programlisting>
-IP ADDR         NETBIOS NAME   WORKGROUP/OS/VERSION 
---------------------------------------------------------------------- 
+IP ADDR         NETBIOS NAME   WORKGROUP/OS/VERSION
+---------------------------------------------------------------------
 192.168.35.10   MINESET-TEST1  [DMVENGR]
 192.168.35.55   LINUXBOX      *[MYGROUP] [Unix] [Samba 2.0.6]
 192.168.35.56   HERBNT2        [HERB-NT]
@@ -135,10 +135,10 @@ IP ADDR         NETBIOS NAME   WORKGROUP/OS/VERSION
 
 <refsect1>
        <title>AUTHOR</title>
-       
-       <para>The original Samba software and related utilities 
+
+       <para>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 
+       by the Samba Team as an Open Source project similar
        to the way the Linux kernel is developed.</para>
 </refsect1>
 
index 40ecdd7ef50f3304e3ca7fed8eed9879abb3d162..56c904fe349fea81a2d9210b1d9e2e313f5ce365 100644 (file)
@@ -10,16 +10,3 @@ bld.INSTALL_FILES('${BINDIR}',
 bld.SAMBA_SCRIPT('smbaddshare', pattern='smbaddshare', installdir='.')
 bld.SAMBA_SCRIPT('smbchangeshare', pattern='smbchangeshare', installdir='.')
 bld.SAMBA_SCRIPT('smbdeleteshare', pattern='smbdeleteshare', installdir='.')
-
-sed_expr1 = 's#@PERL@#/usr/bin/env perl#'
-sed_expr2 = 's#@BINDIR@#${BINDIR}#'
-
-bld.SAMBA_GENERATOR('findsmb-script',
-                    source='findsmb.in',
-                    target='findsmb',
-                    rule='sed -e "%s" -e "%s" ${SRC} > ${TGT}' % (sed_expr1, sed_expr2))
-
-bld.INSTALL_FILES('${BINDIR}',
-                  'findsmb',
-                  destname='findsmb',
-                  chmod=MODE_755)