golang-github-nix-community-go-nix 0.0~git20250101.4bdde67+ds-1
Package Information
| Description | Nix file formats and store primitives in Go (library) A collection of Go libraries reimplementing parts of the Nix package manager. It provides a reader and writer for the Nix ARchive (NAR) format with an interface modelled on archive/tar, a parser for .drv derivation files together with derivation path and output hash computation, and parsers for the .narinfo and .ls index formats. Also included are nixbase32 encoding, store path handling, a reference scanner and a badger-backed derivation store. Upstream describes the project as experimental. |
|---|---|
| Maintainer | Debian Go Packaging Team <team+pkg-go@tracker.debian.org> |
| Changed By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Sponsor | tsimonq2@debian.org |
| Distribution | unstable |
| Architecture | any all |
| VCS | git: https://salsa.debian.org/go-team/packages/golang-github-nix-community-go-nix.git (browse) |
| Closes | #1148637 |
| Tracker | https://tracker.debian.org/pkg/golang-github-nix-community-go-nix |
| Uploaded | 3 hours ago |
New Package Report
.changes
| Date | Mon, 21 Sep 2026 23:40:27 +0200 |
|---|---|
| Source | golang-github-nix-community-go-nix |
| Version | 0.0~git20250101.4bdde67+ds-1 |
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Architecture | source all amd64 |
| Distribution | unstable |
Changelog
golang-github-nix-community-go-nix (0.0~git20250101.4bdde67+ds-1) unstable; urgency=medium . * Initial release (Closes: #1148637)
.dsc
| Section | golang |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | golang-github-nix-community-go-nix-dev deb golang optional arch=all gonix deb utils optional arch=any |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/nix-community/go-nix Upstream-Name: go-nix Upstream-Contact: https://github.com/nix-community/go-nix/issues Files-Excluded: test/testdata/nar_1094wph9z4nwlgvsd53abfz8i117ykiv5dwnq9nnhz846s7xqd7d.nar_bin_arp test/testdata/nar_1094wph9z4nwlgvsd53abfz8i117ykiv5dwnq9nnhz846s7xqd7d.nar Comment: nar_..._bin_arp is a prebuilt ELF x86-64 executable lifted out of a Nix store path (its interpreter is /nix/store/7gx4kiv5m0i7d7qkixq2cwzbr10lvxwc-glibc-2.27/lib/ld-linux-x86-64.so.2), shipped with no source and no licence statement; the .nar beside it is the archive wrapping that same binary. Only these two files are removed: the rest of test/testdata holds .drv and .nix text fixtures that the derivation tests need, generated by test/testdata/build-fixtures.go. The pkg/nar tests that read the two removed files are excluded in debian/rules. Files: * Copyright: 2020 NumTide Ltd and contributors License: Apache-2.0 Comment: The Apache-2.0 appendix placeholder is filled in upstream with this holder; it is the only copyright statement in the tree. Files: debian/* Copyright: 2026 Juan Manuel Méndez Rey <juan.mendezr@proton.me> License: Apache-2.0 Comment: Debian packaging is licensed under the same terms as upstream License: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . https://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Comment: On Debian systems, the complete text of the Apache version 2.0 license can be found in "/usr/share/common-licenses/Apache-2.0".
DFSG Assistant LLM REVIEW 0 blocker, 0 important, 1 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 2 hours ago.
Report
DFSG NEW review for golang-github-nix-community-go-nix version 0.0~git20250101.4bdde67+ds-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The tree is Apache-2.0 throughout: LICENSE is the Apache 2.0 text with its appendix filled in as 'Copyright 2020 NumTide Ltd and contributors', and no other copyright or licence notice appears in any file. debian/copyright is DEP-5 with two stanzas (upstream tree, debian/*), the right holders, and the Apache-2.0 short name pointing at /usr/share/common-licenses. The one DFSG problem in the tree, a prebuilt x86-64 ELF and the NAR wrapping it in test/testdata, is documented under Files-Excluded and both files are genuinely absent; the two tests that read them are skipped.
Packaging
Clean, current packaging: debhelper compat 14 with dh-go named explicitly (with an override explaining why not dh-golang), dpkg-build-api 1, Standards-Version 4.7.4 (current), a machine-readable copyright with a documented repack, DEP-3 patches whose badger v4 bump matches the archive's 4.8.0, install/manpages files that match what dh_golang produces, the Built-Using and Static-Built-Using substvars that dh_golang populates, and an autopkgtest-pkg-go test that runs through the same rules override. The only defect found is in the Debian-written man page, which describes one option's behaviour incorrectly.
Issues
1. [minor] [packaging] gonix(1) says badger:// always opens an in-memory store, but the code calls the persistent-store constructor
-
Files:
debian/gonix.1:50-52,pkg/derivation/store/uri.go:25-26,pkg/derivation/store/badger.go:22-31 -
Basis: checked, in the package or with a reference tool
-
Evidence:
gonix.1:
and \fBbadger://\fR, which opens an in-memory store. Note that upstream documents \fBbadger:///\fIPATH\fR as an on-disk store, but the code ignores the path and always opens the store in memory.
uri.go:case "badger": return NewBadgerStore("")
badger.go:func NewBadgerStore(path string)callsbadger.Open(buildDefaultBadgerOptions(path)); the in-memory store is a separateNewBadgerMemoryStore()that adds.WithInMemory(true). -
Problem: The manual page states that badger:// yields an in-memory store, but the code calls the persistent constructor with an empty path; that the empty-path constructor is not the in-memory one is shown by the package's own NewBadgerMemoryStore adding WithInMemory(true). A user following the page therefore gets something other than an in-memory store (with badger's default persistent options an empty path is not a memory store), for an option Debian documents itself.
-
Fix: Either make uri.go return NewBadgerMemoryStore() for badger:// (and keep the page, forwarding the path-ignoring bug upstream), or correct gonix.1 to describe what the code does.
Verified
- Read all of debian/: control, rules, changelog, copyright, all three patches and series, the .install/.manpages files, both lintian overrides, gbp.conf, upstream/metadata, salsa-ci.yml, source/format.
- All upstream files (excluding .pc/ and debian/) were inventoried; the only copyright/licence statement in the tree is the Apache-2.0 appendix in LICENSE (
Copyright 2020 NumTide Ltd and contributors). A tree-wide grep for Copyright, (C), ©, SPDX-License-Identifier, Licensed under, GNU ... General Public, Apache License, Mozilla Public, public domain and All rights reserved matched nothing else (the remaining hits arebyte(c)in tests andtexlive-copyrightboxinside big.narinfo). - debian/copyright is DEP-5 with the exact Format URL;
Files: *names NumTide Ltd,Files: debian/*names the uploader, and the Apache-2.0 stand-alone paragraph refers to /usr/share/common-licenses/Apache-2.0, which exists. - Files-Excluded: test/testdata/nar_1094wph9...-qd7d.nar and its .nar_bin_arp companion are absent from the tree; the only tests reading them are TestReaderSmoketest (pkg/nar/reader_test.go:135) and TestWriterSmoketest (pkg/nar/writer_test.go:102), both skipped by debian/rules:10.
- test/testdata/*.drv and .drv.json are plain-text fixtures generated from the .nix files beside them by test/testdata/build-fixtures.go with nix-instantiate; cp1252.nix and latin1.nix are deliberately non-UTF-8 sources, covered by the lintian override. No built binaries were found in the tree.
- pkg/sqlite/*/query.sql.go are sqlc output (
// Code generated by sqlc. DO NOT EDIT.,source: query.sql), and query.sql and schema.sql for each subpackage are shipped, so the generator input is present. - Prescan author check: no copyright holder found in the tree that debian/copyright does not name.
- Build-Depends checked against the archive: dh-go 1.69 (provides the golang addon; dh-golang conflicts), golang-github-dgraph-io-badger-dev 4.8.0 (matching patch 0002), and dpkg-build-api (= 1), provided by dpkg-dev 1.23.11 and confirmed by dpkg-build-api(7) as the way to declare API level 1.
- Patches: 0001 and 0003 drop pkg/derivation/json_test.go and its nsf/jsondiff require (jsondiff is not packaged); with GO111MODULE=off the go.mod edits are inert, and 0002's badger v3→v4 import and require match Debian's badger 4.8.0. All three carry DEP-3 headers.
- compat 14: dh_auto_install installs into debian/tmp and the two .install files cover usr/bin/gonix and usr/share/gocode; dh_golang (read at /usr/bin/dh_golang) adds misc:Built-Using and misc:Static-Built-Using, so both fields declared in the gonix stanza are populated. dh_golang runs go test with arguments before the targets, so
-skipin debian/rules takes effect. - autopkgtest: autodep8's go generator runs /usr/bin/dh_golang_autopkgtest, whose
make -f debian/rules buildgoes through the override_dh_auto_test that skips the removed fixtures, so Files-Excluded does not break the test. - Standards-Version 4.7.4 has the first two components of the reviewing system's Policy 4.7.4.1, so it is current.
- gbp.conf's
dist = DEP14is a valid git-buildpackage setting: gbp's config default isdist, buildpackage maps it to pbuilder_dist, and buildpackage.py accepts 'DEP14'. - uscan found the packaged version as the newest upstream release (upstream
0.0~git20250101.4bdde67, packaged0.0~git20250101.4bdde67+ds). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed
- pkg/sqlite/nix_v10/schema.sql (and the other schema.sql files) contain comments identical to Nix's own schema source, e.g.
-- if not null, an assertion that the path is content-addressed; see ValidPathInfoand-- base16 representation. That suggests they were copied from Nix (LGPL-2.1-or-later, copyright Eelco Dolstra and contributors) without attribution; I could not check Nix's source or licence from the review system, so I did not report it as a copyright inaccuracy under the Apache-2.0Files: *stanza. - Whether kong accepts the
drvcommand's--drv-storeflag after theshowsubcommand, as gonix.1's synopsis shows it, could not be tested: kong is not installed on the reviewing system and the package cannot be run.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 2 hours ago.