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()
openSUSE Build Service is sponsored by