Compare commits

...
Sign in to create a new pull request.

132 commits

Author SHA1 Message Date
Veronika Syncakova
630d9a6666 setools-4.6.0-4
- Fix seinfo argument parsing when policy path follows query options
2025-12-09 15:31:41 +01:00
Miro Hrončok
c0cc824e8f Drop redundant runtime requirement on python3-setuptools (redux)
The patch was removed in
https://src.fedoraproject.org/rpms/setools/c/e6c218363b79bd5be5dd417953e53b4e4d9733ae?branch=rawhide

But we want to keep it.

My upstream removal was reverted and later reapplied again,
so update the the patch link to the latter one.
2025-10-02 11:56:41 +02:00
Python Maint
ace7694196 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 14:55:49 +02:00
Petr Lautrbach
e6c218363b SETools 4.6.0 2025-09-09 10:23:26 +02:00
Python Maint
1bd344a3ee Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:17:29 +02:00
Miro Hrončok
17706eb780 Drop redundant runtime requirement on python3-setuptools (correction)
This is a fixup for f5e19e21ec
2025-08-05 00:11:13 +02:00
Fedora Release Engineering
e93cfa7b72 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 18:10:39 +00:00
Petr Lautrbach
11ee438aa0 Rebuilt with SELinux userspace 3.9-rc2 release 2025-07-05 20:14:37 +02:00
Python Maint
93d27ba219 Rebuilt for Python 3.14 2025-06-02 20:49:32 +02:00
Miro Hrončok
f5e19e21ec Drop redundant runtime requirement on python3-setuptools, dropped in setools 4.5.1 2025-04-01 14:48:12 +02:00
Fedora Release Engineering
658794f3e3 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 10:27:59 +00:00
Petr Lautrbach
cb92b5067a pyprojectize spec file
The old %py3_build and %py3_install macros (201x-era) as documented in [1] use
a deprecated feature of setuptools.

It is highly recommended to use the current %pyproject macros instead as
documented in [2] and [3] sooner than it becomes necessary.

[1]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_201x/
[2]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
[3]: https://src.fedoraproject.org/rpms/pyproject-rpm-macros/blob/rawhide/f/README.md

https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/RFHSXAU2D4PEN2KHZCBUGP6MEGTUOUD2/
2024-10-11 09:05:40 +02:00
Petr Lautrbach
183b6ffe53 Replace setup.py test with %pytest
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/YOC5527SRKNY2XG6CMS3KNGJ54O7SMXI/
2024-08-15 11:46:13 +02:00
Fedora Release Engineering
94756e17ba Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 05:18:18 +00:00
Python Maint
d301e66a01 Rebuilt for Python 3.13 2024-06-07 09:51:16 +02:00
Petr Lautrbach
5f7bd5af0a Fix License tag
Fixes:
  SPDX license expressions in use, but an invalid boolean was
  found: and; when using SPDX expression the booleans must be in all
  caps.
2024-05-03 15:35:06 +02:00
Petr Lautrbach
5bd6294fca SETools 4.5.1
- Correct annotations of NetworkX types to make it optional again.
- Fix packaging issue for apol's style sheet (apol.css).
2024-05-02 10:55:37 +02:00
Petr Lautrbach
3a271f5265 SETools 4.5.0
- Add graphical results for information flow analysis and domain
  transition analysis, available in apol, sedta, and seinfoflow.

- Add tooltips, What's This?, and detail popups in apol to help
  cross-referencing query and analysis results along with
  context-sensitive help.
2024-04-23 14:29:31 +02:00
Fedora Release Engineering
cc080e498e Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 02:41:23 +00:00
Petr Lautrbach
65fa161f6f SETools 4.4.4 release 2023-12-11 15:56:42 +01:00
Petr Lautrbach
3eb6ca82a8 setools-4.4.3-2
- Use Qt 6
2023-09-05 13:28:08 +02:00
Petr Lautrbach
dd68fa8535 setools-4.4.3-1 2023-08-09 18:45:08 +02:00
Petr Lautrbach
46e11071de setools-4.4.2-4
- Disable/remove neverallow options in sediff.
- Improve man pages
- seinfoflow: Add -r option to get flows into the source type.
- seinfoflow.1: Remove references to sepolgen permission map.
- AVRule/AVRuleXperm: Treat rules with no permissions as invalid policy.
- SELinuxPolicy: Add explicit cast for libspol message

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2226424
2023-07-26 14:37:17 +02:00
Fedora Release Engineering
6ae3e7d3fc Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 01:28:08 +00:00
Python Maint
ce72675700 Rebuilt for Python 3.12 2023-06-13 21:38:07 +02:00
Petr Lautrbach
d757b877a0 SETools 4.4.2 release 2023-04-20 12:29:53 +02:00
Petr Lautrbach
c8f176620d Do not try to load rhts-environment 2023-02-07 16:58:35 +01:00
Petr Lautrbach
fa44d11ed8 SETools 4.4.1 release 2023-02-07 13:25:35 +01:00
Fedora Release Engineering
67bdb1e7a5 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 03:03:21 +00:00
Milos Malik
e19a208cf3 run tests via TMT/FMF
Use the TMT/FMF instead of STI for running tests. STI does not respect
the adjust section in main.fmf files of stored tests.
2022-11-10 13:25:34 +01:00
Petr Lautrbach
3c2ac38daf Migrate License tag to SPDX
https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1
2022-11-10 09:29:45 +01:00
Fedora Release Engineering
392fa03072 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 08:25:45 +00:00
Python Maint
17d137e658 Rebuilt for Python 3.11 2022-06-16 13:34:36 +02:00
Petr Lautrbach
d8501aad3c setools-4.4.0-7
- Update required userspace versions to 3.4
- Drop unnecessary Recommends
2022-06-15 16:12:50 +02:00
Petr Lautrbach
69eb1aef5e Update required userspace versions to 3.4 2022-06-15 16:10:55 +02:00
Petr Lautrbach
8b928d80e8 Drop unnecessary Recommends 2022-06-15 16:10:55 +02:00
Python Maint
9a9e7b5d7e Rebuilt for Python 3.11 2022-06-13 16:03:16 +02:00
Fedora Release Engineering
493b35df7b - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 00:43:52 +00:00
Petr Lautrbach
c77a77e39c Add seinfo-consistent-output test
Check whether different 2 or more runs of same seinfo commands produce
same output
2021-11-23 15:53:17 +01:00
Aleksandra Fedorova
cd558df935 setools package is allowed to be empty
Configure rpminspect to recognize setools as meta-package which is allowed to be empty.
2021-11-19 15:46:49 +01:00
Petr Lautrbach
5785621283 setools-4.4.0-4
- Make seinfo output predictable
  https://github.com/SELinuxProject/setools/issues/65
2021-11-19 12:56:24 +01:00
Petr Lautrbach
396291943b Make seinfo output predictable
https://github.com/SELinuxProject/setools/issues/65
2021-11-19 12:55:09 +01:00
Fedora Release Engineering
d6eb24d48f - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 17:24:51 +00:00
Python Maint
d39a6454a2 Rebuilt for Python 3.10 2021-06-04 21:14:41 +02:00
Petr Lautrbach
f7e6d7dcb5 SETools 4.4.0 release 2021-03-08 18:01:35 +01:00
Fedora Release Engineering
041e7a130b - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 20:15:12 +00:00
Petr Lautrbach
d085b2403d Rebuild with SELinux userspace release 3.2-rc1
And update to 16c0696
2021-01-21 11:38:48 +01:00
Petr Lautrbach
b028c6a81b setools-4.4.0-0.2.20201102git05e90ee.fc34
- Fix imports in /usr/bin/sedta

Fixes:
    $ sedta
    Traceback (most recent call last):
      File "/usr/bin/sedta", line 28, in <module>
        def print_transition(trans: setools.DomainTransition) -> None:
    AttributeError: module 'setools' has no attribute 'DomainTransition'
2020-12-10 17:12:14 +01:00
Ondrej Mosnacek
3c028107aa Depend on git-core instead of full git
See:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/GS7GOUITUEASRELL7SKGLVJLGS3ZVJ45/

Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
2020-11-03 17:07:00 +01:00
Petr Lautrbach
8840b49782 setools-4.4.0-0.1.20201102git05e90ee
- Update to 05e90ee
- Add /usr/bin/sechecker
- Adapt to new libsepol filename transition structures
- Rebuild with libsepol.so.2
2020-11-03 16:07:11 +01:00
Fedora Release Engineering
1396e21e63 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-08-01 09:02:07 +00:00
Fedora Release Engineering
8ea3353198 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 10:35:00 +00:00
Petr Lautrbach
e1c3bd6193 setools-4.3.0-3
- rebuild with SELinux userspace 3.1 release
2020-07-16 12:22:20 +02:00
Vit Mojzis
4d63e5997c tests: Add Regression/The-setools-package-doesn-t-install-any-tools
Make sure setools requires setools-console and setools-gui and not vice
versa.
2020-05-29 18:08:14 +02:00
Miro Hrončok
c62a76dec8 Rebuilt for Python 3.9 2020-05-26 03:50:16 +02:00
Petr Lautrbach
8e66d37730 Enable gating
https://docs.fedoraproject.org/en-US/ci/gating/
2020-04-03 09:35:35 +02:00
Petr Lautrbach
7a283c335f SETools 4.3.0 release
- Revised sediff method for TE rules. This drastically reduced memory and run time.
- Added infiniband context support to seinfo, sediff, and apol.
- Added apol configuration for location of Qt assistant.
- Fixed sediff issue where properties header would display when not requested.
- Fixed sediff issue with type_transition file name comparison.
- Fixed permission map socket sendto information flow direction.
- Added methods to TypeAttribute class to make it a complete Python collection.
- Genfscon now will look up classes rather than using fixed values which
    were dropped from libsepol.
2020-04-02 16:14:55 +02:00
Petr Lautrbach
bb087c8236 setools-4.2.2-5
- setools requires -console, -console-analyses and -gui packages (#1794314)
2020-03-23 20:51:22 +01:00
Fedora Release Engineering
7f0685b7c9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 23:16:58 +00:00
Petr Lautrbach
b8e16f5ac1 tests: Add local Sanity/sedta to the testsuite 2019-10-22 10:49:40 +02:00
Milos Malik
b5ddd6cd6d Add new test for sedta utility
Basic test which covers the sedta tool.

- test invalid values
- test transitivity, reflexivity, non-existent relation etc
2019-10-22 09:06:14 +02:00
Miro Hrončok
2598e73c59 Rebuilt for Python 3.8.0rc1 (#1748018) 2019-10-03 14:38:40 +02:00
Miro Hrončok
5f644f84d1 Rebuilt for Python 3.8 2019-08-19 11:05:46 +02:00
Petr Lautrbach
1d41610e25 Add initial set of tests
- Tier1 SELinux components tests for Sanity
- policycoreutils and checkpolicy tests as they depend and use SETools
2019-08-02 15:51:33 +02:00
Vit Mojzis
082b752534 SETools 4.2.2 release
- Replaced the Python/SWIG/static-linked-libsepol policyrep module with
   a Cython implementation. This will have performance and memory-usage
   improvements and breaks the static linking to libsepol.
- Significant memory usage reduction in sediff (approximately 60%,
   depending on the policies).
- Added support for SCTP portcons
- Updated permission maps
- Support for Python 2.7 was dropped
- Drop python2 subpackage (4.2.0 no longer supports python2)
- Require userspace release 2.9
- setools-gui requires python3-setools
- Add Requires for python[23]-setuptools - no longer required (just recommended) by python[23] (#1623371)
- Fixed performance regressions
- Made further memory usage improvements
- Fixed build issues with clean target and runtime_library_dirs
- Revised package structure to make policyrep a module of the setools
  package
- Symbol names are now available as the name attribute
  (e.g. Boolean.name, Type.name, etc.)
- Fixed some apol layouts to increase the size of text fields
- Move constraint expression to its own class
- Made Conditional.evaluate() more useful and added
  BaseTERule.enabled() method to determine if a rule is enabled
- Restored missing statement() methods in some policyrep classes
- Fixed NULL pointer dereference when iterating over type attributes when the policy has none
- Added xdp_socket permission mapping
- SELinuxPolicy: Create a map of aliases on policy load
- Remove source policy references from man pages, as loading source policies
  is no longer supported.
- Fix a performance regression in alias loading after alias dereferencing
  fixes in 4.2.1
2019-08-02 15:50:17 +02:00
Fedora Release Engineering
5443cd02b9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 23:07:24 +00:00
Miro Hrončok
aae45ee479 https://fedoraproject.org/wiki/Changes/Python_Extension_Flags 2019-02-13 01:09:32 +01:00
Fedora Release Engineering
0818b3952b - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-02 15:14:20 +00:00
Vit Mojzis
ec182abe69 setools-4.1.1-13
- Add Requires for python[23]-setuptools - no longer required (just recommended)
  by python[23] (#1623371)
2018-08-29 13:45:37 +02:00
Petr Lautrbach
618f976e7b Rebuild 2018-08-23 12:20:26 +02:00
Petr Lautrbach
fd63d73041 setools-gui requires python3-setools 2018-08-23 12:19:02 +02:00
Petr Lautrbach
b2615bd52c setools-4.1.1-12
- Fix SCTP patch - https://github.com/SELinuxProject/setools/issues/9
- Update URL to SELinuxProject/setools
- Require userspace release 2.8
2018-08-22 18:08:05 +02:00
Petr Lautrbach
56ba584672 Fix SCTP patch
Fixes:
Failed to load default permission map: /usr/lib64/python3.6/site-packages/setools/perm_map:391:Invalid class declaration: ['sendto', 'w', '10']

https://github.com/SELinuxProject/setools/issues/9
2018-08-22 18:03:39 +02:00
Petr Lautrbach
950d0d171f Fix rpmlint errors and warnings
setools.spec:95: W: unversioned-explicit-obsoletes setools-libs-tcl
setools.spec:170: W: macro-in-comment %doc
setools.spec:173: W: macro-in-comment %{python2_sitelib}
setools.spec:179: W: macro-in-comment %doc
setools.spec:181: W: macro-in-comment %{python3_sitelib}
setools.spec: E: specfile-error warning: Macro expanded in comment on line 173: %{python2_sitelib}/*
setools.spec: E: specfile-error
setools.spec: E: specfile-error warning: Macro expanded in comment on line 181: %{python3_sitelib}/*
2018-07-23 21:28:26 +02:00
Fedora Release Engineering
3bb977d8b3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 06:00:08 +00:00
Miro Hrončok
a5d7dbf23d Rebuilt for Python 3.7 2018-06-19 11:27:24 +02:00
Petr Lautrbach
9ad7d4e48a s/plautrba@workstation/plautrba@redhat.com/ 2018-06-14 13:27:08 +02:00
Petr Lautrbach
f73658f908 setools-4.1.1-9
- Move gui python files to -gui subpackage
2018-06-14 13:06:05 +02:00
Petr Lautrbach
afb5e45daa Move gui python files to -gui subpackage 2018-06-14 11:04:59 +02:00
Vit Mojzis
efa4712a7b setools-4.1.1-8
- Add support for SCTP protocol
2018-04-27 10:37:12 +02:00
Iryna Shcherbina
2dcce95b10 Update Python 2 dependency declarations to new packaging standards 2018-04-26 22:50:41 +02:00
Petr Lautrbach
02d7a5d1d7 Spec file cleanup
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/MRWOMRZ6KPCV25EFHJ2O67BCCP3L4Y6N/
2018-02-16 10:42:01 +01:00
Fedora Release Engineering
3a754fee08 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 16:32:55 +00:00
Petr Lautrbach
1924f09170 setools-python2 requires python2-enum34
Fixes:
>>> import setools
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/setools/__init__.py", line 31, in <module>
    from . import policyrep
  File "/usr/lib64/python2.7/site-packages/setools/policyrep/__init__.py", line 26, in <module>
    from .bounds import BoundsRuletype
  File "/usr/lib64/python2.7/site-packages/setools/policyrep/bounds.py", line 24, in <module>
    from .util import PolicyEnum
  File "/usr/lib64/python2.7/site-packages/setools/policyrep/util.py", line 21, in <module>
    from enum import Enum
ImportError: No module named enum
2017-09-04 18:13:55 +02:00
Zbigniew Jędrzejewski-Szmek
7672531487 Add Provides for the old name without %_isa 2017-08-20 10:42:50 -04:00
Zbigniew Jędrzejewski-Szmek
051ad0ff37 Python 3 binary package renamed to python3-setools 2017-08-19 13:53:53 -04:00
Zbigniew Jędrzejewski-Szmek
be3765e54a Python 2 binary package renamed to python2-setools 2017-08-19 13:52:46 -04:00
Petr Lautrbach
5739cf73a2 setools-4.1.1-2
- bswap_* macros are defined in byteswap.h

Fixes ImportError on s390x:
/usr/lib64/python3.6/site-packages/setools/policyrep/_qpol.cpython-36m-s390x-linux-gnu.so: undefined symbol: bswap_32
2017-08-10 08:59:30 +02:00
Petr Lautrbach
13a8a83732 setools-4.1.1-1 2017-08-07 18:11:14 +02:00
Fedora Release Engineering
4006d5c5b4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 08:21:21 +00:00
Fedora Release Engineering
869ecbd188 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 18:28:12 +00:00
Tomas Tomecek
ccf0ebfefc add explicit BR on py{2,3} setuptools
Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
2017-05-30 11:49:45 +02:00
Petr Lautrbach
7bfe6fa0af setools-python{,3} packages should have a weak dependency on libselinux-python{,3}
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1447747

For more information about weak dependencies see
https://fedoraproject.org/wiki/Packaging:WeakDependencies
2017-05-22 09:01:15 +02:00
Petr Lautrbach
e236753025 Require libsepol version at least 2.6 for build 2017-02-23 13:18:02 +01:00
Petr Lautrbach
526a5264e3 setools-4.1.0-2
- Move dependency on networkx to -gui and -console-analyses
- Ship sedta and seinfoflow in setools-console-analyses
2017-02-23 12:43:31 +01:00
Petr Lautrbach
d570700ddd Do not export/use setools.InfoFlowAnalysis and setools.DomainTransitionAnalysis
dta and infoflow modules require networkx which brings lot of dependencies.
These dependencies are not necessary for setools module itself as it's
used in policycoreutils.

Therefore it's better to use setools.infoflow.InfoFlowAnalysis and
setools.dta.DomainTransitionAnalysis and let the package containing
sedta and seinfoflow to require python3-networkx

Added new subpackage setools-console-analyses
2017-02-23 11:03:03 +01:00
Petr Lautrbach
fdd5e434b3 Do not use -Werror during build
There are new warnings when setools are built with gcc 7 therefore we
want to suppress -Werror for now

Fixes:
libqpol/policy_extend.c: In function ‘policy_extend’:
libqpol/policy_extend.c:161:27: error: ‘%04zd’ directive output may be truncated writing between 4 and 10 bytes into a region of size 5 [-Werror=format-truncation=]
    snprintf(buff, 9, "@ttr%04zd", i + 1);
                           ^~~~~
libqpol/policy_extend.c:161:22: note: directive argument in the range [1, 4294967295]
    snprintf(buff, 9, "@ttr%04zd", i + 1);
                      ^~~~~~~~~~~
In file included from /usr/include/stdio.h:939:0,
                 from /usr/include/sepol/policydb/policydb.h:53,
                 from libqpol/policy_extend.c:29:
/usr/include/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output between 9 and 15 bytes into a destination of size 9
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
error: command 'gcc' failed with exit status 1
2017-02-23 10:56:01 +01:00
Petr Lautrbach
442c972d4b Use %autosetup -S git 2017-02-23 10:54:52 +01:00
Petr Lautrbach
12efca860a setools.spec files cleanup
- drop %{with python3}
- build python3 sources in setools-x.y.z and python2 in
setools-x.y.z-python2
- clean %{buildroot}%{_bindir} before installing python3 sources
2017-02-23 10:51:31 +01:00
Petr Lautrbach
689c214584 Drop unused patches 2017-02-23 08:15:52 +01:00
Petr Lautrbach
d5a84f04a0 setools-4.1.0-1
- New upstream release
2017-02-15 13:56:51 +01:00
Fedora Release Engineering
2123a2995d - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-11 13:19:58 +00:00
Petr Lautrbach
1299b6abea setools-3.3.8-12
- Rebuilt with libsepol-2.5-6
2016-05-11 10:20:57 +02:00
Petr Lautrbach
362ac1c345 setools-3.3.8-11
- Rebuilt with libsepol-2.5-5
2016-05-02 09:44:51 +02:00
Petr Lautrbach
04f559dd9d setools-3.3.8-10.fc24
- libqpol: Skip types when building type attribute map (#1291336)
- Rebase for SELinuxProject userspace release 2016-01-07
2016-02-21 12:08:24 +01:00
Petr Lautrbach
a34c9ef118 libqpol: Skip types when building type attribute map
Fixes: rhbz#1291336
2016-02-21 12:04:14 +01:00
Fedora Release Engineering
26a78c68ba - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 23:52:58 +00:00
Petr Lautrbach
a4af57962c Rebase to the latest setools3 sources
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1266520
2016-01-29 15:36:50 +01:00
Petr Lautrbach
e46f55812d use %global instead of %define in setools.spec 2016-01-29 15:02:14 +01:00
Dan Horák
300f5dde54 - Add patch for libsepool 2.4 support 2016-01-29 14:01:11 +01:00
Dennis Gilmore
07282d3796 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-19 00:40:21 +00:00
Kalev Lember
4424caacde Rebuilt for GCC 5 C++11 ABI change 2015-05-02 17:42:55 +02:00
Peter Robinson
5e80f4b5b1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-18 02:02:54 +00:00
Tom Callaway
a8a75e40d8 fix license handling 2014-08-04 01:48:51 -04:00
Dennis Gilmore
364e31e4d9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild 2014-06-08 01:10:54 -05:00
Jaroslav Škarvada
80eec9ca44 - Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86 2014-05-21 12:39:19 +02:00
Miroslav Grepl
ed27604c5e Add 0012-Fix-configure.ac-to-use-SWIG-3.0.0.patch 2014-04-13 21:25:39 +02:00
Miroslav Grepl
f346ebaaf7 Update to upstream 2014-04-11 19:11:25 +02:00
Miroslav Grepl
056d64edc9 Update new sources 2014-04-11 19:10:02 +02:00
Miroslav Grepl
e461113079 Upload new sources 2014-04-11 19:08:18 +02:00
Miroslav Grepl
90685bf953 Fix spec file 2014-04-11 19:03:50 +02:00
Miroslav Grepl
665320d083 * Fri Apr 11 2013 Miroslav Grepl <mgrepl@redhat.com> - 3.3.8-1
- Update to upstream
2014-04-11 19:03:04 +02:00
Dan Walsh
abcfd7caf6 Cleanup Destop files. 2013-09-16 13:53:46 -04:00
Dennis Gilmore
75dffcc440 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild 2013-08-04 09:12:26 -05:00
Dan Walsh
7d9f204bf2 Fix help message on sesearch -D 2013-07-19 06:49:49 -04:00
Dan Walsh
af4b0ecbe6 Remove --default and --audit from sesearch
- Make -D == --dontaudit in sesearch
2013-06-17 13:42:45 -04:00
Dan Walsh
3caf5ed4b7 Remove --default and --audit from sesearch
- Make -D == --dontaudit in sesearch
2013-06-15 08:19:19 -04:00
Dan Walsh
4dcc6b1421 Add alias support to seinfo -t 2013-03-28 13:42:19 -04:00
Dan Walsh
87ef079e2e Add alias support to seinfo -t 2013-03-28 13:32:30 -04:00
Kalev Lember
a71f281069 Obsolete the removed setools-libs-python subpackage 2013-03-26 22:48:34 +01:00
Dan Walsh
87688b7eb6 Drop support for python bindings 2013-03-25 11:44:34 -04:00
Dan Walsh
33f5961ddc Drop support for python bindings 2013-03-24 06:43:48 -04:00
41 changed files with 942 additions and 7589 deletions

1
.fmf/version Normal file
View file

@ -0,0 +1 @@
1

20
.gitignore vendored
View file

@ -1 +1,21 @@
setools-3.3.7.tar.bz2
setools-3.3.8.tar.bz2
setools-3.3.8-f1e5b20.tar.bz2
/4.1.0.tar.gz
/4.1.1.tar.gz
/4.2.0-beta.tar.gz
/4.2.0-rc.tar.gz
/4.2.0.tar.gz
/4.2.1.tar.gz
/4.2.2.tar.gz
/4.3.0.tar.gz
/05e90ee.tar.gz
/16c0696.tar.gz
/4.4.0.tar.gz
/4.4.1.tar.gz
/4.4.2.tar.gz
/4.4.3.tar.gz
/4.4.4.tar.gz
/4.5.0.tar.gz
/4.5.1.tar.gz
/4.6.0.tar.gz

View file

@ -1,133 +0,0 @@
From 667fe9187c203ffcba855e821dff11c8f71ef000 Mon Sep 17 00:00:00 2001
From: Dan Walsh <dwalsh@redhat.com>
Date: Tue, 20 Sep 2011 15:39:51 -0400
Subject: [PATCH 2/6] setools-should-exit-with-an-error-status-if-it-gets-an
error
---
secmds/seinfo.c | 51 +++++++++++++++++++++++++++------------------------
1 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/secmds/seinfo.c b/secmds/seinfo.c
index fdf23e9..3088f88 100644
--- a/secmds/seinfo.c
+++ b/secmds/seinfo.c
@@ -827,7 +827,7 @@ static int print_sens(FILE * fp, const char *name, int expand, const apol_policy
*/
static int print_cats(FILE * fp, const char *name, int expand, const apol_policy_t * policydb)
{
- int retval = 0;
+ int retval = -1;
apol_cat_query_t *query = NULL;
apol_vector_t *v = NULL;
const qpol_cat_t *cat_datum = NULL;
@@ -911,9 +911,10 @@ static int print_fsuse(FILE * fp, const char *type, const apol_policy_t * policy
fprintf(fp, " %s\n", tmp);
free(tmp);
}
- if (type && !apol_vector_get_size(v))
+ if (type && !apol_vector_get_size(v)) {
ERR(policydb, "No fs_use statement for filesystem of type %s.", type);
-
+ goto cleanup;
+ }
retval = 0;
cleanup:
apol_fs_use_query_destroy(&query);
@@ -949,7 +950,6 @@ static int print_genfscon(FILE * fp, const char *type, const apol_policy_t * pol
ERR(policydb, "%s", strerror(ENOMEM));
goto cleanup;
}
-
if (apol_genfscon_query_set_filesystem(policydb, query, type))
goto cleanup;
if (apol_genfscon_get_by_query(policydb, query, &v))
@@ -967,8 +967,10 @@ static int print_genfscon(FILE * fp, const char *type, const apol_policy_t * pol
free(tmp);
}
- if (type && !apol_vector_get_size(v))
+ if (type && !apol_vector_get_size(v)) {
ERR(policydb, "No genfscon statement for filesystem of type %s.", type);
+ goto cleanup;
+ }
retval = 0;
cleanup:
@@ -1646,6 +1648,7 @@ cleanup: // close and destroy iterators etc.
int main(int argc, char **argv)
{
+ int rc = 0;
int classes, types, attribs, roles, users, all, expand, stats, rt, optc, isids, bools, sens, cats, fsuse, genfs, netif,
node, port, permissives, polcaps, constrain, linebreaks;
apol_policy_t *policydb = NULL;
@@ -1851,46 +1854,46 @@ int main(int argc, char **argv)
/* display requested info */
if (stats || all)
- print_stats(stdout, policydb);
+ rc = print_stats(stdout, policydb);
if (classes || all)
- print_classes(stdout, class_name, expand, policydb);
+ rc = print_classes(stdout, class_name, expand, policydb);
if (types || all)
- print_types(stdout, type_name, expand, policydb);
+ rc = print_types(stdout, type_name, expand, policydb);
if (attribs || all)
- print_attribs(stdout, attrib_name, expand, policydb);
+ rc = print_attribs(stdout, attrib_name, expand, policydb);
if (roles || all)
- print_roles(stdout, role_name, expand, policydb);
+ rc = print_roles(stdout, role_name, expand, policydb);
if (users || all)
- print_users(stdout, user_name, expand, policydb);
+ rc = print_users(stdout, user_name, expand, policydb);
if (bools || all)
- print_booleans(stdout, bool_name, expand, policydb);
+ rc = print_booleans(stdout, bool_name, expand, policydb);
if (sens || all)
- print_sens(stdout, sens_name, expand, policydb);
+ rc = print_sens(stdout, sens_name, expand, policydb);
if (cats || all)
- print_cats(stdout, cat_name, expand, policydb);
+ rc = print_cats(stdout, cat_name, expand, policydb);
if (fsuse || all)
- print_fsuse(stdout, fsuse_type, policydb);
+ rc = print_fsuse(stdout, fsuse_type, policydb);
if (genfs || all)
- print_genfscon(stdout, genfs_type, policydb);
+ rc = print_genfscon(stdout, genfs_type, policydb);
if (netif || all)
- print_netifcon(stdout, netif_name, policydb);
+ rc = print_netifcon(stdout, netif_name, policydb);
if (node || all)
- print_nodecon(stdout, node_addr, policydb);
+ rc = print_nodecon(stdout, node_addr, policydb);
if (port || all)
- print_portcon(stdout, port_num, protocol, policydb);
+ rc = print_portcon(stdout, port_num, protocol, policydb);
if (isids || all)
- print_isids(stdout, isid_name, expand, policydb);
+ rc = print_isids(stdout, isid_name, expand, policydb);
if (permissives || all)
- print_permissives(stdout, permissive_name, expand, policydb);
+ rc = print_permissives(stdout, permissive_name, expand, policydb);
if (polcaps || all)
- print_polcaps(stdout, polcap_name, expand, policydb);
+ rc = print_polcaps(stdout, polcap_name, expand, policydb);
if (constrain || all)
- print_constraints(stdout, expand, policydb, linebreaks);
+ rc = print_constraints(stdout, expand, policydb, linebreaks);
apol_policy_destroy(&policydb);
apol_policy_path_destroy(&pol_path);
free(policy_file);
- exit(0);
+ exit(rc);
}
/**
--
1.7.6.2

View file

@ -1,28 +0,0 @@
From 252b7c8bf311d615164a20f4f402767e5859d972 Mon Sep 17 00:00:00 2001
From: Dan Walsh <dwalsh@redhat.com>
Date: Tue, 20 Sep 2011 15:40:28 -0400
Subject: [PATCH 3/6] Since-we-do-not-ship-neverallow-rules-all-always-fail
---
libqpol/src/avrule_query.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/libqpol/src/avrule_query.c b/libqpol/src/avrule_query.c
index 749565b..76dcaa3 100644
--- a/libqpol/src/avrule_query.c
+++ b/libqpol/src/avrule_query.c
@@ -57,8 +57,9 @@ int qpol_policy_get_avrule_iter(const qpol_policy_t * policy, uint32_t rule_type
if ((rule_type_mask & QPOL_RULE_NEVERALLOW) && !qpol_policy_has_capability(policy, QPOL_CAP_NEVERALLOW)) {
ERR(policy, "%s", "Cannot get avrules: Neverallow rules requested but not available");
- errno = ENOTSUP;
- return STATUS_ERR;
+/* errno = ENOTSUP;
+ return STATUS_ERR; */
+ return STATUS_SUCCESS;
}
db = &policy->p->p;
--
1.7.6.2

View file

@ -1,78 +0,0 @@
From b3c8ef5822dbf3e3272fc29627ddac7e20e936d5 Mon Sep 17 00:00:00 2001
From: Dan Walsh <dwalsh@redhat.com>
Date: Tue, 20 Sep 2011 15:41:12 -0400
Subject: [PATCH 4/6] Fix-man-pages-and-getoptions
---
man/replcon.1 | 2 ++
man/seinfo.1 | 6 +++++-
seaudit/seaudit-report.c | 2 +-
sediff/sediff.c | 2 +-
4 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/man/replcon.1 b/man/replcon.1
index 8aca08a..478dc51 100644
--- a/man/replcon.1
+++ b/man/replcon.1
@@ -44,6 +44,8 @@ Search for files which include PATH.
.IP "-c CLASS, --class=CLASS"
Search only files of object class CLASS.
.SH OPTIONS
+.IP "-R, --regex"
+Enable regular expressions
.IP "-v, --verbose"
Display context info during replacement.
.IP "-h, --help"
diff --git a/man/seinfo.1 b/man/seinfo.1
index 8612119..6bc17db 100644
--- a/man/seinfo.1
+++ b/man/seinfo.1
@@ -76,6 +76,10 @@ There is no expanded information for this component.
.IP "--nodecon[=ADDR]"
Print a list of node contexts or, if ADDR is provided, print the statement for the node with address ADDR.
There is no expanded information for this component.
+.IP "--polcap"
+Print policy capabilities.
+.IP "--permissive"
+Print permissive types.
.IP "--portcon[=PORT]"
Print a list of port contexts or, if PORT is provided, print the statement for port PORT.
There is no expanded information for this component.
@@ -93,7 +97,7 @@ These details include the types assigned to an attribute or role and the permiss
This option is not available for all component types; see the description of each component for the details this option will provide.
.IP "--stats"
Print policy statistics including policy type and version information and counts of all components and rules.
-.IP "-l"
+.IP "-l, --line-breaks"
Print line breaks when displaying constraint statements.
.IP "-h, --help"
Print help information and exit.
diff --git a/seaudit/seaudit-report.c b/seaudit/seaudit-report.c
index af3c6fb..d436c18 100644
--- a/seaudit/seaudit-report.c
+++ b/seaudit/seaudit-report.c
@@ -100,7 +100,7 @@ static void seaudit_report_info_usage(const char *program_name, int brief)
printf(" -s, --stdin read log data from standard input\n");
printf(" -m, --malformed include malformed log messages\n");
printf(" -o FILE, --output=FILE output to FILE\n");
- printf(" --config=FILE read configuration from FILE\n");
+ printf(" -c FILE, --config=FILE read configuration from FILE\n");
printf(" --html set output format to HTML\n");
printf(" --stylesheet=FILE HTML style sheet for formatting HTML report\n");
printf(" (ignored if --html is not given)\n");
diff --git a/sediff/sediff.c b/sediff/sediff.c
index 6022775..341c650 100644
--- a/sediff/sediff.c
+++ b/sediff/sediff.c
@@ -420,7 +420,7 @@ int main(int argc, char **argv)
poldiff_t *diff = NULL;
size_t total = 0;
- while ((optc = getopt_long(argc, argv, "ctarubANDLMCRqhV", longopts, NULL)) != -1) {
+ while ((optc = getopt_long(argc, argv, "ctarubAqhV", longopts, NULL)) != -1) {
switch (optc) {
case 0:
break;
--
1.7.6.2

View file

@ -1,34 +0,0 @@
From 2b58d92add64b53b16cbb438e7b69e85d046afd1 Mon Sep 17 00:00:00 2001
From: Dan Walsh <dwalsh@redhat.com>
Date: Tue, 20 Sep 2011 15:46:38 -0400
Subject: [PATCH 5/6] Fix sepol calls to work with latest libsepol
---
configure.ac | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index e837e03..3c11e23 100644
--- a/configure.ac
+++ b/configure.ac
@@ -505,7 +505,7 @@ AC_COMPILE_IFELSE(
[AC_LANG_SOURCE([
#include <sepol/policydb/expand.h>
int main () {
- return role_set_expand(NULL, NULL, NULL, NULL);
+ return role_set_expand(NULL, NULL, NULL, NULL, NULL);
}])],
sepol_new_user_role_mapping="yes",
sepol_new_user_role_mapping="no")
@@ -541,7 +541,7 @@ if test ${sepol_check_boolmap} = "yes"; then
[AC_LANG_SOURCE([
#include <sepol/policydb/expand.h>
int main () {
- return expand_module_avrules(NULL, NULL, NULL, NULL, NULL, 0, 0);
+ return expand_module_avrules(NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0);
}])],
AC_MSG_RESULT([yes]),
AC_MSG_ERROR([this version of libsepol is incompatible with SETools]))
--
1.7.6.2

File diff suppressed because it is too large Load diff

View file

@ -1,277 +0,0 @@
From e30036e358b8f1c3f56048b467e8646fa3bfffb6 Mon Sep 17 00:00:00 2001
From: Dan Walsh <dwalsh@redhat.com>
Date: Tue, 20 Sep 2011 16:40:26 -0400
Subject: [PATCH 7/7] Remove unused variables
---
libapol/src/ftrule-query.c | 11 ++----
libqpol/src/ftrule_query.c | 2 -
secmds/sesearch.c | 86 +++++++++++++++++++++++++++++++++-----------
3 files changed, 68 insertions(+), 31 deletions(-)
diff --git a/libapol/src/ftrule-query.c b/libapol/src/ftrule-query.c
index dc248de..9c7a23b 100644
--- a/libapol/src/ftrule-query.c
+++ b/libapol/src/ftrule-query.c
@@ -45,14 +45,11 @@ struct apol_filename_trans_query
int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filename_trans_query_t * t, apol_vector_t ** v)
{
apol_vector_t *source_list = NULL, *target_list = NULL, *class_list = NULL, *default_list = NULL;
- int retval = -1, source_as_any = 0, is_regex = 0, append_filename_trans;
- char *bool_name = NULL;
+ int retval = -1, source_as_any = 0, is_regex = 0;
*v = NULL;
- unsigned int flags = 0;
- qpol_iterator_t *iter = NULL, *type_iter = NULL;
+ qpol_iterator_t *iter = NULL;
if (t != NULL) {
- flags = t->flags;
is_regex = t->flags & APOL_QUERY_REGEX;
if (t->source != NULL &&
(source_list =
@@ -104,7 +101,7 @@ int apol_filename_trans_get_by_query(const apol_policy_t * p, const apol_filenam
if (qpol_iterator_get_item(iter, (void **)&filename_trans) < 0) {
goto cleanup;
}
- int match_source = 0, match_target = 0, match_default = 0, match_bool = 0;
+ int match_source = 0, match_target = 0, match_default = 0;
size_t i;
if (source_list == NULL) {
@@ -265,10 +262,8 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
{
char *tmp = NULL;
const char *tmp_name = NULL;
- const char *filename_trans_type_str;
int error = 0;
size_t tmp_sz = 0;
- uint32_t filename_trans_type = 0;
const qpol_type_t *type = NULL;
const qpol_class_t *obj_class = NULL;
diff --git a/libqpol/src/ftrule_query.c b/libqpol/src/ftrule_query.c
index d6db848..3148d30 100644
--- a/libqpol/src/ftrule_query.c
+++ b/libqpol/src/ftrule_query.c
@@ -254,7 +254,6 @@ int qpol_filename_trans_get_default_type(const qpol_policy_t * policy, const qpo
int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_filename_trans_t * rule, const char ** name)
{
- policydb_t *db = NULL;
filename_trans_t *ft = NULL;
if (name) {
@@ -267,7 +266,6 @@ int qpol_filename_trans_get_filename(const qpol_policy_t * policy, const qpol_fi
return STATUS_ERR;
}
- db = &policy->p->p;
ft = (filename_trans_t *) rule;
*name = ft->name;
diff --git a/secmds/sesearch.c b/secmds/sesearch.c
index e44b3bc..319ffe7 100644
--- a/secmds/sesearch.c
+++ b/secmds/sesearch.c
@@ -72,6 +72,7 @@ static struct option const longopts[] = {
{"source", required_argument, NULL, 's'},
{"target", required_argument, NULL, 't'},
+ {"default", required_argument, NULL, 'D'},
{"role_source", required_argument, NULL, EXPR_ROLE_SOURCE},
{"role_target", required_argument, NULL, EXPR_ROLE_TARGET},
{"class", required_argument, NULL, 'c'},
@@ -92,6 +93,7 @@ typedef struct options
{
char *src_name;
char *tgt_name;
+ char *default_name;
char *src_role_name;
char *tgt_role_name;
char *class_name;
@@ -293,7 +295,8 @@ static void print_syn_av_results(const apol_policy_t * policy, const options_t *
tmp = apol_cond_expr_render(policy, cond);
enable_char = (enabled ? 'E' : 'D');
branch_char = ((is_true && enabled) || (!is_true && !enabled) ? 'T' : 'F');
- asprintf(&expr, "[ %s ]", tmp);
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
+ goto cleanup;
free(tmp);
tmp = NULL;
if (!expr)
@@ -356,7 +359,8 @@ static void print_av_results(const apol_policy_t * policy, const options_t * opt
qpol_iterator_destroy(&iter);
enable_char = (enabled ? 'E' : 'D');
branch_char = (list ? 'T' : 'F');
- asprintf(&expr, "[ %s ]", tmp);
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
+ goto cleanup;
free(tmp);
tmp = NULL;
if (!expr)
@@ -488,7 +492,8 @@ static void print_syn_te_results(const apol_policy_t * policy, const options_t *
tmp = apol_cond_expr_render(policy, cond);
enable_char = (enabled ? 'E' : 'D');
branch_char = ((is_true && enabled) || (!is_true && !enabled) ? 'T' : 'F');
- asprintf(&expr, "[ %s ]", tmp);
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
+ goto cleanup;
free(tmp);
tmp = NULL;
if (!expr)
@@ -553,7 +558,8 @@ static void print_te_results(const apol_policy_t * policy, const options_t * opt
qpol_iterator_destroy(&iter);
enable_char = (enabled ? 'E' : 'D');
branch_char = (list ? 'T' : 'F');
- asprintf(&expr, "[ %s ]", tmp);
+ if (asprintf(&expr, "[ %s ]", tmp) < 0)
+ goto cleanup;
free(tmp);
tmp = NULL;
if (!expr)
@@ -586,7 +592,7 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
return -1;
}
- if (!opt->type == QPOL_RULE_TYPE_TRANS && !opt->all) {
+ if (!opt->type && !opt->all) {
*v = NULL;
return 0; /* no search to do */
}
@@ -600,17 +606,44 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
apol_filename_trans_query_set_regex(policy, ftq, opt->useregex);
if (opt->src_name) {
- if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name)) {
+ if (apol_filename_trans_query_set_source(policy, ftq, opt->src_name, opt->indirect)) {
error = errno;
goto err;
}
}
+
if (opt->tgt_name) {
if (apol_filename_trans_query_set_target(policy, ftq, opt->tgt_name, opt->indirect)) {
error = errno;
goto err;
}
}
+ if (opt->default_name) {
+ if (apol_filename_trans_query_set_default(policy, ftq, opt->default_name)) {
+ error = errno;
+ goto err;
+ }
+ }
+
+ if (opt->class_name) {
+ if (opt->class_vector == NULL) {
+ if (apol_filename_trans_query_append_class(policy, ftq, opt->class_name)) {
+ error = errno;
+ goto err;
+ }
+ } else {
+ for (size_t i = 0; i < apol_vector_get_size(opt->class_vector); ++i) {
+ char *class_name;
+ class_name = apol_vector_get_element(opt->class_vector, i);
+ if (!class_name)
+ continue;
+ if (apol_filename_trans_query_append_class(policy, ftq, class_name)) {
+ error = errno;
+ goto err;
+ }
+ }
+ }
+ }
if (apol_filename_trans_get_by_query(policy, ftq, v)) {
error = errno;
@@ -630,37 +663,36 @@ static int perform_ft_query(const apol_policy_t * policy, const options_t * opt,
static void print_ft_results(const apol_policy_t * policy, const options_t * opt, const apol_vector_t * v)
{
- qpol_policy_t *q = apol_policy_get_qpol(policy);
- size_t i, num_rules = 0;
- const qpol_filename_trans_t *rule = NULL;
- char *tmp = NULL, *rule_str = NULL, *expr = NULL;
+ size_t i, num_filename_trans = 0;
+ const qpol_filename_trans_t *filename_trans = NULL;
+ char *tmp = NULL, *filename_trans_str = NULL, *expr = NULL;
char enable_char = ' ', branch_char = ' ';
qpol_iterator_t *iter = NULL;
const qpol_cond_t *cond = NULL;
uint32_t enabled = 0, list = 0;
- if (!(num_rules = apol_vector_get_size(v)))
+ if (!(num_filename_trans = apol_vector_get_size(v)))
goto cleanup;
- fprintf(stdout, "Found %zd named file transition rules:\n", num_rules);
+ fprintf(stdout, "Found %zd named file transition filename_trans:\n", num_filename_trans);
- for (i = 0; i < num_rules; i++) {
+ for (i = 0; i < num_filename_trans; i++) {
enable_char = branch_char = ' ';
- if (!(rule = apol_vector_get_element(v, i)))
+ if (!(filename_trans = apol_vector_get_element(v, i)))
goto cleanup;
- if (!(rule_str = apol_filename_trans_render(policy, rule)))
+ if (!(filename_trans_str = apol_filename_trans_render(policy, filename_trans)))
goto cleanup;
- fprintf(stdout, "%s %s\n", rule_str, expr ? expr : "");
- free(rule_str);
- rule_str = NULL;
+ fprintf(stdout, "%s %s\n", filename_trans_str, expr ? expr : "");
+ free(filename_trans_str);
+ filename_trans_str = NULL;
free(expr);
expr = NULL;
}
cleanup:
free(tmp);
- free(rule_str);
+ free(filename_trans_str);
free(expr);
}
@@ -930,7 +962,7 @@ int main(int argc, char **argv)
memset(&cmd_opts, 0, sizeof(cmd_opts));
cmd_opts.indirect = true;
- while ((optc = getopt_long(argc, argv, "ATs:t:c:p:b:dRnSChV", longopts, NULL)) != -1) {
+ while ((optc = getopt_long(argc, argv, "ATs:t:c:p:b:dD:RnSChV", longopts, NULL)) != -1) {
switch (optc) {
case 0:
break;
@@ -946,6 +978,18 @@ int main(int argc, char **argv)
exit(1);
}
break;
+ case 'D': /* source */
+ if (optarg == 0) {
+ usage(argv[0], 1);
+ printf("Missing source default type for -D (--default)\n");
+ exit(1);
+ }
+ cmd_opts.default_name = strdup(optarg);
+ if (!cmd_opts.default_name) {
+
+ exit(1);
+ }
+ break;
case 't': /* target */
if (optarg == 0) {
usage(argv[0], 1);
@@ -1218,7 +1262,7 @@ int main(int argc, char **argv)
fprintf(stdout, "\n");
}
- if (cmd_opts.all || cmd_opts.type == QPOL_RULE_TYPE_TRANS) {
+ if (cmd_opts.all || cmd_opts.type) {
apol_vector_destroy(&v);
if (perform_ft_query(policy, &cmd_opts, &v)) {
rt = 1;
--
1.7.6.2

View file

@ -1,34 +0,0 @@
From 2f89d9acc12c0a7b50a94e4247b015242ce712c9 Mon Sep 17 00:00:00 2001
From: Dan Walsh <dwalsh@redhat.com>
Date: Wed, 21 Sep 2011 15:15:02 -0400
Subject: [PATCH 8/8] Fix output to match policy lines
---
libapol/src/ftrule-query.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libapol/src/ftrule-query.c b/libapol/src/ftrule-query.c
index 9c7a23b..1d5f5c8 100644
--- a/libapol/src/ftrule-query.c
+++ b/libapol/src/ftrule-query.c
@@ -282,7 +282,7 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
error = errno;
goto err;
}
- if (apol_str_appendf(&tmp, &tmp_sz, "transition_type %s ", tmp_name)) {
+ if (apol_str_appendf(&tmp, &tmp_sz, "type_transition %s ", tmp_name)) {
error = errno;
ERR(policy, "%s", strerror(error));
goto err;
@@ -338,7 +338,7 @@ char *apol_filename_trans_render(const apol_policy_t * policy, const qpol_filena
goto err;
}
- if (apol_str_appendf(&tmp, &tmp_sz, " %s", tmp_name)) {
+ if (apol_str_appendf(&tmp, &tmp_sz, " \"%s\"", tmp_name)) {
error = errno;
ERR(policy, "%s", strerror(error));
goto err;
--
1.7.6.2

View file

@ -1,583 +0,0 @@
#diff -Nur old_setools/libqpol/swig/qpol.i setools-3.3.7/libqpol/swig/qpol.i
diff -Nur setools-3.3.7/libqpol/swig/qpol.i.current setools-3.3.7/libqpol/swig/qpol.i
--- old_setools/libqpol/swig/qpol.i 2010-04-30 18:23:28.000000000 +0200
+++ setools-3.3.7/libqpol/swig/qpol.i 2012-07-03 19:20:45.383016553 +0200
@@ -228,7 +228,7 @@
#define QPOL_MODULE_OTHER 2
typedef struct qpol_module {} qpol_module_t;
%extend qpol_module_t {
- qpol_module_t(const char *path) {
+ qpol_module(const char *path) {
qpol_module_t *m;
BEGIN_EXCEPTION
if (qpol_module_create_from_file(path, &m)) {
@@ -239,7 +239,7 @@
fail:
return NULL;
};
- ~qpol_module_t() {
+ ~qpol_module() {
qpol_module_destroy(&self);
};
const char *get_path() {
@@ -330,7 +330,7 @@
} qpol_capability_e;
%extend qpol_policy_t {
- qpol_policy_t(const char *path, const int options) {
+ qpol_policy(const char *path, const int options) {
qpol_policy_t *p;
BEGIN_EXCEPTION
if (qpol_policy_open_from_file(path, &p, qpol_swig_message_callback, qpol_swig_message_callback_arg, options) < 0) {
@@ -341,7 +341,7 @@
fail:
return NULL;
}
- ~qpol_policy_t() {
+ ~qpol_policy() {
qpol_policy_destroy(&self);
};
void reevaluate_conds() {
@@ -687,14 +687,14 @@
typedef struct qpol_iterator {} qpol_iterator_t;
%extend qpol_iterator_t {
/* user never directly creates, but SWIG expects a constructor */
- qpol_iterator_t() {
+ qpol_iterator() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_TypeError, "User may not create iterators difectly");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_iterator_t() {
+ ~qpol_iterator() {
qpol_iterator_destroy(&self);
};
void *get_item() {
@@ -736,7 +736,7 @@
/* qpol type */
typedef struct qpol_type {} qpol_type_t;
%extend qpol_type_t {
- qpol_type_t(qpol_policy_t *p, const char *name) {
+ qpol_type(qpol_policy_t *p, const char *name) {
BEGIN_EXCEPTION
const qpol_type_t *t;
if (qpol_policy_get_type_by_name(p, name, &t)) {
@@ -747,7 +747,7 @@
fail:
return NULL;
};
- ~qpol_type_t() {
+ ~qpol_type() {
/* no op */
return;
};
@@ -851,7 +851,7 @@
/* qpol role */
typedef struct qpol_role {} qpol_role_t;
%extend qpol_role_t {
- qpol_role_t(qpol_policy_t *p, const char *name) {
+ qpol_role(qpol_policy_t *p, const char *name) {
const qpol_role_t *r;
BEGIN_EXCEPTION
if (qpol_policy_get_role_by_name(p, name, &r)) {
@@ -862,7 +862,7 @@
fail:
return NULL;
};
- ~qpol_role_t() {
+ ~qpol_role() {
/* no op */
return;
};
@@ -919,7 +919,7 @@
/* qpol level */
typedef struct qpol_level {} qpol_level_t;
%extend qpol_level_t {
- qpol_level_t(qpol_policy_t *p, const char *name) {
+ qpol_level(qpol_policy_t *p, const char *name) {
const qpol_level_t *l;
BEGIN_EXCEPTION
if (qpol_policy_get_level_by_name(p, name, &l)) {
@@ -930,7 +930,7 @@
fail:
return NULL;
};
- ~qpol_level_t() {
+ ~qpol_level() {
/* no op */
return;
};
@@ -997,7 +997,7 @@
/* qpol cat */
typedef struct qpol_cat {} qpol_cat_t;
%extend qpol_cat_t {
- qpol_cat_t(qpol_policy_t *p, const char *name) {
+ qpol_cat(qpol_policy_t *p, const char *name) {
const qpol_cat_t *c;
BEGIN_EXCEPTION
if (qpol_policy_get_cat_by_name(p, name, &c)) {
@@ -1008,7 +1008,7 @@
fail:
return NULL;
};
- ~qpol_cat_t() {
+ ~qpol_cat() {
/* no op */
return;
};
@@ -1064,14 +1064,14 @@
/* qpol mls range */
typedef struct qpol_mls_range {} qpol_mls_range_t;
%extend qpol_mls_range_t {
- qpol_mls_range_t() {
+ qpol_mls_range() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_mls_range_t objects");
END_EXCEPTION
fail:
return NULL;
}
- ~qpol_mls_range_t() {
+ ~qpol_mls_range() {
/* no op */
return;
};
@@ -1105,14 +1105,14 @@
/* qpol mls level */
typedef struct qpol_mls_level {} qpol_mls_level_t;
%extend qpol_mls_level_t {
- qpol_mls_level_t() {
+ qpol_mls_level() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_mls_level_t objects");
END_EXCEPTION
fail:
return NULL;
}
- ~qpol_mls_level_t() {
+ ~qpol_mls_level() {
/* no op */
return;
};
@@ -1147,7 +1147,7 @@
/* qpol user */
typedef struct qpol_user {} qpol_user_t;
%extend qpol_user_t {
- qpol_user_t(qpol_policy_t *p, const char *name) {
+ qpol_user(qpol_policy_t *p, const char *name) {
const qpol_user_t *u;
BEGIN_EXCEPTION
if (qpol_policy_get_user_by_name(p, name, &u)) {
@@ -1158,7 +1158,7 @@
fail:
return NULL;
};
- ~qpol_user_t() {
+ ~qpol_user() {
/* no op */
return;
};
@@ -1223,7 +1223,7 @@
/* qpol bool */
typedef struct qpol_bool {} qpol_bool_t;
%extend qpol_bool_t {
- qpol_bool_t(qpol_policy_t *p, const char *name) {
+ qpol_bool(qpol_policy_t *p, const char *name) {
qpol_bool_t *b;
BEGIN_EXCEPTION
if (qpol_policy_get_bool_by_name(p, name, &b)) {
@@ -1233,7 +1233,7 @@
fail:
return b;
};
- ~qpol_bool_t() {
+ ~qpol_bool() {
/* no op */
return;
};
@@ -1295,14 +1295,14 @@
/* qpol context */
typedef struct qpol_context {} qpol_context_t;
%extend qpol_context_t {
- qpol_context_t() {
+ qpol_context() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_context_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_context_t() {
+ ~qpol_context() {
/* no op */
return;
};
@@ -1356,7 +1356,7 @@
/* qpol class */
typedef struct qpol_class {} qpol_class_t;
%extend qpol_class_t {
- qpol_class_t(qpol_policy_t *p, const char *name) {
+ qpol_class(qpol_policy_t *p, const char *name) {
const qpol_class_t *c;
BEGIN_EXCEPTION
if (qpol_policy_get_class_by_name(p, name, &c)) {
@@ -1366,7 +1366,7 @@
fail:
return (qpol_class_t*)c;
};
- ~qpol_class_t() {
+ ~qpol_class() {
/* no op */
return;
};
@@ -1443,7 +1443,7 @@
/* qpol common */
typedef struct qpol_common {} qpol_common_t;
%extend qpol_common_t {
- qpol_common_t(qpol_policy_t *p, const char *name) {
+ qpol_common(qpol_policy_t *p, const char *name) {
const qpol_common_t *c;
BEGIN_EXCEPTION
if (qpol_policy_get_common_by_name(p, name, &c)) {
@@ -1453,7 +1453,7 @@
fail:
return (qpol_common_t*)c;
};
- ~qpol_common_t() {
+ ~qpol_common() {
/* no op */
return;
};
@@ -1515,7 +1515,7 @@
#define QPOL_FS_USE_PSID 6U
#endif
typedef struct qpol_fs_use {} qpol_fs_use_t;
-%extend qpol_fs_use_t {
+%extend qpol_fs_use {
qpol_fs_use_t(qpol_policy_t *p, const char *name) {
const qpol_fs_use_t *f;
BEGIN_EXCEPTION
@@ -1526,7 +1526,7 @@
fail:
return (qpol_fs_use_t*)f;
};
- ~qpol_fs_use_t() {
+ ~qpol_fs_use() {
/* no op */
return;
};
@@ -1594,7 +1594,7 @@
#endif
typedef struct qpol_genfscon {} qpol_genfscon_t;
%extend qpol_genfscon_t {
- qpol_genfscon_t(qpol_policy_t *p, const char *name, const char *path) {
+ qpol_genfscon(qpol_policy_t *p, const char *name, const char *path) {
qpol_genfscon_t *g;
BEGIN_EXCEPTION
if (qpol_policy_get_genfscon_by_name(p, name, path, &g)) {
@@ -1604,7 +1604,7 @@
fail:
return g;
};
- ~qpol_genfscon_t() {
+ ~qpol_genfscon() {
free(self);
};
const char *get_name(qpol_policy_t *p) {
@@ -1656,7 +1656,7 @@
/* qpol isid */
typedef struct qpol_isid {} qpol_isid_t;
-%extend qpol_isid_t {
+%extend qpol_isid {
qpol_isid_t(qpol_policy_t *p, const char *name) {
const qpol_isid_t *i;
BEGIN_EXCEPTION
@@ -1667,7 +1667,7 @@
fail:
return (qpol_isid_t*)i;
};
- ~qpol_isid_t() {
+ ~qpol_isid() {
/* no op */
return;
};
@@ -1701,7 +1701,7 @@
/* qpol netifcon */
typedef struct qpol_netifcon {} qpol_netifcon_t;
%extend qpol_netifcon_t {
- qpol_netifcon_t(qpol_policy_t *p, const char *name) {
+ qpol_netifcon(qpol_policy_t *p, const char *name) {
const qpol_netifcon_t *n;
BEGIN_EXCEPTION
if (qpol_policy_get_netifcon_by_name(p, name, &n)) {
@@ -1711,7 +1711,7 @@
fail:
return (qpol_netifcon_t*)n;
};
- ~qpol_netifcon_t() {
+ ~qpol_netifcon() {
/* no op */
return;
};
@@ -1757,7 +1757,7 @@
#define QPOL_IPV6 1
typedef struct qpol_nodecon {} qpol_nodecon_t;
%extend qpol_nodecon_t {
- qpol_nodecon_t(qpol_policy_t *p, int addr[4], int mask[4], int protocol) {
+ qpol_nodecon(qpol_policy_t *p, int addr[4], int mask[4], int protocol) {
uint32_t a[4], m[4];
qpol_nodecon_t *n;
BEGIN_EXCEPTION
@@ -1772,7 +1772,7 @@
fail:
return n;
}
- ~qpol_nodecon_t() {
+ ~qpol_nodecon() {
free(self);
};
uint32_t *get_addr(qpol_policy_t *p) {
@@ -1830,7 +1830,7 @@
#define IPPROTO_UDP 17
typedef struct qpol_portcon {} qpol_portcon_t;
%extend qpol_portcon_t {
- qpol_portcon_t(qpol_policy_t *p, uint16_t low, uint16_t high, uint8_t protocol) {
+ qpol_portcon(qpol_policy_t *p, uint16_t low, uint16_t high, uint8_t protocol) {
const qpol_portcon_t *qp;
BEGIN_EXCEPTION
if (qpol_policy_get_portcon_by_port(p, low, high, protocol, &qp)) {
@@ -1840,7 +1840,7 @@
fail:
return (qpol_portcon_t*)qp;
};
- ~qpol_portcon_t() {
+ ~qpol_portcon() {
/* no op */
return;
};
@@ -1893,7 +1893,7 @@
/* qpol constraint */
typedef struct qpol_constraint {} qpol_constraint_t;
-%extend qpol_constraint_t {
+%extend qpol_constraint {
qpol_constraint_t() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_constraint_t objects");
@@ -1901,7 +1901,7 @@
fail:
return NULL;
};
- ~qpol_constraint_t() {
+ ~qpol_constraint() {
free(self);
};
const qpol_class_t *get_class(qpol_policy_t *p) {
@@ -1945,7 +1945,7 @@
/* qpol validatetrans */
typedef struct qpol_validatetrans {} qpol_validatetrans_t;
-%extend qpol_validatetrans_t {
+%extend qpol_validatetrans {
qpol_validatetrans_t() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_validatetrans_t objects");
@@ -1953,7 +1953,7 @@
fail:
return NULL;
};
- ~qpol_validatetrans_t() {
+ ~qpol_validatetrans() {
free(self);
};
const qpol_class_t *get_class(qpol_policy_t *p) {
@@ -2011,14 +2011,14 @@
#define QPOL_CEXPR_OP_INCOMP 5
typedef struct qpol_constraint_expr_node {} qpol_constraint_expr_node_t;
%extend qpol_constraint_expr_node_t {
- qpol_constraint_expr_node_t() {
+ qpol_constraint_expr_node() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_constraint_expr_node_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_constraint_expr_node_t() {
+ ~qpol_constraint_expr_node() {
/* no op */
return;
};
@@ -2073,14 +2073,14 @@
/* qpol role allow */
typedef struct qpol_role_allow {} qpol_role_allow_t;
%extend qpol_role_allow_t {
- qpol_role_allow_t() {
+ qpol_role_allow() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_role_allow_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_role_allow_t() {
+ ~qpol_role_allow() {
/* no op */
return;
};
@@ -2114,14 +2114,14 @@
/* qpol role trans */
typedef struct qpol_role_trans {} qpol_role_trans_t;
%extend qpol_role_trans_t {
- qpol_role_trans_t() {
+ qpol_role_trans() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_role_trans_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_role_trans_t() {
+ ~qpol_role_trans() {
/* no op */
return;
};
@@ -2165,14 +2165,14 @@
/* qpol range trans */
typedef struct qpol_range_trans {} qpol_range_trans_t;
%extend qpol_range_trans_t {
- qpol_range_trans_t() {
+ qpol_range_trans() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_range_trans_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_range_trans_t() {
+ ~qpol_range_trans() {
/* no op */
return;
};
@@ -2228,14 +2228,14 @@
#define QPOL_RULE_DONTAUDIT 4
typedef struct qpol_avrule {} qpol_avrule_t;
%extend qpol_avrule_t {
- qpol_avrule_t() {
+ qpol_avrule() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_avrule_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_avrule_t() {
+ ~qpol_avrule() {
/* no op */
return;
};
@@ -2348,14 +2348,14 @@
#define QPOL_RULE_TYPE_MEMBER 32
typedef struct qpol_terule {} qpol_terule_t;
%extend qpol_terule_t {
- qpol_terule_t() {
+ qpol_terule() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_terule_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_terule_t() {
+ ~qpol_terule() {
/* no op */
return;
};
@@ -2464,14 +2464,14 @@
/* qpol conditional */
typedef struct qpol_cond {} qpol_cond_t;
%extend qpol_cond_t {
- qpol_cond_t() {
+ qpol_cond() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_cond_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_cond_t() {
+ ~qpol_cond() {
/* no op */
return;
};
@@ -2557,14 +2557,14 @@
#define QPOL_COND_EXPR_NEQ 7 /* bool != bool */
typedef struct qpol_cond_expr_node {} qpol_cond_expr_node_t;
%extend qpol_cond_expr_node_t {
- qpol_cond_expr_node_t() {
+ qpol_cond_expr_node() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_cond_expr_node_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_cond_expr_node_t() {
+ ~qpol_cond_expr_node() {
/* no op */
return;
};
@@ -2602,14 +2602,14 @@
/* qpol type set */
typedef struct qpol_type_set {} qpol_type_set_t;
%extend qpol_type_set_t {
- qpol_type_set_t() {
+ qpol_type_set() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_type_set_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_type_set_t() {
+ ~qpol_type_set() {
/* no op */
return;
};
@@ -2665,14 +2665,14 @@
/* qpol syn av rule */
typedef struct qpol_syn_avrule {} qpol_syn_avrule_t;
%extend qpol_syn_avrule_t {
- qpol_syn_avrule_t() {
+ qpol_syn_avrule() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_syn_avrule_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_syn_avrule_t() {
+ ~qpol_syn_avrule() {
/* no op */
return;
};
@@ -2778,14 +2778,14 @@
/* qpol syn te rule */
typedef struct qpol_syn_terule {} qpol_syn_terule_t;
%extend qpol_syn_terule_t {
- qpol_syn_terule_t() {
+ qpol_syn_terule() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create qpol_syn_terule_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~qpol_syn_terule_t() {
+ ~qpol_syn_terule() {
/* no op */
return;
};

View file

@ -1,84 +0,0 @@
diff -up setools-3.3.7/libqpol/src/util.c.current setools-3.3.7/libqpol/src/util.c
--- setools-3.3.7/libqpol/src/util.c.current 2010-04-23 12:22:08.000000000 -0400
+++ setools-3.3.7/libqpol/src/util.c 2012-02-16 12:01:33.030434514 -0500
@@ -84,75 +84,12 @@ static int get_binpol_version(const char
static int search_policy_binary_file(char **path)
{
- const char *binary_path;
- if ((binary_path = selinux_binary_policy_path()) == NULL) {
- return -1;
+ const char *binary_path = selinux_current_policy_path();
+ if (binary_path) {
+ *path = strdup(binary_path);
+ if (*path) return 0;
}
-
- int expected_version = -1, latest_version = -1;
-#ifdef LIBSELINUX
- /* if the system has SELinux enabled, prefer the policy whose
- name matches the current policy version */
- if ((expected_version = security_policyvers()) < 0) {
- return -1;
- }
-#endif
-
- glob_t glob_buf;
- struct stat fs;
- int rt, error = 0, retval = -1;
- size_t i;
- char *pattern = NULL;
- if (asprintf(&pattern, "%s.*", binary_path) < 0) {
- return -1;
- }
- glob_buf.gl_offs = 1;
- glob_buf.gl_pathc = 0;
- rt = glob(pattern, GLOB_DOOFFS, NULL, &glob_buf);
- if (rt != 0 && rt != GLOB_NOMATCH) {
- errno = EIO;
- return -1;
- }
-
- for (i = 0; i < glob_buf.gl_pathc; i++) {
- char *p = glob_buf.gl_pathv[i + glob_buf.gl_offs];
- if (stat(p, &fs) != 0) {
- error = errno;
- goto cleanup;
- }
- if (S_ISDIR(fs.st_mode))
- continue;
-
- if ((rt = get_binpol_version(p)) < 0) {
- error = errno;
- goto cleanup;
- }
-
- if (rt > latest_version || rt == expected_version) {
- free(*path);
- if ((*path = strdup(p)) == NULL) {
- error = errno;
- goto cleanup;
- }
- if (rt == expected_version) {
- break;
- }
- latest_version = rt;
- }
- }
-
- if (*path == NULL) {
- retval = 1;
- } else {
- retval = 0;
- }
- cleanup:
- free(pattern);
- globfree(&glob_buf);
- if (retval == -1) {
- errno = error;
- }
- return retval;
+ return -1;
}
int qpol_default_policy_find(char **path)

View file

@ -1,255 +0,0 @@
diff -up setools-3.3.7/Makefile.am.noship setools-3.3.7/Makefile.am
--- setools-3.3.7/Makefile.am.noship 2008-02-22 14:06:28.000000000 -0500
+++ setools-3.3.7/Makefile.am 2013-01-30 09:18:59.775157146 -0500
@@ -8,9 +8,8 @@ endif
if BUILD_GUI
MAYBE_GUI = seaudit
endif
-# sediffx is also built conditionally, from sediffx/Makefile.am
-SUBDIRS = libqpol libapol libsefs libpoldiff libseaudit secmds sechecker sediff man packages debian $(MAYBE_APOL) $(MAYBE_GUI)
+SUBDIRS = libqpol libapol libsefs libpoldiff libseaudit secmds sediff man packages debian $(MAYBE_APOL) $(MAYBE_GUI)
#old indent opts
#INDENT_OPTS = -npro -nbad -bap -sob -ss -l132 -di1 -nbc -br -nbbb -c40 -cd40 -ncdb -ce -cli0 -cp40 -ncs -d0 -nfc1 -nfca -i8 -ts8 -ci8 -lp -ip0 -npcs -npsl -sc
@@ -49,12 +48,6 @@ seaudit: libqpol libapol libseaudit
sediff: libqpol libapol libpoldiff
$(MAKE) -C $(top_srcdir)/sediff sediff
-sediffx: libqpol libapol libpoldiff
- $(MAKE) -C $(top_srcdir)/sediff sediffx
-
-sechecker: libqpol libapol libsefs
- $(MAKE) -C $(top_srcdir)/sechecker
-
help:
@echo "Make targets for SETools:"
@echo " all: build everything, but do not install"
@@ -65,8 +58,6 @@ help:
@echo " secmds: build command line tools"
@echo " seaudit: build audit log analysis tools"
@echo " sediff: build semantic policy diff command line tool"
- @echo " sediffx: build semantic policy diff graphical tool"
- @echo " sechecker: build policy checking tool"
@echo ""
@echo " install-logwatch: install LogWatch config files for seaudit-report"
@echo " (requires LogWatch and root privileges)"
@@ -78,9 +69,9 @@ install-logwatch:
$(MAKE) -C $(top_srcdir)/seaudit install-logwatch
.PHONY: libqpol libapol libpoldiff libsefs libseaudit \
- apol secmds seaudit sediff sediffx sechecker \
+ apol secmds seaudit sediff \
install-logwatch help \
- seinfo sesearch indexcon findcon replcon searchcon \
+ seinfo sesearch \
packages
seinfo: libqpol libapol
@@ -89,18 +80,6 @@ seinfo: libqpol libapol
sesearch: libqpol libapol
$(MAKE) -C $(top_srcdir)/secmds sesearch
-indexcon: libqpol libapol libsefs
- $(MAKE) -C $(top_srcdir)/secmds indexcon
-
-findcon: libqpol libapol libsefs
- $(MAKE) -C $(top_srcdir)/secmds findcon
-
-replcon: libqpol libapol libsefs
- $(MAKE) -C $(top_srcdir)/secmds replcon
-
-searchcon: libqpol libapol libsefs
- $(MAKE) -C $(top_srcdir)/secmds searchcon
-
packages:
$(MAKE) -C $(top_srcdir)/packages
diff -up setools-3.3.7/man/Makefile.am.noship setools-3.3.7/man/Makefile.am
--- setools-3.3.7/man/Makefile.am.noship 2007-08-02 17:16:33.000000000 -0400
+++ setools-3.3.7/man/Makefile.am 2013-01-30 09:16:13.696871566 -0500
@@ -1,19 +1,10 @@
if BUILD_GUI
MAYBEMANS = apol.1 \
- seaudit.8 seaudit-report.8 \
- sediffx.1
+ seaudit.8
endif
EXTRA_DIST=$(man_MANS) apol.1 \
- seaudit.8 seaudit-report.8.in \
- sediffx.1
+ seaudit.8
-man_MANS = findcon.1 indexcon.1 replcon.1 \
- sechecker.1 \
- sediff.1 \
+man_MANS = sediff.1 \
seinfo.1 sesearch.1 $(MAYBEMANS)
-
-seaudit-report.8: seaudit-report.8.in Makefile
- sed -e 's|\@setoolsdir\@|$(setoolsdir)|g' $< > $@
-
-CLEANFILES = seaudit-report.8
diff -up setools-3.3.7/seaudit/Makefile.am.noship setools-3.3.7/seaudit/Makefile.am
--- setools-3.3.7/seaudit/Makefile.am.noship 2008-02-22 14:06:28.000000000 -0500
+++ setools-3.3.7/seaudit/Makefile.am 2013-01-30 09:16:13.697871568 -0500
@@ -1,5 +1,4 @@
setoolsdir = @setoolsdir@
-bin_PROGRAMS = seaudit-report
sbin_PROGRAMS = seaudit
AM_CFLAGS = @DEBUGCFLAGS@ @WARNCFLAGS@ @PROFILECFLAGS@ @SELINUX_CFLAGS@ \
@@ -20,13 +19,10 @@ LDADD = @SELINUX_LIB_FLAG@ @SEAUDIT_LIB_
dist_setools_DATA = \
seaudit.glade \
seaudit_help.txt \
- seaudit-report.conf \
- seaudit-report.css \
seaudit.png seaudit-small.png
nodist_setools_DATA = \
- dot_seaudit \
- seaudit-report-service
+ dot_seaudit
seaudit_SOURCES = \
filter_view.c filter_view.h \
@@ -50,31 +46,12 @@ seaudit_DEPENDENCIES = $(top_builddir)/l
dot_seaudit: dot_seaudit.in Makefile
sed -e 's|\@setoolsdir\@|$(setoolsdir)|g' $< > $@
-seaudit_report_SOURCES = seaudit-report.c
-seaudit_report_DEPENDENCIES = $(top_builddir)/libseaudit/src/libseaudit.so \
- $(top_builddir)/libapol/src/libapol.so \
- $(top_builddir)/libqpol/src/libqpol.so
-
logwatch = $(DESTDIR)/etc/logwatch
LOGWATCH_GROUP = $(logwatch)/conf/logfiles
LOGWATCH_SERVICE = $(logwatch)/conf/services
LOGWATCH_FILTER = $(logwatch)/scripts/services
-dist_noinst_DATA = dot_seaudit.in \
- seaudit-report-group.conf \
- seaudit-report-service.conf \
- seaudit-report-service.in
-
-seaudit-report-service: seaudit-report-service.in Makefile
- sed -e 's|\@bindir\@|$(bindir)|g' $< > $@
-
-install-logwatch: $(dist_noinst_DATA) seaudit-report-service
- mkdir -p -- $(LOGWATCH_GROUP)
- install -m 644 seaudit-report-group.conf $(LOGWATCH_GROUP)
- mkdir -p -- $(LOGWATCH_SERVICE)
- install -m 644 seaudit-report-service.conf $(LOGWATCH_SERVICE)
- mkdir -p -- $(LOGWATCH_FILTER)
- install -m 755 seaudit-report-service $(LOGWATCH_FILTER)
+dist_noinst_DATA = dot_seaudit.in
$(top_builddir)/libapol/src/libapol.so:
$(MAKE) -C $(top_builddir)/libapol/src $(notdir $@)
@@ -85,6 +62,4 @@ $(top_builddir)/libqpol/src/libqpol.so:
$(top_builddir)/libsefs/src/libsefs.so:
$(MAKE) -C $(top_builddir)/libsefs/src $(notdir $@)
-.PHONY: install-logwatch
-
-CLEANFILES = dot_seaudit seaudit-report-service
+CLEANFILES = dot_seaudit
diff -up setools-3.3.7/secmds/Makefile.am.noship setools-3.3.7/secmds/Makefile.am
--- setools-3.3.7/secmds/Makefile.am.noship 2007-08-02 17:16:33.000000000 -0400
+++ setools-3.3.7/secmds/Makefile.am 2013-01-30 09:16:13.698871569 -0500
@@ -1,6 +1,6 @@
# various setools command line tools
-bin_PROGRAMS = seinfo sesearch findcon replcon indexcon
+bin_PROGRAMS = seinfo sesearch
# These are for indexcon so that it is usable on machines without setools
STATICLIBS = ../libsefs/src/libsefs.a ../libapol/src/libapol.a ../libqpol/src/libqpol.a -lsqlite3
@@ -18,18 +18,6 @@ seinfo_SOURCES = seinfo.c
sesearch_SOURCES = sesearch.c
-indexcon_SOURCES = indexcon.cc
-indexcon_LDADD = @SELINUX_LIB_FLAG@ $(STATICLIBS)
-indexcon_DEPENDENCIES = $(DEPENDENCIES) $(top_builddir)/libsefs/src/libsefs.so
-
-findcon_SOURCES = findcon.cc
-findcon_LDADD = @SEFS_LIB_FLAG@ $(LDADD)
-findcon_DEPENDENCIES = $(DEPENDENCIES) $(top_builddir)/libsefs/src/libsefs.so
-
-replcon_SOURCES = replcon.cc
-replcon_LDADD = @SEFS_LIB_FLAG@ $(LDADD)
-replcon_DEPENDENCIES = $(DEPENDENCIES) $(top_builddir)/libsefs/src/libsefs.so
-
$(top_builddir)/libapol/src/libapol.so:
$(MAKE) -C $(top_builddir)/libapol/src $(notdir $@)
diff -up setools-3.3.7/sediff/Makefile.am.noship setools-3.3.7/sediff/Makefile.am
--- setools-3.3.7/sediff/Makefile.am.noship 2007-04-25 15:20:20.000000000 -0400
+++ setools-3.3.7/sediff/Makefile.am 2013-01-30 09:16:13.698871569 -0500
@@ -1,13 +1,6 @@
setoolsdir = @setoolsdir@
-dist_setools_DATA = sediff_help.txt sediffx.glade \
- sediffx.png sediffx-small.png
-
-if BUILD_GUI
- MAYBE_SEDIFFX = sediffx
-endif
-
-bin_PROGRAMS = sediff $(MAYBE_SEDIFFX)
+bin_PROGRAMS = sediff
AM_CFLAGS = @DEBUGCFLAGS@ @WARNCFLAGS@ @PROFILECFLAGS@ @SELINUX_CFLAGS@ \
@QPOL_CFLAGS@ @APOL_CFLAGS@ @POLDIFF_CFLAGS@
@@ -15,14 +8,7 @@ AM_LDFLAGS = @DEBUGLDFLAGS@ @WARNLDFLAGS
LDADD = @SELINUX_LIB_FLAG@ @POLDIFF_LIB_FLAG@ @APOL_LIB_FLAG@ @QPOL_LIB_FLAG@
-sediff_CFLAGS = $(AM_CFLAGS)
-sediffx_CFLAGS = $(AM_CFLAGS) \
- @GTK_CFLAGS@ @PIXBUF_CFLAGS@ @GLADE_CFLAGS@ @GTHREAD_CFLAGS@
-
-# need the -rdynamic flag below - glade uses dlopen() upon sediffx callbacks
-sediffx_LDFLAGS = $(AM_LDFLAGS) \
- @GTK_LIBS@ @PIXBUF_LIBS@ @GLADE_LIBS@ @GTHREAD_LIBS@ @XML_LIBS@ \
- -rdynamic
+sediff_CFLAGS = $(AM_CFLAGS)
DEPENDENCIES = $(top_builddir)/libpoldiff/src/libpoldiff.so \
$(top_builddir)/libapol/src/libapol.so \
@@ -30,20 +16,6 @@ DEPENDENCIES = $(top_builddir)/libpoldif
sediff_SOURCES = sediff.c
-sediffx_SOURCES = \
- find_dialog.c find_dialog.h \
- open_policies_dialog.c open_policies_dialog.h \
- policy_view.c policy_view.h \
- progress.c progress.h \
- remap_types_dialog.c remap_types_dialog.h \
- result_item.c result_item.h \
- result_item_render.c result_item_render.h \
- results.c results.h \
- select_diff_dialog.c select_diff_dialog.h \
- toplevel.c toplevel.h \
- utilgui.c utilgui.h \
- sediffx.c sediffx.h
-
$(top_builddir)/libpoldiff/src/libpoldiff.so:
$(MAKE) -C $(top_builddir)/libpoldiff/src $(notdir $@)
diff -up setools-3.3.7/configure.ac~ setools-3.3.7/configure.ac
--- setools-3.3.7/configure.ac~ 2013-01-30 09:52:05.689136955 -0500
+++ setools-3.3.7/configure.ac 2013-01-30 09:56:26.853722063 -0500
@@ -63,7 +63,7 @@ if test ${ac_cv_prog_cc_c99} = "no"; the
fi
AC_PROG_CXX
AC_LANG([C])
-AC_PROG_LIBTOOL
+AC_PROG_RANLIB
AC_PROG_LN_S
AC_PROG_LEX
AC_PROG_YACC

View file

@ -1,28 +0,0 @@
diff -up setools-3.3.7/libqpol/swig/java/Makefile.am.seaudit setools-3.3.7/libqpol/swig/java/Makefile.am
--- setools-3.3.7/libqpol/swig/java/Makefile.am.seaudit 2010-05-03 12:37:54.000000000 -0400
+++ setools-3.3.7/libqpol/swig/java/Makefile.am 2012-09-28 10:15:56.408912525 -0400
@@ -48,7 +48,6 @@ BUILT_SOURCES = qpol_wrap.c \
qpol_type_t.java \
qpol_user_t.java \
qpol_validatetrans_t.java \
- SWIGTYPE_p_int.java \
SWIGTYPE_p_unsigned_int.java \
SWIGTYPE_p_void.java
diff -up setools-3.3.7/seaudit/progress.c.seaudit setools-3.3.7/seaudit/progress.c
--- setools-3.3.7/seaudit/progress.c.seaudit 2007-08-02 17:16:33.000000000 -0400
+++ setools-3.3.7/seaudit/progress.c 2012-09-28 10:15:56.407912521 -0400
@@ -99,10 +99,11 @@ void progress_hide(progress_t * progress
int progress_wait(progress_t * progress)
{
- GTimeVal wait_time = { 0, 50000 };
+ gint64 end_time;
g_mutex_lock(progress->mutex);
while (!progress->done) {
- g_cond_timed_wait(progress->cond, progress->mutex, &wait_time);
+ end_time = g_get_monotonic_time () + 50000; // need to be set before each wait
+ g_cond_wait_until(progress->cond, progress->mutex,end_time);
if (progress->s != NULL) {
gtk_label_set_text(GTK_LABEL(progress->label2), progress->s);
free(progress->s);

View file

@ -1,956 +0,0 @@
@@ -, +, @@
---
libapol/swig/apol.i | 218 ++++++++++++++++++++++++++--------------------------
1 file changed, 109 insertions(+), 109 deletions(-)
--- a/libapol/swig/apol.i
+++ a/libapol/swig/apol.i
@@ -256,7 +256,7 @@ uint8_t apol_str_to_protocol(const char *protocol_str);
}
%}
%extend apol_ip_t {
- apol_ip_t(const char *str) {
+ apol_ip(const char *str) {
apol_ip_t *ip = NULL;
BEGIN_EXCEPTION
ip = calloc(1, sizeof(*ip));
@@ -274,7 +274,7 @@ uint8_t apol_str_to_protocol(const char *protocol_str);
fail:
return ip;
};
- ~apol_ip_t() {
+ ~apol_ip() {
free(self);
};
int get_protocol() {
@@ -303,16 +303,16 @@ char *apol_file_find_path(const char *file_name);
%}
typedef struct apol_vector {} apol_vector_t;
%extend apol_vector_t {
- apol_vector_t() {
+ apol_vector() {
return apol_vector_create(NULL);
};
- apol_vector_t(qpol_iterator_t *iter) {
+ apol_vector(qpol_iterator_t *iter) {
return apol_vector_create_from_iter(iter, NULL);
};
- apol_vector_t(apol_vector_t *v) {
+ apol_vector(apol_vector_t *v) {
return apol_vector_create_from_vector(v, NULL, NULL, NULL);
};
- apol_vector_t(apol_vector_t *a, apol_vector_t *b) {
+ apol_vector(apol_vector_t *a, apol_vector_t *b) {
return apol_vector_create_from_intersection(a, b, NULL, NULL);
};
size_t get_size() {
@@ -324,7 +324,7 @@ typedef struct apol_vector {} apol_vector_t;
void *get_element(size_t i) {
return apol_vector_get_element(self, i);
};
- ~apol_vector_t() {
+ ~apol_vector() {
apol_vector_destroy(&self);
};
void append(void *x) {
@@ -379,13 +379,13 @@ typedef struct apol_vector {} apol_vector_t;
%}
typedef struct apol_string_vector {} apol_string_vector_t;
%extend apol_string_vector_t {
- apol_string_vector_t() {
+ apol_string_vector() {
return (apol_string_vector_t*)apol_vector_create(free);
};
- apol_string_vector_t(apol_string_vector_t *v) {
+ apol_string_vector(apol_string_vector_t *v) {
return (apol_string_vector_t*)apol_vector_create_from_vector((apol_vector_t*)v, apol_str_strdup, NULL, free);
};
- apol_string_vector_t(apol_string_vector_t *a, apol_string_vector_t *b) {
+ apol_string_vector(apol_string_vector_t *a, apol_string_vector_t *b) {
return (apol_string_vector_t*)apol_vector_create_from_intersection((apol_vector_t*)a, (apol_vector_t*)b, apol_str_strcmp, NULL);
};
size_t get_size() {
@@ -397,7 +397,7 @@ typedef struct apol_string_vector {} apol_string_vector_t;
char *get_element(size_t i) {
return (char*)apol_vector_get_element((apol_vector_t*)self, i);
};
- ~apol_string_vector_t() {
+ ~apol_string_vector() {
apol_vector_destroy((apol_vector_t**)&self);
};
size_t get_index(char *str) {
@@ -462,7 +462,7 @@ typedef struct apol_string_vector {} apol_string_vector_t;
} apol_policy_path_type_e;
typedef struct apol_policy_path {} apol_policy_path_t;
%extend apol_policy_path_t {
- apol_policy_path_t(apol_policy_path_type_e type, char * primary, apol_string_vector_t *modules = NULL) {
+ apol_policy_path(apol_policy_path_type_e type, char * primary, apol_string_vector_t *modules = NULL) {
apol_policy_path_t *p;
BEGIN_EXCEPTION
if ((p = apol_policy_path_create(type, primary, (apol_vector_t*)modules)) == NULL) {
@@ -472,7 +472,7 @@ typedef struct apol_policy_path {} apol_policy_path_t;
fail:
return p;
};
- apol_policy_path_t(char *path) {
+ apol_policy_path(char *path) {
apol_policy_path_t *p;
BEGIN_EXCEPTION
if ((p = apol_policy_path_create_from_file(path)) == NULL) {
@@ -482,7 +482,7 @@ typedef struct apol_policy_path {} apol_policy_path_t;
fail:
return p;
};
- apol_policy_path_t(char *str, int unused) {
+ apol_policy_path(char *str, int unused) {
apol_policy_path_t *p;
BEGIN_EXCEPTION
if ((p = apol_policy_path_create_from_string(str)) == NULL) {
@@ -492,7 +492,7 @@ typedef struct apol_policy_path {} apol_policy_path_t;
fail:
return p;
};
- apol_policy_path_t(apol_policy_path_t *in) {
+ apol_policy_path(apol_policy_path_t *in) {
apol_policy_path_t *p;
BEGIN_EXCEPTION
if ((p = apol_policy_path_create_from_policy_path(in)) == NULL) {
@@ -502,7 +502,7 @@ typedef struct apol_policy_path {} apol_policy_path_t;
fail:
return p;
};
- ~apol_policy_path_t() {
+ ~apol_policy_path() {
apol_policy_path_destroy(&self);
};
apol_policy_path_type_e get_type() {
@@ -549,7 +549,7 @@ typedef struct apol_policy {} apol_policy_t;
#define APOL_PERMMAP_BOTH (APOL_PERMMAP_READ | APOL_PERMMAP_WRITE)
#define APOL_PERMMAP_NONE 0x10
%extend apol_policy_t {
- apol_policy_t(apol_policy_path_t *path, int options = 0) {
+ apol_policy(apol_policy_path_t *path, int options = 0) {
apol_policy_t *p;
BEGIN_EXCEPTION
p = apol_policy_create_from_policy_path(path, options, apol_swig_message_callback, apol_swig_message_callback_arg);
@@ -564,7 +564,7 @@ typedef struct apol_policy {} apol_policy_t;
fail:
return p;
};
- ~apol_policy_t() {
+ ~apol_policy() {
apol_policy_destroy(&self);
};
int get_policy_type() {
@@ -652,7 +652,7 @@ typedef struct apol_policy {} apol_policy_t;
/* apol type query */
typedef struct apol_type_query {} apol_type_query_t;
%extend apol_type_query_t {
- apol_type_query_t() {
+ apol_type_query() {
apol_type_query_t *tq;
BEGIN_EXCEPTION
tq = apol_type_query_create();
@@ -663,7 +663,7 @@ typedef struct apol_type_query {} apol_type_query_t;
fail:
return tq;
};
- ~apol_type_query_t() {
+ ~apol_type_query() {
apol_type_query_destroy(&self);
};
%newobject run(apol_policy_t *);
@@ -694,7 +694,7 @@ typedef struct apol_type_query {} apol_type_query_t;
/* apol attribute query */
typedef struct apol_attr_query {} apol_attr_query_t;
%extend apol_attr_query_t {
- apol_attr_query_t() {
+ apol_attr_query() {
apol_attr_query_t *aq;
BEGIN_EXCEPTION
aq = apol_attr_query_create();
@@ -705,7 +705,7 @@ typedef struct apol_attr_query {} apol_attr_query_t;
fail:
return aq;
};
- ~apol_attr_query_t() {
+ ~apol_attr_query() {
apol_attr_query_destroy(&self);
};
%newobject run(apol_policy_t *);
@@ -736,7 +736,7 @@ typedef struct apol_attr_query {} apol_attr_query_t;
/* apol role query */
typedef struct apol_role_query {} apol_role_query_t;
%extend apol_role_query_t {
- apol_role_query_t() {
+ apol_role_query() {
apol_role_query_t *rq;
BEGIN_EXCEPTION
rq = apol_role_query_create();
@@ -747,7 +747,7 @@ typedef struct apol_role_query {} apol_role_query_t;
fail:
return rq;
};
- ~apol_role_query_t() {
+ ~apol_role_query() {
apol_role_query_destroy(&self);
};
%newobject run(apol_policy_t *);
@@ -788,7 +788,7 @@ int apol_role_has_type(apol_policy_t * p, qpol_role_t * r, qpol_type_t * t);
/* apol class query */
typedef struct apol_class_query {} apol_class_query_t;
%extend apol_class_query_t {
- apol_class_query_t() {
+ apol_class_query() {
apol_class_query_t *cq;
BEGIN_EXCEPTION
cq = apol_class_query_create();
@@ -799,7 +799,7 @@ typedef struct apol_class_query {} apol_class_query_t;
fail:
return cq;
};
- ~apol_class_query_t() {
+ ~apol_class_query() {
apol_class_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -839,7 +839,7 @@ typedef struct apol_class_query {} apol_class_query_t;
/* apol common query */
typedef struct apol_common_query {} apol_common_query_t;
%extend apol_common_query_t {
- apol_common_query_t() {
+ apol_common_query() {
apol_common_query_t *cq;
BEGIN_EXCEPTION
cq = apol_common_query_create();
@@ -850,7 +850,7 @@ typedef struct apol_common_query {} apol_common_query_t;
fail:
return cq;
};
- ~apol_common_query_t() {
+ ~apol_common_query() {
apol_common_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -881,7 +881,7 @@ typedef struct apol_common_query {} apol_common_query_t;
/* apol perm query */
typedef struct apol_perm_query {} apol_perm_query_t;
%extend apol_perm_query_t {
- apol_perm_query_t() {
+ apol_perm_query() {
apol_perm_query_t *pq;
BEGIN_EXCEPTION
pq = apol_perm_query_create();
@@ -892,7 +892,7 @@ typedef struct apol_perm_query {} apol_perm_query_t;
fail:
return pq;
};
- ~apol_perm_query_t() {
+ ~apol_perm_query() {
apol_perm_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -923,7 +923,7 @@ typedef struct apol_perm_query {} apol_perm_query_t;
/* apol bool query */
typedef struct apol_bool_query {} apol_bool_query_t;
%extend apol_bool_query_t {
- apol_bool_query_t() {
+ apol_bool_query() {
apol_bool_query_t *bq;
BEGIN_EXCEPTION
bq = apol_bool_query_create();
@@ -934,7 +934,7 @@ typedef struct apol_bool_query {} apol_bool_query_t;
fail:
return bq;
};
- ~apol_bool_query_t() {
+ ~apol_bool_query() {
apol_bool_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -965,7 +965,7 @@ typedef struct apol_bool_query {} apol_bool_query_t;
/* apol mls level */
typedef struct apol_mls_level {} apol_mls_level_t;
%extend apol_mls_level_t {
- apol_mls_level_t() {
+ apol_mls_level() {
apol_mls_level_t *aml;
BEGIN_EXCEPTION
aml = apol_mls_level_create();
@@ -976,7 +976,7 @@ typedef struct apol_mls_level {} apol_mls_level_t;
fail:
return aml;
};
- apol_mls_level_t(apol_mls_level_t *in) {
+ apol_mls_level(apol_mls_level_t *in) {
apol_mls_level_t *aml;
BEGIN_EXCEPTION
aml = apol_mls_level_create_from_mls_level(in);
@@ -987,7 +987,7 @@ typedef struct apol_mls_level {} apol_mls_level_t;
fail:
return aml;
};
- apol_mls_level_t(apol_policy_t *p, const char *str) {
+ apol_mls_level(apol_policy_t *p, const char *str) {
apol_mls_level_t *aml;
BEGIN_EXCEPTION
aml = apol_mls_level_create_from_string(p, str);
@@ -998,7 +998,7 @@ typedef struct apol_mls_level {} apol_mls_level_t;
fail:
return aml;
};
- apol_mls_level_t(const char *str) {
+ apol_mls_level(const char *str) {
apol_mls_level_t *aml;
BEGIN_EXCEPTION
aml = apol_mls_level_create_from_literal(str);
@@ -1009,7 +1009,7 @@ typedef struct apol_mls_level {} apol_mls_level_t;
fail:
return aml;
};
- apol_mls_level_t(apol_policy_t *p, qpol_mls_level_t *qml) {
+ apol_mls_level(apol_policy_t *p, qpol_mls_level_t *qml) {
apol_mls_level_t *aml;
BEGIN_EXCEPTION
aml = apol_mls_level_create_from_qpol_mls_level(p, qml);
@@ -1020,7 +1020,7 @@ typedef struct apol_mls_level {} apol_mls_level_t;
fail:
return aml;
};
- apol_mls_level_t(apol_policy_t *p, qpol_level_t *ql) {
+ apol_mls_level(apol_policy_t *p, qpol_level_t *ql) {
apol_mls_level_t *aml;
BEGIN_EXCEPTION
aml = apol_mls_level_create_from_qpol_level_datum(p, ql);
@@ -1031,7 +1031,7 @@ typedef struct apol_mls_level {} apol_mls_level_t;
fail:
return aml;
};
- ~apol_mls_level_t() {
+ ~apol_mls_level() {
apol_mls_level_destroy(&self);
};
void set_sens(apol_policy_t *p, char *sens) {
@@ -1128,7 +1128,7 @@ int apol_mls_cats_compare(apol_policy_t * p, const char *cat1, const char *cat2)
#endif
typedef struct apol_mls_range {} apol_mls_range_t;
%extend apol_mls_range_t {
- apol_mls_range_t() {
+ apol_mls_range() {
apol_mls_range_t *amr;
BEGIN_EXCEPTION
amr = apol_mls_range_create();
@@ -1139,7 +1139,7 @@ typedef struct apol_mls_range {} apol_mls_range_t;
fail:
return amr;
};
- apol_mls_range_t(apol_mls_range_t *in) {
+ apol_mls_range(apol_mls_range_t *in) {
apol_mls_range_t *amr;
BEGIN_EXCEPTION
amr = apol_mls_range_create_from_mls_range(in);
@@ -1150,7 +1150,7 @@ typedef struct apol_mls_range {} apol_mls_range_t;
fail:
return amr;
};
- apol_mls_range_t(apol_policy_t *p, const char *s) {
+ apol_mls_range(apol_policy_t *p, const char *s) {
apol_mls_range_t *amr;
BEGIN_EXCEPTION
amr = apol_mls_range_create_from_string(p, s);
@@ -1161,7 +1161,7 @@ typedef struct apol_mls_range {} apol_mls_range_t;
fail:
return amr;
};
- apol_mls_range_t(const char *s) {
+ apol_mls_range(const char *s) {
apol_mls_range_t *amr;
BEGIN_EXCEPTION
amr = apol_mls_range_create_from_literal(s);
@@ -1172,7 +1172,7 @@ typedef struct apol_mls_range {} apol_mls_range_t;
fail:
return amr;
};
- apol_mls_range_t(apol_policy_t *p, qpol_mls_range_t *in) {
+ apol_mls_range(apol_policy_t *p, qpol_mls_range_t *in) {
apol_mls_range_t *amr;
BEGIN_EXCEPTION
amr = apol_mls_range_create_from_qpol_mls_range(p, in);
@@ -1183,7 +1183,7 @@ typedef struct apol_mls_range {} apol_mls_range_t;
fail:
return amr;
};
- ~apol_mls_range_t() {
+ ~apol_mls_range() {
apol_mls_range_destroy(&self);
};
void set_low(apol_policy_t *p, apol_mls_level_t *lvl) {
@@ -1278,7 +1278,7 @@ int apol_mls_range_contain_subrange(apol_policy_t * p, const apol_mls_range_t *
/* apol level query */
typedef struct apol_level_query {} apol_level_query_t;
%extend apol_level_query_t {
- apol_level_query_t() {
+ apol_level_query() {
apol_level_query_t * alq;
BEGIN_EXCEPTION
alq = apol_level_query_create();
@@ -1289,7 +1289,7 @@ typedef struct apol_level_query {} apol_level_query_t;
fail:
return alq;
};
- ~apol_level_query_t() {
+ ~apol_level_query() {
apol_level_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1329,7 +1329,7 @@ typedef struct apol_level_query {} apol_level_query_t;
/* apol cat query */
typedef struct apol_cat_query {} apol_cat_query_t;
%extend apol_cat_query_t {
- apol_cat_query_t() {
+ apol_cat_query() {
apol_cat_query_t * acq;
BEGIN_EXCEPTION
acq = apol_cat_query_create();
@@ -1340,7 +1340,7 @@ typedef struct apol_cat_query {} apol_cat_query_t;
fail:
return acq;
};
- ~apol_cat_query_t() {
+ ~apol_cat_query() {
apol_cat_query_destroy(&self);
};
%newobject run(apol_policy_t *);
@@ -1379,7 +1379,7 @@ typedef struct apol_cat_query {} apol_cat_query_t;
#endif
typedef struct apol_user_query {} apol_user_query_t;
%extend apol_user_query_t {
- apol_user_query_t() {
+ apol_user_query() {
apol_user_query_t *auq;
BEGIN_EXCEPTION
auq = apol_user_query_create();
@@ -1390,7 +1390,7 @@ typedef struct apol_user_query {} apol_user_query_t;
fail:
return auq;
};
- ~apol_user_query_t() {
+ ~apol_user_query() {
apol_user_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1448,7 +1448,7 @@ typedef struct apol_user_query {} apol_user_query_t;
/* apol context */
typedef struct apol_context {} apol_context_t;
%extend apol_context_t {
- apol_context_t() {
+ apol_context() {
apol_context_t *ctx;
BEGIN_EXCEPTION
ctx = apol_context_create();
@@ -1459,7 +1459,7 @@ typedef struct apol_context {} apol_context_t;
fail:
return ctx;
};
- apol_context_t(apol_policy_t *p, qpol_context_t *in) {
+ apol_context(apol_policy_t *p, qpol_context_t *in) {
apol_context_t *ctx;
BEGIN_EXCEPTION
ctx = apol_context_create_from_qpol_context(p, in);
@@ -1470,7 +1470,7 @@ typedef struct apol_context {} apol_context_t;
fail:
return ctx;
};
- apol_context_t(const char *str) {
+ apol_context(const char *str) {
apol_context_t *ctx;
BEGIN_EXCEPTION
ctx = apol_context_create_from_literal(str);
@@ -1481,7 +1481,7 @@ typedef struct apol_context {} apol_context_t;
fail:
return ctx;
};
- ~apol_context_t() {
+ ~apol_context() {
apol_context_destroy(&self);
};
void set_user(apol_policy_t *p, char *name) {
@@ -1583,7 +1583,7 @@ int apol_context_compare(apol_policy_t * p, apol_context_t * target, apol_contex
/* apol constraint query */
typedef struct apol_constraint_query {} apol_constraint_query_t;
%extend apol_constraint_query_t {
- apol_constraint_query_t() {
+ apol_constraint_query() {
apol_constraint_query_t *acq;
BEGIN_EXCEPTION
acq = apol_constraint_query_create();
@@ -1594,7 +1594,7 @@ typedef struct apol_constraint_query {} apol_constraint_query_t;
fail:
return acq;
};
- ~apol_constraint_query_t() {
+ ~apol_constraint_query() {
apol_constraint_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1634,7 +1634,7 @@ typedef struct apol_constraint_query {} apol_constraint_query_t;
/* apol validatetrans query */
typedef struct apol_validatetrans_query {} apol_validatetrans_query_t;
%extend apol_validatetrans_query_t {
- apol_validatetrans_query_t() {
+ apol_validatetrans_query() {
apol_validatetrans_query_t *avq;
BEGIN_EXCEPTION
avq = apol_validatetrans_query_create();
@@ -1645,7 +1645,7 @@ typedef struct apol_validatetrans_query {} apol_validatetrans_query_t;
fail:
return avq;
};
- ~apol_validatetrans_query_t() {
+ ~apol_validatetrans_query() {
apol_validatetrans_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1684,7 +1684,7 @@ typedef struct apol_validatetrans_query {} apol_validatetrans_query_t;
#endif
typedef struct apol_genfscon_query {} apol_genfscon_query_t;
%extend apol_genfscon_query_t {
- apol_genfscon_query_t() {
+ apol_genfscon_query() {
apol_genfscon_query_t *agq;
BEGIN_EXCEPTION
agq = apol_genfscon_query_create();
@@ -1695,7 +1695,7 @@ typedef struct apol_genfscon_query {} apol_genfscon_query_t;
fail:
return agq;
};
- ~apol_genfscon_query_t() {
+ ~apol_genfscon_query() {
apol_genfscon_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1746,7 +1746,7 @@ char *apol_genfscon_render(apol_policy_t * p, qpol_genfscon_t * genfscon);
/* apol fs_use query */
typedef struct apol_fs_use_query {} apol_fs_use_query_t;
%extend apol_fs_use_query_t {
- apol_fs_use_query_t() {
+ apol_fs_use_query() {
apol_fs_use_query_t *afq;
BEGIN_EXCEPTION
afq = apol_fs_use_query_create();
@@ -1757,7 +1757,7 @@ typedef struct apol_fs_use_query {} apol_fs_use_query_t;
fail:
return afq;
};
- ~apol_fs_use_query_t() {
+ ~apol_fs_use_query() {
apol_fs_use_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1799,7 +1799,7 @@ char *apol_fs_use_render(apol_policy_t * p, qpol_fs_use_t * fsuse);
/* apol initial sid query */
typedef struct apol_isid_query {} apol_isid_query_t;
%extend apol_isid_query_t {
- apol_isid_query_t() {
+ apol_isid_query() {
apol_isid_query_t *aiq;
BEGIN_EXCEPTION
aiq = apol_isid_query_create();
@@ -1810,7 +1810,7 @@ typedef struct apol_isid_query {} apol_isid_query_t;
fail:
return aiq;
};
- ~apol_isid_query_t() {
+ ~apol_isid_query() {
apol_isid_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1841,7 +1841,7 @@ typedef struct apol_isid_query {} apol_isid_query_t;
/* apol portcon query */
typedef struct apol_portcon_query {} apol_portcon_query_t;
%extend apol_portcon_query_t {
- apol_portcon_query_t() {
+ apol_portcon_query() {
apol_portcon_query_t *apq;
BEGIN_EXCEPTION
apq = apol_portcon_query_create();
@@ -1852,7 +1852,7 @@ typedef struct apol_portcon_query {} apol_portcon_query_t;
fail:
return apq;
};
- ~apol_portcon_query_t() {
+ ~apol_portcon_query() {
apol_portcon_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1885,7 +1885,7 @@ char *apol_portcon_render(apol_policy_t * p, qpol_portcon_t * portcon);
/* apol netifcon query */
typedef struct apol_netifcon_query {} apol_netifcon_query_t;
%extend apol_netifcon_query_t {
- apol_netifcon_query_t() {
+ apol_netifcon_query() {
apol_netifcon_query_t *anq;
BEGIN_EXCEPTION
anq = apol_netifcon_query_create();
@@ -1896,7 +1896,7 @@ typedef struct apol_netifcon_query {} apol_netifcon_query_t;
fail:
return anq;
};
- ~apol_netifcon_query_t() {
+ ~apol_netifcon_query() {
apol_netifcon_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -1932,7 +1932,7 @@ char *apol_netifcon_render(apol_policy_t * p, qpol_netifcon_t * netifcon);
/* apol nodecon query */
typedef struct apol_nodecon_query {} apol_nodecon_query_t;
%extend apol_nodecon_query_t {
- apol_nodecon_query_t() {
+ apol_nodecon_query() {
apol_nodecon_query_t *anq;
BEGIN_EXCEPTION
anq = apol_nodecon_query_create();
@@ -1943,7 +1943,7 @@ typedef struct apol_nodecon_query {} apol_nodecon_query_t;
fail:
return anq;
};
- ~apol_nodecon_query_t() {
+ ~apol_nodecon_query() {
apol_nodecon_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2012,7 +2012,7 @@ char *apol_nodecon_render(apol_policy_t * p, qpol_nodecon_t * nodecon);
/* apol avrule query */
typedef struct apol_avrule_query {} apol_avrule_query_t;
%extend apol_avrule_query_t {
- apol_avrule_query_t() {
+ apol_avrule_query() {
apol_avrule_query_t *avq;
BEGIN_EXCEPTION
avq = apol_avrule_query_create();
@@ -2023,7 +2023,7 @@ typedef struct apol_avrule_query {} apol_avrule_query_t;
fail:
return avq;
};
- ~apol_avrule_query_t() {
+ ~apol_avrule_query() {
apol_avrule_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2163,7 +2163,7 @@ char *apol_syn_avrule_render(apol_policy_t * policy, qpol_syn_avrule_t * rule);
/* apol terule query */
typedef struct apol_terule_query {} apol_terule_query_t;
%extend apol_terule_query_t {
- apol_terule_query_t() {
+ apol_terule_query() {
apol_terule_query_t *atq;
BEGIN_EXCEPTION
atq = apol_terule_query_create();
@@ -2174,7 +2174,7 @@ typedef struct apol_terule_query {} apol_terule_query_t;
fail:
return atq;
};
- ~apol_terule_query_t() {
+ ~apol_terule_query() {
apol_terule_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2287,7 +2287,7 @@ apol_vector_t *apol_terule_list_to_syn_terules(apol_policy_t * p, apol_vector_t
/* apol cond rule query */
typedef struct apol_cond_query {} apol_cond_query_t;
%extend apol_cond_query_t {
- apol_cond_query_t() {
+ apol_cond_query() {
apol_cond_query_t *acq;
BEGIN_EXCEPTION
acq = apol_cond_query_create();
@@ -2298,7 +2298,7 @@ typedef struct apol_cond_query {} apol_cond_query_t;
fail:
return acq;
};
- ~apol_cond_query_t() {
+ ~apol_cond_query() {
apol_cond_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2331,7 +2331,7 @@ char *apol_cond_expr_render(apol_policy_t * p, qpol_cond_t * cond);
/* apol role allow query */
typedef struct apol_role_allow_query {} apol_role_allow_query_t;
%extend apol_role_allow_query_t {
- apol_role_allow_query_t() {
+ apol_role_allow_query() {
apol_role_allow_query_t *arq;
BEGIN_EXCEPTION
arq = apol_role_allow_query_create();
@@ -2342,7 +2342,7 @@ typedef struct apol_role_allow_query {} apol_role_allow_query_t;
fail:
return arq;
};
- ~apol_role_allow_query_t() {
+ ~apol_role_allow_query() {
apol_role_allow_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2387,7 +2387,7 @@ char *apol_role_allow_render(apol_policy_t * policy, qpol_role_allow_t * rule);
/* apol role transition rule query */
typedef struct apol_role_trans_query {} apol_role_trans_query_t;
%extend apol_role_trans_query_t {
- apol_role_trans_query_t() {
+ apol_role_trans_query() {
apol_role_trans_query_t *arq;
BEGIN_EXCEPTION
arq = apol_role_trans_query_create();
@@ -2398,7 +2398,7 @@ typedef struct apol_role_trans_query {} apol_role_trans_query_t;
fail:
return arq;
};
- ~apol_role_trans_query_t() {
+ ~apol_role_trans_query() {
apol_role_trans_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2452,7 +2452,7 @@ char *apol_role_trans_render(apol_policy_t * policy, qpol_role_trans_t * rule);
/* apol range transition rule query */
typedef struct apol_range_trans_query {} apol_range_trans_query_t;
%extend apol_range_trans_query_t {
- apol_range_trans_query_t() {
+ apol_range_trans_query() {
apol_range_trans_query_t *arq;
BEGIN_EXCEPTION
arq = apol_range_trans_query_create();
@@ -2463,7 +2463,7 @@ typedef struct apol_range_trans_query {} apol_range_trans_query_t;
fail:
return arq;
};
- ~apol_range_trans_query_t() {
+ ~apol_range_trans_query() {
apol_range_trans_query_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2531,7 +2531,7 @@ char *apol_range_trans_render(apol_policy_t * policy, qpol_range_trans_t * rule)
#define APOL_DOMAIN_TRANS_SEARCH_BOTH (APOL_DOMAIN_TRANS_SEARCH_VALID|APOL_DOMAIN_TRANS_SEARCH_INVALID)
typedef struct apol_domain_trans_analysis {} apol_domain_trans_analysis_t;
%extend apol_domain_trans_analysis_t {
- apol_domain_trans_analysis_t() {
+ apol_domain_trans_analysis() {
apol_domain_trans_analysis_t *dta;
BEGIN_EXCEPTION
dta = apol_domain_trans_analysis_create();
@@ -2542,7 +2542,7 @@ typedef struct apol_domain_trans_analysis {} apol_domain_trans_analysis_t;
fail:
return dta;
};
- ~apol_domain_trans_analysis_t() {
+ ~apol_domain_trans_analysis() {
apol_domain_trans_analysis_destroy(&self);
};
void set_direction(apol_policy_t *p, int direction) {
@@ -2622,7 +2622,7 @@ typedef struct apol_domain_trans_analysis {} apol_domain_trans_analysis_t;
};
typedef struct apol_domain_trans_result {} apol_domain_trans_result_t;
%extend apol_domain_trans_result_t {
- apol_domain_trans_result_t(apol_domain_trans_result_t *in) {
+ apol_domain_trans_result(apol_domain_trans_result_t *in) {
apol_domain_trans_result_t *dtr;
BEGIN_EXCEPTION
dtr = apol_domain_trans_result_create_from_domain_trans_result(in);
@@ -2633,7 +2633,7 @@ typedef struct apol_domain_trans_result {} apol_domain_trans_result_t;
fail:
return dtr;
};
- ~apol_domain_trans_result_t() {
+ ~apol_domain_trans_result() {
apol_domain_trans_result_destroy(&self);
};
const qpol_type_t *get_start_type() {
@@ -2705,14 +2705,14 @@ int apol_domain_trans_table_verify_trans(apol_policy_t * policy, qpol_type_t * s
%}
typedef struct apol_infoflow {} apol_infoflow_t;
%extend apol_infoflow_t {
- apol_infoflow_t() {
+ apol_infoflow() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_infoflow_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_infoflow_t() {
+ ~apol_infoflow() {
apol_infoflow_destroy(&self);
};
%newobject extract_graph();
@@ -2730,7 +2730,7 @@ typedef struct apol_infoflow {} apol_infoflow_t;
};
typedef struct apol_infoflow_analysis {} apol_infoflow_analysis_t;
%extend apol_infoflow_analysis_t {
- apol_infoflow_analysis_t() {
+ apol_infoflow_analysis() {
apol_infoflow_analysis_t *aia;
BEGIN_EXCEPTION
aia = apol_infoflow_analysis_create();
@@ -2741,7 +2741,7 @@ typedef struct apol_infoflow_analysis {} apol_infoflow_analysis_t;
fail:
return aia;
};
- ~apol_infoflow_analysis_t() {
+ ~apol_infoflow_analysis() {
apol_infoflow_analysis_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -2823,14 +2823,14 @@ typedef struct apol_infoflow_analysis {} apol_infoflow_analysis_t;
};
typedef struct apol_infoflow_graph {} apol_infoflow_graph_t;
%extend apol_infoflow_graph_t {
- apol_infoflow_graph_t() {
+ apol_infoflow_graph() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_infoflow_graph_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_infoflow_graph_t() {
+ ~apol_infoflow_graph() {
apol_infoflow_graph_destroy(&self);
};
%newobject do_more(apol_policy_t*, char*);
@@ -2867,14 +2867,14 @@ typedef struct apol_infoflow_graph {} apol_infoflow_graph_t;
};
typedef struct apol_infoflow_result {} apol_infoflow_result_t;
%extend apol_infoflow_result_t {
- apol_infoflow_result_t() {
+ apol_infoflow_result() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_infoflow_result_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_infoflow_result_t() {
+ ~apol_infoflow_result() {
/* no op - vector will destroy */
return;
};
@@ -2901,14 +2901,14 @@ typedef struct apol_infoflow_result {} apol_infoflow_result_t;
%}
typedef struct apol_infoflow_step {} apol_infoflow_step_t;
%extend apol_infoflow_step_t {
- apol_infoflow_step_t() {
+ apol_infoflow_step() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_infoflow_step_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_infoflow_step_t() {
+ ~apol_infoflow_step() {
/* no op */
return;
};
@@ -2938,7 +2938,7 @@ typedef struct apol_infoflow_step {} apol_infoflow_step_t;
#define APOL_RELABEL_DIR_SUBJECT 0x04
typedef struct apol_relabel_analysis {} apol_relabel_analysis_t;
%extend apol_relabel_analysis_t {
- apol_relabel_analysis_t() {
+ apol_relabel_analysis() {
apol_relabel_analysis_t *ara;
BEGIN_EXCEPTION
ara = apol_relabel_analysis_create();
@@ -2949,7 +2949,7 @@ typedef struct apol_relabel_analysis {} apol_relabel_analysis_t;
fail:
return ara;
};
- ~apol_relabel_analysis_t() {
+ ~apol_relabel_analysis() {
apol_relabel_analysis_destroy(&self);
};
%newobject run(apol_policy_t*);
@@ -3011,14 +3011,14 @@ typedef struct apol_relabel_analysis {} apol_relabel_analysis_t;
};
typedef struct apol_relabel_result {} apol_relabel_result_t;
%extend apol_relabel_result_t {
- apol_relabel_result_t() {
+ apol_relabel_result() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_relabel_result_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_relabel_result_t() {
+ ~apol_relabel_result() {
/* no op - vector will destroy */
return;
};
@@ -3042,14 +3042,14 @@ typedef struct apol_relabel_result {} apol_relabel_result_t;
%}
typedef struct apol_relabel_result_pair {} apol_relabel_result_pair_t;
%extend apol_relabel_result_pair_t {
- apol_relabel_result_pair_t() {
+ apol_relabel_result_pair() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_relabel_result_pair_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_relabel_result_pair_t() {
+ ~apol_relabel_result_pair() {
/* no op - owned and free()'d by apol_relabel_result_t */
return;
};
@@ -3084,7 +3084,7 @@ typedef struct apol_relabel_result_pair {} apol_relabel_result_pair_t;
#define APOL_TYPES_RELATION_TRANS_FLOW_BA 0x8000
typedef struct apol_types_relation_analysis {} apol_types_relation_analysis_t;
%extend apol_types_relation_analysis_t {
- apol_types_relation_analysis_t() {
+ apol_types_relation_analysis() {
apol_types_relation_analysis_t *atr;
BEGIN_EXCEPTION
atr = apol_types_relation_analysis_create();
@@ -3095,7 +3095,7 @@ typedef struct apol_types_relation_analysis {} apol_types_relation_analysis_t;
fail:
return atr;
};
- ~apol_types_relation_analysis_t() {
+ ~apol_types_relation_analysis() {
apol_types_relation_analysis_destroy(&self);
}
%newobject run(apol_policy_t*);
@@ -3139,14 +3139,14 @@ typedef struct apol_types_relation_analysis {} apol_types_relation_analysis_t;
};
typedef struct apol_types_relation_result {} apol_types_relation_result_t;
%extend apol_types_relation_result_t {
- apol_types_relation_result_t() {
+ apol_types_relation_result() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_types_relation_result_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_types_relation_result_t() {
+ ~apol_types_relation_result() {
apol_types_relation_result_destroy(&self);
};
const apol_vector_t *get_attributes() {
@@ -3194,14 +3194,14 @@ typedef struct apol_types_relation_result {} apol_types_relation_result_t;
};
typedef struct apol_types_relation_access {} apol_types_relation_access_t;
%extend apol_types_relation_access_t {
- apol_types_relation_access_t() {
+ apol_types_relation_access() {
BEGIN_EXCEPTION
SWIG_exception(SWIG_RuntimeError, "Cannot directly create apol_types_relation_access_t objects");
END_EXCEPTION
fail:
return NULL;
};
- ~apol_types_relation_access_t() {
+ ~apol_types_relation_access() {
/* no op - vector will destroy */
return;
};
--

43
156.patch Normal file
View file

@ -0,0 +1,43 @@
From 39f7c88251925463c38f5000f6178fe70b484f44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
Date: Tue, 8 Apr 2025 11:22:47 +0200
Subject: [PATCH] Remove redundant runtime requirement on setuptools
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The dependency was dropped in 99a1cf3b50cd8bf502b5070293c4d1bf792d1566
Add a build time dependency for setup.py build_ext on Python 3.12+
which no longer contains distutils.
Signed-off-by: Miro Hrončok <miro@hroncok.cz>
---
pyproject.toml | 2 +-
tox.ini | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index f7815a15..28ae121a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -39,7 +39,7 @@ classifiers = ["Development Status :: 5 - Production/Stable",
requires-python=">=3.10"
# also requires libsepol.so and libselinux.so.
-dependencies = ["setuptools"]
+dependencies = []
optional-dependencies.analysis = ["networkx>=2.6",
"pygraphviz"]
diff --git a/tox.ini b/tox.ini
index 8fa6954f..b2a21d6b 100644
--- a/tox.ini
+++ b/tox.ini
@@ -56,5 +56,6 @@ deps = networkx>=2.6
pygraphviz
pytest-qt
pytest-xvfb
+ setuptools;python_version>="3.12"
commands_pre = {envpython} setup.py build_ext -i
commands = {envpython} -m pytest tests

42
157.patch Normal file
View file

@ -0,0 +1,42 @@
From a33a2e394435316f3822e89ac9c2a9aabab17252 Mon Sep 17 00:00:00 2001
From: Pranav Lawate <pran.lawate@gmail.com>
Date: Tue, 30 Sep 2025 22:29:10 +0530
Subject: [PATCH] Fix seinfo argument parsing when policy path follows query
options
Signed-off-by: Pranav Lawate <pran.lawate@gmail.com>
---
seinfo | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/seinfo b/seinfo
index 99180c36..d04ec320 100755
--- a/seinfo
+++ b/seinfo
@@ -12,6 +12,7 @@ import logging
import signal
import ipaddress
import warnings
+from pathlib import Path
from typing import Callable, List, Tuple
@@ -102,6 +103,18 @@ xen.add_argument("--devicetreecon", help="Print all devicetreecon statements.",
args = parser.parse_args()
+# Fix argument misparsing: when policy is None and a query option is a string,
+# check if the string is actually a policy file that is incorrectly consumed by the query option
+if not args.policy:
+ # Check all query options defined in the queries argument group
+ for action in queries._group_actions:
+ value = getattr(args, action.dest, None)
+ if isinstance(value, str) and Path(value).exists():
+ # This query argument consumed the policy path - fix it
+ args.policy = value
+ setattr(args, action.dest, True)
+ break
+
if args.debug:
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s|%(levelname)s|%(name)s|%(message)s')

View file

@ -2,11 +2,10 @@
Name=SELinux Policy Analysis
GenericName=SELinux Policy Analysis Tool
Comment=This tool can examine, search, and relate policy components and policy rules
Icon=apol.png
Icon=apol
Exec=/usr/bin/apol
Type=Application
Terminal=false
Encoding=UTF-8
Categories=System;
X-Desktop-File-Install-Version=0.2
StartupNotify=true

16
gating.yaml Normal file
View file

@ -0,0 +1,16 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

7
plans/selinux.fmf Normal file
View file

@ -0,0 +1,7 @@
summary: selinux tests - Tier 1 | policycoreutils | checkpolicy
discover:
how: fmf
url: https://src.fedoraproject.org/tests/selinux
filter: "tier: 1 | component: policycoreutils | component: checkpolicy"
execute:
how: tmt

5
plans/tests.fmf Normal file
View file

@ -0,0 +1,5 @@
summary: setools test plan
discover:
how: fmf
execute:
how: tmt

3
rpminspect.yaml Normal file
View file

@ -0,0 +1,3 @@
emptyrpm:
expected_empty:
- setools

View file

@ -6,7 +6,6 @@ Icon=seaudit.png
Exec=/usr/bin/seaudit
Type=Application
Terminal=false
Encoding=UTF-8
Categories=System;
X-Desktop-File-Install-Version=0.2
StartupNotify=true

View file

@ -5,7 +5,6 @@ Comment=This tool allows you to compare two policy files
Exec=/usr/bin/sediffx
Type=Application
Terminal=false
Encoding=UTF-8
Categories=System;
X-Desktop-File-Install-Version=0.2
StartupNotify=true

View file

@ -1,59 +0,0 @@
diff -up setools-3.3.7/man/replcon.1.cmdline setools-3.3.7/man/replcon.1
--- setools-3.3.7/man/replcon.1.cmdline 2007-08-02 17:16:33.000000000 -0400
+++ setools-3.3.7/man/replcon.1 2010-11-17 16:31:01.000000000 -0500
@@ -44,6 +44,8 @@ Search for files which include PATH.
.IP "-c CLASS, --class=CLASS"
Search only files of object class CLASS.
.SH OPTIONS
+.IP "-R, --regex"
+Enable regular expressions
.IP "-v, --verbose"
Display context info during replacement.
.IP "-h, --help"
diff -up setools-3.3.7/man/seinfo.1.cmdline setools-3.3.7/man/seinfo.1
--- setools-3.3.7/man/seinfo.1.cmdline 2010-05-03 12:39:02.000000000 -0400
+++ setools-3.3.7/man/seinfo.1 2010-11-17 16:23:36.000000000 -0500
@@ -76,6 +76,10 @@ There is no expanded information for thi
.IP "--nodecon[=ADDR]"
Print a list of node contexts or, if ADDR is provided, print the statement for the node with address ADDR.
There is no expanded information for this component.
+.IP "--polcap"
+Print policy capabilities.
+.IP "--permissive"
+Print permissive types.
.IP "--portcon[=PORT]"
Print a list of port contexts or, if PORT is provided, print the statement for port PORT.
There is no expanded information for this component.
@@ -93,7 +97,7 @@ These details include the types assigned
This option is not available for all component types; see the description of each component for the details this option will provide.
.IP "--stats"
Print policy statistics including policy type and version information and counts of all components and rules.
-.IP "-l"
+.IP "-l, --line-breaks"
Print line breaks when displaying constraint statements.
.IP "-h, --help"
Print help information and exit.
diff -up setools-3.3.7/seaudit/seaudit-report.c.cmdline setools-3.3.7/seaudit/seaudit-report.c
--- setools-3.3.7/seaudit/seaudit-report.c.cmdline 2010-11-17 16:09:48.000000000 -0500
+++ setools-3.3.7/seaudit/seaudit-report.c 2010-11-17 16:11:06.000000000 -0500
@@ -100,7 +100,7 @@ static void seaudit_report_info_usage(co
printf(" -s, --stdin read log data from standard input\n");
printf(" -m, --malformed include malformed log messages\n");
printf(" -o FILE, --output=FILE output to FILE\n");
- printf(" --config=FILE read configuration from FILE\n");
+ printf(" -c FILE, --config=FILE read configuration from FILE\n");
printf(" --html set output format to HTML\n");
printf(" --stylesheet=FILE HTML style sheet for formatting HTML report\n");
printf(" (ignored if --html is not given)\n");
diff -up setools-3.3.7/sediff/sediff.c.cmdline setools-3.3.7/sediff/sediff.c
--- setools-3.3.7/sediff/sediff.c.cmdline 2007-08-02 17:16:33.000000000 -0400
+++ setools-3.3.7/sediff/sediff.c 2010-11-17 16:20:01.000000000 -0500
@@ -420,7 +420,7 @@ int main(int argc, char **argv)
poldiff_t *diff = NULL;
size_t total = 0;
- while ((optc = getopt_long(argc, argv, "ctarubANDLMCRqhV", longopts, NULL)) != -1) {
+ while ((optc = getopt_long(argc, argv, "ctarubAqhV", longopts, NULL)) != -1) {
switch (optc) {
case 0:
break;

View file

@ -1,119 +0,0 @@
diff -up setools-3.3.7/secmds/seinfo.c.exitstatus setools-3.3.7/secmds/seinfo.c
--- setools-3.3.7/secmds/seinfo.c.exitstatus 2010-05-03 12:39:02.000000000 -0400
+++ setools-3.3.7/secmds/seinfo.c 2010-11-05 09:54:39.000000000 -0400
@@ -827,7 +827,7 @@ static int print_sens(FILE * fp, const c
*/
static int print_cats(FILE * fp, const char *name, int expand, const apol_policy_t * policydb)
{
- int retval = 0;
+ int retval = -1;
apol_cat_query_t *query = NULL;
apol_vector_t *v = NULL;
const qpol_cat_t *cat_datum = NULL;
@@ -911,9 +911,10 @@ static int print_fsuse(FILE * fp, const
fprintf(fp, " %s\n", tmp);
free(tmp);
}
- if (type && !apol_vector_get_size(v))
+ if (type && !apol_vector_get_size(v)) {
ERR(policydb, "No fs_use statement for filesystem of type %s.", type);
-
+ goto cleanup;
+ }
retval = 0;
cleanup:
apol_fs_use_query_destroy(&query);
@@ -949,7 +950,6 @@ static int print_genfscon(FILE * fp, con
ERR(policydb, "%s", strerror(ENOMEM));
goto cleanup;
}
-
if (apol_genfscon_query_set_filesystem(policydb, query, type))
goto cleanup;
if (apol_genfscon_get_by_query(policydb, query, &v))
@@ -967,8 +967,10 @@ static int print_genfscon(FILE * fp, con
free(tmp);
}
- if (type && !apol_vector_get_size(v))
+ if (type && !apol_vector_get_size(v)) {
ERR(policydb, "No genfscon statement for filesystem of type %s.", type);
+ goto cleanup;
+ }
retval = 0;
cleanup:
@@ -1646,6 +1648,7 @@ cleanup: // close and destroy iterators
int main(int argc, char **argv)
{
+ int rc = 0;
int classes, types, attribs, roles, users, all, expand, stats, rt, optc, isids, bools, sens, cats, fsuse, genfs, netif,
node, port, permissives, polcaps, constrain, linebreaks;
apol_policy_t *policydb = NULL;
@@ -1851,46 +1854,46 @@ int main(int argc, char **argv)
/* display requested info */
if (stats || all)
- print_stats(stdout, policydb);
+ rc = print_stats(stdout, policydb);
if (classes || all)
- print_classes(stdout, class_name, expand, policydb);
+ rc = print_classes(stdout, class_name, expand, policydb);
if (types || all)
- print_types(stdout, type_name, expand, policydb);
+ rc = print_types(stdout, type_name, expand, policydb);
if (attribs || all)
- print_attribs(stdout, attrib_name, expand, policydb);
+ rc = print_attribs(stdout, attrib_name, expand, policydb);
if (roles || all)
- print_roles(stdout, role_name, expand, policydb);
+ rc = print_roles(stdout, role_name, expand, policydb);
if (users || all)
- print_users(stdout, user_name, expand, policydb);
+ rc = print_users(stdout, user_name, expand, policydb);
if (bools || all)
- print_booleans(stdout, bool_name, expand, policydb);
+ rc = print_booleans(stdout, bool_name, expand, policydb);
if (sens || all)
- print_sens(stdout, sens_name, expand, policydb);
+ rc = print_sens(stdout, sens_name, expand, policydb);
if (cats || all)
- print_cats(stdout, cat_name, expand, policydb);
+ rc = print_cats(stdout, cat_name, expand, policydb);
if (fsuse || all)
- print_fsuse(stdout, fsuse_type, policydb);
+ rc = print_fsuse(stdout, fsuse_type, policydb);
if (genfs || all)
- print_genfscon(stdout, genfs_type, policydb);
+ rc = print_genfscon(stdout, genfs_type, policydb);
if (netif || all)
- print_netifcon(stdout, netif_name, policydb);
+ rc = print_netifcon(stdout, netif_name, policydb);
if (node || all)
- print_nodecon(stdout, node_addr, policydb);
+ rc = print_nodecon(stdout, node_addr, policydb);
if (port || all)
- print_portcon(stdout, port_num, protocol, policydb);
+ rc = print_portcon(stdout, port_num, protocol, policydb);
if (isids || all)
- print_isids(stdout, isid_name, expand, policydb);
+ rc = print_isids(stdout, isid_name, expand, policydb);
if (permissives || all)
- print_permissives(stdout, permissive_name, expand, policydb);
+ rc = print_permissives(stdout, permissive_name, expand, policydb);
if (polcaps || all)
- print_polcaps(stdout, polcap_name, expand, policydb);
+ rc = print_polcaps(stdout, polcap_name, expand, policydb);
if (constrain || all)
- print_constraints(stdout, expand, policydb, linebreaks);
+ rc = print_constraints(stdout, expand, policydb, linebreaks);
apol_policy_destroy(&policydb);
apol_policy_path_destroy(&pol_path);
free(policy_file);
- exit(0);
+ exit(rc);
}
/**

View file

@ -1,15 +0,0 @@
diff -up setools-3.3.7/libqpol/src/avrule_query.c~ setools-3.3.7/libqpol/src/avrule_query.c
--- setools-3.3.7/libqpol/src/avrule_query.c~ 2010-04-23 12:22:08.000000000 -0400
+++ setools-3.3.7/libqpol/src/avrule_query.c 2011-01-06 10:42:50.000000000 -0500
@@ -57,8 +57,9 @@ int qpol_policy_get_avrule_iter(const qp
if ((rule_type_mask & QPOL_RULE_NEVERALLOW) && !qpol_policy_has_capability(policy, QPOL_CAP_NEVERALLOW)) {
ERR(policy, "%s", "Cannot get avrules: Neverallow rules requested but not available");
- errno = ENOTSUP;
- return STATUS_ERR;
+/* errno = ENOTSUP;
+ return STATUS_ERR; */
+ return STATUS_SUCCESS;
}
db = &policy->p->p;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
0377d7a06028825434cd7b41a80865a5 setools-3.3.7.tar.bz2
SHA512 (4.6.0.tar.gz) = 5b654f480f285717d15fa55f754fbd00cb030a0d8af8342d901e0514c4fdbacb7873e19420dab98540eaa481c687ff1e03423df893c0d1744eb4c53eb81afbf5

View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools
# Description: Make sure setools requires setools-console and setools-gui
# Author: Vit Mojzis <vmojzis@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Vit Mojzis <vmojzis@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Make sure setools requires setools-console and setools-gui" >> $(METADATA)
@echo "Type: Regression" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: setools" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Bug: 1820078" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,11 @@
summary: Make sure setools requires setools-console and setools-gui
contact: Vit Mojzis <vmojzis@redhat.com>
component:
- setools
test: ./runtest.sh
framework: beakerlib
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1820078
extra-summary: /CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools
extra-task: /CoreOS/setools/Regression/The-setools-package-doesn-t-install-any-tools

View file

@ -0,0 +1,53 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/setools/Regression/bz1820078-The-setools-package-doesn-t-install-any-tools
# Description: Make sure setools requires setools-console and setools-gui
# Author: Vit Mojzis <vmojzis@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="setools"
rlJournalStart
rlPhaseStartSetup
rlRun "dnf -y remove ${PACKAGE} ${PACKAGE}-gui ${PACKAGE}-console"
OUTPUT_FILE=`mktemp`
rlPhaseEnd
rlPhaseStartTest "bz#1820078"
rlRun "dnf -y install ${PACKAGE}" 0
rlAssertRpm "${PACKAGE}-gui"
rlAssertRpm "${PACKAGE}-console"
# make sure that setools-* packages do not require setools
rlRun "rpm -q --whatrequires ${PACKAGE} >& ${OUTPUT_FILE}" 0,1
rlRun "grep -i \"${PACKAGE}-\" ${OUTPUT_FILE}" 1
if [ $? -ne 1 ]; then rlRun "cat \"${OUTPUT_FILE}\""; fi
rlPhaseEnd
rlPhaseStartCleanup
rm -f ${OUTPUT_FILE}
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /CoreOS/setools/Sanity/sedta
# Description: Does sedta work as expected? Does it support all features?
# Author: Milos Malik <mmalik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/CoreOS/setools/Sanity/sedta
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE testpolicy.cil
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Milos Malik <mmalik@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Does sedta work as expected? Does it support all features?" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 1h" >> $(METADATA)
@echo "RunFor: setools" >> $(METADATA)
@echo "Requires: policycoreutils setools-console-analyses" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/setools/Sanity/sedta
Description: Does sedta work as expected? Does it support all features?
Author: Milos Malik <mmalik@redhat.com>

View file

@ -0,0 +1,30 @@
summary: Does sedta work as expected? Does it support all features?
description: ''
contact: Milos Malik <mmalik@redhat.com>
component:
- setools
test: ./runtest.sh
framework: beakerlib
recommend:
- git
- policycoreutils
- setools-console-analyses
duration: 1h
enabled: true
tag:
- CI-Tier-1
- NoRHEL4
- NoRHEL5
- NoRHEL6
- NoRHEL7
- TIPfail_Security
- f32friendly
- f33friendly
- targeted
adjust:
- enabled: false
when: distro == rhel-4, rhel-5, rhel-6, rhel-7
continue: false
extra-nitrate: TC#0604139
extra-summary: /CoreOS/setools/Sanity/sedta
extra-task: /CoreOS/setools/Sanity/sedta

87
tests/Sanity/sedta/runtest.sh Executable file
View file

@ -0,0 +1,87 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/setools/Sanity/sedta
# Description: Does sedta work as expected? Does it support all features?
# Author: Milos Malik <mmalik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2019 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="setools"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm ${PACKAGE}-console-analyses
OUTPUT_FILE=`mktemp`
rlRun "semodule -i testpolicy.cil"
rlRun "semodule -l | grep testpolicy"
rlPhaseEnd
rlPhaseStartTest "invalid values"
rlRun "sedta -s unknown_t >& ${OUTPUT_FILE}" 1
rlRun "grep -i 'not a valid type' ${OUTPUT_FILE}"
rlRun "sedta -s apmd_t -t unknown_t -S >& ${OUTPUT_FILE}" 1
rlRun "grep -i 'not a valid type' ${OUTPUT_FILE}"
rlRun "sedta -s unknown_t -p /etc/selinux/unknown/policy/policy.31 >& ${OUTPUT_FILE}" 1
rlRun "grep -i 'no such file or directory' ${OUTPUT_FILE}"
rlRun "sedta -s apmd_t -t var_lib_t -A -1 >& ${OUTPUT_FILE}" 1
rlRun "grep -i 'must be positive' ${OUTPUT_FILE}"
rlRun "sedta -s xyz_t >& ${OUTPUT_FILE}"
rlRun "grep -i '^0.*transition.*found' ${OUTPUT_FILE}"
rlPhaseEnd
rlPhaseStartTest "valid values"
# transitivity
rlRun "sedta -s first_t -t second_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}"
rlRun "sedta -s second_t -t third_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}"
rlRun "sedta -s first_t -t third_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}"
# reflexivity
rlRun "sedta -s first_t -t first_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}"
rlRun "sedta -s second_t -t second_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}"
rlRun "sedta -s third_t -t third_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^1 domain transition path.*found' ${OUTPUT_FILE}"
# path is longer than limit
rlRun "sedta -s first_t -t third_t -A 1 >& ${OUTPUT_FILE}"
rlRun "grep -i '^0 domain transition path.*found' ${OUTPUT_FILE}"
# non-existent relation
rlRun "sedta -s first_t -t third_t -S -r >& ${OUTPUT_FILE}"
rlRun "grep -i '^0 domain transition path.*found' ${OUTPUT_FILE}"
# non-existent relation
rlRun "sedta -s third_t -t first_t -S >& ${OUTPUT_FILE}"
rlRun "grep -i '^0 domain transition path.*found' ${OUTPUT_FILE}"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "semodule -r testpolicy"
rlRun "semodule -l | grep testpolicy" 1
rm -f ${OUTPUT_FILE}
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,21 @@
( type xyz_t )
( type first_t )
( type first_exec_t )
( type second_t )
( type second_exec_t )
( type third_t )
( type third_exec_t )
( typetransition first_t second_exec_t process second_t )
( typetransition second_t third_exec_t process third_t )
( allow first_t second_exec_t ( file ( getattr open read execute )))
( allow first_t second_t ( process ( transition )))
( allow second_t third_exec_t ( file ( getattr open read execute )))
( allow second_t third_t ( process ( transition )))
( allow first_t first_exec_t ( file ( entrypoint )))
( allow second_t second_exec_t ( file ( entrypoint )))
( allow third_t third_exec_t ( file ( entrypoint )))

View file

@ -0,0 +1,64 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of Sanity/seinfo-consistent-output
# Description: Check whether different 2 or more runs of same seinfo commands produce same output
# Author: Petr Lautrbach <plautrba@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=Sanity/seinfo-consistent-output
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Petr Lautrbach <plautrba@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Check whether different 2 or more runs of same seinfo commands produce same output" >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 5m" >> $(METADATA)
@echo "RunFor: setools" >> $(METADATA)
@echo "Requires: setools-console" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2+" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
@echo "Bug: 2019962" >> $(METADATA)
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
rhts-lint $(METADATA)

View file

@ -0,0 +1,3 @@
PURPOSE of Sanity/seinfo-consistent-output
Description: Check whether different 2 or more runs of same seinfo commands produce same output
Author: Petr Lautrbach <plautrba@redhat.com>

View file

@ -0,0 +1,15 @@
summary: Check whether different 2 or more runs of same seinfo commands produce same
output
description: ''
contact: Petr Lautrbach <plautrba@redhat.com>
component:
- setools
test: ./runtest.sh
framework: beakerlib
recommend:
- setools-console
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=2019962
extra-summary: Sanity/seinfo-consistent-output
extra-task: Sanity/seinfo-consistent-output

View file

@ -0,0 +1,63 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of Sanity/seinfo-consistent-output
# Description: Check whether different 2 or more runs of same seinfo commands produce same output
# Author: Petr Lautrbach <plautrba@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="setools-console"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlPhaseEnd
commands=(
"seinfo --all -x"
"seinfo --constrain"
"seinfo --common"
"seinfo -c -x"
"seinfo -r -x"
"seinfo -u -x"
)
for c in "${commands[@]}"; do
rlPhaseStartTest "$c"
rlRun "$c > 1.out"
rlRun "$c > 2.out"
rlRun "cmp 1.out 2.out" 0
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd