ftp://ftp.redhat.com/pub/redhat/linux/rawhide/SRPMS/SRPMS/gnome-vfs2-2.3.8-1.src.rpm
[gnome-vfs-httpcaptive.git] / modules / extfs / rpm
1 #! /bin/sh
2 #
3 # Written by Erik Troan (ewt@redhat.com) 1996
4 #            Jakub Jelinek (jj@sunsite.mff.cuni.cz) 1996
5 #            Tomasz K³oczko (kloczek@rudy.mif.pg.gda.pl) 1997
6 # minor changes by Wojtek Pilorz (wpilorz@bdk.lublin.pl) 1997
7 # minor changes by Michele Marziani (marziani@fe.infn.it) 1997
8 # bug files by Marc Merlin (marcsoft@merlins.org) 1998
9 # (C) 1996 The Free Software Foundation.
10 #
11 #
12
13 mcrpmfs_list ()
14 {
15     # set MCFASTRPM_DFLT to 1 for faster rpm files handling by default, to 0 for
16     # slower handling
17     MCFASTRPM_DFLT=0
18     if test -z "$MCFASTRPM"; then
19       MCFASTRPM=$MCFASTRPM_DFLT
20     fi
21     FILEPREF="-r--r--r--   1 root     root    "
22     DESC=`rpm -qip "$1"`
23     DATE=`rpm -qp --qf "%{BUILDTIME:date}\n" "$1" | cut -c 5-11,21-24`
24     HEADERSIZE=`echo "$DESC" | wc -c`
25     echo "-r--r--r--   1 root     root  $HEADERSIZE $DATE HEADER"
26     echo "-r-xr-xr-x   1 root     root    39 $DATE INSTALL"
27     echo "-r-xr-xr-x   1 root     root    39 $DATE UPGRADE"
28     echo "dr-xr-xr-x   3 root     root     0 $DATE INFO"
29     echo "$FILEPREF 0 $DATE INFO/NAME-VERSION-RELEASE"
30     echo "$FILEPREF 0 $DATE INFO/GROUP"
31     echo "$FILEPREF 0 $DATE INFO/BUILDHOST"
32     echo "$FILEPREF 0 $DATE INFO/SOURCERPM"
33     if test "$MCFASTRPM" = 0 ; then
34      test "`rpm -qp --qf \"%{DISTRIBUTION}\" \"$1\"`" = "(none)" ||
35          echo "$FILEPREF 0 $DATE INFO/DISTRIBUTION"
36      test "`rpm -qp --qf \"%{VENDOR}\" \"$1\"`" = "(none)" ||
37          echo "$FILEPREF 0 $DATE INFO/VENDOR"
38      test "`rpm -qp --qf \"%{DESCRIPTION}\" \"$1\"`" = "(none)" ||
39          echo "$FILEPREF 0 $DATE INFO/DESCRIPTION"
40      test "`rpm -qp --qf \"%{SUMMARY}\" \"$1\"`" = "(none)" ||
41          echo "$FILEPREF 0 $DATE INFO/SUMMARY"
42      if test "`rpm -qp --qf \"%{RPMTAG_PREIN}%{RPMTAG_POSTIN}%{RPMTAG_PREUN}%{RPMTAG_POSTUN}%{VERIFYSCRIPT}\" \"$1\"`" != "(none)(none)(none)(none)(none)"; then
43         echo "dr-xr-xr-x   1 root     root     0 $DATE INFO/SCRIPTS"
44         test "`rpm -qp --qf \"%{RPMTAG_PREIN}\" \"$1\"`" = '(none)' ||
45            echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN"
46         test "`rpm -qp --qf \"%{RPMTAG_POSTIN}\" \"$1\"`" = '(none)' ||
47            echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTIN"
48         test "`rpm -qp --qf \"%{RPMTAG_PREUN}\" \"$1\"`" = '(none)' ||
49            echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREUN"
50         test "`rpm -qp --qf \"%{RPMTAG_POSTUN}\" \"$1\"`" = '(none)' ||
51            echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTUN"
52         test "`rpm -qp --qf \"%{VERIFYSCRIPT}\" \"$1\"`" = '(none)' ||
53            echo "$FILEPREF 0 $DATE INFO/SCRIPTS/VERIFYSCRIPT"
54         echo "$FILEPREF 0 $DATE INFO/SCRIPTS/ALL"
55      fi
56     else
57      echo "$FILEPREF 0 $DATE INFO/DISTRIBUTION"
58      echo "$FILEPREF 0 $DATE INFO/VENDOR"
59      echo "$FILEPREF 0 $DATE INFO/DESCRIPTION"
60      echo "$FILEPREF 0 $DATE INFO/SUMMARY"
61      echo "dr-xr-xr-x   1 root     root     0 $DATE INFO/SCRIPTS"
62      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREIN"
63      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTIN"
64      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/PREUN"
65      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/POSTUN"
66      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/VERIFYSCRIPT"
67      echo "$FILEPREF 0 $DATE INFO/SCRIPTS/ALL"
68     fi
69     if test "$MCFASTRPM" = 0 ; then
70      test "`rpm -qp --qf \"%{PACKAGER}\" \"$1\"`" = "(none)" ||
71          echo "$FILEPREF 0 $DATE INFO/PACKAGER"
72      test "`rpm -qp --qf \"%{URL}\" \"$1\"`" = "(none)" ||
73          echo "$FILEPREF 0 $DATE INFO/URL"
74      test "`rpm -qp --qf \"%{SERIAL}\" \"$1\"`" = "(none)" ||
75          echo "$FILEPREF 0 $DATE INFO/SERIAL"
76      test "`rpm -qp --qf \"%{COPYRIGHT}\" \"$1\"`" = "(none)" ||
77          echo "$FILEPREF 0 $DATE INFO/COPYRIGHT"
78      test "`rpm -qp --qf \"%{LICENSE}\" \"$1\"`" = "(none)" ||
79          echo "$FILEPREF 0 $DATE INFO/LICENSE"
80     else
81          echo "$FILEPREF 0 $DATE INFO/PACKAGER"
82          echo "$FILEPREF 0 $DATE INFO/URL"
83          echo "$FILEPREF 0 $DATE INFO/SERIAL"
84          echo "$FILEPREF 0 $DATE INFO/COPYRIGHT"
85          echo "$FILEPREF 0 $DATE INFO/LICENSE"
86     fi
87     echo "$FILEPREF 0 $DATE INFO/BUILDTIME"
88     echo "$FILEPREF 0 $DATE INFO/RPMVERSION"
89     echo "$FILEPREF 0 $DATE INFO/OS"
90     echo "$FILEPREF 0 $DATE INFO/SIZE"
91     if test "$MCFASTRPM" != 0 ; then
92     rpm -qp --qf "[%{REQUIRENAME}\n]" "$1" | grep "(none)" > /dev/null ||
93         echo "$FILEPREF 0 $DATE INFO/REQUIRENAME"
94     rpm -qp --qf "[%{OBSOLETES}\n]" "$1" | grep "(none)" > /dev/null ||
95         echo "$FILEPREF 0 $DATE INFO/OBSOLETES"
96     rpm -qp --qf "[%{PROVIDES}\n]" "$1" | grep "(none)" > /dev/null ||
97         echo "$FILEPREF 0 $DATE INFO/PROVIDES"
98     test "`rpm -qp --qf \"%{CHANGELOGTEXT}\" \"$1\"`" = "(none)" ||
99        echo "$FILEPREF 0 $DATE INFO/CHANGELOG"
100     else 
101         echo "$FILEPREF 0 $DATE INFO/REQUIRENAME"
102         echo "$FILEPREF 0 $DATE INFO/OBSOLETES"
103         echo "$FILEPREF 0 $DATE INFO/PROVIDES"
104         echo "$FILEPREF 0 $DATE INFO/CHANGELOG"
105     fi
106
107     rpm -qlvp "$1" | sed -e 's/^\(..........\)[-t]* /\1 1 /'
108 }
109
110 mcrpmfs_copyout ()
111 {
112     case "$2" in
113         HEADER) rpm -qip "$1" > "$3"; exit 0;;
114         INSTALL) echo "# Run this to install this RPM package" > "$3"; exit 0;;
115         UPGRADE) echo "# Run this to upgrade this RPM package" > "$3"; exit 0;;
116         INFO/NAME-VERSION-RELEASE)      rpm -qp --qf "%{NAME}-%{VERSION}-%{RELEASE}\n" "$1" > "$3"; exit 0;;
117         INFO/RELEASE)           rpm -qp --qf "%{RELEASE}\n" "$1" > "$3"; exit 0;;
118         INFO/GROUP)             rpm -qp --qf "%{GROUP}\n" "$1" > "$3"; exit 0;;
119         INFO/DISTRIBUTION)      rpm -qp --qf "%{DISTRIBUTION}\n" "$1" > "$3"; exit 0;;
120         INFO/VENDOR)            rpm -qp --qf "%{VENDOR}\n" "$1" > "$3"; exit 0;;
121         INFO/BUILDHOST)         rpm -qp --qf "%{BUILDHOST}\n" "$1" > "$3"; exit 0;;
122         INFO/SOURCERPM)         rpm -qp --qf "%{SOURCERPM}\n" "$1" > "$3"; exit 0;;
123         INFO/DESCRIPTION)       rpm -qp --qf "%{DESCRIPTION}\n" "$1" > "$3"; exit 0;;
124         INFO/PACKAGER)          rpm -qp --qf "%{PACKAGER}\n" "$1" > "$3"; exit 0;;
125         INFO/URL)               rpm -qp --qf "%{URL}\n" "$1" >"$3"; exit 0;;
126         INFO/BUILDTIME)         rpm -qp --qf "%{BUILDTIME:date}\n" "$1" >"$3"; exit 0;;
127         INFO/SERIAL)            rpm -qp --qf "%{SERIAL}\n" "$1" >"$3"; exit 0;;
128         INFO/COPYRIGHT)         rpm -qp --qf "%{COPYRIGHT}\n" "$1" >"$3"; exit 0;;
129         INFO/RPMVERSION)        rpm -qp --qf "%{RPMVERSION}\n" "$1" >"$3"; exit 0;;
130         INFO/REQUIRENAME)       rpm -qp --qf "[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" "$1" >"$3"; exit 0;;
131         INFO/PROVIDES)          rpm -qp --qf "[%{PROVIDES}\n]" "$1" >"$3"; exit 0;;
132         INFO/SCRIPTS/PREIN)     rpm -qp --qf "%{RPMTAG_PREIN}\n" "$1" >"$3"; exit 0;;
133         INFO/SCRIPTS/POSTIN)    rpm -qp --qf "%{RPMTAG_POSTIN}\n" "$1" >"$3"; exit 0;;
134         INFO/SCRIPTS/PREUN)     rpm -qp --qf "%{RPMTAG_PREUN}\n" "$1" >"$3"; exit 0;;
135         INFO/SCRIPTS/POSTUN)    rpm -qp --qf "%{RPMTAG_POSTUN}\n" "$1" >"$3"; exit 0;;
136         INFO/SCRIPTS/VERIFYSCRIPT)      rpm -qp --qf "%{VERIFYSCRIPT}\n" "$1" >"$3"; exit 0;;
137         INFO/SCRIPTS/ALL)               rpm -qp --scripts "$1" > "$3"; exit 0;;
138         INFO/SUMMARY)           rpm -qp --qf "%{SUMMARY}\n" "$1" > "$3"; exit 0;;
139         INFO/OS)                rpm -qp --qf "%{OS}\n" "$1" > "$3"; exit 0;;
140         INFO/CHANGELOG)         rpm -qp --qf "[* %{CHANGELOGTIME:date} %{CHANGELOGNAME}\n%{CHANGELOGTEXT}\n\n]\n" "$1" > "$3"; exit 0;;
141         INFO/SIZE)              rpm -qp --qf "%{SIZE} bytes\n" "$1" > "$3"; exit 0;;
142         *)
143             TMPDIR=/tmp/mctmpdir.$$
144             mkdir $TMPDIR || exit 1
145             cd $TMPDIR
146             rpm2cpio "$1" | cpio -iumd --quiet "$2" >/dev/null
147             mv "$2" "$3"
148             cd /
149             rm -rf $TMPDIR;;
150     esac
151 }
152
153 mcrpmfs_run ()
154 {
155     case "$2" in
156         INSTALL) echo "Installing \"$1\""; rpm -ivh "$1"; exit 0;;
157         UPGRADE) echo "Upgrading \"$1\""; rpm -iUvh "$1"; exit 0;;
158     esac
159 }
160
161 # override any locale for dates
162 LC_ALL=C
163 export LC_ALL
164
165 umask 077
166 case "$1" in
167   list) mcrpmfs_list "$2"; exit 0;;
168   copyout) mcrpmfs_copyout "$2" "$3" "$4"; exit 0;;
169   run) mcrpmfs_run "$2" "$3"; exit 1;;
170 esac
171 exit 1