David Stes
2021-06-05 8a2cb9dfbe31b62bce177d3ebd5e45a22c8e44ed
commit | author | age
2e9c17 1 #!/usr/bin/perl
DS 2
3 #
4 # because Squeak has many plugins,
5 # there are also many dependencies 
6 # in order to have a small "kernel" package
7 # this script is used
8 #
9 # the script "classifies" plugins into currently 3 categories:
6dfd01 10 #  - squeak-nodisplay (only libc,libm math,libpthread, ksh)
DS 11 #  - squeak-display-X11 (only x11,xext,xrender)
12 #  - squeak (ssl,ffi,pulseaudio freetype2,gnome, everything else)
2e9c17 13 #
DS 14 # Usage: check the samplemanifest,
15 # ./subversion.pl < ../manifests/sample-manifest.p5m > sample2.p5m
16 # then classify the files as follows:
17 # ./classify.pl < sample2.p5m
18 # then alias the amd64 files (install in component directory)
6dfd01 19 # ./amd64.pl < squeak.p5m > ../squeak.p5m
2e9c17 20 # or run ./amd64-p5m.sh
DS 21 #
22
6dfd01 23 open(NODISPLAY,">>","squeak-nodisplay.p5m") || die "Can't open squeak-nodisplay.p5m";
2e9c17 24
6dfd01 25 open(X11,">>","squeak-display-X11.p5m") || die "Can't open squeak-display-X11.p5m";
2e9c17 26
8a2cb9 27 open(SSL,">>","squeak-ssl.p5m") || die "Can't open squeak-ssl.p5m";
DS 28
6dfd01 29 open(REST,">>","squeak.p5m") || die "Can't open squeak.p5m";
2e9c17 30
DS 31 while (<>) {
32     if (/^#/) {
33         # ignore lines that start with comment
34     } elsif (/^$/) {
35         # ignore empty lines
36     } elsif (/license /) {
37         # ignore license lines
38     } elsif (/set name=/) {
39         # ignore those lines
40     } elsif (/dir  path=/) {
41         # ignore those lines
42     } elsif (/file path=/) {
43         if (/Sun/) {
44             # ignore the Sun sound plugin - we use pulseaudio
45         } elsif (/usr\/bin/) {
46             # don't deal with driver scripts here
47         } elsif (/man1/) {
48             # don't deal with the manpages here
49         } elsif (/squeakvm/) {
50             # don't deal with the actual binary here
51         } elsif (/ckformat/) {
52             # don't deal with the ckformat binary here
53         } elsif (/AioPlugin/) {
54             print NODISPLAY $_;
55         } elsif (/ClipboardExtendedPlugin/) {
56             print X11 $_;
57         } elsif (/FileCopyPlugin/) {
58             print NODISPLAY $_;
59         } elsif (/HostWindowPlugin/) {
60             print X11 $_;
61         } elsif (/ImmX11Plugin/) {
62             print X11 $_;
63         } elsif (/Squeak3D/) {
64             print X11 $_;
8a2cb9 65         } elsif (/SqueakSSL/) {
DS 66             print SSL $_;
2e9c17 67         } elsif (/B3DAcceleratorPlugin/) {
DS 68             print X11 $_;
69         } elsif (/UnixOSProcessPlugin/) {
70             print NODISPLAY $_;
44bada 71         } elsif (/VectorEnginePlugin/) {
DS 72             print X11 $_;
2e9c17 73         } elsif (/XDisplayControlPlugin/) {
DS 74             print X11 $_;
75         } elsif (/vm-sound-null/) {
76             print NODISPLAY $_;
77         } elsif (/vm-display-null/) {
78             print NODISPLAY $_;
79         } elsif (/vm-display-X11/) {
80             print X11 $_;
81         } elsif (/vm-display-X11/) {
82             print X11 $_;
83         } elsif (/usr\/lib\/squeak/) {
84             print REST $_;
85         } else {
86             # unclassified files
87             print $_;
88         }
89     } elsif (/hardlink path=/) {
90         # unclassified files
91         print $_;
92     } elsif (/link path=/) {
93         # unclassified files
94         print $_;
95     } else {
96         # unclassified files
97         print $_;
98     }
99 }
100