#!/bin/sh SPECDIR=`rpm -E '%_specdir'` SOURCEDIR=`rpm -E '%_sourcedir'` # # check scheme # CheckScheme() { case $ARCHIVE in http://* | ftp://*) if wget -P $SOURCEDIR -nc $ARCHIVE ;then # download SOURCE=$ARCHIVE else exit 1 # exit when failed download fi ;; *) if [ -f $ARCHIVE ];then echo "move $ARCHIVE to $SOURCEDIR." mv $ARCHIVE $SOURCEDIR SOURCE=`basename $ARCHIVE` else echo "$ARCHIVE is not file." 1>&2 exit 1 fi ;; esac } # # check suffix # CheckSuffix() { case $ARCHIVE in *.tar.gz) BASENAME=`basename $ARCHIVE .tar.gz` SUFFIX=".tar.gz" ;; *.tar.bz2) BASENAME=`basename $ARCHIVE .tar.bz2` SUFFIX=".tar.bz2" ;; *.zip) BASENAME=`basename $ARCHIVE .zip` SUFFIX=".zip" ;; *) echo "Unknown format." 1>&2 exit 1 ;; esac } # # output basic information # OutputBasicInfo() { cat > $SPECFILE << EOL # Basic Information Name: $PKGNAME Version: $PKGVERSION Release: 1%{?_dist_release} License: $LICENSE Group: ここにグループ名を記述してください(/usr/share/doc/rpm-`rpm --version | awk '{ print $3 }'`/GROUPS_for_vine.txt参照) Source0: $SOURCE BuildRoot: %{_tmppath}/%{name}-%{version}-root Vendor: Project Vine Distribution: Vine Linux Packager: ここにtracのidを記述してください Summary: $SUMMARY Summary(ja): ここに日本語で概要を記述してください # Dependency # 以下に依存関係を記述してください。 %description %description -l ja ここに日本語で詳細を記述してください。 EOL } # # Output prep section # OutputPrep() { echo '%prep' >> $SPECFILE # setup corresponding to suffix case $SUFFIX in .tar.gz | .tar.bz2) echo '%setup -q' >> $SPECFILE ;; .zip) echo '%setup -T %{name}-%{version}' >> $SPECFILE echo 'unzip -xq %{SOURCE0}' >> $SPECFILE ;; esac echo '' >> $SPECFILE } # # Output build section # OutputBuild() { echo '%build' >> $SPECFILE echo '%configure' >> $SPECFILE # ToDo: check configure echo '%{__make} %{?_smp_mflags}' >> $SPECFILE echo '' >> $SPECFILE } # # Output install section # OutputInstall() { cat >> $SPECFILE << EOL %install %{__rm} -rf \${RPM_BUILD_ROOT} %{__make} install DESTDIR=\${RPM_BUILD_ROOT} %find_lang %{name} %clean %{__rm} -rf \${RPM_BUILD_ROOT} EOL } # # Output file list # OutputFileList() { # ToDo: check file exists cat >> $SPECFILE << EOL %files -f %{name}.lang %defattr(-,root,root) %doc COPYING ChangeLog NEWS README EOL } # # Output ChangeLog # OutputChangeLog() { cat >> $SPECFILE << EOL %changelog * `LANG=C LANGUAGE=C LC_ALL=C date '+%a %b %d %Y'` Your Name $PKGVERSION-1`rpm -E '%{?_dist_release}'` - initial build for Vine Linux EOL } # # main # # check arguments if [ -z "$*" ]; then echo "Usage: `basename $0` source-archive" exit 1 fi ARCHIVE=$1 CheckScheme CheckSuffix PKGNAME=`echo $BASENAME | sed -e 's/-[0-9][0-9.]*.*//'` PKGVERSION=`echo $BASENAME | sed -e 's/^.*-\([0-9][0-9.]*.*\)/\1/'` SOURCE=`echo $SOURCE | sed -e "s/$PKGNAME/%{name}/g" | sed -e "s/$PKGVERSION/%{version}/g"` SPECFILE=${SPECDIR}/${PKGNAME}-vl.spec # Output SPEC file. OutputBasicInfo OutputPrep OutputBuild OutputInstall OutputFileList OutputChangeLog # Output result echo "made $SPECFILE"