I'm not really keen to merge this. maintaining multiple versions of GTK is not a fun thing to do and this is a rather invasive change that doesn't exist anywhere else. Perhaps someone else from @voidlinux/pkg-committers will see things differently.
Just to be complete, another porribility:
In Debian 9 Stretch they have [volumeicon-alsa](https://packages.debian.org/stretch/volumeicon-alsa) version 0.4.6 for GTK2.
They use this little patch:
````
Description: Including individual glib headers no longer supported
Author: Michael Biebl <biebl@debian.org>
Index: volumeicon-0.4.6/src/alsa_backend.c
==================================================================
--- volumeicon-0.4.6.orig/src/alsa_backend.c 2011-10-25 15:35:10.000000000 +0200
+++ volumeicon-0.4.6/src/alsa_backend.c 2012-12-16 07:23:51.568024692 +0100
@@ -22,10 +22,8 @@
//##############################################################################
#include <alsa/asoundlib.h>
-#include <glib/gstring.h>
+#include <glib.h>
#include <glib/gstdio.h>
-#include <glib/glist.h>
-#include <glib/giochannel.h>
#include "alsa_backend.h"
Index: volumeicon-0.4.6/src/oss_backend.c
===================================================================
--- volumeicon-0.4.6.orig/src/oss_backend.c 2011-11-09 12:37:18.000000000 +0100
+++ volumeicon-0.4.6/src/oss_backend.c 2012-12-16 07:23:51.708026103 +0100
@@ -26,10 +26,8 @@
#include <fcntl.h>
#include <assert.h>
#include <stdlib.h>
-#include <glib/gstring.h>
+#include <glib.h>
#include <glib/gstdio.h>
-#include <glib/glist.h>
-#include <glib/giochannel.h>
#include "oss_backend.h"
````
Tested on my system. I think it works, but I am not an expert, of course...
If you are not happy with that it's ok, no problem! ;)