From: "Nicolò Balzarotti" <anothersms@gmail.com>
To: Christopher Baines <mail@cbaines.net>
Cc: 44191@debbugs.gnu.org, nicolo@nixo.xyz
Subject: [bug#44191] gnu: Add kristall
Date: Tue, 27 Oct 2020 14:22:05 +0100 [thread overview]
Message-ID: <87o8knn6rm.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <87sga0n9ew.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me>
[-- Attachment #1: Type: text/plain, Size: 493 bytes --]
Hi!
The PR has been merged (so now I can link to cmark just fine).
Find attached the new patches.
I'm unsure about BreezeStyleSheets, as the install instructions
specifically say:
#+begin_quote
Copy breeze.qrc, dark.qss, light.qss and the dark and light folders into
your project directory and add the qrc file to your project file.
#+end_quote
Note on fonts: I'm using pre-built ttf as I'm not able to build them
(lot of javascript required)
Let me know!
Nicolò
[-- Attachment #2: 0001-gnu-Add-font-openmoji.patch --]
[-- Type: text/x-patch, Size: 1980 bytes --]
From 4fc57649d12f0ef6e3e5b1c01ce0e2ff5a4382e1 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Tue, 27 Oct 2020 14:10:06 +0100
Subject: [PATCH 1/2] gnu: Add font-openmoji
* gnu/packages/fonts.scm (font-openmoji): New variable.
---
gnu/packages/fonts.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index f39c529beb..8982551dda 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -37,6 +37,7 @@
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2020 Simen Endsjø <simendsjo@gmail.com>
;;; Copyright © 2020 Tim Van den Langenbergh <tmt_vdl@gmx.com>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1430,6 +1431,30 @@ emphasis while still being readable.")
(define-public font-open-dyslexic
(deprecated-package "font-open-dyslexic" font-opendyslexic))
+(define-public font-openmoji
+ (package
+ (name "font-openmoji")
+ (version "12.4.0")
+ (source
+ (origin
+ (method url-fetch/zipbomb)
+ (uri
+ ;; It's also possible to build openmoji from source, but requires
+ ;; hundreds of libraries still not available in guix
+ (string-append "https://github.com/hfg-gmuend/openmoji/"
+ "releases/download/" version
+ "/openmoji-font.zip"))
+ (sha256
+ (base32
+ "0wvvg5vnc950h8v23wfgjyi7rv89mgm5hqq6viqv0bxcc3azglxb"))))
+ (build-system font-build-system)
+ (native-inputs `(("unzip" ,unzip)))
+ (home-page "https://openmoji.org")
+ (synopsis "Emojis for designers, developers and everyone else")
+ (description "OpenMoji provides emojis for designers, developers and
+everyone else.")
+ (license license:cc-by-sa4.0)))
+
(define-public font-dosis
(package
(name "font-dosis")
--
2.28.0
[-- Attachment #3: 0002-gnu-Add-kristall.patch --]
[-- Type: text/x-patch, Size: 5792 bytes --]
From 23527b87e86dbbf92c37718dc449d8ad0a8d3758 Mon Sep 17 00:00:00 2001
From: nixo <nicolo@nixo.xyz>
Date: Tue, 27 Oct 2020 14:18:23 +0100
Subject: [PATCH 2/2] gnu: Add kristall.
* gnu/packages/web-browsers.scm (kristall): New variable.
---
gnu/packages/web-browsers.scm | 99 +++++++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+)
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index eb49a8fdea..30bc9ca9cf 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
@@ -60,6 +61,7 @@
#:use-module (gnu packages lisp)
#:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages markup)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -341,6 +343,103 @@ access.")
(properties `((lint-hidden-cve . ("CVE-2016-9179"))))
(license license:gpl2)))
+(define-public kristall
+ ;; Fixes to the build system applied after the latest tag
+ ;; Use tagged release when updating
+ (let ((commit "b684f94f1af9a19c1a6fd70d72097a13b75e1ca6")
+ (revision "1"))
+ (package
+ (name "kristall")
+ (version (string-append "0.3-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/MasterQ32/kristall")
+ (commit "bf5b2ecd0fde117d550adeadee48d74034ed2cdb")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1zakhxr30n7dawig7c8mizaqxwnqn3a7pz0yi7hc55nn7n7iyr6l"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled programs.
+ (with-directory-excursion "lib"
+ ;; Delete extra (bundled) files
+ (map (lambda (dir) (delete-file-recursively dir))
+ ;; "BreezeStyleSheets"
+ '("cmark")))
+ ;; Contains executable of 7z and pscp
+ (delete-file-recursively "ci/tools")
+ ;; Remove bundled fonts
+ (delete-file-recursively "src/fonts")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build qt-utils)
+ (guix build utils))
+ #:imported-modules (,@%gnu-build-system-modules
+ (guix build qt-utils))
+ #:make-flags
+ (list (string-append "PREFIX=" %output))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no ./configure script
+ (delete 'check) ; no check target
+ (add-before 'build 'set-program-version
+ ;; runs git describe --tags by default
+ (lambda _
+ ;; configure.ac relies on ‘git --describe’ to get the version.
+ ;; Patch it to just return the real version number directly.
+ (substitute* "src/kristall.pro"
+ (("(KRISTALL_VERSION=).*" _ match)
+ (string-append match ,version "\n")))))
+ (add-before 'build 'replace-bundled-cmark
+ (lambda _
+ (substitute* "src/kristall.pro"
+ (("(^include\\(.*cmark.*)" _ match)
+ (string-append
+ "LIBS += -I" (assoc-ref %build-inputs "cmark") " -lcmark")))
+ (substitute* "src/renderers/markdownrenderer.cpp"
+ (("(include.*node.*)" _ match)
+ (string-append "// " match)))))
+ (add-before 'build 'replace-bundled-fonts
+ (lambda _
+ (let ((noto (assoc-ref %build-inputs "font-google-noto"))
+ (openmoji (assoc-ref %build-inputs "font-openmoji"))
+ (srcdir "/share/fonts/truetype/")
+ (outdir "src/fonts/"))
+ (mkdir-p outdir)
+ (copy-file
+ (string-append noto srcdir "NotoColorEmoji.ttf")
+ (string-append outdir "NotoColorEmoji.ttf"))
+ (copy-file
+ (string-append openmoji srcdir "OpenMoji-Color.ttf")
+ (string-append outdir "OpenMoji-Color.ttf")))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-qt-program out "kristall"))
+ #t)))))
+ (inputs
+ `(("cmark" ,cmark)
+ ("font-google-noto" ,font-google-noto)
+ ("font-openmoji" ,font-openmoji)
+ ("openssl" ,openssl)
+ ("qtbase" ,qtbase)
+ ("qtmultimedia" ,qtmultimedia)
+ ("qtsvg" ,qtsvg)))
+ (home-page "https://github.com/MasterQ32/kristall")
+ (synopsis "Small-internet graphical client")
+ (description "Graphical small-internet client with with many features
+including multi-protocol support (gemini, http, https, gopher, finger),
+bookmarks, TSL certificates management, outline generation, tabbed interface
+and more.")
+ (license license:gpl3))))
+
(define-public qutebrowser
(package
(name "qutebrowser")
--
2.28.0
[-- Attachment #4: Type: text/plain, Size: 2319 bytes --]
Nicolò Balzarotti <anothersms@gmail.com> writes:
> Just linking to it would be easier. However, the file markdownrenderer
> requires access to implementation details of the struct cmark_node
> (it includes the file node.h, which is not installed by cmark, and fails
> with: ../src/renderers/markdownrenderer.cpp:83:23: error: invalid use of incomplete type ‘const cmark_node {aka const struct cmark_node}’)
>
> I replaced references such as `node.as.heading.level` to
> `cmark_node_get_heading_level(node)` and so on. I could compile it (by
> also adding -I/gnu/store and -lcmark to the build process), and markdown
> seems to be working (tested here
> gemini://tilde.team/~supernova/blog/this-is-a-test-of-using-markdown.md).
>
> I'm going to send a patch to the author, linking to this mail exchange.
>
> I'll let you know.
>
> Christopher Baines <mail@cbaines.net> writes:
>
>> Nicolò Balzarotti <anothersms@gmail.com> writes:
>>
>>> Hi Chris!
>>>
>>> Thanks for the review.
>>>
>>> I tried, but:
>>> 1. breeze is a different package from the ones in the repo (url is
>>> https://github.com/Alexhuszagh/BreezeStyleSheets). It does not seems to
>>> be compiled, I can try to package it.
>>> 2. there are files in lib/cmark that are not present in the cmark
>>> distribution (thei are .h files generated by their .h.in), so I cannot
>>> extract our cmark source directly
>>> - I tried keeping those files, but build fails [[failed-build]]. Not sure if it's
>>> a patched version or if it's an older one. But I can investigate
>>> probably
>>
>> I think you might be overcomplicating this. kristall shouldn't be trying
>> to build cmark, as it's a library, it should just be linking against
>> it. Therefore, you shouldn't need to keep the .h.in files.
>>
>> Making kristall use cmark, rather than the copy in the kristall source
>> probably requires adapting/fixing src/kristall.pro.
>>
>> It hopefully isn't that difficult, but I don't know what this .pro file
>> is, it also looks pretty odd in parts, especially the references to
>> /home/felix/... !
>>
>> It doesn't look like the copy of cmark in the kristall source has been
>> modified much, which also raises the question of why there is a copy of
>> the cmark source inside kristall?
next prev parent reply other threads:[~2020-10-27 13:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-24 13:07 [bug#44191] gnu: Add kristall Nicolò Balzarotti
2020-10-25 9:47 ` Christopher Baines
2020-10-25 16:47 ` Nicolò Balzarotti
2020-10-26 16:43 ` Christopher Baines
2020-10-26 18:12 ` Nicolò Balzarotti
2020-10-27 13:22 ` Nicolò Balzarotti [this message]
2020-10-31 20:26 ` Christopher Baines
2020-11-03 10:14 ` Nicolò Balzarotti
2020-11-10 19:57 ` Christopher Baines
2020-11-14 14:52 ` Nicolò Balzarotti
2020-11-14 16:23 ` bug#44191: " Christopher Baines
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=87o8knn6rm.fsf@guixSD.i-did-not-set--mail-host-address--so-tickle-me \
--to=anothersms@gmail.com \
--cc=44191@debbugs.gnu.org \
--cc=mail@cbaines.net \
--cc=nicolo@nixo.xyz \
/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).