summaryrefslogtreecommitdiff
path: root/dh_suidregister
diff options
context:
space:
mode:
Diffstat (limited to 'dh_suidregister')
-rwxr-xr-xdh_suidregister127
1 files changed, 0 insertions, 127 deletions
diff --git a/dh_suidregister b/dh_suidregister
deleted file mode 100755
index 3bc9bd98..00000000
--- a/dh_suidregister
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_suidregister - obsolete suid registration program
-
-=head1 SYNOPSIS
-
-Do not run!
-
-=head1 DESCRIPTION
-
-This program used to register suid and sgid files with L<suidregister(1)>,
-but with the introduction of L<dpkg-statoverride(8)>, registration of files
-in this way is unnecessary, and even harmful, so this program should not be
-used.
-
-=head1 CONVERTING TO STATOVERRIDE
-
-Converting a package that uses this program to use the new statoverride
-mechanism is easy. Just remove the call to dh_suidregister from
-debian/rules, and add a versioned conflicts into your control file, as
-follows:
-
- Conflicts: suidmanager (<< 0.50)
-
-The conflicts is only necessary if your package used to register things
-with suidmanager; if it did not, you can just remove the call to this
-program from your rules file.
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-init();
-
-my $notused=1;
-
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
- my $suid=pkgfile($package,"suid");
- my $tostrip='';
-
- my @files;
- if ($suid) {
- @files=filearray($suid, $tmp);
- }
-
- if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @files, @ARGV;
- }
-
- if (! @files && ! $suid) {
- # No files specified (and no empty debian/suid file), so
- # guess what files to process.
- @files=split(/\n/,`find $tmp -type f -perm +6000`);
-
- # Strip the debian working directory off of the filenames.
- $tostrip="$tmp/";
- }
- else {
- # We will strip leading /'s, so the user can feed this
- # program either absolute filenames, or relative filenames,
- # and it will do the right thing either way.
- $tostrip="/";
- }
-
- # Register files with suidregister.
- foreach my $file (@files) {
- # Strip leading $tostrip from $file.
- $file=~s/^$tostrip//;
-
- # Create the sed string that will be used to
- # fill in the blanks in the autoscript files.
- # Fill with the owner, group, and perms of the file.
- my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$tmp/$file");
- # Now come up with the user and group names for the uid and
- # gid.
- my $user=getpwuid($uid);
- if (! defined $user) {
- warning("$file has odd uid $uid, not in /etc/passwd");
- $user=$uid;
- }
- my $group=getgrgid($gid);
- if (! defined $group) {
- warning("$file has odd gid $gid not in /etc/group");
- $group=$gid;
- }
- # Note that I have to print mode in ocal, stripping file
- # type.
- my $sedstr=sprintf("s:#FILE#:$file:;s/#PACKAGE#/$package/;s/#OWNER#/$user/;s/#GROUP#/$group/;s/#PERMS#/%#o/",
- $mode & 07777);
- autoscript($package,"postinst","postinst-suid",$sedstr);
- autoscript($package,"postrm","postrm-suid","$sedstr");
- }
-
- # Remove suid bits from files. This is delayed to this point, because
- # of a situation with hard linked files if it is done earlier.
- # See changelog for 2.0.77.
- foreach my $file (@files) {
- if ( -e "$tmp/$file") {
- doit("chmod","a-s","$tmp/$file");
- }
- }
-
- if (@files) {
- warning("This program should no longer be used. Please read the dh_suidregister(1) man page.");
- $notused=0;
- }
-}
-
-# Although they called it, it's not going to do anything.
-if ($notused) {
- warning("This program is obsolete, does nothing, and may be safely removed from your rules file.");
-}
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Joey Hess <joeyh@debian.org>
-
-=cut