Skip to content

New wxwidgets/wxGTK for KiCad? Alternative to overlay for master? #98450

@hannesweisbach

Description

@hannesweisbach

Describe the bug

Not a bug per se, more looking for some advice on implementing.

(I was going to post this as comment on #90654 but I didn't want to side-track that issue. #86040 might also be relevant.)

I'm currently working on KiCad for macOS. KiCad requires a number of patches to wxWidgets to work on macOS, to the point where they maintained a branch of wxWidgets with all necessary patches already applied: https://gitlab.com/kicad/code/wxWidgets

My work is currently based on this branch and I use an overlay like so

  overlays = [
    (self: super: {
      wxGTK30 = super.pkgs.callPackage ~/Software/nix/kicad-wxwidgets.nix {
        inherit (super.pkgs.darwin.stubs) setfile;
        inherit (super.pkgs.darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit WebKit AVFoundation AVKit;
      };
    })
  ]

so that wxPython_4_0 and KiCad are built using the same wxWidgets package (and possibly other packages that KiCad depends on and that in turn depend on wxwidgets, but I don't remember for sure)

My question now is how to best integrate these changes so that it acceptable for upstream/master?
Essentially kicad-wxwidgets.nix contains yet another wxGTK version (3.0.4, gtk3, webkit enabled, only macOS because it is only needed there). I don't know in how far the patched wxwidgets version is backwards compatible to an unpatched wxwidgets-3.0.4, if at all. KiCad uses bundle on macOS so their wxwidgets version is not installed as system-wide folder where other packages/build managers could find it.

To Reproduce

Not really something to reproduce, but if you want to play with it/compile it yourself:

  1. fetch/apply Add Cocoa to propagatedBuildInputs for tk #96267
  2. you can find a default.nix and kicad-wxwidgets.nix here: https://gist.github.com/hannesweisbach/e1a9203e3bc2a00f482309cc5a1bfc73

Expected behavior

What would be a way to get this to mainline?

Screenshots

n/a

Additional context

n/a

Notify maintainers

KiCad: @evils @Kiwi @berce

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-darwin"`
 - host os: `Darwin 19.6.0, macOS 10.15.6`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.3.7`
 - channels(hannesweisbach): `""`
 - channels(root): `"nixpkgs-20.09pre242465.bd649f4f55c"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

Maintainer information:

# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: questionRequests for a specific question to be answered2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions