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