All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/ecryptfs-utils: disable parallel build
@ 2019-12-26  8:53 Fabrice Fontaine
  2019-12-26 13:32 ` Thomas Petazzoni
  0 siblings, 1 reply; 2+ messages in thread
From: Fabrice Fontaine @ 2019-12-26  8:53 UTC (permalink / raw)
  To: buildroot

Build randomly fails since December 2017 on:

make[5]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/ecryptfs-utils-111/src/utils'
 /bin/mkdir -p '/home/buildroot/autobuild/instance-2/output-1/target/sbin'
  /bin/bash ../../libtool   --mode=install /usr/bin/install -c mount.ecryptfs umount.ecryptfs mount.ecryptfs_private '/home/buildroot/autobuild/instance-2/output-1/target/sbin'
libtool: install: /usr/bin/install -c mount.ecryptfs /home/buildroot/autobuild/instance-2/output-1/target/sbin/mount.ecryptfs
/usr/bin/install: cannot create regular file '/home/buildroot/autobuild/instance-2/output-1/target/sbin/mount.ecryptfs': File exists
Makefile:832: recipe for target 'install-rootsbinPROGRAMS' failed
make[5]: *** [install-rootsbinPROGRAMS] Error 1

Fixes:
 - http://autobuild.buildroot.org/results/2063bd18830ef02dca0bed889c43639009bc688e

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/ecryptfs-utils/ecryptfs-utils.mk | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package/ecryptfs-utils/ecryptfs-utils.mk b/package/ecryptfs-utils/ecryptfs-utils.mk
index 326ff4f2dd..ef62325a31 100644
--- a/package/ecryptfs-utils/ecryptfs-utils.mk
+++ b/package/ecryptfs-utils/ecryptfs-utils.mk
@@ -10,6 +10,9 @@ ECRYPTFS_UTILS_SITE = https://launchpad.net/ecryptfs/trunk/$(ECRYPTFS_UTILS_VERS
 ECRYPTFS_UTILS_LICENSE = GPL-2.0+
 ECRYPTFS_UTILS_LICENSE_FILES = COPYING
 
+# Package does not build in parallel due to improper make rules
+ECRYPTFS_UTILS_MAKE = $(MAKE1)
+
 ECRYPTFS_UTILS_DEPENDENCIES = keyutils libnss host-intltool
 ECRYPTFS_UTILS_CONF_OPTS = --disable-pywrap
 
-- 
2.24.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [Buildroot] [PATCH 1/1] package/ecryptfs-utils: disable parallel build
  2019-12-26  8:53 [Buildroot] [PATCH 1/1] package/ecryptfs-utils: disable parallel build Fabrice Fontaine
@ 2019-12-26 13:32 ` Thomas Petazzoni
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni @ 2019-12-26 13:32 UTC (permalink / raw)
  To: buildroot

Hello Fabrice,

On Thu, 26 Dec 2019 09:53:08 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Build randomly fails since December 2017 on:
> 
> make[5]: Entering directory '/home/buildroot/autobuild/instance-2/output-1/build/ecryptfs-utils-111/src/utils'
>  /bin/mkdir -p '/home/buildroot/autobuild/instance-2/output-1/target/sbin'
>   /bin/bash ../../libtool   --mode=install /usr/bin/install -c mount.ecryptfs umount.ecryptfs mount.ecryptfs_private '/home/buildroot/autobuild/instance-2/output-1/target/sbin'
> libtool: install: /usr/bin/install -c mount.ecryptfs /home/buildroot/autobuild/instance-2/output-1/target/sbin/mount.ecryptfs
> /usr/bin/install: cannot create regular file '/home/buildroot/autobuild/instance-2/output-1/target/sbin/mount.ecryptfs': File exists
> Makefile:832: recipe for target 'install-rootsbinPROGRAMS' failed
> make[5]: *** [install-rootsbinPROGRAMS] Error 1
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/2063bd18830ef02dca0bed889c43639009bc688e
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

I think I would prefer to fix the actual problem. From a quick look, my
guess is that the problem happens due to:

install-exec-hook:      install-rootsbinPROGRAMS
        -rm -f "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private"
        $(LN_S) "mount.ecryptfs_private" "$(DESTDIR)/$(rootsbindir)/umount.ecryptfs_private"

in src/utils/Makefile.am

The install-exec-hook target should not have a dependency on
install-rootsbinPROGRAMS.

From https://www.gnu.org/software/automake/manual/html_node/Extending.html#Extending:

"""
In contrast, some rules also have a way to run another rule, called a
hook; hooks are always executed after the main rule?s work is done. The
hook is named after the principal target, with ?-hook? appended. The
targets allowing hooks are install-data, install-exec, uninstall, dist,
and distcheck.

For instance, here is how to create a hard link to an installed program:

install-exec-hook:
        ln $(DESTDIR)$(bindir)/program$(EXEEXT) \
           $(DESTDIR)$(bindir)/proglink$(EXEEXT)

"""

So, they explicitly say that these hooks are run after the main rule
work is done, which means the dependency on install-rootsbinPROGRAMS is
not needed. And the example they use to illustrate is *exactly* the
situation of ecryptfs-utils: creating a link to a program that was
installed.

Could you try this, and if possible upstream the fix ?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-12-26 13:32 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-26  8:53 [Buildroot] [PATCH 1/1] package/ecryptfs-utils: disable parallel build Fabrice Fontaine
2019-12-26 13:32 ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.