From 7da8b87b01c6f8dc361d17b6e3bf513f295cf578 Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@gmail.com>
Date: Fri, 12 Apr 2013 15:11:12 +0200
Subject: [PATCH] Convert packages to the new template format (g).

---
 srcpkgs/gkrellm/template                      |  6 ++
 srcpkgs/glibc/glibc-devel.template            | 11 ---
 srcpkgs/glibc/glibc-locales.template          | 11 ---
 srcpkgs/glibc/nscd.template                   | 13 ---
 srcpkgs/glibc/template                        | 85 +++++++++++++++----
 srcpkgs/glibc32/glibc32-devel.template        | 14 ---
 srcpkgs/glibc32/template                      | 27 ++++--
 srcpkgs/glibmm/glibmm-devel.template          | 12 ---
 srcpkgs/glibmm/template                       | 19 ++++-
 srcpkgs/glm/template                          | 10 ++-
 srcpkgs/glproto/template                      |  8 +-
 srcpkgs/glu/glu-devel.template                | 14 ---
 srcpkgs/glu/template                          | 19 ++++-
 srcpkgs/gmime/gmime-devel.template            | 12 ---
 srcpkgs/gmime/template                        | 18 +++-
 srcpkgs/gnac/template                         | 18 ++--
 srcpkgs/gnome-backgrounds/template            |  8 +-
 .../gnome-bluetooth-devel.template            | 11 ---
 srcpkgs/gnome-bluetooth/template              | 20 ++++-
 srcpkgs/gnome-boxes/template                  | 10 ++-
 srcpkgs/gnome-calculator/template             | 13 ++-
 srcpkgs/gnome-clocks/template                 | 11 ++-
 srcpkgs/gnome-color-manager/template          | 13 ++-
 srcpkgs/gnome-common/template                 | 11 ++-
 srcpkgs/gnome-contacts/template               |  8 +-
 srcpkgs/gnome-control-center/template         | 14 +--
 .../gnome-desktop-devel.template              | 12 ---
 srcpkgs/gnome-desktop/template                | 25 +++++-
 srcpkgs/gnome-dictionary/template             | 16 ++--
 srcpkgs/gnome-disk-utility/template           |  8 +-
 srcpkgs/gnome-doc-utils/template              | 21 +++--
 srcpkgs/gnome-documents/template              |  8 +-
 srcpkgs/gnome-font-viewer/template            | 10 ++-
 srcpkgs/gnome-icon-theme-extras/template      | 11 ++-
 srcpkgs/gnome-icon-theme-symbolic/template    | 12 ++-
 srcpkgs/gnome-icon-theme/template             |  8 +-
 srcpkgs/gnome-initial-setup/template          | 10 ++-
 srcpkgs/gnome-js-common/template              | 13 ++-
 srcpkgs/gnome-keyring/template                | 10 ++-
 .../gnome-menus/gnome-menus-devel.template    | 10 ---
 srcpkgs/gnome-menus/template                  | 17 +++-
 srcpkgs/gnome-mime-data/template              | 22 +++--
 .../gnome-online-accounts-devel.template      | 10 ---
 srcpkgs/gnome-online-accounts/template        | 19 ++++-
 srcpkgs/gnome-power-manager/template          |  8 +-
 srcpkgs/gnome-screenshot/template             |  8 +-
 srcpkgs/gnome-session/template                | 10 ++-
 .../gnome-settings-daemon-devel.template      |  9 --
 srcpkgs/gnome-settings-daemon/template        | 18 +++-
 .../gnome-shell-extension-weather/template    | 10 ++-
 srcpkgs/gnome-shell/template                  | 12 ++-
 srcpkgs/gnome-system-log/template             |  8 +-
 srcpkgs/gnome-system-monitor/template         | 11 ++-
 srcpkgs/gnome-terminal/template               | 10 ++-
 srcpkgs/gnome-themes-standard/template        |  8 +-
 srcpkgs/gnome-tweak-tool/template             | 14 ++-
 srcpkgs/gnome-user-docs/template              | 11 ++-
 srcpkgs/gnome-video-effects/template          | 10 ++-
 srcpkgs/gnome/template                        | 11 ++-
 srcpkgs/gnote/template                        |  6 ++
 srcpkgs/gnupg/template                        |  5 ++
 srcpkgs/gnutls/gnutls-devel.template          | 13 ---
 srcpkgs/gnutls/gnutls-tools.template          |  8 --
 srcpkgs/gnutls/template                       | 29 ++++++-
 srcpkgs/go/template                           | 11 ++-
 .../gir-freedesktop.template                  | 14 ---
 .../libgirepository-devel.template            | 10 ---
 .../libgirepository.template                  |  8 --
 srcpkgs/gobject-introspection/template        | 41 +++++++--
 srcpkgs/gource/template                       |  6 ++
 srcpkgs/gparted/template                      |  8 +-
 srcpkgs/gpgme/gpgme-devel.template            | 13 ---
 srcpkgs/gpgme/template                        | 28 ++++--
 srcpkgs/gpicview/template                     |  8 +-
 srcpkgs/gptfdisk/template                     |  6 ++
 srcpkgs/granite/granite-devel.template        | 11 ---
 srcpkgs/granite/template                      | 21 ++++-
 srcpkgs/graphviz/graphviz-devel.template      | 14 ---
 srcpkgs/graphviz/graphviz-libs.template       | 13 ---
 srcpkgs/graphviz/template                     | 28 +++++-
 srcpkgs/grep/template                         |  8 +-
 srcpkgs/grilo-plugins/template                |  6 ++
 srcpkgs/grilo/grilo-devel.template            | 11 ---
 srcpkgs/grilo/template                        | 18 +++-
 srcpkgs/groff/groff-doc.template              |  8 --
 srcpkgs/groff/template                        | 16 +++-
 srcpkgs/grub/grub-x86_64-efi.template         |  9 --
 srcpkgs/grub/template                         | 35 +++++---
 srcpkgs/gsasl/gsasl-devel.template            | 14 ---
 srcpkgs/gsasl/libgsasl.template               | 11 ---
 srcpkgs/gsasl/template                        | 26 +++++-
 .../gsettings-desktop-schemas-devel.template  | 10 ---
 srcpkgs/gsettings-desktop-schemas/template    | 17 +++-
 srcpkgs/gsfonts/template                      | 18 ++--
 srcpkgs/gsl/gsl-devel.template                | 16 ----
 srcpkgs/gsl/template                          | 18 +++-
 srcpkgs/gssdp/gssdp-devel.template            | 12 ---
 srcpkgs/gssdp/template                        | 19 ++++-
 srcpkgs/gst-ffmpeg/template                   |  6 ++
 srcpkgs/gst-libav/template                    |  6 ++
 .../gst-plugins-bad-devel.template            | 13 ---
 srcpkgs/gst-plugins-bad/template              | 32 +++++--
 .../gst-plugins-bad1-devel.template           | 11 ---
 srcpkgs/gst-plugins-bad1/template             | 19 ++++-
 .../gst-plugins-base-devel.template           | 18 ----
 srcpkgs/gst-plugins-base/template             | 22 ++++-
 .../gst-plugins-base1-devel.template          | 15 ----
 srcpkgs/gst-plugins-base1/template            | 22 ++++-
 srcpkgs/gst-plugins-good/template             |  6 ++
 srcpkgs/gst-plugins-good1/template            |  8 +-
 srcpkgs/gst-plugins-ugly/template             |  6 ++
 srcpkgs/gst-plugins-ugly1/template            |  6 ++
 srcpkgs/gst-python/gst-python-devel.template  | 14 ---
 srcpkgs/gst-python/template                   | 22 ++++-
 srcpkgs/gst123/template                       | 10 ++-
 .../gstreamer-vaapi-devel.template            | 13 ---
 srcpkgs/gstreamer-vaapi/template              | 20 ++++-
 srcpkgs/gstreamer/gstreamer-devel.template    | 17 ----
 srcpkgs/gstreamer/template                    | 25 +++++-
 srcpkgs/gstreamer1/gstreamer1-devel.template  | 16 ----
 srcpkgs/gstreamer1/template                   | 21 ++++-
 srcpkgs/gtk+/gtk+-demo.template               |  8 --
 srcpkgs/gtk+/gtk+-devel.template              | 14 ---
 srcpkgs/gtk+/gtk-update-icon-cache.template   | 11 ---
 srcpkgs/gtk+/template                         | 51 +++++++++--
 srcpkgs/gtk+3/gtk+3-demo.template             | 10 ---
 srcpkgs/gtk+3/gtk+3-devel.template            | 16 ----
 srcpkgs/gtk+3/template                        | 41 +++++++--
 srcpkgs/gtk-doc/template                      | 12 ++-
 srcpkgs/gtk-theme-config/template             |  8 +-
 srcpkgs/gtk-vnc/gtk-vnc-devel.template        | 12 ---
 srcpkgs/gtk-vnc/gtk2-vnc-devel.template       | 12 ---
 srcpkgs/gtk-vnc/gtk2-vnc-python.template      |  7 --
 srcpkgs/gtk-vnc/gtk2-vnc.template             |  8 --
 srcpkgs/gtk-vnc/template                      | 46 +++++++++-
 srcpkgs/gtk-xfce-engine/template              |  6 ++
 srcpkgs/gtk2-engines/template                 |  6 ++
 srcpkgs/gtkaml/gtkaml-devel.template          | 10 ---
 srcpkgs/gtkaml/libgtkaml.template             |  7 --
 srcpkgs/gtkaml/template                       | 27 +++++-
 srcpkgs/gtkdialog/template                    |  8 +-
 srcpkgs/gtkhtml/gtkhtml-devel.template        | 10 ---
 srcpkgs/gtkhtml/libgtkhtml.template           |  7 --
 srcpkgs/gtkhtml/template                      | 30 ++++++-
 srcpkgs/gtkmm/gtkmm-devel.template            | 11 ---
 srcpkgs/gtkmm/template                        | 18 +++-
 srcpkgs/gtkmm2/gtkmm2-devel.template          | 15 ----
 srcpkgs/gtkmm2/template                       | 19 ++++-
 .../gtksourceview-devel.template              | 11 ---
 srcpkgs/gtksourceview/template                | 18 +++-
 .../gtksourceview2-devel.template             | 15 ----
 srcpkgs/gtksourceview2/template               | 19 ++++-
 .../gtksourceviewmm-devel.template            | 15 ----
 srcpkgs/gtksourceviewmm/template              | 19 ++++-
 srcpkgs/gtkspell/gtkspell-devel.template      | 14 ---
 srcpkgs/gtkspell/template                     | 19 ++++-
 srcpkgs/gucharmap/gucharmap-devel.template    | 10 ---
 srcpkgs/gucharmap/template                    | 21 ++++-
 srcpkgs/gupnp-av/gupnp-av-devel.template      | 10 ---
 srcpkgs/gupnp-av/template                     | 17 +++-
 srcpkgs/gupnp-dlna/gupnp-dlna-devel.template  | 12 ---
 srcpkgs/gupnp-dlna/template                   | 19 ++++-
 srcpkgs/gupnp-igd/gupnp-igd-devel.template    | 14 ---
 srcpkgs/gupnp-igd/template                    | 19 ++++-
 srcpkgs/gupnp/gupnp-devel.template            | 11 ---
 srcpkgs/gupnp/template                        | 18 +++-
 srcpkgs/gvfs/gvfs-devel.template              |  8 --
 srcpkgs/gvfs/template                         | 16 +++-
 srcpkgs/gzip/template                         |  8 +-
 169 files changed, 1481 insertions(+), 999 deletions(-)
 delete mode 100644 srcpkgs/glibc/glibc-devel.template
 delete mode 100644 srcpkgs/glibc/glibc-locales.template
 delete mode 100644 srcpkgs/glibc/nscd.template
 delete mode 100644 srcpkgs/glibc32/glibc32-devel.template
 delete mode 100644 srcpkgs/glibmm/glibmm-devel.template
 delete mode 100644 srcpkgs/glu/glu-devel.template
 delete mode 100644 srcpkgs/gmime/gmime-devel.template
 delete mode 100644 srcpkgs/gnome-bluetooth/gnome-bluetooth-devel.template
 delete mode 100644 srcpkgs/gnome-desktop/gnome-desktop-devel.template
 delete mode 100644 srcpkgs/gnome-menus/gnome-menus-devel.template
 delete mode 100644 srcpkgs/gnome-online-accounts/gnome-online-accounts-devel.template
 delete mode 100644 srcpkgs/gnome-settings-daemon/gnome-settings-daemon-devel.template
 delete mode 100644 srcpkgs/gnutls/gnutls-devel.template
 delete mode 100644 srcpkgs/gnutls/gnutls-tools.template
 delete mode 100644 srcpkgs/gobject-introspection/gir-freedesktop.template
 delete mode 100644 srcpkgs/gobject-introspection/libgirepository-devel.template
 delete mode 100644 srcpkgs/gobject-introspection/libgirepository.template
 delete mode 100644 srcpkgs/gpgme/gpgme-devel.template
 delete mode 100644 srcpkgs/granite/granite-devel.template
 delete mode 100644 srcpkgs/graphviz/graphviz-devel.template
 delete mode 100644 srcpkgs/graphviz/graphviz-libs.template
 delete mode 100644 srcpkgs/grilo/grilo-devel.template
 delete mode 100644 srcpkgs/groff/groff-doc.template
 delete mode 100644 srcpkgs/grub/grub-x86_64-efi.template
 delete mode 100644 srcpkgs/gsasl/gsasl-devel.template
 delete mode 100644 srcpkgs/gsasl/libgsasl.template
 delete mode 100644 srcpkgs/gsettings-desktop-schemas/gsettings-desktop-schemas-devel.template
 delete mode 100644 srcpkgs/gsl/gsl-devel.template
 delete mode 100644 srcpkgs/gssdp/gssdp-devel.template
 delete mode 100644 srcpkgs/gst-plugins-bad/gst-plugins-bad-devel.template
 delete mode 100644 srcpkgs/gst-plugins-bad1/gst-plugins-bad1-devel.template
 delete mode 100644 srcpkgs/gst-plugins-base/gst-plugins-base-devel.template
 delete mode 100644 srcpkgs/gst-plugins-base1/gst-plugins-base1-devel.template
 delete mode 100644 srcpkgs/gst-python/gst-python-devel.template
 delete mode 100644 srcpkgs/gstreamer-vaapi/gstreamer-vaapi-devel.template
 delete mode 100644 srcpkgs/gstreamer/gstreamer-devel.template
 delete mode 100644 srcpkgs/gstreamer1/gstreamer1-devel.template
 delete mode 100644 srcpkgs/gtk+/gtk+-demo.template
 delete mode 100644 srcpkgs/gtk+/gtk+-devel.template
 delete mode 100644 srcpkgs/gtk+/gtk-update-icon-cache.template
 delete mode 100644 srcpkgs/gtk+3/gtk+3-demo.template
 delete mode 100644 srcpkgs/gtk+3/gtk+3-devel.template
 delete mode 100644 srcpkgs/gtk-vnc/gtk-vnc-devel.template
 delete mode 100644 srcpkgs/gtk-vnc/gtk2-vnc-devel.template
 delete mode 100644 srcpkgs/gtk-vnc/gtk2-vnc-python.template
 delete mode 100644 srcpkgs/gtk-vnc/gtk2-vnc.template
 delete mode 100644 srcpkgs/gtkaml/gtkaml-devel.template
 delete mode 100644 srcpkgs/gtkaml/libgtkaml.template
 delete mode 100644 srcpkgs/gtkhtml/gtkhtml-devel.template
 delete mode 100644 srcpkgs/gtkhtml/libgtkhtml.template
 delete mode 100644 srcpkgs/gtkmm/gtkmm-devel.template
 delete mode 100644 srcpkgs/gtkmm2/gtkmm2-devel.template
 delete mode 100644 srcpkgs/gtksourceview/gtksourceview-devel.template
 delete mode 100644 srcpkgs/gtksourceview2/gtksourceview2-devel.template
 delete mode 100644 srcpkgs/gtksourceviewmm/gtksourceviewmm-devel.template
 delete mode 100644 srcpkgs/gtkspell/gtkspell-devel.template
 delete mode 100644 srcpkgs/gucharmap/gucharmap-devel.template
 delete mode 100644 srcpkgs/gupnp-av/gupnp-av-devel.template
 delete mode 100644 srcpkgs/gupnp-dlna/gupnp-dlna-devel.template
 delete mode 100644 srcpkgs/gupnp-igd/gupnp-igd-devel.template
 delete mode 100644 srcpkgs/gupnp/gupnp-devel.template
 delete mode 100644 srcpkgs/gvfs/gvfs-devel.template

diff --git a/srcpkgs/gkrellm/template b/srcpkgs/gkrellm/template
index 5f593e427b..c03690a68e 100644
--- a/srcpkgs/gkrellm/template
+++ b/srcpkgs/gkrellm/template
@@ -36,3 +36,9 @@ long_desc="
   * And a lot more..."
 
 LDFLAGS="-lgmodule-2.0"
+
+gkrellm_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/glibc/glibc-devel.template b/srcpkgs/glibc/glibc-devel.template
deleted file mode 100644
index ec3571663c..0000000000
--- a/srcpkgs/glibc/glibc-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'glibc-devel'.
-#
-depends="kernel-libc-headers glibc>=${version}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove "usr/lib/*.a" usr/lib
-	vmove "usr/lib/*crt1.o" usr/lib
-	vmove usr/share/info usr/share
-}
diff --git a/srcpkgs/glibc/glibc-locales.template b/srcpkgs/glibc/glibc-locales.template
deleted file mode 100644
index 2894b92def..0000000000
--- a/srcpkgs/glibc/glibc-locales.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'glibc-locales'.
-#
-noarch=yes
-conf_files="/etc/default/libc-locales"
-short_desc="${short_desc} -- locales"
-
-do_install() {
-	vmove etc/default etc
-	vmove usr/share/i18n usr/share
-	vmove usr/share/locale usr/share
-}
diff --git a/srcpkgs/glibc/nscd.template b/srcpkgs/glibc/nscd.template
deleted file mode 100644
index 4d03b43e2a..0000000000
--- a/srcpkgs/glibc/nscd.template
+++ /dev/null
@@ -1,13 +0,0 @@
-# Template file for 'nscd'.
-#
-systemd_services="nscd.service on"
-conf_files="/etc/nscd.conf"
-short_desc="${short_desc} -- Name Service Cache Daemon"
-
-do_install() {
-	vmove usr/sbin/nscd usr/sbin
-	vinstall ${FILESDIR}/nscd.service 644 usr/lib/systemd/system
-	vinstall ${FILESDIR}/nscd.socket 644 usr/lib/systemd/system
-	vinstall ${FILESDIR}/nscd.tmpfiles.d 644 usr/lib/tmpfiles.d nscd.conf
-	vinstall ${FILESDIR}/nscd.conf 644 etc
-}
diff --git a/srcpkgs/glibc/template b/srcpkgs/glibc/template
index a62bd636f8..d150b5dd44 100644
--- a/srcpkgs/glibc/template
+++ b/srcpkgs/glibc/template
@@ -9,21 +9,6 @@ license="GPL-2, LGPL-2.1, BSD"
 distfiles="http://ftp.gnu.org/gnu/glibc/glibc-${version}.tar.xz"
 checksum=6914e337401e0e0ade23694e1b2c52a5f09e4eda3270c67e7c3ba93a89b5b23e
 
-# Do not strip these files objcopy errors out.
-nostrip_files="
- XBS5_ILP32_OFFBIG
- XBS5_ILP32_OFF32
- POSIX_V6_ILP32_OFF32
- POSIX_V6_ILP32_OFFBIG
- POSIX_V7_ILP32_OFF32
- POSIX_V7_ILP32_OFFBIG
- POSIX_V6_LP64_OFF64
- POSIX_V7_LP64_OFF64
- XBS5_LP64_OFF64"
-
-conf_files="/etc/rpc /etc/ld.so.conf"
-subpackages="glibc-devel glibc-locales nscd"
-depends="base-files glibc-locales"
 hostmakedepends="bison perl kernel-libc-headers>=3.7<3.8"
 
 do_configure() {
@@ -97,7 +82,8 @@ do_install() {
 	rm -f ${DESTDIR}/etc/ld.so.cache
 
 	# Switch to /usr.
-	vmove "sbin/*" usr/sbin
+	vmkdir usr/sbin
+	mv ${DESTDIR}/sbin/* ${DESTDIR}/usr/sbin
 
 	# Create ld-linux.so.3 symlink for ARM.
 	if [ "$XBPS_TARGET_MACHINE" = "armv6l" ]; then
@@ -105,3 +91,70 @@ do_install() {
 			${DESTDIR}/usr/lib/ld-linux.so.3
 	fi
 }
+
+glibc-devel_package() {
+	depends="kernel-libc-headers glibc>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*crt1.o"
+		vmove usr/share/info
+	}
+}
+
+glibc-locales_package() {
+	noarch=yes
+	conf_files="/etc/default/libc-locales"
+	short_desc="${short_desc} -- locales"
+	pkg_install() {
+		vmove etc/default
+		vmove usr/share/i18n
+		vmove usr/share/locale
+	}
+}
+
+nscd_package() {
+	systemd_services="nscd.service on"
+	conf_files="/etc/nscd.conf"
+	short_desc="${short_desc} -- Name Service Cache Daemon"
+	pkg_install() {
+		vmove usr/sbin/nscd
+		vinstall ${FILESDIR}/nscd.service 644 usr/lib/systemd/system
+		vinstall ${FILESDIR}/nscd.socket 644 usr/lib/systemd/system
+		vinstall ${FILESDIR}/nscd.tmpfiles.d 644 usr/lib/tmpfiles.d nscd.conf
+		vinstall ${FILESDIR}/nscd.conf 644 etc
+	}
+}
+
+glibc_package() {
+	# Do not strip these files, objcopy errors out.
+	nostrip_files="
+		XBS5_ILP32_OFFBIG
+		XBS5_ILP32_OFF32
+		POSIX_V6_ILP32_OFF32
+		POSIX_V6_ILP32_OFFBIG
+		POSIX_V7_ILP32_OFF32
+		POSIX_V7_ILP32_OFFBIG
+		POSIX_V6_LP64_OFF64
+		POSIX_V7_LP64_OFF64
+		XBS5_LP64_OFF64"
+	conf_files="
+		/etc/rpc
+		/etc/ld.so.conf"
+	depends="base-files glibc-locales"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/sbin/zic
+		vmove usr/sbin/ldconfig
+		vmove usr/sbin/iconvconfig
+		vmove usr/sbin/zdump
+		vmove usr/sbin/sln
+		vmove "usr/lib/*.so*"
+		vmove "usr/lib/*.o"
+		vmove usr/lib/gconv
+		vmove usr/lib/pt_chown
+		vmove "etc/ld.so.conf*"
+		vmove etc/rpc
+	}
+}
diff --git a/srcpkgs/glibc32/glibc32-devel.template b/srcpkgs/glibc32/glibc32-devel.template
deleted file mode 100644
index 9544d1ac1d..0000000000
--- a/srcpkgs/glibc32/glibc32-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'glibc32-devel'.
-#
-depends="glibc-devel>=$version glibc32>=$version"
-short_desc="${short_desc} (development files)"
-long_desc="${long_desc}
-
- This package contains files for development: headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	for f in a o; do
-		vmove "usr/lib32/*.${f}" usr/lib32
-	done
-}
diff --git a/srcpkgs/glibc32/template b/srcpkgs/glibc32/template
index 8e5b48d47c..a7921c88b2 100644
--- a/srcpkgs/glibc32/template
+++ b/srcpkgs/glibc32/template
@@ -5,8 +5,7 @@ revision=6
 distfiles="
  http://xbps.nopcode.org/repos/current/glibc-${version}_${revision}.i686.xbps
  http://xbps.nopcode.org/repos/current/glibc-devel-${version}_${revision}.i686.xbps"
-depends="glibc>=$version"
-makedepends="bsdtar"
+hostmakedepends="bsdtar"
 short_desc="The GNU C library (32 bits)"
 homepage="http://www.gnu.org/software/libc"
 license="GPL-2, LGPL-2.1, BSD"
@@ -23,10 +22,7 @@ long_desc="
 
  This package installs the 32 bit libraries for x86_64 systems."
 
-subpackages="${pkgname}-devel"
-nostrip=yes
 noextract=yes
-noverifyrdeps=yes
 only_for_archs=x86_64
 
 do_install() {
@@ -55,3 +51,24 @@ do_install() {
 			${DESTDIR}/usr/lib32/${f}.so
 	done
 }
+
+glibc32-devel_package() {
+	nostrip=yes
+	noverifyrdeps=yes
+	depends="glibc-devel>=$version glibc32>=$version"
+	short_desc+="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib32/*.a"
+		vmove "usr/lib32/*.o"
+	}
+}
+
+glibc32_package() {
+	nostrip=yes
+	noverifyrdeps=yes
+	depends="glibc>=$version"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/glibmm/glibmm-devel.template b/srcpkgs/glibmm/glibmm-devel.template
deleted file mode 100644
index 2683d0efb3..0000000000
--- a/srcpkgs/glibmm/glibmm-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'glibmm-devel'.
-#
-depends="glib-devel libsigc++-devel glibmm-${version}_${revision}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/share usr
-	vmove usr/lib/giomm-2.4 usr/lib
-	vmove usr/lib/glibmm-2.4 usr/lib
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/glibmm/template b/srcpkgs/glibmm/template
index e41f25097d..c2c3789ff1 100644
--- a/srcpkgs/glibmm/template
+++ b/srcpkgs/glibmm/template
@@ -3,7 +3,6 @@ pkgname=glibmm
 version=2.35.9
 revision=1
 build_style=gnu-configure
-subpackages="glibmm-devel"
 hostmakedepends="pkg-config intltool"
 makedepends="glib-devel>=2.36 libsigc++-devel>=2.2.10"
 short_desc="C++ bindings for GLib"
@@ -17,3 +16,21 @@ long_desc="
  popular GUI library GTK+. Highlights include typesafe callbacks, widgets
  extensible via inheritance and a comprehensive set of widget classes that
  can be freely combined to quickly create complex user interfaces."
+
+glibmm-devel_package() {
+	depends="glib-devel libsigc++-devel glibmm-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share
+		vmove usr/lib/giomm-2.4
+		vmove usr/lib/glibmm-2.4
+		vmove usr/lib/pkgconfig
+	}
+}
+
+glibmm_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/glm/template b/srcpkgs/glm/template
index 47e87a288b..c2ec1b0e0a 100644
--- a/srcpkgs/glm/template
+++ b/srcpkgs/glm/template
@@ -16,8 +16,7 @@ long_desc="
  naming conventions and functionalities than GLSL so that when a programmer
  knows GLSL, he knows GLM as well which makes it really easy to use."
 
-makedepends="unzip"
-noarch=yes
+hostmakedepends="unzip"
 
 do_install() {
 	vmkdir usr/include/glm
@@ -28,3 +27,10 @@ do_install() {
 	find ${DESTDIR} -type f -exec chmod 644 {} \;
 	find ${DESTDIR} -type d -exec chmod 755 {} \;
 }
+
+glm_package() {
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/glproto/template b/srcpkgs/glproto/template
index a97316adf5..618ddaada2 100644
--- a/srcpkgs/glproto/template
+++ b/srcpkgs/glproto/template
@@ -2,7 +2,6 @@
 pkgname=glproto
 version=1.4.16
 revision=2
-noarch=yes
 build_style=gnu-configure
 short_desc="GL extension headers"
 homepage="http://xorg.freedesktop.org"
@@ -12,3 +11,10 @@ distfiles="${XORG_SITE}/proto/$pkgname-$version.tar.bz2"
 checksum=54dd663a7f5ed702f2ff035b79edf770c2f850867ac0d55742f696bfc8b2598d
 long_desc="
  This package provides the GL extension headers from modular X.org."
+
+glproto_package() {
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/glu/glu-devel.template b/srcpkgs/glu/glu-devel.template
deleted file mode 100644
index f1626d06d8..0000000000
--- a/srcpkgs/glu/glu-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'libGLU-devel'.
-#
-depends="MesaLib-devel>=9.0 glu-${version}_${revision}"
-short_desc="${short_desc} -- development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-noarch=yes
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/glu/template b/srcpkgs/glu/template
index de1ba96727..a26d3bc001 100644
--- a/srcpkgs/glu/template
+++ b/srcpkgs/glu/template
@@ -1,7 +1,7 @@
 # Template file for 'glu'
 pkgname=glu
 version=9.0.0
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--disable-static"
 makedepends="pkg-config MesaLib-devel>=9.0"
@@ -19,5 +19,18 @@ long_desc="
  teapots); tesselating surfaces; setting up projection matrices and
  unprojecting screen coordinates to world coordinates."
 
-subpackages="glu-devel"
-replaces="libGLU<9.0"
+glu-devel_package() {
+	depends="MesaLib-devel>=9.0 glu-${version}_${revision}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+	}
+}
+
+glu_package() {
+	replaces="libGLU<9.0"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gmime/gmime-devel.template b/srcpkgs/gmime/gmime-devel.template
deleted file mode 100644
index 35bda7e4be..0000000000
--- a/srcpkgs/gmime/gmime-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'gmime-devel'.
-#
-noarch=yes
-depends="glib-devel zlib-devel gmime-${version}_${revision}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	mkdir -p ${DESTDIR}/usr/{lib,share}
-	mv ${SRCPKGDESTDIR}/usr/include ${DESTDIR}/usr
-	mv ${SRCPKGDESTDIR}/usr/lib/pkgconfig ${DESTDIR}/usr/lib
-	mv ${SRCPKGDESTDIR}/usr/share/gtk-doc ${DESTDIR}/usr/share
-}
diff --git a/srcpkgs/gmime/template b/srcpkgs/gmime/template
index e0891f2cca..c41cde5b3b 100644
--- a/srcpkgs/gmime/template
+++ b/srcpkgs/gmime/template
@@ -5,10 +5,26 @@ revision=1
 build_style=gnu-configure
 configure_args="--disable-static --disable-mono --enable-smime"
 makedepends="pkg-config intltool glib-devel gpgme-devel"
-subpackages="gmime-devel"
 short_desc="GNOME Core mime parsing library"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2"
 homepage="http://www.gnome.org/"
 distfiles="${GNOME_SITE}/gmime/2.6/gmime-${version}.tar.xz"
 checksum=b4c2a0b99b82063387cd750a38421ebaa0636f339e67984a84371bcb697dc99a
+
+gmime-devel_package() {
+	depends="glib-devel zlib-devel gmime-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+	}
+	}
+}
+
+gmime_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnac/template b/srcpkgs/gnac/template
index 4fc7fe7525..2a3004fbcd 100644
--- a/srcpkgs/gnac/template
+++ b/srcpkgs/gnac/template
@@ -1,15 +1,11 @@
 # Template file for 'gnac'
 pkgname=gnac
 version=0.2.4
+revision=1
 homepage="http://gnac.sourceforge.net"
 distfiles="${SOURCEFORGE_SITE}/$pkgname/$pkgname-$version.tar.bz2"
 build_style=gnu-configure
 configure_args="--disable-scrollkeeper --disable-schemas-compile"
-revision=1
-makedepends="which pkg-config intltool gnome-doc-utils glib-devel libxml2-devel
-gtk+3-devel gst-plugins-base-devel libunique-devel libnotify-devel"
-fulldepends="gst-plugins-good gst-plugins-bad gst-plugins-ugly
-desktop-file-utils hicolor-icon-theme"
 short_desc="Audio conversion program for the Gnome desktop"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-3"
@@ -18,5 +14,15 @@ long_desc="
  It is designed to be powerful but simple! It provides easy audio files
  conversion between all GStreamer supported audio formats."
 
+makedepends="which pkg-config intltool gnome-doc-utils glib-devel libxml2-devel
+ gtk+3-devel gst-plugins-base-devel libunique-devel libnotify-devel
+ gst-plugins-good gst-plugins-bad gst-plugins-ugly desktop-file-utils
+ hicolor-icon-theme"
 
-
+gnac_package() {
+	depends="gst-plugins-good gst-plugins-bad gst-plugins-ugly
+		desktop-file-utils hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-backgrounds/template b/srcpkgs/gnome-backgrounds/template
index d06bf28331..8dd7f2b937 100644
--- a/srcpkgs/gnome-backgrounds/template
+++ b/srcpkgs/gnome-backgrounds/template
@@ -2,7 +2,6 @@
 pkgname=gnome-backgrounds
 version=3.8.0
 revision=1
-noarch=yes
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
 short_desc="Set of background images for the GNOME Desktop"
@@ -11,3 +10,10 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=6be4d4fcdaddad10dea545a42c6c1f05c39405573b1bb805d743fa2c5132d18e
+
+gnome-backgrounds_package() {
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-bluetooth/gnome-bluetooth-devel.template b/srcpkgs/gnome-bluetooth/gnome-bluetooth-devel.template
deleted file mode 100644
index a9e285fe9f..0000000000
--- a/srcpkgs/gnome-bluetooth/gnome-bluetooth-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'gnome-bluetooth-devel'.
-#
-depends="glib-devel gtk+3-devel ${sourcepkg}>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/gtk-doc usr/share
-}
diff --git a/srcpkgs/gnome-bluetooth/template b/srcpkgs/gnome-bluetooth/template
index df29d29e9a..932b7388bf 100644
--- a/srcpkgs/gnome-bluetooth/template
+++ b/srcpkgs/gnome-bluetooth/template
@@ -5,8 +5,6 @@ revision=1
 build_style=gnu-configure
 configure_args="--disable-desktop-update --disable-schemas-compile
  --disable-icon-update"
-subpackages="$pkgname-devel"
-depends="dconf gvfs hicolor-icon-theme desktop-file-utils"
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils gobject-introspection"
 makedepends="libXi-devel gtk+3-devel>=3.8 libnotify-devel"
 short_desc="The GNOME Bluetooth Subsystem"
@@ -28,3 +26,21 @@ long_desc="
 post_install() {
 	vinstall ${FILESDIR}/61-gnome-bluetooth-rfkill.rules 644 usr/lib/udev/rules.d
 }
+
+gnome-bluetooth-devel_package() {
+	depends="glib-devel gtk+3-devel ${sourcepkg}>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+		vmove usr/share/gtk-doc
+	}
+}
+
+gnome-bluetooth_package() {
+	depends="dconf gvfs hicolor-icon-theme desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-boxes/template b/srcpkgs/gnome-boxes/template
index 7340d00c19..41706ba7df 100644
--- a/srcpkgs/gnome-boxes/template
+++ b/srcpkgs/gnome-boxes/template
@@ -3,8 +3,6 @@ pkgname=gnome-boxes
 version=3.6.2
 revision=1
 build_style=gnu-configure
-depends="qemu libosinfo>=0.2.1 desktop-file-utils
- hicolor-icon-theme shared-mime-info"
 makedepends="pkg-config intltool glib-devel gobject-introspection
  clutter-gtk-devel gtk+3-devel gtk-vnc-devel libvirt-glib-devel libxml2-devel
  libgudev-devel libosinfo-devel>=0.2.1 tracker-devel libuuid-devel
@@ -37,3 +35,11 @@ Use cases:
  - Connect to a local virtual machine for testing.
  - Connecting to a work machine from home.
  - Connect to a work machine over a low quality cellular network."
+
+gnome-boxes_package() {
+	depends="qemu libosinfo>=0.2.1 desktop-file-utils
+		hicolor-icon-theme shared-mime-info"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-calculator/template b/srcpkgs/gnome-calculator/template
index 6bfb99ab72..ede8d5e3ae 100644
--- a/srcpkgs/gnome-calculator/template
+++ b/srcpkgs/gnome-calculator/template
@@ -3,13 +3,20 @@ pkgname=gnome-calculator
 version=3.8.0
 revision=1
 build_style=gnu-configure
-replaces="gcalctool>=0"
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils"
-makedepends="libxml2-devel gtk+3-devel gsettings-desktop-schemas-devel>=3.6.0"
-fulldepends="hicolor-icon-theme desktop-file-utils"
+makedepends="libxml2-devel gtk+3-devel gsettings-desktop-schemas-devel>=3.6.0
+ hicolor-icon-theme desktop-file-utils"
 short_desc="The GNOME calculator"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=7db18629bd7e17ab65b771d554eeef0cd3cf7985a86e5a82c755c42c1b092824
+
+gnome-calculator_package() {
+	depends="hicolor-icon-theme desktop-file-utils"
+	replaces="gcalctool>=0"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-clocks/template b/srcpkgs/gnome-clocks/template
index af2777b9ee..484f3109d3 100644
--- a/srcpkgs/gnome-clocks/template
+++ b/srcpkgs/gnome-clocks/template
@@ -3,10 +3,10 @@ pkgname=gnome-clocks
 version=3.8.0
 revision=1
 build_style=gnu-configure
-fulldepends="desktop-file-utils hicolor-icon-theme"
 hostmakedepends="pkg-config intltool gobject-introspection"
 makedepends="glib-devel vala-devel>=0.20 gnome-desktop-devel>=3.8
- libgweather-devel>=3.8 libcanberra-devel libnotify-devel"
+ libgweather-devel>=3.8 libcanberra-devel libnotify-devel
+ desktop-file-utils hicolor-icon-theme"
 short_desc="Clock application for the GNOME Desktop"
 maintainer="davehome <davehome@redthumb.info.tm>"
 homepage="https://live.gnome.org/GnomeClocks"
@@ -20,3 +20,10 @@ long_desc="
  - View alarms
  - Set alarms
  - Times/dates in other locations"
+
+gnome-clocks_package() {
+	depends="desktop-file-utils hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-color-manager/template b/srcpkgs/gnome-color-manager/template
index 33a6bc4f54..2bf7aa4ff2 100644
--- a/srcpkgs/gnome-color-manager/template
+++ b/srcpkgs/gnome-color-manager/template
@@ -5,15 +5,22 @@ revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile
  --enable-clutter --enable-packagekit --enable-exiv"
-depends="desktop-file-utils hicolor-icon-theme colord"
 hostmakedepends="pkg-config intltool itstool gnome-doc-utils"
 makedepends="exiv2-devel colord-devel>=0.1.31 gtk+3-devel
  clutter-gtk-devel>=1.4.4 libcanberra-devel gnome-desktop-devel>=3.8
- libexif-devel vte3-devel colord-gtk-devel mash-devel"
-fulldepends="shared-color-profiles shared-color-targets"
+ libexif-devel vte3-devel colord-gtk-devel mash-devel
+ shared-color-profiles shared-color-targets"
 short_desc="Color profile manager for the GNOME desktop"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://projects.gnome.org/gnome-color-manager/"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=aac125a690b9b65d723de7d82699b0122995905b36603477b9b85936d62bd6c8
+
+gnome-color-manager_package() {
+	depends="desktop-file-utils hicolor-icon-theme colord
+		shared-color-profiles shared-color-targets"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-common/template b/srcpkgs/gnome-common/template
index aec92008a6..a21a8969ae 100644
--- a/srcpkgs/gnome-common/template
+++ b/srcpkgs/gnome-common/template
@@ -2,12 +2,19 @@
 pkgname=gnome-common
 version=3.6.0
 revision=2
-noarch=yes
 build_style=gnu-configure
-fulldepends="automake"
+hostmakedepends="automake"
 short_desc="Common scripts and macros to develop with GNOME"
 maintainer="davehome <davehome@redthumb.info.tm>"
 homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/${pkgname}/3.6/${pkgname}-${version}.tar.xz"
 checksum=e10f09de06bddcc8f980422e3bfdcd8185eee7f1eae11543a765ec8e764b8d95
+
+gnome-common_package() {
+	depends="automake"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-contacts/template b/srcpkgs/gnome-contacts/template
index 17a238e285..127ee72458 100644
--- a/srcpkgs/gnome-contacts/template
+++ b/srcpkgs/gnome-contacts/template
@@ -3,7 +3,6 @@ pkgname=gnome-contacts
 version=3.8.0
 revision=1
 build_style=gnu-configure
-depends="desktop-file-utils"
 hostmakedepends="pkg-config intltool gobject-introspection"
 makedepends="vala-devel>=0.20 telepathy-glib-devel>=0.19.9
  gnome-desktop-devel>=3.8.0 folks-devel>=0.9 libnotify-devel
@@ -14,3 +13,10 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=cf4e183b0daff0b1644ea1f6043b9f3f1ce1703d74c313a5154c78fd7fd7365e
+
+gnome-contacts_package() {
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-control-center/template b/srcpkgs/gnome-control-center/template
index 50a02293cc..2b0f82cc1d 100644
--- a/srcpkgs/gnome-control-center/template
+++ b/srcpkgs/gnome-control-center/template
@@ -12,9 +12,6 @@ homepage="http://www.gnome.org"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=154653d45c224eb5daf5a756e145989c2477fc4b448af20a5b62dbb897dd74f7
 
-depends="gsettings-desktop-schemas>=3.8.0 pulseaudio desktop-file-utils
- hicolor-icon-theme sound-theme-freedesktop apg"
-
 hostmakedepends="which pkg-config intltool gnome-doc-utils gobject-introspection"
 
 # XXX modem manager needs ModemManager.
@@ -27,6 +24,13 @@ makedepends="libXi-devel libnotify-devel colord-devel>=0.1.31
  upower-devel pulseaudio-devel libwacom-devel ibus-devel
  gnome-bluetooth-devel>=3.8.0 tzdata systemd-devel cups-devel
  libpwquality-devel mit-krb5-devel cheese-devel>=3.8.0
- colord-gtk-devel>=0.1.24 accountsservice-devel vala-devel>=0.20"
+ colord-gtk-devel>=0.1.24 accountsservice-devel vala-devel>=0.20
+ iso-codes"
 
-fulldepends="iso-codes"
+gnome-control-center_package() {
+	depends="gsettings-desktop-schemas>=3.8.0 pulseaudio desktop-file-utils
+		hicolor-icon-theme sound-theme-freedesktop apg iso-codes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-desktop/gnome-desktop-devel.template b/srcpkgs/gnome-desktop/gnome-desktop-devel.template
deleted file mode 100644
index 23df43297f..0000000000
--- a/srcpkgs/gnome-desktop/gnome-desktop-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'gnome-desktop-devel'.
-#
-depends="libxkbfile-devel gsettings-desktop-schemas-devel>=3.8.0
- gtk+3-devel>=3.8 ${sourcepkg}-${version}_${revision}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/gtk-doc usr/share
-}
diff --git a/srcpkgs/gnome-desktop/template b/srcpkgs/gnome-desktop/template
index b6939f75a1..f5b28da85b 100644
--- a/srcpkgs/gnome-desktop/template
+++ b/srcpkgs/gnome-desktop/template
@@ -2,13 +2,11 @@
 pkgname=gnome-desktop
 version=3.8.0.1
 revision=1
-subpackages="$pkgname-devel"
 build_style=gnu-configure
 configure_args="--with-gnome-distributor=voidlinux"
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils gobject-introspection"
-makedepends="libxkbfile-devel gtk+3-devel gsettings-desktop-schemas-devel>=3.8.0"
-depends="gsettings-desktop-schemas>=3.8.0"
-fulldepends="xkeyboard-config iso-codes"
+makedepends="libxkbfile-devel gtk+3-devel gsettings-desktop-schemas-devel>=3.8.0
+ xkeyboard-config iso-codes"
 short_desc="GNOME desktop management utilities"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2, LGPL-2.1"
@@ -23,3 +21,22 @@ long_desc="
     desktop management related utilities.
   * The GNOME desktop manager proxy, which handles basic desktop
     management for applications that do not support XSM."
+
+gnome-desktop-devel_package() {
+	depends="libxkbfile-devel gsettings-desktop-schemas-devel>=3.8.0
+		gtk+3-devel>=3.8 ${sourcepkg}-${version}_${revision}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+		vmove usr/share/gtk-doc
+	}
+}
+
+gnome-desktop_package() {
+	depends="gsettings-desktop-schemas>=3.8.0 xkeyboard-config iso-codes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-dictionary/template b/srcpkgs/gnome-dictionary/template
index 8797ef3714..603453e54c 100644
--- a/srcpkgs/gnome-dictionary/template
+++ b/srcpkgs/gnome-dictionary/template
@@ -4,10 +4,8 @@ version=3.6.0
 revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile --disable-scrollkeeper"
-depends="hicolor-icon-theme desktop-file-utils"
 makedepends="which pkg-config intltool itstool gnome-doc-utils
-gtk+3-devel>=3.6.0_2 gsettings-desktop-schemas-devel>=3.6.0"
-fulldepends="gsettings-desktop-schemas>=3.6.0"
+ gtk+3-devel>=3.6.0_2 gsettings-desktop-schemas-devel>=3.6.0"
 short_desc="Look up words in dictionary sources"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
@@ -17,11 +15,17 @@ checksum=1ad03f629bbfe4360fc6d8dd2d7cb4a03e24579068bdd79a25ff5fc5fbff6fa9
 long_desc="
  This package contains $pkgname, to look up words in dictionary sources."
 
-replaces="gnome-utils>=3.0"
-
-
 post_install() {
 	# Remove -devel stuff.
 	rm -rf ${DESTDIR}/usr/include ${DESTDIR}/usr/lib/pkgconfig \
 		${DESTDIR}/usr/share/gtk-doc
 }
+
+gnome-dictionary_package() {
+	replaces="gnome-utils>=3.0"
+	depends="hicolor-icon-theme desktop-file-utils
+		gsettings-desktop-schemas>=3.6.0"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-disk-utility/template b/srcpkgs/gnome-disk-utility/template
index 6b54244949..7838f74643 100644
--- a/srcpkgs/gnome-disk-utility/template
+++ b/srcpkgs/gnome-disk-utility/template
@@ -4,7 +4,6 @@ version=3.8.0
 revision=2
 build_style=gnu-configure
 configure_args="--disable-static"
-depends="hicolor-icon-theme desktop-file-utils parted"
 hostmakedepends="pkg-config intltool gnome-doc-utils"
 makedepends="gtk+3-devel>=3.8 libcanberra-devel udisks2-devel
  libdvdread-devel libsecret-devel libpwquality-devel systemd-devel
@@ -15,3 +14,10 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=2657aad8d06e5511bc34ee5ec1ff9426f70b7140b8687be528f693175759bd5e
+
+gnome-disk-utility_package() {
+	depends="hicolor-icon-theme desktop-file-utils parted"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-doc-utils/template b/srcpkgs/gnome-doc-utils/template
index 0c0be2ca39..c1c49b1c5e 100644
--- a/srcpkgs/gnome-doc-utils/template
+++ b/srcpkgs/gnome-doc-utils/template
@@ -1,17 +1,16 @@
 # Template file for 'gnome-doc-utils'
 pkgname=gnome-doc-utils
 version=0.20.10
-distfiles="${GNOME_SITE}/$pkgname/0.20/$pkgname-$version.tar.xz"
+revision=1
 build_style=gnu-configure
 configure_args="--disable-scrollkeeper"
-depends="libxslt"
-makedepends="pkg-config intltool libxslt-devel gsettings-desktop-schemas"
-fulldepends="docbook-xml docbook-xsl rarian python libxml2-python"
-revision=1
+makedepends="pkg-config intltool libxslt-devel gsettings-desktop-schemas
+ docbook-xml docbook-xsl rarian python libxml2-python libxslt"
 short_desc="Documentation utilities for GNOME"
 homepage="https://live.gnome.org/GnomeDocUtils"
 license="GPL-2, LGPL-2.1"
 maintainer="Juan RP <xtraeme@gmail.com>"
+distfiles="${GNOME_SITE}/$pkgname/0.20/$pkgname-$version.tar.xz"
 checksum=cb0639ffa9550b6ddf3b62f3b1add92fb92ab4690d351f2353cffe668be8c4a6
 long_desc="
  $pkgname is a collection of documentation utilities for the Gnome
@@ -19,7 +18,11 @@ long_desc="
  all auxiliary files in your source tree, and it contains the DocBook
  XSLT stylesheets that were once distributed with Yelp."
 
-noarch=yes
-pycompile_module="xml2po"
-
-
+gnome-doc-utils_package() {
+	noarch="yes"
+	pycompile_module="xml2po"
+	depends="libxslt docbook-xml docbook-xsl rarian python libxml2-python"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-documents/template b/srcpkgs/gnome-documents/template
index 38f8662534..cdd7a82dd1 100644
--- a/srcpkgs/gnome-documents/template
+++ b/srcpkgs/gnome-documents/template
@@ -3,7 +3,6 @@ pkgname=gnome-documents
 version=3.8.0
 revision=1
 build_style=gnu-configure
-depends="desktop-file-utils hicolor-icon-theme"
 hostmakedepends="pkg-config intltool itstool gobject-introspection"
 makedepends="clutter-gtk-devel>=1.4.4 gnome-desktop-devel>=3.8 libzapojit-devel
  gnome-online-accounts-devel>=3.8 libgdata-devel>=0.13.3 tracker-devel>=0.16
@@ -15,3 +14,10 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=8c3db90e1b7fb971e13be73b3c988942f853e9d8a8bd28690253366c147466c6
+
+gnome-documents_package() {
+	depends="desktop-file-utils hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-font-viewer/template b/srcpkgs/gnome-font-viewer/template
index d4af6c7175..03515bde4e 100644
--- a/srcpkgs/gnome-font-viewer/template
+++ b/srcpkgs/gnome-font-viewer/template
@@ -2,10 +2,8 @@
 pkgname=gnome-font-viewer
 version=3.8.0
 revision=1
-replaces="gnome-utils>=3.0"
 build_style=gnu-configure
 configure_args="--disable-schemas-compile --disable-scrollkeeper"
-depends="desktop-file-utils"
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils"
 makedepends="gtk+3-devel>=3.8 gnome-desktop-devel>=3.8"
 short_desc="A font viewer for GNOME"
@@ -14,3 +12,11 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=d34f17f026b7c41d8de5c255070c79c938ce69030b3429444e7fb8f2275ff819
+
+gnome-font-viewer_package() {
+	replaces="gnome-utils>=3.0"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-icon-theme-extras/template b/srcpkgs/gnome-icon-theme-extras/template
index 713511708b..9f7a7da057 100644
--- a/srcpkgs/gnome-icon-theme-extras/template
+++ b/srcpkgs/gnome-icon-theme-extras/template
@@ -3,8 +3,7 @@ pkgname=gnome-icon-theme-extras
 version=3.6.2
 revision=2
 build_style=gnu-configure
-makedepends="pkg-config intltool icon-naming-utils"
-fulldepends="gnome-icon-theme"
+makedepends="pkg-config intltool icon-naming-utils gnome-icon-theme"
 short_desc="GNOME Desktop icon theme (additional icons)"
 homepage="http://gnome.org/"
 license="GPL-2"
@@ -18,4 +17,10 @@ long_desc="
 
  This package contains additional icons for the default GNOME icon theme."
 
-noarch=yes
+gnome-icon-theme-extras_package() {
+	depends="gnome-icon-theme"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-icon-theme-symbolic/template b/srcpkgs/gnome-icon-theme-symbolic/template
index ff7bd5da4b..876aae9e2d 100644
--- a/srcpkgs/gnome-icon-theme-symbolic/template
+++ b/srcpkgs/gnome-icon-theme-symbolic/template
@@ -3,13 +3,19 @@ pkgname=gnome-icon-theme-symbolic
 version=3.8.0.1
 revision=1
 build_style=gnu-configure
-noarch=yes
 configure_args="GTK_UPDATE_ICON_CACHE=/bin/true"
-hostmakedepends="pkg-config intltool icon-naming-utils"
-fulldepends="gnome-icon-theme>=3.8.0"
+hostmakedepends="pkg-config intltool icon-naming-utils gnome-icon-theme>=3.8.0"
 short_desc="GNOME Desktop icon theme (symbolic icons)"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=b2fc2a319b1b3b5d74899c2001616b1317d2ec73b462918b240da1beada38342
+
+gnome-icon-theme-symbolic_package() {
+	depends="gnome-icon-theme>=3.8.0"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-icon-theme/template b/srcpkgs/gnome-icon-theme/template
index 7c780e8724..215c6cee33 100644
--- a/srcpkgs/gnome-icon-theme/template
+++ b/srcpkgs/gnome-icon-theme/template
@@ -2,7 +2,6 @@
 pkgname=gnome-icon-theme
 version=3.8.0
 revision=1
-noarch=yes
 build_style=gnu-configure
 configure_args="--enable-icon-mapping"
 hostmakedepends="pkg-config intltool librsvg icon-naming-utils"
@@ -16,3 +15,10 @@ checksum=e4f7c73e33eb8693e3adbab7df60fbb5f6dd147116ac04d9bd26986e41071270
 post_install() {
 	rm -f ${DESTDIR}/usr/share/icons/gnome/icon-theme.cache
 }
+
+gnome-icon-theme_package() {
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-initial-setup/template b/srcpkgs/gnome-initial-setup/template
index 3d98d248ac..543e3cbda6 100644
--- a/srcpkgs/gnome-initial-setup/template
+++ b/srcpkgs/gnome-initial-setup/template
@@ -7,8 +7,7 @@ configure_args="--with-systemdsystemunitdir=/usr/lib/systemd"
 makedepends="pkg-config intltool NetworkManager-devel accountsservice-devel
  gnome-desktop-devel cheese-devel geoclue-devel libgweather-devel
  gnome-online-accounts-devel gdm-devel gstreamer-devel libpwquality-devel
- mit-krb5-devel"
-fulldepends="iso-codes"
+ mit-krb5-devel iso-codes"
 short_desc="The GNOME initial setup"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
@@ -19,3 +18,10 @@ long_desc="
  After acquiring or installing a new system there are a few essential things
  to set up before use. gnome-initial-setup aims to provide a simple, easy,
  and safe way to prepare a new system."
+
+gnome-initial-setup_package() {
+	depends="iso-codes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-js-common/template b/srcpkgs/gnome-js-common/template
index d7b938e215..c94f612b8d 100644
--- a/srcpkgs/gnome-js-common/template
+++ b/srcpkgs/gnome-js-common/template
@@ -1,16 +1,21 @@
 # Template file for 'gnome-js-common'
 pkgname=gnome-js-common
 version=0.1.2
-distfiles="${GNOME_SITE}/$pkgname/0.1/$pkgname-$version.tar.bz2"
-build_style=gnu-configure
-makedepends="pkg-config intltool"
 revision=2
+build_style=gnu-configure
+hostmakedepends="pkg-config intltool"
 short_desc="GNOME JavaScript common modules"
 homepage="http://live.gnome.org/Seed/"
 license="GPL-3"
 maintainer="Juan RP <xtraeme@gmail.com>"
+distfiles="${GNOME_SITE}/$pkgname/0.1/$pkgname-$version.tar.bz2"
 checksum=1765be99f3d83cc57e1ec13a2bb963469b8e91b60239eeaab61d66d7744496e6
 long_desc="
  This package includes some JavaScript common modules for GNOME."
 
-noarch=yes
+gnome-js-common_package() {
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-keyring/template b/srcpkgs/gnome-keyring/template
index 1e455d801c..f55fbb32f0 100644
--- a/srcpkgs/gnome-keyring/template
+++ b/srcpkgs/gnome-keyring/template
@@ -5,8 +5,6 @@ revision=1
 build_style=gnu-configure
 configure_args="--with-pam-dir=/usr/lib/security --disable-debug
  --disable-schemas-compile"
-# For setcap(8).
-depends="libcap-progs dconf gcr>=3.8.0"
 hostmakedepends="pkg-config intltool libtasn1-tools"
 makedepends="dbus-devel libcap-ng-devel pam-devel libcap-devel libtasn1-devel
  libgcrypt-devel gcr-devel>=3.8"
@@ -16,3 +14,11 @@ homepage="http://www.gnome.org"
 license="GPL, LGPL"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=5ef9f4b7ff983a4fbc3d049aafee0fd3ecaf4d5cc7573517ac17c1b1a56bca6c
+
+gnome-keyring_package() {
+	# For setcap(8).
+	depends="libcap-progs dconf gcr>=3.8.0"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-menus/gnome-menus-devel.template b/srcpkgs/gnome-menus/gnome-menus-devel.template
deleted file mode 100644
index 878ff3c59a..0000000000
--- a/srcpkgs/gnome-menus/gnome-menus-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gnome-menus-devel'.
-#
-depends="glib-devel gnome-menus>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-}
diff --git a/srcpkgs/gnome-menus/template b/srcpkgs/gnome-menus/template
index 2ffb34a922..b4d1b25102 100644
--- a/srcpkgs/gnome-menus/template
+++ b/srcpkgs/gnome-menus/template
@@ -13,5 +13,18 @@ license="GPL-2, LGPL-2.1"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=33c215ae8d815f4a94d2dbfc8c6679fddbbf8026d30da55a350e67ea940ce14f
 
-subpackages="$pkgname-devel"
-pycompile_module="GMenuSimpleEditor"
+gnome-menus-devel_package() {
+	depends="glib-devel gnome-menus>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+	}
+}
+
+gnome-menus_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-mime-data/template b/srcpkgs/gnome-mime-data/template
index aa89817561..02a3d41717 100644
--- a/srcpkgs/gnome-mime-data/template
+++ b/srcpkgs/gnome-mime-data/template
@@ -1,26 +1,24 @@
 # Template file for 'gnome-mime-data'
 pkgname=gnome-mime-data
 version=2.18.0
-distfiles="${GNOME_SITE}/$pkgname/2.18/$pkgname-$version.tar.bz2"
+revision=3
 build_style=gnu-configure
-makedepends="intltool"
-fulldepends="shared-mime-info"
-revision=2
+makedepends="intltool shared-mime-info"
 short_desc="Base MIME and Application database for GNOME"
 homepage="http://www.gnome.org"
 license="GPL-2"
 maintainer="Juan RP <xtraeme@gmail.com>"
+distfiles="${GNOME_SITE}/$pkgname/2.18/$pkgname-$version.tar.bz2"
 checksum=37196b5b37085bbcd45c338c36e26898fe35dd5975295f69f48028b1e8436fd7
 long_desc="
  $pkgname contains the base MIME and Application database for GNOME.
  It is meant to be accessed through the MIME functions in GnomeVFS."
 
-noarch=yes
-conf_files="/etc/gnome-vfs-mime-magic"
-
-
-post_install()
-{
-	mkdir -p ${DESTDIR}/usr/lib
-	mv ${DESTDIR}/usr/share/pkgconfig ${DESTDIR}/usr/lib
+gnome-mime-data_package() {
+	depends="shared-mime-info"
+	conf_files="/etc/gnome-vfs-mime-magic"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
 }
diff --git a/srcpkgs/gnome-online-accounts/gnome-online-accounts-devel.template b/srcpkgs/gnome-online-accounts/gnome-online-accounts-devel.template
deleted file mode 100644
index 4787e305b3..0000000000
--- a/srcpkgs/gnome-online-accounts/gnome-online-accounts-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gnome-online-accounts-devel'.
-#
-depends="gtk+3-devel>=3.8.0 ${sourcepkg}-${version}_${revision}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-}
diff --git a/srcpkgs/gnome-online-accounts/template b/srcpkgs/gnome-online-accounts/template
index 95c0ed9e6f..ee4c7290d6 100644
--- a/srcpkgs/gnome-online-accounts/template
+++ b/srcpkgs/gnome-online-accounts/template
@@ -2,12 +2,10 @@
 pkgname=gnome-online-accounts
 version=3.8.0
 revision=1
-subpackages="$pkgname-devel"
 build_style=gnu-configure
 configure_args="--enable-google --enable-kerberos --enable-flickr
  --enable-facebook --disable-static --enable-exchange  --enable-imap-smtp
  --enable-owncloud --enable-windows-live"
-depends="hicolor-icon-theme"
 hostmakedepends="pkg-config intltool libxslt docbook-xsl gobject-introspection"
 makedepends=" webkitgtk-devel json-glib-devel libnotify-devel
  rest-devel libsoup-gnome-devel gcr-devel>=3.8.0 libsecret-devel mit-krb5-devel"
@@ -17,3 +15,20 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=fe6389e836ae77373b9fb93d61e591ba143a524e5c03ad46784847f8466f8039
+
+gnome-online-accounts-devel_package() {
+	depends="gtk+3-devel>=3.8.0 ${sourcepkg}-${version}_${revision}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+	}
+}
+
+gnome-online-accounts_package() {
+	depends="hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-power-manager/template b/srcpkgs/gnome-power-manager/template
index b27ea9e2aa..2b84a968a7 100644
--- a/srcpkgs/gnome-power-manager/template
+++ b/srcpkgs/gnome-power-manager/template
@@ -4,7 +4,6 @@ version=3.6.0
 revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile"
-depends="polkit-gnome hicolor-icon-theme desktop-file-utils"
 makedepends="pkg-config intltool gnome-doc-utils gtk+3-devel>=3.6.0_2 upower-devel"
 short_desc="GNOME power management tool"
 maintainer="Juan RP <xtraeme@gmail.com>"
@@ -23,4 +22,9 @@ long_desc="
  trigger suspend-to-RAM, hibernate or shutdown events, all integrated to other
  components of the GNOME desktop."
 
-
+gnome-power-manager_package() {
+	depends="polkit-gnome hicolor-icon-theme desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-screenshot/template b/srcpkgs/gnome-screenshot/template
index 248601d174..c7de71a78c 100644
--- a/srcpkgs/gnome-screenshot/template
+++ b/srcpkgs/gnome-screenshot/template
@@ -4,7 +4,6 @@ version=3.8.0
 revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile"
-depends="desktop-file-utils"
 hostmakedepends="pkg-config intltool itstool gnome-doc-utils"
 makedepends="gtk+3-devel>=3.8 libcanberra-devel"
 short_desc="A screenshot capture utility for GNOME"
@@ -13,3 +12,10 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=155652800474029e034ee156a100070b5efa15355afe5fab523f2c6a05fc4dfb
+
+gnome-screenshot_package() {
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-session/template b/srcpkgs/gnome-session/template
index 2f059bfdca..89bd536c06 100644
--- a/srcpkgs/gnome-session/template
+++ b/srcpkgs/gnome-session/template
@@ -4,8 +4,6 @@ version=3.8.0
 revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile --enable-systemd"
-depends="gsettings-desktop-schemas>=3.8.0 dconf alsa-plugins
- hicolor-icon-theme desktop-file-utils"
 hostmakedepends="pkg-config intltool libxslt docbook-xsl"
 makedepends="upower-devel json-glib-devel gtk+3-devel>=3.8
  startup-notification-devel libXtst-devel systemd-devel
@@ -25,3 +23,11 @@ long_desc="
     session management related utilities.
   * The GNOME session manager proxy, which handles basic session
     management for applications that do not support XSM."
+
+gnome-session_package() {
+	depends="gsettings-desktop-schemas>=3.8.0 dconf alsa-plugins
+		hicolor-icon-theme desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-settings-daemon/gnome-settings-daemon-devel.template b/srcpkgs/gnome-settings-daemon/gnome-settings-daemon-devel.template
deleted file mode 100644
index f181ef8ca2..0000000000
--- a/srcpkgs/gnome-settings-daemon/gnome-settings-daemon-devel.template
+++ /dev/null
@@ -1,9 +0,0 @@
-# Template file for 'gnome-settings-daemon-devel'.
-#
-depends="glib-devel"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gnome-settings-daemon/template b/srcpkgs/gnome-settings-daemon/template
index 577909f6d2..4e29cc840e 100644
--- a/srcpkgs/gnome-settings-daemon/template
+++ b/srcpkgs/gnome-settings-daemon/template
@@ -3,10 +3,8 @@ pkgname=gnome-settings-daemon
 version=3.8.0
 revision=1
 build_style=gnu-configure
-subpackages="$pkgname-devel"
 configure_args="--disable-static --enable-cups
  --disable-schemas-compile --enable-systemd --disable-packagekit"
-depends="pulseaudio hicolor-icon-theme"
 hostmakedepends="pkg-config intltool libxslt docbook-xsl gobject-introspection"
 makedepends="colord-devel>=0.1.23_3 libxklavier-devel libnotify-devel
  gtk+3-devel>=3.8 libcanberra-devel pulseaudio-devel nss-devel
@@ -19,3 +17,19 @@ homepage="http://www.gnome.org"
 license="GPL-3"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=dff9e725a34158558836843e17079f602522bc30f05acf96cb2712eb4544c9ea
+
+gnome-settings-daemon-devel_package() {
+	depends="glib-devel"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gnome-settings-daemon_package() {
+	depends="pulseaudio hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-shell-extension-weather/template b/srcpkgs/gnome-shell-extension-weather/template
index de05b4db63..57743f2f14 100644
--- a/srcpkgs/gnome-shell-extension-weather/template
+++ b/srcpkgs/gnome-shell-extension-weather/template
@@ -8,11 +8,9 @@ maintainer="davehome <davehome@redthumb.info.tm>"
 homepage="https://github.com/Neroth/gnome-shell-extension-weather"
 license="GPL-3"
 
-noarch=yes
 nofetch=yes
 noextract=yes
 
-depends="gnome-shell>=3.6<3.8"
 makedepends="which gnome-common>=3.6.0_2 pkg-config intltool
  gettext-devel glib-devel git"
 
@@ -26,3 +24,11 @@ do_fetch() {
 pre_configure() {
 	./autogen.sh
 }
+
+gnome-shell-extension-weather_package() {
+	depends="gnome-shell>=3.6<3.8"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-shell/template b/srcpkgs/gnome-shell/template
index baf7657ec6..874b9657ce 100644
--- a/srcpkgs/gnome-shell/template
+++ b/srcpkgs/gnome-shell/template
@@ -4,15 +4,13 @@ version=3.8.0
 revision=2
 build_style=gnu-configure
 configure_args="--disable-schemas-compile --with-systemd"
-depends="caribou>=0.4.10 pulseaudio mesa-demos desktop-file-utils"
 hostmakedepends="pkg-config intltool gnome-doc-utils gobject-introspection"
 makedepends="json-glib-devel>=0.14.0 startup-notification-devel network-manager-applet-devel
  folks-devel gnome-menus-devel>=3.8 gnome-desktop-devel>=3.8
  clutter-devel>=1.14 gnome-bluetooth-devel>=3.8 mutter-devel>=3.8
  gjs-devel telepathy-logger-devel libcanberra-devel polkit-devel libcroco-devel
  pulseaudio-devel libgudev-devel gst-plugins-base1-devel systemd-devel
- caribou-devel>=0.4.10_2"
-fulldepends="gir-freedesktop gnome-control-center>=3.8"
+ caribou-devel>=0.4.10_2 gir-freedesktop gnome-control-center>=3.8"
 short_desc="GNOME core user interface"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://live.gnome.org/GnomeShell"
@@ -23,3 +21,11 @@ checksum=ffcf53f6eb848c020c0516ef479b52f7d5b48d1a8a91e89a60c71b0325555d21
 post_install() {
 	rm -rf ${DESTDIR}/usr/share/gtk-doc
 }
+
+gnome-shell_package() {
+	depends="caribou>=0.4.10 pulseaudio mesa-demos desktop-file-utils
+		gir-freedesktop gnome-control-center>=3.8"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-system-log/template b/srcpkgs/gnome-system-log/template
index 183ec598a0..e8ba66402a 100644
--- a/srcpkgs/gnome-system-log/template
+++ b/srcpkgs/gnome-system-log/template
@@ -4,7 +4,6 @@ version=3.8.0
 revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile"
-depends="hicolor-icon-theme desktop-file-utils"
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils"
 makedepends="gtk+3-devel>=3.8"
 short_desc="A system log viewer for GNOME"
@@ -13,3 +12,10 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=ae18ba888578f84a5a6db2f411cc7059bbbe22f04253a694562ff6cad13185c9
+
+gnome-system-log_package() {
+	depends="hicolor-icon-theme desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-system-monitor/template b/srcpkgs/gnome-system-monitor/template
index d4de581599..f093367cf4 100644
--- a/srcpkgs/gnome-system-monitor/template
+++ b/srcpkgs/gnome-system-monitor/template
@@ -5,11 +5,18 @@ revision=1
 build_style=gnu-configure
 configure_args="--disable-schemas-compile --enable-systemd"
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils"
-makedepends="libwnck-devel gtkmm-devel librsvg-devel systemd-devel libgtop-devel"
-fulldepends="gnome-icon-theme>=3.8"
+makedepends="libwnck-devel gtkmm-devel librsvg-devel systemd-devel libgtop-devel
+ gnome-icon-theme>=3.8"
 short_desc="Process viewer and system resource monitor for GNOME"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=2d5bdd81c19bc34f83c0ccfde998007df9ef517f5e4bfb5e36513a76c21dce86
+
+gnome-system-monitor_package() {
+	depends="gnome-icon-theme>=3.8"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-terminal/template b/srcpkgs/gnome-terminal/template
index 862ea37aba..437df651d2 100644
--- a/srcpkgs/gnome-terminal/template
+++ b/srcpkgs/gnome-terminal/template
@@ -5,11 +5,17 @@ revision=1
 build_style=gnu-configure
 hostmakedepends="which pkg-config intltool itstool gnome-doc-utils"
 makedepends="gtk+3-devel>=3.8 vte3-devel dconf-devel libuuid-devel
- gsettings-desktop-schemas-devel>=3.8 GConf-devel"
-fulldepends="desktop-file-utils"
+ gsettings-desktop-schemas-devel>=3.8 GConf-devel desktop-file-utils"
 short_desc="The GNOME terminal emulator application"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=b9218598ff4cf24ad317160d37d463f9823519295ac4de7417139c43958c565e
+
+gnome-terminal_package() {
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-themes-standard/template b/srcpkgs/gnome-themes-standard/template
index 4b3849a6e0..4a921302f0 100644
--- a/srcpkgs/gnome-themes-standard/template
+++ b/srcpkgs/gnome-themes-standard/template
@@ -5,7 +5,6 @@ revision=1
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool"
 makedepends="gtk+-devel gtk+3-devel>=3.8 librsvg-devel"
-depends="gtk2-engines"
 short_desc="Standard GNOME themes"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
@@ -18,3 +17,10 @@ post_install() {
 		rm -f ${DESTDIR}/${f}/*.cache
 	done
 }
+
+gnome-themes-standard_package() {
+	depends="gtk2-engines"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-tweak-tool/template b/srcpkgs/gnome-tweak-tool/template
index 1d2ac896f6..94fe5aa47b 100644
--- a/srcpkgs/gnome-tweak-tool/template
+++ b/srcpkgs/gnome-tweak-tool/template
@@ -4,11 +4,10 @@ version=3.8.0
 revision=1
 noarch=yes
 build_style=gnu-configure
-pycompile_module="gtweak"
-fulldepends="hicolor-icon-theme desktop-file-utils GConf"
 depends="pygobject gsettings-desktop-schemas>=3.8"
 hostmakedepends="pkg-config intltool"
-makedepends="pygobject-devel gsettings-desktop-schemas-devel>=3.6.0"
+makedepends="pygobject-devel gsettings-desktop-schemas-devel>=3.6.0
+ hicolor-icon-theme desktop-file-utils GConf"
 short_desc="GNOME3 tool to customize advanced options"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2"
@@ -19,3 +18,12 @@ long_desc="
  The GNOME tweak tool includes an utility to customize advanced options that
  are hidden by default in GNOME3."
 
+gnome-tweak-tool_package() {
+	noarch="yes"
+	pycompile_module="gtweak"
+	depends="pygobject gsettings-desktop-schemas>=3.8
+		hicolor-icon-theme desktop-file-utils GConf"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-user-docs/template b/srcpkgs/gnome-user-docs/template
index 42dcbf7e3d..798cd5da8e 100644
--- a/srcpkgs/gnome-user-docs/template
+++ b/srcpkgs/gnome-user-docs/template
@@ -2,13 +2,20 @@
 pkgname=gnome-user-docs
 version=3.8.0
 revision=1
-noarch=yes
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool itstool gnome-doc-utils"
-fulldepends="yelp"
+makedepends="yelp"
 homepage="http://www.gnome.org"
 short_desc="User documentation for GNOME"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/$pkgname-$version.tar.xz"
 checksum=91a93ab79ac852e2a5ec7b7b0feb154a25fffb61bbf3a6ba1313c1759c531f0b
+
+gnome-user-docs_package() {
+	depends="yelp"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome-video-effects/template b/srcpkgs/gnome-video-effects/template
index e55012b68e..e7be67dc15 100644
--- a/srcpkgs/gnome-video-effects/template
+++ b/srcpkgs/gnome-video-effects/template
@@ -1,7 +1,6 @@
 # Template build file for 'gnome-video-effects'.
 pkgname=gnome-video-effects
 version=0.4.0
-distfiles="${GNOME_SITE}/$pkgname/0.4/$pkgname-$version.tar.xz"
 build_style=gnu-configure
 makedepends="pkg-config intltool gstreamer-devel"
 revision=1
@@ -9,9 +8,14 @@ short_desc="A collection of GStreamer effects for GNOME"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL-2"
+distfiles="${GNOME_SITE}/$pkgname/0.4/$pkgname-$version.tar.xz"
 checksum=8f7f674b23abab88fac1c10db8eda0cfc7bff1c39413f2959203b9755575bde7
 long_desc="
  This package contains a set of GStreamer video effects for the GNOME desktop."
 
-noarch=yes
-
+gnome-video-effects_package() {
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnome/template b/srcpkgs/gnome/template
index 551b4ac4dd..9909c40c72 100644
--- a/srcpkgs/gnome/template
+++ b/srcpkgs/gnome/template
@@ -2,9 +2,8 @@
 pkgname=gnome
 version=3.8.0
 revision=1
-noarch=yes
 build_style=meta-template
-depends="
+makedepends="
 	gnome-backgrounds>=${version}
 	gnome-themes-standard>=${version}
 	gnome-control-center>=${version}
@@ -62,3 +61,11 @@ short_desc="The GNOME meta-package for Void Linux"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL, LGPL"
+
+gnome_package() {
+	noarch="yes"
+	depends="${makedepends}"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnote/template b/srcpkgs/gnote/template
index 8b572a972e..a19041bde7 100644
--- a/srcpkgs/gnote/template
+++ b/srcpkgs/gnote/template
@@ -12,3 +12,9 @@ license="GPL-3"
 homepage="http://live.gnome.org/Gnote"
 distfiles="${GNOME_SITE}/${pkgname}/3.6/${pkgname}-${version}.tar.xz"
 checksum=38f3b069874658f281445e04b8376d946580e4a5e39620f7e30fdd8216d46c1e
+
+gnote_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnupg/template b/srcpkgs/gnupg/template
index a8292be784..f3b70e9418 100644
--- a/srcpkgs/gnupg/template
+++ b/srcpkgs/gnupg/template
@@ -20,3 +20,8 @@ long_desc="
  GPG, is a command line tool with features for easy integration with other
  applications. A wealth of frontend applications and libraries  are available."
 
+gnupg_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gnutls/gnutls-devel.template b/srcpkgs/gnutls/gnutls-devel.template
deleted file mode 100644
index 1733ded11e..0000000000
--- a/srcpkgs/gnutls/gnutls-devel.template
+++ /dev/null
@@ -1,13 +0,0 @@
-# Template file for 'libgrypt-devel'.
-#
-noarch=yes
-depends="zlib-devel libtasn1-devel p11-kit-devel nettle-devel
- libgcrypt-devel ${sourcepkg}>=${version}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/man/man3 usr/share/man
-	vmove usr/share/info usr/share
-}
diff --git a/srcpkgs/gnutls/gnutls-tools.template b/srcpkgs/gnutls/gnutls-tools.template
deleted file mode 100644
index b4ca2638f0..0000000000
--- a/srcpkgs/gnutls/gnutls-tools.template
+++ /dev/null
@@ -1,8 +0,0 @@
-# Template file for 'gnutls-tools'.
-#
-short_desc="${short_desc} -- bundled tools"
-
-do_install() {
-	vmove usr/bin usr
-	vmove usr/share/man/man1 usr/share/man
-}
diff --git a/srcpkgs/gnutls/template b/srcpkgs/gnutls/template
index d04d930492..1b6de5af87 100644
--- a/srcpkgs/gnutls/template
+++ b/srcpkgs/gnutls/template
@@ -1,8 +1,7 @@
 # Template build file for 'gnutls'.
 pkgname=gnutls
 version=3.1.9
-revision=1
-subpackages="${pkgname}-devel ${pkgname}-tools"
+revision=2
 makedepends="pkg-config lzo-devel readline-devel libgpg-error-devel
  libtasn1-devel>=3.2 libgcrypt-devel p11-kit-devel nettle-devel"
 build_style=gnu-configure
@@ -14,3 +13,29 @@ homepage="http://www.gnu.org/software/gnutls/"
 license="GPL-3, LGPL-2.1"
 distfiles="ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-${version}.tar.xz"
 checksum=0900c4ae2e026a4c714d88e1aa134db2e0be9ecddf0be9641ade5dafcf877c3e
+
+gnutls-devel_package() {
+	depends="zlib-devel libtasn1-devel p11-kit-devel nettle-devel
+		libgcrypt-devel ${sourcepkg}>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/man/man3
+		vmove usr/share/info
+	}
+}
+
+gnutls-tools_package() {
+	short_desc="${short_desc} -- bundled tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man/man1
+	}
+}
+
+gnutls_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/go/template b/srcpkgs/go/template
index 059d5c873f..419faba1a1 100644
--- a/srcpkgs/go/template
+++ b/srcpkgs/go/template
@@ -3,8 +3,6 @@ pkgname=go
 version=1.0.3
 revision=1
 wrksrc=go
-nostrip=yes
-depends="perl gawk"
 makedepends="ed bison"
 short_desc="The Go Programming Language"
 maintainer="Juan RP <xtraeme@gmail.com>"
@@ -98,3 +96,12 @@ do_install() {
 
 	rm -f ${DESTDIR}/usr/share/go/doc/articles/wiki/get.bin
 }
+
+go_package() {
+	nostrip=yes
+	depends="perl gawk"
+	pkg_install() {
+		vmove etc
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gobject-introspection/gir-freedesktop.template b/srcpkgs/gobject-introspection/gir-freedesktop.template
deleted file mode 100644
index e4014ab734..0000000000
--- a/srcpkgs/gobject-introspection/gir-freedesktop.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'gir-freedesktop'.
-#
-short_desc="Introspection data for some FreeDesktop components"
-long_desc="${long_desc}
-
- This package contains small pieces of introspection data for the Cairo,
- FontConfig, FreeType, GL, and some XOrg libraries. They are distributed in
- this package temporarily, while the original sources do not include support
- for GObject Introspection. They are far from complete and only include what
- is necessary for other introspection packages to work properly."
-
-do_install() {
-	vmove usr/lib/girepository-1.0 usr/lib
-}
diff --git a/srcpkgs/gobject-introspection/libgirepository-devel.template b/srcpkgs/gobject-introspection/libgirepository-devel.template
deleted file mode 100644
index aa4a636c69..0000000000
--- a/srcpkgs/gobject-introspection/libgirepository-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'libgirepository-devel'.
-#
-depends="cairo-devel libffi-devel libglib-devel libgirepository-${version}_${revision}"
-short_desc="Library for handling GObject introspection data (development files)"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-}
diff --git a/srcpkgs/gobject-introspection/libgirepository.template b/srcpkgs/gobject-introspection/libgirepository.template
deleted file mode 100644
index a770faf767..0000000000
--- a/srcpkgs/gobject-introspection/libgirepository.template
+++ /dev/null
@@ -1,8 +0,0 @@
-# Template file for 'libgirepository'.
-#
-short_desc="Library for handling GObject introspection data (runtime library)"
-replaces="gobject-introspection<0.6.10"
-
-do_install() {
-	vmove "usr/lib/*.so*" usr/lib
-}
diff --git a/srcpkgs/gobject-introspection/template b/srcpkgs/gobject-introspection/template
index 1d5b01a44e..794c0c5abb 100644
--- a/srcpkgs/gobject-introspection/template
+++ b/srcpkgs/gobject-introspection/template
@@ -4,10 +4,8 @@ version=1.36.0
 revision=1
 build_style=gnu-configure
 configure_args="--disable-tests --disable-static"
-depends="python libgirepository-devel"
 hostmakedepends="pkg-config flex"
-makedepends="libffi-devel libglib-devel python-devel libxml2-devel cairo-devel"
-fulldepends="libtool"
+makedepends="libffi-devel libglib-devel python-devel libxml2-devel cairo-devel libtool"
 short_desc="Introspection system for GObject-based libraries"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://live.gnome.org/GObjectInstrospection"
@@ -18,5 +16,38 @@ long_desc="
  The goal of the project is to describe the APIs and collect them in
  a uniform, machine readable format."
 
-subpackages="gir-freedesktop libgirepository libgirepository-devel"
-pycompile_dirs="usr/lib/${pkgname}/giscanner"
+gir-freedesktop_package() {
+	short_desc="Introspection data for some FreeDesktop components"
+	pkg_install() {
+		vmove usr/lib/girepository-1.0
+	}
+}
+
+libgirepository_package() {
+	short_desc="Library for handling GObject introspection data (runtime library)"
+	replaces="gobject-introspection<0.6.10"
+	pkg_install() {
+		vmove "usr/lib/*.so*"
+	}
+}
+
+libgirepository-devel_package() {
+	depends="cairo-devel libffi-devel libglib-devel libgirepository-${version}_${revision}"
+	short_desc="Library for handling GObject introspection data (development files)"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+	}
+}
+
+gobject-introspection_package() {
+	pycompile_dirs="usr/lib/${pkgname}/giscanner"
+	depends="libtool python libgirepository-devel"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/lib/${pkgname}
+		vmove usr/share/man
+		vmove usr/share/${pkgname}-1.0
+	}
+}
diff --git a/srcpkgs/gource/template b/srcpkgs/gource/template
index e21147d708..a038685018 100644
--- a/srcpkgs/gource/template
+++ b/srcpkgs/gource/template
@@ -17,3 +17,9 @@ makedepends="pkg-config SDL-devel SDL_image-devel glew-devel>=1.9.0
 pre_configure() {
 	sed -i "s/filesystem3/filesystem/g" src/logmill.cpp
 }
+
+gource_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gparted/template b/srcpkgs/gparted/template
index a12e6335fd..85d45f77bd 100644
--- a/srcpkgs/gparted/template
+++ b/srcpkgs/gparted/template
@@ -22,7 +22,6 @@ long_desc="
  partitions. GParted enables you to reorganize your disk partitions while
  preserving the contents of these partitions."
 
-depends="hicolor-icon-theme desktop-file-utils polkit"
 makedepends="pkg-config which intltool libuuid-devel libparted-devel
  gnome-doc-utils gtkmm2-devel"
 
@@ -33,3 +32,10 @@ post_install() {
 	sed -i -e "s/Exec=.*/Exec=gparted-pkexec/" \
 		${DESTDIR}/usr/share/applications/gparted.desktop
 }
+
+gparted_package() {
+	depends="hicolor-icon-theme desktop-file-utils polkit"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gpgme/gpgme-devel.template b/srcpkgs/gpgme/gpgme-devel.template
deleted file mode 100644
index 248e2c473f..0000000000
--- a/srcpkgs/gpgme/gpgme-devel.template
+++ /dev/null
@@ -1,13 +0,0 @@
-# Template file for 'gpgme-devel'.
-#
-depends="libgpg-error-devel libassuan-devel gpgme"
-short_desc="${short_desc} - development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-
-do_install() {
-	install -d ${DESTDIR}/usr
-	mv ${SRCPKGDESTDIR}/usr/{bin,share,include} ${DESTDIR}/usr
-}
diff --git a/srcpkgs/gpgme/template b/srcpkgs/gpgme/template
index a540abe642..9ad6182e18 100644
--- a/srcpkgs/gpgme/template
+++ b/srcpkgs/gpgme/template
@@ -1,18 +1,15 @@
 # Template file for 'gpgme'
 pkgname=gpgme
 version=1.3.1
-homepage="http://www.gnupg.org/related_software/gpgme/"
-distfiles="ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-$version.tar.bz2"
+revision=3
 build_style=gnu-configure
 configure_args="--enable-fd-passing --disable-gpgsm-test --disable-gpgconf-test --disable-g13-test"
-subpackages="gpgme-devel"
-depends="libassuan>=2.0.3"
-makedepends="libgpg-error-devel libassuan-devel"
-fulldepends="gnupg"
-revision=2
+makedepends="libgpg-error-devel libassuan-devel gnupg"
 short_desc="GnuPG Made Easy"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2"
+homepage="http://www.gnupg.org/related_software/gpgme/"
+distfiles="ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-$version.tar.bz2"
 checksum=15ef27a875ae0d79d7446fd931deda11438e724ffbeac74449ed19cba23df4d4
 long_desc="
  GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG easier
@@ -25,3 +22,20 @@ long_desc="
  programming task, it is suggested that all software should try to use GPGME
  instead. This way bug fixes or improvements can be done at a central place
  and every application benefits from this."
+
+gpgme-devel_package() {
+	depends="libgpg-error-devel libassuan-devel gpgme>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/include
+		vmove usr/share
+	}
+}
+
+gpgme_package() {
+	depends="libassuan>=2.0.3 gnupg"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gpicview/template b/srcpkgs/gpicview/template
index a565865fab..97beeaf2d4 100644
--- a/srcpkgs/gpicview/template
+++ b/srcpkgs/gpicview/template
@@ -4,10 +4,16 @@ version=0.2.3
 revision=1
 build_style=gnu-configure
 makedepends="pkg-config intltool libjpeg-turbo-devel gtk+-devel"
-depends="desktop-file-utils"
 short_desc="A Simple and Fast Image Viewer for X"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://lxde.org/"
 license="GPL-2"
 distfiles="${DEBIAN_SITE}/main/g/${pkgname}/${pkgname}_${version}.orig.tar.xz"
 checksum=e1cd963e0954677efec3bc08f4318f1214d2b33c1498d402133a7ca35cec0bfd
+
+gpicview_package() {
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gptfdisk/template b/srcpkgs/gptfdisk/template
index 978d72c113..b36524557d 100644
--- a/srcpkgs/gptfdisk/template
+++ b/srcpkgs/gptfdisk/template
@@ -21,3 +21,9 @@ do_install() {
 		vinstall ${f}.8 644 usr/share/man/man8
 	done
 }
+
+gptfdisk_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/granite/granite-devel.template b/srcpkgs/granite/granite-devel.template
deleted file mode 100644
index 82c298a9ef..0000000000
--- a/srcpkgs/granite/granite-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'granite-devel'.
-#
-noarch=yes
-depends="${sourcepkg}>=${version}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/vala usr/share
-}
diff --git a/srcpkgs/granite/template b/srcpkgs/granite/template
index 358d13c6ce..69482c766d 100644
--- a/srcpkgs/granite/template
+++ b/srcpkgs/granite/template
@@ -1,10 +1,8 @@
 # Template file for 'granite'
 pkgname=granite
 version="0.1.1"
-revision=2
-subpackages="${pkgname}-devel"
+revision=3
 build_style=cmake
-depends="hicolor-icon-theme"
 makedepends="cmake vala pkg-config gtk+3-devel libgee-devel glib-devel"
 short_desc="GTK+3 extension providing commonly-used widgets"
 maintainer="tripledes <tripledes@gmail.com>"
@@ -12,3 +10,20 @@ homepage="https://launchpad.net/granite"
 license="LGPL-3"
 distfiles="${homepage}/0.x/0.1.1/+download/$pkgname-$version.tar.gz"
 checksum=360a030690d3db1faedf7461fe808b37ed67de7f380532673dae2242f2e7b5e5
+
+granite-devel_package() {
+	depends="${sourcepkg}>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/vala
+	}
+}
+
+granite_package() {
+	depends="hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/graphviz/graphviz-devel.template b/srcpkgs/graphviz/graphviz-devel.template
deleted file mode 100644
index 5c4b66e290..0000000000
--- a/srcpkgs/graphviz/graphviz-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'graphviz-devel'.
-#
-noarch=yes
-depends="graphviz-libs>=${version}"
-short_desc="${short_desc} -- development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/man/man3 usr/share/man
-}
diff --git a/srcpkgs/graphviz/graphviz-libs.template b/srcpkgs/graphviz/graphviz-libs.template
deleted file mode 100644
index ed6f1410ec..0000000000
--- a/srcpkgs/graphviz/graphviz-libs.template
+++ /dev/null
@@ -1,13 +0,0 @@
-# Template file for 'graphviz-libs'.
-#
-short_desc="${short_desc} -- runtime libraries"
-long_desc="${long_desc}
-
- This package contains the runtime libraries."
-
-replaces="graphviz<2.28.0_6"
-
-do_install() {
-	vmove "usr/lib/*.so*" usr/lib
-	vmove usr/lib/graphviz usr/lib
-}
diff --git a/srcpkgs/graphviz/template b/srcpkgs/graphviz/template
index 93f0db1818..5192cfc0e5 100644
--- a/srcpkgs/graphviz/template
+++ b/srcpkgs/graphviz/template
@@ -1,9 +1,8 @@
 # Template file for 'graphviz'
 pkgname=graphviz
 version=2.28.0
-revision=8
+revision=9
 build_style=gnu-configure
-subpackages="${pkgname}-libs ${pkgname}-devel"
 hostmakedepends="flex pkg-config"
 makedepends="libpng-devel>=1.5.10 gd-devel gtk+-devel librsvg-devel libltdl-devel"
 short_desc="Graph Visualization Software"
@@ -22,3 +21,28 @@ post_install() {
 	# intall license.
 	vinstall ${FILESDIR}/LICENSE 644 usr/share/licenses/$pkgname
 }
+
+graphviz-libs_package() {
+	short_desc="${short_desc} -- runtime libraries"
+	replaces="graphviz<2.28.0_6"
+	pkg_install() {
+		vmove "usr/lib/*.so*"
+		vmove usr/lib/graphviz
+	}
+}
+
+graphviz-devel_package() {
+	depends="graphviz-libs>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/man/man3
+	}
+}
+
+graphviz_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/grep/template b/srcpkgs/grep/template
index ab219c772f..e85802570d 100644
--- a/srcpkgs/grep/template
+++ b/srcpkgs/grep/template
@@ -2,7 +2,6 @@
 pkgname=grep
 version=2.14
 revision=3
-conflicts="chroot-grep>=0"
 build_style=gnu-configure
 makedepends="pcre-devel>=8.30"
 short_desc="The GNU grep utility"
@@ -15,3 +14,10 @@ checksum=e70e801d4fbb16e761654a58ae48bf5020621c95c8e35bd864742577685872e1
 post_install() {
 	touch ${DESTDIR}/usr/share/info/dir
 }
+
+grep_package() {
+	conflicts="chroot-grep>=0"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/grilo-plugins/template b/srcpkgs/grilo-plugins/template
index 26cb500af1..ef7b216c56 100644
--- a/srcpkgs/grilo-plugins/template
+++ b/srcpkgs/grilo-plugins/template
@@ -26,3 +26,9 @@ long_desc="
     Developers can share efforts and code by writing plugins for the framework
     that are application agnostic.
   * A flexible API that allows plugin developers to write plugins of various kinds."
+
+grilo-plugins_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/grilo/grilo-devel.template b/srcpkgs/grilo/grilo-devel.template
deleted file mode 100644
index 088dcff44d..0000000000
--- a/srcpkgs/grilo/grilo-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'grilo-devel'.
-#
-depends="gtk+3-devel libxml2-devel libsoup-devel grilo-${version}_${revision}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/lib/pkgconfig usr/lib
-	vmove "usr/share/vala*/*" usr/share/vala
-}
diff --git a/srcpkgs/grilo/template b/srcpkgs/grilo/template
index 28a546eb87..142467fdb4 100644
--- a/srcpkgs/grilo/template
+++ b/srcpkgs/grilo/template
@@ -6,7 +6,6 @@ build_style=gnu-configure
 configure_args="--enable-vala --disable-static --libdir=/usr/lib"
 hostmakedepends="pkg-config gobject-introspection"
 makedepends="vala-devel>=0.20 gtk+3-devel>=3.8 libxml2-devel libsoup-devel"
-subpackages="grilo-devel"
 short_desc="Framework focused on making media discovery and browsing easy"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="LGPL-2.1"
@@ -28,3 +27,20 @@ pre_configure() {
 	# fool configure to use vala-0.20
 	sed -e s,vala-0.18,vala-0.20,g -i configure
 }
+
+grilo-devel_package() {
+	depends="gtk+3-devel libxml2-devel libsoup-devel grilo-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share/gir-1.0
+		vmove usr/lib/pkgconfig
+		vmove "usr/share/vala*/*"
+	}
+}
+
+grilo_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/groff/groff-doc.template b/srcpkgs/groff/groff-doc.template
deleted file mode 100644
index 0b029a27ae..0000000000
--- a/srcpkgs/groff/groff-doc.template
+++ /dev/null
@@ -1,8 +0,0 @@
-# Template file for 'groff-doc'.
-#
-short_desc="${short_desc} - documentation"
-noarch=yes
-
-do_install() {
-	vmove usr/share/doc usr/share
-}
diff --git a/srcpkgs/groff/template b/srcpkgs/groff/template
index 184827264f..ef2ec51d7d 100644
--- a/srcpkgs/groff/template
+++ b/srcpkgs/groff/template
@@ -13,7 +13,7 @@ checksum=380864dac4772e0c0d7b1282d25d0c5fd7f63baf45c87c4657afed22a13d2076
 subpackages="groff-doc"
 
 if [ "$CROSS_BUILD" ]; then
-	hostmakedepends="perl bison groff"
+	hostmakedepends+=" groff"
 fi
 
 do_configure() {
@@ -53,3 +53,17 @@ do_install() {
 			${DESTDIR}/usr/share/groff/site-tmac/${f}.local
 	done
 }
+
+groff-doc_package() {
+	short_desc="${short_desc} - documentation"
+	noarch=yes
+	pkg_install() {
+		vmove usr/share/doc usr/share
+	}
+}
+
+groff_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/grub/grub-x86_64-efi.template b/srcpkgs/grub/grub-x86_64-efi.template
deleted file mode 100644
index 5e378c89f2..0000000000
--- a/srcpkgs/grub/grub-x86_64-efi.template
+++ /dev/null
@@ -1,9 +0,0 @@
-# Template file for 'grub-x86_64-efi'.
-#
-noarch=yes
-depends="grub>=$version dosfstools efibootmgr"
-short_desc="${short_desc} -- x86_64 EFI support"
-
-do_install() {
-	vmove usr/lib/grub/x86_64-efi usr/lib/grub
-}
diff --git a/srcpkgs/grub/template b/srcpkgs/grub/template
index 4279f9f3f7..aa02bfb568 100644
--- a/srcpkgs/grub/template
+++ b/srcpkgs/grub/template
@@ -12,13 +12,6 @@ checksum=784ec38e7edc32239ad75b8e66df04dc8bfb26d88681bc9f627133a6eb85c458
 makedepends="flex libusb-compat-devel ncurses-devel freetype-devel
  liblzma-devel device-mapper-devel font-unifont-bdf fuse-devel"
 
-depends="os-prober"
-conf_files="/etc/default/grub /etc/grub.d/40_custom"
-
-if [ "$XBPS_MACHINE" = "x86_64" ]; then
-	subpackages="grub-x86_64-efi"
-fi
-
 do_configure() {
 	local sharedargs="--enable-device-mapper --enable-cache-stats --enable-nls \
 		--enable-grub-mkfont --enable-grub-mount --disable-werror"
@@ -30,7 +23,7 @@ do_configure() {
 	mkdir $wrksrc/bios_build && cd $wrksrc/bios_build
 	../configure ${CONFIGURE_SHARED_ARGS} --with-platform=pc $sharedargs
 
-	if [ "$XBPS_MACHINE" = "x86_64" ]; then
+	if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 		mkdir $wrksrc/efi_build && cd $wrksrc/efi_build
 		../configure ${CONFIGURE_SHARED_ARGS} --with-platform=efi \
 			--target="x86_64" --disable-efiemu $sharedargs
@@ -40,14 +33,14 @@ do_configure() {
 do_build() {
 	msg_normal "Building BIOS grub...\n"
 	cd $wrksrc/bios_build && make ${makejobs}
-	if [ "$XBPS_MACHINE" = "x86_64" ]; then
+	if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 		msg_normal "Building EFI grub...\n"
 		cd $wrksrc/efi_build && make ${makejobs}
 	fi
 }
 
 do_install() {
-	if [ "$XBPS_MACHINE" = "x86_64" ]; then
+	if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
 		cd $wrksrc/efi_build && make DESTDIR=$DESTDIR/efi install
 		# Remove non-platform specific files
 		rm -rf ${DESTDIR}/efi/{boot,etc,usr/{share,bin,sbin}}
@@ -74,3 +67,25 @@ do_install() {
 		${DESTDIR}/usr/sbin/update-grub
 	chmod 755 ${DESTDIR}/usr/sbin/update-grub
 }
+
+if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
+
+grub-x86_64-efi_package() {
+	noarch=yes
+	depends="grub>=$version dosfstools efibootmgr"
+	short_desc="${short_desc} -- x86_64 EFI support"
+	pkg_install() {
+		vmove usr/lib/grub/x86_64-efi
+	}
+}
+
+fi # !x86_64
+
+grub_package() {
+	conf_files="/etc/default/grub /etc/grub.d/40_custom"
+	depends="os-prober"
+	pkg_install() {
+		vmove etc
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gsasl/gsasl-devel.template b/srcpkgs/gsasl/gsasl-devel.template
deleted file mode 100644
index cbad92f612..0000000000
--- a/srcpkgs/gsasl/gsasl-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'gsasl-devel'.
-#
-depends="libgcrypt-devel libgpg-error-devel libidn-devel libgsasl"
-short_desc="${sourcepkg} - Development files, headers, static libs, etc."
-long_desc="${long_desc}
-
- This package contains development files, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove "usr/lib/*.a" usr/lib
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/man/man3 usr/share/man
-}
diff --git a/srcpkgs/gsasl/libgsasl.template b/srcpkgs/gsasl/libgsasl.template
deleted file mode 100644
index 2180e3dc55..0000000000
--- a/srcpkgs/gsasl/libgsasl.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'libgsasl'.
-#
-short_desc="${sourcepkg} - Runtime library"
-long_desc="${long_desc}
-
- This package contains GNU SASL Runtime library."
-
-do_install() {
-	vmove "usr/lib/*.so*" usr/lib
-	vmove usr/share/locale usr/share
-}
diff --git a/srcpkgs/gsasl/template b/srcpkgs/gsasl/template
index 487aeeedaa..1a5acf58af 100644
--- a/srcpkgs/gsasl/template
+++ b/srcpkgs/gsasl/template
@@ -1,9 +1,9 @@
 # Template file for 'gsasl'
 pkgname=gsasl
 version=1.8.0
+revision=2
 build_style=gnu-configure
 configure_args="--with-gssapi-impl=mit"
-revision=2
 distfiles="${GNU_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
 makedepends="pkg-config readline-devel gnutls-devel>=3.1.5
  libidn-devel mit-krb5-devel"
@@ -25,5 +25,27 @@ long_desc="
  EXTERNAL, GSSAPI, ANONYMOUS, PLAIN, SECURID, DIGEST-MD5, SCRAM-SHA-1,
  SCRAM-SHA-1-PLUS, LOGIN, and NTLM mechanisms."
 
-subpackages="lib${pkgname} ${pkgname}-devel"
+libgsasl_package() {
+	short_desc+=" - Runtime library"
+	pkg_install() {
+		vmove "usr/lib/*.so*"
+		vmove usr/share/locale
+	}
+}
 
+gsasl-devel_package() {
+	depends="libgcrypt-devel libgpg-error-devel libidn-devel libgsasl>=${version}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove usr/lib/pkgconfig
+		vmove usr/share/man/man3
+	}
+}
+
+gsasl_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gsettings-desktop-schemas/gsettings-desktop-schemas-devel.template b/srcpkgs/gsettings-desktop-schemas/gsettings-desktop-schemas-devel.template
deleted file mode 100644
index 35b6e95d9a..0000000000
--- a/srcpkgs/gsettings-desktop-schemas/gsettings-desktop-schemas-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gsettings-desktop-schemas-devel'.
-#
-depends="${sourcepkg}>=${version}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/share/pkgconfig usr/share
-	vmove usr/share/gir-1.0 usr/share
-}
diff --git a/srcpkgs/gsettings-desktop-schemas/template b/srcpkgs/gsettings-desktop-schemas/template
index 17cd2c3dcd..e6d292aeb5 100644
--- a/srcpkgs/gsettings-desktop-schemas/template
+++ b/srcpkgs/gsettings-desktop-schemas/template
@@ -2,7 +2,6 @@
 pkgname=gsettings-desktop-schemas
 version=3.8.0
 revision=1
-subpackages="${pkgname}-devel"
 build_style=gnu-configure
 hostmakedepends="pkg-config intltool gobject-introspection"
 makedepends="libglib-devel"
@@ -15,3 +14,19 @@ checksum=9583384299c3b8cc21f99327a84527d3e7e55a26ada35ea81522dc4c05a5ae0c
 long_desc="
  ${pkgname} contains a collection of GSettings schemas for
  settings shared by various components of a desktop."
+
+gsettings-desktop-schemas-devel_package() {
+	depends="${sourcepkg}>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share/pkgconfig
+		vmove usr/share/gir-1.0
+	}
+}
+
+gsettings-desktop-schemas_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gsfonts/template b/srcpkgs/gsfonts/template
index 1e314174d2..570f1d9d61 100644
--- a/srcpkgs/gsfonts/template
+++ b/srcpkgs/gsfonts/template
@@ -4,7 +4,7 @@ version=8.11
 revision=2
 wrksrc=fonts
 distfiles="${SOURCEFORGE_SITE}/ghostscript/ghostscript-fonts-std-$version.tar.gz"
-fulldepends="font-util"
+makedepends="font-util"
 short_desc="Ghostscript standard Type1 fonts"
 homepage="http://sourceforge.net/projects/gs-fonts/"
 license="GPL-2"
@@ -13,12 +13,16 @@ checksum=0eb6f356119f2e49b2563210852e17f57f9dcc5755f350a69a46a0d641a0c401
 long_desc="
  This packages includes the Ghostscript standard Type1 fonts."
 
-font_dirs="/usr/share/fonts/Type1"
-noarch=yes
-
-
-do_install()
-{
+do_install() {
 	install -d ${DESTDIR}/usr/share/fonts/Type1
 	install -m644 ${wrksrc}/*.[ap]f[bm] ${DESTDIR}/usr/share/fonts/Type1
 }
+
+gsfonts_package() {
+	depends="font-util"
+	noarch="yes"
+	font_dirs="/usr/share/fonts/Type1"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gsl/gsl-devel.template b/srcpkgs/gsl/gsl-devel.template
deleted file mode 100644
index d96aae1379..0000000000
--- a/srcpkgs/gsl/gsl-devel.template
+++ /dev/null
@@ -1,16 +0,0 @@
-# Template file for 'gsl-devel'.
-#
-depends="glibc-devel gsl"
-short_desc="${short_desc} - development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-
-
-do_install()
-{
-	mkdir -p ${DESTDIR}/usr/lib
-	mv ${SRCPKGDESTDIR}/usr/{include,share} ${DESTDIR}/usr
-	mv ${SRCPKGDESTDIR}/usr/lib/*.a ${DESTDIR}/usr/lib
-}
diff --git a/srcpkgs/gsl/template b/srcpkgs/gsl/template
index 533bf06c42..d092642a61 100644
--- a/srcpkgs/gsl/template
+++ b/srcpkgs/gsl/template
@@ -1,17 +1,31 @@
 # Template file for 'gsl'
 pkgname=gsl
 version=1.15
-distfiles="$GNU_SITE/gsl/$pkgname-$version.tar.gz"
 build_style=gnu-configure
 revision=2
 short_desc="The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnu.org/software/gsl/gsl.html"
 license="GPL-2"
+distfiles="$GNU_SITE/gsl/$pkgname-$version.tar.gz"
 checksum=85b907e57902e2b7606ef3aef960302ffdd13bd9dc5b8fcbfa75e4f0bf340ea3
 long_desc="
  The library provides a wide range of mathematical routines such as random
  number generators, special functions and least-squares fitting. There are
  over 1000 functions in total with an extensive test suite."
 
-subpackages="$pkgname-devel"
+gsl-devel_package() {
+	depends="gsl>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share
+		vmove "usr/lib/*.a"
+	}
+}
+
+gsl_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gssdp/gssdp-devel.template b/srcpkgs/gssdp/gssdp-devel.template
deleted file mode 100644
index 40f82d6fa9..0000000000
--- a/srcpkgs/gssdp/gssdp-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'gssdp-devel'.
-#
-depends="libsoup-devel gssdp>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/gtk-doc usr/share
-	vmove usr/share/vala usr/share
-}
diff --git a/srcpkgs/gssdp/template b/srcpkgs/gssdp/template
index 5b97effa3d..b0558c79df 100644
--- a/srcpkgs/gssdp/template
+++ b/srcpkgs/gssdp/template
@@ -2,7 +2,6 @@
 pkgname=gssdp
 version=0.14.2
 revision=2
-subpackages="gssdp-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
 hostmakedepends="pkg-config intltool gobject-introspection"
@@ -16,3 +15,21 @@ checksum=a1a255ed45b45fbf0004dfc5d8e566551f4857bc16599e7f756965733f9411fc
 long_desc="
  A GObject-based API for doing SSDP (Simple Service Discovery Protocol)
  transparently."
+
+gssdp-devel_package() {
+	depends="libsoup-devel gssdp>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+		vmove usr/share/gtk-doc
+		vmove usr/share/vala
+	}
+}
+
+gssdp_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-ffmpeg/template b/srcpkgs/gst-ffmpeg/template
index b89db4dd52..5ea3d68efc 100644
--- a/srcpkgs/gst-ffmpeg/template
+++ b/srcpkgs/gst-ffmpeg/template
@@ -16,3 +16,9 @@ long_desc="
  formats through the use of the FFmpeg library. The plugin contains GStreamer
  elements for decoding 90+ formats (AVI, MPEG, OGG, Matroska, ASF, ...),
  demuxing 30+ formats and colorspace conversion."
+
+gst-ffmpeg_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-libav/template b/srcpkgs/gst-libav/template
index 4d2d4cb624..9734848155 100644
--- a/srcpkgs/gst-libav/template
+++ b/srcpkgs/gst-libav/template
@@ -11,3 +11,9 @@ license="GPL-2"
 homepage="http://gstreamer.freedesktop.org"
 distfiles="${homepage}/src/${pkgname}/${pkgname}-${version}.tar.xz"
 checksum=aef8be665096b3a4e64424fb39d7c5da57faaaf95e9fea6c1bb44295d4fb32d5
+
+gst-libav_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-bad/gst-plugins-bad-devel.template b/srcpkgs/gst-plugins-bad/gst-plugins-bad-devel.template
deleted file mode 100644
index 298cbfca46..0000000000
--- a/srcpkgs/gst-plugins-bad/gst-plugins-bad-devel.template
+++ /dev/null
@@ -1,13 +0,0 @@
-# Template file for 'gst-plugins-bad-devel'.
-#
-noarch=yes
-depends="gst-plugins-base-devel gst-plugins-bad>=$version"
-short_desc="${sourcepkg} development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gst-plugins-bad/template b/srcpkgs/gst-plugins-bad/template
index fc8a3ff721..a6b5c63a6c 100644
--- a/srcpkgs/gst-plugins-bad/template
+++ b/srcpkgs/gst-plugins-bad/template
@@ -1,18 +1,15 @@
 # Template file for 'gst-plugins-bad'.
 pkgname=gst-plugins-bad
 version=0.10.23
-revision=3
+revision=4
 build_style=gnu-configure
 configure_args="--enable-experimental --disable-static"
-# Requires libgstfft-0.10.so.0 from gst-plugins-base-0.10.36.
-subpackages="$pkgname-devel"
-depends="gst-plugins-base>=0.10.36"
 makedepends="pkg-config intltool alsa-lib-devel celt-devel openssl-devel
-gst-plugins-base-devel libdca-devel orc-devel libmms-devel exempi-devel
-libexif-devel libmpcdec-devel faac-devel SDL-devel libpng-devel>=1.5.10
-faad2-devel libdvdread-devel libdvdnav-devel librsvg-devel libsndfile-devel
-xvidcore-devel jasper-devel libmodplug-devel neon-devel libcurl-devel
-libvpx-devel libvdpau-devel libgsm-devel librtmp-devel"
+ gst-plugins-base-devel libdca-devel orc-devel libmms-devel exempi-devel
+ libexif-devel libmpcdec-devel faac-devel SDL-devel libpng-devel>=1.5.10
+ faad2-devel libdvdread-devel libdvdnav-devel librsvg-devel libsndfile-devel
+ xvidcore-devel jasper-devel libmodplug-devel neon-devel libcurl-devel
+ libvpx-devel libvdpau-devel libgsm-devel librtmp-devel"
 short_desc="GStreamer plugins from the bad set"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2, LGPL-2.1"
@@ -31,3 +28,20 @@ long_desc="
  compared to the rest. They might be close to being good quality, but
  they're missing something - be it a good code review, some documentation,
  a set of tests, a real live maintainer, or some actual wide use."
+
+gst-plugins-bad-devel_package() {
+	depends="gst-plugins-base-devel ${sourcepkg}>=${version}"
+	short_desc+=" -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gst-plugins-bad_package() {
+	# Requires libgstfft-0.10.so.0 from gst-plugins-base-0.10.36.
+	depends="gst-plugins-base>=0.10.36"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-bad1/gst-plugins-bad1-devel.template b/srcpkgs/gst-plugins-bad1/gst-plugins-bad1-devel.template
deleted file mode 100644
index 0f8c2d6083..0000000000
--- a/srcpkgs/gst-plugins-bad1/gst-plugins-bad1-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'gst-plugins-bad1-devel'.
-#
-noarch=yes
-depends="gst-plugins-base1-devel ${sourcepkg}-${version}_${revision}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-}
diff --git a/srcpkgs/gst-plugins-bad1/template b/srcpkgs/gst-plugins-bad1/template
index 0c50a9dcee..0669c0ef50 100644
--- a/srcpkgs/gst-plugins-bad1/template
+++ b/srcpkgs/gst-plugins-bad1/template
@@ -1,9 +1,8 @@
 # Template file for 'gst-plugins-bad1'.
 pkgname=gst-plugins-bad1
 version=1.0.5
-revision=1
+revision=2
 wrksrc="gst-plugins-bad-${version}"
-subpackages="${pkgname}-devel"
 build_style=gnu-configure
 configure_args="--enable-experimental --disable-static"
 short_desc="GStreamer plugins from the bad set (v1.x)"
@@ -20,3 +19,19 @@ makedepends="pkg-config intltool alsa-lib-devel celt-devel openssl-devel
  xvidcore-devel jasper-devel libmodplug-devel neon-devel libcurl-devel
  libvpx-devel libvdpau-devel libgsm-devel librtmp-devel libass-devel
  mpg123-devel soundtouch-devel"
+
+gst-plugins-bad1-devel_package() {
+	depends="gst-plugins-base1-devel ${sourcepkg}-${version}_${revision}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+	}
+}
+
+gst-plugins-bad1_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-base/gst-plugins-base-devel.template b/srcpkgs/gst-plugins-base/gst-plugins-base-devel.template
deleted file mode 100644
index dca0e90140..0000000000
--- a/srcpkgs/gst-plugins-base/gst-plugins-base-devel.template
+++ /dev/null
@@ -1,18 +0,0 @@
-# Template file for 'gst-plugins-base-devel'.
-#
-depends="libgudev-devel liboil-devel alsa-lib-devel libXv-devel libXext-devel
- libvisual-devel cdparanoia-devel libtheora-devel gstreamer-devel
- ${sourcepkg}-${version}_${revision}"
-noarch=yes
-
-short_desc="${sourcepkg} development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-	vmove "usr/share/gir*" usr/share
-}
diff --git a/srcpkgs/gst-plugins-base/template b/srcpkgs/gst-plugins-base/template
index 2dfd77a15e..849f82ea93 100644
--- a/srcpkgs/gst-plugins-base/template
+++ b/srcpkgs/gst-plugins-base/template
@@ -1,8 +1,7 @@
 # Template file for 'gst-plugins-base'.
 pkgname=gst-plugins-base
 version=0.10.36
-revision=2
-subpackages="$pkgname-devel"
+revision=3
 build_style=gnu-configure
 configure_args="--enable-experimental --disable-gnome_vfs
  --with-gudev --disable-static"
@@ -24,3 +23,22 @@ long_desc="
  plug-ins.
 
  This package contains a set of well-maintained base plug-ins."
+
+gst-plugins-base-devel_package() {
+	depends="libgudev-devel liboil-devel alsa-lib-devel libXv-devel libXext-devel
+		libvisual-devel cdparanoia-devel libtheora-devel gstreamer-devel
+		${sourcepkg}-${version}_${revision}"
+	short_desc+=" -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+		vmove "usr/share/gir*"
+	}
+}
+
+gst-plugins-base_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-base1/gst-plugins-base1-devel.template b/srcpkgs/gst-plugins-base1/gst-plugins-base1-devel.template
deleted file mode 100644
index c377002c71..0000000000
--- a/srcpkgs/gst-plugins-base1/gst-plugins-base1-devel.template
+++ /dev/null
@@ -1,15 +0,0 @@
-# Template file for 'gst-plugins-base1-devel'.
-#
-noarch=yes
-depends="gstreamer1-devel ${sourcepkg}-${version}_${revision}"
-short_desc="${sourcepkg} development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-	vmove "usr/share/gir*" usr/share
-}
diff --git a/srcpkgs/gst-plugins-base1/template b/srcpkgs/gst-plugins-base1/template
index eac42a7451..219e49c57e 100644
--- a/srcpkgs/gst-plugins-base1/template
+++ b/srcpkgs/gst-plugins-base1/template
@@ -1,12 +1,10 @@
 # Template file for 'gst-plugins-base1'.
 pkgname=gst-plugins-base1
 version=1.0.5
-revision=1
+revision=2
 wrksrc="gst-plugins-base-${version}"
-subpackages="${pkgname}-devel"
 build_style=gnu-configure
 configure_args="--enable-experimental --disable-static"
-depends="orc>=0.4.16 gstreamer1>=${version}"
 makedepends="pkg-config gobject-introspection libgudev-devel
  gstreamer1-devel>=${version} glib-devel libxml2-devel pango-devel
  cairo-devel liboil-devel alsa-lib-devel libXv-devel libXext-devel
@@ -18,3 +16,21 @@ homepage="http://gstreamer.freedesktop.org/"
 license="GPL-2, LGPL-2.1"
 distfiles="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${version}.tar.xz"
 checksum=37ce6e09b99ef3879111c861ee5090582b4fd4c764e81ab6eb2b2b4dd77d7173
+
+gst-plugins-base1-devel_package() {
+	depends="gstreamer1-devel ${sourcepkg}-${version}_${revision}"
+	short_desc+=" -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+		vmove "usr/share/gir*"
+	}
+}
+
+gst-plugins-base1_package() {
+	depends="orc>=0.4.16 gstreamer1>=${version}"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-good/template b/srcpkgs/gst-plugins-good/template
index 69f4cfdf25..02ca436f28 100644
--- a/srcpkgs/gst-plugins-good/template
+++ b/srcpkgs/gst-plugins-good/template
@@ -33,3 +33,9 @@ post_install() {
 	gconf-merge-schema ${DESTDIR}/usr/share/gconf/schemas/gstreamer-0.10.schemas \
 		--domain ${pkgname}-0.10 ${wrksrc}/*.schemas
 }
+
+gst-plugins-good_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-good1/template b/srcpkgs/gst-plugins-good1/template
index 01c5d64880..465e67d958 100644
--- a/srcpkgs/gst-plugins-good1/template
+++ b/srcpkgs/gst-plugins-good1/template
@@ -8,7 +8,6 @@ configure_args="--with-gudev --with-libv4l2 --enable-experimental
  --disable-libcaca --disable-libdv --disable-dv1394 --disable-shout2
  --disable-aalib --enable-speex"
 # XXX: build aalib, libcaca, libdv, dv1394 and shout2 modules.
-depends="gst-plugins-base1>=${version}"
 makedepends="pkg-config intltool libpng-devel>=1.5.10 libxml2-devel
  libgudev-devel libflac-devel libXdamage-devel gtk+-devel
  taglib-devel libsoup-gnome-devel gst-plugins-base1-devel>=${version}
@@ -20,3 +19,10 @@ homepage="http://gstreamer.freedesktop.org/"
 license="LGPL-2.1"
 distfiles="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${version}.tar.xz"
 checksum=53bd0b848e7896f1b22548ca4e8be56cf425e5100e121c472dff8272d5140bc5
+
+gst-plugins-good1_package() {
+	depends="gst-plugins-base1>=1.0.5"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-ugly/template b/srcpkgs/gst-plugins-ugly/template
index 2f6ae20fce..2f80a29100 100644
--- a/srcpkgs/gst-plugins-ugly/template
+++ b/srcpkgs/gst-plugins-ugly/template
@@ -24,3 +24,9 @@ long_desc="
 
  This package contains plugins from the ugly set, a set of
  good-quality plug-ins that might pose distribution problems."
+
+gst-plugins-ugly_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-plugins-ugly1/template b/srcpkgs/gst-plugins-ugly1/template
index fcee1d6035..7797eef1b3 100644
--- a/srcpkgs/gst-plugins-ugly1/template
+++ b/srcpkgs/gst-plugins-ugly1/template
@@ -17,3 +17,9 @@ makedepends="pkg-config intltool glib-devel libxml2-devel gstreamer1-devel
  gst-plugins-base1-devel libcdio-devel libdvdread-devel libmad-devel
  orc-devel>=0.4.16 liba52-devel libmpeg2-devel lame-devel
  x264-devel>=20120126.2245_2"
+
+gst-plugins-ugly1_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst-python/gst-python-devel.template b/srcpkgs/gst-python/gst-python-devel.template
deleted file mode 100644
index 9415d8bc92..0000000000
--- a/srcpkgs/gst-python/gst-python-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'gst-python-devel'.
-#
-noarch=yes
-depends="${sourcepkg}-${version}_${revision}"
-short_desc="${sourcepkg} - development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gst-python usr/share
-}
diff --git a/srcpkgs/gst-python/template b/srcpkgs/gst-python/template
index 0b69ff27bb..1931a2ebef 100644
--- a/srcpkgs/gst-python/template
+++ b/srcpkgs/gst-python/template
@@ -1,10 +1,9 @@
 # Template file for 'gst-python'.
 pkgname=gst-python
 version=0.10.22
-revision=2
+revision=3
 build_style=gnu-configure
 configure_args="--disable-static"
-depends="pygobject2 pygtk"
 makedepends="pkg-config glib-devel python-devel pygobject2-devel
  pygtk-devel libxml2-devel gstreamer-devel gst-plugins-base-devel"
 short_desc="Python bindings for GStreamer 0.10"
@@ -17,5 +16,20 @@ long_desc="
  This package provides the Python language bindings for the GStreamer 0.10
  multimedia framework."
 
-subpackages="${pkgname}-devel"
-pycompile_module="gst-0.10"
+gst-python-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc="${sourcepkg} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gst-python
+	}
+}
+
+gst-python_package() {
+	depends="pygobject2 pygtk"
+	pycompile_module="gst-0.10"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gst123/template b/srcpkgs/gst123/template
index 9a4276dbc6..58f54f4b90 100644
--- a/srcpkgs/gst123/template
+++ b/srcpkgs/gst123/template
@@ -4,11 +4,17 @@ version=0.3.2
 revision=1
 build_style=gnu-configure
 makedepends="pkg-config ncurses-devel gtk+-devel libxml2-devel
- gstreamer-devel gst-plugins-base-devel"
-fulldepends="gst-plugins-good"
+ gstreamer-devel gst-plugins-base-devel gst-plugins-good"
 short_desc="GStreamer based CLI player"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://space.twc.de/~stefan/gst123.php/"
 license="LGPL-2.1"
 distfiles="http://space.twc.de/~stefan/gst123/gst123-$version.tar.bz2"
 checksum=51033261967da4cf1beb512e156e9f647572689202a1c2aceb8cd2beb427f53d
+
+gst123_package() {
+	depends="gst-plugins-good"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gstreamer-vaapi/gstreamer-vaapi-devel.template b/srcpkgs/gstreamer-vaapi/gstreamer-vaapi-devel.template
deleted file mode 100644
index 13c12bbdd8..0000000000
--- a/srcpkgs/gstreamer-vaapi/gstreamer-vaapi-devel.template
+++ /dev/null
@@ -1,13 +0,0 @@
-# Template file for 'gstreamer-vaapi-devel'.
-#
-noarch=yes
-depends="${sourcepkg}-${version}_${revision}"
-short_desc="${short_desc} -- development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gstreamer-vaapi/template b/srcpkgs/gstreamer-vaapi/template
index c55853b943..8ebf84d465 100644
--- a/srcpkgs/gstreamer-vaapi/template
+++ b/srcpkgs/gstreamer-vaapi/template
@@ -1,12 +1,11 @@
 # Template file for 'gstreamer-vaapi'
 pkgname=gstreamer-vaapi
 version=0.4.0
-revision=1
-subpackages="${pkgname}-devel"
+revision=2
 build_style=gnu-configure
 configure_args="--disable-static"
 makedepends="pkg-config libXrandr-devel libva-devel>=1:1.1.0
-gst-plugins-base-devel gst-plugins-bad-devel MesaLib-devel"
+ gst-plugins-base-devel gst-plugins-bad-devel MesaLib-devel"
 short_desc="VA-API plugins for GStreamer"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-3"
@@ -16,3 +15,18 @@ checksum=8bd9fcdcf8bb669a8b02176f35440d46cb96f5eb342455302690af455e06189c
 long_desc="
  ${pkgname} is a collection of GStreamer plugins and helper libraries that
  allow hardware accelerated video decoding through VA-API."
+
+gstreamer-vaapi-devel_package() {
+	depends="${sourcepkg}-${version}_${revision}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gstreamer-vaapi_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gstreamer/gstreamer-devel.template b/srcpkgs/gstreamer/gstreamer-devel.template
deleted file mode 100644
index a0b03a0642..0000000000
--- a/srcpkgs/gstreamer/gstreamer-devel.template
+++ /dev/null
@@ -1,17 +0,0 @@
-# Template file for 'gstreamer-devel'.
-#
-depends="libxml2-devel glib-devel gstreamer"
-short_desc="${sourcepkg} development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-
-do_install() {
-	vmove usr/include usr
-	vmove "usr/lib/*.a" usr/lib
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-	vmove usr/share/aclocal usr/share
-	vmove "usr/share/gir*" usr/share
-}
diff --git a/srcpkgs/gstreamer/template b/srcpkgs/gstreamer/template
index a1c81e59f6..caf132fa46 100644
--- a/srcpkgs/gstreamer/template
+++ b/srcpkgs/gstreamer/template
@@ -1,16 +1,16 @@
 # Template file for 'gstreamer'.
 pkgname=gstreamer
 version=0.10.36
-distfiles="http://gstreamer.freedesktop.org/src/$pkgname/$pkgname-$version.tar.xz"
+revision=1
 build_style=gnu-configure
 configure_args="--disable-debug --disable-valgrind --enable-docbook
---with-package-origin=http://code.google.com/p/xbps"
+ --with-package-origin=http://code.google.com/p/xbps"
 makedepends="pkg-config flex python docbook-xsl libxml2-devel glib-devel gobject-introspection"
-revision=1
 short_desc="Core GStreamer libraries and elements"
 maintainer="Juan RP <xtraeme@gmail.org>"
 homepage="http://gstreamer.freedesktop.org/"
 license="LGPL-2.1"
+distfiles="http://gstreamer.freedesktop.org/src/$pkgname/$pkgname-$version.tar.xz"
 checksum=9151aa108c177054387885763fa0e433e76780f7c5655c70a5390f2a6c6871da
 long_desc="
  GStreamer is a library for constructing of graphs of media-handling components.
@@ -21,4 +21,21 @@ long_desc="
  transparently. Developers can add new codecs and filters by writing a simple
  plugin with a clean, generic interface."
 
-subpackages="$pkgname-devel"
+gstreamer-devel_package() {
+	depends="libxml2-devel glib-devel gstreamer>=${version}"
+	short_desc+=" -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+		vmove usr/share/aclocal
+		vmove "usr/share/gir*"
+	}
+}
+
+gstreamer_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gstreamer1/gstreamer1-devel.template b/srcpkgs/gstreamer1/gstreamer1-devel.template
deleted file mode 100644
index 71047a3789..0000000000
--- a/srcpkgs/gstreamer1/gstreamer1-devel.template
+++ /dev/null
@@ -1,16 +0,0 @@
-# Template file for 'gstreamer-devel'.
-#
-noarch=yes
-depends="libxml2-devel glib-devel ${sourcepkg}-${version}_${revision}"
-short_desc="${sourcepkg} development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-	vmove usr/share/aclocal usr/share
-	vmove "usr/share/gir*" usr/share
-}
diff --git a/srcpkgs/gstreamer1/template b/srcpkgs/gstreamer1/template
index 1c19870529..44c89c6db4 100644
--- a/srcpkgs/gstreamer1/template
+++ b/srcpkgs/gstreamer1/template
@@ -1,10 +1,9 @@
 # Template file for 'gstreamer1'.
 pkgname=gstreamer1
 version=1.0.5
-revision=1
+revision=2
 wrksrc="gstreamer-${version}"
 build_style=gnu-configure
-subpackages="${pkgname}-devel"
 configure_args="--disable-debug --disable-valgrind --enable-docbook
  --with-package-origin=http://code.google.com/p/xbps"
 makedepends="pkg-config flex python docbook-xsl libxml2-devel glib-devel
@@ -15,3 +14,21 @@ homepage="http://gstreamer.freedesktop.org/"
 license="LGPL-2.1"
 distfiles="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${version}.tar.xz"
 checksum=26c2827567f09a46d0a3bc1e7f8696b2ae72b047306539178079abae487c5b77
+
+gstreamer1-devel_package() {
+	depends="libxml2-devel glib-devel ${sourcepkg}-${version}_${revision}"
+	short_desc+=" -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+		vmove usr/share/aclocal
+		vmove "usr/share/gir*"
+	}
+}
+
+gstreamer1_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk+/gtk+-demo.template b/srcpkgs/gtk+/gtk+-demo.template
deleted file mode 100644
index c77a71fd45..0000000000
--- a/srcpkgs/gtk+/gtk+-demo.template
+++ /dev/null
@@ -1,8 +0,0 @@
-# Template file for 'gtk+-demo'.
-#
-short_desc="${short_desc} - demonstration application"
-
-do_install() {
-	vmove usr/bin/gtk-demo usr/bin
-	vmove usr/share/gtk-2.0 usr/share
-}
diff --git a/srcpkgs/gtk+/gtk+-devel.template b/srcpkgs/gtk+/gtk+-devel.template
deleted file mode 100644
index 062d799058..0000000000
--- a/srcpkgs/gtk+/gtk+-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'gtk+-devel'.
-#
-noarch=yes
-depends="glib-devel atk-devel cairo-devel gdk-pixbuf-devel pango-devel gtk+>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/lib/gtk-2.0/include usr/lib/gtk-2.0
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/gtk-doc usr/share
-	vmove usr/share/aclocal usr/share
-}
diff --git a/srcpkgs/gtk+/gtk-update-icon-cache.template b/srcpkgs/gtk+/gtk-update-icon-cache.template
deleted file mode 100644
index 53b1fe6c92..0000000000
--- a/srcpkgs/gtk+/gtk-update-icon-cache.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'gtk-update-icon-cache'.
-#
-short_desc="${short_desc} - The GTK+ update icon cache tool"
-replaces="gtk+<=2.24.8_3 gtk+3<=3.2.2"
-depends="gdk-pixbuf>=2.26.1_2" # libpng-1.5
-
-do_install() {
-	vmove usr/bin/gtk-update-icon-cache usr/bin
-	vinstall docs/reference/gtk/gtk-update-icon-cache.1 \
-		644 usr/share/man/man1
-}
diff --git a/srcpkgs/gtk+/template b/srcpkgs/gtk+/template
index ac40823cfa..c80d8506b9 100644
--- a/srcpkgs/gtk+/template
+++ b/srcpkgs/gtk+/template
@@ -1,7 +1,7 @@
 # Template build file for 'gtk+'.
 pkgname=gtk+
 version=2.24.17
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--enable-cups --with-xinput"
 short_desc="The GTK+ toolkit (v2)"
@@ -11,15 +11,50 @@ license="LGPL-2.1"
 distfiles="${GNOME_SITE}/gtk+/2.24/gtk+-$version.tar.xz"
 checksum=e947b2b460156d98e8e38930b82458e1d613a71eb26e927f966f7081a640f415
 
-depends="gdk-pixbuf>=2.26.1_2 gtk-update-icon-cache>=${version}_${revision}"
-fulldepends="shared-mime-info dbus-x11"
-
 makedepends="pkg-config perl glib-devel libXcursor-devel libXext-devel
  libXrender-devel libXinerama-devel libXi-devel libXrandr-devel
  libXcomposite-devel libXdamage-devel fontconfig-devel
  gdk-pixbuf-devel>=2.26.1_2 cairo-devel pango-devel>=1.28.0
- atk-devel>=1.32.0 gobject-introspection cups-devel"
+ atk-devel>=1.32.0 gobject-introspection cups-devel
+ shared-mime-info dbus-x11"
 
-conf_files="/etc/gtk-2.0/im-multipress.conf"
-triggers="gtk-immodules"
-subpackages="gtk+-devel gtk+-demo gtk-update-icon-cache"
+gtk+-devel_package() {
+	depends="glib-devel atk-devel cairo-devel gdk-pixbuf-devel pango-devel gtk+>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/gtk-2.0/include
+		vmove usr/share/gir-1.0
+		vmove usr/share/gtk-doc
+		vmove usr/share/aclocal
+	}
+}
+
+gtk+-demo_package() {
+	short_desc="${short_desc} - demonstration application"
+	pkg_install() {
+		vmove usr/bin/gtk-demo
+		vmove usr/share/gtk-2.0
+	}
+}
+
+gtk-update-icon-cache_package() {
+	short_desc="${short_desc} - The GTK+ update icon cache tool"
+	replaces="gtk+<=2.24.8_3 gtk+3<=3.2.2"
+	depends="gdk-pixbuf>=2.26.1_2" # libpng-1.5
+	pkg_install() {
+		vmove usr/bin/gtk-update-icon-cache
+		vinstall docs/reference/gtk/gtk-update-icon-cache.1 644 usr/share/man/man1
+	}
+}
+
+gtk+_package() {
+	depends="shared-mime-info dbus-x11 gdk-pixbuf>=2.26.1_2
+		gtk-update-icon-cache>=${version}_${revision}"
+	conf_files="/etc/gtk-2.0/im-multipress.conf"
+	triggers="gtk-immodules"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk+3/gtk+3-demo.template b/srcpkgs/gtk+3/gtk+3-demo.template
deleted file mode 100644
index 67ce2fbd93..0000000000
--- a/srcpkgs/gtk+3/gtk+3-demo.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gtk+3-demo'.
-#
-short_desc="${short_desc} - demonstration application"
-
-do_install() {
-	vmove usr/bin/gtk3-demo usr/bin
-	vmove usr/bin/gtk3-widget-factory usr/bin
-	vmove usr/bin/gtk3-demo-application usr/bin
-	vmove usr/share/gtk-3.0 usr/share
-}
diff --git a/srcpkgs/gtk+3/gtk+3-devel.template b/srcpkgs/gtk+3/gtk+3-devel.template
deleted file mode 100644
index 8849e77f11..0000000000
--- a/srcpkgs/gtk+3/gtk+3-devel.template
+++ /dev/null
@@ -1,16 +0,0 @@
-# Template file for 'gtk+3-devel'.
-#
-depends="glib-devel>=2.34.0 atk-devel>=2.6.0 cairo-devel gdk-pixbuf-devel
- pango-devel at-spi2-atk-devel>=2.6.0 libXcomposite-devel libXcursor-devel
- libXrandr-devel libXi-devel libXinerama-devel gtk+3-${version}_${revision}"
-
-short_desc="${short_desc} - development files"
-noarch=yes
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/gtk-doc usr/share
-	vmove usr/share/aclocal usr/share
-}
diff --git a/srcpkgs/gtk+3/template b/srcpkgs/gtk+3/template
index 2b638e0919..70afdd6ffb 100644
--- a/srcpkgs/gtk+3/template
+++ b/srcpkgs/gtk+3/template
@@ -1,7 +1,7 @@
 # Template build file for 'gtk+3'.
 pkgname=gtk+3
 version=3.8.0
-revision=1
+revision=2
 wrksrc="gtk+-${version}"
 build_style=gnu-configure
 configure_args="--enable-cups --disable-schemas-compile
@@ -14,12 +14,6 @@ license="LGPL-2.1"
 distfiles="${GNOME_SITE}/gtk+/3.8/gtk+-${version}.tar.xz"
 checksum=db1345d89d6b5f5bad411b4b2a3b1a18a2a8f98d2ab1b40d43a0197a6e6c252e
 
-triggers="gtk3-immodules"
-conf_files="/etc/gtk-3.0/im-multipress.conf"
-subpackages="gtk+3-devel gtk+3-demo"
-
-depends="gtk-update-icon-cache shared-mime-info glib>=2.36 atk>=2.8.0 dbus-x11"
-
 hostmakedepends="pkg-config"
 
 makedepends="libXcursor-devel libXdamage-devel libXext-devel libXinerama-devel
@@ -31,3 +25,36 @@ makedepends="libXcursor-devel libXdamage-devel libXext-devel libXinerama-devel
 post_install() {
 	rm -f ${DESTDIR}/usr/share/man/man1/gtk-update-icon-cache.1
 }
+
+gtk+3-devel_package() {
+	depends="glib-devel>=2.34.0 atk-devel>=2.6.0 cairo-devel gdk-pixbuf-devel
+		pango-devel at-spi2-atk-devel>=2.6.0 libXcomposite-devel libXcursor-devel
+		libXrandr-devel libXi-devel libXinerama-devel gtk+3-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+		vmove usr/share/gtk-doc
+		vmove usr/share/aclocal
+	}
+}
+
+gtk+3-demo_package() {
+	short_desc="${short_desc} - demonstration application"
+	pkg_install() {
+		vmove usr/bin/gtk3-demo
+		vmove usr/bin/gtk3-widget-factory
+		vmove usr/bin/gtk3-demo-application
+		vmove usr/share/gtk-3.0
+	}
+}
+
+gtk+3_package() {
+	triggers="gtk3-immodules"
+	conf_files="/etc/gtk-3.0/im-multipress.conf"
+	depends="gtk-update-icon-cache shared-mime-info glib>=2.36 atk>=2.8.0 dbus-x11"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk-doc/template b/srcpkgs/gtk-doc/template
index e0386b3d86..15a3998411 100644
--- a/srcpkgs/gtk-doc/template
+++ b/srcpkgs/gtk-doc/template
@@ -2,10 +2,8 @@
 pkgname=gtk-doc
 version=1.18
 revision=1
-noarch=yes
 build_style=gnu-configure
-makedepends="which pkg-config openjade python>=0"
-fulldepends="docbook-xsl gnome-doc-utils perl>=0"
+makedepends="which pkg-config openjade python docbook-xsl gnome-doc-utils perl>=0"
 short_desc="Documentation tool for public library API"
 maintainer="Juan RP <xtraeme@gmail.com>"
 license="GPL-2, FDL-"
@@ -15,3 +13,11 @@ checksum=785b591c561be1c8206f0d2575dc63558ea6199c3afe49cbc4efde94a6629a20
 long_desc="
  These tools extract documentation embedded in GNOME source code, and produce
  pretty output via DocBook SGML."
+
+gtk-doc_package() {
+	depends="docbook-xsl gnome-doc-utils perl>=0"
+	noarch="yes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk-theme-config/template b/srcpkgs/gtk-theme-config/template
index 0fc05aa193..5a566045a2 100644
--- a/srcpkgs/gtk-theme-config/template
+++ b/srcpkgs/gtk-theme-config/template
@@ -6,7 +6,6 @@ build_style=gnu-makefile
 make_build_args="PREFIX=/usr"
 make_install_args="PREFIX=/usr"
 makedepends="pkg-config glib-devel vala-devel gtk+3-devel"
-depends="desktop-file-utils"
 short_desc="Utility to set GTK Theme Preferences"
 maintainer="davehome <davehome@redthumb.info.tm>"
 license="GPL-3"
@@ -21,3 +20,10 @@ do_fetch() {
 	git clone ${url} ${pkgname}-${version}
 	cd ${pkgname}-${version} && git checkout aa7d8a3dd2d98e124032b55473599086b7a0828a
 }
+
+gtk-theme-config_package() {
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk-vnc/gtk-vnc-devel.template b/srcpkgs/gtk-vnc/gtk-vnc-devel.template
deleted file mode 100644
index b98507b199..0000000000
--- a/srcpkgs/gtk-vnc/gtk-vnc-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'gtk-vnc-devel'.
-#
-noarch=yes
-depends="glib-devel gtk+3-devel gtk-vnc>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/vala usr/share
-}
diff --git a/srcpkgs/gtk-vnc/gtk2-vnc-devel.template b/srcpkgs/gtk-vnc/gtk2-vnc-devel.template
deleted file mode 100644
index b0d7486693..0000000000
--- a/srcpkgs/gtk-vnc/gtk2-vnc-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'gtk2-vnc-devel'.
-#
-noarch=yes
-depends="gtk+-devel gtk-vnc-devel>=${version}"
-short_desc="${short_desc} - GTK+2 development files"
-
-do_install() {
-	vmove usr/include/gtk-vnc-1.0 usr/include
-	#vmove usr/share/vala/vapi/gtk-vnc-1.0.vapi usr/share/vala/vapi
-	vmove usr/share/gir-1.0/GtkVnc-1.0.gir usr/share/gir-1.0
-	vmove usr/lib/pkgconfig/gtk-vnc-1.0.pc usr/lib/pkgconfig
-}
diff --git a/srcpkgs/gtk-vnc/gtk2-vnc-python.template b/srcpkgs/gtk-vnc/gtk2-vnc-python.template
deleted file mode 100644
index 42d2e720dd..0000000000
--- a/srcpkgs/gtk-vnc/gtk2-vnc-python.template
+++ /dev/null
@@ -1,7 +0,0 @@
-# Template file for 'gtk-vnc-python'.
-#
-short_desc="${short_desc} - python bindings"
-
-do_install() {
-	vmove usr/lib/python2.7 usr/lib
-}
diff --git a/srcpkgs/gtk-vnc/gtk2-vnc.template b/srcpkgs/gtk-vnc/gtk2-vnc.template
deleted file mode 100644
index 1da8709dd3..0000000000
--- a/srcpkgs/gtk-vnc/gtk2-vnc.template
+++ /dev/null
@@ -1,8 +0,0 @@
-# Template file for 'gtk2-vnc'.
-#
-short_desc="${short_desc} - GTK+2 port"
-
-do_install() {
-	vmove "usr/lib/libgtk-vnc-1.0.so*" usr/lib
-	vmove /usr/lib/girepository-1.0/GtkVnc-1.0.typelib usr/lib/girepository-1.0
-}
diff --git a/srcpkgs/gtk-vnc/template b/srcpkgs/gtk-vnc/template
index 0d107b7d4d..acb07d0484 100644
--- a/srcpkgs/gtk-vnc/template
+++ b/srcpkgs/gtk-vnc/template
@@ -1,8 +1,7 @@
 # Template file for 'gtk-vnc'
 pkgname=gtk-vnc
 version=0.4.4
-revision=3
-subpackages="gtk2-vnc gtk2-vnc-devel gtk2-vnc-python gtk-vnc-devel"
+revision=4
 makedepends="perl>=0 pkg-config intltool gobject-introspection gtk+3-devel
  gnutls-devel>=3.1.5 libsasl-devel vala-devel python-devel pygtk-devel"
 short_desc="VNC viewer widget for GTK"
@@ -37,3 +36,46 @@ do_install() {
 	cd ${wrksrc}/gtk2-build && make DESTDIR=${DESTDIR} install
 	cd ${wrksrc}/gtk3-build && make DESTDIR=${DESTDIR} install
 }
+
+gtk2-vnc_package() {
+	short_desc="${short_desc} - GTK+2 port"
+	pkg_install() {
+		vmove "usr/lib/libgtk-vnc-1.0.so*"
+		vmove /usr/lib/girepository-1.0/GtkVnc-1.0.typelib
+	}
+}
+
+gtk2-vnc-devel_package() {
+	depends="gtk+-devel gtk-vnc-devel>=${version}"
+	short_desc="${short_desc} - GTK+2 development files"
+	pkg_install() {
+		vmove usr/include/gtk-vnc-1.0
+		#vmove usr/share/vala/vapi/gtk-vnc-1.0.vapi
+		vmove usr/share/gir-1.0/GtkVnc-1.0.gir
+		vmove usr/lib/pkgconfig/gtk-vnc-1.0.pc
+	}
+}
+
+gtk2-vnc-python_package() {
+	short_desc="${short_desc} - python bindings"
+	pkg_install() {
+		vmove usr/lib/python2.7
+	}
+}
+
+gtk-vnc-devel_package() {
+	depends="glib-devel gtk+3-devel gtk-vnc>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+		vmove usr/share/vala
+	}
+}
+
+gtk-vnc_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk-xfce-engine/template b/srcpkgs/gtk-xfce-engine/template
index cca6aed416..e0f70a396c 100644
--- a/srcpkgs/gtk-xfce-engine/template
+++ b/srcpkgs/gtk-xfce-engine/template
@@ -15,3 +15,9 @@ long_desc="
  This package contains an Xfce engine for GTK2.0 which makes you able to use
  various GTK2.0 themes with Xfce. It also contains some ready themes, but you
  are of course free to design your own."
+
+gtk-xfce-engine_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtk2-engines/template b/srcpkgs/gtk2-engines/template
index 7db3e80fdf..aff9041764 100644
--- a/srcpkgs/gtk2-engines/template
+++ b/srcpkgs/gtk2-engines/template
@@ -14,3 +14,9 @@ distfiles="ftp://ftp.archlinux.org/other/gtk-engines/gtk-engines-${version}.tar.
 checksum=6c38c297c3b95d667c5159c1f379384806fedb53a828d44ac73ff54570ed185b
 long_desc="
  This package contains theme engines for the GTK+2 toolkit."
+
+gtk2-engines_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtkaml/gtkaml-devel.template b/srcpkgs/gtkaml/gtkaml-devel.template
deleted file mode 100644
index b83e5d198a..0000000000
--- a/srcpkgs/gtkaml/gtkaml-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gtkaml-devel'.
-#
-noarch=yes
-depends="vala-devel>=0.18 libgtkaml>=${version}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gtkaml/libgtkaml.template b/srcpkgs/gtkaml/libgtkaml.template
deleted file mode 100644
index d4c1b89ad9..0000000000
--- a/srcpkgs/gtkaml/libgtkaml.template
+++ /dev/null
@@ -1,7 +0,0 @@
-# Template file for 'libgtkaml'.
-#
-short_desc="${short_desc} -- runtime library"
-
-do_install() {
-	vmove "usr/lib/*.so*" usr/lib
-}
diff --git a/srcpkgs/gtkaml/template b/srcpkgs/gtkaml/template
index fed55a5e8b..637da18175 100644
--- a/srcpkgs/gtkaml/template
+++ b/srcpkgs/gtkaml/template
@@ -1,10 +1,8 @@
 # Template file for 'gtkaml'
 pkgname=gtkaml
 version=0.5.94
-revision=1
-subpackages="libgtkaml gtkaml-devel"
+revision=2
 build_style=gnu-configure
-depends="pkg-config vala>=0.18"
 makedepends="pkg-config vala-devel>=0.18 glib-devel gtk+-devel>=2.20 libxml2-devel>=2.8"
 short_desc="An Application Markup Language for GTK+Vala"
 maintainer="pancake <pancake@nopcode.org>"
@@ -12,3 +10,26 @@ homepage="http://www.gtkaml.org"
 license="LGPL-3"
 distfiles="https://$pkgname.googlecode.com/files/$pkgname-$version.tar.bz2"
 checksum=93b7656100444b1ac226a5b09b74b86ef66d2ad391a02c8f0a536915461c0a08
+
+libgtkaml_package() {
+	short_desc="${short_desc} -- runtime library"
+	pkg_install() {
+		vmove "usr/lib/*.so*"
+	}
+}
+
+gtkaml-devel_package() {
+	depends="vala-devel>=0.18 libgtkaml>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gtkaml_package() {
+	depends="pkg-config vala>=0.18"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtkdialog/template b/srcpkgs/gtkdialog/template
index c42c6387e9..77a1c95c50 100644
--- a/srcpkgs/gtkdialog/template
+++ b/srcpkgs/gtkdialog/template
@@ -4,7 +4,6 @@ version=0.8.3
 revision=1
 build_style=gnu-configure
 make_install_args="UPDATE_ICON_CACHE=true"
-depends="hicolor-icon-theme"
 makedepends="pkg-config flex gtk+-devel libglade-devel vte-devel"
 short_desc="A small utility for fast and easy GUI building"
 maintainer="Juan RP <xtraeme@gmail.com>"
@@ -17,3 +16,10 @@ post_install() {
 	vmkdir usr/share/doc/$pkgname
 	cp -a examples ${DESTDIR}/usr/share/doc/$pkgname/examples
 }
+
+gtkdialog_package() {
+	depends="hicolor-icon-theme"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtkhtml/gtkhtml-devel.template b/srcpkgs/gtkhtml/gtkhtml-devel.template
deleted file mode 100644
index c67e8aa9e5..0000000000
--- a/srcpkgs/gtkhtml/gtkhtml-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gtkhtml-devel'.
-#
-noarch=yes
-depends="libgtkhtml-${version}_${revision}"
-short_desc="${short_desc} -- development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gtkhtml/libgtkhtml.template b/srcpkgs/gtkhtml/libgtkhtml.template
deleted file mode 100644
index 681d7b3c93..0000000000
--- a/srcpkgs/gtkhtml/libgtkhtml.template
+++ /dev/null
@@ -1,7 +0,0 @@
-# Template file for 'libgtkhtml'.
-#
-short_desc="${short_desc} -- runtime libraries"
-
-do_install() {
-	vmove "usr/lib/*.so*" usr/lib
-}
diff --git a/srcpkgs/gtkhtml/template b/srcpkgs/gtkhtml/template
index 8e17aaf02a..b9a006a9b3 100644
--- a/srcpkgs/gtkhtml/template
+++ b/srcpkgs/gtkhtml/template
@@ -1,15 +1,37 @@
 # Template file for 'gtkhtml'
 pkgname=gtkhtml
 version=4.6.2
-revision=1
+revision=2
 build_style=gnu-configure
 makedepends="pkg-config intltool gtk+3-devel>=3.6.1 enchant-devel
- libsoup-gnome-devel>=2.40 gsettings-desktop-schemas-devel>=3.6.0"
-fulldepends="gnome-icon-theme gsettings-desktop-schemas>=3.6.0 iso-codes"
-subpackages="lib${pkgname} ${pkgname}-devel"
+ libsoup-gnome-devel>=2.40 gsettings-desktop-schemas-devel>=3.6.0
+ gnome-icon-theme gsettings-desktop-schemas>=3.6.0 iso-codes"
 short_desc="Layout engine written in C using the GTK+ widget toolkit"
 maintainer="davehome <davehome@redthumb.info.tm>"
 homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/${pkgname}/4.6/${pkgname}-${version}.tar.xz"
 checksum=d0578892a5755f3ab661f0312d1a1376f4926afe72e65d83b6890011bc1f9fd7
+
+libgtkhtml_package() {
+	short_desc="${short_desc} -- runtime libraries"
+	pkg_install() {
+		vmove "usr/lib/*.so*"
+	}
+}
+
+gtkhtml-devel_package() {
+	depends="libgtkhtml-${version}_${revision}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gtkhtml_package() {
+	depends="gnome-icon-theme gsettings-desktop-schemas>=3.6.0 iso-codes"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtkmm/gtkmm-devel.template b/srcpkgs/gtkmm/gtkmm-devel.template
deleted file mode 100644
index 94b1c904ef..0000000000
--- a/srcpkgs/gtkmm/gtkmm-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'gtkmm-devel'.
-#
-depends="gtk+3-devel>=3.8 glibmm-devel>=2.35.9 atkmm-devel pangomm-devel cairomm-devel
- gtkmm-${version}_${revision}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove "usr/lib/g[dt]k*" usr/lib
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gtkmm/template b/srcpkgs/gtkmm/template
index 7313315dd6..cbf4099ee7 100644
--- a/srcpkgs/gtkmm/template
+++ b/srcpkgs/gtkmm/template
@@ -2,7 +2,6 @@
 pkgname=gtkmm
 version=3.7.12
 revision=1
-subpackages="gtkmm-devel"
 build_style=gnu-configure
 configure_args="--disable-documentation"
 hostmakedepends="pkg-config"
@@ -23,3 +22,20 @@ long_desc="
 
  Aside from the C++ interface to Gtk 3.x, this package also provides
  bindings for the ATK library."
+
+gtkmm-devel_package() {
+	depends="gtk+3-devel>=3.8 glibmm-devel>=2.35.9 atkmm-devel
+		pangomm-devel cairomm-devel gtkmm-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/g[dt]k*"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gtkmm_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtkmm2/gtkmm2-devel.template b/srcpkgs/gtkmm2/gtkmm2-devel.template
deleted file mode 100644
index 8030accc68..0000000000
--- a/srcpkgs/gtkmm2/gtkmm2-devel.template
+++ /dev/null
@@ -1,15 +0,0 @@
-# Template file for 'gtkmm2-devel'.
-#
-depends="glibmm-devel atkmm-devel pangomm-devel gtk+-devel gtkmm2-${version}_${revision}"
-noarch=yes
-
-short_desc="${sourcepkg} (development files)"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	mkdir -p ${DESTDIR}/usr/lib
-	mv ${SRCPKGDESTDIR}/usr/include ${DESTDIR}/usr
-	mv ${SRCPKGDESTDIR}/usr/lib/{g[dt]k*,pkgconfig} ${DESTDIR}/usr/lib
-}
diff --git a/srcpkgs/gtkmm2/template b/srcpkgs/gtkmm2/template
index 57ccb106c0..6305a76796 100644
--- a/srcpkgs/gtkmm2/template
+++ b/srcpkgs/gtkmm2/template
@@ -1,9 +1,8 @@
 # Template build file for 'gtkmm'.
 pkgname=gtkmm2
 version=2.24.0
-revision=5
+revision=6
 wrksrc=gtkmm-${version}
-subpackages="gtkmm2-devel"
 build_style=gnu-configure
 configure_args="--disable-static --disable-documentation"
 makedepends="pkg-config glib-devel atk-devel cairo-devel gtk+-devel
@@ -28,3 +27,19 @@ long_desc="
 pre_install() {
 	sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
 }
+
+gtkmm2-devel_package() {
+	depends="glibmm-devel atkmm-devel pangomm-devel gtk+-devel gtkmm2-${version}_${revision}"
+	short_desc+=" -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove "usr/lib/g*"
+	}
+}
+
+gtkmm2_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtksourceview/gtksourceview-devel.template b/srcpkgs/gtksourceview/gtksourceview-devel.template
deleted file mode 100644
index c78d731459..0000000000
--- a/srcpkgs/gtksourceview/gtksourceview-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'gtksourceview-devel'.
-#
-depends="gtk+3-devel libxml2-devel ${sourcepkg}-${version}_${revision}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove "usr/share/gir*" usr/share
-	vmove usr/share/gtk-doc usr/share
-}
diff --git a/srcpkgs/gtksourceview/template b/srcpkgs/gtksourceview/template
index b814f09e19..eaa9afb723 100644
--- a/srcpkgs/gtksourceview/template
+++ b/srcpkgs/gtksourceview/template
@@ -2,7 +2,6 @@
 pkgname=gtksourceview
 version=3.8.0
 revision=1
-subpackages="${pkgname}-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
 hostmakedepends="pkg-config intltool gobject-introspection"
@@ -13,3 +12,20 @@ homepage="http://www.gnome.org"
 license="GPL-2"
 distfiles="${GNOME_SITE}/$pkgname/3.8/${pkgname}-${version}.tar.xz"
 checksum=5a995f3f2c188f52f75fe8117a690f53e25b2c6fe2a39103b269acdbb70061b8
+
+gtksourceview-devel_package() {
+	depends="gtk+3-devel libxml2-devel ${sourcepkg}-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove "usr/share/gir*"
+		vmove usr/share/gtk-doc
+	}
+}
+
+gtksourceview_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtksourceview2/gtksourceview2-devel.template b/srcpkgs/gtksourceview2/gtksourceview2-devel.template
deleted file mode 100644
index 9cc783bf42..0000000000
--- a/srcpkgs/gtksourceview2/gtksourceview2-devel.template
+++ /dev/null
@@ -1,15 +0,0 @@
-# Template file for 'gtksourceview2-devel'.
-#
-depends="gtk+-devel libxml2-devel ${sourcepkg}-${version}_${revision}"
-short_desc="${sourcepkg} - development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-noarch=yes
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-}
diff --git a/srcpkgs/gtksourceview2/template b/srcpkgs/gtksourceview2/template
index 13d9800145..0b3c08b832 100644
--- a/srcpkgs/gtksourceview2/template
+++ b/srcpkgs/gtksourceview2/template
@@ -1,9 +1,8 @@
 # Template file for 'gtksourceview2'
 pkgname=gtksourceview2
 version=2.10.5
-revision=3
+revision=4
 wrksrc="gtksourceview-${version}"
-subpackages="$pkgname-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
 makedepends="pkg-config intltool gtk+-devel libxml2-devel"
@@ -17,3 +16,19 @@ long_desc="
  GtkSourceView is a text widget that extends the standard gtk+ 2.x text
  widget GtkTextView. It improves GtkTextView by implementing syntax
  highlighting and other features typical of a source editor."
+
+gtksourceview2-devel_package() {
+	depends="gtk+-devel libxml2-devel ${sourcepkg}-${version}_${revision}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+	}
+}
+
+gtksourceview2_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtksourceviewmm/gtksourceviewmm-devel.template b/srcpkgs/gtksourceviewmm/gtksourceviewmm-devel.template
deleted file mode 100644
index 709c44893f..0000000000
--- a/srcpkgs/gtksourceviewmm/gtksourceviewmm-devel.template
+++ /dev/null
@@ -1,15 +0,0 @@
-# Template file for 'gtksourceviewmm-devel'.
-#
-depends="gtkmm-devel gtksourceviewmm"
-short_desc="${sourcepkg} - development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-
-do_install()
-{
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/lib/gtksourceviewmm-3.0 usr/lib
-}
diff --git a/srcpkgs/gtksourceviewmm/template b/srcpkgs/gtksourceviewmm/template
index d9ebe70b60..11d2664829 100644
--- a/srcpkgs/gtksourceviewmm/template
+++ b/srcpkgs/gtksourceviewmm/template
@@ -1,15 +1,15 @@
 # Template file for 'gtksourceviewmm'
 pkgname=gtksourceviewmm
 version=3.2.0
-distfiles="${GNOME_SITE}/$pkgname/3.2/$pkgname-$version.tar.xz"
+revision=2
 build_style=gnu-configure
 configure_args="--disable-deprecated-api --disable-documentation"
 makedepends="pkg-config gtkmm-devel gtksourceview-devel"
-revision=1
 short_desc="GtkSourceview C++ bindings"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="GPL-2"
+distfiles="${GNOME_SITE}/$pkgname/3.2/$pkgname-$version.tar.xz"
 checksum=9dc0c44f00627e434a36ac7c3a34d9c30ebe45eb6dc682dc733a85dcead2ba66
 long_desc="
  GtkSourceView is a text widget that extends the standard gtk+ 2.x text
@@ -18,5 +18,18 @@ long_desc="
 
  ${sourcepkg} provides the C++ bindings for GtkSourceview."
 
-subpackages="$pkgname-devel"
+gtksourceviewmm-devel_package() {
+	depends="gtkmm-devel gtksourceviewmm>=${version}"
+	short_desc+=" - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/lib/gtksourceviewmm-3.0
+	}
+}
 
+gtksourceviewmm_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gtkspell/gtkspell-devel.template b/srcpkgs/gtkspell/gtkspell-devel.template
deleted file mode 100644
index eb45ce8ad1..0000000000
--- a/srcpkgs/gtkspell/gtkspell-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'gtkspell-devel'.
-#
-noarch=yes
-depends="gtk+-devel ${sourcepkg}>=${version}"
-short_desc="${short_desc} -- development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gtk-doc usr/share
-}
diff --git a/srcpkgs/gtkspell/template b/srcpkgs/gtkspell/template
index 9fa4226f8d..2008294989 100644
--- a/srcpkgs/gtkspell/template
+++ b/srcpkgs/gtkspell/template
@@ -1,11 +1,10 @@
 # Template file for 'gtkspell'
 pkgname=gtkspell
 version=2.0.16
-revision=1
+revision=2
 makedepends="pkg-config intltool gtk+-devel enchant-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
-subpackages="${pkgname}-devel"
 short_desc="Provides word-processor-style highlighting"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://gtkspell.sourceforge.net/"
@@ -16,3 +15,19 @@ long_desc="
  GtkSpell provides word-processor-style highlighting and replacement of
  misspelled words in a GtkTextView widget. Right-clicking a misspelled
  word pops up a menu of suggested replacements."
+
+gtkspell-devel_package() {
+	depends="gtk+-devel ${sourcepkg}>=${version}"
+	short_desc="${short_desc} -- development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gtk-doc
+	}
+}
+
+gtkspell_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gucharmap/gucharmap-devel.template b/srcpkgs/gucharmap/gucharmap-devel.template
deleted file mode 100644
index acd022101f..0000000000
--- a/srcpkgs/gucharmap/gucharmap-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gucharmap-devel'.
-#
-depends="gtk+3-devel ${sourcepkg}-${version}_${revision}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/lib/pkgconfig usr/lib
-	vmove usr/share/gir-1.0 usr/share
-}
diff --git a/srcpkgs/gucharmap/template b/srcpkgs/gucharmap/template
index 5e83395eda..290228de42 100644
--- a/srcpkgs/gucharmap/template
+++ b/srcpkgs/gucharmap/template
@@ -2,13 +2,11 @@
 pkgname=gucharmap
 version=3.8.0
 revision=1
-subpackages="$pkgname-devel"
 build_style=gnu-configure
 configure_args="--disable-schemas-compile --enable-introspection"
-fulldepends="hicolor-icon-theme desktop-file-utils"
 hostmakedepends="which pkg-config intltool gnome-doc-utils
  itstool gobject-introspection"
-makedepends="gtk+3-devel>=3.8"
+makedepends="gtk+3-devel>=3.8 hicolor-icon-theme desktop-file-utils"
 short_desc="GNOME Unicode Charmap"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
@@ -18,3 +16,20 @@ checksum=e312297c561e03675519de5bcd9a10971b5c1185f61b4b17eed202273cf8d5c5
 long_desc="
  gucharmap is a Unicode/ISO10646 character map and font viewer for the
  GNOME platform. It supports anti-aliased, scalable fonts and more."
+
+gucharmap-devel_package() {
+	depends="gtk+3-devel ${sourcepkg}-${version}_${revision}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/lib/pkgconfig
+		vmove usr/share/gir-1.0
+	}
+}
+
+gucharmap_package() {
+	depends="hicolor-icon-theme desktop-file-utils"
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gupnp-av/gupnp-av-devel.template b/srcpkgs/gupnp-av/gupnp-av-devel.template
deleted file mode 100644
index b09422f9bc..0000000000
--- a/srcpkgs/gupnp-av/gupnp-av-devel.template
+++ /dev/null
@@ -1,10 +0,0 @@
-# Template file for 'gupnp-av-devel'.
-#
-depends="gupnp-devel>=0.20.1_2 gupnp-av>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/share usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gupnp-av/template b/srcpkgs/gupnp-av/template
index 2ef92fa342..31f670185d 100644
--- a/srcpkgs/gupnp-av/template
+++ b/srcpkgs/gupnp-av/template
@@ -2,7 +2,6 @@
 pkgname=gupnp-av
 version=0.12.1
 revision=1
-subpackages="$pkgname-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
 hostmakedepends="pkg-config gobject-introspection"
@@ -13,3 +12,19 @@ license="LGPL-2.1"
 homepage="http://gupnp.org/"
 distfiles="${GNOME_SITE}/$pkgname/0.12/$pkgname-$version.tar.xz"
 checksum=7c73f3c1e1c8f552079b8db8971348acf85078c82ed4da883b218bd993fcd4c4
+
+gupnp-av-devel_package() {
+	depends="gupnp-devel>=0.20.1_2 gupnp-av>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gupnp-av_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gupnp-dlna/gupnp-dlna-devel.template b/srcpkgs/gupnp-dlna/gupnp-dlna-devel.template
deleted file mode 100644
index 94a6385db2..0000000000
--- a/srcpkgs/gupnp-dlna/gupnp-dlna-devel.template
+++ /dev/null
@@ -1,12 +0,0 @@
-# Template file for 'gupnp-dlna-devel'.
-#
-depends="gst-plugins-base1-devel ${sourcepkg}>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/share/gtk-doc usr/share
-	vmove usr/share/gir-1.0 usr/share
-	vmove usr/share/vala usr/share
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gupnp-dlna/template b/srcpkgs/gupnp-dlna/template
index 87012163ab..8f45b1eb4f 100644
--- a/srcpkgs/gupnp-dlna/template
+++ b/srcpkgs/gupnp-dlna/template
@@ -2,7 +2,6 @@
 pkgname=gupnp-dlna
 version=0.10.0
 revision=1
-subpackages="${pkgname}-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
 hostmakedepends="pkg-config gobject-introspection"
@@ -16,3 +15,21 @@ checksum=2d432f1a36819f4ebf01b96fc5f2b5d2771b6b7ec91f16f3fcff98fc3ed1f8e0
 long_desc="
  UPnP DLNA is a small utility library that aims to ease the DLNA-related tasks
  such as media profile guessing, transcoding to a given profile, etc."
+
+gupnp-dlna-devel_package() {
+	depends="gst-plugins-base1-devel ${sourcepkg}>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share/gtk-doc
+		vmove usr/share/gir-1.0
+		vmove usr/share/vala
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gupnp-dlna_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gupnp-igd/gupnp-igd-devel.template b/srcpkgs/gupnp-igd/gupnp-igd-devel.template
deleted file mode 100644
index bd62a5e690..0000000000
--- a/srcpkgs/gupnp-igd/gupnp-igd-devel.template
+++ /dev/null
@@ -1,14 +0,0 @@
-# Template file for 'gupnp--igd-devel'.
-#
-noarch=yes
-depends="gupnp-devel gupnp-igd>=${version}"
-short_desc="${short_desc} - development files"
-long_desc="${long_desc}
-
- This package contains files for development, headers, static libs, etc."
-
-do_install() {
-	vmove usr/include usr
-	vmove usr/share usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gupnp-igd/template b/srcpkgs/gupnp-igd/template
index d03901c8ab..404f8f2bc4 100644
--- a/srcpkgs/gupnp-igd/template
+++ b/srcpkgs/gupnp-igd/template
@@ -1,8 +1,7 @@
 # Template file for 'gupnp-igd'
 pkgname=gupnp-igd
 version=0.2.2
-revision=1
-subpackages="$pkgname-devel"
+revision=2
 build_style=gnu-configure
 configure_args="--disable-python --disable-static"
 makedepends="pkg-config glib-devel libxml2-devel libsoup-devel gssdp-devel gupnp-devel"
@@ -14,3 +13,19 @@ distfiles="${GNOME_SITE}/$pkgname/0.2/$pkgname-$version.tar.xz"
 checksum=73b6a98a0f13b29b34c3bfc07f99f78b1319211cb95a8585752873af2b9067d3
 long_desc="
  GUPNP-igd is is a library to handle UPnP IGD port mapping."
+
+gupnp-igd-devel_package() {
+	depends="gupnp-devel gupnp-igd>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+		vmove usr/share
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gupnp-igd_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gupnp/gupnp-devel.template b/srcpkgs/gupnp/gupnp-devel.template
deleted file mode 100644
index 8c886c4c3f..0000000000
--- a/srcpkgs/gupnp/gupnp-devel.template
+++ /dev/null
@@ -1,11 +0,0 @@
-# Template file for 'gupnp-devel'.
-#
-depends="gssdp-devel>=0.14.2_2 glib-devel libxml2-devel libuuid-devel gupnp>=${version}"
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/bin usr
-	vmove usr/include usr
-	vmove usr/share usr
-	vmove usr/lib/pkgconfig usr/lib
-}
diff --git a/srcpkgs/gupnp/template b/srcpkgs/gupnp/template
index 5f217357ae..af71b2f9f6 100644
--- a/srcpkgs/gupnp/template
+++ b/srcpkgs/gupnp/template
@@ -2,7 +2,6 @@
 pkgname=gupnp
 version=0.20.1
 revision=2
-subpackages="gupnp-devel"
 build_style=gnu-configure
 configure_args="--disable-static"
 hostmakedepends="pkg-config gobject-introspection"
@@ -14,3 +13,20 @@ license="LGPL-2.1"
 homepage="http://gupnp.org/"
 distfiles="${GNOME_SITE}/gupnp/0.20/gupnp-${version}.tar.xz"
 checksum=a98ab69289742a075c9a7655650e0d1944a3886bb7851bf40ed82608a9ddac61
+
+gupnp-devel_package() {
+	depends="gssdp-devel>=0.14.2_2 glib-devel libxml2-devel libuuid-devel gupnp>=${version}"
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/include
+		vmove usr/share
+		vmove usr/lib/pkgconfig
+	}
+}
+
+gupnp_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gvfs/gvfs-devel.template b/srcpkgs/gvfs/gvfs-devel.template
deleted file mode 100644
index 890480fbf0..0000000000
--- a/srcpkgs/gvfs/gvfs-devel.template
+++ /dev/null
@@ -1,8 +0,0 @@
-# Template file for 'gvfs-devel'.
-#
-noarch=yes
-short_desc="${short_desc} - development files"
-
-do_install() {
-	vmove usr/include usr
-}
diff --git a/srcpkgs/gvfs/template b/srcpkgs/gvfs/template
index 0b885cb46e..543ca32afc 100644
--- a/srcpkgs/gvfs/template
+++ b/srcpkgs/gvfs/template
@@ -1,7 +1,7 @@
 # Template file for 'gvfs'
 pkgname=gvfs
 version=1.16.0
-revision=1
+revision=2
 build_style=gnu-configure
 configure_args="--disable-hal --disable-afc
  --with-bash-completion-dir=/usr/share/bash-completion/completions"
@@ -12,10 +12,22 @@ makedepends="libbluetooth-devel dbus-glib-devel
  libgphoto2-devel libsecret-devel gtk+3-devel samba-devel systemd-devel
  avahi-glib-libs-devel udisks2-devel libgcrypt-devel libmtp-devel
  gnome-online-accounts-devel>=3.8"
-subpackages="$pkgname-devel"
 short_desc="Userspace virtual filesystem"
 maintainer="Juan RP <xtraeme@gmail.com>"
 homepage="http://www.gnome.org"
 license="LGPL-2.1"
 distfiles="${GNOME_SITE}/$pkgname/1.16/$pkgname-$version.tar.xz"
 checksum=b0cf3ec2be053ef42a25a34c64b90fdf28a5334c595452ee2e246734696dd55e
+
+gvfs-devel_package() {
+	short_desc="${short_desc} - development files"
+	pkg_install() {
+		vmove usr/include
+	}
+}
+
+gvfs_package() {
+	pkg_install() {
+		vmove usr
+	}
+}
diff --git a/srcpkgs/gzip/template b/srcpkgs/gzip/template
index 91fc8aaee1..c7104a798b 100644
--- a/srcpkgs/gzip/template
+++ b/srcpkgs/gzip/template
@@ -2,7 +2,6 @@
 pkgname=gzip
 version=1.5
 revision=2
-conflicts="chroot-gzip>=0"
 build_style=gnu-configure
 short_desc="GNU compression utility (replacement for compress)"
 maintainer="Juan RP <xtraeme@gmail.com>"
@@ -19,3 +18,10 @@ post_build() {
 	mkdir -p ${DESTDIR}/usr/share/info
 	touch -f ${DESTDIR}/usr/share/info/dir
 }
+
+gzip_package() {
+	conflicts="chroot-gzip>=0"
+	pkg_install() {
+		vmove usr
+	}
+}