[Libreoffice-commits] core.git: Branch 'libreoffice-6-3' - solenv/bin solenv/gbuild
Michael Stahl (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 17 10:12:28 UTC 2019
solenv/bin/modules/installer/systemactions.pm | 14 ++++++++++++++
solenv/gbuild/Package.mk | 20 ++++++++++++++++++++
2 files changed, 34 insertions(+)
New commits:
commit b7d1226ac09b31f605668225bc8af43c698d59c4
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Tue Jul 16 12:06:47 2019 +0200
Commit: Xisco FaulĂ <xiscofauli at libreoffice.org>
CommitDate: Wed Jul 17 12:11:42 2019 +0200
Introduce gb_Package_add_empty_directories
...which will be needed in a subsequent patch to fix tdf#125693.
The installer code could not handle a directory in a .filelist, the simplest
hack appears to be to add a special case for an empty source dir to
copy_one_file in solenv/bin/modules/installer/systemactions.pm.
Includes changes made by Stephan Bergmann <sbergman at redhat.com>.
Reviewed-on: https://gerrit.libreoffice.org/75702
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
(cherry picked from commit cabadfc288e5e7324723c62f36b918a80db90323)
...plus a change to solenv/gbuild/Package.mk adapting to the lack of master
368c996b24e09c427a30972b3405493328db6779 "Make font-based unit test depend on
instdir fonts" on libreoffice-6-3
Change-Id: I52dca2543a66eb76117598d77d559592e26ce859
Reviewed-on: https://gerrit.libreoffice.org/75744
Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>
Tested-by: Jenkins
Reviewed-by: Xisco FaulĂ <xiscofauli at libreoffice.org>
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm
index 9b12ff63c271..4f7a18bba5e6 100644
--- a/solenv/bin/modules/installer/systemactions.pm
+++ b/solenv/bin/modules/installer/systemactions.pm
@@ -277,6 +277,16 @@ sub create_directories
# Copying one file
########################
+sub is_empty_dir
+{
+ my ($dir) = @_;
+ my ($handle, $count);
+ opendir($handle, $dir) or return 0;
+ $count = scalar(grep { $_ ne '.' && $_ ne '..' } readdir($handle));
+ closedir($handle);
+ return $count == 0;
+}
+
sub copy_one_file
{
my ($source, $dest) = @_;
@@ -286,6 +296,10 @@ sub copy_one_file
if ( -l $source ) {
$copyreturn = symlink(readlink("$source"), "$dest");
}
+ elsif (-d $source && is_empty_dir($source)) {
+ my $mode = (stat($source))[2] & 07777;
+ $copyreturn = mkdir($dest, $mode);
+ }
else {
$copyreturn = copy($source, $dest);
}
diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk
index 841e819c7c78..7f83edd25c3d 100644
--- a/solenv/gbuild/Package.mk
+++ b/solenv/gbuild/Package.mk
@@ -129,6 +129,26 @@ gb_Package_OUTDIR_$(1) := $(2)
endef
+# Add empty directory (if it's non-empty, don't use this, use
+# gb_Package_add_file for the files in it instead!)
+define gb_Package_add_empty_directory
+$(call gb_Package__check,$(1))
+$(if $(strip $(2)),,$(call gb_Output_error,gb_Package_add_directory requires 2 arguments))
+$(call gb_Package_get_target,$(1)) :| $$(gb_Package_OUTDIR_$(1))/$(2)/.dir
+$(call gb_Package_get_target,$(1)) : FILES += $$(gb_Package_OUTDIR_$(1))/$(2)
+$(call gb_Package_get_clean_target,$(1)) : FILES += $$(gb_Package_OUTDIR_$(1))/$(2)
+
+endef
+
+# Example:
+# $(eval $(call gb_Package_add_empty_directories,foo_inc,inc/foo))
+# # -> inc/foo
+define gb_Package_add_empty_directories
+$(call gb_Package__check,$(1))
+$(foreach file,$(2),$(call gb_Package_add_empty_directory,$(1),$(file)))
+
+endef
+
define gb_Package_add_symbolic_link
$(call gb_Package__check,$(1))
$(if $(strip $(3)),,$(call gb_Output_error,gb_Package_add_symbolic_link requires 3 arguments))
More information about the Libreoffice-commits
mailing list