Closed fossean closed 2 years ago
Thanks for making a new issue.
It would be nice to reach feature parity between DZTUI and DZGUI, but the latter has sort of taken over now and has some more sane methods I'd like to backport to DZTUI. In addition, I need to upgrade DZTUI to use the common dztuirc
file so that you can switch between TUI/GUI version seamlessly.
I'll be installing steamcmd later just for fun ;)
Just note that the steamcmd method is currently only supported in DZTUI. DZGUI still does not have this functionality added in, so it's reliant on the manual method.
When connecting to the same server with dzgui, I get a different 'false positive', but the game actually launches and runs without issue
This is now fixed per the other thread (https://github.com/aclist/dztui/commit/94add8d9830dc468f9727453610fb028f2c3215a)
Here is the error from dztui (I had to run it with root, otherwise the terminal just closes without any error text)
Hmm, that is a bit concerning. Do you mean you had to run it as root just to get it to start, or in order to display this error message when connecting?
This seems to be the same error fixed above in DZGUI. It was a bug carried over from DZTUI, in fact. I've pushed a change on DZTUI as well, so please test.
Confirm that new DZTUI fixes the 'false positive' error.
Do you mean you had to run it as root just to get it to start, or in order to display this error message when connecting?
Just required root to display the error.
I followed the Valve instructions exactly to install steamcmd, but have been defeated. I installed dependencies, created new steam user, new folders, ran steamcmd which then downloaded the additional files. I added /home/steam/Steam/steamcmd.sh to $PATH. But bash cannot see steamcmd — echo $PATH
shows the folder, but command -v steamcmd
returns nothing.
Sorry I have failed! I'm feeling out of my depth here, but DZGUI works very well, and manual mod installation isn't too much of a hardship.
Confirm that new DZTUI fixes the 'false positive' error.
Thanks.
Just required root to display the error.
Hmm, I'm drawing a blank on this right now, but let's just sweep this under the rug...
I followed the Valve instructions exactly to install steamcmd, but have been defeated. I installed dependencies, created new steam user, new folders, ran steamcmd which then downloaded the additional files. I added /home/steam/Steam/steamcmd.sh to $PATH. But bash cannot see steamcmd — echo $PATH shows the folder, but command -v steamcmd returns nothing.
You should be adding directory paths to your $PATH
, not the path to files themselves: just $HOME/steam/Steam
, if that is where it's located.
You should be adding directory paths to your $PATH, not the path to files themselves: just $HOME/steam/Steam
Yes, I should have clarified, that is what I did. echo $PATH
showed success but bash still refused to see steamcmd.sh.
Nevermind, it's either my error or Valve's (probably mine), but I've drawn ablank on this one.
Rereading your post, it seems you had kept the script named steamcmd.sh
, but were trying to look for a command named steamcmd
. If you rename the script to just steamcmd
, it should find it.
I tried once again, renaming script without .sh file extension, but DZTUI still can't see steamcmd — returns this:
[INFO] Verifying integrity of server modlist manifest [15/15]
[ERROR] Missing mods. Invoking steamcmd for user steam
[INFO] Found steamcmd user. Downloading mods
sh: 1: steamcmd: not found
As I'm adding mods manually, I might add that I prefer the long list of missing mods (with links) output by DZTUI. It's much easier to quickly open all the links in a browser and subscribe, as opposed to the DZGUI approach of offering one link at a time. Thanks for all your efforts on this, it's much appreciated!
EDIT:
I logged in as steam user and added the path to ~/.profile
Now echo $PATH
shows the installation folder when logged into both my user account and the steam user account. Also, command -v steamcmd
shows the correct result for both accounts.
But when I run DZTUI, it says steamcmd is not installed:
[INFO] Verifying integrity of server modlist manifest [15/15]
[ERROR] Missing mods. Invoking steamcmd for user steam
[ERROR] steamcmd not installed. See: https://developer.valvesoftware.com/wiki/SteamCMD
It's definitely installed; if I switch to steam account with sudo -u steam -s
, I can run steamcmd and arrive at the Steam> prompt.
I appreciate your sticking to this, I think we have a fix now.
As I'm adding mods manually, I might add that I prefer the long list of missing mods (with links) output by DZTUI. It's much easier to quickly open all the links in a browser and subscribe, as opposed to the DZGUI approach of offering one link at a time.
Yes, this is sort of a consequence of DZGUI initially being more of a convenience feature I made for a Steam Deck user, where the kiosk mode of the device necessitates some more literal jumping back and forth between DZGUI and the Steam big picture mode. I think what we need to do is start differentiating between desktop (GUI), Steam Deck, and terminal, and have different outcomes:
Desktop => emit the entire list or open all tabs (detect the system browser). Could rely on the Steam web site instead of the Steam application Steam Deck => walk user through mod installation one by one Terminal => emit the entire list or use steamcmd
It's definitely installed; if I switch to steam account with sudo -u steam -s, I can run steamcmd and arrive at the Steam> prompt.
OK, I recalled something similar about this issue happening with another user. The steamcmd automation was very experimental when I first made it, and I didn't consider different distro architectures and user permissions well enough. Basically, we should be more explicit about this check, rather than assuming that steamcmd
might be globally visible to the user invoking the script, in addition to the steam
user. Frankly, I think we don't even need to determine whether users other than steam
can see steamcmd
. That's a flaky approach that I should have changed. So let's just be more explicit about the verification and check for it sanely by invoking a subshell as the steam
user, as we do when we run steamcmd
itself.
Here's a quick test. Add your real steam username to the $steam_username
variable at the top. It should login as expected. Once you confirm this, I will move this into DZTUI.
#!/bin/bash
steamcmd_user=steam
steam_username=
printf "[DZGUI] Switching to user: %s\n" $steamcmd_user
sudo su steam -c "command -v steamcmd"
if [[ $? -eq 0 ]]; then
printf "[DZGUI] Invoking steamcmd\n"
sudo su steam -c "steamcmd +login $steam_username"
else
printf "[DZGUI] steamcmd not installed. See: https://developer.valvesoftware.com/wiki/SteamCMD"
fi
Some parts of DZTUI need a refactor, and the steamcmd
automation hasn't been looked at in awhile, so this is a step in the right direction. I need to bring DZTUI/GUI to feature parity. I don't really know how many users are using steamcmd, but I think it's the minority. I'd definitely be interested to know if you run into any difficulties with the download process itself. I've been using the steamcmd method exclusively since the start, but it hasn't been tested much by other users. Thanks.
Here's a quick test. Add your real steam username to the $steam_username variable at the top. It should login as expected.
On running this I get the following:
[DZGUI] Switching to user: steam
[sudo] password for foss:
On entering the password, the window closes immediately. Interestingly, I cannot run the script a second time; needed to restart system in order to run it again (logging out/in didn't help).
If I run it when logged in as steam, I get this output:
[DZGUI] Switching to user: steam
[sudo] password for steam:
steam is not in the sudoers file. This incident will be reported.
[DZGUI] steamcmd not installed. See: https://developer.valvesoftware.com/wiki/SteamCMDsteam@mx:/home/foss
Hmm. Permissions can be such a PITA at times.
In the second case, the user steam
can't perform the sudo operation of switching to the user steam
, since it's not in the sudoers file, and we are already the steam
user anyway.
I need to think of a more stable way of handling this, will get back to you after I try some tests. I think it's quite a simple problem, just not putting the dots together.
How about this sequence of commands (as your regular user)?
sudo -u steam bash -c 'command -v steamcmd' >/dev/null
echo $?
How about this sequence of commands (as your regular user)?
This asks for password, then window closes on entry
OK. Both commands appear to be working, need to evaluate why the window is closing. What terminal emulator are you using?
What terminal emulator are you using?
Konsole
I found this:
As a safety feature, sudo normally resets the $PATH to a "safe" value before executing the shell (or the single command). That value will not have any of the modifications made in the /etc/profile and ~/.profile startup scripts, and without those modifications -- which add one or more user-specific directories to the path -- the shell will not find software which has been installed for individual users.
-i, --login
Run the shell specified by the target user's password data‐
base entry as a login shell. This means that login-specific
resource files such as .profile, .bash_profile, or .login
will be read by the shell.
Some variations to try:
sudo -u steam -i command -v steamcmd
sudo -u steam -i command -v steamcmd 2>/dev/null
sudo -u steam /bin/sh -lc "command -v steamcmd" 2>/dev/null
sudo -u steam /bin/bash -lc "command -v steamcmd" 2>/dev/null
Also check that result of:
stat -c "%a" /tmp
is 1777
Also, are you invoking the script inside of konsole already open, or are you double-clicking and launching the script from the system window manager?
foss@mx:~
$ stat -c "%a" /tmp
1777
All variants return this result when pasted into an open Konsole:
[sudo] password for foss:
/home/steam/Steam/steamcmd
When scripts are launched from window manager (Dolphin), the window closes, and a system restart is required in order to continue testing with Konsole.
Is this a workaround?
sudo has builtin protections that you're noticing when you run several of these commands. These protections are doing a number of things, such as enforcing a safe $PATH.
From the /etc/sudoers file:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin This is what's showing up when you run your sudo -c .... commands. You can disable this behavior with the -E switch to sudo.
NOTE: For some setups the -E switch will not work. To "workaround" it you can use sudo env "PATH=$PATH" bash. This will also carry your current $PATH forward to your sudo environment.
https://unix.stackexchange.com/questions/91541/why-is-path-reset-in-a-sudo-command
This is what happens on my system:
foss@mx:~
$ sudo env "PATH=$PATH" bash
root@mx:/home/foss# sudo -u steam -i command -v steamcmd
/home/steam/Steam/steamcmd
root@mx:/home/foss# sudo -u steam -i command -v steamcmd 2>/dev/null
/home/steam/Steam/steamcmd
root@mx:/home/foss# sudo -u steam /bin/sh -lc "command -v steamcmd" 2>/dev/null
/home/steam/Steam/steamcmd
root@mx:/home/foss# sudo -u steam /bin/bash -lc "command -v steamcmd" 2>/dev/null
/home/steam/Steam/steamcmd
root@mx:/home/foss#
OK, I understand better about the nature of the problem now. I assumed everything was being invoked in the terminal directly (that's my bias, I suppose). I would tend to just open a terminal and invoke the script directly, not from a shortcut.
When running those test commands via a double-click, it has nothing graphical to return, since they are being run in a shell, with the result just getting emitted to stdout, and the terminal emulator was not explicitly told to remain open, since it was launched from a file manager. As for the restart required, I believe it (broad oversimplification) interfered with your login session or whatever daemon Konsole uses to run. Generally, when you pass a command to a terminal emulator to spawn the emulator itself and then run the command, you need to add an internal flag to "hold" the terminal and keep it open, rather than treating the command as ephemeral. The switch is traditionally -hold
. (Additional options can be seen in konsole --help
)
This gives a much clearer focus to what we need to do, so returning to the steamcmd issue, I actually created another test, installed Dolphin, and tried running the script directly in Konsole via the file manager. The result is a bit erratic, and while it works, it doesn't print some of the lines correctly, and the exit command does not release the terminal, so the script has to be forcibly closed. Therefore, what I would recommend doing if you want to run a script that interactively prints content to the terminal (versus some script that just performs an action on your system and completes) is to create a "wrapper" shortcut like:
konsole -e "dztui"
If you instead want to keep the script somewhere as a loose file and not stick it in your $PATH
, use the construct:
konsole -e "/bin/bash dztui.sh"
So you wouldn't be launching the script directly, but rather this wrapper script to ensure that Konsole is opened correctly, then the real script within it.
I'm guessing that when using DZTUI, you were just opening a terminal and typing dztui
, but when running the tests above, you were double-clicking them. Is this correct? If not, and you intend to run dztui via the file manager as well, try the below. Actually, try the below anyway.
#!/bin/bash
konsole -e "/bin/bash zen.sh"
test_dolphin.sh
#!/bin/bash
separator=│
user=steam
steam_username=
menu(){
printf "\n"
for i in 1 2 3; do
printf "$i$separator Test $i\n"
done
printf "\n"
printf "q$separator Quit\n"
}
test_result(){
if [[ $res -eq 0 ]]; then
printf "[DZGUI] Test $sel OK\n"
for ((i=3;i>0;i--)); do
printf "[DZGUI] Launching steamcmd in $i...\n"
sleep 1s
done
sudo su -c "steamcmd +login $steam_username"
else
printf "[DZGUI] Test $sel failed"
fi
}
test_1(){
sudo -u steam -i command -v steamcmd > /dev/null 2>&1
res=$?
test_result
}
test_2(){
res=$(sudo -u steam -i command -v steamcmud > /dev/null 2>&1)
test_result
}
test_3(){
sudo -u steam -i command -v steamcmd
res=$?
test_result $res
}
main(){
while true; do
menu
read -p "Selection: " sel
case $sel in
1) test_1;;
2) test_2;;
3) test_3;;
q) exit ;;
*) : ;;
esac
done
}
main
test.sh
steam_username
at the toptest_dolphin.sh
and test.sh
executable (chmod +x
)test_dolphin
This concludes the tests. I think all of these commands are going to work (without forcibly closing!), so I can then safely update the DZTUI side. But it would be important to know how you are usually launching DZTUI.
Interesting to read about the --hold
option in Konsole. If I add it to a 'wrapper' shortcut: konsole --hold -e "/bin/bash MyTest.sh"
and re-test the earlier commands (sudo -u steam -i command -v steamcmd
, etc) they all output /home/steam/Steam/steamcmd
; more importantly the Konsole window remains open.
I've been lauching DZTUI from Dolphin. It runs fine, apart from steamcmd not running. Anyway, on to the test — I changed zen.sh to test.sh (typo?) and Konsole returns this:
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection: 1
[sudo] password for foss:
[DZGUI] Test 1 OK
[DZGUI] Launching steamcmd in 3...
[DZGUI] Launching steamcmd in 2...
[DZGUI] Launching steamcmd in 1...
bash: line 1: steamcmd: command not found
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection: 2
[DZGUI] Test 2 OK
[DZGUI] Launching steamcmd in 3...
[DZGUI] Launching steamcmd in 2...
[DZGUI] Launching steamcmd in 1...
bash: line 1: steamcmd: command not found
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection: 3
/home/steam/Steam/steamcmd
[DZGUI] Test 3 OK
[DZGUI] Launching steamcmd in 3...
[DZGUI] Launching steamcmd in 2...
[DZGUI] Launching steamcmd in 1...
bash: line 1: steamcmd: command not found
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection:
Maybe there's a problem with my steam $HOME permissions. I installed it according to the Valve guide, but I'll delete steam user and $HOME and re-install, then run test_dolphin.sh again.
UPDATE: After recreating steam user and steam $HOME, test_dolphin.sh gives result below. Same result after adding folder to user $PATH and steam $PATH in ~/.bashrc
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection: 1
[sudo] password for foss:
[DZGUI] Test 1 failed
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection: 2
[DZGUI] Test 2 OK
[DZGUI] Launching steamcmd in 3...
[DZGUI] Launching steamcmd in 2...
[DZGUI] Launching steamcmd in 1...
bash: line 1: steamcmd: command not found
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
Selection: 3
[DZGUI] Test 3 failed
1│ Test 1
2│ Test 2
3│ Test 3
q│ Quit
After adding the path to ~/.bashrc in steam $HOME and user $HOME, my steam user can only 'see' steamcmd and the path to folder when I log in as below. I need to be root user, then enter sudo -u steam -s
.
root@mx:/home/steam/Steam# sudo -u steam -s
steam@mx:~/Steam
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/steam/Steam
steam@mx:~/Steam
$ command -v steamcmd
/home/steam/Steam/steamcmd
steam@mx:~/Steam
It seems I have made things worse.
Gah! Well, we don't want to be root every time.
At the risk of oversimplification, could you take a more reductivist approach without the use of custom paths and login profiles and copy steamcmd
to a global location like other binary programs, so that it's accessible to all system users? That's where it resides if it comes from your system package manager. The fact that you have a loose script kicking around is adding another variable of complexity.
E.g.,
sudo cp steamcmd /usr/bin
Actually, it seems that for the most part your tests were passing, we just had to reformulate the steamcmd
launch parameters a bit. If, as a matter of standard operating procedure, you don't change any other settings after getting a test result and report back here first, it'll reduce the number of variables in play so that the outcome is repeatable.
Try using your previous configuration but formatting the command as follows:
sudo -u steam -i steamcmd +login
$ sudo -u steam -i steamcmd +login
[sudo] password for foss:
-sh: 1: steamcmd: not found
I have to say, this steamcmd is a right pain.
Perhaps the system I'm using is too idiosyncratic! I accept that it may not be cost effective to fix every possible permutation of Linux distro.
Yes, it is annoying. The reason I was pushing you for it is that I think it may be affecting other users. A variant of this came up some time ago here: https://github.com/aclist/dztui/issues/8
It has some other unrelated issues mixed in, but the basic issue was the same. That conversation resulted in making the steamcmd invocation more robust (it was much simpler originally) to cover Ubuntu. What I ended up doing there was testing all of this in a virtual machine, so I think I'll have to do the same for MX Linux.
What I'm getting at here is that, vagaries of distros aside, I think there is a fundamentally more sane way of handling this and getting it to work all the time, but I need to tinker with other distros some more to see what the smoking gun is.
Best I can do for now is add a one-shot mode to DZGUI to format all of the links as clickable links in a file in your browser. (We shouldn't just mass open links at will, as some servers could have 30 or 40 of them).
I'm going to be working on this some more this weekend. To clarify, did you try copying steamcmd to the default system path of /usr/bin
? I mentioned it when posting two messages in succession, so not sure if you saw it.
Yes, I copied steamcmd to /usr/bin. It gave the error that it couldn't find the linux32 folder. I copied that across too, and then remember seeing the error "folder /tmp/steamapps does not exist. (Apologies for lack of detail, I'm not at my desktop atm).
Back at desktop, here are the notes I took when copying steamcmd to /usr/bin —
After trying sudo cp steamcmd /usr/bin
:
Selection: 9
[INFO] Verifying integrity of server modlist manifest [15/15]
[ERROR] Missing mods. Invoking steamcmd for user steam
[INFO] Found steamcmd user. Downloading mods
/usr/bin/steamcmd: line 38: /usr/bin/linux32/steamcmd: Not a directory
After sudo cp steamcmd /usr/sbin
and sudo cp -r linux32 /usr/sbin
Selection: 4
[INFO] Verifying integrity of server modlist manifest [15/15]
[ERROR] Missing mods. Invoking steamcmd for user steam
[INFO] Found steamcmd user. Downloading mods
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[ 0%] Checking for available update...
[----] Download Complete.
After sudo cp -r public /usr/sbin
There was an error of failed to find /tmp/steamapps
OK, I went through and debugged this and finally understand the problem and its implications.
First of all, an apology: I had made some assumptions based on faulty memory and was scratching my head as to why you were copying linux32 libraries and the like. In my ignorance, I had neglected to realize that the manual tarball of steamcmd
is not a single file, but actually a collection of linked libraries and other files. It just goes to show that you have to replicate the exact scenario to be on the same page. That is my fault.
I rolled an MX Linux VM and reproduced all the steps and saw exactly what you were pointing out.
So we have these two scenarios:
In this regard, Valve's instructions caused us unnecessary confusion in that they advise you to install the tool locally to the Steam user. The main use case for steamcmd
is having an unattended server administration tool, so it's not really necessary for another user to probe if it's installed and go through the incantations of trying to pass through the $PATH
. Our use case is different, since we are invoking the script as our real user first. But the way I was going about it was simply too obscure.
Frankly, one could probably even install steamcmd
to one's own user, which would simplify this switching back and forth, but for the purposes of isolation, it seemed reasonable to me at the time (and still does).
And as long as we are isolating, having to copy the executable to a global path like /usr/bin
misses the point, and having to pass through the $PATH
and do unsafe stuff like export env vars as root just gets us further and further from a reliable, sane solution--all for the sake of just verifying that steamcmd
exists for error handling purposes.
So I think we dispense with the command -v
method, we dispense with custom paths, and we dispense with these esoteric ways of trying to find the file, and we do something more generic that will work on any and all distributions.
Instead, let the user follow the instructions given on the Valve help page. Let them create a steam
user and download the files to the $HOME
directory. Then we just use find
to search the system more generically for the presence of files named steamcmd
, regardless of where they may be. This can include $HOME
or other sundry locations and does not concern itself whether they are explicitly in $PATH
and executable.
So with that preamble out of the way, please try the following:
steam
user's $HOME
directory, nothing more. You can remove it from /usr/sbin
or wherever else. For the sake of this explanation, I will assume the binary is located at $HOME/Steam/steamcmd.sh
. sudo -iu steam bash -c '$HOME/Steam/steamcmd.sh +force_install_dir /tmp +login <user> +workshop_download_item "221100" "2462896799" +quit'
, replacing <user>
with your steam username. This will run steamcmd
with the full path and prompt it to download one mod to /tmp
, then quit. steamcmd
will ask you to enter your login credentials (and 2FA code, where applicable)./tmp
failed for you previously, but I confirmed the above working on an MX Linux VM. It's possible that steamcmd
got polluted on prior invocations.steamcmd
and pass the full path into the launch command, and I will push a hotfix to the way this is handled. It should let you start using the auto install method without further fuss.There's another question you can perhaps help me with:
In the TUI client, everything is already happening in the terminal, so having the user proceed to type their credentials into the steamcmd
prompt is no different from if they typed them into a DZTUI prompt. But if we extend this functionality to DZGUI, steamcmd
would run in the background, and cannot be fully automated unless we pass the login credentials through a menu. Even though these credentials go nowhere but steamcmd
, and DZTUI doesn't make callbacks anywhere, I feel it would be seen as suspicious to a user who doesn't know what is going on under the hood.
Option 1: users who enabled auto mod install in DZGUI are given a masked password prompt to enter credentials; these get passed to steamcmd
in the background.
PRO: greatly automates and expedites mod installation CON: may seem suspect
Option 2: DZGUI spawns another terminal window with steamcmd, and users enter their credentials into that prompt directly.
PRO: may be seen as more official and trustworthy, more explicit indication of where credentials wnet CON: much more fiddly
What do you think about the above?
On a related note, I finished preparing the "one-shot" method for the GUI client of generating a file with links and opening it in the browser, as you had asked. This lets you avoid jumping back and forth between dialogs.
This gives you:
In DZTUI:
steamcmd
In DZGUI:
steamcmd
(to be determined)In DZGUI, unless you are running a Steam Deck, the default will always be to open the full list of links, so no more annoying dialogs. These changes should go live today or tomorrow.
This seems very encouraging, apart from the final (intentional?) error:
$ sudo -iu steam bash -c '$HOME/Steam/steamcmd.sh +force_install_dir /tmp +login <my_username> +workshop_download_item "221100" "2462896799" +quit'
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[ 0%] Checking for available update...
[----] Downloading update (0 of 54,952 KB)...
[ 0%] Downloading update (1,416 of 54,952 KB)...
[ 2%] Downloading update (3,078 of 54,952 KB)...
[ 5%] Downloading update (4,739 of 54,952 KB)...
[ 8%] Downloading update (6,404 of 54,952 KB)...
[ 11%] Downloading update (8,078 of 54,952 KB)...
[ 14%] Downloading update (9,905 of 54,952 KB)...
[ 18%] Downloading update (11,652 of 54,952 KB)...
[ 21%] Downloading update (13,394 of 54,952 KB)...
[ 24%] Downloading update (15,049 of 54,952 KB)...
[ 27%] Downloading update (16,712 of 54,952 KB)...
[ 30%] Downloading update (18,360 of 54,952 KB)...
[ 33%] Downloading update (20,185 of 54,952 KB)...
[ 36%] Downloading update (21,842 of 54,952 KB)...
[ 39%] Downloading update (23,500 of 54,952 KB)...
[ 42%] Downloading update (25,162 of 54,952 KB)...
[ 45%] Downloading update (26,991 of 54,952 KB)...
[ 49%] Downloading update (28,651 of 54,952 KB)...
[ 52%] Downloading update (30,311 of 54,952 KB)...
[ 55%] Downloading update (31,905 of 54,952 KB)...
[ 58%] Downloading update (33,730 of 54,952 KB)...
[ 61%] Downloading update (35,394 of 54,952 KB)...
[ 64%] Downloading update (36,941 of 54,952 KB)...
[ 67%] Downloading update (39,874 of 54,952 KB)...
[ 72%] Downloading update (41,157 of 54,952 KB)...
[ 74%] Downloading update (42,437 of 54,952 KB)...
[ 77%] Downloading update (43,722 of 54,952 KB)...
[ 79%] Downloading update (45,134 of 54,952 KB)...
[ 82%] Downloading update (46,414 of 54,952 KB)...
[ 84%] Downloading update (47,696 of 54,952 KB)...
[ 86%] Downloading update (48,982 of 54,952 KB)...
[ 89%] Downloading update (50,398 of 54,952 KB)...
[ 91%] Downloading update (51,670 of 54,952 KB)...
[ 94%] Downloading update (52,953 of 54,952 KB)...
[ 96%] Downloading update (54,360 of 54,952 KB)...
[ 98%] Downloading update (54,952 of 54,952 KB)...
[100%] Download Complete.
[----] Applying update...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching...
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
/tmp/dumps insufficient permissions - delete and recreate
[ 0%] Checking for available updates...
[----] Verifying installation...
[ 0%] Downloading update...
[ 0%] Checking for available updates...
[----] Download complete.
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Extracting package...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Installing update...
[----] Cleaning up...
[----] Update complete, launching Steamcmd...
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Logging in user <my_username> to Steam Public...
password:
Enter the current code from your Steam Guard Mobile Authenticator app
Two-factor code:<code>
OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 2462896799 ...
ERROR! Download item 2462896799 failed (I/O Operation Failed).foss@mx:~
$
There are a couple of pertinent-looking errors in $HOME/Steam/logs. Firstly, workshop_log.txt:
[2022-06-13 11:54:32] Loading workshop items for 0 installed apps for user [U:1:198927]:
[2022-06-13 11:54:38] [AppID 241100] Subscribed items changed
[2022-06-13 11:54:38] [AppID 221100] Loaded workshop items in "/tmp/steamapps/workshop" (0 installed, 0 needed)
[2022-06-13 11:54:38] [AppID 221100] Download item 2462896799 requested by app
[2022-06-13 11:54:38] [AppID 221100] Starting Workshop download job (requested item 2462896799 )
[2022-06-13 11:54:38] [AppID 221100] Detected workshop change : changed cached item 2462896799, new manifest 5349117335962550243
[2022-06-13 11:54:38] [AppID 221100] Update canceled: Staging folder not writable (Disk write failure) "/tmp/steamapps/workshop/downloads/221100"
[2022-06-13 11:54:38] [AppID 221100] Download item 2462896799 result : I/O Operation Failed
Also in content_log.txt:
[2022-06-13 11:54:32] Loaded 0 apps from install folder "/tmp/steamapps\appmanifest_*.acf".
[2022-06-13 11:54:38] AppID 221100 scheduler update : Priority First, not played for 346180 seconds, update disabled for 0 seconds
[2022-06-13 11:54:38] AppID 221100 update changed : Running,
[2022-06-13 11:54:38] AppID 221100 update changed : Running,Reconfiguring,
[2022-06-13 11:54:38] AppID 221100 update changed : Running,Reconfiguring,Stopping,
[2022-06-13 11:54:38] AppID 221100 update changed : Running,Stopping,
[2022-06-13 11:54:38] AppID 221100 update changed : None
[2022-06-13 11:54:38] AppID 221100 scheduler finished : removed from schedule (result Disk write failure, state 0x0)
Option 1: users who enabled auto mod install in DZGUI are given a masked password prompt to enter credentials; these get passed to steamcmd in the background.
Option 2: DZGUI spawns another terminal window with steamcmd, and users enter their credentials into that prompt directly.
It's a difficult choice, but I prefer Option 1. I think concerns about security won't even occur to a certain number of users. And those who are concerned are more likely to be able to quickly cast an eye over the script. I think it would be sufficient to emphasise the open nature of the script in the readme. Also, less fiddly ;)
I think you alluded to that before upthread. Seems like the user steam
can't write to /tmp
for some reason? After switching to that user, what's the output of stat -c "%a" /tmp
? As that user, also try touch /tmp/file.tmp
. As a third option, check if /tmp/steamapps
already exists and whether there is crud in there.
ls -trhla /tmp/steamapps
It also sounds a bit like this: https://github.com/ValveSoftware/steam-for-linux/issues/7843
But that should be long fixed. It's imperative that we write to /tmp
, which is why +force_install_dir
is being used.
I'd be interested to see the output of what happens when /tmp/steamapps
already exists versus when it doesn't.
When invoking the full script, it moves the content out of /tmp/steamapps
and then nukes the directory left behind. When we've been doing these one-off tests, there's been no additional cleanup, so I'd wager that is the cause of the issue.
Could also add a pre-runtime sanity check to clean up the directory before downloading.
It also sounds a bit like this: ValveSoftware/steam-for-linux#7843
Very odd. I just decided to test this again. First I checked that /tmp/steamapps
did not exist.
sudo -iu steam bash -c '$HOME/Steam/steamcmd.sh +force_install_dir /tmp +login <user> +workshop_download_item "221100" "2462896799" +quit'
Returns this:
foss@mx:~
$ sudo -iu steam bash -c '$HOME/Steam/steamcmd.sh +force_install_dir /tmp +login <my_username> +workshop_download_item "221100" "2462896799" +quit'
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Logging in user '<my_username>' to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 2462896799 ...
Success. Downloaded item 2462896799 to "/tmp/steamapps/workshop/content/221100/2462896799" (762682988 bytes) foss@mx:~
$
tmp/steamapps
was created and contains the specified folders. The files are successfully written to /tmp/steamapps
in repeated tests regardless of whether /tmp/steamapps
pre-exists or not.
Don't know if it's significant but in the original test yesterday I was asked for 2FA
foss@mx:~
$ sudo -iu steam
[sudo] password for foss:
$ stat -c "%a" /tmp
1777
$ touch /tmp/file.tmp
$
Result: file.tmp is created
$ ls -trhla /tmp/steamapps
total 176K
drwxr-xr-x 3 steam steam 4.0K Jun 14 10:34 .
drwxr-xr-x 5 steam steam 4.0K Jun 14 10:37 workshop
drwxrwxrwt 19 root root 164K Jun 14 11:06 ..
$
It seems like the prior errors were some sort of false positive. I'll push a hotfix in a little while so that you can use these findings against DZTUI, but I would continue stress testing it a bit to see if steamcmd
burps out an error again.
As for 2FA, steamcmd creates a local hash after first invocation that is used to expedite login later, but it expires over time, so you'll be prompted for credentials again eventually.
This fix is now live and should be a more extensive way of checking for the presence of steamcmd, checking first the "expected" path of it residing somewhere under /home/steam
, then /usr/share
, then /usr/bin
, then, failing that, all of /
, and grabbing only one instance. It seems that even distros that pre-package steamcmd
actually link it to the script steamcmd.sh
elsewhere on the system, which should be pretty reliable. since trying to invoke the packaged version of steamcmd
directly is not going to work well.
I'll need to start building up the documentation to explain this, and also explicitly state the caveats about creating the steam
user and where to save steamcmd.sh
I also backported from DZGUI the improved mod validation logic and faster ping check, which gives a nice performance uplift.
I still need to push the one-shot browser link mod method to DZGUI, among other things, but I think this is slowly bringing us closer to feature parity.
After fixing the steamcmd detection method, I neglected to update the new steamcmd invocation parameters discussed above, so there was a small bug. Pushed another hotfix (0.3.3
)
Could you clarify how opening links to mods works for you? I'm getting ready to release a big update for DZGUI, and included a method of preparing the whole list of links. You stated that it's easier to just open those and subscribe to them on the Steam web site. I tested whether subscribing/unsubscribing actually does anything, though, and it doesn't seem to trigger Steam to sync those changes. What happens when you click Subscribe buttons in a web browser versus the Steam client? Does it redirect the Steam client or do something else?
Edit: disregard the above; it was quite subtle in its behavior and takes a bit of time to synchronize. I might have to explicitly wait for a bit before proceeding to the next step.
Could you clarify how opening links to mods works for you?
I ususally open all the links to mods first, then rapidly subscribe to each and close the tab. Steam seems to be quite well synchronised, but restarting steam always gets things moving if there's a delay.
Some feedback on 0.3.3.
If Steam is not initially running then Steam login, 2FA, and automatic downloads function perfectly. Game launches and runs after downloading mods.
When attempting to run DZTUI with Steam already running, the script hangs at point below, game does not launch:
foss@mx:~/dztui
$ ./dztui.sh
0│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 83/100 │ online │ 14614427 │ TimeoutO] Polling servers. Please wait.
1│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 59/100 │ online │ 12751607 │ Timeout
2│▶DayZ Aftermath Chernarus EU 2 |CUSTOM BASE BUILDING|Quest │ 51.210.155.18:2402 │ 46/90 │ online │ 15504869 │ 25.2 ms
3│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 40/80 │ online │ 15170530 │ Timeout
4│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 39/80 │ online │ 15504870 │ 24.5 ms
5│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 23/110 │ online │ 13199653 │ 13.8 ms
6│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 22/100 │ online │ 5030110 │ Timeout
7│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 5/100 │ online │ 13864541 │ 20.4 ms
8│ [DZGA]100k Start|Loot++|KeyCard|Helis|Exclusif Content|KOTH|3PP │ 141.94.135.157:2402 │ 3/70 │ online │ 15234438 │ 34.0 ms
9│ [EU] Vanilla+ Vibes |LOOTx2!|Party!|NoStamina!|Map!|Wiped 29/04 │ 45.92.36.43:2305 │ 0/80 │ offline │ 14409113 │ 12.3 ms
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection: 0
[INFO] Verifying integrity of server modlist manifest
[INFO] Mod check passed
[INFO] Connecting to: ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key 168.100.161.146:2302
steam.sh[26693]: Running Steam on mx 21.1 64-bit
steam.sh[26693]: STEAM_RUNTIME is enabled automatically
setup.sh[26759]: Steam runtime environment up-to-date!
steam.sh[26693]: Steam client's requirements are satisfied
Good luck out there. DZTUI 0.3.3
foss@mx:~/dztui
Thank you very much for all your efforts in this. The easy interface and automatic downloads make this indispensable.
Thanks for your patience on helping with the bug smashing. I think the browser method is working well over on the DZGUI side; not sure if you're still subscribed to the other thread.
As for the latest snafu, it sounds quite similar to this: https://github.com/aclist/dztui/issues/10
The other user reported this as a transitory issue, so I'm not sure. I'm almost certain it somehow relates to the way we're launching games directly through the Steam executable's command-line parameters, instead of through the more well-formed Steam browser protocol, but the latter seems to have some problems with unescaping characters properly. Maybe I can work up a good method of quoting everything so that it works correctly.
I'll see if I can replicate it here and try some incantations with the Steam browser protocol method. I was originally using it, but as the launch parameters grew increasingly complex and unwieldy, I reverted to using the -applaunch
method.
I remembered why we stopped using the browser protocol: https://steamcommunity.com/discussions/forum/1/458604254465948374/
If you pass command line options to a Steam URI instead of using the right-click launch menu and pasting them in, it tries to warn you and ask for your permission to launch the game this way. Unfortunately, this dialog will never appear if Steam is in the minigameslist mode or in the tray. The dialog just gets occluded and nothing will happen until you bring the full app to focus and click OK to confirm the prompt. That's why I stopped using that method. You would have to find and click on this dialog every time you wanted to launch the game.
Just spitballing a bit here: do by all means try restarting your Steam session. I find that mine tends to degrade when it's been open for several days and I've been switching between TTYs and stuff. It likes to kick me into offline mode while still keeping the client open, but make "Go Online" impossible without a relaunch.
Another false positive I've had: I had a nightly process using ffmpeg to screen capture a particular X screen as part of a browser automation routine for debugging, and grabbing the content of programs spawned to that screen and running it in the background of the X server. Sometimes I would forget it was running, and new programs calling GLX (OpenGL) would get swallowed into that screen and be functionally invisible. This meant that launching games would just cast them into a void, and they were exiting correctly without incident. I only found the problem after manually reviewing the video logs and finding game footage running on top of my video.
do by all means try restarting your Steam session
I tested with new Steam session, also with system restart prior. But, unfortunately, same behaviour — if Steam running initially, script hangs.
OK, will keep thinking about it. I cannot reproduce this currently, works fine for me.
Also try enabling debug=1
in the configs, getting the dry run parameters, and launching those in the terminal directly to see if anything was getting lost in the handover from DZTUI itself. (Likely not)
So you're saying that if Steam is not initially running, it will entirely obviate the process of launching Steam and jump right into the game? Does a process manager (htop etc) list no sign of residual Steam processes?
Also, try launching, then run winedbg
in a terminal, enter info process
and see if DayZ exe appears in the list. But in my experience, Steam just starting and quitting is quite common in the event of undocumented errors, and the log output is incredibly limited in these scenarios.
Lastly, please let me know if you're on Steam Beta branch and what version of Proton is being used at this point.
So you're saying that if Steam is not initially running, it will entirely obviate the process of launching Steam and jump right into the game? Does a process manager (htop etc) list no sign of residual Steam processes?
Yes, if I restart my system the script will launch Steam and then the game itself. Steam is not set to autostart. I just double-checked my processes to eliminate any background Steam processes (none were running).
Dry run parameters below, hangs and game doesn't launch (with Steam already running):
foss@mx:~
$ steam -applaunch 221100 -connect=193.25.252.25:2302 -nosplash -skipintro "-mod=@1602372402-DeerIsle;@2122332595-Vehicle3PP;@2420864633-The_Perception_Server_Pack;@2492595497-The_Perception_Licensed;@2462927972-The_Perception_Helicopters;@2350401726-King_of_the_Hill;@2757080411-Croco_s_Quadbike;@2444301292-Care_Packages;@2545327648-Dabs_Framework;@2276010135-DayZ_Editor_Loader;@2398911445-Basic_Territories;@2565724570-Better_Snap_Sounds;@2444247391-Inventory_Move_Sounds;@2345073965-CJ187_LootChest;@2303483532-CarCover;@1836257061-Banking;@1590841260-Trader;@2049002856-MuchCarKey;@2709289485-Admirals_Diving_Mod;@1832448183-FlipTransport;@2710385029-BetterStash;@2143128974-Advanced_Weapon_Scopes;@2443122116-SNAFU_Weapons;@2273590683-RevGuns;@1646187754-Code_Lock;@2303554682-Dogtags;@2484279619-Quadlock_s_Pack;@1797720064-WindstridesClothingPack;@1991570984-MuchStuffPack;@1710977250-BaseBuildingPlus;@1828439124-VPPAdminTools;@1559212036-CF"
steam.sh[14064]: Running Steam on mx 21.1 64-bit
steam.sh[14064]: STEAM_RUNTIME is enabled automatically
setup.sh[14130]: Steam runtime environment up-to-date!
steam.sh[14064]: Steam client's requirements are satisfied
foss@mx:~
$
winedbg output:
foss@mx:~
$ winedbg
wine: Call from 000000007B037FC8 to unimplemented function ndis.sys.NdisInitializeReadWriteLock, aborting
wine: Unimplemented function ndis.sys.NdisInitializeReadWriteLock called at address 000000007B037FC8 (thread 00ac), starting debugger...
003c:err:service:process_send_command service protocol error - failed to read pipe r = 0 count = 0!
wine client error:ac: 003c:fixme:service:scmdatabase_autostart_services Auto-start service L"tap0901" failed to start: 1053
write: Bad file descriptor
0088:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\wineusb": c0000142
003c:fixme:service:scmdatabase_autostart_services Auto-start service L"wineusb" failed to start: 1114
Wine-dbg>info process
pid threads executable (all id:s are in hex)
00000074 3 'explorer.exe'
00000038 8 'services.exe'
00000104 6 \_ 'rpcss.exe'
000000ec 3 \_ 'PnkBstrA.exe'
000000c8 4 \_ 'plugplay.exe'
0000007c 6 \_ 'winedevice.exe'
0000005c 5 \_ 'winedevice.exe'
00000044 3 \_ 'svchost.exe'
00000020 1 'start.exe'
00000130 1 \_ 'winedbg.exe'
00000128 2 \_ 'conhost.exe'
Wine-dbg>
I'm enrolled in the Steam beta branch. DayZ is using GE-Proton7-20.
I think I have a fix for this.
4363928
(should work) and then try connecting to 14614427
(your server, The Perception EU1, has 32 mods) (likely won't work)steam -applaunch 221100 -nolauncher
by itself from the terminal (should work).I am working up a hotfix, testing it now. It was a bit hard to test because I had to fetch 32GB of mods and steamcmd was choking on it.
Hotfix is live, please try. This attempts to consolidate the symlinks for mod directories down to extremely small strings, so that when the full launch parameters are concatenated, it's a manageable ("expected") length that doesn't overflow Steam's limits on length of launch options (where that limit lies is unclear, but your launch parameters for that server were almost 1,000 chars). With this change, the parameters are crunched down to 319 chars. Still extremely long due to how many mods there are (3x or more that of most servers), but it should work.
Downside of this is that the mod directories are basically unintelligible now, so if a user needed a human readable way of removing directories or mods, it's not gonna be easy without probing the files inside of them to get the name. (Doable, at least.)
One thing we could also consider is just using a numeric, incremental ID for the mods instead of a UUID, since the length would then be no more than triple digits at the high end.
I poked around steamcmd
parameters some more and something seems to have changed, as it's now possible to anonymously download mods without proving ownership of the DayZ license, so I dropped that requirement, which gets us one step closer to luxury automation. You won't need to manually enter anything into the prompt from now on.
Try connecting to 4363928 (should work) and then try connecting to 14614427 (your server, The Perception EU1, has 32 mods) (likely won't work)
Testing 0.3.3, with Steam running, attempt to connect to your suggested server (4363928) succeeded. BUT script first downloaded one mod and returned to main menu. On selecting server again, it downloaded the remaining mods and launched the game.
As you expected, 0.3.3, with Steam already running, will not launch game for any of my other servers. These all have a minimum of 20 mods.
steam -applaunch 221100 -nolauncher
launches steam and the game
With latest hotfix, steamcmd had trouble downloading some of the mods. When the first error appeared ERROR! Download item 2801429879 failed
there was also briefly an error saying 'insufficient disk space' — but this disappeared. I had to close/open Konsole several times, relaunching DZTUI to continue with downloads. There are often very long pauses at line: Waiting for user info...OK
and occasionally a timeout error. Another error: ERROR! Download item 80930443 failed (No match).cp: cannot stat '/tmp/steamapps/workshop/content/221100/*': No such file or directory
0│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
1│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 99/100 │ online │ 12751607 │ 10.9 ms
2│▶DayZ Aftermath Chernarus EU 2 |CUSTOM BASE BUILDING|Quest │ 51.210.155.18:2402 │ 90/90 │ online │ 15504869 │ 24.8 ms
3│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 80/80 │ online │ 15248988 │ 22.8 ms
4│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 75/80 │ online │ 15504870 │ 24.8 ms
5│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 69/100 │ online │ 5030110 │ Timeout
6│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 60/110 │ online │ 13199653 │ 13.7 ms
7│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 88.7 ms
8│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 20/100 │ online │ 13864541 │ 21.0 ms
9│ [DZGA]100k Start|Loot++|KeyCard|Helis|Exclusif Content|KOTH|3PP │ 141.94.135.157:2402 │ 5/70 │ online │ 15234438 │ 14.4 ms
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection: 9
[INFO] Verifying integrity of server modlist manifest
[ERROR] Missing mods. Checking for steamcmd user 'steam'
[INFO] Found steamcmd user 'steam'
[sudo] password for foss:
[INFO] Found steamcmd at '/home/steam/Steam/steamcmd.sh'
[INFO] Downloading mods
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
/tmp/dumps is not owned by us - delete and recreate
Unable to delete /tmp/dumps. Continuing anyway.
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 1870481515 ...
Success. Downloaded item 1870481515 to "/tmp/steamapps/workshop/content/221100/1870481515" (135755972 bytes) Downloading item 2170927235 ...
Success. Downloaded item 2170927235 to "/tmp/steamapps/workshop/content/221100/2170927235" (10525960 bytes) Downloading item 2316250469 ...
Success. Downloaded item 2316250469 to "/tmp/steamapps/workshop/content/221100/2316250469" (2114375410 bytes) Downloading item 2458056027 ...
Success. Downloaded item 2458056027 to "/tmp/steamapps/workshop/content/221100/2458056027" (14553 bytes) Downloading item 2574104127 ...
Success. Downloaded item 2574104127 to "/tmp/steamapps/workshop/content/221100/2574104127" (4624704 bytes) Downloading item 2663169692 ...
Success. Downloaded item 2663169692 to "/tmp/steamapps/workshop/content/221100/2663169692" (999127569 bytes) Downloading item 2714183642 ...
Success. Downloaded item 2714183642 to "/tmp/steamapps/workshop/content/221100/2714183642" (234682066 bytes) Downloading item 2718277267 ...
Success. Downloaded item 2718277267 to "/tmp/steamapps/workshop/content/221100/2718277267" (71558424 bytes) Downloading item 2745298078 ...
Success. Downloaded item 2745298078 to "/tmp/steamapps/workshop/content/221100/2745298078" (774518127 bytes) Downloading item 2801429879 ...
ERROR! Download item 2801429879 failed (Failure).Downloading item 2803197132 ...
0│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 100/100 │ online │ 12751607 │ 18.2 ms
1│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
2│▶DayZ Aftermath Chernarus EU 2 |CUSTOM BASE BUILDING|Quest │ 51.210.155.18:2402 │ 90/90 │ online │ 15504869 │ 25.0 ms
3│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 70/100 │ online │ 5030110 │ Timeout
4│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 69/80 │ online │ 15504870 │ 24.5 ms
5│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 58/80 │ online │ 15248988 │ 31.1 ms
6│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 88.6 ms
7│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 17/100 │ online │ 13864541 │ 21.0 ms
8│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 10/80 │ online │ 15170530 │ Timeout
9│ [DZGA]100k Start|Loot++|KeyCard|Helis|Exclusif Content|KOTH|3PP │ 141.94.135.157:2402 │ 4/70 │ online │ 15234438 │ 14.3 ms
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection:
Selection: 9
[INFO] Verifying integrity of server modlist manifest
[ERROR] Missing mods. Checking for steamcmd user 'steam'
[INFO] Found steamcmd user 'steam'
[INFO] Found steamcmd at '/home/steam/Steam/steamcmd.sh'
[INFO] Downloading mods
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
/tmp/dumps is not owned by us - delete and recreate
Unable to delete /tmp/dumps. Continuing anyway.
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 2801429879 ...
Success. Downloaded item 2801429879 to "/tmp/steamapps/workshop/content/221100/2801429879" (2735256164 bytes) Downloading item 2803197132 ...
0│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
1│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 99/100 │ online │ 12751607 │ 17.0 ms
2│▶DayZ Aftermath Chernarus EU 2 |CUSTOM BASE BUILDING|Quest │ 51.210.155.18:2402 │ 90/90 │ online │ 15504869 │ 35.7 ms
3│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 80/80 │ online │ 15248988 │ 34.3 ms
4│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 71/100 │ online │ 5030110 │ Timeout
5│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 69/80 │ online │ 15504870 │ 32.6 ms
6│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 97.0 ms
7│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 15/100 │ online │ 13864541 │ 23.8 ms
8│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 13/80 │ online │ 15170530 │ Timeout
9│ [DZGA]100k Start|Loot++|KeyCard|Helis|Exclusif Content|KOTH|3PP │ 141.94.135.157:2402 │ 4/70 │ online │ 15234438 │ 20.5 ms
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection:
Selection: 9
[INFO] Verifying integrity of server modlist manifest
[ERROR] Missing mods. Checking for steamcmd user 'steam'
[INFO] Found steamcmd user 'steam'
[sudo] password for foss:
[INFO] Found steamcmd at '/home/steam/Steam/steamcmd.sh'
[INFO] Downloading mods
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
/tmp/dumps is not owned by us - delete and recreate
Unable to delete /tmp/dumps. Continuing anyway.
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 2803197132 ...ERROR! Timeout downloading item 2803197132cp: cannot stat '/tmp/steamapps/workshop/content/221100/*': No such file or directory
0│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 100/100 │ online │ 12751607 │ 10.6 ms
1│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
2│▶DayZ Aftermath Chernarus EU 2 |CUSTOM BASE BUILDING|Quest │ 51.210.155.18:2402 │ 89/90 │ online │ 15504869 │ 25.0 ms
3│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 80/80 │ online │ 15248988 │ 23.2 ms
4│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 75/100 │ online │ 5030110 │ Timeout
5│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 70/80 │ online │ 15504870 │ 25.0 ms
6│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 67/110 │ online │ 13199653 │ 13.6 ms
7│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 88.8 ms
8│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 15/100 │ online │ 13864541 │ 21.3 ms
9│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 5/80 │ online │ 15170530 │ Timeout
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection:
0│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 100/100 │ online │ 12751607 │ 10.9 ms
1│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
2│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 80/80 │ online │ 15248988 │ 23.1 ms
3│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 76/110 │ online │ 13199653 │ 13.7 ms
4│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 64/100 │ online │ 5030110 │ Timeout
5│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 60/80 │ online │ 15504870 │ 25.2 ms
6│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 88.5 ms
7│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 18/100 │ online │ 13864541 │ 20.6 ms
8│ [DZGA]100k Start|Loot++|KeyCard|Helis|Exclusif Content|KOTH|3PP │ 141.94.135.157:2402 │ 5/70 │ online │ 15234438 │ 14.4 ms
9│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 1/80 │ online │ 15170530 │ Timeout
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection: 5
[INFO] Verifying integrity of server modlist manifest
[ERROR] Missing mods. Checking for steamcmd user 'steam'
[INFO] Found steamcmd user 'steam'
[sudo] password for foss:
[INFO] Found steamcmd at '/home/steam/Steam/steamcmd.sh'
[INFO] Downloading mods
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 80930443 ...
ERROR! Download item 80930443 failed (No match).cp: cannot stat '/tmp/steamapps/workshop/content/221100/*': No such file or directory
0│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 100/100 │ online │ 12751607 │ 25.6 ms
1│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
2│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 80/80 │ online │ 15248988 │ 23.0 ms
3│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 76/110 │ online │ 13199653 │ 13.8 ms
4│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 64/100 │ online │ 5030110 │ Timeout
5│ DayZ Aftermath Livonia | CUSTOM BASE BUILDING|Quests │ 51.210.155.51:2302 │ 60/80 │ online │ 15504870 │ 24.5 ms
6│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 88.4 ms
7│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 19/100 │ online │ 13864541 │ 20.5 ms
8│ [DZGA]100k Start|Loot++|KeyCard|Helis|Exclusif Content|KOTH|3PP │ 141.94.135.157:2402 │ 5/70 │ online │ 15234438 │ 14.0 ms
9│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 2/80 │ online │ 15170530 │ Timeout
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection:
I'll do a diff and see if anything breaking was introduced on the download front, but I don't think so. steamcmd was acting very flaky for me, too. Steam's regular maintenance falls around the Tues/Weds mark, and causes significant performance degradation across a lot of their services, so that may have been responsible, but I don't know. I'd give it 24 hours and check again.
I don't believe logging in as anonymous subjects you to throttling of any sort, either.
This may be relevant. Possible that some older mods require steam login, hence timeouts. Thread is full of grumbling re. steamcmd.
Great find. I knew there was a reason I originally implemented it that way. This is why you should never try to solve two problems at the same time.
I reverted the change to the login method. Now, can you test the shorter mod symlinks and see if you can pull those down and connect to the 20+ mod servers?
If mods need to be downloaded, I keep seeing this error (latest DZTUI with revert, and previous version):
ERROR! Download item 80930443 failed (No match).cp: cannot stat '/tmp/steamapps/workshop/content/221100/*': No such file or directory
If mods are already downloaded, steam and game are launched swiftly.
0│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
1│▶DayZ Aftermath Chernarus EU 2 | FRESH WIPE! | CUSTOM BUILDING │ 51.210.155.18:2402 │ 79/90 │ online │ 15504869 │ 25.2 ms
2│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 70/100 │ online │ 12751607 │ 10.6 ms
3│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 69/80 │ online │ 15248988 │ 23.0 ms
4│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 54/110 │ online │ 13199653 │ 13.8 ms
5│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 53/80 │ online │ 15170530 │ Timeout
6│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 50/100 │ online │ 5030110 │ Timeout
7│ DayZ Aftermath Livonia | FRESH WIPE! | CUSTOM BUILDING │ 51.210.155.51:2302 │ 50/80 │ online │ 15504870 │ 25.2 ms
8│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 85.0 ms
9│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 7/100 │ online │ 13864541 │ 20.2 ms
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection: 7
[INFO] Verifying integrity of server modlist manifest
[ERROR] Missing mods. Checking for steamcmd user 'steam'
[INFO] Found steamcmd user 'steam'
[INFO] Found steamcmd at '/home/steam/Steam/steamcmd.sh'
[INFO] Downloading mods
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
[ 0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1654574676
-- type 'quit' to exit --
Loading Steam API...OK
Logging in user 'my_username' to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
Downloading item 80930443 ...
ERROR! Download item 80930443 failed (No match).cp: cannot stat '/tmp/steamapps/workshop/content/221100/*': No such file or directory
0│ ==FRESH WIPE== The Perception EU1 1PP|PVP|Loot+|Leaderboard|Key │ 168.100.161.146:2302 │ 100/100 │ online │ 14614427 │ Timeout
1│▶DayZ Aftermath Chernarus EU 2 | FRESH WIPE! | CUSTOM BUILDING │ 51.210.155.18:2402 │ 78/90 │ online │ 15504869 │ 24.9 ms
2│ DayZ Origins EU - 1PP|NoTrader|Loot+ - Fresh Wipe │ 198.244.176.55:2302 │ 70/100 │ online │ 12751607 │ 10.8 ms
3│ KarmaKrew Chernarus - 1PP MODS │ 135.125.189.129:2202 │ 69/80 │ online │ 15248988 │ 22.9 ms
4│ [EU] RanzBude #1 - FRESH WIPED! | 100k start | WEED | 100+guns │ 141.94.98.98:2302 │ 54/110 │ online │ 13199653 │ 13.6 ms
5│ ==FRESH WIPE== The Perception EU2 | Deerisle | 5 Group Max|Heli │ 193.25.252.25:2302 │ 53/80 │ online │ 15170530 │ Timeout
6│ DayZ Aftermath Livonia | FRESH WIPE! | CUSTOM BUILDING │ 51.210.155.51:2302 │ 50/80 │ online │ 15504870 │ 25.2 ms
7│ Lone Survivor |EU1|1PP PVP|Loot+|Guns+|BaseBuild|Raid|Trader| │ 45.88.230.23:2302 │ 49/100 │ online │ 5030110 │ Timeout
8│ DayOne Namalsk Hardcore Survival #1 - 1PP │ 135.148.136.111:2302 │ 40/40 │ online │ 4363928 │ 85.0 ms
9│ Rearmed EU2 | Esseker │ 168.100.161.234:2302 │ 7/100 │ online │ 13864541 │ 20.5 ms
f│ Launch favorite
l│ List installed mods
r│ Refresh
q│ Quit
Selection:
Not a problem with all servers, though. Connected to server 15021740 which has 41 mods; successfully downloaded 7 or eight mods without hanging. Will test others.
Not sure what changed, but dztui stopped working for no obvious reason. I downloaded dzgui and that works perfectly using the same steam path, workshop & game directories.
As dzgui works so well, there's no obviously no urgency to fix this, I'm just posting in case it's useful. I'll be installing steamcmd later just for fun ;)
I'm running MX Linux 21.1 (debian based)
Here is the error from dztui (I had to run it with root, otherwise the terminal just closes without any error text)
When connecting to the same server with dzgui, I get a different 'false positive', but the game actually launches and runs without issue: