Diff for /loncom/build/make_rpm.pl between versions 1.1 and 1.7

version 1.1, 2000/10/02 14:07:53 version 1.7, 2001/01/08 17:57:06
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 86  print RPMMACROS <<END; Line 87  print RPMMACROS <<END;
 END  END
 close RPMMACROS;  close RPMMACROS;
   
   # This needs to be dynamically based upon doc/otherfiles/rpm_list.txt
   # at some point.
   my $requires="";
   if ($tag eq "setup") {
       $requires=<<END;
   Requires: setup
   END
   }
   elsif ($tag eq "base") {
       $requires=<<END;
   Requires: LON-CAPA-base
   Requires: LON-CAPA-krb4
   Requires: LON-CAPA-mysql
   Requires: LON-CAPA-systemperl
   Requires: raidtools
   Requires: ncurses
   Requires: popt
   Requires: tcsh
   Requires: redhat-release
   Requires: diffutils
   Requires: ed
   Requires: dialog
   Requires: rmt
   Requires: sed
   Requires: which
   Requires: gawk
   Requires: mingetty
   Requires: info
   Requires: portmap
   Requires: openssh-clients
   Requires: openssh
   Requires: openssh-server
   Requires: openssl
   Requires: basesystem
   Requires: ldconfig
   Requires: filesystem
   Requires: mktemp
   Requires: termcap
   Requires: shadow-utils
   Requires: libtermcap
   Requires: MAKEDEV
   Requires: utempter
   Requires: bash
   Requires: logrotate
   Requires: SysVinit
   Requires: chkconfig
   Requires: textutils
   Requires: pwdb
   Requires: vixie-cron
   Requires: procps
   Requires: modutils
   Requires: psmisc
   Requires: sysklogd
   Requires: authconfig
   Requires: zlib
   Requires: sh-utils
   Requires: mailcap
   Requires: anacron
   Requires: bc
   Requires: bdflush
   Requires: bind-utils
   Requires: cpio
   Requires: crontabs
   Requires: etcskel
   Requires: e2fsprogs
   Requires: samba-client
   Requires: apache-devel
   Requires: autofs
   Requires: findutils
   Requires: gdbm
   Requires: getty_ps
   Requires: readline
   Requires: glib10
   Requires: inetd
   Requires: losetup
   Requires: gnupg
   Requires: gpgp
   Requires: urw-fonts
   Requires: mailx
   Requires: gzip
   Requires: ld.so
   Requires: less
   Requires: passwd
   Requires: sysreport
   Requires: ncompress
   Requires: mount
   Requires: lilo
   Requires: bzip2
   Requires: grep
   Requires: memprof
   Requires: mars-nwe
   Requires: pidentd
   Requires: procinfo
   Requires: units
   Requires: routed
   Requires: quota
   Requires: pam
   Requires: stat
   Requires: setserial
   Requires: mod_perl
   Requires: rootfiles
   Requires: nfs-utils
   Requires: sendmail
   Requires: sharutils
   Requires: tmpwatch
   Requires: shapecfg
   Requires: tcp_wrappers
   Requires: unzip
   Requires: tetex-dvips
   Requires: tetex-afm
   Requires: tetex-latex
   Requires: xntp3
   Requires: rpm
   Requires: wu-ftpd
   Requires: setup
   Requires: glibc
   Requires: fileutils
   Requires: initscripts
   Requires: netatalk
   Requires: apache
   Requires: bash2
   Requires: dev
   Requires: samba
   Requires: ghostscript
   Requires: kernel-headers
   Requires: kernel
   Requires: linuxconf
   Requires: tetex
   Requires: tetex-fonts
   Requires: util-linux
   Requires: vim-common
   Requires: perl
   Requires: cracklib
   Requires: cracklib-dicts
   Requires: cdrecord
   Requires: ghostscript-fonts
   Requires: libgr
   Requires: libjpeg
   Requires: libpng
   Requires: libungif-progs
   Requires: libtiff
   Requires: libungif
   Requires: samba-common
   Requires: ImageMagick
   Requires: libgr-progs
   Requires: man-pages
   Requires: tar
   Requires: vim-minimal
   END
   }
   else {
       $requires=<<END;
   Requires: LON-CAPA-base
   END
   }
 open (SPEC,">$tag/SPECS/LON-CAPA-$tag-$version.spec");  open (SPEC,">$tag/SPECS/LON-CAPA-$tag-$version.spec");
   
 print SPEC <<END;  print SPEC <<END;
Line 99  Copyright: GNU General Public License. V Line 255  Copyright: GNU General Public License. V
 Group: Utilities/System  Group: Utilities/System
 Source: LON-CAPA-$tag-$version.tar.gz  Source: LON-CAPA-$tag-$version.tar.gz
 AutoReqProv: no  AutoReqProv: no
   $requires
 # requires: filesystem  # requires: filesystem
 \%description  \%description
 This package is automatically generated by the make_rpm.pl perl  This package is automatically generated by the make_rpm.pl perl
Line 143  END Line 300  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 317  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 372  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));
     }      }
   

Removed from v.1.1  
changed lines
  Added in v.1.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>