#61397 closed defect (invalid)
GIMP With +no_x11 Wants To Install Xorg
Reported by: | ensafi (Alex (Eskandar) Ensafi) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.6.3 |
Keywords: | highsierra | Cc: | dbevans (David B. Evans) |
Port: | gimp2 |
Description (last modified by ensafi (Alex (Eskandar) Ensafi))
I tried to install the latest GIMP port, gimp2 @2.10.22, on High Sierra. Aside from being confusing that "gimp" is version 2.10.20 and "gimp2" is 2.10.22, my variants.conf contains "-x11 +no_x11 +quartz" and GIMP still wanted to install Xorg. Here is a full list of dependencies triggered by gimp2:
% sudo port install gimp2 ---> Computing dependencies for gimp2 The following dependencies will be installed: OpenBLAS SuiteSparse_AMD SuiteSparse_CAMD SuiteSparse_CCOLAMD SuiteSparse_CHOLMOD SuiteSparse_COLAMD SuiteSparse_UMFPACK SuiteSparse_config XviD aalib appstream-glib atk autoconf autoconf-archive automake babl boehmgc brotli bzip2 cairo cargo cmake curl cython_select dav1d db48 dbus-glib desktop-file-utils docbook-xml docbook-xml-4.1.2 docbook-xml-4.2 docbook-xml-4.3 docbook-xml-4.4 docbook-xml-4.5 docbook-xml-5.0 docbook-xsl-nons exiv2 ffmpeg fftw-3 fontconfig freetype fribidi gawk gd2 gdbm gdk-pixbuf2 gegl gexiv2 ghostscript giflib gimp-help-en glib-networking glib2 gnome-common gobject-introspection graphite2 graphviz gsettings-desktop-schemas gtk-doc gtk-osx-application-common-gtk2 gtk-osx-application-gtk2 gtk2 gtk3 gts harfbuzz hicolor-icon-theme ilmbase intltool iso-codes itstool jasper jbig2dec jbigkit json-c json-glib kerberos5 lame libLASi libarchive libass libbluray libcomerr libcxx libde265 libedit libepoxy libgcc libgcc10 libglade2 libheif libidn libmng libmodplug libmypaint libnetpbm libogg libopus libpaper libpixman libpng libproxy libpsl libraw librsvg libsdl2 libsoup libspiro libssh2 libstemmer libtheora libtool libuv libvorbis libvpx libwmf libyaml llvm-9.0 llvm_select luajit lzo2 mesa meson metis mypaint-brushes1 ninja nosetests_select nspr nss openexr openjpeg openssl ossp-uuid p5.28-clone p5.28-cpan-meta p5.28-cpan-meta-requirements p5.28-cpan-meta-yaml p5.28-data-dump p5.28-encode p5.28-encode-locale p5.28-file-listing p5.28-getopt-long p5.28-html-form p5.28-html-parser p5.28-html-tagset p5.28-http-cookies p5.28-http-daemon p5.28-http-date p5.28-http-message p5.28-http-negotiate p5.28-inc-latest p5.28-io-html p5.28-io-socket-ip p5.28-io-socket-ssl p5.28-libwww-perl p5.28-lwp-mediatypes p5.28-module-build p5.28-module-metadata p5.28-mozilla-ca p5.28-net-http p5.28-net-libidn p5.28-net-ssleay p5.28-pathtools p5.28-perl-ostype p5.28-pod-escapes p5.28-pod-simple p5.28-podlators p5.28-scalar-list-utils p5.28-socket p5.28-sub-name p5.28-time-local p5.28-timedate p5.28-try-tiny p5.28-uri p5.28-version p5.28-www-robotrules p5.28-xml-parser pango pcre perl5 perl5.28 pkgconfig poly2tri-c poppler poppler-data py27-cairo py27-cython py27-gobject py27-gobject3 py27-nose py27-numpy py27-pygtk py27-setuptools py38-anytree py38-beaker py38-cairo py38-gobject3 py38-libxml2 py38-lxml py38-mako py38-markdown py38-markupsafe py38-pygments py38-setuptools py38-six pygments_select python27 python2_select python38 python3_select python_select readline rust shared-mime-info soxr speex sqlite3 urw-fonts vala w3m webp x264 x265 xar xdg-utils xmlcatmgr xorg-libX11 xorg-libXau xorg-libXdamage xorg-libXdmcp xorg-libXext xorg-libXfixes xorg-libXi xorg-libXmu xorg-libXt xorg-libXxf86vm xorg-libice xorg-libpthread-stubs xorg-libsm xorg-libxcb xorg-xcb-proto xorg-xorgproto
Change History (13)
comment:1 Changed 4 years ago by kencu (Ken)
comment:2 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | dbevans added |
---|
If you do want to use +quartz, then you absolutely should put it into variants.conf, because you have decide for your entire MacPorts installation whether you will use +quartz or +x11 (excluding of course those ports that can support both at the same time).
It is certainly possible that one of gimp's dependencies requires X11, and if that's so, then there's nothing we can really do to fix it.
If you can identify which of gimp's dependencies is depending on X11, and you believe that it does not need to do that, let us know.
comment:3 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to ensafi:
my variants.conf contains "-x11 +no+x11 +quartz"
If that's really what you wrote in variants.conf, then it's a typo. "+no+x11" should have been "+no_x11", however "no_x11" is a variant name we used over a decade ago, and no ports use it anymore, so there's no need to list it anymore.
comment:4 Changed 4 years ago by ensafi (Alex (Eskandar) Ensafi)
Description: | modified (diff) |
---|
comment:5 Changed 4 years ago by ensafi (Alex (Eskandar) Ensafi)
That was a typo. I just updated the original post to avoid confusion. My variants.conf contained the correct options "-x11 +no_x11 +quartz" (as it has for several years) and I also tried removing them and specifying +quartz only on the command-line. It still tried to install Xorg.
comment:6 Changed 4 years ago by kencu (Ken)
look for anything you already have installed that has x11 in it:
port -v installed | grep x11
and unless it is one of the few ports that "need" to install as +x11 +quartz
then deactivate it and try gimp2 again.
pango
for example wants to install as both (we should just remove the x11 and quartz variants probably I guess and let it install itself with both):
pango @1.42.4_2 (x11) Variants: [+]quartz, universal, [+]x11
and what happens if you FORCE pango
to install -x11 +quartz
I am not sure. Never tried to go down that path.
comment:7 Changed 4 years ago by ensafi (Alex (Eskandar) Ensafi)
I just checked for completeness sake, and X11 is not (and never has been) installed. I have always avoided X11 in MacPorts. This is a new issue. GIMP has been a native macOS app for a long time, and X11 is only required for the Linux build. After doing a "selfupdate" and "upgrade outdated" things broke. Before this, GIMP was installed without X11 for a very long time, and it survived at least a few MacPorts and a couple of macOS updates.
As for "pango" it does not try to install Xorg, as you can see here:
sudo port install pango -x11 +quartz ---> Computing dependencies for pango The following dependencies will be installed: autoconf automake brotli bzip2 cairo db48 fontconfig freetype fribidi gdbm glib2 gobject-introspection graphite2 harfbuzz libedit libpixman libpng libtool openssl ossp-uuid pcre perl5.28 pkgconfig py38-beaker py38-mako py38-markdown py38-markupsafe py38-setuptools python38 python3_select python_select readline sqlite3
The unnecessary dependency on Xorg seems to be something peculiar to the "gimp2" package.
By the way, I completely removed MacPorts from my system and installed it from scratch. Nothing changed with respect to GIMP and Xorg. This is what's currently installed:
curl-ca-bundle @7.73.0_0 (active) platform='darwin 17' archs='noarch' date='2020-10-31T20:49:45-0700' dbus @1.12.16_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:23-0700' emacs-mac-app @8.0_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:15-0700' expat @2.2.10_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:21-0700' gettext @0.19.8.1_2 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:32-0700' gmp @6.2.0_1 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:26-0700' gnutls @3.6.15_0+doc (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:57-0700' icu @67.1_2 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:47-0700' jansson @2.13.1_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:00-0700' jpeg @9d_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:01-0700' lcms2 @2.11_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:07-0700' libffi @3.3_1 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:45-0700' libiconv @1.16_1 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:26-0700' libidn2 @2.3.0_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:40-0700' libtasn1 @4.16.0_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:42-0700' libunistring @0.9.10_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:38-0700' libxml2 @2.9.10_1 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:52-0700' libxslt @1.1.34_2 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:54-0700' lz4 @1.9.2_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:02-0700' ncurses @6.2_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:27-0700' nettle @3.6_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:45-0700' p11-kit @0.23.21_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:55-0700' tiff @4.1.0_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:04-0700' xz @5.2.5_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:50-0700' zlib @1.2.11_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:49:51-0700' zstd @1.4.5_0 (active) platform='darwin 17' archs='x86_64' date='2020-10-31T20:50:03-0700'
comment:8 follow-up: 9 Changed 4 years ago by kencu (Ken)
do you know about the "rdeps" command?
port rdeps gimp2 +quartz
might show you where things are getting pulled in.
comment:9 Changed 4 years ago by ensafi (Alex (Eskandar) Ensafi)
Replying to kencu:
do you know about the "rdeps" command?
port rdeps gimp2 +quartzmight show you where things are getting pulled in.
Thank you, that was a very useful tip, and it looks like libepoxy is the culprit:
libepoxy xorg-util-macros mesa gindent py27-libxml2 xorg-xorgproto xorg-libxcb xorg-libXau xorg-libXdmcp xorg-xcb-proto xorg-libpthread-stubs xorg-libX11 xorg-xtrans xorg-libXext xorg-libXdamage xorg-libXfixes xorg-libXi xorg-libXmu xorg-libXt xorg-libsm xorg-libice xorg-libXxf86vm
comment:10 follow-up: 11 Changed 4 years ago by kencu (Ken)
so the deal is libepoxy
requires a bunch of deps to build but not to run. It's a bit odd, but that's the way it is.
You shouldn't need to install all those libepoxy deps, esp mesa which brings in the motherload, if you're just installing a prebuilt binary.
But if you're building a non-standard variant, you might need to.
assuming you're installing into /opt/local
and can use prebuilt binaries, try first just seeing if you can install libepoxy as a binary:
sudo port -v install libepoxy
and if you get that in without any further hassles, then try your
sudo port -v install gimp2 +quartz
comment:11 Changed 4 years ago by ensafi (Alex (Eskandar) Ensafi)
Replying to kencu:
so the deal is
libepoxy
requires a bunch of deps to build but not to run. It's a bit odd, but that's the way it is.You shouldn't need to install all those libepoxy deps, esp mesa which brings in the motherload, if you're just installing a prebuilt binary.
But if you're building a non-standard variant, you might need to.
assuming you're installing into
/opt/local
and can use prebuilt binaries, try first just seeing if you can install libepoxy as a binary:sudo port -v install libepoxyand if you get that in without any further hassles, then try your
sudo port -v install gimp2 +quartz
So libepoxy installed on its own without any xorg dependencies, but gimp2 still tried to pull in xorg libraries via mesa. The real culprit is mesa, it seems, and I'm not sure why the dependency hierarchy showed libepoxy <- mesa <- xorg-* unless I did not interpret it correctly. In any case, I simply can't install gimp2 without triggering several xorg libraries. At least it's not the whole xorg display server, so I can live with it, but something's not right with gimp2's dependency on mesa in native macOS -x11 +no_x11 +quartz mode.
comment:12 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → invalid |
---|---|
Status: | new → closed |
port rdeps
by default lists each dependency only once, even if multiple ports depend on it. For example, port rdeps gimp2 +quartz
shows that libepoxy has a (build) dependency on mesa, and you would think that this means that you wouldn't need mesa if you already have libepoxy installed. But what it does not show is that mesa is also needed as a library dependency of gtk3, which is a dependency of gimp2. There is a comment in the mesa port explaining:
# mesa required to configure both +x11, +quartz (not just +x11) due to their dependency on libepoxy depends_lib-append port:mesa
See #55967 for more discussion on why that is needed.
So unfortunately this is working as intended; there is nothing for us to fix. If you want gtk3 not to require mesa, or mesa not to require X11, take it up with the developers of those programs.
comment:13 Changed 4 years ago by ensafi (Alex (Eskandar) Ensafi)
I don't have an opinion about GTK3 or MESA. All I know is that the GIMP website https://www.gimp.org/downloads/ states, "Since the 2.8.2 version, GIMP runs on OSX natively. No X11 environment is required." The dependency on X11 libraries contradicts this claim. Clearly, something is not right.
If you really have this in
variants.conf
:try changing it to just this:
If there is anything already installed, you probably should just uninstall it, unless you're sure you haven't polluted the system at all.
Some ports default to install
+x11 +quartz
and don't mess with them if they do. Just leave them alone.I don't generally put anything in variants.conf, and from a clean slate, if I just do this:
then all goes well.