Hello again, the same issue appeared for flex as well where libfl.* was missing. Here is
the patch I used for that one.
However, that one feels kind of "ridiculous". Is there an easier way to do this?
I am sure I am simply overlooking something at this point...
diff --git a/package/flex/Makefile b/package/flex/Makefile
index 5570365ff..35a0526db 100644
--- a/package/flex/Makefile
+++ b/package/flex/Makefile
@@ -35,6 +35,13 @@ hostpost-install:
flex-install:
$(INSTALL_DIR) $(IDIR_FLEX)/usr/bin
$(INSTALL_BIN) $(WRKINST)/usr/bin/flex $(IDIR_FLEX)/usr/bin
+ for dir in lib include; do \
+ $(INSTALL_DIR) $(IDIR_FLEX)/usr/$$dir; \
+ find $(WRKINST)/usr/$$dir \( -type f -o -type -l \) -printf '%f\n'
| \
+ while read file; do \
+ ${INSTALL_BIN} "$(WRKINST)/usr/$$dir/$$file"
"${IDIR_FLEX}/usr/$$dir/$$file"; \
+ done; \
+ done
include $(ADK_TOPDIR)/mk/host-bottom.mk
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
Kind regards,
Ingwie
Ingwie <ingwie(a)birb.it> schrieb am Dienstag, 12. März 2024 um 09:05:
> Hello!
> I found an odd behaviour where pkgconf will not install it's shared library into
the target root - although it is completely built:
> root@riscboi /n/o/openadk (master)# tar tvf
firmware/generic-riscv64_musl/generic-riscv64-musl-archive+kernel.tar.xz | grep pkgconf
> -rwxr-xr-x root/root 26840 2024-03-12 01:59 usr/bin/pkgconf
> lrwxrwxrwx root/root 0 2024-03-12 01:59 usr/bin/pkg-config -> pkgconf
> drwxr-xr-x root/root 0 2024-03-12 04:09 usr/lib/pkgconfig/
> -rw-r--r-- root/root 277 2024-03-12 03:38 usr/lib/pkgconfig/expat.pc
> -rw-r--r-- root/root 595 2024-03-12 01:26 usr/lib/pkgconfig/form.pc
> -rw-r--r-- root/root 245 2024-03-12 00:50 usr/lib/pkgconfig/gmp.pc
> -rw-r--r-- root/root 305 2024-03-12 01:39 usr/lib/pkgconfig/libarchive.pc
> -rw-r--r-- root/root 275 2024-03-12 01:17 usr/lib/pkgconfig/libcrypto.pc
> -rw-r--r-- root/root 1613 2024-03-12 01:21 usr/lib/pkgconfig/libcurl.pc
> -rw-r--r-- root/root 255 2024-03-12 03:33 usr/lib/pkgconfig/libelf.pc
> -rw-r--r-- root/root 378 2024-03-12 01:35 usr/lib/pkgconfig/liblzma.pc
> -rw-r--r-- root/root 296 2024-03-12 01:17 usr/lib/pkgconfig/libssl.pc
> -rw-r--r-- root/root 289 2024-03-12 01:17 usr/lib/pkgconfig/libtls.pc
> -rw-r--r-- root/root 456 2024-03-12 01:55 usr/lib/pkgconfig/libzstd.pc
> -rw-r--r-- root/root 595 2024-03-12 01:26 usr/lib/pkgconfig/menu.pc
> -rw-r--r-- root/root 272 2024-03-12 00:53 usr/lib/pkgconfig/mpfr.pc
> -rw-r--r-- root/root 595 2024-03-12 01:26 usr/lib/pkgconfig/ncurses.pc
> -rw-r--r-- root/root 251 2024-03-12 01:17 usr/lib/pkgconfig/openssl.pc
> -rw-r--r-- root/root 597 2024-03-12 01:26 usr/lib/pkgconfig/panel.pc
> -rw-r--r-- root/root 602 2024-03-12 01:26 usr/lib/pkgconfig/tinfo.pc
> -rw-r--r-- root/root 252 2024-03-12 01:06 usr/lib/pkgconfig/zlib.pc
> root@riscboi /n/o/openadk (master)# find root_generic-riscv64_musl/ -name
"libpkgconf*"
> (no output)
> root@riscboi /n/o/openadk (master)# find
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/ -name "libpkgconf*"
>
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/include/pkgconf/libpkgconf
>
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/include/pkgconf/libpkgconf/libpkgconf.h
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.la
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.so
>
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/pkgconfig/libpkgconf.pc
>
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.so.2.0.0
>
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/lib/libpkgconf.so.2
> What is odd though is that the pkgconf binary itself is installed:
> # find root_generic-riscv64_musl/ build_generic-riscv64_musl/w-pkgconf-1.1.0-1/ -name
pkgconf
> root_generic-riscv64_musl/usr/bin/pkgconf
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/pkgconf-1.1.0/.libs/pkgconf
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/pkgconf-1.1.0/pkgconf
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/bin/pkgconf
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/include/pkgconf
> build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/root/usr/share/doc/pkgconf
>
build_generic-riscv64_musl/w-pkgconf-1.1.0-1/fake-riscv64/pkg-pkgconf/usr/bin/pkgconf
> And the package itself doesn't contain it either:
> # tar tvf firmware/generic-riscv64_musl/packages/pkgconf_1.1.0-1_riscv64.tar.xz
> drwxr-xr-x root/root 0 2024-03-12 08:42 ./
> drwxr-xr-x root/root 0 2024-03-12 08:40 ./usr/
> drwxr-xr-x root/root 0 2024-03-12 08:40 ./usr/bin/
> lrwxrwxrwx root/root 0 2024-03-12 08:40 ./usr/bin/pkg-config -> pkgconf
> -rwxr-xr-x root/root 26840 2024-03-12 08:40 ./usr/bin/pkgconf
> Looking at the pkgconf-install target in package/pkgconf/Makefile shows that that
library is never installed, causing the target system to run into numerous errors when
trying to execute the tool.
> This is my current workaround. Not very elegant; but... it gets the job done.
> diff --git a/package/pkgconf/Makefile b/package/pkgconf/Makefile
> index cebfeb44d..640bce899 100644
> --- a/package/pkgconf/Makefile
> +++ b/package/pkgconf/Makefile
> @@ -29,9 +29,13 @@ endif
> (cd $(STAGING_HOST_DIR)/usr/bin && ln -sf pkg-config
$(GNU_TARGET_NAME)-pkg-config)
> pkgconf-install:
> - $(INSTALL_DIR) $(IDIR_PKGCONF)/usr/bin
> - $(INSTALL_BIN) $(WRKINST)/usr/bin/pkgconf \
> - $(IDIR_PKGCONF)/usr/bin
> + for dir in bin lib include; do \
> + $(INSTALL_DIR) $(IDIR_PKGCONF)/usr/$$dir; \
> + find $(WRKINST)/usr/$$dir -type f \
> + -exec ${INSTALL_BIN} "{}" "$(IDIR_PKGCONF)/usr/{}" \; ; \
> + done
> + #$(INSTALL_BIN) $(WRKINST)/usr/bin/pkgconf \
> + # $(IDIR_PKGCONF)/usr/bin
> (cd $(IDIR_PKGCONF)/usr/bin && ln -sf pkgconf pkg-config)
> include ${ADK_TOPDIR}/mk/host-bottom.mk
Hope this'll be
useful!_______________________________________________
dev mailing list -- dev(a)openadk.org
To unsubscribe send an email to dev-leave(a)openadk.org