NixOS:master
← commiterate:update/sonar-scanner-cli
opened 12:47AM - 25 Jul 24 UTC
## Description of changes
<!--
For package updates please link to a changelo…g or describe changes, this helps your fellow maintainers discover breaking updates.
For new packages please briefly describe the package or provide a link to its homepage.
-->
* Update `sonar-scanner-cli` from 4.7.0.2747 ([release](https://github.com/SonarSource/sonar-scanner-cli/releases/tag/4.7.0.2747)) → 6.1.0.4477 ([release](https://github.com/SonarSource/sonar-scanner-cli/releases/tag/6.1.0.4477)).
* Change from pre-built binaries to source build using `maven.buildMavenPackage` ([docs](https://nixos.org/manual/nixpkgs/unstable/#maven-buildmavenpackage)).
* Options for `maven.buildMavenPackage` are based on the [`ktfmt` Nix package](https://github.com/NixOS/nixpkgs/tree/18c8da898c60e1e4a3612cd22137f255b1d87cca/pkgs/by-name/kt/ktfmt) and [`h2` Nix package](https://github.com/NixOS/nixpkgs/tree/18c8da898c60e1e4a3612cd22137f255b1d87cca/pkgs/by-name/h2/h2).
* Add support for aarch64 Linux + macOS (Darwin).
* Closes https://github.com/NixOS/nixpkgs/issues/328044.
* Fix license from GPL-3.0 to LGPL-3.0.
* Make auto-upgradable by `nix-update`.
* ~~The `pom.xml` patch throws in some potential wrenches. Currently asking upstream to lock these instead of us patching it in as it's mutually beneficial (https://github.com/SonarSource/sonar-scanner-cli/pull/185).~~
* Plugin versions are locked by the parent POM.
* Migrate from category hierarchy to name-based package directories (`pkgs/by-name`).
`sonar-scanner-cli` uses `maven-assembly-plugin` which produces a `{repository}/target/sonar-scanner-${project.version}.zip` that has the following contents:
```text
.
├── bin
│ ├── sonar-scanner
│ ├── sonar-scanner-debug
│ ├── sonar-scanner-debug.bat
│ └── sonar-scanner.bat
├── conf
│ └── sonar-scanner.properties
└── lib
└── sonar-scanner-cli-6.1-SNAPSHOT.jar
```
The new build-from-source strategy just does a Maven build then unzips this directory into `$out`.
I couldn't find a way to make `unzip` do something like "Extract here" so I need to unzip to `target/sonar-scanner-${version}` then move the files into `$out`.
Basic build + functionality testing:
```shell
% nix-build -A sonar-scanner-cli
# ...
/nix/store/cmz860kfmi7x0ks3yqd7a1ibpmxjdfhm-sonar-scanner-cli-6.1.0.4477
% /nix/store/cmz860kfmi7x0ks3yqd7a1ibpmxjdfhm-sonar-scanner-cli-6.1.0.4477/bin/sonar-scanner --help
usage: sonar-scanner [options]
Options:
-D,--define <arg> Define property
-h,--help Display help information
-v,--version Display version information
-X,--debug Produce execution debug output
% /nix/store/cmz860kfmi7x0ks3yqd7a1ibpmxjdfhm-sonar-scanner-cli-6.1.0.4477/bin/sonar-scanner-debug --help
Executing SonarScanner CLI in Debug Mode
SONAR_SCANNER_DEBUG_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
SONAR_SCANNER_JAVA_OPTS=" -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
Listening for transport dt_socket at address: 8000
```
## Things done
- Built on platform(s)
- [ ] x86_64-linux
- [ ] aarch64-linux
- [ ] x86_64-darwin
- [x] aarch64-darwin
- For non-Linux: Is sandboxing enabled in `nix.conf`? (See [Nix manual](https://nixos.org/manual/nix/stable/command-ref/conf-file.html))
- [ ] `sandbox = relaxed`
- [x] `sandbox = true`
- [x] Tested, as applicable:
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)
- or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
- made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [x] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [x] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [24.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2411.section.md) (or backporting [23.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) and [24.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2405.section.md) Release notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module
- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md).
<!--
To help with the large amounts of pull requests, we would appreciate your
reviews of other pull requests, especially simple package updates. Just leave a
comment describing what you have tested in the relevant package/service.
Reviewing helps to reduce the average time-to-merge for everyone.
Thanks a lot if you do!
List of open PRs: https://github.com/NixOS/nixpkgs/pulls
Reviewing guidelines: https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#reviewing-contributions
-->
---
Add a :+1: [reaction] to [pull requests you find important].
[reaction]: https://github.blog/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/
[pull requests you find important]: https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+sort%3Areactions-%2B1-desc
###### Maintainer pings
@peterromfeldhk