101 lines
2.8 KiB
Diff
101 lines
2.8 KiB
Diff
Upstream-Status:Inappropriate [debian patches]
|
|
From 11633e598640b02e19329f323623af254fbac451 Mon Sep 17 00:00:00 2001
|
|
From: Brendan O'Dea <bod@debian.org>
|
|
Date: Fri, 18 Mar 2005 22:22:25 +1100
|
|
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.
|
|
|
|
Patch-Name: debian/mod_paths.diff
|
|
---
|
|
perl.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
1 files changed, 58 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/perl.c b/perl.c
|
|
index f756e02..d26dcb0 100644
|
|
--- a/perl.c
|
|
+++ b/perl.c
|
|
@@ -4219,6 +4219,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 */
|
|
@@ -4336,6 +4341,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
|