Accepting request 205119 from home:saschpe:branches:openSUSE:Tools
- Move service to github.com/openSUSE/obs-service-set_version - Add _service file to update package from there - Drop local sources and use tarball from source services OBS-URL: https://build.opensuse.org/request/show/205119 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/obs-service-set_version?expand=0&rev=15
This commit is contained in:
parent
9741042957
commit
a5c2030f35
20
_service
Normal file
20
_service
Normal file
@ -0,0 +1,20 @@
|
||||
<services>
|
||||
<service mode="disabled" name="tar_scm">
|
||||
<param name="url">git@github.com:openSUSE/obs-service-set_version.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="exclude">.git</param>
|
||||
<param name="version">git-master</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<param name="revision">master</param>
|
||||
<param name="changesrevision">faa5a4fd7a531eeab0ab43bbe1c5ccc909b607dd</param>
|
||||
</service>
|
||||
|
||||
<service mode="disabled" name="recompress">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">gz</param>
|
||||
</service>
|
||||
|
||||
<service mode="disabled" name="set_version">
|
||||
<param name="basename">obs-service-set_version</param>
|
||||
</service>
|
||||
</services>
|
3
obs-service-set_version-0.3.tar.gz
Normal file
3
obs-service-set_version-0.3.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:31514b9d30d33df4e171ca9e9f299a562f4734b6fde7b135e38c986e6dae936b
|
||||
size 1993
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 29 13:47:13 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Move service to github.com/openSUSE/obs-service-set_version
|
||||
- Add _service file to update package from there
|
||||
- Drop local sources and use tarball from source services
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 8 10:06:26 UTC 2013 - jblunck@opensuse.org
|
||||
|
||||
|
@ -16,14 +16,16 @@
|
||||
#
|
||||
|
||||
|
||||
Name: obs-service-set_version
|
||||
%define service set_version
|
||||
|
||||
Name: obs-service-%{service}
|
||||
Version: 0.3
|
||||
Release: 0
|
||||
Summary: An OBS source service: Update spec file version
|
||||
License: GPL-2.0+
|
||||
Group: Development/Tools/Building
|
||||
Version: 0.3
|
||||
Release: 0
|
||||
Source: set_version
|
||||
Source1: set_version.service
|
||||
Url: https://github.com/openSUSE/obs-service-%{service}
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
Requires: sed
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildArch: noarch
|
||||
@ -35,18 +37,18 @@ Very simply script to update the version in .spec or .dsc files according to
|
||||
a given version or to the existing files.
|
||||
|
||||
%prep
|
||||
%setup -q -D -T 0 -n .
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
|
||||
%install
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/lib/obs/service
|
||||
install -m 0755 %{SOURCE0} $RPM_BUILD_ROOT/usr/lib/obs/service
|
||||
install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/obs/service
|
||||
mkdir -p %{buildroot}%{_prefix}/lib/obs/service
|
||||
install -m 0755 set_version %{buildroot}%{_prefix}/lib/obs/service
|
||||
install -m 0644 set_version.service %{buildroot}%{_prefix}/lib/obs/service
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%dir /usr/lib/obs
|
||||
/usr/lib/obs/service
|
||||
%dir %{_prefix}/lib/obs
|
||||
%{_prefix}/lib/obs/service
|
||||
|
||||
%changelog
|
||||
|
115
set_version
115
set_version
@ -1,115 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A simple script to update spec or dsc file
|
||||
# very, very simple. I am happy about patches which handles multiple files with different version numbers
|
||||
#
|
||||
# (C) 2010 by Adrian Schröter <adrian@suse.de>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
# See http://www.gnu.org/licenses/gpl-2.0.html for full license text.
|
||||
|
||||
|
||||
# defaults
|
||||
MYVERSION=""
|
||||
FILES=""
|
||||
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
*-version)
|
||||
MYVERSION="$2"
|
||||
shift
|
||||
;;
|
||||
*-file)
|
||||
FILES="$FILES ${2##*/}"
|
||||
shift
|
||||
;;
|
||||
*-basename)
|
||||
BASENAME="^$2"
|
||||
shift
|
||||
;;
|
||||
*-outdir)
|
||||
MYOUTDIR="$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo Unknown parameter $1.
|
||||
echo 'Usage: set_version --version $VERSION --file $FILE --basename $BASENAME --outdir $OUT'
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
get_version_from_file () {
|
||||
if [ -z "$MYVERSION" ]; then
|
||||
MYVERSION=`ls -1t | sed -n "s,$BASENAME.*[-_]\([0123456789].*\).tar.*,\1,p" | head -n 1`
|
||||
fi
|
||||
if [ -z "$MYVERSION" ]; then
|
||||
MYVERSION=`ls -1t | sed -n "s,$BASENAME.*[-_]\([0123456789].*\).tgz$,\1,p" | head -n 1`
|
||||
fi
|
||||
if [ -z "$MYVERSION" ]; then
|
||||
MYVERSION=`ls -1t | sed -n "s,$BASENAME.*[-_]\([0123456789].*\).tbz2$,\1,p" | head -n 1`
|
||||
fi
|
||||
if [ -z "$MYVERSION" ]; then
|
||||
MYVERSION=`ls -1t | sed -n "s,$BASENAME.*[-_]\([0123456789].*\).zip$,\1,p" | head -n 1`
|
||||
fi
|
||||
if [ -z "$MYVERSION" ]; then
|
||||
# take version number (and optional revision) from Debian changelog
|
||||
MYVERSION=`head -n 1 *debian.changelog 2>/dev/null | sed -ne 's/.*(\(.*\)).*/\1/p'`
|
||||
fi
|
||||
if [ -z "$MYVERSION" ]; then
|
||||
echo "ERROR: no version is given and can't get detected automatically"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# remove trailing ".orig", used by dpkg sources
|
||||
MYVERSION=`sed s/.orig$// <<<$MYVERSION`
|
||||
|
||||
echo "Detected version as $MYVERSION"
|
||||
}
|
||||
|
||||
write_files () {
|
||||
if [ -z "$FILES" ]; then
|
||||
FILES="*.spec *.dsc"
|
||||
fi
|
||||
if [ -z "$MYOUTDIR" ]; then
|
||||
echo "ERROR: no output directory is given via --outdir parameter!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in $FILES; do
|
||||
FILE=`ls -1 $i 2>/dev/null`
|
||||
[ -e "$FILE" ] || continue
|
||||
|
||||
sed "0,/^Version:\(\s*\)[^%]*/s//Version:\1$MYVERSION/" "$FILE" > "$MYOUTDIR/$FILE" || exit 1
|
||||
echo "Updated first occurrence (if any) of Version in $FILE to $MYVERSION"
|
||||
if [ "${FILE%.spec}" != "$FILE" ]; then
|
||||
# set release back to zero after version upgrade, will be increased by OBS during build
|
||||
# also keep macros in release in case of fedora/mandriva
|
||||
sed -r -i "s,^Release:(\s*)[^%]*,Release:\10," "$MYOUTDIR/$FILE" || exit 1
|
||||
fi
|
||||
|
||||
if [ "${FILE#_service:}" != "$FILE" ]; then
|
||||
# we can remove service files, no need to store them twice
|
||||
rm -f "$FILE"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -e PKGBUILD ]; then
|
||||
FILE=`ls -1 _service:*[-_]${MYVERSION}* | head -n 1`
|
||||
[ -z "$FILE" ] && FILE=`ls -1 *[-_]${MYVERSION}* | head -n 1`
|
||||
MD5=`md5sum "$FILE" | head -n 1 | cut -d\ -f 1`
|
||||
|
||||
sed "0,/^pkgver=\(\s*\)[^%]*/s//pkgver=\1$MYVERSION/" PKGBUILD > "$MYOUTDIR/PKGBUILD" || exit 1
|
||||
sed -r -i "s,^pkgrel=.*,pkgrel=0," "$MYOUTDIR/PKGBUILD" || exit 1
|
||||
sed -r -i "s,^md5sums=.*,md5sums=('$MD5')," "$MYOUTDIR/PKGBUILD" || exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
get_version_from_file
|
||||
write_files
|
||||
|
||||
exit 0
|
@ -1,16 +0,0 @@
|
||||
<service name="set_version">
|
||||
<summary>Updates version in spec and dsc files</summary>
|
||||
<description>This service updates a spec file according to the existing files.
|
||||
Can be used after download_url or tar_scm service.
|
||||
</description>
|
||||
<parameter name="version">
|
||||
<description>Set version to this value, otherwise autodetection is running.</description>
|
||||
</parameter>
|
||||
<parameter name="basename">
|
||||
<description>Limit version detection to files which start with given name.</description>
|
||||
</parameter>
|
||||
<parameter name="file">
|
||||
<description>Update only the given file.</description>
|
||||
</parameter>
|
||||
</service>
|
||||
|
Loading…
Reference in New Issue
Block a user