1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-09-21 04:10:37 +02:00

🧹 remove sudo code from build_local_prepare

This commit is contained in:
Michael Pöhn 2024-06-06 11:50:16 +02:00
parent 33687cf41b
commit 1bde8d27b0
No known key found for this signature in database
GPG Key ID: 725F386C05529A5A

View File

@ -19,58 +19,13 @@
import os import os
import pathlib import pathlib
import logging # import logging
import argparse import argparse
from fdroidserver import _ from fdroidserver import _
import fdroidserver.common import fdroidserver.common
def sudo_run(app, build):
# before doing anything, run the sudo commands to setup the VM
if build.sudo:
logging.info("Running 'sudo' commands in %s" % os.getcwd())
p = fdroidserver.common.FDroidPopen(
[
'sudo',
'DEBIAN_FRONTEND=noninteractive',
'bash',
'-e',
'-u',
'-o',
'pipefail',
'-x',
'-c',
'; '.join(build.sudo),
]
)
if p.returncode != 0:
raise BuildException(
"Error running sudo command for %s:%s" % (app.id, build.versionName),
p.output,
)
def sudo_lock_root(app, build):
p = fdroidserver.common.FDroidPopen(['sudo', 'passwd', '--lock', 'root'])
if p.returncode != 0:
raise BuildException(
"Error locking root account for %s:%s" % (app.id, build.versionName),
p.output,
)
def sudo_uninstall(app, build):
p = fdroidserver.common.FDroidPopen(
['sudo', 'SUDO_FORCE_REMOVE=yes', 'dpkg', '--purge', 'sudo']
)
if p.returncode != 0:
raise BuildException(
"Error removing sudo for %s:%s" % (app.id, build.versionName), p.output
)
def log_tools_version(app, build, log_dir): def log_tools_version(app, build, log_dir):
log_path = os.path.join( log_path = os.path.join(
log_dir, fdroidserver.common.get_toolsversion_logname(app, build) log_dir, fdroidserver.common.get_toolsversion_logname(app, build)
@ -86,24 +41,6 @@ def main():
"for one specific build" "for one specific build"
), ),
) )
parser.add_argument(
"--sudo-run",
action="store_true",
default=False,
help=_("run commands listed in sudo-metadata"),
)
parser.add_argument(
"--sudo-uninstall",
action="store_true",
default=False,
help=_("uninstall sudo executing sudo-metadata"),
)
parser.add_argument(
"--sudo-lock-root",
action="store_true",
default=False,
help=_("lock root user account"),
)
parser.add_argument( parser.add_argument(
"APP_VERSION", "APP_VERSION",
help=_("app id and version code tuple 'APPID:VERCODE'"), help=_("app id and version code tuple 'APPID:VERCODE'"),
@ -114,6 +51,8 @@ def main():
options = fdroidserver.common.parse_args(parser) options = fdroidserver.common.parse_args(parser)
config = fdroidserver.common.get_config() config = fdroidserver.common.get_config()
config # silence pyflakes
package_name, version_code = fdroidserver.common.split_pkg_arg(options.APP_VERSION) package_name, version_code = fdroidserver.common.split_pkg_arg(options.APP_VERSION)
app, build = fdroidserver.metadata.read_build_metadata(package_name, version_code) app, build = fdroidserver.metadata.read_build_metadata(package_name, version_code)
@ -126,17 +65,8 @@ def main():
for d in (srclib_dir, extlib_dir, log_dir, output_dir): for d in (srclib_dir, extlib_dir, log_dir, output_dir):
d.mkdir(exist_ok=True, parents=True) d.mkdir(exist_ok=True, parents=True)
# run sudo stuff
fdroidserver.common.set_FDroidPopen_env(build)
if options.sudo_run:
sudo_run(app, build)
if options.sudo_lock_root:
sudo_lock_root(app, build)
if options.sudo_uninstall:
sudo_uninstall(app, build)
# TODO: in the past this was only logged when running as 'fdroid build # TODO: in the past this was only logged when running as 'fdroid build
# --onserver' is this this output still valuable or can we remove it? # --onserver', is this output still valuable or can we remove it?
log_tools_version(app, build, log_dir) log_tools_version(app, build, log_dir)
# do git/vcs checkout # do git/vcs checkout