ÿØÿà JFIF ÿÛ „ ( %"1"%)+...383,7(-.-
![]() Server : LiteSpeed System : Linux v2202501248978307069 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 User : voirf6718 ( 1002) PHP Version : 7.3.33-1+focal Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Directory : /bin/ |
#!/usr/bin/perl -w =head1 NAME dh_phppear - calculates PHP PEAR substvars =head1 SYNOPSIS B<dh_phppear> [S<I<debhelper options>>] [S<I<options>>] =head1 DESCRIPTION B<dh_phppear> is a debhelper program that is responsible for generating the B<${phppear:*}> substitutions and adding them to substvars files. The program will look at F<package.xml> (or F<package2.xml>) in the package, and will use this information to generate: =over 2 =item * B<${phppear:summary}>, B<${phppear:description}> and B<${phppear:channel}> =item * B<${phppear:Debian-Depends}>, B<${phppear:Debian-Recommends}>, B<${phppear:Debian-Suggests}> and B<${phppear:Debian-Breaks}> =back B<Deprecated:> the <pear-channels> package should be used (and updated) instead of introducing a new standalone channel package. The program will look at F<channel.xml> in the package, and will use this information to generate: =over 2 =item * B<${phppear:channel-name}>, B<${phppear:channel-summary}> and B<${phppear:channel-alias}> =item * B<${phppear:channel-common-description}> =back Those variables will be substituted into the package's F<control> file wherever the token B<${phppear:*}> are placed. =head1 OPTIONS =over 4 =item B<--sourcedirectory=>I<directory> Assume that the original package source tree is at the specified directory rather than the top level directory of the Debian source package tree. This feature requires pkg-php-tools (>= 1.14~). =back =head1 FILES =over 4 =item F<debian/pkg-php-tools-overrides> Package that don't want to follow automatic PEAR package name to Debian package name conversion can override the conversion by creating this file. It can be installed in B</usr/share/pkg-php-tools/overrides/>I<src:package>. This feature requires pkg-php-tools (>= 1~). The format is a set of lines, with each line having the following fields: =over 6 =item I<channel_url> The channel URL as found in F<package.xml> (example: I<pear.phpunit.de>). =item I<pear_package_name> The PEAR package name (example: I<phpunit>). =item I<debian_package_name> The resulting Debian package name (example: I<phpunit>). Use I<builtin> if the package is compiled from the php source package. Use I<none> if the PEAR package can't be simply translated to Debian name. =item I<version_override> Optional, for composer packages only, can be I<none> if the version constraint from the original package should not be used for the replacement. Useful when a package is being replaced by a PHP extension that doesn't follow the same versioning scheme. =back =back =head1 ADVANCED USAGE =head2 Building a PECL package A PECL package is a PEAR package which is compiled. Extra steps are needed: =over 2 =item * Adding B<php-dev>, B<pkg-php-tools> (>= 1.6~) and B<dh-php> to Build-Depends. =item * Adding B<${shlibs:Depends}> and B<${misc:Depends}> to Depends. =item * Adding B<--with php> to B<dh> line in I<debian/rules>. =back =head2 Patching B<dh_phppear> will remove md5sums and sha1sums to ease patching. You can patch as usual. =head2 Removing some files from the upstream tarball If some files are removed from the upstream tarball, the package will be incomplete unless they are stripped from the I<package.xml> file in the PEAR package subdir. This can be done after the I<dh_auto_configure> step. Example: override_dh_auto_configure: dh_auto_configure -O--buildsystem=phppear # Remove references of JsMin sed -i '/JsMin\.php/d' */package.xml This feature requires pkg-php-tools (>= 1.1~). =head2 Building a channel package (DEPRECATED) B<Deprecated:> the B<pear-channels> package should be used (and updated) instead of introducing a new standalone channel package. Simply put the F<channel.xml> file downloaded from the PEAR channel in the root of the package source and use a I<debian/rules> similar to a PEAR package. This feature requires pkg-php-tools (>= 1.3~). =cut use strict; use warnings; use Cwd (); use File::Spec; use Debian::Debhelper::Dh_Lib; sub _shell_exec { my $child_pid = open(my $output, "-|", @_) // error("@_ failed to fork: $!"); if ($child_pid) { waitpid $child_pid, 0; } else { exit 0; } if ($? == -1) { error("@_ failed to execute: $!"); } elsif ($? & 127) { error("@_ died with signal ".($? & 127)); } elsif ($? != 0) { error("@_ returned exit code ".($? >> 8)); } return $output; } my $opt_sourcedir = '.'; init(options => { "D=s" => \$opt_sourcedir, "sourcedirectory=s" => \$opt_sourcedir, }); # Check and canonalize $opt_sourcedir { # Get relative sourcedir abs_path (without symlinks) my $abspath = Cwd::abs_path($opt_sourcedir); my $cwd = Cwd::getcwd(); if (! -d $abspath || $abspath !~ /^\Q$cwd\E/) { error("invalid or non-existing path to the source directory: ".$opt_sourcedir); } $opt_sourcedir = File::Spec->abs2rel($abspath, $cwd); } foreach my $package (@{$dh{DOPACKAGES}}) { if (-e File::Spec->catfile($opt_sourcedir, "package.xml") || -e File::Spec->catfile($opt_sourcedir, "package2.xml")) { my $substvars = _shell_exec('/usr/bin/pkgtools', '-v', '--sourcedirectory', $opt_sourcedir, 'phppear', 'substvars'); while (<$substvars>) { /^([^=]+)=\s*(.*)$/; addsubstvar($package, $1, $2); } } if (-e File::Spec->catfile($opt_sourcedir, "channel.xml")) { my $substvars = _shell_exec('/usr/bin/pkgtools', '-v', '--sourcedirectory', $opt_sourcedir, 'phppearchannel', 'substvars'); while (<$substvars>) { /^([^=]+)=\s*(.*)$/; addsubstvar($package, $1, $2); } } } =head1 CONFORMING TO Debian policy, version 3.9.6. PHP PEAR policy, version yet-to-be-written. =head1 SEE ALSO L<debhelper(7)>, L<pkg-php-tools(7)>, F</usr/share/doc/pkg-php-tools/README.PEAR> =head1 AUTHOR Mathieu Parent <sathieu@debian.org>