On Sun Jan 8, 2023 at 11:02 AM GMT, Gottfried wrote: > How can I update it myself? Clone the source code: git clone https://git.sv.gnu.org/git/guix.git cd guix Create a new branch to make your changes in: git branch wip-update-paps Now you can either use a git "worktree" (a new directory for your branch) or the current directory to edit the branch: git checkout wip-update-paps # to use the current directory git worktree add wip-update-paps # i prefer to use a new directory If you choose to use a worktree, make sure to cd there: cd wip-update-paps Build the source code, to make sure everything's working alright: ./bootstrap ./configure --localstatedir=/var make -j$(nproc) # using multiple jobs makes the build process *much* faster Now figure out where the package is: guix show paps # ---8<--- # location: gnu/packages/pdf.scm:1459:2 # ---8<--- Open up that file: (define-public paps (package (name "paps") (version "0.7.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/dov/paps/releases/download/v" version "/paps-" version ".tar.gz")) (sha256 (base32 "1z1w1fg2bvb8p92n1jlpqp3n9mq42szb2mqhh4xqmmnmfcdkpi9s")))) (build-system gnu-build-system) (inputs (list pango)) (native-inputs (list intltool pkg-config)) (home-page "https://github.com/dov/paps") (synopsis "Pango to PostScript converter") (description "Paps reads a UTF-8 encoded file and generates a PostScript language rendering of the file through the Pango Cairo back end.") (license license:lgpl2.0+))) Change the ``version'' number to the latest version: (version "(***VERSION***)") Now, Guix verifies downloaded code using a hash to check whether it's been corrupted or tampered with, so we need to change that too. To get the new hash, use ``guix download'': guix download https://github.com/dov/paps/releases/download/v(***VERSION***)/paps-(***VERSION***).tar.gz This will print out a string that looks a bit like what's currently in the (sha256 (base32 "...")). Replace that string with the one from ``guix download'' to update the hash. Now, rebuild: make -j$(nproc) We can use ``./pre-inst-env'' to test out our changes: ./pre-inst-env guix build paps It'll probably fail with the error you got before, so try adding the needed autotools dependencies to native-inputs: (native-inputs (list autoconf automake intltool libtool m4 pkg-config)) If that doesn't work, try adding gnu-gettext, too: (native-inputs (list autoconf automake gnu-gettext intltool libtool m4 pkg-config)) Now build and test again: make -j$(nproc) ./pre-inst-env guix build paps If it works, you can send it as a patch to the Guix mailing list. Follow the instructions on 's first two pages to set up Git's email features, but *don't do anything else from there*. Now you need to commit your change: git commit Your commit message should look something like this: gnu: paps: Update to (***VERSION***). * gnu/packages/pdf.scm (paps): Update to (***VERSION***). This is the typical GNU commit message format, called ChangeLog. Now use ``git send-email'' to send the patch to guix-patches (see for more information): git send-email -1 --base=master --to=guix-patches@gnu.org A patch email should appear on the Guix mailing list, ready to be applied by the maintainers :) -- (