mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-09 04:04:15 +02:00
fix: not accepting blank root passwords
This commit is contained in:
@@ -70,7 +70,7 @@ RE_PKG_ENDS_WITH_BIN = re.compile(r'.+[\-_]bin$')
|
||||
class TransactionContext:
|
||||
|
||||
def __init__(self, aur_supported: bool, name: str = None, base: str = None, maintainer: str = None, watcher: ProcessWatcher = None,
|
||||
handler: ProcessHandler = None, dependency: bool = None, skip_opt_deps: bool = False, root_password: str = None,
|
||||
handler: ProcessHandler = None, dependency: bool = None, skip_opt_deps: bool = False, root_password: Optional[str] = None,
|
||||
build_dir: str = None, project_dir: str = None, change_progress: bool = False, arch_config: dict = None,
|
||||
install_files: Set[str] = None, repository: str = None, pkg: ArchPackage = None,
|
||||
remote_repo_map: Dict[str, str] = None, provided_map: Dict[str, Set[str]] = None,
|
||||
@@ -115,7 +115,7 @@ class TransactionContext:
|
||||
self.update_aur_index = update_aur_index
|
||||
|
||||
@classmethod
|
||||
def gen_context_from(cls, pkg: ArchPackage, arch_config: dict, root_password: str, handler: ProcessHandler, aur_supported: Optional[bool] = None) -> "TransactionContext":
|
||||
def gen_context_from(cls, pkg: ArchPackage, arch_config: dict, root_password: Optional[str], handler: ProcessHandler, aur_supported: Optional[bool] = None) -> "TransactionContext":
|
||||
return cls(name=pkg.name, base=pkg.get_base_name(), maintainer=pkg.maintainer, repository=pkg.repository,
|
||||
arch_config=arch_config, watcher=handler.watcher, handler=handler, skip_opt_deps=True,
|
||||
change_progress=True, root_password=root_password, dependency=False,
|
||||
@@ -216,7 +216,7 @@ class ArchManager(SoftwareManager):
|
||||
self.disk_cache_updater = disk_cache_updater
|
||||
self.pkgbuilder_user: Optional[str] = f'{__app_name__}-aur' if context.root_user else None
|
||||
|
||||
def refresh_mirrors(self, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def refresh_mirrors(self, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
handler = ProcessHandler(watcher)
|
||||
|
||||
if self._is_database_locked(handler, root_password):
|
||||
@@ -285,7 +285,7 @@ class ArchManager(SoftwareManager):
|
||||
watcher.change_substatus(self.i18n['arch.sync_databases.substatus'])
|
||||
return self.sync_databases(root_password=root_password, watcher=watcher)
|
||||
|
||||
def sync_databases(self, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def sync_databases(self, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
handler = ProcessHandler(watcher)
|
||||
|
||||
if self._is_database_locked(handler, root_password):
|
||||
@@ -797,7 +797,7 @@ class ArchManager(SoftwareManager):
|
||||
|
||||
return self._install(context)
|
||||
|
||||
def downgrade(self, pkg: ArchPackage, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def downgrade(self, pkg: ArchPackage, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
if not self.check_action_allowed(pkg, watcher):
|
||||
return False
|
||||
|
||||
@@ -831,7 +831,7 @@ class ArchManager(SoftwareManager):
|
||||
if os.path.exists(pkg.get_disk_cache_path()):
|
||||
shutil.rmtree(pkg.get_disk_cache_path())
|
||||
|
||||
def _is_database_locked(self, handler: ProcessHandler, root_password: str) -> bool:
|
||||
def _is_database_locked(self, handler: ProcessHandler, root_password: Optional[str]) -> bool:
|
||||
if os.path.exists('/var/lib/pacman/db.lck'):
|
||||
handler.watcher.print('pacman database is locked')
|
||||
msg = '<p>{}</p><p>{}</p><br/>'.format(self.i18n['arch.action.db_locked.body.l1'],
|
||||
@@ -928,7 +928,7 @@ class ArchManager(SoftwareManager):
|
||||
|
||||
return related
|
||||
|
||||
def _upgrade_repo_pkgs(self, to_upgrade: List[str], to_remove: Optional[Set[str]], handler: ProcessHandler, root_password: str,
|
||||
def _upgrade_repo_pkgs(self, to_upgrade: List[str], to_remove: Optional[Set[str]], handler: ProcessHandler, root_password: Optional[str],
|
||||
multithread_download: bool, pkgs_data: Dict[str, dict], overwrite_files: bool = False,
|
||||
status_handler: TransactionStatusHandler = None, sizes: Dict[str, int] = None, download: bool = True,
|
||||
check_syncfirst: bool = True, skip_dependency_checks: bool = False) -> bool:
|
||||
@@ -1069,7 +1069,7 @@ class ArchManager(SoftwareManager):
|
||||
traceback.print_exc()
|
||||
return False
|
||||
|
||||
def _remove_transaction_packages(self, to_remove: Set[str], handler: ProcessHandler, root_password: str) -> bool:
|
||||
def _remove_transaction_packages(self, to_remove: Set[str], handler: ProcessHandler, root_password: Optional[str]) -> bool:
|
||||
output_handler = TransactionStatusHandler(watcher=handler.watcher,
|
||||
i18n=self.i18n,
|
||||
names=set(),
|
||||
@@ -1101,7 +1101,7 @@ class ArchManager(SoftwareManager):
|
||||
body=self.i18n['arch.upgrade.mthreaddownload.fail'],
|
||||
type_=MessageType.ERROR)
|
||||
|
||||
def upgrade(self, requirements: UpgradeRequirements, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def upgrade(self, requirements: UpgradeRequirements, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
self.aur_client.clean_caches()
|
||||
watcher.change_status("{}...".format(self.i18n['manage_window.status.upgrading']))
|
||||
|
||||
@@ -1193,7 +1193,7 @@ class ArchManager(SoftwareManager):
|
||||
watcher.change_substatus('')
|
||||
return True
|
||||
|
||||
def _uninstall_pkgs(self, pkgs: Iterable[str], root_password: str, handler: ProcessHandler, ignore_dependencies: bool = False) -> bool:
|
||||
def _uninstall_pkgs(self, pkgs: Iterable[str], root_password: Optional[str], handler: ProcessHandler, ignore_dependencies: bool = False) -> bool:
|
||||
status_handler = TransactionStatusHandler(watcher=handler.watcher,
|
||||
i18n=self.i18n,
|
||||
names={*pkgs},
|
||||
@@ -1419,7 +1419,7 @@ class ArchManager(SoftwareManager):
|
||||
if not exp_provided:
|
||||
del context.provided_map[exp]
|
||||
|
||||
def uninstall(self, pkg: ArchPackage, root_password: str, watcher: ProcessWatcher, disk_loader: DiskCacheLoader) -> TransactionResult:
|
||||
def uninstall(self, pkg: ArchPackage, root_password: Optional[str], watcher: ProcessWatcher, disk_loader: DiskCacheLoader) -> TransactionResult:
|
||||
self.aur_client.clean_caches()
|
||||
|
||||
handler = ProcessHandler(watcher)
|
||||
@@ -2282,7 +2282,7 @@ class ArchManager(SoftwareManager):
|
||||
and self.context.file_downloader.is_multithreaded() \
|
||||
and pacman.is_mirrors_available()
|
||||
|
||||
def _download_packages(self, pkgnames: List[str], handler: ProcessHandler, root_password: str, sizes: Dict[str, int] = None, multithreaded: bool = True) -> int:
|
||||
def _download_packages(self, pkgnames: List[str], handler: ProcessHandler, root_password: Optional[str], sizes: Dict[str, int] = None, multithreaded: bool = True) -> int:
|
||||
if multithreaded:
|
||||
download_service = MultithreadedDownloadService(file_downloader=self.context.file_downloader,
|
||||
http_client=self.http_client,
|
||||
@@ -2493,7 +2493,7 @@ class ArchManager(SoftwareManager):
|
||||
if context.change_progress:
|
||||
context.watcher.change_progress(val)
|
||||
|
||||
def _import_pgp_keys(self, pkgname: str, root_password: str, handler: ProcessHandler):
|
||||
def _import_pgp_keys(self, pkgname: str, root_password: Optional[str], handler: ProcessHandler):
|
||||
srcinfo = self.aur_client.get_src_info(pkgname)
|
||||
|
||||
if srcinfo.get('validpgpkeys'):
|
||||
@@ -2560,7 +2560,7 @@ class ArchManager(SoftwareManager):
|
||||
|
||||
return False
|
||||
|
||||
def _sync_databases(self, arch_config: dict, aur_supported: bool, root_password: str, handler: ProcessHandler, change_substatus: bool = True):
|
||||
def _sync_databases(self, arch_config: dict, aur_supported: bool, root_password: Optional[str], handler: ProcessHandler, change_substatus: bool = True):
|
||||
if bool(arch_config['sync_databases']) and database.should_sync(arch_config, aur_supported, handler, self.logger):
|
||||
if change_substatus:
|
||||
handler.watcher.change_substatus(self.i18n['arch.sync_databases.substatus'])
|
||||
@@ -2577,7 +2577,7 @@ class ArchManager(SoftwareManager):
|
||||
watcher.change_substatus(self.i18n['arch.makepkg.optimizing'])
|
||||
ArchCompilationOptimizer(i18n=self.i18n, logger=self.context.logger, taskman=TaskManager()).optimize()
|
||||
|
||||
def install(self, pkg: ArchPackage, root_password: str, disk_loader: Optional[DiskCacheLoader], watcher: ProcessWatcher, context: TransactionContext = None) -> TransactionResult:
|
||||
def install(self, pkg: ArchPackage, root_password: Optional[str], disk_loader: Optional[DiskCacheLoader], watcher: ProcessWatcher, context: TransactionContext = None) -> TransactionResult:
|
||||
if not self.check_action_allowed(pkg, watcher):
|
||||
return TransactionResult.fail()
|
||||
|
||||
@@ -2701,7 +2701,7 @@ class ArchManager(SoftwareManager):
|
||||
taskman.update_progress('arch_aur_cats', 100, None)
|
||||
taskman.finish_task('arch_aur_cats')
|
||||
|
||||
def prepare(self, task_manager: TaskManager, root_password: str, internet_available: bool):
|
||||
def prepare(self, task_manager: TaskManager, root_password: Optional[str], internet_available: bool):
|
||||
create_config = CreateConfigFile(taskman=task_manager, configman=self.configman, i18n=self.i18n,
|
||||
task_icon_path=get_icon_path(), logger=self.logger)
|
||||
create_config.start()
|
||||
@@ -3012,7 +3012,7 @@ class ArchManager(SoftwareManager):
|
||||
except:
|
||||
return False, [traceback.format_exc()]
|
||||
|
||||
def get_upgrade_requirements(self, pkgs: List[ArchPackage], root_password: str, watcher: ProcessWatcher) -> UpgradeRequirements:
|
||||
def get_upgrade_requirements(self, pkgs: List[ArchPackage], root_password: Optional[str], watcher: ProcessWatcher) -> UpgradeRequirements:
|
||||
self.aur_client.clean_caches()
|
||||
arch_config = self.configman.get_config()
|
||||
|
||||
@@ -3123,7 +3123,7 @@ class ArchManager(SoftwareManager):
|
||||
elif new_size is not None:
|
||||
p.size = new_size - p.size
|
||||
|
||||
def upgrade_system(self, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def upgrade_system(self, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
# repo_map = pacman.map_repositories()
|
||||
net_available = self.context.internet_checker.is_available()
|
||||
installed = self.read_installed(limit=-1, only_apps=False, pkg_types=None, internet_available=net_available, disk_loader=None).installed
|
||||
@@ -3198,7 +3198,7 @@ class ArchManager(SoftwareManager):
|
||||
watcher.request_reboot(msg)
|
||||
return True
|
||||
|
||||
def clean_cache(self, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def clean_cache(self, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
|
||||
cache_dir = pacman.get_cache_dir()
|
||||
|
||||
@@ -3331,15 +3331,15 @@ class ArchManager(SoftwareManager):
|
||||
|
||||
return set()
|
||||
|
||||
def enable_pkgbuild_edition(self, pkg: ArchPackage, root_password: str, watcher: ProcessWatcher):
|
||||
def enable_pkgbuild_edition(self, pkg: ArchPackage, root_password: Optional[str], watcher: ProcessWatcher):
|
||||
if self._add_as_editable_pkgbuild(pkg.name):
|
||||
pkg.pkgbuild_editable = True
|
||||
|
||||
def disable_pkgbuild_edition(self, pkg: ArchPackage, root_password: str, watcher: ProcessWatcher):
|
||||
def disable_pkgbuild_edition(self, pkg: ArchPackage, root_password: Optional[str], watcher: ProcessWatcher):
|
||||
if self._remove_from_editable_pkgbuilds(pkg.name):
|
||||
pkg.pkgbuild_editable = False
|
||||
|
||||
def setup_snapd(self, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def setup_snapd(self, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
# checking services
|
||||
missing_items = []
|
||||
for serv, active in system.check_enabled_services('snapd.service', 'snapd.socket').items():
|
||||
@@ -3521,7 +3521,7 @@ class ArchManager(SoftwareManager):
|
||||
|
||||
return res
|
||||
|
||||
def reinstall(self, pkg: ArchPackage, root_password: str, watcher: ProcessWatcher) -> bool: # only available for AUR packages
|
||||
def reinstall(self, pkg: ArchPackage, root_password: Optional[str], watcher: ProcessWatcher) -> bool: # only available for AUR packages
|
||||
if not self.context.internet_checker.is_available():
|
||||
raise NoInternetException()
|
||||
|
||||
@@ -3550,7 +3550,7 @@ class ArchManager(SoftwareManager):
|
||||
context=context,
|
||||
disk_loader=self.context.disk_loader_factory.new()).success
|
||||
|
||||
def set_rebuild_check(self, pkg: ArchPackage, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def set_rebuild_check(self, pkg: ArchPackage, root_password: Optional[str], watcher: ProcessWatcher) -> bool:
|
||||
if pkg.repository != 'aur':
|
||||
return False
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ def current_governors() -> Dict[str, Set[int]]:
|
||||
return governors
|
||||
|
||||
|
||||
def set_governor(governor: str, root_password: str, cpu_idxs: Optional[Set[int]] = None):
|
||||
def set_governor(governor: str, root_password: Optional[str], cpu_idxs: Optional[Set[int]] = None):
|
||||
new_gov_file = f'{TEMP_DIR}/bauh_scaling_governor'
|
||||
with open(new_gov_file, 'w+') as f:
|
||||
f.write(governor)
|
||||
@@ -39,7 +39,7 @@ def set_governor(governor: str, root_password: str, cpu_idxs: Optional[Set[int]]
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
def _change_governor(cpu_idx: int, new_gov_file_path: str, root_password: str):
|
||||
def _change_governor(cpu_idx: int, new_gov_file_path: str, root_password: Optional[str]):
|
||||
try:
|
||||
gov_file = '/sys/devices/system/cpu/cpu{}/cpufreq/scaling_governor'.format(cpu_idx)
|
||||
replace = new_root_subprocess(['cp', new_gov_file_path, gov_file], root_password=root_password)
|
||||
@@ -48,7 +48,7 @@ def _change_governor(cpu_idx: int, new_gov_file_path: str, root_password: str):
|
||||
traceback.print_exc()
|
||||
|
||||
|
||||
def set_all_cpus_to(governor: str, root_password: str, logger: Optional[Logger] = None) -> Tuple[bool, Optional[Dict[str, Set[int]]]]:
|
||||
def set_all_cpus_to(governor: str, root_password: Optional[str], logger: Optional[Logger] = None) -> Tuple[bool, Optional[Dict[str, Set[int]]]]:
|
||||
"""
|
||||
"""
|
||||
cpus_changed, cpu_governors = False, current_governors()
|
||||
@@ -69,7 +69,7 @@ def set_all_cpus_to(governor: str, root_password: str, logger: Optional[Logger]
|
||||
return cpus_changed, cpu_governors
|
||||
|
||||
|
||||
def set_cpus(governors: Dict[str, Set[int]], root_password: str, ignore_governors: Optional[Set[str]] = None, logger: Optional[Logger] = None):
|
||||
def set_cpus(governors: Dict[str, Set[int]], root_password: Optional[str], ignore_governors: Optional[Set[str]] = None, logger: Optional[Logger] = None):
|
||||
for gov, cpus in governors.items():
|
||||
if not ignore_governors or gov not in ignore_governors:
|
||||
if logger:
|
||||
|
||||
@@ -4,7 +4,7 @@ import os
|
||||
import time
|
||||
import traceback
|
||||
from threading import Lock, Thread
|
||||
from typing import List, Iterable, Dict
|
||||
from typing import List, Iterable, Dict, Optional
|
||||
|
||||
from bauh.api.abstract.download import FileDownloader
|
||||
from bauh.api.abstract.handler import ProcessWatcher
|
||||
@@ -38,7 +38,7 @@ class MultiThreadedDownloader:
|
||||
self.async_downloads = []
|
||||
self.async_downloads_lock = Lock()
|
||||
|
||||
def download_package_signature(self, pkg: dict, file_url: str, output_path: str, root_password: str, watcher: ProcessWatcher):
|
||||
def download_package_signature(self, pkg: dict, file_url: str, output_path: str, root_password: Optional[str], watcher: ProcessWatcher):
|
||||
try:
|
||||
self.logger.info("Downloading package '{}' signature".format(pkg['n']))
|
||||
|
||||
@@ -60,7 +60,7 @@ class MultiThreadedDownloader:
|
||||
self.logger.warning("An error occurred while download package '{}' signature".format(pkg['n']))
|
||||
traceback.print_exc()
|
||||
|
||||
def download_package(self, pkg: Dict[str, str], root_password: str, substatus_prefix: str, watcher: ProcessWatcher, size: int) -> bool:
|
||||
def download_package(self, pkg: Dict[str, str], root_password: Optional[str], substatus_prefix: str, watcher: ProcessWatcher, size: int) -> bool:
|
||||
if self.mirrors and self.branch:
|
||||
pkgname = '{}-{}{}.pkg'.format(pkg['n'], pkg['v'], ('-{}'.format(pkg['a']) if pkg['a'] else ''))
|
||||
|
||||
@@ -117,7 +117,7 @@ class MultithreadedDownloadService:
|
||||
self.logger = logger
|
||||
self.i18n = i18n
|
||||
|
||||
def download_packages(self, pkgs: List[str], handler: ProcessHandler, root_password: str, sizes: Dict[str, int] = None) -> int:
|
||||
def download_packages(self, pkgs: List[str], handler: ProcessHandler, root_password: Optional[str], sizes: Dict[str, int] = None) -> int:
|
||||
ti = time.time()
|
||||
watcher = handler.watcher
|
||||
mirrors = pacman.list_available_mirrors()
|
||||
|
||||
@@ -146,7 +146,7 @@ def map_installed(names: Iterable[str] = None) -> dict: # returns a dict with w
|
||||
return pkgs
|
||||
|
||||
|
||||
def install_as_process(pkgpaths: Iterable[str], root_password: str, file: bool, pkgdir: str = '.',
|
||||
def install_as_process(pkgpaths: Iterable[str], root_password: Optional[str], file: bool, pkgdir: str = '.',
|
||||
overwrite_conflicting_files: bool = False, simulate: bool = False, as_deps: bool = False) -> SimpleProcess:
|
||||
cmd = ['pacman', '-U'] if file else ['pacman', '-S']
|
||||
cmd.extend(pkgpaths)
|
||||
@@ -211,11 +211,11 @@ def verify_pgp_key(key: str) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
def receive_key(key: str, root_password: str) -> SystemProcess:
|
||||
def receive_key(key: str, root_password: Optional[str]) -> SystemProcess:
|
||||
return SystemProcess(new_root_subprocess(['pacman-key', '-r', key], root_password=root_password), check_error_output=False)
|
||||
|
||||
|
||||
def sign_key(key: str, root_password: str) -> SystemProcess:
|
||||
def sign_key(key: str, root_password: Optional[str]) -> SystemProcess:
|
||||
return SystemProcess(new_root_subprocess(['pacman-key', '--lsign-key', key], root_password=root_password), check_error_output=False)
|
||||
|
||||
|
||||
@@ -361,7 +361,7 @@ def read_dependencies(name: str) -> Set[str]:
|
||||
return depends_on
|
||||
|
||||
|
||||
def sync_databases(root_password: str, force: bool = False) -> SimpleProcess:
|
||||
def sync_databases(root_password: Optional[str], force: bool = False) -> SimpleProcess:
|
||||
return SimpleProcess(cmd=['pacman', '-Sy{}'.format('y' if force else '')],
|
||||
root_password=root_password)
|
||||
|
||||
@@ -469,15 +469,15 @@ def can_refresh_mirrors() -> bool:
|
||||
return is_mirrors_available()
|
||||
|
||||
|
||||
def refresh_mirrors(root_password: str) -> SimpleProcess:
|
||||
def refresh_mirrors(root_password: Optional[str]) -> SimpleProcess:
|
||||
return SimpleProcess(cmd=['pacman-mirrors', '-g'], root_password=root_password)
|
||||
|
||||
|
||||
def update_mirrors(root_password: str, countries: List[str]) -> SimpleProcess:
|
||||
def update_mirrors(root_password: Optional[str], countries: List[str]) -> SimpleProcess:
|
||||
return SimpleProcess(cmd=['pacman-mirrors', '-c', ','.join(countries)], root_password=root_password)
|
||||
|
||||
|
||||
def sort_fastest_mirrors(root_password: str, limit: int) -> SimpleProcess:
|
||||
def sort_fastest_mirrors(root_password: Optional[str], limit: int) -> SimpleProcess:
|
||||
cmd = ['pacman-mirrors', '--fasttrack']
|
||||
|
||||
if limit > 0:
|
||||
@@ -529,7 +529,7 @@ def get_installed_size(pkgs: List[str]) -> Dict[str, int]: # bytes
|
||||
return {}
|
||||
|
||||
|
||||
def upgrade_system(root_password: str) -> SimpleProcess:
|
||||
def upgrade_system(root_password: Optional[str]) -> SimpleProcess:
|
||||
return SimpleProcess(cmd=['pacman', '-Syyu', '--noconfirm'], root_password=root_password)
|
||||
|
||||
|
||||
@@ -717,7 +717,7 @@ def map_updates_data(pkgs: Iterable[str], files: bool = False) -> dict:
|
||||
return res
|
||||
|
||||
|
||||
def upgrade_several(pkgnames: Iterable[str], root_password: str, overwrite_conflicting_files: bool = False, skip_dependency_checks: bool = False) -> SimpleProcess:
|
||||
def upgrade_several(pkgnames: Iterable[str], root_password: Optional[str], overwrite_conflicting_files: bool = False, skip_dependency_checks: bool = False) -> SimpleProcess:
|
||||
cmd = ['pacman', '-S', *pkgnames, '--noconfirm']
|
||||
|
||||
if overwrite_conflicting_files:
|
||||
@@ -732,14 +732,14 @@ def upgrade_several(pkgnames: Iterable[str], root_password: str, overwrite_confl
|
||||
shell=True)
|
||||
|
||||
|
||||
def download(root_password: str, *pkgnames: str) -> SimpleProcess:
|
||||
def download(root_password: Optional[str], *pkgnames: str) -> SimpleProcess:
|
||||
return SimpleProcess(cmd=['pacman', '-Swdd', *pkgnames, '--noconfirm', '--noprogressbar'],
|
||||
root_password=root_password,
|
||||
error_phrases={'error: failed to prepare transaction', 'error: failed to commit transaction', 'error: target not found'},
|
||||
shell=True)
|
||||
|
||||
|
||||
def remove_several(pkgnames: Iterable[str], root_password: str, skip_checks: bool = False) -> SimpleProcess:
|
||||
def remove_several(pkgnames: Iterable[str], root_password: Optional[str], skip_checks: bool = False) -> SimpleProcess:
|
||||
cmd = ['pacman', '-R', *pkgnames, '--noconfirm']
|
||||
|
||||
if skip_checks:
|
||||
|
||||
@@ -24,7 +24,7 @@ class UpdateRequirementsContext:
|
||||
pkgs_data: Dict[str, dict], cannot_upgrade: Dict[str, UpgradeRequirement],
|
||||
to_remove: Dict[str, UpgradeRequirement], installed_names: Set[str], provided_map: Dict[str, Set[str]],
|
||||
aur_index: Set[str], arch_config: dict, remote_provided_map: Dict[str, Set[str]], remote_repo_map: Dict[str, str],
|
||||
root_password: str, aur_supported: bool):
|
||||
root_password: Optional[str], aur_supported: bool):
|
||||
self.to_update = to_update
|
||||
self.repo_to_update = repo_to_update
|
||||
self.aur_to_update = aur_to_update
|
||||
@@ -367,7 +367,7 @@ class UpdatesSummarizer:
|
||||
|
||||
return requirement
|
||||
|
||||
def summarize(self, pkgs: List[ArchPackage], root_password: str, arch_config: dict) -> Optional[UpgradeRequirements]:
|
||||
def summarize(self, pkgs: List[ArchPackage], root_password: Optional[str], arch_config: dict) -> Optional[UpgradeRequirements]:
|
||||
res = UpgradeRequirements([], [], [], [])
|
||||
|
||||
remote_provided_map = pacman.map_provided(remote=True)
|
||||
|
||||
@@ -409,7 +409,7 @@ class ArchCompilationOptimizer(Thread):
|
||||
|
||||
class RefreshMirrors(Thread):
|
||||
|
||||
def __init__(self, taskman: TaskManager, root_password: str, i18n: I18n, logger: logging.Logger,
|
||||
def __init__(self, taskman: TaskManager, root_password: Optional[str], i18n: I18n, logger: logging.Logger,
|
||||
create_config: CreateConfigFile):
|
||||
super(RefreshMirrors, self).__init__(daemon=True)
|
||||
self.taskman = taskman
|
||||
@@ -488,7 +488,7 @@ class RefreshMirrors(Thread):
|
||||
|
||||
class SyncDatabases(Thread):
|
||||
|
||||
def __init__(self, taskman: TaskManager, root_password: str, i18n: I18n, logger: logging.Logger,
|
||||
def __init__(self, taskman: TaskManager, root_password: Optional[str], i18n: I18n, logger: logging.Logger,
|
||||
refresh_mirrors: RefreshMirrors, create_config: CreateConfigFile):
|
||||
super(SyncDatabases, self).__init__(daemon=True)
|
||||
self.task_man = taskman
|
||||
|
||||
Reference in New Issue
Block a user