diff options
-rw-r--r-- | .SRCINFO | 101 | ||||
-rw-r--r-- | 0001-Xsession-Don-t-start-ssh-agent-by-default.patch | 4 | ||||
-rw-r--r-- | 0002-nvidia-prime.patch (renamed from 0003-nvidia-prime.patch) | 0 | ||||
-rw-r--r-- | 0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch | 213 | ||||
-rw-r--r-- | PKGBUILD | 188 | ||||
-rw-r--r-- | default.pa | 10 |
6 files changed, 205 insertions, 311 deletions
@@ -1,65 +1,104 @@ pkgbase = gdm-prime - pkgver = 3.38.2 + pkgdesc = Display manager and login screen - patched with Prime support for Optimus laptops + pkgver = 46.0 pkgrel = 1 url = https://wiki.gnome.org/Projects/GDM arch = x86_64 - license = GPL + license = GPL-2.0-or-later checkdepends = check - makedepends = yelp-tools - makedepends = gobject-introspection - makedepends = git + makedepends = dconf makedepends = docbook-xsl + makedepends = git + makedepends = gobject-introspection makedepends = meson - depends = gnome-shell + makedepends = plymouth + makedepends = python-packaging + makedepends = yelp-tools + depends = accountsservice + depends = audit + depends = bash + depends = gcc-libs + depends = gdk-pixbuf2 + depends = glib2 + depends = glibc depends = gnome-session + depends = gnome-shell + depends = gtk3 + depends = json-glib + depends = keyutils + depends = libcanberra + depends = libgudev + depends = libx11 + depends = libxau + depends = libxcb + depends = libxdmcp + depends = pam + depends = systemd + depends = systemd-libs depends = upower - depends = xorg-xrdb depends = xorg-server depends = xorg-xhost - depends = libxdmcp - depends = systemd - source = git+https://gitlab.gnome.org/GNOME/gdm.git#commit=840d027559760b1cd48aa0175ffe8a15e66a9234 + depends = xorg-xrdb + source = git+https://gitlab.gnome.org/GNOME/gdm.git#commit=a5b591cd8d1db5c5d1ebe67d10ec3fe57b9bbded source = 0001-Xsession-Don-t-start-ssh-agent-by-default.patch - source = 0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch - source = 0003-nvidia-prime.patch - source = default.pa - sha256sums = SKIP - sha256sums = b9ead66d2b6207335f0bd982a835647536998e7c7c6b5248838e5d53132ca21a - sha256sums = d5cd6a401db2aa19374d477817420a39759044393bd420414fdc41881fd93597 - sha256sums = a1fb80c69454492390e4b7edac0efe55b2178c7031051d3eab99ed8c14d3e0e4 - sha256sums = e88410bcec9e2c7a22a319be0b771d1f8d536863a7fc618b6352a09d61327dcb + source = 0002-nvidia-prime.patch + b2sums = 23f2346014a2c7f39fb53627e1531d74eeb7636027e2192d8be72a1a553126796b0445b0c02691ee104835e333275881be77883b80252f9e0bc13a37a152fe6b + b2sums = f7e868fdd7cc121433de1572583eb728f4d186cd4f52c6d6c8f2ccf4a3cf781144ff71f704f13571ddb97a1ff4ec55cfa3df25d38737ad19da21e84ddc2d3ee4 + b2sums = b02edd38bb178b457379717633f935f18bea153470905d34675a587c807a4c0de79e48cc82c53ec5a139d667f57c13e652ea6d9cb3a7fcd05bdd59b9cf715b45 pkgname = gdm-prime - pkgdesc = Display manager and login screen - patched with Prime support for Optimus laptops install = gdm-prime.install groups = gnome - depends = gnome-shell + depends = accountsservice + depends = audit + depends = bash + depends = gcc-libs + depends = gdk-pixbuf2 + depends = glib2 + depends = glibc depends = gnome-session + depends = gnome-shell + depends = gtk3 + depends = json-glib + depends = keyutils + depends = libcanberra + depends = libgudev + depends = libx11 + depends = libxau + depends = libxcb + depends = libxdmcp + depends = pam + depends = systemd + depends = systemd-libs depends = upower - depends = xorg-xrdb depends = xorg-server depends = xorg-xhost - depends = libxdmcp - depends = systemd + depends = xorg-xrdb depends = libgdm optdepends = fprintd: fingerprint authentication provides = gdm conflicts = gdm + backup = etc/gdm/PostSession/Default + backup = etc/gdm/PreSession/Default + backup = etc/gdm/Xsession + backup = etc/gdm/custom.conf backup = etc/pam.d/gdm-autologin backup = etc/pam.d/gdm-fingerprint backup = etc/pam.d/gdm-launch-environment backup = etc/pam.d/gdm-password backup = etc/pam.d/gdm-smartcard - backup = etc/gdm/custom.conf - backup = etc/gdm/Xsession - backup = etc/gdm/PostSession/Default - backup = etc/gdm/PreSession/Default pkgname = libgdm-prime - pkgdesc = GDM support library - patched with Prime support for Optimus laptops - depends = systemd - depends = glib2 + pkgdesc = Display manager and login screen - patched with Prime support for Optimus laptops - support library depends = dconf + depends = gcc-libs + depends = glib2 + depends = glibc + depends = libglib-2.0.so + depends = libgobject-2.0.so + depends = libgio-2.0.so + depends = libsystemd.so + depends = systemd-libs + provides = libgdm.so provides = libgdm conflicts = libgdm - diff --git a/0001-Xsession-Don-t-start-ssh-agent-by-default.patch b/0001-Xsession-Don-t-start-ssh-agent-by-default.patch index 6eaa16349312..56699008c6fc 100644 --- a/0001-Xsession-Don-t-start-ssh-agent-by-default.patch +++ b/0001-Xsession-Don-t-start-ssh-agent-by-default.patch @@ -8,10 +8,10 @@ Subject: [PATCH] Xsession: Don't start ssh-agent by default 1 file changed, 8 deletions(-) diff --git a/data/Xsession.in b/data/Xsession.in -index 9d79558c..ff6d9de0 100755 +index 2e4de4fe384f..29ebc30ea0c5 100755 --- a/data/Xsession.in +++ b/data/Xsession.in -@@ -175,14 +175,6 @@ if [ "x$command" = "xdefault" ] ; then +@@ -207,14 +207,6 @@ if [ "x$command" = "xdefault" ] ; then fi fi diff --git a/0003-nvidia-prime.patch b/0002-nvidia-prime.patch index b4b804864ae0..b4b804864ae0 100644 --- a/0003-nvidia-prime.patch +++ b/0002-nvidia-prime.patch diff --git a/0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch b/0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch deleted file mode 100644 index 19d0b23cedd3..000000000000 --- a/0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch +++ /dev/null @@ -1,213 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Tue, 27 Oct 2020 18:59:14 +0000 -Subject: [PATCH] pam-arch: Update to match pambase 20200721.1-2 - -https://bugs.archlinux.org/task/67485 ---- - data/meson.build | 1 - - data/pam-arch/gdm-autologin.pam | 22 +++++++++-------- - data/pam-arch/gdm-fingerprint.pam | 31 +++++++++++++++--------- - data/pam-arch/gdm-launch-environment.pam | 24 ++++++++++-------- - data/pam-arch/gdm-password.pam | 17 +++++++------ - data/pam-arch/gdm-pin.pam | 13 ---------- - data/pam-arch/gdm-smartcard.pam | 31 +++++++++++++++--------- - 7 files changed, 75 insertions(+), 64 deletions(-) - delete mode 100644 data/pam-arch/gdm-pin.pam - -diff --git a/data/meson.build b/data/meson.build -index 05a20117..5d9e2847 100644 ---- a/data/meson.build -+++ b/data/meson.build -@@ -135,7 +135,6 @@ pam_data_files_map = { - 'gdm-fingerprint', - 'gdm-smartcard', - 'gdm-password', -- 'gdm-pin', - ], - 'none': [], - # We should no longer have 'autodetect' at this point -diff --git a/data/pam-arch/gdm-autologin.pam b/data/pam-arch/gdm-autologin.pam -index 99b14209..30bdf529 100644 ---- a/data/pam-arch/gdm-autologin.pam -+++ b/data/pam-arch/gdm-autologin.pam -@@ -1,13 +1,15 @@ --auth requisite pam_nologin.so --auth required pam_env.so --auth optional pam_gdm.so --auth optional pam_gnome_keyring.so --auth optional pam_permit.so -+#%PAM-1.0 - --account include system-local-login -+auth required pam_shells.so -+auth requisite pam_nologin.so -+auth optional pam_permit.so -+auth required pam_env.so -+auth [success=ok default=1] pam_gdm.so -+auth optional pam_gnome_keyring.so - --password include system-local-login -+account include system-local-login - --session optional pam_keyinit.so force revoke --session include system-local-login --session optional pam_gnome_keyring.so auto_start -+password required pam_deny.so -+ -+session include system-local-login -+session optional pam_gnome_keyring.so auto_start -diff --git a/data/pam-arch/gdm-fingerprint.pam b/data/pam-arch/gdm-fingerprint.pam -index a4808617..cc660d9a 100644 ---- a/data/pam-arch/gdm-fingerprint.pam -+++ b/data/pam-arch/gdm-fingerprint.pam -@@ -1,14 +1,23 @@ --auth required pam_tally.so onerr=succeed file=/var/log/faillog --auth required pam_shells.so --auth requisite pam_nologin.so --auth required pam_env.so --auth required pam_fprintd.so --auth optional pam_permit.so -+#%PAM-1.0 - --account include system-local-login -+auth required pam_shells.so -+auth requisite pam_nologin.so -+auth required pam_faillock.so preauth -+# Optionally use requisite above if you do not want to prompt for the fingerprint -+# on locked accounts. -+auth [success=1 default=ignore] pam_fprintd.so -+auth [default=die] pam_faillock.so authfail -+auth optional pam_permit.so -+auth required pam_env.so -+auth required pam_faillock.so authsucc -+# If you drop the above call to pam_faillock.so the lock will be done also -+# on non-consecutive authentication failures. -+auth [success=ok default=1] pam_gdm.so -+auth optional pam_gnome_keyring.so - --password required pam_fprintd.so --password optional pam_permit.so -+account include system-local-login - --session optional pam_keyinit.so force revoke --session include system-local-login -+password required pam_deny.so -+ -+session include system-local-login -+session optional pam_gnome_keyring.so auto_start -diff --git a/data/pam-arch/gdm-launch-environment.pam b/data/pam-arch/gdm-launch-environment.pam -index d59c9cb9..20d1810a 100644 ---- a/data/pam-arch/gdm-launch-environment.pam -+++ b/data/pam-arch/gdm-launch-environment.pam -@@ -1,13 +1,17 @@ --auth required pam_env.so --auth required pam_succeed_if.so audit quiet_success user = gdm --auth optional pam_permit.so -+#%PAM-1.0 - --account required pam_succeed_if.so audit quiet_success user = gdm --account optional pam_permit.so -+auth required pam_succeed_if.so audit quiet_success user in gdm:gnome-initial-setup -+auth optional pam_permit.so -+auth required pam_env.so - --password required pam_deny.so -+account required pam_succeed_if.so audit quiet_success user in gdm:gnome-initial-setup -+account optional pam_permit.so - --session optional pam_keyinit.so force revoke --session required pam_succeed_if.so audit quiet_success user = gdm --session required pam_systemd.so --session optional pam_permit.so -+password required pam_deny.so -+ -+session optional pam_loginuid.so -+session optional pam_keyinit.so force revoke -+session required pam_succeed_if.so audit quiet_success user in gdm:gnome-initial-setup -+session optional pam_permit.so -+-session optional pam_systemd.so -+session required pam_env.so user_readenv=1 -diff --git a/data/pam-arch/gdm-password.pam b/data/pam-arch/gdm-password.pam -index 8d34794e..137242a6 100644 ---- a/data/pam-arch/gdm-password.pam -+++ b/data/pam-arch/gdm-password.pam -@@ -1,11 +1,12 @@ --auth include system-local-login --auth optional pam_gnome_keyring.so -+#%PAM-1.0 - --account include system-local-login -+auth include system-local-login -+auth optional pam_gnome_keyring.so - --password include system-local-login --password optional pam_gnome_keyring.so use_authtok -+account include system-local-login - --session optional pam_keyinit.so force revoke --session include system-local-login --session optional pam_gnome_keyring.so auto_start -+password include system-local-login -+password optional pam_gnome_keyring.so use_authtok -+ -+session include system-local-login -+session optional pam_gnome_keyring.so auto_start -diff --git a/data/pam-arch/gdm-pin.pam b/data/pam-arch/gdm-pin.pam -deleted file mode 100644 -index 135e205e..00000000 ---- a/data/pam-arch/gdm-pin.pam -+++ /dev/null -@@ -1,13 +0,0 @@ --auth requisite pam_pin.so --auth include system-local-login --auth optional pam_gnome_keyring.so -- --account include system-local-login -- --password include system-local-login --password optional pam_pin.so --password optional pam_gnome_keyring.so use_authtok -- --session optional pam_keyinit.so force revoke --session include system-local-login --session optional pam_gnome_keyring.so auto_start -diff --git a/data/pam-arch/gdm-smartcard.pam b/data/pam-arch/gdm-smartcard.pam -index ec6f75d5..e6ec1299 100644 ---- a/data/pam-arch/gdm-smartcard.pam -+++ b/data/pam-arch/gdm-smartcard.pam -@@ -1,14 +1,23 @@ --auth required pam_tally.so onerr=succeed file=/var/log/faillog --auth required pam_shells.so --auth requisite pam_nologin.so --auth required pam_env.so --auth required pam_pkcs11.so wait_for_card card_only --auth optional pam_permit.so -+#%PAM-1.0 - --account include system-local-login -+auth required pam_shells.so -+auth requisite pam_nologin.so -+auth required pam_faillock.so preauth -+# Optionally use requisite above if you do not want to prompt for the smartcard -+# on locked accounts. -+auth [success=1 default=ignore] pam_pkcs11.so wait_for_card card_only -+auth [default=die] pam_faillock.so authfail -+auth optional pam_permit.so -+auth required pam_env.so -+auth required pam_faillock.so authsucc -+# If you drop the above call to pam_faillock.so the lock will be done also -+# on non-consecutive authentication failures. -+auth [success=ok default=1] pam_gdm.so -+auth optional pam_gnome_keyring.so - --password required pam_pkcs11.so --password optional pam_permit.so -+account include system-local-login - --session optional pam_keyinit.so force revoke --session include system-local-login -+password required pam_deny.so -+ -+session include system-local-login -+session optional pam_gnome_keyring.so auto_start @@ -1,55 +1,93 @@ -# Maintainer: Robin Lange <robin dot langenc at gmail dot com> -# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org> +# Maintainer: Robin Lange <robin.langenc@gmail.com> +# Contributor: Fabian Bornschein <fabiscafe-at-mailbox-dot-org> +# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org> # Contributor: Jan de Groot <jgc@archlinux.org> pkgbase=gdm-prime -pkgname=(gdm-prime libgdm-prime) -pkgver=3.38.2 +pkgname=( + gdm-prime + libgdm-prime +) +pkgver=46.0 pkgrel=1 +pkgdesc="Display manager and login screen - patched with Prime support for Optimus laptops" url="https://wiki.gnome.org/Projects/GDM" arch=(x86_64) -license=(GPL) -depends=(gnome-shell gnome-session upower xorg-xrdb xorg-server xorg-xhost - libxdmcp systemd) -makedepends=(yelp-tools gobject-introspection git docbook-xsl meson) +license=(GPL-2.0-or-later) +depends=( + accountsservice + audit + bash + gcc-libs + gdk-pixbuf2 + glib2 + glibc + gnome-session + gnome-shell + gtk3 + json-glib + keyutils + libcanberra + libgudev + libx11 + libxau + libxcb + libxdmcp + pam + systemd + systemd-libs + upower + xorg-server + xorg-xhost + xorg-xrdb +) +makedepends=( + dconf + docbook-xsl + git + gobject-introspection + meson + plymouth + python-packaging + yelp-tools +) checkdepends=(check) -_commit=840d027559760b1cd48aa0175ffe8a15e66a9234 # tags/3.38.2^0 -source=("git+https://gitlab.gnome.org/GNOME/gdm.git#commit=$_commit" - 0001-Xsession-Don-t-start-ssh-agent-by-default.patch - 0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch - 0003-nvidia-prime.patch - default.pa) -sha256sums=('SKIP' - 'b9ead66d2b6207335f0bd982a835647536998e7c7c6b5248838e5d53132ca21a' - 'd5cd6a401db2aa19374d477817420a39759044393bd420414fdc41881fd93597' - 'a1fb80c69454492390e4b7edac0efe55b2178c7031051d3eab99ed8c14d3e0e4' - 'e88410bcec9e2c7a22a319be0b771d1f8d536863a7fc618b6352a09d61327dcb') +_commit=a5b591cd8d1db5c5d1ebe67d10ec3fe57b9bbded # tags/46.0^0 +source=( + "git+https://gitlab.gnome.org/GNOME/gdm.git#commit=$_commit" + 0001-Xsession-Don-t-start-ssh-agent-by-default.patch + 0002-nvidia-prime.patch +) +b2sums=('23f2346014a2c7f39fb53627e1531d74eeb7636027e2192d8be72a1a553126796b0445b0c02691ee104835e333275881be77883b80252f9e0bc13a37a152fe6b' + 'f7e868fdd7cc121433de1572583eb728f4d186cd4f52c6d6c8f2ccf4a3cf781144ff71f704f13571ddb97a1ff4ec55cfa3df25d38737ad19da21e84ddc2d3ee4' + 'b02edd38bb178b457379717633f935f18bea153470905d34675a587c807a4c0de79e48cc82c53ec5a139d667f57c13e652ea6d9cb3a7fcd05bdd59b9cf715b45') pkgver() { cd gdm - git describe --tags | sed 's/-/+/g' + git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' } prepare() { cd gdm - git apply -3 ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch - # https://bugs.archlinux.org/task/67485 - git apply -3 ../0002-pam-arch-Update-to-match-pambase-20200721.1-2.patch + # Don't start ssh-agent by default + git apply -3 ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch - git apply -3 ../0003-nvidia-prime.patch + git apply -3 ../0002-nvidia-prime.patch } build() { - arch-meson gdm build \ - -D dbus-sys="/usr/share/dbus-1/system.d" \ - -D default-pam-config=arch \ - -D default-path="/usr/local/bin:/usr/local/sbin:/usr/bin" \ - -D gdm-xsession=true \ - -D ipv6=true \ - -D plymouth=disabled \ - -D run-dir=/run/gdm \ + local meson_options=( + -D dbus-sys="/usr/share/dbus-1/system.d" + -D default-pam-config=arch + -D default-path="/usr/local/bin:/usr/local/sbin:/usr/bin" + -D gdm-xsession=true + -D ipv6=true + -D run-dir=/run/gdm -D selinux=disabled + ) + + arch-meson gdm build "${meson_options[@]}" meson compile -C build } @@ -57,47 +95,87 @@ check() { 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_gdm-prime() { provides=(gdm) conflicts=(gdm) - pkgdesc="Display manager and login screen - patched with Prime support for Optimus laptops" depends+=(libgdm) optdepends=('fprintd: fingerprint authentication') - backup=(etc/pam.d/gdm-autologin etc/pam.d/gdm-fingerprint etc/pam.d/gdm-launch-environment - etc/pam.d/gdm-password etc/pam.d/gdm-smartcard etc/gdm/custom.conf - etc/gdm/Xsession etc/gdm/PostSession/Default etc/gdm/PreSession/Default) + backup=( + etc/gdm/PostSession/Default + etc/gdm/PreSession/Default + etc/gdm/Xsession + etc/gdm/custom.conf + etc/pam.d/gdm-autologin + etc/pam.d/gdm-fingerprint + etc/pam.d/gdm-launch-environment + etc/pam.d/gdm-password + etc/pam.d/gdm-smartcard + ) groups=(gnome) install=gdm-prime.install - DESTDIR="$pkgdir" meson install -C build + meson install -C build --destdir "$pkgdir" - install -d "$pkgdir/var/lib" - install -d "$pkgdir/var/lib/gdm" -o120 -g120 -m1770 - install -d "$pkgdir/var/lib/gdm/.config" -o120 -g120 -m700 - install -d "$pkgdir/var/lib/gdm/.config/pulse" -o120 -g120 -m700 - install -d "$pkgdir/var/lib/gdm/.local" -o120 -g120 -m700 - install -d "$pkgdir/var/lib/gdm/.local/share" -o120 -g120 - install -d "$pkgdir/var/lib/gdm/.local/share/applications" -o120 -g120 + cd "$pkgdir" + + install -d -o 0 -g 0 -m 0755 var + install -d -o 0 -g 0 -m 0755 var/lib + install -d -o 120 -g 120 -m 1770 var/lib/gdm + install -d -o 120 -g 120 -m 0700 var/lib/gdm/.config + install -d -o 120 -g 120 -m 0700 var/lib/gdm/.config/pulse + install -d -o 120 -g 120 -m 0700 var/lib/gdm/.local + install -d -o 120 -g 120 -m 0755 var/lib/gdm/.local/share + install -d -o 120 -g 120 -m 0755 var/lib/gdm/.local/share/applications # https://src.fedoraproject.org/rpms/gdm/blob/master/f/default.pa-for-gdm - install -Dt "$pkgdir/var/lib/gdm/.config/pulse" -o120 -g120 -m644 default.pa + install -o120 -g120 -m644 /dev/stdin var/lib/gdm/.config/pulse/default.pa <<END +load-module module-device-restore +load-module module-card-restore +load-module module-udev-detect +load-module module-native-protocol-unix +load-module module-default-device-restore +load-module module-always-sink +load-module module-intended-roles +load-module module-suspend-on-idle +load-module module-systemd-login +load-module module-position-event-sounds +END - install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/gdm.conf" <<END + install -Dm644 /dev/stdin usr/lib/sysusers.d/gdm.conf <<END g gdm 120 - u gdm 120 "Gnome Display Manager" /var/lib/gdm END -### Split libgdm - mkdir -p libgdm/{lib,share} - mv -t libgdm "$pkgdir"/usr/include - mv -t libgdm/lib "$pkgdir"/usr/lib/{girepository-1.0,libgdm*,pkgconfig} - mv -t libgdm/share "$pkgdir"/usr/share/{gir-1.0,glib-2.0} + _pick libgdm usr/include + _pick libgdm usr/lib/{girepository-1.0,libgdm*,pkgconfig} + _pick libgdm usr/share/{gir-1.0,glib-2.0} } package_libgdm-prime() { - provides=(libgdm) + pkgdesc+=" - support library" + depends=( + dconf + gcc-libs + glib2 + glibc + libg{lib,object,io}-2.0.so + libsystemd.so + systemd-libs + ) + provides=(libgdm.so libgdm) conflicts=(libgdm) - pkgdesc="GDM support library - patched with Prime support for Optimus laptops" - depends=(systemd glib2 dconf) - mv libgdm "$pkgdir/usr" + + mv libgdm/* "$pkgdir" } + +# vim:set sw=2 sts=-1 et: diff --git a/default.pa b/default.pa deleted file mode 100644 index 3b7d67f6cab9..000000000000 --- a/default.pa +++ /dev/null @@ -1,10 +0,0 @@ -load-module module-device-restore -load-module module-card-restore -load-module module-udev-detect -load-module module-native-protocol-unix -load-module module-default-device-restore -load-module module-always-sink -load-module module-intended-roles -load-module module-suspend-on-idle -load-module module-systemd-login -load-module module-position-event-sounds |