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

opentoonz: Init at 1.4.0 #88591

Merged
merged 1 commit into from Aug 26, 2020
Merged

opentoonz: Init at 1.4.0 #88591

merged 1 commit into from Aug 26, 2020

Conversation

chkno
Copy link
Member

@chkno chkno commented May 22, 2020

Motivation for this change

Make opentoonz available.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • 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 nixpkgs-review --run "nixpkgs-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.

@chkno
Copy link
Member Author

chkno commented May 22, 2020

qt packages that are built again just for opentoonz due to the modified libtiff:

qtbase           59.8 MiB
qtdeclarative    20.6 MiB
qtmultimedia      3.6 MiB
qtquickcontrols   4.9 MiB
qtscript          3.9 MiB
qtsvg             0.5 MiB
qttools          16.2 MiB
qtwayland         5.3 MiB

@kimat
Copy link
Contributor

kimat commented May 22, 2020

I verified that:

  • nixpkgs-review pr 88591 works
  • [nix-shell:~/.cache/nixpkgs-review/pr-88591]$ results/opentoonz/bin/opentoonz -help works
  • application itself works

@CreativeCactus
Copy link

Bumping this MR, because it seems like checks are hanging.

@marius851000
Copy link
Contributor

from what I can see in the doc, qt doesn't need to be recompiled with the new libtiff. This would save a lot of compile time.

@Lassulus
Copy link
Member

can this be done without the libtiff override?

@chkno
Copy link
Member Author

chkno commented Aug 24, 2020

This could be done without the qtbase libtiff override if qtbase's libdiff dependency is removed.

qtbase's libdiff dependency appears unnecessary. I chased that dependency back through the commit history a ways. It was added a long time ago & copy/pasted across many qt version bumps. Today, qtimageformats ought to have the libtiff dependency instead of qtbase.

Concretely, attempting to build libtoonz against the normal qtbase that brings in the normal libtiff results in both the normal libtiff and opentoonz's custom libtiff appearing in CMAKE_INCLUDE_PATH. The normal libtiff appears first, so opentoonz's #include finds the normal (wrong) libtiff headers and fails to build. Mechanically hacking around this narrow issue by just removing the other libtiff from the include path or something is begging for ODR troubles which are notoriously difficult to diagnose from the effects they cause.

Fixing qtbase's libdiff dependency is significant scope creep for adding this package. qtbase's libdiff dependency is in its propagatedBuildInputs, so removing it from qtbase will break any package that depends upon both qtbase and libtiff but failed to declare its dependency on libtiff. nixpkgs-review wants to download 16G and store 60G to rebuild the 1406 packages that depend upon qtbase to check them all. That's going to take a very long time on my hardware. I started on this, but didn't get very far because qt is currently broken at head (#96159).

I created PR #96210 to get the ball rolling on fixing qtbase's libdiff dependency.

@Lassulus
Copy link
Member

oh thanks for the thorough explanation. So we can simplify things when libtiff and qtbase are seperated? sounds good, lets hope it will be done someday.

@Lassulus Lassulus merged commit c0c4378 into NixOS:master Aug 26, 2020
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.

None yet

5 participants