source: projects/vine-rpm-helper/trunk/mkrpmspec @ 1209

Revision 1209, 3.2 KB checked in by yasumichi, 14 years ago (diff)

依存関係の記述位置不良を修正

Line 
1#!/bin/sh
2
3SPECDIR=`rpm -E '%_specdir'`
4SOURCEDIR=`rpm -E '%_sourcedir'`
5
6#
7# check scheme
8#
9CheckScheme()
10{
11        case $ARCHIVE in
12                http://* | ftp://*)
13                        if wget -P $SOURCEDIR -nc $ARCHIVE ;then        # download
14                                SOURCE=$ARCHIVE
15                        else
16                                exit 1                  # exit when failed download
17                        fi
18                        ;;
19                *)
20                        if [ -f $ARCHIVE ];then
21                                echo "move $ARCHIVE to $SOURCEDIR."
22                                mv $ARCHIVE $SOURCEDIR
23                                SOURCE=`basename $ARCHIVE`
24                        else
25                                echo "$ARCHIVE is not file." 1>&2
26                                exit 1
27                        fi
28                        ;;
29        esac 
30}
31
32#
33# check suffix
34#
35CheckSuffix()
36{
37        case $ARCHIVE in
38                *.tar.gz)
39                        BASENAME=`basename $ARCHIVE .tar.gz`
40                        SUFFIX=".tar.gz"
41                        ;;
42                *.tar.bz2)
43                        BASENAME=`basename $ARCHIVE .tar.bz2`
44                        SUFFIX=".tar.bz2"
45                        ;;
46                *.zip)
47                        BASENAME=`basename $ARCHIVE .zip`
48                        SUFFIX=".zip"
49                        ;;
50                *)
51                        echo "Unknown format." 1>&2
52                        exit 1
53                        ;;
54        esac
55}
56
57#
58# output basic information
59#
60OutputBasicInfo()
61{
62cat > $SPECFILE << EOL
63# Basic Information
64Name:           $PKGNAME
65Version:        $PKGVERSION
66Release:        1%{?_dist_release}
67License:        $LICENSE
68Group:          ここにグループ名を記述してください(/usr/share/doc/rpm-`rpm --version | awk '{ print $3 }'`/GROUPS_for_vine.txt参照)
69Source0:        $SOURCE
70BuildRoot: %{_tmppath}/%{name}-%{version}-root
71
72Vendor: Project Vine
73Distribution: Vine Linux
74Packager:       ここにtracのidを記述してください
75
76Summary:        $SUMMARY
77Summary(ja):    ここに日本語で概要を記述してください
78
79# Dependency
80# 以下に依存関係を記述してください。
81
82%description
83
84%description -l ja
85ここに日本語で詳細を記述してください。
86
87EOL
88}
89
90#
91# Output prep section
92#
93OutputPrep()
94{
95        echo '%prep' >> $SPECFILE
96
97        # setup corresponding to suffix
98        case $SUFFIX in
99                .tar.gz | .tar.bz2)
100                        echo '%setup -q' >> $SPECFILE
101                        ;;
102                .zip)
103                        echo '%setup -T %{name}-%{version}' >> $SPECFILE
104                        echo 'unzip -xq %{SOURCE0}' >> $SPECFILE
105                        ;;     
106        esac
107
108        echo '' >> $SPECFILE
109}
110
111#
112# Output build section
113#
114OutputBuild()
115{
116        echo '%build' >> $SPECFILE
117        echo '%configure' >> $SPECFILE  # ToDo: check configure
118        echo '%{__make} %{?_smp_mflags}' >> $SPECFILE
119
120        echo '' >> $SPECFILE
121}
122
123#
124# Output install section
125#
126OutputInstall()
127{
128cat >> $SPECFILE << EOL
129%install
130%{__rm} -rf \${RPM_BUILD_ROOT}
131%{__make} install DESTDIR=\${RPM_BUILD_ROOT}
132
133%find_lang %{name}
134
135
136%clean
137%{__rm} -rf \${RPM_BUILD_ROOT}
138
139
140EOL
141}
142
143#
144# Output file list
145#
146OutputFileList()
147{
148# ToDo: check file exists
149cat >> $SPECFILE << EOL
150%files -f %{name}.lang
151%defattr(-,root,root)
152%doc COPYING ChangeLog NEWS README
153
154EOL
155}
156
157#
158# Output ChangeLog
159#
160OutputChangeLog()
161{
162cat >> $SPECFILE << EOL
163%changelog
164* `LANG=C LANGUAGE=C LC_ALL=C date '+%a %b %d %Y'` Your Name <name@yours.example.com> $PKGVERSION-1`rpm -E '%{?_dist_release}'`
165- initial build for Vine Linux
166EOL
167}
168
169#
170# main
171#
172
173# check arguments
174if [ -z "$*" ]; then
175        echo "Usage: `basename $0` source-archive"
176        exit 1
177fi
178
179ARCHIVE=$1
180
181CheckScheme
182CheckSuffix
183
184PKGNAME=`echo $BASENAME | sed -e 's/-[0-9][0-9.]*.*//'`
185PKGVERSION=`echo $BASENAME | sed -e 's/^.*-\([0-9][0-9.]*.*\)/\1/'`
186SOURCE=`echo $SOURCE | sed -e "s/$PKGNAME/%{name}/g" | sed -e "s/$PKGVERSION/%{version}/g"`
187
188SPECFILE=${SPECDIR}/${PKGNAME}-vl.spec
189
190# Output SPEC file.
191OutputBasicInfo
192OutputPrep
193OutputBuild
194OutputInstall
195OutputFileList
196OutputChangeLog
197
198# Output result
199echo "made $SPECFILE"
Note: See TracBrowser for help on using the repository browser.