-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update request: nyxt 2.2.4 → 3-pre-release-3 #217888
Comments
Thanks for notifying! I haven't used Nyxt in a long while, so Ive missed the updates. I should remove myself as maintainer, but $LIFE has kept me incredibly occupied this last year. Apologies, but I will not be able to maintain Nyxt in nixpkgs for foreseeable future. |
Nyxt recently released 3.0.0; this issue could be updated to reflect that the new version is out of pre-release! (I see two maintainers in the default.nix file. Are those GitHub usernames we could ping? It would be awesome to get the new version into NixOS 23.05! If it isn't already too late of course.) |
I tried to build a new nyxt several weeks, but it failed with a wired error. If someone knows how to fix it, please try to open a pr to update nyxt to version 3.0. |
I've been trying to package 3.0.0, I was able to fix the error @Vonfry got and make it start compiling the lisp files, but now I'm stuck at another error. Build Log
(full log: https://0x0.st/HqPB.txt) |
Unfortunately, I don't know much about Nix and its package definitions and, particularly, how it manages CL libraries. Still I may be able to provide some high-level tips, since I've spotted some issues with the definition @dariof4 wrote. @Ambrevar may have some clues too. Find the Guix package definition below. Notice that Nyxt will soon delete (define-public nyxt
(package
(name "nyxt")
(version "3.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/atlas-engineer/nyxt")
(commit version)))
(sha256
(base32
"1jzlpi2iam15f0724nh6pb0zfs8d89mrf3zkvd87g99aq9w2h02a"))
(file-name (git-file-name "nyxt" version))
(modules '((guix build utils)))
(snippet
`(begin
(delete-file-recursively "libraries/nasdf")
#t))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "nyxt" "NYXT_SUBMODULES=false"
(string-append "DESTDIR=" (assoc-ref %outputs "out"))
"PREFIX=")
#:strip-binaries? #f ; Stripping breaks SBCL binaries.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'fix-common-lisp-cache-folder
(lambda _
(setenv "HOME" "/tmp")
#t))
(add-before 'check 'configure-tests
(lambda _
(setenv "NYXT_TESTS_NO_NETWORK" "1")
(setenv "NYXT_TESTS_ERROR_ON_FAIL" "1")
#t))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((bin (string-append (assoc-ref outputs "out") "/bin/nyxt"))
(glib-networking (assoc-ref inputs "glib-networking"))
(libs '("gsettings-desktop-schemas"))
(path (string-join
(map (lambda (lib)
(string-append (assoc-ref inputs lib) "/lib"))
libs)
":"))
(gi-path (getenv "GI_TYPELIB_PATH"))
(xdg-path (string-join
(map (lambda (lib)
(string-append (assoc-ref inputs lib) "/share"))
libs)
":")))
(wrap-program bin
`("GIO_EXTRA_MODULES" prefix
(,(string-append glib-networking "/lib/gio/modules")))
`("GI_TYPELIB_PATH" prefix (,gi-path))
`("LD_LIBRARY_PATH" ":" prefix (,path))
`("XDG_DATA_DIRS" ":" prefix (,xdg-path)))
#t))))))
(native-inputs (list cl-lisp-unit2 sbcl))
(inputs (list sbcl-alexandria
sbcl-bordeaux-threads
sbcl-calispel
sbcl-cl-base64
sbcl-cl-colors2
sbcl-cl-containers
sbcl-cl-gopher
sbcl-cl-html-diff
sbcl-cl-json
sbcl-cl-ppcre
sbcl-cl-prevalence
sbcl-cl-qrencode
sbcl-cl-str
sbcl-cl-tld
sbcl-closer-mop
sbcl-clss
sbcl-cluffer
sbcl-custom-hash-table
sbcl-dexador
sbcl-dissect
sbcl-enchant
sbcl-flexi-streams
sbcl-fset
sbcl-history-tree
sbcl-iolib
sbcl-lass
sbcl-local-time
sbcl-log4cl
sbcl-lparallel
sbcl-mk-string-metrics
sbcl-montezuma
sbcl-moptilities
sbcl-named-readtables
sbcl-nasdf
sbcl-nclasses
sbcl-ndebug
sbcl-nfiles
sbcl-nhooks
sbcl-njson
sbcl-nkeymaps
sbcl-nsymbols
sbcl-parenscript
sbcl-phos
sbcl-plump
sbcl-prompter
sbcl-py-configparser
sbcl-quri
sbcl-serapeum
sbcl-slime-swank
sbcl-slynk
sbcl-spinneret
sbcl-trivia
sbcl-trivial-clipboard
sbcl-trivial-custom-debugger
sbcl-trivial-features
sbcl-trivial-garbage
sbcl-trivial-package-local-nicknames
sbcl-trivial-types
sbcl-unix-opts
;; WebKitGTK deps
sbcl-cl-cffi-gtk
sbcl-cl-webkit
glib-networking
gsettings-desktop-schemas
cl-gobject-introspection
gtk+ ; For the main loop
webkitgtk ; Required when we use its typelib
gobject-introspection
pkg-config))
(synopsis "Extensible web-browser in Common Lisp")
(home-page "https://nyxt.atlas.engineer")
(description "Nyxt is a keyboard-oriented, extensible web-browser designed
for power users. The application has familiar Emacs and VI key-bindings and
is fully configurable and extensible in Common Lisp.")
(license license:bsd-3))) (define-public sbcl-nasdf
(let ((commit "c63a6ff12239f132844cc0703e79ea3b33dae630"))
(package
(name "sbcl-nasdf")
(version "0.1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/atlas-engineer/ntemplate")
(commit commit)))
(file-name (git-file-name "cl-ntemplate" version))
(sha256
(base32
"1b57jkyrvr3n0c66lih4m34fqzw3s5yqlk91v7hg2gchcn3v9glg"))))
(build-system asdf-build-system/sbcl)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'cd-sdl
(lambda _
(chdir "nasdf")
#t)))))
(home-page "https://github.com/atlas-engineer/ntemplate")
(synopsis "ASDF helpers for system setup, testing and installation")
(description
"NASDF is an ASDF extension providing utilities to ease system setup, testing and installation.
@itemize
@item Simple way to fetch Git submodules and “do the right thing” for
setup. This may effectively supersede Quicklisp. A benefit of using Git
submodules over the default Quicklisp distribution is improved
reproducibility.
@item Test helpers, like distinction between offline and online tests, or
continuous integration options, and warning reports.
@item Installation helpers, for instance to install libraries, icons and
desktop files to the right directories.
@end itemize\n")
(license license:bsd-3)))) |
Thanks for the heads-up! I switched out the nasdf source from the nyxt repo to the ntemplate repo.
But, it works fine if I run it with Log when running with --profile nofile
sb-ext:save-lisp-and-die instead of asdf:make is the reason, though I can't get asdf:make to work with nix :-(
Also, forgive if this is a dumb question, but what's the difference between nyxt/gtk-application and nyxt/gi-gtk-application 😅 ? I see that in the makefile it's gi-gtk-application while the 2.2.4 nyxt nix package used gtk-application . I updated my branch (https://github.com/dariof4/nixpkgs/tree/nyxt-3) with the changes I made, forgive me if it's a bit messy, I plan on cleaning it up after getting nyxt fully working. |
GI stands for GObject Introspection. They're similar, but
Could you explain why it doesn't work with
It does seem like it. But I don't understand why this is being done. The package definition should be able to generate the Nyxt binary, and then invoking I'm wildly trying to shoot in the dark, sorry! Probably I'm not making much sense. |
Okay! I'll package gi-gtk-application then.
Welp, this got me to take another look at it, and that was the problem after all! for some reason it works with Though it is a bit of an hack, since
Thanks for helping, it got me to take another look at the problem and find a solution :-) |
@dariof4 the merit is all yours! 🥳 The Nyxt team sincerely appreciates your work :) |
Nyxt has released version 3.1.0. See https://github.com/atlas-engineer/nyxt/releases. It seems that @dariof4 has noticed the release. Once again, thank you! |
Package :nyxt/gi-gtk-application instead of :nyxt/gtk-application. ref: NixOS#217888 (comment)
Currently 3 releases (and over a year) behind.
Notify maintainers
@nlewo @bhankas
Note for maintainers: Please tag this issue in your PR.
The text was updated successfully, but these errors were encountered: