diff options
-rw-r--r-- | hurd/building.mdwn | 13 | ||||
-rw-r--r-- | hurd/translator/cvsfs.mdwn | 6 | ||||
-rw-r--r-- | source_repositories/incubator.mdwn | 44 |
3 files changed, 52 insertions, 11 deletions
diff --git a/hurd/building.mdwn b/hurd/building.mdwn index c0d5648c..623e7c0a 100644 --- a/hurd/building.mdwn +++ b/hurd/building.mdwn @@ -28,7 +28,7 @@ git](http://savannah.gnu.org/git/?group=hurd): $ apt-get source hurd -Please see the Debian [[running/debian/FAQ]] before using `apt-get source`. +Please see the Debian [[FAQ]] before using `apt-get source`. The unpacked source tree is around 20 MiB, and the build tree (configured with `--disable-profile`) is around 100 MiB. @@ -54,12 +54,12 @@ package: Change into the directory with the downloaded / unpacked Hurd sources, e.g. - $ cd hurd-[TODO] + $ cd hurd-VERSION If you want to work on the sources before building them, it's advisable to first apply the patches the Debian hurd package additionally contains: - $ debian/rules apply-patches + $ debian/rules patch Then edit and change whatever files you want and finally start the build process with @@ -75,13 +75,14 @@ The Hurd has to be built in a separate directory: $ mkdir hurd-build $ cd hurd-build - $ [...]/hurd-[TODO]/configure --disable-profile + $ [...]/hurd-VERSION/configure --disable-profile $ make $ make install Notice that `make install` will install the Hurd in `/`, not in `/usr/local/` -or `/local/`, so your current Hurd servers will be replaced. [TODO: how to -install somewhere else.] +or `/local/`, so your current Hurd servers will be replaced. +To install to a different location, specify `--prefix=PREFIX` as `configure` +parameter, e.g. `--prefix=/usr` (as done when having a real `/usr`). By default profiling versions of all the libraries and code are generated but this is useless in most of the cases, so we disable them by specifying diff --git a/hurd/translator/cvsfs.mdwn b/hurd/translator/cvsfs.mdwn index 03b49219..bef481a2 100644 --- a/hurd/translator/cvsfs.mdwn +++ b/hurd/translator/cvsfs.mdwn @@ -22,12 +22,8 @@ would be to check out the whole tree and deleting it after using. ## Step by Step process in installing cvsfs Download and prepare the source files from the [[source_repositories/incubator]] -repository and build them. +repository, branch `cvsfs/master`; then build them: - $ git clone git://git.savannah.gnu.org/hurd/incubator.git - $ cd incubator/ - $ git branch -t cvsfs origin/cvsfs/master - $ git checkout cvsfs $ autoreconf -i $ ./configure $ make diff --git a/source_repositories/incubator.mdwn b/source_repositories/incubator.mdwn index 51f64c17..0243b597 100644 --- a/source_repositories/incubator.mdwn +++ b/source_repositories/incubator.mdwn @@ -10,3 +10,47 @@ License|/fdl]]."]]"""]] There is a repository for *this*, and *that*, and *everything* -- the *incubator*: <http://git.savannah.gnu.org/cgit/hurd/incubator.git/>. + +As the `README` file in the `master` branch says, the development of the +various software happens in separate branches. + +## Handling branches with `git-new-workdir` + +`git-new-workdir` is a contrib script provided with the git distribution +(on Debian systems, in `/usr/share/doc/git/contrib/workdir/git-new-workdir`); +it allows to create a new subrepository of a git repository, tracking one of +its branches, usually as a subdirectory of the current repository. + +The advantage of using it for `incubator` is that only one clone is needed, +and it can be possible to work simultaneously on many branches (instead of +only on the current branch of that clone). +The drawback is that updating a subrepository requires updating its branch +on the main clone first. + +Let's start checking out the `incubator` repository: + + $ git clone git://git.savannah.gnu.org/hurd/incubator.git + $ cd incubator/ + +Assuming we now want to follow the development of the `tarfs/master` branch: +we follow this branch: + + $ git branch -t tarfs/master origin/tarfs/master + +Then now setup a local subrepository `tarfs` following it; we will create it +as subdirectory of `incubator` (first parameter for `git-new-workdir`) for +simplicity, but can be created anywhere else: + + $ git-new-workdir . tarfs tarfs/master + +After this, a new `tarfs` subdirectory appears, which represents the +`tarfs/master` branch. You can normally work on this new repository as usual. + +As said earlier, updating `tarfs` requires fetching/pulling in `incubator` +first: + + $ cd incubator/ + incubator$ git pull/fetch + incubator$ cd tarfs/ + tarfs$ git pull/fetch + |