⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.155
Server IP:
57.129.66.90
Server:
Linux vps-7f548908 5.15.0-160-generic #170-Ubuntu SMP Wed Oct 1 10:06:56 UTC 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
bin
/
Edit File: dh_autoreconf
#!/usr/bin/perl -w =head1 NAME dh_autoreconf - Call autoreconf -f -i and keep track of the changed files. =cut use strict; use Debian::Debhelper::Dh_Lib; use Cwd; =head1 SYNOPSIS B
[S
>] [B<-X>I
] [B<--mode=>I
] [S
B<--> I
>] =head1 DESCRIPTION dh_autoreconf is responsible for calling autoreconf and creating the files debian/autoreconf.before and debian/autoreconf.after which contain checksums of all files before/after the build. It is complemented by dh_autoreconf_clean which creates a list of all changed and added files and removes them. Please note that dh_autoreconf can only be run once. Thus, if you need to run multiple commands, use a script or similar. An example is given in L
. =head1 FILES =over 4 =item debian/autoreconf This file can contain a list of directories. If present, dh_autoreconf will only scan the given directories for changes. If no special command is given to dh_autoreconf, it will also forward the directory list to autoreconf which causes it to be run only on those sub directories. =back =head1 OPTIONS =over 4 =item B<-X>I
B<--exclude=>I
Exclude files that contain "item" anywhere in their filename from being checked for changes. This means that those files won't be deleted by C
even if there are changes. You may use this option multiple times to build up a list of things to exclude. Starting with version 3, the directories of common version control systems such as cvs, git, hg, svn, and bzr are excluded automatically. =item B<--mode=>I
Change the way in which modifications to files are detected. The default mode is I
for using MD5 checksums, but there is also I
for using the time of the last modification and the file size. =item B<--as-needed> Enable support for -Wl,--as-needed in all ltmain.sh files identical to the one of the libtool package. This only works in the MD5 mode (the default one). The changes are reverted in dh_autoreconf_clean. You should not prevent LIBTOOLIZE from running with this, as it only works correctly with libtoolize running. =item B<-D>I
B<--sourcedirectory>=I
Run everything in the source directory. Supported only in debhelper compat level 10 for backwards compatibility. =item I
B<--> I
Run the program given by I
with the arguments given by I
instead of autoreconf -f -i. If you need to run multiple commands, put them in a script and pass the script instead (or add a target to debian/rules). =back =head1 ENVIRONMENT For each tool executed by L
, one can export a variable with the uppercase name of the tool to the specific program which shall be run, including B
to prevent the tool in question from being run. The following example shows the beginning of a debian/rules for a package where automake 1.11 shall be run instead of the default automake version and libtoolize shall not be run: #!/usr/bin/make -f export AUTOMAKE = automake-1.11 export LIBTOOLIZE = true =cut # Check if a configure line matches a certain regular expression sub grep_configure { my $expr = shift; foreach my $configure (("configure.ac", "configure.in")) { return eval { doit("grep", "-q", $expr, $configure) } if (-e $configure); } return 0; } my $opt_sourcedir; init(options => { "mode=s" => \$dh{MODE}, "D=s" => \$opt_sourcedir, "sourcedirectory=s" => \$opt_sourcedir, "as-needed" => \$dh{AS_NEEDED}}); my $exception; my @directories; my $find_options='! -ipath "./debian/*" -a '; my @exclude_default = ("'*/.git/*'", "'*/.hg/*'", "'*/.bzr/*'", "'*/.svn/*'", "'*/CVS/*'"); $find_options .= ("! \\( -path " . join(" -o -path ", @exclude_default) . " \\) -a "); if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') { $find_options .= "! \\( $dh{EXCLUDE_FIND} \\) -a "; } # Find ltmain.sh my $LTMAIN = "/usr/share/libtool/build-aux/ltmain.sh"; $LTMAIN = "/usr/share/libtool/config/ltmain.sh" if (! -e "$LTMAIN"); if ($dh{AS_NEEDED}) { $find_options = "$LTMAIN . " . $find_options; } if (-e "debian/autoreconf") { @directories=filearray("debian/autoreconf", "."); $find_options = join(" ",@directories)." ".$find_options; } elsif (not @ARGV) { # No debian/autoreconf and no arguments - perhaps there is nothing # to do. my $dir = '.'; $dir = $opt_sourcedir if defined($opt_sourcedir); if (not -f "${dir}/configure.ac" and not -f "${dir}/configure.in") { # Nothing to do, exit early. exit(0); } } if (-e "debian/autoreconf.before" || -e "debian/autoreconf.after") { warning("Only runs once, see dh-autoreconf(7)"); exit(0); } my %modes = ( 'md5' => "find $find_options -type f -exec md5sum {} + -o -type l -printf \"symlink %p\n\"", 'timesize' => "find $find_options -type f -printf \"%s|%T@ %p\n\" -o -type l -printf \"symlink %p\n\"" ); my $find = $modes{$dh{MODE} || "md5"} || error("Unknown value $dh{MODE} passed to --mode"); complex_doit("$find > debian/autoreconf.before"); my $pwd = getcwd(); eval { # Run autoreconf to recreate the needed files. chdir $opt_sourcedir if (defined($opt_sourcedir) && !compat(9)); if (@ARGV) { doit(@ARGV, @{$dh{U_PARAMS}}) } else { #doit("gtkdocize", "--copy") if (grep_configure("^GTK_DOC_CHECK")); if (grep_configure("^XDT_")) { $ENV{NOCONFIGURE}='1'; doit('xdt-autogen', @directories); } else { doit('autoreconf', '-f', '-i', @directories); } } 1; } or do { $exception = $@; }; chdir $pwd; complex_doit("$find > debian/autoreconf.after"); # Let's fail here if autoreconf failed. die $exception if (defined $exception); # Fix ltmain.sh to support -Wl,--as-needed if ($dh{AS_NEEDED}) { open(FILE, 'debian/autoreconf.after') or die($!); my $ltcheck = ""; while(
) { chomp($_); my ($checksum, $filename) = split; if ($filename eq "$LTMAIN") { $ltcheck = $checksum; } elsif ($filename =~ m/\/ltmain.sh$/ and $checksum eq $ltcheck) { doit("patch", "-f", "--no-backup-if-mismatch", "-i", "/usr/share/dh-autoreconf/ltmain-as-needed.diff", $filename); } } close(FILE); } =head1 SEE ALSO L
, L
, L
=head1 AUTHOR Julian Andres Klode
=cut
Simpan