From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] State of Perl: remaining questions
Date: Sun, 14 Oct 2012 20:35:24 +0200 [thread overview]
Message-ID: <20121014203524.5dc66a9d@skate> (raw)
Hello Peter,
As we discussed on IRC, here is my opinion on the state of the Perl
patch set from Fran?ois and the remaining points of discussion.
* I am fine with patches 1/10, 2/10, 3/10, 4/10, 5/10, 6/10. I think
those patches could be committed now.
* I have asked Fran?ois to refactor a bit the removal of microperl
(patches 7/10, 8/10 and 10/10). In the end, it will make no
difference, it's just the order in which are done that will be
different. But this also requests for your approval to remove the
microperl package without having a deprecation period. I believe
that since we're adding a full Perl installation instead, there
should be no problem in doing this.
* I am still not fully convinced by 9/10, the integration of
cpanminus, and I will give some details below.
Fran?ois will correct me if I'm wrong, but cpanminus is a tool that
easily allows to download and build Perl modules, taking care of the
necessary dependencies. It is a bit like easy_install for Python, if
I'm correct.
So the idea is that instead of having Buildroot packages for each and
every Perl module, you only have cpanminus, which provides two important
Kconfig knobs:
* BR2_PACKAGE_CPANMINUS_MODULES, thanks to which you provide a
space-separated list of Perl modules you want.
* BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES, thanks to which you
provide a space-separated list of Buildroot packages that are native
dependencies needed to build the Perl modules listed in
BR2_PACKAGE_CPANMINUS_MODULES.
For example, BR2_PACKAGE_CPANMINUS_MODULES can be "Curses::UI" to get
the Perl module of this name, in which case
BR2_PACKAGE_CPANMINUS_NATIVE_DEPENDENCIES has to be "curses" so that
our "curses" package gets built as a dependency of cpanminus.
So, cpanminus is doing its own package management, download process,
dependency tracking, which to me creates a number of problems:
*) No integration with the licensing infrastructure. The individual
Perl modules are not visible in terms of licensing report. This is
maybe not a big issue since most of them are released under the
Artistic license.
*) No integration with the download mechanisms of Buildroot. So it
doesn't put the downloaded tarballs in $(DL_DIR), doesn't take care
of $(BR2_PRIMARY_SITE), breaks "make source", "make external-deps",
prevents people from having guarantees to make offline builds
(unless they create a specific cpan mirror, of course).
*) The dependency tracking seems a bit fragile, i.e the user needs to
know on which native package a given Perl module depend. This is
maybe not that problematic, we can assume that the developer crazy
enough to write Perl code will know his dependencies :-)
On the other end, as Arnout and Francois have noted, create Buildroot
packages for each and every Perl module around is going to bring us a
crazy number of packages. Perl modules are apparently even more split
in fine-grained components than Python packages are, so the number of
dependencies and components if even larger.
Note that I am not carrying a strong NAK on cpanminus, I am just
pointing out how it moves away from the normal Buildroot
infrastructure, and which problems it generates. I will not oppose to
see it merged, I don't plan to be using it myself.
So to summarize, the only part of this series that to me remains a bit
controversial is this cpanminus thing, patch 9/10.
I would like to thank again Fran?ois for his excellent persistence and
perseverance in his work on the Lua and Perl stuff in Buildroot. This
is _highly_ appreciated. Thanks!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next reply other threads:[~2012-10-14 18:35 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-14 18:35 Thomas Petazzoni [this message]
2012-10-15 13:51 ` [Buildroot] [UNSURE] State of Perl: remaining questions François Perrad
2012-10-29 10:55 ` Thomas Petazzoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121014203524.5dc66a9d@skate \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.