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

Get rid of webkitgtk24 #18312

Closed
domenkozar opened this issue Sep 5, 2016 · 20 comments
Closed

Get rid of webkitgtk24 #18312

domenkozar opened this issue Sep 5, 2016 · 20 comments

Comments

@domenkozar
Copy link
Member

domenkozar commented Sep 5, 2016

It can not be built in parallel so it takes 6+ hours to build, sometimes even 9h.

$ git grep webkitgtk24
pkgs/applications/editors/emacs-25/default.nix:, withXwidgets ? false, webkitgtk24x ? null, wrapGAppsHook ? null, glib_networking ? null
pkgs/applications/editors/emacs-25/default.nix:assert withXwidgets -> withGTK3 && webkitgtk24x != null;
pkgs/applications/editors/emacs-25/default.nix:    ++ stdenv.lib.optionals withXwidgets [webkitgtk24x wrapGAppsHook glib_networking];
pkgs/desktops/gnome-3/3.20/default.nix:  inherit (pkgs) glib gtk2 webkitgtk24x webkitgtk212x gtk3 gtkmm3 libcanberra;
pkgs/desktops/gnome-3/3.20/default.nix:  #   webkitgtk = webkitgtk24x;
pkgs/desktops/gnome-3/3.20/default.nix:    webkitgtk = webkitgtk24x;
pkgs/desktops/gnome-3/3.20/default.nix:    webkitgtk = webkitgtk24x;
pkgs/desktops/gnome-3/3.20/default.nix:    webkitgtk = webkitgtk24x;
pkgs/desktops/gnome-3/3.20/default.nix:    webkitgtk = webkitgtk24x;
pkgs/development/haskell-modules/configuration-common.nix:  webkitgtk3 = super.webkitgtk3.override { webkit = pkgs.webkitgtk24x; };
pkgs/development/haskell-modules/configuration-common.nix:  webkitgtk3-javascriptcore = super.webkitgtk3-javascriptcore.override { webkit = pkgs.webkitgtk24x; };
pkgs/development/haskell-modules/configuration-common.nix:  websnap = super.websnap.override { webkit = pkgs.webkitgtk24x; };
pkgs/tools/networking/mu/default.nix:, gtk3, webkitgtk24x, libsoup, icu }:
pkgs/tools/networking/mu/default.nix:    gtk3 webkitgtk24x ];
pkgs/top-level/all-packages.nix:  webkitgtk24x = callPackage ../development/libraries/webkitgtk/2.4.nix {
pkgs/top-level/all-packages.nix:  webkitgtk2 = webkitgtk24x.override {
pkgs/top-level/all-packages.nix:    webkitgtk = webkitgtk24x;
pkgs/top-level/all-packages.nix:    webkitgtk = webkitgtk24x;

cc @lethalman @DamienCassou

@domenkozar
Copy link
Member Author

@gebner could we bump webkitgtk version for mu? See ad41b8f

@domenkozar domenkozar added this to the 16.09 milestone Sep 5, 2016
domenkozar added a commit to domenkozar/nixpkgs that referenced this issue Sep 5, 2016
@domenkozar
Copy link
Member Author

@domenkozar
Copy link
Member Author

@domenkozar
Copy link
Member Author

Packages that need the old api should probably be just migrated to webkit 2.10

domenkozar added a commit that referenced this issue Sep 5, 2016
(cherry picked from commit 2ef4e9e)
Signed-off-by: Domen Kožar <domen@dev.si>
@gebner
Copy link
Member

gebner commented Sep 5, 2016

Is webkitgtk210x the new version with the old API? I just tried to build mu against it, but apparently we don't build webkitgtk210x on hydra. Is there a reason for hydra not building it?

@RamKromberg
Copy link
Contributor

@gebner No. There's no one "old api". We've covered this all in #17308 but essentially there were 4 API deprecations resulting in 4 distinct branches: 2.4, 2.6, 2.10 & 2.12.

In fact, upstream doesn't support 2.4, 2.6 & 2.10 and considers 2.12 the stable branch. Worse, the 2.10 branch had consecutive security issues and ended up getting stricken off the change-logs as if it was some development unstable branch...

@domenkozar domenkozar modified the milestones: 17.03, 16.09 Sep 12, 2016
@groxxda
Copy link
Contributor

groxxda commented Sep 29, 2016

I was hoping we could remove webkitgtk for gnome 3.22, but it turns out, it's still needed...
https://bugs.launchpad.net/ubuntu/+source/bijiben/+bug/1588150
For us this affects bijiben and geary 😞

@groxxda
Copy link
Contributor

groxxda commented Sep 29, 2016

More uses:

git grep 'webkitgtk2[^41]'
pkgs/applications/audio/guitarix/default.nix:, webkitgtk2, wrapGAppsHook, zita-convolver, zita-resampler
pkgs/applications/audio/guitarix/default.nix:    libsndfile lilv lv2 serd sord sratom webkitgtk2 zita-convolver
pkgs/applications/editors/eclipse/build-eclipse.nix:{ stdenv, makeDesktopItem, freetype, fontconfig, libX11, libXrender, zlib, jdk, glib, gtk2, libXtst, webkitgtk2, makeWrapper, ... }:
pkgs/applications/editors/eclipse/build-eclipse.nix:      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk2 libXtst ] ++ stdenv.lib.optional (webkitgtk2 != null) webkitgtk2)} \
pkgs/applications/editors/eclipse/default.nix:, webkitgtk2 ? null  # for internal web browser
pkgs/applications/networking/browsers/dwb/default.nix:{ stdenv, fetchgit, pkgconfig, makeWrapper, libsoup, webkitgtk2, gtk2, gnutls
pkgs/applications/networking/browsers/dwb/default.nix:    webkitgtk2 gtk2 gnutls json_c m4 ];
pkgs/applications/networking/mailreaders/claws-mail/default.nix:    ++ optional enablePluginFancy webkitgtk2;
pkgs/applications/office/osmo/default.nix:, libarchive, gtkspell2, webkitgtk2, libgringotts }:
pkgs/applications/office/osmo/default.nix:    gtkspell2 webkitgtk2 libgringotts ];
pkgs/applications/video/miro/default.nix:, pythonPackages, pyrex096, ffmpeg, boost, glib, gtk2, webkitgtk2, libsoup
pkgs/applications/video/miro/default.nix:    pkgconfig pyrex096 ffmpeg boost glib gtk2 webkitgtk2 libsoup
pkgs/development/haskell-modules/configuration-common.nix:  webkit = super.webkit.override { webkit = pkgs.webkitgtk2; };
pkgs/top-level/all-packages.nix:  webkitgtk2 = webkitgtk24x.override {
pkgs/top-level/all-packages.nix:    webkit = webkitgtk2;
pkgs/top-level/all-packages.nix:      webkit = webkitgtk2;
pkgs/top-level/all-packages.nix:    webkit = webkitgtk2;
pkgs/top-level/all-packages.nix:    webkit = webkitgtk2;
pkgs/top-level/all-packages.nix:    webkitgtk = webkitgtk2;
pkgs/top-level/all-packages.nix:    webkit = webkitgtk2;
pkgs/top-level/all-packages.nix:    webkit = webkitgtk2;
pkgs/top-level/python-packages.nix:      pkgs.libxslt pkgs.libsoup pkgs.webkitgtk2 pkgs.icu

@grahamc
Copy link
Member

grahamc commented Oct 22, 2016

How are these projects still using such an old dependency?

@vcunat
Copy link
Member

vcunat commented Oct 22, 2016

I think it's mainly upstream not adding support; I've got no idea why that goes so slowly. As a consequence, e.g. the latest Debian (unstable) still defaults to 2.4.x, and even same in Arch.

@domenkozar
Copy link
Member Author

@domenkozar domenkozar modified the milestones: 17.09, 17.03 Feb 9, 2017
@grahamc
Copy link
Member

grahamc commented Feb 9, 2017

List of packages still depending on webkitgtk24x (checked if fixed or removed):

@joachifm
Copy link
Contributor

joachifm commented Feb 9, 2017

I vote to remove the support and mark packages that have a hard dependency on it as broken. I think emacs xwidget support is a bit of a gimmick so I for one wouldn't consider it a great loss if it had to be disabled.

@grahamc
Copy link
Member

grahamc commented Feb 9, 2017

emacs 25.2 upgrades wxwidgets to use a recent webkitgtk.

@vcunat
Copy link
Member

vcunat commented Feb 9, 2017

Marking webkitgtk24 itself as broken should be enough. That won't propagate to nix-env -qa normally, but it will throw the message on evaluation.

@globin globin added this to Open in Blocking Issues 17.09 Feb 14, 2017
@bendlas
Copy link
Contributor

bendlas commented Feb 15, 2017

There are even more packages on 2.4, since webkitgtk2 is derived from webkitgtk24x:

  • guitarix
  • eclipse
  • dwb
  • claws-mail
  • osmo
  • miro
  • wxGTK30
  • pythonPackages.pywebkitgtk
  • gnucash26
  • luakit
  • surf
  • uzbl
  • xiphos
  • vimprobable2-unwrapped
  • vimb-unwrapped

@bendlas
Copy link
Contributor

bendlas commented Feb 15, 2017

I think emacs xwidget support is a bit of a gimmick so I for one wouldn't consider it a great loss if it had to be disabled.

That. In fact, people over at freenode#emacs were horrified, when I told them the other day, that the xwidget browser thing had javascript support turned on.

@bendlas
Copy link
Contributor

bendlas commented Feb 24, 2017

It seems unlikely, for all the mentioned packages to be fixed in time for the upcoming stable. I'd support marking webkitgtk24 as broken. I've been running a patch to do so for 2 master rebuilds now. The kde5 derivation continues to evaluate and for gnome3 I've just had to deactivate an optional package bijiben, see

  • We can continue to allow wkgtk24 for packages after assessing the security risk:
    • guitarix
      Uses its (optional) wkgtk dependecy for a preset downloader. As long as nobody hacks that page, it should be fine.
    • gnucash26, seems to use wkgtk for help browser and possibly online banking features (i.e. bank-controlled content)
      gnucash probably is too big to fail ;-)
    • bijiben, if we don't want to drop it from gnome3's optional pacakges @lethalman ?
      It seems to use wkgtk for rendering user generated content (notes)
    • ...
  • We should not continue to allow wkgtk24 for these packages, by default:
    • eclipse
      It's an optional dependency anyway, and it enables an integrated web browser (!)
    • emacs
      see previous message
    • clawsmail
    • miro
      Those seem likely to be exposed to uncontrolled content through email / rss
    • ...

joachifm added a commit to joachifm/nixpkgs that referenced this issue Feb 26, 2017
@grahamc
Copy link
Member

grahamc commented Feb 27, 2017

With @joachifm's PR merged, it isn't removed but it is disabled by default.

@vcunat
Copy link
Member

vcunat commented Feb 8, 2018

Let's close. Webkit 2.4 is unusable unless you explicitly disable security check; that seems fair, and it's up to packages using this to choose (update).

@vcunat vcunat closed this as completed Feb 8, 2018
adrianpk added a commit to adrianpk/nixpkgs that referenced this issue May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants