There is a repository for maintenance of glibc for the Hurd's needs: https://git.savannah.gnu.org/cgit/hurd/glibc.git/. It's mainly used for testing glibc's master branch, but with all the patches that we need on top of it, and also for development and sharing of (Hurd-specific) glibc patches.

This repository uses TopGit.

History: A plan for the Hurd-specific glibc repository, id:"878wbp81ed.fsf@dirichlet.schwinge.homeip.net".

Relation to Debian glibc

For a lot of topic branches there is a correspondence to a Debian glibc patch, and vice-versa, which is also indicated by the Debian glibc patch files' names.

Debian glibc is based on EGLIBC 2.13 and the Savannah hurd/glibc.git one is tracking sourceware master.

The Savannah hurd/glibc.git one does not/not yet include libpthread, packaging libpthread.

Usage

Clone

$ git init
$ git remote add savannah git://git.sv.gnu.org/hurd/glibc.git
$ git remote update
$ tg remote --populate savannah
tg: Remote savannah can now follow TopGit topic branches.
tg: Populating local topic branches from remote 'savannah'...
From git://git.sv.gnu.org/hurd/glibc
 * [new branch]      refs/top-bases/t/_dl_random -> savannah/top-bases/t/_dl_random
 * [new branch]      refs/top-bases/t/accept4 -> savannah/top-bases/t/accept4
[...]
 * [new branch]      refs/top-bases/tschwinge/Roger_Whittaker -> savannah/top-bases/tschwinge/Roger_Whittaker
tg: Adding branch t/_dl_random...
tg: Adding branch t/accept4...
[...]
tg: Adding branch tschwinge/Roger_Whittaker...
tg: The remote 'savannah' is now the default source of topic branches.

Use tschwinge's Working Branch

$ git checkout tschwinge/Roger_Whittaker

Integrate a New Branch

A new (TopGit) branch has been published upstream:

$ tg remote --populate savannah
tg: Remote savannah can now follow TopGit topic branches.
tg: Populating local topic branches from remote 'savannah'...
remote: Counting objects: 28, done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 20 (delta 13), reused 1 (delta 0)
Unpacking objects: 100% (20/20), done.
From git://git.sv.gnu.org/hurd/glibc
 * [new branch]      t/unwind-resume.c -> savannah/t/unwind-resume.c
 * [new branch]      refs/top-bases/t/unwind-resume.c -> savannah/top-bases/t/unwind-resume.c
tg: Skipping branch t/____longjmp_chk: Already exists
[...]
tg: Skipping branch t/tlsdesc.sym: Already exists
tg: Adding branch t/unwind-resume.c...
tg: Skipping branch t/verify.h: Already exists
tg: Skipping branch tschwinge/Roger_Whittaker: Already exists
tg: The remote 'savannah' is now the default source of topic branches.

Make tschwinge/Roger_Whittaker (the current branch) depend on it:

$ tg depend add t/unwind-resume.c
[tschwinge/Roger_Whittaker 63f11ff] New TopGit dependency: t/unwind-resume.c
 1 files changed, 1 insertions(+), 0 deletions(-)
tg: Updating base with t/unwind-resume.c changes...
Auto-merging .topdeps
Auto-merging .topmsg
Merge made by recursive.
 nptl/sysdeps/pthread/Makefile                      |   12 ++----------
 sysdeps/gnu/Makefile                               |   18 ++++++++++++++++--
 .../pthread => sysdeps/gnu}/rt-unwind-resume.c     |    0
 .../pthread => sysdeps/gnu}/unwind-resume.c        |    4 ++--
 4 files changed, 20 insertions(+), 14 deletions(-)
 rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%)
 rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%)
tg: The tschwinge/Roger_Whittaker head is up-to-date wrt. its remote branch.
tg: Updating tschwinge/Roger_Whittaker against new base...
Merge made by recursive.
 nptl/sysdeps/pthread/Makefile                      |   12 ++----------
 sysdeps/gnu/Makefile                               |   18 ++++++++++++++++--
 .../pthread => sysdeps/gnu}/rt-unwind-resume.c     |    0
 .../pthread => sysdeps/gnu}/unwind-resume.c        |    4 ++--
 4 files changed, 20 insertions(+), 14 deletions(-)
 rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%)
 rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%)

Maintenance

Tags

Occasionally push new tags from the sourceware repository to the Savannah one:

$ git fetch sourceware
$ git tag | grep ^glibc- | sed 's%^%tag %' | xargs git push savannah