Gitweb links:

...log 
http://git.netsurf-browser.org/toolchains.git/shortlog/5b2088860e716159ac424610d4581d15732a8002
...commit 
http://git.netsurf-browser.org/toolchains.git/commit/5b2088860e716159ac424610d4581d15732a8002
...tree 
http://git.netsurf-browser.org/toolchains.git/tree/5b2088860e716159ac424610d4581d15732a8002

The branch, jmb/gitsrc has been updated
       via  5b2088860e716159ac424610d4581d15732a8002 (commit)
      from  b135d8b8e86dc285f416940aceb8e1062e69d98c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/toolchains.git/commit/?id=5b2088860e716159ac424610d4581d15732a8002
commit 5b2088860e716159ac424610d4581d15732a8002
Author: John-Mark Bell <[email protected]>
Commit: John-Mark Bell <[email protected]>

    Update README

diff --git a/README b/README
index 2a2d4b0031..c8746a9fb6 100644
--- a/README
+++ b/README
@@ -6,6 +6,7 @@ Pre-requisites for Debian systems
        $ apt-get install build-essential autoconf automake autogen flex bison
        $ apt-get install libtool texinfo help2man subversion cvs git
        $ apt-get install lhasa unzip autoconf2.64 automake1.11
+       $ apt-get install pristine-tar
 
  If you've not got automake 1.15 by default, you'll need:
 
@@ -19,20 +20,62 @@ Pre-requisites for Debian systems
        $ apt-get update
        $ apt-get install gcc-multilib
 
-RISC OS
--------
+Building
+--------
+
+It is important that the output prefix (/opt/netsurf by default) is writable.
+
+There are two steps to a build:
+
+  1. building the toolchain (compiler, linkers, etc) for the build system
+  2. building the runtime libraries for the host system using the toolchain
+
+The general pattern is as follows:
 
-It is important that the output prefix (/opt/netsurf by default) is writable 
- or use sudo to do the make
+       $ make -C {ARCH}
+       $ GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/{ARCH}/cross/bin \
+         GCCSDK_INSTALL_ENV=/opt/netsurf/{ARCH}/env \
+         make -C sdk
 
-       $ make -C arm-unknown-riscos
-       $ GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/arm-unknown-riscos/cross/bin 
GCCSDK_INSTALL_ENV=/opt/netsurf/arm-unknown-riscos/env make -C sdk
+where {ARCH} is one of the supported host triplets (e.g. arm-unknown-riscos)
 
 
-Windows
+Sources
 -------
 
-The mingw cross build toolchain is made by
+The original source tarballs are ingested into git using the "import-orig"
+script found in the tools directory.  This uses pristine-tar to ensure a
+bit-exact copy of the original source tarball is recreated.  Tags are created
+for each upstream version.
+
+The tarballs are recreated dynamically as part of the build using the
+relevant sources from the appropriate "upstream/<package>" branch and a
+delta file from the "pristine-tar" branch.  Neither branch need be checked
+out locally but must be known to git in some way or other (i.e. via the
+"origin" remote) -- thus shallow clones and bare branches will not work.
+
+Note that, while source package name and version are usually computed
+without incident from the name of the original source tarball, it may
+be necessary to tell "import-orig" the answer explicitly -- it has
+command line arguments that enable this.  Of particular note are packages
+whose tarball name is ambiguous (i.e. where the package name and/or version
+contain the likely separator characters: underscore and hyphen).
+
+Note also that it is only possible to use "import-orig" to import a
+single source artefact for a given version.  Multiple source archives
+for a package are not supported.
+
+Where the original sources are not provided in (compressed) tar format
+by the original source, it is necessary to repack them before import.
+This may be achieved using the "repack" script found in the tools directory.
+This determines the package name and version from the basename of the
+output path.
+
+As a general rule, "repack" will encapsulate the contents of the source
+archive in a directory with a name in the form of {package}-{version} and
+then create the tarball from that.  In the case where a single top-level
+directory is found in the source archive it will be renamed to
+{package}-{version} and then tarred.
 
-       $ make -C i686-w64-mingw32
-       $ GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/i686-w64-mingw32/cross/bin 
GCCSDK_INSTALL_ENV=/opt/netsurf/i686-w64-mingw32/env make -C sdk
+As for "import-orig", "repack" can be confused by ambiguous names so take
+care to ensure that the resulting repacked sources look sane before use.


-----------------------------------------------------------------------

Summary of changes:
 README | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 53 insertions(+), 10 deletions(-)

diff --git a/README b/README
index 2a2d4b0031..c8746a9fb6 100644
--- a/README
+++ b/README
@@ -6,6 +6,7 @@ Pre-requisites for Debian systems
        $ apt-get install build-essential autoconf automake autogen flex bison
        $ apt-get install libtool texinfo help2man subversion cvs git
        $ apt-get install lhasa unzip autoconf2.64 automake1.11
+       $ apt-get install pristine-tar
 
  If you've not got automake 1.15 by default, you'll need:
 
@@ -19,20 +20,62 @@ Pre-requisites for Debian systems
        $ apt-get update
        $ apt-get install gcc-multilib
 
-RISC OS
--------
+Building
+--------
+
+It is important that the output prefix (/opt/netsurf by default) is writable.
+
+There are two steps to a build:
+
+  1. building the toolchain (compiler, linkers, etc) for the build system
+  2. building the runtime libraries for the host system using the toolchain
+
+The general pattern is as follows:
 
-It is important that the output prefix (/opt/netsurf by default) is writable 
- or use sudo to do the make
+       $ make -C {ARCH}
+       $ GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/{ARCH}/cross/bin \
+         GCCSDK_INSTALL_ENV=/opt/netsurf/{ARCH}/env \
+         make -C sdk
 
-       $ make -C arm-unknown-riscos
-       $ GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/arm-unknown-riscos/cross/bin 
GCCSDK_INSTALL_ENV=/opt/netsurf/arm-unknown-riscos/env make -C sdk
+where {ARCH} is one of the supported host triplets (e.g. arm-unknown-riscos)
 
 
-Windows
+Sources
 -------
 
-The mingw cross build toolchain is made by
+The original source tarballs are ingested into git using the "import-orig"
+script found in the tools directory.  This uses pristine-tar to ensure a
+bit-exact copy of the original source tarball is recreated.  Tags are created
+for each upstream version.
+
+The tarballs are recreated dynamically as part of the build using the
+relevant sources from the appropriate "upstream/<package>" branch and a
+delta file from the "pristine-tar" branch.  Neither branch need be checked
+out locally but must be known to git in some way or other (i.e. via the
+"origin" remote) -- thus shallow clones and bare branches will not work.
+
+Note that, while source package name and version are usually computed
+without incident from the name of the original source tarball, it may
+be necessary to tell "import-orig" the answer explicitly -- it has
+command line arguments that enable this.  Of particular note are packages
+whose tarball name is ambiguous (i.e. where the package name and/or version
+contain the likely separator characters: underscore and hyphen).
+
+Note also that it is only possible to use "import-orig" to import a
+single source artefact for a given version.  Multiple source archives
+for a package are not supported.
+
+Where the original sources are not provided in (compressed) tar format
+by the original source, it is necessary to repack them before import.
+This may be achieved using the "repack" script found in the tools directory.
+This determines the package name and version from the basename of the
+output path.
+
+As a general rule, "repack" will encapsulate the contents of the source
+archive in a directory with a name in the form of {package}-{version} and
+then create the tarball from that.  In the case where a single top-level
+directory is found in the source archive it will be renamed to
+{package}-{version} and then tarred.
 
-       $ make -C i686-w64-mingw32
-       $ GCCSDK_INSTALL_CROSSBIN=/opt/netsurf/i686-w64-mingw32/cross/bin 
GCCSDK_INSTALL_ENV=/opt/netsurf/i686-w64-mingw32/env make -C sdk
+As for "import-orig", "repack" can be confused by ambiguous names so take
+care to ensure that the resulting repacked sources look sane before use.


-- 
Cross-compilation toolchains and environments

Reply via email to