Changeset 29536 for main/trunk/package-kits/linux
- Timestamp:
- 2014-12-05T18:12:23+13:00 (9 years ago)
- Location:
- main/trunk/package-kits/linux
- Files:
-
- 10 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/package-kits/linux/distros/arch
r29527 r29536 1 1 MANAGER: pacman 2 FIELD_SEPARATOR: \n3 2 4 3 SYSTEMLIB: /usr/lib … … 11 10 GLI: /opt/gli 12 11 13 PKG_GREENSTONE: 'greenstone'14 PKG_GREENSTONE_TOOLS: 'greenstone-tools'15 PKG_GREENSTONE_DEMO: 'greenstone-demo'16 PKG_GLI: 'gli'17 12 PKG_SVN: 'svn' 18 13 PKG_JAVA_JRE: 'java-runtime=7' -
main/trunk/package-kits/linux/distros/fedora
r29528 r29536 1 1 MANAGER: rpm 2 FIELD_SEPARATOR: ,3 2 4 3 SYSTEMLIB: /usr/lib … … 11 10 GLI: /usr/share/gli 12 11 13 PKG_GREENSTONE: greenstone,14 PKG_GREENSTONE_TOOLS: greenstone-tools,15 PKG_GREENSTONE_DEMO: greenstone-demo,16 PKG_GLI: gli,17 12 PKG_SVN: svn, 18 13 PKG_JAVA_JRE: java >= 7, -
main/trunk/package-kits/linux/distros/ubuntu
r29516 r29536 1 1 MANAGER: apt 2 FIELD_SEPARATOR: ,3 2 4 3 SYSTEMLIB: /usr/lib … … 11 10 GLI: /opt/gli 12 11 13 PKG_GREENSTONE: greenstone,14 PKG_GREENSTONE_TOOLS: greenstone-tools,15 PKG_GREENSTONE_DEMO: greenstone-demo,16 PKG_GLI: gli,17 12 PKG_SVN: subversion, 18 13 PKG_JAVA_JRE: default-jre, -
main/trunk/package-kits/linux/generate
r29526 r29536 2 2 3 3 # Generates Makefiles for different systems and packages 4 # Uses a hashmap to do config variables (see readvar for how variables are5 # read in and an example of how they are resolved / used)6 4 7 5 use strict; … … 9 7 use utf8; 10 8 use File::Basename; 11 use File::Path 'make_path'; 12 use File::Copy 'cp'; 13 use Storable 'dclone'; 14 use Digest::MD5; 15 9 use lib 'perllib'; 10 use Greenstone::Helpers; 11 use Greenstone::Package; 16 12 17 13 my $USAGE = "Usage: " . basename($0) . " <distros> <packages> … … 24 20 $#ARGV == 1 or die $USAGE; 25 21 26 sub globbify { 27 my ($dir, $files) = @_; 28 $files =~ /^all$/i and return glob "$dir/*"; 29 my @list = glob "$dir/{$files}"; 30 for (@list) { 31 -f or die "Could not find '", $_, "'"; 32 } 33 return @list; 34 } 22 my @distros = lsfiles "distros", shift; 23 my @packages = lsfiles "packages", shift; 35 24 36 sub empty { 37 shift =~ /^\s*$/ and return 1; 38 } 39 40 sub comment { 41 shift =~ /^\s*#/ and return 1; 42 } 43 44 sub trim { 45 for (@_) { 46 s/^\s+|\s+$//g; 47 } 48 return @_; 49 } 50 51 sub add { 52 my ($src, $dst, $subst) = @_; 53 $dst =~ s/@([\w]+)@/$subst->{$1}/g; 54 55 if (-d $src) { 56 mkdir $dst; 57 opendir my $DIRFH, $src or die "Could not open '$src': $!"; 58 while (readdir $DIRFH) { 59 next if ($_ eq '.' or $_ eq '..'); 60 add ("$src/$_", "$dst/$_", $subst); 61 } 62 closedir $DIRFH; 63 } else { 64 print ' - ', $dst, "\n"; 65 if (-B $src or $src =~ /\.patch$/i) { 66 # copy binary file 67 cp $src, $dst or die "Failed to copy '$src': $!"; 68 } else { 69 # copy normal file 70 open IN, '<', $src 71 or die "Failed to open '$src' for reading: $!"; 72 open OUT, '>', $dst 73 or die "Failed to open '$dst' for writing: $!"; 74 while (<IN>) { 75 s/@([\w]+)@/$subst->{$1}/g; 76 print OUT; 77 } 78 my $perms = (stat IN)[2] & 07777; 79 close IN; 80 close OUT; 81 chmod ($perms | 0600, $dst); 82 } 25 for my $distro (@distros) { 26 print $distro, "\n"; 27 for my $package (@packages) { 28 print " - ", $package, "\n"; 29 makepkg ( 30 package => $package, 31 distro => $distro 32 ); 83 33 } 84 34 } 85 86 my %escape = (87 "n" => "\n",88 "\\" => "\\",89 " " => " "90 );91 92 sub readvar {93 my ($vars, $line) = @_;94 my ($var, $val) = trim (split ":", $line, 2);95 defined $var and defined $val or die "Invalid variable assignment: '$line'";96 local $/ = '';97 $val =~ s/@([\w]+)@/$vars->{$1}/g;98 $val =~ s/\\([ \\n]|$)/$escape{$1}/g;99 $vars->{$var} = $val;100 }101 102 sub addsource {103 my ($vars, $source) = @_;104 my $md5 = Digest::MD5->new;105 open my $MD5FH, '<', $source;106 binmode $MD5FH;107 $md5->addfile ($MD5FH);108 my $field_separator = $vars->{'FIELD_SEPARATOR'};109 $vars->{'SOURCES'} .= $field_separator . basename($source);110 $vars->{'SOURCE_SUMS'} .= $field_separator . $md5->hexdigest;111 close $MD5FH;112 }113 114 my @distros = globbify "distros", shift;115 my @packages = globbify "packages", shift;116 117 for my $dconf (@distros) {118 my $distro = basename $dconf;119 print "$distro\n";120 121 open DISTRO, '<', $dconf;122 my %distro_vars;123 while (my $var = <DISTRO>) {124 chomp $var;125 (comment $var or empty $var) and next;126 readvar \%distro_vars, $var;127 }128 close DISTRO;129 130 for my $pconf (@packages) {131 my $package = basename $pconf;132 print " - $package\n";133 my $package_path = "build/$distro/$package";134 make_path $package_path;135 136 open PACKAGE, '<', $pconf;137 my %package_vars = %{dclone \%distro_vars};138 while (my $var = <PACKAGE>) {139 chomp $var;140 empty $var and last;141 comment $var and next;142 readvar \%package_vars, $var;143 }144 for (keys %package_vars) {145 defined $package_vars{$_} or $package_vars{$_} = ' ';146 # print "$_ = $package_vars{$_}\n";147 }148 149 while (my $file = <PACKAGE>) {150 chomp $file;151 empty $file and last;152 comment $file and next;153 add ("files/$file", "$package_path/$file", \%package_vars);154 addsource (\%package_vars, "$package_path/$file");155 }156 157 # write the makefile158 my $outfile = "$package_path/Makefile";159 print " - $outfile\n";160 open MAKEFILE, '>', $outfile161 or die "Failed to open '$outfile' for writing: $!";162 while (my $segment = <PACKAGE>) {163 chomp $segment;164 empty $segment and last;165 comment $segment and next;166 open IN, '<', "segments/$segment"167 or die "Failed to open 'segments/$segment' for reading: $!";168 while (<IN>) {169 s/@([\w]+)@/$package_vars{$1}/g;170 print MAKEFILE;171 }172 close IN;173 print MAKEFILE "\n";174 }175 close PACKAGE;176 # add a target for packaging177 if (open IN, '<', "segments/$distro_vars{'MANAGER'}") {178 while (<IN>) {179 s/@([\w]+)@/$package_vars{$1}/g;180 print MAKEFILE;181 }182 close IN;183 }184 close MAKEFILE;185 addsource \%package_vars, $outfile;186 187 # write the package manager files188 add ("managers/$distro_vars{'MANAGER'}", $package_path, \%package_vars);189 }190 } -
main/trunk/package-kits/linux/packages/demo
r29526 r29536 1 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/greenstone3/web/sites/localsite/collect 2 NAME: greenstone-demo2 NAME: @PKG_GREENSTONE_DEMO@ 3 3 VERSION: 3.06 4 4 RELEASE: 1 … … 9 9 LICENSE_SHORT: GPL-2 10 10 LICENSE: license 11 DEPENDS: @PKG_GREENSTONE@12 OPTDEPENDS:13 MAKEDEPENDS: @PKG_GREENSTONE_TOOLS@ @PKG_SVN@ @PKG_RSYNC@14 PROVIDES:15 FILES: @GSSRV@/sites/localsite/collect/*16 11 17 build-demo.sh 12 DEPENDS: 13 @PKG_GREENSTONE@ 18 14 19 base 20 src 21 clean 22 demo 15 OPTDEPENDS: 16 17 MAKEDEPENDS: 18 @PKG_GREENSTONE_TOOLS@ 19 @PKG_SVN@ 20 @PKG_RSYNC@ 21 22 PROVIDES: 23 24 FILES: 25 @GSSRV@/sites/localsite/collect/* 26 27 SOURCES: 28 build-demo.sh 29 30 MAKEFILE: 31 base 32 src 33 clean 34 demo -
main/trunk/package-kits/linux/packages/gli
r29526 r29536 1 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/gli 2 NAME: greenstone-gli2 NAME: @PKG_GLI@ 3 3 VERSION: 3.06 4 4 RELEASE: 1 … … 9 9 LICENSE_SHORT: GPL-2 10 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 FILES: @GLI@\n%{_bindir}/*16 11 17 gli 12 DEPENDS: 13 @PKG_JAVA_JRE@ 14 @PKG_GREENSTONE_TOOLS@ 18 15 19 base 20 src 21 clean 22 gli 16 OPTDEPENDS: 17 18 MAKEDEPENDS: 19 @PKG_JAVA_JDK@ 20 @PKG_SVN@ 21 @PKG_RSYNC@ 22 23 PROVIDES: 24 25 FILES: 26 @GLI@ 27 %{_bindir}/* 28 29 SOURCES: 30 gli 31 32 MAKEFILE: 33 base 34 src 35 clean 36 gli -
main/trunk/package-kits/linux/packages/main
r29526 r29536 1 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/greenstone3 2 NAME: greenstone2 NAME: @PKG_GREENSTONE@ 3 3 VERSION: 3.06 4 4 RELEASE: 1 … … 9 9 LICENSE_SHORT: GPL-2 10 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 FILES: @GSSRV@\n@TOMCATCONF@/*\n@TOMCATLIB@/*\n%{_libdir}/*16 11 17 build.properties 18 greenstone3.xml 19 gs2build.patch 20 perl-util.patch 12 DEPENDS: 13 @PKG_JAVA_JRE@ 14 @PKG_TOMCAT@ 21 15 22 base 23 src 24 clean 25 build-core 26 main 16 OPTDEPENDS: 17 @PKG_GREENSTONE_DEMO@ 18 @PKG_GREENSTONE_TOOLS@ 19 20 MAKEDEPENDS: 21 @PKG_JAVA_JDK@ 22 @PKG_SVN@ 23 @PKG_ANT@ 24 @PKG_PATCH@ 25 @PKG_AUTOCONF@ 26 @PKG_GCC@ 27 @PKG_MAKE@ 28 @PKG_RSYNC@ 29 30 PROVIDES: 31 32 FILES: 33 @GSSRV@ 34 @TOMCATCONF@/* 35 @TOMCATLIB@/* 36 %{_libdir}/* 37 38 SOURCES: 39 build.properties 40 greenstone3.xml 41 gs2build.patch 42 perl-util.patch 43 44 MAKEFILE: 45 base 46 src 47 clean 48 build-core 49 main -
main/trunk/package-kits/linux/packages/tools
r29526 r29536 1 1 SVN_LOCATION: http://svn.greenstone.org/main/trunk/greenstone3 2 NAME: greenstone-tools2 NAME: @PKG_GREENSTONE_TOOLS@ 3 3 VERSION: 3.06 4 4 RELEASE: 1 … … 9 9 LICENSE_SHORT: GPL-2 10 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 FILES: @GSTOOLS@\n%{_bindir}/*16 11 17 build.properties 18 greenstone 19 greenstone3.xml 20 gs2build.patch 21 perl-util.patch 22 wvWare 12 DEPENDS: 13 @PKG_WVWARE@ 14 @PKG_PERL@ 15 @PKG_IMAGEMAGICK@ 23 16 24 base 25 src 26 clean 27 build-core 28 tools 17 OPTDEPENDS: 18 @PKG_GLI@ 19 20 MAKEDEPENDS: 21 @PKG_JAVA_JDK@ 22 @PKG_SVN@ 23 @PKG_ANT@ 24 @PKG_PATCH@ 25 @PKG_AUTOCONF@ 26 @PKG_GCC@ 27 @PKG_MAKE@ 28 @PKG_RSYNC@ 29 30 PROVIDES: 31 32 FILES: 33 @GSTOOLS@ 34 %{_bindir}/* 35 36 SOURCES: 37 build.properties 38 greenstone 39 greenstone3.xml 40 gs2build.patch 41 perl-util.patch 42 wvWare 43 44 MAKEFILE: 45 base 46 src 47 clean 48 build-core 49 tools
Note:
See TracChangeset
for help on using the changeset viewer.