Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: python-rtslib-fb

python-rtslib-fb (2.1.73-1ubuntu4) groovy; urgency=medium * Disable xen-pvscsi due to unsup xen_scsiback module (LP: #1891214) -- Rafael David Tinoco <rafaeldtinoco@ubuntu.com> Tue, 08 Sep 2020 17:11:00 +0000 python-rtslib-fb (2.1.73-1ubuntu3) groovy; urgency=medium * SECURITY UPDATE: insecure saveconfig.json permissions - debian/patches/CVE-2020-14019.patch: keep proper umask when calling shutil.copy() in rtslib/root.py. - CVE-2020-14019 -- Marc Deslauriers <marc.deslauriers@ubuntu.com> Tue, 18 Aug 2020 10:25:05 -0400 python-rtslib-fb (2.1.73-1ubuntu2) groovy; urgency=medium * Fix FTBFS for python3 (LP #1890243) -- Rafael David Tinoco <rafaeldtinoco@ubuntu.com> Tue, 04 Aug 2020 07:13:51 +0000 python-rtslib-fb (2.1.73-1ubuntu1) groovy; urgency=medium * New upstream version. -- Rafael David Tinoco <rafaeldtinoco@ubuntu.com> Tue, 04 Aug 2020 05:25:13 +0000

Modifications :
  1. Download patch debian/patches/fix-interpreter-version.patch

    --- 2.1.71-2/debian/patches/fix-interpreter-version.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/patches/fix-interpreter-version.patch 2020-08-11 13:02:14.000000000 +0000 @@ -0,0 +1,15 @@ +Description: Use python3 as interpreter by default +Author: Rafael David Tinoco <rafaeldtinoco@ubuntu.com> +Last-Update: 2020-06-26 +--- + scripts/targetctl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/scripts/targetctl ++++ b/scripts/targetctl +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + ''' + targetctl +
  2. Download patch rtslib/__init__.py

    --- 2.1.71-2/rtslib/__init__.py 2019-11-06 12:35:08.000000000 +0000 +++ 2.1.73-1ubuntu4/rtslib/__init__.py 2020-06-24 08:16:57.000000000 +0000 @@ -36,7 +36,7 @@ from .tcm import StorageObjectFactory from .alua import ALUATargetPortGroup -__version__ = '2.1.71' +__version__ = '2.1.73' __author__ = "Jerome Martin <jxm@risingtidesystems.com>" __url__ = 'http://github.com/open-iscsi/rtslib-fb' __description__ = 'API for Linux kernel SCSI target (aka LIO)'
  3. Download patch debian/python3-rtslib-fb.install

    --- 2.1.71-2/debian/python3-rtslib-fb.install 1970-01-01 00:00:00.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/python3-rtslib-fb.install 2020-08-11 13:02:14.000000000 +0000 @@ -0,0 +1,5 @@ +scripts/convert-to-json /usr/bin +scripts/targetctl /usr/bin +usr/lib/python3.8/dist-packages/rtslib /usr/lib/python3/dist-packages +usr/lib/python3.8/dist-packages/rtslib_fb /usr/lib/python3/dist-packages +systemd/target.service /lib/systemd/system
  4. Download patch rtslib_fb/fabric.py

    --- 2.1.71-2/rtslib_fb/fabric.py 2019-11-06 12:35:08.000000000 +0000 +++ 2.1.73-1ubuntu4/rtslib_fb/fabric.py 2020-06-24 08:16:57.000000000 +0000 @@ -486,3 +486,7 @@ class FabricModule(object): def all(cls): for mod in six.itervalues(fabric_modules): yield mod() + + @classmethod + def list_registered_drivers(cls): + return os.listdir('/sys/module/target_core_mod/holders')
  5. Download patch debian/rules

    --- 2.1.71-2/debian/rules 2020-05-08 09:39:20.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/rules 2020-08-11 13:02:14.000000000 +0000 @@ -1,35 +1,42 @@ #!/usr/bin/make -f -#prevent internet access to use PyPi -export http_proxy = http://127.0.0.1:9 +export DH_VERBOSE=1 -UPSTREAM_GIT := https://github.com/open-iscsi/rtslib-fb.git -include /usr/share/openstack-pkg-tools/pkgos.make +# LP: #1890243 workaround +export PYBUILD_DISABLE_python3=test + +include /usr/share/dpkg/default.mk %: - dh $@ --buildsystem=python_distutils --with python3 + dh $@ --with python3 --buildsystem=pybuild -override_dh_auto_clean: - rm -rf build - find . -iname '*.pyc' -delete - for i in $$(find . -type d -iname __pycache__) ; do rm -rf $$i ; done +override_dh_auto_build: + pybuild --configure + pybuild --build override_dh_auto_install: - pkgos-dh_auto_install --no-py2 + mkdir -p debian/tmp/etc/rtslib-fb-target/ + pybuild --install -override_dh_auto_build: - echo "Do nothing..." +override_dh_auto_clean: + rm -rf .pybuild/ + rm -rf build/ + rm -rf *.egg-info/ + +override_dh_installman: + dh_installman doc/saveconfig.json.5 + dh_installman doc/targetctl.8 + +override_dh_installdocs: + dh_installdocs README.md + dh_installdocs COPYING + dh_installdocs doc/getting_started.md -override_dh_python3: - dh_python3 --shebang=/usr/bin/python3 +override_dh_installinit: + dh_installinit --name rtslib-fb-targetctl -#override_dh_installdocs: -# mkdir -p build -# mkdir -p $(CURDIR)/debian/python-rtslib-fb-doc/usr/share/doc/python-rtslib-fb-doc/html -# cd build; epydoc --no-sourcecode --html -n rtslib-fb \ -# --exclude configobj ../rtslib/*.py \ -# --output $(CURDIR)/debian/python-rtslib-fb-doc/usr/share/doc/python-rtslib-fb-doc/html -# dh_installdocs -O--buildsystem=python_distutils +override_dh_installsystemd: + dh_installsystemd \ + --no-stop-on-upgrade --no-enable --no-start \ + target.service -override_dh_installinit: - dh_installinit -O--buildsystem=python_distutils --name rtslib-fb-targetctl
  6. Download patch debian/python3-rtslib-fb.rtslib-fb-targetctl.service

    --- 2.1.71-2/debian/python3-rtslib-fb.rtslib-fb-targetctl.service 2020-05-08 09:39:20.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/python3-rtslib-fb.rtslib-fb-targetctl.service 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -[Unit] -Description=Restore LIO kernel target configuration -Requires=sys-kernel-config.mount -After=sys-kernel-config.mount network.target local-fs.target - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=mkdir -p /etc/rtslib-fb-target -ExecStart=/usr/bin/targetctl restore -ExecStop=/usr/bin/targetctl clear -SyslogIdentifier=target - -[Install] -WantedBy=multi-user.target
  7. Download patch debian/control

    --- 2.1.71-2/debian/control 2020-05-08 09:39:20.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/control 2020-08-11 13:02:14.000000000 +0000 @@ -1,14 +1,14 @@ Source: python-rtslib-fb Section: python Priority: optional -Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian OpenStack <team+openstack@tracker.debian.org> Uploaders: Thomas Goirand <zigo@debian.org>, Andy Grover <andy@groveronline.com>, Build-Depends: debhelper-compat (= 11), dh-python, - openstack-pkg-tools (>= 99~), python3-all, python3-setuptools, Build-Depends-Indep:
  8. Download patch rtslib_fb/root.py

    --- 2.1.71-2/rtslib_fb/root.py 2019-11-06 12:35:08.000000000 +0000 +++ 2.1.73-1ubuntu4/rtslib_fb/root.py 2020-06-24 08:16:57.000000000 +0000 @@ -85,7 +85,7 @@ class RTSRoot(CFSNode): modprobe('target_core_mod') self._create_in_cfs_ine('any') - self._set_dbroot_if_needed() + self._set_dbroot() def _list_targets(self): self._check_self() @@ -160,13 +160,21 @@ class RTSRoot(CFSNode): def __str__(self): return "rtslib" - def _set_dbroot_if_needed(self): + def _set_dbroot(self): dbroot_path = self.path + "/dbroot" if not os.path.exists(dbroot_path): self._dbroot = self._default_dbroot return self._dbroot = fread(dbroot_path) if self._dbroot != self._preferred_dbroot: + if len(FabricModule.list_registered_drivers()) != 0: + # Writing to dbroot_path after drivers have been registered will make the kernel emit this error: + # db_root: cannot be changed: target drivers registered + from warnings import warn + warn("Cannot set dbroot to {}. Target drivers have already been registered." + .format(self._preferred_dbroot)) + return + try: fwrite(dbroot_path, self._preferred_dbroot+"\n") except: @@ -441,7 +449,7 @@ class RTSRoot(CFSNode): def save_to_file(self, save_file=None, so_path=None): ''' Write the configuration in json format to a file. - Save file defaults to '/etc/targets/saveconfig.json'. + Save file defaults to '/etc/target/saveconfig.json'. ''' if not save_file: save_file = default_save_file @@ -453,15 +461,33 @@ class RTSRoot(CFSNode): tmp_file = save_file + ".temp" - with open(tmp_file, "w+") as f: - os.fchmod(f.fileno(), stat.S_IRUSR | stat.S_IWUSR) + mode = stat.S_IRUSR | stat.S_IWUSR # 0o600 + umask = 0o777 ^ mode # Prevents always downgrading umask to 0 + + # For security, remove file with potentially elevated mode + try: + os.remove(tmp_file) + except OSError: + pass + + umask_original = os.umask(umask) + # Even though the old file is first deleted, a race condition is still + # possible. Including os.O_EXCL with os.O_CREAT in the flags will + # prevent the file from being created if it exists due to a race + try: + fdesc = os.open(tmp_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, mode) + finally: + os.umask(umask_original) + + with os.fdopen(fdesc, 'w') as f: f.write(json.dumps(saveconf, sort_keys=True, indent=2)) f.write("\n") f.flush() os.fsync(f.fileno()) f.close() - shutil.copyfile(tmp_file, save_file) + # copy along with permissions + shutil.copy(tmp_file, save_file) os.remove(tmp_file) def restore_from_file(self, restore_file=None, clear_existing=True, @@ -469,7 +495,7 @@ class RTSRoot(CFSNode): abort_on_error=False): ''' Restore the configuration from a file in json format. - Restore file defaults to '/etc/targets/saveconfig.json'. + Restore file defaults to '/etc/target/saveconfig.json'. Returns a list of non-fatal errors. If abort_on_error is set, it will raise the exception instead of continuing. '''
  9. Download patch debian/patches/CVE-2020-14019.patch

    --- 2.1.71-2/debian/patches/CVE-2020-14019.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/patches/CVE-2020-14019.patch 2020-08-18 23:12:02.000000000 +0000 @@ -0,0 +1,73 @@ +From 75e73778dce1cb7a2816a936240ef75adfbd6ed9 Mon Sep 17 00:00:00 2001 +From: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> +Date: Thu, 16 Jul 2020 17:21:28 +0530 +Subject: [PATCH] rtslib: safely call shutil.copy() + +Previously we had to replace shutil.copyfile() with shutil.copy(), +because we want to copy the file permissions to the destination file +along with the data. + +It appears that shutil.copy() is opening the destination file with +wide access (0666) first, and then it starts copying the data and +at the end it is copying the permissions from source file to destination. + +If we closely notice there appears a window between destination file +is opened vs permissions are set on the destination file, which could +allow a user to get the contents of the file when opening it at the +right time. + +The behavior is a bit unsteady here, it is noticed that, when +saveconfig.json file exists, then on shutil.copy(), destination file is +opened and a mask 0600 is applied on the file, in case shutil.copy() had +to open a new destination saveconfig.json file, then mask 0644 is applied. + +Thanks and Credits to 'Stefan Cornelius <scorneli@redhat.com>' for +reporting this, here is the strace he shared from RHEL-7/python-2.7.5 +env: + +Case 1: When /etc/target/saveconfig.json doesn't exist: + +open("/etc/target/saveconfig.json.temp", O_RDONLY) = 3 +open("/etc/target/saveconfig.json", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 +fstat(3, {st_mode=S_IFREG|0600, st_size=71, ...}) = 0 +fstat(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 +[...] +chmod("/etc/target/saveconfig.json", 0600) = 0}")")}") + +Case 2: When /etc/target/saveconfig.json already exist: + +open("/etc/target/saveconfig.json.temp", O_RDONLY) = 3 +open("/etc/target/saveconfig.json", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4 +fstat(3, {st_mode=S_IFREG|0600, st_size=71, ...}) = 0 +fstat(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0 +[...] +chmod("/etc/target/saveconfig.json", 0600) = 0}")")}") + +Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> +--- + rtslib/root.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/rtslib/root.py b/rtslib/root.py +index 2c5cf43..4ecc03c 100644 +--- a/rtslib/root.py ++++ b/rtslib/root.py +@@ -476,8 +476,8 @@ def save_to_file(self, save_file=None, so_path=None): + # prevent the file from being created if it exists due to a race + try: + fdesc = os.open(tmp_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, mode) +- finally: +- os.umask(umask_original) ++ except OSError: ++ raise ExecutionError("Could not open %s" % tmp_file) + + with os.fdopen(fdesc, 'w') as f: + f.write(json.dumps(saveconf, sort_keys=True, indent=2)) +@@ -488,6 +488,7 @@ def save_to_file(self, save_file=None, so_path=None): + + # copy along with permissions + shutil.copy(tmp_file, save_file) ++ os.umask(umask_original) + os.remove(tmp_file) + + def restore_from_file(self, restore_file=None, clear_existing=True,
  10. Download patch rtslib/fabric.py

    --- 2.1.71-2/rtslib/fabric.py 2019-11-06 12:35:08.000000000 +0000 +++ 2.1.73-1ubuntu4/rtslib/fabric.py 2020-06-24 08:16:57.000000000 +0000 @@ -486,3 +486,7 @@ class FabricModule(object): def all(cls): for mod in six.itervalues(fabric_modules): yield mod() + + @classmethod + def list_registered_drivers(cls): + return os.listdir('/sys/module/target_core_mod/holders')
  11. Download patch rtslib/root.py

    --- 2.1.71-2/rtslib/root.py 2019-11-06 12:35:08.000000000 +0000 +++ 2.1.73-1ubuntu4/rtslib/root.py 2020-06-24 08:16:57.000000000 +0000 @@ -85,7 +85,7 @@ class RTSRoot(CFSNode): modprobe('target_core_mod') self._create_in_cfs_ine('any') - self._set_dbroot_if_needed() + self._set_dbroot() def _list_targets(self): self._check_self() @@ -160,13 +160,21 @@ class RTSRoot(CFSNode): def __str__(self): return "rtslib" - def _set_dbroot_if_needed(self): + def _set_dbroot(self): dbroot_path = self.path + "/dbroot" if not os.path.exists(dbroot_path): self._dbroot = self._default_dbroot return self._dbroot = fread(dbroot_path) if self._dbroot != self._preferred_dbroot: + if len(FabricModule.list_registered_drivers()) != 0: + # Writing to dbroot_path after drivers have been registered will make the kernel emit this error: + # db_root: cannot be changed: target drivers registered + from warnings import warn + warn("Cannot set dbroot to {}. Target drivers have already been registered." + .format(self._preferred_dbroot)) + return + try: fwrite(dbroot_path, self._preferred_dbroot+"\n") except: @@ -441,7 +449,7 @@ class RTSRoot(CFSNode): def save_to_file(self, save_file=None, so_path=None): ''' Write the configuration in json format to a file. - Save file defaults to '/etc/targets/saveconfig.json'. + Save file defaults to '/etc/target/saveconfig.json'. ''' if not save_file: save_file = default_save_file @@ -453,15 +461,33 @@ class RTSRoot(CFSNode): tmp_file = save_file + ".temp" - with open(tmp_file, "w+") as f: - os.fchmod(f.fileno(), stat.S_IRUSR | stat.S_IWUSR) + mode = stat.S_IRUSR | stat.S_IWUSR # 0o600 + umask = 0o777 ^ mode # Prevents always downgrading umask to 0 + + # For security, remove file with potentially elevated mode + try: + os.remove(tmp_file) + except OSError: + pass + + umask_original = os.umask(umask) + # Even though the old file is first deleted, a race condition is still + # possible. Including os.O_EXCL with os.O_CREAT in the flags will + # prevent the file from being created if it exists due to a race + try: + fdesc = os.open(tmp_file, os.O_WRONLY | os.O_CREAT | os.O_EXCL, mode) + finally: + os.umask(umask_original) + + with os.fdopen(fdesc, 'w') as f: f.write(json.dumps(saveconf, sort_keys=True, indent=2)) f.write("\n") f.flush() os.fsync(f.fileno()) f.close() - shutil.copyfile(tmp_file, save_file) + # copy along with permissions + shutil.copy(tmp_file, save_file) os.remove(tmp_file) def restore_from_file(self, restore_file=None, clear_existing=True, @@ -469,7 +495,7 @@ class RTSRoot(CFSNode): abort_on_error=False): ''' Restore the configuration from a file in json format. - Restore file defaults to '/etc/targets/saveconfig.json'. + Restore file defaults to '/etc/target/saveconfig.json'. Returns a list of non-fatal errors. If abort_on_error is set, it will raise the exception instead of continuing. '''
  12. Download patch debian/patches/fix-path-of-etc-saveconfig.json.patch

    --- 2.1.71-2/debian/patches/fix-path-of-etc-saveconfig.json.patch 2020-05-08 09:39:20.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/patches/fix-path-of-etc-saveconfig.json.patch 2020-08-11 13:02:14.000000000 +0000 @@ -3,26 +3,60 @@ Description: Fix path for the /etc/targe this to /etc/rtslib-fb-target/saveconfig.json Author: Thomas Goirand <zigo@debian.org> Forwarded: no -Last-Update: 2014-01-25 +Reviewed-by: Rafael David Tinoco <rafaeldtinoco@ubuntu.com> +Last-Update: 2020-06-26 -Index: python-rtslib-fb/scripts/targetctl -=================================================================== ---- python-rtslib-fb.orig/scripts/targetctl -+++ python-rtslib-fb/scripts/targetctl -@@ -28,7 +28,7 @@ from rtslib_fb import RTSRoot - import os - import sys - --default_save_file = "/etc/target/saveconfig.json" -+default_save_file = "/etc/rtslib-fb-target/saveconfig.json" - err = sys.stderr - - def usage(): -Index: python-rtslib-fb/rtslib/root.py -=================================================================== ---- python-rtslib-fb.orig/rtslib/root.py -+++ python-rtslib-fb/rtslib/root.py -@@ -34,7 +34,7 @@ from .utils import dict_remove, set_attr +--- + doc/saveconfig.json.5 | 4 ++-- + doc/targetctl.8 | 4 ++-- + rtslib/root.py | 8 ++++---- + scripts/convert-to-json | 2 +- + scripts/targetctl | 2 +- + 5 files changed, 10 insertions(+), 10 deletions(-) + +--- a/doc/saveconfig.json.5 ++++ b/doc/saveconfig.json.5 +@@ -3,7 +3,7 @@ + .B saveconfig.json + \- Saved configuration file for rtslib-fb and LIO kernel target + .SH DESCRIPTION +-.B /etc/target/saveconfig.json ++.B /etc/rtslib-fb-target/saveconfig.json + is the default location for storing the configuration of the Linux + kernel target, also known as LIO. Since the target is in the kernel, tools like + .B targetctl +@@ -239,7 +239,7 @@ + .BR targetcli (8), + .BR targetctl (8) + .SH FILES +-.B /etc/target/saveconfig.json ++.B /etc/rtslib-fb-target/saveconfig.json + .SH AUTHOR + Man page written by Andy Grover <agrover@redhat.com>. + .SH REPORTING BUGS +--- a/doc/targetctl.8 ++++ b/doc/targetctl.8 +@@ -26,7 +26,7 @@ + is not supplied, + .B targetctl + will use the default file location, +-.BR /etc/target/saveconfig.json. ++.BR /etc/rtslib-fb-target/saveconfig.json. + .P + .B targetctl restore [config-file] + .P +@@ -50,7 +50,7 @@ + .BR targetd (8), + .BR saveconfig.json (5) + .SH FILES +-.B /etc/target/saveconfig.json ++.B /etc/rtslib-fb-target/saveconfig.json + .P + .B /sys/kernel/config/target + .SH AUTHOR +--- a/rtslib/root.py ++++ b/rtslib/root.py +@@ -34,7 +34,7 @@ from .utils import fread, fwrite from .alua import ALUATargetPortGroup @@ -31,7 +65,7 @@ Index: python-rtslib-fb/rtslib/root.py class RTSRoot(CFSNode): ''' -@@ -65,7 +65,7 @@ class RTSRoot(CFSNode): +@@ -65,7 +65,7 @@ # this should match the kernel target driver default db dir _default_dbroot = "/var/target" # this is where the target DB is to be located (instead of the default) @@ -40,21 +74,43 @@ Index: python-rtslib-fb/rtslib/root.py def __init__(self): ''' -@@ -441,7 +441,7 @@ class RTSRoot(CFSNode): +@@ -449,7 +449,7 @@ def save_to_file(self, save_file=None, so_path=None): ''' Write the configuration in json format to a file. -- Save file defaults to '/etc/targets/saveconfig.json'. -+ Save file defaults to '/etc/rtslib-fb-targets/saveconfig.json'. +- Save file defaults to '/etc/target/saveconfig.json'. ++ Save file defaults to '/etc/rtslib-fb-target/saveconfig.json'. ''' if not save_file: save_file = default_save_file -@@ -469,7 +469,7 @@ class RTSRoot(CFSNode): +@@ -495,7 +495,7 @@ abort_on_error=False): ''' Restore the configuration from a file in json format. -- Restore file defaults to '/etc/targets/saveconfig.json'. -+ Restore file defaults to '/etc/rtslib-fb-targets/saveconfig.json'. +- Restore file defaults to '/etc/target/saveconfig.json'. ++ Restore file defaults to '/etc/rtslib-fb-target/saveconfig.json'. Returns a list of non-fatal errors. If abort_on_error is set, it will raise the exception instead of continuing. ''' +--- a/scripts/convert-to-json ++++ b/scripts/convert-to-json +@@ -316,7 +316,7 @@ + elif txt[cur] == "fabric": + cur = parse_fabric(txt, cur) + +-with open("/etc/target/scsi_target.lio") as f: ++with open("/etc/rtslib-fb-target/scsi_target.lio") as f: + txt = f.read() + txt = split(txt) + cur = parse(txt, 0) +--- a/scripts/targetctl ++++ b/scripts/targetctl +@@ -28,7 +28,7 @@ + import os + import sys + +-default_save_file = "/etc/target/saveconfig.json" ++default_save_file = "/etc/rtslib-fb-target/saveconfig.json" + err = sys.stderr + + def usage():
  13. Download patch debian/patches/series

    --- 2.1.71-2/debian/patches/series 2020-05-08 09:39:20.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/patches/series 2020-09-08 17:11:00.000000000 +0000 @@ -1 +1,4 @@ fix-path-of-etc-saveconfig.json.patch +fix-interpreter-version.patch +CVE-2020-14019.patch +lp1891214-disable-xen-pvscsi.patch
  14. Download patch rtslib_fb/__init__.py

    --- 2.1.71-2/rtslib_fb/__init__.py 2019-11-06 12:35:08.000000000 +0000 +++ 2.1.73-1ubuntu4/rtslib_fb/__init__.py 2020-06-24 08:16:57.000000000 +0000 @@ -36,7 +36,7 @@ from .tcm import StorageObjectFactory from .alua import ALUATargetPortGroup -__version__ = '2.1.71' +__version__ = '2.1.73' __author__ = "Jerome Martin <jxm@risingtidesystems.com>" __url__ = 'http://github.com/open-iscsi/rtslib-fb' __description__ = 'API for Linux kernel SCSI target (aka LIO)'
  15. Download patch debian/patches/lp1891214-disable-xen-pvscsi.patch

    --- 2.1.71-2/debian/patches/lp1891214-disable-xen-pvscsi.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/patches/lp1891214-disable-xen-pvscsi.patch 2020-09-08 17:11:00.000000000 +0000 @@ -0,0 +1,18 @@ +Description: Disable xen-pvscsi due to unsupported xen_scsiback module + +Author: Rafael David Tinoco <rafaeldtinoco@ubuntu.com> +Bug-Ubuntu: https://launchpad.net/bugs/1891214 +Forwarded: not-needed +Last-Update: 2020-09-08 + +--- python-rtslib-fb-2.1.73.orig/rtslib/fabric.py ++++ python-rtslib-fb-2.1.73/rtslib/fabric.py +@@ -469,7 +469,7 @@ fabric_modules = { + "tcm_fc": FCoEFabricModule, + # "usb_gadget": USBGadgetFabricModule, # very rare, don't show + "vhost": VhostFabricModule, +- "xen-pvscsi": XenPvScsiFabricModule, ++# "xen-pvscsi": XenPvScsiFabricModule, + "ibmvscsis": IbmvscsisFabricModule, + } +
  16. Download patch debian/python3-rtslib-fb.rtslib-fb-targetctl.init

    --- 2.1.71-2/debian/python3-rtslib-fb.rtslib-fb-targetctl.init 2020-05-08 09:39:20.000000000 +0000 +++ 2.1.73-1ubuntu4/debian/python3-rtslib-fb.rtslib-fb-targetctl.init 2020-08-11 13:02:14.000000000 +0000 @@ -53,7 +53,6 @@ case "$1" in start) check_configfs_module check_configfs_mounted - mkdir -p /etc/rtslib-fb-target log_daemon_msg "Loading $DESC" "$NAME" ${DAEMON} restore if [ $? -gt 0 ] ; then
  1. python-rtslib-fb