Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing the eopkg4-bin package #1316

Open
sheepman4267 opened this issue Jan 15, 2024 · 19 comments
Open

Testing the eopkg4-bin package #1316

sheepman4267 opened this issue Jan 15, 2024 · 19 comments
Labels
Feature Something can be enhanced. Plumbing Core components Tooling Tools and scripts

Comments

@sheepman4267
Copy link
Member

sheepman4267 commented Jan 15, 2024

⚠️ WARNING! ⚠️ WARNING! ⚠️ WARNING! ⚠️

This is a very new packaging effort, building a binary version of a relatively untested python3 version of eopkg. It probably won't break your system, but it definitely could. Do not use this if you don't know what you're doing.

despicable-me-animation
With that out of the way, this issue exists as a repository for test results and discussion of the new compiled binary version of eopkg4. Place concerns about the actual package in the draft PR, but discussions and testing of the binary itself here.

For installation instructions, see here: https://github.com/getsolus/packages/tree/main/packages/e/eopkg4-bin

And Do not use this if you don't know what you're doing!!!

How to use eopkg4-bin as a convenient replacement for eopkg py2

# bash/zsh
alias eopkg='sudo eopkg4-bin'
# fish
abbr eopkg --position anywhere "eopkg4-bin"

eopkg commands test matrix

Notes

  • This list was taken from the eopkg.1 man page, I have removed all the explainer text.
  • Add notes below a checkmark if it fails somehow
  • To check off a box: Run the command, see that it behaves, check off the box and add your name next to it so we have some tracking of who did what.

OPTIONS

  • -D, --destdir
  • -y, `--yes-all
  • -u, --username
  • -p, --password
  • -L, --bandwidth-limit (David)
  • -v, --verbose (David)
  • -d, --debug (David)
  • -h, --help
  • --version
  • -N, --no-color

SUBCOMMANDS

  • add-repo (ar) <repo-name> <repo URI>
    • --ignore-check
    • --no-fetch
    • --at @ermo : This one is interesting. It takes an integer as argument. I wonder if this is a way to sort out repo priority?
  • autoremove (rmf) <package1> <package2> ...
    • --ignore-dependency
    • --ignore-comar
    • --ignore-safety
    • -n, --dry-run
    • -p, --purge ermo: Doesn't appear to do anything? Not sure what it's supposed to be doing either...
  • blame (bl) <packagename>
    • -r, --release
    • -a, --all
  • build (bi) <path to pspec.xml>
  • check <package?>
    • -c, --component
    • --config
  • clean
  • configure-pending (cp)
  • delete-cache (dc)
  • delta (dt) <oldpackage1> <newpackage>
    • -t, --newest-package
    • -O, --output-dir
    • -F, --package-format
  • disable-repo (dr) <name>
  • emerge (em) <name> 🚫 not a recognized command
  • enable-repo (er) <name>
  • fetch (fc) <name>
    • -o, --output-dir
  • help (?) <subcommand?>
  • history (hs)
  • index (ix) <directory> ❌ System error. Program terminated. Invalid attribute name 'xml:lang' (see this comment)
    • -a, --absolute-urls
    • -o, --output
    • --compression-types
    • --skip-sources
    • --skip-signing
  • info
    • -f, --files
    • -c, --component
    • -F, --files-path
    • -s, --short
    • --xml Evan, David confirms ❌ System error. Program terminated. Invalid attribute name 'xml:lang'
  • install (it) <name>
    • --ignore-dependency
    • --ignore-comar
    • --ignore-safety
    • -n, --dry-run
    • --reinstall
    • --ignore-check
    • --ignore-file-conflicts
    • --ignore-package-conflicts
    • -c, --component ermo --component ✔️, ❌ sheepman Error, the program tried to call itself with '-c' argument. Disable with '--no-deployment-flag=self-execution'.
    • -r, --repository
    • -f, --fetch-only
    • -x, --exclude
    • --exclude-from <filename>
  • list-available <la> <repo name?>
    • -l, --long
    • -c, --component ermo --component ✔️, -c = ❌, Error, the program tried to call itself with '-c' argument. Disable with '--no-deployment-flag=self-execution'.
    • -U, --uninstalled
  • list-components (lc)
    • l, --long
    • r, --repository
  • list-installed (li)
    • -a, --automatic
    • -b, --build-host
    • -l, --long
    • -c, --component ermo --component ✔️, -c = ❌, Error, the program tried to call itself with '-c' argument. Disable with '--no-deployment-flag=self-execution'.
    • -i, --install-info
  • list-newest (ln) <repo?>
    • -s, --since
    • -l, --last
  • list-pending (lp)
  • list-repo (lr)
  • list-sources (ls) 🚫 not a recognized command
    • -l, --long
  • list-upgrades (lu)
    • -l, --long
    • -c, --component ermo --component ✔️, -c = ❌, Error, the program tried to call itself with '-c' argument. Disable with '--no-deployment-flag=self-execution'.
    • -i, --install-info
  • rebuild-db (rdb)
    • -f, --files
  • remove (rm) <package1> <package2> ...
    • --ignore-comar
    • --ignore-safety
    • -n, --dry-run
    • -p, --purge
    • -c, --component
  • remove-orphans (rmo)
    • --ignore-comar
    • --ignore-safety
    • -n, --dry-run
    • -p, --purge
  • search (sr) <term>
    • -l, --language (seems to work but it's slower)
    • -r, --repository
    • -i, --installdb
    • -s, --sourcedberror: no such option: -s/--sourcedb
    • --name
    • --summary
    • --description
  • search-file (sf) <path>
    • -l, --long (same output and behaviour as without -l/--long)
    • -q, --quiet
  • update-repo (ur) <reponame?>
    • -f, --force
  • upgrade (up) <package-name?>
    • --ignore-comar
    • --ignore-safety
    • -n, --dry-run
    • --security-only
    • -b, --bypass-update-repo
    • --ignore-file-conflicts
    • --ignore-package-conflicts
    • -c, --component
    • -r, --repository
    • -f, --fetch-only
    • -x, --exclude
    • --exclude-from <filename>
@EbonJaeger
Copy link
Member

EbonJaeger commented Jan 16, 2024

The test matrix lists an emerge command, but there's no help entry for it. In fact, that command doesn't appear to exist.

@EbonJaeger
Copy link
Member

eopkg info nano --xml fails with this:

❯ eopkg info nano --xml
System error. Program terminated.
Invalid attribute name 'xml:lang'
Please use 'eopkg help' for general help.
Use --debug to see a traceback.

@EbonJaeger
Copy link
Member

eopkg list-sources does not seem to be a command.

@livingsilver94
Copy link
Member

eopkg hs -l <number> prints the same output as the old eopkg. LGTM.

@livingsilver94
Copy link
Member

eopkg hs -t <number> actually reverts to a previous snapshot.
Re-running the same command is no-op as expected.
If I keep going back with the number, at a certain point it asks to uninstall eokg4-bin (obviously). If I say no it correctly stops.

@livingsilver94
Copy link
Member

eopkg hs -s successfully takes a snapshot. I can also revert to that snapshot with eopkg hs -t <number> after I installed some packages.

@livingsilver94
Copy link
Member

The --no-color global flag works with install and history -t.

@livingsilver94
Copy link
Member

The -y global flag works with install, rmf and history.

@livingsilver94
Copy link
Member

eopkg it --reinstall works with a bunch of different package names.

@livingsilver94
Copy link
Member

livingsilver94 commented Jan 17, 2024

The -D global flag works with ar, ur and it.

@livingsilver94
Copy link
Member

I don't know how eopkg sr --language is supposed to be tested since I'm sure all packages in our repo are described in English. Anyway, eopkg4 output is the same of eopkg.

Side note, eopkg4 is 360% slower than eopkg (2.9s compared to 0.8). I suspect this isn't the only case where it's slower.

@livingsilver94
Copy link
Member

eopkg it --ignore-dependency works. Can also uninstall the package it installed correctly.

@livingsilver94
Copy link
Member

eopkg sf <keyword> works. The order of results is different but the content is the same.

@ermo
Copy link
Contributor

ermo commented Jan 24, 2024

Successfully did:

  • sudo eopkg4-bin it --components games.action
  • sudo eopkg4-bin rm --components games.action
  • sudo eopkg4-bin rmo.

All worked as expected.

@ermo
Copy link
Contributor

ermo commented Jan 31, 2024

ermo@solbox:~/repos/getsolus/solpkgs/common/Scripts [cpesearch-updates* +1 ~0 -0 !]
$ command -v eopkg
alias eopkg='sudo eopkg4-bin'
ermo@solbox:~/repos/getsolus/solpkgs/common/Scripts [cpesearch-updates* +1 ~0 -0 !]
$ eopkg index --debug --skip-signing /var/lib/solbuild/local/ --output /var/lib/solbuild/local/eopkg-index.xml
Building index of eopkg files under /var/lib/solbuild/local/

Adding package to index: eopkg4-bin-4.0.0-1-1-x86_64.eopkg                      
System error. Program terminated.
<class 'ValueError'>: Invalid attribute name 'xml:lang'
Please use 'eopkg help' for general help.

Traceback:
  File "/tmp/onefile_105690_1706734511_616010/eopkg-cli", line 73, in <module>
  File "/tmp/onefile_105690_1706734511_616010/eopkg-cli", line 70, in main
  File "/tmp/onefile_105690_1706734511_616010/pisi/cli/pisicli.py", line 131, in run_command
  File "/tmp/onefile_105690_1706734511_616010/pisi/cli/index.py", line 82, in run
  File "/tmp/onefile_105690_1706734511_616010/pisi/api.py", line 808, in index
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 524, in write
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 365, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 624, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 858, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 792, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 363, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 365, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 624, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 916, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/autoxml.py", line 91, in encode
  File "/tmp/onefile_105690_1706734511_616010/pisi/pxml/xmlext.py", line 44, in setNodeAttribute
  File "src/lxml/etree.pyx", line 2446, in lxml.etree._Attrib.__setitem__
  File "src/lxml/apihelpers.pxi", line 586, in lxml.etree._setAttributeValue
  File "src/lxml/apihelpers.pxi", line 1764, in lxml.etree._attributeValidOrRaise

@EbonJaeger
Copy link
Member

When trying to install a package and there are dependencies or system packages that should be updated, eopkg4-bin fails.

❯ sudo eopkg4-bin it vscode
Updates available, checking reverse dependencies of runtime dependencies for safety.
Safety switch forces the upgrade of following packages:
audit  less  systemd
System error. Program terminated.
Repo item
   not found
Please use 'eopkg help' for general help.
Use --debug to see a traceback.

Full traceback:

❯ sudo eopkg4-bin it vscode --debug
DEBUG: InstallDB initialized in 0.0014789104461669922.
DEBUG: RepoDB initialized in 9.822845458984375e-05.
DEBUG: PackageDB initialized in 2.165886878967285.
Updates available, checking reverse dependencies of runtime dependencies for safety.
DEBUG: HistoryDB initialized in 0.00012803077697753906.
DEBUG: InstallDB initialized in 0.0008413791656494141.
DEBUG: RepoDB initialized in 9.751319885253906e-05.
DEBUG: ComponentDB initialized in 0.4143648147583008.
DEBUG: PackageDB initialized in 1.919245719909668.
digraph G {


}
Safety switch forces the upgrade of following packages:
audit  less  systemd
digraph G {
systemd[ label = "systemd(253.16,143)" ];
systemd_devel[ label = "systemd-devel(253.16,143)" ];
audit[ label = "audit(3.1.2,12)" ];
less[ label = "less(643,20)" ];
systemd_32bit[ label = "systemd-32bit(253.16,143)" ];

systemd_devel -> systemd;
systemd_32bit -> systemd;

}
DEBUG: checking kerberos release >= 21
DEBUG: checking mesalib release >= 218
DEBUG: checking dbus release >= 37
DEBUG: checking expat release >= 26
DEBUG: checking libstdc++ release >= 76
DEBUG: checking libdrm release >= 46
System error. Program terminated.
<class 'Exception'>: Repo item
   not found
Please use 'eopkg help' for general help.

Traceback:
  File "/tmp/onefile_6398_1706975296_616265/eopkg-cli", line 73, in <module>
  File "/tmp/onefile_6398_1706975296_616265/eopkg-cli", line 70, in main
  File "/tmp/onefile_6398_1706975296_616265/pisi/cli/pisicli.py", line 131, in run_command
  File "/tmp/onefile_6398_1706975296_616265/pisi/cli/install.py", line 165, in run
  File "/tmp/onefile_6398_1706975296_616265/pisi/api.py", line 67, in wrapper
  File "/tmp/onefile_6398_1706975296_616265/pisi/api.py", line 500, in install
  File "/tmp/onefile_6398_1706975296_616265/pisi/operations/install.py", line 53, in install_pkg_names
  File "/tmp/onefile_6398_1706975296_616265/pisi/operations/install.py", line 359, in plan_install_pkg_names
  File "/tmp/onefile_6398_1706975296_616265/pisi/pgraph.py", line 38, in add_dep
  File "/tmp/onefile_6398_1706975296_616265/pisi/db/packagedb.py", line 96, in get_package
  File "/tmp/onefile_6398_1706975296_616265/pisi/db/packagedb.py", line 213, in get_package_repo
  File "/tmp/onefile_6398_1706975296_616265/pisi/db/itembyrepo.py", line 40, in get_item_repo

@EbonJaeger
Copy link
Member

Hm I might have had an old version of eopkg4-bin installed. Time will tell if the above is fixed or not.

@ermo
Copy link
Contributor

ermo commented Feb 27, 2024

@EbonJaeger @sheepman4267 @joebonrichie @livingsilver94 :

Have any of you found anything concerning with eopkg4-bin release 4 since python-3.11 landed?

For context, I haven't and even though eopkg4-bin release 4 was built against python-3.10, in my tests it can trivially upgrade itself to a bumped eopkg4-bin release 5 built against python-3.11 and back again to the eopkg4-bin release 4 version with no breakage observed either before, during or after...

@EbonJaeger
Copy link
Member

I haven't noticed anything different. Everything seems to be working exactly as it did before for me.

@ermo ermo added Plumbing Core components Feature Something can be enhanced. Tooling Tools and scripts labels Feb 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Something can be enhanced. Plumbing Core components Tooling Tools and scripts
Projects
Status: In Progress
Development

No branches or pull requests

4 participants