dh_fixperms makes all files in usr/share/doc in the package build directory
(excluding files in the examples/ directory) be mode 644. It also changes
-the permissions of all man pages to mode 644. It makes all files be owned by
-root, and it removes group and other write permission from all files.
-It removes execute permissions from any libraries that have it set. It makes
-all files in bin/ directories and etc/init.d executable (v4 only). Finally,
-it removes the setuid and setgid bits from all files in the package.
+the permissions of all man pages to mode 644. It makes all files be owned
+by root, and it removes group and other write permission from all files. It
+removes execute permissions from any libraries that have it set. It makes
+all files in bin/ directories, /usr/games/ and etc/init.d executable (v4
+only). Finally, it removes the setuid and setgid bits from all files in the
+package.
=head1 OPTIONS
# General permissions fixing.
complex_doit("find $tmp $find_options -print0",
- "2>/dev/null | xargs -0r chown --no-dereference 0.0");
+ "2>/dev/null | xargs -0r chown --no-dereference 0:0");
complex_doit("find $tmp ! -type l $find_options -print0",
"2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s");
-
+
# Fix up premissions in usr/share/doc, setting everything to not
# executable by default, but leave examples directories alone.
- complex_doit("find $tmp/usr/share/doc $tmp/usr/doc -type f $find_options ! -regex '.*/examples/.*' -print0 2>/dev/null",
+ complex_doit("find $tmp/usr/share/doc -type f $find_options ! -regex '$tmp/usr/share/doc/[^/]*/examples/.*' -print0 2>/dev/null",
"| xargs -0r chmod 644");
- complex_doit("find $tmp/usr/share/doc $tmp/usr/doc -type d $find_options -print0 2>/dev/null",
+ complex_doit("find $tmp/usr/share/doc -type d $find_options -print0 2>/dev/null",
"| xargs -0r chmod 755");
# Executable man pages are a bad thing..
"\\( -name '*.so*' -or -name '*.la' -or -name '*.a' \\) $find_options -print0",
"2>/dev/null | xargs -0r chmod 644");
+ # ..and header files ..
+ complex_doit("find $tmp/usr/include -type f",
+ "-name '*.h' $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+
# .. and perl modules.
complex_doit("find $tmp/usr/lib/perl5 $tmp/usr/share/perl5 -type f",
"-perm -5 -name '*.pm' $find_options -print0",
"2>/dev/null | xargs -0r chmod a-X");
- # v4 only
+ # v4 and up
if (! compat(3)) {
# Programs in the bin and init.d dirs should be executable..
- for my $dir (qw{usr/bin bin usr/sbin sbin etc/init.d}) {
+ for my $dir (qw{usr/bin bin usr/sbin sbin usr/games etc/init.d}) {
if (-d "$tmp/$dir") {
complex_doit("find $tmp/$dir -type f $find_options -print0 2>/dev/null",
- "| xargs -0r chmod +x");
+ "| xargs -0r chmod a+x");
}
}
}
+ # ADA ali files should be mode 444 to avoid recompilation
+ if (-d "$tmp/usr/lib/ada") {
+ complex_doit("find $tmp/usr/lib/ada -type f",
+ "-name '*.ali' $find_options -print0",
+ "2>/dev/null | xargs -0r chmod uga-w");
+ }
}
=head1 SEE ALSO
-L<debhelper(1)>
+L<debhelper(7)>
This program is a part of debhelper.