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

Revision 4600, 3.2 KB checked in by yasumichi, 13 years ago (diff)

%_sourcedir に %{name} が含まれるようになったことへの対応

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