Changeset 29508 for main/trunk/package-kits
- Timestamp:
- 2014-12-01T17:44:17+13:00 (9 years ago)
- Location:
- main/trunk/package-kits/linux
- Files:
-
- 11 added
- 3 deleted
- 14 edited
- 4 copied
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/package-kits/linux/generate
r29481 r29508 10 10 use File::Basename; 11 11 use File::Path 'make_path'; 12 use File::Copy ;12 use File::Copy 'cp'; 13 13 use Storable 'dclone'; 14 use Digest::MD5; 15 14 16 15 17 my $USAGE = "Usage: " . basename($0) . " <platforms> <packages> 16 platforms: A comma separated list of the platforms defined in p kg.in/platforms18 platforms: A comma separated list of the platforms defined in platforms/ 17 19 Or 'all' (for all platforms) 18 packages: A comma separated list of the packages defined in p kg.in/packages19 Or 'all' (for all p latforms)20 packages: A comma separated list of the packages defined in packages/ 21 Or 'all' (for all packages) 20 22 "; 21 23 … … 32 34 } 33 35 36 sub empty { 37 /^\s*$/ and return 1; 38 } 39 40 sub comment { 41 /^\s*#/ and return 1; 42 } 43 44 sub trim { 45 for (@_) { 46 s/^\s+|\s+$//g; 47 } 48 return @_; 49 } 50 51 sub copydir { 52 my ($src, $dst, $subst) = @_; 53 mkdir $dst; 54 opendir my $DIRFH, $src or die "Could not open '$src': $!"; 55 while (readdir $DIRFH) { 56 next if ($_ eq '.' or $_ eq '..'); 57 print " - $dst/$_\n"; 58 if (-d "$src/$_") { 59 # copy folder 60 copydir ("$src/$_", "$dst/$_", $subst); 61 } elsif (-B "$src/$_") { 62 # copy binary file 63 cp "$src/$_", "$dst/$_" or die "Failed to copy '$_': $!"; 64 } else { 65 # copy normal file 66 my $newFile = "$dst/$_"; 67 open OUT, '>', $newFile 68 or die "Failed to open '$_' for writing: $!"; 69 open IN, '<', "$src/$_" 70 or die "Failed to open '$_' for reading: $!"; 71 while (<IN>) { 72 s/@([\w]+)@/$subst->{$1}/g; 73 print OUT; 74 } 75 my $perms = (stat IN)[2] & 07777; 76 close IN; 77 close OUT; 78 chmod ($perms | 0600, $newFile); 79 } 80 } 81 closedir $DIRFH; 82 } 83 84 my %escape = ( 85 "n" => "\n", 86 "\\" => "\\", 87 " " => " " 88 ); 89 34 90 sub readvar { 35 91 my ($vars, $line) = @_; 36 my ($var, $val) = split "=", $line;92 my ($var, $val) = trim (split ":", $line, 2); 37 93 defined $var and defined $val or die "Invalid variable assignment: '$line'"; 38 $val =~ s/%([\w]+)%/$vars->{$1}/g; 94 local $/ = ''; 95 $val =~ s/\\([ \\n]|$)/$escape{$1}/g; 96 $val =~ s/@([\w]+)@/$vars->{$1}/g; 39 97 $vars->{$var} = $val; 40 98 } 41 99 42 my @platforms = globbify "pkg.in/platforms", shift; 43 my @packages = globbify "pkg.in/packages", shift; 100 sub addsource { 101 my ($vars, $source) = @_; 102 my $md5 = Digest::MD5->new; 103 open my $MD5FH, '<', $source; 104 binmode $MD5FH; 105 $md5->addfile ($MD5FH); 106 my $field_separator = $vars->{'FIELD_SEPARATOR'}; 107 $vars->{'SOURCES'} .= $field_separator . basename($source); 108 $vars->{'SOURCE_SUMS'} .= $field_separator . $md5->hexdigest; 109 close $MD5FH; 110 } 111 112 my @platforms = globbify "platforms", shift; 113 my @packages = globbify "packages", shift; 44 114 45 115 for (@platforms) { 46 my ($platform) = /^pkg\.in\/platforms\/(.*)$/; 47 my %platform_vars = (); 48 open FH, '<', $_ or die "Failed to open '$_' for reading: $!"; 49 # read platform variable definitons 50 while (<FH>) { 116 my $platform = basename $_; 117 print "$platform\n"; 118 119 open PLATFORM, '<', $_; 120 my %platform_vars; 121 while (<PLATFORM>) { 51 122 chomp; 123 (comment or empty) and next; 52 124 readvar \%platform_vars, $_; 53 125 } 54 close FH;126 close PLATFORM; 55 127 56 128 for (@packages) { 57 my ($package) = /^pkg\.in\/packages\/(.*)$/; 129 my $package = basename $_; 130 print " - $package\n"; 58 131 my $package_path = "build/$platform/$package"; 59 132 make_path $package_path; 60 133 61 open FH, '<', $_ or die "Failed to open '$_' for reading: $!"; 62 63 # read package file dependencies 64 while (<FH>) { 134 open PACKAGE, '<', $_; 135 my %package_vars = %{dclone \%platform_vars}; 136 while (<PACKAGE>) { 65 137 chomp; 66 /^[\s]*$/ and last; 67 -e "pkg.in/files/$_" or die "Could not find '", $_, "'"; 68 copy "pkg.in/files/$_", "$package_path/$_" or die "Failed to copy '$_': $!"; 138 empty and last; 139 comment and next; 140 readvar \%package_vars, $_; 141 } 142 for (keys %package_vars) { 143 defined $package_vars{$_} or $package_vars{$_} = ' '; 144 # print "$_ = $package_vars{$_}\n"; 69 145 } 70 146 71 my %package_vars = %{dclone \%platform_vars}; 72 # read package variable definitions 73 while (<FH>) { 147 while (<PACKAGE>) { 74 148 chomp; 75 /^[\s]*$/ and last; 76 readvar \%package_vars, $_; 149 empty and last; 150 comment and next; 151 cp "files/$_", "$package_path/$_" or die "Failed to copy '$_': $!"; 152 addsource \%package_vars, "$package_path/$_"; 77 153 } 78 154 155 # write the makefile 79 156 my $outfile = "$package_path/Makefile"; 80 open OUT, '>', $outfile or die "Failed to open '$outfile' for writing: $!"; 81 # read package makefile segments 82 while (<FH>) { 157 print " - $outfile\n"; 158 open MAKEFILE, '>', $outfile 159 or die "Failed to open '$outfile' for writing: $!"; 160 while (<PACKAGE>) { 83 161 chomp; 84 open SEG, '<', "pkg.in/segments/$_" or die "Failed to open '$_' for reading: $!"; 85 # write the makefile 86 while (<SEG>) { 87 s/%([\w]+)%/$package_vars{$1}/g; 88 print OUT; 162 empty and last; 163 comment and next; 164 open IN, '<', "segments/$_" 165 or die "Failed to open '$_' for reading: $!"; 166 while (<IN>) { 167 s/@([\w]+)@/$package_vars{$1}/g; 168 print MAKEFILE; 89 169 } 90 close SEG;170 close IN; 91 171 } 92 close FH; 93 close OUT; 172 close MAKEFILE; 173 close PACKAGE; 174 addsource \%package_vars, $outfile; 175 176 # write the package manager files 177 copydir ("managers/$platform_vars{'MANAGER'}", $package_path, \%package_vars); 94 178 } 95 print "Generated $platform build scripts in build/$platform/\n";96 179 } -
main/trunk/package-kits/linux/packages/demo
r29481 r29508 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/greenstone3/web/sites/localsite/collect 2 NAME: greenstone-demo 3 VERSION: 3.06 4 RELEASE: 1 5 DESCRIPTION_SHORT: short description 6 DESCRIPTION: description 7 HOMEPAGE: http://greenstone.org 8 ARCHITECTURE: i686 x86_64 9 LICENSE_SHORT: GPL-2 10 LICENSE: license 11 DEPENDS: @PKG_GREENSTONE@ 12 OPTDEPENDS: 13 MAKEDEPENDS: @PKG_GREENSTONE_TOOLS@ @PKG_SVN@ @PKG_RSYNC@ 14 PROVIDES: 15 1 16 build-demo.sh 2 3 SVN_LOCATION=http://svn.greenstone.org/main/trunk/greenstone3/web/sites/localsite/collect4 17 5 18 base -
main/trunk/package-kits/linux/packages/gli
r29481 r29508 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/gli 2 NAME: greenstone-gli 3 VERSION: 3.06 4 RELEASE: 1 5 DESCRIPTION_SHORT: short description 6 DESCRIPTION: description 7 HOMEPAGE: http://greenstone.org 8 ARCHITECTURE: any 9 LICENSE_SHORT: GPL-2 10 LICENSE: license 11 DEPENDS: @PKG_JAVA_JRE@ @PKG_GREENSTONE_TOOLS@ 12 OPTDEPENDS: 13 MAKEDEPENDS: @PKG_JAVA_JDK@ @PKG_SVN@ @PKG_RSYNC@ 14 PROVIDES: 15 1 16 gli 2 3 SVN_LOCATION=http://svn.greenstone.org/main/trunk/gli4 17 5 18 base -
main/trunk/package-kits/linux/packages/main
r29481 r29508 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/greenstone3 2 NAME: greenstone 3 VERSION: 3.06 4 RELEASE: 1 5 DESCRIPTION_SHORT: short description 6 DESCRIPTION: description 7 HOMEPAGE: http://greenstone.org 8 ARCHITECTURE: i686 x86_64 9 LICENSE_SHORT: GPL-2 10 LICENSE: license 11 DEPENDS: @PKG_JAVA_JRE@ @PKG_TOMCAT@ 12 OPTDEPENDS: @PKG_GREENSTONE_DEMO@ @PKG_GREENSTONE_TOOLS@ 13 MAKEDEPENDS: @PKG_JAVA_JDK@ @PKG_SVN@ @PKG_ANT@ @PKG_PATCH@ @PKG_AUTOCONF@ @PKG_GCC@ @PKG_MAKE@ @PKG_RSYNC@ 14 PROVIDES: 15 1 16 build.properties 2 17 greenstone … … 6 21 wvWare 7 22 8 SVN_LOCATION=http://svn.greenstone.org/main/trunk/greenstone39 10 23 base 11 24 src -
main/trunk/package-kits/linux/packages/tools
r29481 r29508 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/greenstone3 2 NAME: greenstone-tools 3 VERSION: 3.06 4 RELEASE: 1 5 DESCRIPTION_SHORT: short description 6 DESCRIPTION: description 7 HOMEPAGE: http://greenstone.org 8 ARCHITECTURE: i686 x86_64 9 LICENSE_SHORT: GPL-2 10 LICENSE: license 11 DEPENDS: @PKG_WVWARE@ @PKG_PERL@ @PKG_IMAGEMAGICK@ 12 OPTDEPENDS: @PKG_GLI@ 13 MAKEDEPENDS: @PKG_JAVA_JDK@ @PKG_SVN@ @PKG_ANT@ @PKG_PATCH@ @PKG_AUTOCONF@ @PKG_GCC@ @PKG_MAKE@ @PKG_RSYNC@ 14 PROVIDES: 15 1 16 build.properties 2 17 greenstone … … 6 21 wvWare 7 22 8 SVN_LOCATION=http://svn.greenstone.org/main/trunk/greenstone39 10 23 base 11 24 src -
main/trunk/package-kits/linux/platforms/arch
r29481 r29508 1 SYSTEMLIB=/usr/lib 2 SYSTEMBIN=/usr/bin 3 SYSTEMJAVA=%SYSTEMLIB%/jvm/default 4 GSSRV=/srv/gsdl 5 TOMCATLIB=/usr/share/java/tomcat7 6 TOMCATCONF=/etc/tomcat7/Catalina/localhost 7 GSTOOLS=/opt/greenstone 1 MANAGER: pacman 2 FIELD_SEPARATOR: \n 3 4 SYSTEMLIB: /usr/lib 5 SYSTEMBIN: /usr/bin 6 SYSTEMJAVA: @SYSTEMLIB@/jvm/default 7 GSSRV: /srv/gsdl 8 TOMCATLIB: /usr/share/java/tomcat7 9 TOMCATCONF: /etc/tomcat7/Catalina/localhost 10 GSTOOLS: /opt/greenstone 11 12 PKG_GREENSTONE: 'greenstone' 13 PKG_GREENSTONE_TOOLS: 'greenstone-tools' 14 PKG_GREENSTONE_DEMO: 'greenstone-demo' 15 PKG_GLI: 'gli' 16 PKG_SVN: 'svn' 17 PKG_JAVA_JRE: 'java-runtime=7' 18 PKG_TOMCAT: 'tomcat7' 'tomcat-native' 19 PKG_JAVA_JDK: 'java-environment=7' 20 PKG_ANT: 'apache-ant' 21 PKG_PATCH: 'patch' 22 PKG_AUTOCONF: 'autoconf' 23 PKG_GCC: 'gcc' 24 PKG_MAKE: 'make' 25 PKG_WVWARE: 'wv' 26 PKG_PERL: 'perl' 'perl-xml-parser' 'perl-text-iconv' 27 PKG_IMAGEMAGICK: 'imagemagick' 28 PKG_RSYNC: 'rsync' -
main/trunk/package-kits/linux/platforms/fedora
r29481 r29508 1 SYSTEMLIB=/usr/lib 2 SYSTEMBIN=/usr/bin 3 SYSTEMJAVA=%SYSTEMLIB%/jvm/java 4 GSSRV=/srv/gsdl 5 TOMCATLIB=/usr/share/tomcat7/lib 6 TOMCATCONF=/etc/tomcat7/Catalina/localhost 7 GSTOOLS=/opt/greenstone 1 MANAGER: rpm 2 FIELD_SEPARATOR: , 3 4 SYSTEMLIB: /usr/lib 5 SYSTEMBIN: /usr/bin 6 SYSTEMJAVA: @SYSTEMLIB@/jvm/java 7 GSSRV: /srv/gsdl 8 TOMCATLIB: /usr/share/tomcat7/lib 9 TOMCATCONF: /etc/tomcat7/Catalina/localhost 10 GSTOOLS: /opt/greenstone 11 12 PKG_GREENSTONE: 'greenstone' 13 PKG_GREENSTONE_TOOLS: 'greenstone-tools' 14 PKG_GREENSTONE_DEMO: 'greenstone-demo' 15 PKG_GLI: 'gli' 16 PKG_SVN: 'svn' 17 PKG_JAVA_JRE: 'java-runtime=7' 18 PKG_TOMCAT: 'tomcat7' 'tomcat-native' 19 PKG_JAVA_JDK: 'java-environment=7' 20 PKG_ANT: 'apache-ant' 21 PKG_PATCH: 'patch' 22 PKG_AUTOCONF: 'autoconf' 23 PKG_GCC: 'gcc' 24 PKG_MAKE: 'make' 25 PKG_WVWARE: 'wv' 26 PKG_PERL: 'perl' 'perl-xml-parser' 'perl-text-iconv' 27 PKG_IMAGEMAGICK: 'imagemagick' 28 PKG_RSYNC: 'rsync' -
main/trunk/package-kits/linux/platforms/ubuntu
r29481 r29508 1 SYSTEMLIB=/usr/lib 2 SYSTEMBIN=/usr/bin 3 SYSTEMJAVA=%SYSTEMLIB%/jvm/default-java 4 GSSRV=/srv/gsdl 5 TOMCATLIB=/usr/share/tomcat7/lib 6 TOMCATCONF=/etc/tomcat7/Catalina/localhost 7 GSTOOLS=/opt/greenstone 1 MANAGER: apt 2 FIELD_SEPARATOR: , 3 4 SYSTEMLIB: /usr/lib 5 SYSTEMBIN: /usr/bin 6 SYSTEMJAVA: @SYSTEMLIB@/jvm/default-java 7 GSSRV: /srv/gsdl 8 TOMCATLIB: /usr/share/tomcat7/lib 9 TOMCATCONF: /etc/tomcat7/Catalina/localhost 10 GSTOOLS: /opt/greenstone 11 12 PKG_GREENSTONE: greenstone, 13 PKG_GREENSTONE_TOOLS: greenstone-tools, 14 PKG_GREENSTONE_DEMO: greenstone-demo, 15 PKG_GLI: gli, 16 PKG_SVN: subversion, 17 PKG_JAVA_JRE: default-jre, 18 PKG_TOMCAT: tomcat7, 19 PKG_JAVA_JDK: default-jdk, 20 PKG_ANT: ant, 21 PKG_PATCH: patch, 22 PKG_AUTOCONF: autoconf, 23 PKG_GCC: gcc, 24 PKG_MAKE: make, 25 PKG_WVWARE: wv, 26 PKG_PERL: perl, 27 PKG_IMAGEMAGICK: imagemagick, 28 PKG_RSYNC: rsync, -
main/trunk/package-kits/linux/segments/base
r29481 r29508 1 systemlib := %SYSTEMLIB%2 systembin := %SYSTEMBIN%3 java := %SYSTEMJAVA%4 gssrv := %GSSRV%5 tomcatlib := %TOMCATLIB%6 tomcatconf := %TOMCATCONF%7 gstools := %GSTOOLS%1 systemlib := @SYSTEMLIB@ 2 systembin := @SYSTEMBIN@ 3 java := @SYSTEMJAVA@ 4 gssrv := @GSSRV@ 5 tomcatlib := @TOMCATLIB@ 6 tomcatconf := @TOMCATCONF@ 7 gstools := @GSTOOLS@ 8 8 9 9 DESTDIR ?= / -
main/trunk/package-kits/linux/segments/demo
r29481 r29508 4 4 touch build 5 5 6 install: build 7 @echo "Building demo collections" 6 install: 8 7 install -d $(DESTDIR)/$(gssrv)/sites/localsite 9 8 rsync -a --info=STATS --exclude .svn src/ $(DESTDIR)/$(gssrv)/sites/localsite/collect/ -
main/trunk/package-kits/linux/segments/gli
r29481 r29508 7 7 touch build 8 8 9 install: build9 install: 10 10 install -d $(DESTDIR)/$(gli) 11 11 rsync -a --info=STATS --exclude src --exclude .svn src/ $(DESTDIR)/$(gli) -
main/trunk/package-kits/linux/segments/main
r29481 r29508 1 install: build1 install: 2 2 install -d $(DESTDIR)/$(gssrv) $(DESTDIR)/$(systemlib) $(DESTDIR)/$(tomcatlib) 3 3 install -dm775 $(DESTDIR)/$(tomcatlib) -
main/trunk/package-kits/linux/segments/src
r29481 r29508 1 1 svn: 2 2 @echo "Getting latest source" 3 svn co %SVN_LOCATION%svn3 svn co @SVN_LOCATION@ svn 4 4 5 5 src: svn -
main/trunk/package-kits/linux/segments/tools
r29481 r29508 1 install: build1 install: 2 2 install -d $(DESTDIR)/$(gstools) 3 3 rsync -a --info=STATS --exclude build-src --exclude common-src --exclude collect/demo --exclude .svn src/gs2build $(DESTDIR)/$(gstools)/
Note:
See TracChangeset
for help on using the changeset viewer.