[v2] Install charmaps uncompressed in testroot

Message ID xnftjig5fv.fsf@greed.delorie.com
State Committed
Commit 97476447edff96e526daa1a22d6ed3665181ff93
Headers

Commit Message

DJ Delorie Oct. 24, 2019, 3:58 a.m. UTC
  From 0325facbd14d76cdaeda65500734acf988780096 Mon Sep 17 00:00:00 2001
From: DJ Delorie <dj@redhat.com>
Date: Wed, 23 Oct 2019 17:52:26 -0400
Subject: Install charmaps uncompressed in testroot

The testroot does not have a gunzip command, so the charmap files
should not be installed gzipped else they cannot be used (and thus
tested).  With this patch, installing with INSTALL_UNCOMPRESSED=yes
installs uncompressed charmaps instead.

Note that we must purge the $(symbolic_link_list) as it contains
references to $(DESTDIR), which we change during the testroot
installation.
  

Comments

Carlos O'Donell Oct. 24, 2019, 2:42 p.m. UTC | #1
On 10/23/19 11:58 PM, DJ Delorie wrote:
> 
> From 0325facbd14d76cdaeda65500734acf988780096 Mon Sep 17 00:00:00 2001
> From: DJ Delorie <dj@redhat.com>
> Date: Wed, 23 Oct 2019 17:52:26 -0400
> Subject: Install charmaps uncompressed in testroot
> 
> The testroot does not have a gunzip command, so the charmap files
> should not be installed gzipped else they cannot be used (and thus
> tested).  With this patch, installing with INSTALL_UNCOMPRESSED=yes
> installs uncompressed charmaps instead.
> 
> Note that we must purge the $(symbolic_link_list) as it contains
> references to $(DESTDIR), which we change during the testroot
> installation.
> 

OK for master.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

> diff --git a/Makefile b/Makefile
> index 0711b9725d..335155ce3c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -580,8 +580,15 @@ ifeq ($(run-built-tests),yes)
>  	    $(test-wrapper) cp $$dso $(objpfx)testroot.pristine$$dso ;\
>  	  done
>  endif
> +	# $(symbolic-link-list) is a file that encodes $(DESTDIR) so we
> +	# have to purge it
> +	rm -f $(symbolic-link-list)
> +	# Setting INSTALL_UNCOMPRESSED causes localedata/Makefile to
> +	# install the charmaps uncompressed, as the testroot does not
> +	# provide a gunzip program.

OK.

>  	$(MAKE) install DESTDIR=$(objpfx)testroot.pristine \
> -	  subdirs='$(sorted-subdirs)'
> +	  INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
> +	rm -f $(symbolic-link-list)

OK.

>  	touch $(objpfx)testroot.pristine/install.stamp
>  
>  tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
> diff --git a/localedata/Makefile b/localedata/Makefile
> index 33e473a883..ce6a750144 100644
> --- a/localedata/Makefile
> +++ b/localedata/Makefile
> @@ -167,9 +167,17 @@ endif
>  endif
>  
>  # Files to install.
> +ifeq ($(INSTALL_UNCOMPRESSED),yes)
> +# This option is for testing inside the testroot container, as the
> +# container does not include a working gunzip program.
> +install-others := $(addprefix $(inst_i18ndir)/, \
> +			      $(charmaps) \
> +			      $(locales))
> +else

OK.

>  install-others := $(addprefix $(inst_i18ndir)/, \
>  			      $(addsuffix .gz, $(charmaps)) \
>  			      $(locales))
> +endif
>  
>  tests: $(objdir)/iconvdata/gconv-modules
>  
> @@ -283,12 +291,22 @@ endif
>  
>  include ../Rules
>  
> +ifeq ($(INSTALL_UNCOMPRESSED),yes)
> +# Install the charmap files as-is.  This option is for testing inside
> +# the testroot container, as the container does not include a working
> +# gunzip program.

OK.

> +$(inst_i18ndir)/charmaps/%: charmaps/% $(+force)
> +	$(make-target-directory)
> +	rm -f $@
> +	$(INSTALL_DATA) $< $@
> +else
>  # Install the charmap files in gzipped format.
>  $(inst_i18ndir)/charmaps/%.gz: charmaps/% $(+force)
>  	$(make-target-directory)
>  	rm -f $(@:.gz=) $@
>  	$(INSTALL_DATA) $< $(@:.gz=)
>  	gzip -9n $(@:.gz=)
> +endif
>  
>  # Install the locale source files in the appropriate directory.
>  $(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install)
>
  

Patch

diff --git a/Makefile b/Makefile
index 0711b9725d..335155ce3c 100644
--- a/Makefile
+++ b/Makefile
@@ -580,8 +580,15 @@  ifeq ($(run-built-tests),yes)
 	    $(test-wrapper) cp $$dso $(objpfx)testroot.pristine$$dso ;\
 	  done
 endif
+	# $(symbolic-link-list) is a file that encodes $(DESTDIR) so we
+	# have to purge it
+	rm -f $(symbolic-link-list)
+	# Setting INSTALL_UNCOMPRESSED causes localedata/Makefile to
+	# install the charmaps uncompressed, as the testroot does not
+	# provide a gunzip program.
 	$(MAKE) install DESTDIR=$(objpfx)testroot.pristine \
-	  subdirs='$(sorted-subdirs)'
+	  INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)'
+	rm -f $(symbolic-link-list)
 	touch $(objpfx)testroot.pristine/install.stamp
 
 tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special))
diff --git a/localedata/Makefile b/localedata/Makefile
index 33e473a883..ce6a750144 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -167,9 +167,17 @@  endif
 endif
 
 # Files to install.
+ifeq ($(INSTALL_UNCOMPRESSED),yes)
+# This option is for testing inside the testroot container, as the
+# container does not include a working gunzip program.
+install-others := $(addprefix $(inst_i18ndir)/, \
+			      $(charmaps) \
+			      $(locales))
+else
 install-others := $(addprefix $(inst_i18ndir)/, \
 			      $(addsuffix .gz, $(charmaps)) \
 			      $(locales))
+endif
 
 tests: $(objdir)/iconvdata/gconv-modules
 
@@ -283,12 +291,22 @@  endif
 
 include ../Rules
 
+ifeq ($(INSTALL_UNCOMPRESSED),yes)
+# Install the charmap files as-is.  This option is for testing inside
+# the testroot container, as the container does not include a working
+# gunzip program.
+$(inst_i18ndir)/charmaps/%: charmaps/% $(+force)
+	$(make-target-directory)
+	rm -f $@
+	$(INSTALL_DATA) $< $@
+else
 # Install the charmap files in gzipped format.
 $(inst_i18ndir)/charmaps/%.gz: charmaps/% $(+force)
 	$(make-target-directory)
 	rm -f $(@:.gz=) $@
 	$(INSTALL_DATA) $< $(@:.gz=)
 	gzip -9n $(@:.gz=)
+endif
 
 # Install the locale source files in the appropriate directory.
 $(inst_i18ndir)/locales/%: locales/% $(+force); $(do-install)