Giacomo Leidi writes: > * gnu/packages/image.scm (lodepng): New variable. [...] > +(define-public lodepng > + ;; The project doesn't seem to use any > + ;; kind of meaningful versioning scheme. > + (let ((commit "5a0dba103893e6b8084be13945a826663917d00a") > + (revision "1") > + (version "0.0.0")) There is a LODEPNG_VERSION_STRING in lodepng.cpp, can you set the "version" variable here to that? > + (package > + (name "lodepng") > + (version (git-version version revision commit)) > + (source (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/lvandeve/lodepng") > + (commit commit))) > + (sha256 > + (base32 > + "0nvlba82mf4n7xfc3rz2g9wwgnrxpjw64p5dsjmj2r06g5m4l38a")) > + (file-name (git-file-name name version)))) > + (build-system gnu-build-system) > + (arguments > + '(#:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (replace 'build > + (lambda _ > + (setenv "CXXFLAGS" "-fPIC") > + (invoke "make" "lodepng.o") > + (invoke "make" "lodepng_util.o") > + (invoke "ar" "rv" "liblodepng.a" "lodepng.o" "lodepng_util.o") > + (invoke "g++" "-fPIC" "-O3" > + "-o" "liblodepng.so" > + "-shared" "lodepng.o" "lodepng_util.o") > + #t)) > + (replace 'check > + (lambda _ > + (invoke "make" "unittest") > + (invoke "./unittest") > + #t)) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (doc (string-append out "/share/doc")) > + (lib (string-append out "/lib")) > + (include (string-append out "/include"))) > + (install-file "lodepng.h" include) > + (install-file "lodepng_util.h" include) > + (install-file "liblodepng.a" lib) We try to avoid static libraries in Guix, so no need to install this file. Otherwise LGTM.