DFSG NEW Queue

DFSG, Licensing & New Packages Team

hyprgraphics 0.6.0-1

Package Information

DescriptionC++ graphics utility library for Hyprland

Hyprgraphics is a small C++ library with graphics / resource related utilities used across the hypr* ecosystem.

MaintainerDebian Hyprland Maintainers <team+hyprland@tracker.debian.org>
Changed ByChow Loong Jin <hyperair@debian.org>
Sponsorhyperair@debian.org
Distributionexperimental
Architectureany
VCSgit: https://salsa.debian.org/hyprland-team/hyprgraphics.git (browse)
Popcon Installs540
Binary NEWYes (new binary packages of a source already in sid)
Trackerhttps://tracker.debian.org/pkg/hyprgraphics
Uploaded5 hours ago

New Package Report

.changes◂
DateWed, 04 Nov 2026 22:40:25 +0800
Sourcehyprgraphics
Version0.6.0-1
Changed-ByChow Loong Jin <hyperair@debian.org>
Architecturesource amd64
Distributionexperimental
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-Listlibhyprgraphics-dev deb libdevel optional arch=any
libhyprgraphics5 deb libs optional arch=any
Sectionlibdevel
Priorityoptional
Componentmain
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/copyright is 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 has pkg_check_modules(deps ... libpng ...), and the installed hyprgraphics.pc publishes Requires.private: ... libpng .... libpng-dev appears 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-dev with libpng-dev in 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, one Files: * stanza (2024-2025 Hypr Development, BSD-3-clause) and a later Files: 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 says the University where upstream's LICENSE says the 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 $@ and hardening=+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@ and Restrictions: 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, packaged 0.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

Back to Dashboard | View all reviews for this package