Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Gimp 3.0.0. rc1 AppImage
#21
Issues with GitLab seems to be fixed and I posted to a discussion at   the AppImage merge request.

They have done an amazing job in just 6 months I recon. I realized my appimage loads fast because it uses kernels that support overlay-fs. The Gimp-git appimage is targeting all linux distros which I never intended. I mostly do it to keep my mind active. Smile

The gimp-git appimage can also be used for testing the gimp-git development.
Developing Gimp3 for all major platforms and all linux distros at the same time seems an over-whelming task to me. Obviously a fix somewhere could break something else.

I'm interested in the script they use to find dependencies. I think too many deps are going into it. I've looked at the script they use to generate an appimage from source. They are great coders for sure.
Reply
#22
(11-17-2024, 01:14 PM)rich2005 Wrote: (edit: just had a look and libc is 2.35 for "!jammy")

Coincidentally the first item in the news for libc 2.36 is "Support for DT_RELR relative relocation format has been added to
 glibc".
Reply
#23
to find the glibc version use:
ldd --version
example
Ubuntu 22.04 = 2.35
debian testing = 2.36   I think 2.36 in backward compatible with 2.35
Reply
#24
(11-18-2024, 11:24 PM)Tas_mania Wrote: Issues with GitLab seems to be fixed and I posted to a discussion at   the AppImage merge request.

They have done an amazing job in just 6 months I recon. I realized my appimage loads fast because it uses kernels that support overlay-fs. The Gimp-git appimage is targeting all linux distros which I never intended. I mostly do it to keep my mind active. Smile

The gimp-git appimage can also be used for testing the gimp-git development.
Developing Gimp3 for all major platforms and all linux distros at the same time seems an over-whelming task to me. Obviously a fix somewhere could break something else.

I'm interested in the script they use to find dependencies. I think too many deps are going into it. I've looked at the script they use to generate an appimage from source. They are great coders for sure.

Once you have compiled you Gimp binary, you use ldd on it and it shows you all the libraries it loads:
Code:
[font=monospace][color=#000000][/color][font=monospace][color=#000000]ldd /Gimp-dev/3.00/run/bin/gimp-3.0 | sort -k 3 [/color]
       /lib64/ld-linux-x86-64.so.2 (0x00007383c8fc6000)
       linux-vdso.so.1 (0x00007ffd80f91000)
       libbabl-0.1.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libbabl-0.1.so.0 (0x00007383c7d2b000)
       libgegl-0.4.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgegl-0.4.so.0 (0x00007383c805d000)
       libgegl-npd-0.4.so => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgegl-npd-0.4.so (0x00007383c86c2000)
       libgimpbase-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpbase-3.0.so.0 (0x00007383c87c7000)
       libgimpcolor-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpcolor-3.0.so.0 (0x00007383c87ae000)
       libgimpconfig-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpconfig-3.0.so.0 (0x00007383c878f000)
       libgimpmath-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpmath-3.0.so.0 (0x00007383c8fbc000)
       libgimpmodule-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpmodule-3.0.so.0 (0x00007383c8787000)
       libgimpthumb-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpthumb-3.0.so.0 (0x00007383c877b000)
       libgimpwidgets-3.0.so.0 => /Gimp-dev/3.00/run/lib/x86_64-linux-gnu/libgimpwidgets-3.0.so.0 (0x00007383c8400000)
       libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007383c5d1a000)
       libappstream-glib.so.8 => /lib/x86_64-linux-gnu/libappstream-glib.so.8 (0x00007383c7060000)
       libarchive.so.13 => /lib/x86_64-linux-gnu/libarchive.so.13 (0x00007383c6f74000)
       libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007383c6748000)
       libatk-bridge-2.0.so.0 => /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0 (0x00007383c66f9000)
       libatspi.so.0 => /lib/x86_64-linux-gnu/libatspi.so.0 (0x00007383c59a9000)
       libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007383c5a11000)
       libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007383c59e5000)
       libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007383c677e000)
       libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007383c5595000)
       libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007383c678c000)
       libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007383c6772000)
       libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007383c82bc000)
       libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007383c4f99000)
       libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007383c5421000)
       libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007383c4a00000)
       libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007383c6c00000)
       libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007383c5ea4000)
       libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007383c5a08000)
       libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007383c595a000)
       libepoxy.so.0 => /lib/x86_64-linux-gnu/libepoxy.so.0 (0x00007383c62dd000)
       libexiv2.so.27 => /lib/x86_64-linux-gnu/libexiv2.so.27 (0x00007383c6400000)
       libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007383c67a0000)
       libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007383c695c000)
       libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007383c7a9b000)
       libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007383c79cf000)
       libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007383c67fc000)
       libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007383c681a000)
       libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007383c28b8000)
       libgdk-3.so.0 => /lib/x86_64-linux-gnu/libgdk-3.so.0 (0x00007383c7105000)
       libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007383c872f000)
       libgexiv2.so.2 => /lib/x86_64-linux-gnu/libgexiv2.so.2 (0x00007383c7cf2000)
       libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007383c7e8d000)
       libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007383c8173000)
       libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007383c6e84000)
       libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007383c4fcf000)
       libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007383c566e000)
       libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007383c86cc000)
       libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007383c5f5f000)
       libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007383c4f5a000)
       libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007383c67cb000)
       libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007383c561a000)
       libgtk-3.so.0 => /lib/x86_64-linux-gnu/libgtk-3.so.0 (0x00007383c7200000)
       libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007383c7b07000)
       libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007383c546d000)
       libicudata.so.74 => /lib/x86_64-linux-gnu/libicudata.so.74 (0x00007383c2a00000)
       libicuuc.so.74 => /lib/x86_64-linux-gnu/libicuuc.so.74 (0x00007383c5200000)
       libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007383c590d000)
       libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007383c6968000)
       libjson-c.so.5 => /lib/x86_64-linux-gnu/libjson-c.so.5 (0x00007383c5fb5000)
       libjson-glib-1.0.so.0 => /lib/x86_64-linux-gnu/libjson-glib-1.0.so.0 (0x00007383c8696000)
       libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007383c5427000)
       libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007383c4f92000)
       libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007383c4793000)
       libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007383c5414000)
       liblber.so.2 => /lib/x86_64-linux-gnu/liblber.so.2 (0x00007383c55ad000)
       liblcms2.so.2 => /lib/x86_64-linux-gnu/liblcms2.so.2 (0x00007383c7c90000)
       libldap.so.2 => /lib/x86_64-linux-gnu/libldap.so.2 (0x00007383c55bd000)
       liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007383c5c3e000)
       liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007383c5d7b000)
       libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007383c4fa6000)
       libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007383c6875000)
       libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007383c6e8b000)
       libmypaint-1.5.so.1 => /lib/x86_64-linux-gnu/libmypaint-1.5.so.1 (0x00007383c70ca000)
       libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007383c5d26000)
       libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007383c592f000)
       libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007383c485c000)
       libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007383c7c14000)
       libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007383c7c7f000)
       libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007383c7aec000)
       libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007383c68c2000)
       libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007383c69eb000)
       libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007383c6e4c000)
       libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007383c5868000)
       libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007383c4f7f000)
       librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007383c58ef000)
       libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007383c4fb5000)
       libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007383c6848000)
       libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007383c587c000)
       libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007383c6000000)
       libstemmer.so.0d => /lib/x86_64-linux-gnu/libstemmer.so.0d (0x00007383c5dad000)
       libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007383c54b5000)
       libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007383c5455000)
       libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007383c67f1000)
       libunistring.so.5 => /lib/x86_64-linux-gnu/libunistring.so.5 (0x00007383c5053000)
       libunwind.so.8 => /lib/x86_64-linux-gnu/libunwind.so.8 (0x00007383c7045000)
       libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007383c5e9a000)
       libwayland-client.so.0 => /lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007383c6282000)
       libwayland-cursor.so.0 => /lib/x86_64-linux-gnu/libwayland-cursor.so.0 (0x00007383c5ff6000)
       libwayland-egl.so.1 => /lib/x86_64-linux-gnu/libwayland-egl.so.1 (0x00007383c5ff1000)
       libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007383c6ac3000)
       libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007383c5a56000)
       libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007383c6e1d000)
       libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007383c6e18000)
       libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007383c6a9a000)
       libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007383c5fdb000)
       libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007383c5fe5000)
       libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007383c5fe0000)
       libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007383c5a4c000)
       libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007383c6e38000)
       libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007383c66f1000)
       libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007383c5fc9000)
       libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007383c6735000)
       libxkbcommon.so.0 => /lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007383c6294000)
       libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007383c5a5c000)
       libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007383c5fce000)
       libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007383c6e2c000)
       libyaml-0.so.2 => /lib/x86_64-linux-gnu/libyaml-0.so.2 (0x00007383c5e79000)
       libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007383c70e9000)
       libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007383c5c60000)
[/font]

To be more complete you do the same with all the binary Gimp plugins and any executable you are going to include (Python interpreter for instance), and you have the list of everything you load. Things are more complicated for the data files (message translations, icons, etc) but if you have the libs, you find their package, and include the package contents as well. You can check the package dependencies to include any data-only packages.
Reply
#25
Thanks for that list ofnuts, 'ldd' command is useful for discovering deps.

We got Gimp making appimages
At the present time I will not longer develop my Gimp3 appimages because the Gimp team (Bruno) is churning them out on the artifacts page. At least we got the Gimp team making appimages Wink

If you are serious about staying current with Gimp why would you not get software from Gimp source code?

I've looked at the project in some detail and I think it's massive. The process of generating appimages also produces flatpacks but only flatpacks are on the downloads page. That could be because flatpacks are more likely to work on all linux distros while the appimages are under development.

   

Gimp 3 is a good example of modern software development - the Windows and OSX issues are being addressed fully even though there is proprietary code that has to be adapted to. Networking is fully integrated into Gimp3 even though there are few plug-ins that do networking. (like send by email) They are thinking long term.

I suspect there is quite a bit of funding going into this project but no further comment. Big Grin  

Contradictions
I'm interested in how contradictions are resolved. I see some very intelligent people rolling the dice on a mountain of contradictions. Open source that runs on closed source on multiple platforms in multiple languages in a World that appears intent on self-harm. Gimp is also a gui interface (gtk) and libs used by an entire programming ecosystem.

Non-destructive layer effects 
A lot of people are talking about this but if you duplicate a layer and work on the duplicate you have 'non-destructive layer effects' or don't you?
Reply
#26
(11-24-2024, 10:25 PM)Tas_mania Wrote: Thanks for that list ofnuts, 'ldd' command is useful for discovering deps.

We got Gimp making appimages
At the present time I will not longer develop my Gimp3 appimages because the Gimp team (Bruno) is churning them out on the artifacts page. At least we got the Gimp team making appimages Wink

If you are serious about staying current with Gimp why would you not get software from Gimp source code?

Not too difficult actually, if you are on a recent distro. There is only a bit of a chase of the required packages to install before it build without errors;

(11-24-2024, 10:25 PM)Tas_mania Wrote: I've looked at the project in some detail and I think it's massive. The process of generating appimages also produces flatpacks but only flatpacks are on the downloads page. That could be because flatpacks are more likely to work on all linux distros while the appimages are under development.



Gimp 3 is a good example of modern software development - the Windows and OSX issues are being addressed fully even though there is proprietary code that has to be adapted to. Networking is fully integrated into Gimp3 even though there are few plug-ins that do networking. (like send by email) They are thinking long term.

I suspect there is quite a bit of funding going into this project but no further comment. Big Grin  

Not that much AFAIK. I don't see that many "core" developpers;

(11-24-2024, 10:25 PM)Tas_mania Wrote: Contradictions
I'm interested in how contradictions are resolved. I see some very intelligent people rolling the dice on a mountain of contradictions. Open source that runs on closed source on multiple platforms in multiple languages in a World that appears intent on self-harm. Gimp is also a gui interface (gtk)  and libs used by an entire programming ecosystem.

Non-destructive layer effects 
A lot of people are talking about this but if you duplicate a layer and work on the duplicate you have 'non-destructive layer effects' or don't you?

This is a different thing. Assume you want to apply a saturation increase and a sharpening in that order. If you copy the layer and do saturation+sharpen but then discover you want to tweak the saturation, with Gimp 2.10 you re-start from scratch. With Gimp3, you edit the saturation step and while you push the sliders in the Saturation tool you see the results of the saturation+sharpening in real time.
Reply
#27
Quote:Not that much AFAIK. I don't see that many "core" developpers;

Maybe not on the GitLab Gimp pages but the build scripts are pulling-in the best software available. Example - the appimage/flatpack build script pulls-in updates from many other sources, even the small program that squashes an appimage gets checked for an update. If you consider the devs on all of the Gimp dependencies it's a lot of people. Old timers like me can't even think like that Smile The 'core' developers are conducting a pretty big orchestra.

Quote:This is a different thing. Assume you want to apply a saturation increase and a sharpening in that order. If you copy the layer and do saturation+sharpen but then discover you want to tweak the saturation, with Gimp 2.10 you re-start from scratch. With Gimp3, you edit the saturation step and while you push the sliders in the Saturation tool you see the results of the saturation+sharpening in real time.

Thanks, I can see that would be good like a painters palette. ('palette' that has got to be French :Smile
Reply
#28
(11-25-2024, 07:42 AM)Tas_mania Wrote:
Quote:Not that much AFAIK. I don't see that many "core" developpers;

Maybe not on the GitLab Gimp pages but the build scripts are pulling-in the best software available. Example - the appimage/flatpack build script pulls-in updates from many other sources, even the small program that squashes an appimage gets checked for an update. If you consider the devs on all of the Gimp dependencies it's a lot of people. Old timers like me can't even think like that Smile The 'core' developers are conducting a pretty big orchestra.
Thanks, I can see that would be good like a painters palette. ('palette' that has got to be French :Smile

You don't need to be many people to write such scripts. This is called "DevOps", it is the scripting and automation of all the whole build process so when a developer commits code to the repository, or at regular intervals, you get a runnable program to be put in the hands of the test^H^H^H^Husers immediately (in the old days, even with "makefiles", things were somewhat more manual and you could miss some source code or dependency update. So you get someone to set it up for the project (which is mostly configuring/customizing a ready-made application these days) and when it's done this person can leave and work for another project, or the developer can return writing application code. So it's more an indication of a small team than of a big one.
Reply
#29
Thanks ofnuts, I think the DevOps method works well with appimages because the image is self-contained. Just unpack, add or remove files, re-pack and test. 

If anyone wants to do testing on the official Gimp 3 appimage check here:
build/linux: Make AppImage run in (possibly) every distro

The appimage proposal is here:
https://gitlab.gnome.org/GNOME/gimp/-/issues/7661
Reply


Forum Jump: