File osc.patch of Package osc
Index: osc-1.17.0/osc/build.py
===================================================================
--- osc-1.17.0.orig/osc/build.py
+++ osc-1.17.0/osc/build.py
@@ -37,7 +37,7 @@ change_personality = {
'i686': 'linux32',
'i586': 'linux32',
'i386': 'linux32',
- 'ppc': 'powerpc32',
+ 'ppc': 'linux32',
's390': 's390',
'sparc': 'linux32',
'sparcv8': 'linux32',
@@ -979,10 +979,12 @@ def main(apiurl, store, opts, argv):
cache_dir = config['packagecachedir'] % {'apihost': apihost}
extra_pkgs = []
- if not opts.extra_pkgs:
+ if not opts.extra_pkgs or not '' in opts.extra_pkgs:
extra_pkgs = config.get('extra-pkgs', [])
- elif opts.extra_pkgs != ['']:
+ if opts.extra_pkgs:
extra_pkgs = opts.extra_pkgs
+ while '' in extra_pkgs:
+ extra_pkgs.remove('')
if opts.extra_pkgs_from:
for filename in opts.extra_pkgs_from:
Index: osc-1.17.0/osc/commandline.py
===================================================================
--- osc-1.17.0.orig/osc/commandline.py
+++ osc-1.17.0/osc/commandline.py
@@ -970,7 +970,7 @@ class Osc(cmdln.Cmdln):
print(f'Initializing {Path.cwd()} (Project: {project})')
else:
Package.init_package(apiurl, project, package, Path.cwd())
- store_write_string(Path.cwd(), '_files', show_files_meta(apiurl, project, package) + b'\n')
+ store_write_string(Path.cwd(), '_files', show_files_meta(apiurl, project, package))
print(f'Initializing {Path.cwd()} (Project: {project}, Package: {package})')
@cmdln.alias('ls')
@@ -10208,7 +10208,7 @@ Please submit there instead, or use --no
os.mkdir(destdir)
Package.init_package(apiurl, target_prj, target_package, destdir)
- store_write_string(destdir, '_files', b''.join(meta) + b'\n')
+ store_write_string(destdir, '_files', b''.join(meta))
store_write_string(destdir, '_linkrepair', '')
pac = Package(destdir)
@@ -10408,7 +10408,7 @@ Please submit there instead, or use --no
p.write_addlist()
p.write_conflictlist()
# store new linkrev
- store_write_string(p.absdir, '_pulled', linkinfo_new.get('srcmd5') + '\n')
+ store_write_string(p.absdir, '_pulled', linkinfo_new.get('srcmd5'))
p.unmark_frozen()
print()
if p.in_conflict:
Index: osc-1.17.0/osc/commands/fork.py
===================================================================
--- osc-1.17.0.orig/osc/commands/fork.py
+++ osc-1.17.0/osc/commands/fork.py
@@ -72,6 +72,9 @@ class ForkCommand(osc.commandline.OscCom
is_package = package is not None
use_devel_project = False
+ if project == '.':
+ project = osc.commandline.Osc._process_project_name(self, project)
+
if not is_package and args.target_package:
self.parser.error("The '--target-package' option requires the 'package' argument to be set")
@@ -189,7 +192,7 @@ class ForkCommand(osc.commandline.OscCom
project,
package if is_package else "_project",
scmsync=fork_scmsync,
- target_project=args.target_project,
+ target_project=osc.commandline.Osc._process_project_name(self, args.target_project) if args.target_project else None,
target_package=args.target_package if is_package else None,
)
# XXX: the current OBS API is not ideal; we don't get any info whether the new package exists already; 404 would be probably nicer
Index: osc-1.17.0/osc/conf.py
===================================================================
--- osc-1.17.0.orig/osc/conf.py
+++ osc-1.17.0/osc/conf.py
@@ -1721,13 +1721,13 @@ def config_set_option(section, opt, val=
creds_mgr_new = creds_mgr_descr.create(cp)
else:
creds_mgr_new = creds_mgr
- creds_mgr_new.set_password(section, user, val)
+ creds_mgr_new.set_password(section, user, str(val))
write_config(config['conffile'], cp)
opt = credentials.AbstractCredentialsManager.config_entry
old_pw = None
finally:
if old_pw is not None:
- creds_mgr.set_password(section, user, old_pw)
+ creds_mgr.set_password(section, user, str(old_pw))
# not nice, but needed if the Credentials Manager will change
# something in cp
write_config(config['conffile'], cp)
Index: osc-1.17.0/osc/core.py
===================================================================
--- osc-1.17.0.orig/osc/core.py
+++ osc-1.17.0/osc/core.py
@@ -31,6 +31,7 @@ from pathlib import Path
from typing import Optional, Dict, Union, List, Iterable
from urllib.parse import parse_qs, urlsplit, urlunsplit, urlparse, quote, urlencode, unquote
from urllib.error import HTTPError
+from urllib3.exceptions import ProtocolError
from xml.etree import ElementTree as ET
try:
@@ -4631,17 +4632,20 @@ def print_buildlog(
for data in streamfile(u):
offset += len(data)
print_data(data, strip_time)
- except IncompleteRead as e:
- if retry_count >= 3:
+ retry_count = 0
+ except ProtocolError as e:
+ if retry_count >= 3 or not isinstance(e.args[1], IncompleteRead):
raise e
retry_count += 1
- data = e.partial
+ data = e.args[1].partial
if len(data):
offset += len(data)
print_data(data, strip_time)
+ retry_count = 0
continue
if start_offset == offset:
break
+ retry_count = 0
def get_dependson(apiurl: str, project: str, repository: str, arch: str, packages=None, reverse=None):
@@ -5743,7 +5747,7 @@ def get_commit_msg(wc_dir, pacs):
if footer:
msg = edit_message(footer='\n'.join(footer), template=template)
if msg:
- store_write_string(wc_dir, '_commit_msg', msg + '\n')
+ store_write_string(wc_dir, '_commit_msg', msg)
else:
store_unlink_file(wc_dir, '_commit_msg')
return msg
Index: osc-1.17.0/osc/obs_scm/package.py
===================================================================
--- osc-1.17.0.orig/osc/obs_scm/package.py
+++ osc-1.17.0/osc/obs_scm/package.py
@@ -355,7 +355,7 @@ class Package:
except:
pass
else:
- store_write_string(self.absdir, '_size_limit', str(self.size_limit) + '\n')
+ store_write_string(self.absdir, '_size_limit', str(self.size_limit))
def write_addlist(self):
self.__write_storelist('_to_be_added', self.to_be_added)
@@ -622,7 +622,7 @@ class Package:
for i in sfilelist.findall('entry'):
if i.get('name') in self.skipped:
i.set('skipped', 'true')
- store_write_string(self.absdir, '_files', ET.tostring(sfilelist, encoding=ET_ENCODING) + '\n')
+ store_write_string(self.absdir, '_files', ET.tostring(sfilelist, encoding=ET_ENCODING))
for filename in todo_delete:
self.to_be_deleted.remove(filename)
self.store.sources_delete_file(filename)
@@ -748,7 +748,7 @@ class Package:
It is replaced with the version pulled from upstream.
"""
meta = self.get_files_meta(revision=revision)
- store_write_string(self.absdir, '_files', meta + '\n')
+ store_write_string(self.absdir, '_files', meta)
def get_files_meta(self, revision='latest', skip_service=True):
from ..core import ET_ENCODING
@@ -946,7 +946,7 @@ class Package:
if meta != "":
# is empty for _project for example
meta = b''.join(meta)
- store_write_string(self.absdir, '_meta', meta + b'\n')
+ store_write_string(self.absdir, '_meta', meta)
def findfilebyname(self, n):
for i in self.filelist:
@@ -1449,7 +1449,7 @@ rev: %s
fm = self.get_files_meta(revision=rev)
root = xml_fromstring(fm)
rfiles = self.__get_files(root)
- store_write_string(self.absdir, '_files', fm + '\n', subdir='_in_update')
+ store_write_string(self.absdir, '_files', fm, subdir='_in_update')
kept, added, deleted, services = self.__get_rev_changes(rfiles)
if not service_files:
services = []
@@ -1533,7 +1533,7 @@ rev: %s
targetfilename=os.path.join(self.absdir, f.name), revision=rev,
progress_obj=self.progress_obj, mtime=f.mtime, meta=self.meta)
print(statfrmt('A', os.path.join(pathn, f.name)))
- store_write_string(self.absdir, '_files', fm + '\n')
+ store_write_string(self.absdir, '_files', fm)
if not self.meta:
self.update_local_pacmeta()
self.update_datastructs()