summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/instpkgsrc.py42
-rw-r--r--src/backend/rmpkgsrc.py2
-rw-r--r--src/backend/solvedeps.py6
-rw-r--r--src/backend/sysupgrade.py27
-rwxr-xr-xsrc/frontend/cli/sisyphus-cli.py84
-rw-r--r--src/frontend/gui/sisyphus-gui.py2
6 files changed, 97 insertions, 66 deletions
diff --git a/src/backend/instpkgsrc.py b/src/backend/instpkgsrc.py
index 68f10b3..091502b 100644
--- a/src/backend/instpkgsrc.py
+++ b/src/backend/instpkgsrc.py
@@ -47,23 +47,31 @@ def sigint_handler(signal, frame):
signal.signal(signal.SIGINT, sigint_handler)
-def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
+def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False, nodeps=False):
+ go_args = ['--quiet', '--verbose',
+ '--misspell-suggestion=n', '--fuzzy-search=n']
+ nogo_args = ['--quiet', '--pretend', '--getbinpkg',
+ '--rebuilt-binaries', '--misspell-suggestion=n', '--fuzzy-search=n']
if not sisyphus.checkenv.root():
print(f"{sisyphus.getclr.bright_red}\nRoot permissions are required for this operation.\n{sisyphus.getclr.reset}")
sys.exit()
else:
if gfx_ui:
- sisyphus.solvedeps.start.__wrapped__(pkgname) # undecorate
+ sisyphus.solvedeps.start.__wrapped__(
+ pkgname, nodeps=False) # undecorate
else:
sisyphus.syncall.start(gfx_ui=False)
- sisyphus.solvedeps.start(pkgname)
+ if nodeps:
+ sisyphus.solvedeps.start(pkgname, nodeps=True)
+ else:
+ sisyphus.solvedeps.start(pkgname, nodeps=False)
bin_list, src_list, is_vague, need_cfg = pickle.load(
open(os.path.join(sisyphus.getfs.p_mtd_dir, "sisyphus_pkgdeps.pickle"), "rb"))
if is_vague != 0: # catch ambiguous packages
- p_exe = subprocess.Popen(['emerge', '--quiet', '--pretend', '--getbinpkg', '--rebuilt-binaries',
- '--with-bdeps=y', '--misspell-suggestion=y', '--fuzzy-search=y'] + list(pkgname))
+ p_exe = subprocess.Popen(
+ ['emerge'] + nogo_args + (['--nodeps'] if nodeps else ['--with-bdeps=y']) + list(pkgname))
try:
p_exe.wait()
except KeyboardInterrupt:
@@ -79,8 +87,8 @@ def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
sys.exit()
elif need_cfg != 0: # catch aliens
- p_exe = subprocess.Popen(['emerge', '--quiet', '--pretend', '--getbinpkg', '--rebuilt-binaries',
- '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n'] + list(pkgname))
+ p_exe = subprocess.Popen(
+ ['emerge'] + nogo_args + (['--nodeps'] if nodeps else ['--with-bdeps=y']) + list(pkgname))
try:
p_exe.wait()
except KeyboardInterrupt:
@@ -115,8 +123,8 @@ def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
user_input = input(
f"{sisyphus.getclr.bright_white}Would you like to proceed?{sisyphus.getclr.reset} [{sisyphus.getclr.bright_green}Yes{sisyphus.getclr.reset}/{sisyphus.getclr.bright_red}No{sisyphus.getclr.reset}] ")
if user_input.lower() in ['yes', 'y', '']:
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--with-bdeps=y', '--misspell-suggestion=n',
- '--fuzzy-search=n'] + (['--oneshot'] if oneshot else []) + list(pkgname))
+ p_exe = subprocess.Popen(['emerge'] + go_args + (['--nodeps'] if nodeps else [
+ '--with-bdeps=y']) + (['--oneshot'] if oneshot else []) + list(pkgname))
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
@@ -170,8 +178,8 @@ def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
if user_input.lower() in ['yes', 'y', '']:
sisyphus.dlbinpkg.start(dl_world=False, gfx_ui=False)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--usepkg', '--rebuilt-binaries', '--with-bdeps=y',
- '--misspell-suggestion=n', '--fuzzy-search=n'] + (['--oneshot'] if oneshot else []) + list(pkgname))
+ p_exe = subprocess.Popen(['emerge'] + go_args + ['--usepkg', '--rebuilt-binaries'] + (
+ ['--nodeps'] if nodeps else ['--with-bdeps=y']) + (['--oneshot'] if oneshot else []) + list(pkgname))
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
@@ -218,8 +226,8 @@ def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
if user_input.lower() in ['yes', 'y', '']:
sisyphus.dlbinpkg.start(dl_world=False, gfx_ui=False)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--usepkg', '--usepkgonly', '--rebuilt-binaries',
- '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n'] + (['--oneshot'] if oneshot else []) + list(pkgname))
+ p_exe = subprocess.Popen(['emerge'] + go_args + ['--usepkg', '--usepkgonly', '--rebuilt-binaries'] + (
+ ['--nodeps'] if nodeps else ['--with-bdeps=y']) + (['--oneshot'] if oneshot else []) + list(pkgname))
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
@@ -294,8 +302,8 @@ def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
str(len(bin_list)) + " binary package(s)\n\n")
sisyphus.dlbinpkg.start(dl_world=False, gfx_ui=True)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--usepkg', '--usepkgonly', '--rebuilt-binaries', '--with-bdeps=y',
- '--misspell-suggestion=n', '--fuzzy-search=n'] + pkgname, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ p_exe = subprocess.Popen(['emerge'] + go_args + ['--usepkg', '--usepkgonly', '--rebuilt-binaries'] + (
+ ['--nodeps'] if nodeps else ['--with-bdeps=y']) + (['--oneshot'] if oneshot else []) + pkgname, stdout=subprocess.PIPE, stderr=subprocess.PIPE) # --nodeps && --oneshot are set to False in the graphical client
# kill portage if the program dies or it's terminated by the user
atexit.register(sisyphus.killemerge.start, p_exe)
@@ -318,8 +326,8 @@ def start(pkgname, ebuild=False, gfx_ui=False, oneshot=False):
sisyphus.dlbinpkg.start(
dl_world=False, gfx_ui=False)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--usepkg', '--usepkgonly', '--rebuilt-binaries',
- '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n'] + (['--oneshot'] if oneshot else []) + list(pkgname))
+ p_exe = subprocess.Popen(['emerge'] + go_args + ['--usepkg', '--usepkgonly', '--rebuilt-binaries'] + (
+ ['--nodeps'] if nodeps else ['--with-bdeps=y']) + (['--oneshot'] if oneshot else []) + list(pkgname))
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
diff --git a/src/backend/rmpkgsrc.py b/src/backend/rmpkgsrc.py
index ec5a097..b039f96 100644
--- a/src/backend/rmpkgsrc.py
+++ b/src/backend/rmpkgsrc.py
@@ -83,7 +83,7 @@ def start(pkgname, depclean=False, gfx_ui=False, unmerge=False):
pass # GUI always calls <category>/<pkgname>, no ambiguity
else:
p_exe = subprocess.Popen(
- ['emerge', '--depclean', '--quiet', '--pretend', '--verbose'] + list(pkgname))
+ ['emerge'] + args + ['--pretend', '--verbose'] + list(pkgname))
try:
p_exe.wait()
except KeyboardInterrupt:
diff --git a/src/backend/solvedeps.py b/src/backend/solvedeps.py
index d3e8a3b..34d70b8 100644
--- a/src/backend/solvedeps.py
+++ b/src/backend/solvedeps.py
@@ -17,15 +17,15 @@ signal.signal(signal.SIGINT, sigint_handler)
@animation.wait('resolving dependencies')
-def start(pkgname=None):
+def start(pkgname=None, nodeps=False):
bin_list = []
src_list = []
is_vague = int()
need_cfg = int()
if pkgname:
- args = ['--quiet', '--pretend', '--getbinpkg', '--rebuilt-binaries',
- '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n'] + list(pkgname)
+ args = ['--quiet', '--pretend', '--getbinpkg', '--rebuilt-binaries', '--misspell-suggestion=n',
+ '--fuzzy-search=n'] + (['--nodeps'] if nodeps else ['--with-bdeps=y']) + list(pkgname)
else:
args = ['--quiet', '--update', '--deep', '--newuse', '--pretend', '--getbinpkg', '--rebuilt-binaries',
'--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world']
diff --git a/src/backend/sysupgrade.py b/src/backend/sysupgrade.py
index f6415f3..f8b01d2 100644
--- a/src/backend/sysupgrade.py
+++ b/src/backend/sysupgrade.py
@@ -48,6 +48,10 @@ signal.signal(signal.SIGINT, sigint_handler)
def start(ebuild=False, gfx_ui=False):
+ go_args = ['--quiet', '--verbose', '--update', '--deep', '--newuse',
+ '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n']
+ nogo_args = ['--quiet', '--update', '--deep', '--newuse', '--pretend', '--getbinpkg',
+ '--rebuilt-binaries', '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n',]
if not sisyphus.checkenv.root():
print(f"{sisyphus.getclr.bright_red}\nRoot permissions are required for this operation.\n{sisyphus.getclr.reset}")
sys.exit()
@@ -62,8 +66,7 @@ def start(ebuild=False, gfx_ui=False):
open(os.path.join(sisyphus.getfs.p_mtd_dir, "sisyphus_worlddeps.pickle"), "rb"))
if need_cfg != 0: # catch aliens
- p_exe = subprocess.Popen(['emerge', '--quiet', '--update', '--deep', '--newuse', '--pretend', '--getbinpkg',
- '--rebuilt-binaries', '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world'])
+ p_exe = subprocess.Popen(['emerge'] + nogo_args + ['@world'])
try:
p_exe.wait()
except KeyboardInterrupt:
@@ -104,8 +107,8 @@ def start(ebuild=False, gfx_ui=False):
user_input = input(
f"{sisyphus.getclr.bright_white}Would you like to proceed?{sisyphus.getclr.reset} [{sisyphus.getclr.bright_green}Yes{sisyphus.getclr.reset}/{sisyphus.getclr.bright_red}No{sisyphus.getclr.reset}] ")
if user_input.lower() in ['yes', 'y', '']:
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--update', '--deep', '--newuse',
- '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world'])
+ p_exe = subprocess.Popen(
+ ['emerge'] + go_args + ['@world'])
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
@@ -159,8 +162,8 @@ def start(ebuild=False, gfx_ui=False):
if user_input.lower() in ['yes', 'y', '']:
sisyphus.dlbinpkg.start(dl_world=True, gfx_ui=False)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--update', '--deep', '--newuse', '--usepkg',
- '--rebuilt-binaries', '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world'])
+ p_exe = subprocess.Popen(
+ ['emerge'] + go_args + ['--usepkg', '--rebuilt-binaries', '@world'])
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
@@ -207,8 +210,8 @@ def start(ebuild=False, gfx_ui=False):
if user_input.lower() in ['yes', 'y', '']:
sisyphus.dlbinpkg.start(dl_world=True, gfx_ui=False)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--update', '--deep', '--newuse', '--usepkg', '--usepkgonly',
- '--rebuilt-binaries', '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world'])
+ p_exe = subprocess.Popen(
+ ['emerge'] + go_args + ['--usepkg', '--usepkgonly', '--rebuilt-binaries', '@world'])
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
@@ -285,8 +288,8 @@ def start(ebuild=False, gfx_ui=False):
f"\n\nTotal: {len(bin_list)} binary package(s)\n")
sisyphus.dlbinpkg.start(dl_world=True, gfx_ui=True)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--update', '--deep', '--newuse', '--usepkg', '--usepkgonly', '--rebuilt-binaries',
- '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ p_exe = subprocess.Popen(['emerge'] + go_args + ['--usepkg', '--usepkgonly',
+ '--rebuilt-binaries', '@world'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# kill portage if the program dies or it's terminated by the user
atexit.register(sisyphus.killemerge.start, p_exe)
@@ -309,8 +312,8 @@ def start(ebuild=False, gfx_ui=False):
sisyphus.dlbinpkg.start(
dl_world=True, gfx_ui=False)
os.chdir(sisyphus.getfs.p_cch_dir)
- p_exe = subprocess.Popen(['emerge', '--quiet', '--verbose', '--update', '--deep', '--newuse', '--usepkg', '--usepkgonly',
- '--rebuilt-binaries', '--backtrack=100', '--with-bdeps=y', '--misspell-suggestion=n', '--fuzzy-search=n', '@world'])
+ p_exe = subprocess.Popen(
+ ['emerge'] + go_args + ['--usepkg', '--usepkgonly', '--rebuilt-binaries', '@world'])
try:
set_nonblocking(sys.stdout.fileno())
spinner_animation()
diff --git a/src/frontend/cli/sisyphus-cli.py b/src/frontend/cli/sisyphus-cli.py
index 3813e25..541d610 100755
--- a/src/frontend/cli/sisyphus-cli.py
+++ b/src/frontend/cli/sisyphus-cli.py
@@ -101,44 +101,62 @@ def search(package: List[str] = typer.Argument(...),
@app.command("install")
def install(pkgname: List[str],
ebuild: bool = typer.Option(
- False, "--ebuild", "-e", help='Install ebuild(source) package if binary package is not found (slower)'),
- oneshot: bool = typer.Option(False, "--oneshot", "-1", help='Do not mark the package as explicitly installed')):
+ False, "--ebuild", "-e", help='Install ebuild(source) package if binary package is not found (slower).'),
+ oneshot: bool = typer.Option(
+ False, "--oneshot", "-1", help='Install the package without marking it as explicitly installed.'),
+ nodeps: bool = typer.Option(False, "--nodeps", help='Install the package without retrieving its dependencies.')):
"""
Install binary and/or ebuild(source) packages.\n
Binary packages are default, however the --ebuild option can be used to install ebuild(source) packages.\n
- The --ebuild option will be automatically suggested if a binary package is not found, but an ebuild(source) package is found.\n
- The --ebuild option will fall back to binary packages if installation from ebuild(source) package is not required. (Can be used at all times, *SAFELY*).\n
- The --ebuild option will prefer to use binary packages (if available) to satisfy dependencies for the ebuild(source) package, speeding up the installation.\n
- The --oneshot option follows the above rules, however it will not mark the package as explicitly installed. (In Gentoo Linux terms: not added to world set).\n
- The --ebuild and the --oneshot options can be used both independently of each other and/or combined with each other.\n
+ The --ebuild option will be recommended automatically if a binary package is not found but a corresponding ebuild (source) package is available.\n
+ The --ebuild option will revert to binary packages when installation from an ebuild (source) package is unnecessary. This option can be safely used at all times.\n
+ The --ebuild option will prioritize the use of binary packages (when available) to fulfill dependencies for the ebuild (source) package, thereby accelerating the installation process.\n
+ The --oneshot option adheres to the aforementioned rules but does not designate the package as explicitly installed. In Gentoo Linux terminology, this means it is not added to the world set.\n
+ The --nodeps option adheres to the aforementioned rules but does not retrieve the package dependecies. In conjunction with the --oneshot option, it can be used to quickly reinstall any already installed *BINARY* package.\n
+ The options --ebuild, --oneshot, and --nodeps can be utilized independently or in conjunction with one another, in either their short or long forms.\n
+ The sequence of utilizing the --ebuild, --oneshot, and --nodeps options is flexible; they can be applied before or after specifying the package name.\n
+ \n
+ !!! NOTE !!!\n
+ \n
+ To minimize the risk of inadvertent input or typographical errors, the --nodeps option is intentionally without a shortened form.\n
+ \n
+ !!! WARNING !!!\n
+ \n
+ Unless all required dependencies are already installed, attempting to install an ebuild (source) package using the --ebuild option in conjunction with the --nodeps option is likely to result in failure.\n
\n
* Examples:\n
sisyphus install firefox\n
sisyphus install pidgin --ebuild\n
- sisyphus install xonotic -e\n
+ sisyphus install -e xonotic\n
sisyphus install filezilla --oneshot\n
- sisyphus install thunderbird -1\n
+ sisyphus install -1 thunderbird\n
sisyphus install falkon -e -1\n
- sisyphus install opera --ebuild --oneshot\n
- sisyphus install vivaldi --oneshot --ebuild\n
+ sisyphus install --nodeps --oneshot opera\n
+ sisyphus install -e --nodeps vivaldi\n
"""
if ebuild:
- sisyphus.instpkgsrc.start(pkgname, ebuild=True,
- gfx_ui=False, oneshot=oneshot)
+ sisyphus.instpkgsrc.start(
+ pkgname, ebuild=True, gfx_ui=False, oneshot=oneshot, nodeps=nodeps)
else:
- sisyphus.instpkgsrc.start(pkgname, ebuild=False,
- gfx_ui=False, oneshot=oneshot)
+ sisyphus.instpkgsrc.start(
+ pkgname, ebuild=False, gfx_ui=False, oneshot=oneshot, nodeps=nodeps)
@app.command("uninstall")
def uninstall(pkgname: List[str], force: bool = typer.Option(False, "--force", "-f", help='Ignore the reverse dependencies and force uninstall the package (DANGEROUS)')):
"""
Uninstall packages *SAFELY* by checking for reverse dependencies.\n
- If there are any reverse dependencies, the package or packages will NOT be uninstalled to prevent the system from breaking.\n
- If you are serious about uninstalling the package, it is recommended you uninstall all the reverse dependencies of it as well.\n
- This will not always be possible because the reverse dependency tree may be too long and you may need to uninstall important system packages.\n
- DANGEROUS : The --force option will ignore the reverse dependencies and uninstall the package *UNSAFELY*, without safeguards.\n
- WARNING : The --force option will break your system if you uninstall important system packages (bootloader, kernel, init).\n
+ To maintain system integrity, if there are any reverse dependencies, the package or packages will not be uninstalled to prevent system instability.\n
+ If you're set on uninstalling the package or packages, consider removing all of its reverse dependencies first.\n
+ However, this may not always be feasible due to the extensive nature of the reverse dependency tree, which could involve critical system packages.\n
+ \n
+ !!! DANGEROUS !!!\n
+ \n
+ The --force option will ignore the reverse dependencies and uninstall the package *UNSAFELY*, without safeguards.\n
+ \n
+ !!! WARNING !!!\n
+ \n
+ The --force option will break your system if you uninstall important system packages (bootloader, kernel, init).\n
\n
* Examples:\n
sisyphus uninstall firefox # this will succeed, no package depends on firefox\n
@@ -158,9 +176,11 @@ def uninstall(pkgname: List[str], force: bool = typer.Option(False, "--force", "
def autoremove():
"""
Uninstall packages which become orphans and which are no longer needed.\n
- Uninstalling a package will usually leave it's dependencies behind. Those dependencies become orphans if no other package requires them.\n
- A package may also gain extra dependencies, or loose some dependencies. The lost dependencies become orphans if no other package requires them.\n
- In both cases, the orphan packages are no longer needed and can be safely removed.\n
+ Uninstalling a package will usually leave its dependencies behind.\n
+ Those dependencies become orphans if no other package requires them.\n
+ A package may also gain extra dependencies or lose some dependencies.\n
+ The lost dependencies become orphans if no other package requires them.\n
+ In either case, the orphan packages are no longer needed and can be safely removed.\n
Use this option to check the whole dependency tree for orphan packages, and remove them.\n
\n
* Examples:\n
@@ -203,9 +223,9 @@ def upgrade(
"""
Upgrade the system using binary and/or ebuild(source) packages.\n
Binary packages are default, however the --ebuild option can be used to upgrade the ebuild(source) packages as well, alongside the binary packages.\n
- The --ebuild option will be automatically suggested if the ebuild(source) packages need to be upgraded as well, alongside the binary packages.\n
- The --ebuild option will fall back to binary packages if the ebuild(source) packages don't require any upgrade. (Can be used at all times, *SAFELY*).\n
- The --ebuild option will prefer to use binary packages (if available) to satisfy dependencies for the ebuild(source) packages, speeding up the upgrade.\n
+ The --ebuild option will be automatically recommended if upgrades are necessary for the ebuild (source) packages, in addition to the binary packages.\n
+ The --ebuild option will default to binary packages if upgrades are unnecessary for the ebuild (source) packages. This option is safe to use at all times.\n
+ The --ebuild option will prioritize the use of binary packages (when available) to fulfill dependencies for the ebuild (source) packages, thereby accelerating the upgrade process.\n
\n
* Examples:\n
sisyphus upgrade\n
@@ -222,8 +242,8 @@ def upgrade(
def spmsync():
"""
Sync Sisyphus's package database with Portage's package database.\n
- Sisyphus does not track packages installed directly via Portage in it's package database.\n
- Use this command to synchronize Sisyphus's package database with Portage's package database.\n
+ Sisyphus doesn't monitor packages installed directly via Portage in its package database.\n
+ Use this command to align Sisyphus's package database with Portage's package database.\n
\n
* Examples:\n
sisyphus spmsync\n
@@ -234,10 +254,10 @@ def spmsync():
@app.command("rescue")
def rescue():
"""
- Resurrect Sisyphus's package database if lost or corrupted.\n
- If for some reason Sisyphus's package database is lost or corrupted, it can be resurrected using Portage's package database.\n
- If Portage's package database is corrupted (in this case you're screwed anyway :D), only a partial resurrection will be possible.\n
- If Portage's package database is intact, full resurrection will be possible.\n
+ Resurrect Sisyphus's package database if it becomes lost or corrupted.\n
+ If, for any reason, Sisyphus's package database becomes lost or corrupted, it can be resurrected using Portage's package database.\n
+ In the event of corruption in Portage's package database (in which case, you're in trouble anyway :D), only partial resurrection will be feasible.\n
+ With Portage's package database intact, complete resurrection will be achievable.\n
\n
* Examples:\n
sisyphus rescue\n
diff --git a/src/frontend/gui/sisyphus-gui.py b/src/frontend/gui/sisyphus-gui.py
index 44820f7..684a780 100644
--- a/src/frontend/gui/sisyphus-gui.py
+++ b/src/frontend/gui/sisyphus-gui.py
@@ -441,7 +441,7 @@ class MainWorker(QtCore.QObject):
def startInstall(self):
self.started.emit()
pkgname = Sisyphus.pkgname
- sisyphus.instpkgsrc.start(pkgname, ebuild=False, gfx_ui=True, oneshot=False)
+ sisyphus.instpkgsrc.start(pkgname, ebuild=False, gfx_ui=True, oneshot=False, nodeps=False)
self.finished.emit()
@QtCore.pyqtSlot()