unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Christopher Baines <mail@cbaines.net>
To: Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
Cc: 42229@debbugs.gnu.org
Subject: [bug#42229] [PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files.
Date: Mon, 06 Jul 2020 22:19:42 +0100	[thread overview]
Message-ID: <87lfjwnxxt.fsf@cbaines.net> (raw)
In-Reply-To: <20200706155030.1938-8-tona_kosmicznego_smiecia@interia.pl>

[-- Attachment #1: Type: text/plain, Size: 8131 bytes --]


Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> writes:

> * gnu/packages/jami.scm (define-module): Add copy-build-system.
> (libringclient)[source]: Delete chatview files.
> [arguments]: Remove chatview files from CMakeLists.txt.
> (jami-chatview): New variable.
> (jami)[source]: Delete chatview directory.
> [inputs]: Add jami-chatview.
> [arguments]: Copu chatview files to destination.
> ---
>  gnu/packages/jami.scm | 80 ++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 79 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm
> index ea94efb2f9..58e10ae6d8 100644
> --- a/gnu/packages/jami.scm
> +++ b/gnu/packages/jami.scm
> @@ -56,6 +56,7 @@
>    #:use-module (gnu packages xorg)
>    #:use-module (gnu packages)
>    #:use-module (guix build-system cmake)
> +  #:use-module (guix build-system copy)
>    #:use-module (guix build-system gnu)
>    #:use-module (guix download)
>    #:use-module (guix git-download)
> @@ -526,6 +527,16 @@ functionality.")
>                        (url "https://review.jami.net/ring-lrc")
>                        (commit commit)))
>                  (file-name (git-file-name name version))
> +                (modules '((guix build utils)))
> +                ;; The chatview is a common code among Jami clients.
> +                ;; Since Guix likes functional design, I'm removing
> +                ;; the directory containing it and making it a new
> +                ;; package. The other reason is that there is no
> +                ;; any rule in the build system to check if it is
> +                ;; included.

I'd perhaps just say instead that these files are packaged as
jami-chatview which is used by the jami package, that's probably what's
useful to know here.

> +                (snippet
> +                 '(begin
> +                    (delete-file-recursively "src/web-chatview")))
>                  (sha256
>                   (base32
>                    "1s1wi80drabfjhvxbiyl8k9c2jsafvmx5v84s3wldsmmdg4f6xdf"))))
> @@ -542,6 +553,21 @@ functionality.")
>                                (assoc-ref %build-inputs "libring") "/include"))
>           #:phases
>           (modify-phases %standard-phases
> +           (add-after 'unpack 'do-not-install-chatview
> +             (lambda _
> +               (substitute* "CMakeLists.txt"
> +                 (("src/web-chatview/.eslintrc.json") "")
> +                 (("src/web-chatview/chatview-gnome.css") "")
> +                 (("src/web-chatview/chatview.css") "")
> +                 (("src/web-chatview/chatview.html") "")
> +                 (("src/web-chatview/chatview.js") "")
> +                 (("src/web-chatview/jed.js") "")
> +                 (("src/web-chatview/linkify-html.js") "")
> +                 (("src/web-chatview/linkify-string.js") "")
> +                 (("src/web-chatview/linkify.js") "")
> +                 (("src/web-chatview/qwebchannel.js") "")
> +                 (("src/web-chatview/web.gresource.xml") ""))

Because substitute* uses regular expressions, characters like . should
probably be escaped. However, you might want to try something like the
following:

               (substitute* "CMakeLists.txt"
                 (("src/web-chatview/.*") ""))


> +               #t))
>             (add-before 'configure 'fix-dbus-interfaces-path
>               (lambda* (#:key inputs #:allow-other-keys)
>                 (substitute* "CMakeLists.txt"
> @@ -558,6 +584,40 @@ This package provides a library common to all Jami clients.")
>        (home-page "https://jami.net")
>        (license license:gpl3+))))
>  
> +(define-public jami-chatview
> +  (let ((commit "0a790d86a20ae80e5d2ee0d35452fa77cfb8cc40")
> +        (revision "0"))
> +    (package
> +      (name "jami-chatview")
> +      (version (git-version %jami-version revision commit))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://review.jami.net/jami-chatview")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "1zb3qa1x37kclbgk4wdg6qp4ivr6513ypj8s4k0qjps7h2clgna8"))))
> +      (build-system copy-build-system)
> +      (arguments
> +       '(#:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'allow-copying
> +             (lambda* (#:key inputs #:allow-other-keys)
> +               ;; Permissions of this file are not right.
> +               ;; Let's change this to allow installing it properly.
> +               (chmod ".eslintrc.json" #o644)
> +               #t)))
> +         #:install-plan '(("." "include/libringclient/web-chatview")
> +                          (".eslintrc.json"
> +                           "include/libringclient/web-chatview/.eslintrc.json"))))
> +      (synopsis "Chatview for Jami")
> +      (description "Web chatview for Jami - html, css, js files.
> +It provides some common code for Jami clients.")

It would be good if this could be clearer as to what the user gets if
they install this package. I'm guessing because it's an input to Jami,
it's probably not useful to have it in your profile?

Also, if it's going to describe the contents of the package, I'd do it
in a full sentance, so something like: "This package provides the HTML,
CSS and JavaScript files for the web chatview for Jami".

> +      (home-page "https://jami.net")
> +      (license license:gpl3+))))

I think there's some Expat stuff in there too.

> +
>  (define-public jami
>    (let ((commit "85cda2e1fde84230f6b9f5419f9ec1e23867c2a1")
>          (revision "0"))
> @@ -570,6 +630,11 @@ This package provides a library common to all Jami clients.")
>                        (url "https://review.jami.net/ring-client-gnome")
>                        (commit commit)))
>                  (file-name (git-file-name name version))
> +                (modules '((guix build utils)))
> +                ;; The web directory contains links to nowhere
> +                (snippet
> +                 '(begin
> +                    (delete-file-recursively "web")))
>                  (sha256
>                   (base32
>                    "0xzcx8x04yc8m8b2vf7sxfgw79idbm0hifzaw4s2vh26hyy9sp2g"))))
> @@ -584,6 +649,8 @@ This package provides a library common to all Jami clients.")
>           ("clutter-gtk" ,clutter-gtk)
>           ("libcanberra" ,libcanberra)
>           ("libnm" ,network-manager)
> +         ("jami-chatview" ,jami-chatview)
> +         ("qtbase" ,qtbase)
>           ("webkitgtk" ,webkitgtk)
>           ("sqlite" ,sqlite)))
>        (native-inputs
> @@ -596,7 +663,18 @@ This package provides a library common to all Jami clients.")
>           ("adwaita-icon-theme" ,adwaita-icon-theme)
>           ("evolution-data-server" ,evolution-data-server)))
>        (arguments
> -       `(#:tests? #f)) ; There is no testsuite.
> +       `(#:tests? #f ; There is no testsuite.
> +         #:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'copy-chatview-files
> +             (lambda* (#:key inputs #:allow-other-keys)
> +               (let ((chatview
> +                      (string-append
> +                       (assoc-ref inputs "jami-chatview")
> +                       "/include/libringclient/web-chatview"))
> +                     (destination-dir "web"))
> +                 (copy-recursively chatview destination-dir))

Rather than copying, could this be a symlink? That way you're just using
another store item, rather than copying the files from one to another.

> +               #t)))))
>        (synopsis "Distributed, privacy-respecting communication program")
>        (description "Jami (formerly GNU Ring) is a secure and distributed voice,
>  video and chat communication platform that requires no centralized server and


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 962 bytes --]

  reply	other threads:[~2020-07-06 21:20 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-06 15:34 [bug#42229] [PATCH 0/9] Jami update and refactor Jan Wielkiewicz
2020-07-06 15:50 ` [bug#42229] [PATCH 1/9] gnu: libring: Fetch from git, update to 20200702-guix Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 2/9] gnu: libringclient: " Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 3/9] gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply patches from the new libring source Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 4/9] gnu: jami: Fetch from git, update to 20200702-guix Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 5/9] gnu: pjproject-jami: Make sure phases are run in order Jan Wielkiewicz
2020-08-04  4:20     ` maxim.cournoyer
2020-08-04 13:05       ` Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 6/9] gnu: jami: Add libnm as input Jan Wielkiewicz
2020-07-06 21:24     ` Christopher Baines
2020-07-10 18:03       ` Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 7/9] gnu: libringclient: Do not propagate qtbase in libringclient Jan Wielkiewicz
2020-07-06 20:56     ` Christopher Baines
2020-07-07 23:13       ` Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 8/9] gnu: jami: Fix compilation by providing necessary webchat files Jan Wielkiewicz
2020-07-06 21:19     ` Christopher Baines [this message]
2020-07-07 21:22       ` Jan Wielkiewicz
2020-07-08 19:14         ` Christopher Baines
2020-07-07 23:07       ` Jan Wielkiewicz
2020-08-04  4:40     ` maxim.cournoyer
2020-08-04 13:02       ` Jan Wielkiewicz
2020-07-06 15:50   ` [bug#42229] [PATCH 9/9] gnu: pjproject-jami: Fix assertion by disabling debugging Jan Wielkiewicz
2020-07-10 18:32 ` [bug#42229] [[PATCH V2] 01/10] gnu: libring: Fetch from git, update to 20200708-guix Jan Wielkiewicz
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 02/10] gnu: libringclient: Fetch from git, update to 20200702-guix Jan Wielkiewicz
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 03/10] gnu: jami-apply-dependency-patches, ffmpeg-jami, pjproject-jami: Apply patches from the new libring source Jan Wielkiewicz
2020-07-11 19:52     ` Christopher Baines
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 04/10] gnu: jami: Fetch from git, update to 20200702-guix Jan Wielkiewicz
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 05/10] gnu: pjproject-jami: Make sure phases are run in order Jan Wielkiewicz
2020-07-11 19:57     ` Christopher Baines
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 06/10] gnu: jami: Add libnm as input Jan Wielkiewicz
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 07/10] gnu: jami: Fix compilation by providing necessary webchat files Jan Wielkiewicz
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 08/10] gnu: pjproject-jami: Fix assertion by disabling debugging Jan Wielkiewicz
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 09/10] gnu: opendht: Fix libring compilation Jan Wielkiewicz
2020-07-11 20:12     ` Christopher Baines
2020-07-10 18:32   ` [bug#42229] [[PATCH V2] 10/10] gnu: jami-client-gnome: Remove deprecated package Jan Wielkiewicz
2020-07-11 19:51   ` [bug#42229] [[PATCH V2] 01/10] gnu: libring: Fetch from git, update to 20200708-guix Christopher Baines
2020-07-12 16:00 ` [bug#42229] [[PATCH v3] 1/4] gnu: jami-client-gnome: Remove deprecated package Jan Wielkiewicz
2020-07-12 16:00   ` [bug#42229] [[PATCH v3] 2/4] gnu: opendht: Fix compilation of software using this package Jan Wielkiewicz
2020-07-12 16:00   ` [bug#42229] [[PATCH v3] 3/4] gnu: jami: Bump to 20200710.1.6bd18d2 Jan Wielkiewicz
2020-07-12 16:00   ` [bug#42229] [[PATCH v3] 4/4] gnu: pjproject-jami: Fix assertion bug Jan Wielkiewicz
2020-07-12 19:36   ` [bug#42229] [[PATCH v3] 1/4] gnu: jami-client-gnome: Remove deprecated package Christopher Baines
2021-03-31  5:27 ` bug#42229: [PATCH 0/9] Jami update and refactor Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lfjwnxxt.fsf@cbaines.net \
    --to=mail@cbaines.net \
    --cc=42229@debbugs.gnu.org \
    --cc=tona_kosmicznego_smiecia@interia.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).