golang-github-diskfs-go-diskfs 1.9.4+ds-1
Package Information
| Description | manipulate disks, disk images and filesystems natively in Go (library) go-diskfs manipulates disks, disk images and filesystems entirely in Go, without mounting anything and without shelling out to fdisk, gdisk, mkfs.vfat, mtools or libguestfs, and so without needing root. It can read, create and modify MBR and GPT partition tables, and read and write FAT32, ISO 9660 (including Rock Ridge and El Torito boot images), squashfs and ext4 filesystems, working either on a whole image or block device or within a single partition. |
|---|---|
| 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 | all |
| VCS | git: https://salsa.debian.org/go-team/packages/golang-github-diskfs-go-diskfs.git (browse) |
| Closes | #1148636 |
| Tracker | https://tracker.debian.org/pkg/golang-github-diskfs-go-diskfs |
| Uploaded | 5 hours ago |
New Package Report
.changes
| Distribution | unstable |
|---|---|
| Date | Tue, 22 Sep 2026 03:47:09 +0200 |
| Source | golang-github-diskfs-go-diskfs |
| Version | 1.9.4+ds-1 |
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Architecture | source all |
Changelog
golang-github-diskfs-go-diskfs (1.9.4+ds-1) unstable; urgency=medium . * Initial release (Closes: #1148636)
.dsc
| Section | golang |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | golang-github-diskfs-go-diskfs-dev deb golang optional arch=all |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://github.com/diskfs/go-diskfs Upstream-Name: go-diskfs Upstream-Contact: https://github.com/diskfs/go-diskfs/issues Files-Excluded: filesystem/squashfs/testdata/tools examples/create-iso-from-folder/my-folder/gopher.gif Comment: filesystem/squashfs/testdata/tools holds mksquashfs and unsquashfs as checked-in ELF x86-64 executables, dynamically linked and not stripped, shipped with no source, no licence statement and no provenance note anywhere in the repository. gopher.gif is the Go gopher artwork, shipped without attribution or a licence statement. Both are removed from the source tarball. The remaining binary filesystem images under testdata are kept: each of those directories carries a README and a generator script (buildtestsqs.sh, buildtestiso.sh, mkfat32.sh, buildimg.sh), so their preferred form for modification is present. Files: * Copyright: 2017 Avi Deitcher License: Expat Files: debian/* Copyright: 2026 Juan Manuel Méndez Rey <juan.mendezr@proton.me> License: Expat Comment: Debian packaging is licensed under the same terms as upstream License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 1 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-diskfs-go-diskfs version 1.9.4+ds-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: No
- Issues: 0 blocker, 1 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: 12 found
Licensing
The whole tree is Expat (MIT) with a single holder: the only copyright notice anywhere is LICENSE ("MIT License / Copyright (c) 2017 Avi Deitcher"), and an exhaustive case-insensitive search for Copyright, (C), (c), SPDX-License-Identifier, Licensed under, GNU General Public, GNU Lesser, Apache License, Mozilla Public, public domain, All rights reserved and licence words in all 267 files (READMEs and docs included) found no other holder, licence or non-free term. debian/copyright is DEP-5, matches that exactly (Files: * -> 2017 Avi Deitcher, Expat; Files: debian/* -> the packager), and reproduces the full Expat text, which is required because it is not in /usr/share/common-licenses. The two Files-Excluded entries (an unlicensed check-in of mksquashfs/unsquashfs and the Go gopher gif) are justified and neither file is in the tarball; the binary testdata that is kept is fixture data whose generator script and README are shipped beside it.
Packaging
Standard, current Go packaging: compat 14, dh-go with --with=golang, XS-Go-Import-Path, Multi-Arch: foreign, Testsuite: autopkgtest-pkg-go, dpkg-build-api (= 1), correct dependencies (every name exists, and Debian's versions meet go.mod), sane changelog and Vcs-* fields. One thing a sponsor would require fixed: override_dh_auto_test ends in || true, so no test failure can ever fail the build, and the reason given for it (the excluded prebuilt mksquashfs binaries) does not apply to this upstream version - the tests that actually fail are the ext4/fat32/disk ones whose fixtures are generated by scripts that call docker. Otherwise clean, apart from a minor point about relying on debhelper's implicitly activated single-binary addon.
Issues
1. [important] [packaging] dh_auto_test -- -short || true discards every test result, and the reason given for it is not the reason the tests fail
-
Files:
debian/rules:9-14,filesystem/ext4/common_test.go,filesystem/ext4/testdata/buildimg.sh,filesystem/fat32/common_test.go,filesystem/fat32/testdata/mkfat32.sh,disk/disk_test.go,filesystem/squashfs/finalize_test.go:166-190 -
Basis: checked, in the package or with a reference tool
-
Evidence:
debian/rules:9-14:
override_dh_auto_test: # The squashfs tests shell out to mksquashfs/unsquashfs, which upstream # shipped as prebuilt binaries; those are excluded from the source tarball # (see debian/copyright Files-Excluded). Integration tests need docker. dh_auto_test -- -short || trueNo test or source file outside the
testdata/generator scripts invokes mksquashfs or unsquashfs, and every docker call in the tests is gated:filesystem/squashfs/finalize_test.go:166// only do this test if os.Getenv("TEST_IMAGE") contains a real image for integration testing/if intImage == "" {/return, withintImage = os.Getenv("TEST_IMAGE")at line 18; the same guard is in iso9660 (combined_xorriso_test.go:185, joliet_xorriso_test.go:178, rockridge_xorriso_test.go:211), squashfs and fat32 (fat32_test.go:458), gpt (table_test.go:296) and mbr (table_test.go:283).TEST_IMAGEis never set by the build, so those paths are not reached. The unguarded, always-run paths are the fixture generators:filesystem/ext4/common_test.goTestMainrunsexec.Command("sh", "buildimg.sh")andos.Exit(1)on error;filesystem/fat32/common_test.goTestMainrunsexec.Command("sh", "mkfat32.sh")and exits 1 likewise;disk/disk_test.go("whole disk" subtest) runsexec.Command("sh", "mkfat32.sh", tmpDir)andt.Fatalfs. Those scripts only work through docker:filesystem/ext4/testdata/buildimg.shdoescat << "EOF" | docker run -i --rm -v $PWD/dist:/data -w /data --privileged alpine:3.22thenapk --update add e2fsprogs e2fsprogs-extra, andfilesystem/fat32/testdata/mkfat32.shdoes the same. The fixtures they would produce are absent (filesystem/ext4/testdata/.gitignoreis justdist/), and docker is not installed in a build chroot, so thefilesystem/ext4,filesystem/fat32anddisktests fail on every build, and|| trueis what lets the build succeed. -
Problem: The upstream suite is run but its result is not a build gate: a real regression in any package would still build and be uploaded. The comment states a cause that no longer exists in this version (the excluded prebuilt unsquashfs/mksquashfs are not used by any test, and the integration tests that do need docker are skipped without TEST_IMAGE), which hides the actual cause from anyone reading debian/rules later. The same fixture generators are what an autopkgtest would run, so this also puts the package's migration to testing at risk.
-
Fix: Drop
|| trueand make the docker dependence explicit instead: patch theTestMainfunctions (ext4, fat32) and disk_test.go's "whole disk" subtest to skip whendockeris not in PATH - the right upstream fix, and small enough to forward - or, failing that, restrict the test run to the packages that can pass in a build environment. Correct the comment to name the real cause. Do not leave the whole suite's exit status ignored.
2. [minor] [packaging] debian/rules depends on debhelper's implicitly activated single-binary addon for its post-install find
-
Files:
debian/rules:16-20,debian/control:11 -
Basis: checked, in the package or with a reference tool
-
Evidence:
debian/rules:16-20:
execute_after_dh_auto_install: # Four testdata directories carry a .gitignore listing build outputs that # upstream does not ship. The outputs are genuinely absent; only the # .gitignore files come along, and they mean nothing in a binary package. find debian/golang-github-diskfs-go-diskfs-dev -name .gitignore -deleteThat path is dh_auto_install's destdir only because of the single-binary addon. debhelper 14.5, debhelper-compat-upgrade-checklist(7), v14: "The dh_auto_install command now unconditionally uses --destdir=debian/tmp by default. The special-case for source packages building a single binary package is now moved to single-binary dh addon. Note, this add-on is activated by default in compat 14 but not in compat 15" and "The dh sequencer will warn if the single-binary addon is implicitly activated ... Maintainers are urged to either explicitly activate the single-binary addon to preserve the existing behaviour (e.g., by adding dh-sequence-single-binary to Build-Depends), or explicitly passing --destdir to dh_auto_install if used and then passing --without single-binary to dh".
-
Problem: The rule works today only through a transitional debhelper behaviour that dh announces with a warning on every build, and it will silently stop matching anything at compat 15, when the add-on is no longer implicit. The .gitignore files installed into /usr/share/gocode/src/.../testdata/ are harmless in themselves, so the failure would be quiet.
-
Fix: Add
dh-sequence-single-binaryto Build-Depends to pin the behaviour debian/rules assumes, or pass--destdir=debian/golang-github-diskfs-go-diskfs-devto dh_auto_install and--without single-binaryto dh.
Verified
- Coverage: every path outside
.pc/anddebian/(267 files) was enumerated with glob and searched case-insensitively for licence and copyright wording; everyLICENSE/COPYING/NOTICE/AUTHORS-type file was read (LICENSEis the only one); all ofdebian/was read; the binary files below were identified from the generator scripts and READMEs beside them, not opened. debian/copyrightis machine-readable (correct 1.0Format:), oneFiles: *(2017 Avi Deitcher, Expat) plusFiles: debian/*(2026 Juan Manuel Mendez Rey, Expat), and the full Expat text is present as a stand-aloneLicense: Expatparagraph, which is required as Expat is not in /usr/share/common-licenses.- The only copyright notice in the tree is
LICENSElines 1-3 (MIT License/Copyright (c) 2017 Avi Deitcher), matchingFiles: *; the prescan's author check over 267 files likewise found every holder named. Files-Excludednamesfilesystem/squashfs/testdata/toolsandexamples/create-iso-from-folder/my-folder/gopher.gif; a glob for**/tools/*,**/*.gif,**/*.png,**/*.jpgfinds nothing, so neither is still in the tree. No ELF, .jar, .class, .so, .dll, .pyc, PDF or minified JS/CSS remains.- Prescan binary file
filesystem/iso9660/testdata/9660.iso: test fixture, generated by thetestdata/buildtestiso.shshipped beside it (xorriso under docker) and described intestdata/README.md- preferred form present. - Prescan binary file
filesystem/iso9660/testdata/rockridge.iso: same generator (testdata/buildtestiso.shproduces both9660.isoandrockridge.iso). - Prescan binary file
filesystem/iso9660/testdata/volrecords.iso: 8192-byte excerpt of ISO volume descriptors, reproducible with thedd if=...iso of=volrecords.iso bs=2048 count=4 skip=16documented intestdata/README.md; the provenance note (a Ubuntu live-server ISO) is a description of test data, not a licence term. - Prescan binary files
filesystem/squashfs/testdata/dir_read.sqs,file.sqs,file2_uncompressed.sqs,file_uncompressed.sqs,read_test.sqs: test fixtures generated bytestdata/buildtestsqs.sh(mksquashfs under docker) and listed intestdata/README.md, withlist.txtandread_test.md5sumsproduced by the same script - preferred form present. - Prescan binary files
partition/gpt/testdata/gpt.imgandpartition/gpt/testdata/gpt_partition.dat: fixtures;partition/gpt/testdata/README.mdgives the exactsgdisk/ddcommands that produce both - preferred form present. - Prescan binary files
partition/mbr/testdata/mbr.imgandpartition/mbr/testdata/mbr_partition.dat: fixtures;partition/mbr/testdata/README.mdgives the exactsfdisk/mkfs.vfat/ddcommands that produce both - preferred form present. filesystem/ext4/crc/crc16.go,filesystem/ext4/crc/crc32.go,filesystem/ext4/md4/md4.goandfilesystem/ext4/dirhash.gocarry no separate copyright or licence notice; they are reimplementations of standard ext4/TEA/MD4/CRC algorithms, andfilesystem/ext4/checksum.go:14cites the e2fsprogslib/ext2fs/csum.cthey were written from, so nothing in the package suggests a copied file with an unstated licence.debian/controldependencies all exist and are satisfiable:golang-github-djherbis-times-dev1.6.0,golang-github-klauspost-compress-dev1.20.0,golang-github-ulikunitz-xz-dev0.5.15,golang-github-elliotwutingfeng-asciiset-dev,golang-go/golang-any1.27 anddh-go1.69 in the archive;golang-github-anchore-go-lzo-devis not yet in the archive but is in NEW as the binary ofgolang-github-anchore-go-lzo0.1.1-1, so it is not a fault (go.mod requires 0.1.0). Debian's versions are equal to or newer than every requirement ingo.mod, and dh-golang's defaultGO111MODULE=off(read inBuildsystem/golang.pm,_set_go111module) means those requirements are not resolved in any case.Standards-Version: 4.7.4against Policy 4.7.4.1 - current enough, not an issue.Build-Depends: dpkg-build-api (= 1)is a valid level (dpkg-build-api(7): "This is the recommended level. Since dpkg 1.22.0"); that level defaultsRules-Requires-Roottono, so omitting the field is correct.--with=golangtogether withBuild-Depends: dh-gois right: dh-go 1.69 provides the addon namedgolangandConflicts: dh-golang, so the single override indebian/source/lintian-overridesis legitimate.debian/rulesuses no deprecated construct: at compat 14 debhelper adds relationship substvars itself (so naming only${misc:Depends}is fine) anddhskipsoverride_dh_auto_testunderDEB_BUILD_OPTIONS=nocheck.Testsuite: autopkgtest-pkg-gowith nodebian/tests/controlis correct: autodep8 generatesTest-Command: /usr/bin/dh_golang_autopkgtestfrom it (read/usr/share/autodep8/support/go/generate, whose detect matchesgolang-(go|any)indebian/control).debian/source/formatis3.0 (quilt)with nodebian/patches/and an empty.pc/applied-patches- consistent; no patch needs DEP-3 headers or forwarding.debian/changelog(1.9.4+ds-1, unstable, initial release closing #1148636, consistent date),debian/upstream/metadata,debian/gbp.confanddebian/salsa-ci.ymlare present and well-formed. Nodebian/install,links,docsor maintainer scripts are needed for a Go library.- uscan found the packaged version as the newest upstream release (upstream
1.9.4, packaged1.9.4+ds).
Not confirmed
- What
Testsuite: autopkgtest-pkg-gowill do with the failing tests:/usr/bin/dh_golang_autopkgtestcomes from dh-go, which is not installed on the reviewing system, so its behaviour could not be read. If it runsgo testover all packages, the autopkgtest will fail for the same docker reason the build tests do; if it restricts itself, it may pass. - Whether
filesystem/ext4/md4/md4.go(and the ext4 hash code infilesystem/ext4/dirhash.go) is a transliteration of the half-MD4/TEA code in the Linux kernel'sfs/ext4/hash.c(GPL-2.0) or of e2fsprogs, which would need attribution and a licence notice: neither source is on this system and no available tool can fetch it, so this rests on the shape of the code alone and is raised as a question for upstream, not as a finding. - No build or test run was performed (read-only review), so the pass/fail state of the suite outside the docker-dependent packages is inferred from reading the test code, not observed.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 2 hours ago.