Zandronum Chat @ irc.zandronum.com
#zandronum
Get the latest version: 3.0
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003243Doomseeker[All Projects] Bugpublic2017-09-01 16:172017-12-15 15:33
ReporterWubTheCaptain 
Assigned ToZalewa 
PrioritynormalSeverityminorReproducibilityalways
Statusneeds testingResolutionopen 
Platformx86_64OSDebian GNU/LinuxOS Versionbuster/sid
Product Version1.1 
Target VersionFixed in Version 
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 Informationhttps://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 (developer)
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 (developer)
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 (developer)
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 (developer)
2017-12-12 11:42

That should be fine (for GNU/Linux at least).
User avatar (0018956)
WubTheCaptain (developer)
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 (developer)
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.


Issue Community Support
Only registered users can voice their support. Click here to register, or here to log in.
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






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker