Name gnome-control-center
Description GNOME's main interface to configure various aspects of the desktop
Version 49.4-1
Package Base gnome-control-center
Homepage https://apps.gnome.org/Settings/
Maintainers ['Fabian Bornschein <fabiscafe@archlinux.org>', 'Jan Alexander Steffens (heftig) <heftig@archlinux.org>']
Contributors ['Jan de Groot <jgc@archlinux.org>']
Distro-repo https://gitlab.archlinux.org/archlinux/packaging/packages/gnome-control-center
Sources ['git+https://gitlab.gnome.org/GNOME/gnome-control-center.git#tag=49.4', 'git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git', 'git+https://gitlab.gnome.org/GNOME/libgxdp.git#commit=e68375c7aced97705953b8e3b30af9f17991153b']
Dependencies ['accountsservice', 'bolt', 'cairo', 'colord-gtk4', 'cups-pk-helper', 'dconf', 'fontconfig', 'gcc-libs', 'gcr-4', 'gdk-pixbuf2', 'glib2', 'glibc', 'gnome-bluetooth-3.0', 'gnome-color-manager', 'gnome-desktop-4', 'gnome-keybindings', 'gnome-online-accounts', 'gnome-settings-daemon', 'gnome-shell', 'gnutls', 'graphene', 'gsettings-desktop-schemas', 'gsound', 'gst-plugins-good', 'gtk4', 'hicolor-icon-theme', 'json-glib', 'krb5', 'libadwaita', 'libcolord', 'libcups', 'libepoxy', 'libgoa', 'libgtop', 'libgudev', 'libibus', 'libmalcontent', 'libmm-glib', 'libnm', 'libnma-gtk4', 'libpulse', 'libpwquality', 'libsecret', 'libsoup3', 'libwacom', 'libx11', 'libxi', 'libxml2', 'pango', 'polkit', 'smbclient', 'sound-theme-freedesktop', 'tecla', 'udisks2', 'upower', 'wayland']
Optional-Dependencies ['fwupd', 'gnome-remote-desktop', 'gnome-user-share', 'malcontent', 'networkmanager', 'openssh', 'power-profiles-daemon', 'rygel', 'system-config-printer']
Build-Dependencies ['blueprint-compiler', 'docbook-xsl', 'git', 'glib2-devel', 'meson', 'modemmanager']
Provides []
Builddate 29-01-2026 06:37:51
Architecture x86_64
Distro-Version
Licenses ['GPL-2.0-or-later']
Hash c36d0ad6d1dc57cc4cc31c942012b9bddab19c50ad6c20e72d9b6f1374c0b57a
# Maintainer: Fabian Bornschein <fabiscafe@archlinux.org>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgbase=gnome-control-center
pkgname=(
  gnome-control-center
  gnome-keybindings
)
pkgver=49.4
pkgrel=1
pkgdesc="GNOME's main interface to configure various aspects of the desktop"
url="https://apps.gnome.org/Settings/"
license=(GPL-2.0-or-later)
arch=(x86_64)
depends=(
  accountsservice
  bolt
  cairo
  colord-gtk4
  cups-pk-helper
  dconf
  fontconfig
  gcc-libs
  gcr-4
  gdk-pixbuf2
  glib2
  glibc
  gnome-bluetooth-3.0
  gnome-color-manager
  gnome-desktop-4
  gnome-online-accounts
  gnome-settings-daemon
  gnome-shell
  gnutls
  graphene
  gsettings-desktop-schemas
  gsound
  gst-plugins-good
  gtk4
  hicolor-icon-theme
  json-glib
  krb5
  libadwaita
  libcolord
  libcups
  libepoxy
  libgoa
  libgtop
  libgudev
  libibus
  libmalcontent
  libmm-glib
  libnm
  libnma-gtk4
  libpulse
  libpwquality
  libsecret
  libsoup3
  libwacom
  libx11
  libxi
  libxml2
  pango
  polkit
  smbclient
  sound-theme-freedesktop
  tecla
  udisks2
  upower
  wayland
)
makedepends=(
  blueprint-compiler
  docbook-xsl
  git
  glib2-devel
  meson
  modemmanager
)
checkdepends=(
  python-dbusmock
  python-gobject
  xorg-server-xvfb
)
source=(
  # GNOME Control Center tags use SSH signatures which makepkg doesn't understand
  "git+https://gitlab.gnome.org/GNOME/gnome-control-center.git#tag=${pkgver/[a-z]/.&}"
  "git+https://gitlab.gnome.org/GNOME/libgnome-volume-control.git"
  "git+https://gitlab.gnome.org/GNOME/libgxdp.git#commit=e68375c7aced97705953b8e3b30af9f17991153b"
)
b2sums=('fda0cb11093ebf8407e30174498bd9621387a0e2fc3113ce5282d25ccdfe1d1a682a4221e82c274a19cc3e0bafc551c0e8ed7dfbf989b3bee7c08911fa4dda45'
        'SKIP'
        '09bd02a627afffa49c11e4baec961878060d7710e852628c0e0d009d5bdc37eaa3cd1d5bbeea316f197197b9d88436ecf157ebaef41e01b66ad102e1f1c69fb2')
validpgpkeys=(
  9B60FE7947F0A3C58136817F2C2A218742E016BE # Felipe Borges (GNOME) <felipeborges@gnome.org>
)

prepare() {
  cd $pkgbase

  git submodule init
  git submodule set-url subprojects/gvc "$srcdir/libgnome-volume-control"
  git -c protocol.file.allow=always -c protocol.allow=never submodule update
}


build() {
  local meson_options=(
    -D documentation=true
    -D location-services=enabled
    -D malcontent=true
  )

  # Inject libgxdp
  export MESON_PACKAGE_CACHE_DIR="$srcdir"

  arch-meson $pkgbase build "${meson_options[@]}"
  meson compile -C build
}

check() {
  GTK_A11Y=none dbus-run-session xvfb-run -s '-nolisten local +iglx -noreset' \
    meson test -C build --print-errorlogs
}

_pick() {
  local p="$1" f d; shift
  for f; do
    d="$srcdir/$p/${f#$pkgdir/}"
    mkdir -p "$(dirname "$d")"
    mv "$f" "$d"
    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
  done
}

package_gnome-control-center() {
  depends+=(gnome-keybindings)
  optdepends=(
    'fwupd: device security panel'
    'gnome-remote-desktop: screen sharing'
    'gnome-user-share: WebDAV file sharing'
    'malcontent: application permission control'
    'networkmanager: network settings'
    'openssh: remote login'
    'power-profiles-daemon: power profiles'
    'rygel: media sharing'
    'system-config-printer: printer settings'
  )
  groups=(gnome)

  meson install -C build --destdir "$pkgdir"

  cd "$pkgdir"
  _pick gkb usr/share/gettext/its/gnome-keybindings.*
  _pick gkb usr/share/gnome-control-center/keybindings
  _pick gkb usr/share/pkgconfig/gnome-keybindings.pc
}

package_gnome-keybindings() {
  pkgdesc="Keybindings configuration for GNOME applications"
  depends=()

  mv gkb/* "$pkgdir"
}

# vim:set sw=2 sts=-1 et: