Perl Packages for Debian ======================== perl - Larry Wall's Practical Extracting and Report Language. perl-base - The Pathologically Eclectic Rubbish Lister. perl-modules - Core Perl modules. perl-doc - Perl documentation. perl-debug - Debug-enabled Perl interpreter. perl-suid - Runs setuid Perl scripts. libperl5.10 - Shared Perl library. libperl-dev - Perl library: development files. libcgi-fast-perl - CGI::Fast Perl module. To provide a minimal working perl, the ``perl-base'' package provides the /usr/bin/perl binary plus a basic set of libraries. The remainder of the application is included in the perl, perl-modules and perl-doc packages. libcgi-fast-perl has been split from -modules as it depends on libfcgi-perl. Build Options ------------- In addition to the ``nostrip'' and ``noopt'' DEB_BUILD_OPTIONS required by policy (10.1) the build process also recognises the following perl-specific options: x-perl-shared x-perl-static Select whether /usr/bin/perl is linked to the shared or static perl library. By default the link type is shared on all architectures other than i386 (where the relocations incur a measurable performance penalty). x-perl-notest (or nocheck) The regression test suite is normally run after each of the static and shared build phases. It is occaisionally useful to supress these tests (when debugging the build process for example, or to allow porters to work around known build chain or kernel bugs). Patches Applied ---------------- A copy of all patches which have been applied to the source are in the debian/patches directory of the Debian source package. There are two classes of patches in the directory: NN_fix_* patches are generally applicable to any Perl installation (and usually back-ported from upstream, or posted to p5p when applied). Patches from 50 up (NN_debian_*) implement changes which are specific to the Debian packaging, such as our @INC ordering or specific to policy such as not including standard directories in LD_RUN_PATH. Packaging Details ----------------- The Debian build process consists of the following components: debian/rules makefile which drives the build process as usual with Debian packages. This process is slightly more complex than normal to simplify bootstrapping a new port--using only basic shell utils, and perl (once built, as perl.static). To bootstrap a new architecture, use: DEB_BUILD_GNU_TYPE= debian/rules binary-arch debian/config.debian a helper script, invoked by debian/rules to run Configure with various options. debian/config.over used to fiddle some config.sh variables (copied to the source directory by the build process where it is picked up by Configure). debian/patches diretory containg the patches applied (see above). The procedure for adding a new patch is: fakeroot debian/rules clean debian/rules unpatch at this point, the directory should be identical to the upstream source with the exception of the debian subdir. Any changes are made, patches applied etc., then: (cd ..; diff -Naur --exclude=debian perl-5.10.0.orig perl-5.10.0) \ >debian/patches/ patch -Rp1 debian/rules patch The new patch should then be edited to add a descriptive text block at the top. debian/released-versions contains a list of released Debian versions, used by the debian/mkprovides script to generate a list of perlapi- provides for perl-base indicating the released versions the package is compatible with. debian/headers list of C headers to process with h2ph, which is run with "-a" to pick up any required includes--keep this base list as short as possible. debian/*.{files{,.static,.shared},docs,moduledocs} used to split packages; see the comments/code in the install-stamp target of debian/rules. Credits ------- Previous maintainers of Debian Perl packages: Ray Dassen , Carl Streeter , Robert Sanders and Darren Stalder . -- Brendan O'Dea Tue, 8 Mar 2005 19:30:38 +1100