[LON-CAPA-cvs] cvs: loncom /build make_rpm.pl
harris41
lon-capa-cvs@mail.lon-capa.org
Sat, 16 Feb 2002 19:53:46 -0000
harris41 Sat Feb 16 14:53:46 2002 EDT
Modified files:
/loncom/build make_rpm.pl
Log:
cleaning up documentation
Index: loncom/build/make_rpm.pl
diff -u loncom/build/make_rpm.pl:1.14 loncom/build/make_rpm.pl:1.15
--- loncom/build/make_rpm.pl:1.14 Wed Jan 9 17:16:14 2002
+++ loncom/build/make_rpm.pl Sat Feb 16 14:53:46 2002
@@ -3,7 +3,7 @@
# The LearningOnline Network with CAPA
# make_rpm.pl - make RedHat package manager file (A CLEAN AND CONFIGURABLE WAY)
#
-# $Id: make_rpm.pl,v 1.14 2002/01/09 22:16:14 harris41 Exp $
+# $Id: make_rpm.pl,v 1.15 2002/02/16 19:53:46 harris41 Exp $
#
# Written by Scott Harrison, harris41@msu.edu
#
@@ -32,32 +32,13 @@
# YEAR=2001
# 1/8,1/10,1/13,1/23,5/16 - Scott Harrison
# YEAR=2002
-# 1/4,1/8,1/9 - Scott Harrison
+# 1/4,1/8,1/9,2/13 - Scott Harrison
#
###
-# Automatically generate RPM files
-# from file listing.
-
-# This script builds the RPM.
-
-# This script also generates and then deletes temporary
-# files (and binary root directory tree) to build an RPM with.
-# It is designed to work cleanly and independently from pre-existing
-# directory trees such as /usr/src/redhat/*.
-
-# I still need to implement the CONFIGURATION_FILES and
-# DOCUMENTATION_FILES portion of the command line interface to this
-# script.
-
-# Take in a file list (from standard input),
-# a description tag and version tag from command line argument
-# and temporarily generate a:
-# RPM .spec file
-# RPM Makefile
-# SourceRoot
-
-# A resulting .rpm file is generated.
+# make_rpm.pl automatically generate RPM software packages
+# from a target image directory and file listing. POD
+# documentation is at the end of this file.
###############################################################################
## ##
@@ -75,7 +56,9 @@
## 10. mirror copy (BinaryRoot) files under a temporary directory ##
## 11. roll everything into an rpm ##
## 12. clean everything up ##
-## 13. find_info - recursively gather information from a directory ##
+## 13. subroutines ##
+## 13a. find_info - recursively gather information from a directory ##
+## 13b. grabtag - grab a tag from an XML string ##
## 14. Plain Old Documentation ##
## ##
###############################################################################
@@ -103,8 +86,10 @@
print <<END;
See "perldoc make_rpm.pl" for more information.
-Usage: <TAG> <VERSION> [CONFIGURATION_FILES]
+Usage:
+ <STDIN> | perl make_rpm.pl <TAG> <VERSION> [CONFIGURATION_FILES]
[DOCUMENTATION_FILES] [PATHPREFIX] [CUSTOMIZATION_XML]
+
Standard input provides the list of files to work with.
TAG, required descriptive tag. For example, a kerberos software
package might be tagged as "krb4".
@@ -369,9 +354,9 @@
print `cd $invokingdir; rm -Rf $tag`;
+# ----------------------------------------------------------------- SUBROUTINES
# ----- Subroutine: find_info - recursively gather information from a directory
sub find_info {
- # only look for
my ($file)=@_;
my $line;
if (($line=`find $file -type f -prune`)=~/^$file\n/) {
@@ -386,7 +371,7 @@
$line=`find $file -type l -prune -printf "\%l\t\%m\t\%u\t\%g"`;
return ("links",split(/\t/,$line));
}
-
+ die("**** ERROR **** $file is neither a directory, soft link, or file");
}
# ------------------------- Subroutine: grabtag - grab a tag from an xml string
@@ -512,28 +497,67 @@
Automatically generate an RPM software package from a list of files.
This script builds the RPM in a very clean and configurable fashion.
-(Finally! Making RPMs the simple way!)
+(Finally! Making RPMs outside of /usr/src/redhat without a zillion
+file intermediates left over!)
This script generates and then deletes temporary
-files (and binary root directory tree) to build an RPM with.
-It is designed to work cleanly and independently from pre-existing
+files needed to build an RPM with.
+It works cleanly and independently from pre-existing
directory trees such as /usr/src/redhat/*.
-Take in a file list (from standard input),
-a description tag and version tag from command line argument
-and temporarily generate a:
- RPM .spec file
- RPM Makefile
- SourceRoot
+The script is also simple. It accepts four kinds of information,
+two of which are mandatory:
+
+=over 4
+
+=item *
+
+a list of files that are to be part of the software package;
+
+=item *
+
+the location of these files;
+
+=item *
+
+(optional) a descriptive tag and a version tag;
+
+=item *
+
+and (optional) an XML file that defines the additional metadata
+associated with the RPM software package.
+
+=back
+
+The following items are initially and temporarily generated during the
+construction of an RPM:
+
+=over 4
+
+=item *
+
+RPM .spec file
+
+=item *
+
+RPM Makefile
+
+=item *
+
+SourceRoot
+
+=back
A resulting .rpm file is generated.
+make_rpm.pl is compatible with both rpm version 3.* and rpm version 4.*.
+
=head1 README
Automatically generate an RPM software package from a list of files.
This script builds the RPM in a very clean and configurable fashion.
-(Finally! Making RPMs the simple way!)
+(Making RPMs the simple and right way!)
This script generates and then deletes temporary
files (and binary root directory tree) to build an RPM with.
@@ -546,7 +570,7 @@
=pod OSNAMES
-any
+Linux
=pod SCRIPT CATEGORIES