SHA256
1
0
forked from pool/targetcli-fb

Accepting request 817943 from home:lee_duncan:branches:Base:System

- Update to version 2.1.53:
  * version 2.1.53
  * saveconfig: set right perms on /etc/target/ dir
  * saveconfig: set right perms on backup dir
  * saveconfig: set 0o600 perms on backupfiles
  * uds: set right permissions at bind() time
  This removed patches which are included upstream:
  * 0001-uds-set-right-permissions-at-bind-time.patch
  * 0002-saveconfig-set-0o600-perms-on-backupfiles.patch
  * 0003-saveconfig-set-right-perms-on-backup-dir.patch
  * 0004-saveconfig-set-right-perms-on-etc-target-dir.patch
  And replaced the tarball with targetcli-fb-2.1.53.tar.xz

OBS-URL: https://build.opensuse.org/request/show/817943
OBS-URL: https://build.opensuse.org/package/show/Base:System/targetcli-fb?expand=0&rev=45
This commit is contained in:
Lee Duncan 2020-06-30 21:06:27 +00:00 committed by Git OBS Bridge
parent b0e48b3756
commit b86fd5c099
10 changed files with 22 additions and 238 deletions

View File

@ -1,53 +0,0 @@
From e347f7ea20547052e8fc1b65cba5e3f3ef2bf3d8 Mon Sep 17 00:00:00 2001
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date: Fri, 29 May 2020 18:31:21 +0530
Subject: [PATCH 1/4] uds: set right permissions at bind() time
We fixed it earlier with commit 6e4f39357a90a914d11bac21cc2d2b52c07c213d
but that fixes the issue when someone run the targetclid with systemd
only.
If we don't use targetclid.socket and want to run `targetclid` from
command line, then socket.bind() will create the file with default
permissions.
Hence its good if we can guard the permissions right at the time of .bind()
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
---
daemon/targetclid | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/daemon/targetclid b/daemon/targetclid
index 329cede5da87..9bf8ae7ed14e 100755
--- a/daemon/targetclid
+++ b/daemon/targetclid
@@ -28,6 +28,7 @@ from threading import Thread
import os
import sys
+import stat
import socket
import struct
import fcntl
@@ -238,12 +239,17 @@ def main():
# save socket so a signal can clea it up
to.sock = sock
+ mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
+ umask = 0o777 ^ mode # Prevents always downgrading umask to 0
+ umask_original = os.umask(umask)
# Bind the socket path
try:
sock.bind(to.socket_path)
except socket.error as err:
to.display(to.render(err.strerror, 'red'))
sys.exit(1)
+ finally:
+ os.umask(umask_original)
# Listen for incoming connections
try:
--
2.26.2

View File

@ -1,35 +0,0 @@
From 1940a17986deaab92e6be395f20ee55dac0ac2bd Mon Sep 17 00:00:00 2001
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date: Fri, 29 May 2020 14:51:28 +0530
Subject: [PATCH 2/4] saveconfig: set 0o600 perms on backupfiles
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
---
targetcli/ui_root.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/targetcli/ui_root.py b/targetcli/ui_root.py
index 26815bd2b8fa..6e99b8cfcb78 100644
--- a/targetcli/ui_root.py
+++ b/targetcli/ui_root.py
@@ -125,12 +125,17 @@ class UIRoot(UINode):
# Save backup if backup dir is empty, or savefile is differnt from recent backup copy
if not backed_files_list or not self._compare_files(backed_files_list[-1], savefile):
+ mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
+ umask = 0o777 ^ mode # Prevents always downgrading umask to 0
+ umask_original = os.umask(umask)
try:
with open(savefile, 'rb') as f_in, gzip.open(backupfile, 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
f_out.flush()
except IOError as ioe:
backup_error = ioe.strerror or "Unknown error"
+ finally:
+ os.umask(umask_original)
if backup_error == None:
# remove excess backups
--
2.26.2

View File

@ -1,49 +0,0 @@
From 3bdef6d1aa1f64c03816af68bd5fb2bd1bbb29be Mon Sep 17 00:00:00 2001
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date: Fri, 29 May 2020 15:05:35 +0530
Subject: [PATCH 3/4] saveconfig: set right perms on backup dir
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
---
targetcli/ui_root.py | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/targetcli/ui_root.py b/targetcli/ui_root.py
index 6e99b8cfcb78..b24c789f213d 100644
--- a/targetcli/ui_root.py
+++ b/targetcli/ui_root.py
@@ -109,12 +109,21 @@ class UIRoot(UINode):
backupfile = backup_dir + backup_name
backup_error = None
+ mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
+ umask = 0o777 ^ mode # Prevents always downgrading umask to 0
+
if not os.path.exists(backup_dir):
+ umask_original = os.umask(umask)
try:
- os.makedirs(backup_dir)
+ os.makedirs(backup_dir, mode)
except OSError as exe:
raise ExecutionError("Cannot create backup directory [%s] %s."
% (backup_dir, exe.strerror))
+ finally:
+ os.umask(umask_original)
+ else:
+ if (os.stat(backup_dir).st_mode & 0o777) != mode:
+ os.chmod(backup_dir, mode)
# Only save backups if savefile exits
if not os.path.exists(savefile):
@@ -125,8 +134,6 @@ class UIRoot(UINode):
# Save backup if backup dir is empty, or savefile is differnt from recent backup copy
if not backed_files_list or not self._compare_files(backed_files_list[-1], savefile):
- mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
- umask = 0o777 ^ mode # Prevents always downgrading umask to 0
umask_original = os.umask(umask)
try:
with open(savefile, 'rb') as f_in, gzip.open(backupfile, 'wb') as f_out:
--
2.26.2

View File

@ -1,85 +0,0 @@
From 9f5764dac39b5b75ee6b5d9e4db419d09d64b898 Mon Sep 17 00:00:00 2001
From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
Date: Fri, 29 May 2020 15:36:27 +0530
Subject: [PATCH 4/4] saveconfig: set right perms on /etc/target/ dir
Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
---
targetcli/ui_root.py | 40 +++++++++++++++++++++++++---------------
1 file changed, 25 insertions(+), 15 deletions(-)
diff --git a/targetcli/ui_root.py b/targetcli/ui_root.py
index b24c789f213d..39e5ee99c342 100644
--- a/targetcli/ui_root.py
+++ b/targetcli/ui_root.py
@@ -95,6 +95,26 @@ class UIRoot(UINode):
else:
return False
+ def _create_dir(self, dirname):
+ '''
+ create directory with permissions 0o600 set
+ if directory already exists, set right perms
+ '''
+ mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
+ if not os.path.exists(dirname):
+ umask = 0o777 ^ mode # Prevents always downgrading umask to 0
+ umask_original = os.umask(umask)
+ try:
+ os.makedirs(dirname, mode)
+ except OSError as exe:
+ raise ExecutionError("Cannot create directory [%s] %s."
+ % (dirname, exe.strerror))
+ finally:
+ os.umask(umask_original)
+ else:
+ if (os.stat(dirname).st_mode & 0o777) != mode:
+ os.chmod(dirname, mode)
+
def _save_backups(self, savefile):
'''
Take backup of config-file if needed.
@@ -109,21 +129,7 @@ class UIRoot(UINode):
backupfile = backup_dir + backup_name
backup_error = None
- mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
- umask = 0o777 ^ mode # Prevents always downgrading umask to 0
-
- if not os.path.exists(backup_dir):
- umask_original = os.umask(umask)
- try:
- os.makedirs(backup_dir, mode)
- except OSError as exe:
- raise ExecutionError("Cannot create backup directory [%s] %s."
- % (backup_dir, exe.strerror))
- finally:
- os.umask(umask_original)
- else:
- if (os.stat(backup_dir).st_mode & 0o777) != mode:
- os.chmod(backup_dir, mode)
+ self._create_dir(backup_dir)
# Only save backups if savefile exits
if not os.path.exists(savefile):
@@ -134,6 +140,8 @@ class UIRoot(UINode):
# Save backup if backup dir is empty, or savefile is differnt from recent backup copy
if not backed_files_list or not self._compare_files(backed_files_list[-1], savefile):
+ mode = stat.S_IRUSR | stat.S_IWUSR # 0o600
+ umask = 0o777 ^ mode # Prevents always downgrading umask to 0
umask_original = os.umask(umask)
try:
with open(savefile, 'rb') as f_in, gzip.open(backupfile, 'wb') as f_out:
@@ -179,6 +187,8 @@ class UIRoot(UINode):
savefile = os.path.expanduser(savefile)
+ save_dir = os.path.dirname(savefile)
+ self._create_dir(save_dir)
self._save_backups(savefile)
self.rtsroot.save_to_file(savefile)
--
2.26.2

View File

@ -7,7 +7,7 @@
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(\d*\.\d*\.)(\d*)</param>
<param name="versionrewrite-replacement">\1\2</param>
<param name="revision">v2.1.52</param>
<param name="revision">v2.1.53</param>
<param name="changesgenerate">enable</param>
</service>
<service name="recompress" mode="disabled">

View File

@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/open-iscsi/targetcli-fb.git</param>
<param name="changesrevision">bab9fc16236c4aceade31e95327bc7b493bb157a</param></service></servicedata>
<param name="changesrevision">ff7766b737c0868ae2579da49f2e8304f40767ee</param></service></servicedata>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7b8c08842002f02aac819e41e3fd5c176f2e26a3843c8d214a43235c89a41b3e
size 34008

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:09b2e5640d9316c612f0a5ba055c4ace4a3051685c8a38eee9366ef9adceb81c
size 34212

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Tue Jun 30 20:54:28 UTC 2020 - lduncan@suse.com
- Update to version 2.1.53:
* version 2.1.53
* saveconfig: set right perms on /etc/target/ dir
* saveconfig: set right perms on backup dir
* saveconfig: set 0o600 perms on backupfiles
* uds: set right permissions at bind() time
This removed patches which are included upstream:
* 0001-uds-set-right-permissions-at-bind-time.patch
* 0002-saveconfig-set-0o600-perms-on-backupfiles.patch
* 0003-saveconfig-set-right-perms-on-backup-dir.patch
* 0004-saveconfig-set-right-perms-on-etc-target-dir.patch
And replaced the tarball with targetcli-fb-2.1.53.tar.xz
-------------------------------------------------------------------
Wed Jun 10 01:25:12 UTC 2020 - Lee Duncan <lduncan@suse.com>

View File

@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: targetcli-fb
Version: 2.1.52
Version: 2.1.53
Release: 0
Summary: A command shell for managing the Linux LIO kernel target
License: Apache-2.0
@ -60,12 +60,6 @@ Patch1: Split-out-blockdev-readonly-state-detection-helper.patch
Patch2: rbd-support.patch
Patch3: fix-setup-install.patch
# upstreamed patches
Patch11: 0001-uds-set-right-permissions-at-bind-time.patch
Patch12: 0002-saveconfig-set-0o600-perms-on-backupfiles.patch
Patch13: 0003-saveconfig-set-right-perms-on-backup-dir.patch
Patch14: 0004-saveconfig-set-right-perms-on-etc-target-dir.patch
%python_subpackages
%description
@ -95,10 +89,6 @@ python2-targetcli-fb and python3-targetcli-fb.
%patch2 -p1
%endif
%patch3 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%build
%python_build