1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
[[!meta copyright="Copyright © 2010, 2012, 2013, 2014, 2015 Free Software
Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
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*, [[!message-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|open_issues/libpthread]], [[open_issues/packaging_libpthread]].
# Usage
## Clone
$ git init
$ git remote add savannah git://git.savannah.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.savannah.gnu.org/hurd/glibc.git
* [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.savannah.gnu.org/hurd/glibc.git
* [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
|