Review: hyprgraphics 0.6.0-2
Package Information
| Description | C++ graphics utility library for Hyprland Hyprgraphics is a small C++ library with graphics / resource related utilities used across the hypr* ecosystem. |
|---|---|
| Maintainer | Debian Hyprland Maintainers <team+hyprland@tracker.debian.org> |
| Changed By | Chow Loong Jin <hyperair@debian.org> |
| Sponsor | hyperair@debian.org |
| Distribution | experimental |
| Architecture | any |
| VCS | git: https://salsa.debian.org/hyprland-team/hyprgraphics.git (browse) |
| Popcon Installs | 540 |
| Binary NEW | Yes (new binary packages of a source already in sid) |
| Tracker | https://tracker.debian.org/pkg/hyprgraphics |
| Uploaded | 3 days ago |
New Package Report
.changes
| Date | Thu, 05 Nov 2026 00:49:23 +0800 |
|---|---|
| Source | hyprgraphics |
| Version | 0.6.0-2 |
| Changed-By | Chow Loong Jin <hyperair@debian.org> |
| Architecture | source amd64 |
| Distribution | experimental |
Changelog
hyprgraphics (0.6.0-2) experimental; urgency=medium . * d/control: Replace libspng-dev dependency with libpng-dev . hyprgraphics (0.6.0-1) experimental; urgency=medium . [ Carl Keinath ] * New upstream version 0.6.0 * d/*.dirs: remove dirs files * Rename package for SONAME bump * migrate to dh-compat 14 * wrap-and-sort debian dir * d/control: append uploaders . [ Chow Loong Jin ] * d/control: Add .pc dependencies to -dev package * d/control: Build-dep on libdav1d-dev
.dsc
| Component | main |
|---|---|
| Package-List | libhyprgraphics-dev deb libdevel optional arch=any libhyprgraphics5 deb libs optional arch=any |
| Section | libdevel |
| Priority | optional |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/hyprwm/hyprgraphics
Upstream-Name: hyprgraphics
Upstream-Contact: https://github.com/hyprwm/hyprgraphics/issues
Files:
*
Copyright:
2024-2025 Hypr Development
License: BSD-3-clause
Files:
debian/*
Copyright:
2025 Carl Keinath <carl.keinath@gmail.com>
License: BSD-3-clause
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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 days ago.
Report
DFSG NEW review for hyprgraphics version 0.6.0-2
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - 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: 1 found
Licensing
The tree is entirely BSD-3-Clause: the only licence file is the top-level LICENSE (Copyright 2024 Hypr Development), no other file in the tree carries a copyright or licence notice, and there is no vendored third-party code, so the licensing itself is DFSG-free and the two Files stanzas cover every file. But the standalone License: BSD-3-clause text in debian/copyright is not the licence in LICENSE: its clause 3 restricts the name of "the University" and its disclaimer speaks of "THE HOLDERS", so the file misreproduces the terms it claims to reproduce.
Packaging
Compat 14 with plain dh and hardening, source format 3.0 (quilt), one DEP-3 patch that still applies and is credited upstream, Build-Depends matching every CMake find_package/pkg_check_modules call, a -dev package whose Depends match the headers and the shipped .pc Requires/Requires.private, SOVERSION 5 matching libhyprgraphics5, install files covering every installed path, and an autopkgtest that rebuilds the upstream tests against the installed library. Standards-Version 4.7.4 matches the Policy on this system; no packaging problem worth reporting was found.
Issues
minor licensing 1. debian/copyright reproduces a different BSD-3-clause text than upstream's LICENSE: clause 3 names "the University" ◂
- Files:
debian/copyright:28,debian/copyright:36,LICENSE:15 - Basis: checked, in the package or with a reference tool
- Evidence: debian/copyright:
3. Neither the name of the University nor the names of its contributorsandIN NO EVENT SHALL THE HOLDERS OR; LICENSE:3. Neither the name of the copyright holder nor the names of its/contributors may be used to endorseandIN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS. - Problem: debian/copyright is the only licence record installed in the binary packages, and its text is evidently copied from another package's BSD-3 template: the non-endorsement clause names a party ("the University") that has nothing to do with this software, and the disclaimer drops "COPYRIGHT". The short name BSD-3-clause is right and no DFSG term is affected, but the file does not accurately reproduce the licence it declares.
- Fix: Replace the stand-alone BSD-3-clause text with upstream's LICENSE text verbatim, i.e. "Neither the name of the copyright holder nor the names of its contributors ..." and "IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE".
Verified ◂
- tests/resource/images/hyprland.jxl, the one file the scan flagged as unrecognised binary, is a JPEG XL copy of the Hyprland logo used as test data: tests/image.cpp iterates every file in tests/resource/images/ and loads it, which exercises the library's libjxl support. It is not a built artifact, its uncompressed siblings hyprland.png and hyprland.svg are in the package, and it is covered by Files: * (Hypr Development, BSD-3-clause).
- The other test images (hyprland.png, hyprland.jpg, hyprland.webp, hyprland.avif, hyprland.svg, and hyprland.symlink, which points at the PNG) are upstream test fixtures used by the same test; all covered by Files: *.
- Nothing else in the tree carries a copyright or licence notice: a case-insensitive grep for Copyright, (C), ©, SPDX-License-Identifier, Licensed under, GNU, Apache, Mozilla Public, public domain, MIT, warranty, liability and redistribute over src/, include/, tests/, nix/, .github/ and the top-level files matched only
BasedOnStyle: LLVM(.clang-format) andlicense = licenses.bsd3(nix/default.nix), so the whole tree is under LICENSE as the Files: * stanza says. - The only licence file in the tree is the top-level LICENSE (BSD-3-Clause, Copyright 2024 Hypr Development); there is no COPYING, NOTICE or AUTHORS and no vendored third-party code, since every image format uses a system library via pkg-config (libpng, libjpeg, libwebp, libjxl, libheif, librsvg-2.0, libmagic, cairo, pangocairo, pixman-1, libdrm, GLES, hyprutils).
- All of debian/ was read except debian/watch (checked separately, out of scope): debian/copyright is DEP-5 with Format, Source, Upstream-Name, Upstream-Contact, then Files: * and Files: debian/* in that order, so debian/ takes the later stanza and everything else the catch-all; no Files-Excluded is needed, the orig tarball's top-level contents matching the unpacked tree.
- debian/patches/allow-jpeg-loading-on-big-endian.patch has DEP-3 From/Date/Subject/Bug/Origin and is still current: quilt records it applied (.pc/applied-patches) against src/image/formats/Jpeg.cpp, where the code the patch removes is still upstream's.
- Packaging: debhelper-compat (= 14) with plain dh and DEB_BUILD_MAINT_OPTIONS=hardening=+all, source 3.0 (quilt); CMake sets SOVERSION 5 and the library package is libhyprgraphics5; the .install files cover usr/include/, lib.so, pkgconfig/.pc and lib.so., i.e. everything CMake installs; Build-Depends match every find_package/pkg_check_modules call in CMakeLists.txt; the -dev Depends cover the public headers' cairo, GLES3 and hyprutils includes and the shipped .pc's Requires (cairo hyprutils pangocairo glesv2) and Requires.private (libdrm pixman-1 libpng libjpeg libwebp librsvg-2.0 libmagic libjxl libheif); autopkgtest uses one stanza with @, @builddeps@ and allow-stderr and builds the upstream tests in $AUTOPKGTEST_TMP against the installed library; the changelog matches the tree and closes #1099341 on initial upload.
- Standards-Version 4.7.4: the reviewing system's Policy is 4.7.4.1, so the first two components match and this is not an issue.
- flake.lock was only grepped for licence wording, not read in full; the .pc/ tree was passed over as instructed.
- uscan found the packaged version as the newest upstream release (upstream
0.6.0, packaged0.6.0).
Not confirmed ◂
- The package was not built and autopkgtest not run, so the tests' pass/fail and the exact build result are assumed rather than observed.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader rejected this upload in response to the review.
Review Information
rejected — allocated to dfsg-uploader 2 days ago, started 2 days ago, completed 2 days ago.
Final Comment
The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.
The uploader said:
Fine I'll fix this one too.