summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-portage/sisyphus/Manifest2
-rw-r--r--app-portage/sisyphus/files/sisyphus-0.1709-r1.patch371
-rw-r--r--app-portage/sisyphus/sisyphus-1.1709.ebuild (renamed from app-portage/sisyphus/sisyphus-0.1709-r1.ebuild)10
3 files changed, 6 insertions, 377 deletions
diff --git a/app-portage/sisyphus/Manifest b/app-portage/sisyphus/Manifest
index 75d0428a..a07649a6 100644
--- a/app-portage/sisyphus/Manifest
+++ b/app-portage/sisyphus/Manifest
@@ -1 +1 @@
-DIST sisyphus-0.1709.tar.gz 181405 SHA256 e6b3969a8cb699f1e98f42f7812672ed312ef10675a01ab9eb44d838fb8b05dc SHA512 c582992fead2eed6e0378ee6b348e30f33409c0bc956ab0805af106798cd2d500a13593a1e5c191196e3e65bb3d518e7c2fc154f6e52e5011bf891c0c69f82fa WHIRLPOOL 3f878f52b9a60ed0bcfdf1b15a8329efd10555c7bcb84b184fc76ed0b0c3da61c3c5a2321e5f6526e04e28228fba0373e97365ac0070bab880b0463d34c403db
+DIST sisyphus-1.1709.tar.gz 181658 SHA256 b9178adc2acc9104c5a2f07eb34a9ca4cedc1ae6bcd4b9fc3cb77f6e5b342ace SHA512 1f56b1c098ad3fac6bedb52148aab6dd51dc517570ba0a8d4f031d2f21dca1a508bdc27d484222d4098fd0ac91c28031d9fb9ce0e6dd6b2c01e3b96f5df4879a WHIRLPOOL 1c9305999d7d82907b416e8c285d8eb78b854d37d9fff63a97a190b49443678003645f864938f4473a0a0a0afe7d42757262aede178cb480d5508f2ba661b41f
diff --git a/app-portage/sisyphus/files/sisyphus-0.1709-r1.patch b/app-portage/sisyphus/files/sisyphus-0.1709-r1.patch
deleted file mode 100644
index 206b3cc7..00000000
--- a/app-portage/sisyphus/files/sisyphus-0.1709-r1.patch
+++ /dev/null
@@ -1,371 +0,0 @@
-diff --git a/src/backend/libsisyphus.py b/src/backend/libsisyphus.py
-index 8516a3d..120e268 100755
---- a/src/backend/libsisyphus.py
-+++ b/src/backend/libsisyphus.py
-@@ -1,16 +1,16 @@
- #!/usr/bin/python3
-
-+import animation
-+import atexit
- import csv
- import filecmp
- import os
- import shutil
- import sqlite3
--import sys
--import urllib3
- import subprocess
--import animation
-+import sys
- import time
--import atexit
-+import urllib3
-
- redcore_portage_tree_path = '/usr/portage'
- redcore_desktop_overlay_path = '/var/lib/layman/redcore-desktop'
-@@ -19,13 +19,14 @@
- sisyphus_remote_csv_url = 'http://mirror.math.princeton.edu/pub/redcorelinux/csv/remote_preinst.csv'
- sisyphus_remote_csv_path_pre = '/var/lib/sisyphus/csv/remote_preinst.csv'
- sisyphus_remote_csv_path_post = '/var/lib/sisyphus/csv/remote_postinst.csv'
-+sisyphus_removeable_csv_url = 'http://mirror.math.princeton.edu/pub/redcorelinux/csv/removeable_preinst.csv'
-+sisyphus_removeable_csv_path_pre = '/var/lib/sisyphus/csv/removeable_preinst.csv'
-+sisyphus_removeable_csv_path_post = '/var/lib/sisyphus/csv/removeable_postinst.csv'
- sisyphus_local_csv_path_pre = '/var/lib/sisyphus/csv/local_preinst.csv'
- sisyphus_local_csv_path_post = '/var/lib/sisyphus/csv/local_postinst.csv'
- sisyphus_spm_csv_path = '/var/lib/sisyphus/csv/spmsync.csv'
- sisyphus_database_path = '/var/lib/sisyphus/db/sisyphus.db'
-
--BLACKHOLE = open(os.devnull, 'w')
--
- def check_if_root():
- if not os.getuid() == 0:
- sys.exit("\nYou need root permissions to do this, exiting!\n")
-@@ -47,36 +48,6 @@ def check_system_mode():
- print("\nThe system is not set to binmode or mixedmode, refusing to run!\n")
- sys.exit(1)
-
--def check_redcore_portage_tree():
-- os.chdir(redcore_portage_tree_path)
-- subprocess.call(['git', 'remote', 'update'], stdout=BLACKHOLE, stderr=subprocess.STDOUT)
-- redcore_portage_tree_local_hash = subprocess.check_output(['git', 'rev-parse', '@'])
-- redcore_portage_tree_remote_hash = subprocess.check_output(['git', 'rev-parse', '@{u}'])
--
-- if not redcore_portage_tree_local_hash == redcore_portage_tree_remote_hash:
-- print("\nPortage tree is out-of-date, run 'sisyphus update' first!\n")
-- sys.exit(1)
--
--def check_redcore_desktop_overlay():
-- os.chdir(redcore_desktop_overlay_path)
-- subprocess.check_call(['git', 'remote', 'update'], stdout=BLACKHOLE, stderr=subprocess.STDOUT)
-- redcore_desktop_overlay_local_hash = subprocess.check_output(['git', 'rev-parse', '@'])
-- redcore_desktop_overlay_remote_hash = subprocess.check_output(['git', 'rev-parse', '@{u}'])
--
-- if not redcore_desktop_overlay_local_hash == redcore_desktop_overlay_remote_hash:
-- print("\nOverlay is out-of-date, run 'sisyphus update' first!\n")
-- sys.exit(1)
--
--def check_redcore_portage_config():
-- os.chdir(redcore_portage_config_path)
-- subprocess.check_call(['git', 'remote', 'update'], stdout=BLACKHOLE, stderr=subprocess.STDOUT)
-- redcore_portage_config_local_hash = subprocess.check_output(['git', 'rev-parse', '@'])
-- redcore_portage_config_remote_hash = subprocess.check_output(['git', 'rev-parse', '@{u}'])
--
-- if not redcore_portage_config_local_hash == redcore_portage_config_remote_hash:
-- print("\nPortage config is out-of-date, run 'sisyphus update' first!\n")
-- sys.exit(1)
--
- def fetch_sisyphus_remote_packages_table_csv():
- http = urllib3.PoolManager()
-
-@@ -88,35 +59,24 @@ def fetch_sisyphus_remote_packages_table_csv():
- with http.request('GET', sisyphus_remote_csv_url, preload_content=False) as tmp_buffer, open(sisyphus_remote_csv_path_post, 'wb') as output_file:
- shutil.copyfileobj(tmp_buffer, output_file)
-
--def check_sisyphus_remote_packages_table_csv():
-- if not filecmp.cmp(sisyphus_remote_csv_path_pre, sisyphus_remote_csv_path_post):
-- print("\nSisyphus database is out-of-date, run 'sisyphus update' first!\n")
-- os.remove(sisyphus_remote_csv_path_post)
-- sys.exit(1)
-- else:
-- os.remove(sisyphus_remote_csv_path_post)
--
--def check_sisyphus_remote_packages_table():
-- fetch_sisyphus_remote_packages_table_csv()
-- check_sisyphus_remote_packages_table_csv()
-+def fetch_sisyphus_removeable_packages_table_csv():
-+ http = urllib3.PoolManager()
-
--def check_sync():
-- check_if_root()
-- check_redcore_portage_tree()
-- check_redcore_desktop_overlay()
-- check_redcore_portage_config()
-- check_sisyphus_remote_packages_table()
-+ if not os.path.isfile(sisyphus_removeable_csv_path_pre):
-+ os.mknod(sisyphus_removeable_csv_path_pre)
-+ with http.request('GET', sisyphus_removeable_csv_url, preload_content=False) as tmp_buffer, open(sisyphus_removeable_csv_path_post, 'wb') as output_file:
-+ shutil.copyfileobj(tmp_buffer, output_file)
-+ else:
-+ with http.request('GET', sisyphus_removeable_csv_url, preload_content=False) as tmp_buffer, open(sisyphus_removeable_csv_path_post, 'wb') as output_file:
-+ shutil.copyfileobj(tmp_buffer, output_file)
-
--@animation.wait('fetching remote ebuilds')
- def sync_redcore_portage_tree_and_desktop_overlay():
- subprocess.check_call(['emerge', '--sync', '--quiet'])
-
--@animation.wait('fetching remote configs')
- def sync_redcore_portage_config():
- os.chdir(redcore_portage_config_path)
- subprocess.call(['git', 'pull', '--quiet'])
-
--@animation.wait('fetching remote database')
- def sync_sisyphus_remote_packages_table_csv():
- if not filecmp.cmp(sisyphus_remote_csv_path_pre, sisyphus_remote_csv_path_post):
- sisyphusdb = sqlite3.connect(sisyphus_database_path)
-@@ -128,16 +88,34 @@ def sync_sisyphus_remote_packages_table_csv():
- sisyphusdb.commit()
- sisyphusdb.close()
- shutil.move(sisyphus_remote_csv_path_post, sisyphus_remote_csv_path_pre)
-+
-+def sync_sisyphus_removeable_packages_table_csv():
-+ if not filecmp.cmp(sisyphus_removeable_csv_path_pre, sisyphus_removeable_csv_path_post):
-+ sisyphusdb = sqlite3.connect(sisyphus_database_path)
-+ sisyphusdb.cursor().execute('''drop table if exists removeable_packages''')
-+ sisyphusdb.cursor().execute('''create table removeable_packages (category TEXT,name TEXT,version TEXT,slot TEXT,description TEXT)''')
-+ with open(sisyphus_removeable_csv_path_post) as sisyphus_removeable_csv:
-+ for row in csv.reader(sisyphus_removeable_csv):
-+ sisyphusdb.cursor().execute("insert into removeable_packages (category, name, version, slot, description) values (?, ?, ?, ?, ?);", row)
-+ sisyphusdb.commit()
-+ sisyphusdb.close()
-+ shutil.move(sisyphus_removeable_csv_path_post, sisyphus_removeable_csv_path_pre)
-
- def sync_sisyphus_database_remote_packages_table():
- fetch_sisyphus_remote_packages_table_csv()
- sync_sisyphus_remote_packages_table_csv()
-
-+def sync_sisyphus_database_removeable_packages_table():
-+ fetch_sisyphus_removeable_packages_table_csv()
-+ sync_sisyphus_removeable_packages_table_csv()
-+
-+@animation.wait('syncing remote databases')
- def redcore_sync():
- check_if_root()
- sync_redcore_portage_tree_and_desktop_overlay()
- sync_redcore_portage_config()
- sync_sisyphus_database_remote_packages_table()
-+ sync_sisyphus_database_removeable_packages_table()
-
- def generate_sisyphus_local_packages_table_csv_pre():
- subprocess.check_call(['/usr/share/sisyphus/helpers/make_local_csv_pre']) # this is really hard to do in python, so we cheat with a bash helper script
-@@ -171,13 +149,13 @@ def sync_sisyphus_spm_csv():
- sisyphusdb.close()
- os.remove(sisyphus_spm_csv_path)
-
--@animation.wait('syncing databases')
-+@animation.wait('syncing local databases')
- def sisyphus_pkg_spmsync():
- generate_sisyphus_spm_csv()
- sync_sisyphus_spm_csv()
-
- def sisyphus_pkg_install(PKGLIST):
-- check_sync()
-+ redcore_sync()
- generate_sisyphus_local_packages_table_csv_pre()
- portage_call = subprocess.Popen(['emerge', '-a'] + PKGLIST)
- atexit.register(kill_bg_portage, portage_call)
-@@ -195,7 +173,7 @@ def sisyphus_pkg_auto_install(PKGLIST):
- sync_sisyphus_local_packages_table_csv()
-
- def sisyphus_pkg_uninstall(PKGLIST):
-- check_sync()
-+ redcore_sync()
- generate_sisyphus_local_packages_table_csv_pre()
- portage_call = subprocess.Popen(['emerge', '--depclean', '-a'] + PKGLIST)
- atexit.register(kill_bg_portage, portage_call)
-@@ -213,7 +191,7 @@ def sisyphus_pkg_auto_uninstall(PKGLIST):
- sync_sisyphus_local_packages_table_csv()
-
- def sisyphus_pkg_force_uninstall(PKGLIST):
-- check_sync()
-+ redcore_sync()
- generate_sisyphus_local_packages_table_csv_pre()
- portage_call = subprocess.Popen(['emerge', '--unmerge', '-a'] + PKGLIST)
- atexit.register(kill_bg_portage, portage_call)
-@@ -231,7 +209,7 @@ def sisyphus_pkg_auto_force_uninstall(PKGLIST):
- sync_sisyphus_local_packages_table_csv()
-
- def sisyphus_pkg_remove_orphans():
-- check_sync()
-+ redcore_sync()
- generate_sisyphus_local_packages_table_csv_pre()
- portage_call = subprocess.Popen(['emerge', '--depclean', '-a'])
- atexit.register(kill_bg_portage, portage_call)
-@@ -249,7 +227,7 @@ def sisyphus_pkg_auto_remove_orphans():
- sync_sisyphus_local_packages_table_csv()
-
- def sisyphus_pkg_system_upgrade():
-- check_sync()
-+ redcore_sync()
- generate_sisyphus_local_packages_table_csv_pre()
- portage_call = subprocess.Popen(['emerge', '-uDaN', '--with-bdeps=y', '@world'])
- atexit.register(kill_bg_portage, portage_call)
-diff --git a/src/frontend/gui/sisyphus-gui.py b/src/frontend/gui/sisyphus-gui.py
-index 0391869..f910bb1 100755
---- a/src/frontend/gui/sisyphus-gui.py
-+++ b/src/frontend/gui/sisyphus-gui.py
-@@ -12,29 +12,32 @@ def __init__(self):
- self.show()
-
- self.SEARCHFIELDS = OrderedDict ([
-- ('Category', 'cat'),
-- ('Name', 'pn'),
-- ('Description', 'descr')
-+ ('Search by category', 'cat'),
-+ ('Search by description', 'descr'),
-+ ('Search by name', 'pn')
- ])
- self.selectfield.addItems(self.SEARCHFIELDS.keys())
-- self.selectfield.setCurrentIndex(1)
-+ self.selectfield.setCurrentIndex(2)
- self.selectfield.currentIndexChanged.connect(self.setSearchField)
--
-+ Sisyphus.SEARCHFIELD = self.SEARCHFIELDS['Search by name']
-+
- self.SEARCHFILTERS = OrderedDict ([
-- ('All', ''),
-- ('Available', 'AND iv IS NULL'),
-- ('Installed', 'AND iv IS NOT NULL'),
-- ('Upgradable', 'AND iv < av'),
-- ('Downgradable', 'AND iv > av')
-+ ('All packages', ''),
-+ ('Installed packages', 'AND iv IS NOT NULL'),
-+ ('Installable packages', 'AND iv IS NULL'),
-+ ('Removable packages', 'AND rmv = "yes"'),
-+ ('Upgradable packages', 'AND iv <> av')
- ])
-+ Sisyphus.SEARCHFILTER = self.SEARCHFILTERS['All packages']
-+
-+ Sisyphus.SEARCHTERM = "'%%'"
-+
- self.selectfilter.addItems(self.SEARCHFILTERS.keys())
- self.selectfilter.setCurrentIndex(0)
- self.selectfilter.currentIndexChanged.connect(self.setSearchFilter)
--
-- Sisyphus.SEARCHTERM = "'%%'"
-- Sisyphus.SEARCHFIELD = self.SEARCHFIELDS['Name']
-- Sisyphus.SEARCHFILTER = self.SEARCHFILTERS['All']
--
-+
-+ self.database.clicked.connect(self.rowClicked)
-+
- self.input.textEdited.connect(self.filterDatabase)
-
- self.updateThread = UpdateThread()
-@@ -66,36 +69,52 @@ def __init__(self):
-
- self.abort.clicked.connect(self.sisyphusExit)
-
-- def setSearchField(self):
-- Sisyphus.SEARCHFIELD = self.SEARCHFIELDS[self.selectfield.currentText()]
-- self.loadDatabase(Sisyphus.SEARCHFIELD,Sisyphus.SEARCHTERM,Sisyphus.SEARCHFILTER)
--
-- def setSearchFilter(self):
-- Sisyphus.SEARCHFILTER = self.SEARCHFILTERS[self.selectfilter.currentText()]
-- self.loadDatabase(Sisyphus.SEARCHFIELD,Sisyphus.SEARCHTERM,Sisyphus.SEARCHFILTER)
-
- def centerOnScreen(self):
- resolution = QtWidgets.QDesktopWidget().screenGeometry()
- self.move((resolution.width() / 2) - (self.frameSize().width() / 2),
- (resolution.height() / 2) - (self.frameSize().height() / 2))
-+
-+ def rowClicked(self):
-+ Sisyphus.PKGSELECTED = len(self.database.selectionModel().selectedRows())
-+ self.showPackageCount()
-+
-+ def showPackageCount(self):
-+ self.statusBar().showMessage("Found: %d, Selected: %d packages" %(Sisyphus.PKGCOUNT, Sisyphus.PKGSELECTED))
-+
-+ def setSearchField(self):
-+ Sisyphus.SEARCHFIELD = self.SEARCHFIELDS[self.selectfield.currentText()]
-+ self.loadDatabase()
-+
-+ def setSearchFilter(self):
-+ Sisyphus.SEARCHFILTER = self.SEARCHFILTERS[self.selectfilter.currentText()]
-+ self.loadDatabase()
-
-- def loadDatabase(self,searchField,searchTerm,searchFilter):
-- with sqlite3.connect('/var/lib/sisyphus/db/sisyphus.db') as db:
-+ def loadDatabase(self):
-+ with sqlite3.connect(sisyphus_database_path) as db:
- cursor=db.cursor()
-+ FILTEROUT = "AND cat NOT LIKE 'virtual'"
- cursor.execute('''SELECT
- a.category AS cat,
- a.name AS pn,
- a.version AS av,
- i.version AS iv,
-- a.description AS descr
-+ a.description AS descr,
-+ CASE WHEN rm.name ISNULL THEN 'no' ELSE 'yes' END AS rmv
- FROM remote_packages AS a
- LEFT JOIN local_packages AS i
- ON a.category = i.category
- AND a.name = i.name
- AND a.slot = i.slot
-- WHERE %s LIKE %s %s
-- ''' % (searchField, searchTerm, searchFilter))
-+ LEFT JOIN removeable_packages as rm
-+ ON i.category = rm.category
-+ AND i.name = rm.name
-+ AND i.slot = rm.slot
-+ WHERE %s LIKE %s %s %s
-+ ''' % (Sisyphus.SEARCHFIELD, Sisyphus.SEARCHTERM, Sisyphus.SEARCHFILTER, FILTEROUT))
- rows = cursor.fetchall()
-+ Sisyphus.PKGCOUNT = len(rows)
-+ Sisyphus.PKGSELECTED = 0
- model = QtGui.QStandardItemModel(len(rows), 5)
- model.setHorizontalHeaderLabels(['Category', 'Name', 'Available Version', 'Installed Version', 'Description'])
- for row in rows:
-@@ -104,20 +123,21 @@ def loadDatabase(self,searchField,searchTerm,searchFilter):
- item = QtGui.QStandardItem("%s"%(row[column]))
- model.setItem(indx, column, item)
- self.database.setModel(model)
-+ self.showPackageCount()
-
- def filterDatabase(self):
- search = self.input.text()
- Sisyphus.SEARCHTERM = "'%" + search + "%'"
-- self.loadDatabase(Sisyphus.SEARCHFIELD,Sisyphus.SEARCHTERM,Sisyphus.SEARCHFILTER)
-+ self.loadDatabase()
-
- def updateSystem(self):
-- self.loadDatabase(Sisyphus.SEARCHFIELD,Sisyphus.SEARCHTERM,Sisyphus.SEARCHFILTER)
-+ self.loadDatabase()
- self.updateThread.start()
-
- def packageInstall(self):
- indexes = self.database.selectionModel().selectedRows(1)
- if len(indexes) == 0:
-- self.input.setText("Please select at least one package!!!")
-+ self.statusBar().showMessage("No package selected, please pick at least one!", 3000)
- else:
- Sisyphus.PKGLIST = []
- for index in sorted(indexes):
-@@ -127,7 +147,7 @@ def packageInstall(self):
- def packageUninstall(self):
- indexes = self.database.selectionModel().selectedRows(1)
- if len(indexes) == 0:
-- self.input.setText("Please select at least one package!!!")
-+ self.statusBar().showMessage("No package selected, please pick at least one!", 3000)
- else:
- Sisyphus.PKGLIST = []
- for index in sorted(indexes):
-@@ -142,7 +162,7 @@ def orphansRemove(self):
-
- def jobDone(self):
- self.hideProgressBar()
-- self.loadDatabase(Sisyphus.SEARCHFIELD,Sisyphus.SEARCHTERM,Sisyphus.SEARCHFILTER)
-+ self.loadDatabase()
-
- def showProgressBar(self):
- self.hideButtons()
diff --git a/app-portage/sisyphus/sisyphus-0.1709-r1.ebuild b/app-portage/sisyphus/sisyphus-1.1709.ebuild
index 07a636be..cbf83f20 100644
--- a/app-portage/sisyphus/sisyphus-0.1709-r1.ebuild
+++ b/app-portage/sisyphus/sisyphus-1.1709.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=5
+EAPI=6
PYTHON_COMPAT=( python3_4 )
@@ -24,10 +24,6 @@ RDEPEND="${DEPEND}
sys-apps/portage[${PYTHON_USEDEP}]
gui? ( dev-python/PyQt5[designer,gui,widgets,${PYTHON_USEDEP}] )"
-src_prepare() {
- epatch ${FILESDIR}/${P}-r1.patch
-}
-
src_install() {
default
dosym /usr/share/${PN}/${PN}-cli.py /usr/bin/${PN}
@@ -43,3 +39,7 @@ src_install() {
rm -rf ${ED}usr/share/polkit-1
fi
}
+
+pkg_postinst() {
+ sisyphus rescue
+}