- Update to version 1.10

* Licensing change: From version 1.10 onwards, XZ for Java is
    under the BSD Zero Clause License (0BSD). 1.9 and older are in
    the public domain and obviously remain so; the change only
    affects the new releases.
    0BSD is an extremely permissive license which doesn't require
    retaining or reproducing copyright or license notices when
    distributing the code, thus in practice there is extremely
    little difference to public domain.
  * Mark copyright and license information in the source package so
    that it is compliant to the REUSE Specification version 3.2.
  * Improve LZMAInputStream.enableRelaxedEndCondition():
    + Error detection is slightly better.
    + The input position will always be at the end of the stream
      after successful decompression.
  * Support .lzma files that have both a known uncompressed size
    and the end marker. Such files are uncommon but valid. The same
    issue was fixed in XZ Utils 5.2.6 in 2022.
  * Add ARM64 and RISC-V BCJ filters.
  * Speed optimizations:
    + Delta filter
    + LZMA/LZMA2 decoder
    + LZMA/LZMA2 encoder (partially Java >= 9 only)
    + CRC64 (Java >= 9 only)
  * Changes that affect API/ABI compatibility:
    + Change XZOutputStream constructors to not call the method
      public void updateFilters(FilterOptions[] filterOptions).
    + In SeekableXZInputStream, change the method public void
      seekToBlock(int blockNumber) to not call the method public
      long getBlockPos(int blockNumber).
    + Make the filter options classes final:
      ~ ARM64Options
      ~ ARMOptions
      ~ ARMThumbOptions
      ~ DeltaOptions
      ~ IA64Options
      ~ LZMA2Options
      ~ PowerPCOptions
      ~ RISCVOptions
      ~ SPARCOptions
      ~ X86Options
  * Add new system properties:
    + org.tukaani.xz.ArrayCache sets the default ArrayCache: Dummy
      (default) or Basic. See the documentation of ArrayCache and
      BasicArrayCache.
    + org.tukaani.xz.MatchLengthFinder (Java >= 9 only) sets the
      byte array comparison method used for finding match lengths
      in LZMA/LZMA2 encoder: UnalignedLongLE (default on x86-64 and
      ARM64) or Basic (default on other systems). The former could
      be worth testing on other 64-bit little endian systems that
      support fast unaligned memory access.
  * Build system (Apache Ant):
    + Building the documentation no longer downloads element-list
      or package-list file; the build is now fully offline. Such
      files aren't needed with OpenJDK >= 16 whose javadoc can
      auto-link to platform documentation on docs.oracle.com. With
      older OpenJDK versions, links to platform documentation
      aren't generated anymore.
    + Don't require editing of build.properties to build with
      OpenJDK 8. Now it's enough to use ant -Djava8only=true. Older
      OpenJDK versions are no longer supported because the main
      source tree uses Java 8 features.
    + Support reproducible builds. See the notes in README.md.
    + Add a new Ant target pom that only creates xz.pom.
    + Change ant dist to use git archive to create a .zip file.
  * Convert the plain text documentation in the source tree to
    Markdown (CommonMark).
  * The binaries of 1.10 in the Maven Central require Java 8 and
    contain optimized classes for Java >= 9 as multi-release JAR.
    They were built with OpenJDK 21.0.4 on GNU/Linux using the
    following command:
    SOURCE_DATE_EPOCH=1722262226 TZ=UTC0 ant maven

OBS-URL: https://build.opensuse.org/package/show/Java:packages/xz-java?expand=0&rev=13
This commit is contained in:
Fridrich Strba 2024-09-04 10:51:33 +00:00 committed by Git OBS Bridge
parent a7e0d10fb1
commit 14a6bc2318
4 changed files with 85 additions and 11 deletions

BIN
xz-java-1.10.zip (Stored with Git LFS) Normal file

Binary file not shown.

BIN
xz-java-1.9.zip (Stored with Git LFS)

Binary file not shown.

View File

@ -1,3 +1,79 @@
-------------------------------------------------------------------
Fri Aug 2 15:55:10 UTC 2024 - Anton Shvetz <shvetz.anton@gmail.com>
- Update to version 1.10
* Licensing change: From version 1.10 onwards, XZ for Java is
under the BSD Zero Clause License (0BSD). 1.9 and older are in
the public domain and obviously remain so; the change only
affects the new releases.
0BSD is an extremely permissive license which doesn't require
retaining or reproducing copyright or license notices when
distributing the code, thus in practice there is extremely
little difference to public domain.
* Mark copyright and license information in the source package so
that it is compliant to the REUSE Specification version 3.2.
* Improve LZMAInputStream.enableRelaxedEndCondition():
+ Error detection is slightly better.
+ The input position will always be at the end of the stream
after successful decompression.
* Support .lzma files that have both a known uncompressed size
and the end marker. Such files are uncommon but valid. The same
issue was fixed in XZ Utils 5.2.6 in 2022.
* Add ARM64 and RISC-V BCJ filters.
* Speed optimizations:
+ Delta filter
+ LZMA/LZMA2 decoder
+ LZMA/LZMA2 encoder (partially Java >= 9 only)
+ CRC64 (Java >= 9 only)
* Changes that affect API/ABI compatibility:
+ Change XZOutputStream constructors to not call the method
public void updateFilters(FilterOptions[] filterOptions).
+ In SeekableXZInputStream, change the method public void
seekToBlock(int blockNumber) to not call the method public
long getBlockPos(int blockNumber).
+ Make the filter options classes final:
~ ARM64Options
~ ARMOptions
~ ARMThumbOptions
~ DeltaOptions
~ IA64Options
~ LZMA2Options
~ PowerPCOptions
~ RISCVOptions
~ SPARCOptions
~ X86Options
* Add new system properties:
+ org.tukaani.xz.ArrayCache sets the default ArrayCache: Dummy
(default) or Basic. See the documentation of ArrayCache and
BasicArrayCache.
+ org.tukaani.xz.MatchLengthFinder (Java >= 9 only) sets the
byte array comparison method used for finding match lengths
in LZMA/LZMA2 encoder: UnalignedLongLE (default on x86-64 and
ARM64) or Basic (default on other systems). The former could
be worth testing on other 64-bit little endian systems that
support fast unaligned memory access.
* Build system (Apache Ant):
+ Building the documentation no longer downloads element-list
or package-list file; the build is now fully offline. Such
files aren't needed with OpenJDK >= 16 whose javadoc can
auto-link to platform documentation on docs.oracle.com. With
older OpenJDK versions, links to platform documentation
aren't generated anymore.
+ Don't require editing of build.properties to build with
OpenJDK 8. Now it's enough to use ant -Djava8only=true. Older
OpenJDK versions are no longer supported because the main
source tree uses Java 8 features.
+ Support reproducible builds. See the notes in README.md.
+ Add a new Ant target pom that only creates xz.pom.
+ Change ant dist to use git archive to create a .zip file.
* Convert the plain text documentation in the source tree to
Markdown (CommonMark).
* The binaries of 1.10 in the Maven Central require Java 8 and
contain optimized classes for Java >= 9 as multi-release JAR.
They were built with OpenJDK 21.0.4 on GNU/Linux using the
following command:
SOURCE_DATE_EPOCH=1722262226 TZ=UTC0 ant maven
-------------------------------------------------------------------
Thu Sep 21 06:43:05 UTC 2023 - Fridrich Strba <fstrba@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package xz-java
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2013 Peter Conrad
#
# All modifications and additions to the file contributed by third parties
@ -18,13 +18,13 @@
Name: xz-java
Version: 1.9
Version: 1.10
Release: 0
Summary: Pure Java implementation of XZ compression
License: SUSE-Public-Domain
License: 0BSD
Group: Development/Libraries/Java
URL: https://tukaani.org/xz/java.html
Source: http://tukaani.org/xz/xz-java-%{version}.zip
Source: https://tukaani.org/xz/xz-java-%{version}.zip
BuildRequires: ant
BuildRequires: fdupes
BuildRequires: java-devel >= 1.8
@ -50,9 +50,7 @@ This package contains the API documentation of xz-java.
%setup -q -c -n %{name}
%build
sed -i 's/linkoffline="[^"]*"//;/extdoc_/d' build.xml
sed -i 's/sourcever = 7/sourcever = 8/g' build.properties
ant -Dant.build.javac.{source,target}=8 clean jar doc maven
%{ant} -Dant.build.javac.{source,target}=8 clean jar doc maven
%install
# jar
@ -70,7 +68,7 @@ cp -pr build/doc/* %{buildroot}%{_javadocdir}/%{name}
%files -f .mfiles
%license COPYING
%doc NEWS README THANKS
%doc {NEWS,README,THANKS}.md
%{_javadir}/xz.jar
%files javadoc