Subject: Re: [PATCH v2 3/5] gnu: wine-minimal: Share phases with parent wine package.

From: Liliana Marie Prikler <[email-masked]>
Date: Tue, 31 Jan 2023 20:19:18 +0100

Am Montag, dem 30.01.2023 um 20:39 +0000 schrieb Kaelyn:
> ------- Original Message -------
> On Friday, January 27th, 2023 at 6:03 PM, Liliana Marie Prikler
> <[email-masked]> wrote:
> 
> 
> > 
> > 
> > Am Freitag, dem 27.01.2023 um 01:08 +0000 schrieb Kaelyn Takata:
> > 
> > > * gnu/packages/wine.scm (wine-minimal): Share phases with parent
> > > wine
> > > package.
> > > ---
> > > gnu/packages/wine.scm | 31 +++++++------------------------
> > > 1 file changed, 7 insertions(+), 24 deletions(-)
> > > 
> > > diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
> > > index 6e43494c68..b9a8396b75 100644
> > > --- a/gnu/packages/wine.scm
> > > +++ b/gnu/packages/wine.scm
> > > @@ -308,30 +308,13 @@ (define-public wine-minimal
> > > (delete "gettext" "perl" "pkg-config")))
> > > (inputs `()) (arguments -` (#:validate-runpath? #f
> > > - #:phases
> > > - (modify-phases %standard-phases
> > > - (add-after 'unpack 'patch-SHELL
> > > - (lambda _
> > > - (substitute* "configure"
> > > - ;; configure first respects CONFIG_SHELL, clobbers
> > > SHELL later.
> > > - (("/bin/sh")
> > > - (which "bash")))))
> > > - (add-after 'configure 'patch-dlopen-paths
> > > - ;; Hardcode dlopened sonames to absolute paths.
> > > - (lambda _
> > > - (let* ((library-path (search-path-as-string->list
> > > - (getenv "LIBRARY_PATH")))
> > > - (find-so (lambda (soname)
> > > - (search-path library-path soname))))
> > > - (substitute* "include/config.h"
> > > - (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
> > > - (format #f "~a\"~a\"" defso (find-so
> > > soname))))))))
> > > - #:configure-flags
> > > - (list "--without-freetype"
> > > - "--without-x")
> > > - ,@(strip-keyword-arguments '(#:configure-flags #:phases)
> > > - (package-arguments wine))))))
> > > + (substitute-keyword-arguments (package-arguments wine)
> > > + ((#:phases phases)
> > > + #~(modify-phases #$phases
> > > + (delete 'wrap-executable))) ;; Don't reference Vulkan
> > > ICD files.
> > > + ((#:configure-flags _ '())
> > > + #~(list "--without-freetype"
> > > + "--without-x"))))))
> > > 
> > > (define-public wine-staging-patchset-data
> > > (package
> > > --
> > 
> > Doing it this way is actually dangerous, because changes in wine
> > get
> > propagated to wine-minimal even if they don't affect it (we had a
> > similar error in emacs blowing up the size of emacs-minimal
> > recently).
> > There are two possible solutions: Bind the common phases to a
> > variable
> > and use that instead of %standard-phases, or make wine inherit
> > wine-
> > minimal.
> 
> I just sent a patch to this issue to make wine inherit from wine-
> minimal instead of vice versa. If it seems fairly reasonable, I'll
> rebase and reorder the patch series to include the change
> (essentially to fold it into the commit that updates wine-minimal to
> share phases with wine).
Please do.  Also, don't forget to bump the reroll count as well as
adding me to CC.

Thanks