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:
Thiébaud Weksteen 2023-03-20 14:34:41 +11:00
commit a9f20263fd
153 changed files with 44829 additions and 44145 deletions

View file

@ -10,31 +10,30 @@ jobs:
matrix:
compiler: [gcc, clang]
python-ruby-version:
- {python: '3.10', ruby: '3.1'}
- {python: '3.10', ruby: '3.1', other: test-flags-override}
- {python: '3.10', ruby: '3.1', other: test-debug}
- {python: '3.10', ruby: '3.1', other: linker-bfd}
- {python: '3.10', ruby: '3.1', other: linker-gold}
- {python: '3.11', ruby: '3.1'}
- {python: '3.11', ruby: '3.1', other: 'test-flags-override'}
- {python: '3.11', ruby: '3.1', other: 'test-debug'}
- {python: '3.11', ruby: '3.1', other: 'linker-bfd'}
- {python: '3.11', ruby: '3.1', other: 'linker-gold'}
# Test several Python versions with the latest Ruby version
- {python: '3.10', ruby: '3.1'}
- {python: '3.9', ruby: '3.1'}
- {python: '3.8', 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'}
# Test several Ruby versions with the latest Python version
- {python: '3.10', ruby: '3.0'}
- {python: '3.10', ruby: '2.7'}
- {python: '3.10', ruby: '2.6'}
- {python: '3.10', ruby: '2.5'}
- {python: '3.11', ruby: '3.0'}
- {python: '3.11', ruby: '2.7'}
- {python: '3.11', ruby: '2.6'}
- {python: '3.11', ruby: '2.5'}
exclude:
- 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
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:
- 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:
- uses: actions/checkout@v3

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2021-12-28 22:16+0000\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-10-17 13:19+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
"gui/de/>\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
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>"
#: ../polgen.ui:2179
#, fuzzy
#| msgid "Boolean"
msgid "Add Boolean"
msgstr "Boolean"
msgstr "Booleschen Wert hinzufügen"
#: ../polgen.ui:2234
#, python-format

View file

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2021-09-11 11:04+0000\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-10-27 13:20+0000\n"
"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
"Language-Team: Japanese <https://translate.fedoraproject.org/projects/"
"selinux/gui/ja/>\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid "Boolean"
@ -396,7 +396,7 @@ msgstr ""
#: ../polgen.ui:705
msgid "<b>Enter name of application or user role:</b>"
msgstr "<b>アプリケーションかユーザーロールの名前を入:</b>"
msgstr "<b>アプリケーションかユーザーロールの名前を入:</b>"
#: ../polgen.ui:739
msgid "Enter complete path for executable to be confined."

View file

@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2022-07-21 11:19+0000\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-11-23 17:19+0000\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
"selinux/gui/ka/>\n"
@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid "Boolean"
@ -284,7 +284,7 @@ msgstr ""
#: ../polgen.ui:387
msgid "User Application"
msgstr ""
msgstr "მომხმარებლის აპლიკაცია"
#: ../polgen.ui:391 ../polgen.ui:408
msgid ""
@ -659,7 +659,7 @@ msgstr ""
#: ../semanagePage.py:131
#, python-format
msgid "Are you sure you want to delete %s '%s'?"
msgstr ""
msgstr "დარწმუნებული ბრძანდებით, რომ გნებავთ, წაშალოთ %s '%s'?"
#: ../semanagePage.py:131
#, python-format
@ -691,7 +691,7 @@ msgstr "ძალით"
#: ../statusPage.py:80 ../system-config-selinux.ui:593
msgid "Disabled"
msgstr "გამორთულია"
msgstr "გათიშულია"
#: ../statusPage.py:99
msgid "Status"
@ -741,7 +741,7 @@ msgstr ""
#: ../system-config-selinux.ui:117
msgid "Login Name"
msgstr ""
msgstr "მომხმარებლის სახელი"
#: ../system-config-selinux.ui:128 ../system-config-selinux.ui:1376
#: ../system-config-selinux.ui:1911 ../usersPage.py:55
@ -806,7 +806,7 @@ msgstr ""
#: ../system-config-selinux.ui:741
msgid "<b>Select:</b>"
msgstr ""
msgstr "<b>აირჩიეთ:</b>"
#: ../system-config-selinux.ui:771
msgid "System Default Enforcing Mode"

View file

@ -9,9 +9,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2021-10-02 18:05+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-09-24 15:19+0000\n"
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
"gui/tr/>\n"
"Language: tr\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid "Boolean"
@ -241,7 +241,7 @@ msgstr "GPL"
msgid "translator-credits"
msgstr ""
"Serdar Sağlam <teknomobil@yandex.com>\n"
"Oğuz Ersen <oguzersen@protonmail.com>"
"Oğuz Ersen <oguz@ersen.moe>"
#: ../polgen.ui:34
msgid "Add Booleans Dialog"

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -54,6 +54,11 @@ extern int getpidcon_raw(pid_t pid, char ** con);
extern int getprevcon(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.
Sets *con to NULL if no exec context has been set, i.e. using default.
If non-NULL, caller must free via freecon. */

View file

@ -23,6 +23,10 @@ setcon \- set current security context of a process
.sp
.BI "int getpidcon_raw(pid_t " pid ", char **" context );
.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 );
.sp
.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
.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
.BR getpeercon ()
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 getprevcon_raw (),
.BR getpidcon_raw (),
.BR getpidprevcon_raw (),
.BR getpeercon_raw ()
and
.BR setcon_raw ()
@ -139,5 +149,9 @@ The retrieval functions might return success and set
.I *context
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"
.BR selinux "(8), " setexeccon "(3)"

View file

@ -0,0 +1 @@
.so man3/getcon.3

View file

@ -0,0 +1 @@
.so man3/getcon.3

View file

@ -86,7 +86,7 @@ CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissi
-Wno-missing-field-initializers -Wno-sign-compare \
-Wno-format-nonliteral -Wframe-larger-than=$(MAX_STACK_SIZE) \
-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 \
$(EXTRA_CFLAGS)

View file

@ -246,3 +246,9 @@ LIBSELINUX_3.4 {
selinux_restorecon_get_skipped_errors;
selinux_restorecon_parallel;
} LIBSELINUX_1.0;
LIBSELINUX_3.5 {
global:
getpidprevcon;
getpidprevcon_raw;
} LIBSELINUX_3.4;

View file

@ -300,3 +300,21 @@ int getpidcon(pid_t pid, char **c)
}
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);
}

View file

@ -432,10 +432,11 @@ static pthread_mutex_t fl_mutex = PTHREAD_MUTEX_INITIALIZER;
* that matched.
*/
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;
int h, ret;
uint32_t h;
int ret;
struct stat64 sb;
__pthread_mutex_lock(&fl_mutex);
@ -524,7 +525,8 @@ unlock_1:
static void filespec_eval(void)
{
file_spec_t *fl;
int h, used, nel, len, longest;
uint32_t h;
size_t used, nel, len, longest;
if (!fl_head)
return;
@ -544,7 +546,7 @@ static void filespec_eval(void)
}
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);
}
#else
@ -559,7 +561,7 @@ static void filespec_eval(void)
static void filespec_destroy(void)
{
file_spec_t *fl, *tmp;
int h;
uint32_t h;
if (!fl_head)
return;
@ -624,15 +626,13 @@ out:
}
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 *curcon = NULL;
char *newtypecon = NULL;
int rc;
bool updated = false;
const char *lookup_path = pathname;
float pc;
if (rootpath) {
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')
/* this is actually the root dir of the alt root. */
rc = selabel_lookup_raw(fc_sehandle, &newcon, "/",
sb->st_mode);
sb->st_mode & S_IFMT);
else
rc = selabel_lookup_raw(fc_sehandle, &newcon, lookup_path,
sb->st_mode);
sb->st_mode & S_IFMT);
if (rc < 0) {
if (errno == ENOENT) {
@ -670,7 +670,7 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
fc_count++;
if (fc_count % STAR_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;
fprintf(stdout, "\r%-.1f%%", (double)pc);
} else {
@ -710,6 +710,8 @@ static int restorecon_sb(const char *pathname, const struct stat *sb,
}
if (curcon == NULL || strcmp(curcon, newcon) != 0) {
bool updated = false;
if (!flags->set_specctx && curcon &&
(is_context_customizable(curcon) > 0)) {
if (flags->verbose) {

View file

@ -4,7 +4,7 @@ from setuptools import Extension, setup
setup(
name="selinux",
version="3.5-rc2",
version="3.5",
description="SELinux python 3 bindings",
author="SELinux Project",
author_email="selinux@vger.kernel.org",

View file

@ -9,6 +9,7 @@ getdefaultcon
getenforce
getfilecon
getpidcon
getpidprevcon
getsebool
getseuser
matchpathcon

View file

@ -32,7 +32,7 @@ CFLAGS ?= -O -Wall -W -Wundef -Wformat-y2k -Wformat-security -Winit-self -Wmissi
-Wno-missing-field-initializers -Wno-sign-compare \
-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 \
-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 \
$(EXTRA_CFLAGS)

View 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);
}

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -9,6 +9,7 @@ Conflicts=shutdown.target
[Service]
ExecStart=/sbin/mcstransd -f
RuntimeDirectory=setrans
RuntimeDirectoryPreserve=true
[Install]
WantedBy=multi-user.target

View file

@ -1 +1 @@
3.5-rc2
3.5

View file

@ -3,17 +3,18 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2016-01-06 06:54-0500\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Arabic\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2023-01-14 17:20+0000\n"
"Last-Translator: Amro Hatem <amro_hatem_1@outlook.com>\n"
"Language-Team: Arabic <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/ar/>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"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"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Weblate 4.15\n"
#: ../run_init/run_init.c:67
msgid ""
@ -243,7 +244,7 @@ msgstr "فشل في ضبط مدى جديد %s\n"
#: ../newrole/newrole.c:977
#, c-format
msgid "failed to convert new context to string\n"
msgstr "فشل في في تحويل السياق الجديد إلى نص\n"
msgstr "فشل في تحويل السياق الجديد إلى نص\n"
#: ../newrole/newrole.c:982
#, c-format

View file

@ -3,16 +3,17 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2018-08-21 10:26-0400\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: German\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-10-17 12:19+0000\n"
"Last-Translator: Ettore Atalan <atalanttore@googlemail.com>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/de/>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.1\n"
#: ../run_init/run_init.c:67
msgid ""
@ -99,7 +100,7 @@ msgstr "newrole: %s: Fehler in Zeile %lu.\n"
#: ../newrole/newrole.c:385
#, c-format
msgid "Cannot encrypt password.\n"
msgstr ""
msgstr "Passwort kann nicht verschlüsselt werden.\n"
#: ../newrole/newrole.c:449
#, c-format

View file

@ -4,9 +4,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2020-08-28 03:29+0000\n"
"Last-Translator: Julien Humbert <julroy67@gmail.com>\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-10-06 08:19+0000\n"
"Last-Translator: Ludek Janda <ljanda@redhat.com>\n"
"Language-Team: French <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/fr/>\n"
"Language: fr\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid ""
@ -102,7 +102,7 @@ msgstr "nouveau rôle : %s : erreur à la ligne %lu.\n"
#: ../newrole/newrole.c:385
#, c-format
msgid "Cannot encrypt password.\n"
msgstr ""
msgstr "Impossible de crypter le mot de passe.\n"
#: ../newrole/newrole.c:449
#, c-format

View file

@ -3,8 +3,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2022-09-01 08:42+0000\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-09-23 11:19+0000\n"
"Last-Translator: 김인수 <simmon@nplob.com>\n"
"Language-Team: Korean <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/ko/>\n"
@ -13,7 +13,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid ""
@ -107,7 +107,7 @@ msgstr "비밀번호 파일에서 유효한 엔트리를 찾을 수 없습니다
#: ../newrole/newrole.c:460
#, c-format
msgid "Out of memory!\n"
msgstr "메모리가 다 찼습니다!\n"
msgstr "메모리 부족!\n"
#: ../newrole/newrole.c:465
#, c-format

View file

@ -5,16 +5,17 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2017-12-15 09:06-0500\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Swedish\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-09-08 15:19+0000\n"
"Last-Translator: Luna Jernberg <bittin@reimu.nl>\n"
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/sv/>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14\n"
#: ../run_init/run_init.c:67
msgid ""
@ -98,7 +99,7 @@ msgstr "newrole: %s: fel på rad %lu.\n"
#: ../newrole/newrole.c:385
#, c-format
msgid "Cannot encrypt password.\n"
msgstr ""
msgstr "Kan inte kryptera lösenord.\n"
#: ../newrole/newrole.c:449
#, c-format

View file

@ -4,9 +4,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-08-30 22:52+0200\n"
"PO-Revision-Date: 2021-01-10 20:36+0000\n"
"Last-Translator: Oğuz Ersen <oguzersen@protonmail.com>\n"
"POT-Creation-Date: 2023-01-18 11:57+0100\n"
"PO-Revision-Date: 2022-11-25 17:19+0000\n"
"Last-Translator: Oğuz Ersen <oguz@ersen.moe>\n"
"Language-Team: Turkish <https://translate.fedoraproject.org/projects/selinux/"
"policycoreutils/tr/>\n"
"Language: tr\n"
@ -14,7 +14,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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
msgid ""
@ -98,7 +98,7 @@ msgstr "newrole: %s: %lu. satırda hata.\n"
#: ../newrole/newrole.c:385
#, c-format
msgid "Cannot encrypt password.\n"
msgstr ""
msgstr "Parola şifrelenemiyor.\n"
#: ../newrole/newrole.c:449
#, c-format

View file

@ -1 +1 @@
3.5-rc2
3.5

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

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