Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package jurand for openSUSE:Factory checked 
in at 2023-12-15 21:47:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jurand (Old)
 and      /work/SRC/openSUSE:Factory/.jurand.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "jurand"

Fri Dec 15 21:47:48 2023 rev:2 rq:1133084 version:1.3.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/jurand/jurand.changes    2023-11-20 
21:19:26.534566485 +0100
+++ /work/SRC/openSUSE:Factory/.jurand.new.25432/jurand.changes 2023-12-15 
21:48:00.711756809 +0100
@@ -1,0 +2,6 @@
+Thu Dec 14 08:51:29 UTC 2023 - Wang Jun <badbo...@gmail.com>
+
+- Update to version 1.3.2
+  * see https://github.com/fedora-java/jurand/compare/1.3.1...1.3.2 
+
+-------------------------------------------------------------------

Old:
----
  jurand-1.3.1.tar.gz

New:
----
  jurand-1.3.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ jurand.spec ++++++
--- /var/tmp/diff_new_pack.OOMLol/_old  2023-12-15 21:48:01.203774793 +0100
+++ /var/tmp/diff_new_pack.OOMLol/_new  2023-12-15 21:48:01.207774940 +0100
@@ -22,7 +22,7 @@
 %define with_gcc 11
 %endif
 Name:           jurand
-Version:        1.3.1
+Version:        1.3.2
 Release:        0
 Summary:        A tool for manipulating Java symbols
 License:        Apache-2.0
@@ -30,7 +30,7 @@
 URL:            https://github.com/fedora-java/jurand
 Source0:        
https://github.com/fedora-java/jurand/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
 Patch0:         jurand-cxx20.patch
-BuildRequires:  asciidoc
+BuildRequires:  %{rb_default_ruby_suffix}-rubygem-asciidoctor
 BuildRequires:  diffutils
 BuildRequires:  make
 BuildRequires:  xmlto
@@ -76,5 +76,5 @@
 %dir %{_rpmconfigdir}
 %dir %{_rpmmacrodir}
 %license LICENSE NOTICE
-%doc README.md
+%doc README.adoc
 

++++++ jurand-1.3.1.tar.gz -> jurand-1.3.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/.github/workflows/ci.yaml 
new/jurand-1.3.2/.github/workflows/ci.yaml
--- old/jurand-1.3.1/.github/workflows/ci.yaml  2023-03-23 13:12:08.000000000 
+0100
+++ new/jurand-1.3.2/.github/workflows/ci.yaml  2023-11-21 16:00:46.000000000 
+0100
@@ -1,23 +1,33 @@
 name: Continuous Integration
 on:
   push:
-    branches: [ main ]
+    branches: [main]
   pull_request:
-    branches: [ main ]
+    branches: [main]
   workflow_dispatch:
 jobs:
   build:
     runs-on: ubuntu-latest
-    container: registry.access.redhat.com/ubi8:latest
+    container: quay.io/centos/centos:stream9
     env:
       CXX: g++
-      CXXFLAGS: -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_DEBUG -pthread # 
-fsanitize=address,undefined
-      LDFLAGS: -pthread # -fsanitize=address,undefined
+      CXXFLAGS: -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_DEBUG -pthread 
-fsanitize=address,undefined
+      LDFLAGS: -pthread -fsanitize=address,undefined
     steps:
       - name: Checkout git repository
         uses: actions/checkout@v3
       - name: Install dependencies
-        run: dnf -y install diffutils gcc-toolset-12-gcc-c++ make # libasan 
libubsan
+        run: |
+          echo "[buildroot]
+          name=CentOS Stream $releasever - Buildroot
+          
baseurl=https://kojihub.stream.centos.org/kojifiles/repos/c9s-build/latest/x86_64
+          enabled=1
+          gpgcheck=0
+          repo_gpgcheck=0" >> /etc/yum.repos.d/centos.repo
+
+          dnf -y install diffutils gcc-toolset-12-gcc-c++ 
gcc-toolset-12-libasan-devel gcc-toolset-12-libubsan-devel make 
rubygem-asciidoctor
+      - name: Build manpages
+        run: make -j8 manpages
       - name: Compile
         run: |
           source /opt/rh/gcc-toolset-12/enable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/Makefile new/jurand-1.3.2/Makefile
--- old/jurand-1.3.1/Makefile   2023-03-23 13:12:08.000000000 +0100
+++ new/jurand-1.3.2/Makefile   2023-11-21 16:00:46.000000000 +0100
@@ -1,28 +1,22 @@
 include rules.mk
 
-.PHONY: force all clean test-compile test manpages
+.PHONY: force all clean test-compile test coverage manpages
+.DEFAULT_GOAL = all
 
-all: $(call Executable_file,jurand)
+CXXFLAGS += -g -std=c++2a -Isrc -Wall -Wextra -Wpedantic
 
-clean:
-       @rm -rfv target
+all: $(call Executable_file,jurand)
 
 test-compile: $(call Executable_file,jurand) $(call 
Executable_file,jurand_test)
 
 test: test.sh test-compile
        @./$<
 
-CXXFLAGS += -g -std=c++2a -Isrc -Wall -Wextra -Wpedantic
-
-$(eval $(call Variable_rule,target/compile_flags,$(CXX) $(CXXFLAGS)))
-$(eval $(call Variable_rule,target/link_flags,$(CXX) $(LDFLAGS) $(LDLIBS)))
-
-$(eval $(call Executable_file_rule,jurand,jurand.cpp))
-$(eval $(call Executable_file_rule,jurand_test,jurand_test.cpp))
-
-$(eval $(call Manpage_rule,java_remove_annotations))
-$(eval $(call Manpage_rule,java_remove_imports))
+$(call Executable_file,jurand): $(call Object_file,jurand.cpp)
+$(call Executable_file,jurand_test): $(call Object_file,jurand_test.cpp)
 
-manpages: $(manpages)
+manpages: \
+       $(call Manpage_7,java_remove_annotations)\
+       $(call Manpage_7,java_remove_imports)\
 
 -include target/dependencies/*.mk
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/README.adoc new/jurand-1.3.2/README.adoc
--- old/jurand-1.3.1/README.adoc        1970-01-01 01:00:00.000000000 +0100
+++ new/jurand-1.3.2/README.adoc        2023-11-21 16:00:46.000000000 +0100
@@ -0,0 +1,54 @@
+= Jurand -- Java removal of annotations
+
+A tool for manipulating symbols present in `.java` source files.
+
+The tool can be used for patching `.java` sources in cases where using `sed` 
is insufficient due to Java language syntax. The tool follows Java language 
rules rather than applying simple regular expressions on the source code.
+
+Currently the tool is able to remove `import` statements and annotations.
+
+== Usage
+----
+jurand [optional flags] <matcher>... [file path]...
+----
+
+Matcher::
+[horizontal]
+`-n <name>`::: Simple (not fully-qualified) class name.
+`-p <pattern>`::: Regex pattern to match names used in code.
+[horizontal!]
+
+Optional flags::
+[horizontal]
+`-a`::: Also remove annotations used in code.
+`-i`, `--in-place`::: Replace the contents of files.
+`-s`, `--strict`:::
+Fail if any of the specified options was redundant and no changes associated +
+with the option were made. This option is only applicable together with `-i`.
+[horizontal!]
+
+== Specification
+The tool removes import statements of specified matching class names and if 
`-a` is specified then also removes annotations. Arguments can be specified in 
arbitrary order.
+
+File path arguments are handled the following way:
+
+* Symlinks are ignored
+* Regular files are handled regardless of the file name
+* Directories are traversed recursively and all `.java` files are handled
+
+If no file path is provided then the tool reads from the standard input.
+
+Class name matching can be done in two ways: `-n` to match simple class names 
or `-p` to match the provided regex pattern against fully qualified names as 
present in the sources. These options can be specified multiple times.
+
+The specific implementation of the regex search engine is subject to change. 
Therefore only simple patterns should be used to guarantee that they will work 
with future versions.
+
+The tool writes the results to standard output unless `-i` option is specified 
in which case it will replace the original files' content.
+
+=== Strict mode
+Additionally, when doing in-place modifications, it is possible to also 
specify `-s` or `--strict` which will cause the tool invocation to fail in the 
following cases:
+
+* No changes were made to any of the user-provided file or directory subtree
+* One of the matchers did not match anything
+* `-a` was specified but no annotation was removed
+
+== Note
+Unicode literals (`\uXXXX`) are currently not recognized.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/README.md new/jurand-1.3.2/README.md
--- old/jurand-1.3.1/README.md  2023-03-23 13:12:08.000000000 +0100
+++ new/jurand-1.3.2/README.md  1970-01-01 01:00:00.000000000 +0100
@@ -1,62 +0,0 @@
-# Jurand -- Java removal of annotations
-
-A tool for manipulating symbols present in `.java` source files.
-
-The tool can be used for patching `.java` sources in cases where using `sed` is
-insufficient due to Java language syntax. The tool follows Java language rules
-rather than applying simple regular expressions on the source code.
-
-Currently the tool is able to remove `import` statements and annotations.
-
-## Usage
-
-```
-jurand [optional flags] <matcher>... [file path]...
-    Matcher:
-        -n <name>
-                simple (not fully-qualified) class name
-        -p <pattern>
-                regex pattern to match names used in code
-    
-    Optional flags:
-        -a      also remove annotations used in code
-        -i, --in-place
-                replace the contents of files
-        -s, --strict
-                (wih -i only) fail if any of the specified options was 
redundant
-                and no changes associated with the option were made
-```
-
-The tool removes import statements of specified matching class names and if
-**`-a`** is specified then also removes annotations. Arguments can be specified
-in arbitrary order.
-
-File path arguments are handled the following way:
-
-* Symlinks are ignored
-* Regular files are handled regardless of the file name
-* Directories are traversed recursively and all `.java` files are handled
-
-If no file path is provided then the tool reads from the standard input.
-
-Class name matching can be done two ways: **`-n`** to match simple class names
-or **`-p`** to match the fully qualified name (if at all present in that form 
in
-the sources) against the provided regex pattern. These options can be specified
-multiple times.
-
-The specific implementation of the regex search engine is subject to change.
-Therefore only simple patterns should be used to guarantee that they will work
-with future versions.
-
-The tool writes the results to standard output unless **`-i`** option is
-specified in which case it will replace the original files' content.
-
-Additionally, when doing in-place modifications, it is possible to also specify
-**`-s`** or **`--strict`** which will cause the tool invocation to fail in the
-following cases:
-
-* No changes were made to any of the user-provided file or directory subtree
-* One of the matchers did not match anything
-* **`-a`** was specified but no annotation was removed
-
-Unicode literals (`\uXXXX`) are currently not recognized.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/manpages/java_remove_annotations.adoc 
new/jurand-1.3.2/manpages/java_remove_annotations.adoc
--- old/jurand-1.3.1/manpages/java_remove_annotations.adoc      1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/manpages/java_remove_annotations.adoc      2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,76 @@
+= java_remove_annotations(7)
+:doctype:       manpage
+:man source:    JURAND
+:man manual:    Jurand
+
+== NAME
+java_remove_annotations - remove imports and annotations from Java source files
+
+== SYNOPSIS
+*%java_remove_annotations* [optional flags] <matcher>... [file path]...
+
+== DESCRIPTION
+This macro removes import statements as well as usage of annotations from Java 
source files. The does the same as *java_remove_imports* and on top of that 
finds all uses of annotations and matches the content between the '@' symbol 
and either ending with whitespace or with an opening parethesis '(' (the 
annotation arguments).
+
+In case of match, the script also removes the block of paretheses that follows 
the matched annotation, if it is present.
+
+File path arguments are handled the following way:
+
+* Symlinks are ignored.
+* Regular files are handled regardless of the file name.
+* Directories are traversed recursively and all `.java` files are handled.
+
+Arguments can be specified in arbitrary order.
+
+Matcher is one of:
+
+*-n <name>*::
+Simple class name to be matched against the simple names of imported symbols. 
Names are matched for exact equality. Can be specified multiple times.
+
+*-p <pattern>*::
+Regex patterns to be matched against imported symbols. Each imported symbol 
found in the code is matched against each pattern. Can be specified multiple 
times.
+
+Optional flags:
+
+*-s, --strict*::
+Fail if any of the user provided arguments were redundant.
+
+== EXAMPLES
+Example of usage in a *.spec* file:
+
+*%java_remove_annotations src -n Nullable*
+
+Examples of patterns:
+
+- Annotations present in Java source file:
+
+    1) @SuppressWarnings
+    2) @SuppressFBWarnings(value = {"EI_EXPOSE_REP", "EI_EXPOSE_REP2"})
+    3) @org.junit.Test
+    4) @org.junit.jupiter.api.Test
+
+- Names used to match:
+
+    Name 'SuppressWarnings' matches 1)
+    Name 'Test' matches 3), 4).
+
+    Name 'junit' does not match anything.
+
+- Patterns used to match:
+
+    Pattern 'SuppressWarnings' matches 1).
+    Pattern 'Suppress' matches 1), 2).
+    Pattern 'org[.]junit[.]Test' matches 3).
+    Pattern 'junit' matches 3), 4).
+
+    Pattern '@SuppressWarnings' does not match anything.
+    Pattern 'EI_EXPOSE_REP' does not match anything.
+
+== REPORTING BUGS
+Bugs should be reported through the issue tracker at GitHub: 
https://github.com/fedora-java/jurand/issues.
+
+== AUTHOR
+Written by Marián Konček.
+
+== SEE ALSO
+*java_remove_imports*(7).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/manpages/java_remove_annotations.txt 
new/jurand-1.3.2/manpages/java_remove_annotations.txt
--- old/jurand-1.3.1/manpages/java_remove_annotations.txt       2023-03-23 
13:12:08.000000000 +0100
+++ new/jurand-1.3.2/manpages/java_remove_annotations.txt       1970-01-01 
01:00:00.000000000 +0100
@@ -1,92 +0,0 @@
-java_remove_annotations(7)
-==========================
-:doctype:       manpage
-:man source:    JURAND
-:man manual:    Jurand
-
-NAME
-----
-java_remove_annotations - remove imports and annotations from Java source files
-
-SYNOPSIS
---------
-*%java_remove_annotations* [optional flags] <matcher>... [file path]...
-
-DESCRIPTION
------------
-This macro removes import statements as well as usage of annotations from Java
-source files. The does the same as *java_remove_imports* and on top of that
-finds all uses of annotations and matches the content between the '@' symbol 
and
-either ending with whitespace or with an opening parethesis '('.
-
-In case of match, the script also removes the block of paretheses that follows
-the matched annotation, if it is present.
-
-File path arguments are handled the following way:
-
-* Symlinks are ignored
-* Regular files are handled regardless of the file name
-* Directories are traversed recursively and all `.java` files are handled
-
-Arguments can be specified in arbitrary order.
-
-Matcher is one of:
-
-*-n <name>*::
-Simple class name to be matched against the simple names of imported symbols.
-Names are matched for exact equality. Can be specified multiple times.
-
-*-p <pattern>*::
-Regex patterns to be matched against imported symbols. Each imported symbol
-found in the code is matched against each pattern. Can be specified multiple
-times.
-
-Optional flags:
-
-*-s, --strict*::
-Fail if any of the user provided arguments were redundant.
-
-EXAMPLES
---------
-Example of usage:
-
-*%java_remove_annotations src -n Nullable*
-
-Examples of patterns:
-
-- Annotations present in Java source file:
-
-    1) @SuppressWarnings
-    2) @SuppressFBWarnings(value = {"EI_EXPOSE_REP", "EI_EXPOSE_REP2"})
-    3) @org.junit.Test
-    4) @org.junit.jupiter.api.Test
-
-- Names used to match:
-
-    Name 'SuppressWarnings' matches 1)
-    Name 'Test' matches 3), 4).
-
-    Name 'junit' does not match anything.
-
-- Patterns used to match:
-
-    Pattern 'SuppressWarnings' matches 1).
-    Pattern 'Suppress' matches 1), 2).
-    Pattern 'org[.]junit[.]Test' matches 3).
-    Pattern 'junit' matches 3), 4).
-
-    Pattern '@SuppressWarnings' does not match anything.
-    Pattern 'EI_EXPOSE_REP' does not match anything.
-
-AUTHOR
-------
-Written by Marián Konček.
-
-REPORTING BUGS
---------------
-Bugs should be reported through the issue tracker at
-GitHub: https://github.com/fedora-java/jurand/issues.
-
-SEE ALSO
---------
-*java_remove_imports*(7).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/manpages/java_remove_imports.adoc 
new/jurand-1.3.2/manpages/java_remove_imports.adoc
--- old/jurand-1.3.1/manpages/java_remove_imports.adoc  1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/manpages/java_remove_imports.adoc  2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,77 @@
+= java_remove_imports(7)
+:doctype:       manpage
+:man source:    JURAND
+:man manual:    Jurand
+
+== NAME
+java_remove_imports - remove import statements from Java source files
+
+== SYNOPSIS
+*%java_remove_imports* [optional flags] <matcher>... [file path]...
+
+== DESCRIPTION
+This macro removes import statements from Java source files. The script 
matches all non-whitespace content following the 'import [static]' statement 
against all patterns provided via the *-p* flag and all simple class names 
against names provided by the *-n* flag.
+
+File path arguments are handled the following way:
+
+* Symlinks are ignored.
+* Regular files are handled regardless of the file name.
+* Directories are traversed recursively and all `.java` files are handled.
+
+Arguments can be specified in arbitrary order.
+
+Matcher is one of:
+
+*-n <name>*::
+Simple class name to be matched against the simple names of imported symbols. 
Names are matched for exact equality. Can be specified multiple times.
+
+*-p <pattern>*::
+Regex patterns to be matched against imported symbols. Each imported symbol 
found in the code is matched against each pattern. Can be specified multiple 
times.
+
+Optional flags:
+
+*-s, --strict*::
+Fail if any of the user provided arguments were redundant.
+
+== EXAMPLES
+Example of usage in a *.spec* file:
+
+*%java_remove_imports src -n Nullable*
+
+Examples of patterns:
+
+- Import statements present in Java source file:
+
+    1) import java.lang.Runnable;
+    2) import java.util.List;
+    3) import static java.util.*;
+    4) import static java.lang.String.valueOf;
+    5) import com.google.common.util.concurrent.Service;
+
+- Names used to match:
+
+    Name 'Runnable' matches 1)
+    Name 'String' matches 4)
+
+    Name 'util' does not match anything.
+    Name '*' does not match anything.
+    Name 'valueOf' does not match anything.
+
+- Patterns used to match:
+
+    Pattern 'Runnable' matches 1).
+    Pattern '[*]' matches 3).
+    Pattern 'java[.]util' matches 2), 3).
+    Pattern 'util' matches 2), 3), 5).
+    Patterns 'java', 'java.*' match 1) - 4).
+    
+    Pattern 'static' does not match anything.
+
+== REPORTING BUGS
+Bugs should be reported through the issue tracker at GitHub: 
https://github.com/fedora-java/jurand/issues.
+
+== AUTHOR
+Written by Marián Konček.
+
+== SEE ALSO
+*java_remove_annotations*(7).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/manpages/java_remove_imports.txt 
new/jurand-1.3.2/manpages/java_remove_imports.txt
--- old/jurand-1.3.1/manpages/java_remove_imports.txt   2023-03-23 
13:12:08.000000000 +0100
+++ new/jurand-1.3.2/manpages/java_remove_imports.txt   1970-01-01 
01:00:00.000000000 +0100
@@ -1,92 +0,0 @@
-java_remove_imports(7)
-======================
-:doctype:       manpage
-:man source:    JURAND
-:man manual:    Jurand
-
-NAME
-----
-java_remove_imports - remove import statements from Java source files
-
-SYNOPSIS
---------
-*%java_remove_imports* [optional flags] <matcher>... [file path]...
-
-DESCRIPTION
------------
-This macro removes import statements from Java source files. The script matches
-all non-whitespace content following the 'import [static]' statement against 
all
-patterns provided via the *-p* flag and all simple class names against names
-provided by the *-n* flag.
-
-File path arguments are handled the following way:
-
-* Symlinks are ignored
-* Regular files are handled regardless of the file name
-* Directories are traversed recursively and all `.java` files are handled
-
-Arguments can be specified in arbitrary order.
-
-Matcher is one of:
-
-*-n <name>*::
-Simple class name to be matched against the simple names of imported symbols.
-Names are matched for exact equality. Can be specified multiple times.
-
-*-p <pattern>*::
-Regex patterns to be matched against imported symbols. Each imported symbol
-found in the code is matched against each pattern. Can be specified multiple
-times.
-
-Optional flags:
-
-*-s, --strict*::
-Fail if any of the user provided arguments were redundant.
-
-EXAMPLES
---------
-Example of usage:
-
-*%java_remove_imports src -n Nullable*
-
-Examples of patterns:
-
-- Import statements present in Java source file:
-
-    1) import java.lang.Runnable;
-    2) import java.util.List;
-    3) import static java.util.*;
-    4) import static java.lang.String.valueOf;
-    5) import com.google.common.util.concurrent.Service;
-
-- Names used to match:
-
-    Name 'Runnable' matches 1)
-    Name 'String' matches 4)
-
-    Name 'util' does not match anything.
-    Name '*' does not match anything.
-    Name 'valueOf' does not match anything.
-
-- Patterns used to match:
-
-    Pattern 'Runnable' matches 1).
-    Pattern '[*]' matches 3).
-    Pattern 'java[.]util' matches 2), 3).
-    Pattern 'util' matches 2), 3), 5).
-    Patterns 'java', 'java.*' match 1) - 4).
-    
-    Pattern 'static' does not match anything.
-
-AUTHOR
-------
-Written by Marián Konček.
-
-REPORTING BUGS
---------------
-Bugs should be reported through the issue tracker at
-GitHub: https://github.com/fedora-java/jurand/issues.
-
-SEE ALSO
---------
-*java_remove_annotations*(7).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/rules.mk new/jurand-1.3.2/rules.mk
--- old/jurand-1.3.1/rules.mk   2023-03-23 13:12:08.000000000 +0100
+++ new/jurand-1.3.2/rules.mk   2023-11-21 16:00:46.000000000 +0100
@@ -1,47 +1,36 @@
-define Dependency_file
-$(addprefix target/dependencies/,$(addsuffix .mk,$(subst /,.,$(basename 
$(1)))))
-endef
+MAKEFLAGS += -r
 
-define Object_file
-$(addprefix target/object_files/,$(addsuffix .o,$(subst /,.,$(basename $(1)))))
-endef
+Dependency_file = $(addprefix target/dependencies/,$(addsuffix .mk,$(subst 
/,.,$(basename $(1)))))
+Object_file = $(addprefix target/object_files/,$(addsuffix .o,$(subst 
/,.,$(basename $(1)))))
+Executable_file = $(addprefix target/bin/,$(addsuffix ,$(subst /,.,$(basename 
$(1)))))
+Manpage_7 = $(addprefix target/manpages/,$(addsuffix .7,$(1)))
 
-define Executable_file
-$(addprefix target/bin/,$(addsuffix ,$(subst /,.,$(basename $(1)))))
-endef
+clean:
+       @rm -rfv target
+
+target target/object_files target/dependencies target/bin target/coverage 
target/manpages:
+       @mkdir -p $@
 
 define Variable_rule # target_file, string_value
-$(1): force
-       @mkdir -p $$(dir $$@)
+$(1): force | target
        @echo '$(2)' | cmp -s - $$@ || echo '$(2)' > $$@
 endef
 
-define Manpage_rule # source_file
-target/manpages/$(1).xml: manpages/$(1).txt
-       @mkdir -p $$(dir $$@)
-       asciidoc -b docbook -d manpage -o $$@ $$<
-
-target/manpages/$(1).7: target/manpages/$(1).xml
-       xmlto man --skip-validation -o target/manpages target/manpages/$(1).xml
-manpages += target/manpages/$(1).7
-endef
+$(eval $(call Variable_rule,target/compile_flags,$$(CXX) $$(CXXFLAGS)))
+$(eval $(call Variable_rule,target/link_flags,$$(CXX) $$(LDFLAGS) $$(LDLIBS)))
 
-define Dependency_file_rule # source_file
-$(call Dependency_file,$(1)): src/$(1)
-       @mkdir -p $$(dir $$@)
-       $$(CXX) $$(CXXFLAGS) -MM -MG -MMD -MP -MF $$@ -MT $(call 
Object_file,$(1)) -o /dev/null $$<
-endef
-
-define Object_file_rule # source_file
-$(call Dependency_file_rule,$(1))
-$(call Object_file,$(1)): $(call Dependency_file,$(1)) target/compile_flags
-       @mkdir -p $$(dir $$@)
-       $$(CXX) $$(CXXFLAGS) -MMD -MP -MF $$< -MT $$@ -c -o $$@ $(addprefix 
src/,$(1))
-endef
+target/manpages/%.7: manpages/%.adoc
+       asciidoctor -b manpage -D target/manpages $<
 
-define Executable_file_rule # executable_name, source_file, object_files...
-$(call Object_file_rule,$(2))
-$(call Executable_file,$(1)): target/link_flags $(call Object_file,$(2)) 
$(call Object_file,$(3))
-       @mkdir -p $$(dir $$@)
-       $$(CXX) -o $$@ $$(LDFLAGS) $$(wordlist 2,$$(words $$^),$$^) $$(LDLIBS)
-endef
+# $(call Object_file,%) $(call Dependency_file,%)&: src/%.cpp 
target/compile_flags | target/object_files target/dependencies
+$(call Object_file,%): src/%.cpp target/compile_flags | target/object_files 
target/dependencies
+       $(CXX) $(CXXFLAGS) -MMD -MP -MF $(call Dependency_file,$(<F)) -MT 
$(call Object_file,$(<F)) -c -o $(call Object_file,$(<F)) $(addprefix 
src/,$(<F))
+
+$(call Executable_file,%): target/link_flags | target/bin
+       $(CXX) -o $@ $(LDFLAGS) $(wordlist 2,$(words $^),$^) $(LDLIBS)
+
+coverage: CXXFLAGS += --coverage -fno-elide-constructors -fno-default-inline
+coverage: LDFLAGS += --coverage
+coverage: test | target/coverage
+       @lcov --output-file target/coverage.info --directory 
target/object_files --capture --exclude '/usr/include/*'
+       @genhtml -o target/coverage target/coverage.info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/src/java_symbols.hpp 
new/jurand-1.3.2/src/java_symbols.hpp
--- old/jurand-1.3.1/src/java_symbols.hpp       2023-03-23 13:12:08.000000000 
+0100
+++ new/jurand-1.3.2/src/java_symbols.hpp       2023-11-21 16:00:46.000000000 
+0100
@@ -337,6 +337,12 @@
                
                while (not symbol.empty())
                {
+                       // catch `@A ...`
+                       if (symbol == "." and 
content.substr(new_end_pos).starts_with(".."))
+                       {
+                               break;
+                       }
+                       
                        if (expecting_dot and symbol != ".")
                        {
                                if (symbol == "(")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/src/jurand_test.cpp 
new/jurand-1.3.2/src/jurand_test.cpp
--- old/jurand-1.3.1/src/jurand_test.cpp        2023-03-23 13:12:08.000000000 
+0100
+++ new/jurand-1.3.2/src/jurand_test.cpp        2023-11-21 16:00:46.000000000 
+0100
@@ -308,5 +308,5 @@
                patterns.clear();
        }
        
-       std::cout << "Unit tests PASSED" << "\n";
+       std::cout << "[PASS] Unit tests" << "\n";
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test.sh new/jurand-1.3.2/test.sh
--- old/jurand-1.3.1/test.sh    2023-03-23 13:12:08.000000000 +0100
+++ new/jurand-1.3.2/test.sh    2023-11-21 16:00:46.000000000 +0100
@@ -36,45 +36,71 @@
 # Tests for simple invocations and return codes
 
 if ! ./target/bin/jurand | grep 'Usage:'; then
-       echo "fail: Usage string not printed"
+       echo "[FAIL] Usage string not printed"
        exit 1
 fi
 
 if ! ./target/bin/jurand -h | grep 'Usage:'; then
-       echo "fail: Usage string not printed"
+       echo "[FAIL] Usage string not printed"
        exit 1
 fi
 
 if ./target/bin/jurand -i; then
-       echo "fail: should have failed"
+       echo "[FAIL] Should have failed"
+       exit 1
+fi
+
+if ./target/bin/jurand -i -n 'D'; then
+       echo "[FAIL] Should have failed"
        exit 1
 fi
 
 if ./target/bin/jurand -n; then
-       echo "fail: should have failed"
+       echo "[FAIL] Should have failed"
        exit 1
 fi
 
 if ./target/bin/jurand -p; then
-       echo "fail: should have failed"
+       echo "[FAIL] Should have failed"
        exit 1
 fi
 
 if ./target/bin/jurand nonexisting_file -n "A"; then
-       echo "fail: should have failed"
+       echo "[FAIL] Should have failed"
        exit 1
 fi
 
 if [ -n "$(echo "import A;" | ./target/bin/jurand -n "A")" ]; then
-       echo "fail: output should be empty"
+       echo "[FAIL] Output should be empty"
        exit 1
 fi
 
 if [ "$(echo "import A;" | ./target/bin/jurand -n "B")" != "import A;" ]; then
-       echo "fail: output should be identical to input"
+       echo "[FAIL] Output should be identical to input"
        exit 1
 fi
 
+{
+       cp "test_resources/Simple.java" "target/test_resources/Simple.java"
+       
+       if ! ./target/bin/jurand -a -n 'D' "target/test_resources/Simple.java" 
| grep "target/test_resources/Simple.java"; then
+               echo "[FAIL] Should have printed the file name"
+               exit 1
+       fi
+       
+       rm -f "target/test_resources/Simple.java"
+}
+{
+       cp -r "test_resources/directory/resources" -t "target/test_resources"
+       
+       if ./target/bin/jurand -i -n 'D' "target/test_resources/resources"; then
+               echo "[FAIL] Should have failed"
+               exit 1
+       fi
+       
+       rm -rf "target/test_resources/resources"
+}
+
 
################################################################################
 # Tests for actual matching and removal
 
@@ -118,6 +144,12 @@
 
 test_file "Regression5.java" "Regression5.1.java" -a -n Serial
 
+test_file "Array.java" "Array.1.java" -a -n C
+test_file "Array.java" "Array.2.java" -a -n D
+test_file "Array.java" "Array.3.java" -a -n E
+test_file "Array.java" "Array.4.java" -a -n F
+test_file "Array.java" "Array.5.java" -a -n C -n D -n E -n F
+
 
################################################################################
 # Tests for tool termination on invalid sources, result is irrelevant
 
@@ -127,6 +159,8 @@
 run_tool "Termination.4.java" -a -n "C" || :
 run_tool "Termination.5.java" -a -n "C" || :
 run_tool "Termination.6.java" -a -n "C" || :
+run_tool "Termination.7.java" -a -n "C" || :
+run_tool "Termination.8.java" -a -n "C" || :
 
 
################################################################################
 # Tests of directory traversal
@@ -139,6 +173,9 @@
 
################################################################################
 # Tests of strict mode
 
+# Succesful for coverage
+test_file "Simple.java" "Simple.1.java" -a -s -n "D"
+
 # Nothing was matched/removed
 test_strict "Strict.1.java" "Strict.1.java" -p "z"
 test_strict "Strict.1.java" "Strict.1.java" -n "z"
@@ -152,4 +189,4 @@
 
 
################################################################################
 
-echo Tests PASSED
+echo "[PASS] Integration tests"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Array.1.java 
new/jurand-1.3.2/test_resources/Array.1.java
--- old/jurand-1.3.1/test_resources/Array.1.java        1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Array.1.java        2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,11 @@
+import A.B.D;
+import A.B.E;
+import A.B.F;
+
+interface Array {
+       void a(Object @D ... objects);
+       void b(Object @D[] objects);
+       Object @D[] c(Object @D ... objects);
+       Object @D[] d(@E Object @F[] objects);
+       Object [] e(Object [] objects);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Array.2.java 
new/jurand-1.3.2/test_resources/Array.2.java
--- old/jurand-1.3.1/test_resources/Array.2.java        1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Array.2.java        2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,11 @@
+import A.B.C;
+import A.B.E;
+import A.B.F;
+
+interface Array {
+       void a(@C Object ... objects);
+       void b(@C Object [] objects);
+       @C Object [] c(@C Object ... objects);
+       @C Object [] d(@E Object @F[] objects);
+       @C Object @C[] e(@C Object @C[] objects);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Array.3.java 
new/jurand-1.3.2/test_resources/Array.3.java
--- old/jurand-1.3.1/test_resources/Array.3.java        1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Array.3.java        2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,11 @@
+import A.B.C;
+import A.B.D;
+import A.B.F;
+
+interface Array {
+       void a(@C Object @D ... objects);
+       void b(@C Object @D[] objects);
+       @C Object @D[] c(@C Object @D ... objects);
+       @C Object @D[] d(Object @F[] objects);
+       @C Object @C[] e(@C Object @C[] objects);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Array.4.java 
new/jurand-1.3.2/test_resources/Array.4.java
--- old/jurand-1.3.1/test_resources/Array.4.java        1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Array.4.java        2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,11 @@
+import A.B.C;
+import A.B.D;
+import A.B.E;
+
+interface Array {
+       void a(@C Object @D ... objects);
+       void b(@C Object @D[] objects);
+       @C Object @D[] c(@C Object @D ... objects);
+       @C Object @D[] d(@E Object [] objects);
+       @C Object @C[] e(@C Object @C[] objects);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Array.5.java 
new/jurand-1.3.2/test_resources/Array.5.java
--- old/jurand-1.3.1/test_resources/Array.5.java        1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Array.5.java        2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,8 @@
+
+interface Array {
+       void a(Object ... objects);
+       void b(Object [] objects);
+       Object [] c(Object ... objects);
+       Object [] d(Object [] objects);
+       Object [] e(Object [] objects);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Array.java 
new/jurand-1.3.2/test_resources/Array.java
--- old/jurand-1.3.1/test_resources/Array.java  1970-01-01 01:00:00.000000000 
+0100
+++ new/jurand-1.3.2/test_resources/Array.java  2023-11-21 16:00:46.000000000 
+0100
@@ -0,0 +1,12 @@
+import A.B.C;
+import A.B.D;
+import A.B.E;
+import A.B.F;
+
+interface Array {
+       void a(@C Object @D ... objects);
+       void b(@C Object @D[] objects);
+       @C Object @D[] c(@C Object @D ... objects);
+       @C Object @D[] d(@E Object @F[] objects);
+       @C Object @C[] e(@C Object @C[] objects);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Termination.7.java 
new/jurand-1.3.2/test_resources/Termination.7.java
--- old/jurand-1.3.1/test_resources/Termination.7.java  1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Termination.7.java  2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,19 @@
+// Regression test for issue #5
+// See https://github.com/fedora-java/jurand/issues/5
+import java.io.Serial;
+
+class MyClass {
+    @Serial
+    int foo;
+}
+
+@interface MyAnnotation {
+    @Serial
+    int foo = 0;
+    /*
+}
+
+class MyOtherClass {
+    @Serial
+    int foo;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jurand-1.3.1/test_resources/Termination.8.java 
new/jurand-1.3.2/test_resources/Termination.8.java
--- old/jurand-1.3.1/test_resources/Termination.8.java  1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/Termination.8.java  2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1,5 @@
+import a.b.c.D;
+
+@D(value = "@D"
+class Attributes {
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jurand-1.3.1/test_resources/directory/resources/empty 
new/jurand-1.3.2/test_resources/directory/resources/empty
--- old/jurand-1.3.1/test_resources/directory/resources/empty   1970-01-01 
01:00:00.000000000 +0100
+++ new/jurand-1.3.2/test_resources/directory/resources/empty   2023-11-21 
16:00:46.000000000 +0100
@@ -0,0 +1 @@
+

++++++ jurand-cxx20.patch ++++++
--- /var/tmp/diff_new_pack.OOMLol/_old  2023-12-15 21:48:01.275777425 +0100
+++ /var/tmp/diff_new_pack.OOMLol/_new  2023-12-15 21:48:01.279777571 +0100
@@ -1,20 +1,20 @@
-diff -urEbwB jurand-1.3.1.orig/Makefile jurand-1.3.1/Makefile
---- jurand-1.3.1.orig/Makefile 2023-09-27 07:17:18.384159160 +0200
-+++ jurand-1.3.1/Makefile      2023-09-27 08:55:18.229794175 +0200
-@@ -12,7 +12,8 @@
+diff -auNr jurand-1.3.2-orig/Makefile jurand-1.3.2/Makefile
+--- jurand-1.3.2-orig/Makefile 2023-12-14 16:27:32.535474016 +0800
++++ jurand-1.3.2/Makefile      2023-12-14 16:28:45.112770530 +0800
+@@ -12,6 +12,9 @@
  test: test.sh test-compile
        @./$<
  
--CXXFLAGS += -g -std=c++2a -Isrc -Wall -Wextra -Wpedantic
 +CXXFLAGS += -g -std=gnu++2a -Isrc -Wall -Wextra -Wpedantic 
-D_GLIBCXX_USE_CXX11_ABI=1
 +LDFLAGS += -pthread
++
+ $(call Executable_file,jurand): $(call Object_file,jurand.cpp)
+ $(call Executable_file,jurand_test): $(call Object_file,jurand_test.cpp)
  
- $(eval $(call Variable_rule,target/compile_flags,$(CXX) $(CXXFLAGS)))
- $(eval $(call Variable_rule,target/link_flags,$(CXX) $(LDFLAGS) $(LDLIBS)))
-diff -urEbwB jurand-1.3.1.orig/src/java_symbols.hpp 
jurand-1.3.1/src/java_symbols.hpp
---- jurand-1.3.1.orig/src/java_symbols.hpp     2023-09-27 07:17:18.384159160 
+0200
-+++ jurand-1.3.1/src/java_symbols.hpp  2023-09-27 08:42:56.218651442 +0200
-@@ -630,14 +630,14 @@
+diff -auNr jurand-1.3.2-orig/src/java_symbols.hpp 
jurand-1.3.2/src/java_symbols.hpp
+--- jurand-1.3.2-orig/src/java_symbols.hpp     2023-12-14 16:27:32.535474016 
+0800
++++ jurand-1.3.2/src/java_symbols.hpp  2023-12-14 16:30:01.613434431 +0800
+@@ -636,14 +636,14 @@
        
        if (not parameters.in_place_)
        {

Reply via email to