Hi friendly people of guix,

I have a custom package (definition below) which wraps a single python script. This has worked well, but I noticed that since I ran guix pull and reconfigured my system at the end of january, my python script doesn't get the right shebang anymore.

Where my python script used to get a shebang like

#!/gnu/store/...-python-wrapper-3.11.14/bin/python

It's now just

#!python

which doesn't work.

My python package still uses a setup.py. I also wrap the executable script using 'wrap-program' to set a few environment variables, perhaps this has an impact?

During the build, it looks like patch-shebangs is working as intended, from the output:

patch-shebang: ./listen_dbus.py: changing `/usr/bin/python' to `/gnu/store/81l90y4w90wf8c5gj0042x3pikadzchm-python-wrapper-3.11.14/bin/python'

but it seems that during one of the next phases, the shebang is changed again (could this be related to wrap-program?). I noticed that there is now also 'wrap-script', which looks like what I need when I read the documentation. However, if I change my package to use wrap-script, the build fails with an exception “no-interpreter-found”

thank you for reading this far!

Thomas

(define-public backup-daemon
  (package
   (name "backup-daemon")
   (version "1.0")
   (source (local-file "./backup-daemon" #:recursive? #t))
   (build-system python-build-system)
   (inputs
    `(("rsnapshot" ,rsnapshot)
      ("python-dbus" ,python-dbus)
      ("python-pygobject" ,python-pygobject)
      ("glib" ,glib)))
   (arguments
    `(#:tests? #f
      #:phases
       (modify-phases %standard-phases
         (add-after 'install 'wrap-executable
           (lambda* (#:key inputs outputs #:allow-other-keys)
             (let ((out  (assoc-ref outputs "out"))
                   (rsnapshot (assoc-ref inputs "rsnapshot"))
                   (glib (assoc-ref inputs "glib")))
(wrap-program (string-append out "/bin/listen_dbus.py")
                 `("PATH" ":" prefix
                   (,(string-append rsnapshot "/bin")))
                 `("GI_TYPELIB_PATH" ":" prefix
(,(string-append glib "/lib/girepository-1.0")))))))))) (synopsis "Script to make weekly/monthly/yearly rsnapshot backups")
   (description "The backup daemon takes a config file for rsnapshot,
a partition UUID, and a backup directory as command line arguments.
When started, it listens for DBus signals from UDisks to detect if a
partition with the correct UUID is mounted.  When the desired
partition is mounted, it runs rsnapshot with the given
configuration.")
   (home-page "file:///home/thomas")
   (license license:gpl3+)))

Reply via email to