Re: guix refresh --update Removes Needed Dependencies

2024-02-10 Thread Ricardo Wurmus


"jgart"  writes:

> Hi Guixers,
>
> `guix refresh --update` removes Tex Dependencies that are needed. This makes 
> it more tedious to update packages :(

“guix refresh” considers the importers’ output to be authoritative.  Can
the Python importer be improved to discover the need for TeX things?
(If not the whole list of packages perhaps a collection package.)

In the CRAN importer we routinely check the contents of Makefiles,
configure scripts, etc to detect otherwise undeclared dependencies.
Perhaps the pypi importer could do something similar.

-- 
Ricardo



Re: guix refresh --update Removes Needed Dependencies

2023-11-22 Thread Efraim Flashner
On Wed, Nov 22, 2023 at 10:45:48PM +0100, Ludovic Courtès wrote:
> Hi jgart,
> 
> "jgart"  skribis:
> 
> > ./pre-inst-env guix refresh --update python-sphinx
> 
> [...]
> 
> > -   ;; The Sphinx LaTeX library '\RequirePackage' or \\usepackage
> > -   ;; these:
> > -   texlive-amsfonts ;amsmath, amssymb, amstext
> > -   texlive-amsmath
> > -   texlive-capt-of
> > -   texlive-carlisle ;remreset
> 
> To avoid this problem one can add package properties such as
> ‘updater-extra-native-inputs’ in this case:
> 
>   
> https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-refresh.html#index-updater_002dextra_002dinputs_002c-package-property
> 
> However, the way it’s implemented right now, you have to list the name
> of every input that should be preserved by ‘guix refresh -u’, which is
> inconvenient in this particular case because there are many of them.
> 
> I can think of two ways to improve on that:
> 
>   1. Use one of the ‘texlive-scheme-*’ packages instead of this long
>  list.  :-)
> 
>   2. Change the code to interpret extra inputs are regexps instead of
>  names.

I like both ideas

-- 
Efraim Flashner  רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: guix refresh --update Removes Needed Dependencies

2023-11-22 Thread Ludovic Courtès
Hi jgart,

"jgart"  skribis:

> ./pre-inst-env guix refresh --update python-sphinx

[...]

> -   ;; The Sphinx LaTeX library '\RequirePackage' or \\usepackage
> -   ;; these:
> -   texlive-amsfonts ;amsmath, amssymb, amstext
> -   texlive-amsmath
> -   texlive-capt-of
> -   texlive-carlisle ;remreset

To avoid this problem one can add package properties such as
‘updater-extra-native-inputs’ in this case:

  
https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-refresh.html#index-updater_002dextra_002dinputs_002c-package-property

However, the way it’s implemented right now, you have to list the name
of every input that should be preserved by ‘guix refresh -u’, which is
inconvenient in this particular case because there are many of them.

I can think of two ways to improve on that:

  1. Use one of the ‘texlive-scheme-*’ packages instead of this long
 list.  :-)

  2. Change the code to interpret extra inputs are regexps instead of
 names.

Thoughts?

Ludo’.



Re: guix refresh --update Removes Needed Dependencies

2023-11-22 Thread Csepp


"jgart"  writes:

> Hi Guixers,
>
> `guix refresh --update` removes Tex Dependencies that are needed. This makes 
> it more tedious to update packages :(
>
> See the diff below which was the result of running:
>
> ./pre-inst-env guix refresh --update python-sphinx
>
> Diff:
>
> [jgart@fedora guix] [env]$ git diff
> diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
> index eee1f1c4a8..92658a3632 100644
> --- a/gnu/packages/sphinx.scm
> +++ b/gnu/packages/sphinx.scm
> @@ -64,14 +64,14 @@ (define-module (gnu packages sphinx)
>  (define-public python-sphinx
>(package
>  (name "python-sphinx")
> -(version "5.1.1")
> +(version "7.2.6")
>  (source
>   (origin
> (method url-fetch)
> (uri (pypi-uri "Sphinx" version))
> (sha256
>  (base32
> - "12cdy3m5c09lpf2bbxzbhm5v5y9fk7jgm94qrzggpq86waj28cms"
> + "1dasilib5w98hwr5rdnv1ri2dmdxv3fa42dscdcqss4hxbhn0lcs"
>  (build-system python-build-system)
>  (arguments
>   '(#:phases
> @@ -87,57 +87,39 @@ (define-public python-sphinx
> (setenv "HOME" "/tmp")   ;for test_cython
> (invoke "make" "test")))
>  (propagated-inputs
> - (list python-babel
> + (list python-alabaster
> +   python-babel
> +   python-colorama
> +   python-cython
> python-docutils
> -   python-jinja2
> +   python-docutils-stubs
> +   python-filelock
> +   python-flake8
> +   python-flake8-simplify
> +   python-html5lib
> python-imagesize
> python-importlib-metadata
> +   python-isort
> +   python-jinja2
> +   python-mypy
> python-packaging
> python-pygments
> +   python-pytest
> python-requests
> +   python-ruff
> +   python-setuptools
> python-snowballstemmer
> -   python-sphinx-alabaster-theme
> +   python-sphinx-lint
> python-sphinxcontrib-applehelp
> python-sphinxcontrib-devhelp
> python-sphinxcontrib-htmlhelp
> python-sphinxcontrib-jsmath
> python-sphinxcontrib-qthelp
> python-sphinxcontrib-serializinghtml
> -
> -   ;; The Sphinx LaTeX library '\RequirePackage' or \\usepackage
> -   ;; these:
> -   texlive-amsfonts ;amsmath, amssymb, amstext
> -   texlive-amsmath
> -   texlive-capt-of
> -   texlive-carlisle ;remreset
> -   texlive-cmap
> -   texlive-etoolbox
> -   texlive-fancyhdr
> -   texlive-fancyvrb
> -   texlive-float
> -   texlive-fncychap
> -   texlive-framed
> -   texlive-geometry
> -   texlive-hyperref
> -   texlive-kvoptions
> -   texlive-latex-bin
> -   texlive-ltxcmds
> -   texlive-needspace
> -   texlive-oberdiek ;hypcap
> -   texlive-parskip
> -   texlive-preview
> -   texlive-tabulary
> -   texlive-titlesec
> -   texlive-tools;multicol, longtable
> -   texlive-upquote
> -   texlive-varwidth
> -   texlive-wrapfig
> -   texlive-xcolor))
> +   python-sphinxcontrib-websupport
> +   python-types-requests))
>  (native-inputs
> - (list imagemagick  ;for "convert"
> -   python-cython
> -   python-html5lib
> -   python-pytest))
> + (list))
>  (home-page "https://www.sphinx-doc.org;)
>  (synopsis "Python documentation generator")
>  (description "Sphinx is a tool that makes it easy to create documentation

Temporary workaround: you could use git add --patch and not add the
removals.
But yeah, this is an annoying bug.