[packages/malcontent] - updated to 0.14.0

qboosh qboosh at pld-linux.org
Sat May 23 10:40:25 CEST 2026


commit bc944b2aa253814932c200b51ce1f9d2c461f38f
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat May 23 10:40:29 2026 +0200

    - updated to 0.14.0

 malcontent-system-tinycdb.patch |  24 ++++++
 malcontent.spec                 | 169 ++++++++++++++++++++++++++++++++++------
 no-cache-update.patch           |   8 +-
 3 files changed, 173 insertions(+), 28 deletions(-)
---
diff --git a/malcontent.spec b/malcontent.spec
index 9312242..c4cc09f 100644
--- a/malcontent.spec
+++ b/malcontent.spec
@@ -6,39 +6,55 @@
 Summary:	Library providing access to parental control settings
 Summary(pl.UTF-8):	Biblioteka zapewniająca dostęp do ustawień kontroli rodzicielskiej
 Name:		malcontent
-Version:	0.13.0
+Version:	0.14.0
 Release:	1
 License:	LGPL v2.1+ (library), CC-AS-SA v3.0 (docs)
 Group:		Applications
 #Source0Download: https://gitlab.freedesktop.org/pwithnall/malcontent/-/tags
 Source0:	https://gitlab.freedesktop.org/pwithnall/malcontent/-/archive/%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5:	744beb9479f6223da7e295036f6c9923
+# Source0-md5:	73da309a284e6cfda92e4b9343d74d02
+%define	gvdb_ref	466fc22016cf0981424e7121557611942191992f
+Source1:	https://gitlab.gnome.org/GNOME/gvdb/-/archive/%{gvdb_ref}/gvdb-%{gvdb_ref}.tar.bz2
+# Source1-md5:	3b06e5aee9403c002460bbd1e76bc511
 Patch0:		no-cache-update.patch
+Patch1:		%{name}-system-tinycdb.patch
 URL:		https://gitlab.freedesktop.org/pwithnall/malcontent
+# appstreamcli
+BuildRequires:	AppStream >= 0.12.10
 %{?with_gui:BuildRequires:	AppStream-devel >= 0.12.10}
-%{?with_gui:BuildRequires:	accountsservice-devel >= 0.6.39}
-# appstream-util in malcontent-control/meson.build
-BuildRequires:	appstream-glib >= 0.7.15
+%{?with_gui:BuildRequires:	accountsservice-devel >= 0.6.55}
 BuildRequires:	dbus-devel
 BuildRequires:	flatpak-devel
+BuildRequires:	gcc >= 6:4.7
 BuildRequires:	gettext-tools
-BuildRequires:	glib2-devel >= 1:2.60.1
+BuildRequires:	gi-docgen
+BuildRequires:	glib2-devel >= 1:2.62
+BuildRequires:	gnome-desktop4-devel >= 42
 BuildRequires:	gobject-introspection-devel
 %{?with_gui:BuildRequires:	gtk4-devel >= 4.12}
+BuildRequires:	json-glib-devel
 %{?with_gui:BuildRequires:	libadwaita-devel >= 1.6}
 BuildRequires:	libglib-testing-devel
-BuildRequires:	meson >= 1.2.0
+BuildRequires:	libgsystemservice-devel >= 0.3.0
+BuildRequires:	libsoup3-devel >= 3.0
+BuildRequires:	meson >= 1.3.0
 BuildRequires:	ninja >= 1.5
 BuildRequires:	pam-devel
 BuildRequires:	pkgconfig
 BuildRequires:	polkit-devel
+BuildRequires:	rpm-build >= 4.6
 BuildRequires:	rpmbuild(macros) >= 2.042
 BuildRequires:	sed >= 4.0
-%if %{with gui}
-Requires:	accountsservice >= 0.6.39
-Requires:	libmalcontent-ui = %{version}-%{release}
-%endif
+BuildRequires:	tinycdb-devel >= 0.81
+Requires:	accountsservice >= 0.6.55
+Requires:	libgsystemservice >= 0.3.0
 Requires:	python3-pygobject3 >= 3
+Provides:	group(malcontent-timer-ext-agent)
+Provides:	group(malcontent-timerd)
+Provides:	group(malcontent-webd)
+Provides:	user(malcontent-timer-ext-agent)
+Provides:	user(malcontent-timerd)
+Provides:	user(malcontent-webd)
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -57,11 +73,28 @@ korzystającego z systemu, a konta administratora dla rodziców; treścią
 filtrowaną będą aplikacje niewłaściwe dla dzieci ze względu np. na
 przemoc.
 
+%package control
+Summary:	Parental Controls user interface
+Summary(pl.UTF-8):	Interfejs użytkownika kontroli rodzicielskiej
+Group:		X11/Applications
+Requires:	%{name} = %{version}-%{release}
+Requires:	libmalcontent-ui = %{version}-%{release}
+
+%description control
+User interface to set parental controls and monitor usage by users.
+
+%description control -l pl.UTF-8
+Interfejs użytkownika do konfiguracji kontroli rodzicielskiej oraz
+monitorowania działań użytkowników.
+
 %package -n libmalcontent
 Summary:	Library providing access to parental control settings
 Summary(pl.UTF-8):	Biblioteka zapewniająca dostęp do ustawień kontroli rodzicielskiej
 Group:		Libraries
-Requires:	glib2 >= 1:2.60.1
+Requires:	accountsservice-libs >= 0.6.55
+Requires:	glib2 >= 1:2.62
+# for NSS
+Requires:	tinycdb >= 0.81
 
 %description -n libmalcontent
 Library providing access to parental control settings.
@@ -73,8 +106,9 @@ Biblioteka zapewniająca dostęp do ustawień kontroli rodzicielskiej.
 Summary:	Header files for libmalcontent library
 Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki libmalcontent
 Group:		Development/Libraries
+Requires:	accountsservice-devel >= 0.6.55
 Requires:	libmalcontent = %{version}-%{release}
-Requires:	glib2-devel >= 1:2.60.1
+Requires:	glib2-devel >= 1:2.62
 
 %description -n libmalcontent-devel
 Header files for libmalcontent library.
@@ -94,12 +128,23 @@ Static libmalcontent library.
 %description -n libmalcontent-static -l pl.UTF-8
 Statyczna biblioteka libmalcontent.
 
+%package -n libmalcontent-apidocs
+Summary:	API documentation for libmalcontent library
+Summary(pl.UTF-8):	Dokumentacja API biblioteki libmalcontent
+Group:		Documentation
+BuildArch:	noarch
+
+%description -n libmalcontent-apidocs
+API documentation for libmalcontent library.
+
+%description -n libmalcontent-apidocs -l pl.UTF-8
+Dokumentacja API biblioteki libmalcontent.
+
 %package -n libmalcontent-ui
 Summary:	Library providing widgets for parental control settings
 Summary(pl.UTF-8):	Biblioteka zapewniająca kontrolki do ustawień kontroli rodzicielskiej
 Group:		Libraries
 Requires:	AppStream >= 0.12.10
-Requires:	accountsservice-libs >= 0.6.39
 Requires:	gtk4 >= 4.12
 Requires:	libadwaita >= 1.6
 Requires:	libmalcontent = %{version}-%{release}
@@ -117,7 +162,6 @@ Group:		Development/Libraries
 Requires:	AppStream-devel >= 0.12.10
 Requires:	libmalcontent-devel = %{version}-%{release}
 Requires:	libmalcontent-ui = %{version}-%{release}
-Requires:	accountsservice-devel >= 0.6.39
 Requires:	flatpak-devel
 Requires:	gtk4-devel >= 4.12
 Requires:	libadwaita-devel >= 1.6
@@ -140,9 +184,24 @@ Static libmalcontent-ui library.
 %description -n libmalcontent-ui-static -l pl.UTF-8
 Statyczna biblioteka libmalcontent-ui.
 
+%package -n libmalcontent-ui-apidocs
+Summary:	API documentation for libmalcontent-ui library
+Summary(pl.UTF-8):	Dokumentacja API biblioteki libmalcontent-ui
+Group:		Documentation
+BuildArch:	noarch
+
+%description -n libmalcontent-ui-apidocs
+API documentation for libmalcontent-ui library.
+
+%description -n libmalcontent-ui-apidocs -l pl.UTF-8
+Dokumentacja API biblioteki libmalcontent-ui.
+
 %prep
 %setup -q
 %patch -P0 -p1
+%patch -P1 -p1
+
+%{__tar} xf %{SOURCE1} -C subprojects/gvdb --strip-components=1
 
 %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' malcontent-client/malcontent-client.py
 
@@ -159,15 +218,42 @@ rm -rf $RPM_BUILD_ROOT
 
 %meson_install
 
+%{__mv} $RPM_BUILD_ROOT%{_libdir}/libnss_malcontent.so* $RPM_BUILD_ROOT/%{_lib}
+
 %if %{without gui}
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/{accountsservice,help,polkit-1}
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/accountsservice/interfaces/com.endlessm.ParentalControls.*.xml
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/{help,polkit-1}
 %endif
 
-%find_lang %{name} %{?with_gui:--with-gnome}
+install -d $RPM_BUILD_ROOT%{_gidocdir}
+%{__mv} $RPM_BUILD_ROOT%{_docdir}/{libmalcontent-0,libmalcontent-ui-1} $RPM_BUILD_ROOT%{_gidocdir}
+
+%find_lang %{name}
+%if %{with gui}
+%find_lang %{name} --with-gnome --without-mo -o %{name}-control.lang
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
+%pre
+%groupadd -g 361 malcontent-timerd
+%groupadd -g 362 malcontent-timer-ext-agent
+%groupadd -g 363 malcontent-webd
+%useradd -u 361 -d /usr/share/empty -g malcontent-timerd -c "Malcontent Timer Daemon" malcontent-timerd
+%useradd -u 362 -d /usr/share/empty -g malcontent-timer-ext-agent -c "Malcontent Timer Extension Agent" malcontent-timer-ext-agent
+%useradd -u 363 -d /usr/share/empty -g malcontent-webd -c "Malcontent Web Filtering Daemon" malcontent-webd
+
+%postun
+if [ "$1" = "0" ]; then
+	%userremove malcontent-timerd
+	%userremove malcontent-timer-ext-agent
+	%userremove malcontent-webd
+	%groupremove malcontent-timerd
+	%groupremove malcontent-timer-ext-agent
+	%groupremove malcontent-webd
+fi
+
 %post	-n libmalcontent -p /sbin/ldconfig
 %postun	-n libmalcontent -p /sbin/ldconfig
 
@@ -178,11 +264,37 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %doc NEWS README.md
 %attr(755,root,root) %{_bindir}/malcontent-client
-%attr(755,root,root) /%{_lib}/security/pam_malcontent.so
+%attr(755,root,root) %{_libexecdir}/malcontent-timer-extension-agent
+%attr(755,root,root) %{_libexecdir}/malcontent-timerd
+%attr(755,root,root) %{_libexecdir}/malcontent-webd
+%attr(755,root,root) %{_libexecdir}/malcontent-webd-update
+/%{_lib}/security/pam_malcontent.so
+%{systemdunitdir}/malcontent-timer-extension-agent.service
+%{systemdunitdir}/malcontent-timerd.service
+%{systemdunitdir}/malcontent-webd-update.service
+%{systemdunitdir}/malcontent-webd-update.timer
+%{systemdunitdir}/malcontent-webd.service
+%{_sysusersdir}/malcontent-timer-extension-agent.conf
+%{_sysusersdir}/malcontent-timerd.conf
+%{_sysusersdir}/malcontent-webd.conf
+%{_datadir}/accountsservice/interfaces/org.freedesktop.Malcontent.WebFilter.xml
 %{_datadir}/dbus-1/interfaces/com.endlessm.ParentalControls.*.xml
+%{_datadir}/dbus-1/interfaces/org.freedesktop.Malcontent.WebFilter.xml
+%{_datadir}/dbus-1/services/org.freedesktop.MalcontentControl.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.MalcontentTimer1.ExtensionAgent.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.MalcontentTimer1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.MalcontentWeb1.service
+%{_datadir}/dbus-1/system.d/org.freedesktop.MalcontentTimer1.ExtensionAgent.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.MalcontentTimer1.conf
+%{_datadir}/dbus-1/system.d/org.freedesktop.MalcontentWeb1.conf
 %{_mandir}/man8/malcontent-client.8*
+%{_mandir}/man8/malcontent-timer-extension-agent.8*
+%{_mandir}/man8/malcontent-timerd.8*
+%{_mandir}/man8/malcontent-webd.8*
 
 %if %{with gui}
+%files control -f %{name}-control.lang
+%defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/malcontent-control
 %{_datadir}/accountsservice/interfaces/com.endlessm.ParentalControls.*.xml
 %{_datadir}/metainfo/org.freedesktop.MalcontentControl.metainfo.xml
@@ -196,13 +308,14 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n libmalcontent
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libmalcontent-0.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmalcontent-0.so.0
+%{_libdir}/libmalcontent-0.so.*.*.*
+%ghost %{_libdir}/libmalcontent-0.so.0
 %{_libdir}/girepository-1.0/Malcontent-0.typelib
+/%{_lib}/libnss_malcontent.so*
 
 %files -n libmalcontent-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libmalcontent-0.so
+%{_libdir}/libmalcontent-0.so
 %{_includedir}/malcontent-0
 %{_datadir}/gir-1.0/Malcontent-0.gir
 %{_pkgconfigdir}/malcontent-0.pc
@@ -213,16 +326,20 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libmalcontent-0.a
 %endif
 
+%files -n libmalcontent-apidocs
+%defattr(644,root,root,755)
+%{_gidocdir}/libmalcontent-0
+
 %if %{with gui}
 %files -n libmalcontent-ui
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libmalcontent-ui-1.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmalcontent-ui-1.so.1
+%{_libdir}/libmalcontent-ui-1.so.*.*.*
+%ghost %{_libdir}/libmalcontent-ui-1.so.1
 %{_libdir}/girepository-1.0/MalcontentUi-1.typelib
 
 %files -n libmalcontent-ui-devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libmalcontent-ui-1.so
+%{_libdir}/libmalcontent-ui-1.so
 %{_includedir}/malcontent-ui-1
 %{_datadir}/gir-1.0/MalcontentUi-1.gir
 %{_pkgconfigdir}/malcontent-ui-1.pc
@@ -233,3 +350,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/libmalcontent-ui-1.a
 %endif
 %endif
+
+%files -n libmalcontent-ui-apidocs
+%defattr(644,root,root,755)
+%{_gidocdir}/libmalcontent-ui-1
diff --git a/malcontent-system-tinycdb.patch b/malcontent-system-tinycdb.patch
new file mode 100644
index 0000000..7abd1ab
--- /dev/null
+++ b/malcontent-system-tinycdb.patch
@@ -0,0 +1,24 @@
+--- malcontent-0.14.0/meson.build.orig	2026-05-23 07:19:57.798291658 +0200
++++ malcontent-0.14.0/meson.build	2026-05-23 07:20:42.441383139 +0200
+@@ -163,9 +163,7 @@ libgsystemservice_dep = dependency('gsys
+ subproject('gvdb', default_options: {'tests': false})
+ gvdb_dep = dependency('gvdb')
+ 
+-# We need to build tinycdb as a subproject so we can use its static library;
+-# distributions don’t seem to package the static library.
+-subproject('tinycdb', required: true)
++libcdb_dep = dependency('libcdb')
+ 
+ # Keep in sync with GTK and libadwaita version dependencies below
+ add_project_arguments([
+--- malcontent-0.14.0/nss/meson.build.orig	2026-05-23 07:21:48.061027647 +0200
++++ malcontent-0.14.0/nss/meson.build	2026-05-23 07:22:03.184279051 +0200
+@@ -7,7 +7,7 @@ libnss_malcontent_sources = [
+ ]
+ 
+ libnss_malcontent_dependencies = [
+-  dependency('libcdb', static: true),
++  dependency('libcdb'),
+ ]
+ 
+ libnss_malcontent = shared_library('nss_malcontent',
diff --git a/no-cache-update.patch b/no-cache-update.patch
index 767339a..4830275 100644
--- a/no-cache-update.patch
+++ b/no-cache-update.patch
@@ -1,6 +1,6 @@
---- malcontent-0.12.0/meson.build.orig	2024-03-15 17:31:26.000000000 +0100
-+++ malcontent-0.12.0/meson.build	2024-04-19 13:30:18.988216018 +0200
-@@ -154,8 +154,8 @@
+--- malcontent-0.14.0/meson.build.orig	2026-03-18 16:08:50.000000000 +0100
++++ malcontent-0.14.0/meson.build	2026-05-22 18:46:06.258517238 +0200
+@@ -203,8 +203,8 @@ if get_option('ui').enabled()
    subdir('malcontent-control')
  
    gnome.post_install(
@@ -10,4 +10,4 @@
 +    update_desktop_database: false,
    )
  endif
- subdir('pam')
+ subdir('malcontent-timerd')
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/malcontent.git/commitdiff/bc944b2aa253814932c200b51ce1f9d2c461f38f



More information about the pld-cvs-commit mailing list