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

zrythm: 1.0.0-beta.4.9.1 -> 1.0.0-rc.1 #306959

Merged
merged 2 commits into from
May 2, 2024
Merged

Conversation

Astavie
Copy link
Contributor

@Astavie Astavie commented Apr 26, 2024

Description of changes

Update zrythm to v1.0.0-rc.1.

This depends on #291339 as zrythm depends on gtk 4.14. This is why this PR targets staging-next.

Closes #252561
Closes #253765
Closes #290598

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@Astavie Astavie marked this pull request as draft April 26, 2024 12:17
@Astavie
Copy link
Contributor Author

Astavie commented Apr 26, 2024

(people involved in previous PRs mentioned)

Copy link
Contributor

@PowerUser64 PowerUser64 left a comment

Choose a reason for hiding this comment

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

Just a few changes requested. Also, since there were so many versions of this PR, it would probably make sense to add them all as Co-authors so it's documented.

pkgs/applications/audio/zrythm/default.nix Show resolved Hide resolved
pkgs/applications/audio/zrythm/default.nix Outdated Show resolved Hide resolved
pkgs/applications/audio/zrythm/default.nix Outdated Show resolved Hide resolved
pkgs/applications/audio/zrythm/default.nix Outdated Show resolved Hide resolved
pkgs/applications/audio/zrythm/default.nix Outdated Show resolved Hide resolved
@Astavie
Copy link
Contributor Author

Astavie commented Apr 26, 2024

thanks for the review, will make these changes once the tar.gz arrives for rc.1

@Astavie Astavie changed the title zrythm: 1.0.0-beta.4.9.1 -> 1.0.0-rc.0 zrythm: 1.0.0-beta.4.9.1 -> 1.0.0-rc.1 Apr 28, 2024
@alex-tee
Copy link
Contributor

Upstream maintainer here, thanks for packaging this. Some feedback below.

These can/should be removed:
sdl2, appstream-glib, breeze-icons, faust2lv2 (plugins are already compiled into C++), libgtop, libsass (only sassc is needed as a native build input), libsoundio, libxml2, pandoc, pcre (only pcre2 is needed), serd, sord, sratom

These should be moved to native build input ("make" dependencies):
guile, chromaprint, help2man, flex, jq (why is this needed?), lilv

@Astavie
Copy link
Contributor Author

Astavie commented Apr 29, 2024

@alex-tee libxml2 is still required as a native input for xmllint, and the cmake still lists sdl2, serd, sord, and sratom as runtime dependencies

@alex-tee
Copy link
Contributor

@Astavie

and the cmake still lists sdl2, serd, sord, and sratom as runtime dependencies

"the cmake"?

@Astavie
Copy link
Contributor Author

Astavie commented Apr 29, 2024

@alex-tee ah apologies, i misinterpreted the logs. it's the meson build file: here is a screenshot
i'll be honest, i'm not much familiar with meson nor cmake
image

@alex-tee
Copy link
Contributor

@Astavie

serd/sord/sratom/lilv are only needed at build time (lilv is used in tests), regardless if that says "runtime dependencies". They are used as "runtime dependencies" by a tool that gets compiled and used during tests, but they are not linked into the main Zrythm binary.

Regarding SDL, it gets marked as required because of -Dsdl=enabled in the meson configure flags: https://github.com/NixOS/nixpkgs/pull/306959/files#diff-1adcc62edbc935bfbb269175905b4cc5b0c4a4fd83a2bca9c3ce2a30b1844a40R194

Please remove that as the SDL backend is broken and experimental.

@Astavie
Copy link
Contributor Author

Astavie commented Apr 29, 2024

superfluous dependencies have been removed!

@alex-tee
Copy link
Contributor

LGTM, thanks!

@PowerUser64
Copy link
Contributor

Thanks for taking a look at this @alex-tee!

Copy link
Contributor

@PowerUser64 PowerUser64 left a comment

Choose a reason for hiding this comment

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

Looks good! Just one comment. Not sure how the manual should be added, if it's something we want to add to the output. Could be worth it for completeness given that v1 is on its way, but also I don't know how the output is supposed to be used. I assume it's equivalent to the live version at https://docs.zrythm.org/.

@@ -197,7 +174,6 @@ stdenv.mkDerivation rec {
"-Dmanpage=true"
"-Drtaudio=enabled"
"-Drtmidi=enabled"
"-Dsdl=enabled"
# "-Duser_manual=true" # needs sphinx-intl
Copy link
Contributor

Choose a reason for hiding this comment

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

I thought this comment was interesting, so I decided to look into it.

git blame shows that it's over 3 years old! Since then, python312Packages.sphinx-intl has been added to nixpkgs. I don't know how important this is to people, but given that we have this package now I think this could be enabled. Not sure how important this is to people.

Thoughts?

cc @tshaynik

Copy link
Contributor

@alex-tee alex-tee Apr 29, 2024

Choose a reason for hiding this comment

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

I don't know what the nix packager way to do is, but, for reference, the python requirements to build the user manual are in requirements.txt. This is how you can build the user manual in HTML format in English:

python3 -m venv venv
source ./venv/bin/activate
# Note: sphinx and friends need to be in the PATH before configuring meson so that user manual-related ninja targets are created
python3 -m pip install -r requirements.txt
# setup meson (meson setup builddir ...)
ninja -C builddir html-manual-en

Then the built manual will be available in the builddir under doc/user.

@Astavie
Copy link
Contributor Author

Astavie commented Apr 30, 2024

@PowerUser64
sphinx-intl appears to be broken right now, so I created a pull request to update the package: #307964

@Astavie Astavie force-pushed the zrythm branch 2 times, most recently from 8aa4bb0 to ebfac48 Compare April 30, 2024 10:54
Astavie and others added 2 commits May 2, 2024 10:51
Co-authored-by: PowerUser64 <blake@blakenorth.net>
Co-authored-by: davidak <git@davidak.de>
@Astavie Astavie marked this pull request as ready for review May 2, 2024 08:52
@Astavie
Copy link
Contributor Author

Astavie commented May 2, 2024

I've marked this as ready for review now as rtaudio_6 has been merged. Adding the user manual could be added in another PR

@ofborg ofborg bot requested a review from PowerUser64 May 2, 2024 09:18
@wegank wegank merged commit d45778e into NixOS:staging-next May 2, 2024
26 of 28 checks passed
@Astavie Astavie deleted the zrythm branch May 2, 2024 13:01
@PowerUser64
Copy link
Contributor

Nice work @Astavie! Glad to finally get this merged!

@jtojnar
Copy link
Member

jtojnar commented May 2, 2024

These should be moved to native build input ("make" dependencies):
guile, chromaprint, help2man, flex, jq (why is this needed?), lilv

nativeBuildInputs are orthogonal concept to “make” dependencies (used e.g. in Arch pkgbuild). Actually, Nix does not distinguish between build and runtime dependencies explicitly – every store path referenced in the build output is considered a runtime dependency.

The distinction between nativeBuildInputs and buildInputs is about what platform the packages should execute on, and the distinction is only important in the context of cross-compilation.

serd/sord/sratom/lilv are only needed at build time (lilv is used in tests), regardless if that says "runtime dependencies". They are used as "runtime dependencies" by a tool that gets compiled and used during tests, but they are not linked into the main Zrythm binary.

Then checkInputs would be suitable. But that requires doCheck = true to be included so buildInputs might be best option for now.

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.

5 participants