------------------------------------------------------------ revno: 284 [merge] committer: Brian Gough <[email protected]> branch nick: gsrc timestamp: Fri 2010-07-30 12:58:18 +0100 message: merged from savannah removed: gnu/bazaar added: deps/gc/ deps/gc/Makefile doc/fdl.texi doc/version.texi gnu/bazaar/ gnu/bazaar/Makefile gnu/bazaar/gpg-keyring gnu/bazaar/sha256sums modified: .bzrignore doc/gsrc.texi gar.conf.mk.SAMPLE gar.mk gnu/gnupg/Makefile gnu/guile/Makefile gnu/libassuan/Makefile
=== modified file '.bzrignore' --- a/.bzrignore 2010-07-30 11:48:41 +0000 +++ b/.bzrignore 2010-07-30 11:58:18 +0000 @@ -10,3 +10,4 @@ logs *.update-pending .commit +doc/*.info
=== added directory 'deps/gc' === added file 'deps/gc/Makefile' --- a/deps/gc/Makefile 1970-01-01 00:00:00 +0000 +++ b/deps/gc/Makefile 2010-07-27 20:02:17 +0000 @@ -0,0 +1,13 @@ +GARNAME = gc +GARVERSION = 7.1 + +MASTER_SITES = http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/ + +DISTFILES = $(DISTNAME).tar.gz + +HOME_URL = http://www.hpl.hp.com/personal/Hans_Boehm/gc/ +DESCRIPTION = Boehm-Demers-Weiser garbage collector for C and C++ + +CONFIGURE_OPTS = --enable-threads=pthreads --enable-cplusplus + +include ../../gar.lib/auto.mk === added file 'doc/fdl.texi' --- a/doc/fdl.texi 1970-01-01 00:00:00 +0000 +++ b/doc/fdl.texi 2010-07-27 19:58:02 +0000 @@ -0,0 +1,1 @@ +FIXME fdl goes here === modified file 'doc/gsrc.texi' --- a/doc/gsrc.texi 2010-06-21 15:12:40 +0000 +++ b/doc/gsrc.texi 2010-07-27 19:56:58 +0000 @@ -7,10 +7,9 @@ @syncodeindex pg cp @comment %**end of header @copying -This manual is for GNU Source Release Collection (version @value{VERSION}, @value{UPDATED}), -which is an example in the Texinfo documentation. +This manual is for the GNU Source Release Collection (version @value{VERSION}, @value{UPDATED}). -Copyright @copyright{} 2007 Free Software Foundation, Inc. +Copyright @copyright{} 2010 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document @@ -29,13 +28,13 @@ @dircategory Texinfo documentation system @direntry -* gsrc: (gsrc)Invoking gsrc. +* gsrc: (gsrc)Building the GNU Source Release Collection. @end direntry @titlepage @title GNU Source Release Collection @subtitle for version @value{VERSION}, @value{UPDATED} -...@author A.U. Thor (@email{[email protected]}) +...@author Brian Gough (@email{[email protected]}) @page @vskip 0pt plus 1filll @insertcopying @@ -44,21 +43,144 @@ @contents @ifnottex -...@node Top +...@node Top, Introduction, (dir), (dir) @top GNU Source Release Collection This manual is for GNU Source Release Collection (version @value{VERSION}, @value{UPDATED}). @end ifnottex @menu -* Invoking gsrc:: -* Copying This Manual:: -* Index:: -...@end menu - - -...@node Invoking gsrc -...@chapter Invoking gsrc +* Introduction:: +* Getting started:: +* Advanced configuration:: +* The build system:: +* GNU Free Documentation License:: +* Index:: +...@end menu + +...@node Introduction, Getting started, Top, Top +...@chapter Introduction + +The GNU Source Release Collection (GSRC) provides a simple way to +install the latest GNU packages on an existing distribution. + +By using GSRC the GNU source packages from @code{ftp.gnu.org} are +downloaded, compiled and installed, either in your home directory or a +system-wide directory such as @code{/opt}. Newer versions of the +source packages are automatically downloaded and installed when they +released. + +GSRC is based on the GAR build system by Nick Moffitt and the GARstow +enhancements by Adam Sampson. GAR was inspired by BSD Ports, a +Makefile-based build system, and is written in GNU Make. The GARNOME +build system for GNOME is another example of a system using GAR. + +Note that GSRC is not intended to be a full package management system +or source distribution. It is just a more convenient way to compile +GNU packages from source on an existing system. + +Because GSRC is not a full distribution you will sometimes need to +install other packages from your distribution to build and run GNU +programs. For example, GSRC itself does not include Perl or Python, +so you will need to make sure these are already installed for GNU +programs which use them. + +...@section Terminology + +This document uses the term ``GNU package'' to refer to software +written as part of the GNU Project. The meaning of the term ``GNU +package'' is best made clear by understanding its origin.x + +In the early 1980's Richard Stallman wrote a manifesto calling for the +creation of a computer operating system where all programs could be +freely modified and shared by anyone---a system that would be entirely +``free software''. He gave this system the name ``GNU'' and started +an initiative with others to develop it (this initiative was known as +the ``GNU Project''). + +The design of the GNU system specified many new programs that needed +to be written, but also included some existing programs developed by +others that were free software. The programs developed specifically +for the GNU system are referred to as ``GNU software'', or ``GNU +packages''. Thus not every program on the GNU system is GNU software, +only those written specifically for it. + +GSRC is a collection of these GNU packages, the software which is +written and maintained as part of the GNU Project. It does not +attempt to include all the other free software in the GNU system, +since that is already provided by other groups in different ways. + +...@menu +* Building GNU packages:: +...@end menu + +...@node Building GNU packages, , Introduction, Introduction +...@section Building GNU packages + +If you have never built a GNU package by hand, this section will +briefly show the process so you will have an idea of what GSRC is +doing. + +...@itemize @bullet +...@item Download the package and unpack it +...@code{$ wget http://ftpmirror.gnu.org/gnu/hello/hello-2.6.tar.gz} +...@code{$ tar xvfz hello-2.6.tar.gz} +...@item Run the configure script +...@code{$ cd hello-2.6; ./configure} +...@item Compile the source code +...@code{$ make} +...@item Install it +...@code{$ make install} +...@end itemize + +...@node Getting started, Advanced configuration, Introduction, Top +...@chapter Getting started + +GSRC is distributed directly using the Bazaar version control system. +You can check out the latest version using + +...@example +bzr checkout http://bzr.savannah.gnu.org/r/gsrc/trunk/ gsrc +...@end example +...@noindent +This will create a directory @file{gsrc}. The build definitions for +GNU packages are in the @code{gnu/} subdirectory. Each package has +its own subdirectory within @code{gnu/}, for example @code{gnu/emacs/} +or @code{gnu/gcc/}, containing a Makefile for building it. This +makefile will execute the usual @code{./configure} and @code{make} +commands needed to build a GNU package. + +The @code{deps/} +subdirectory contains GARfiles for a few external packages, + +...@section Initial setup + + +...@menu +* Building a simple package:: +* Installing a package:: +* Setting your environment to use installed packages:: +* Building a more complex package:: +...@end menu + +...@node Building a simple package, Installing a package, Getting started, Getting started +...@section Building a simple package + +...@node Installing a package, Setting your environment to use installed packages, Building a simple package, Getting started +...@section Installing a package + +...@node Setting your environment to use installed packages, Building a more complex package, Installing a package, Getting started +...@section Setting your environment to use installed packages + +...@node Building a more complex package, , Setting your environment to use installed packages, Getting started +...@section Building a more complex package + +...@node Advanced configuration, The build system, Getting started, Top +...@chapter Advanced configuration + +...@node The build system, GNU Free Documentation License, Advanced configuration, Top +...@chapter The build system + @pindex gsrc @cindex invoking @command{gsrc} @@ -68,13 +190,13 @@ and command line options here. -...@node GNU Free Documentation License +...@node GNU Free Documentation License, Index, The build system, Top @appendix GNU Free Documentation License @include fdl.texi -...@node Index +...@node Index, , GNU Free Documentation License, Top @unnumbered Index @printindex cp === added file 'doc/version.texi' --- a/doc/version.texi 1970-01-01 00:00:00 +0000 +++ b/doc/version.texi 2010-07-27 19:58:02 +0000 @@ -0,0 +1,3 @@ +...@set VERSION FIXME +...@set UPDATED FIXME + === modified file 'gar.conf.mk.SAMPLE' --- a/gar.conf.mk.SAMPLE 2010-06-29 11:25:57 +0000 +++ b/gar.conf.mk.SAMPLE 2010-07-27 20:01:03 +0000 @@ -19,9 +19,12 @@ GARBALLDIR = $(GARDIR)/cache/garstow/garballs # Compiler and linker optimisations. -CFLAGS_OPTIMIZE ?= -O2 +CFLAGS_OPTIMIZE ?= -g -O2 -Wall LDFLAGS_OPTIMIZE ?= +# Link against GSRC installed libraries where possible, instead of system libraries. +BOOTSTRAP = 1 + # Flags to pass to make to build in parallel. MAKE_ARGS_PARALLEL ?= === modified file 'gar.mk' --- a/gar.mk 2010-07-30 10:09:58 +0000 +++ b/gar.mk 2010-07-30 10:56:39 +0000 @@ -135,7 +135,8 @@ @for i in $(PATCHFILES); do echo " $$i"; done @echo "Signature files: " @for i in $(SIGFILES); do echo " $$i"; done - + @echo "Dependencies: " + @for i in $(LIBDEPS) $(BUILDDEPS) $(if $(USE_TESTS),$(TESTDEPS),) ; do echo " $$i"; done # fetch - Retrieves $(DISTFILES) (and $(PATCHFILES) if defined) # into $(DOWNLOADDIR) as necessary. === added directory 'gnu/bazaar' === removed file 'gnu/bazaar' --- a/gnu/bazaar 2010-06-02 19:18:12 +0000 +++ b/gnu/bazaar 1970-01-01 00:00:00 +0000 @@ -1,1 +0,0 @@ -FIXME === added file 'gnu/bazaar/Makefile' --- a/gnu/bazaar/Makefile 1970-01-01 00:00:00 +0000 +++ b/gnu/bazaar/Makefile 2010-07-27 19:58:50 +0000 @@ -0,0 +1,26 @@ +GARNAME = bzr +GARVERSION = 2.1.1 + +#http://launchpad.net/bzr/2.2/2.2b4/+download/bzr-2.2b4.tar.gz +empty:= +space:= $(empty) $(empty) +VERSION_LIST = $(subst .,$(space),$(GARVERSION)) +SERIES = $(subst $(space),.,$(wordlist 1,2,$(VERSION_LIST))) + +MASTER_SITES = https://launchpad.net/bzr/ +MASTER_SUBDIR = $(SERIES)/$(GARVERSION)/+download/ + +DISTFILES = $(DISTNAME).tar.gz +SIGFILES = $(DISTFILES).sig + +#EXTDEPS = paramiko +LIBDEPS = zlib + +HOME_URL = http://bazaar.canonical.com/ +DESCRIPTION = The GNU distributed version control system + +CONFIGURE_SCRIPTS = $(WORKSRC)/setup.py +BUILD_SCRIPTS = $(WORKSRC)/setup.py +INSTALL_SCRIPTS = $(WORKSRC)/setup.py + +include ../../gar.mk === added file 'gnu/bazaar/gpg-keyring' Binary files a/gnu/bazaar/gpg-keyring 1970-01-01 00:00:00 +0000 and b/gnu/bazaar/gpg-keyring 2010-07-27 19:58:50 +0000 differ === added file 'gnu/bazaar/sha256sums' --- a/gnu/bazaar/sha256sums 1970-01-01 00:00:00 +0000 +++ b/gnu/bazaar/sha256sums 2010-07-27 19:58:50 +0000 @@ -0,0 +1,2 @@ +b87d2974d0f6dc58701958ded82d56b45d566af8eedf2d8580f3c887cd86d651 download/bzr-2.1.1.tar.gz +38c83a297e189aec47e961b463f4a938941590a1ebd561eb566ed946c7ccc004 download/bzr-2.1.1.tar.gz.sig === modified file 'gnu/gnupg/Makefile' --- a/gnu/gnupg/Makefile 2010-07-30 11:40:28 +0000 +++ b/gnu/gnupg/Makefile 2010-07-30 11:58:18 +0000 @@ -8,7 +8,7 @@ SIGFILES = $(DISTNAME).tar.bz2.sig # BUILDDEPS = -LIBDEPS = libgpg-error libgcrypt libassuan libksba pth readline +LIBDEPS = libgpg-error libgcrypt libassuan libksba pth zlib readline HOME_URL = http://www.gnu.org/software/gnupg/ DESCRIPTION = GNU Privacy Guard === modified file 'gnu/guile/Makefile' --- a/gnu/guile/Makefile 2010-06-11 09:29:17 +0000 +++ b/gnu/guile/Makefile 2010-07-27 20:03:52 +0000 @@ -8,7 +8,7 @@ SIGFILES = $(DISTNAME).tar.gz.sig # BUILDDEPS = -# LIBDEPS = +LIBDEPS = gc gmp libtool HOME_URL = http://www.gnu.org/software/guile/ DESCRIPTION = GNU Guile, an embeddable Scheme interpreter === modified file 'gnu/libassuan/Makefile' --- a/gnu/libassuan/Makefile 2010-06-15 13:05:53 +0000 +++ b/gnu/libassuan/Makefile 2010-07-25 06:38:54 +0000 @@ -8,7 +8,7 @@ SIGFILES = $(DISTNAME).tar.bz2.sig # BUILDDEPS = -# LIBDEPS = +LIBDEPS = libgpg-error HOME_URL = http://www.gnu.org/software/gnupg/ DESCRIPTION = GNU Privacy Guard
