Sebastian Schott writes: > * gnu/packages/photo.scm (rapid-photo-downloader): New variable. > --- > gnu/packages/photo.scm | 69 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 69 insertions(+) ... So I've managed to build this package on my system, which is a good start :) > +(define-public rapid-photo-downloader > + (package > + (name "rapid-photo-downloader") > + (version "0.9.18") > + (source (origin > + (method url-fetch) > + (uri (string-append "https://launchpad.net/rapid/pyqt/" > + version "/+download/" name "-" > + version ".tar.gz")) > + (sha256 > + (base32 > + "15p7sssg6vmqbm5xnc4j5dr89d7gl7y5qyq44a240yl5aqkjnybw")))) > + (build-system python-build-system) > + (native-inputs > + `(("file" ,file) > + ("intltool" ,intltool) > + ("gdk-pixbuf" ,gdk-pixbuf) > + ("gexiv2" ,gexiv2) > + ("gobject-introspection" ,gobject-introspection) > + ("gst-libav" ,gst-libav) > + ("gst-plugins-base" ,gst-plugins-base) > + ("gst-plugins-good" ,gst-plugins-good) > + ("gstreamer" ,gstreamer) > + ("libgudev" ,libgudev) > + ("libnotify" ,libnotify) > + ("libmediainfo" ,libmediainfo) > + ("usdisks" ,udisks))) If any of these packages above are used at runtime, move them to the inputs section. > + (propagated-inputs > + `(("python-pyqt" ,python-pyqt) > + ("python-pygobject" ,python-pygobject) > + ("python-gphoto2" ,python-gphoto2) > + ("python-pyzmq" ,python-pyzmq) > + ("python-tornado" ,python-tornado) > + ("python-psutil" ,python-psutil) > + ("python-pyxdg" ,python-pyxdg) > + ("python-arrow" ,python-arrow) > + ("python-dateutil" ,python-dateutil) > + ("python-easygui" ,python-easygui) > + ("python-colour" ,python-colour) > + ("python-pymediainfo" ,python-pymediainfo) > + ("python-sortedcontainers" ,python-sortedcontainers) > + ("python-rawkit" ,python-rawkit) > + ("python-requests" ,python-requests) > + ("python-colorlog" ,python-colorlog) > + ("python-pyprind" ,python-pyprind) > + ("python-tenacity" ,python-tenacity))) So I'm guessing this works, but one alternative to making all these packages propagated inputs, is to wrap the relevant executables in the package with specific environment variables. This has some advantages, as it doesn't require pushing all these packages in to the users profile, and often it means you can run the package directly from the store, without having to install it in to a profile. Take a look at the package for Rhythmbox as an example [1]. 1: http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/gnome.scm#n5035 > + (arguments > + `(#:phases (modify-phases %standard-phases > + (add-after 'unpack 'patch-libmediainfo > + (lambda _ > + (substitute* "raphodo/metadatavideo.py" > + (("pymedia_library_file = 'libmediainfo.so.0'") > + (string-append "pymedia_library_file = '" > + (assoc-ref %build-inputs "libmediainfo") > + "/lib/libmediainfo.so.0'")))))))) > + (home-page "https://www.damonlynch.net/rapid/") > + (synopsis "Import photos and videos from cameras, phones and memory cards") > + (description "Import photos and videos from cameras, phones and memory cards and generate meaningful file and folder names.") > + (license license:gpl2+))) > + > (define-public libraw > (package > (name "libraw") Thanks for sending these patches :) Chris