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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

palemoon: 27.9.4 -> 28.6.0.1, refactor #64499

Merged
merged 3 commits into from Jul 21, 2019
Merged

Conversation

OPNA2608
Copy link
Contributor

@OPNA2608 OPNA2608 commented Jul 9, 2019

supersedes #51161
closes #51160

Screenshot_NixOS_19 03_2019-07-09_08:36:04


GConf dependency added as discussed in #55161.

The NixOS build problem that was encountered there took some log digging to find:
There was an attempted invocation of m4 that failed, but didn't causes an abortion of the build phase. Later on, that seemingly resulted in some files missing and an abortion of the install phase.

This seems to have not been an issue on non-NixOS systems, where the lack of sandboxing lead to m4 being found inside the user's PATH?

The configure script also checks for the presence of wget, but I don't know what for. Just to be safe, I added it to buildInputs as well.

I think gstreamer was deprecated afew versions ago and can be removed from buildInputs, I will do some testing in general to figure out what else might not be required anymore though.

(Also, it looks like Pale Moon can be built for GTK3 so having a withGtk3 option could make sense, question would be how endorsed that is by upstream and if it may continue using the official branding in that case.)


A major not-nice aspect of this PR is a set of exceptions that get thrown during the install phase:
They don't abort the installation however, and the browser appears to work fine. I don't know how to fix those yet, but I'll look into it. If anyone wants to help me, be my guest ofc. 馃檪

See comment below.

Motivation for this change

see #51160

tl;dr, the currently packaged version is

  1. out-of-date
  2. frequently complaining about being out-of-date
  3. lacking important security updates that have been added since its release
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

路 Added new (/previously unnoticed?) dependencies.
路 Refactored to use pname, quoted homepage, better description.
路 Added myself to maintainers.
路 Configuration changed according to upstream documentation.
路 Build & Install phases simplified/refactored to be more like Arch's PKGBUILD.
@OPNA2608
Copy link
Contributor Author

OPNA2608 commented Jul 12, 2019

I think those exceptions are "fine"? Their fully-endorsed Fedora builds throw the exact same errors in their build log, with branding and all.

I still want to work on the build inputs abit and see what's redundant, but it should otherwise be done imo.

路 added ffmpeg to runtime libraries (via wrapping), makes Youtube's HTML5 testpage
  happy and allows higher-framerate playback
路 removed deprecated (gstreamer) / never used (nspr, nss, ...) dependencies
  路 Pale Moon bundles specific versions of various libraries, compiling with
    the system's versions of those is not the default, not recommended and
    not supported with official branding
@OPNA2608
Copy link
Contributor Author

OPNA2608 commented Jul 15, 2019

I've removed gstreamer, as support for it it was deprecated and removed some updates ago.

Some other dependencies like nss should be unused because Pale Moon bundles specific versions of these. They should be replaceable with the system's versions of them, but upstream does not like that - especially not with official branding. Hence, I removed as many as I could identify so far. I haven't noticed any difference so far, so all seems to be well.

I've added ffmpeg and wrapped the final executable's LD_LIBRARY_PATH so it can access it. YouTube's HTML5 test page is happy and playback of 60Hz content works, but it's noticeably less smooth than Firefox'. I'll check if I can fix that.


I'll use this at home and comment on / fix any problems I might have, but so far it seems to work well. nix-build (with fetching deps and all) took 35 - 40mins on a system (VM) with 3 cores to run the build on.

I'd appreciate it if someone with the right permissions could kick off a build on @GrahamcOfBorg and adjust the timeout if neccessary 馃檪

@OPNA2608 OPNA2608 changed the title [WIP] palemoon: 27.9.4 -> 28.6.0.1, slight refactor [WIP] palemoon: 27.9.4 -> 28.6.0.1, refactor Jul 17, 2019
@OPNA2608
Copy link
Contributor Author

I can't figure out what might be causing the unsmooth 60Hz YouTube video playback, perhaps it's just my computer being too weak.

That being said, this PR should be done. I've been using it for the past few days and it works fine.

@OPNA2608 OPNA2608 changed the title [WIP] palemoon: 27.9.4 -> 28.6.0.1, refactor palemoon: 27.9.4 -> 28.6.0.1, refactor Jul 17, 2019
@OPNA2608
Copy link
Contributor Author

ping @kalbasit, because he reviewed the old PR that's superseded by this

@kalbasit
Copy link
Member

@GrahamcOfBorg build palemoon

Copy link
Member

@kalbasit kalbasit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I built Palemoon locally on my NixOS box and it works very well. I have not tested on a different Linux box though. Also it looks like the tests are failing on aarch64-linux.

@OPNA2608
Copy link
Contributor Author

Also it looks like the tests are failing on aarch64-linux.

I don't think upstream supports non-x86 architectures or macOS, so I can change the platforms.

platforms = [ "i686-linux" "x86_64-linux" ];

Pale Moon (with official branding at least) doesn't appear to be available
for non-x86 architectures (yet), so we'll restrict the platforms to
i686 and x64 Linux.
@kalbasit kalbasit merged commit 8c11755 into NixOS:master Jul 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Security Update] Palemoon 28.2.1
2 participants