Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003243Doomseeker[All Projects] Bugpublic2017-09-01 16:172018-10-27 22:55
ReporterWubTheCaptain 
Assigned ToZalewa 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
Platformx86_64OSDebian GNU/LinuxOS Versionbuster/sid
Product Version1.1 
Target Version1.2Fixed in Version1.2 
Summary0003243: Dubious default configuration path for Zandronum testing releases
DescriptionThe default configuration sets TestingPath for Zandronum to $HOME/Documents/doomseeker/plugins/zandronum. Typically the downloaded testing releases include an executable binary and shared data (Skulltag PK3 files), which is a bit dubious to fit in the $XDG_DOCUMENTS_DIR directory.

I expected $XDG_DOCUMENTS_DIR to be reserved for paper documents, literature at best.
Steps To Reproduce

  1. Ensure no existing user-specific configuration is present (e.g. remove $HOME/.doomseeker).

  2. Run Doomseeker with its libzandronum installed. A message should popup about first-time configuration check.

  3. Check the "Directory for testing releases" under Engines → Zandronum in configuration.

Additional Information'https://www.freedesktop.org/wiki/Software/xdg-user-dirs/ [^]'

I couldn't find an official specification related to XDG user directories. Needs support from issue 0003233 (XDG Base Directory Specification).
Attached Files

- Relationships
child of 0003279acknowledged List of Debian issues (misc/non-policy) 

-  Notes
User avatar (0018251)
Zalewa (developer)
2017-09-09 19:00

Will QStandardPaths::DataLocation be a good place to store the builds, then?
User avatar (0018256)
WubTheCaptain (reporter)
2017-09-10 13:16

The documentation link you posted says QStandardPaths::DataLocation is deprecated and returns QStandardPaths::AppLocalDataLocation.

I know the torbrowser-launcher package in Debian GNU/Linux uses it ($HOME/.local/share/torbrowser) also for binaries, but that package is "not part of Debian" because of contrib section. It's acceptable, but not maybe the best choice. .local/share is meant to be for architecture independent files, after all.

Seeing how QStandardPaths::ApplicationsLocation is not always writable and it's used differently on Windows, it's also probably not a good choice.

I think QStandardPaths::AppLocalDataLocation ($HOME/.local/share/doomseeker) is still a more sensible choice, but that's arguable. Someone else may have a better idea.
User avatar (0018257)
WubTheCaptain (reporter)
2017-09-10 13:22

QStandardPaths::DownloadLocation or its subfolder may also be a sensible choice, excluding the generated shell script which should go to $HOME/.local/bin in my opinion. (Note, $HOME/.local/bin is not part of default $PATH.)
User avatar (0018259)
WubTheCaptain (reporter)
2017-09-10 13:35

Eh, excluding the Qt options: I've personally kept my testing path to "$HOME/.local/games/zandronum-testing/", despite some shortcomings.
User avatar (0018951)
Zalewa (developer)
2017-12-11 15:56

Since this commit we now abstract the OS "local user data" location with Doomseeker's DataPaths::dataDirectory.

We can use dataDirectory to store plugin managed data by following a path pattern like this:


$dataDirectory/plugins/$plugin/<plugin-does-whatever-it-wants-here>


so, for testing releases it can be:


  $dataDirectory/plugins/zandronum/testing/3.0-alpha-r160814-2010
  $dataDirectory/plugins/zandronum/testing/3.0-alpha-r160814-2010.(sh|bat)


Example paths we would get:


Linux:
  /home/test/.local/share/doomseeker/plugins/zandronum/testing/3.0-alpha-r160814-2010
  /home/test/.local/share/doomseeker/plugins/zandronum/testing/3.0-alpha-r160814-2010.sh

Mac (I'm guessing this one):
  /Users/CaptainKirk/Library/Application Support/doomseeker/plugins/zandronum/testing/3.0-alpha-r160814-2010
  /Users/CaptainKirk/Library/Application Support/doomseeker/plugins/zandronum/testing/3.0-alpha-r160814-2010.sh

Windoze:
  C:/Users/Robert/AppData/Local/doomseeker/plugins/zandronum/testing/3.0-alpha-r160814-2010
  C:/Users/Robert/AppData/Local/doomseeker/plugins/zandronum/testing/3.0-alpha-r160814-2010.bat


Does this look right?
User avatar (0018955)
WubTheCaptain (reporter)
2017-12-12 11:42

That should be fine (for GNU/Linux at least).
User avatar (0018956)
WubTheCaptain (reporter)
2017-12-12 12:03

One caveat: Zandronum testing releases really shouldn't dump its arch-dependent binary and libs (x86 or x86_64) under one arch-independent .local/share directory, but that's out of scope for this ticket. This is partly an upstream issue of packaging too.

e.g. Python 2.7 uses $HOME/.local/lib/python2.7 (but has byte-compiled libs). nvim uses $HOME/.local/share/site/plugin (arch-independent scripts).
User avatar (0018958)
Zalewa (developer)
2017-12-12 16:06

I'll go with ~/.local/share, because it's better than Documents and QStandardPaths doesn't offer anything even better. No more #ifdefs, not for something that the user can change from the config box
User avatar (0018960)
WubTheCaptain (reporter)
2017-12-13 00:37

Zalewa: Yes, $HOME/.local/share is fine for now I think. The caveat I mentioned isn't "fixable" with the config option, and it's out of scope for this ticket.

For me, this ticket is resolved... for now, at least.
User avatar (0018965)
Zalewa (developer)
2017-12-15 15:32
edited on: 2017-12-15 15:33

Done:'https://bitbucket.org/Doomseeker/doomseeker/commits/8998d075e79f6d9edccab40373977a7ebed73927 [^]'

Note that this changes the behavior for --portable mode and testing binaries will now be installed to <progdir>/.static/plugins/zandronum.

User avatar (0019425)
WubTheCaptain (reporter)
2018-08-27 03:27

It struck me that there might actually be a better place for this: /opt/ on GNU/Linux globally (or $HOME/.local/opt/ for the local user as a non-standard location). /opt/ doesn't exist on OpenBSD, though.

It's still less ideal than seperating everything under .local/bin, .local/lib etc seperately, but it's not our issue to handle upstream issues. 😕
User avatar (0019426)
WubTheCaptain (reporter)
2018-08-27 03:30

But without /opt/, $HOME/.local/lib/ is more standard or a better location – even though still not ideal. (/usr/local/opt/ isn't a thing, so it's not sensible to have $HOME/.local/opt/ either.)
User avatar (0019427)
WubTheCaptain (reporter)
2018-08-27 03:32

Oh, but QStandardPaths also doesn't give us an option to use $HOME/.local/lib unfortunately.
User avatar (0019432)
Zalewa (developer)
2018-08-27 07:26

I haven't actually seen a distro where /opt/ would exist by default, let alone have write permissions for the current user.

~/.local/share is the best compromise given how QStandardPaths works. I'm inclined not to change it anymore.
User avatar (0019443)
WubTheCaptain (reporter)
2018-08-28 03:36

Guess that's how it needs to be, then.

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: No one explicitly supports this issue yet.
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2017-09-01 16:17 WubTheCaptain New Issue
2017-09-01 16:31 Zalewa Relationship added child of 0003246
2017-09-09 19:00 Zalewa Note Added: 0018251
2017-09-10 13:16 WubTheCaptain Note Added: 0018256
2017-09-10 13:22 WubTheCaptain Note Added: 0018257
2017-09-10 13:35 WubTheCaptain Note Added: 0018259
2017-09-27 22:07 WubTheCaptain Relationship added child of 0003279
2017-09-27 22:07 WubTheCaptain Relationship deleted child of 0003246
2017-10-06 23:23 WubTheCaptain Assigned To => WubTheCaptain
2017-10-06 23:23 WubTheCaptain Status new => acknowledged
2017-10-06 23:23 WubTheCaptain Assigned To WubTheCaptain =>
2017-12-11 15:56 Zalewa Note Added: 0018951
2017-12-11 15:56 Zalewa Assigned To => Zalewa
2017-12-11 15:56 Zalewa Status acknowledged => feedback
2017-12-12 11:42 WubTheCaptain Note Added: 0018955
2017-12-12 11:42 WubTheCaptain Status feedback => assigned
2017-12-12 11:50 WubTheCaptain Status assigned => needs review
2017-12-12 12:03 WubTheCaptain Note Added: 0018956
2017-12-12 16:06 Zalewa Note Added: 0018958
2017-12-12 16:06 Zalewa Status needs review => assigned
2017-12-13 00:37 WubTheCaptain Note Added: 0018960
2017-12-15 15:32 Zalewa Note Added: 0018965
2017-12-15 15:32 Zalewa Status assigned => needs testing
2017-12-15 15:33 Zalewa Note Edited: 0018965 View Revisions
2018-08-27 03:27 WubTheCaptain Note Added: 0019425
2018-08-27 03:27 WubTheCaptain Status needs testing => feedback
2018-08-27 03:30 WubTheCaptain Note Added: 0019426
2018-08-27 03:30 WubTheCaptain Status feedback => assigned
2018-08-27 03:30 WubTheCaptain Status assigned => feedback
2018-08-27 03:32 WubTheCaptain Note Added: 0019427
2018-08-27 03:32 WubTheCaptain Status feedback => assigned
2018-08-27 03:32 WubTheCaptain Status assigned => feedback
2018-08-27 03:37 WubTheCaptain Target Version => 1.2
2018-08-27 07:26 Zalewa Note Added: 0019432
2018-08-28 03:36 WubTheCaptain Note Added: 0019443
2018-08-28 03:36 WubTheCaptain Status feedback => assigned
2018-08-28 03:36 WubTheCaptain Status assigned => resolved
2018-08-28 03:36 WubTheCaptain Fixed in Version => 1.2
2018-08-28 03:36 WubTheCaptain Resolution open => fixed
2018-10-27 22:55 WubTheCaptain Status resolved => closed






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker