ANNOUNCE: libxfce4ui 4.21.0 released

Gaël Bonithon trash.paradise at protonmail.com
Thu Mar 20 12:07:16 CET 2025


See also https://gitlab.xfce.org/xfce/libxfce4util/-/merge_requests/61 and the links it contains.

Cheers,
Gaël

On Thursday, March 20th, 2025 at 11:05 AM, Gaël Bonithon <trash.paradise at protonmail.com> wrote:

> > To me as a user of libxfce4ui it appears that I now have to know
> > the implementation details of that library, while I'm only interested in
> > the API of it.
> 
> 
> Precisely the opposite :) As a libxfce4ui user, you don't need to know that it depends on libxfce4util or any other library, which is why these internal dependencies should remain private in the pkg-config file. And you need to add the necessary flags to build your project without relying on libxfce4ui to add them accidentally.
> 
> Archives that fail to build with libxfce4ui 4.21.0 relied on libxfce4ui to link against libxfce4util typically, which it shouldn't have done. This behavior was a bug, and one shouldn't align with buggy behavior, it's buggy behavior that should align with good practice instead.
> 
> Cheers,
> Gaël
> 
> On Thursday, March 20th, 2025 at 10:33 AM, Manfred Hollstein manfred.h at gmx.net wrote:
> 
> > Hi Gaël,
> > 
> > On Tue, 18 Mar 2025, 19:30:47 +0100, Gaël Bonithon wrote:
> > 
> > > Yes, pkg-config files generated in meson builds no longer expose
> > > dependencies by default. As a result, builds that relied on them
> > > implicitly must be fixed by adding the missing flags. This has been
> > > done on git master, but many old archives will indeed fail to build
> > > with the latest versions of libs from meson builds. In such cases,
> > > patches available on git master should be applied by hand.
> > 
> > thanks for your reply! Do you mind sharing the rationale behind this
> > change? To me as a user of libxfce4ui it appears that I now have to know
> > the implementation details of that library, while I'm only interested in
> > the API of it. If the internals change, every user would have to track
> > them on its own. To be honest, I find that rather cumbersome...
> > 
> > > Cheers,
> > > Gaël
> > 
> > Cheers.
> > 
> > l8er
> > manfred
> > 
> > > On Tuesday, March 18th, 2025 at 3:18 PM, Manfred Hollstein manfred.h at gmx.net wrote:
> > > 
> > > > Hi there,
> > > > 
> > > > On Mon, 17 Mar 2025, 08:38:47 +0100, Gaël Bonithon wrote:
> > > > 
> > > > > libxfce4ui 4.21.0 is now available for download from
> > > > 
> > > > I am not (yet) a full Xfce developer, but I care about the Xfce stack
> > > > for all SUSE distributions. In response to the new announcement of
> > > > libxfce4ui 4.21.0 I started a complete new tree for upcoming development
> > > > releases; this got populated with a copy of all 4.20 based packages,
> > > > then libxfce4ui got updated to the new version 4.21.0. 7 packages in
> > > > this new tree now fail to build, all with some unresolved externals
> > > > which are normally defined in libxfce4util.so.
> > > > 
> > > > The interesting thing is the following (taken from building xfwm4 as an
> > > > example):
> > > > 
> > > > 4.20: configure finds the following flags to link with libxfce4ui:
> > > > 
> > > > > checking for libxfce4ui-2 >= 4.12.0... 4.20.0
> > > > 
> > > > > checking LIBXFCE4UI_CFLAGS... -I/usr/include/xfce4/libxfce4ui-2 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/libxkbcommon -I/usr/include/wayland -I/usr/include/fribidi -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/gio-unix-2.0 -pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/xfce4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
> > > > 
> > > > > checking LIBXFCE4UI_LIBS... -lxfce4ui-2 -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lxfce4util -lglib-2.0
> > > > 
> > > > while building it in the other tree:
> > > > 
> > > > 4.21: configure finds the following flags to link with libxfce4ui:
> > > > 
> > > > > checking for libxfce4ui-2 >= 4.12.0... 4.21.0
> > > > 
> > > > > checking LIBXFCE4UI_CFLAGS... -I/usr/include/xfce4/libxfce4ui-2 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/xfce4 -I/usr/include/xfce4/xfconf-0 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/cairo -I/usr/include/gio-unix-2.0 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/libxkbcommon -I/usr/include/wayland -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/fribidi -I/usr/include/uuid -I/usr/include/startup-notification-1.0
> > > > 
> > > > > checking LIBXFCE4UI_LIBS... -lxfce4ui-2
> > > > 
> > > > Notice the small list for LIBXFCE4UI_LIBS?
> > > > 
> > > > Does anyone have an idea, why this is happening? I also found out that
> > > > the usual way to build
> > > > 
> > > > ./configure ...; make; make install
> > > > 
> > > > does no longer work as configure is not contained in the release
> > > > tarball. I then used xfce4-dev-tools' autogen.sh to generate the missing
> > > > file, but later on (auto)make complained about some non-existing files,
> > > > which are located in another sub-directory. So I guessed, the way to go
> > > > these days would be
> > > > 
> > > > %meson
> > > > %meson_build
> > > > %meson_install
> > > > 
> > > > which made the package build, install and generate the related rpm
> > > > packages.
> > > > 
> > > > However, as I wrote above, these rpms result in build errors in 7 other
> > > > packages which BuildRequire libxfce4ui.so.
> > > > 
> > > > Full details can be found at the following two URLs:
> > > > 
> > > > 4.20: https://build.opensuse.org/project/show/home:manfred-h:X11:xfce:4.20
> > > > 4.21: https://build.opensuse.org/project/show/home:manfred-h:X11:xfce:4.21
> > > > 
> > > > Is my assumption correct that we now have to go the meson route? If not,
> > > > the released tarball is not complete.
> > > > 
> > > > TIA, cheers.
> > > > 
> > > > l8er
> > > > manfred
> > > > 
> > > > > https://archive.xfce.org/src/xfce/libxfce4ui/4.21/libxfce4ui-4.21.0.tar.xz
> > > > > https://archive.xfce.org/src/xfce/libxfce4ui/4.21/libxfce4ui-4.21.0.tar.xz?sha1
> > > > > https://archive.xfce.org/src/xfce/libxfce4ui/4.21/libxfce4ui-4.21.0.tar.xz?sha256
> > > > > 
> > > > > What is libxfce4ui?
> > > > > ===================
> > > > > 
> > > > > Libxfce4ui is used to share commonly used Xfce widgets among the Xfce
> > > > > applications.
> > > > > 
> > > > > Website:
> > > > > https://docs.xfce.org/xfce/libxfce4ui/start
> > > > > 
> > > > > Release notes for 4.21.0
> > > > > ========================
> > > > > [Please note that this is a development release.]
> > > > > 
> > > > > - Expose xfce-cell-renderer-icon
> > > > > - build: Automate copyright year management
> > > > > - Add missing symbols to GNU visibility
> > > > > - Add xfce-tree-view from exo
> > > > > - Add xfce-open from exo
> > > > > - Add xfce-desktop-item-edit from exo
> > > > > - Add xfce-icon-chooser-dialog and xfce-icon-view from exo
> > > > > - build: Remove libxfce4ui-config.h from GI
> > > > > - build: Add missing check for mmap
> > > > > - Add xfce-gtk-extensions from exo
> > > > > - Add xfce-gdk-pixbuf-extensions from exo
> > > > > - Add xfce-execute from exo
> > > > > - I18n: Update po/LINGUAS list
> > > > > - xfce4-about: Add .desktop file to the settings manager
> > > > > - clipboard-manager: Preserve all image formats when taking ownership
> > > > > - meson-build: Use SPDX license expression
> > > > > - meson-build: Update debug/optimization flag management
> > > > > - Delete obsolete file libxfce4ui-1.pc.in
> > > > > - build: Use VERSION_FULL intead of VERSION or PACKAGE_VERSION
> > > > > - autotools-build: Fix EXTRA_DIST redefinition
> > > > > - Add meson build
> > > > > - build: Include local header libxfce4ui/libxfce4ui.h
> > > > > - build: Fix include guard position
> > > > > - Set up GNU symbol visibility for libxfce4kbd-private
> > > > > - Migrate to xdt-gen-visibility and xdt-check-abi
> > > > > - Add variadic functions to Vala
> > > > > - Fix namespace for GObject introspection
> > > > > - Translation Updates:
> > > > > Albanian, Amharic, Arabic, Armenian, Armenian (Armenia), Asturian,
> > > > > Azerbaijani, Basque, Belarusian, Bengali, Bulgarian, Catalan, Chinese
> > > > > (China), Chinese (Hong Kong), Chinese (Taiwan), Croatian, Czech,
> > > > > Danish, Dutch, Eastern Armenian, English (Australia), English (United
> > > > > Kingdom), Estonian, Finnish, French, Galician, Georgian, German,
> > > > > Greek, Hebrew, Hungarian, Icelandic, Indonesian, Interlingue,
> > > > > Italian, Japanese, Kazakh, Korean, Latvian, Lithuanian, Malay,
> > > > > Norwegian Bokmål, Norwegian Nynorsk, Occitan (post 1500), Persian
> > > > > (Iran), Polish, Portuguese, Portuguese (Brazil), Romanian, Russian,
> > > > > Serbian, Slovak, Slovenian, Spanish, Swedish, Telugu, Thai, Turkish,
> > > > > Ukrainian, Urdu, Urdu (Pakistan), Uyghur, Venetian, Welsh
> > 
> > _______________________________________________
> > Xfce4-dev mailing list
> > Xfce4-dev at xfce.org
> > https://mail.xfce.org/mailman/listinfo/xfce4-dev


More information about the Xfce4-dev mailing list