Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package obs-service-source_validator for
openSUSE:Factory checked in at 2026-10-13 17:44:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/obs-service-source_validator (Old)
and /work/SRC/openSUSE:Factory/.obs-service-source_validator.new.3698736
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "obs-service-source_validator"
Tue Oct 13 17:44:22 2026 rev:95 rq:1384455 version:0.48
Changes:
--------
---
/work/SRC/openSUSE:Factory/obs-service-source_validator/obs-service-source_validator.changes
2026-09-04 12:42:18.646589380 +0200
+++
/work/SRC/openSUSE:Factory/.obs-service-source_validator.new.3698736/obs-service-source_validator.changes
2026-10-13 17:44:44.398793193 +0200
@@ -1,0 +2,10 @@
+Mon Oct 12 21:18:01 UTC 2026 - Dirk Müller <[email protected]>
+
+- Update to version 0.48:
+ * Fix dirassets check
+ * Improve help output
+ * add help output for moveassets and dirassets
+ * Update 20-files-present-and-referenced
+ * Fix directory assets handling
+
+-------------------------------------------------------------------
Old:
----
obs-service-source_validator-0.47+1.tar.xz
New:
----
obs-service-source_validator-0.48.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-service-source_validator.spec ++++++
--- /var/tmp/diff_new_pack.3ExxD1/_old 2026-10-13 17:44:45.413835732 +0200
+++ /var/tmp/diff_new_pack.3ExxD1/_new 2026-10-13 17:44:45.416835857 +0200
@@ -22,7 +22,7 @@
%define build_pkg_name obs-build
%endif
Name: obs-service-source_validator
-Version: 0.47+1
+Version: 0.48
Release: 0
Summary: An OBS source service: running all the osc source-validator
checks
License: GPL-2.0-or-later
++++++ PKGBUILD ++++++
--- /var/tmp/diff_new_pack.3ExxD1/_old 2026-10-13 17:44:45.448837199 +0200
+++ /var/tmp/diff_new_pack.3ExxD1/_new 2026-10-13 17:44:45.451837324 +0200
@@ -1,5 +1,5 @@
pkgname=obs-service-source_validator
-pkgver=0.47+1
+pkgver=0.48
pkgrel=0
pkgdesc='An OBS source service: running all the osc source-validator checks'
arch=('any')
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.3ExxD1/_old 2026-10-13 17:44:45.497839252 +0200
+++ /var/tmp/diff_new_pack.3ExxD1/_new 2026-10-13 17:44:45.501839420 +0200
@@ -3,6 +3,6 @@
<param
name="url">git://github.com/openSUSE/obs-service-source_validator.git</param>
<param
name="changesrevision">c68d7a28c4ecd88b179359b030098503e75adc0b</param></service><service
name="tar_scm">
<param
name="url">https://github.com/openSUSE/obs-service-source_validator.git</param>
- <param
name="changesrevision">1814add32ba425d406c61f82346eaf045b796faf</param></service></servicedata>
+ <param
name="changesrevision">cbb73bbad40c2387aced6374edaf8f00d05a868d</param></service></servicedata>
(No newline at EOF)
++++++ debian.dsc ++++++
--- /var/tmp/diff_new_pack.3ExxD1/_old 2026-10-13 17:44:45.526840467 +0200
+++ /var/tmp/diff_new_pack.3ExxD1/_new 2026-10-13 17:44:45.529840593 +0200
@@ -1,6 +1,6 @@
Format: 1.0
Source: obs-service-source-validator
-Version: 0.47+1-0
+Version: 0.48-0
Binary: obs-service-source-validator
Maintainer: Hib Eris <[email protected]>
Architecture: all
++++++ obs-service-source_validator-0.47+1.tar.xz ->
obs-service-source_validator-0.48.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-source_validator-0.47+1/20-files-present-and-referenced
new/obs-service-source_validator-0.48/20-files-present-and-referenced
--- old/obs-service-source_validator-0.47+1/20-files-present-and-referenced
2026-09-02 22:37:51.000000000 +0200
+++ new/obs-service-source_validator-0.48/20-files-present-and-referenced
2026-10-12 21:56:14.000000000 +0200
@@ -4,7 +4,7 @@
test "$1" = "--batchmode" && { BATCHMODE=true ; shift ; }
DIR_TO_CHECK="$1"
DESTINATIONDIR="$2"
-OSC_MODE=""
+OSC_TRACKING_MODE=""
test -n "$DIR_TO_CHECK" || DIR_TO_CHECK=$(pwd)
BASE_DIR=$(dirname $0)
BASE_DIR=${BASE_DIR:-.}
@@ -14,9 +14,10 @@
test -z "$DESTINATIONDIR" && test -d "$DIR_TO_CHECK/.osc" && {
if [ -d "$DIR_TO_CHECK/.git" ]; then
+ # osc has used git to clone the package source.
DESTINATIONDIR="$DIR_TO_CHECK"
else
- OSCLIBVER="$(<.osc/_osclib_version)"
+ OSCLIBVER="$(<$DIR_TO_CHECK/.osc/_osclib_version)"
case "$OSCLIBVER" in
1.0)
DESTINATIONDIR="$DIR_TO_CHECK/.osc"
@@ -30,8 +31,8 @@
echo "osclib version $OSCLIBVER not yet supported by
source_validator" && exit 2
;;
esac
+ OSC_TRACKING_MODE="true"
fi
- OSC_MODE="true"
}
RETURN=0
@@ -177,7 +178,7 @@
{
local file=${1##*/}
local silent=${2}
- if test "$OSC_MODE" = "true" ; then
+ if test "$OSC_TRACKING_MODE" = "true" ; then
if test -f "$DESTINATIONDIR/$file" && ! grep -qsFx "$file"
"$DOTOSCDIR/_to_be_deleted"; then
return 0
fi
@@ -212,6 +213,9 @@
# assume it will generated on builtime based of the archive
return 0
fi
+ if test -d "$DIR_TO_CHECK/${file/\.tar*/}" && grep -q -F -x
"${file/\.tar*/}" $TMPDIR/dirassets; then
+ return 0
+ fi
if obscpio_file_list | grep -qFx "$file"; then
return 0
fi
@@ -223,6 +227,8 @@
# normal source files
if ! test -f "$DIR_TO_CHECK/_service"; then
for HASTOBETHERE in $(<$TMPDIR/sources); do
+ # moveassets are handled below
+ grep -q -E "/$HASTOBETHERE$" $TMPDIR/moveassets && continue
check_tracked "$HASTOBETHERE" || RETURN=2
done
fi
@@ -230,11 +236,12 @@
# current policy is that a remote asset needs to be committed as part of the
git.
# So either a directory or an archive.
for m in $(<$TMPDIR/moveassets); do
- check_tracked "${m##*/}" silent && continue
- check_tracked "${m%/*}" silent && continue
- echo "ERROR: Current policy is to submit some part of a remote asset."
- echo " Either archive ${m##*/} or directory ${m%/*}."
- RETURN=2
+ # check tracking of resulting tarball
+ check_tracked "${m##*/}" silent && continue
+ # check for tracking of source directory
+ check_tracked "${m%/*}" silent && continue
+ echo "ERROR: ${m##*/} mentioned in spec file (or the directory ${m%/*}/)
is not tracked."
+ RETURN=2
done
for f in $(<$TMPDIR/sources); do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/obs-service-source_validator-0.47+1/Makefile
new/obs-service-source_validator-0.48/Makefile
--- old/obs-service-source_validator-0.47+1/Makefile 2026-09-02
22:37:51.000000000 +0200
+++ new/obs-service-source_validator-0.48/Makefile 2026-10-12
21:56:14.000000000 +0200
@@ -41,6 +41,7 @@
./20-files-present-and-referenced t/data/x2d/
./t/test_gitignore.sh
./t/test_remoteasset.sh
+ ./t/test_localdirectory.sh
./t/test_files_referenced.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-source_validator-0.47+1/helpers/spec_query
new/obs-service-source_validator-0.48/helpers/spec_query
--- old/obs-service-source_validator-0.47+1/helpers/spec_query 2026-09-02
22:37:51.000000000 +0200
+++ new/obs-service-source_validator-0.48/helpers/spec_query 2026-10-12
21:56:14.000000000 +0200
@@ -140,8 +140,7 @@
sub print_moveassets {
my ($descr) = @_;
- print "@{$descr->{'moveassets'} || []} ";
- print "\n";
+ print "$_\n" for @{$descr->{'moveassets'} || []};
}
sub print_subpacks {
@@ -152,8 +151,7 @@
sub print_dirassets {
my ($descr) = @_;
- print "@{$descr->{'dirassets'}} " if @{$descr->{'dirassets'}};
- print "\n";
+ print "$_\n" for @{$descr->{'dirassets'} || []};
}
sub print_sources {
@@ -182,6 +180,8 @@
--disambiguate-sources: disambiguate non-unique source/patch tags (only
needed for a "pathological" specfile)
--print-subpacks: print names of the main package and all subpackages
+ --print-dirassets: print names of all assets that are generated from
a directory
+ --print-moveassets: print names of all assets that are renamed (moved)
bofore build time
--print-sources: print names of all sources, patches, and icons
EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-source_validator-0.47+1/t/test_localdirectory.sh
new/obs-service-source_validator-0.48/t/test_localdirectory.sh
--- old/obs-service-source_validator-0.47+1/t/test_localdirectory.sh
1970-01-01 01:00:00.000000000 +0100
+++ new/obs-service-source_validator-0.48/t/test_localdirectory.sh
2026-10-12 21:56:14.000000000 +0200
@@ -0,0 +1,57 @@
+#!/bin/bash
+# Test for #!CreateArchive support in 20-files-present-and-referenced
+
+set -e
+
+# Path to the script to test
+VALIDATOR="./20-files-present-and-referenced"
+TEST_DATA_DIR="t/data/localdirectory_test"
+
+# Create test data directory if it doesn't exist
+rm -rf "$TEST_DATA_DIR"
+mkdir -p "$TEST_DATA_DIR"
+
+# Create a dummy spec file
+cat > "$TEST_DATA_DIR/test.spec" <<EOF
+Name: test
+Version: 1.0
+Release: 0
+Summary: test
+License: MIT
+#!CreateArchive
+Source1: node_modules.tar.xz
+#!CreateArchive: second_dir
+Source2: second_dir-0.42.tar.gz
+%description
+test
+%prep
+%setup -q
+%build
+%install
+%files
+EOF
+
+# A git repository may provide a directory. This can be tar'd up at build time
+# without that need to re-do the tar on each commit.
+mkdir "$TEST_DATA_DIR/node_modules"
+touch "$TEST_DATA_DIR/node_modules/some_file"
+mkdir "$TEST_DATA_DIR/second_dir"
+touch "$TEST_DATA_DIR/second_dir/another_file"
+
+echo "Running validator on $TEST_DATA_DIR..."
+./20-files-present-and-referenced --batchmode "$TEST_DATA_DIR" || exit 1
+
+rm -rf "$TEST_DATA_DIR/second_dir"
+
+TOUT=$(mktemp)
+set +e
+./20-files-present-and-referenced --batchmode "$TEST_DATA_DIR" 2>/dev/null >
$TOUT && exit 1
+set -e
+
+grep -q "ERROR: second_dir-0.42.tar.gz mentioned in spec file (or the
directory second_dir/) is not tracked" $TOUT || { echo "FAIL"; cat $TOUT; exit
1; }
+
+rm -f $TOUT
+
+exit 0
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/obs-service-source_validator-0.47+1/t/test_remoteasset.sh
new/obs-service-source_validator-0.48/t/test_remoteasset.sh
--- old/obs-service-source_validator-0.47+1/t/test_remoteasset.sh
2026-09-02 22:37:51.000000000 +0200
+++ new/obs-service-source_validator-0.48/t/test_remoteasset.sh 2026-10-12
21:56:14.000000000 +0200
@@ -42,7 +42,9 @@
./20-files-present-and-referenced --batchmode "$TEST_DATA_DIR" || exit 1
rm "$TEST_DATA_DIR/llama.cpp-main.tar.xz"
-./20-files-present-and-referenced --batchmode "$TEST_DATA_DIR" 2>/dev/null |
grep -q "ERROR: Current policy is to submit some part of a remote asset" ||
exit 1
+set +e
+./20-files-present-and-referenced --batchmode "$TEST_DATA_DIR" 2>/dev/null |
grep -q "ERROR: llama.cpp-main.tar.xz mentioned in spec file" || exit 1
+set -e
exit 0