Jump to content


Photo

Testing new tdm installer - 201807


  • Please log in to reply
18 replies to this topic

#1 freyk

freyk

    Advanced Member

  • Member
  • PipPipPip
  • 759 posts

Posted 23 July 2018 - 03:59 PM

*
POPULAR

As you know, im working on installation programs to install TDM on several os'ses.
My goal is to create installers, so everybody can install TDM on their system, without any problems (and avoiding beginner problems).
(see Graphical installer and moddb page)

For the version 2.06, im updating the tdm-installer - windows, with some requested features.
If you can spare some time, please help me to test it and let me know your opinions about it.

I added the following features.

  • 64 bit detection (shortcuts, files)
  • Write permissions to darkmod folder (on the users selection)
  • VC studio installer (only download, for now)
  • Steam nonsteam-game shortcuts.

====

To test each feature, do the following things:

Download the most recent version of the installer from my google drive.
and do the following optional tests:

Testing 64 bit detection
To test this feature, just use this installer and look for 64 bit files and shortcuts to them.


Test - set write permissions on darkmod folder
The installer creates TDM folder in a specified location and set write permissions to it.
To check it, start installer, install the game files, close the updater, rightclick the darkmod folder > properties > tab security. select "users" and check if it has "full control".
Check also if the updater downloads files to this folder and if tdm mission downloader can download a mission.

Test - vc++ studio installer
In this testversion, the installer downloads only the vc++ installation package, for the detected 32 of 64 bit system
Start installer, select option "test - install vc++ shortcut".
The installer downloads the installation package into the darkmod folder.
Check if the vc++ packages is downloaded for your system (if it is x86 or 64 bit)

Test - nonSteam-game shortcut in Steam

This option adds a nonsteame-game shortcut in steam. (but without icons, banners, etc)

This start steam, open in the steam client our community page and open a selection list, where the user have to select the tdm and tdm-updater..
Start installer, select option "test - steam shortcut".
After the installation of the files, the installer starts steam and ask you to login.
If you do this, the our community page appears and a messagebox with instructions you have to follow.
close the message box and check if the the selection list appears.

===

Attached Files


Edited by freyk, 24 July 2018 - 02:04 AM.

  • PsymH, stgatilov, RPGista and 2 others like this

#2 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 23 July 2018 - 11:22 PM

I'll test it in the nearest future.

 

Test - vc++ studio installer

In this testversion, the installer downloads only the vc++ installation package, for the detected 32 of 64 bit system
Start installer, select option "test - install vc++ shortcut".
The installer downloads the installation package into the darkmod folder.
Check if the vc++ packages is downloaded for your system (if it is x86 or 64 bit)

Note that tdm_update is expected to install VC redist package by itself, so theoretically this step is unnecessary in your installer.

Although I'm not sure how well it works now --- I plan to test it on clean Windows VMs. Some duplication on this part won't hurt.

 

Anyway, please don't call this part "Install Visual C++", because "Visual C++" usually means the whole multigigabyte software including compiler, IDE, Windows SDK, and tons of other stuff.

I believe this thing is called "VC++ Redistributable", or just VC redist for short.


  • Judith likes this

#3 s.urfer

s.urfer

    Member

  • Member
  • PipPip
  • 103 posts

Posted 24 July 2018 - 01:26 AM

Tried it on an TDM unaware Win10Pro 64bit machine.

 

After the two Windows nag-screens, it installed itself into the correct 64bit program file directory.

 

I've got three Desktop icons, The Dark Mod 32&64bit and the updater, all pointing to the right directory.

 

Users have full access to the installation folder, creation and deletion of files and folders works. Other program folders seem unaffected. The later downloads also worked.

 

The VC++ step got skipped.

 

The steam integration shows the community page and with "add game", you could select TDM.

 

Even though the entry is named The Dark Mod-64bit, it is alphabetically listed under the "D" section. You should probably change the default folder's name to the_dark_mod or something like that.

 

Launching the game through the desktop icons worked.

 

Launching via steam also works, steam overlay also seems to work.

 

I would have liked to try it on a fresh Win7 system, but time was running out. I won't have access to a flat-rate machine until Sunday...


  • stgatilov likes this

#4 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1666 posts

Posted 24 July 2018 - 12:07 PM

Even though the entry is named The Dark Mod-64bit, it is alphabetically listed under the "D" section. You should probably change the default folder's name to the_dark_mod or something like that.

This is common for games on Steam, so I don't think it is a TDM issue. For example Skyrim appears under "E" for Elder scrolls or "The Long Dark" appears undder "L". It is quite common to ignore the article for sorting as this will clutter the letter "T" (or "D" for German games).



#5 s.urfer

s.urfer

    Member

  • Member
  • PipPip
  • 103 posts

Posted 25 July 2018 - 12:58 AM

This is common for games on Steam, so I don't think it is a TDM issue. For example Skyrim appears under "E" for Elder scrolls or "The Long Dark" appears undder "L". It is quite common to ignore the article for sorting as this will clutter the letter "T" (or "D" for German games).

 

Had to try that out ;)

 

When I run the installer and default to a directory named "thedarkmod", steam will list tdm under "T". No issue, just a matter of taste, I reckon. One can prompt steam to list wherever, by choosing the folder name.

 

What's also interesting, tdm was not listed, when I started steam on this machine. I thought that the different program folder was the issue - I installed tdm on the other machine to the installer default directory, on this machine it sits in a different path. This seems not to be the case. After adding the game, then closing down steam, I renamed the folder. Starting steam still showed tdm, but couldn't launch it. Looks like the Library info is stored locally, which is a bit odd, since otherwise I always see my complete library, regardless of what is installed locally.

 

Anyways, installing VC++ was again skipped, but this machine has a previous installation, so that might be normal.


Edited by s.urfer, 25 July 2018 - 01:03 AM.


#6 freyk

freyk

    Advanced Member

  • Member
  • PipPipPip
  • 759 posts

Posted 25 July 2018 - 02:28 AM

Thank you for testing the installer, s.urfer (and all).
It seems that all is working, what i have in mind. :D

During the vc++ installation, the installer detects if you need the installation of this package.
If you dont, this procedure going to be skipped. You can check this in the installation details.
You can find it, After you specify the installation path and hit the install button.
After this, you see the installation screen and you can click on the details button.
Here you will see the installation details.
The installation details are folded in, because it can scare people. Or shall i fold it out, during installation?

 About those windows nagscreens.
They are normal, if windows declares im not a official app publisher (and dont want to pay a publishing licence)
 
@stgatilov, i going to change the name in the list.

Edited by freyk, 25 July 2018 - 02:30 AM.

  • Anderson likes this

#7 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 26 July 2018 - 11:30 PM

Tested on Windows 7 32-bit in virtual machine.

 

Write permissions to darkmod folder (on the users selection)

The installer by default chose directory in Program Files, which of course was not allowed to be accessed initially without admin rights.

After installation, I the access it granted (I see it in Security dialogs, I can edit the txt files without UAC intervention, tdm_update downloads files there properly).

So this part works for me.

 

VC studio installer (only download, for now)

32-bit version was downloaded, but not installed.

Also, it is the wrong version: it is named vc_redist.x86.exe and has size 14 MB.

The installer downloaded by tdm_update is named vc_redist.x86.exe and has size 6 MB.

In fact, your installer is for MSVC2017: it will work for 2.07, but won't work for 2.06.

 

Steam nonsteam-game shortcuts.

I have no steam in my VM.

 

Aside from that, all files are downloaded properly.

Unfortunately, I cannot check anything in-game.

 

The shortcuts are created on desktop, and point properly both to the game itself and to updater.

The uninstaller works properly (it removes the whole darkmod directory).

 



#8 freyk

freyk

    Advanced Member

  • Member
  • PipPipPip
  • 759 posts

Posted 26 November 2018 - 04:09 PM

I uploaded a new version of this installer, version 20181125 on my drive for testing.
(and updated the sourcecode on my github repo)
 
The most important feature of this version is that
it detects if the tdm updater is sitting next to the installer and use that updater.
So it can be included in TDM's main package for the tdm-updater windows (tdm_update_win.zip) in the future.
 
This version detects if there is a tdm updater, next to the installer.
If so, the installer copies that updater to the tdm gamefolder.
If not, it downloads the current version of the updater to the tdm gamefolder
If he cannot find the updater online, he extracts an old version of the updater to the tdm gamefolder.
This version (and the future versions) of installer doesnt have to be recompiled anymore, when there is a new version of the updater.
 
My question now is shall i create an ini-file for it, with settings like the current location of the online updater?
And what must the updater do, when he cannot find the updater online.

Edited by freyk, 26 November 2018 - 04:25 PM.

  • stgatilov, nbohr1more and Anderson like this

#9 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 27 November 2018 - 12:24 AM

Sounds great!

 

My question now is shall i create an ini-file for it, with settings like the current location of the online updater?
And what must the updater do, when he cannot find the updater online.

I think that the current location of updater can be hardcoded.

 

For instance, the location of tdm_mirrors.txt file is hardcoded inside tdm_update:

const char* const TDM_MIRRORS_FILE = "tdm_mirrors.txt";
const char* const TDM_MIRRORS_SERVERS[] = { 
  "http://mirrors.thedarkmod.com/",
  "http://www.thedarkmod.com/update/",
  ""
};

So tdm_update goes to hardcoded paths to download tdm_mirrors.txt if it does not have one nearby.

After that it uses the mirrors written into that file. Some sort of bootstrapping here  :D

I think it's better to ask Grayman or Springheel: they can say how often the location of tdm_update.exe on website have changed over years.

 

If you cannot find updater online, then... report error, I guess?  :laugh:



#10 freyk

freyk

    Advanced Member

  • Member
  • PipPipPip
  • 759 posts

Posted 27 November 2018 - 01:59 AM

thanks.
im looking at the future where are no tdm volunteers who want to compile our code

(but the code/binaries are somewhere outthere)
So "frequently" changed online paths and names shouldnt be hardcoded.
(you can hardcode a mirrorlist, but existing connections will shrink overtime)

 

For example, i dont know how long taaki's last.

So a general location, like www.thedarkmod.com/downloads/tdm_update_win.zip, with a dynamic location selector on the back would last longer.


Edited by freyk, 27 November 2018 - 02:56 AM.


#11 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 27 November 2018 - 11:21 AM

For example, i dont know how long taaki's last.

So a general location, like www.thedarkmod.com/downloads/tdm_update_win.zip, with a dynamic location selector on the back would last longer.

As far as I remember, taaaki is not the first one who hosts TDM server.

As long as someone controls thedarkmod.com domain, it is always possible to migrate to new hosting without changing urls.

 

You can of course create an ini file, but wouldn't it make your installer as complicated as tdm_update current is (in the very end)?



#12 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 18 December 2018 - 12:47 AM

I'd like to include your installer into beta testing phase.

 

For this to happen, it is necessary to be able to set --keep-mirrors parameter to tdm_update.

1) Can the installer itself do that (some parameter, checkbox, ini-file)?

2) Can the user set the checkbox manually when tdm_update kicks in?



#13 freyk

freyk

    Advanced Member

  • Member
  • PipPipPip
  • 759 posts

Posted 18 December 2018 - 01:18 AM

1) yes the installer can do that. the installer can run the updater with those parameters. but for this i need to recompile the installer.

2)which checkbox?
the keepmirrors? if so, i can create another checkbox for that in the installer.

#14 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 18 December 2018 - 01:24 AM

1) yes the installer can do that. the installer can run the updater with those parameters. but for this i need to recompile the installer.

Not very good --- that's call this plan B :laugh:

 

2)which checkbox?
the keepmirrors? if so, i can create another checkbox for that in the installer.

When GUI version of tdm_update is run, user can click Advanced Options and set checkbox there.

This is how beta testers stay on testing mirror.

Perhaps the most right way would be to instruct beta-testers to enable the same checkbox (as in direct install) when using your installer?

Of course, it won't be needed for real players.



#15 STiFU

STiFU

    Uber member

  • Development Role
  • PipPipPipPip
  • 3562 posts

Posted 18 December 2018 - 02:13 AM

I am a Bit concerned that using the folder "Program files" might hinder people trying out Dark Radiant because that folder contains spaces and has special user accessrights, which both caused issues with DR in the past.

#16 freyk

freyk

    Advanced Member

  • Member
  • PipPipPip
  • 759 posts

Posted 18 December 2018 - 04:06 AM

The installer solved that problem by setting the write permission to tdm folder for all users. (edit: full access)
And for the spaces, the user can select an other folder if they want.
how about using Windows environment variables in the path in darkradiant?
 
The installer only starts the updater and not the update process.
(and it uses at firstrun the no-self update parameter, to avoid problems.)
The user can select the keep-mirrors option in the updater, if they want to.
For more info see the code of the installation script of the installer

Edited by freyk, 18 December 2018 - 06:40 AM.

  • STiFU likes this

#17 STiFU

STiFU

    Uber member

  • Development Role
  • PipPipPipPip
  • 3562 posts

Posted 18 December 2018 - 04:43 AM

Ah, that write-permission thing is good.

 

Regarding the spaces, maybe a mapper could check if this even still is an issue. If it isn't, we're all good. If it is, the environment variable will not be a solution because it will be resolved to an actual path that contains the spaces again by the OS. In that case, I would rather issue a warning that paths with spaces might prevent you from getting a proper DR setup.



#18 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 18 December 2018 - 12:11 PM

I have built from source code using nsis 3.04.

I took tdm_update from the 2.07 beta.

I'll instruct beta testers to put tdm_mirrors into the proper place.



#19 stgatilov

stgatilov

    Lead Programmer

  • Active Developer
  • PipPipPip
  • 1557 posts

Posted 20 December 2018 - 10:18 AM

Well, I'd like to ask here:

 

2a. At the end of the installation procedure, untick the checkbox that it starts the updater after the installation. So it doesnt start the updater.
Download and place the mirrors file in the tdm folder and then start the updater.
follow 4 and 5.

As far as I see it, it is only important to ensure that tdm_mirrors.txt is near tdm_update.exe by the time you click "Continue>>" in GUI updater.

So it does not matter if [your installer starts tdm_update, user puts tdm_mirrors.txt at proper place, user continues] or [your installer ends, user puts tdm_mirrors.txt, user starts tdm_update, user clicks continue].

Since user anyway has to go to advanced options and click a checkbox there, I decided to add the second "manual" thing at the same place.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users