Hello community, here is the log from the commit of package obs-service-set_version for openSUSE:Factory checked in at 2014-03-07 07:05:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/obs-service-set_version (Old) and /work/SRC/openSUSE:Factory/.obs-service-set_version.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-set_version" Changes: -------- --- /work/SRC/openSUSE:Factory/obs-service-set_version/obs-service-set_version.changes 2014-02-12 07:04:06.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.obs-service-set_version.new/obs-service-set_version.changes 2014-03-07 07:05:48.000000000 +0100 @@ -1,0 +2,18 @@ +Thu Mar 6 11:03:52 UTC 2014 - adr...@suse.de + +- Update to version 0.4.0: + This is a rewrite in perl + +------------------------------------------------------------------- +Thu Mar 6 09:43:52 UTC 2014 - adr...@suse.de + +- Update to version 0.3.3: + + ERROR: git log --pretty=format:%s --no-merges 4b090f0cad..4fc9fcb0c2 failed; aborting! + +------------------------------------------------------------------- +Thu Mar 6 07:07:51 UTC 2014 - adr...@suse.de + +- Update to version 0.3.3: + + - drop two echo lines which can be used to run random commands + +------------------------------------------------------------------- Old: ---- obs-service-set_version-0.3.2.tar.gz New: ---- PKGBUILD obs-service-set_version-0.4.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ obs-service-set_version.spec ++++++ --- /var/tmp/diff_new_pack.grVlJS/_old 2014-03-07 07:05:49.000000000 +0100 +++ /var/tmp/diff_new_pack.grVlJS/_new 2014-03-07 07:05:49.000000000 +0100 @@ -19,7 +19,7 @@ %define service set_version Name: obs-service-%{service} -Version: 0.3.2 +Version: 0.4.0 Release: 0 Summary: An OBS source service: Update spec file version License: GPL-2.0+ ++++++ PKGBUILD ++++++ asd=yxc pkgrel=0 md5sums=('6adda9a1c5863c49612fc6c81a89c18a') ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.grVlJS/_old 2014-03-07 07:05:49.000000000 +0100 +++ /var/tmp/diff_new_pack.grVlJS/_new 2014-03-07 07:05:49.000000000 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">g...@github.com:openSUSE/obs-service-set_version.git</param> - <param name="changesrevision">3bb76e859d</param> + <param name="changesrevision">10d5bddcea</param> </service> </servicedata> \ No newline at end of file ++++++ obs-service-set_version-0.3.2.tar.gz -> obs-service-set_version-0.4.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-service-set_version-0.3.2/set_version new/obs-service-set_version-0.4.0/set_version --- old/obs-service-set_version-0.3.2/set_version 2014-02-11 17:29:02.000000000 +0100 +++ new/obs-service-set_version-0.4.0/set_version 2014-03-06 12:03:40.000000000 +0100 @@ -1,7 +1,7 @@ -#!/bin/bash +#!/usr/bin/perl -# 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 + +# A simple script to update version number in spec, dsc or arch linux files # # (C) 2010 by Adrian Schröter <adr...@suse.de> # @@ -12,108 +12,149 @@ # 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 () { - # Search for tarball filenames including a version - for ending in "tar.*" "tgz$" "tbz2$" "zip$" ; do - if [ -z "$MYVERSION" ]; then - MYVERSION=`ls -1t | sed -n "s,^$BASENAME.*[-_]\([0123456789].*\).${ending},\1,p" | head -n 1` - else - break; - fi - done - # Search for a version in the root-directory name of the content's file list: - for gz_ending in "tar.gz" "tgz" "tar.bz2" "tbz2" ; do - if [ -z "$MYVERSION" ]; then - MYVERSION=`tar tf $BASENAME*.${gz_ending} | sed -e 's,/.*,,' | uniq | sed -n "s,$BASENAME.*[-_]\(.*\),\1,p"` - else - break; - fi - done - # Take version number (and optional revision) from Debian changelog - if [ -z "$MYVERSION" ]; then - 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 + +my $version; +my $basename=""; +my $outdir; +my @files; + +use strict; +use Data::Dumper; +use File::Basename; + +sub usage() +{ + print<<END + + Open Build Service source service "set_version" + + Used to update build description files with a detected or given version number. + + Required: + + --output: mediaset, build only for the given mediaset, identify by name + + Options: + +END +; + exit; } -get_version_from_file -write_files +while (@ARGV) { + usage() if $ARGV[0] eq '--help'; + if ($ARGV[0] eq '--outdir') { + shift @ARGV; + $outdir = shift @ARGV; + next; + } elsif ($ARGV[0] eq '--version') { + shift @ARGV; + $version = shift @ARGV; + next; + } elsif ($ARGV[0] eq '--basename') { + # this is actually more a prefix + shift @ARGV; + $basename = shift @ARGV; + next; + } elsif ($ARGV[0] eq '--file') { + shift @ARGV; + push @files, shift @ARGV; + next; + } else { + die("Unknown argument $ARGV[0]!"); + } + last; +} -exit 0 +usage() unless $outdir; + +# get local file list +local *D; +opendir(D, ".") || return (); +my @srcfiles = grep {$_ ne '.' && $_ ne '..'} readdir(D); +closedir D; + +# Detect version based on file names +unless ($version) { + my @binsufs = qw{tar tar.gz tgz tar.bz2 tbz2 tar.xz zip}; + my $binsufsre = join('|', map {"\Q$_\E"} @binsufs); + for my $name (@srcfiles) { + if ($name =~ /^$basename.*[-_]([\d].*).(?:$binsufsre)$/) { + $version=$1; + last; + } + } +} + +# to replace tags in .spec and .dsc files +sub replace_tag { + my ($filename, $tag, $string) = @_; + local *R; + local *W; + # read, try first an modified version in outdir + if (!open(R, '<', "$outdir/$filename")) { + if (!open(R, '<', $filename)) { + die("unable to read $filename: $!\n"); + return undef; + } + } + if (!open(W, '>', "$outdir/.$filename")) { + die("unable to write .$filename: $!\n"); + return undef; + } + my $line; + while (defined($line = <R>)) { + $line =~ s/\n$//; + if ( $filename =~ /PKGBUILD$/ ) { + $line =~ s/^$tag=.*/$tag=$string/; + } else { + # keep inline macros for rpm + $line =~ s/^$tag:(\s*)[^%]*/$tag:$1$string/; + } + print W "$line\n"; + } + close R; + close W; + + rename("$outdir/.$filename", "$outdir/$filename") || die("rename failed"); +} + +# handle rpm spec and debian dsc files +@files = grep {$_ =~ /.(spec|dsc)$/} @srcfiles if @files <= 0; +for my $file (@files) { + replace_tag($file, 'Version', $version); + replace_tag($file, 'Release', "0"); +} + +use Digest::MD5; + +# handle arch linux PKGBUILD files +if ( -e "PKGBUILD" ) { + # find md5sum of tar ball + my $md5sum; + my $tarfile; + for my $file (@srcfiles) { + if ( $file =~ /^_service:.*[-_]$version.*/ ) { + $tarfile = $file; + last; + } + } + unless($tarfile) { + for my $file (@srcfiles) { + if ( $file =~ /.*[-_]$version.*/ ) { + $tarfile = $file; + last; + } + } + } + + open(FILE, $tarfile) || die "Unable to find source file to calculate md5sum\n"; + my $ctx = Digest::MD5->new; + $ctx->addfile(*FILE); + $md5sum = $ctx->hexdigest; + close(FILE); + + die ("Failed to calculate md5sum") unless $md5sum; + replace_tag("PKGBUILD", "pkgrel", "0"); + replace_tag("PKGBUILD", "md5sums", "('".$md5sum."')"); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/obs-service-set_version-0.3.2/set_version.old.do_not_use new/obs-service-set_version-0.4.0/set_version.old.do_not_use --- old/obs-service-set_version-0.3.2/set_version.old.do_not_use 1970-01-01 01:00:00.000000000 +0100 +++ new/obs-service-set_version-0.4.0/set_version.old.do_not_use 2014-03-06 12:03:40.000000000 +0100 @@ -0,0 +1,116 @@ +#!/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 <adr...@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 () { + # Search for tarball filenames including a version + for ending in "tar.*" "tgz$" "tbz2$" "zip$" ; do + if [ -z "$MYVERSION" ]; then + MYVERSION=`ls -1t | sed -n "s,^$BASENAME.*[-_]\([0123456789].*\).${ending},\1,p" | head -n 1` + else + break; + fi + done + # Search for a version in the root-directory name of the content's file list: + for gz_ending in "tar.gz" "tgz" "tar.bz2" "tbz2" ; do + if [ -z "$MYVERSION" ]; then + MYVERSION=`tar tf $BASENAME*.${gz_ending} | sed -e 's,/.*,,' | uniq | sed -n "s,$BASENAME.*[-_]\(.*\),\1,p"` + else + break; + fi + done + # Take version number (and optional revision) from Debian changelog + if [ -z "$MYVERSION" ]; then + 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"` +} + +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 + 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 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org