Discussion:
[PATCH] maint: update gnulib to latest
Pádraig Brady
2018-06-24 21:21:42 UTC
Permalink
* gnulib: Update to latest.
* .gitignore: Add a new header to ignore.
* bootstrap.conf: Enable wchar-single, which will enable more
efficient replacements of wcwidth and mbrtowc, as we indicate
that the charset will no change between invocations of these functions.
---
.gitignore | 1 +
bootstrap.conf | 1 +
gnulib | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 63faf89..e162d79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -46,6 +46,7 @@
/lib/.gitignore
/lib/alloca.h
/lib/arpa/inet.h
+/lib/byteswap.h
/lib/charset.alias
/lib/config.h
/lib/config.hin
diff --git a/bootstrap.conf b/bootstrap.conf
index 23b83ab..4da4f94 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -270,6 +270,7 @@ gnulib_modules="
verify
verror
version-etc-fsf
+ wchar-single
wcswidth
wcwidth
winsz-ioctl
diff --git a/gnulib b/gnulib
index 72333a9..71cc633 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 72333a9c6955aa7ca938dbb5295b78e906c89f07
+Subproject commit 71cc633a0f27a41befb4bf2e18fc7200e38a7157
--
2.9.3
Bernhard Voelker
2018-06-25 08:24:09 UTC
Permalink
Post by Pádraig Brady
* gnulib: Update to latest.
The merge of 'tests/init.sh' is missing ... probably already from
a previous gnulib update.

Do we have a list of files we usually sync from gnulib?
bootstrap, ...

Maybe we should have a make target to copy those files over,
and a syntax-check rule to verify?

Thanks & have a nice day,
Berny
Pádraig Brady
2018-06-25 16:48:02 UTC
Permalink
Post by Bernhard Voelker
Post by Pádraig Brady
* gnulib: Update to latest.
The merge of 'tests/init.sh' is missing ... probably already from
a previous gnulib update.
That must have been from a previous update.
Post by Bernhard Voelker
Do we have a list of files we usually sync from gnulib?
bootstrap, ...
Maybe we should have a make target to copy those files over,
and a syntax-check rule to verify?
`make gnulib-sync` would definitely be worth doing.

cheers,
Pádraig
Bernhard Voelker
2018-07-19 17:22:09 UTC
Permalink
Post by Pádraig Brady
`make gnulib-sync` would definitely be worth doing.
Done in the attached. WDYT?

Have a nice day,
Berny
Pádraig Brady
2018-07-21 20:36:08 UTC
Permalink
Post by Bernhard Voelker
Post by Pádraig Brady
`make gnulib-sync` would definitely be worth doing.
Done in the attached. WDYT?
I like it. It works well here.

thanks!
Pádraig
Bernhard Voelker
2018-07-24 06:45:59 UTC
Permalink
Post by Pádraig Brady
Post by Bernhard Voelker
Post by Pádraig Brady
`make gnulib-sync` would definitely be worth doing.
Done in the attached. WDYT?
I like it. It works well here.
Post by Bernhard Voelker
Subject: [PATCH] maint: provide make target to update gnulib to latest
* Makefile.am (gnulib-sync, update-gnulib-to-latest): Add target to
pull the latest commit of the gnulib submodule, and also to copy over
the files we keep in sync; add them to the index as well.
______________________________^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The code doesn't do that.
As one has to do the commit manually later on anyway, I suggest to remove
that sentence from the commit message (instead of adding 'git add ...'
to the 'gnulib-sync' target). Okay?

Thanks & have a nice day,
Berny
Eric Blake
2018-07-24 14:08:52 UTC
Permalink
Post by Bernhard Voelker
Post by Pádraig Brady
`make gnulib-sync` would definitely be worth doing.
Done in the attached. WDYT?
Can we move this to gnulib's maint.mk for sharing with other projects?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
Bernhard Voelker
2018-07-24 20:40:35 UTC
Permalink
Post by Eric Blake
Post by Bernhard Voelker
Post by Pádraig Brady
`make gnulib-sync` would definitely be worth doing.
Done in the attached. WDYT?
Can we move this to gnulib's maint.mk for sharing with other projects?
Ideally yes - the problem is that the list of files to sync from gnulib
may be different for each project, and even the basenames of some
Post by Eric Blake
+ && cp -v gnulib/doc/COPYINGv3 COPYING \
Any idea how to work around that?

Thanks & have a nice day,
Berny
Eric Blake
2018-07-24 20:49:28 UTC
Permalink
Post by Bernhard Voelker
Post by Eric Blake
Post by Bernhard Voelker
Post by Pádraig Brady
`make gnulib-sync` would definitely be worth doing.
Done in the attached. WDYT?
Can we move this to gnulib's maint.mk for sharing with other projects?
Ideally yes - the problem is that the list of files to sync from gnulib
may be different for each project, and even the basenames of some
Post by Eric Blake
+ && cp -v gnulib/doc/COPYINGv3 COPYING \
Any idea how to work around that?
As long as any customizations can be characterized into cfg.mk overrides
and the generic rule in maint.mk knows how to honor those overrides, it
seems like it should work. But I'm not sure what data representation
would be easiest to manipulate into those overrides.

A different approach would be using git symlinks that point into the git
submodule (then your local file is always up-to-date if your submodule
is up-to-date).
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
Bernhard Voelker
2018-07-25 09:53:25 UTC
Permalink
As long as any customizations can be characterized into cfg.mk overrides and the generic
rule in maint.mk knows how to honor those overrides, it seems like it should work.
But I'm not sure what data representation would be easiest to manipulate into those overrides.
maybe a simple variable?

gnulib_sync_files='\
gnulib/doc/COPYINGv3 COPYING
gnulib/build-aux/bootstrap bootstrap
gnulib/tests/init.sh tests/init.sh
' # Gnulib file # file in project

and then doing a loop over it line-by-line?
A different approach would be using git symlinks that point into the git submodule
(then your local file is always up-to-date if your submodule is up-to-date).
This has 2 aspects:

a) I'm no lawyer, but I guess the 'COPYING' file needs to be in the
project repository physically, i.e., no symlink.

b) Sometimes, a project may choose not to take a newer version (yet),
or may need to have a local change which didn't make it into upstream
gnulib for whatever reason.

Have a nice day,
Berny

Bernhard Voelker
2018-06-25 12:13:06 UTC
Permalink
Hi Padraig,
Post by Pádraig Brady
* .gitignore: Add a new header to ignore.
I'm getting a syntax-check failure now:

$ make syntax-check
...
gitignore_redundant
/lib/arg-nonnull.h
/lib/c++defs.h
/lib/unused-parameter.h
/lib/warn-on-use.h
maint.mk: Remove above entries from .gitignore
make: *** [cfg.mk:791: sc_gitignore_redundant] Error 1

You removed the same entries in commit v8.27-109-gc6f9c75c1,
and Eric added them before in commit v8.2-26-g3d09e31e0.
Any idea why they're popping up again?

'sc_gitignore_redundant' compares .gitignore with the generated
lib/.gitignore, so something there seems to be odd.

Thanks & have a nice day,
Berny
Pádraig Brady
2018-06-25 16:54:45 UTC
Permalink
Post by Bernhard Voelker
Hi Padraig,
Post by Pádraig Brady
* .gitignore: Add a new header to ignore.
$ make syntax-check
...
gitignore_redundant
/lib/arg-nonnull.h
/lib/c++defs.h
/lib/unused-parameter.h
/lib/warn-on-use.h
maint.mk: Remove above entries from .gitignore
make: *** [cfg.mk:791: sc_gitignore_redundant] Error 1
You removed the same entries in commit v8.27-109-gc6f9c75c1,
and Eric added them before in commit v8.2-26-g3d09e31e0.
Any idea why they're popping up again?
'sc_gitignore_redundant' compares .gitignore with the generated
lib/.gitignore, so something there seems to be odd.
Yes the syntax check is not quite right.
I suspect it's right for the current config setup,
but not for all.
Probably best to disable that syntax-check for now.
It's not helping.
Pádraig Brady
2018-06-27 07:50:00 UTC
Permalink
* gnulib: Update to latest, which incorporates
a thread linking fix from Bruno Haible,
which was seen on newer Ubuntu systems.
---
gnulib | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnulib b/gnulib
index 0b4e141..16aa5a2 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 0b4e1419cd2fa7ce70c936f161db6d4c1825a798
+Subproject commit 16aa5a2efe82e01a147b4022258fa9a272f67625
--
2.9.3
Loading...