vmware-archive / salt-pack

Salt Package Builder
Apache License 2.0
55 stars 23 forks source link

Non-root building/signing on Ubuntu #615

Closed dmurphy18 closed 5 years ago

dmurphy18 commented 5 years ago

Cannot non-root build on Ubuntu 14.04 and 16.04 due to the need use proc = salt.utils.vt.Terminal

in order to use reprepro and debsign, and internally this is causing pool files to have owner root, for example: oot@ip-10-27-37-59:/srv/ubuntu/2018.3.3/pkgs/py2/ubuntu1604/amd64# l pool/main/i/ioflo/ total 388K -rw-r--r-- 1 ubuntu ubuntu 161K Dec 3 18:28 python-ioflo_1.5.0-1_all.deb drwxr-xr-x 3 ubuntu ubuntu 4.0K Dec 3 18:28 .. -rw-r--r-- 1 root root 1.4K Dec 3 18:29 ioflo_1.5.0-1.dsc -rw-r--r-- 1 root root 207K Dec 3 18:29 ioflo_1.5.0.orig.tar.gz -rw-r--r-- 1 root root 960 Dec 3 18:29 ioflo_1.5.0-1.debian.tar.xz drwxr-xr-x 2 ubuntu ubuntu 4.0K Dec 3 18:29 .

This is not an issue with Ubuntu 18.04 (or on Debian 8 & 9) where the following command cmd.retcode can also be used:

935 if grains['os'] in ['Debian']: 936 log.debug("DGM make_repo debian gpg2 reprepro cmd \'{0}\'".format(cmd)) 937 retrc |= salt['cmd.retcode'](cmd, runas=runas, cwd=repodir, use_vt=True, env=env) 938 else: 939 log.debug("DGM make_repo ubuntu gpg2 reprepro cmd \'{0}\'".format(cmd)) 940 try: 941 proc = salt.utils.vt.Terminal(

Quickest fix is to just continue to use root to build on Ubuntu, noting that it was only Debian 9 (at this time) which needed non-root to use gpg-agent for signing, etc.

dmurphy18 commented 5 years ago

Blocked since don't have a solution at this time, and in April Ubuntnu 14.04 EOL's at which point can consider a 16.04 only fix.