Skip to content

Commit 08869da

Browse files
authored
Update guava to 32.1.3 in Javapackages-bootstrap (#8524)
1 parent 4611598 commit 08869da

9 files changed

Lines changed: 249 additions & 8 deletions

File tree

SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SPECS/LICENSES-AND-NOTICES/data/licenses.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,7 @@
539539
"js-jquery",
540540
"jsoncpp",
541541
"Judy",
542+
"jurand",
542543
"kata-containers",
543544
"kde-filesystem",
544545
"kde-settings",
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
diff -urN a/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/CompilerTool.java b/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/CompilerTool.java
2+
--- a/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/CompilerTool.java 2024-03-22 11:02:12.472882868 -0700
3+
+++ b/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/CompilerTool.java 2024-03-22 11:05:04.539120103 -0700
4+
@@ -49,6 +49,8 @@
5+
6+
private Predicate<Path> sourceFilter = source -> true;
7+
8+
+ private boolean accessInternalJavaAPI;
9+
+
10+
private int release = 8;
11+
12+
@Instruction
13+
@@ -58,6 +60,12 @@
14+
}
15+
16+
@Instruction
17+
+ public void accessInternalJavaAPI( String dummy )
18+
+ {
19+
+ this.accessInternalJavaAPI = true;
20+
+ }
21+
+
22+
+ @Instruction
23+
public void addSourceRoot( String sourceRoot )
24+
{
25+
sourceRoots.add( sourceRoot );
26+
@@ -101,7 +109,7 @@
27+
}
28+
List<Path> allIncluded = new ArrayList<>();
29+
EclipseProjectGenerator eclipse =
30+
- new EclipseProjectGenerator( getReactor(), getProject(), getModule(), release );
31+
+ new EclipseProjectGenerator( getReactor(), getProject(), getModule(), release, accessInternalJavaAPI );
32+
for ( Path sourceDir : sourceDirs )
33+
{
34+
List<Path> included = new ArrayList<>();
35+
@@ -116,8 +124,20 @@
36+
List<String> options = new ArrayList<>();
37+
options.add( "-d" );
38+
options.add( getClassesDir().toString() );
39+
- options.add( "--release" );
40+
- options.add( release + "" );
41+
+ // If internal Java APIs need to be visible then --release can't be used
42+
+ // https://bugs.openjdk.org/browse/JDK-8206937
43+
+ if ( accessInternalJavaAPI )
44+
+ {
45+
+ options.add( "-source" );
46+
+ options.add( release + "" );
47+
+ options.add( "-target" );
48+
+ options.add( release + "" );
49+
+ }
50+
+ else
51+
+ {
52+
+ options.add( "--release" );
53+
+ options.add( release + "" );
54+
+ }
55+
options.add( "-cp" );
56+
options.add( getClassPath().stream().map( Path::toString ).collect( Collectors.joining( ":" ) ) );
57+
StringWriter compilerOutput = new StringWriter();
58+
diff -urN a/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/EclipseProjectGenerator.java b/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/EclipseProjectGenerator.java
59+
--- a/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/EclipseProjectGenerator.java 2024-03-22 11:02:12.480882972 -0700
60+
+++ b/javapackages-bootstrap-1.5.0/mbi/core/src/org/fedoraproject/mbi/tool/compiler/EclipseProjectGenerator.java 2024-03-22 11:08:44.793998047 -0700
61+
@@ -39,12 +39,15 @@
62+
63+
private final int release;
64+
65+
- public EclipseProjectGenerator( Reactor reactor, ProjectDescriptor project, ModuleDescriptor module, int release )
66+
+ private boolean accessInternalJavaAPI;
67+
+
68+
+ public EclipseProjectGenerator( Reactor reactor, ProjectDescriptor project, ModuleDescriptor module, int release,boolean accessInternalJavaAPI )
69+
{
70+
this.reactor = reactor;
71+
this.project = project;
72+
this.module = module;
73+
this.release = release;
74+
+ this.accessInternalJavaAPI = accessInternalJavaAPI;
75+
}
76+
77+
private StringBuilder eclipseClasspath = new StringBuilder( "<classpath>" );
78+
@@ -99,7 +102,10 @@
79+
bw.write( "org.eclipse.jdt.core.compiler.compliance=" + vm + "\n" );
80+
bw.write( "org.eclipse.jdt.core.compiler.source=" + vm + "\n" );
81+
bw.write( "org.eclipse.jdt.core.compiler.codegen.targetPlatform=" + vm + "\n" );
82+
- bw.write( "org.eclipse.jdt.core.compiler.release=enabled\n" );
83+
+ if ( !accessInternalJavaAPI )
84+
+ {
85+
+ bw.write( "org.eclipse.jdt.core.compiler.release=enabled\n" );
86+
+ }
87+
bw.write( "org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning\n" );
88+
}
89+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<project>
2+
<licensing>
3+
<tag>Apache-2.0 AND CC0-1.0</tag>
4+
</licensing>
5+
<module>
6+
<dependency>jsr-305</dependency>
7+
<build>
8+
<ant>
9+
<run>
10+
[copy todir="${generatedSources}"]
11+
[fileset dir="${basedir}/guava/src"/]
12+
[/copy]
13+
[exec executable="jurand" dir="${generatedSources}" failonerror="true" logerror="true"]
14+
[arg line="-i -a ."/]
15+
[arg line="-p ^org.checkerframework."/]
16+
[arg line="-p ^com.google.common.annotations."/]
17+
[arg line="-p ^com.google.errorprone.annotations."/]
18+
[arg line="-p ^com.google.j2objc.annotations."/]
19+
[/exec]
20+
</run>
21+
</ant>
22+
<compiler>
23+
<accessInternalJavaAPI/>
24+
<addSourceRoot>futures/failureaccess/src</addSourceRoot>
25+
</compiler>
26+
</build>
27+
</module>
28+
</project>

SPECS/javapackages-bootstrap/javapackages-bootstrap.signatures.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"Signatures": {
33
"javapackages-bootstrap-1.5.0.tar.xz": "37518e10d629f6d7115bd78bed85977c7294f871c2438a57f7857f2c0e065c7c",
44
"javapackages-bootstrap-PACKAGE-LICENSING": "3f440662012f41be31be13fb764c1f6a21d51f2efdcabf85ed35e9eb8c3b5714",
5+
"guava.xml":"4fba5a37ddeabeb21925f2bf71182380734c89ee0000895df59fb32ff8e8669c",
56
"ignore.upstream.patch.txt": "441bb5697fc5fb4089b1d43479dd443a8ce4405bec4d6b92c4152d4320ad3a80",
67
"apache-pom.tar.xz": "cedc788ca41b99d04a6b058b1689e6eda8f33b9afd642e526a0998d7741f7614",
78
"ant.tar.xz": "230ad9d99c5adfffd14abc3e094e8b7331cef0c061282ce0f13245a02458b604",
@@ -29,7 +30,7 @@
2930
"felix-parent-pom.tar.xz": "968678162e287991bfd478ba9d673f77a5bb0f5d44262ec769e639d34ab9edcf",
3031
"felix-utils.tar.xz": "ac0c7eee70cf651749e200683db3daf715aea889e8c399cff1e4b494e9409181",
3132
"fusesource-pom.tar.xz": "1616d0dc4f66ad29e27ce329484a5fadf36efb2faea1702bfde3dede7f612a1d",
32-
"guava.tar.xz": "8d147ba92ea1793004dfd9ee77d8450f01364ce306196e671480a5743a2697e1",
33+
"guava-32.1.3b.tar.xz": "a07fe04da57a82383b2f9b0da4eb99344fdd527d1df97777f1fe13d5baa170e6",
3334
"guice.tar.xz": "f8bc5d4061aae98fb8aaa246cf9b1183d6700201cd0d216993f43d23fde6d421",
3435
"hamcrest.tar.xz": "ea0aa53fbc46c84726dd9499a71cd4a4d6b8111aa059a3afd84925cbc94cb40e",
3536
"httpcomponents-client.tar.xz": "2fbf3c7e0077ef4fe3fac1fa77c05a4a88609ef46d86fabf8908ff958abcced1",

SPECS/javapackages-bootstrap/javapackages-bootstrap.spec

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
Name: javapackages-bootstrap
1515
Version: 1.5.0
16-
Release: 4%{?dist}
16+
Release: 5%{?dist}
1717
Summary: A means of bootstrapping Java Packages Tools
1818
# For detailed info see the file javapackages-bootstrap-PACKAGE-LICENSING
1919
License: ASL 2.0 and ASL 1.1 and (ASL 2.0 or EPL-2.0) and (EPL-2.0 or GPLv2 with exceptions) and MIT and (BSD with advertising) and BSD-3-Clause and EPL-1.0 and EPL-2.0 and CDDL-1.0 and xpp and CC0 and Public Domain
@@ -25,6 +25,7 @@ Source0: https://github.com/fedora-java/javapackages-bootstrap/releases/d
2525
# License breakdown
2626
Source1: javapackages-bootstrap-PACKAGE-LICENSING
2727
Source2: ignore.upstream.patch.txt
28+
Source3: guava.xml
2829

2930
Source1002: apache-pom.tar.xz
3031
Source1001: ant.tar.xz
@@ -52,7 +53,7 @@ Source1023: easymock.tar.xz
5253
Source1024: felix-parent-pom.tar.xz
5354
Source1025: felix-utils.tar.xz
5455
Source1026: fusesource-pom.tar.xz
55-
Source1027: guava.tar.xz
56+
Source1027: guava-32.1.3b.tar.xz
5657
Source1028: guice.tar.xz
5758
Source1029: hamcrest.tar.xz
5859
Source1030: httpcomponents-client.tar.xz
@@ -138,6 +139,7 @@ Source1108: xz-java.tar.xz
138139
Patch0: 0001-Bind-to-OpenJDK-11-for-runtime.patch
139140
Patch1: 0001-Remove-usage-of-ArchiveStreamFactory.patch
140141
Patch2: CVE-2023-37460.patch
142+
Patch3: Internal-Java-API.patch
141143

142144
Provides: bundled(ant) = 1.10.9
143145
Provides: bundled(apache-parent) = 23
@@ -165,7 +167,7 @@ Provides: bundled(easymock) = 4.2
165167
Provides: bundled(felix-parent) = 7
166168
Provides: bundled(felix-utils) = 1.11.6
167169
Provides: bundled(fusesource-pom) = 1.12
168-
Provides: bundled(guava) = 30.1
170+
Provides: bundled(guava) = 32.1.3
169171
Provides: bundled(google-guice) = 4.2.3
170172
Provides: bundled(hamcrest) = 2.2
171173
Provides: bundled(httpcomponents-client) = 4.5.11
@@ -252,6 +254,7 @@ BuildRequires: byaccj
252254
BuildRequires: msopenjdk-11
253255
BuildRequires: javapackages-generators
254256
BuildRequires: java-devel
257+
BuildRequires: jurand
255258

256259
Requires: bash
257260
Requires: coreutils
@@ -277,11 +280,11 @@ XMvn, allowing JPT to be used before one builds XMvn package.
277280

278281
%prep
279282
%setup -q
280-
283+
%patch 3 -p2
281284
# leave out the first source as it has already been extracted
282285
# leave out licensing breakdown file
283286
# leave ignore patch text file
284-
other_sources=$(echo %{sources} | cut -d' ' -f4-)
287+
other_sources=$(echo %{sources} | cut -d' ' -f5-)
285288

286289
for source in ${other_sources}
287290
do
@@ -297,11 +300,28 @@ pushd "downstream/plexus-archiver"
297300
%patch2 -p1
298301
popd
299302

303+
# remove guava.xml from javapackage-bootstrap 1.5.0
304+
# import guava.xml 32.1.3 from Fedora 40
305+
# edit version from guava.properties
306+
pushd "project"
307+
rm guava.xml
308+
cp %{SOURCE3} .
309+
sed -i 's|version=30.1|version=32.1.3|' guava.properties
310+
sed -i 's|ref=v@.@|ref=v@.@.@|' guava.properties
311+
popd
312+
313+
300314
for patch_path in patches/*/*
301315
do
302316
package_name="$(echo ${patch_path} | cut -f2 -d/)"
303317
patch_name="$(echo ${patch_path} | cut -f3 -d/)"
304-
318+
319+
# ignore the patch provided by upstream javapackages-bootstrap as guava version has changed
320+
# and no longer compatible
321+
if [[ "$patch_name" == "0001-Fix-compilation-error-with-ECJ.patch" || "$patch_name" == "0002-Remove-use-of-sun.misc.Unsafe.patch" ]]
322+
then
323+
continue
324+
fi
305325
pushd "downstream/${package_name}"
306326
# not applying some patches provided by javapackages-bootstrap
307327
# some upstream patches become not applicable when upgrading any of the sources
@@ -364,6 +384,9 @@ sed -i 's|/usr/lib/jvm/java-11-openjdk|%{java_home}|' %{buildroot}%{launchersPat
364384
%doc AUTHORS
365385

366386
%changelog
387+
* Fri Mar 22 2024 Riken Maharjan <rmaharjan@microsoft.com> - 1.5.0-5
388+
- Update Guava to fix CVE-2023-2976 using Fedora 40 (License: MIT).
389+
367390
* Fri Aug 11 2023 Saul Paredes <saulparedes@microsoft.com> - 1.5.0-4
368391
- Patch plexus-archiver to fix CVE-2023-37460
369392

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"Signatures": {
3+
"jurand-1.3.2.tar.gz": "05c1fa356e2ad4247265ac77e6837faf24a6e291742b2c123f248b85a5edd1dc"
4+
}
5+
}
6+

SPECS/jurand/jurand.spec

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
Summary: A tool for manipulating symbols present in Java source files.
2+
Name: jurand
3+
Version: 1.3.2
4+
Release: 4%{?dist}
5+
License: Apache-2.0
6+
Vendor: Microsoft Corporation
7+
Distribution: Mariner
8+
URL: https://github.com/fedora-java/jurand
9+
Source0: https://github.com/fedora-java/jurand/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
10+
BuildRequires: gcc-c++
11+
BuildRequires: diffutils
12+
BuildRequires: make
13+
BuildRequires: rubygem-asciidoctor
14+
Obsoletes: javapackages-extra < 6.2.0
15+
16+
%description
17+
The tool can be used for patching .java sources in cases where using sed is
18+
insufficient due to Java language syntax. The tool follows Java language rules
19+
rather than applying simple regular expressions on the source code.
20+
21+
%prep
22+
%setup -q
23+
24+
%build
25+
%{make_build} test-compile manpages
26+
27+
%install
28+
export buildroot=%{buildroot}
29+
export bindir=%{_bindir}
30+
export rpmmacrodir=%{_rpmmacrodir}
31+
export mandir=%{_mandir}/man7
32+
33+
./install.sh
34+
35+
%check
36+
make test
37+
38+
%files -f target/installed_files
39+
%dir %{_rpmconfigdir}
40+
%dir %{_rpmmacrodir}
41+
%license LICENSE NOTICE
42+
%doc README.adoc
43+
44+
%changelog
45+
* Thu Mar 21 2024 Riken Maharjan <rmaharjan@microsoft.com> - 1.3.2-4
46+
- Initial CBL-Mariner import from Fedora 40 (license: MIT).
47+
- License verified
48+
49+
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-3
50+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
51+
52+
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-2
53+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
54+
55+
* Tue Nov 21 2023 Marian Koncek <mkoncek@redhat.com> - 1.3.2-1
56+
- Update to upstream version 1.3.2
57+
58+
* Wed Aug 30 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.3.1-3
59+
- Obsolete javapackages-extra
60+
61+
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
62+
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
63+
64+
* Thu Mar 23 2023 Marian Koncek <mkoncek@redhat.com> - 1.3.1-1
65+
- Update to upstream version 1.3.1
66+
67+
* Wed Mar 15 2023 Marian Koncek <mkoncek@redhat.com> - 1.3.0-1
68+
- Update to upstream version 1.3.0
69+
70+
* Wed Mar 08 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.0-2
71+
- Skip interface keyword as annotation in name matching only
72+
73+
* Wed Mar 08 2023 Marian Koncek <mkoncek@redhat.com> - 1.2.0-1
74+
- Update to upstream version 1.2.0
75+
76+
* Tue Mar 07 2023 Marian Koncek <mkoncek@redhat.com> - 1.1.0-1
77+
- Update to upstream version 1.1.0
78+
79+
* Fri Mar 03 2023 Marian Koncek <mkoncek@redhat.com> - 1.0.2-1
80+
- Update to upstream version 1.0.2
81+
82+
* Wed Mar 01 2023 Marian Koncek <mkoncek@redhat.com> - 1.0.0-1
83+
- Initial build

cgmanifest.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8016,6 +8016,16 @@
80168016
}
80178017
}
80188018
},
8019+
{
8020+
"component": {
8021+
"type": "other",
8022+
"other": {
8023+
"name": "jurand",
8024+
"version": "1.3.2",
8025+
"downloadUrl": "https://github.com/fedora-java/jurand/archive/refs/tags/1.3.2.tar.gz"
8026+
}
8027+
}
8028+
},
80198029
{
80208030
"component": {
80218031
"type": "other",

0 commit comments

Comments
 (0)