1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-09 22:36:14 +01:00
Allow a local build as the current user/support an empty su-wrapper
config option.
This commit is contained in:
Marcus Huewe 2021-03-22 15:22:13 +01:00
commit 4e9dde71b8
3 changed files with 17 additions and 12 deletions

1
NEWS
View File

@ -4,6 +4,7 @@
- add build --stage flag. Useful for example for fixing file lists and just
running the install section to see the result of it (use --stage=i=).
Check the help for more details.
- allow to run build script as non-root, by setting su-wrapper empty
0.172.0
- support --lastsucceeded/--last-succeeded in "osc buildlog", "osc

View File

@ -552,12 +552,13 @@ def run_build(opts, *args):
cmd += args
sucmd = os.environ.get('OSC_SU_WRAPPER', config['su-wrapper']).split()
if sucmd[0] == 'su':
if sucmd[-1] == '-c':
sucmd.pop()
cmd = sucmd + ['-s', cmd[0], 'root', '--'] + cmd[1:]
else:
cmd = sucmd + cmd
if sucmd:
if sucmd[0] == 'su':
if sucmd[-1] == '-c':
sucmd.pop()
cmd = sucmd + ['-s', cmd[0], 'root', '--'] + cmd[1:]
else:
cmd = sucmd + cmd
if not opts.userootforbuild:
cmd.append('--norootforbuild')
return run_external(cmd[0], *cmd[1:])
@ -1341,12 +1342,13 @@ def main(apiurl, opts, argv):
if need_root:
sucmd = config['su-wrapper'].split()
if sucmd[0] == 'su':
if sucmd[-1] == '-c':
sucmd.pop()
cmd = sucmd + ['-s', cmd[0], 'root', '--' ] + cmd[1:]
else:
cmd = sucmd + cmd
if sucmd:
if sucmd[0] == 'su':
if sucmd[-1] == '-c':
sucmd.pop()
cmd = sucmd + ['-s', cmd[0], 'root', '--' ] + cmd[1:]
else:
cmd = sucmd + cmd
# change personality, if needed
if hostarch != bi.buildarch and bi.buildarch in change_personality:

View File

@ -219,6 +219,8 @@ apiurl = %(apiurl)s
# Wrapper to call build as root (sudo, su -, ...)
#su-wrapper = %(su-wrapper)s
# set it empty to run build script as user (works only with KVM atm):
#su-wrapper =
# rootdir to setup the chroot environment
# can contain %%(repo)s, %%(arch)s, %%(project)s, %%(package)s and %%(apihost)s (apihost is the hostname