1#!/usr/bin/env perl 2# 3# chkxprefix.pl -- A simple script to check if a port and its dependancies have 4# a prefix of /usr/X11R? 5# 6# By Chris Reinhardt ctriv@MidnightBSD.org 7# 8# $MidnightBSD: mports/Tools/scripts/chkxprefix.pl,v 1.1 2007/03/20 16:02:01 ctriv Exp $ 9 10use strict; 11use warnings; 12 13my $portbase = '/usr/mports'; 14my $badprefix = qr:^/usr/X11:; 15 16 17# These are the ports that are allowed in /usr/X11R? 18my @allowed = qw( 19 x11/xorg-libraries 20 x11/xorg-clients 21 x11/xorg-documents 22 x11/xorg-manpages 23 x11-fonts/xorg-fonts-100dpi 24 x11-fonts/xorg-fonts-75dpi 25 x11-fonts/xorg-fonts-cyrillic 26 x11-fonts/xorg-fonts-miscbitmaps 27 x11-fonts/xorg-fonts-truetype 28 x11-fonts/xorg-fonts-type1 29 x11-servers/xorg-fontserver 30 x11-servers/xorg-nestserver 31 x11-servers/xorg-vfbserver 32 x11-servers/xorg-printserver 33 x11-servers/xorg-server 34 graphics/dri 35 devel/imake-6 36 x11-fonts/fontconfig 37 x11-fonts/libXft 38 x11/xterm 39 x11-fonts/xorg-fonts-encodings 40 x11-fonts/bitstream-vera 41); 42 43# 44# 45# End of configuration 46########################################################################### 47 48# don't buffer stdout 49$|++; 50 51my %allowed = map { + "$portbase/$_", 1 } @allowed; 52 53if (@ARGV && $ARGV[0] eq '-a') { 54 check_all(); 55 exit 0; 56} 57 58my $port = shift || die "Usage: check_prefix.pl <port>"; 59 60chdir("$portbase/$port") || die "Error: couldn't chdir to '$portbase/$port\n"; 61 62my @deps = `make all-depends-list`; 63unshift(@deps, "$portbase/$port"); 64 65for (@deps) { 66 chomp($_); 67 68 check_port($_) 69} 70 71sub check_port { 72 local $_ = shift; 73 74 chdir($_) || die "Error: couldn't chdir to '$_'\n"; 75 76 chomp(my $prefix = `make -V PREFIX`); 77 78 if ($prefix =~ $badprefix && !$allowed{$_}) { 79 print "$_ has prefix $prefix\n"; 80 } 81} 82 83 84sub check_all { 85 open(my $index, '<', "$portbase/INDEX-6") || die "Couldn't open index file.\n"; 86 87 while (<$index>) { 88 my ($port, $path, $prefix) = split(m/\|/, $_); 89 90 if ($prefix =~ $badprefix && !$allowed{$path}) { 91 print "$path has prefix $prefix\n"; 92 } 93 } 94 95 close($index); 96} 97 98 99 100