commit | 1e527e36d506da79797b9ac584212fa494af01a6 | [log] [tgz] |
---|---|---|
author | Renovate Bot <renovate-bot@benkard.de> | Tue Mar 12 20:03:57 2024 +0000 |
committer | Renovate Bot <renovate-bot@benkard.de> | Tue Mar 12 20:03:57 2024 +0000 |
tree | c8fca490d1053dc2796b20beca47d37f2b2bb2c1 | |
parent | 6273544d7d9b9b75909c4c29bb854378759166af [diff] | |
parent | ddcb828d2400a486859b27690e03101d1abcf65c [diff] |
Update all non-major dependencies to v2.26.1 (mulk/jgvariant!26) This MR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [com.google.errorprone:error_prone_core](https://errorprone.info) ([source](https://github.com/google/error-prone)) | | minor | `2.25.0` -> `2.26.1` | | [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | compile | minor | `2.25.0` -> `2.26.1` | --- ### Release Notes <details> <summary>google/error-prone</summary> ### [`v2.26.1`](https://github.com/google/error-prone/releases/tag/v2.26.1): Error Prone 2.26.1 [Compare Source](https://github.com/google/error-prone/compare/v2.26.0...v2.26.1) Changes: - Fix the module name of the annotations artifact: `com.google.errorprone.annotations` (https://github.com/google/error-prone/commit/9d99ee76f2ca8568b69150f5df7fe845c8545d16) Full Changelog: https://github.com/google/error-prone/compare/v2.26.0...v2.26.1 ### [`v2.26.0`](https://github.com/google/error-prone/releases/tag/v2.26.0): Error Prone 2.26.0 [Compare Source](https://github.com/google/error-prone/compare/v2.25.0...v2.26.0) Changes: - The 'annotations' artifact now includes a `module-info.java` for Java Platform Module System support, thanks to [@​sgammon](https://github.com/sgammon) in [#​4311](https://github.com/google/error-prone/issues/4311). - Disabled checks passed to `-XepPatchChecks` are now ignored, instead of causing a crash. Thanks to [@​oxkitsune](https://github.com/oxkitsune) in [#​4028](https://github.com/google/error-prone/issues/4028). New checks: - [`SystemConsoleNull`](https://errorprone.info/bugpattern/SystemConsoleNull): Null-checking `System.console()` is not a reliable way to detect if the console is connected to a terminal. - [`EnumOrdinal`](https://errorprone.info/bugpattern/EnumOrdinal): Discourage uses of `Enum.ordinal()` Closed issues: [#​2649](https://github.com/google/error-prone/issues/2649), [#​3908](https://github.com/google/error-prone/issues/3908), [#​4028](https://github.com/google/error-prone/issues/4028), [#​4311](https://github.com/google/error-prone/issues/4311), [#​4314](https://github.com/google/error-prone/issues/4314) Full Changelog: https://github.com/google/error-prone/compare/v2.25.0...v2.26.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. â™» **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMCJ9-->
This library provides a GVariant parser in pure Java.
jgvariant-core
provides Decoder<T>
, which read a given type of GVariant-encoded value from a ByteBuffer. The class also contains factory methods to acquire those instances.
The various subclasses of Decoder
together implement the GVariant serialization specification.
jgvariant-ostree
provides instances of Decoder<T>
for various GVariant types used in OSTree repositories.
To parse a GVariant value of type "a(si)"
, which is an array of pairs of String and int
, you can use the following code:
record ExampleRecord(String s, int i) {} var decoder = Decoder.ofArray( Decoder.ofStructure( ExampleRecord.class, Decoder.ofString(StandardCharsets.UTF_8), Decoder.ofInt().withByteOrder(ByteOrder.LITTLE_ENDIAN))); byte[] bytes = ...; List<ExampleRecord> example = decoder.decode(ByteBuffer.wrap(bytes));
The jgvariant-tool
module contains a tool called jgvariant
that can be used to manipulate GVariant-formatted files from the command line. Its primary purpose is to enable the scripting of OSTree repository management tasks.
$ jgvariant ostree summary read ./jgvariant-ostree/src/test/resources/ostree/summary
Output:
{ "entries": [ { "ref": "mulkos/1.x/amd64", "value": { "checksum": "66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350", "metadata": { "fields": { "ostree.commit.timestamp": 1640537170 } }, "size": 214 } } ], "metadata": { "fields": { "ostree.summary.last-modified": 1640537300, "ostree.summary.tombstone-commits": false, "ostree.static-deltas": { "3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f-66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350": "03738040e28e7662e9c9d2599c530ea974e642c9f87e6c00cbaa39a0cdac8d44", "31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52": "f481144629474bd88c106e45ac405ebd75b324b0655af1aec14b31786ae1fd61", "31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52-3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f": "2c6a07bc1cf4d7ce7d00f82d7d2d6d156fd0e31d476851b46dc2306b181b064a" }, "ostree.summary.mode": "bare", "ostree.summary.indexed-deltas": true } } }
Superblock checksum 0...
, between commits 3...
and 6...
:
$ jgvariant ostree summary add-static-delta ./jgvariant-ostree/src/test/resources/ostree/summary 03738040e28e7662e9c9d2599c530ea974e642c9f87e6c00cbaa39a0cdac8d44 66ff167ff35ce87daac817447a9490a262ee75f095f017716a6eb1a9d9eb3350 3d3b3329dca38871f29aeda1bf5854d76c707fa269759a899d0985c91815fe6f
Superblock checksum f...
, between the empty commit and 3...
:
$ jgvariant ostree summary add-static-delta ./jgvariant-ostree/src/test/resources/ostree/summary f481144629474bd88c106e45ac405ebd75b324b0655af1aec14b31786ae1fd61 31c8835d5c9d2c6687a50091c85142d1b2d853ff416a9fb81b4ee30754510d52
Checksums can be given in either hex (64 digits) or a variant of Base64 (43 digits) where /
is replaced by _
. The latter format is used to identify the start and end commits of deltas as part of folder names below deltas/
in the OSTree repository itself.
You can build the tool either as a shaded JAR or as a native executable.
To build and run a shaded JAR:
$ mvn package -pl jgvariant-tool -am -Pshade $ java -jar jgvariant-tool/target/jgvariant-tool-*.jar ...
To build and run a native executable:
$ mvn package -pl jgvariant-tool -am -Pnative $ ./jgvariant-tool/target/jgvariant ...
You can also run the tool directly with Maven using the exec
profile:
$ mvn verify -pl jgvariant-tool -am -Pexec -Dexec.args="..."
<project> ... <dependencyManagement> ... <dependencies> <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-bom</artifactId> <version>0.1.8</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> ... </dependencyManagement> <dependencies> ... <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-core</artifactId> </dependency> <dependency> <groupId>eu.mulk.jgvariant</groupId> <artifactId>jgvariant-ostree</artifactId> </dependency> ... </dependencies> ... </project>
dependencies { ... implementation(platform("eu.mulk.jgvariant:jgvariant-bom:0.1.8") implementation("eu.mulk.jgvariant:jgvariant-core") implementation("eu.mulk.jgvariant:jgvariant-ostree") ... }