Skip to contentSkip to conversation

host-perl-autodie: new package

PATCH New Fabrice Fontaine 2 participants 5 messages Jun 3, 2018 – Jun 4, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 host-perl-autodie: new package

Replace functions with ones that succeed or die with lexical scope

https://metacpan.org/release/autodie

---
 package/perl-autodie/perl-autodie.hash |  6 ++++++
 package/perl-autodie/perl-autodie.mk   | 13 +++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 package/perl-autodie/perl-autodie.hash
 create mode 100644 package/perl-autodie/perl-autodie.mk
package/perl-autodie/perl-autodie.hash new file +6 -0
new file mode 100644
index 0000000000..7eb157c73a
@@ -0,0 +1,6 @@
+# retrieved by scancpan from http://cpan.metacpan.org/
+md5    2739e6599a2aa47601fe91b2a27b29d9 autodie-2.29.tar.gz
+sha256 f5b77917e7004179c93ff8511c8a4c1ea19df3da6379f78b55b57791c45229bf autodie-2.29.tar.gz
+
+# computed by scancpan
+sha256 d03cbb6193f7c27bcdce8464624624275cdbde207a94896c4ebb3bac1f9f5c5c LICENSE
package/perl-autodie/perl-autodie.mk new file +13 -0
new file mode 100644
index 0000000000..dbe458854b
@@ -0,0 +1,13 @@
+################################################################################
+#
+# perl-autodie
+#
+################################################################################
+
+PERL_AUTODIE_VERSION = 2.29
+PERL_AUTODIE_SOURCE = autodie-$(PERL_AUTODIE_VERSION).tar.gz
+PERL_AUTODIE_SITE = $(BR2_CPAN_MIRROR)/authors/id/P/PJ/PJF
+PERL_AUTODIE_LICENSE = Artistic or GPL-1.0+
+PERL_AUTODIE_LICENSE_FILES = LICENSE
+
+$(eval $(host-perl-package))
Signature · 1 line
2.14.1
#1 lore raw

PATCH 2/2 whois: add host-perl-autodie dependency

Fixes:
- http://autobuild.buildroot.net/results/5d13bd7df9596b3bdf1a720962d1ad09af752769

---
 package/whois/whois.mk | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
package/whois/whois.mk +4 -1
index 5cd7cde7fd..c1461b1f3b 100644
@@ -8,7 +8,10 @@ WHOIS_VERSION = 5.3.0
 WHOIS_SITE = http://snapshot.debian.org/archive/debian/20180121T094839Z/pool/main/w/whois
 WHOIS_SOURCE = whois_$(WHOIS_VERSION).tar.xz
 # take precedence over busybox implementation
-WHOIS_DEPENDENCIES = $(if $(BR2_PACKAGE_BUSYBOX),busybox) $(TARGET_NLS_DEPENDENCIES)
+WHOIS_DEPENDENCIES = \
+	$(if $(BR2_PACKAGE_BUSYBOX),busybox) \
+	host-perl-autodie \
+	$(TARGET_NLS_DEPENDENCIES)
 WHOIS_MAKE_ENV = $(TARGET_MAKE_ENV)
 WHOIS_MAKE_OPTS = CC="$(TARGET_CC)" CFLAGS="$(TARGET_CFLAGS)" \
 	LIBS="$(WHOIS_EXTRA_LIBS)"
Signature · 1 line
2.14.1
#2 lore raw

PATCH 1/2 host-perl-autodie: new package

In reply to Fabrice Fontaine

Hello,

Quoted 11 lines · Fabrice Fontaine

Replace functions with ones that succeed or die with lexical scope

https://metacpan.org/release/autodie

---
 package/perl-autodie/perl-autodie.hash |  6 ++++++
 package/perl-autodie/perl-autodie.mk   | 13 +++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 package/perl-autodie/perl-autodie.hash
 create mode 100644 package/perl-autodie/perl-autodie.mk

This series doesn't fix the problem for me. Indeed, whois seems to be using /usr/bin/perl explicitly, so it doesn't find the perl-autodie built by Buildroot:

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

host-perl-autodie 2.29 Extracting host-perl-autodie 2.29 Patching host-perl-autodie 2.29 Configuring host-perl-autodie 2.29 Building host-perl-autodie 2.29 Installing to host directory whois 5.3.0 Extracting

/home/buildroot/output/host/bin/xzcat /home/buildroot/buildroot/dl/whois/whois_5.3.0.tar.xz | /home/buildroot/output/host/bin/tar --strip-components=1 -C /home/buildroot/output/build/whois-5.3.0 -xf -

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

whois 5.3.0 Patching
whois 5.3.0 Configuring
whois 5.3.0 Building

PATH="/home/buildroot/output/host/bin:/home/buildroot/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" /usr/bin/make -j5 CC="/home/buildroot/output/host/bin/arm-linux-gcc" CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os " LIBS="" Makefile.depend whois mkpasswd -C /home/buildroot/output/build/whois-5.3.0
/home/buildroot/output/host/bin/arm-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -MM -MG *.c > Makefile.depend
make[2]: 'Makefile.depend' is up to date.
/usr/bin/perl make_version_h.pl debian/changelog > version.h
/usr/bin/perl make_ip_del.pl < ip_del_list > ip_del.h
/usr/bin/perl make_ip6_del.pl < ip6_del_list > ip6_del.h
/usr/bin/perl make_as_del.pl < as_del_list > as_del.h
/usr/bin/perl make_as32_del.pl < as32_del_list > as32_del.h
Can't locate autodie.pm in @INC (you may need to install the autodie module) (@INC contains: /home/buildroot/output/host/lib/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at make_version_h.pl line 5.
BEGIN failed--compilation aborted at make_version_h.pl line 5.
make[2]: *** [Makefile:82: version.h] Error 2
make[2]: *** Deleting file 'version.h'
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [package/pkg-generic.mk:232: /home/buildroot/output/build/whois-5.3.0/.stamp_built] Error 2
make: *** [Makefile:16: _all] Error 2

The second issue that I have is I'm not sure we want to add host-perl as a dependency of whois (and that's what your series is indirectly doing). host-perl is a pretty heavy dependency. I see three possibilities here:

- Keep it as you do, with perl-autodie using the host-perl-package infrastructure, which means adding a host-perl dependency to the dependency chain of whois.

- Implement perl-autodie like libxml-parser-perl, i.e explicitly avoid using host-perl-package to avoid the host-perl dependency.

- Add a requirement on perl-autodie to be installed system-wide in support/dependencies/dependencies.sh, like we're already doing for a few other Perl packages.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#3 lore raw

PATCH 1/2 host-perl-autodie: new package

Dear Thomas,

2018-06-04 23:04 GMT+02:00 Thomas Petazzoni <[email protected]>:

Quoted 68 lines

Hello,

Quoted 11 lines · Fabrice Fontaine

Replace functions with ones that succeed or die with lexical scope

https://metacpan.org/release/autodie

---
 package/perl-autodie/perl-autodie.hash |  6 ++++++
 package/perl-autodie/perl-autodie.mk   | 13 +++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100644 package/perl-autodie/perl-autodie.hash
 create mode 100644 package/perl-autodie/perl-autodie.mk

This series doesn't fix the problem for me. Indeed, whois seems to be using /usr/bin/perl explicitly, so it doesn't find the perl-autodie built by Buildroot:

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

host-perl-autodie 2.29 Extracting host-perl-autodie 2.29 Patching host-perl-autodie 2.29 Configuring host-perl-autodie 2.29 Building host-perl-autodie 2.29 Installing to host directory whois 5.3.0 Extracting

/home/buildroot/output/host/bin/xzcat /home/buildroot/buildroot/dl/whois/whois_5.3.0.tar.xz | /home/buildroot/output/host/bin/tar --strip-components=1 -C
/home/buildroot/output/build/whois-5.3.0 -xf -

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

whois 5.3.0 Patching
whois 5.3.0 Configuring
whois 5.3.0 Building

PATH="/home/buildroot/output/host/bin:/home/buildroot/ output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" /usr/bin/make -j5 CC="/home/buildroot/output/host/bin/arm-linux-gcc" CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-Os " LIBS="" Makefile.depend whois mkpasswd -C /home/buildroot/output/build/whois-5.3.0
/home/buildroot/output/host/bin/arm-linux-gcc -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -MM -MG *.c >
Makefile.depend
make[2]: 'Makefile.depend' is up to date.
/usr/bin/perl make_version_h.pl debian/changelog > version.h
/usr/bin/perl make_ip_del.pl < ip_del_list > ip_del.h
/usr/bin/perl make_ip6_del.pl < ip6_del_list > ip6_del.h
/usr/bin/perl make_as_del.pl < as_del_list > as_del.h
/usr/bin/perl make_as32_del.pl < as32_del_list > as32_del.h
Can't locate autodie.pm in @INC (you may need to install the autodie
module) (@INC contains: /home/buildroot/output/host/lib/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at make_version_h.pl line 5.
BEGIN failed--compilation aborted at make_version_h.pl line 5.
make[2]: *** [Makefile:82: version.h] Error 2
make[2]: *** Deleting file 'version.h'
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [package/pkg-generic.mk:232: /home/buildroot/output/build/whois-5.3.0/.stamp_built] Error 2
make: *** [Makefile:16: _all] Error 2

The second issue that I have is I'm not sure we want to add host-perl as a dependency of whois (and that's what your series is indirectly doing). host-perl is a pretty heavy dependency. I see three possibilities here:

- Keep it as you do, with perl-autodie using the host-perl-package infrastructure, which means adding a host-perl dependency to the dependency chain of whois.

Quoted 7 lines

- Implement perl-autodie like libxml-parser-perl, i.e explicitly avoid using host-perl-package to avoid the host-perl dependency.

- Add a requirement on perl-autodie to be installed system-wide in support/dependencies/dependencies.sh, like we're already doing for a few other Perl packages.

Second or third solution are definitely better than first one. Which one do yo prefer?
Perhaps, the second option is better, I don't know if all our users run the dependencies.sh script?

Quoted 8 lines

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) Embedded Linux and Kernel engineering
https://bootlin.com

Best Regards,

Fabrice
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180604/ef06045b/attachment.html>

#4 lore raw

PATCH 1/2 host-perl-autodie: new package

Hello,

Quoted 4 lines · Fabrice Fontaine

Second or third solution are definitely better than first one. Which one do yo prefer?
Perhaps, the second option is better, I don't know if all our users run the dependencies.sh script?

dependencies.sh is run by Buildroot at the beginning of every build, and if it fails to find a required dependency, the build doesn't even start.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com