Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package policycoreutils for openSUSE:Factory
checked in at 2026-02-09 11:42:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/policycoreutils (Old)
and /work/SRC/openSUSE:Factory/.policycoreutils.new.1670 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "policycoreutils"
Mon Feb 9 11:42:56 2026 rev:86 rq:1331579 version:3.10
Changes:
--------
--- /work/SRC/openSUSE:Factory/policycoreutils/policycoreutils.changes
2025-07-24 18:34:35.926493226 +0200
+++
/work/SRC/openSUSE:Factory/.policycoreutils.new.1670/policycoreutils.changes
2026-02-09 11:43:19.765669847 +0100
@@ -1,0 +2,18 @@
+Thu Feb 5 16:30:31 UTC 2026 - Cathy Hu <[email protected]>
+
+- Update to version 3.10
+ https://github.com/SELinuxProject/selinux/releases/tag/3.10
+ * setfiles: Add -A option to disable SELINUX_RESTORECON_ADD_ASSOC
+ * semanage: Reset active value when deleting boolean customizations
+ * python/sepolicy: Add support for DNF5
+ * Man page improvments
+- keyring: Add key of Jason Zaman <[email protected]>
+ * added 63191CE94183098689CAB8DB7EF137EC935B0EAF [expires: 2026-02-08]
+
+-------------------------------------------------------------------
+Wed Jul 30 13:59:48 UTC 2025 - Ignaz Forster <[email protected]>
+
+- Move /var/lib/sepolgen/perm_map to /usr/share/sepolgen and create
+ a symlink instead (boo#1233024)
+
+-------------------------------------------------------------------
Old:
----
policycoreutils-3.9.tar.gz
policycoreutils-3.9.tar.gz.asc
selinux-dbus-3.9.tar.gz
selinux-dbus-3.9.tar.gz.asc
selinux-gui-3.9.tar.gz
selinux-gui-3.9.tar.gz.asc
selinux-python-3.9.tar.gz
selinux-python-3.9.tar.gz.asc
semodule-utils-3.9.tar.gz
semodule-utils-3.9.tar.gz.asc
New:
----
policycoreutils-3.10.tar.gz
policycoreutils-3.10.tar.gz.asc
selinux-dbus-3.10.tar.gz
selinux-dbus-3.10.tar.gz.asc
selinux-gui-3.10.tar.gz
selinux-gui-3.10.tar.gz.asc
selinux-python-3.10.tar.gz
selinux-python-3.10.tar.gz.asc
semodule-utils-3.10.tar.gz
semodule-utils-3.10.tar.gz.asc
sepolgen.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ policycoreutils.spec ++++++
--- /var/tmp/diff_new_pack.yy0B9h/_old 2026-02-09 11:43:22.005764088 +0100
+++ /var/tmp/diff_new_pack.yy0B9h/_new 2026-02-09 11:43:22.005764088 +0100
@@ -30,12 +30,12 @@
%endif
%define libaudit_ver 2.2
-%define libsepol_ver 3.9
-%define libsemanage_ver 3.9
-%define libselinux_ver 3.9
+%define libsepol_ver 3.10
+%define libsemanage_ver 3.10
+%define libselinux_ver 3.10
%define setools_ver 4.1.1
Name: policycoreutils
-Version: 3.9
+Version: 3.10
Release: 0
Summary: SELinux policy core utilities
License: GPL-2.0-or-later
@@ -54,6 +54,7 @@
Source16:
https://github.com/SELinuxProject/selinux/releases/download/%{version}/selinux-dbus-%{version}.tar.gz
Source17:
https://github.com/SELinuxProject/selinux/releases/download/%{version}/selinux-dbus-%{version}.tar.gz.asc
Source18: policycoreutils-rpmlintrc
+Source19: sepolgen.conf
Patch0: make_targets.patch
Patch2: get_os_version.patch
Patch3: run_init.pamd.patch
@@ -280,8 +281,11 @@
mkdir -p %{buildroot}%{_libexecdir}/selinux/hll/
mkdir -p %{buildroot}%{_localstatedir}/lib/sepolgen
+mkdir -p %{buildroot}%{_tmpfilesdir}
(cd selinux-python-%{version}/po && make DESTDIR=%{buildroot} install)
+cp -a %{buildroot}%{_localstatedir}/lib/sepolgen
%{buildroot}%{_datadir}/sepolgen
+install -m 644 %{SOURCE19} %{buildroot}%{_tmpfilesdir}
%find_lang %{name}
%find_lang selinux-python
%find_lang selinux-gui
@@ -441,7 +445,10 @@
%{_mandir}/man8/sepolicy.8%{?ext_man}
%{_mandir}/man8/sepolgen.8%{?ext_man}
%dir %{_localstatedir}/lib/sepolgen
-%{_localstatedir}/lib/sepolgen/perm_map
+%ghost %{_localstatedir}/lib/sepolgen/perm_map
+%dir %{_datadir}/sepolgen
+%{_datadir}/sepolgen/perm_map
+%{_tmpfilesdir}/sepolgen.conf
%{_datadir}/bash-completion/completions/sepolicy
%files newrole
++++++ get_os_version.patch ++++++
--- /var/tmp/diff_new_pack.yy0B9h/_old 2026-02-09 11:43:22.049765939 +0100
+++ /var/tmp/diff_new_pack.yy0B9h/_new 2026-02-09 11:43:22.053766107 +0100
@@ -1,7 +1,7 @@
-Index: policycoreutils-3.9/selinux-python-3.9/sepolicy/sepolicy/__init__.py
+Index: policycoreutils-3.10/selinux-python-3.10/sepolicy/sepolicy/__init__.py
===================================================================
---- policycoreutils-3.9.orig/selinux-python-3.9/sepolicy/sepolicy/__init__.py
-+++ policycoreutils-3.9/selinux-python-3.9/sepolicy/sepolicy/__init__.py
+--- policycoreutils-3.10.orig/selinux-python-3.10/sepolicy/sepolicy/__init__.py
++++ policycoreutils-3.10/selinux-python-3.10/sepolicy/sepolicy/__init__.py
@@ -1246,7 +1246,8 @@ def get_os_version():
import distro
system_release = distro.name(pretty=True)
++++++ policycoreutils-3.9.tar.gz -> policycoreutils-3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/Makefile
new/policycoreutils-3.10/Makefile
--- old/policycoreutils-3.9/Makefile 2025-07-16 12:55:13.000000000 +0200
+++ new/policycoreutils-3.10/Makefile 2026-02-02 03:01:16.000000000 +0100
@@ -6,7 +6,7 @@
LIBSEMANAGE_LDLIBS := $(shell
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH):../libsemanage/src" $(PKG_CONFIG) --libs
libsemanage)
export LIBSELINUX_LDLIBS LIBSEMANAGE_LDLIBS
-all install relabel clean indent:
+all install relabel clean:
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/VERSION
new/policycoreutils-3.10/VERSION
--- old/policycoreutils-3.9/VERSION 2025-07-16 12:55:13.000000000 +0200
+++ new/policycoreutils-3.10/VERSION 2026-02-02 03:01:16.000000000 +0100
@@ -1 +1 @@
-3.9
+3.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/hll/Makefile
new/policycoreutils-3.10/hll/Makefile
--- old/policycoreutils-3.9/hll/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/hll/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -1,6 +1,6 @@
SUBDIRS = pp
-all install relabel clean indent:
+all install relabel clean:
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/hll/pp/Makefile
new/policycoreutils-3.10/hll/pp/Makefile
--- old/policycoreutils-3.9/hll/pp/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/hll/pp/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -25,6 +25,3 @@
clean:
-rm -f pp $(PP_OBJS)
-
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/load_policy/Makefile
new/policycoreutils-3.10/load_policy/Makefile
--- old/policycoreutils-3.9/load_policy/Makefile 2025-07-16
12:55:13.000000000 +0200
+++ new/policycoreutils-3.10/load_policy/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -28,8 +28,5 @@
clean:
-rm -f $(TARGETS) *.o
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel:
/sbin/restorecon $(DESTDIR)$(SBINDIR)/load_policy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/newrole/Makefile
new/policycoreutils-3.10/newrole/Makefile
--- old/policycoreutils-3.9/newrole/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/newrole/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -87,9 +87,6 @@
clean:
rm -f newrole *.o
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel: install
/sbin/restorecon $(DESTDIR)$(BINDIR)/newrole
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/run_init/Makefile
new/policycoreutils-3.10/run_init/Makefile
--- old/policycoreutils-3.9/run_init/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/run_init/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -53,8 +53,5 @@
clean:
-rm -f $(TARGETS) *.o
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel: install
/sbin/restorecon $(DESTDIR)$(SBINDIR)/run_init
$(DESTDIR)$(SBINDIR)/open_init_pty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/scripts/Makefile
new/policycoreutils-3.10/scripts/Makefile
--- old/policycoreutils-3.9/scripts/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/scripts/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -21,6 +21,4 @@
clean:
-indent:
-
relabel:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/secon/Makefile
new/policycoreutils-3.10/secon/Makefile
--- old/policycoreutils-3.9/secon/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/secon/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -35,9 +35,6 @@
clean:
rm -f *.o core* secon *~ *.bak
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
bare: clean
.PHONY: clean bare
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/semodule/Makefile
new/policycoreutils-3.10/semodule/Makefile
--- old/policycoreutils-3.9/semodule/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/semodule/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -35,7 +35,3 @@
clean:
-rm -f semodule *.o genhomedircon
-
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/sestatus/Makefile
new/policycoreutils-3.10/sestatus/Makefile
--- old/policycoreutils-3.9/sestatus/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/sestatus/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -41,7 +41,4 @@
clean:
rm -f sestatus *.o
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setfiles/Makefile
new/policycoreutils-3.10/setfiles/Makefile
--- old/policycoreutils-3.9/setfiles/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/setfiles/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -43,8 +43,5 @@
clean:
rm -f setfiles restorecon restorecon_xattr *.o
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel: install
$(DESTDIR)$(SBINDIR)/restorecon $(DESTDIR)$(SBINDIR)/setfiles
$(DESTDIR)$(SBINDIR)/restorecon_xattr
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setfiles/restore.c
new/policycoreutils-3.10/setfiles/restore.c
--- old/policycoreutils-3.9/setfiles/restore.c 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/setfiles/restore.c 2026-02-02 03:01:16.000000000
+0100
@@ -43,7 +43,7 @@
opts->syslog_changes | opts->log_matches |
opts->ignore_noent | opts->ignore_mounts |
opts->mass_relabel | opts->conflict_error |
- opts->count_errors;
+ opts->count_errors | opts->count_relabeled;
/* Use setfiles, restorecon and restorecond own handles */
selinux_restorecon_set_sehandle(opts->hnd);
@@ -75,7 +75,7 @@
}
int process_glob(char *name, struct restore_opts *opts, size_t nthreads,
- long unsigned *skipped_errors)
+ long unsigned *skipped_errors, long unsigned *relabeled_files)
{
glob_t globbuf;
size_t i, len;
@@ -99,8 +99,12 @@
nthreads);
if (rc < 0)
errors = rc;
- else if (opts->restorecon_flags &
SELINUX_RESTORECON_COUNT_ERRORS)
- *skipped_errors +=
selinux_restorecon_get_skipped_errors();
+ else {
+ if (opts->restorecon_flags &
SELINUX_RESTORECON_COUNT_ERRORS)
+ *skipped_errors +=
selinux_restorecon_get_skipped_errors();
+ if (opts->restorecon_flags &
SELINUX_RESTORECON_COUNT_RELABELED)
+ *relabeled_files +=
selinux_restorecon_get_relabeled_files();
+ }
}
globfree(&globbuf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setfiles/restore.h
new/policycoreutils-3.10/setfiles/restore.h
--- old/policycoreutils-3.9/setfiles/restore.h 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/setfiles/restore.h 2026-02-02 03:01:16.000000000
+0100
@@ -37,6 +37,7 @@
unsigned int ignore_mounts;
unsigned int conflict_error;
unsigned int count_errors;
+ unsigned int count_relabeled;
/* restorecon_flags holds | of above for restore_init() */
unsigned int restorecon_flags;
char *rootpath;
@@ -52,7 +53,7 @@
void restore_finish(void);
void add_exclude(const char *directory);
int process_glob(char *name, struct restore_opts *opts, size_t nthreads,
- long unsigned *skipped_errors);
+ long unsigned *skipped_errors, long unsigned *relabeled_files);
extern char **exclude_list;
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setfiles/restorecon.8
new/policycoreutils-3.10/setfiles/restorecon.8
--- old/policycoreutils-3.9/setfiles/restorecon.8 2025-07-16
12:55:13.000000000 +0200
+++ new/policycoreutils-3.10/setfiles/restorecon.8 2026-02-02
03:01:16.000000000 +0100
@@ -153,6 +153,9 @@
.BR selabel_stats (3)
results.
.TP
+.B \-c
+count and display the number of (would be) relabeled files. The exit code will
be set to 0 only if at least one file is relabeled.
+.TP
.B \-0
the separator for the input items is assumed to be the null character
(instead of the white space). The quotes and the backslash characters are
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setfiles/setfiles.8
new/policycoreutils-3.10/setfiles/setfiles.8
--- old/policycoreutils-3.9/setfiles/setfiles.8 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/setfiles/setfiles.8 2026-02-02
03:01:16.000000000 +0100
@@ -23,6 +23,7 @@
.RB [ \-I | \-D ]
.RB [ \-T
.IR nthreads ]
+.RB [ \-A ]
.I spec_file
.IR pathname \ ...
@@ -187,6 +188,10 @@
threads. Specify 0 to create as many threads as there are available
CPU cores; 1 to use only a single thread (default); or any positive
number to use the given number of threads (if possible).
+.TP
+.B \-A
+do not track inodes with multiple hard links or bind mounts that would
+match different contexts (saves memory)
.SH "ARGUMENTS"
.TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setfiles/setfiles.c
new/policycoreutils-3.10/setfiles/setfiles.c
--- old/policycoreutils-3.9/setfiles/setfiles.c 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/setfiles/setfiles.c 2026-02-02
03:01:16.000000000 +0100
@@ -35,14 +35,14 @@
{
if (iamrestorecon) {
fprintf(stderr,
- "usage: %s [-iIDFUmnprRv0xT] [-e excludedir]
pathname...\n"
- "usage: %s [-iIDFUmnprRv0xT] [-e excludedir] -f
filename\n",
+ "usage: %s [-ciIDFUmnprRv0xT] [-e excludedir]
pathname...\n"
+ "usage: %s [-ciIDFUmnprRv0xT] [-e excludedir] -f
filename\n",
name, name);
} else {
fprintf(stderr,
- "usage: %s [-diIDlmnpqvCEFUWT] [-e excludedir] [-r
alt_root_path] [-c policyfile] spec_file pathname...\n"
- "usage: %s [-diIDlmnpqvCEFUWT] [-e excludedir] [-r
alt_root_path] [-c policyfile] spec_file -f filename\n"
- "usage: %s -s [-diIDlmnpqvFUWT] spec_file\n",
+ "usage: %s [-diIDlmnpqvACEFUWT] [-e excludedir] [-r
alt_root_path] [-c policyfile] spec_file pathname...\n"
+ "usage: %s [-diIDlmnpqvACEFUWT] [-e excludedir] [-r
alt_root_path] [-c policyfile] spec_file -f filename\n"
+ "usage: %s -s [-diIDlmnpqvAFUWT] spec_file\n",
name, name, name);
}
exit(-1);
@@ -146,11 +146,12 @@
size_t buf_len, nthreads = 1;
const char *base;
int errors = 0;
- const char *ropts = "e:f:hiIDlmno:pqrsvFURW0xT:";
- const char *sopts = "c:de:f:hiIDlmno:pqr:svCEFUR:W0T:";
+ const char *ropts = "ce:f:hiIDlmno:pqrsvFURW0xT:";
+ const char *sopts = "c:de:f:hiIDlmno:pqr:svACEFUR:W0T:";
const char *opts;
union selinux_callback cb;
long unsigned skipped_errors;
+ long unsigned relabeled_files;
/* Initialize variables */
memset(&r_opts, 0, sizeof(r_opts));
@@ -160,6 +161,7 @@
request_digest = 0;
policyfile = NULL;
skipped_errors = 0;
+ relabeled_files = 0;
if (!argv[0]) {
fprintf(stderr, "Called without required program name!\n");
@@ -223,7 +225,10 @@
while ((opt = getopt(argc, argv, opts)) > 0) {
switch (opt) {
case 'c':
- {
+ if (iamrestorecon) {
+ r_opts.count_relabeled =
SELINUX_RESTORECON_COUNT_RELABELED;
+ break;
+ } else {
FILE *policystream;
policyfile = optarg;
@@ -375,6 +380,9 @@
if (*optarg == '\0' || *endptr != '\0')
usage(argv[0]);
break;
+ case 'A':
+ r_opts.add_assoc = 0;
+ break;
case 'h':
case '?':
usage(argv[0]);
@@ -454,14 +462,14 @@
if (!strcmp(buf, "/"))
r_opts.mass_relabel =
SELINUX_RESTORECON_MASS_RELABEL;
errors |= process_glob(buf, &r_opts, nthreads,
- &skipped_errors) < 0;
+ &skipped_errors,
&relabeled_files) < 0;
}
if (strcmp(input_filename, "-") != 0)
fclose(f);
} else {
for (i = optind; i < argc; i++)
errors |= process_glob(argv[i], &r_opts, nthreads,
- &skipped_errors) < 0;
+ &skipped_errors,
&relabeled_files) < 0;
}
if (r_opts.mass_relabel && !r_opts.nochange)
@@ -476,5 +484,14 @@
if (r_opts.progress)
fprintf(stdout, "\n");
+ /* Output relabeled file count if requested */
+ if (r_opts.count_relabeled) {
+ long unsigned relabeled_count =
selinux_restorecon_get_relabeled_files();
+ printf("Relabeled %lu files\n", relabeled_count);
+
+ /* Set exit code to 0 if at least one file was relabeled */
+ exit(errors ? -1 : relabeled_count ? 0 : 1);
+ }
+
exit(errors ? -1 : skipped_errors ? 1 : 0);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/setsebool/Makefile
new/policycoreutils-3.10/setsebool/Makefile
--- old/policycoreutils-3.9/setsebool/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/setsebool/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -35,7 +35,3 @@
clean:
-rm -f setsebool *.o
-
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/policycoreutils-3.9/unsetfiles/Makefile
new/policycoreutils-3.10/unsetfiles/Makefile
--- old/policycoreutils-3.9/unsetfiles/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/policycoreutils-3.10/unsetfiles/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -20,8 +20,5 @@
clean:
-rm -f unsetfiles *.o
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel: install
/sbin/restorecon $(DESTDIR)$(SBINDIR)/unsetfiles
++++++ policycoreutils.keyring ++++++
++++ 1396 lines (skipped)
++++ between policycoreutils.keyring
++++ and
/work/SRC/openSUSE:Factory/.policycoreutils.new.1670/policycoreutils.keyring
++++++ selinux-dbus-3.9.tar.gz -> selinux-dbus-3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-dbus-3.9/VERSION
new/selinux-dbus-3.10/VERSION
--- old/selinux-dbus-3.9/VERSION 2025-07-16 12:55:13.000000000 +0200
+++ new/selinux-dbus-3.10/VERSION 2026-02-02 03:01:16.000000000 +0100
@@ -1 +1 @@
-3.9
+3.10
++++++ selinux-gui-3.9.tar.gz -> selinux-gui-3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-gui-3.9/Makefile
new/selinux-gui-3.10/Makefile
--- old/selinux-gui-3.9/Makefile 2025-07-16 12:55:13.000000000 +0200
+++ new/selinux-gui-3.10/Makefile 2026-02-02 03:01:16.000000000 +0100
@@ -60,8 +60,6 @@
clean:
(cd po && $(MAKE) $@)
-indent:
-
relabel:
test:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-gui-3.9/VERSION new/selinux-gui-3.10/VERSION
--- old/selinux-gui-3.9/VERSION 2025-07-16 12:55:13.000000000 +0200
+++ new/selinux-gui-3.10/VERSION 2026-02-02 03:01:16.000000000 +0100
@@ -1 +1 @@
-3.9
+3.10
++++++ selinux-python-3.9.tar.gz -> selinux-python-3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/Makefile
new/selinux-python-3.10/Makefile
--- old/selinux-python-3.9/Makefile 2025-07-16 12:55:13.000000000 +0200
+++ new/selinux-python-3.10/Makefile 2026-02-02 03:01:16.000000000 +0100
@@ -1,6 +1,6 @@
SUBDIRS = sepolicy audit2allow semanage sepolgen chcat po
-all install relabel clean indent test:
+all install relabel clean format test:
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/VERSION
new/selinux-python-3.10/VERSION
--- old/selinux-python-3.9/VERSION 2025-07-16 12:55:13.000000000 +0200
+++ new/selinux-python-3.10/VERSION 2026-02-02 03:01:16.000000000 +0100
@@ -1 +1 @@
-3.9
+3.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/audit2allow/Makefile
new/selinux-python-3.10/audit2allow/Makefile
--- old/selinux-python-3.9/audit2allow/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/audit2allow/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -51,7 +51,4 @@
clean:
rm -f *~ *.o sepolgen-ifgen-attr-helper test_dummy_policy
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
relabel: ;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/chcat/Makefile
new/selinux-python-3.10/chcat/Makefile
--- old/selinux-python-3.9/chcat/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/chcat/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -21,8 +21,6 @@
clean:
-indent:
-
relabel:
test:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/semanage/Makefile
new/selinux-python-3.10/semanage/Makefile
--- old/selinux-python-3.9/semanage/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/semanage/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -35,6 +35,4 @@
@$(PYTHON) test-semanage.py -a
clean:
-indent:
-
relabel:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/semanage/semanage-fcontext.8
new/selinux-python-3.10/semanage/semanage-fcontext.8
--- old/selinux-python-3.9/semanage/semanage-fcontext.8 2025-07-16
12:55:13.000000000 +0200
+++ new/selinux-python-3.10/semanage/semanage-fcontext.8 2026-02-02
03:01:16.000000000 +0100
@@ -100,6 +100,10 @@
# semanage fcontext \-a \-e /home /disk6/home
# restorecon \-R \-v /disk6
+Add file-context with MLS range s0:c0.c255 for /secure directory (MLS/MCS
systems only)
+# semanage fcontext \-a \-t admin_home_t \-r s0:c0.c255 "/secure(/.*)?"
+# restorecon \-R \-F \-v /secure
+
.SH "SEE ALSO"
.BR selinux (8),
.BR semanage (8),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/semanage/semanage-port.8
new/selinux-python-3.10/semanage/semanage-port.8
--- old/selinux-python-3.9/semanage/semanage-port.8 2025-07-16
12:55:13.000000000 +0200
+++ new/selinux-python-3.10/semanage/semanage-port.8 2026-02-02
03:01:16.000000000 +0100
@@ -61,6 +61,9 @@
# semanage port \-a \-t http_port_t \-p tcp 81
Allow sshd to listen on tcp port 8991 (i.e. assign tcp port 8991 label
ssh_port_t, which sshd is allowed to listen on)
# semanage port \-a \-t ssh_port_t \-p tcp 8991
+Add a custom port 9999 with MLS range s0:c0.c255 (MLS/MCS systems only).
Verify with seinfo.
+# semanage port \-a \-t http_port_t \-p tcp \-r s0:c0.c255 9999
+# seinfo \-\-portcon \-x | grep 9999
.SH "SEE ALSO"
.BR selinux (8),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/semanage/seobject.py
new/selinux-python-3.10/semanage/seobject.py
--- old/selinux-python-3.9/semanage/seobject.py 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/semanage/seobject.py 2026-02-02
03:01:16.000000000 +0100
@@ -244,7 +244,6 @@
args = None
def __init__(self, args = None):
- global handle
if args:
# legacy code - args was store originally
if isinstance(args, str):
@@ -2886,7 +2885,15 @@
self.__delete(name)
self.commit()
+ # New transaction to reset the boolean to its default value.
+ # Calling __reset_value in the same transaction as the removal of
+ # local customizations does nothing
+ self.begin()
+ self.__reset_value(name)
+ self.commit()
+
def deleteall(self):
+ deleted = []
(rc, self.blist) = semanage_bool_list_local(self.sh)
if rc < 0:
raise ValueError(_("Could not list booleans"))
@@ -2895,10 +2902,45 @@
for boolean in self.blist:
name = semanage_bool_get_name(boolean)
+ deleted.append(name)
self.__delete(name)
self.commit()
+ # New transaction to reset all affected booleans to their default
values.
+ # Calling __reset_value in the same transaction as the removal of
+ # local customizations does nothing
+ self.begin()
+
+ for boolean in deleted:
+ self.__reset_value(boolean)
+
+ self.commit()
+
+ # Set active value to default
+ # Note: this needs to be called in a new transaction after removing local
customizations
+ # in order for semanage_bool_query to fetch the default value
+ # (as opposed to the current one -- set by the local customizations)
+ def __reset_value(self, name):
+ name = selinux.selinux_boolean_sub(name)
+
+ (rc, k) = semanage_bool_key_create(self.sh, name)
+ if rc < 0:
+ raise ValueError(_("Could not create a key for %s") % name)
+
+ (rc, b) = semanage_bool_query(self.sh, k)
+ if rc < 0:
+ raise ValueError(_("Could not query boolean %s") % name)
+
+ semanage_bool_set_value(b, semanage_bool_get_value(b))
+
+ rc = semanage_bool_set_active(self.sh, k, b)
+ if rc < 0:
+ raise ValueError(_("Could not set active value of boolean %s") %
name)
+
+ semanage_bool_key_free(k)
+ semanage_bool_free(b)
+
def get_all(self, locallist=0):
ddict = {}
if locallist:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/sepolgen/Makefile
new/selinux-python-3.10/sepolgen/Makefile
--- old/selinux-python-3.9/sepolgen/Makefile 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/sepolgen/Makefile 2026-02-02 03:01:16.000000000
+0100
@@ -11,10 +11,5 @@
rm -f *~ *.pyc
rm -f parser.out parsetab.py
-indent: ;
-
test:
$(MAKE) -C tests $@
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/sepolgen/VERSION
new/selinux-python-3.10/sepolgen/VERSION
--- old/selinux-python-3.9/sepolgen/VERSION 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/sepolgen/VERSION 2026-02-02 03:01:16.000000000
+0100
@@ -1 +1 @@
-3.9
+3.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/sepolgen/src/Makefile
new/selinux-python-3.10/sepolgen/src/Makefile
--- old/selinux-python-3.9/sepolgen/src/Makefile 2025-07-16
12:55:13.000000000 +0200
+++ new/selinux-python-3.10/sepolgen/src/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -12,10 +12,4 @@
rm -f *~ *.pyc
rm -f parser.out parsetab.py
-indent: ;
-
-
test: ;
-
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/selinux-python-3.9/sepolgen/src/sepolgen/refparser.py
new/selinux-python-3.10/sepolgen/src/sepolgen/refparser.py
--- old/selinux-python-3.9/sepolgen/src/sepolgen/refparser.py 2025-07-16
12:55:13.000000000 +0200
+++ new/selinux-python-3.10/sepolgen/src/sepolgen/refparser.py 2026-02-02
03:01:16.000000000 +0100
@@ -1038,7 +1038,7 @@
#
def p_error(tok):
- global error, parse_file, success, parser
+ global error, success
error = "%s: Syntax error on line %d %s [type=%s]" % (parse_file,
tok.lineno, tok.value, tok.type)
print(error)
success = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/sepolicy/sepolicy/__init__.py
new/selinux-python-3.10/sepolicy/sepolicy/__init__.py
--- old/selinux-python-3.9/sepolicy/sepolicy/__init__.py 2025-07-16
12:55:13.000000000 +0200
+++ new/selinux-python-3.10/sepolicy/sepolicy/__init__.py 2026-02-02
03:01:16.000000000 +0100
@@ -195,7 +195,6 @@
policy(policy_file)
def info(setype, name=None):
- global _pol
if not _pol:
init_policy()
@@ -354,7 +353,6 @@
def search(types, seinfo=None):
- global _pol
if not _pol:
init_policy()
if not seinfo:
@@ -936,7 +934,6 @@
if roles:
return roles
- global _pol
if not _pol:
init_policy()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/sepolicy/sepolicy/generate.py
new/selinux-python-3.10/sepolicy/sepolicy/generate.py
--- old/selinux-python-3.9/sepolicy/sepolicy/generate.py 2025-07-16
12:55:13.000000000 +0200
+++ new/selinux-python-3.10/sepolicy/sepolicy/generate.py 2026-02-02
03:01:16.000000000 +0100
@@ -1262,6 +1262,63 @@
return fcfile
def __extract_rpms(self):
+ # Try dnf5 first, fall back to dnf4
+ try:
+ import libdnf5
+ self.__extract_rpms_dnf5()
+ except ImportError:
+ try:
+ import dnf
+ self.__extract_rpms_dnf4()
+ except ImportError:
+ pass
+
+ def __extract_rpms_dnf5(self):
+ import libdnf5
+
+ base = libdnf5.base.Base()
+ base.load_config()
+ base.setup()
+
+ repo_sack = base.get_repo_sack()
+ repo_sack.create_repos_from_system_configuration()
+
+ repo_sack.load_repos()
+
+ query = libdnf5.rpm.PackageQuery(base)
+ query.filter_file([self.program])
+ query.filter_available()
+
+ for pkg in query:
+ self.rpms.append(pkg.get_name())
+ files = pkg.get_files()
+ for fname in files:
+ for b in self.DEFAULT_DIRS:
+ if b == "/etc":
+ continue
+ if fname.startswith(b):
+ if os.path.isfile(fname):
+ self.add_file(fname)
+ else:
+ self.add_dir(fname)
+
+ # Query for source package
+ src_query = libdnf5.rpm.PackageQuery(base)
+ src_query.filter_provides([pkg.get_source_name()])
+ src_query.filter_available()
+ for bpkg in src_query:
+ files = bpkg.get_files()
+ for fname in files:
+ for b in self.DEFAULT_DIRS:
+ if b == "/etc":
+ continue
+ if fname.startswith(b):
+ if os.path.isfile(fname):
+ self.add_file(fname)
+ else:
+ self.add_dir(fname)
+
+ def __extract_rpms_dnf4(self):
import dnf
with dnf.Base() as base:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/selinux-python-3.9/sepolicy/setup.py
new/selinux-python-3.10/sepolicy/setup.py
--- old/selinux-python-3.9/sepolicy/setup.py 2025-07-16 12:55:13.000000000
+0200
+++ new/selinux-python-3.10/sepolicy/setup.py 2026-02-02 03:01:16.000000000
+0100
@@ -6,7 +6,7 @@
setup(
name="sepolicy",
- version="3.9",
+ version="3.10",
description="Python SELinux Policy Analyses bindings",
author="Daniel Walsh",
author_email="[email protected]",
++++++ semodule-utils-3.9.tar.gz -> semodule-utils-3.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/semodule-utils-3.9/Makefile
new/semodule-utils-3.10/Makefile
--- old/semodule-utils-3.9/Makefile 2025-07-16 12:55:13.000000000 +0200
+++ new/semodule-utils-3.10/Makefile 2026-02-02 03:01:16.000000000 +0100
@@ -1,6 +1,6 @@
SUBDIRS = semodule_package semodule_link semodule_expand
-all install relabel clean indent:
+all install relabel clean:
@for subdir in $(SUBDIRS); do \
(cd $$subdir && $(MAKE) $@) || exit 1; \
done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/semodule-utils-3.9/VERSION
new/semodule-utils-3.10/VERSION
--- old/semodule-utils-3.9/VERSION 2025-07-16 12:55:13.000000000 +0200
+++ new/semodule-utils-3.10/VERSION 2026-02-02 03:01:16.000000000 +0100
@@ -1 +1 @@
-3.9
+3.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/semodule-utils-3.9/semodule_expand/Makefile
new/semodule-utils-3.10/semodule_expand/Makefile
--- old/semodule-utils-3.9/semodule_expand/Makefile 2025-07-16
12:55:13.000000000 +0200
+++ new/semodule-utils-3.10/semodule_expand/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -27,7 +27,3 @@
clean:
-rm -f semodule_expand *.o
-
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/semodule-utils-3.9/semodule_link/Makefile
new/semodule-utils-3.10/semodule_link/Makefile
--- old/semodule-utils-3.9/semodule_link/Makefile 2025-07-16
12:55:13.000000000 +0200
+++ new/semodule-utils-3.10/semodule_link/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -27,7 +27,3 @@
clean:
-rm -f semodule_link *.o
-
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/semodule-utils-3.9/semodule_package/Makefile
new/semodule-utils-3.10/semodule_package/Makefile
--- old/semodule-utils-3.9/semodule_package/Makefile 2025-07-16
12:55:13.000000000 +0200
+++ new/semodule-utils-3.10/semodule_package/Makefile 2026-02-02
03:01:16.000000000 +0100
@@ -29,7 +29,3 @@
clean:
-rm -f semodule_package semodule_unpackage *.o
-
-indent:
- ../../scripts/Lindent $(wildcard *.[ch])
-
++++++ sepolgen.conf ++++++
L /var/lib/sepolgen/perm_map - - - - ../../../usr/share/sepolgen/perm_map
(No newline at EOF)