Entropy is the binary package management of Sabayon Linux.
GPL v2. See COPYING for details.
Entropy Package Manager
License: GNU General Public License v2.0
Entropy is the binary package management of Sabayon Linux.
GPL v2. See COPYING for details.
For improving integration of entropy with Mottainai I propose to add support for TokenID field inside repository configuration and permit to test and use repositories available only as task artifacts or namespaces.
WDYT?
The command equo preservedlibs list
lists only the libs that have been preserved.
Adding -v
makes the same output also inform which packages are causing libs to be preserved. Personally I wouldn't expect to find said output under a --verbose
flag.
As per #41 (comment) defaulting to -v
is potentially more useful.
Alternatively and from a UI point of view, one could also argue that -v
answers a different question in which case it might make sense to split these to different commands. e.g. equo preserved libs list
and equo preserved packages list
.
This happens inside a chroot executed from iso boot with command:
equo sec oscheck -a --reinstall
☢ Hi. My name is Bug Reporter. I am sorry to inform you that the program crashed. Well, you know, shit happens.
☢ But there's something you could do to help me to be a better application.
☢ -- BUT, DO NOT SUBMIT THE SAME REPORT MORE THAN ONCE --
☢ Now I am showing you what happened. Don't panic, I'm here to help you.
Traceback (most recent call last):
File "/usr/bin/equo", line 18, 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 449, in _call_shared
return func(client)
File "/usr/lib/entropy/client/solo/commands/security.py", line 513, in _oscheck
False, 1, [], package_matches=list(valid_matches))
File "/usr/lib/entropy/client/solo/commands/install.py", line 578, in _install_action
self._advise_packages_update(entropy_client)
File "/usr/lib/entropy/client/solo/commands/_manage.py", line 690, in _advise_packages_update
entropy_client.calculate_critical_updates()
File "/usr/lib/entropy/lib/entropy/client/misc.py", line 38, in wrapped
return method(self, *args, **kwargs)
File "/usr/lib/entropy/lib/entropy/client/interfaces/dep.py", line 3029, in calculate_critical_updates
self._settings_client_plugin.packages_configuration_hash(),
File "/usr/lib/entropy/lib/entropy/client/interfaces/settings.py", line 566, in packages_configuration_hash
repository_id, ",".join(sorted(packages)),
TypeError: sequence item 0: expected string, int found
Frame packages_configuration_hash in /usr/lib/entropy/lib/entropy/client/interfaces/settings.py at line 566
repository_id = u'sabayon-weekly_ids@@:of:sabayon-weekly'
packages = set([234450])
I'm getting this error when I'm trying to upgrade the packages.
What command do I have to run to make it work?
I already tried this:
https://www.linuxquestions.org/questions/showthread.php?p=5935514#post5935514
Hello,
Using tab autocomplete for command:
equo security oscheck --assimilate
I got a crash after pressing tab just one another time.
I don't know if issue is related to this specific combination of command/options, I have not done further tests.
Here is the crash report i got:
☢ Hi. My name is Bug Reporter. I am sorry to inform you that the program crashed. Well, you know, shit happens.
☢ But there's something you could do to help me to be a better application.
☢ -- BUT, DO NOT SUBMIT THE SAME REPORT MORE THAN ONCE --
☢ Now I am showing you what happened. Don't panic, I'm here to help you.
Traceback (most recent call last):
File "/usr/bin/equo", line 18, in
main()
File "/usr/lib/entropy/client/solo/main.py", line 311, in main
cmd_obj.bashcomp(last_arg)
File "/usr/lib/entropy/client/solo/commands/security.py", line 210, in bashcomp
last_arg, outcome, self._commands)
File "/usr/lib/entropy/client/solo/commands/command.py", line 195, in _hierarchical_bashcomp
_commands = commands[item]
KeyError: u'--assimilate'
☢
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/entropy/client/solo/main.py", line 167, in handle_exception
rc = _text.ask_question(ask_msg)
File "/usr/lib/entropy/lib/entropy/output.py", line 815, in ask_question
raise KeyboardInterrupt()
KeyboardInterruptOriginal exception was:
Traceback (most recent call last):
File "/usr/bin/equo", line 18, in
main()
File "/usr/lib/entropy/client/solo/main.py", line 311, in main
cmd_obj.bashcomp(last_arg)
File "/usr/lib/entropy/client/solo/commands/security.py", line 210, in bashcomp
last_arg, outcome, self._commands)
File "/usr/lib/entropy/client/solo/commands/command.py", line 195, in _hierarchical_bashcomp
_commands = commands[item]
KeyError: u'--assimilate'
╠ +++ >>> (7/29) app-misc/sabayon-skel-17-r8
╠ ## Unpacking: app-misc:sabayon-skel-17-r8.0e2096c6a6a7e43b4cef93ff97aa67f28482e966~0.tbz2
╠ ## Installing package: app-misc/sabayon-skel-17-r8
╠ ## [Sabayon Linux skel tree]
☢ Hi. My name is Bug Reporter. I am sorry to inform you that the program crashed. Well, you know, shit happens.
☢ But there's something you could do to help me to be a better application.
☢ -- BUT, DO NOT SUBMIT THE SAME REPORT MORE THAN ONCE --
☢ Now I am showing you what happened. Don't panic, I'm here to help you.
Traceback (most recent call last):
File "/usr/bin/equo", line 16, in <module>
main()
File "/usr/lib/python3.6/site-packages/_entropy/solo/main.py", line 332, in main
exit_st = func(*func_args)
File "/usr/lib/python3.6/site-packages/_entropy/solo/commands/command.py", line 437, in _call_shared
return func(client)
File "/usr/lib/python3.6/site-packages/_entropy/solo/commands/upgrade.py", line 186, in _upgrade
relaxed, multifetch)
File "/usr/lib/python3.6/site-packages/_entropy/solo/commands/upgrade.py", line 250, in _upgrade_action
package_matches=update)
File "/usr/lib/python3.6/site-packages/_entropy/solo/commands/install.py", line 707, in _install_action
exit_st = pkg.start()
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/action.py", line 218, in start
exit_st = self._run()
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/install.py", line 260, in _run
exit_st = method()
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/install.py", line 1410, in _install_phase
return self._install_phase_unlocked(inst_repo)
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/install.py", line 1447, in _install_phase_unlocked
inst_repo, remove_package_id)
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/install.py", line 1317, in _install_package_unlocked
items_installed, items_not_installed)
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/install.py", line 2011, in _move_image_to_system_unlocked
move_st = workout_file(currentdir, item)
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/install.py", line 1804, in workout_file
protect, mask, protectskip, fromfile, tofile)
File "/usr/lib/python3.6/site-packages/entropy/client/interfaces/package/actions/_manage.py", line 327, in _handle_config_protect
protected = entropy.tools.istextfile(tofile)
File "/usr/lib/python3.6/site-packages/entropy/tools.py", line 1929, in istextfile
r = istext(f.read(blocksize))
File "/usr/lib/python3.6/codecs.py", line 321, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xda in position 0: invalid continuation byte
Frame decode in /usr/lib/python3.6/codecs.py at line 321
data = b'\xda\x1ameta\x01\x00\x00\x00\x00\x00v\x95~\x9c\x00\x00\x00$\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x004\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00'
final = False
input = b'\xda\x1ameta\x01\x00\x00\x00\x00\x00v\x95~\x9c\x00\x00\x00$\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x004\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/\x00\x00\x00'
self = <encodings.utf_8.IncrementalDecoder object at 0xb1959d10>
Even after recent fixes it's still possible that there will be errors when editing system configuration files after update in Rigo. Once Wine is installed the default text editor by xdg standards can change to its desktop file.
xdg-mime query default text/plain
helps to see this, and
xdg-mime default leafpad.desktop text/plain
usable to select other text editor (Leafpad in this example).
╠ * [core-arm] adding package: systemd-239-r1.tbz2Traceback (most recent call last):
File "/usr/lib/entropy/lib/entropy/server/interfaces/main.py", line 6924, in add_packages_to_repository
repository_id, package_filepaths, inject = inject)
File "/usr/lib/entropy/lib/entropy/server/interfaces/main.py", line 6146, in _package_injector
restricted_callback = _package_injector_check_restricted)
File "/usr/lib/entropy/lib/entropy/spm/plugins/interfaces/portage_plugin/__init__.py", line 1428, in extract_package_metadata
extract_path = pkg_dir, catch_empty = False)
File "/usr/lib/entropy/lib/entropy/tools.py", line 2159, in uncompress_tarball
for tarinfo in tar:
File "/usr/lib/python2.7/tarfile.py", line 2510, in next
tarinfo = self.tarfile.next()
File "/usr/lib/python2.7/tarfile.py", line 2358, in next
tarinfo = self.tarinfo.fromtarfile(self)
File "/usr/lib/python2.7/tarfile.py", line 1254, in fromtarfile
return obj._proc_member(tarfile)
File "/usr/lib/python2.7/tarfile.py", line 1276, in _proc_member
return self._proc_pax(tarfile)
File "/usr/lib/python2.7/tarfile.py", line 1406, in _proc_pax
value = value.decode("utf8")
File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xff in position 8: invalid start byte
Currently the output of equo preservedlibs list
also present at the end of equo upgrade
or equo install
lists libs and their original packages but not which packages are causing the libraries to be kept.
This wiki article mentions a workaround for this limitation but from my experience the packages listed may not be the direct cause of the 'preservation'.
Instead I had to resort to equo remove --pretend <package-reported-by-entropypreservedlibs>
and inspect the list of software that would be removed to find the culprit.
Another informative command was equo query required <lib.so>
which allowed identifying which packages depend on some of the libs, although one has to use the right-hand side of the output of equo preservedlibs
.
In short, entropy seems to have all the necessary machinery to provide a more user-friendly or informative output. While this machinery is mostly useful on systems that mix entropy and portage packages, it occasionally happens that entropy packages also need to preserve libs.
The proposed command equo preservedlibs why
would produce an output of this sort:
$ equo preservedlibs why
╠ /usr/lib64/libmysqlclient.so.18 [libmariadb.so.3:2 -> dev-db/mariadb-10.2.12] - due to: {dev-perl/DBD-mysql-4.44.0 dev-qt/qtsql-4.8.7-r1 dev-qt/qtsql-5.9.4}
╠ /usr/lib64/libboost_thread.so.1.63.0 [libboost_thread.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_system.so.1.63.0 [libboost_system.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_signals.so.1.63.0 [libboost_signals.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_regex.so.1.63.0 [libboost_regex.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_program_options.so.1.63.0 [libboost_program_options.so.1.63.0:2 -> dev- libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_iostreams.so.1.63.0 [libboost_iostreams.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_filesystem.so.1.63.0 [libboost_filesystem.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
╠ /usr/lib64/libboost_date_time.so.1.63.0 [libboost_date_time.so.1.63.0:2 -> dev-libs/boost-1.63.0] - due to: {sci-mathematics/rstudio-1.1.383}
Alternatively, inverting the output to aggregate on the packages causing the issue:
$ equo preservedlibs why
The following packages are causing libs to be preserved:
* dev-perl/DBD-mysql-4.44.0
- /usr/lib64/libmysqlclient.so.18 [libmariadb.so.3:2 -> dev-db/mariadb-10.2.12]
* dev-qt/qtsql-4.8.7-r1
- /usr/lib64/libmysqlclient.so.18 [libmariadb.so.3:2 -> dev-db/mariadb-10.2.12]
* dev-qt/qtsql-5.9.4
- /usr/lib64/libmysqlclient.so.18 [libmariadb.so.3:2 -> dev-db/mariadb-10.2.12]
* sci-mathematics/rstudio-1.1.383
- /usr/lib64/libboost_thread.so.1.63.0 [libboost_thread.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_system.so.1.63.0 [libboost_system.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_signals.so.1.63.0 [libboost_signals.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_regex.so.1.63.0 [libboost_regex.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_program_options.so.1.63.0 [libboost_program_options.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_iostreams.so.1.63.0 [libboost_iostreams.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_filesystem.so.1.63.0 [libboost_filesystem.so.1.63.0:2 -> dev-libs/boost-1.63.0]
- /usr/lib64/libboost_date_time.so.1.63.0 [libboost_date_time.so.1.63.0:2 -> dev-libs/boost-1.63.0]
Currently, it is not possible use kernel from external repository.
We could use classic search command and then through a variable identify package prefix that by default is sys-kernel/linux-sabayon.
Variable could be SAB_KERNEL_SWITCHER_PREFIX for example.
$ sudo equo i ncurses
╠ @@ Computing dependencies...
╠ ## [R] [sabayon-weekly] sys-libs/ncurses-6.0-r1|0 [6.0-r1|0]
╠ @@ Packages to install/update/remove: 1
╠ @@ Packages to remove: 0
╠ @@ Download size: 0b
╠ @@ Freed disk space: 0.0b
╠ @@ You need at least: 6.1MB free disk space
╠ ::: >>> (1/1) 1 Package
╠ ## downloading: 1 Package
╠ ## ( mirror #1 ) [sys-libs:ncurses-6.0-r1.fb6b109801b25fda6b67fa53c5f9dc8ca073f763~0.tbz2] @ http://debian.mirror.dkm.cz
╠ ## Bulk download: 1 item
╠ # [1] debian.mirror.dkm.cz => sys-libs:ncurses-6.0-r1.fb6b109801b25fda6b67fa53c5f9dc8ca073f763~0.tbz2
╠ ## Checking check sum…
╠ ## ( mirror #1 ) [sys-libs:ncurses-6.0-r1.fb6b109801b25fda6b67fa53c5f9dc8ca073f763~0.tbz2] successful @ http://debian.mirror.dkm.cz
╠ +++ >>> (1/1) sys-libs/ncurses-6.0-r1
╠ ## Unpacking: sys-libs:ncurses-6.0-r1.fb6b109801b25fda6b67fa53c5f9dc8ca073f763~0.tbz2
╠ ## Package phase: preinstall
╠ ## Installing Package: sys-libs/ncurses-6.0-r1
╠ ## [console display library]
╠ ## Updating installed packages repository: sys-libs/ncurses-6.0-r1
╠ ## Cleaning up previously installed application data.
error: No urls, filenames, or requirements specified (see --help)
☢ ## An error occurred. Action aborted.
╠ @@ No configuration files to update.
☛ There are 4 preserved libraries on the system
╠ /usr/lib64/libpanelw.so.5.9 [libpanelw.so.5:2 -> sys-libs/ncurses-5.9-r4]
╠ /usr/lib64/libpanelw.so.5 [libpanelw.so.5:2 -> sys-libs/ncurses-5.9-r4]
╠ /lib64/libncursesw.so.5.9 [libncursesw.so.5:2 -> sys-libs/ncurses-5.9-r4]
╠ /lib64/libncursesw.so.5 [libncursesw.so.5:2 -> sys-libs/ncurses-5.9-r4]
The error message stem from pypa/pip#1425 but I could not figure out how to get rid of it.
As
entropy/lib/entropy/core/__init__.py
Line 170 in b17686f
easy_install
which seem to cause this error message).
Would be happy for tipps.
I can use the system as usual except some artefacts (like old unused (?) ncurses versions above).
For development I use currently python3.5 and I see that if I have this version when execute equo install command I receive this exception:
╠ ## Unpacking: app-office:libreoffice-5.2.5.1.259b8568ff6da2de17c77afb28e160715ef0dcf9~0.tbz2
Traceback (most recent call last):
File "/usr/lib/entropy/lib/entropy/client/interfaces/package/actions/install.py", line 438, in _unpack_package
catch_empty = True
File "/usr/lib/entropy/lib/entropy/tools.py", line 2172, in uncompress_tarball
_setup_file_metadata(tarinfo, epath)
File "/usr/lib/entropy/lib/entropy/tools.py", line 2110, in _setup_file_metadata
tar.chown(tarinfo, epath)
TypeError: chown() missing 1 required positional argument: 'numeric_owner'
☢ ## Unable to unpack package
☢ ## An error occurred while trying to unpack the package. Check if your system is healthy. Error: 1
I will try to see if there is a solution to this cross python version in the next weeks.
Before enabling Python 3 (in ebuild, after releasing Entropy with the changes related to sitedir), it's good to have a look at these.
please add more if found
to reproduce:
+ packages = entropy_client.Spm().search_paths_owners(["/bin/ls"])
File "./client/equo.py", line 16, in <module>
main()
File "/.../entropy/client/solo/main.py", line 332, in main
exit_st = func(*func_args)
File "/...entropy/client/solo/commands/command.py", line 437, in _call_shared
return func(client)
File "/.../entropy/client/solo/commands/libtest.py", line 112, in _test
packages = entropy_client.Spm().search_paths_owners(["/bin/ls"])
File "/.../entropy/lib/entropy/spm/plugins/interfaces/portage_plugin/__init__.py", line 2105, in search_paths_owners
slot = self.get_installed_package_metadata(pkg, "SLOT")
File "/.../entropy/lib/entropy/spm/plugins/interfaces/portage_plugin/__init__.py", line 759, in get_installed_package_metadata
package, key, root = root)
File "/.../entropy/lib/entropy/spm/plugins/interfaces/portage_plugin/__init__.py", line 775, in _get_installed_package_metadata
return vartree.dbapi.aux_get(package, [key])[0]
File "/usr/lib64/python3.6/site-packages/portage/dbapi/vartree.py", line 741, in aux_get
mydir = self.getpath(mycpv)
File "/usr/lib64/python3.6/site-packages/portage/dbapi/vartree.py", line 228, in getpath
rValue = self._eroot + VDB_PATH + _os.sep + mykey
TypeError: must be str, not bytes
it's due to stdout of process being bytes and then:
vartree.dbapi.aux_get(b'sys-apps/coreutils-8.30', ['SLOT'])
*** TypeError: must be str, not bytes
"Dictionary size changed after iteration", I think it was in lib/entropy/server/interfaces/main.py:
if srv_dbcache is not None:
for item in srv_dbcache.keys():
try:
srv_dbcache[item].close()
except ProgrammingError: # already closed?
pass
srv_dbcache.clear()
packing with list()
should help, something similar was done in 70bc63e , but I propose to investigate further if it's really OK to do. It's somewhat complex why the dict. is actually mutated; from what I saw and recall, it's about closing all repositories which somehow lead into dict. modification (through del sets_data[invalid_set]
in _get_configured_package_sets
?).
It could be related to srv_dbcache
keeping the same repo but without different settings (rw/ro etc.) as dict keys, especially srv_dbcache
. It was however added long time ago during development, so… maybe it really works as intended and just needs a list()
. A better or another look is needed.
NameError: name 'file' is not defined
in matter and rigo_app, type=file
in argparser.
Traceback (most recent call last):
File "./rigo/rigo_app.py", line 939, in _permissions_setup
self._work_view_c.setup()
File "/.../entropy/rigo/rigo/ui/gtk3/controllers/work.py", line 208, in setup
box = self._setup_terminal_area()
File "/.../entropy/rigo/rigo/ui/gtk3/controllers/work.py", line 104, in _setup_terminal_area
_("<i>Show <b>Application Management</b> Progress</i>")))
TypeError: Must be string, not bytes
File "./client/equo.py", line 16, in <module>
main()
File "/.../entropy/client/solo/main.py", line 332, in main
exit_st = func(*func_args)
File "/.../entropy/client/solo/commands/command.py", line 437, in _call_shared
return func(client)
File "/.../entropy/client/solo/commands/libtest.py", line 129, in _test
inst_repo, dump_results_to_file=dump, silent=quiet)
File "/.../entropy/lib/entropy/qa.py", line 689, in test_shared_objects
mywalk_iter = os.walk(etpConst['systemroot'] + ldpath)
TypeError: must be str, not bytes
if item[9] != "_"
(item is a byte array) which is never True (that's OKish) and silently so (that's not) because Python 3 (b'bla'[idx] is int). After fixing this, 7. occurs. Visible problem: eit commit does not warn about unmerged conf files.
To do: try to find all such occurences.
eit commit:
File "/root/t/entropy/lib/entropy/client/misc.py", line 251, in _load_maybe_add
darkgreen(filepath),
File "/root/t/entropy/lib/entropy/output.py", line 412, in darkgreen
return colorize("darkgreen", text)
File "/root/t/entropy/lib/entropy/output.py", line 286, in colorize
return codes[color_key] + text + codes["reset"]
TypeError: must be str, not bytes
eit commit:
diff: b'/etc/ufw/._cfg0000_user6.rules': Nie ma takiego pliku ani katalogu diff: b'/etc/ufw/user6.rules': Nie ma takiego pliku ani katalogu
(means ENOENT)
Equo is a dangerous tool without using --ask, in particular equo remove
.
It would be very useful to have a config option, preferrably defaulting to "yes", having the same effect as passing --ask.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.