hyprgraphics 0.6.0-1
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 | 5 hours ago |
New Package Report
.changes
| Date | Wed, 04 Nov 2026 22:40:25 +0800 |
|---|---|
| Source | hyprgraphics |
| Version | 0.6.0-1 |
| Changed-By | Chow Loong Jin <hyperair@debian.org> |
| Architecture | source amd64 |
| Distribution | experimental |
Changelog
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
| Package-List | libhyprgraphics-dev deb libdevel optional arch=any libhyprgraphics5 deb libs optional arch=any |
|---|---|
| Section | libdevel |
| Priority | optional |
| Component | main |
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 4 hours ago.
Report
DFSG NEW review for hyprgraphics version 0.6.0-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: 1 found
Licensing
The whole upstream tree is Hypr Development's own BSD-3-Clause code: LICENSE is the only licence file and no source file carries a separate notice, so the single Files: * stanza with License: BSD-3-clause matches it, and debian/* is correctly split out for Carl Keinath. The BSD text is included in full (BSD is not in /usr/share/common-licenses). Nothing non-free or of unclear provenance is shipped; the test images are the project's own logo and the binary tests/resource/images/hyprland.jxl is test data. Minor year drift in the copyright field is the only difference from the upstream LICENSE.
Packaging
Modern packaging: debhelper-compat 14 with plain dh $@, debian/source/format 3.0 (quilt), one DEP-3-headed patch, correct SONAME-5 binary package name, Multi-Arch: same on both binaries, an autopkgtest that builds the upstream tests against the installed library, gbp.conf, upstream/metadata and salsa-ci. Standards-Version 4.7.4 is current against Policy 4.7.4.1. One small dependency error: libspng-dev is depended on although the code uses libpng.
Issues
minor packaging 1. Build-Depends and libhyprgraphics-dev Depends name libspng-dev, but the code only uses libpng, whose -dev package is not listed ◂
- Files:
debian/control:24,debian/control:52,src/image/formats/Png.cpp:7,CMakeLists.txt:66,hyprgraphics.pc.in:10 - Basis: checked, in the package or with a reference tool
- Evidence: debian/control has
libspng-dev,in Build-Depends (line 24) and in libhyprgraphics-dev's Depends (line 52); the source includes<png.h>(Png.cpp), CMakeLists.txt haspkg_check_modules(deps ... libpng ...), and the installed hyprgraphics.pc publishesRequires.private: ... libpng ....libpng-devappears nowhere in debian/. - Problem: Nothing in the package uses libspng; the PNG support is libpng, whose headers and pkg-config file arrive only transitively through libcairo2-dev (Build-Depends) and through the same -dev package's libcairo2-dev dependency. So Build-Depends does not name a library the package compiles against (Policy 7.7 requires the field to list the packages needed to build), and libhyprgraphics-dev pulls in an unrelated library while its published Requires.private names libpng-dev.
- Fix: Replace
libspng-devwithlibpng-devin both Build-Depends and libhyprgraphics-dev's Depends (the upstream nix/default.nix has the same stale entry).
Verified ◂
- Read every file of debian/ in full (control, rules, changelog, copyright, gbp.conf, salsa-ci.yml, source/format, both .install files, patches/series and its one patch, tests/control, tests/upstream-tests, tests/CMakeLists.txt, upstream/metadata); .pc/ and debian/cargo-checksum.json were passed over and are not reported on.
- Inventoried the whole tree with glob (gitignore false, hidden true): 61 files, none of them a binary other than the seven test images. grep for Copyright, (C), ©, SPDX-License-Identifier, Licensed under, Permission is hereby granted, GNU General/Lesser Public, Apache License, Mozilla Public, public domain, All rights reserved found notices only in LICENSE and debian/copyright; no source file carries its own header.
- LICENSE:
BSD 3-Clause License,Copyright (c) 2024, Hypr Development. debian/copyright is DEP-5 with a correct Format URL, oneFiles: *stanza (2024-2025 Hypr Development, BSD-3-clause) and a laterFiles: debian/*stanza (2025 Carl Keinath, BSD-3-clause), plus a stand-alone BSD-3-clause License paragraph. The short name matches the text and the full text is present; the paragraph is the standard BSD-3 text (clause 3 saysthe Universitywhere upstream's LICENSE saysthe copyright holder; same licence, no term differs in effect). - tests/resource/images/hyprland.jxl: a JPEG XL image, test data. tests/image.cpp iterates every file in tests/resource/images/ and expects hyprland.jxl to load, or to fail only when JXL_FOUND is undefined; it is not a build product and has no source, and it is covered by
Files: *. - The other six files in tests/resource/images/ are the same Hyprland logo as PNG, JPEG, WebP, AVIF and SVG; hyprland.symlink is in fact a PNG (4096x4096) with a misleading extension, loaded by that loop to exercise content-based format detection. All are test data under
Files: *. - No embedded third-party code: grep for stb_image, vendor, third_party in the tree matched nothing but debian/control and nix/default.nix (the libspng mention); src/ (26 files) and include/ (9 headers) are the project's own code, and the only external code is the Debian libraries it links.
- The one patch, allow-jpeg-loading-on-big-endian.patch, is in series, has DEP-3 headers (From, Date, Subject, Bug, Origin) and is applied: the big-endian guard it deletes is absent from src/image/formats/Jpeg.cpp.
- Build and policy mechanics: debhelper-compat (= 14) with plain
dh $@andhardening=+all; no ${misc:Depends}/${shlibs:Depends} needed at compat 14; ${source:Synopsis} and ${source:Extended-Description} are genuine built-in substvars (deb-substvars(5)). Standards-Version 4.7.4 against Policy 4.7.4.1 (policy tool) is current. - Binary split: CMake SOVERSION 5 matches libhyprgraphics5; both packages are Multi-Arch: same; the .install files cover usr/include, lib*.so, pkgconfig/.pc in -dev and lib.so.* in the library package, i.e. exactly what the upstream install() rules produce.
- Autopkgtest: debian/tests/control runs upstream-tests with
Depends: @, @builddeps@andRestrictions: allow-stderr; the script builds debian/tests/CMakeLists.txt against the installed library and runs ctest, using only packages the build dependencies provide. - Changelog is coherent: 0.6.0-1 in experimental for the new upstream with the SONAME bump to 5, previous 0.5.1-2 in unstable, initial release closes #1099341; Vcs-* fields and Homepage match upstream.
- uscan found the packaged version as the newest upstream release (upstream
0.6.0, packaged0.6.0).
Not confirmed ◂
- Whether libhyprgraphics-dev should also depend on libdav1d-dev: the 0.6.0-1 changelog adds it to Build-Depends (presumably because libheif.pc needs dav1d when pkg-config resolves the build), but libheif-dev does not depend on libdav1d-dev and libheif.pc is not installed on the reviewing system, so I could not check whether the installed hyprgraphics.pc's Requires.private chain needs it.
- The test images are binary and were judged only by type and by the tests that load them; their provenance rests on the repository's own LICENSE.
- No build or test run was possible (read-only review); the build is assumed to succeed per the review instructions.
Proposed changes ◂
None.
Uploader's response to the LLM review
The rationale for libdav1d-dev is at https://salsa.debian.org/hyprland-team/hyprgraphics/-/commit/f62331affdd1f490076b7d8d3b5639e262aff424.
libspng-dev looks like either a mistake or maybe it was required in the past, but it's also present in earlier versions of libhyprgraphics-dev, so I'd like to just proceed with hyprgraphics in its current state for now and fix it in a future upload so I don't have to delete the git tag.
— Loong Jin Chow (hyperair), 3 hours ago