Subject: Re: [bug#49614] [PATCH] gnu: Add sequeler.
From: Efraim Flashner <[email-masked]>
To: Alexandre Hannud Abdo <[email-masked]>
Cc: [email-masked]
Date: Tue, 20 Jul 2021 12:02:01 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Not using a GTK based desktop I was able to make some changes to make
sure it ran smoothly.

On Mon, Jul 19, 2021 at 02:47:03PM +0200, Alexandre Hannud Abdo wrote:
> * gnu/packages/databases.scm (sequeler): New variable.
> ---
>  gnu/packages/databases.scm | 49 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
> 
> diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
> index 28832041ed..19c720a94a 100644
> --- a/gnu/packages/databases.scm
> +++ b/gnu/packages/databases.scm
> @@ -52,6 +52,7 @@
>  ;;; Copyright © 2021 Pjotr Prins <[email-masked]>
>  ;;; Copyright © 2021 Bonface Munyoki Kilyungi <[email-masked]>
>  ;;; Copyright © 2021 Simon Streit <[email-masked]>
> +;;; Copyright © 2021 Alexandre Hannud Abdo <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -78,6 +79,7 @@
>    #:use-module (gnu packages bash)
>    #:use-module (gnu packages bison)
>    #:use-module (gnu packages boost)
> +  #:use-module (gnu packages build-tools)
>    #:use-module (gnu packages check)
>    #:use-module (gnu packages cmake)
>    #:use-module (gnu packages compression)
> @@ -88,11 +90,14 @@
>    #:use-module (gnu packages dbm)
>    #:use-module (gnu packages emacs)
>    #:use-module (gnu packages flex)
> +  #:use-module (gnu packages freedesktop)
>    #:use-module (gnu packages gcc)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages glib)
> +  #:use-module (gnu packages gnome)
>    #:use-module (gnu packages gnupg)
>    #:use-module (gnu packages golang)
> +  #:use-module (gnu packages gtk)
>    #:use-module (gnu packages guile)
>    #:use-module (gnu packages icu4c)
>    #:use-module (gnu packages jemalloc)
> @@ -109,6 +114,7 @@
>    #:use-module (gnu packages multiprecision)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages onc-rpc)
> +  #:use-module (gnu packages pantheon)
>    #:use-module (gnu packages parallel)
>    #:use-module (gnu packages pcre)
>    #:use-module (gnu packages perl)
> @@ -130,6 +136,7 @@
>    #:use-module (gnu packages ruby)
>    #:use-module (gnu packages serialization)
>    #:use-module (gnu packages sphinx)
> +  #:use-module (gnu packages ssh)
>    #:use-module (gnu packages sqlite)
>    #:use-module (gnu packages tcl)
>    #:use-module (gnu packages terminals)
> @@ -148,6 +155,7 @@
>    #:use-module (guix build-system emacs)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix build-system go)
> +  #:use-module (guix build-system meson)
>    #:use-module (guix build-system perl)
>    #:use-module (guix build-system python)
>    #:use-module (guix build-system ruby)
> @@ -3983,3 +3991,44 @@ PostreSQL, SQLite, ODBC and MySQL.")
>       "FreeTDS is an implementation of the Tabular DataStream protocol, used for
>  connecting to MS SQL and Sybase servers over TCP/IP.")
>      (license license:lgpl2.0+)))
> +
> +(define-public sequeler
> +  (package
> +    (name "sequeler")
> +    (version "0.8.1")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://github.com/Alecaddd/sequeler")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "1q1vzc3likpiwfh6blkyiz0wr0aarj9xrm8gbi7m3p1wslkpah7c"))))
> +    (build-system meson-build-system)

I added some boilerplate here to wrap the gtk variables and to not build
the icon-cache since it's built at profile-creation time.

> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("meson" ,meson)
> +       ("vala" ,vala)
> +       ("desktop-file-utils" ,desktop-file-utils)
> +       ;; ("appstream-glib" ,appstream-glib) ; validation fails for lack of network
> +       ("glib:bin" ,glib "bin") ; for glib-compile-resources
> +       ("gtk+" ,gtk+ "bin")))

meson isn't needed because it's included by default with the
meson-build-system. I took out the desktop-file-utils since we weren't
updating the desktop database.

> +    (inputs
> +     `(("gtk+" ,gtk+)
> +       ("granite" ,granite)
> +       ("libgee" ,libgee)
> +       ("glib" ,glib)
> +       ("libxml2" ,libxml2)
> +       ("libgda" ,libgda)
> +       ("gtksourceview-3" ,gtksourceview-3)
> +       ("libsecret" ,libsecret)
> +       ("libssh2" ,libssh2)
> +       ("gettext-minimal" ,gettext-minimal)))

gettext-minimal I moved to native-inputs. I also added
gsettings-desktop-schemas to inputs since it complained (at me) when I
tried to run sequeler without including it.

> +    (synopsis "Friendly SQL Client")
> +    (description "Sequeler is a native Linux SQL client built in Vala and
> +Gtk.  It allows you to connect to your local and remote databases, write SQL in
> +a handy text editor with language recognition, and visualize SELECT results in
> +a Gtk.Grid Widget.")
> +    (home-page "https://github.com/Alecaddd/sequeler")
> +    (license license:lgpl3+)))

Looking at the source code headers it looks like it's gpl2+, so I
changed the license.

> -- 
> 2.32.0
> 

Thanks for the patch! Pushed.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted