Skip to content
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

Provide a homebrew formula for OSX #577

Open
wakatara opened this issue Mar 4, 2020 · 77 comments
Open

Provide a homebrew formula for OSX #577

wakatara opened this issue Mar 4, 2020 · 77 comments

Comments

@wakatara
Copy link

wakatara commented Mar 4, 2020

Few people use macports these days in favour of homebrew.

Would it be possible to have a formula for Next. I do believe it would perhaps increase the community size trying or contributing amongst the applerati.

@jmercouris
Copy link
Member

Hello! Thank you for your interest in the project. I don't use Homebrew and will be unable to make a formula. I believe one used to exist, but I am not sure. Anyone in the community is welcome to package Next for Homebrew and we could list it in the install options :-)

@ghost
Copy link

ghost commented Mar 6, 2020

Just wanted to say I'm in the same boat.
I found out about the browser yesterday, went to install it today and there was no bundle(?) and no homebrew so... I gave up rather quickly.

Not that my using the browser is of critical importance to anyone, just giving my experience 😄

@svetlyak40wt
Copy link

I found Next browser already installable with Homebrew Cask. Just do:

brew cask install next

@jhhb
Copy link

jhhb commented Aug 11, 2020

I took a shot at making a homebrew formula against master, but hit a wall with WebKitGTK+. I targeted master because there seemed to be fewer dependencies to wrestle with versus the official releases.

All of the other dependencies seem to be available as brew formulae, WebKitGTK+ doesn't seem to be, probably because it's not very well supported for Mac (I believe it requires some patching to get it to work).

It does exist in Macports and has a stable build there: https://ports.macports.org/port/webkit2-gtk/summary and a development port at https://ports.macports.org/port/webkit2-gtk-devel/summary.

I think if we wanted to get a homebrew formula for Nyxt working, it would make sense to try either of:

(1) Try the QT installation route
(2) Port the linked webkit2-gtk-devel MacPort into a HomeBrew formula, and use that formula in a Homebrew formula for Nyxt

edit: add correct Macports port

@Ambrevar
Copy link
Contributor

Ambrevar commented Aug 11, 2020 via email

@outthought
Copy link

Nyxt looks promising. I can't seem to get it installed on Mac OS X. A brew formula would be highly appreciated. Thank you.

@svetlyak40wt
Copy link

Probably it is better to publish it AppStore?

@outthought
Copy link

Brew is superior to the AppStore.

@svetlyak40wt
Copy link

Probably, but I'm not sure that all OSX users are aware of Homebrew. But sure all of them learned how to use AppStore because it is provided out of the box.

@Ambrevar
Copy link
Contributor

Ambrevar commented Oct 21, 2020 via email

@jmercouris
Copy link
Member

Thank you for your interest. The challenge is porting webkitgtk+ to Homebrew from MacPorts. You can take a look at the portfile and the patches if you are interested, the information is all there. The only thing blocking us from releasing a package that users can simply install (think of a "xyz.pkg" style file) is that for some reason when we produce it, external URLs refuse to load. No idea why this is!

@jhhb
Copy link

jhhb commented Oct 21, 2020

When I looked at trying to do this several months ago, the Qt rendering was broken, which blocked trying to setup the homebrew formula using Qt, and made using WebkitGTK+ as the rendering engine the only viable path.

Because of the difficulty I had with webkitGTK and trying to get a working build, before I consider giving it another go I wanted to ask:

(1) Is the Qt rendering still broken?
(2) If so, do we know if there's a timeline for unbreaking it? 😄
(3) Irrespective of the status of Qt, is there a long-term plan to support both Qt and WebkitGTK+ ?

@jmercouris
Copy link
Member

  1. Qt rendering is still broken
  2. Timeline, no not available
  3. Yes, tentatively. I am personally not fully committed to it. I am not opposed to it either.

@junwei-wang
Copy link

Probably, but I'm not sure that all OSX users are aware of Homebrew. But sure all of them learned how to use AppStore because it is provided out of the box.

People who does not use Homebrew, probably would never use Nyxt.

@Ambrevar Ambrevar changed the title [FEATURE REQUEST] Provide a homebrew formula for OSX Provide a homebrew formula for OSX Mar 24, 2021
@albert-ying
Copy link

albert-ying commented Apr 4, 2021

Any update on this? It would be significantly easier to install with Homebrew... I just tried to install Nyxt using MacPorts and it took me hours to figure out how, and still encountered some error for dependencies. 😢

@outthought
Copy link

brew install next
This command just succeeded for me. It installs Next.app into /Applications.

@babariviere
Copy link

@outthought It's an old version of this project. The current homebrew formula is at version 1.2.0 while the most up-to-date version is 1.5.0.

@popoiopo
Copy link

I would also be very interested in a brew formula, just tried it with MacPorts and also hit a wall.. :(

@gamecubate
Copy link

I would love to pipe in, saying how interested I am in this and asking for a brew formula, but that might be annoying, so I won't. :)

@jmercouris
Copy link
Member

What if you could run it in Docker? would that work?

@gamecubate
Copy link

It might, but I would prefer not to go that way, i.e., I'm looking for as seamless installation and running experience as possible. I've been spoiled by brew and I wouldn't want to stray far from that. I'll keep a lookout for any changes in your project as I find it very interesting.

@jmercouris
Copy link
Member

I really believe the most promising direction to be here: NixOS/nixpkgs#123298

@BR00l
Copy link

BR00l commented Jun 13, 2021

Building in Mac as of now feels a bit painfull, I think the best and easiest way to get through this, is by adding this to brew repo, having a lot of problems building atm.

@incidentist
Copy link

I'm working on a Nyxt homebrew formula that synthesizes previous attempts. As a first step, I've made a webkitgtk formula that builds cleanly on my 2017 MBP running Big Sur: https://github.com/incidentist/homebrew-nyxt . macOS folks can help by running brew install --build-from-source incidentist/nyxt/webkitgtk, waiting awhile for it to build (it took 85 minutes for me) and letting me know what happens (as well as your hardware/software config).

My level of expertise here is pretty low. I'm mostly blindly synthesizing the Nix package definitions into Homebrew formula. If it looks like I'm missing something obvious, I probably am.

@svetlyak40wt
Copy link

@incidentist I've tried to run the build, but it failed. Created a separate issue: incidentist/homebrew-nyxt#1

@incidentist
Copy link

My tap repo at https://github.com/incidentist/homebrew-nyxt now has an initial Nyxt formula as well. See the README there for updated instructions. It's initial in the sense that it builds and runs (!) but it throws some funky warnings, does not respond to most keystrokes, and every website fails with TLS Certificate Error. I am following the Nix discussions here, here and here. Basically the Nix folks are doing a great job of patching things to run on Darwin, and I will try to bring those patches into the homebrew formula until they are available upstream.

@johnnyutahh
Copy link

Checking in: any updates on this issue?

I do not yet see a working nyxt formula on my system. Details below.

$ date
Mon May 29 09:44:28 CDT 2023
$ brew update
Already up-to-date.
$
$ brew search nyxt
==> Formulae
nyx

==> Casks
next
$
$ sw_vers
ProductName:	macOS
ProductVersion:	12.6.5
BuildVersion:	21G531
$

@aartaka
Copy link
Contributor

aartaka commented May 30, 2023

Not from our developer side: we don't have anyone on the team who's using OSX, so we can't make and test homebrew formulas ourselves :)

@halloleo
Copy link

halloleo commented Jun 2, 2023

Just wanted to chiming in to say a homebrew port which tackles the GTK+ issue (without installing XQuartz!) would be fantabulous!.

I"m sure it'd help to give this super-promising browser a larger target audience!

@Alan4247748
Copy link

I haven't been able to get Nyxt running via Mac Ports + X code.

Any one have an updated HomeBrew formula?

:)

@jmercouris
Copy link
Member

We're making progress on the official macOS port... teaser...
Screenshot_20230922_114629

@jmercouris
Copy link
Member

what you see there is running on Electron :-O

@DieracDelta
Copy link
Contributor

Woah!! Is this running on macos? Or linux?

@jtw023
Copy link

jtw023 commented Oct 12, 2023

Any chance an official MacOS port will be working soon? I would love to try it! :)

@aartaka
Copy link
Contributor

aartaka commented Oct 12, 2023 via email

@jtw023
Copy link

jtw023 commented Oct 12, 2023

Unfortunately, I can only use homebrew on this device.

@danrasmuson
Copy link

danrasmuson commented May 28, 2024

We're making progress on the official macOS port... teaser... Screenshot_20230922_114629

@jmercouris are you able to provide another update on the internal conversations and progress around a MacOS brew installation. I'm very excited (as I know others are too) about trying nyxt out on MacOS

@VisenDev
Copy link

I would also like to install nyxt using homebrew

@danrasmuson
Copy link

@aadcg do you have clarity around the roadmap for MacOS support? I appreciate any comments here.

@VisenDev
Copy link

VisenDev commented Oct 6, 2024

@aadcg do you have clarity around the roadmap for MacOS support? I appreciate any comments here.

From my experimentation installing on mac, webkitgtk+ is the main bottleneck. The macports install works because they figured out a way to compile webkitgtk+ on mac from source, but this takes several hours.

Once the electron backend is fully working, installing on macos should be relatively easy

@rogeralmeida
Copy link

I bit disappointed that I have payed/contributed to an open-source project to then discover it doesn't support MacOS :/
btw, brew is the way to proceed, port is not even present on most macs these days :s

@jmercouris
Copy link
Member

Sorry about that @rogeralmeida :-( please tell me your information via email: john@atlas.engineer and I'd be happy to refund you

@SundayPowerEndre
Copy link

Is there anywhere i can track the progression on this?

@VisenDev
Copy link

Is there anywhere i can track the progression on this?

Looking at the TODOs in the electron renderer implementation is one way
https://github.com/atlas-engineer/nyxt/blob/master/source/renderer/electron.lisp

Also you can look at the development on the actual lisp-electron interface
https://github.com/atlas-engineer/cl-electron

Alternatively, compile the project using electron as the renderer on a macos system and see what breaks. Last time I checked on my mac, I was able to get the project to build successfully, but it had an error during startup

@aadcg
Copy link
Member

aadcg commented Dec 19, 2024

For developers, it is possible to run the Electron port on macOS via the SLIME/SLY REPL.

It should also be possible to build the experimental Electron port on macOS via make all NYXT_RENDERER=electron.

On my end, it fails at the last stage when dumping the image (see log below). Can anyone reproduce the issue?

Forced compaction moved 1735 pages
post-GC failure
Ptr 0x7003253307 @ 701a858090 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253317 @ 701a8580d0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253327 @ 701a858110 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253337 @ 701a858170 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253347 @ 701a8581b0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253357 @ 701a8581f0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253367 @ 701a858270 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253377 @ 701a8582b0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253407 @ 701a858310 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253417 @ 701a858370 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253427 @ 701a8583f0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253437 @ 701a858430 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253447 @ 701a858470 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253457 @ 701a8584f0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253467 @ 701a858530 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253477 @ 701a858570 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253787 @ 701a858590 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x7003253797 @ 701a8585f0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x70032537a7 @ 701a858670 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x70032537b7 @ 701a8586b0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x70032537c7 @ 701a8586f0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x70032537d7 @ 701a858750 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x70032537e7 @ 701a8587b0 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
Ptr 0x70032537f7 @ 701a858830 (lispobj 701a858003,pg13579,h=436c39 sees no allocation mark
fatal error encountered in SBCL pid 17693 pthread 0xcd4be00:
Verify failed: 25 errors

   0: fp=0x532e6e0 pc=0x4bd2ced Foreign function default_lossage_handler
   1: fp=0x532e6f0 pc=0x4bd370a Foreign function call_lossage_handler
   2: fp=0x532e7e0 pc=0x4bd2def Foreign function lose
   3: fp=0x532e880 pc=0x4bf0866 Foreign function verify_heap
   4: fp=0x532e8f0 pc=0x4be4166 Foreign function gc_and_save
Warning: lisp package array is not initialized for C
   5: fp=0x532e958 pc=0x70016db173 ::GC-AND-SAVE
   6: fp=0x532ea68 pc=0x70016dd265 ::SAVE-LISP-AND-DIE
   7: fp=0x532eab0 pc=0x70078d94b1 (::EMF ::PERFORM)
   8: fp=0x532eb30 pc=0x70026aeaf3 (LAMBDA () :IN ::CALL-WHILE-VISITING-ACTION)
   9: fp=0x532ed18 pc=0x70027c7608 (::FAST-METHOD ::PERFORM-WITH-RESTARTS :AROUND (T T))
  10: fp=0x532ed50 pc=0x7002ccd54d (::FAST-METHOD ::PERFORM-PLAN (T))
  11: fp=0x532ee28 pc=0x70005c8cdf (FLET ::WITH-IT :IN ::%WITH-COMPILATION-UNIT)
  12: fp=0x532ee68 pc=0x7002ccd036 (::FAST-METHOD ::PERFORM-PLAN :AROUND (T))
  13: fp=0x532eeb0 pc=0x7002d913fc (::FAST-METHOD ::OPERATE (::OPERATION ::COMPONENT))
  14: fp=0x532ef08 pc=0x700364e204 (::EMF ::OPERATE)
  15: fp=0x532efd0 pc=0x7002d908d7 (LAMBDA () :IN ::OPERATE)
  16: fp=0x532f098 pc=0x7002d903b3 (::FAST-METHOD ::OPERATE :AROUND (T T))
  17: fp=0x532f0f0 pc=0x700364e204 (::EMF ::OPERATE)
  18: fp=0x532f1b8 pc=0x7002d908d7 (LAMBDA () :IN ::OPERATE)
  19: fp=0x532f280 pc=0x7002d903b3 (::FAST-METHOD ::OPERATE :AROUND (T T))
  20: fp=0x532f4a8 pc=0x70022f2f80 ::CALL-WITH-ASDF-SESSION
  21: fp=0x532f570 pc=0x7002d90ccd (LAMBDA () :IN ::OPERATE)
  22: fp=0x532f7a0 pc=0x70022f2f80 ::CALL-WITH-ASDF-SESSION
  23: fp=0x532f868 pc=0x7002d903b3 (::FAST-METHOD ::OPERATE :AROUND (T T))
  24: fp=0x532f898 pc=0x7002d94375 ::MAKE
  25: fp=0x532f968 pc=0x7000b44fc5 ::SIMPLE-EVAL-IN-LEXENV
  26: fp=0x532f980 pc=0x7000b4602d EVAL
  27: fp=0x532fb90 pc=0x7000b48b44 ::PROCESS-EVAL/LOAD-OPTIONS
  28: fp=0x532fdd8 pc=0x7000b4a910 ::TOPLEVEL-INIT
  29: fp=0x532fe70 pc=0x70016dc841 (FLET ::BODY :IN ::START-LISP)
  30: fp=0x532ff30 pc=0x70016dc63f (FLET "WITHOUT-INTERRUPTS-BODY-3" :IN ::START-LISP)
  31: fp=0x532ffc8 pc=0x70016dc468 ::%START-LISP

Compilation failed, see the above stacktrace.

@ed9w2in6
Copy link

@aadcg I cloned from master and I can build the image on my macos machine.

During build it complains about missing libfixposix, should this be automatically downloaded?

After I download the missing dependencies manually it build successfully but Electron complains about a failed installation, in which it should be related to missing path.txt (see: electron/electron#20731), manually creating that and reinstalling allows electron to be run.

Then now Im stuck at this error:

⊂( •̀ω•́)⊃╼┈┈ 急急如律令┈❯ nyxt
Nyxt version 4
<INFO> [04:43:30] Source location: #P"/Users/USERNAME/Desktop/MISC/sideProj/nyxt/"
<INFO> [04:43:31] Listening to socket: #P"/Users/USERNAME/nyxt/nyxt.socket"

> cl-electron-server@0.0.1 start
> electron /var/folders/6w/2jtnw0rn3sl6_mlndrzjvdzw0000gn/T/tmpX4XJNZSQ-tmp.js /Users/USERNAME/Library/Caches/TemporaryItems/cl-electron/electron.socket

App threw an error during load
Error: Could not locate the bindings file. Tried:
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/build/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/build/Debug/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/build/Release/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/out/Debug/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/Debug/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/out/Release/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/Release/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/build/default/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/compiled/20.18.1/darwin/x64/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/addon-build/release/install-root/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/addon-build/debug/install-root/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/addon-build/default/install-root/SynchronousSocket.node
 → /Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/lib/binding/node-v130-darwin-x64/SynchronousSocket.node
    at bindings (/Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/bindings/bindings.js:126:9)
    at Object.<anonymous> (/Users/USERNAME/Desktop/MISC/sideProj/nyxt/_build/cl-electron/node_modules/synchronous-socket/index.js:1:44)
    at Module._compile (node:internal/modules/cjs/loader:1484:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1564:10)
    at Module.load (node:internal/modules/cjs/loader:1295:32)
    at Module._load (node:internal/modules/cjs/loader:1111:12)
    at c._load (node:electron/js2c/node_init:2:16955)
    at Module.require (node:internal/modules/cjs/loader:1318:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/private/var/folders/6w/2jtnw0rn3sl6_mlndrzjvdzw0000gn/T/tmpX4XJNZSQ-tmp.js:14:27)

@ed9w2in6
Copy link

I fixed the build issue, spoilers:

Image

Tried "manually" building cl-electron which fixed all superficial issues, that is at least nyxt started, haven't tested any functionality yet.

In short the the build script is a bit buggy on building cl-electron, a few issues:

After fixing these manually it builds successfully as shown.

@ed9w2in6
Copy link

Weirdly make clean also removes all submodules and everything in _build, but only cl-electron seems to be needed on launch, is that right? I rebuild cl-electron and it works fine.

@aadcg
Copy link
Member

aadcg commented Feb 14, 2025

During build it complains about missing libfixposix, should this be automatically downloaded?

No, the makefile is only responsible for CL dependencies.


On which commit are you? I've recently pushed 56f1cd2 that fixed some issues.


Weirdly make clean also removes all submodules and everything in _build, but only cl-electron seems to be needed on launch, is that right?

I agree that make clean shouldn't do that. I think it should delete the compilation output, i.e. the generated binary, right?

cl-electron is needed at launch indeed. At least right now, while we don't have a more robust strategy. At this stage, it fits the bill for development.

@ed9w2in6
Copy link

@aadcg I'm at master which is bd1686f as of [2025-02-14].

@DieracDelta
Copy link
Contributor

This is really exciting! Any chance you could share the built binary?

@aadcg
Copy link
Member

aadcg commented Feb 14, 2025

@DieracDelta I don't think sharing the binary would work. Try building it yourself. But keep in mind that the road towards a reliable release is long.

@DieracDelta
Copy link
Contributor

Thanks for the response! I was able to build on a M1 mac using the make all NYXT_RENDERER=electron in a nix shell containing libfixposix and pkg-config. 🎉 Seems to run!

@jmercouris
Copy link
Member

During build it complains about missing libfixposix, should this be automatically downloaded?

No, the makefile is only responsible for CL dependencies.

On which commit are you? I've recently pushed 56f1cd2 that fixed some issues.

Weirdly make clean also removes all submodules and everything in _build, but only cl-electron seems to be needed on launch, is that right?

I agree that make clean shouldn't do that. I think it should delete the compilation output, i.e. the generated binary, right?

cl-electron is needed at launch indeed. At least right now, while we don't have a more robust strategy. At this stage, it fits the bill for development.

Ultimately cl-electron should be an installable application within the Path, or possibly, ideally integrated in the CL image. Which should be possible, as a binary blob.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests