This fixes a bug where certain tab completions would be met with lots
of sed errors.
It is also faster since it uses 1 less sed process.
Additionally it will also show 'no matches' if there are no
matches found for a command completion, instead of showing
a suggestion to add 1st level commands on.
Before: equo X (no cmds left to add)
zsh suggests install, query, remove etc.
Now it will properly say there are not more suggestions
for most of the $1 terms
Entropy preserved libs handling code did not check all the followed symlink
before removing them. This causes the deletion of unexpected libraries during the
removal of packages. For example, app-emulation/vmware-workstation contains
the following symlink:
(A) /opt/vmware/lib/vmware/lib/libssl.so.1.0.1/libssl.so.1.0.1 -> (B) /usr/lib64/libssl.so.1.0.1
Upon removal of vmware-workstation, A is garbage collected and deleted,
if it's a symlink, the link is followed and (B) is removed as well, without
validating the action (i.e. checking if a package is still owning (B).)
This commit fixes this. See Sabayon bug #5812.
Traceback (most recent call last):
File "/usr/lib64/python3.4/base64.py", line 519, in _input_type_check
m = memoryview(s)
TypeError: memoryview: str object does not have the buffer interface
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/equo", line 15, in <module>
main()
File "/usr/lib/entropy/client/solo/main.py", line 332, in main
exit_st = func(*func_args)
File "/usr/lib/entropy/client/solo/commands/command.py", line 406, in _call_exclusive
return func(client)
File "/usr/lib/entropy/client/solo/commands/update.py", line 115, in _update
rc = self._normal_update(entropy_client)
File "/usr/lib/entropy/client/solo/commands/update.py", line 236, in _normal_update
rc = repo_intf.sync()
File "/usr/lib/entropy/lib/entropy/client/interfaces/repository.py", line 327, in sync
rc = self._run_sync()
File "/usr/lib/entropy/lib/entropy/client/interfaces/repository.py", line 146, in _run_sync
self._entropy, repo, self.force, self._gpg_feature)
File "/usr/lib/entropy/lib/entropy/client/interfaces/db.py", line 2764, in update
return updater.update()
File "/usr/lib/entropy/lib/entropy/client/interfaces/db.py", line 2029, in update
selected = self._select_database_mirror()
File "/usr/lib/entropy/lib/entropy/client/interfaces/db.py", line 428, in _select_database_mirror
https_validate_cert = https_validate_cert)
File "/usr/lib/entropy/lib/entropy/client/interfaces/db.py", line 1992, in _remote_revision
fetch_rc = fetcher.download()
File "/usr/lib/entropy/lib/entropy/fetchers.py", line 391, in download
status = downloader()
File "/usr/lib/entropy/lib/entropy/fetchers.py", line 600, in _urllib_download
self.__http_basic_user, self.__http_basic_pwd)).replace('\n', '')
File "/usr/lib64/python3.4/base64.py", line 548, in encodestring
return encodebytes(s)
File "/usr/lib64/python3.4/base64.py", line 536, in encodebytes
_input_type_check(s)
File "/usr/lib64/python3.4/base64.py", line 522, in _input_type_check
raise TypeError(msg) from err
TypeError: expected bytes-like object, not str
Don't show the package itself. If there are no revdeps, nothing would be
shown so a custom "(no reverse dependencies)" message will appear, which
is clearer.
- correct negated logic in EPIPE hanling
- correct ENOSPC handling (it's IOError, but OSError was catched)
- support Python 3.3+ which got reworked exceptions