GNU bug report logs - #61067
[PATCH 0/3] Update wine and wine-staging packages to 8.0

Previous Next

Package: guix-patches;

Reported by: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>

Date: Thu, 26 Jan 2023 00:18:02 UTC

Severity: normal

Tags: patch

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61067 in the body.
You can then email your comments to 61067 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 00:18:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kaelyn Takata <kaelyn.alexi <at> protonmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 26 Jan 2023 00:18:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: guix-patches <at> gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH 0/3] Update wine and wine-staging packages to 8.0
Date: Thu, 26 Jan 2023 00:17:02 +0000
Here is a patchset to update the various wine and wine-staging packages to the
latest release. Aside from the basic version bumping, the changes include:

* Dropping an unneeded LDFLAGS variable as the rpath being set is not useful
  (it contains only subdirectories),

* Fixing the edits to tools/makedep.c to account for a renamed variable.

* Adding a small phase to set the environment variable WIDL_TIME_OVERRIDE so
  that the widl tool dosn't embed the build date and time in the files it
  generates as part of the wine build.

Cheers,
Kaelyn


Kaelyn Takata (3):
  gnu: wine: Update to 8.0.
  gnu: wine: Build more reproducibly.
  gnu: wine-staging: Update to 8.0.

 gnu/packages/wine.scm | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)


base-commit: ebcb5c8e120b39a3dd07c27bc17d520ee653ec23
--
2.39.1





Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 00:25:01 GMT) Full text and rfc822 format available.

Message #8 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH 1/3] gnu: wine: Update to 8.0.
Date: Thu, 26 Jan 2023 00:23:49 +0000
* gnu/packages/wine.scm (wine): Update to 8.0.
[arguments]: Remove superfluous rpath setting in configure-flags.
---
 gnu/packages/wine.scm | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 6e86add4e3..7ca2ac5bdf 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail <at> ambrevar.xyz>
 ;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
+;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,7 +77,7 @@ (define-module (gnu packages wine)
 (define-public wine
   (package
     (name "wine")
-    (version "7.19")
+    (version "8.0")
     (source
      (origin
        (method url-fetch)
@@ -88,7 +89,7 @@ (define-public wine
               (string-append "https://dl.winehq.org/wine/source/" dir
                              "wine-" version ".tar.xz")))
        (sha256
-        (base32 "08cxigkd83as6gkqgiwdpvr7cyy5ajsnhan3jbadwzqxdrz4kb23"))))
+        (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2"))))
     (build-system gnu-build-system)
     (native-inputs
      (list bison flex gettext-minimal perl pkg-config))
@@ -142,9 +143,6 @@ (define-public wine
        ;; pass.
        #:tests? #f

-       #:configure-flags
-       #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine32"))
-
        #:make-flags
        #~(list "SHELL=bash"
                (string-append "libdir=" #$output "/lib/wine32"))
@@ -197,7 +195,7 @@ (define-public wine
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", so_dir );"))))))))
+                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
@@ -260,7 +258,7 @@ (define-public wine64
               (substitute* "tools/makedep.c"
                 (("output_filenames\\( unix_libs \\);" all)
                  (string-append all
-                                "output ( \" -Wl,-rpath=%s \", so_dir );")))))
+                                "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
           (add-after 'install 'copy-wine32-binaries
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let ((out (assoc-ref %outputs "out")))
@@ -293,8 +291,7 @@ (define-public wine64
                   (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
                    (format #f "~a\"~a\"" defso (find-so soname))))))))
       #:configure-flags
-      #~(list "--enable-win64"
-              (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine64"))
+      #~(list "--enable-win64")
       (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
                                  #:system)
                                (package-arguments wine))))
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 00:25:02 GMT) Full text and rfc822 format available.

Message #11 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH 2/3] gnu: wine: Build more reproducibly.
Date: Thu, 26 Jan 2023 00:24:03 +0000
* gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-override phase.
---
 gnu/packages/wine.scm | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 7ca2ac5bdf..0de34e320d 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -195,7 +195,12 @@ (define-public wine
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
+                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
+           (add-before 'build 'set-widl-time-override
+             ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+             ;; files generated by WIDL.
+             (lambda _
+               (setenv "WIDL_TIME_OVERRIDE" "315532800"))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
@@ -289,7 +294,12 @@ (define-public wine64
                                 (search-path library-path soname))))
                 (substitute* "include/config.h"
                   (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
-                   (format #f "~a\"~a\"" defso (find-so soname))))))))
+                   (format #f "~a\"~a\"" defso (find-so soname)))))))
+          (add-before 'build 'set-widl-time-override
+            ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+            ;; files generated by WIDL.
+            (lambda _
+              (setenv "WIDL_TIME_OVERRIDE" "315532800"))))
       #:configure-flags
       #~(list "--enable-win64")
       (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
@@ -326,7 +336,12 @@ (define-public wine-minimal
                                (search-path library-path soname))))
                (substitute* "include/config.h"
                  (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
-                  (format #f "~a\"~a\"" defso (find-so soname))))))))
+                  (format #f "~a\"~a\"" defso (find-so soname)))))))
+         (add-before 'build 'set-widl-time-override
+           ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+           ;; files generated by WIDL.
+           (lambda _
+             (setenv "WIDL_TIME_OVERRIDE" "315532800"))))
        #:configure-flags
        (list "--without-freetype"
              "--without-x")
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 00:25:02 GMT) Full text and rfc822 format available.

Message #14 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH 3/3] gnu: wine-staging: Update to 8.0.
Date: Thu, 26 Jan 2023 00:24:11 +0000
* gnu/packages/wine.scm (wine-staging): Update to 8.0.
---
 gnu/packages/wine.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 0de34e320d..7f89017e79 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -351,7 +351,7 @@ (define-public wine-minimal
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "7.8")
+    (version "8.0")
     (source
      (origin
        (method git-fetch)
@@ -360,7 +360,7 @@ (define-public wine-staging-patchset-data
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "02rgpymhqrdr3aamvv6yvpgh82rj1n4adr36mi26cs3zbkx8zb55"))))
+        (base32 "11q9fa1jdrv1pd9piaicgqvidq1c08imkwpqhyzcj5r711rl7581"))))
     (build-system trivial-build-system)
     (native-inputs
      (list bash coreutils))
@@ -410,7 +410,7 @@ (define-public wine-staging
                              "wine-" wine-version ".tar.xz"))
          (file-name (string-append name "-" wine-version ".tar.xz"))
          (sha256
-          (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg")))))
+          (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2")))))
     (inputs (modify-inputs (package-inputs wine)
               (prepend autoconf ; for autoreconf
                        ffmpeg
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 19:29:02 GMT) Full text and rfc822 format available.

Message #17 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] gnu: wine: Build more reproducibly.
Date: Thu, 26 Jan 2023 20:28:26 +0100
Hi,

Am Donnerstag, dem 26.01.2023 um 00:24 +0000 schrieb Kaelyn Takata:
> * gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-
> override phase.
You're doing this for three packages, so there should be three packages
in the ChangeLog as well.

On that note, it's somewhat odd that the wine packages can't share some
common phases.  Perhaps we should refactor them a little to make that
possible.

Cheers 





Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 20:48:01 GMT) Full text and rfc822 format available.

Message #20 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn <kaelyn.alexi <at> protonmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] gnu: wine: Build more reproducibly.
Date: Thu, 26 Jan 2023 20:46:55 +0000
------- Original Message -------
On Thursday, January 26th, 2023 at 7:28 PM, Liliana Marie Prikler <liliana.prikler <at> gmail.com> wrote:


> 
> 
> Hi,
> 
> Am Donnerstag, dem 26.01.2023 um 00:24 +0000 schrieb Kaelyn Takata:
> 
> > * gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-
> > override phase.
> 
> You're doing this for three packages, so there should be three packages
> in the ChangeLog as well.

I wasn't quite sure how to handle the changelog for the three packages since the various packages are variations of the same piece of software. If separate changelogs are desired, the existing can be copied and pasted for each of the three with the package name tweaked accordingly.

> On that note, it's somewhat odd that the wine packages can't share some
> common phases. Perhaps we should refactor them a little to make that
> possible.

I agree they could and should be refactored to share more of the phases--I just haven't been brave enough to try because of the weird mixed-architecture nature of the builds.

Cheers,
Kaelyn

> 
> Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 26 Jan 2023 21:10:02 GMT) Full text and rfc822 format available.

Message #23 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Kaelyn <kaelyn.alexi <at> protonmail.com>
Cc: 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] gnu: wine: Build more reproducibly.
Date: Thu, 26 Jan 2023 22:09:07 +0100
Am Donnerstag, dem 26.01.2023 um 20:46 +0000 schrieb Kaelyn:
> ------- Original Message -------
> On Thursday, January 26th, 2023 at 7:28 PM, Liliana Marie Prikler
> <liliana.prikler <at> gmail.com> wrote:
> 
> 
> > 
> > 
> > Hi,
> > 
> > Am Donnerstag, dem 26.01.2023 um 00:24 +0000 schrieb Kaelyn Takata:
> > 
> > > * gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-
> > > override phase.
> > 
> > You're doing this for three packages, so there should be three
> > packages
> > in the ChangeLog as well.
> 
> I wasn't quite sure how to handle the changelog for the three
> packages since the various packages are variations of the same piece
> of software. If separate changelogs are desired, the existing can be
> copied and pasted for each of the three with the package name tweaked
> accordingly.
You can simply write (wine, wine64, wine-minimal)[#:phases].  It's just
to mark all the places that have changed.

> > On that note, it's somewhat odd that the wine packages can't share
> > some common phases. Perhaps we should refactor them a little to
> > make that possible.
> 
> I agree they could and should be refactored to share more of the
> phases--I just haven't been brave enough to try because of the weird
> mixed-architecture nature of the builds.
I feel you.  I can try to figure something out and reply to this thread
or open another one once I'm done.

Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:08:01 GMT) Full text and rfc822 format available.

Message #26 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn <kaelyn.alexi <at> protonmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] gnu: wine: Build more reproducibly.
Date: Fri, 27 Jan 2023 01:07:42 +0000
------- Original Message -------
On Thursday, January 26th, 2023 at 9:09 PM, Liliana Marie Prikler <liliana.prikler <at> gmail.com> wrote:


> 
> 
> Am Donnerstag, dem 26.01.2023 um 20:46 +0000 schrieb Kaelyn:
> 
> > ------- Original Message -------
> > On Thursday, January 26th, 2023 at 7:28 PM, Liliana Marie Prikler
> > liliana.prikler <at> gmail.com wrote:
> > 
> > > Hi,
> > > 
> > > Am Donnerstag, dem 26.01.2023 um 00:24 +0000 schrieb Kaelyn Takata:
> > > 
> > > > * gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-
> > > > override phase.
> > > 
> > > You're doing this for three packages, so there should be three
> > > packages
> > > in the ChangeLog as well.
> > 
> > I wasn't quite sure how to handle the changelog for the three
> > packages since the various packages are variations of the same piece
> > of software. If separate changelogs are desired, the existing can be
> > copied and pasted for each of the three with the package name tweaked
> > accordingly.
> 
> You can simply write (wine, wine64, wine-minimal)[#:phases]. It's just
> to mark all the places that have changed.
> 
> > > On that note, it's somewhat odd that the wine packages can't share
> > > some common phases. Perhaps we should refactor them a little to
> > > make that possible.
> > 
> > I agree they could and should be refactored to share more of the
> > phases--I just haven't been brave enough to try because of the weird
> > mixed-architecture nature of the builds.
> 
> I feel you. I can try to figure something out and reply to this thread
> or open another one once I'm done.

I felt a bit of inspiration, and tried my hand at unifying the phase lists. I'll be mailing the v2 patches momentarily. I _think_ the new version of the package definitions is equivalent to the old, but I also appreciate all of the extra eyes and testing those changes can get. :)

Thank you for the review and feedback!

Cheers,
Kaelyn

> 
> Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:09:02 GMT) Full text and rfc822 format available.

Message #29 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH v2 0/5] Update wine and wine-staging packages to 8.0
Date: Fri, 27 Jan 2023 01:07:53 +0000
New in v2:

* Tweaked the commit messages of the main 8.0 update patches to better fit the
  guidelines.

* Added two patches to make wine-minimal and wine64 share more of their
  package definition with the parent wine package, especially phases.

* Move the reproducibility patch to the end of the series, to take advantage
  of the better shared phase definitions.

Cheers,
Kaelyn


Kaelyn Takata (5):
  gnu: wine: Update to 8.0.
  gnu: wine-staging: Update to 8.0.
  gnu: wine-minimal: Share phases with parent wine package.
  gnu: wine64: Share phases with parent wine package.
  gnu: wine: Build more reproducibly.

 gnu/packages/wine.scm | 187 +++++++++++++++++-------------------------
 1 file changed, 75 insertions(+), 112 deletions(-)


base-commit: c2b40b4b4c9e0227e47730ebe73a653b89d1e568
--
2.39.1





Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:09:02 GMT) Full text and rfc822 format available.

Message #32 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH v2 1/5] gnu: wine: Update to 8.0.
Date: Fri, 27 Jan 2023 01:08:07 +0000
* gnu/packages/wine.scm (wine,wine64,wine-minimal): Update to 8.0.
[arguments]: Remove superfluous rpath setting in configure-flags.
---
 gnu/packages/wine.scm | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 6e86add4e3..7ca2ac5bdf 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail <at> ambrevar.xyz>
 ;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
+;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,7 +77,7 @@ (define-module (gnu packages wine)
 (define-public wine
   (package
     (name "wine")
-    (version "7.19")
+    (version "8.0")
     (source
      (origin
        (method url-fetch)
@@ -88,7 +89,7 @@ (define-public wine
               (string-append "https://dl.winehq.org/wine/source/" dir
                              "wine-" version ".tar.xz")))
        (sha256
-        (base32 "08cxigkd83as6gkqgiwdpvr7cyy5ajsnhan3jbadwzqxdrz4kb23"))))
+        (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2"))))
     (build-system gnu-build-system)
     (native-inputs
      (list bison flex gettext-minimal perl pkg-config))
@@ -142,9 +143,6 @@ (define-public wine
        ;; pass.
        #:tests? #f

-       #:configure-flags
-       #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine32"))
-
        #:make-flags
        #~(list "SHELL=bash"
                (string-append "libdir=" #$output "/lib/wine32"))
@@ -197,7 +195,7 @@ (define-public wine
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", so_dir );"))))))))
+                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
@@ -260,7 +258,7 @@ (define-public wine64
               (substitute* "tools/makedep.c"
                 (("output_filenames\\( unix_libs \\);" all)
                  (string-append all
-                                "output ( \" -Wl,-rpath=%s \", so_dir );")))))
+                                "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
           (add-after 'install 'copy-wine32-binaries
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let ((out (assoc-ref %outputs "out")))
@@ -293,8 +291,7 @@ (define-public wine64
                   (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
                    (format #f "~a\"~a\"" defso (find-so soname))))))))
       #:configure-flags
-      #~(list "--enable-win64"
-              (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine64"))
+      #~(list "--enable-win64")
       (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
                                  #:system)
                                (package-arguments wine))))
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:09:02 GMT) Full text and rfc822 format available.

Message #35 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH v2 2/5] gnu: wine-staging: Update to 8.0.
Date: Fri, 27 Jan 2023 01:08:14 +0000
* gnu/packages/wine.scm (wine-staging,wine64-staging): Update to 8.0.
---
 gnu/packages/wine.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 7ca2ac5bdf..6e43494c68 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -336,7 +336,7 @@ (define-public wine-minimal
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "7.8")
+    (version "8.0")
     (source
      (origin
        (method git-fetch)
@@ -345,7 +345,7 @@ (define-public wine-staging-patchset-data
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "02rgpymhqrdr3aamvv6yvpgh82rj1n4adr36mi26cs3zbkx8zb55"))))
+        (base32 "11q9fa1jdrv1pd9piaicgqvidq1c08imkwpqhyzcj5r711rl7581"))))
     (build-system trivial-build-system)
     (native-inputs
      (list bash coreutils))
@@ -395,7 +395,7 @@ (define-public wine-staging
                              "wine-" wine-version ".tar.xz"))
          (file-name (string-append name "-" wine-version ".tar.xz"))
          (sha256
-          (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg")))))
+          (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2")))))
     (inputs (modify-inputs (package-inputs wine)
               (prepend autoconf ; for autoreconf
                        ffmpeg
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:09:03 GMT) Full text and rfc822 format available.

Message #38 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH v2 3/5] gnu: wine-minimal: Share phases with parent wine
 package.
Date: Fri, 27 Jan 2023 01:08:22 +0000
* 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
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:09:03 GMT) Full text and rfc822 format available.

Message #41 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH v2 4/5] gnu: wine64: Share phases with parent wine package.
Date: Fri, 27 Jan 2023 01:08:35 +0000
* gnu/packages/wine.scm (wine64): Share phases with parent wine package.
---
 gnu/packages/wine.scm | 134 ++++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 78 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index b9a8396b75..263ec80416 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -217,84 +217,62 @@ (define-public wine64
     (inputs (modify-inputs (package-inputs wine)
               (prepend wine)))
     (arguments
-     (cons*
-      #:make-flags
-      #~(list "SHELL=bash"
-              (string-append "libdir=" #$output "/lib/wine64"))
-      #:phases
-      #~(modify-phases %standard-phases
-          ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader
-          ;; when installing to x86_64-linux so both are available.
-          ;; TODO: Add more JSON files as they become available in Mesa.
-          #$@(match (%current-system)
-               ((or "x86_64-linux")
-                `((add-after 'copy-wine32-binaries 'wrap-executable
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (icd-files (map
-                                         (lambda (basename)
-                                           (search-input-file
-                                            inputs
-                                            (string-append "/share/vulkan/icd.d/"
-                                                           basename)))
-                                         '("radeon_icd.x86_64.json"
-                                           "intel_icd.x86_64.json"
-                                           "radeon_icd.i686.json"
-                                           "intel_icd.i686.json"))))
-                        (wrap-program (string-append out "/bin/wine-preloader")
-                          `("VK_ICD_FILENAMES" ":" = ,icd-files))
-                        (wrap-program (string-append out "/bin/wine64-preloader")
-                          `("VK_ICD_FILENAMES" ":" = ,icd-files)))))))
-               (_
-                `()))
-          (add-after 'unpack 'patch-SHELL
-            (lambda _
-              (substitute* "configure"
-                ;; configure first respects CONFIG_SHELL, clobbers SHELL later.
-                (("/bin/sh")
-                 (which "bash")))))
-          (add-after 'patch-generated-file-shebangs 'patch-makedep
-            (lambda* (#:key outputs #:allow-other-keys)
-              (substitute* "tools/makedep.c"
-                (("output_filenames\\( unix_libs \\);" all)
-                 (string-append all
-                                "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
-          (add-after 'install 'copy-wine32-binaries
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let ((out (assoc-ref %outputs "out")))
-                ;; Copy the 32-bit binaries needed for WoW64.
-                (copy-file (search-input-file inputs "/bin/wine")
-                           (string-append out "/bin/wine"))
-                ;; Copy the real 32-bit wine-preloader instead of the wrapped
-                ;; version.
-                (copy-file (search-input-file inputs "/bin/.wine-preloader-real")
-                           (string-append out "/bin/wine-preloader")))))
-          (add-after 'install 'copy-wine32-libraries
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let* ((out (assoc-ref %outputs "out")))
-                (copy-recursively (search-input-directory inputs "/lib/wine32")
-                                  (string-append out "/lib/wine32")))))
-          (add-after 'compress-documentation 'copy-wine32-manpage
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let* ((out (assoc-ref %outputs "out")))
-                ;; Copy the missing man file for the wine binary from wine.
-                (copy-file (search-input-file inputs "/share/man/man1/wine.1.gz")
-                           (string-append out "/share/man/man1/wine.1.gz")))))
-          (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 "--enable-win64")
-      (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
-                                 #:system)
-                               (package-arguments wine))))
+     (substitute-keyword-arguments
+         (strip-keyword-arguments '(#:system) (package-arguments wine))
+       ((#:make-flags _)
+        #~(list "SHELL=bash"
+                (string-append "libdir=" #$output "/lib/wine64"))
+        )
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader
+            ;; when installing to x86_64-linux so both are available.
+            ;; TODO: Add more JSON files as they become available in Mesa.
+            #$@(match (%current-system)
+                 ((or "x86_64-linux")
+                  `((delete 'wrap-executable)
+                    (add-after 'copy-wine32-binaries 'wrap-executable
+                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (icd-files (map
+                                           (lambda (basename)
+                                             (search-input-file
+                                              inputs
+                                              (string-append "/share/vulkan/icd.d/"
+                                                             basename)))
+                                           '("radeon_icd.x86_64.json"
+                                             "intel_icd.x86_64.json"
+                                             "radeon_icd.i686.json"
+                                             "intel_icd.i686.json"))))
+                          (wrap-program (string-append out "/bin/wine-preloader")
+                            `("VK_ICD_FILENAMES" ":" = ,icd-files))
+                          (wrap-program (string-append out "/bin/wine64-preloader")
+                            `("VK_ICD_FILENAMES" ":" = ,icd-files)))))))
+                 (_
+                  `()))
+            (add-after 'install 'copy-wine32-binaries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let ((out (assoc-ref %outputs "out")))
+                  ;; Copy the 32-bit binaries needed for WoW64.
+                  (copy-file (search-input-file inputs "/bin/wine")
+                             (string-append out "/bin/wine"))
+                  ;; Copy the real 32-bit wine-preloader instead of the wrapped
+                  ;; version.
+                  (copy-file (search-input-file inputs "/bin/.wine-preloader-real")
+                             (string-append out "/bin/wine-preloader")))))
+            (add-after 'install 'copy-wine32-libraries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let* ((out (assoc-ref %outputs "out")))
+                  (copy-recursively (search-input-directory inputs "/lib/wine32")
+                                    (string-append out "/lib/wine32")))))
+            (add-after 'compress-documentation 'copy-wine32-manpage
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let* ((out (assoc-ref %outputs "out")))
+                  ;; Copy the missing man file for the wine binary from wine.
+                  (copy-file (search-input-file inputs "/share/man/man1/wine.1.gz")
+                             (string-append out "/share/man/man1/wine.1.gz")))))))
+       ((#:configure-flags configure-flags '())
+        #~(cons "--enable-win64" #$configure-flags))))
     (synopsis "Implementation of the Windows API (WoW64 version)")
     (supported-systems '("x86_64-linux" "aarch64-linux"))))

--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 01:09:03 GMT) Full text and rfc822 format available.

Message #44 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH v2 5/5] gnu: wine: Build more reproducibly.
Date: Fri, 27 Jan 2023 01:08:44 +0000
* gnu/packages/wine.scm (wine)[phases]: Add a new 'set-widl-time-override phase.
---
 gnu/packages/wine.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 263ec80416..10cae76ed8 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -195,7 +195,12 @@ (define-public wine
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
+                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
+           (add-before 'build 'set-widl-time-override
+             ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+             ;; files generated by WIDL.
+             (lambda _
+               (setenv "WIDL_TIME_OVERRIDE" "315532800"))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 18:04:02 GMT) Full text and rfc822 format available.

Message #47 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 3/5] gnu: wine-minimal: Share phases with parent wine
 package.
Date: Fri, 27 Jan 2023 19:03:15 +0100
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.

Side note: QA failed :(

Cheers

Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Fri, 27 Jan 2023 18:16:01 GMT) Full text and rfc822 format available.

Message #50 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn <kaelyn.alexi <at> protonmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 3/5] gnu: wine-minimal: Share phases with parent wine
 package.
Date: Fri, 27 Jan 2023 18:15:26 +0000




------- Original Message -------
On Friday, January 27th, 2023 at 6:03 PM, Liliana Marie Prikler <liliana.prikler <at> gmail.com> 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'm not sure I'll be able to work on this today, but I am fine with either approach. I suspect flipping the packages so that wine depends on wine-minimal and adds inputs and extra phases and replaces the configure flags will be simpler from a maintenance perspective since it would keep the wine and wine-minimal versions in sync automatically.

From the comment in wine.scm, the wine-minimal package is only needed for building vkd3d to avoid a dependency loop between wine and vkd3d. (A comment on that package suggests it's the widl tool needed from wine, but wine-minimal is also an input instead of a native-input so maybe a bit more than a build-time tool is needed?)

Cheers,
Kaelyn
> 
> Side note: QA failed :(
> 
> Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Mon, 30 Jan 2023 20:36:02 GMT) Full text and rfc822 format available.

Message #53 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
Subject: [PATCH] gnu: wine: Invert the relationship between wine and
 wine-minimal.
Date: Mon, 30 Jan 2023 20:35:41 +0000
* gnu/packages/wine.scm (wine,wine-minimal): Have wine expand upon the
package definition of wine-minimal instead of having wine-minimal trim down
the package definition of wine.
---
 gnu/packages/wine.scm | 162 +++++++++++++++++++++---------------------
 1 file changed, 81 insertions(+), 81 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 10cae76ed8..3299059968 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -74,9 +74,11 @@ (define-module (gnu packages wine)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))

-(define-public wine
+;; This minimal build of Wine is needed to prevent a circular dependency with
+;; vkd3d.
+(define-public wine-minimal
   (package
-    (name "wine")
+    (name "wine-minimal")
     (version "8.0")
     (source
      (origin
@@ -91,8 +93,77 @@ (define-public wine
        (sha256
         (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2"))))
     (build-system gnu-build-system)
+    (native-inputs (list bison flex))
+    (inputs `())
+    (arguments
+     (list
+      ;; Force a 32-bit build targeting a similar architecture, i.e.:
+      ;; armhf for armhf/aarch64, i686 for i686/x86_64.
+      #:system (match (%current-system)
+                 ((or "armhf-linux" "aarch64-linux") "armhf-linux")
+                 (_ "i686-linux"))
+
+       ;; XXX: There's a test suite, but it's unclear whether it's supposed to
+       ;; pass.
+       #:tests? #f
+
+       #:make-flags
+       #~(list "SHELL=bash"
+               (string-append "libdir=" #$output "/lib/wine32"))
+
+       #: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)))))))
+           (add-after 'patch-generated-file-shebangs 'patch-makedep
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "tools/makedep.c"
+                 (("output_filenames\\( unix_libs \\);" all)
+                  (string-append all
+                   "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
+           (add-before 'build 'set-widl-time-override
+             ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+             ;; files generated by WIDL.
+             (lambda _
+               (setenv "WIDL_TIME_OVERRIDE" "315532800"))))
+       #:configure-flags
+       #~(list "--without-freetype"
+               "--without-x")))
+    (home-page "https://www.winehq.org/")
+    (synopsis "Implementation of the Windows API (32-bit only)")
+    (description
+     "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a
+compatibility layer capable of running Windows applications.  Instead of
+simulating internal Windows logic like a virtual machine or emulator, Wine
+translates Windows API calls into POSIX calls on-the-fly, eliminating the
+performance and memory penalties of other methods and allowing you to cleanly
+integrate Windows applications into your desktop.")
+    ;; Any platform should be able to build wine, but based on '#:system' these
+    ;; are the ones we currently support.
+    (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))
+    (license license:lgpl2.1+)))
+
+(define-public wine
+  (package
+    (inherit wine-minimal)
+    (name "wine")
     (native-inputs
-     (list bison flex gettext-minimal perl pkg-config))
+     (modify-inputs (package-native-inputs wine-minimal)
+       (prepend gettext-minimal perl pkg-config)))
     (inputs
      ;; Some libraries like libjpeg are now compiled into native PE objects.
      ;; The ELF objects provided by Guix packages are of no use.  Whilst this
@@ -100,6 +171,7 @@ (define-public wine
      ;; to build some of these from Guix PACKAGE-SOURCE but attempts were not
      ;; fruitful so far.  See <https://www.winehq.org/announce/7.0>.
      (list alsa-lib
+           bash-minimal
            cups
            dbus
            eudev
@@ -132,23 +204,9 @@ (define-public wine
            vkd3d
            vulkan-loader))
     (arguments
-     (list
-      ;; Force a 32-bit build targeting a similar architecture, i.e.:
-      ;; armhf for armhf/aarch64, i686 for i686/x86_64.
-      #:system (match (%current-system)
-                 ((or "armhf-linux" "aarch64-linux") "armhf-linux")
-                 (_ "i686-linux"))
-
-       ;; XXX: There's a test suite, but it's unclear whether it's supposed to
-       ;; pass.
-       #:tests? #f
-
-       #:make-flags
-       #~(list "SHELL=bash"
-               (string-append "libdir=" #$output "/lib/wine32"))
-
-       #:phases
-       #~(modify-phases %standard-phases
+     (substitute-keyword-arguments (package-arguments wine-minimal)
+       ((#:phases phases)
+        #~(modify-phases #$phases
            ;; Explicitly set the 32-bit version of vulkan-loader when installing
            ;; to i686-linux or x86_64-linux.
            ;; TODO: Add more JSON files as they become available in Mesa.
@@ -173,47 +231,8 @@ (define-public wine
                                               "/radeon_icd.i686.json" ":"
                                               icd "/intel_icd.i686.json")))))))))
                 (_
-                 `()))
-           (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)))))))
-           (add-after 'patch-generated-file-shebangs 'patch-makedep
-             (lambda* (#:key outputs #:allow-other-keys)
-               (substitute* "tools/makedep.c"
-                 (("output_filenames\\( unix_libs \\);" all)
-                  (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
-           (add-before 'build 'set-widl-time-override
-             ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
-             ;; files generated by WIDL.
-             (lambda _
-               (setenv "WIDL_TIME_OVERRIDE" "315532800"))))))
-    (home-page "https://www.winehq.org/")
-    (synopsis "Implementation of the Windows API (32-bit only)")
-    (description
-     "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a
-compatibility layer capable of running Windows applications.  Instead of
-simulating internal Windows logic like a virtual machine or emulator, Wine
-translates Windows API calls into POSIX calls on-the-fly, eliminating the
-performance and memory penalties of other methods and allowing you to cleanly
-integrate Windows applications into your desktop.")
-    ;; Any platform should be able to build wine, but based on '#:system' these
-    ;; are thr ones we currently support.
-    (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))
-    (license license:lgpl2.1+)))
+                 `()))))
+       ((#:configure-flags _ '()) #~'())))))

 (define-public wine64
   (package
@@ -226,8 +245,7 @@ (define-public wine64
          (strip-keyword-arguments '(#:system) (package-arguments wine))
        ((#:make-flags _)
         #~(list "SHELL=bash"
-                (string-append "libdir=" #$output "/lib/wine64"))
-        )
+                (string-append "libdir=" #$output "/lib/wine64")))
        ((#:phases phases)
         #~(modify-phases #$phases
             ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader
@@ -281,24 +299,6 @@ (define-public wine64
     (synopsis "Implementation of the Windows API (WoW64 version)")
     (supported-systems '("x86_64-linux" "aarch64-linux"))))

-;; This minimal build of Wine is needed to prevent a circular dependency with
-;; vkd3d.
-(define-public wine-minimal
-  (package
-    (inherit wine)
-    (name "wine-minimal")
-    (native-inputs (modify-inputs (package-native-inputs wine)
-                     (delete "gettext" "perl" "pkg-config")))
-    (inputs `())
-    (arguments
-     (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
     (name "wine-staging-patchset-data")

base-commit: c2b40b4b4c9e0227e47730ebe73a653b89d1e568
prerequisite-patch-id: a4f31b7648d1a378604724327efd615cfaf30deb
prerequisite-patch-id: 61c258aa83aa60b83e2b9e44ff0f88ecc4277ff0
prerequisite-patch-id: 151abf5b65589e5721ffc2607e884f5375150108
prerequisite-patch-id: c3046a4e9ad075f3013aafda88cec6a22341ac7c
prerequisite-patch-id: 19a15bb5b766f40a985df7677db0866ad8c28069
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Mon, 30 Jan 2023 20:40:02 GMT) Full text and rfc822 format available.

Message #56 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn <kaelyn.alexi <at> protonmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 3/5] gnu: wine-minimal: Share phases with parent wine
 package.
Date: Mon, 30 Jan 2023 20:39:16 +0000
------- Original Message -------
On Friday, January 27th, 2023 at 6:03 PM, Liliana Marie Prikler <liliana.prikler <at> gmail.com> 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).

BTW, the patch also addresses a few lint messages.

Cheers,
Kaelyn

> 
> Side note: QA failed :(
> 
> Cheers




Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Tue, 31 Jan 2023 19:20:01 GMT) Full text and rfc822 format available.

Message #59 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Kaelyn <kaelyn.alexi <at> protonmail.com>
Cc: 61067 <at> debbugs.gnu.org
Subject: Re: [PATCH v2 3/5] gnu: wine-minimal: Share phases with parent wine
 package.
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
> <liliana.prikler <at> gmail.com> 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




Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 02 Feb 2023 21:24:01 GMT) Full text and rfc822 format available.

Message #62 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, liliana.prikler <at> gmail.com
Subject: [PATCH v3 0/5] Update wine and wine-staging packages to 8.0
Date: Thu, 02 Feb 2023 21:23:17 +0000
New in v3:

* Modified the patch for sharing phases between wine and wine-minimal to also
  invert the relationship between the two packages, with wine now inheriting
  from wine-minimal.

Cheers,
Kaelyn


Kaelyn Takata (5):
  gnu: wine: Update to 8.0.
  gnu: wine-staging: Update to 8.0.
  gnu: wine-minimal: Make the parent of wine so phases can be shared.
  gnu: wine64: Share phases with parent wine package.
  gnu: wine-minimal: Build more reproducibly.

 gnu/packages/wine.scm | 320 +++++++++++++++++++-----------------------
 1 file changed, 142 insertions(+), 178 deletions(-)


base-commit: 74f15a002cf2979f3268afeed61aa1aef09ea4fa
--
2.39.1





Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 02 Feb 2023 21:24:01 GMT) Full text and rfc822 format available.

Message #65 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, liliana.prikler <at> gmail.com
Subject: [PATCH v3 1/5] gnu: wine: Update to 8.0.
Date: Thu, 02 Feb 2023 21:23:34 +0000
* gnu/packages/wine.scm (wine,wine64,wine-minimal): Update to 8.0.
[arguments]: Remove superfluous rpath setting in configure-flags.
---
 gnu/packages/wine.scm | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 6e86add4e3..7ca2ac5bdf 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -7,6 +7,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail <at> ambrevar.xyz>
 ;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler <at> gmail.com>
+;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,7 +77,7 @@ (define-module (gnu packages wine)
 (define-public wine
   (package
     (name "wine")
-    (version "7.19")
+    (version "8.0")
     (source
      (origin
        (method url-fetch)
@@ -88,7 +89,7 @@ (define-public wine
               (string-append "https://dl.winehq.org/wine/source/" dir
                              "wine-" version ".tar.xz")))
        (sha256
-        (base32 "08cxigkd83as6gkqgiwdpvr7cyy5ajsnhan3jbadwzqxdrz4kb23"))))
+        (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2"))))
     (build-system gnu-build-system)
     (native-inputs
      (list bison flex gettext-minimal perl pkg-config))
@@ -142,9 +143,6 @@ (define-public wine
        ;; pass.
        #:tests? #f

-       #:configure-flags
-       #~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine32"))
-
        #:make-flags
        #~(list "SHELL=bash"
                (string-append "libdir=" #$output "/lib/wine32"))
@@ -197,7 +195,7 @@ (define-public wine
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", so_dir );"))))))))
+                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
     (home-page "https://www.winehq.org/")
     (synopsis "Implementation of the Windows API (32-bit only)")
     (description
@@ -260,7 +258,7 @@ (define-public wine64
               (substitute* "tools/makedep.c"
                 (("output_filenames\\( unix_libs \\);" all)
                  (string-append all
-                                "output ( \" -Wl,-rpath=%s \", so_dir );")))))
+                                "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
           (add-after 'install 'copy-wine32-binaries
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let ((out (assoc-ref %outputs "out")))
@@ -293,8 +291,7 @@ (define-public wine64
                   (("(#define SONAME_.* )\"(.*)\"" _ defso soname)
                    (format #f "~a\"~a\"" defso (find-so soname))))))))
       #:configure-flags
-      #~(list "--enable-win64"
-              (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib/wine64"))
+      #~(list "--enable-win64")
       (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
                                  #:system)
                                (package-arguments wine))))
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 02 Feb 2023 21:24:02 GMT) Full text and rfc822 format available.

Message #68 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, liliana.prikler <at> gmail.com
Subject: [PATCH v3 2/5] gnu: wine-staging: Update to 8.0.
Date: Thu, 02 Feb 2023 21:23:42 +0000
* gnu/packages/wine.scm (wine-staging,wine64-staging): Update to 8.0.
---
 gnu/packages/wine.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 7ca2ac5bdf..6e43494c68 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -336,7 +336,7 @@ (define-public wine-minimal
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
-    (version "7.8")
+    (version "8.0")
     (source
      (origin
        (method git-fetch)
@@ -345,7 +345,7 @@ (define-public wine-staging-patchset-data
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "02rgpymhqrdr3aamvv6yvpgh82rj1n4adr36mi26cs3zbkx8zb55"))))
+        (base32 "11q9fa1jdrv1pd9piaicgqvidq1c08imkwpqhyzcj5r711rl7581"))))
     (build-system trivial-build-system)
     (native-inputs
      (list bash coreutils))
@@ -395,7 +395,7 @@ (define-public wine-staging
                              "wine-" wine-version ".tar.xz"))
          (file-name (string-append name "-" wine-version ".tar.xz"))
          (sha256
-          (base32 "1f0r00b6lk59cmpj42b7f2jrd58d7vxfvpp54j7arwjhdg4yjxlg")))))
+          (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2")))))
     (inputs (modify-inputs (package-inputs wine)
               (prepend autoconf ; for autoreconf
                        ffmpeg
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 02 Feb 2023 21:25:01 GMT) Full text and rfc822 format available.

Message #71 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, liliana.prikler <at> gmail.com
Subject: [PATCH v3 3/5] gnu: wine-minimal: Make the parent of wine so phases
 can be shared.
Date: Thu, 02 Feb 2023 21:23:59 +0000
* gnu/packages/wine.scm (wine,wine-minimal): Have wine expand upon the
package definition of wine-minimal instead of having wine-minimal trim down
the package definition of wine, and share the phases between them.
---
 gnu/packages/wine.scm | 166 +++++++++++++++++++-----------------------
 1 file changed, 75 insertions(+), 91 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 6e43494c68..ceef09ea5d 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -74,9 +74,11 @@ (define-module (gnu packages wine)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))

-(define-public wine
+;; This minimal build of Wine is needed to prevent a circular dependency with
+;; vkd3d.
+(define-public wine-minimal
   (package
-    (name "wine")
+    (name "wine-minimal")
     (version "8.0")
     (source
      (origin
@@ -91,8 +93,72 @@ (define-public wine
        (sha256
         (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2"))))
     (build-system gnu-build-system)
+    (native-inputs (list bison flex))
+    (inputs `())
+    (arguments
+     (list
+      ;; Force a 32-bit build targeting a similar architecture, i.e.:
+      ;; armhf for armhf/aarch64, i686 for i686/x86_64.
+      #:system (match (%current-system)
+                 ((or "armhf-linux" "aarch64-linux") "armhf-linux")
+                 (_ "i686-linux"))
+
+       ;; XXX: There's a test suite, but it's unclear whether it's supposed to
+       ;; pass.
+       #:tests? #f
+
+       #:make-flags
+       #~(list "SHELL=bash"
+               (string-append "libdir=" #$output "/lib/wine32"))
+
+       #: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)))))))
+           (add-after 'patch-generated-file-shebangs 'patch-makedep
+             (lambda* (#:key outputs #:allow-other-keys)
+               (substitute* "tools/makedep.c"
+                 (("output_filenames\\( unix_libs \\);" all)
+                  (string-append all
+                   "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))
+       #:configure-flags
+       #~(list "--without-freetype"
+               "--without-x")))
+    (home-page "https://www.winehq.org/")
+    (synopsis "Implementation of the Windows API (32-bit only)")
+    (description
+     "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a
+compatibility layer capable of running Windows applications.  Instead of
+simulating internal Windows logic like a virtual machine or emulator, Wine
+translates Windows API calls into POSIX calls on-the-fly, eliminating the
+performance and memory penalties of other methods and allowing you to cleanly
+integrate Windows applications into your desktop.")
+    ;; Any platform should be able to build wine, but based on '#:system' these
+    ;; are the ones we currently support.
+    (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))
+    (license license:lgpl2.1+)))
+
+(define-public wine
+  (package
+    (inherit wine-minimal)
+    (name "wine")
     (native-inputs
-     (list bison flex gettext-minimal perl pkg-config))
+     (modify-inputs (package-native-inputs wine-minimal)
+       (prepend gettext-minimal perl pkg-config)))
     (inputs
      ;; Some libraries like libjpeg are now compiled into native PE objects.
      ;; The ELF objects provided by Guix packages are of no use.  Whilst this
@@ -100,6 +166,7 @@ (define-public wine
      ;; to build some of these from Guix PACKAGE-SOURCE but attempts were not
      ;; fruitful so far.  See <https://www.winehq.org/announce/7.0>.
      (list alsa-lib
+           bash-minimal
            cups
            dbus
            eudev
@@ -132,23 +199,9 @@ (define-public wine
            vkd3d
            vulkan-loader))
     (arguments
-     (list
-      ;; Force a 32-bit build targeting a similar architecture, i.e.:
-      ;; armhf for armhf/aarch64, i686 for i686/x86_64.
-      #:system (match (%current-system)
-                 ((or "armhf-linux" "aarch64-linux") "armhf-linux")
-                 (_ "i686-linux"))
-
-       ;; XXX: There's a test suite, but it's unclear whether it's supposed to
-       ;; pass.
-       #:tests? #f
-
-       #:make-flags
-       #~(list "SHELL=bash"
-               (string-append "libdir=" #$output "/lib/wine32"))
-
-       #:phases
-       #~(modify-phases %standard-phases
+     (substitute-keyword-arguments (package-arguments wine-minimal)
+       ((#:phases phases)
+        #~(modify-phases #$phases
            ;; Explicitly set the 32-bit version of vulkan-loader when installing
            ;; to i686-linux or x86_64-linux.
            ;; TODO: Add more JSON files as they become available in Mesa.
@@ -173,42 +226,8 @@ (define-public wine
                                               "/radeon_icd.i686.json" ":"
                                               icd "/intel_icd.i686.json")))))))))
                 (_
-                 `()))
-           (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)))))))
-           (add-after 'patch-generated-file-shebangs 'patch-makedep
-             (lambda* (#:key outputs #:allow-other-keys)
-               (substitute* "tools/makedep.c"
-                 (("output_filenames\\( unix_libs \\);" all)
-                  (string-append all
-                                 "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))))
-    (home-page "https://www.winehq.org/")
-    (synopsis "Implementation of the Windows API (32-bit only)")
-    (description
-     "Wine (originally an acronym for \"Wine Is Not an Emulator\") is a
-compatibility layer capable of running Windows applications.  Instead of
-simulating internal Windows logic like a virtual machine or emulator, Wine
-translates Windows API calls into POSIX calls on-the-fly, eliminating the
-performance and memory penalties of other methods and allowing you to cleanly
-integrate Windows applications into your desktop.")
-    ;; Any platform should be able to build wine, but based on '#:system' these
-    ;; are thr ones we currently support.
-    (supported-systems '("i686-linux" "x86_64-linux" "armhf-linux"))
-    (license license:lgpl2.1+)))
+                 `()))))
+       ((#:configure-flags _ '()) #~'())))))

 (define-public wine64
   (package
@@ -298,41 +317,6 @@ (define-public wine64
     (synopsis "Implementation of the Windows API (WoW64 version)")
     (supported-systems '("x86_64-linux" "aarch64-linux"))))

-;; This minimal build of Wine is needed to prevent a circular dependency with
-;; vkd3d.
-(define-public wine-minimal
-  (package
-    (inherit wine)
-    (name "wine-minimal")
-    (native-inputs (modify-inputs (package-native-inputs wine)
-                     (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))))))
-
 (define-public wine-staging-patchset-data
   (package
     (name "wine-staging-patchset-data")
--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 02 Feb 2023 21:25:02 GMT) Full text and rfc822 format available.

Message #74 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, liliana.prikler <at> gmail.com
Subject: [PATCH v3 4/5] gnu: wine64: Share phases with parent wine package.
Date: Thu, 02 Feb 2023 21:24:08 +0000
* gnu/packages/wine.scm (wine64): Share phases with parent wine package.
---
 gnu/packages/wine.scm | 134 ++++++++++++++++++------------------------
 1 file changed, 56 insertions(+), 78 deletions(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index ceef09ea5d..3b637f76e5 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -236,84 +236,62 @@ (define-public wine64
     (inputs (modify-inputs (package-inputs wine)
               (prepend wine)))
     (arguments
-     (cons*
-      #:make-flags
-      #~(list "SHELL=bash"
-              (string-append "libdir=" #$output "/lib/wine64"))
-      #:phases
-      #~(modify-phases %standard-phases
-          ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader
-          ;; when installing to x86_64-linux so both are available.
-          ;; TODO: Add more JSON files as they become available in Mesa.
-          #$@(match (%current-system)
-               ((or "x86_64-linux")
-                `((add-after 'copy-wine32-binaries 'wrap-executable
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (icd-files (map
-                                         (lambda (basename)
-                                           (search-input-file
-                                            inputs
-                                            (string-append "/share/vulkan/icd.d/"
-                                                           basename)))
-                                         '("radeon_icd.x86_64.json"
-                                           "intel_icd.x86_64.json"
-                                           "radeon_icd.i686.json"
-                                           "intel_icd.i686.json"))))
-                        (wrap-program (string-append out "/bin/wine-preloader")
-                          `("VK_ICD_FILENAMES" ":" = ,icd-files))
-                        (wrap-program (string-append out "/bin/wine64-preloader")
-                          `("VK_ICD_FILENAMES" ":" = ,icd-files)))))))
-               (_
-                `()))
-          (add-after 'unpack 'patch-SHELL
-            (lambda _
-              (substitute* "configure"
-                ;; configure first respects CONFIG_SHELL, clobbers SHELL later.
-                (("/bin/sh")
-                 (which "bash")))))
-          (add-after 'patch-generated-file-shebangs 'patch-makedep
-            (lambda* (#:key outputs #:allow-other-keys)
-              (substitute* "tools/makedep.c"
-                (("output_filenames\\( unix_libs \\);" all)
-                 (string-append all
-                                "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
-          (add-after 'install 'copy-wine32-binaries
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let ((out (assoc-ref %outputs "out")))
-                ;; Copy the 32-bit binaries needed for WoW64.
-                (copy-file (search-input-file inputs "/bin/wine")
-                           (string-append out "/bin/wine"))
-                ;; Copy the real 32-bit wine-preloader instead of the wrapped
-                ;; version.
-                (copy-file (search-input-file inputs "/bin/.wine-preloader-real")
-                           (string-append out "/bin/wine-preloader")))))
-          (add-after 'install 'copy-wine32-libraries
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let* ((out (assoc-ref %outputs "out")))
-                (copy-recursively (search-input-directory inputs "/lib/wine32")
-                                  (string-append out "/lib/wine32")))))
-          (add-after 'compress-documentation 'copy-wine32-manpage
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let* ((out (assoc-ref %outputs "out")))
-                ;; Copy the missing man file for the wine binary from wine.
-                (copy-file (search-input-file inputs "/share/man/man1/wine.1.gz")
-                           (string-append out "/share/man/man1/wine.1.gz")))))
-          (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 "--enable-win64")
-      (strip-keyword-arguments '(#:configure-flags #:make-flags #:phases
-                                 #:system)
-                               (package-arguments wine))))
+     (substitute-keyword-arguments
+         (strip-keyword-arguments '(#:system) (package-arguments wine))
+       ((#:make-flags _)
+        #~(list "SHELL=bash"
+                (string-append "libdir=" #$output "/lib/wine64"))
+        )
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            ;; Explicitly set both the 64-bit and 32-bit versions of vulkan-loader
+            ;; when installing to x86_64-linux so both are available.
+            ;; TODO: Add more JSON files as they become available in Mesa.
+            #$@(match (%current-system)
+                 ((or "x86_64-linux")
+                  `((delete 'wrap-executable)
+                    (add-after 'copy-wine32-binaries 'wrap-executable
+                      (lambda* (#:key inputs outputs #:allow-other-keys)
+                        (let* ((out (assoc-ref outputs "out"))
+                               (icd-files (map
+                                           (lambda (basename)
+                                             (search-input-file
+                                              inputs
+                                              (string-append "/share/vulkan/icd.d/"
+                                                             basename)))
+                                           '("radeon_icd.x86_64.json"
+                                             "intel_icd.x86_64.json"
+                                             "radeon_icd.i686.json"
+                                             "intel_icd.i686.json"))))
+                          (wrap-program (string-append out "/bin/wine-preloader")
+                            `("VK_ICD_FILENAMES" ":" = ,icd-files))
+                          (wrap-program (string-append out "/bin/wine64-preloader")
+                            `("VK_ICD_FILENAMES" ":" = ,icd-files)))))))
+                 (_
+                  `()))
+            (add-after 'install 'copy-wine32-binaries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let ((out (assoc-ref %outputs "out")))
+                  ;; Copy the 32-bit binaries needed for WoW64.
+                  (copy-file (search-input-file inputs "/bin/wine")
+                             (string-append out "/bin/wine"))
+                  ;; Copy the real 32-bit wine-preloader instead of the wrapped
+                  ;; version.
+                  (copy-file (search-input-file inputs "/bin/.wine-preloader-real")
+                             (string-append out "/bin/wine-preloader")))))
+            (add-after 'install 'copy-wine32-libraries
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let* ((out (assoc-ref %outputs "out")))
+                  (copy-recursively (search-input-directory inputs "/lib/wine32")
+                                    (string-append out "/lib/wine32")))))
+            (add-after 'compress-documentation 'copy-wine32-manpage
+              (lambda* (#:key inputs outputs #:allow-other-keys)
+                (let* ((out (assoc-ref %outputs "out")))
+                  ;; Copy the missing man file for the wine binary from wine.
+                  (copy-file (search-input-file inputs "/share/man/man1/wine.1.gz")
+                             (string-append out "/share/man/man1/wine.1.gz")))))))
+       ((#:configure-flags configure-flags '())
+        #~(cons "--enable-win64" #$configure-flags))))
     (synopsis "Implementation of the Windows API (WoW64 version)")
     (supported-systems '("x86_64-linux" "aarch64-linux"))))

--
2.39.1






Information forwarded to guix-patches <at> gnu.org:
bug#61067; Package guix-patches. (Thu, 02 Feb 2023 21:25:02 GMT) Full text and rfc822 format available.

Message #77 received at 61067 <at> debbugs.gnu.org (full text, mbox):

From: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
To: 61067 <at> debbugs.gnu.org
Cc: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, liliana.prikler <at> gmail.com
Subject: [PATCH v3 5/5] gnu: wine-minimal: Build more reproducibly.
Date: Thu, 02 Feb 2023 21:24:21 +0000
* gnu/packages/wine.scm (wine-minimal)[phases]: Add a new 'set-widl-time-override phase.
---
 gnu/packages/wine.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 3b637f76e5..88f146b46b 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -134,7 +134,12 @@ (define-public wine-minimal
                (substitute* "tools/makedep.c"
                  (("output_filenames\\( unix_libs \\);" all)
                   (string-append all
-                   "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );"))))))
+                   "output ( \" -Wl,-rpath=%s \", arch_install_dirs[arch] );")))))
+           (add-before 'build 'set-widl-time-override
+             ;; Set WIDL_TIME_OVERRIDE to avoid embedding the current date in
+             ;; files generated by WIDL.
+             (lambda _
+               (setenv "WIDL_TIME_OVERRIDE" "315532800"))))
        #:configure-flags
        #~(list "--without-freetype"
                "--without-x")))
--
2.39.1






Reply sent to Liliana Marie Prikler <liliana.prikler <at> gmail.com>:
You have taken responsibility. (Sun, 05 Feb 2023 06:14:02 GMT) Full text and rfc822 format available.

Notification sent to Kaelyn Takata <kaelyn.alexi <at> protonmail.com>:
bug acknowledged by developer. (Sun, 05 Feb 2023 06:14:02 GMT) Full text and rfc822 format available.

Message #82 received at 61067-done <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Kaelyn Takata <kaelyn.alexi <at> protonmail.com>, 61067-done <at> debbugs.gnu.org
Subject: Re: [PATCH v3 0/5] Update wine and wine-staging packages to 8.0
Date: Sun, 05 Feb 2023 07:13:43 +0100
Am Donnerstag, dem 02.02.2023 um 21:23 +0000 schrieb Kaelyn Takata:
> New in v3:
> 
> * Modified the patch for sharing phases between wine and wine-minimal
> to also
>   invert the relationship between the two packages, with wine now
> inheriting
>   from wine-minimal.
> 
> Cheers,
> Kaelyn
Pushed.

Thanks




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 05 Mar 2023 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 46 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.