-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
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
grayjay: init at 3 #368427
base: master
Are you sure you want to change the base?
grayjay: init at 3 #368427
Conversation
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
builds and opens for me on x86_64-linux
but somehow can't sync devices or install sources, might be just the alpha state or my network idk
maybe some other person can test and approve
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First pass
Thanks for the help! This is the first time I've attempted to package an application so I appreciate it. I tested this by opening the application, installing the YouTube source and playing a video. I copied the runtime dependencies from here, but I'm not sure if all of those are necessary. Especially since the updater is something that I intentionally left broken. I should also give credit to @Electrostasy whose nix file I built off of. |
92ecfad
to
2ce023d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just tried building this. It looks like you've gotten bit by the fact that fixed-output derivations are cached, since right now the fetcher is failing:
error: builder for '/nix/store/skv4a9hircqwm1gz9n5hbix9yrqf28mc-Grayjay.Desktop-3.drv' failed with exit code 1;
last 16 log lines:
> exporting https://gitlab.futo.org/videostreaming/Grayjay.Desktop (rev 3) into /nix/store/wx65wpm8l63clbv2l0v141kxfrpz8ahf-Grayjay.Desktop-3
> Git LFS initialized.
> Initialized empty Git repository in /nix/store/wx65wpm8l63clbv2l0v141kxfrpz8ahf-Grayjay.Desktop-3/.git/
> warning: redirecting to https://gitlab.futo.org/videostreaming/Grayjay.Desktop.git/
> warning: redirecting to https://gitlab.futo.org/videostreaming/Grayjay.Desktop.git/
> remote: Enumerating objects: 1051, done.
> remote: Counting objects: 100% (1051/1051), done.
> remote: Compressing objects: 100% (881/881), done.
> remote: Total 1051 (delta 124), reused 1037 (delta 120), pack-reused 0 (from 0)
> Receiving objects: 100% (1051/1051), 146.37 MiB | 6.77 MiB/s, done.
> Resolving deltas: 100% (124/124), done.
> From https://gitlab.futo.org/videostreaming/Grayjay.Desktop
> * tag 3 -> FETCH_HEAD
> fatal: Not a valid object name 3
> Unrecognized git object type:
> Unable to checkout 3 from https://gitlab.futo.org/videostreaming/Grayjay.Desktop.
For full logs, run 'nix log /nix/store/skv4a9hircqwm1gz9n5hbix9yrqf28mc-Grayjay.Desktop-3.drv'.
error: 1 dependencies of derivation '/nix/store/z590gqz5gbnlrdznvy2vcxigm5dlzcfa-grayjay-3.drv' failed to build
6ad53a1
to
f90418f
Compare
Looks like the fetcher is currently failing due to an issue with one of the submodules. I'm bumping into git-lfs/git-lfs#5511: https://gitlab.futo.org/videostreaming/JustCef/-/tree/master/prebuilt?ref_type=heads
I've contacted upstream; I'll keep you posted on any responses I might get. |
While I do see those lines when it's fetching, I'm still able to build the package. Maybe I'm misunderstanding what you're trying to say. |
Weird, the fetcher hangs for me. |
|
I've got the same seemingly never finishing fetcher output as #368427 (comment)
But surprisingly after an hour it finishes |
Well, it builds. I also ran it and it seems to run fine. So I guess I'll take another look at the derivation? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just two nits
I think the reason that LFS is taking so long is because it's downloading prebuilt binaries in JustCef. I'm currently using the prebuilt binaries, but perhaps we could skip LFS all together if JustCef was included as part of the build. I could try looking into building that instead of using the prebuilt binaries, but it looks somewhat complicated. |
There is a guy who has this built using buildDotnetModule in his custom NUR repo, he also has his build pushed to cachix, I haven't tried it as I haven't figured out how to run the program without editing my nix config |
The build works for me, but I get the following error when running grayjay. Log output``` CEF:Searching for dotcefnative, search paths: CEF: - /nix/store/q1gw4lh12i35c6z9m2dxmz43782asmx5-grayjay-3/lib/grayjay/cef/dotcefnative CEF: - /nix/store/q1gw4lh12i35c6z9m2dxmz43782asmx5-grayjay-3/lib/grayjay/dotcefnative CEF:Working directory '/nix/store/q1gw4lh12i35c6z9m2dxmz43782asmx5-grayjay-3/lib/grayjay/cef'. CEF:CEF exe path '/nix/store/q1gw4lh12i35c6z9m2dxmz43782asmx5-grayjay-3/lib/grayjay/cef/dotcefnative'. --change-stack-guard-on-fork=disable --disable-chrome-runtime --parent-to-child 115 --child-to-parent 118 --disable-web-security --use-views Program:Main: Starting DotCefProcess finished (10ms) Program:Main: Starting window. Receive loop started. CEF:Could not start dynamically linked executable: /nix/store/q1gw4lh12i35c6z9m2dxmz43782asmx5-grayjay-3/lib/grayjay/cef/dotcefnative CEF:NixOS cannot run dynamically linked executables intended for generic CEF:linux environments out of the box. For more information, see: CEF:https://nix.dev/permalink/stub-ld GrayjayServer:RunServerAsync: Called with (proxyUrl = ). Receive loop stopped. Unhandled exception. System.AggregateException: One or more errors occurred. (Broken pipe) ---> System.IO.IOException: Broken pipe ---> System.Net.Sockets.SocketException (32): Broken pipe at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError error, Boolean forAsyncThrow) at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.SendAsync(Socket socket, CancellationToken cancellationToken) at System.Net.Sockets.Socket.SendAsync(ReadOnlyMemory`1 buffer, SocketFlags socketFlags, CancellationToken cancellationToken) at System.IO.Pipes.PipeStream.WriteAsyncCore(ReadOnlyMemory`1 source, CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at System.IO.Pipes.PipeStream.WriteAsyncCore(ReadOnlyMemory`1 source, CancellationToken cancellationToken) at System.IO.Pipes.PipeStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at DotCef.DotCefProcess.CallAsync(OpcodeController opcode, Byte[] body, Int32 offset, Int32 size, CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at DotCef.DotCefProcess.CallAsync(OpcodeController opcode, Byte[] body, Int32 offset, Int32 size, CancellationToken cancellationToken) at DotCef.DotCefProcess.CreateWindowAsync(String url, Int32 minimumWidth, Int32 minimumHeight, Int32 preferredWidth, Int32 preferredHeight, Boolean fullscreen, Boolean contextMenuEnable, Boolean shown, Boolean developerToolsEnabled, Boolean resizable, Boolean frameless, Boolean centered, Boolean proxyRequests, Boolean logConsole, Func`3 requestProxy, Boolean modifyRequests, Func`3 requestModifier, Boolean modifyRequestBody, String title, String iconPath, CancellationToken cancellationToken) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at DotCef.DotCefProcess.CreateWindowAsync(String url, Int32 minimumWidth, Int32 minimumHeight, Int32 preferredWidth, Int32 preferredHeight, Boolean fullscreen, Boolean contextMenuEnable, Boolean shown, Boolean developerToolsEnabled, Boolean resizable, Boolean frameless, Boolean centered, Boolean proxyRequests, Boolean logConsole, Func`3 requestProxy, Boolean modifyRequests, Func`3 requestModifier, Boolean modifyRequestBody, String title, String iconPath, CancellationToken cancellationToken) at Grayjay.Desktop.Program.Main(String[] args) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine) at Grayjay.Desktop.Program.Main(String[] args) at Grayjay.Desktop.Program.(String[] args) --- End of stack trace from previous location --- at System.IO.Pipes.PipeStream.WriteAsyncCore(ReadOnlyMemory`1 source, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.IO.Pipes.PipeStream.WriteAsyncCore(ReadOnlyMemory`1 source, CancellationToken cancellationToken) at DotCef.DotCefProcess.CallAsync(OpcodeController opcode, Byte[] body, Int32 offset, Int32 size, CancellationToken cancellationToken) at DotCef.DotCefProcess.CreateWindowAsync(String url, Int32 minimumWidth, Int32 minimumHeight, Int32 preferredWidth, Int32 preferredHeight, Boolean fullscreen, Boolean contextMenuEnable, Boolean shown, Boolean developerToolsEnabled, Boolean resizable, Boolean frameless, Boolean centered, Boolean proxyRequests, Boolean logConsole, Func`3 requestProxy, Boolean modifyRequests, Func`3 requestModifier, Boolean modifyRequestBody, String title, String iconPath, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at Grayjay.Desktop.Program.Main(String[] args) at Grayjay.Desktop.Program.(String[] args) ``` |
Sorry, I had nix-ld enabled. I've added autoPatchelfHook and moved the dependencies to buildInputs. Also tested playing and downloading a video again. |
I tested this PR on my non-NixOS Linux Mint install with X11 Cinnamon and NixGL. After adding a YouTube source, no audio would play and the desktop detected no audio playing from grayjay (didn't show up at all) output from # Likely nixGL specific on my end
CEF:MESA-LOADER: failed to open dri: /nix/store/ak5hicfnzhd1kwk7dzlyy4w8sg8zq8hn-mesa-24.3.3/lib/gbm/dri_gbm.so: cannot open shared object file: No such file or directory (search paths /run/opengl-driver/lib/gbm:/nix/store/ak5hicfnzhd1kwk7dzlyy4w8sg8zq8hn-mesa-24.3.3/lib/gbm, suffix _gbm)
# (later when playing a video, no audio plays)
CEF:ALSA lib dlmisc.c:339:(snd_dlobj_cache_get0) Cannot open shared library libasound_module_pcm_pipewire.so (/nix/store/y26wywsahsr3swpnlm4b41px4c035mva-alsa-lib-1.2.13/lib/alsa-lib/libasound_module_pcm_pipewire.so: cannot open shared object file: No such file or directory)
CEF:[2761966:2761966:0119/164821.833698:ERROR:alsa_util.cc(204)] PcmOpen: default,No such device or address
CEF:ALSA lib dlmisc.c:339:(snd_dlobj_cache_get0) Cannot open shared library libasound_module_pcm_pipewire.so (/nix/store/y26wywsahsr3swpnlm4b41px4c035mva-alsa-lib-1.2.13/lib/alsa-lib/libasound_module_pcm_pipewire.so: cannot open shared object file: No such file or directory)
CEF:[2761966:2761966:0119/164821.833781:ERROR:alsa_util.cc(204)] PcmOpen: plug:default,No such device or address
# (after running for a while)
CEF:Warning: libX11-xcb.so.1: cannot open shared object file: No such file or directory
CEF:Warning: loader_icd_scan: Failed loading library associated with ICD JSON /usr/lib/x86_64-linux-gnu/libvulkan_intel.so. Ignoring this JSON
CEF:Warning: libLLVM-17.so.1: cannot open shared object file: No such file or directory
CEF:Warning: loader_icd_scan: Failed loading library associated with ICD JSON /usr/lib/x86_64-linux-gnu/libvulkan_lvp.so. Ignoring this JSON
CEF:Warning: libLLVM-17.so.1: cannot open shared object file: No such file or directory
CEF:Warning: loader_icd_scan: Failed loading library associated with ICD JSON /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so. Ignoring this JSON
CEF:Warning: libzstd.so.1: cannot open shared object file: No such file or directory
CEF:Warning: loader_icd_scan: Failed loading library associated with ICD JSON /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so. Ignoring this JSON
CEF:Warning: vkCreateInstance: Found no drivers!
CEF:Warning: vkCreateInstance failed with VK_ERROR_INCOMPATIBLE_DRIVER
CEF: at CheckVkSuccessImpl (../../third_party/dawn/src/dawn/native/vulkan/VulkanError.cpp:106)
CEF:
CEF:[2751991:2751991:0119/164219.507537:ERROR:gpu_blocklist.cc(71)] Unable to get gpu adapter Also is there any information for building on darwin? The derivation is very Linux-centric with no guardrails on Linux only dependencies used (x11, alsa-lib, etc) as Grayjay advertises being cross-platform. TL;DR
|
Grayjay version 3 has been superseded by Grayjay version 4. Plugins break if the application isn't using the latest upstream release so this PR will need to be updated with version 4. |
Adds Grayjay Desktop. Fixes #366543
This is the first time I've attempted to package an application so I appreciate any help. I tested this by opening the application, installing the YouTube source and playing a video. I copied the runtime dependencies from here, but I'm not sure if all of those are necessary. Especially since the updater is something that I intentionally left broken. I should also give credit to @Electrostasy whose nix file I built off of.
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.