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

Revision 1202, 3.3 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%description
80
81%description -l ja
82ここに日本語で詳細を記述してください。
83
84EOL
85}
86
87#
88# Output dependency
89#
90OutputDependency()
91{
92cat >> $SPECFILE << EOL
93# Dependency
94
95EOL
96}
97
98#
99# Output prep section
100#
101OutputPrep()
102{
103        echo '%prep' >> $SPECFILE
104
105        # setup corresponding to suffix
106        case $SUFFIX in
107                .tar.gz | .tar.bz2)
108                        echo '%setup -q' >> $SPECFILE
109                        ;;
110                .zip)
111                        echo '%setup -T %{name}-%{version}' >> $SPECFILE
112                        echo 'unzip -xq %{SOURCE0}' >> $SPECFILE
113                        ;;     
114        esac
115
116        echo '' >> $SPECFILE
117}
118
119#
120# Output build section
121#
122OutputBuild()
123{
124        echo '%build' >> $SPECFILE
125        echo '%configure' >> $SPECFILE  # ToDo: check configure
126        echo '%{__make} %{?_smp_mflags}' >> $SPECFILE
127
128        echo '' >> $SPECFILE
129}
130
131#
132# Output install section
133#
134OutputInstall()
135{
136cat >> $SPECFILE << EOL
137%install
138%{__rm} -rf \${RPM_BUILD_ROOT}
139%{__make} install DESTDIR=\${RPM_BUILD_ROOT}
140
141%find_lang %{name}
142
143
144%clean
145%{__rm} -rf \${RPM_BUILD_ROOT}
146
147
148EOL
149}
150
151#
152# Output file list
153#
154OutputFileList()
155{
156# ToDo: check file exists
157cat >> $SPECFILE << EOL
158%files -f %{name}.lang
159%defattr(-,root,root)
160%doc COPYING ChangeLog NEWS README
161
162EOL
163}
164
165#
166# Output ChangeLog
167#
168OutputChangeLog()
169{
170cat >> $SPECFILE << EOL
171%changelog
172* `LANG=C LANGUAGE=C LC_ALL=C date '+%a %b %d %Y'` Your Name <name@yours.example.com> $PKGVERSION-1`rpm -E '%{?_dist_release}'`
173- initial build for Vine Linux
174EOL
175}
176
177#
178# main
179#
180
181# check arguments
182if [ -z "$*" ]; then
183        echo "Usage: `basename $0` source-archive"
184        exit 1
185fi
186
187ARCHIVE=$1
188
189CheckScheme
190CheckSuffix
191
192PKGNAME=`echo $BASENAME | sed -e 's/-[0-9][0-9.]*.*//'`
193PKGVERSION=`echo $BASENAME | sed -e 's/^.*-\([0-9][0-9.]*.*\)/\1/'`
194SOURCE=`echo $SOURCE | sed -e "s/$PKGNAME/%{name}/g" | sed -e "s/$PKGVERSION/%{version}/g"`
195
196SPECFILE=${SPECDIR}/${PKGNAME}-vl.spec
197
198# Output SPEC file.
199OutputBasicInfo
200OutputDependency
201OutputPrep
202OutputBuild
203OutputInstall
204OutputFileList
205OutputChangeLog
206
207# Output result
208echo "made $SPECFILE"
Note: See TracBrowser for help on using the repository browser.