Author Topic: Code::Blocks Installer upgrade review request for killerbot and/or mortenmacfly  (Read 12747 times)

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
Can I please ask killerbot or mortenmacfly how I go about getting the changes reviewed that I have done for the updated installers I have worked on?

Some relevant URL's are:

Ticket:       https://sourceforge.net/p/codeblocks/tickets/1119/
Code:        https://github.com/acotty/codeblocks_sf/tree/AC-WindowInstallerUpgrade/windows_installer
Installers: https://sourceforge.net/projects/unofficial-cb-installers/files/

All of the files are technically new as it's a new directory as it makes building the installers allot easier.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
So, I had a quick look into the files you've provided. Its looking good in general, but here are some comments you need to consider (and I am unsure if you did consequently):
- We only use NSIS, there is no need for an ISS based installer, we won't ship both. The ISS script is a relict from very old times
- The logo is from CodeBlocks Version 1 which is around 20 years ago...?! :-) So it should be updated
- Did you try to run the installer in an unattended mode w/o GUI? this must work.
- It would be nice if one could skip the creation of shortcut (but its not a must)
- Under additional icons: If I un-select all, what is actually created in that case? For me its nothing, so why are these on the "Additional" page?

- The Un-installer did not work well for me. It left tons of files, including all plugins and the executable.

Besides, I like the installer for the compiler. But, for people w/o internet connection (and these are many) there should also be a package that has our default compiler bundled. This is also related to running in unattended mode for admins and alike.

Maybe you can have a look into those...
« Last Edit: September 12, 2021, 07:19:23 am by MortenMacFly »
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
Thanks for taking the time to check out the installers.

If you can remember when you ran the installer and then the uninstall that left crap can you remember if you installed i for just you or everyone? I take it this was the NSIS installer from the feedback.

Any ideas on the graphic? Should I try and update the graphics myself? I like most programmers I know suck at graphic design, but know how to hack things to look better than before.

I will look at it all and get back to you in the next 2 to 3 days as some of the points I never tested or checked out or thought about offline installation....

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
I have got all, but one of the items fixed/working/updated with the exception of the following:

- Under additional icons: If I un-select all, what is actually created in that case? For me its nothing, so why are these on the "Additional" page?


When you have time could you give a bit more detail as I cannot spot the additional icons or what the actual "Additional" page is.

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
I have uploaded a new NSIS x64 installer with the changes to hopefully resolve the issues, with the exception of the Additional page icons. I have updated the Installer_Pages.odt to show the updated and new pages in this release.

My feedback on your feedback is:
1. We only use NSIS, there is no need for an ISS based installer, we won't ship both. The ISS script is a relict from very old times
    - NSIS was superior 10 years ago compared to ISS, but ISS has improved a hack of allot and is up to the job now. ISS apart from installing the components via a selectable list is allot easier to follow and program and enhance compared to NSIS based on my usage of both over the last few months.
    - ISS uses pascal instead of a what appears to be some custom programming language that is not easy to understand or use compared to normal programing languages.
    - There are ISS IDE's and GUI's to make it easier to create the script. But there is no specific NSIS IDE that make it easier to update/change the script.
    - Both are not very good for creating a new GUI from scratch, but ISS has a bunch of templates you can use that make it a bit easier.

    I agree to only ship one, but going forward the ISS script will be allot easier to maintain IMHO.

2. The logo is from CodeBlocks Version 1 which is around 20 years ago...?! :-) So it should be updated
    - Fixed: rotated the current logo and cropped it and moved some of the text around, added www.codeblocks.org text.


3. Did you try to run the installer in an unattended mode w/o GUI? this must work.
    - C::B 20.03 - silent install pops up the splash screen
    - Fixed/Updated:
        a. Installs in C:\Users\andrew\AppData\Local\Programs\CodeBlocks if run as normal user with /S, but now does not pop up the spash dialog
        b. Fixed admin unattended install for C:\program files.\
        c. Updated the script to define MULTIUSER_INSTALLMODE_COMMANDLINE


4. It would be nice if one could skip the creation of shortcut (but its not a must)
    - Fixed:
        This is in the custom setup like in the 20.03 installer from what I can see. It is not easy to find.
        Updated script for newly added shortcuts from missing apps.
    - Fixed:
        In the new installer if you run the custom install you can also select on the "Choose Start Menu Folder" there is a tickbox for "[ ] Do not create shortcuts" under the start menu folder list.
        Updated script for mising macros.

5. Under additional icons: If I un-select all, what is actually created in that case? For me its nothing, so why are these on the "Additional" page?
    - Need more info.

6. The Un-installer did not work well for me. It left tons of files, including all plugins and the executable.
    - Problem:
        If you install as admin for all users and then run the installer as a user the files are shown as to be removed on reboot, but they are not.
    - Fix/work arround:
        If you install for all users then you need to run the uninstaller as admin otherwise it will pop up and tell you to run the uninstall again with admin rights.
        Added support for detecting if C::B was allready installed and by privelege in order to either ask the user to uninstall the previous version or run the installer as admin or as a normal user.
        Added support for uninstalling 20.03 before installing update on x64 system as they are in different directories and may use different registry uninstall kys (HKLM or HKCU depending on install rights used)
    - Hopefully I have covered the different options so files are not left, but if they are can you let me know how the previous version was installed (and if it was 20.03) and how the new installer was run (admin or normal user rights) and where the files that were left are (C:\program files, C:\program files (x86), C:\users......).

7. But, for people w/o internet connection (and these are many) there should also be a  package that has our default compiler bundled. This is also related to running in  unattended mode for admins and alike.
    - Updated the download compiler page to not be shown if is no internet connection.
    - Created a new page to install the following files if they exist (if they both don't exist the page is not shown)
            * i686-8.1.0-release-posix-dwarf-rt_v6-rev0.7z
            * x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
           
          They files are available from:
            https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/8.1.0/
         
          The new page could be modified in the future to add more files or use the files from a text file if the text file exists in the same directory, but someone else can do this.

     - I do not like bundling the compiler as this causes newbies to think that C::B is the compiler........wrong!!!

     -  The way MINGW is bundled in 20.03 is not documented w.r.t. what goes into the "\MinGW" directory that the 20.03 nsi script uses. This change makes it consistent in that the files are sourced from the mingw release and are not modified in any way.
    - The new page installs the compilers in C:\mingw32 or c:\mingw64 by default, which is allot better than the 20.03 default directory. These two directories are also the default mingw installer.

Let me know if there are any other changes or mods or updated or queries etc etc.

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
ALL devs:

With the clangd_client plugin eventually needing to be incorporated into the Windows installer, which I have done already in my unofficial installer.  The existing NSIS installer code/process is IMHO not very nice to work on and is old, so if someone wants to do the work then go for it.

The other option is for someone to check out the updated Windows installer I have done (that incorporates the changes as per the posts above) and give further feedback so it can eventually replace the existing installer code and process.

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
I will give up on this at the end of the month if no one wants help until completed.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
I will give up on this at the end of the month if no one wants help until completed.
Sorry to hear this, but I think you have to be more patient here. The installer was under my responsibility and I simply don't have time for that at the moment. I will give it another shot though...
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
So, having looked at the update:
The installer in SVN should only cover plugins etc. from the SVN. Please remove all other plugins they will never ship with the official C::B anyway. There are other ways (e.g. plugin bundles) 3rd party devs should use to make their plugins installable with C::B releases.

Also, you've done may changes that are hard to understand and not documented why they are actually there (if you compare old vs. new you'll see). So can you add some comments what these new functions do?

A few examples:
- All the UMUI_ and MULTIUSER_ macros: What is the purpose? What are you fixing that was not working before?
- "Check for Fortran Plugin: It surely _will_ be there if an official release is done as it is done always from SVN base. Creating releases from Github is unsupported and should also actually use the Github build system.
- "Logging macro": Why?
- We don't bundle or link to foreign webpages / resources, also for legal reasons
- Why is this type macro helpful: "insertmacro MUI_STARTMENU_WRITE_BEGIN Application" ?
- You should not handle file associations in the un-installer if not handled by the installer.

It would generally be easier to have these changes step-by-step so they can be accepted/rejected more easily.
Please bear in mind that providing tons of changes at once will always make it way harder to agree on.

BTW: Where do you want comments to be tracked? Here or in the ticket?
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ