version 1.1, 2000/10/02 14:07:53
|
version 1.6, 2000/12/21 19:26:01
|
Line 7
|
Line 7
|
# GNU General Public License, Version 2, June 1991 |
# GNU General Public License, Version 2, June 1991 |
# See http://www.gnu.org/copyleft/gpl.html. |
# See http://www.gnu.org/copyleft/gpl.html. |
|
|
# This file currently does not actually "build" the RPM. |
# This script does actually "build" the RPM. |
# This has to be done with an RPM build environment and |
|
# commands like 'rpm -ba'. |
|
|
|
# What this file DOES do is generate all the needed |
# This script also generates and then deletes temporary |
# files (and binary root directory tree) to build an RPM with. |
# files (and binary root directory tree) to build an RPM with. |
|
|
# I still need to implement the CONFIGURATION_FILES and |
# I still need to implement the CONFIGURATION_FILES and |
Line 20
|
Line 18
|
|
|
# Take in a file list (from standard input), |
# Take in a file list (from standard input), |
# a description tag and version tag from command line argument |
# a description tag and version tag from command line argument |
# and generate a: |
# and temporarily generate a: |
# RPM .spec file |
# RPM .spec file |
# RPM Makefile |
# RPM Makefile |
# SourceRoot |
# SourceRoot |
|
|
|
# A resulting .rpm file is generated. |
|
|
unless (-e "/usr/lib/rpm/rpmrc") { |
unless (-e "/usr/lib/rpm/rpmrc") { |
print <<END; |
print <<END; |
ERROR: This script only works with a properly installed RPM builder application. |
ERROR: This script only works with a properly installed RPM builder application. |
Line 35 END
|
Line 35 END
|
|
|
my ($tag,$version,$configuration_files,$documentation_files,$pathprefix)=@ARGV; |
my ($tag,$version,$configuration_files,$documentation_files,$pathprefix)=@ARGV; |
@ARGV=(); |
@ARGV=(); |
|
|
if (!$version) { |
if (!$version) { |
print "Usage: <TAG> <VERSION> [CONFIGURATION_FILES] [DOCUMENTATION] [PATHPREFIX]\n"; |
print "Usage: <TAG> <VERSION> [CONFIGURATION_FILES] [DOCUMENTATION] [PATHPREFIX]\n"; |
print "Standard input provides the list of files to work with.\n"; |
print "Standard input provides the list of files to work with.\n"; |
Line 143 END
|
Line 144 END
|
|
|
foreach $file (<>) { |
foreach $file (<>) { |
chop $file; |
chop $file; |
|
my $comment=""; |
|
if ($file=~/\s+\#(.*)$/) { |
|
$file=~s/\s+\#(.*)$//; |
|
$comment=$1; |
|
} |
|
my $config=""; |
|
if ($comment=~/config/i) { |
|
$config="\%config "; |
|
} |
if (($type,$size,$octalmode,$user,$group)=find_info($file)) { |
if (($type,$size,$octalmode,$user,$group)=find_info($file)) { |
$octalmode="0" . $octalmode if length($octalmode)<4; |
$octalmode="0" . $octalmode if length($octalmode)<4; |
if ($pathprefix) { |
if ($pathprefix) { |
Line 151 foreach $file (<>) {
|
Line 161 foreach $file (<>) {
|
if ($type eq "files") { |
if ($type eq "files") { |
push @{$BinaryRootMakefile{$type}},"\tinstall -D -m $octalmode $pathprefix$file $binaryroot$file\n"; |
push @{$BinaryRootMakefile{$type}},"\tinstall -D -m $octalmode $pathprefix$file $binaryroot$file\n"; |
push @{$Makefile{$type}},"\tinstall -D -m $octalmode \$(SOURCE)$file \$(ROOT)$file\n"; |
push @{$Makefile{$type}},"\tinstall -D -m $octalmode \$(SOURCE)$file \$(ROOT)$file\n"; |
push @{$dotspecfile{$type}},"\%attr($octalmode,$user,$group) $file\n"; |
push @{$dotspecfile{$type}},"$config\%attr($octalmode,$user,$group) $file\n"; |
} |
} |
elsif ($type eq "directories") { |
elsif ($type eq "directories") { |
push @{$BinaryRootMakefile{$type}},"\tinstall -m $octalmode -d $binaryroot$file\n"; |
push @{$BinaryRootMakefile{$type}},"\tinstall -m $octalmode -d $binaryroot$file\n"; |
Line 206 sub find_info {
|
Line 216 sub find_info {
|
return ("directories",split(/\t/,$line)); |
return ("directories",split(/\t/,$line)); |
} |
} |
elsif (($line=`find $file -type l -prune`)=~/^$file\n/) { |
elsif (($line=`find $file -type l -prune`)=~/^$file\n/) { |
$line=`find $file -type l -prune -printf "\%h/\%l\t\%m\t\%u\t\%g"`; |
$line=`find $file -type l -prune -printf "\%l\t\%m\t\%u\t\%g"`; |
return ("links",split(/\t/,$line)); |
return ("links",split(/\t/,$line)); |
} |
} |
|
|