Files
poky/meta/recipes-devtools/perl/perl-5.12.2/debian/mod_paths.diff
Nitin A Kamble 345de20815 perl-5.12.2: use of PERLHOSTLIB var fix
PERLHOSTLIB var is used to build target perl. It let perl use the native
perl .so module files at the time of compilation of target perl.

These changes to perl make the PERLHOSTLIB variable also useful for
building perl modules to use native .so perl module.

(From OE-Core rev: f4d51e63c0df777bbcbe9ad160eb3ba41ae74c6e)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-04-24 22:50:36 +01:00

101 lines
2.7 KiB
Diff

Upstream-Status:Inappropriate [debian patch]
Subject: Tweak @INC ordering for Debian
Our order is:
etc (for config files)
site (5.8.1)
vendor (all)
core (5.8.1)
site (version-indep)
site (pre-5.8.1)
The rationale being that an admin (via site), or module packager
(vendor) can chose to shadow core modules when there is a newer
version than is included in core.
---
perl.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 58 insertions(+), 0 deletions(-)
diff --git a/perl.c b/perl.c
index 05cea40..023d6a0 100644
--- a/perl.c
+++ b/perl.c
@@ -4125,6 +4125,11 @@ S_init_perllib(pTHX)
INCPUSH_ADD_SUB_DIRS|INCPUSH_CAN_RELOCATE);
#endif
+#ifdef DEBIAN
+ /* for configuration where /usr is mounted ro (CPAN::Config, Net::Config) */
+ S_incpush_use_sep(aTHX_ STR_WITH_LEN("/etc/perl"), 0x0);
+#endif
+
#ifdef SITEARCH_EXP
/* sitearch is always relative to sitelib on Windows for
* DLL-based path intuition to work correctly */
@@ -4242,6 +4247,59 @@ S_init_perllib(pTHX)
INCPUSH_ADD_OLD_VERS|INCPUSH_CAN_RELOCATE);
#endif
+#ifdef DEBIAN
+ /* Non-versioned site directory for local modules and for
+ compatability with the previous packages' site dirs */
+ S_incpush_use_sep(aTHX_ STR_WITH_LEN("/usr/local/lib/site_perl"),
+ INCPUSH_ADD_SUB_DIRS);
+
+#ifdef PERL_INC_VERSION_LIST
+ {
+ struct stat s;
+
+ /* add small buffer in case old versions are longer than the
+ current version */
+ char sitearch[sizeof(SITEARCH_EXP)+16] = SITEARCH_EXP;
+ char sitelib[sizeof(SITELIB_EXP)+16] = SITELIB_EXP;
+ char const *vers[] = { PERL_INC_VERSION_LIST };
+ char const **p;
+
+ char *arch_vers = strrchr(sitearch, '/');
+ char *lib_vers = strrchr(sitelib, '/');
+
+ if (arch_vers && isdigit(*++arch_vers))
+ *arch_vers = 0;
+ else
+ arch_vers = 0;
+
+ if (lib_vers && isdigit(*++lib_vers))
+ *lib_vers = 0;
+ else
+ lib_vers = 0;
+
+ /* there is some duplication here as incpush does something
+ similar internally, but required as sitearch is not a
+ subdirectory of sitelib */
+ for (p = vers; *p; p++)
+ {
+ if (arch_vers)
+ {
+ strcpy(arch_vers, *p);
+ if (PerlLIO_stat(sitearch, &s) >= 0 && S_ISDIR(s.st_mode))
+ S_incpush_use_sep(aTHX_ sitearch, strlen(sitearch), 0x0);
+ }
+
+ if (lib_vers)
+ {
+ strcpy(lib_vers, *p);
+ if (PerlLIO_stat(sitelib, &s) >= 0 && S_ISDIR(s.st_mode))
+ S_incpush_use_sep(aTHX_ sitelib, strlen(sitelib), 0x0);
+ }
+ }
+ }
+#endif
+#endif
+
#ifdef PERL_OTHERLIBDIRS
S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_OTHERLIBDIRS),
INCPUSH_ADD_OLD_VERS|INCPUSH_ADD_ARCHONLY_SUB_DIRS
--
tg: (c823880..) debian/mod_paths (depends on: upstream)