Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH/RFC 1/1] package/pkg-utils.mk: fix per-package build
@ 2021-01-17 12:24 Bernd Kuhls
  2021-01-17 12:53 ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Bernd Kuhls @ 2021-01-17 12:24 UTC (permalink / raw)
  To: buildroot

Building host-cairo is broken:

>>> host-cairo 1.16.0 Configuring
mkdir -p output/per-package/host-cairo/host
rsync -a -K --link-dest=output/per-package/host-fontconfig/host/ output/per-package/host-fontconfig/host/ output/per-package/host-cairo/host
rsync -a -K --link-dest=output/per-package/host-freetype/host/ output/per-package/host-freetype/host/ output/per-package/host-cairo/host
rsync -a -K --link-dest=output/per-package/host-libglib2/host/ output/per-package/host-libglib2/host/ output/per-package/host-cairo/host
cannot delete non-empty directory: share/gettext
could not make way for new symlink: share/gettext
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1207) [sender=3.1.3]

While host-fontconfig provides share/gettext as a directory

$ ls -la output/per-package/host-fontconfig/host/share | grep gettext
drwxr-xr-x  3 build build 4096 Jan 17 12:27 gettext

in host-libglib2 share/gettext is a link

$ ls -la output/per-package/host-libglib2/host/share | grep gettext
lrwxrwxrwx   3 build build   90 Jan 17 12:27 gettext -> output/per-package/host-gettext-tiny/host/usr/share/gettext-tiny
drwxr-xr-x   5 build build 4096 Jan 17 12:27 gettext-tiny

causing an error with rsync.

Fixes:
http://autobuild.buildroot.net/results/cae/caecde3dc21717745c9b202435e8ddae85c5bb8f/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
This patch is a RFC because I am unsure whether this is the correct fix
as I do not have much experience with rsync. But nonetheless I would like
to point into the imho right direction for the fix.

 package/pkg-utils.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index 11090cb628..1f3ff05b6c 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -178,7 +178,7 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
 define per-package-rsync
 	mkdir -p $(3)
 	$(foreach pkg,$(1),\
-		rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
+		rsync -a --force --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
 		$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
 		$(3)$(sep))
 endef
-- 
2.29.2

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

* [Buildroot] [PATCH/RFC 1/1] package/pkg-utils.mk: fix per-package build
  2021-01-17 12:24 [Buildroot] [PATCH/RFC 1/1] package/pkg-utils.mk: fix per-package build Bernd Kuhls
@ 2021-01-17 12:53 ` Yann E. MORIN
  2021-01-17 13:53   ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Yann E. MORIN @ 2021-01-17 12:53 UTC (permalink / raw)
  To: buildroot

Bernd, All,

On 2021-01-17 13:24 +0100, Bernd Kuhls spake thusly:
> While host-fontconfig provides share/gettext as a directory
> in host-libglib2 share/gettext is a link
> causing an error with rsync.
[--SNIP--]
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
> This patch is a RFC because I am unsure whether this is the correct fix
> as I do not have much experience with rsync. But nonetheless I would like
> to point into the imho right direction for the fix.

In my opinion, this is not the correct patch.

I think the proper approach is to fix either package so that they
provide dentries of the same type.

In this case, it seems like a workaround would be to have
host-fontconfig to also depend on host-gettext, which would ensure that
gettext is a proper symlink in host-fontconfig too.

Regards,
Yann E. MORIN.

>  package/pkg-utils.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
> index 11090cb628..1f3ff05b6c 100644
> --- a/package/pkg-utils.mk
> +++ b/package/pkg-utils.mk
> @@ -178,7 +178,7 @@ ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
>  define per-package-rsync
>  	mkdir -p $(3)
>  	$(foreach pkg,$(1),\
> -		rsync -a --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
> +		rsync -a --force --link-dest=$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
>  		$(PER_PACKAGE_DIR)/$(pkg)/$(2)/ \
>  		$(3)$(sep))
>  endef
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH/RFC 1/1] package/pkg-utils.mk: fix per-package build
  2021-01-17 12:53 ` Yann E. MORIN
@ 2021-01-17 13:53   ` Yann E. MORIN
  0 siblings, 0 replies; 3+ messages in thread
From: Yann E. MORIN @ 2021-01-17 13:53 UTC (permalink / raw)
  To: buildroot

Bernd, All,

On 2021-01-17 13:53 +0100, Yann E. MORIN spake thusly:
> On 2021-01-17 13:24 +0100, Bernd Kuhls spake thusly:
> > While host-fontconfig provides share/gettext as a directory
> > in host-libglib2 share/gettext is a link
> > causing an error with rsync.
> [--SNIP--]
> > Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> > ---
> > This patch is a RFC because I am unsure whether this is the correct fix
> > as I do not have much experience with rsync. But nonetheless I would like
> > to point into the imho right direction for the fix.
> I think the proper approach is to fix either package so that they
> provide dentries of the same type.

Now that I thought about it a bit more, I wonder if in fact, we would
not be better adding a post-install hook to host-gettext-tiny, so that:

  - it does not create a symlink
  - renames the 'gettext-tiny' directory to jsut 'gettext'

That way, we're back to a more clasic situation, as we'd have with the
full-blown gettext.

And the symlink is already our doing, anyway, so probably something
along those lines:

    diff --git a/package/gettext-tiny/gettext-tiny.mk b/package/gettext-tiny/gettext-tiny.mk
    index c297cb1fe5..473c58a94f 100644
    --- a/package/gettext-tiny/gettext-tiny.mk
    +++ b/package/gettext-tiny/gettext-tiny.mk
    @@ -52,6 +52,7 @@ define HOST_GETTEXT_TINY_BUILD_CMDS
     	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
     		$(HOST_CONFIGURE_OPTS) \
     		prefix=$(HOST_DIR) \
    +		datadir=$(HOST_DIR)/usr/share/gettext \
     		CFLAGS="$(HOST_CFLAGS) -fPIC" \
     		LIBINTL=NONE
     
    @@ -70,8 +71,8 @@ define HOST_GETTEXT_TINY_BUILD_CMDS
     endef
     
     define HOST_GETTEXT_TINY_INSTALL_CMDS
    -	$(Q)mkdir -p $(HOST_DIR)/share/gettext-tiny/po
    -	$(Q)mkdir -p $(HOST_DIR)/share/gettext-tiny/m4
    +	$(Q)mkdir -p $(HOST_DIR)/share/gettext/po
    +	$(Q)mkdir -p $(HOST_DIR)/share/gettext/m4
     
     	$(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
     		$(HOST_CONFIGURE_OPTS) \
    @@ -81,21 +82,21 @@ define HOST_GETTEXT_TINY_INSTALL_CMDS
     	$(SED) '/read dummy/d' $(@D)/gettextize
     
     	$(INSTALL) -m 0755 -D $(@D)/gettextize $(HOST_DIR)/bin/gettextize
    -	$(INSTALL) -m 0644 -D $(@D)/build-aux/config.rpath $(HOST_DIR)/share/gettext-tiny/config.rpath
    -	$(INSTALL) -m 0644 -D $(@D)/extra/Makefile.in.in $(HOST_DIR)/share/gettext-tiny/po/Makefile.in.in
    -	$(INSTALL) -m 0644 -D $(@D)/extra/boldquot.sed $(HOST_DIR)/share/gettext-tiny/po/boldquot.sed
    -	$(INSTALL) -m 0644 -D $(@D)/extra/en at boldquot.header $(HOST_DIR)/share/gettext-tiny/po/en at boldquot.header
    -	$(INSTALL) -m 0644 -D $(@D)/extra/en at quot.header $(HOST_DIR)/share/gettext-tiny/po/en at quot.header
    -	$(INSTALL) -m 0644 -D $(@D)/extra/insert-header.sin $(HOST_DIR)/share/gettext-tiny/po/insert-header.sin
    -	$(INSTALL) -m 0644 -D $(@D)/extra/quot.sed $(HOST_DIR)/share/gettext-tiny/po/quot.sed
    -	$(INSTALL) -m 0644 -D $(@D)/extra/remove-potcdate.sin $(HOST_DIR)/share/gettext-tiny/po/remove-potcdate.sin
    -	$(INSTALL) -m 0644 -D $(@D)/extra/Rules-quot $(HOST_DIR)/share/gettext-tiny/po/Rules-quot
    -	$(INSTALL) -m 0644 -D $(@D)/extra/Makevars.template $(HOST_DIR)/share/gettext-tiny/po/Makevars.template
    +	$(INSTALL) -m 0644 -D $(@D)/build-aux/config.rpath $(HOST_DIR)/share/gettext/config.rpath
    +	$(INSTALL) -m 0644 -D $(@D)/extra/Makefile.in.in $(HOST_DIR)/share/gettext/po/Makefile.in.in
    +	$(INSTALL) -m 0644 -D $(@D)/extra/boldquot.sed $(HOST_DIR)/share/gettext/po/boldquot.sed
    +	$(INSTALL) -m 0644 -D $(@D)/extra/en at boldquot.header $(HOST_DIR)/share/gettext/po/en at boldquot.header
    +	$(INSTALL) -m 0644 -D $(@D)/extra/en at quot.header $(HOST_DIR)/share/gettext/po/en at quot.header
    +	$(INSTALL) -m 0644 -D $(@D)/extra/insert-header.sin $(HOST_DIR)/share/gettext/po/insert-header.sin
    +	$(INSTALL) -m 0644 -D $(@D)/extra/quot.sed $(HOST_DIR)/share/gettext/po/quot.sed
    +	$(INSTALL) -m 0644 -D $(@D)/extra/remove-potcdate.sin $(HOST_DIR)/share/gettext/po/remove-potcdate.sin
    +	$(INSTALL) -m 0644 -D $(@D)/extra/Rules-quot $(HOST_DIR)/share/gettext/po/Rules-quot
    +	$(INSTALL) -m 0644 -D $(@D)/extra/Makevars.template $(HOST_DIR)/share/gettext/po/Makevars.template
     
     	$(Q)touch $(HOST_DIR)/share/gettext-tiny/ABOUT-NLS
     
    -	# for gettextize
    -	ln -sf $(HOST_DIR)/usr/share/gettext-tiny $(HOST_DIR)/usr/share/gettext
    +	# for legacy
    +	ln -sf gettext-tiny $(HOST_DIR)/usr/share/gettext-tiny
     endef
     
     # Install simple echo wrapper for gettext tool

Disclaimer: totally untested, as usual! ;-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

end of thread, other threads:[~2021-01-17 13:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-17 12:24 [Buildroot] [PATCH/RFC 1/1] package/pkg-utils.mk: fix per-package build Bernd Kuhls
2021-01-17 12:53 ` Yann E. MORIN
2021-01-17 13:53   ` Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox