configure.ac: add dist-xz

Message ID 20221108073503.2609200-1-sam@gentoo.org
State New
Headers
Series configure.ac: add dist-xz |

Commit Message

Sam James Nov. 8, 2022, 7:35 a.m. UTC
  On master at 9db716e3b15912b7162def1faa704eb7823bbf34:
.rw-r--r--  406M sam   8 Nov 07:27   libabigail-2.2.tar.gz
.rw-r--r--  348M sam   8 Nov 07:26   libabigail-2.2.tar.xz

xz is quite a common format for software to be distributed
in nowadays because of its size reductions.

Signed-off-by: Sam James <sam@gentoo.org>
---
 ChangeLog    | 8 ++++++++
 Makefile.am  | 4 ++--
 configure.ac | 2 +-
 3 files changed, 11 insertions(+), 3 deletions(-)
  

Comments

Sam James Nov. 8, 2022, 8:04 a.m. UTC | #1
> On 8 Nov 2022, at 07:35, Sam James <sam@gentoo.org> wrote:
> 
> On master at 9db716e3b15912b7162def1faa704eb7823bbf34:
> .rw-r--r--  406M sam   8 Nov 07:27   libabigail-2.2.tar.gz
> .rw-r--r--  348M sam   8 Nov 07:26   libabigail-2.2.tar.xz
> 
> xz is quite a common format for software to be distributed
> in nowadays because of its size reductions.
> 
> Signed-off-by: Sam James <sam@gentoo.org>
> ---
> ChangeLog    | 8 ++++++++
> Makefile.am  | 4 ++--
> configure.ac | 2 +-
> 3 files changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/ChangeLog b/ChangeLog
> index 33944561..f7f8d6f8 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,11 @@
> +2022-11-08  Sam James <sam@gentoo.org>
> +
> +       build: Create an xz distribution tarball in addition to gzip.
> +
> +       * configure.ac: add dist-xz to AM_INIT_AUTOMAKE.
> +       * Makefile.am: adjust $(TARBALL) to new extension.
> +       * Makefile.am: pass XZ_OPT="-0" for distcheck-fast.
> +
> 2022-09-24  Dodji Seketeli <dodji@redhat.com>
> 
> ir: Avoid cancelling a "confirmed" propagated canonical type
> diff --git a/Makefile.am b/Makefile.am
> index 65a1b121..a0310368 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -53,7 +53,7 @@ check-valgrind-recursive:
> update-changelog:
> python $(srcdir)/gen-changelog.py > $(srcdir)/ChangeLog
> 
> -TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.gz
> +TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.xz
> RELEASED_BRANCH = master

I should've just changed this to take two so we keep gzip (as make
will produce one anyway), but I'll wait until feedback about if
we want to do this at all first.
  
Dodji Seketeli Nov. 17, 2022, 10:39 a.m. UTC | #2
Hello Sam,

Sam James via Libabigail <libabigail@sourceware.org> a écrit:

>> On 8 Nov 2022, at 07:35, Sam James <sam@gentoo.org> wrote:
>> 
>> On master at 9db716e3b15912b7162def1faa704eb7823bbf34:
>> .rw-r--r--  406M sam   8 Nov 07:27   libabigail-2.2.tar.gz
>> .rw-r--r--  348M sam   8 Nov 07:26   libabigail-2.2.tar.xz
>> 
>> xz is quite a common format for software to be distributed
>> in nowadays because of its size reductions.

This is a good idea!

Thank you for suggesting this and coming up with this patch.

I just have a few comments below.

[...]


>> diff --git a/ChangeLog b/ChangeLog
>> index 33944561..f7f8d6f8 100644
>> --- a/ChangeLog
>> +++ b/ChangeLog
>> @@ -1,3 +1,11 @@
>> +2022-11-08  Sam James <sam@gentoo.org>
>> +
>> +       build: Create an xz distribution tarball in addition to gzip.
>> +
>> +       * configure.ac: add dist-xz to AM_INIT_AUTOMAKE.
>> +       * Makefile.am: adjust $(TARBALL) to new extension.
>> +       * Makefile.am: pass XZ_OPT="-0" for distcheck-fast.
>> +
>> 2022-09-24  Dodji Seketeli <dodji@redhat.com>
>> 
>> ir: Avoid cancelling a "confirmed" propagated canonical type

In the format of the patches sent to the list, what is going to be added
to the ChangeLog is just put in the commit log.  That part is later
automatically extracted and added to the ChangeLog at release time.  In
other words, you don't have to add a ChangeLog entry in the patch.  This
is explained at https://sourceware.org/git/?p=libabigail.git;a=blob_plain;f=COMMIT-LOG-GUIDELINES;hb=HEAD.


So, I have edited the patch accordingly to show you what I would apply
instead.  The amended patch can be found at the end of this message.

>> diff --git a/Makefile.am b/Makefile.am
>> index 65a1b121..a0310368 100644
>> --- a/Makefile.am
>> +++ b/Makefile.am
>> @@ -53,7 +53,7 @@ check-valgrind-recursive:
>> update-changelog:
>> python $(srcdir)/gen-changelog.py > $(srcdir)/ChangeLog
>> 
>> -TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.gz
>> +TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.xz
>> RELEASED_BRANCH = master
>
> I should've just changed this to take two so we keep gzip (as make
> will produce one anyway), but I'll wait until feedback about if
> we want to do this at all first.

Right, I was wondering if there could be an option to chose between .tar
and .xz for the compression format.  We would then keep .xz as the
default format.

What do you think?  In any case, thanks a lot for doing this.  It is
appreciated.

Please find below the format of this patch that I would apply to the
tree if it was to get in at this point.

Cheers

From e1b055c43b07fa07e738dc39645b6825aa88834d Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Tue, 8 Nov 2022 07:35:03 +0000
Subject: [PATCH] Use xz as the default tarball compression format
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

xz is quite a common format for software to be distributed in nowadays
because of its size reductions.  With this patch, here is the result
on the master branch at db716e3b15912b7162def1faa704eb7823bbf34:

.rw-r--r--  406M sam   8 Nov 07:27   libabigail-2.2.tar.gz
.rw-r--r--  348M sam   8 Nov 07:26   libabigail-2.2.tar.xz

	* configure.ac: add dist-xz to AM_INIT_AUTOMAKE.
	* Makefile.am: adjust $(TARBALL) to new extension.
	* Makefile.am: pass XZ_OPT="-0" for distcheck-fast.

Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 Makefile.am  | 4 ++--
 configure.ac | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 65a1b121..a0310368 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -53,7 +53,7 @@ check-valgrind-recursive:
 update-changelog:
 	python $(srcdir)/gen-changelog.py > $(srcdir)/ChangeLog
 
-TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.gz
+TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.xz
 RELEASED_BRANCH = master
 
 $(TARBALL): distcheck
@@ -86,7 +86,7 @@ tag-and-all: distcheck check-self-compare
 # the default for GZIP_ENV is --best, which is pretty slow for check runs
 # distcheck-fast therefore compresses with --fast instead
 distcheck-fast:
-	$(MAKE) distcheck GZIP_ENV="--fast"
+	$(MAKE) distcheck GZIP_ENV="--fast" XZ_OPT="-0"
 
 # This makes us compare libabigail.so against its own ABIXML
 # representation.  It's super slow (more than 5 minutes on one of my
diff --git a/configure.ac b/configure.ac
index 5aafed37..a2e5b33d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,7 +57,7 @@ dnl This one is to be able to run "make check-valgrind"
 dnl and have unit tests run under  der Valgrind.
 m4_include([autoconf-archive/ax_valgrind_check.m4])
 
-AM_INIT_AUTOMAKE([1.11.1 foreign subdir-objects tar-ustar parallel-tests])
+AM_INIT_AUTOMAKE([1.11.1 foreign subdir-objects dist-xz tar-ustar parallel-tests])
 AM_MAINTAINER_MODE([enable])
 
 AM_SILENT_RULES([yes])
  
Sam James Nov. 17, 2022, 4:22 p.m. UTC | #3
> On 17 Nov 2022, at 10:39, Dodji Seketeli <dodji@seketeli.org> wrote:
> 
> Hello Sam,
> 
> Sam James via Libabigail <libabigail@sourceware.org> a écrit:
> 
>>> On 8 Nov 2022, at 07:35, Sam James <sam@gentoo.org> wrote:
>>> 
>>> On master at 9db716e3b15912b7162def1faa704eb7823bbf34:
>>> .rw-r--r--  406M sam   8 Nov 07:27   libabigail-2.2.tar.gz
>>> .rw-r--r--  348M sam   8 Nov 07:26   libabigail-2.2.tar.xz
>>> 
>>> xz is quite a common format for software to be distributed
>>> in nowadays because of its size reductions.
> 
> This is a good idea!
> 
> Thank you for suggesting this and coming up with this patch.
> 

Thanks!

> I just have a few comments below.
> 
> [...]
> 
> 
>>> diff --git a/ChangeLog b/ChangeLog
>>> index 33944561..f7f8d6f8 100644
>>> --- a/ChangeLog
>>> +++ b/ChangeLog
>>> @@ -1,3 +1,11 @@
>>> +2022-11-08  Sam James <sam@gentoo.org>
>>> +
>>> +       build: Create an xz distribution tarball in addition to gzip.
>>> +
>>> +       * configure.ac: add dist-xz to AM_INIT_AUTOMAKE.
>>> +       * Makefile.am: adjust $(TARBALL) to new extension.
>>> +       * Makefile.am: pass XZ_OPT="-0" for distcheck-fast.
>>> +
>>> 2022-09-24  Dodji Seketeli <dodji@redhat.com>
>>> 
>>> ir: Avoid cancelling a "confirmed" propagated canonical type
> 
> In the format of the patches sent to the list, what is going to be added
> to the ChangeLog is just put in the commit log.  That part is later
> automatically extracted and added to the ChangeLog at release time.  In
> other words, you don't have to add a ChangeLog entry in the patch.  This
> is explained at https://sourceware.org/git/?p=libabigail.git;a=blob_plain;f=COMMIT-LOG-GUIDELINES;hb=HEAD.
> 
> 

Sorry, this seems obvious now -- I don't know how I missed it. Apologies!

> So, I have edited the patch accordingly to show you what I would apply
> instead.  The amended patch can be found at the end of this message.
> 
>>> diff --git a/Makefile.am b/Makefile.am
>>> index 65a1b121..a0310368 100644
>>> --- a/Makefile.am
>>> +++ b/Makefile.am
>>> @@ -53,7 +53,7 @@ check-valgrind-recursive:
>>> update-changelog:
>>> python $(srcdir)/gen-changelog.py > $(srcdir)/ChangeLog
>>> 
>>> -TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.gz
>>> +TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.xz
>>> RELEASED_BRANCH = master
>> 
>> I should've just changed this to take two so we keep gzip (as make
>> will produce one anyway), but I'll wait until feedback about if
>> we want to do this at all first.
> 
> Right, I was wondering if there could be an option to chose between .tar
> and .xz for the compression format.  We would then keep .xz as the
> default format.
> 
> What do you think?  In any case, thanks a lot for doing this.  It is
> appreciated.

I've tweaked it to take TARBALL as both .gz and .xz, but tbh, I think
we could very uncontroversially drop .gz too. A lot of software is .xz
only (like all of GNOME) and it doesn't really bother anyone.

My gut is it's not worth adding additional machinery to allow
disabling xz creation because it kind of conflicts with the dist-*
stuff from automake (I think we could do it, but it's a bit awkward).

The gzip creation is pretty cheap though.

The libabigail tarball is by necessity quite large (which was the
motivation originally) so I think we have decent justification.

TL;DR: I'll send a patch now with fixed TARBALL variable to include
both .gz and .xz but not sure it's worth the complexity to
allow specifically disabling either. If I had to choose, I'd just
drop gzip entirely given other projects do that fine without problems.

> 
> Please find below the format of this patch that I would apply to the
> tree if it was to get in at this point.
> 

Thank you for the extra mile there - I've always kind of struggled
with ChangeLog format for some reason.

> Cheers

Best,
sam
  
Dodji Seketeli Nov. 18, 2022, 12:10 p.m. UTC | #4
Hello,

Sam James <sam@gentoo.org> a écrit:

[...]

> I've tweaked it to take TARBALL as both .gz and .xz, but tbh, I think
> we could very uncontroversially drop .gz too. A lot of software is .xz
> only (like all of GNOME) and it doesn't really bother anyone.
>
> My gut is it's not worth adding additional machinery to allow
> disabling xz creation because it kind of conflicts with the dist-*
> stuff from automake (I think we could do it, but it's a bit awkward).
>
> The gzip creation is pretty cheap though.
>
> The libabigail tarball is by necessity quite large (which was the
> motivation originally) so I think we have decent justification.
>
> TL;DR: I'll send a patch now with fixed TARBALL variable to include
> both .gz and .xz but not sure it's worth the complexity to
> allow specifically disabling either. If I had to choose, I'd just
> drop gzip entirely given other projects do that fine without problems.

OK, let's follow your gut feeling then :-)  Your point of view seems
sensible to me.  My initial inclination seems overkill.

I went ahead and applied your initial patch, in the form that I posted
at the end of my previous message, to master.

Thank you for your dedication.

[...]

Cheers,
  

Patch

diff --git a/ChangeLog b/ChangeLog
index 33944561..f7f8d6f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@ 
+2022-11-08  Sam James <sam@gentoo.org>
+
+       build: Create an xz distribution tarball in addition to gzip.
+
+       * configure.ac: add dist-xz to AM_INIT_AUTOMAKE.
+       * Makefile.am: adjust $(TARBALL) to new extension.
+       * Makefile.am: pass XZ_OPT="-0" for distcheck-fast.
+
 2022-09-24  Dodji Seketeli <dodji@redhat.com>
 
 	ir: Avoid cancelling a "confirmed" propagated canonical type
diff --git a/Makefile.am b/Makefile.am
index 65a1b121..a0310368 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -53,7 +53,7 @@  check-valgrind-recursive:
 update-changelog:
 	python $(srcdir)/gen-changelog.py > $(srcdir)/ChangeLog
 
-TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.gz
+TARBALL = $(PACKAGE_NAME)-$(VERSION).tar.xz
 RELEASED_BRANCH = master
 
 $(TARBALL): distcheck
@@ -86,7 +86,7 @@  tag-and-all: distcheck check-self-compare
 # the default for GZIP_ENV is --best, which is pretty slow for check runs
 # distcheck-fast therefore compresses with --fast instead
 distcheck-fast:
-	$(MAKE) distcheck GZIP_ENV="--fast"
+	$(MAKE) distcheck GZIP_ENV="--fast" XZ_OPT="-0"
 
 # This makes us compare libabigail.so against its own ABIXML
 # representation.  It's super slow (more than 5 minutes on one of my
diff --git a/configure.ac b/configure.ac
index 5aafed37..a2e5b33d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,7 +57,7 @@  dnl This one is to be able to run "make check-valgrind"
 dnl and have unit tests run under  der Valgrind.
 m4_include([autoconf-archive/ax_valgrind_check.m4])
 
-AM_INIT_AUTOMAKE([1.11.1 foreign subdir-objects tar-ustar parallel-tests])
+AM_INIT_AUTOMAKE([1.11.1 foreign subdir-objects dist-xz tar-ustar parallel-tests])
 AM_MAINTAINER_MODE([enable])
 
 AM_SILENT_RULES([yes])