OP
Ja kann ich. Es kommt dann keine Fehlermeldung aber er druckt auch nicht.
Ich installiere meinen immer nach den Anleitungen, hp-setup sagt das auch.Netzwerk. Schon immer. Suse 15.1 und älter ohne Probleme.
Run "hp-plugin" to installa plugin libraries if you are not automatically prompted
Traceback (most recent call last):
File "/usr/share/hplip/ui4/setupdialog.py", line 1307, in NextButton_clicked
self.showAddPrinterPage()
File "/usr/share/hplip/ui4/setupdialog.py", line 731, in showAddPrinterPage
self.readwriteFaxInformation()
File "/usr/share/hplip/ui4/setupdialog.py", line 1102, in readwriteFaxInformation
d = fax.getFaxDevice(self.fax_uri, disable_dbus=True)
File "/usr/share/hplip/fax/fax.py", line 534, in getFaxDevice
return MarvellFaxDevice(device_uri, printer_name, callback, fax_type, disable_dbus)
File "/usr/share/hplip/fax/marvellfax.py", line 109, in __init__
self.service.SendEvent(device_uri, printer_name, EVENT_FAX_FAILED_MISSING_PLUGIN, os.getenv('USER'), job_id, "Plugin is not installed")
AttributeError: 'NoneType' object has no attribute 'SendEvent'
Done.
if pluginObj.getStatus() != pluginhandler.PLUGIN_INSTALLED:
self.libfax_marvell = cdll.LoadLibrary(lib_name)
#log.error("Loading %s failed. Try after installing plugin libraries\n" %lib_name);
#log.info("Run \"hp-plugin\" to installa plugin libraries if you are not automatically prompted\n")
#job_id =0;
#self.service.SendEvent(device_uri, printer_name, EVENT_FAX_FAILED_MISSING_PLUGIN, os.getenv('USER'), job_id, "Plugin is not installed")
#sys.exit(1)
else:
self.libfax_marvell = cdll.LoadLibrary(lib_name)
pluginObj.getStatus()
def getStatus(self):
self.__readPluginStatus()
log.debug("Plugin status = %s"%self.__plugin_state)
return self.__plugin_state
def __readPluginStatus(self):
plugin_state_conf = ConfigBase( PLUGIN_STATE_FILE)
self.__plugin_state = plugin_state_conf.get('plugin', 'installed', PLUGIN_NOT_INSTALLED)
if self.__plugin_state == PLUGIN_NOT_INSTALLED:
self.__installed_version = ''
else:
self.__installed_version = plugin_state_conf.get('plugin','version', '')
hplip_version = sys_conf.get('hplip', 'version', '0.0.0')
if self.__installed_version != hplip_version:
self.__plugin_state = PLUGIN_VERSION_MISMATCH
else:
home = sys_conf.get('dirs', 'home')
copies = self.__getPluginFilesList( home )
for src, trg, link in copies:
if link != "":
if not utils.check_library(link):
self.__plugin_state = PLUGIN_FILES_CORRUPTED
def __getPluginFilesList(self, src_dir):
if not os.path.exists(src_dir+"/plugin.spec"):
log.warn("%s/plugin.spec file doesn't exists."%src_dir)
return []
cwd = os.getcwd()
os.chdir(src_dir)
plugin_spec = ConfigBase("plugin.spec")
products = plugin_spec.keys("products")
BITNESS = utils.getBitness()
ENDIAN = utils.getEndian()
PPDDIR = sys_conf.get('dirs', 'ppd')
DRVDIR = sys_conf.get('dirs', 'drv')
HOMEDIR = sys_conf.get('dirs', 'home')
DOCDIR = sys_conf.get('dirs', 'doc')
CUPSBACKENDDIR = sys_conf.get('dirs', 'cupsbackend')
CUPSFILTERDIR = sys_conf.get('dirs', 'cupsfilter')
RULESDIR = '/etc/udev/rules.d'
BIN = sys_conf.get('dirs', 'bin')
# Copying plugin.spec file to home dir.
if src_dir != HOMEDIR:
shutil.copyfile(src_dir+"/plugin.spec", HOMEDIR+"/plugin.spec")
os.chmod(HOMEDIR+"/plugin.spec",0o644)
processor = utils.getProcessor()
if processor == 'power_machintosh':
ARCH = 'ppc'
elif (processor == 'armv6l' or processor == 'armv7l' or processor == 'aarch64' or processor == 'aarch32'):
ARCH = 'arm%d' % BITNESS
else:
ARCH = 'x86_%d' % BITNESS
if BITNESS == 64:
SANELIBDIR = '/usr/lib64/sane'
LIBDIR = '/usr/lib64'
else:
SANELIBDIR = '/usr/lib/sane'
LIBDIR = '/usr/lib'
copies = []
for PRODUCT in products:
MODEL = PRODUCT.replace('hp-', '').replace('hp_', '')
for s in plugin_spec.get("products", PRODUCT).split(','):
if not plugin_spec.has_section(s):
log.error("Missing section [%s]" % s)
os.chdir(cwd)
return []
src = plugin_spec.get(s, 'src', '')
trg = plugin_spec.get(s, 'trg', '')
link = plugin_spec.get(s, 'link', '')
if not src:
log.error("Missing 'src=' value in section [%s]" % s)
os.chdir(cwd)
return []
if not trg:
log.error("Missing 'trg=' value in section [%s]" % s)
os.chdir(cwd)
return []
src = os.path.basename(utils.cat(src))
trg = utils.cat(trg)
if link:
link = utils.cat(link)
copies.append((src, trg, link))
copies = utils.uniqueList(copies)
copies.sort()
os.chdir(cwd)
return copies
def __readPluginStatus(self):
plugin_state_conf = ConfigBase( PLUGIN_STATE_FILE)
self.__plugin_state = plugin_state_conf.get('plugin', 'installed', PLUGIN_NOT_INSTALLED)
if self.__plugin_state == PLUGIN_NOT_INSTALLED:
self.__installed_version = ''
else:
self.__installed_version = plugin_state_conf.get('plugin','version', '')
hplip_version = sys_conf.get('hplip', 'version', '0.0.0')
if self.__installed_version != hplip_version:
self.__plugin_state = PLUGIN_VERSION_MISMATCH
else:
home = sys_conf.get('dirs', 'home')
copies = self.__getPluginFilesList( home )
for src, trg, link in copies:
if link != "":
if not utils.check_library(link):
self.__plugin_state = PLUGIN_FILES_CORRUPTED
def check_library( so_file_path):
ret_val = False
if not os.path.exists(so_file_path):
log.debug("Either %s file is not present or symbolic link is missing" %(so_file_path))
else:
# capturing real file path
if os.path.islink(so_file_path):
real_file = os.path.realpath(so_file_path)
else:
real_file = so_file_path
if not os.path.exists(real_file):
log.debug("%s library file is missing." % (real_file))
elif (os.stat(so_file_path).st_mode & 72) != 72:
log.debug("%s library file doesn't have user/group execute permission." % (so_file_path))
else:
log.debug("%s library file present." % (so_file_path))
ret_val = True
log.debug("%s library status: %d" % (so_file_path, ret_val))
return ret_val
Das sind aber immer unterschiedliche Pfade für dieselben Dateien, ich nehme mal an für unterschiedliche Distributionen.Habe noch etwas weiter gedebuggt, in /usr/share/hplip/plugin.spec sind Pfade (i386-gnu-linux und x86_64-gnu-linux) angegeben die es unter openSuse 15.1 und 15.2 nicht gibt. Mit hplip 3.18.6 waren diese Pfade dort nicht angegeben. Sprich hp-setup wird ab irgendeiner Version zwischen 3.18.6 und 3.20.9 weder auf 15.1 noch 15.2 funktionieren. Wahrscheinlich reicht es aus einfach alle Pfade im spec File zu berichtigen.
[hp2000S1_plugin_6]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib/x86_64-linux-gnu/sane/libsane-hp2000S1.so.1
[hp2000S1_plugin_3]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib64/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib64/sane/libsane-hp2000S1.so
[hp2000S1_plugin_4]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib64/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib64/sane/libsane-hp2000S1.so.1
[hp2000S1_plugin_5]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib/x86_64-linux-gnu/sane/libsane-hp2000S1.so
[hp2000S1_plugin_6]
src=scan/sane/libsane-hp2000S1-$ARCH.so.1.0.25
trg=/usr/lib/sane/libsane-hp2000S1-$ARCH.so.1.0.25
link=/usr/lib/x86_64-linux-gnu/sane/libsane-hp2000S1.so.1
ls -al /usr/lib64/sane/libsane-hp2*
lrwxrwxrwx 1 root root 49 1. Okt 09:40 /usr/lib64/sane/libsane-hp2000S1.so -> /usr/lib64/sane/libsane-hp2000S1-x86_64.so.1.0.25
lrwxrwxrwx 1 root root 49 1. Okt 09:40 /usr/lib64/sane/libsane-hp2000S1.so.1 -> /usr/lib64/sane/libsane-hp2000S1-x86_64.so.1.0.25
-rwxr-xr-x 1 root root 3811216 1. Okt 09:40 /usr/lib64/sane/libsane-hp2000S1-x86_64.so.1.0.25
/usr/lib/x86_64-linux-gnu/sane/
Hier läuft es.......Also ich bin mir sehr sicher, wer auf 3.20.9 ist wird hp-setup unter opensuse wegen des Spec Files nicht ans laufen bekommen.