Revert "Revert "added a description how to update linux distributions""
[pspp] / doc / installing.texi
index 5a9c2791c8184386244aa877285212b10ad65360..201a20242fa33a5674db91dd1bea1ac959a11948 100644 (file)
@@ -1,19 +1,36 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
 @node Installation
-@appendix Installing PSPP
+@appendix Installing @pspp{}
+
+The usual way to obtain pspp is described here:
+@uref{https://www.gnu.org/software/pspp/get.html}. This appendix
+describes ways to update to newer released pspp versions. For building
+development versions: @xref{BuildDevel,,Building Development Versions}.
+
+@anchor{InstallUnix}
+@section Installation in Unix Environment from Source
 @cindex installation
-@cindex PSPP, installing
+@cindex @pspp{}, installing
 
 @cindex GNU C compiler
 @cindex gcc
 @cindex compiler, recommended
 @cindex compiler, gcc
-PSPP is written in ISO C and primarily targeted at UNIX-like
-environments.  To install PSPP under a UNIX-like operating system,
+@pspp{} is written in ISO C and primarily targeted at UNIX-like
+environments.  To install @pspp{} under a UNIX-like operating system,
 follow the steps below.
 
 @enumerate
 @item
-@code{cd} to the directory containing the PSPP source.
+@code{cd} to the directory containing the @pspp{} source.
 
 @cindex configure, GNU
 @cindex GNU configure
@@ -36,23 +53,133 @@ correctly under your configuration, contact the author.
 
 @cindex self-tests, running
 @item
-Type @samp{make check} to run self-tests on the compiled PSPP package.
+Type @samp{make check} to run self-tests on the compiled @pspp{} package.
 
 @cindex installation
-@cindex PSPP, installing
+@cindex @pspp{}, installing
 @cindex @file{/usr/local/share/pspp/}
 @cindex @file{/usr/local/bin/}
 @cindex @file{/usr/local/info/}
 @cindex documentation, installing
 @item
 Become the superuser and type @samp{make install} to install the
-PSPP binaries, by default in @file{/usr/local/bin/}.  The
+@pspp{} binaries, by default in @file{/usr/local/bin/}.  The
 directory @file{/usr/local/share/pspp/} is created and populated with
-files needed by PSPP at runtime.  This step will also cause the
-PSPP documentation to be installed in @file{/usr/local/info/},
+files needed by @pspp{} at runtime.  This step will also cause the
+@pspp{} documentation to be installed in @file{/usr/local/info/},
 but only if that directory already exists.
 
 @item
-(optional) Type @samp{make clean} to delete the PSPP binaries
+(optional) Type @samp{make clean} to delete the @pspp{} binaries
 from the source tree.
 @end enumerate
+
+More detailed instructions for building from source including the
+installation of required libraries can be found here:
+@uref{http://git.savannah.gnu.org/cgit/pspp.git/plain/INSTALL}.
+
+@section Updating the pspp package in Linux distributions
+Linux distributions like Debian or Ubuntu make a release by taking the
+pspp package version which is in the rolling testing (sid) stage at the
+time of freezing the linux release. The pspp versions which are the default
+version for a specific linux distribution release are listed here:
+
+@itemize
+@item Debian:  @uref{https://packages.debian.org/pspp}
+@item Ubuntu: @uref{https://packages.ubuntu.com/pspp}
+@end itemize
+
+Debian stretch for example contains pspp 0.10.2. There are a number of
+possibilities to update the pspp version inside a linux distribution.
+
+@subsection Backports
+
+Sometimes a backport of a newer pspp version is available for an older
+distribution. Instructions how to install backports
+can be found here @uref{https://backports.debian.org/Instructions} for
+Debian. This is the easiest way to have an updated version.
+
+@subsection Ubuntu PPA
+For Ubuntu Adam Zammit maintains a PPA with several updates of pspp.
+Installation via a PPA is similar to a backports install. See:
+@uref{https://launchpad.net/~adamzammit/+archive/ubuntu/pspp}.
+
+@subsection Building an updated pspp package
+
+If you wish to use a newer pspp version than the one provided with
+the distribution or possibly a backport, then there is a good chance
+that you can generate a new updated pspp package for your linux distribution release
+from the package source of a later distribution release. The latest
+pspp package for Debian is in sid (unstable). It is not advisable to
+take a binary package from a later distribution because the interface to
+the required libraries may have changed. Therefore you take the package
+source instead of the package binary and then compile a new pspp package for your
+linux distribution.
+
+Assume you want to create a new pspp package for Debian jessie. Jessie
+has pspp version 0.8.4 as the default version. Assume that Debian unstable
+contains the pspp version 1.0.1. Add the line
+@example
+deb-src http://ftp.debian.org/debian unstable main
+@end example
+to the file @code{/etc/apt/sources.conf}. This will make the package
+sources of the packages in unstable available for apt-get.
+
+Then download the pspp package sources from the unstable distribution.
+
+@example
+mkdir tmp
+cd tmp
+sudo apt-get update
+apt-get source pspp/unstable
+@end example
+
+After this step you will have the files
+
+@example
+pspp_1.0.1-1.dsc
+pspp_1.0.1-1.debian.tar.xz
+pspp_1.0.1.orig.tar.gz
+@end example
+
+and the directory
+
+@example
+pspp-1.0.1
+@end example
+
+in your directory. Now you can install the package
+dependencies with
+
+@example
+sudo apt-get build-dep pspp/unstable
+@end example
+
+And then you can build and test your pspp package with
+
+@example
+cd pspp-1.0.1
+debuild -us -uc
+cd ..
+@end example
+After this step you have the binary pspp package
+@example
+pspp_1.0.1-1_amd64.deb
+@end example
+in your directory and you can install the package with
+@example
+sudo dpkg -i pspp_1.0.1-1_amd64.deb
+@end example
+You can uninstall the package as usual with
+@example
+sudo apt-get remove pspp
+@end example
+This procedure is preferable vs. the @xref{InstallUnix, Plain Source Installation}
+because the package and all data can be uninstalled the usual way and
+the prerequisites can be installed the usual way via apt-get.
+
+@anchor{BuildDevel}
+@section Building a development version
+
+The installation of development versions and building directly from git is
+described here: @uref{https://www.gnu.org/software/pspp/get.html}.