Thanks Luis!

The suggestion worked. However, now I'm fighting with gsettings.

I've added GSETTINGS_SCHEMA_DIR to wrap-program, but that didn't help. Here's 
the error message as well as updated patch:

$ /gnu/store/gdpv6p3flxnmsb1aziwhsci1c37fwj5q-bottles-2022.4.14/bin/bottles
Traceback (most recent call last):
  File 
"/gnu/store/gdpv6p3flxnmsb1aziwhsci1c37fwj5q-bottles-2022.4.14/share/bottles/bottles/main.py",
 line 171, in do_command_line
    self.do_activate()
  File 
"/gnu/store/gdpv6p3flxnmsb1aziwhsci1c37fwj5q-bottles-2022.4.14/share/bottles/bottles/main.py",
 line 206, in do_activate
    user_theme = subprocess.check_output([
  File 
"/gnu/store/papscspynmdi5ljmngw5x5wbi9ijc1xj-python-3.9.9/lib/python3.9/subprocess.py",
 line 424, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File 
"/gnu/store/papscspynmdi5ljmngw5x5wbi9ijc1xj-python-3.9.9/lib/python3.9/subprocess.py",
 line 505, in run
    with Popen(*popenargs, **kwargs) as process:
  File 
"/gnu/store/papscspynmdi5ljmngw5x5wbi9ijc1xj-python-3.9.9/lib/python3.9/subprocess.py",
 line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File 
"/gnu/store/papscspynmdi5ljmngw5x5wbi9ijc1xj-python-3.9.9/lib/python3.9/subprocess.py",
 line 1821, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'gsettings'

Kind regards,
Petr




Sent with ProtonMail secure email.
------- Original Message -------
On Monday, April 25th, 2022 at 1:33 PM, phodina via <help-guix@gnu.org> wrote:


> Hi,
>
> could I ask for help packaging Bottles? Patch provided below.
>
> When I attempt to run the binary I get this message:
>
> /gnu/store/a9h7l5g0zcvfsx8vi7yq3wc4k72i3i49-bottles-2022.4.14/bin/bottles
> Traceback (most recent call last):
> File 
> "/gnu/store/a9h7l5g0zcvfsx8vi7yq3wc4k72i3i49-bottles-2022.4.14/bin/.bottles-real",
>  line 42, in <module>
>
> from bottles import main
> File 
> "/gnu/store/a9h7l5g0zcvfsx8vi7yq3wc4k72i3i49-bottles-2022.4.14/share/bottles/bottles/main.py",
>  line 28, in <module>
>
> gi.require_version('WebKit2', '4.0')
> File 
> "/gnu/store/li6pai7xjn0xwc99rvdz29mx25ifznac-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/init.py",
>  line 129, in require_version
> raise ValueError('Namespace %s not available for version %s' %ValueError: 
> Namespace WebKit2 not available for version 4.0
>
> How should I wrap the binary to fix this error?
>
> ----
> Petr
From 5ce3a3c4869622cd53e9941d40a57fcbaa0b985b Mon Sep 17 00:00:00 2001
From: Petr Hodina <phod...@protonmail.com>
Date: Mon, 25 Apr 2022 13:30:01 +0200
Subject: [PATCH v2] gnu: Add bottles.

* /gnu/packages/wine.scm (bottles): New variable.

diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 7ca2b9d0c7..9a758f97cc 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2017, 2020 Nicolas Goaziou <m...@nicolasgoaziou.fr>
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <m...@tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <m...@ambrevar.xyz>
+;;; Copyright © 2022 Petr Hodina <phod...@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +28,7 @@ (define-module (gnu packages wine)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
@@ -38,15 +40,19 @@ (define-module (gnu packages wine)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages cups)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages image)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages kerberos)
@@ -54,10 +60,13 @@ (define-module (gnu packages wine)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages mingw)
   #:use-module (gnu packages openldap)
+  #:use-module (gnu packages patool)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages photo)
   #:use-module (gnu packages samba)
@@ -66,11 +75,78 @@ (define-module (gnu packages wine)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages webkit)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-1))
 
+(define-public bottles
+  (package
+    (name "bottles")
+    (version "2022.4.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/bottlesdevs/Bottles";)
+                    (commit (string-append version "-trento-2"))))
+              (sha256
+               (base32
+                "0w1dc8f7pxvfriy552a1s9hxk32zxgsni6d9zid0zy0f105vyfpb"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:glib-or-gtk? #t
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'fix-webkit
+                 (lambda* _
+                   (substitute* "src/main.py"
+                     (("WebKit2', '4.0") "WebKit2', '4.1"))))
+               (add-after 'install 'patch-python-references
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (let* ((site (string-append #$output "/lib/python"
+                                               #$(version-major+minor (package-version
+                                                                       python))
+                                               "/site-packages")) (path (getenv
+                                                                         "GUIX_PYTHONPATH")))
+                     (wrap-program (string-append #$output "/bin/bottles")
+                                   `("GUIX_PYTHONPATH" ":" prefix
+                                     (,site ,path))
+                                   `("GSETTINGS_SCHEMA_DIR" =
+                                     (,(string-append #$output
+                                        "/share/glib-2.0/schemas/")))
+                                   `("GI_TYPELIB_PATH" ":" prefix
+                                     (,(getenv "GI_TYPELIB_PATH"))))))))))
+    (native-inputs (list cmake
+                         desktop-file-utils
+                         gettext-minimal
+                         `(,glib "bin")
+                         gobject-introspection
+                         `(,gtk+ "bin")
+                         pkg-config))
+    (inputs (list bash-minimal
+                  dconf
+                  gtk+
+                  gtksourceview
+                  hicolor-icon-theme
+                  libhandy
+                  p7zip
+                  patool
+                  python
+                  python-pygobject
+                  python-requests
+                  python-pyyaml
+                  python-markdown
+                  wine
+                  cabextract
+                  webkitgtk
+                  xdpyinfo))
+    (synopsis "Easily manage wine and proton prefix")
+    (home-page "https://usebottles.com/";)
+    (description
+     "This package allows to easily manage wine and proton prefix.")
+    (license license:gpl3+)))
+
 (define-public wine
   (package
     (name "wine")
-- 
2.35.1

Reply via email to