Hi!
Ich fange hier mal einen Thread an was man im Softwaremanager anpassen muss damit er *.deb kits installieren kann.
1). Der Media Scanner muss *.deb statt *.ipk anzeigen.
Also in dem File /usr/lib/enigma2/python/Components/Scanner.py
-add_type("application/x-debian-package", ".ipk")
+add_type("application/x-debian-package", ".deb")
2). Nicht unbedingt nötig, aber um Feeds anzupassen im File
/usr/lib/enigma2/python/Plugins/SystemPlugins/SoftwareManager/plugin.py
3) Die größte Änderung ist in der /usr/lib/enigma2/python/Components/Ipkg.py damit nicht nur dpkg -i statt opkg install gemacht wird, sondern vorher noch ein apt-get update und nachher ein apt-get -f -y install:
- def __init__(self, ipkg = 'opkg'):
+ def __init__(self, ipkg = 'dpkg'):
self.ipkg = ipkg
self.cmd = eConsoleAppContainer()
self.cmd_appClosed_conn = self.cmd.appClosed.connect(self.cmdFinished)
@@ -35,6 +35,7 @@
self.cmdFinished(-1)
def startCmd(self, cmd, args = None):
+ self.args=args
if cmd == self.CMD_UPDATE:
self.runCmd("update")
self.update_done = True
@@ -51,7 +52,11 @@
else:
self.runCmd("list")
elif cmd == self.CMD_INSTALL:
- self.runCmd("install " + args['package'])
+ self.precmd = eConsoleAppContainer()
+ self.precmd_appClosed_conn = self.precmd.appClosed.connect(self.preFinished)
+ self.precmd_dataAvail_conn = self.precmd.dataAvail.connect(self.cmdData)
+ print "executing apt-get update"
+ self.precmd.execute("apt-get update")
elif cmd == self.CMD_REMOVE:
append = ""
if args["autoremove"]:
@@ -59,6 +64,19 @@
self.runCmd("remove " + append + args['package'])
self.setCurrentCommand(cmd)
+ def preFinished(self, retval):
+ self.instcmd = eConsoleAppContainer()
+ self.instcmd_appClosed_conn = self.instcmd.appClosed.connect(self.instFinished)
+ self.instcmd_dataAvail_conn = self.instcmd.dataAvail.connect(self.cmdData)
+ self.instcmd.execute("dpkg -i " + self.args['package'])
+
+ def instFinished(self, retval):
+ self.postcmd = eConsoleAppContainer()
+ self.postcmd_appClosed_conn = self.postcmd.appClosed.connect(self.cmdFinished)
+ self.postcmd_dataAvail_conn = self.postcmd.dataAvail.connect(self.cmdData)
+ print "executing apt-get install -f -y --force-yes"
+ self.postcmd.execute("apt-get install -f -y --force-yes")
+
def cmdFinished(self, retval):
self.callCallbacks(self.EVENT_DONE)
@@ -94,6 +112,8 @@
elif data.startswith('Upgrading'):
self.callCallbacks(self.EVENT_UPGRADE, tokens[1])
elif data.startswith('Installing'):
+ self.callCallbacks(self.EVENT_INSTALL, tokens[1])
+ elif data.startswith('Unpacking'):
self.callCallbacks(self.EVENT_INSTALL, tokens[1])
elif data.startswith('Removing package'):
self.callCallbacks(self.EVENT_REMOVE, tokens[2])
Alles anzeigen
Kann man vielleicht schöner lösen, aber was solls.
MEHR ist eigentlich nicht nötig und schon kann der Softwaremanager im DreamOS wieder *.deb installieren, so wie früher *.ipk
Und warum müssen wir darauf jetzt eigentlich 1.5 Jahre warten