Portmod - Mod Manager

Post about your mods, learn about OpenMW mod compatibility, check for problematic mods, discuss issues, and give us feedback about your experience with modded OpenMW.
darkbasic
Posts: 153
Joined: 18 Apr 2016, 15:45
Contact:

Re: Portmod - Mod Manager

Post by darkbasic »

bmw wrote: 17 Jan 2021, 23:08 And the total overhaul package isn't complete yet, though I think it's equivalent to the combination of meta-momw/expanded-vanilla and meta-momw/graphics-overhaul (the latter of which is not complete), plus one other mod, so if you want to get as close as possible for now, you can install those.
Is there any ETA on meta-momw/graphics-overhaul? I see lots of progress on the core itself but very few on the mods repo. I guess you're trying to release the new major version first, right?
User avatar
bmw
Posts: 81
Joined: 04 Jan 2019, 19:42
Contact:

Re: Portmod - Mod Manager

Post by bmw »

darkbasic wrote: 19 Jan 2021, 15:53 Is there any ETA on meta-momw/graphics-overhaul? I see lots of progress on the core itself but very few on the mods repo. I guess you're trying to release the new major version first, right?
I can't really give a specific ETA (it will be done when it's done...), but I can say that yes, I've been working mostly on the package manager side of things recently, rather than the repository side of things, but I'll do some more work on fleshing out the repository soon.
The next release of portmod (probably within the next couple of days) will actually have support for manually installed mods. Obviously these mods won't be able to take advantage of most of portmod's features, in that dependencies won't be enforced, and you'll have to specify sorting rules for these yourself (plugin masters will still be detected automatically and used for sorting), but if there are mods which aren't available yet you can throw them in the "local" directory and portmod will add their directory, plugins and archives to openmw.cfg.
chomkycomrade
Posts: 1
Joined: 15 Jul 2021, 15:17

Re: Portmod - Mod Manager

Post by chomkycomrade »

So does this support automatic downloading of Mods from nexus? I even have a premium account. But the instructions in the terminal say to fetch the files myself and put them in a dir.

Also, can this dir be changed?
User avatar
bmw
Posts: 81
Joined: 04 Jan 2019, 19:42
Contact:

Re: Portmod - Mod Manager

Post by bmw »

Is it a coincidence that I just answered this question on GitLab? Admittedly GitLab sends notifications more quickly, so I saw that first. In short, NexusMods doesn't provide direct download links. It's possible to download files through the premium API, but that's complex to integrate, and I haven't considered it to be high priority.

As for changing the download cache directory, a symlink would probably work well.
User avatar
AnyOldName3
Posts: 2668
Joined: 26 Nov 2015, 03:25

Re: Portmod - Mod Manager

Post by AnyOldName3 »

You actually can get static direct download links via the premium API, but I think you need to have a session cookie for the user who used the API to generate them, so they're not the most useful thing in the world.
NvNick
Posts: 2
Joined: 11 Nov 2022, 02:07

Re: Portmod - Mod Manager

Post by NvNick »

Anyone get Portmod working on the Steam Deck? I could use a guide :-).

I have installed portmod using pip and it appeared to be working for a while, I was installing mods and they were working in OpenMW. However, at some point it started complaining about not being able to find the bsatool executable. I have bsatool as part of the flatpak package. However, running bsatool directly from where flatpak installs it results in it not being able to find assemblies such as libboost. Therefore, I created a small bash script called 'bsatool' and located it in my .local/bin folder.

The script looks like this:

Code: Select all

#!/bin/bash
flatpak run --command=bsatool org.openmw.OpenMW "$@"
I can run bsatool from the command line using the script and it works, but when portmod runs it it results in an error.

Code: Select all

error: open(O_TMPFILE): Read-only file system
Traceback (most recent call last):
 File "/home/deck/.local/share/portmod/repos/openmw/assets-misc/project-atlas/project-atlas-0.7.2.pybuild",
line 147, in src_prepare
   super().src_prepare()
 File "/home/deck/.local/share/portmod/openmw/var/db/common/atlasgen/atlasgen-1.2-r4.pybuild",
line 228, in src_prepare
   self.check_required_files()
 File "/home/deck/.local/share/portmod/openmw/var/db/common/atlasgen/atlasgen-1.2-r4.pybuild",
line 220, in check_required_files
   self.find_files_for_suffix(scriptpath, "")
 File "/home/deck/.local/share/portmod/openmw/var/db/common/atlasgen/atlasgen-1.2-r4.pybuild",
line 145, in find_files_for_suffix
   src = find_file(path)
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/functools.py",
line 27, in prefix_wrapper
   return inner(prefix_name(), *args, **kwargs)
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/functools.py",
line 23, in inner
   return func(*args, **kwargs)
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/_deprecated/vfs.py",
line 34, in inner
   return func(*args, **kwargs)
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/_deprecated/vfs.py",
line 69, in find_file
   contents = list_archive(archive)
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/archives.py",
line 38, in list_archive
   return bsa_list(file)
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/archives.py",
line 77, in bsa_list
   (execute(f'{_bsatool_command()} list "{archive}" ', pipe_output=True) or "")
 File "/home/deck/.local/lib/python3.10/site-packages/portmodlib/execute.py",
line 36, in execute
   proc = subprocess.run(cmd, check=check, stdout=output, stderr=error)
 File "/usr/lib/python3.10/subprocess.py", line 524, in run
   raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['bsatool', 'list',
'/home/deck/.local/share/Steam/steamapps/common/Morrowind/Data
Files/Tribunal.bsa']' returned no
n-zero exit status 1.
ERROR: An error was encountered when execuring code inside the
sandbox: /home/deck/.local/share/portmod/repos/openmw/assets-misc/project-atlas/project-atlas
-0.7.2.pybuild prepare failed!
User avatar
AnyOldName3
Posts: 2668
Joined: 26 Nov 2015, 03:25

Re: Portmod - Mod Manager

Post by AnyOldName3 »

The filesystem on the Deck isn't set up in the normal way by default, so certain paths that are usually read/write, but not strictly required to be, end up read-only, and this trips up quite a bit of software.
NvNick
Posts: 2
Joined: 11 Nov 2022, 02:07

Re: Portmod - Mod Manager

Post by NvNick »

Yeah, I did run into the problem with a readonly filesystem when I was getting portmod setup.

Code: Select all

sudo steamos-readonly disable
unlocks it.

I tried giving flatpak org.openmw.OpenMw write permissions to the host file system, but that didn't solve it.

Maybe I'll try setting this all up an a linux machine, and then just copy everything over to my steamdeck once I have all the mods setup.
ElBartoME
Posts: 1
Joined: 06 Feb 2023, 10:19

Re: Portmod - Mod Manager

Post by ElBartoME »

NvNick wrote: 11 Nov 2022, 02:23 Anyone get Portmod working on the Steam Deck?
After going through a whole day of effort I was able to install portmod on the steam deck. I had to install a lot of missing packages for it to compile.
I also hacked in some code into portmod to automatically download mods from Nexusmods.

The problem I have now is that modhistory.com is offline and now installing metapackages like "vanilla extended" fail because it can't download the files anymore. :(
acatlady
Posts: 8
Joined: 28 Jun 2021, 22:18

Re: Portmod - Mod Manager

Post by acatlady »

What seems to be some kind of bug in the Intelligent and Enhanced textures builds, re how they modify openmw.cfg... My sky is pink because certain textures are being looked for with the wrong name. e.g.

Code: Select all

$ flatpak run org.openmw.OpenMW
# ...
[18:50:09.941 E] Failed to open image: Resource 'textures/tx sky rainy.dds' not found
# ...
$ fd -Hi 'tx sky rainy.dds'
# nothing
$ fd -Hi 'rainy.dds'
.local/share/portmod/openmw_mods/pkg/assets-textures/intelligent-textures/textures/tx_sky_rainy.dds
.local/share/portmod/openmw_mods/pkg/assets-textures/intelligent-textures/textures/tx_dwe_weat_rainy.dds
.local/share/portmod/openmw_mods/pkg/skies/swg-skies/textures/Tx_Sky_Rainy.dds
The weird thing is, the incorrect name doesn't appear in my openmw.cfg.

This is with the latest OpenMW 0.48 RC on the Flatpak beta channel, so... I guess it might instead be an OpenMW bug? Not sure.

Edit: related to this, is there a way to make portmod rebuild the openmw.cfg from scratch? cfg-update seems to preserve manual changes to the file.

Edit 2: nevermind, moving or deleting the cfg is all that's required
Post Reply