[packages/libdesktop-agnostic] - updated to build using waf 2 (needed for proper linker flags processing) and vala 0.56.x

qboosh qboosh at pld-linux.org
Sat Dec 28 13:57:36 CET 2024


commit 5496b3e9a8763f97770039b6becde11830766de5
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Dec 28 13:08:15 2024 +0100

    - updated to build using waf 2 (needed for proper linker flags processing) and vala 0.56.x

 libdesktop-agnostic-vala.patch | 478 ++++++++++++++++++++++++++++++++++++++
 libdesktop-agnostic-waf.patch  | 514 +++++++++++++++++++++++++++++++++++++++++
 libdesktop-agnostic.spec       |  72 +++---
 3 files changed, 1033 insertions(+), 31 deletions(-)
---
diff --git a/libdesktop-agnostic.spec b/libdesktop-agnostic.spec
index 05d2e5e..61bc39a 100644
--- a/libdesktop-agnostic.spec
+++ b/libdesktop-agnostic.spec
@@ -1,3 +1,7 @@
+#
+# Conditional build:
+%bcond_with	gnome		# GNOME 2.x desktop entry and vfs backends
+
 Summary:	Provides an extensible configuration API
 Summary(pl.UTF-8):	Rozszerzalne API konfiguracyjne
 Name:		libdesktop-agnostic
@@ -8,19 +12,25 @@ Group:		Libraries
 Source0:	https://launchpad.net/libdesktop-agnostic/0.4/%{version}/+download/%{name}-%{version}.tar.gz
 # Source0-md5:	42374d226a21d57637f97173f6b105a1
 Patch0:		gladeui.patch
+Patch1:		%{name}-waf.patch
+Patch2:		%{name}-vala.patch
 URL:		https://launchpad.net/libdesktop-agnostic
-BuildRequires:	GConf2-devel
-BuildRequires:	gettext
+BuildRequires:	GConf2-devel >= 2.0
+BuildRequires:	gettext-tools
 BuildRequires:	glade-devel >= 3
-BuildRequires:	gnome-desktop-devel
-BuildRequires:	gobject-introspection-devel
-BuildRequires:	gtk+-devel
+BuildRequires:	glib2-devel >= 1:2.18.0
+%{?with_gnome:BuildRequires:	gnome-desktop2-devel >= 2.0}
+%{?with_gnome:BuildRequires:	gnome-vfs2-devel >= 2.6.0}
+BuildRequires:	gobject-introspection-devel >= 0.6.3
+BuildRequires:	gtk+2-devel >= 2:2.12.0
 BuildRequires:	intltool
-BuildRequires:	python-devel
-BuildRequires:	python-pygtk-devel
+BuildRequires:	pkgconfig
+BuildRequires:	python-devel >= 1:2.5
+BuildRequires:	python-pygobject-devel >= 2.15.2
+BuildRequires:	python-pygtk-devel >= 2:2.12.0
 BuildRequires:	rpmbuild(macros) >= 1.219
-BuildRequires:	vala
-#BuildRequires:  waf
+BuildRequires:	vala >= 0.10
+BuildRequires:	waf >= 2
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -74,34 +84,35 @@ Ten pakiet zawiera wiązania Pythona do głównej biblioteki.
 
 %prep
 %setup -q
-#Use gladeui-2.0, not glade-1.0
-%patch0 -p1
+# Use gladeui-2.0, not glade-1.0
+%patch -P0 -p1
+%patch -P1 -p1
+%patch -P2 -p1
 
 %build
 export CFLAGS="%{rpmcflags}"
+export LINKFLAGS="%{rpmldflags} -fcommon"
+export WAFDIR=/usr/share/waf3
 PYTHONDIR=%{py_sitedir} \
-./waf configure \
+%{__python} /usr/bin/waf configure \
 	  --prefix=%{_prefix} \
 	  --libdir=%{_libdir} \
 	  --sysconfdir=%{_sysconfdir} \
 	  --enable-debug \
 	  --config-backends=gconf \
-	  --vfs-backends=gio \
-	  --desktop-entry-backends=glib \
+	  --desktop-entry-backends=glib%{?with_gnome:,gnome} \
+	  --vfs-backends=gio%{?with_gnome:,gnome} \
 	  --with-glade
-#	  --disable-gi
 
-./waf -v build
+%{__python} /usr/bin/waf -v build
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-DESTDIR=$RPM_BUILD_ROOT \
-./waf install
+export WAFDIR=/usr/share/waf3
 
-# install man files
-#install -d $RPM_BUILD_ROOT%{_mandir}/man1/
-#install -D -p -m 0644 debian/lda*1 $RPM_BUILD_ROOT%{_mandir}/man1
+DESTDIR=$RPM_BUILD_ROOT \
+%{__python} /usr/bin/waf install
 
 %py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
 %py_comp $RPM_BUILD_ROOT%{py_sitedir}
@@ -110,7 +121,7 @@ DESTDIR=$RPM_BUILD_ROOT \
 # fix permissions so debuginfo is stripped from .so files
 find $RPM_BUILD_ROOT%{_libdir} -name *.so -exec chmod 755 {} \;
 
-# noidea
+# joke locale
 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale/en_US at piglatin
 
 #%%find_lang %{name}
@@ -123,8 +134,6 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%dir /etc/xdg/libdesktop-agnostic
-%config(noreplace) /etc/xdg/libdesktop-agnostic/desktop-agnostic.ini
 %attr(755,root,root) %{_libdir}/libdesktop-agnostic.so.*.*.*
 %ghost %{_libdir}/libdesktop-agnostic.so.0
 %attr(755,root,root) %{_libdir}/libdesktop-agnostic-cfg.so.*.*.*
@@ -135,6 +144,8 @@ rm -rf $RPM_BUILD_ROOT
 %ghost %{_libdir}/libdesktop-agnostic-ui.so.0
 %attr(755,root,root) %{_libdir}/libdesktop-agnostic-vfs.so.*.*.*
 %ghost %{_libdir}/libdesktop-agnostic-vfs.so.0
+%dir /etc/xdg/libdesktop-agnostic
+%config(noreplace) /etc/xdg/libdesktop-agnostic/desktop-agnostic.ini
 
 %dir %{_libdir}/desktop-agnostic
 %dir %{_libdir}/desktop-agnostic/modules
@@ -148,27 +159,26 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/lda-desktop-entry-editor
 %attr(755,root,root) %{_bindir}/lda-schema-to-gconf
-#%{_mandir}/man1/lda*1.gz
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/libdesktop-agnostic-1.0
-%{_datadir}/pygtk/2.0/defs/desktopagnostic*defs
-%{_datadir}/vala/vapi/desktop-agnostic*
-%{_datadir}/glade/catalogs/desktop-agnostic.xml
-%{_pkgconfigdir}/desktop-agnostic.pc
 %{_libdir}/libdesktop-agnostic-ui.so
 %{_libdir}/libdesktop-agnostic-cfg.so
 %{_libdir}/libdesktop-agnostic-fdo.so
 %{_libdir}/libdesktop-agnostic-vfs.so
 %{_libdir}/libdesktop-agnostic.so
+%{_includedir}/libdesktop-agnostic-1.0
+%{_pkgconfigdir}/desktop-agnostic.pc
+%{_datadir}/pygtk/2.0/defs/desktopagnostic*defs
+%{_datadir}/vala/vapi/desktop-agnostic*
+%{_datadir}/glade/catalogs/desktop-agnostic.xml
 
 %files -n python-desktop-agnostic
 %defattr(644,root,root,755)
 %dir %{py_sitedir}/desktopagnostic
-%{py_sitedir}/desktopagnostic/*.py[co]
 %attr(755,root,root) %{py_sitedir}/desktopagnostic/config.so
 %attr(755,root,root) %{py_sitedir}/desktopagnostic/desktopagnostic.so
 %attr(755,root,root) %{py_sitedir}/desktopagnostic/fdo.so
 %attr(755,root,root) %{py_sitedir}/desktopagnostic/ui.so
 %attr(755,root,root) %{py_sitedir}/desktopagnostic/vfs.so
+%{py_sitedir}/desktopagnostic/*.py[co]
diff --git a/libdesktop-agnostic-vala.patch b/libdesktop-agnostic-vala.patch
new file mode 100644
index 0000000..a46d9a2
--- /dev/null
+++ b/libdesktop-agnostic-vala.patch
@@ -0,0 +1,478 @@
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-bridge.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-bridge.vala	2024-12-23 12:07:56.628589489 +0100
+@@ -322,7 +322,7 @@ namespace DesktopAgnostic.Config
+       }
+       else
+       {
+-        unowned ParamSpec[] properties;
++        ParamSpec[] properties;
+         string props_str;
+         properties = ((ObjectClass)(obj.get_type ().class_peek ())).list_properties ();
+         props_str = "";
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-impl-gconf.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-impl-gconf.vala	2024-12-24 13:12:11.589636395 +0100
+@@ -54,7 +54,7 @@ namespace DesktopAgnostic.Config
+       Schema schema = this.schema;
+ 
+       this.connection_id = 0;
+-      this._notifiers = Datalist<SList<NotifyDelegate>> ();
++      this._notifiers = Datalist<unowned SList<NotifyDelegate>> ();
+       base_path = schema.get_metadata_option (opt_prefix +
+                                               "base_path").get_string ();
+       this.schema_path = "/schemas%s/%s".printf (base_path, schema.app_name);
+@@ -324,7 +324,7 @@ namespace DesktopAgnostic.Config
+     }
+ 
+     private GLib.ValueArray
+-    slist_to_valuearray (SList<unowned GConf.Value> list, Type type) throws Error
++    slist_to_valuearray (SList<GConf.Value> list, Type type) throws Error
+     {
+       GLib.ValueArray arr = new GLib.ValueArray (list.length ());
+       foreach (unowned GConf.Value gc_val in list)
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-notify-delegate.c.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-notify-delegate.c	2024-12-27 16:43:29.492965924 +0100
+@@ -20,7 +20,7 @@
+  * Author : Mark Lee <libdesktop-agnostic at lazymalevolence.com>
+  */
+ 
+-#include <libdesktop-agnostic/config.h>
++#include <libdesktop-agnostic/desktop-agnostic-cfg.h>
+ 
+ typedef struct _DesktopAgnosticConfigNotifyDelegate
+ {
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-schema.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/config-schema.vala	2024-12-23 12:07:24.412097354 +0100
+@@ -318,7 +318,7 @@ namespace DesktopAgnostic.Config
+      * @param group the group name to search for keys associated with it
+      * @return a list of zero or more keys
+      */
+-    public unowned List<unowned string>?
++    public unowned List<string>?
+     get_keys (string group)
+     {
+       return this.keys.lookup (group);
+@@ -332,7 +332,7 @@ namespace DesktopAgnostic.Config
+     public bool
+     exists (string group, string key)
+     {
+-      unowned List<unowned string> group_keys = this.keys.lookup (group);
++      unowned List<string> group_keys = this.keys.lookup (group);
+       return group_keys != null &&
+              group_keys.find_custom (key, (CompareFunc)strcmp) != null;
+     }
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/config.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/config.vala	2024-12-24 14:01:28.503617417 +0100
+@@ -22,7 +22,6 @@
+ 
+ using DesktopAgnostic;
+ 
+-[CCode (cheader_filename = "libdesktop-agnostic/config.h")]
+ namespace DesktopAgnostic.Config
+ {
+   /**
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/desktop-entry.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/desktop-entry.vala	2024-12-24 14:00:48.893832002 +0100
+@@ -22,7 +22,6 @@
+ 
+ using DesktopAgnostic;
+ 
+-[CCode (cheader_filename = "libdesktop-agnostic/fdo.h")]
+ namespace DesktopAgnostic.FDO
+ {
+   /**
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/ui-icon-chooser-dialog.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/ui-icon-chooser-dialog.vala	2024-12-23 11:49:26.347937729 +0100
+@@ -98,7 +98,7 @@ namespace DesktopAgnostic.UI
+     {
+       this.response.connect (this.on_response);
+       this.title = _ ("Select Icon");
+-      this.icon_name = STOCK_FIND;
++      this.icon_name = Gtk.Stock.FIND;
+       this.set_default_size (375, 375);
+       this.create_ui ();
+     }
+@@ -121,8 +121,8 @@ namespace DesktopAgnostic.UI
+ 
+       this.on_icon_type_toggled ();
+ 
+-      this.add_buttons (STOCK_CANCEL, ResponseType.CANCEL,
+-                        STOCK_OK, ResponseType.OK);
++      this.add_buttons (Gtk.Stock.CANCEL, ResponseType.CANCEL,
++                        Gtk.Stock.OK, ResponseType.OK);
+     }
+ 
+     private void
+@@ -165,7 +165,7 @@ namespace DesktopAgnostic.UI
+       {
+         TreeIter iter;
+         Value val;
+-        var store = this._viewer.model as ListStore;
++        var store = this._viewer.model as Gtk.ListStore;
+         store.get_iter (out iter, p);
+         store.get_value (iter, Column.DATA, out val);
+ 
+@@ -205,11 +205,11 @@ namespace DesktopAgnostic.UI
+       return viewer;
+     }
+ 
+-    private ListStore
++    private Gtk.ListStore
+     create_model ()
+     {
+       // icon, name, data
+-      return new ListStore (Column.COUNT,
++      return new Gtk.ListStore (Column.COUNT,
+                             typeof (Gdk.Pixbuf),
+                             typeof (string),
+                             typeof (string),
+@@ -291,12 +291,12 @@ namespace DesktopAgnostic.UI
+     private void
+     on_folder_changed (FileChooser chooser)
+     {
+-      unowned ListStore model;
++      unowned Gtk.ListStore model;
+       string uri;
+       VFS.File directory;
+       SList<VFS.File> children;
+ 
+-      model = this._file_viewer.model as ListStore;
++      model = this._file_viewer.model as Gtk.ListStore;
+       model.clear ();
+ 
+       uri = chooser.get_uri ();
+@@ -342,11 +342,11 @@ namespace DesktopAgnostic.UI
+     private void
+     on_icon_context_changed (ComboBox box)
+     {
+-      unowned ListStore model;
++      unowned Gtk.ListStore model;
+       unowned IconTheme icon_theme;
+       List<string> icon_list;
+ 
+-      model = this._themed_viewer.model as ListStore;
++      model = this._themed_viewer.model as Gtk.ListStore;
+       model.clear ();
+ 
+       icon_theme = IconTheme.get_default ();
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/ui-launcher-editor-dialog.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/ui-launcher-editor-dialog.vala	2024-12-23 11:55:08.169419257 +0100
+@@ -113,8 +113,8 @@ namespace DesktopAgnostic.UI
+       bool is_application = true;
+ 
+       // Action bar
+-      this.add_buttons (STOCK_CANCEL, ResponseType.CANCEL,
+-                        STOCK_SAVE, ResponseType.APPLY);
++      this.add_buttons (Gtk.Stock.CANCEL, ResponseType.CANCEL,
++                        Gtk.Stock.SAVE, ResponseType.APPLY);
+       this.set_default_response (ResponseType.CANCEL);
+       this.response.connect (this.on_response);
+ 
+@@ -133,7 +133,7 @@ namespace DesktopAgnostic.UI
+       }
+       else
+       {
+-        icon = STOCK_MISSING_IMAGE;
++        icon = Gtk.Stock.MISSING_IMAGE;
+       }
+       this._icon = new IconButton (icon);
+       this._icon.icon_selected.connect (this.on_icon_changed);
+@@ -219,7 +219,7 @@ namespace DesktopAgnostic.UI
+       this._exec.changed.connect (this.on_exec_changed);
+       exec_hbox.pack_start (this._exec, true);
+       exec_button = new Button.with_mnemonic (_ ("_Browse..."));
+-      exec_image = new Image.from_stock (STOCK_OPEN, IconSize.BUTTON);
++      exec_image = new Image.from_stock (Gtk.Stock.OPEN, IconSize.BUTTON);
+       exec_button.set_image (exec_image);
+       exec_button.clicked.connect (this.on_exec_browse);
+       exec_hbox.pack_start (exec_button, false);
+@@ -250,7 +250,7 @@ namespace DesktopAgnostic.UI
+       // make sure widgets are properly set up
+       on_type_changed (this._type_combo);
+ 
+-      List<unowned Widget> focus_chain_list = new List<unowned Widget> ();
++      List<Widget> focus_chain_list = new List<Widget> ();
+       focus_chain_list.append (this._type_combo);
+       focus_chain_list.append (this._name);
+       focus_chain_list.append (this._desc);
+@@ -325,8 +325,8 @@ namespace DesktopAgnostic.UI
+ 
+       dialog = new FileChooserDialog (title, this,
+                                       FileChooserAction.OPEN,
+-                                      STOCK_CANCEL, ResponseType.CANCEL,
+-                                      STOCK_OK, ResponseType.OK);
++                                      Gtk.Stock.CANCEL, ResponseType.CANCEL,
++                                      Gtk.Stock.OK, ResponseType.OK);
+       response = dialog.run ();
+       if (response == ResponseType.OK)
+       {
+@@ -359,8 +359,8 @@ namespace DesktopAgnostic.UI
+ 
+       dialog = new FileChooserDialog (_ ("Save As"), this,
+                                       FileChooserAction.SAVE,
+-                                      STOCK_CANCEL, ResponseType.CANCEL,
+-                                      STOCK_SAVE_AS, ResponseType.ACCEPT);
++                                      Gtk.Stock.CANCEL, ResponseType.CANCEL,
++                                      Gtk.Stock.SAVE_AS, ResponseType.ACCEPT);
+       response = dialog.run ();
+       if (response == ResponseType.ACCEPT)
+       {
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-file-impl-gio.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-file-impl-gio.vala	2024-12-24 13:00:15.620181801 +0100
+@@ -64,10 +64,10 @@ namespace DesktopAgnostic.VFS
+ 
+           try
+           {
+-            info = this._file.query_info (FILE_ATTRIBUTE_STANDARD_TYPE,
++            info = this._file.query_info (FileAttribute.STANDARD_TYPE,
+                                           FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
+                                           null);
+-            gft = (GLib.FileType)info.get_attribute_uint32 (FILE_ATTRIBUTE_STANDARD_TYPE);
++            gft = (GLib.FileType)info.get_attribute_uint32 (FileAttribute.STANDARD_TYPE);
+             switch (gft)
+             {
+               case GLib.FileType.REGULAR:
+@@ -112,20 +112,20 @@ namespace DesktopAgnostic.VFS
+           {
+             string attrs;
+ 
+-            attrs = "%s,%s,%s".printf (FILE_ATTRIBUTE_ACCESS_CAN_READ,
+-                                       FILE_ATTRIBUTE_ACCESS_CAN_WRITE,
+-                                       FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE);
++            attrs = "%s,%s,%s".printf (FileAttribute.ACCESS_CAN_READ,
++                                       FileAttribute.ACCESS_CAN_WRITE,
++                                       FileAttribute.ACCESS_CAN_EXECUTE);
+             info = this._file.query_info (attrs, FileQueryInfoFlags.NONE,
+                                           null);
+-            if (info.get_attribute_boolean (FILE_ATTRIBUTE_ACCESS_CAN_READ))
++            if (info.get_attribute_boolean (FileAttribute.ACCESS_CAN_READ))
+             {
+               flags |= AccessFlags.READ;
+             }
+-            if (info.get_attribute_boolean (FILE_ATTRIBUTE_ACCESS_CAN_WRITE))
++            if (info.get_attribute_boolean (FileAttribute.ACCESS_CAN_WRITE))
+             {
+               flags |= AccessFlags.WRITE;
+             }
+-            if (info.get_attribute_boolean (FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE))
++            if (info.get_attribute_boolean (FileAttribute.ACCESS_CAN_EXECUTE))
+             {
+               flags |= AccessFlags.EXECUTE;
+             }
+@@ -177,12 +177,16 @@ namespace DesktopAgnostic.VFS
+     public override bool
+     load_contents (out string contents, out size_t length) throws Error
+     {
+-      return this._file.load_contents (null, out contents, out length, null);
++      uint8[] temp;
++      bool ret = this._file.load_contents (null, out temp, null);
++      contents = (string)temp;
++      length = temp.length;
++      return ret;
+     }
+     public override bool
+     replace_contents (string contents) throws Error
+     {
+-      return this._file.replace_contents (contents, contents.size (), null,
++      return this._file.replace_contents (contents.data, null,
+                                           false, 0, null, null);
+     }
+     public override bool
+@@ -203,7 +207,7 @@ namespace DesktopAgnostic.VFS
+       FileInfo info;
+ 
+       children = new SList<File> ();
+-      enumerator = this._file.enumerate_children (FILE_ATTRIBUTE_STANDARD_NAME,
++      enumerator = this._file.enumerate_children (FileAttribute.STANDARD_NAME,
+                                                   FileQueryInfoFlags.NONE,
+                                                   null);
+       while ((info = enumerator.next_file (null)) != null)
+@@ -247,14 +251,14 @@ namespace DesktopAgnostic.VFS
+ 
+     public override string get_mime_type () throws Error
+     {
+-      var fi = this._file.query_info (FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
++      var fi = this._file.query_info (FileAttribute.STANDARD_CONTENT_TYPE,
+                                       0, null);
+       return fi.get_content_type ();
+     }
+ 
+     public override string[] get_icon_names () throws Error
+     {
+-      var fi = this._file.query_info (FILE_ATTRIBUTE_STANDARD_ICON,
++      var fi = this._file.query_info (FileAttribute.STANDARD_ICON,
+                                       0, null);
+       GLib.Icon icon = fi.get_icon ();
+       if (icon != null)
+@@ -291,11 +295,11 @@ namespace DesktopAgnostic.VFS
+     {
+       try
+       {
+-        var fi = this._file.query_info (FILE_ATTRIBUTE_THUMBNAIL_PATH,
++        var fi = this._file.query_info (FileAttribute.THUMBNAIL_PATH,
+                                         0, null);
+-        if (fi.has_attribute (FILE_ATTRIBUTE_THUMBNAIL_PATH))
++        if (fi.has_attribute (FileAttribute.THUMBNAIL_PATH))
+         {
+-          return fi.get_attribute_byte_string (FILE_ATTRIBUTE_THUMBNAIL_PATH);
++          return fi.get_attribute_byte_string (FileAttribute.THUMBNAIL_PATH);
+         }
+       }
+       catch (GLib.Error err)
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-file-monitor-impl-gio.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-file-monitor-impl-gio.vala	2024-12-24 07:24:21.912697139 +0100
+@@ -45,7 +45,7 @@ namespace DesktopAgnostic.VFS
+       {
+         this.monitor = impl.monitor_file (FileMonitorFlags.NONE, null);
+       }
+-      this.monitor.changed += this.monitor_callback;
++      this.monitor.changed.connect(this.monitor_callback);
+     }
+     private void monitor_callback (GLib.FileMonitor monitor, GLib.File file,
+                                    GLib.File? other,
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-trash-impl-gio.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-trash-impl-gio.vala	2024-12-24 07:25:03.925802868 +0100
+@@ -36,7 +36,7 @@ namespace DesktopAgnostic.VFS
+         critical ("trash is NULL!!!!");
+       }
+       this.monitor = this.trash.monitor ();
+-      this.monitor.changed += this.on_trash_changed;
++      this.monitor.changed.connect(this.on_trash_changed);
+       this._file_count = 0;
+       this.update_file_count ();
+     }
+@@ -62,7 +62,7 @@ namespace DesktopAgnostic.VFS
+     update_file_count ()
+     {
+       GLib.File dir = (GLib.File)this.trash.implementation;
+-      dir.query_info_async (FILE_ATTRIBUTE_TRASH_ITEM_COUNT,
++      dir.query_info_async (FileAttribute.TRASH_ITEM_COUNT,
+                             FileQueryInfoFlags.NONE,
+                             Priority.DEFAULT,
+                             null,
+@@ -78,7 +78,7 @@ namespace DesktopAgnostic.VFS
+       try
+       {
+         file_info = dir.query_info_async.end (res);
+-        this._file_count = file_info.get_attribute_uint32 (FILE_ATTRIBUTE_TRASH_ITEM_COUNT);
++        this._file_count = file_info.get_attribute_uint32 (FileAttribute.TRASH_ITEM_COUNT);
+         this.file_count_changed ();
+       }
+       catch (Error err)
+@@ -95,8 +95,8 @@ namespace DesktopAgnostic.VFS
+ 
+       try
+       {
+-        string attrs = FILE_ATTRIBUTE_STANDARD_NAME + "," +
+-                       FILE_ATTRIBUTE_STANDARD_TYPE;
++        string attrs = FileAttribute.STANDARD_NAME + "," +
++                       FileAttribute.STANDARD_TYPE;
+         files = dir.enumerate_children (attrs,
+                                         FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
+                                         null);
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs.vala	2024-12-24 13:30:57.133538800 +0100
+@@ -20,7 +20,6 @@
+  * Author : Mark Lee <libdesktop-agnostic at lazymalevolence.com>
+  */
+ 
+-[CCode (cheader_filename = "libdesktop-agnostic/vfs.h")]
+ namespace DesktopAgnostic.VFS
+ {
+   public interface Implementation : Object
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-volume-impl-gio.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-volume-impl-gio.vala	2024-12-24 07:23:51.422862317 +0100
+@@ -36,7 +36,7 @@ namespace DesktopAgnostic.VFS
+     }
+     public string name
+     {
+-      get
++      owned get
+       {
+         return this.vol.get_name ();
+       }
+@@ -142,7 +142,7 @@ namespace DesktopAgnostic.VFS
+     {
+       if (this._unmount_callback == null)
+       {
+-        unowned Mount? mount;
++        Mount? mount;
+         this._unmount_callback = callback;
+         mount = this.vol.get_mount ();
+         if (mount != null)
+@@ -217,10 +217,10 @@ namespace DesktopAgnostic.VFS
+         VFS.Volume vol = this.create_volume (gvol);
+         this._volumes.insert (gvol, vol);
+       }
+-      this.monitor.mount_added += this.on_mount_added;
+-      this.monitor.mount_removed += this.on_mount_removed;
+-      this.monitor.volume_added += this.on_volume_added;
+-      this.monitor.volume_removed += this.on_volume_removed;
++      this.monitor.mount_added.connect(this.on_mount_added);
++      this.monitor.mount_removed.connect(this.on_mount_removed);
++      this.monitor.volume_added.connect(this.on_volume_added);
++      this.monitor.volume_removed.connect(this.on_volume_removed);
+     }
+     private VFS.Volume
+     create_volume (GLib.Volume vol)
+@@ -292,7 +292,7 @@ namespace DesktopAgnostic.VFS
+         return (void*)this.monitor;
+       }
+     }
+-    public List<VFS.Volume> volumes
++    public List<weak VFS.Volume> volumes
+     {
+       owned get
+       {
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-volume.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/vfs-volume.vala	2024-12-23 14:15:34.533769722 +0100
+@@ -36,7 +36,7 @@ namespace DesktopAgnostic.VFS
+     /**
+      * The name of the volume.
+      */
+-    public abstract string name { get; }
++    public abstract string name { owned get; }
+     /**
+      * Usually, the mount point of the volume.
+      */
+@@ -61,7 +61,7 @@ namespace DesktopAgnostic.VFS
+   public interface VolumeMonitor : Object
+   {
+     public abstract void* implementation { get; }
+-    public abstract List<Volume> volumes { owned get; }
++    public abstract List<weak Volume> volumes { owned get; }
+     public abstract signal void volume_mounted (Volume volume);
+     public abstract signal void volume_unmounted (Volume volume);
+   }
+--- libdesktop-agnostic-0.3.92/python/configmodule.c.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/python/configmodule.c	2024-12-27 16:44:05.902356306 +0100
+@@ -21,7 +21,7 @@
+ #include "build-config.h"
+ #endif
+ 
+-#include <libdesktop-agnostic/config.h>
++#include <libdesktop-agnostic/desktop-agnostic-cfg.h>
+ 
+ #include <pygobject.h>
+ 
+--- libdesktop-agnostic-0.3.92/tests/test-vfs-file-monitor.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/tests/test-vfs-file-monitor.vala	2024-12-24 13:13:05.469344503 +0100
+@@ -86,7 +86,7 @@ class TestFileMonitor
+       unowned string path = args[1];
+       file = VFS.file_new_for_path (path);
+       monitor = file.monitor ();
+-      monitor.changed += on_change;
++      monitor.changed.connect(on_change);
+       MainLoop mainloop = new MainLoop (null, false);
+       if (args.length == 3 && file.file_type == VFS.FileType.DIRECTORY)
+       {
+--- libdesktop-agnostic-0.3.92/tests/test-vfs-trash.vala.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/tests/test-vfs-trash.vala	2024-12-24 13:13:28.469219902 +0100
+@@ -36,7 +36,7 @@ public class TestTrash
+     {
+       VFS.init ();
+       unowned VFS.Trash t = VFS.trash_get_default ();
+-      t.file_count_changed += on_file_count_changed;
++      t.file_count_changed.connect(on_file_count_changed);
+       mainloop = new MainLoop (null, true);
+       mainloop.run ();
+       VFS.shutdown ();
diff --git a/libdesktop-agnostic-waf.patch b/libdesktop-agnostic-waf.patch
new file mode 100644
index 0000000..09b36e7
--- /dev/null
+++ b/libdesktop-agnostic-waf.patch
@@ -0,0 +1,514 @@
+--- libdesktop-agnostic-0.3.92/data/wscript.orig	2024-12-23 11:22:38.613314242 +0100
++++ libdesktop-agnostic-0.3.92/data/wscript	2024-12-23 11:22:38.613314242 +0100
+@@ -1,12 +1,10 @@
+ #!/usr/bin/env python
+ # encoding: utf-8
+ 
+-import Options
+-import Utils
+-import misc
++from waflib import Options
+ 
+ 
+-def set_options(opt):
++def options(opt):
+     opt.add_option('--with-glade', action='store_true',
+                    dest='glade', default=False,
+                    help='Installs the Glade catalog for the ' \
+@@ -17,14 +15,13 @@ def configure(conf):
+     conf.env['GLADE_SUPPORT'] = Options.options.glade
+     if conf.env['GLADE_SUPPORT']:
+         conf.check_cfg(package='gladeui-2.0', uselib_store='GLADEUI',
+-                       mandatory=True, args='--cflags --libs')
+-        pkgconfig = 'pkg-config --variable catalogdir gladeui-2.0'
+-        conf.env['GLADEUI_CATALOGDIR'] = \
+-                Utils.cmd_output(pkgconfig, silent=1).strip()
++                       variables=['catalogdir'],
++                       mandatory=True)
++        conf.env['GLADEUI_CATALOGDIR'] = conf.env.GLADEUI_catalogdir
+ 
+ 
+ def build(bld):
+-    pc = bld.new_task_gen('subst')
++    pc = bld(features='subst')
+     pc.source = 'desktop-agnostic.pc.in'
+     pc.target = 'desktop-agnostic.pc'
+     pc.dict = {
+@@ -34,10 +31,9 @@ def build(bld):
+         'prefix': bld.env['PREFIX'],
+         'datarootdir': bld.env['DATADIR'],
+         }
+-    pc.fun = misc.subst_func
+     pc.install_path = '${LIBDIR}/pkgconfig'
+ 
+-    ini = bld.new_task_gen('subst')
++    ini = bld(features='subst')
+     ini.source = 'desktop-agnostic.ini.in'
+     ini.target = 'desktop-agnostic.ini'
+     ini.dict = {
+@@ -45,7 +41,6 @@ def build(bld):
+         'VFS_BACKEND': bld.env['BACKENDS_VFS'][0],
+         'DESKTOP_ENTRY_BACKEND': bld.env['BACKENDS_DE'][0],
+     }
+-    ini.fun = misc.subst_func
+     ini.install_path = '${SYSCONFDIR}/xdg/libdesktop-agnostic'
+ 
+     if bld.env['GLADE_SUPPORT']:
+--- libdesktop-agnostic-0.3.92/docs/wscript.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/docs/wscript	2024-12-23 11:22:38.613314242 +0100
+@@ -2,10 +2,10 @@
+ # encoding: utf-8
+ # vim: set ts=4 sts=4 sw=4 et :
+ 
+-import Options
++from waflib import Options
+ 
+ 
+-def set_options(opt):
++def options(opt):
+     opt.add_option('--enable-docs', action='store_true',
+                    dest='docs', default=False,
+                    help='Enables support for building the documentation '
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/wscript.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/libdesktop-agnostic/wscript	2024-12-28 12:51:02.730901167 +0100
+@@ -1,8 +1,8 @@
+ #! /usr/bin/env python
+ # encoding: utf-8
+ 
+-import Task
+-from TaskGen import feature, taskgen
++from waflib import Task
++from waflib.TaskGen import feature, taskgen_method
+ import os
+ 
+ deps = {
+@@ -19,6 +19,11 @@ deps = {
+             'packages_private': 'config-notify-delegate',
+         }
+     },
++    'cfg-type': {
++        'color': {
++            'uselib': 'GDK',
++        }
++    },
+     'vfs': {
+         'gio': {
+             'uselib': 'GIO',
+@@ -46,13 +51,13 @@ deps = {
+ }
+ 
+ 
+- at taskgen
+- at feature('cc')
++ at taskgen_method
++ at feature('c')
+ def generate_typelib(self):
+     if hasattr(self, 'gir'):
+         node = self.path.find_resource('%s.gir' % self.gir)
+         if not node:
+-            print "Not a valid GIR file!"
++            print("Not a valid GIR file!")
+             return
+         task = self.create_task('typelib')
+         bld = task.generator.bld
+@@ -69,14 +74,14 @@ def generate_typelib(self):
+ def create_typelib_task():
+     rule = 'LD_LIBRARY_PATH="${CURRENT_BUILD_DIR}" ${G_IR_COMPILER} ' + \
+            '-o ${TGT} ${SRC}'
+-    Task.simple_task_type('typelib', rule, after='cc_link')
++    Task.task_factory('typelib', rule, after='link_task')
+ 
+ create_typelib_task()
+ 
+ 
+ def task_module(type_name, src_prefix):
+     def build_module(bld, name):
+-        module = bld.new_task_gen('cc', 'shlib')
++        module = bld(features='c cshlib')
+         module.source = ' '.join(['%s-%s.vala' % (prefix, name)
+                                   for prefix in src_prefix.split()])
+         if type_name in deps and name in deps[type_name]:
+@@ -85,17 +90,18 @@ def task_module(type_name, src_prefix):
+             module.packages_private = deps[type_name][name] \
+                                       .get('packages_private', '')
+         ftype, sep, tail = type_name.partition('-')
+-        module.uselib_local = 'desktop-agnostic-%s' % ftype
++        module.use = 'desktop-agnostic-%s' % ftype
+         module.target = 'da-%s-%s' % (type_name, name)
+         module.vapi_dirs = '../vapi'
+-        module.includes = '..'
++        module.includes = '.. ../libdesktop-agnostic'
++        module.install_binding = False
+         module.install_path = None
+         bld.install_files('${LIBDIR}/desktop-agnostic/modules',
+-                          bld.env['shlib_PATTERN'] % module.target)
++                          bld.env['cshlib_PATTERN'] % module.target)
+     return build_module
+ 
+ 
+-def set_options(opt):
++def options(opt):
+     opt.add_option('--config-backends', type='string',
+                    help='Determines which configuration backend(s) will be ' \
+                         'built.',
+@@ -110,7 +116,7 @@ def set_options(opt):
+ 
+ 
+ def build(bld):
+-    lib = bld.new_task_gen('cc', 'shlib')
++    lib = bld(features='c cshlib')
+     lib.source = ' '.join([
+         'color.vala',
+         'module.vala',
+@@ -125,7 +131,7 @@ def build(bld):
+     lib.vapi_dirs = '../vapi'
+     lib.vnum = bld.env['VNUM']
+ 
+-    vfs = bld.new_task_gen('cc', 'shlib')
++    vfs = bld(features='c cshlib')
+     vfs.source = ' '.join([
+         'vfs.vala',
+         'vfs-bookmarks-gtk.vala',
+@@ -140,13 +146,14 @@ def build(bld):
+     vfs.header = 'vfs'
+     if bld.env['INTROSPECTION']:
+         vfs.gir = 'DesktopAgnosticVFS-1.0'
+-    vfs.uselib_local = 'desktop-agnostic'
++    vfs.use = 'desktop-agnostic'
++    vfs.uselib = 'GDK'
+     vfs.packages_private = 'posix-glob'
+     vfs.includes = '..'
+     vfs.vapi_dirs = '../vapi .'
+     vfs.vnum = bld.env['VNUM']
+ 
+-    cfg = bld.new_task_gen('cc', 'shlib')
++    cfg = bld(features='c cshlib')
+     cfg.source = ' '.join([
+         'config.vala',
+         'config-bridge.vala',
+@@ -160,13 +167,14 @@ def build(bld):
+     cfg.header = 'config'
+     if bld.env['INTROSPECTION']:
+         cfg.gir = 'DesktopAgnosticConfig-1.0'
+-    cfg.uselib_local = 'desktop-agnostic-vfs'
++    cfg.use = 'desktop-agnostic-vfs'
++    cfg.uselib = 'GDK'
+     cfg.packages_private = 'hashtable-gtype-key'
+-    cfg.includes = '..'
++    cfg.includes = '.. ../libdesktop-agnostic'
+     cfg.vapi_dirs = '../vapi .'
+     cfg.vnum = bld.env['VNUM']
+ 
+-    fdo = bld.new_task_gen('cc', 'shlib')
++    fdo = bld(features='c cshlib')
+     fdo.source = ' '.join([
+         'desktop-entry.vala',
+         ])
+@@ -175,12 +183,13 @@ def build(bld):
+     fdo.header = 'fdo'
+     if bld.env['INTROSPECTION']:
+         fdo.gir = 'DesktopAgnosticFDO-1.0'
+-    fdo.uselib_local = 'desktop-agnostic-vfs'
++    fdo.use = 'desktop-agnostic-vfs'
++    fdo.uselib = 'GDK'
+     fdo.vapi_dirs = '.'
+     fdo.includes = '..'
+     fdo.vnum = bld.env['VNUM']
+ 
+-    ui = bld.new_task_gen('cc', 'shlib')
++    ui = bld(features='c cshlib')
+     ui.source = ' '.join([
+         'ui-color-button.vala',
+         'ui-icon-button.vala',
+@@ -194,7 +203,7 @@ def build(bld):
+     if bld.env['INTROSPECTION']:
+         ui.gir = 'DesktopAgnosticUI-1.0'
+     ui.uselib = 'GTK'
+-    ui.uselib_local = 'desktop-agnostic-fdo'
++    ui.use = 'desktop-agnostic-fdo'
+     ui.vapi_dirs = '. ../vapi'
+     ui.includes = '..'
+     ui.vnum = bld.env['VNUM']
+@@ -210,12 +219,14 @@ def build(bld):
+     [task_module('fdo', 'desktop-entry-impl')(bld, name)
+      for name in bld.env['BACKENDS_DE']]
+ 
+-    mod_guess = bld.new_task_gen('cc', 'shlib')
++    mod_guess = bld(features='c cshlib')
+     mod_guess.source = 'module-guesser.vala'
+-    mod_guess.uselib_local = 'desktop-agnostic-vfs'
++    mod_guess.use = 'desktop-agnostic-vfs'
++    mod_guess.uselib = 'GTK'
+     mod_guess.target = 'da-module-guesser'
+     mod_guess.vapi_dirs = '../vapi'
+     mod_guess.includes = '..'
++    mod_guess.install_binding = False
+     mod_guess.install_path = None
+     bld.install_files('${LIBDIR}/desktop-agnostic/modules',
+-                      bld.env['shlib_PATTERN'] % mod_guess.target)
++                      bld.env['cshlib_PATTERN'] % mod_guess.target)
+--- libdesktop-agnostic-0.3.92/po/wscript.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/po/wscript	2024-12-23 11:22:38.613314242 +0100
+@@ -3,4 +3,4 @@
+ 
+ 
+ def build(bld):
+-    bld.new_task_gen(features='intltool_po', appname='libdesktop-agnostic')
++    bld(features='intltool_po', appname='libdesktop-agnostic')
+--- libdesktop-agnostic-0.3.92/python/wscript.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/python/wscript	2024-12-27 16:40:24.123254470 +0100
+@@ -4,10 +4,8 @@
+ # PyGObject bindings generator (until the gi module is stable)
+ # copied/modified from gnome-python-desktop
+ 
+-import Task
+-from TaskGen import extension
+-import Utils
+-import misc
++from waflib import Task
++from waflib.TaskGen import extension
+ import os
+ import types
+ 
+@@ -23,21 +21,21 @@ def configure(conf):
+         if not conf.find_program('pygtk-codegen-2.0', var='CODEGEN'):
+             conf.fatal('Could not find the PyGObject/PyGTK code generator ' \
+                        'script')
+-    pkgconfig = 'pkg-config --variable defsdir pygtk-2.0'
+-    conf.env['PYGTK_DEFSDIR'] = Utils.cmd_output(pkgconfig, silent=1).strip()
++    conf.check_cfg(package='pygtk-2.0', variables=['defsdir'], uselib_store='PYGTK')
++    conf.env['PYGTK_DEFSDIR'] = conf.env.PYGTK_defsdir
+     conf.check_cfg(package='pygobject-2.0', uselib_store='PYGLIB',
+                    atleast_version='2.15.2')
+ 
+ 
+ def run_pyg_codegen(self):
+     # stolen from TaskGen.exec_rule
+-    func, func_vars = Task.compile_fun('', self.generator.rule,
++    func, func_vars = Task.compile_fun(self.generator.rule,
+                                        shell=getattr(self.generator, 'shell',
+                                                      True))
+     func.code = self.generator.rule
+     func(self)
+ 
+-Task.task_type_from_func('pyg_codegen', run_pyg_codegen, ext_out='.c')
++Task.task_factory('pyg_codegen', run_pyg_codegen, ext_out='.c')
+ 
+ 
+ @extension('.defs')
+@@ -53,10 +51,10 @@ def defs_hook(self, node):
+     for load in getattr(self, 'local_load_types', ()):
+         sources += [node.parent.find_resource(load)]
+         rule += ['--load-types',
+-                 '${SRC[%i].abspath(env)}' % (len(sources) - 1)]
++                 '${SRC[%i].abspath()}' % (len(sources) - 1)]
+     for reg in getattr(self, 'local_register', ()):
+         sources += [node.parent.find_resource(reg)]
+-        rule += ['--register', '${SRC[%i].abspath(env)}' % (len(sources) - 1)]
++        rule += ['--register', '${SRC[%i].abspath()}' % (len(sources) - 1)]
+     for reg in getattr(self, 'register', ()):
+         rule += ['--register', reg]
+     if hasattr(self, 'prefix'):
+@@ -72,11 +70,11 @@ def defs_hook(self, node):
+     task.inputs = sources
+     task.outputs = [c_node]
+ 
+-    self.allnodes.append(c_node)
++    # self.allnodes.append(c_node)
+ 
+ 
+ def pyg_module(bld, module, dependencies, prefix=None, local_register=None):
+-    pyext = bld.new_task_gen('cc', 'shlib', 'pyext')
++    pyext = bld(features='c cshlib pyext')
+     pyext.source = '%s.defs %smodule.c' % (module, module)
+     pyext.target = module
+     if prefix is not None:
+@@ -115,13 +113,12 @@ def build(bld):
+         pyext = bld.pyg_module(module, 'desktop-agnostic-%s' % dep,
+                                'pydesktopagnostic_%s' % module, lr)
+ 
+-    init = bld.new_task_gen('subst')
++    init = bld(features='subst')
+     init.source = '__init__.py.in'
+     init.target = '__init__.py'
+     init.dict = {
+         'VERSION': bld.env['VERSION'],
+     }
+-    init.fun = misc.subst_func
+     init.install_path = '${PYTHONDIR}/desktopagnostic'
+ 
+ # vim: set ts=4 sts=4 sw=4 et :
+--- libdesktop-agnostic-0.3.92/tests/wscript.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/tests/wscript	2024-12-27 16:47:56.951346123 +0100
+@@ -1,19 +1,21 @@
+ #!/usr/bin/python
+ # encoding: utf-8
+ 
+-NEEDS_GDK = ['test-desktop-entry', 'test-vfs-file']
++NEEDS_GDK = ['test-desktop-entry', 'test-vfs-file', 'test-color']
+ 
+ 
+-def build_test_program(bld, name, suffix):
+-    test = bld.new_task_gen('cc', 'program')
++def build_test_program(bld, name, suffix, uselib=''):
++    test = bld(features='c')
+     test.source = name + '.vala'
++    test.uselib = uselib
++    test.install_binding = False
+     if name in NEEDS_GDK:
+         test.packages = 'gdk-2.0'
+-        test.uselib = 'GDK'
++        test.uselib += ' GDK'
+     if suffix == '':
+-        test.uselib_local = 'desktop-agnostic'
++        test.use = 'desktop-agnostic'
+     else:
+-        test.uselib_local = 'desktop-agnostic-%s' % suffix
++        test.use = 'desktop-agnostic-%s' % suffix
+     test.vapi_dirs = '../libdesktop-agnostic'
+     test.includes = '..'
+     test.target = name
+@@ -28,5 +30,5 @@ def build(bld):
+     [build_test_program(bld, 'test-' + name, 'vfs')
+      for name in ['vfs-bookmarks-gtk', 'vfs-file', 'vfs-file-monitor',
+                   'vfs-glob', 'vfs-trash', 'vfs-volume']]
+-    [build_test_program(bld, 'test-' + name, 'ui')
++    [build_test_program(bld, 'test-' + name, 'ui', uselib='GTK')
+      for name in ['ui-color-button', 'ui-color-button-gtkbuilder']]
+--- libdesktop-agnostic-0.3.92/tools/wscript.orig	2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92/tools/wscript	2024-12-27 16:49:12.047235958 +0100
+@@ -4,15 +4,19 @@
+ 
+ def build(bld):
+     if 'gconf' in bld.env['BACKENDS_CFG']:
+-        schema = bld.new_task_gen('cc', 'program')
++        schema = bld(features='c cprogram')
+         schema.source = 'lda-schema-to-gconf.vala'
+-        schema.uselib_local = 'desktop-agnostic-cfg'
++        schema.use = 'desktop-agnostic-cfg'
++        schema.uselib = 'GDK'
+         schema.vapi_dirs = '../libdesktop-agnostic'
++        schema.includes = '..'
+         schema.target = 'lda-schema-to-gconf'
+-    launcher = bld.new_task_gen('cc', 'program')
++    launcher = bld(features='c cprogram')
+     launcher.source = 'lda-desktop-entry-editor.vala'
+     launcher.packages = 'desktop-agnostic-ui'
+     launcher.packages_private = 'build'
+-    launcher.uselib_local = 'desktop-agnostic-ui'
++    launcher.use = 'desktop-agnostic-ui'
++    launcher.uselib = 'GTK'
+     launcher.vapi_dirs = '../libdesktop-agnostic ../vapi'
++    launcher.includes = '..'
+     launcher.target = 'lda-desktop-entry-editor'
+--- libdesktop-agnostic-0.3.92/wscript.orig	2011-03-13 16:09:47.000000000 +0100
++++ libdesktop-agnostic-0.3.92/wscript	2024-12-23 11:22:38.616647557 +0100
+@@ -1,16 +1,12 @@
+ #! /usr/bin/env python
+ # encoding: utf-8
+ 
+-import intltool
+-import Options
+ import os
+-import Scripting
+ import shutil
+ import sys
+-import Utils
+ import tarfile
+-import Task
+ import tempfile
++from waflib import Context, Options, Scripting, Task, Utils
+ 
+ API_VERSION = '1.0'
+ 
+@@ -56,10 +52,10 @@ blddir = 'build'
+ config_backend = None
+ 
+ 
+-def set_options(opt):
+-    [opt.tool_options(x) for x in ['compiler_cc', 'gnu_dirs']]
+-    opt.sub_options('data docs')
+-    opt.sub_options('libdesktop-agnostic')
++def options(opt):
++    [opt.load(x) for x in ['compiler_c', 'gnu_dirs']]
++    opt.recurse('data docs')
++    opt.recurse('libdesktop-agnostic')
+     opt.add_option('--enable-debug', action='store_true',
+                    dest='debug', default=False,
+                    help='Enables the library to be built with debug symbols.')
+@@ -75,7 +71,7 @@ def set_options(opt):
+ 
+ 
+ def configure(conf):
+-    print 'Configuring %s %s' % (APPNAME, VERSION)
++    print ('Configuring %s %s' % (APPNAME, VERSION))
+ 
+     if len(Options.options.config_backends) == 0:
+         conf.fatal('At least one configuration backend needs to be built.')
+@@ -93,8 +89,8 @@ def configure(conf):
+     conf.env['INTROSPECTION'] = not Options.options.no_gi
+     conf.env['VNUM'] = str(VNUM)
+ 
+-    conf.check_tool('gnu_dirs')
+-    conf.check_tool('compiler_cc intltool misc python vala')
++    conf.load('gnu_dirs')
++    conf.load('compiler_c intltool python vala')
+ 
+     MIN_VALA_VERSION = (0, 10, 0)
+ 
+@@ -152,16 +148,17 @@ version %d.%d.%d''' % ((str(conf.env['VA
+     # check for gobject-introspection
+     conf.check_cfg(package='gobject-introspection-1.0',
+                    atleast_version='0.6.3', mandatory=True,
++                   variables=['g_ir_compiler'], uselib_store='GI',
+                    args='--cflags --libs')
+     pkgconfig = 'pkg-config --variable g_ir_compiler ' \
+                 'gobject-introspection-1.0'
+-    conf.env['G_IR_COMPILER'] = Utils.cmd_output(pkgconfig, silent=1).strip()
++    conf.env['G_IR_COMPILER'] = conf.env.GI_g_r_compiler
+ 
+-    conf.sub_config('data')
+-    conf.sub_config('docs')
++    conf.recurse('data')
++    conf.recurse('docs')
+ 
+     # manual Python bindings
+-    conf.sub_config('python')
++    conf.recurse('python')
+ 
+     conf.define('API_VERSION', str(API_VERSION))
+     conf.define('VERSION', str(VERSION))
+@@ -189,12 +186,12 @@ version %d.%d.%d''' % ((str(conf.env['VA
+ 
+ def build(bld):
+     # process subfolders from here
+-    bld.add_subdirs('libdesktop-agnostic tools tests data python docs')
++    bld.recurse('libdesktop-agnostic tools tests data python docs')
+ 
+     if bld.env['INTLTOOL']:
+-        bld.add_subdirs('po')
++        bld.recurse('po')
+ 
+-    cls = Task.TaskBase.classes['valac']
++    cls = Task.classes['valac']
+     old = cls.run
+ 
+     def run(self):
+@@ -207,7 +204,7 @@ def build(bld):
+             d = bld.path.abspath()
+             latest_input = 0
+             for x in self.inputs:
+-                timestamp = os.path.getmtime(x.abspath(self.env))
++                timestamp = os.path.getmtime(x.abspath())
+                 if timestamp > latest_input:
+                     latest_input = timestamp
+             # we need two passes to check that we have up-to-date C sources
+@@ -224,7 +221,7 @@ def build(bld):
+             for x in self.outputs:
+                 subdir = x.parent.path_to_parent(x.__class__.bld.srcnode)
+                 src = os.path.join(d, GEN_SRC_DIR, subdir, x.name)
+-                shutil.copy2(src, x.abspath(self.env))
++                shutil.copy2(src, x.abspath())
+             return 0
+     cls.run = run
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libdesktop-agnostic.git/commitdiff/5496b3e9a8763f97770039b6becde11830766de5




More information about the pld-cvs-commit mailing list