diff options
Diffstat (limited to 'docs/docbook/projdoc/Compiling.xml')
-rw-r--r-- | docs/docbook/projdoc/Compiling.xml | 503 |
1 files changed, 0 insertions, 503 deletions
diff --git a/docs/docbook/projdoc/Compiling.xml b/docs/docbook/projdoc/Compiling.xml deleted file mode 100644 index da28e43859..0000000000 --- a/docs/docbook/projdoc/Compiling.xml +++ /dev/null @@ -1,503 +0,0 @@ -<chapter id="compiling"> -<chapterinfo> - &author.jelmer; - &author.jht; - &author.tridge; - - <pubdate> 22 May 2001 </pubdate> - <pubdate> 18 March 2003 </pubdate> -</chapterinfo> - -<title>How to Compile Samba</title> - -<para> -You can obtain the Samba source from the -<ulink url="http://samba.org/">Samba Website.</ulink> To obtain a development version, -you can download Samba from CVS or using <command>rsync</command>. -</para> - -<sect1> -<title>Access Samba Source Code via CVS</title> - - -<sect2> -<title>Introduction</title> - -<para> -<indexterm><primary>CVS</primary></indexterm> -Samba is developed in an open environment. Developers use -Concurrent Versioning System (CVS) to <quote>checkin</quote> (also known as -<quote>commit</quote>) new source code. Samba's various CVS branches can -be accessed via anonymous CVS using the instructions -detailed in this chapter. -</para> - -<para> -This chapter is a modified version of the instructions found at -<ulink noescape="1" url="http://samba.org/samba/cvs.html">http://samba.org/samba/cvs.html</ulink> -</para> - -</sect2> - -<sect2> -<title>CVS Access to samba.org</title> - -<para> -The machine samba.org runs a publicly accessible CVS -repository for access to the source code of several packages, -including Samba, rsync, distcc, ccache, and jitterbug. There are two main ways -of accessing the CVS server on this host: -</para> - -<sect3> -<title>Access via CVSweb</title> - - -<para> -<indexterm><primary>CVS</primary><secondary>web</secondary></indexterm> -You can access the source code via your favorite WWW browser. This allows you to access -the contents of individual files in the repository and also to look at the revision -history and commit logs of individual files. You can also ask for a diff -listing between any two versions on the repository. -</para> - -<para> -Use the URL: -<ulink noescape="1" url="http://samba.org/cgi-bin/CVSweb">http://samba.org/cgi-bin/CVSweb</ulink> -</para> -</sect3> - -<sect3> -<title>Access via CVS</title> - -<para> -You can also access the source code via a -normal CVS client. This gives you much more control over what you can -do with the repository and allows you to checkout whole source trees -and keep them up-to-date via normal CVS commands. This is the -preferred method of access if you are a developer and not -just a casual browser. -</para> - -<para> -To download the latest CVS source code, point your -browser at the URL : -<ulink noescape="1" url="http://www.cyclic.com/">http://www.cyclic.com/</ulink>. -and click on the <quote>How to get CVS</quote> link. CVS is free software under -the GNU GPL (as is Samba). Note that there are several graphical CVS clients -that provide a graphical interface to the sometimes mundane CVS commands. -Links to theses clients are also available from the Cyclic Web site. -</para> - -<para> -To gain access via anonymous CVS, use the following steps. -For this example it is assumed that you want a copy of the -Samba source code. For the other source code repositories -on this system just substitute the correct package name. -</para> - -<procedure> - <title>Retrieving Samba using CVS</title> - - <step> - <para> - Install a recent copy of CVS. All you really need is a - copy of the CVS client binary. - </para> - </step> - - <step> - <para> - Run the command: - </para> - - <para> - <userinput>cvs -d :pserver:cvs@samba.org:/cvsroot login</userinput> - </para> - </step> - - <step> - - <para> - When it asks you for a password, type <userinput>cvs</userinput>. - </para> - </step> - - <step> - <para> - Run the command - </para> - - <para> - <userinput>cvs -d :pserver:CVS@samba.org:/cvsroot co samba</userinput>. - </para> - - <para> - This will create a directory called <filename>samba</filename> containing the - latest Samba source code (i.e., the HEAD tagged CVS branch). This - currently corresponds to the 3.0 development tree. - </para> - - <para> - CVS branches other then HEAD can be obtained by using the - <option>-r</option> and defining a tag name. A list of branch tag names - can be found on the <quote>Development</quote> page of the Samba Web site. A common - request is to obtain the latest 3.0 release code. This could be done by - using the following command: - </para> - - <para> - <userinput>cvs -d :pserver:cvs@samba.org:/cvsroot co -r SAMBA_3_0 samba</userinput>. - </para> - </step> - - <step> - <para> - Whenever you want to merge in the latest code changes, use - the following command from within the Samba directory: - </para> - - <para> - <userinput>cvs update -d -P</userinput> - </para> - </step> -</procedure> - -</sect3> -</sect2> - -</sect1> - -<sect1> - <title>Accessing the Samba Sources via rsync and ftp</title> - - - <para> - <indexterm><primary>rsync</primary></indexterm> - <indexterm><primary>ftp</primary></indexterm> - <parameter>pserver.samba.org</parameter> also exports unpacked copies of most parts of the CVS - tree at <ulink noescape="1" url="ftp://pserver.samba.org/pub/unpacked">ftp://pserver.samba.org/pub/unpacked</ulink> and also via anonymous rsync at - <ulink noescape="1" url="rsync://pserver.samba.org/ftp/unpacked/">rsync://pserver.samba.org/ftp/unpacked/</ulink>. I recommend using rsync rather than ftp. - See <ulink noescape="1" url="http://rsync.samba.org/">the rsync homepage</ulink> for more info on rsync. - </para> - - <para> - The disadvantage of the unpacked trees is that they do not support automatic - merging of local changes like CVS does. <command>rsync</command> access is most convenient - for an initial install. - </para> -</sect1> - -<sect1> -<title>Verifying Samba's PGP Signature</title> - -<para> -<indexterm><primary>GPG</primary></indexterm> -It is strongly recommended that you verify the PGP signature for any source file before -installing it. Even if you're not downloading from a mirror site, verifying PGP signatures -should be a standard reflex. Many people today use the GNU GPG toolset in place of PGP. -GPG can substitute for PGP. -</para> - - -<para> -With that said, go ahead and download the following files: -</para> - -<para><screen> -&prompt;<userinput>wget http://us1.samba.org/samba/ftp/samba-2.2.8a.tar.asc</userinput> -&prompt;<userinput>wget http://us1.samba.org/samba/ftp/samba-pubkey.asc</userinput> -</screen></para> - - -<para> -<indexterm><primary>PGP</primary></indexterm> -The first file is the PGP signature for the Samba source file; the other is the Samba public -PGP key itself. Import the public PGP key with: -</para> - -<screen> -&prompt;<userinput>gpg --import samba-pubkey.asc</userinput> -</screen> - -<para> -and verify the Samba source code integrity with: -</para> - -<screen> -&prompt;<userinput>gzip -d samba-2.2.8a.tar.gz</userinput> -&prompt;<userinput>gpg --verify samba-2.2.8a.tar.asc</userinput> -</screen> - -<para> -If you receive a message like, <quote>Good signature from Samba Distribution Verification Key...</quote> -then all is well. The warnings about trust relationships can be ignored. An -example of what you would not want to see would be: -</para> - -<para><screen> - gpg: BAD signature from <quote>Samba Distribution Verification Key</quote> -</screen></para> - -</sect1> - -<sect1> - <title>Building the Binaries</title> - - - <para> -<indexterm><primary>configure</primary></indexterm> - To build the binaries, first run the program <userinput>./configure - </userinput> in the source directory. This should automatically - configure Samba for your operating system. If you have unusual - needs, then you may wish to run</para> - -<para><screen>&rootprompt;<userinput>./configure --help -</userinput></screen></para> - -<para>first to see what special options you can enable. Now execute <userinput>./configure</userinput> with any arguments it might need:</para> - -<para><screen>&rootprompt;<userinput>./configure <replaceable>[... arguments ...]</replaceable></userinput></screen></para> - - <para>Executing</para> - - - <para> -<indexterm><primary>make</primary></indexterm> - <screen>&rootprompt;<userinput>make</userinput></screen></para> - - <para>will create the binaries. Once it is successfully - compiled you can use</para> - -<para><screen>&rootprompt;<userinput>make install</userinput></screen></para> - - <para>to install the binaries and manual pages. You can - separately install the binaries and/or man pages using</para> - -<para><screen>&rootprompt;<userinput>make installbin -</userinput></screen></para> - - <para>and</para> - - <para><screen>&rootprompt;<userinput>make installman - </userinput></screen></para> - - <para>Note that if you are upgrading from a previous version - of Samba you might like to know that the old versions of - the binaries will be renamed with an <quote>.old</quote> extension. You - can go back to the previous version with</para> - -<para><screen>&rootprompt;<userinput>make revert -</userinput></screen></para> - - <para>if you find this version a disaster!</para> - - <sect2> - <title>Compiling Samba with Active Directory Support</title> - - <para>In order to compile Samba with ADS support, you need to have installed - on your system:</para> - <itemizedlist> - - <listitem><para>The MIT or Heimdal kerberos development libraries - (either install from the sources or use a package).</para></listitem> - - <listitem><para>The OpenLDAP development libraries.</para></listitem> - - </itemizedlist> - - <para>If your kerberos libraries are in a non-standard location, then - remember to add the configure option - <option>--with-krb5=<replaceable>DIR</replaceable></option>.</para> - - <para>After you run configure, make sure that - <filename>include/config.h</filename> it generates contain lines like - this:</para> - -<para><programlisting> -#define HAVE_KRB5 1 -#define HAVE_LDAP 1 -</programlisting></para> - - <para>If it does not, configure did not find your KRB5 libraries or - your LDAP libraries. Look in <filename>config.log</filename> to figure - out why and fix it.</para> - - <sect3> - <title>Installing the Required Packages for Debian</title> - - <para>On Debian, you need to install the following packages:</para> - <para> - <itemizedlist> - <listitem>libkrb5-dev</listitem> - <listitem>krb5-user</listitem> - </itemizedlist> - </para> - </sect3> - - <sect3> - <title>Installing the Required Packages for Red Hat Linux</title> - - <para>On Red Hat Linux, this means you should have at least: </para> - <para> - <itemizedlist> - <listitem>krb5-workstation (for kinit)</listitem> - <listitem>krb5-libs (for linking with)</listitem> - <listitem>krb5-devel (because you are compiling from source)</listitem> - </itemizedlist> - </para> - - <para>in addition to the standard development environment.</para> - - <para>If these files are not installed on your system, you should check the installation - CDs to find which has them and install the files using your tool of choice. If in doubt - about what tool to use, refer to the Red Hat Linux documentation.</para> - - </sect3> - - <sect3> - <title>SuSE Linux Package Requirements</title> - - <para>SuSE Linux installs Heimdal packages that may be required to allow you to build - binary packages. You should verify that the development libraries have been installed on - your system. - </para> - - <para>SuSE Linux Samba RPMs support Kerberos. Please refer to the documentation for - your SuSE Linux system for information regading SuSE Linux specific configuration. - Additionally, SuSE are very active in the maintenance of Samba packages that provide - the maximum capabilities that are available. You should consider using SuSE provided - packages where they are available. - </para> - - </sect3> - - </sect2> - -</sect1> - -<sect1> - <title>Starting the &smbd; and &nmbd;</title> - - - <para> - <indexterm><primary>inetd</primary></indexterm> - You must choose to start &smbd; and &nmbd; either - as daemons or from <application>inetd</application>. Don't try - to do both! Either you can put them in <filename> - inetd.conf</filename> and have them started on demand - by <application>inetd</application> or <application>xinetd</application>, - or you can start them as - daemons either from the command line or in <filename> - /etc/rc.local</filename>. See the man pages for details - on the command line options. Take particular care to read - the bit about what user you need to have to start - Samba. In many cases, you must be root.</para> - - <para>The main advantage of starting &smbd; - and &nmbd; using the recommended daemon method - is that they will respond slightly more quickly to an initial connection - request.</para> - - <sect2> - <title>Starting from inetd.conf</title> - - <indexterm><primary>inetd</primary></indexterm> - - <note> - <para>The following will be different if - you use NIS, NIS+ or LDAP to distribute services maps.</para> - </note> - - <para>Look at your <filename>/etc/services</filename>. - What is defined at port 139/tcp? If nothing is defined, - then add a line like this:</para> - - <para><programlisting>netbios-ssn 139/tcp</programlisting></para> - - <para>Similarly for 137/udp, you should have an entry like:</para> - - <para><programlisting>netbios-ns 137/udp</programlisting></para> - - <para>Next, edit your <filename>/etc/inetd.conf</filename> - and add two lines like this:</para> - - <para><programlisting> - netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd - netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd - </programlisting></para> - - <para>The exact syntax of <filename>/etc/inetd.conf</filename> - varies between UNIXes. Look at the other entries in inetd.conf - for a guide. </para> - - <para> - <indexterm><primary>xinetd</primary></indexterm> - Some distributions use xinetd instead of inetd. Consult the - xinetd manual for configuration information.</para> - - <note><para>Some UNIXes already have entries like netbios_ns - (note the underscore) in <filename>/etc/services</filename>. - You must edit <filename>/etc/services</filename> or - <filename>/etc/inetd.conf</filename> to make them consistent. - </para></note> - - <note><para> - <indexterm><primary>ifconfig</primary></indexterm> - On many systems you may need to use the - <smbconfoption><name>interfaces</name></smbconfoption> option in &smb.conf; to specify the IP - address and netmask of your interfaces. Run - <application>ifconfig</application> - as root if you do not know what the broadcast is for your - net. &nmbd; tries to determine it at run - time, but fails on some UNIXes. - </para></note> - - <warning><para>Many UNIXes only accept around five - parameters on the command line in <filename>inetd.conf</filename>. - This means you shouldn't use spaces between the options and - arguments, or you should use a script and start the script - from <command>inetd</command>.</para></warning> - - <para>Restart <application>inetd</application>, perhaps just send - it a HUP. </para> - - <screen> - &rootprompt;<userinput>killall -HUP inetd</userinput> - </screen> - - </sect2> - - <sect2> - <title>Alternative: Starting &smbd; as a Daemon</title> - - - <para> - <indexterm><primary>daemon</primary></indexterm> - To start the server as a daemon, you should create - a script something like this one, perhaps calling - it <filename>startsmb</filename>.</para> - - <para><programlisting> - #!/bin/sh - /usr/local/samba/bin/smbd -D - /usr/local/samba/bin/nmbd -D - </programlisting></para> - - <para>Make it executable with <command>chmod - +x startsmb</command></para> - - <para>You can then run <command>startsmb</command> by - hand or execute it from <filename>/etc/rc.local</filename>. - </para> - - <para>To kill it, send a kill signal to the processes - &nmbd; and &smbd;.</para> - - <note><para>If you use the SVR4 style init system, - you may like to look at the <filename>examples/svr4-startup</filename> - script to make Samba fit into that system.</para></note> - </sect2> -</sect1> - -</chapter> |