275 Commits

Author SHA1 Message Date
Igor Todorovski
8af62fee44 Restructure handling extra statbuf flags on z/OS
z/OS has extra fields which give the character set associated with the
object.  Previously, there were a bunch of functions called to deal with
these.

This all falls away if we #ifdef these fields when accessing the
structure.
2025-09-17 14:34:41 -06:00
Mike Fulton
68c5ae10f5 Need to remove ASCII tags on copied compiled executables for z/OS ASCII
Untag compiled executables (perl and the .so files) after they are
 copied with File::copy because File::copy is marking them as CCSID 819
 (ASCII). The longer term fix for this could be to provide a syscopy on
 z/OS which would perform a _cp_ which on z/OS copies the tag
 information as part of the copy.
2022-01-01 18:14:44 -07:00
Dagfinn Ilmari Mannsåker
4457f3fc41 Remove DOS/DJGPP support
DJGPP is a port of the GNU toolchain to 32-bit x86 systems running DOS.
The last known attempt to build Perl on it was on 5.20, which only got
as far as building miniperl.
2021-11-02 18:01:42 +00:00
Dagfinn Ilmari Mannsåker
2eb109a4d3 Remove NetWare support
The build has been broken since 2009.
2021-10-08 19:21:33 +01:00
Tony Cook
191f8909fa (perl #127606) adjust dependency paths on installation on darwin
SIP (System Integrity Protection) on OS X prevents the
DYLD_LIBRARY_PATH environment variable from being propagated through
/bin/sh, causes many tests to fail (and some more recent build issues)
for -Duseshrplib builds.

To avoid that, we change the way libperl.dylib is linked to perl, so
for the initial build the library's id is at the build location rather
than the install location, and the generated executable also expects
to find libperl in that location.

This obviously won't work once we copy both to the installation
directory, so we adjust both the id of the library and the dependency
path in the executable to point to the new location of the library.

A previous attempt set -rpath and used @rpath in the id, but this made
the embedding test fail.
2018-11-02 10:46:03 +11:00
Nicolas R
3d3a0a8a5e Replace multiple 'use vars' by 'our' in utils
Using vars pragma is discouraged and has been superseded by 'our' declarations
available in Perl v5.6.0 or later.
2017-11-11 01:07:18 -06:00
David Mitchell
ee16020279 Remove "Warning: perl appears in your path"
This install warning is more or less obsolete, since most platforms
already *will* have a /usr/bin/perl or similar provided by the OS.

We agreed to remove it in this thread:

    http://nntp.perl.org/group/perl.perl5.porters/240000
2016-11-14 12:46:56 +00:00
Daniel Dragan
3bf323675f [perl #127556] update installperl to new location of W32 libperl link lib
commit bf543eaf90 made the Win32 GCC or VC linkers produce
[lib]perl[5xx].[a/lib] in the /lib/CORE dir to reduce the prereq recipie
lines needing to run until XS modules can be built ("Extensions" which
builds all DLL XS modules is the longest running target and every effort
should be made for it to be started sooner by the make tool in parallel
build). The file is now made in /lib/CORE, previously it was made in root
and xcopy-ed to /lib/CORE in the same target that built the file. xcopy is
a seperate process run so was remove in that commit.

installperl doesn't use uninstalled /lib/CORE to determine the contents of
installed /lib/CORE (maybe that is a bug or bad design?), so the linking
lib was not being installed after a "[g/d]make install" making it
impossible to compile XS code on Win32 Perl. Change installperl
to look for the linking lib in /lib/CORE on Win32 and not in root. Even
though the nmake makefile still does the XCOPY since it is older/less
maintained, the installperl code still works since the root and /lib/CORE
files are identical on the nmake build and built in the same target.
2016-02-18 11:16:08 +11:00
Daniel Dragan
581f1868f2 dont install PPPort.so/PPPort.dll
This shared lib is only used for PPPort testing itself, it is similar to
APItest.dll in purpose. PPPort.pm never uses XSLoader/DynaLoader, only its
.t files do. This saves 616KB in the final install dir on Win32, and
atleast one or two dozen KB on all OSes. Since where is auto dir, and what
is arch dir, is complicated and unportable (atleast to me), and what other
files live next to the shared lib (examples, .pdb file, .bs file, .a file)
match the directory fragment, not the files inside of it or the dirs
full path.

 Directory of C:\p523\src\lib\auto\Devel\PPPort

10/25/2015  07:16 PM    <DIR>          .
10/25/2015  07:16 PM    <DIR>          ..
10/25/2015  07:16 PM                 0 .exists
10/25/2015  07:16 PM            59,392 PPPort.dll
10/25/2015  07:16 PM               796 PPPort.exp
10/25/2015  07:16 PM             1,738 PPPort.lib
10/25/2015  07:16 PM           569,344 PPPort.pdb
               5 File(s)        631,270 bytes
2015-11-02 15:49:04 +11:00
Daniel Dragan
ce9582afa2 don't distribute version::vpp/EUMM::version::vpp
version::vpp is not part of the public API of version::, the core
cpan/version/lib/version.pm is not capable of using it unlike the
version.pm on cpan, and the Makefile.PL from cpan version:: that picks
between vpp and vxs isn't in core either. The xsubs behind core version.pm
are permanently baked in universal.c, they arent "static XS" or
"dynamic (shared lib) XS", and no XSLoader/DynaLoader is used. vpp.pm is
therefore useless in blead distributed version:: since vpp.pm is only
useful on very old perls. In blead, vpp only existed for the purpose of
making 00impl-pp.t pass, yet takes up space in the perl tarball, and was
installed into the final install location, so remove vpp.pm to save space
since it is unusable. vpp.pm and the rest of version is developed on
cpan, not in core, and vpp.pm is sort of a devel tool and sanity check and
therefore an author test, and core doesn't include author tests like
pod-coverage.t so that is one other reason it is being removed.

Also remove EUMM's vpp.pm, first it isn't miniperl compatible, and it also
is a copy more or less of version::vpp, and blead perl comes with
version.pm, since it is blead perl and not an old perl. If there is an
accident/error/bad behaviour EUMM::vpp.pm can get loaded
( http://www.nntp.perl.org/group/perl.perl5.porters/2015/10/msg232039.html
), but it is an error for it to ever be loaded. Prevent "silent failure"
by deleteing EUMM::vpp.pm, this way the failure will be an obvious
can't find EUMM::vpp.pm instead of subtle differences between the XS and
PP version implementations, or the not miniperl compatible failure.
Although ExtUtils::MakeMaker::version::regex.pm could be deleted for
the same reasons as EUMM::vpp.pm, I am leaving it in for now until the
EUMM patch in "version PP is not PP" goes through review, but still dont
install it, blead comes with the official version::regex.pm

version::vpp.pm is 22KB
00impl-pp.t is 0.5KB
ExtUtils::MakeMaker::version::vpp.pm is 23KB
ExtUtils::MakeMaker::version::regex.pm is 5KB

The 3 .pm files were being installed into the final installed perl location
where they are useless on blead perl. Some people complain perl core is
too big/bloated (redhat perl), removing 50KB and 3 files from final
location, and 45.5KB and 3 files from the tarball helps to trim the
core.
2015-10-28 10:34:34 +11:00
Andy Broad
de35015f26 amigaos4: install scripts
- needs different mode for shared objects (libraries)
- needs running the os-specific utility
- no hard links but symlinks
2015-09-05 11:12:48 -04:00
Dagfinn Ilmari Mannsåker
abec5bedac Replace common Emacs file-local variables with dir-locals
An empty cpan/.dir-locals.el stops Emacs using the core defaults for
code imported from CPAN.

Committer's work:

To keep t/porting/cmp_version.t and t/porting/utils.t happy, $VERSION needed
to be incremented in many files, including throughout dist/PathTools.

perldelta entry for module updates.

Add two Emacs control files to MANIFEST; re-sort MANIFEST.

For: RT #124119.
2015-03-22 22:36:14 -04:00
kmx
dc5c2addf8 [perl #123436] installperl patch related to $Config{dlext} 2014-12-16 09:00:47 +00:00
Matthew Horsfall (alh)
6af091cddd Remove x2p remnants 2014-06-19 19:19:44 -04:00
Steve Hay
a467807249 Remove Module-Build remnants 2014-05-31 16:02:46 +01:00
Nicholas Clark
e8384d8ddf Remove Cwd from the "actually architecture dependant files" special cases.
This probably hasn't been needed since the file Cwd.pm was moved from lib/
into the directory containing its XS code.
2013-09-19 15:13:24 +02:00
Nicholas Clark
f4df373def In install_lib.pl, no need to Config->import for the relocatableinc setup.
require Config; within the BEGIN block instead of using it outside it to
save creating one implicit BEGIN block, and running its import twice.

Remove the require 5.004; as the require of Config will fail if running
with anything other than the version about to be installed.

Note in installperl and installman that install_lib.pl imports Config.
2013-07-23 13:39:51 +02:00
Nicholas Clark
a01f566143 Move the wrapper for File::Path::mkpath() to install_lib.pl
installperl and installman call File::Path::mkpath with identical arguments
and options, so move the repeated code into a single place.
2013-07-23 13:39:51 +02:00
Nicholas Clark
4c43261404 Move {safe_,}rename() from install{man,perl} into install_lib.pl
installman's rename() was identical to installperl's safe_rename() in all
but name (and whitespace), so de-duplicate by moving the code to
install_lib.pl
2013-07-23 13:39:51 +02:00
Nicholas Clark
3f7e1bf8b5 Convert installperl to use Getopt::Long.
This requires some special handling for the +v option. Fortunately, we can
cheat, because we know that no other non-options are acceptable. This does
change the behaviour slightly from before:

* single letter options now also have long names
* invalid options are now rejected
* command line arguments that are not options are now rejected

However, the behaviour for all valid documented invocations is unchanged.

Also, add a --help option to display the usage message.
2013-07-13 12:01:37 +02:00
Nicholas Clark
4609f84fc9 In installperl rename $opt{dostrip} to $opt{strip}.
This will provide a more meaningful long option name once installperl is
converted to Getopt::Long.
2013-07-13 12:01:37 +02:00
Nicholas Clark
c164bd944f In installperl, record the state of options in %opts instead of lexicals.
Replace all lexicals used to track the state of command line options with
entries in the hash %opts. Make an exception for $versiononly, as it is
controlled by 2 different command line options, and accessed in significantly
more places than the state of any other command line option.
2013-07-13 12:01:37 +02:00
Nicholas Clark
570f643f36 In installperl, invert the sense of the variable used for the -o option.
Previously it was $otherperls, and had to have its default of 1 explicitly
set. Change it to $skip_otherperls, and the default default of undef is
perfect.
2013-07-13 12:01:37 +02:00
Nicholas Clark
236818e0b9 Remove dead code from installperl, related to a 5.000->5.001 change.
5.000 installed autosplit files into archlib. 5.001 and later install into
privlib. archlib is earlier in @INC. It wasn't until 5.005 that perl put the
version number into the paths used for privlib and archlib, hence without
special treatment, the files installed by 5.001 would not be found, because
those from 5.000 would be earlier in @INC.

See commit a841533b5cf319b3 (Oct 2009) which removes similar special casing
code dealing with perldiag.pod confusion between 5.003 and 5.004

All this code became redundant when 5.005 added the version number to
library paths. (strictly, commit bfb7748a896459cc in Jul 1998)
2013-07-13 12:01:36 +02:00
Tony Cook
b7c0c6b4c6 [perl #117033] wrong .packlist creation at installation on Cygwin with destdir 2013-07-09 11:24:08 +10:00
David Steinbrunner
2effe01f18 typo fixes for root level scripts
Add David Steinbrunner to AUTHORS.
Update pod issues database.
2013-05-22 19:04:14 -04:00
Chris 'BinGOs' Williams
fb598ba5e5 Remove cpan/CPANPLUS and associated utilities 2013-05-18 15:24:51 -04:00
Nicholas Clark
7eb35c0359 Remove the Rhapsody port.
Rhapsody was an Apple OS that later evolved into Darwin and Mac OS X. It was
initially only released to developers, but later became Mac OS X Server, with
releases in 1999 and 2000. It was obsoleted by Mac OS X 10.0, released in
March 2001.
2013-01-16 10:42:47 +01:00
Nicholas Clark
b5afd3466f Remove the MPE/iX port.
MPE/iX was a business-oriented minicomputer operating system made by
Hewlett-Packard. Support from HP terminated at the end of 2010.
2012-09-21 10:01:42 +02:00
Karl Williamson
4731737c3a installperl: CaseFolding.txt no longer needed
A previous commit has removed the dependency on this file.
2012-06-02 08:29:13 -06:00
Craig A. Berry
ed5958d4d0 Set *.pod permissions in installperl.
installperl takes responsibility for explicitly setting the
permissions on most of the files it installs, but had not been
doing so on pods for some reason.  This commit makes it do so.

Not having world/other read access could not only defeat attempts
to read documentation, but also cause C<use diagnostics;> to fail
when it attempted to open perldiag.pod.
2012-04-19 22:47:18 -04:00
Nicholas Clark
91e41fa737 installperl now uses get_pod_metadata() to install dual-life pods correctly.
This ensures that perlfaq*, perlglossary, perlxs, perlxstut and perldoc's
Pod files are installed in the same directory as perl.pod, perlintro.pod etc,
as they were in 5.14.0 and earlier releases. This commit is analogous to
commit d6a39ee219352c8f, which corrected the install location for man pages.
2012-01-02 12:18:54 +01:00
Nicholas Clark
2c65a6e1ac In installperl, convert the File::Find::find(..., 'lib/') to no_chdir.
This eliminates the localized variable $::depth, which really only existed
as a bodge to get plausible pathnames in the dry run output when run with
-n. (Note, not for the output when running for real without -n, nor for
the verbose output)
2012-01-02 12:18:54 +01:00
Nicholas Clark
ce64b29247 In installperl, don't chdir 'lib' before finding files in lib/ 2012-01-02 12:18:54 +01:00
Nicholas Clark
d148da4f61 In installperl, add the trailing / to the value held in $::depth.
This should make future refactoring simpler.
2012-01-02 12:18:54 +01:00
Nicholas Clark
8473bff152 In installperl, initialise $do_install{arch,priv}lib at their declarations.
Also, add an editor block.
2012-01-02 12:18:53 +01:00
Nicholas Clark
3a548b368f In installperl, simplify the strip/chmod code for libraries on Darwin. 2012-01-02 12:18:53 +01:00
Nicholas Clark
efe502bb62 Sanitise NetWare changes to installperl.
Commit 2986a63f7e513cf3's changes to installperl could have been cleaner.
Consistently pass $opts{verbose} to all invocations of mkpath().
The skip logic for paths matching /\.(?:nlp|nlm|bs)$/ should have been
earlier, and should not have created copy&paste code duplication of the
calls to copy_if_diff() and chmod.
2012-01-02 12:18:53 +01:00
Nicholas Clark
a65c7ffd0d Eliminate a couple more suidperl and sperl references.
Remove a superfluous C<LD_LIBRARY_PATH=`pwd`> - make test does this
automatically.
2011-12-24 13:19:23 +01:00
Nicholas Clark
e1aae8e422 Add x2p/a2p.pod to the 'master' array returned by get_pod_metadata().
This makes installman install it correctly. Flagging it as 'toc_omit' means
that everything else ignores it. This eliminates the last remaining use of the
"pod =" feature of utils.lst, permitting related code to be removed from
installperl and installman.

This change has the possibly unfortunate cosmetic side effect of installman
now installing a2p.1 first, before perl.1
2011-12-24 10:29:13 +01:00
Chris 'BinGOs' Williams
08ad9465ed Update IO-Compress to CPAN version 2.044
[DELTA]

  2.044 2 December 2011

      * Moved FAQ.pod under the lib directory so it can get installed

      * Added bin/zipdetails

      * IO::Compress::Zip
        - In one-shot mode enable Zip64 mode if the input file/buffer
          >= 0xFFFFFFFF bytes.

      * IO::Compress::FAQ
        - Updates
2011-12-04 01:02:00 +00:00
jkeenan
19f4563d30 [RT #36079] Convert ` to '. 2011-11-22 16:27:15 -08:00
Karl Williamson
971c524480 PATCH: [perl #104226]: Name.pm missing from unicore
The installperl script needed to be updated to include this file.
2011-11-21 17:49:09 -07:00
Karl Williamson
557d584c57 installperl: Don't install unnecessary unicore/*.txt
This removes from installation certain .txt files in unicore that
are no longer needed for execution by Unicode::UCD, since commit
05dbc6f80f8f2d5774f53874803f5a20450bbe82
2011-03-09 19:30:56 -07:00
Nicholas Clark
5e4c4c91bd Use a buildcustomize.pl to set @INC in miniperl when building extensions.
With the build tools now shipped in various subdirectories of cpan/ and dist/
we need to add several paths to @INC when invoking MakeMaker (etc) to build
extensions.

The previous approach of using $ENV{PERL5LIB} was fragile, because:
a: It was hitting the length limit for %ENV variables on VMS
b: It was running the risk of race conditions in a parallel build -
   ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front*
   of @INC, but if one parallel process happens to copy a module into lib/
   whilst another is searching for it, the second may get a partial read
c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed
   build tools are actually implemented in Perl, if they are relying on
   $ENV{PERL5LIB} for setup

This approach

a: Doesn't have %ENV length limits
b: Ensures that lib/ is last, so copy targets are always shadowing copy
   sources
c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB}

Approaches that turned out to have fatal flaws:

1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker
   searches for the build perl without setting lib, and treats the error
   caused by a failed -M as "not a valid perl 5 binary"
2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely
   on $ENV{PERL5LIB} [which includes "../../lib"] fails because:
   some extensions have subdirectories, and on these EU::MM correctly uses
   -I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths,
   and only with two levels.

This approach actually takes advantage of ExtUtils::MakeMaker setting an -I
option correct for the depth of directory being built.
2011-02-15 14:10:05 +00:00
Peter J. Acklam) (via RT
af1e27efa1 Fix typos (spelling errors) in install files.
# New Ticket Created by  (Peter J. Acklam)
# Please include the string:  [perl #81886]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=81886 >

Signed-off-by: Abigail <abigail@abigail.be>
2011-01-07 11:54:14 +01:00
David Golden
e4ed29fbb9 Don't install unnecessary unicore files
Many of the files in lib/unicore are no longer needed
after testing.  This patches installperl to skip those
files, cutting down the installed size of unicore
from about 17M to about 7M.
2010-11-17 21:12:06 -05:00
Chris 'BinGOs' Williams
deabda197e Update Archive-Tar to CPAN version 1.70
[DELTA]

  * important changes in version 1.70 15/11/2010
  - Add ptargrep utility courtesy of Grant McLean

  **  I think I found everywhere that needed updating
      by grepping for 'ptardiff' and adding where needed.
      This stuff is definitively not intuitive.
2010-11-15 23:55:16 +00:00
Rafael Garcia-Suarez
a841533b5c Remove old code dealing with installing 5.003's perldiag 2009-10-14 13:25:35 +02:00
Rafael Garcia-Suarez
4540f59a80 Don't install uupacktool.pl 2009-10-14 13:25:35 +02:00