Package Details: portmod 2.8.0-1

Git Clone URL: https://aur.archlinux.org/portmod.git (read-only, click to copy)
Package Base: portmod
Description: A cli tool to manage mods for OpenMW
Upstream URL: https://gitlab.com/portmod/portmod
Licenses: GPL3
Replaces: openmmm
Submitter: bmwinger
Maintainer: bmwinger
Last Packager: bmwinger
Votes: 8
Popularity: 0.000047
First Submitted: 2019-08-11 01:45 (UTC)
Last Updated: 2024-12-12 23:00 (UTC)

Latest Comments

1 2 3 Next › Last »

Dornhoeschen commented on 2024-12-11 15:35 (UTC)

Followup on https://aur.archlinux.org/packages/portmod#comment-1001909

Reason for this seems:

[...]
==> Starting package()...
/usr/lib/python3.12/site-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
!!

        ********************************************************************************
        Requirements should be satisfied by a PEP 517 installer.
        If you are using pip, you can try `pip install --use-pep517`.
        ********************************************************************************

!!
  dist.fetch_build_eggs(dist.setup_requires)
WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section'
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/setuptools_scm/_integration/pyproject_reading.py", line 36, in read_pyproject
    section = defn.get("tool", {})[tool_name]
              ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'setuptools_scm'
running install
/usr/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!

        ********************************************************************************
        Please avoid running ``setup.py`` directly.
        Instead, use pypa/build, pypa/installer or other
        standards-based tools.

        See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
        ********************************************************************************

!!
  self.initialize_options()
running install_lib
warning: install_lib_rust_extension: 'build/lib.linux-x86_64-cpython-312' does not exist -- no Python modules to install

running install_data
[...]

Dornhoeschen commented on 2024-12-11 14:56 (UTC) (edited on 2024-12-11 15:10 (UTC) by Dornhoeschen)

Followup of https://aur.archlinux.org/packages/portmod#comment-1001906

Which results in

 Finished `release` profile [optimized] target(s) in 2m 47s
Copying rust artifact from target/release/libportmod.so to portmodlib/portmod.cpython-312-x86_64-linux-gnu.so
make: Entering directory '/home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc'
Running Sphinx v8.1.3
loading translations [en]... done
making output directory... done
[autosummary] generating autosummary for: basic-usage.rst, cli/index.rst, cli/inquisitor.rst, cli/portmod.rst, concepts/cfg-protect.rst, concepts/index.rst, concepts/keywords.rst, concepts/modules.rst, concepts/profiles.rst, concepts/sandbox.rst, ..., dev/repo/package-files.rst, dev/repo/profiles.rst, dev/setup.rst, dev/use-flags.rst, index.rst, install/index.rst, install/linux.rst, install/macos.rst, install/windows.rst, setup.rst
loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ...
Creating file /home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc/dev/pybuild/pybuild.rst.
Creating file /home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc/dev/pybuild/pybuild.info.rst.
Creating file /home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc/dev/pybuild/pybuild.winreg.rst.
building [mo]: targets for 0 po files that are out of date
writing output... 
building [man]: all manpages
updating environment: [new config] 47 added, 0 changed, 0 removed
reading sources... [  9%] cli/portmod
Exception occurred:
  File "/home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/portmod/prefix.py", line 125, in add_prefix
    raise PrefixExistsError(prefix)
portmod.prefix.PrefixExistsError: The prefix <example> already exists
The full traceback has been saved in /tmp/sphinx-err-3r3s42zf.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [Makefile:20: man] Error 2
make: Leaving directory '/home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc'
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: portmod-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
portmod - exit status 4

Which can be solved with rm -rf /tmp/portmod.test/ - see https://aur.archlinux.org/packages/portmod#comment-994980

This makes things install successfully, which results in

> portmod --version
Traceback (most recent call last):
  File "/usr/bin/portmod", line 33, in <module>
    sys.exit(load_entry_point('portmod==2.8.0', 'console_scripts', 'portmod')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/portmod", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'portmod'

Dornhoeschen commented on 2024-12-11 14:42 (UTC) (edited on 2024-12-11 14:54 (UTC) by Dornhoeschen)

@tuxayo

yay -S lld aka pacman -S lld solves this Problem.

@bmwinger

With this new flag compiler flag -fuse-ld=lld the package has an additional dependency on the above mentioned package

I still fail to install the package even after installing lld, because the docs cant be generated.

    Finished `release` profile [optimized] target(s) in 2m 43s
Copying rust artifact from target/release/libportmod.so to portmodlib/portmod.cpython-312-x86_64-linux-gnu.so
make: Entering directory '/home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc'
Running Sphinx v8.1.3
loading translations [en]... done
making output directory... done
[autosummary] generating autosummary for: basic-usage.rst, cli/index.rst, cli/inquisitor.rst, cli/portmod.rst, concepts/cfg-protect.rst, concepts/index.rst, concepts/keywords.rst, concepts/modules.rst, concepts/profiles.rst, concepts/sandbox.rst, ..., dev/repo/package-files.rst, dev/repo/profiles.rst, dev/setup.rst, dev/use-flags.rst, index.rst, install/index.rst, install/linux.rst, install/macos.rst, install/windows.rst, setup.rst
loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ...
Creating file /home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc/dev/pybuild/pybuild.rst.
Creating file /home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc/dev/pybuild/pybuild.info.rst.
Creating file /home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc/dev/pybuild/pybuild.winreg.rst.
building [mo]: targets for 0 po files that are out of date
writing output... 
building [man]: all manpages
updating environment: [new config] 47 added, 0 changed, 0 removed
WARNING:root:Architecture test could not be found. It may not be a supported Architecture.

Exception occurred:
  File "/usr/lib/python3.12/site-packages/rply/parsergenerator.py", line 9, in <module>
    from appdirs import AppDirs
ModuleNotFoundError: No module named 'appdirs'
The full traceback has been saved in /tmp/sphinx-err-yo6qv07q.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [Makefile:20: man] Error 2
make: Leaving directory '/home/dornhoeschen/.cache/yay/portmod/src/portmod-v2.8.0/doc'
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: portmod-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
portmod - exit status 4

This can be solved with yay -S python-appdirs - another missing dependency

tuxayo commented on 2024-12-07 02:29 (UTC)

I'm getting this error which seems related to what you had to workaround @bmwinger

Happens even with a default /etc/makepkg.conf.d/rust.conf.

Anyone else getting the same issue?

   Compiling autocfg v1.3.0
     Running `rustc --crate-name autocfg --edition=2015 /tmp/.cargo/registry/src/index.crates.io-6f17d22bba15001f/autocfg-1.3.0/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=238 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debug-assertions=off --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=1757fdfd297c10b3 -C extra-filename=-1757fdfd297c10b3 --out-dir /var/cache/private/pikaur/build/portmod/src/portmod-v2.8.0/target/release/deps -C strip=debuginfo -L dependency=/var/cache/private/pikaur/build/portmod/src/portmod-v2.8.0/target/release/deps --cap-lints allow -Cforce-frame-pointers=yes -C opt-level=3 -C target-cpu=native -Clinker=clang -Clink-arg=-fuse-ld=lld`
error: linking with `clang` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/usr/lib64/rustlib/x86_64-unknown-linux-gnu/bin:/usr/local/sbin:/usr/local/bin:/usr/bin" VSLANG="1033" "clang" "-m64" "/tmp/rustcEcGEOq/symbols.o" "/var/cache/private/pikaur/build/portmod/src/portmod-v2.8.0/target/release/build/proc-macro2-2bafd6e473681c71/build_script_build-2bafd6e473681c71.build_script_build.6a7cf4610b7d5553-cgu.0.rcgu.o" "/var/cache/private/pikaur/build/portmod/src/portmod-v2.8.0/target/release/build/proc-macro2-2bafd6e473681c71/build_script_build-2bafd6e473681c71.build_script_build.6a7cf4610b7d5553-cgu.1.rcgu.o" "/var/cache/private/pikaur/build/portmod/src/portmod-v2.8.0/target/release/build/proc-macro2-2bafd6e473681c71/build_script_build-2bafd6e473681c71.4m3k958s1d9ps24uxxi59cr2r.rcgu.o" "-Wl,--as-needed" "-Wl,-Bstatic" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libstd-391f02d30426e2d5.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-a422e091b58dfcd3.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libobject-9fe67c541ad269f1.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-b3821598ef64c164.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-d3df9f185e9f0e89.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-04053dd1e13341ad.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-6a52efa5a12b49d5.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-5495661c1871064b.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-1f93e50dc6fde943.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-dfaf37e66e2796a7.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-60d2d6b0d5254d76.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libadler-04707c301ca685cc.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-9fd86a32e18447f4.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-641fd5bdc1c96d92.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-967bd9d7adb383b1.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-45a82bd61a66405a.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-27866343de798c54.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcore-f7aff1cc58607c34.rlib" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-ee301cabeb4db339.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/usr/lib64/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/var/cache/private/pikaur/build/portmod/src/portmod-v2.8.0/target/release/build/proc-macro2-2bafd6e473681c71/build_script_build-2bafd6e473681c71" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs" "-fuse-ld=lld"
  = note: clang: error: invalid linker name in argument '-fuse-ld=lld'

bmwinger commented on 2024-12-06 00:00 (UTC)

I managed to fix the issue blocking the update to 2.8. makepkg is setting '-flto=auto' in CFLAGS, but lto only works with zstd-rs if you're building with clang (see here). I've changed the C compiler to clang (alternatively it works with GCC if you set 'CFLAGS+=" -fno-lto"'). The 2.8 update also fixes the build issue on recent versions of rustc, so it should be working as normal again.

Dornhoeschen commented on 2024-10-18 10:41 (UTC) (edited on 2024-10-18 10:44 (UTC) by Dornhoeschen)

I finally got it installed again:

rm -rf /tmp/portmod.test/
sudo downgrade rust
> 1.79
yay -S python-redbaron
yay -S python-baron
yay -S portmod

Got me where I wanted. Thank you @bmwinger for your help.

I have the following insights:

  • For some reason redbaron and the baron package were not properly resolved as dependency for me
  • There was no hint for me visible that the conflicting path was /tmp/portmod.test/, hence it would be nice to be warned about this.

<3

bmwinger commented on 2024-10-18 02:21 (UTC)

That's something that can be prevented in portmod, as it should be cleaning up that directory automatically (currently it won't if an error occurs in a certain part of the code), but you can also do it yourself by deleting /tmp/portmod.test, where it's storing the temporary prefix used for generating the CLI docs.

Dornhoeschen commented on 2024-10-18 01:22 (UTC) (edited on 2024-10-18 01:25 (UTC) by Dornhoeschen)

Thank you for your feedback.

I am still unable to install it.

sudo downgrade rust > 1.79

yay -S portmod

...
writing output... 
building [man]: all manpages
updating environment: [new config] 47 added, 0 changed, 0 removed
reading sources... [  9%] cli/portmod
Exception occurred:
  File "/home/XXX/.cache/yay/portmod/src/portmod-v2.7.3/portmod/prefix.py", line 125, in add_prefix
    raise PrefixExistsError(prefix)
portmod.prefix.PrefixExistsError: The prefix <example> already exists
The full traceback has been saved in /tmp/sphinx-err-601d54bt.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [Makefile:20: man] Error 2
make: Leaving directory '/home/XXX/.cache/yay/portmod/src/portmod-v2.7.3/doc'
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: portmod-exit status 4
 -> Failed to install the following packages. Manual intervention is required:
portmod - exit status 4

bmwinger commented on 2024-10-17 21:55 (UTC)

@Dornhoeschen: I see. It looks like python-autodocsumm is orphaned and portmod is the only thing depending on it, so I should probably adopt it and give it an update. I guess the git tag changed on the upstream source or something, because the package seems like it should still work.

The issue with building time is resolved with newer versions, and doesn't appear to be an issue with portmod 2.8. However unfortunately that fails later due to not linking zstd-rs properly (required by tantivy, which is used to index packages). The portmod 2.8 build works fine everywhere else though, it's just failing with the arch build system.

Unfortunately memory safety has nothing to do with reliable builds. Other compilers break things on updates too (e.g. the gcc 14 update caused build failures for me in other software). The issue here is really just that we're doing an old build with a new compiler. It should work fine on <1.80, so you can work around the issue by installing rustup and rustc 1.79, and using that to build portmod 2.7.3.

Actually, only thing depending on the time crate is also tantivy, which is portmod's largest rust dependency, and is a big and complex project. Given that it's not particularly integral and has been causing problems I'm tempted to drop it for the sake of maintainability. But that's more of a portmod discussion than an AUR discussion.

Dornhoeschen commented on 2024-10-17 21:01 (UTC) (edited on 2024-10-17 21:15 (UTC) by Dornhoeschen)

Currently broken on my end.

The dependency integrity error on python-autodocsumm can be resolved with yay -S --mflags --skipinteg portmod.

The above error might also be caused by the fact that an outdated version of python-autodocsumm is in AUR due to the lack of a maintainer.

But then I run into error: could not compiletime(lib) due to 1 previous error which seems to be an "small" breaking change in rust's API according to this: https://discourse.nixos.org/t/rustc-explain-e0282-error-could-not-compile-time-lib/50765

If you allow this sarcastic comment: The packages which break the most are those with the super secure rust language - caused by "small" breaking changes. From rusts website: A language empowering everyone to build >reliable< and efficient software. Its obviously false advertisement

If you, the kind maintainer, could look into that, I'd appreciate it <3