packaging: faked-tcp can cause hangs, prefer fakeroot-sysv

especiall when creating installsets with high parallelism, the packaging
stage can hang until faked-tcp is killed.
So avoid this race-condition altogether by switching to the sysv backend
if available.

Change-Id: If554abb8fb51218e6055e70c98622be77ecce58e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205896
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
This commit is contained in:
Christian Lohmaier
2026-06-02 13:21:58 +02:00
parent fb486e04af
commit 402a392bd4
9 changed files with 14 additions and 11 deletions
+1
View File
@@ -285,6 +285,7 @@ export EPUBGEN_LIBS=$(gb_SPACE)@EPUBGEN_LIBS@
export ETONYEK_CFLAGS=$(gb_SPACE)@ETONYEK_CFLAGS@
export ETONYEK_LIBS=$(gb_SPACE)@ETONYEK_LIBS@
export debug=@ENABLE_DEBUG@
FAKEROOT=@FAKEROOT@
export FIND=@FIND@
export FIREBIRD_CFLAGS=$(gb_SPACE)@FIREBIRD_CFLAGS@
export FIREBIRD_LIBS=$(gb_SPACE)@FIREBIRD_LIBS@
+4 -3
View File
@@ -6104,11 +6104,11 @@ msi - Windows .msi
# fakeroot is needed to ensure correct file ownerships/permissions
# inside deb packages and tar archives created on Linux and Solaris.
if test "$OS" = "LINUX" || test "$OS" = "SOLARIS"; then
AC_PATH_PROG(FAKEROOT, fakeroot, no)
if test "$FAKEROOT" = "no"; then
# prefer fakeroot-sysv since faked-tcp can cause port collisions when packaging in parallel
AC_PATH_PROG(FAKEROOT, [fakeroot-sysv fakeroot-tcp fakeroot],
AC_MSG_ERROR(
[--with-package-format='$with_package_format' requires fakeroot. Install fakeroot.])
fi
)
fi
PKGFORMAT="$with_package_format"
AC_MSG_RESULT([$PKGFORMAT])
@@ -6117,6 +6117,7 @@ else
AC_MSG_RESULT([none])
fi
AC_SUBST(PKGFORMAT)
AC_SUBST(FAKEROOT)
dnl ===================================================================
dnl handle help related options
+1
View File
@@ -108,6 +108,7 @@ $(gb_Make_JobLimiter): $(SRCDIR)/solenv/bin/job-limiter.cpp
# packaging (since packaging the main installer takes longer than packaging sdk and all helppacks
# even with the reduced parallelism (the higher the parallelism, the higher the chance for random
# failures during the cscript call to WiLangId.vbs)
$(instsetoo_installer_targets): export FAKEROOT:=$(FAKEROOT)
$(instsetoo_installer_targets): $(SRCDIR)/solenv/bin/make_installer.pl \
$(foreach ulf,$(instsetoo_ULFLIST),$(gb_CustomTarget_workdir)/instsetoo_native/install/win_ulffiles/$(ulf).ulf) \
$(if $(filter-out WNT,$(OS)),\
+2 -2
View File
@@ -222,7 +222,7 @@ sub tar_package
my ( $installdir, $tarfilename, $usefakeroot) = @_;
my $fakerootstring = "";
if ( $usefakeroot ) { $fakerootstring = "fakeroot"; }
if ( $usefakeroot ) { $fakerootstring = $ENV{'FAKEROOT'}; }
my $systemcall = "cd $installdir; $fakerootstring tar -cf - * > $tarfilename";
@@ -497,7 +497,7 @@ sub create_tar_gz_file_from_directory
installer::pathanalyzer::get_path_from_fullqualifiedname(\$changedir);
my $fakerootstring = "";
if ( $usefakeroot ) { $fakerootstring = "fakeroot"; }
if ( $usefakeroot ) { $fakerootstring = $ENV{'FAKEROOT'}; }
$installer::globals::downloadfileextension = ".tar.gz";
$installer::globals::downloadfilename = $downloadfilename . $installer::globals::downloadfileextension;
+1 -1
View File
@@ -824,7 +824,7 @@ sub call_epm
my $fakerootstring = "";
if ( $installer::globals::debian ) { $fakerootstring = "fakeroot "; }
if ( $installer::globals::debian ) { $fakerootstring = "$ENV{'FAKEROOT'} "; }
my $extraflags = "";
if ($ENV{'EPM_FLAGS'}) { $extraflags = $ENV{'EPM_FLAGS'}; }
@@ -488,7 +488,7 @@ sub create_package
my $fakerootstring = "";
if (( $installer::globals::issolarisbuild ) || ( $installer::globals::islinuxbuild ))
{
$fakerootstring = "fakeroot";
$fakerootstring = $ENV{'FAKEROOT'};
}
$systemcall = "cd $tempdir; $fakerootstring tar -cf - . | $installer::globals::packertool > $archive";
+2 -2
View File
@@ -25,7 +25,7 @@ $(foreach product,$(PRODUCTLIST),\
))
$(deb_WORKDIR)/%-desktop-integration.tar.gz: $(deb_WORKDIR)/%$(PKGVERSIONSHORT)-debian-menus_$(PKGVERSION)-$(LIBO_VERSION_PATCH)_all.deb
fakeroot $(GNUTAR) -C $(deb_WORKDIR) -cf - $(notdir $<) | gzip > $@
$(FAKEROOT) $(GNUTAR) -C $(deb_WORKDIR) -cf - $(notdir $<) | gzip > $@
$(deb_WORKDIR)/%/DEBIAN/postrm: $(deb_SRCDIR)/postrm
cat $< | tr -d "\015" | \
@@ -65,6 +65,6 @@ $(deb_WORKDIR)/%$(PKGVERSIONSHORT)-debian-menus_$(PKGVERSION)-$(LIBO_VERSION_PAT
chmod a+rx $(deb_WORKDIR)/$*/DEBIAN \
$(deb_WORKDIR)/$*/DEBIAN/pre* $(deb_WORKDIR)/$*/DEBIAN/post*
chmod g-s $(deb_WORKDIR)/$*/DEBIAN
fakeroot dpkg-deb --build $(deb_WORKDIR)/$* $@
$(FAKEROOT) dpkg-deb --build $(deb_WORKDIR)/$* $@
# vim: set noet sw=4 ts=4:
+1 -1
View File
@@ -55,6 +55,6 @@ $(foreach product,$(PRODUCTLIST),\
))
$(rpm_WORKDIR)/%-desktop-integration.tar.gz:
fakeroot $(GNUTAR) -C $(rpm_WORKDIR)/$* -cf - $(foreach distro,$(RPMDISTROS),$*$(PKGVERSIONSHORT)-$(distro)-menus-$(PKGVERSION)-$(LIBO_VERSION_PATCH).noarch.rpm) | gzip > $@
$(FAKEROOT) $(GNUTAR) -C $(rpm_WORKDIR)/$* -cf - $(foreach distro,$(RPMDISTROS),$*$(PKGVERSIONSHORT)-$(distro)-menus-$(PKGVERSION)-$(LIBO_VERSION_PATCH).noarch.rpm) | gzip > $@
# vim: set noet sw=4 ts=4:
+1 -1
View File
@@ -50,6 +50,6 @@ $(solaris_WORKDIR)/%/prototype: $(solaris_SRCDIR)/prototype
$(solaris_WORKDIR)/%-desktop-integration.tar.gz: $(solaris_WORKDIR)/%/copyright $(solaris_WORKDIR)/%/pkginfo $(solaris_WORKDIR)/%/depend $(solaris_WORKDIR)/%/mailcap $(solaris_WORKDIR)/%/postinstall $(solaris_WORKDIR)/%/postremove $(solaris_WORKDIR)/%/prototype $(gb_CustomTarget_workdir)/sysui/share/%/openoffice.org.xml
# pkgmk -l 1073741824 -r $(solaris_WORKDIR) -f $(solaris_WORKDIR)/$*/prototype -o -d $(solaris_WORKDIR) ARCH=all VERSION=$(PKGVERSION.$*)
fakeroot $(GNUTAR) -cf - -C $(solaris_WORKDIR) $* | gzip > $@
$(FAKEROOT) $(GNUTAR) -cf - -C $(solaris_WORKDIR) $* | gzip > $@
# vim: set noet sw=4 ts=4: