Merge tag '3.5' into master
We were previously on 3.5-rc2, there has been only little changes since then. Followed the steps: repo start update_3.5 . git merge 3.5 --no-ff # No merge conflicts were found. lunch && m repo upload . # Update METADATA in a separate change. Test: TH Change-Id: If88fe90d2cbdb1ba6a279cba8b397cd2c808c6ab
This commit is contained in:
commit
a9f20263fd
153 changed files with 44829 additions and 44145 deletions
27
.github/workflows/run_tests.yml
vendored
27
.github/workflows/run_tests.yml
vendored
|
@ -10,31 +10,30 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
compiler: [gcc, clang]
|
compiler: [gcc, clang]
|
||||||
python-ruby-version:
|
python-ruby-version:
|
||||||
- {python: '3.10', ruby: '3.1'}
|
- {python: '3.11', ruby: '3.1'}
|
||||||
- {python: '3.10', ruby: '3.1', other: test-flags-override}
|
- {python: '3.11', ruby: '3.1', other: 'test-flags-override'}
|
||||||
- {python: '3.10', ruby: '3.1', other: test-debug}
|
- {python: '3.11', ruby: '3.1', other: 'test-debug'}
|
||||||
- {python: '3.10', ruby: '3.1', other: linker-bfd}
|
- {python: '3.11', ruby: '3.1', other: 'linker-bfd'}
|
||||||
- {python: '3.10', ruby: '3.1', other: linker-gold}
|
- {python: '3.11', ruby: '3.1', other: 'linker-gold'}
|
||||||
# Test several Python versions with the latest Ruby version
|
# Test several Python versions with the latest Ruby version
|
||||||
|
- {python: '3.10', ruby: '3.1'}
|
||||||
- {python: '3.9', ruby: '3.1'}
|
- {python: '3.9', ruby: '3.1'}
|
||||||
- {python: '3.8', ruby: '3.1'}
|
- {python: '3.8', ruby: '3.1'}
|
||||||
- {python: '3.7', ruby: '3.1'}
|
- {python: '3.7', ruby: '3.1'}
|
||||||
- {python: '3.6', ruby: '3.1'}
|
|
||||||
- {python: '3.5', ruby: '3.1'}
|
|
||||||
- {python: 'pypy3.7', ruby: '3.1'}
|
- {python: 'pypy3.7', ruby: '3.1'}
|
||||||
# Test several Ruby versions with the latest Python version
|
# Test several Ruby versions with the latest Python version
|
||||||
- {python: '3.10', ruby: '3.0'}
|
- {python: '3.11', ruby: '3.0'}
|
||||||
- {python: '3.10', ruby: '2.7'}
|
- {python: '3.11', ruby: '2.7'}
|
||||||
- {python: '3.10', ruby: '2.6'}
|
- {python: '3.11', ruby: '2.6'}
|
||||||
- {python: '3.10', ruby: '2.5'}
|
- {python: '3.11', ruby: '2.5'}
|
||||||
exclude:
|
exclude:
|
||||||
- compiler: clang
|
- compiler: clang
|
||||||
python-ruby-version: {python: '3.10', ruby: '3.1', other: linker-bfd}
|
python-ruby-version: {python: '3.11', ruby: '3.1', other: 'linker-bfd'}
|
||||||
- compiler: clang
|
- compiler: clang
|
||||||
python-ruby-version: {python: '3.10', ruby: '3.1', other: linker-gold}
|
python-ruby-version: {python: '3.11', ruby: '3.1', other: 'linker-gold'}
|
||||||
include:
|
include:
|
||||||
- compiler: gcc
|
- compiler: gcc
|
||||||
python-ruby-version: {python: '3.10', ruby: '3.1', other: sanitizers}
|
python-ruby-version: {python: '3.11', ruby: '3.1', other: 'sanitizers'}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
10
gui/po/de.po
10
gui/po/de.po
|
@ -8,8 +8,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2021-12-28 22:16+0000\n"
|
"PO-Revision-Date: 2022-10-17 13:19+0000\n"
|
||||||
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
||||||
"Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
|
"Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
"gui/de/>\n"
|
"gui/de/>\n"
|
||||||
|
@ -18,7 +18,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Weblate 4.10.1\n"
|
"X-Generator: Weblate 4.14.1\n"
|
||||||
|
|
||||||
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
||||||
msgid "Boolean"
|
msgid "Boolean"
|
||||||
|
@ -657,10 +657,8 @@ msgid "<b>Add booleans from the %s policy:</b>"
|
||||||
msgstr "<b>Fügen Sie boolesche Variablen von der %s Richtlinie hinzu:</b>"
|
msgstr "<b>Fügen Sie boolesche Variablen von der %s Richtlinie hinzu:</b>"
|
||||||
|
|
||||||
#: ../polgen.ui:2179
|
#: ../polgen.ui:2179
|
||||||
#, fuzzy
|
|
||||||
#| msgid "Boolean"
|
|
||||||
msgid "Add Boolean"
|
msgid "Add Boolean"
|
||||||
msgstr "Boolean"
|
msgstr "Booleschen Wert hinzufügen"
|
||||||
|
|
||||||
#: ../polgen.ui:2234
|
#: ../polgen.ui:2234
|
||||||
#, python-format
|
#, python-format
|
||||||
|
|
|
@ -10,8 +10,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2021-09-11 11:04+0000\n"
|
"PO-Revision-Date: 2022-10-27 13:20+0000\n"
|
||||||
"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
|
"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
|
||||||
"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
|
"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
|
||||||
"selinux/gui/ja/>\n"
|
"selinux/gui/ja/>\n"
|
||||||
|
@ -20,7 +20,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.8\n"
|
"X-Generator: Weblate 4.14.1\n"
|
||||||
|
|
||||||
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
||||||
msgid "Boolean"
|
msgid "Boolean"
|
||||||
|
@ -396,7 +396,7 @@ msgstr ""
|
||||||
|
|
||||||
#: ../polgen.ui:705
|
#: ../polgen.ui:705
|
||||||
msgid "<b>Enter name of application or user role:</b>"
|
msgid "<b>Enter name of application or user role:</b>"
|
||||||
msgstr "<b>アプリケーションかユーザーロールの名前を記入:</b>"
|
msgstr "<b>アプリケーションかユーザーロールの名前を入力:</b>"
|
||||||
|
|
||||||
#: ../polgen.ui:739
|
#: ../polgen.ui:739
|
||||||
msgid "Enter complete path for executable to be confined."
|
msgid "Enter complete path for executable to be confined."
|
||||||
|
|
16
gui/po/ka.po
16
gui/po/ka.po
|
@ -3,8 +3,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2022-07-21 11:19+0000\n"
|
"PO-Revision-Date: 2022-11-23 17:19+0000\n"
|
||||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||||
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
|
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
|
||||||
"selinux/gui/ka/>\n"
|
"selinux/gui/ka/>\n"
|
||||||
|
@ -13,7 +13,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.13\n"
|
"X-Generator: Weblate 4.14.2\n"
|
||||||
|
|
||||||
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
||||||
msgid "Boolean"
|
msgid "Boolean"
|
||||||
|
@ -284,7 +284,7 @@ msgstr ""
|
||||||
|
|
||||||
#: ../polgen.ui:387
|
#: ../polgen.ui:387
|
||||||
msgid "User Application"
|
msgid "User Application"
|
||||||
msgstr ""
|
msgstr "მომხმარებლის აპლიკაცია"
|
||||||
|
|
||||||
#: ../polgen.ui:391 ../polgen.ui:408
|
#: ../polgen.ui:391 ../polgen.ui:408
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -659,7 +659,7 @@ msgstr ""
|
||||||
#: ../semanagePage.py:131
|
#: ../semanagePage.py:131
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Are you sure you want to delete %s '%s'?"
|
msgid "Are you sure you want to delete %s '%s'?"
|
||||||
msgstr ""
|
msgstr "დარწმუნებული ბრძანდებით, რომ გნებავთ, წაშალოთ %s '%s'?"
|
||||||
|
|
||||||
#: ../semanagePage.py:131
|
#: ../semanagePage.py:131
|
||||||
#, python-format
|
#, python-format
|
||||||
|
@ -691,7 +691,7 @@ msgstr "ძალით"
|
||||||
|
|
||||||
#: ../statusPage.py:80 ../system-config-selinux.ui:593
|
#: ../statusPage.py:80 ../system-config-selinux.ui:593
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
msgstr "გამორთულია"
|
msgstr "გათიშულია"
|
||||||
|
|
||||||
#: ../statusPage.py:99
|
#: ../statusPage.py:99
|
||||||
msgid "Status"
|
msgid "Status"
|
||||||
|
@ -741,7 +741,7 @@ msgstr ""
|
||||||
|
|
||||||
#: ../system-config-selinux.ui:117
|
#: ../system-config-selinux.ui:117
|
||||||
msgid "Login Name"
|
msgid "Login Name"
|
||||||
msgstr ""
|
msgstr "მომხმარებლის სახელი"
|
||||||
|
|
||||||
#: ../system-config-selinux.ui:128 ../system-config-selinux.ui:1376
|
#: ../system-config-selinux.ui:128 ../system-config-selinux.ui:1376
|
||||||
#: ../system-config-selinux.ui:1911 ../usersPage.py:55
|
#: ../system-config-selinux.ui:1911 ../usersPage.py:55
|
||||||
|
@ -806,7 +806,7 @@ msgstr ""
|
||||||
|
|
||||||
#: ../system-config-selinux.ui:741
|
#: ../system-config-selinux.ui:741
|
||||||
msgid "<b>Select:</b>"
|
msgid "<b>Select:</b>"
|
||||||
msgstr ""
|
msgstr "<b>აირჩიეთ:</b>"
|
||||||
|
|
||||||
#: ../system-config-selinux.ui:771
|
#: ../system-config-selinux.ui:771
|
||||||
msgid "System Default Enforcing Mode"
|
msgid "System Default Enforcing Mode"
|
||||||
|
|
10
gui/po/tr.po
10
gui/po/tr.po
|
@ -9,9 +9,9 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2021-10-02 18:05+0000\n"
|
"PO-Revision-Date: 2022-09-24 15:19+0000\n"
|
||||||
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
|
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
|
||||||
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
|
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
"gui/tr/>\n"
|
"gui/tr/>\n"
|
||||||
"Language: tr\n"
|
"Language: tr\n"
|
||||||
|
@ -19,7 +19,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n>1);\n"
|
"Plural-Forms: nplurals=2; plural=(n>1);\n"
|
||||||
"X-Generator: Weblate 4.8\n"
|
"X-Generator: Weblate 4.14.1\n"
|
||||||
|
|
||||||
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
#: ../booleansPage.py:199 ../system-config-selinux.ui:999
|
||||||
msgid "Boolean"
|
msgid "Boolean"
|
||||||
|
@ -241,7 +241,7 @@ msgstr "GPL"
|
||||||
msgid "translator-credits"
|
msgid "translator-credits"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Serdar Sağlam <teknomobil@yandex.com>\n"
|
"Serdar Sağlam <teknomobil@yandex.com>\n"
|
||||||
"Oğuz Ersen <oguzersen@protonmail.com>"
|
"Oğuz Ersen <oguz@ersen.moe>"
|
||||||
|
|
||||||
#: ../polgen.ui:34
|
#: ../polgen.ui:34
|
||||||
msgid "Add Booleans Dialog"
|
msgid "Add Booleans Dialog"
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -54,6 +54,11 @@ extern int getpidcon_raw(pid_t pid, char ** con);
|
||||||
extern int getprevcon(char ** con);
|
extern int getprevcon(char ** con);
|
||||||
extern int getprevcon_raw(char ** con);
|
extern int getprevcon_raw(char ** con);
|
||||||
|
|
||||||
|
/* Get previous context (prior to last exec) of process identified by pid, and
|
||||||
|
set *con to refer to it. Caller must free via freecon. */
|
||||||
|
extern int getpidprevcon(pid_t pid, char ** con);
|
||||||
|
extern int getpidprevcon_raw(pid_t pid, char ** con);
|
||||||
|
|
||||||
/* Get exec context, and set *con to refer to it.
|
/* Get exec context, and set *con to refer to it.
|
||||||
Sets *con to NULL if no exec context has been set, i.e. using default.
|
Sets *con to NULL if no exec context has been set, i.e. using default.
|
||||||
If non-NULL, caller must free via freecon. */
|
If non-NULL, caller must free via freecon. */
|
||||||
|
|
|
@ -23,6 +23,10 @@ setcon \- set current security context of a process
|
||||||
.sp
|
.sp
|
||||||
.BI "int getpidcon_raw(pid_t " pid ", char **" context );
|
.BI "int getpidcon_raw(pid_t " pid ", char **" context );
|
||||||
.sp
|
.sp
|
||||||
|
.BI "int getpidprevcon(pid_t " pid ", char **" context );
|
||||||
|
.sp
|
||||||
|
.BI "int getpidprevcon_raw(pid_t " pid ", char **" context );
|
||||||
|
.sp
|
||||||
.BI "int getpeercon(int " fd ", char **" context );
|
.BI "int getpeercon(int " fd ", char **" context );
|
||||||
.sp
|
.sp
|
||||||
.BI "int getpeercon_raw(int " fd ", char **" context );
|
.BI "int getpeercon_raw(int " fd ", char **" context );
|
||||||
|
@ -50,6 +54,11 @@ same as getcon but gets the context before the last exec.
|
||||||
returns the process context for the specified PID, which must be free'd with
|
returns the process context for the specified PID, which must be free'd with
|
||||||
.BR freecon ().
|
.BR freecon ().
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.BR getpidprevcon ()
|
||||||
|
returns the process context before the last exec for the specified PID, which must be free'd with
|
||||||
|
.BR freecon ().
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BR getpeercon ()
|
.BR getpeercon ()
|
||||||
retrieves the context of the peer socket, which must be free'd with
|
retrieves the context of the peer socket, which must be free'd with
|
||||||
|
@ -125,6 +134,7 @@ will fail if it is not allowed by policy.
|
||||||
.BR getcon_raw (),
|
.BR getcon_raw (),
|
||||||
.BR getprevcon_raw (),
|
.BR getprevcon_raw (),
|
||||||
.BR getpidcon_raw (),
|
.BR getpidcon_raw (),
|
||||||
|
.BR getpidprevcon_raw (),
|
||||||
.BR getpeercon_raw ()
|
.BR getpeercon_raw ()
|
||||||
and
|
and
|
||||||
.BR setcon_raw ()
|
.BR setcon_raw ()
|
||||||
|
@ -139,5 +149,9 @@ The retrieval functions might return success and set
|
||||||
.I *context
|
.I *context
|
||||||
to NULL if and only if SELinux is not enabled.
|
to NULL if and only if SELinux is not enabled.
|
||||||
|
|
||||||
|
Querying a foreign process via its PID, e.g. \fBgetpidcon\fR() or
|
||||||
|
\fBgetpidprevcon\fR(), is inherently racy and therefore should never be relied
|
||||||
|
upon for security purposes.
|
||||||
|
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.BR selinux "(8), " setexeccon "(3)"
|
.BR selinux "(8), " setexeccon "(3)"
|
||||||
|
|
1
libselinux/man/man3/getpidprevcon.3
Normal file
1
libselinux/man/man3/getpidprevcon.3
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.so man3/getcon.3
|
1
libselinux/man/man3/getpidprevcon_raw.3
Normal file
1
libselinux/man/man3/getpidprevcon_raw.3
Normal file
|
@ -0,0 +1 @@
|
||||||
|
.so man3/getcon.3
|
|
@ -86,7 +86,7 @@ CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissi
|
||||||
-Wno-missing-field-initializers -Wno-sign-compare \
|
-Wno-missing-field-initializers -Wno-sign-compare \
|
||||||
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \
|
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \
|
||||||
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
|
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
|
||||||
-fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time \
|
-fasynchronous-unwind-tables -fdiagnostics-show-option \
|
||||||
-Werror -Wno-aggregate-return -Wno-redundant-decls \
|
-Werror -Wno-aggregate-return -Wno-redundant-decls \
|
||||||
$(EXTRA_CFLAGS)
|
$(EXTRA_CFLAGS)
|
||||||
|
|
||||||
|
|
|
@ -246,3 +246,9 @@ LIBSELINUX_3.4 {
|
||||||
selinux_restorecon_get_skipped_errors;
|
selinux_restorecon_get_skipped_errors;
|
||||||
selinux_restorecon_parallel;
|
selinux_restorecon_parallel;
|
||||||
} LIBSELINUX_1.0;
|
} LIBSELINUX_1.0;
|
||||||
|
|
||||||
|
LIBSELINUX_3.5 {
|
||||||
|
global:
|
||||||
|
getpidprevcon;
|
||||||
|
getpidprevcon_raw;
|
||||||
|
} LIBSELINUX_3.4;
|
||||||
|
|
|
@ -300,3 +300,21 @@ int getpidcon(pid_t pid, char **c)
|
||||||
}
|
}
|
||||||
return getprocattrcon(c, pid, "current", NULL);
|
return getprocattrcon(c, pid, "current", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getpidprevcon_raw(pid_t pid, char **c)
|
||||||
|
{
|
||||||
|
if (pid <= 0) {
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return getprocattrcon_raw(c, pid, "prev", NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
int getpidprevcon(pid_t pid, char **c)
|
||||||
|
{
|
||||||
|
if (pid <= 0) {
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return getprocattrcon(c, pid, "prev", NULL);
|
||||||
|
}
|
||||||
|
|
|
@ -432,10 +432,11 @@ static pthread_mutex_t fl_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||||
* that matched.
|
* that matched.
|
||||||
*/
|
*/
|
||||||
static int filespec_add(ino_t ino, const char *con, const char *file,
|
static int filespec_add(ino_t ino, const char *con, const char *file,
|
||||||
struct rest_flags *flags)
|
const struct rest_flags *flags)
|
||||||
{
|
{
|
||||||
file_spec_t *prevfl, *fl;
|
file_spec_t *prevfl, *fl;
|
||||||
int h, ret;
|
uint32_t h;
|
||||||
|
int ret;
|
||||||
struct stat64 sb;
|
struct stat64 sb;
|
||||||
|
|
||||||
__pthread_mutex_lock(&fl_mutex);
|
__pthread_mutex_lock(&fl_mutex);
|
||||||
|
@ -524,7 +525,8 @@ unlock_1:
|
||||||
static void filespec_eval(void)
|
static void filespec_eval(void)
|
||||||
{
|
{
|
||||||
file_spec_t *fl;
|
file_spec_t *fl;
|
||||||
int h, used, nel, len, longest;
|
uint32_t h;
|
||||||
|
size_t used, nel, len, longest;
|
||||||
|
|
||||||
if (!fl_head)
|
if (!fl_head)
|
||||||
return;
|
return;
|
||||||
|
@ -544,7 +546,7 @@ static void filespec_eval(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
selinux_log(SELINUX_INFO,
|
selinux_log(SELINUX_INFO,
|
||||||
"filespec hash table stats: %d elements, %d/%d buckets used, longest chain length %d\n",
|
"filespec hash table stats: %zu elements, %zu/%zu buckets used, longest chain length %zu\n",
|
||||||
nel, used, HASH_BUCKETS, longest);
|
nel, used, HASH_BUCKETS, longest);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -559,7 +561,7 @@ static void filespec_eval(void)
|
||||||
static void filespec_destroy(void)
|
static void filespec_destroy(void)
|
||||||
{
|
{
|
||||||
file_spec_t *fl, *tmp;
|
file_spec_t *fl, *tmp;
|
||||||
int h;
|
uint32_t h;
|
||||||
|
|
||||||
if (!fl_head)
|
if (!fl_head)
|
||||||
return;
|
return;
|
||||||
|
@ -624,15 +626,13 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
static int restorecon_sb(const char *pathname, const struct stat *sb,
|
static int restorecon_sb(const char *pathname, const struct stat *sb,
|
||||||
struct rest_flags *flags, bool first)
|
const struct rest_flags *flags, bool first)
|
||||||
{
|
{
|
||||||
char *newcon = NULL;
|
char *newcon = NULL;
|
||||||
char *curcon = NULL;
|
char *curcon = NULL;
|
||||||
char *newtypecon = NULL;
|
char *newtypecon = NULL;
|
||||||
int rc;
|
int rc;
|
||||||
bool updated = false;
|
|
||||||
const char *lookup_path = pathname;
|
const char *lookup_path = pathname;
|
||||||
float pc;
|
|
||||||
|
|
||||||
if (rootpath) {
|
if (rootpath) {
|
||||||
if (strncmp(rootpath, lookup_path, rootpathlen) != 0) {
|
if (strncmp(rootpath, lookup_path, rootpathlen) != 0) {
|
||||||
|
@ -647,10 +647,10 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
|
||||||
if (rootpath != NULL && lookup_path[0] == '\0')
|
if (rootpath != NULL && lookup_path[0] == '\0')
|
||||||
/* this is actually the root dir of the alt root. */
|
/* this is actually the root dir of the alt root. */
|
||||||
rc = selabel_lookup_raw(fc_sehandle, &newcon, "/",
|
rc = selabel_lookup_raw(fc_sehandle, &newcon, "/",
|
||||||
sb->st_mode);
|
sb->st_mode & S_IFMT);
|
||||||
else
|
else
|
||||||
rc = selabel_lookup_raw(fc_sehandle, &newcon, lookup_path,
|
rc = selabel_lookup_raw(fc_sehandle, &newcon, lookup_path,
|
||||||
sb->st_mode);
|
sb->st_mode & S_IFMT);
|
||||||
|
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
if (errno == ENOENT) {
|
if (errno == ENOENT) {
|
||||||
|
@ -670,7 +670,7 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
|
||||||
fc_count++;
|
fc_count++;
|
||||||
if (fc_count % STAR_COUNT == 0) {
|
if (fc_count % STAR_COUNT == 0) {
|
||||||
if (flags->mass_relabel && efile_count > 0) {
|
if (flags->mass_relabel && efile_count > 0) {
|
||||||
pc = (fc_count < efile_count) ? (100.0 *
|
float pc = (fc_count < efile_count) ? (100.0 *
|
||||||
fc_count / efile_count) : 100;
|
fc_count / efile_count) : 100;
|
||||||
fprintf(stdout, "\r%-.1f%%", (double)pc);
|
fprintf(stdout, "\r%-.1f%%", (double)pc);
|
||||||
} else {
|
} else {
|
||||||
|
@ -710,6 +710,8 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (curcon == NULL || strcmp(curcon, newcon) != 0) {
|
if (curcon == NULL || strcmp(curcon, newcon) != 0) {
|
||||||
|
bool updated = false;
|
||||||
|
|
||||||
if (!flags->set_specctx && curcon &&
|
if (!flags->set_specctx && curcon &&
|
||||||
(is_context_customizable(curcon) > 0)) {
|
(is_context_customizable(curcon) > 0)) {
|
||||||
if (flags->verbose) {
|
if (flags->verbose) {
|
||||||
|
|
|
@ -4,7 +4,7 @@ from setuptools import Extension, setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="selinux",
|
name="selinux",
|
||||||
version="3.5-rc2",
|
version="3.5",
|
||||||
description="SELinux python 3 bindings",
|
description="SELinux python 3 bindings",
|
||||||
author="SELinux Project",
|
author="SELinux Project",
|
||||||
author_email="selinux@vger.kernel.org",
|
author_email="selinux@vger.kernel.org",
|
||||||
|
|
1
libselinux/utils/.gitignore
vendored
1
libselinux/utils/.gitignore
vendored
|
@ -9,6 +9,7 @@ getdefaultcon
|
||||||
getenforce
|
getenforce
|
||||||
getfilecon
|
getfilecon
|
||||||
getpidcon
|
getpidcon
|
||||||
|
getpidprevcon
|
||||||
getsebool
|
getsebool
|
||||||
getseuser
|
getseuser
|
||||||
matchpathcon
|
matchpathcon
|
||||||
|
|
|
@ -32,7 +32,7 @@ CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissi
|
||||||
-Wno-missing-field-initializers -Wno-sign-compare \
|
-Wno-missing-field-initializers -Wno-sign-compare \
|
||||||
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \
|
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \
|
||||||
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
|
-fstack-protector-all --param=ssp-buffer-size=4 -fexceptions \
|
||||||
-fasynchronous-unwind-tables -fdiagnostics-show-option -funit-at-a-time \
|
-fasynchronous-unwind-tables -fdiagnostics-show-option \
|
||||||
-Werror -Wno-aggregate-return -Wno-redundant-decls -Wstrict-overflow=5 \
|
-Werror -Wno-aggregate-return -Wno-redundant-decls -Wstrict-overflow=5 \
|
||||||
$(EXTRA_CFLAGS)
|
$(EXTRA_CFLAGS)
|
||||||
|
|
||||||
|
|
33
libselinux/utils/getpidprevcon.c
Normal file
33
libselinux/utils/getpidprevcon.c
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <selinux/selinux.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
pid_t pid;
|
||||||
|
char *buf;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
if (argc != 2) {
|
||||||
|
fprintf(stderr, "usage: %s pid\n", argv[0]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sscanf(argv[1], "%d", &pid) != 1) {
|
||||||
|
fprintf(stderr, "%s: invalid pid %s\n", argv[0], argv[1]);
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
rc = getpidprevcon(pid, &buf);
|
||||||
|
if (rc < 0) {
|
||||||
|
fprintf(stderr, "%s: getpidprevcon() failed: %s\n", argv[0], strerror(errno));
|
||||||
|
exit(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%s\n", buf);
|
||||||
|
freecon(buf);
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -9,6 +9,7 @@ Conflicts=shutdown.target
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/sbin/mcstransd -f
|
ExecStart=/sbin/mcstransd -f
|
||||||
RuntimeDirectory=setrans
|
RuntimeDirectory=setrans
|
||||||
|
RuntimeDirectoryPreserve=true
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
|
@ -3,17 +3,18 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2016-01-06 06:54-0500\n"
|
"PO-Revision-Date: 2023-01-14 17:20+0000\n"
|
||||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
|
"Last-Translator: Amro Hatem <amro_hatem_1@outlook.com>\n"
|
||||||
"Language-Team: Arabic\n"
|
"Language-Team: Arabic <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
|
"policycoreutils/ar/>\n"
|
||||||
"Language: ar\n"
|
"Language: ar\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=6; plural= n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||||
"X-Generator: Zanata 4.6.2\n"
|
"X-Generator: Weblate 4.15\n"
|
||||||
|
|
||||||
#: ../run_init/run_init.c:67
|
#: ../run_init/run_init.c:67
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -243,7 +244,7 @@ msgstr "فشل في ضبط مدى جديد %s\n"
|
||||||
#: ../newrole/newrole.c:977
|
#: ../newrole/newrole.c:977
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed to convert new context to string\n"
|
msgid "failed to convert new context to string\n"
|
||||||
msgstr "فشل في في تحويل السياق الجديد إلى نص\n"
|
msgstr "فشل في تحويل السياق الجديد إلى نص\n"
|
||||||
|
|
||||||
#: ../newrole/newrole.c:982
|
#: ../newrole/newrole.c:982
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
|
@ -3,16 +3,17 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2018-08-21 10:26-0400\n"
|
"PO-Revision-Date: 2022-10-17 12:19+0000\n"
|
||||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
|
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
|
"policycoreutils/de/>\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Zanata 4.6.2\n"
|
"X-Generator: Weblate 4.14.1\n"
|
||||||
|
|
||||||
#: ../run_init/run_init.c:67
|
#: ../run_init/run_init.c:67
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -99,7 +100,7 @@ msgstr "newrole: %s: Fehler in Zeile %lu.\n"
|
||||||
#: ../newrole/newrole.c:385
|
#: ../newrole/newrole.c:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot encrypt password.\n"
|
msgid "Cannot encrypt password.\n"
|
||||||
msgstr ""
|
msgstr "Passwort kann nicht verschlüsselt werden.\n"
|
||||||
|
|
||||||
#: ../newrole/newrole.c:449
|
#: ../newrole/newrole.c:449
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
|
@ -4,9 +4,9 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2020-08-28 03:29+0000\n"
|
"PO-Revision-Date: 2022-10-06 08:19+0000\n"
|
||||||
"Last-Translator: Julien Humbert <julroy67@gmail.com>\n"
|
"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
|
||||||
"Language-Team: French <https://translate.fedoraproject.org/projects/selinux/"
|
"Language-Team: French <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
"policycoreutils/fr/>\n"
|
"policycoreutils/fr/>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
"X-Generator: Weblate 4.2.1\n"
|
"X-Generator: Weblate 4.14.1\n"
|
||||||
|
|
||||||
#: ../run_init/run_init.c:67
|
#: ../run_init/run_init.c:67
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -102,7 +102,7 @@ msgstr "nouveau rôle : %s : erreur à la ligne %lu.\n"
|
||||||
#: ../newrole/newrole.c:385
|
#: ../newrole/newrole.c:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot encrypt password.\n"
|
msgid "Cannot encrypt password.\n"
|
||||||
msgstr ""
|
msgstr "Impossible de crypter le mot de passe.\n"
|
||||||
|
|
||||||
#: ../newrole/newrole.c:449
|
#: ../newrole/newrole.c:449
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
|
@ -3,8 +3,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2022-09-01 08:42+0000\n"
|
"PO-Revision-Date: 2022-09-23 11:19+0000\n"
|
||||||
"Last-Translator: 김인수 <simmon@nplob.com>\n"
|
"Last-Translator: 김인수 <simmon@nplob.com>\n"
|
||||||
"Language-Team: Korean <https://translate.fedoraproject.org/projects/selinux/"
|
"Language-Team: Korean <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
"policycoreutils/ko/>\n"
|
"policycoreutils/ko/>\n"
|
||||||
|
@ -13,7 +13,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
"X-Generator: Weblate 4.14\n"
|
"X-Generator: Weblate 4.14.1\n"
|
||||||
|
|
||||||
#: ../run_init/run_init.c:67
|
#: ../run_init/run_init.c:67
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -107,7 +107,7 @@ msgstr "비밀번호 파일에서 유효한 엔트리를 찾을 수 없습니다
|
||||||
#: ../newrole/newrole.c:460
|
#: ../newrole/newrole.c:460
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Out of memory!\n"
|
msgid "Out of memory!\n"
|
||||||
msgstr "메모리가 다 찼습니다!\n"
|
msgstr "메모리 부족!\n"
|
||||||
|
|
||||||
#: ../newrole/newrole.c:465
|
#: ../newrole/newrole.c:465
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
|
@ -5,16 +5,17 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2017-12-15 09:06-0500\n"
|
"PO-Revision-Date: 2022-09-08 15:19+0000\n"
|
||||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
|
"Last-Translator: Luna Jernberg <bittin@reimu.nl>\n"
|
||||||
"Language-Team: Swedish\n"
|
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
|
"policycoreutils/sv/>\n"
|
||||||
"Language: sv\n"
|
"Language: sv\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
"X-Generator: Zanata 4.6.2\n"
|
"X-Generator: Weblate 4.14\n"
|
||||||
|
|
||||||
#: ../run_init/run_init.c:67
|
#: ../run_init/run_init.c:67
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -98,7 +99,7 @@ msgstr "newrole: %s: fel på rad %lu.\n"
|
||||||
#: ../newrole/newrole.c:385
|
#: ../newrole/newrole.c:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot encrypt password.\n"
|
msgid "Cannot encrypt password.\n"
|
||||||
msgstr ""
|
msgstr "Kan inte kryptera lösenord.\n"
|
||||||
|
|
||||||
#: ../newrole/newrole.c:449
|
#: ../newrole/newrole.c:449
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
|
@ -4,9 +4,9 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
|
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
|
||||||
"PO-Revision-Date: 2021-01-10 20:36+0000\n"
|
"PO-Revision-Date: 2022-11-25 17:19+0000\n"
|
||||||
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
|
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
|
||||||
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
|
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
|
||||||
"policycoreutils/tr/>\n"
|
"policycoreutils/tr/>\n"
|
||||||
"Language: tr\n"
|
"Language: tr\n"
|
||||||
|
@ -14,7 +14,7 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n>1);\n"
|
"Plural-Forms: nplurals=2; plural=(n>1);\n"
|
||||||
"X-Generator: Weblate 4.4\n"
|
"X-Generator: Weblate 4.14.2\n"
|
||||||
|
|
||||||
#: ../run_init/run_init.c:67
|
#: ../run_init/run_init.c:67
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -98,7 +98,7 @@ msgstr "newrole: %s: %lu. satırda hata.\n"
|
||||||
#: ../newrole/newrole.c:385
|
#: ../newrole/newrole.c:385
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Cannot encrypt password.\n"
|
msgid "Cannot encrypt password.\n"
|
||||||
msgstr ""
|
msgstr "Parola şifrelenemiyor.\n"
|
||||||
|
|
||||||
#: ../newrole/newrole.c:449
|
#: ../newrole/newrole.c:449
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
3.5-rc2
|
3.5
|
||||||
|
|
965
python/po/af.po
965
python/po/af.po
File diff suppressed because it is too large
Load diff
965
python/po/am.po
965
python/po/am.po
File diff suppressed because it is too large
Load diff
965
python/po/ar.po
965
python/po/ar.po
File diff suppressed because it is too large
Load diff
947
python/po/as.po
947
python/po/as.po
File diff suppressed because it is too large
Load diff
965
python/po/ast.po
965
python/po/ast.po
File diff suppressed because it is too large
Load diff
965
python/po/bal.po
965
python/po/bal.po
File diff suppressed because it is too large
Load diff
965
python/po/be.po
965
python/po/be.po
File diff suppressed because it is too large
Load diff
965
python/po/bg.po
965
python/po/bg.po
File diff suppressed because it is too large
Load diff
965
python/po/bn.po
965
python/po/bn.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
965
python/po/br.po
965
python/po/br.po
File diff suppressed because it is too large
Load diff
965
python/po/brx.po
965
python/po/brx.po
File diff suppressed because it is too large
Load diff
965
python/po/bs.po
965
python/po/bs.po
File diff suppressed because it is too large
Load diff
947
python/po/ca.po
947
python/po/ca.po
File diff suppressed because it is too large
Load diff
947
python/po/cs.po
947
python/po/cs.po
File diff suppressed because it is too large
Load diff
965
python/po/cy.po
965
python/po/cy.po
File diff suppressed because it is too large
Load diff
947
python/po/da.po
947
python/po/da.po
File diff suppressed because it is too large
Load diff
964
python/po/de.po
964
python/po/de.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
965
python/po/el.po
965
python/po/el.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
965
python/po/eo.po
965
python/po/eo.po
File diff suppressed because it is too large
Load diff
947
python/po/es.po
947
python/po/es.po
File diff suppressed because it is too large
Load diff
965
python/po/et.po
965
python/po/et.po
File diff suppressed because it is too large
Load diff
965
python/po/eu.po
965
python/po/eu.po
File diff suppressed because it is too large
Load diff
965
python/po/fa.po
965
python/po/fa.po
File diff suppressed because it is too large
Load diff
951
python/po/fi.po
951
python/po/fi.po
File diff suppressed because it is too large
Load diff
965
python/po/fil.po
965
python/po/fil.po
File diff suppressed because it is too large
Load diff
953
python/po/fr.po
953
python/po/fr.po
File diff suppressed because it is too large
Load diff
965
python/po/fur.po
965
python/po/fur.po
File diff suppressed because it is too large
Load diff
965
python/po/ga.po
965
python/po/ga.po
File diff suppressed because it is too large
Load diff
965
python/po/gl.po
965
python/po/gl.po
File diff suppressed because it is too large
Load diff
947
python/po/gu.po
947
python/po/gu.po
File diff suppressed because it is too large
Load diff
965
python/po/he.po
965
python/po/he.po
File diff suppressed because it is too large
Load diff
947
python/po/hi.po
947
python/po/hi.po
File diff suppressed because it is too large
Load diff
965
python/po/hr.po
965
python/po/hr.po
File diff suppressed because it is too large
Load diff
947
python/po/hu.po
947
python/po/hu.po
File diff suppressed because it is too large
Load diff
965
python/po/ia.po
965
python/po/ia.po
File diff suppressed because it is too large
Load diff
965
python/po/id.po
965
python/po/id.po
File diff suppressed because it is too large
Load diff
965
python/po/ilo.po
965
python/po/ilo.po
File diff suppressed because it is too large
Load diff
965
python/po/is.po
965
python/po/is.po
File diff suppressed because it is too large
Load diff
947
python/po/it.po
947
python/po/it.po
File diff suppressed because it is too large
Load diff
953
python/po/ja.po
953
python/po/ja.po
File diff suppressed because it is too large
Load diff
1129
python/po/ka.po
1129
python/po/ka.po
File diff suppressed because it is too large
Load diff
965
python/po/kk.po
965
python/po/kk.po
File diff suppressed because it is too large
Load diff
965
python/po/km.po
965
python/po/km.po
File diff suppressed because it is too large
Load diff
947
python/po/kn.po
947
python/po/kn.po
File diff suppressed because it is too large
Load diff
951
python/po/ko.po
951
python/po/ko.po
File diff suppressed because it is too large
Load diff
965
python/po/ky.po
965
python/po/ky.po
File diff suppressed because it is too large
Load diff
965
python/po/lt.po
965
python/po/lt.po
File diff suppressed because it is too large
Load diff
965
python/po/lv.po
965
python/po/lv.po
File diff suppressed because it is too large
Load diff
965
python/po/mai.po
965
python/po/mai.po
File diff suppressed because it is too large
Load diff
965
python/po/mk.po
965
python/po/mk.po
File diff suppressed because it is too large
Load diff
947
python/po/ml.po
947
python/po/ml.po
File diff suppressed because it is too large
Load diff
965
python/po/mn.po
965
python/po/mn.po
File diff suppressed because it is too large
Load diff
947
python/po/mr.po
947
python/po/mr.po
File diff suppressed because it is too large
Load diff
965
python/po/ms.po
965
python/po/ms.po
File diff suppressed because it is too large
Load diff
965
python/po/my.po
965
python/po/my.po
File diff suppressed because it is too large
Load diff
965
python/po/nb.po
965
python/po/nb.po
File diff suppressed because it is too large
Load diff
965
python/po/nds.po
965
python/po/nds.po
File diff suppressed because it is too large
Load diff
965
python/po/ne.po
965
python/po/ne.po
File diff suppressed because it is too large
Load diff
947
python/po/nl.po
947
python/po/nl.po
File diff suppressed because it is too large
Load diff
965
python/po/nn.po
965
python/po/nn.po
File diff suppressed because it is too large
Load diff
965
python/po/nso.po
965
python/po/nso.po
File diff suppressed because it is too large
Load diff
947
python/po/or.po
947
python/po/or.po
File diff suppressed because it is too large
Load diff
947
python/po/pa.po
947
python/po/pa.po
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue