unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#64206] [PATCH] gnu: webview: Tiny cross-platform webview library.
@ 2023-06-21  1:28 Jose Ortiz
  2023-06-22 18:29 ` Liliana Marie Prikler
  0 siblings, 1 reply; 2+ messages in thread
From: Jose Ortiz @ 2023-06-21  1:28 UTC (permalink / raw)
  To: 64206; +Cc: Jose Ortiz

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 4161 bytes --]

* gnu/packages/webview.scm (libwebview): Tiny cross-platform webview
library for C/C++/Golang. Uses Webkit(Gtk/Cocoa) and Edge(Windows).
---
 gnu/packages/webview.scm | 81 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 gnu/packages/webview.scm

diff --git a/gnu/packages/webview.scm b/gnu/packages/webview.scm
new file mode 100644
index 0000000000..ee3977ba6a
--- /dev/null
+++ b/gnu/packages/webview.scm
@@ -0,0 +1,81 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2023 Jose Ortiz <kotshie@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages webview)
+  #:use-module (gnu packages)
+  #:use-module (guix packages)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix git-download)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages webkit)
+  #:use-module ((guix licenses) #:prefix license:))
+
+
+(define-public webview
+  (package
+    (name "webview")
+    (version "899018a")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/webview/webview")
+                    (commit "899018ad0e5cc22a18cd734393ccae4d55e3b2b4")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "008bk2l6spsixsyk0dssnhnwdhmhwbm3qypk1rrz02rza28dzigb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (replace 'build
+                    (lambda _
+                      (use-modules (ice-9 popen)
+                                   (ice-9 rdelim))
+                      (define (webview-flags)
+                        (let* ((port (open-input-pipe (string-append
+                                                       "pkg-config --cflags --libs "
+                                                       "gtk+-3.0 webkit2gtk-4.0")))
+                               (results (string-split (read-line port) #\space)))
+                          results))
+                      (apply invoke
+                             `("g++" "webview.cc"
+                               "-fPIC"
+                               "-shared"
+                               "-DWEBVIEW_GTK"
+                               "-std=c++11"
+                               ,@(webview-flags)
+                               "-o"
+                               "libwebview.so"))))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((output (assoc-ref outputs "out"))
+                             (lib (string-append output "/lib"))
+                             (include (string-append output "/include")))
+                        (install-file "libwebview.so" lib)
+                        (mkdir-p include)
+                        (install-file "webview.h" include)))))))
+    (native-inputs (list pkg-config))
+    (inputs (list gtk+ webkitgtk-with-libsoup2))
+    (home-page "https://github.com/webview/webview")
+    (synopsis "Tiny cross-platform webview library")
+    (description "Tiny cross-platform webview library for C/C++/Golang.
+Uses WebKit (Gtk/Cocoa) and Edge (Windows).")
+    (license license:expat)))

base-commit: d884fc9e2efecfba09af4694f5a13ad7fc6f704f
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [bug#64206] [PATCH] gnu: webview: Tiny cross-platform webview library.
  2023-06-21  1:28 [bug#64206] [PATCH] gnu: webview: Tiny cross-platform webview library Jose Ortiz
@ 2023-06-22 18:29 ` Liliana Marie Prikler
  0 siblings, 0 replies; 2+ messages in thread
From: Liliana Marie Prikler @ 2023-06-22 18:29 UTC (permalink / raw)
  To: Jose Ortiz, 64206

Hi, Jose

Am Dienstag, dem 20.06.2023 um 18:28 -0700 schrieb Jose Ortiz:
> * gnu/packages/webview.scm (libwebview): Tiny cross-platform webview
> library for C/C++/Golang. Uses Webkit(Gtk/Cocoa) and Edge(Windows).
Please refer to section 22.6 of the Guix manual and 6.8.2 of the GNU
style manual on how to write commit messages :)

> ---
>  gnu/packages/webview.scm | 81
> ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 gnu/packages/webview.scm
> 
> diff --git a/gnu/packages/webview.scm b/gnu/packages/webview.scm
> new file mode 100644
> index 0000000000..ee3977ba6a
> --- /dev/null
> +++ b/gnu/packages/webview.scm
Creating a new file appears to me as somewhat overkill.  We do have
web.scm FWIW and it already pulls in Rust and Go if you need those for
future libraries on top of webview.

> @@ -0,0 +1,81 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2023 Jose Ortiz <kotshie@gmail.com>
> +;;;
> +;;; This file is part of GNU Guix.
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify
> it
> +;;; under the terms of the GNU General Public License as published
> by
> +;;; the Free Software Foundation; either version 3 of the License,
> or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public
> License
> +;;; along with GNU Guix.  If not, see
> <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages webview)
> +  #:use-module (gnu packages)
> +  #:use-module (guix packages)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (guix git-download)
> +  #:use-module (gnu packages pkg-config)
> +  #:use-module (gnu packages gtk)
> +  #:use-module (gnu packages webkit)
> +  #:use-module ((guix licenses) #:prefix license:))
> +
> +
> +(define-public webview
> +  (package
> +    (name "webview")
> +    (version "899018a")
A commit hash is not a version.  It turns out there was a release back
in 2020, though I don't know how reliable that is.
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/webview/webview")
> +                    (commit
> "899018ad0e5cc22a18cd734393ccae4d55e3b2b4")))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +               
> "008bk2l6spsixsyk0dssnhnwdhmhwbm3qypk1rrz02rza28dzigb"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f
Never #:tests? #f without an appropriate comment.
> +       #:phases (modify-phases %standard-phases
> +                  (delete 'configure)
> +                  (replace 'build
> +                    (lambda _
> +                      (use-modules (ice-9 popen)
> +                                   (ice-9 rdelim))
> +                      (define (webview-flags)
> +                        (let* ((port (open-input-pipe (string-append
> +                                                       "pkg-config -
> -cflags --libs "
> +                                                       "gtk+-3.0
> webkit2gtk-4.0")))
> +                               (results (string-split (read-line
> port) #\space)))
> +                          results))
> +                      (apply invoke
> +                             `("g++" "webview.cc"
> +                               "-fPIC"
> +                               "-shared"
> +                               "-DWEBVIEW_GTK"
> +                               "-std=c++11"
> +                               ,@(webview-flags)
> +                               "-o"
> +                               "libwebview.so"))))
> +                  (replace 'install
> +                    (lambda* (#:key outputs #:allow-other-keys)
> +                      (let* ((output (assoc-ref outputs "out"))
> +                             (lib (string-append output "/lib"))
> +                             (include (string-append output
> "/include")))
> +                        (install-file "libwebview.so" lib)
> +                        (mkdir-p include)
> +                        (install-file "webview.h" include)))))))
This looks like it could more correctly be implemented via copy-build-
system with a pre-install build phase.
> +    (native-inputs (list pkg-config))
> +    (inputs (list gtk+ webkitgtk-with-libsoup2))
> +    (home-page "https://github.com/webview/webview")
> +    (synopsis "Tiny cross-platform webview library")
> +    (description "Tiny cross-platform webview library for
> C/C++/Golang.
> +Uses WebKit (Gtk/Cocoa) and Edge (Windows).")
> +    (license license:expat)))
> 
> base-commit: d884fc9e2efecfba09af4694f5a13ad7fc6f704f

Cheers

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-22 18:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-21  1:28 [bug#64206] [PATCH] gnu: webview: Tiny cross-platform webview library Jose Ortiz
2023-06-22 18:29 ` Liliana Marie Prikler

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).