diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index e69de29..862c83a 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,7 @@ +/1.0.2.tar.gz +/jurand-1.1.0.tar.gz +/jurand-1.2.0.tar.gz +/jurand-1.3.0.tar.gz +/jurand-1.3.1.tar.gz +/jurand-1.3.2.tar.gz +/jurand-1.3.3.tar.gz diff --git a/README.md b/README.md new file mode 100644 index 0000000..9c4a375 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# jurand + +The jurand package diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f1bb5dd --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +--- !Policy +product_versions: + - rhel-9 +decision_contexts: + - osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/jurand.spec b/jurand.spec new file mode 100644 index 0000000..a076ccc --- /dev/null +++ b/jurand.spec @@ -0,0 +1,87 @@ +Name: jurand +Version: 1.3.3 +Release: 6%{?dist} +Summary: A tool for manipulating Java symbols +License: Apache-2.0 +URL: https://github.com/fedora-java/jurand + +Source0: https://github.com/fedora-java/jurand/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz + +BuildRequires: diffutils +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: rubygem-asciidoctor + +%description +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. + +%prep +%autosetup -p1 + +%build +%{make_build} test-compile manpages + +%install +export buildroot=%{buildroot} +export bindir=%{_bindir} +export rpmmacrodir=%{_rpmmacrodir} +export mandir=%{_mandir}/man7 + +./install.sh + +%check +make test + +%files -f target/installed_files +%dir %{_rpmconfigdir} +%dir %{_rpmmacrodir} +%license LICENSE NOTICE +%doc README.adoc + +%changelog +* Wed Sep 04 2024 Mikolaj Izdebski - 1.3.3-4 +- Drop unneeded obsoletes + +* Tue Aug 20 2024 Marian Koncek - 1.3.3-1 +- Update to upstream version 1.3.3 + +* Thu Jul 18 2024 Fedora Release Engineering - 1.3.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jan 24 2024 Fedora Release Engineering - 1.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 20 2024 Fedora Release Engineering - 1.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Nov 21 2023 Marian Koncek - 1.3.2-1 +- Update to upstream version 1.3.2 + +* Wed Aug 30 2023 Mikolaj Izdebski - 1.3.1-3 +- Obsolete javapackages-extra + +* Thu Jul 20 2023 Fedora Release Engineering - 1.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Mar 23 2023 Marian Koncek - 1.3.1-1 +- Update to upstream version 1.3.1 + +* Wed Mar 15 2023 Marian Koncek - 1.3.0-1 +- Update to upstream version 1.3.0 + +* Wed Mar 08 2023 Mikolaj Izdebski - 1.2.0-2 +- Skip interface keyword as annotation in name matching only + +* Wed Mar 08 2023 Marian Koncek - 1.2.0-1 +- Update to upstream version 1.2.0 + +* Tue Mar 07 2023 Marian Koncek - 1.1.0-1 +- Update to upstream version 1.1.0 + +* Fri Mar 03 2023 Marian Koncek - 1.0.2-1 +- Update to upstream version 1.0.2 + +* Wed Mar 01 2023 Marian Koncek - 1.0.0-1 +- Initial build diff --git a/plans/plan.fmf b/plans/plan.fmf new file mode 100644 index 0000000..1ccac40 --- /dev/null +++ b/plans/plan.fmf @@ -0,0 +1,5 @@ +summary: Run tests from dist-git +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources new file mode 100644 index 0000000..b3d824e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (jurand-1.3.3.tar.gz) = cf3858052864f45d576765bdade175c1b3cfd55331d31a3c46c51143596d370e918e9293fdf45c2e0db6d050a03108e772e6a81c4ced6236cc6b28634c57a344 diff --git a/tests/macros/main.fmf b/tests/macros/main.fmf new file mode 100644 index 0000000..5082f3c --- /dev/null +++ b/tests/macros/main.fmf @@ -0,0 +1,5 @@ +summary: Jurand macros test +description: | + Test whether Jurand RPM macros work. +require: + - rpm-build diff --git a/tests/macros/runtest.sh b/tests/macros/runtest.sh new file mode 100755 index 0000000..d99da7f --- /dev/null +++ b/tests/macros/runtest.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# Author: Mikolaj Izdebski +. /usr/share/beakerlib/beakerlib.sh + +rlJournalStart + + rlPhaseStartSetup + rlAssertRpm jurand + rlAssertRpm rpm-build + rlPhaseEnd + + rlPhaseStartTest + rlAssertGrep "^import com.Foo;$" test_template.java + rlAssertGrep "^import biz.Bar;$" test_template.java + rlAssertGrep "^@Foo$" test_template.java + rlAssertGrep "^class test{}$" test_template.java + + rlRun "cp test_template.java test.java" + rlRun -s "rpm -E '%java_remove_imports test.java -n Foo'" + rlAssertGrep /usr/bin/jurand $rlRun_LOG + rlRun "sh $rlRun_LOG" + rlAssertNotGrep "^import com.Foo;$" test.java + rlAssertGrep "^import biz.Bar;$" test.java + rlAssertGrep "^@Foo$" test.java + rlAssertGrep "^class test{}$" test.java + + rlRun "cp test_template.java test.java" + rlRun -s "rpm -E '%java_remove_annotations test.java -n Foo'" + rlAssertGrep /usr/bin/jurand $rlRun_LOG + rlRun "sh $rlRun_LOG" + rlAssertNotGrep "^import com.Foo;$" test.java + rlAssertGrep "^import biz.Bar;$" test.java + rlAssertNotGrep "^@Foo$" test.java + rlAssertGrep "^class test{}$" test.java + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "rm -f test.java" + rlPhaseEnd +rlJournalEnd +rlJournalPrintText diff --git a/tests/macros/test_template.java b/tests/macros/test_template.java new file mode 100644 index 0000000..87bdcaa --- /dev/null +++ b/tests/macros/test_template.java @@ -0,0 +1,4 @@ +import com.Foo; +import biz.Bar; +@Foo +class test{} diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..99fd67e --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,4 @@ +contact: Mikolaj Izdebski +framework: beakerlib +test: ./runtest.sh +tier: 0 diff --git a/tests/smoke/main.fmf b/tests/smoke/main.fmf new file mode 100644 index 0000000..0f22319 --- /dev/null +++ b/tests/smoke/main.fmf @@ -0,0 +1,11 @@ +summary: Jurand smoke test +description: | + Download Guava sources, run Jurand to remove annotations and then + compile Guava to verify that annotations were removed, producing + valid Java code that can be compiled. +require: + - wget + - tar + - gzip + - findutils + - java-21-openjdk-devel diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100755 index 0000000..32e18c5 --- /dev/null +++ b/tests/smoke/runtest.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Author: Mikolaj Izdebski +. /usr/share/beakerlib/beakerlib.sh + +rlJournalStart + + rlPhaseStartSetup + rlAssertRpm jurand + rlAssertRpm java-21-openjdk-devel + export JAVA_HOME=/usr/lib/jvm/java-21-openjdk + rlRun "wget https://src.fedoraproject.org/lookaside/pkgs/guava/guava-31.1.tar.gz/sha512/660b486d82d526ce722130f2968ea8ab9eb53f5915f80e53ef135a7bfcb6ced9b2f2a50ebdb8b316cc48a4f2553fa067a1d6fc0bc4498774a9f1990a535651b8/guava-31.1.tar.gz" + rlAssertExists guava-31.1.tar.gz + rlRun "tar xf guava-31.1.tar.gz" + rlAssertExists guava-31.1 + rlPhaseEnd + + rlPhaseStartTest + rlRun "jurand -i -a guava-31.1/guava/src\ + -p org[.]checkerframework[.]\ + -p com[.]google[.]common[.]annotations[.]\ + -p com[.]google[.]errorprone[.]annotations[.]\ + -p com[.]google[.]j2objc[.]annotations[.]\ + -p javax[.]annotation[.]\ + " + rlRun -s "find guava-31.1/guava/src guava-31.1/futures/failureaccess/src -name \*.java | sort" + rlRun -s "${JAVA_HOME}/bin/javac -d . @$rlRun_LOG" + rlAssertNotGrep error: $rlRun_LOG + rlAssertExists com/google/common/base/Strings.class + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "rm -rf guava-31.1.tar.gz guava-31.1/ com/" + rlPhaseEnd +rlJournalEnd +rlJournalPrintText