--- Begin Message ---
Package: osc-plugins-dput
Version: 20180227.1-1
Severity: grave
Justification: renders package unusable
Tags: patch upstream
$ osc -A xxx dput xxx:xxx ~/tmp/build-area/xxx_source.changes
Traceback (most recent call last):
File "/usr/bin/osc", line 41, in <module>
r = babysitter.run(osccli)
...
File "/usr/lib/osc-plugins/dput.py", line 30, in do_dput
osc_plugins_dput.do_dput(self, subcmd, opts, proj_name, dsc_file)
File "/usr/share/osc-plugins-dput/osc_plugins_dput.py", line 161, in do_dput
package_list = osc.core.meta_get_packagelist(conf.config['apiurl'],
dput.PROJECT_NAME)
File "/usr/lib/python3/dist-packages/osc/core.py", line 3442, in
meta_get_packagelist
u = makeurl(apiurl, ['source', prj], query)
File "/usr/lib/python3/dist-packages/osc/core.py", line 3316, in makeurl
return urlunsplit((scheme, netloc, '/'.join([path] + list(l)), query, ''))
TypeError: sequence item 2: expected str instance, bytes found
and with that fixed:
$ osc -A xxx dput xxx:xxx ~/tmp/build-area/xxx_source.changes
Traceback (most recent call last):
File "/usr/bin/osc", line 41, in <module>
r = babysitter.run(osccli)
...
File "/usr/lib/osc-plugins/dput.py", line 30, in do_dput
osc_plugins_dput.do_dput(self, subcmd, opts, proj_name, dsc_file)
File "/usr/share/osc-plugins-dput/osc_plugins_dput.py", line 170, in do_dput
dput._create_package()
File "/usr/share/osc-plugins-dput/osc_plugins_dput.py", line 84, in
_create_package
osc.core.createPackageDir(self.PACKAGE_NAME)
File "/usr/lib/python3/dist-packages/osc/core.py", line 7078, in
createPackageDir
if is_project_dir(prj_dir):
File "/usr/lib/python3/dist-packages/osc/core.py", line 3088, in
is_project_dir
return os.path.exists(os.path.join(d, store, '_project')) and not \
File "/usr/lib/python3.7/posixpath.py", line 94, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.7/genericpath.py", line 155, in _check_arg_types
raise TypeError("Can't mix strings and bytes in path components") from None
TypeError: Can't mix strings and bytes in path components
I attach a possible patch, although this seems to have been fixed
differently upstream.
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500,
'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1,
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.4.0-1-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8),
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages osc-plugins-dput depends on:
ii osc 0.167.1-1
ii python3-debian 0.1.36
osc-plugins-dput recommends no packages.
osc-plugins-dput suggests no packages.
-- no debconf information
-- debsums errors found:
debsums: changed file /usr/share/osc-plugins-dput/osc_plugins_dput.py (from
osc-plugins-dput package)
>From 343315308c7ed9f7f3635be30766c9a8a06581f9 Mon Sep 17 00:00:00 2001
From: Simon McVittie <s...@collabora.com>
Date: Mon, 6 Jan 2020 20:02:14 +0000
Subject: [PATCH] Be compatible with Python 3 osc
---
osc_plugins_dput.py | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/osc_plugins_dput.py b/osc_plugins_dput.py
index f54b4f0..dbdb066 100644
--- a/osc_plugins_dput.py
+++ b/osc_plugins_dput.py
@@ -6,6 +6,7 @@ import os
import osc.cmdln as cmdln
import osc.conf as conf
import osc.core
+import sys
try:
from debian.deb822 import Changes, Dsc
@@ -126,12 +127,21 @@ class DPut(object):
return fileList
+
+if sys.version_info[0] >= 3:
+ def str_cast(s):
+ return s
+else:
+ def str_cast(s):
+ return s.encode('utf-8')
+
+
@cmdln.option('--maintained-in-git', action='store_true',
help='add MAINTAINED_IN_GIT.txt')
def do_dput(self, subcmd, opts, proj_name, dsc_or_changes_file):
dput = DPut()
- dput.PROJECT_NAME = proj_name.encode("utf8")
+ dput.PROJECT_NAME = str_cast(proj_name)
dput.WORKING_DIR = tempfile.mkdtemp('_oscdput')
def cleanup(dirname, initdir):
os.chdir(initdir)
@@ -144,8 +154,8 @@ def do_dput(self, subcmd, opts, proj_name, dsc_or_changes_file):
# get debian .change object before moving current path to the
# working_dir
changes, dsc, dsc_file = _get_objects_from_file(dsc_or_changes_file)
- dput.PACKAGE_NAME = dsc.get("Source").encode('utf8') # XXX: needs to be utf8!!!
- dput.PACKAGE_VERSION = dsc.get("Version")
+ dput.PACKAGE_NAME = str_cast(dsc.get("Source"))
+ dput.PACKAGE_VERSION = str_cast(dsc.get("Version"))
# Filenames in the .dsc are relative to the directory where it appears.
# We need to make it absolute before we chdir elsewhere.
--
2.25.0.rc0
--- End Message ---