Author Topic: New unofficial installer for Code::Blocks available for testing!  (Read 33992 times)

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
I realized something that could help distribute C::B updates better: patching system. As far as I know, Inno Setup does not support web patching, so I am devising an installer with a nightly that could be modified to accept patches from the Code::Blocks site or from a file locally... Still working on getting the filesize down to 13MB as it is for the RC2. While I am working that out, I have a question: Does the nightlies contain anything extra in their binaries that would not be in the final version? Because its worrying me that the lowest I can get it, with the MinGW toolkit included is 23MB.... Although there might be enough benefit with the patching system, I doubt I will even attempt to send in my installer source if I cannot figure out a way to justify that additional 10MB in there.... If I can, and the patching system works, then I will submit my installer source... Otherwise, it probably will remain a secret on my computer forever....
« Last Edit: May 08, 2006, 12:40:48 am by Pharaoh Atem »

sethjackson

  • Guest
Re: New installer with patching system for Code::Blocks...
« Reply #1 on: March 26, 2006, 03:53:40 am »
Uhhh I think this is planned for the next release.  :? A C::B version of DevPacks or something. Maybe I'm confused here.....  :P

EDIT:

Or do you mean source code diffs/patches instead of binary "patches".......

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with patching system for Code::Blocks...
« Reply #2 on: March 26, 2006, 05:04:13 am »
I mean both... The devpak thing is a great idea, but there is certain restrictions, such as the fact that it requires Code::Blocks to be running, so patching the actual program is out of the question, along with the DevPak plugin, etc. My idea uses the installer I am developing to connect to the website, or use a patchfile locally to apply directly to the program or anything else. The advantage of this is that it is impossible to have filelocks on it, and nonadmins can hotpatch C::B right in, while only the HIGH ADMIN can override locks, and its easier in Vista, but difficult in XP. DevPaks are great for plugins, but not for the core or the MinGW toolkit, except for includes, apis, libs, etc. the actual core files would be handled by the patching system... It is also possible to diff source code and have autobuild as well... The advantage of the web patch system is that nightlies could be applied to older nightlies with simply running the installer and telling it to update... Code::Blocks could be hooked to start the autoupdater from a menu item, making it easier to update essential parts of Code::Blocks....

P.S: I'm not really good at C/C++ programming, so I figure I can help out the development in this way...
« Last Edit: March 26, 2006, 05:05:44 am by Pharaoh Atem »

Offline idcarlos

  • Multiple posting newcomer
  • *
  • Posts: 23
Re: New installer with patching system for Code::Blocks...
« Reply #3 on: March 26, 2006, 10:54:24 am »
Hi.

NSIS have a plugins to connect to Internet and make patches.
I have made some NSIS instalers to other tools, but never with Internet update.

Code: [Select]
Code::Blocks could be hooked to start the autoupdater from a menu item, making it easier to update essential parts of Code::Blocks....Maybe If I have free time, I'll made a .bat to execute this http://csautoupdater.sourceforge.net/. Easy to implement, no need programing, only configuration. But need .NET framework to run.

sethjackson

  • Guest
Re: New installer with patching system for Code::Blocks...
« Reply #4 on: March 26, 2006, 04:05:39 pm »
But need .NET framework to run.

I think that is a no go. .NET is not cross-platform.

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with patching system for Code::Blocks...
« Reply #5 on: March 26, 2006, 04:27:22 pm »
Well, my installer is NSIS.... However, I found a plugin for NSIS that allows webupdating simply by running the installer. Since the installer makes a registry key to the location of the file that uninstalls/updates it, it could be run with the update switch to request updates from the website. The code im using takes up 200k of the installer package, not 10MB.... However, I was including the MinGW toolkit with it as well, so there could be justification there, since the MinGW toolkit is 85MB is size, compared to the 70MB originally in the C::B 1.0rc2. I guess that would do it.... Well, i'm still working on the basic stuff right now, such as coding in parts that need to be registered, etc. The MinGW toolkit can be updated from the web updater component.... I'm just being careful right now... When I believe the code could work, then I will submit it... The code at the moment, is in barebones mode, which acts exactly like the existing installer. I plan to add in the other parts in a bit...

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: New installer with patching system for Code::Blocks...
« Reply #6 on: March 26, 2006, 04:52:53 pm »
Quote
I mean both... The devpak thing is a great idea

Nobody talked about devpaks. We talked about something "similar" to devpaks...

Quote
but there is certain restrictions, such as the fact that it requires Code::Blocks to be running, so patching the actual program is out of the question, along with the DevPak plugin, etc.

Whether the new system will be a plugin or a stand-alone app is not decided yet.
Besides, even if it is a plugin, who says it can't update C::B if it's running? (yes, I 've done it before)

PharaohAtem:
We appreciate that you want to help, but I think what you 're trying to do will be of no use.
  • about MinGW, you should know that it's not certain that the next release will include it.
  • You seem to forget that C::B is cross-platform. Functionality that is offered for a single platform only (windows in your case) will not be accepted, ever (unless it's a plugin).
  • I don't see a reason for a "patching system". The actual download is small enough (2-5 Megs) even for dialup users. It would only complicate things and, most importantly, would add one more possible point-of-failure.

If you think I misunderstood what you 're trying to say, please clarify.
I just don't want you investing your precious time to something futile...
Be patient!
This bug will be fixed soon...

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with patching system for Code::Blocks...
« Reply #7 on: March 26, 2006, 08:32:55 pm »
Well, anyways, I don't think I can get the point across, so I will just not ever post it... However, I will work on it for my own purposes of learning the structure of C::B. It is quite true that it would only be for Windows, but my patching idea could be crossplatform! Someone would just have to write something that can handle the patches and verify them in a similar fashion to the way my installer would have done it... Anyone who understands what I am talking about may be able to know the benefits of it... Also, it may not be neccessary to have MinGW included in the web installer stub that is also created, which takes the latest versions of the program and pulls MinGW from the MinGW folder somewhere on the C::B site if it was implemented, or we would have to use similar coding of the MinGW installer to download the MinGW toolkit also... Although mine takes the approach of being able to hotpatch even running... I'm saying that updating C::B while it is running is out of the question because sometimes there are file locks, but you proved that you can do it? What the installer would do is "save state" then close C::B and update, and "restore state" afterwards...
« Last Edit: March 26, 2006, 08:37:17 pm by Pharaoh Atem »

Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: New installer with patching system for Code::Blocks...
« Reply #8 on: March 26, 2006, 08:44:12 pm »
This is where windows is behind the times.  On Linux and OS X you don't have to worry about "file locks" because there are none.  You could have CB patch itself and then when it reloads it will be using the new versions of the files.  Basically on *nix systems when you replace an in use file that file is kept in a hidden state for any programs that are currently using it, but any new attempt to access that file will result in the new file be used.  Much better than the heavy handed locking method windows takes.  There might be a way around this on windows but I am not sure.

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with patching system for Code::Blocks...
« Reply #9 on: March 26, 2006, 09:29:41 pm »
It is called state saving hotpatching. It has been around in *nix platforms for years, and Windows has to emulate it with certain types of installers... However, Windows Vista will have native support for state saving hotpatching. It is part of the Windows Installer 4.0 package system... NSIS does have systems to do hotpatching, but state saving hotpatching takes a lot of work to make it work properly. The installer I designed is going to be written with such support eventually, but *nix hotpatching style is already a part of the plugin that I am using. It also allows web updating, which may be a good idea to eventually implement. I can also build a web version which downloads the latest MinGW toolkit and builds an installer to wrap the toolkit in, and runs the installer. This way, Code::Blocks site bandwidth could be saved a little by using the MinGW repositories to grab files to build and start the C::B installer. It turns out that MinGW takes up nearly 95MB of space, so I have justification for that extra 10MB. However, I can easily remove the MinGW part of it and create web download of the toolkit, if it is going to be a real issue. Inno does not plan to have these features, so I made my installer script using NSIS from scratch because the conversion program for Inno to NSIS is not complete. It would not be necessary to make such a system in *nix platforms, so something like Code::Packs could be used on *nix platforms to update the core without causing problems, because problems with inprogram patching can occur without knowing it on Windows. Take for instance, RealPlayer. Its core has to shut down RealPlayer FIRST before updating, and even then, you have to "update" using the full installation procedure. My system would not require full install procedure, but it would do what RealPlayer does...
« Last Edit: March 26, 2006, 11:21:58 pm by Pharaoh Atem »

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: New installer with patching system for Code::Blocks...
« Reply #10 on: March 26, 2006, 09:52:00 pm »
...

A bit off-topic, but you really should learn to press this big key at the right of your keyboard (usually having a left-pointing arrow <- and/or the letters "Return").
It would make your posts much more readable...
Be patient!
This bug will be fixed soon...

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with patching system for Code::Blocks...
« Reply #11 on: March 26, 2006, 11:20:05 pm »
Sorry! It is a force of habit :?
Anyway, if you really believe that my system that I am developing is worthless to the Code::Blocks community, consider this: Windows Vista will enhance filelocking to the point where only installation programs registered may be able to modify program files, in order to keep spyware out. This feature is a part of Windows Defender for Vista, and is in prototype stages now. It will not be incorporated into Windows XP until it reaches final version.

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: New installer with patching system for Code::Blocks...
« Reply #12 on: March 27, 2006, 10:01:18 am »
Hmm... I think you still don't get the point. You're talking about features that Windows Vista may possibly have some day (or may as well not). It's nice if Vista will (maybe) have this or that feature, but nobody is interested in it. We're not programming for Vista. The same is true for NSIS. Indeed, NSIS is a mighty fine installer, but it does not support Linux (or any other OS). Thus, it is absolutely out of the way to use it for such a purpose - we would have to invent a separate solution for non-Windows systems.

Patching sounds like a good idea at first, but it has its shortcomings. I have been experimenting on this in the past. Using Larsson/Sadakane style suffix sorting, it is indeed possible create diff files for nightly builds which are typically on the order of 200 kB. However, a usable solution implies a massive amount of development and administrative work and it reduces reliability. Furthermore, it is only really interesting for someone who downloads each and every nightly build.
The problem is that differencing becomes less attractive the more differences are found, obviously. Thus, it works best if you build your difference files from one release to the next. That, however, means that you have to download and apply the whole chain of updates in sequence to update to current. The chain is as strong as the weakest link.

If, on the other hand, you build diffs relative to certain milestone releases, differencing loses a lot of its potency, and you still have to work out a reliable system to retrieve the correct base revision (which is a full-sized download).

Who is going to answer to the 50 users that failed to successfully apply a patch every day?
The complexity is not in relation to the benefits. It is a lot easier and cheaper to provide complete packages (even more so as bandwidth is not a concern).

Finally, whether or not there will be a all-in-one pack in the future is not certain yet (as Yiannis already said). It is quite possible that we will rather separate things that don't really belong together.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline takeshi miya

  • Lives here!
  • ****
  • Posts: 1487
Re: New installer with patching system for Code::Blocks...
« Reply #13 on: March 27, 2006, 10:32:02 am »
Fully agreed with thomas.
Binary diffs can be nice, but that would be in a long term future (btw, I've used xdelta/bdiff before, it's good stuff).
Let's give the Firefox example, until 1.5 version the updates in reality was a full 4MB installer, which was ok (altrough people with dial up perhaps don't think the same). But as Firefox reached a mature state and perhaps the developers got more stability in the file-changes (and time), the feature was done.

As been said, binary diffs between milestones, or even nightly builds would not be worth the effort.
The only (perhaps) case where it makes real sense is in Security Updates and Hot Fixes (just downloading the update Firefox 1.0.6 to 1.0.7 which was 4MB was a lot -to 56k users- to say the least).

Not on the short-term todo list.

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with webdownload MinGW for Code::Blocks in the works...
« Reply #14 on: April 02, 2006, 10:44:53 pm »
Alright, I have finished my beta5 of my installer, and I decided to release it today, and it is available for 7 days. It contains Code::Blocks 1.0 April 1st nightly.  By the time the seven days are up, I hope to have a new version, which will contain the latest nightly... Well, here it is!

Link: Installer updated - Click here to go to post with newest build!

Featureset:
  • Code::Blocks transparent logo at startup
  • Code::Blocks banner logo made by using new C::B logo
  • Variable directory paths and start menu folders
  • Solid LZMA compression, effective on large sized distributions
  • Componentization of C::B nightly based on RC2
  • Quick, speedy installation
  • Code::Blocks application logo used as icon for installer

Problems/Planned Features/Unfortunate Side-effects:
  • MSI-like functionality being written in, rewrite required
  • InstallShield-style look, ultrahigh solid LZMA compression
  • Repair functionality, allows repairing of installation if corrupt; requires total rewrite of script
  • Componentized uninstallation, requires total rewrite of script
  • MinGW included, either by web or within package, within package required for componentized uninstallation
  • Splash is dithered to 256 colours, working on getting it to work properly
  • NEW Components selection space is too small, additional space will be added with the new installer look
  • NEW System key identifies wrong program as Codeblocks, fix in place, will be used in next release
  • NEW Installer incorrectly identifies all Windows OSes as Windows 2000, permitting installation of unicode version; investigating
  • Due to overwhelming opposition, hotpatching will NOT be included

THIS IS NOT THE OFFICIAL INSTALLER OF Code::Blocks!!! I just need some people to try it beforehand.
« Last Edit: May 07, 2006, 03:45:48 pm by Pharaoh Atem »

Offline grunerite

  • Multiple posting newcomer
  • *
  • Posts: 41
Re: New installer with webdownload MinGW for Code::Blocks in the works...
« Reply #15 on: April 03, 2006, 12:21:46 am »
THIS IS NOT THE OFFICIAL INSTALLER OF Code::Blocks!!! I just need some people to try it beforehand.
I tried it. It works. The only complaint I have is on the page where you select the components to install, the window listing all the plugins is way too skinny.

Seems there is plenty of room at the left, if you can get the 1 line of text over to the left to sit up above the box listing all the components.
Cheers

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with componentization for Code::Blocks in the works...
« Reply #16 on: April 16, 2006, 04:39:52 am »
Alright, I have finished my beta10 of my installer, and I decided to release it today, and it is available for 7 days. It contains Code::Blocks 1.0 April 18st nightly (ANSI).  By the time the seven days are up, I hope to have a new version, which will contain the latest nightly... Well, here it is! YSI says it will last either 7 days or 10 downloads, whichever comes first! So, the really important people should get this build ASAP!

Link: Installer updated - Click here to go to post about latest version!

Featureset:
  • Code::Blocks transparent logo at startup
  • Variable directory paths and start menu folders
  • Componentization of C::B nightly based on RC2
  • Quick, speedy installation
  • Code::Blocks application logo used as icon for installer
  • Basic rewrite complete
  • MSI-like functionality written in
  • InstallShield-style look, ultrahigh solid LZMA compression
  • Repair functionality, allows repairing of installation if corrupt
  • Componentized uninstallation
  • MinGW included within package to support componentized uninstallation
  • Components selection space adequate now
  • System key identifies Codeblocks program correctly

Problems/Planned Features/Unfortunate Side-effects:
  • Splash is dithered to 256 colours, working on getting it to work properly Limited by GIF format restrictions
  • OS detection disabled and ANSI version is installed because installer incorrectly identifies all Windows OSes as Windows 2000, permitting installation of unicode version; still investigating
  • Due to overwhelming opposition, hotpatching will NOT be included

EDIT: THIS IS THE NEW RC3rv2 build, containing a new ANSI build and various fixes in the installer script

THIS IS NOT THE OFFICIAL INSTALLER OF Code::Blocks!!! I just need some people to try it beforehand.
« Last Edit: May 07, 2006, 03:45:04 pm by Pharaoh Atem »

Offline MoonKid

  • Almost regular
  • **
  • Posts: 180
Re: New installer with componentization for Code::Blocks in the works...
« Reply #17 on: April 16, 2006, 05:16:41 pm »
It contains Code::Blocks 1.0 April 1st nightly (ANSI). 

Please tell us if there is a newer ANSI-build is available by this installer!

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5193
Re: New installer with componentization for Code::Blocks in the works...
« Reply #18 on: April 16, 2006, 07:28:04 pm »
nope, will create a new ansi build tomorrow

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with componentization for Code::Blocks in the works...
« Reply #19 on: April 19, 2006, 05:15:31 am »
The new ANSI build is included now... Also, various fixes have been applied, including no dependancy on filenames... Hope you like it... Please be very critical and talk about bugs here, and other critiques...

Offline troels

  • Multiple posting newcomer
  • *
  • Posts: 71
Re: New installer with componentization for Code::Blocks in the works...
« Reply #20 on: April 20, 2006, 12:01:36 am »
Alright, I have finished my Release Candidate 3 of my installer....

It works fine here. Very goodlooking. Notes:

1. I look in vain for mingw32-make.exe. Is it hiding under some other name? (I need it to build wxWidgets!)
2. Repair doesn't seem to repair
3. Why Ansi? Unicode is probably better for the majority of users.

EDIT: Ad. 1: A fully-fledged CB workspace for building wxWidgets would be better, render make redundant. Is anybody sitting on a nice wxWidgets workspace?
Ad. 2: Try removing some files, eg. Codeblocks\bin\mingw32-c++.exe etc, and then do a repair.
The files does not reappear! (at least not on my system)

  • about MinGW, you should know that it's not certain that the next release will include it.

What a pity if it isn't. CB+MinGW is one extraordinary bundle.
Like all other software CB comes over better if it works right out of the box.
(Without a compiler it doesn't. Windows people at least expects the full treatment :) )
Also, the bundle signals quite clearly which (version of the) compiler CB is intended for/most tested together with/endorsed by you.
Speaking of which, is gcc 3.4.5 (the version included here) the best known version? Isn't 4.0.1 ready for prime time?

Sidenote:
Sadly the upgrade from 3.4.4 (CB RC2) to 3.4.5 (April 18st nightly installer) didn't help me any, same result.
http://forums.codeblocks.org/index.php?topic=2212.msg17478#msg17478
I've been scanning global scope for bad initialization, removing XRCID("") from global static variables, still no luck.
EDIT: Guess I'm ready for 4.x....

Greetings
Troels
« Last Edit: April 20, 2006, 12:35:19 am by troels »

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Re: New installer with componentization for Code::Blocks in the works...
« Reply #21 on: April 20, 2006, 12:52:55 am »
  • about MinGW, you should know that it's not certain that the next release will include it.

What a pity if it isn't. CB+MinGW is one extraordinary bundle.
Like all other software CB comes over better if it works right out of the box.
(Without a compiler it doesn't. Windows people at least expects the full treatment :) )
Also, the bundle signals quite clearly which (version of the) compiler CB is intended for/most tested together with/endorsed by you.

IMHO, it is better to install MinGW separately :). It is easy and does not require specific knowledge (there is an installer that do the job). Moreover, I have found more difficult to update the MinGW bundled to C::B.

Speaking of which, is gcc 3.4.5 (the version included here) the best known version? Isn't 4.0.1 ready for prime time?

Well, there is GCC 4.1.0 that Ceniza has made available (look at Ceniza's signature :)). Anyway, AFAIK there is not information on a version 4.x.x. MinGW devs released gcc 3.4.5 not too much time ago... :roll:

Best wishes,
Michael

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with componentization for Code::Blocks in the works...
« Reply #22 on: April 20, 2006, 02:45:29 am »
I forgot to plug in NASM, whoops... And mingw32-make was accidently writing as an invalid filename, I fixed it now, it has been uploaded... rc3rv2 will be available soon... updating MinGW is easy... It can be done by two ways... One way, simple, is to extract the tarballs onto the CodeBlocks directory... Another way is to create MinGW patches for the installer to handle and update... It is available, but I plugged in a function to disable it... I used an ANSI build so our good Windows 9x users can test it... If a libunicows build is made, then I will replace ANSI with the libunicows build... Otherwise, until I have had sufficient testing and I then transfer the script to C::B devs, I will put ANSI builds because the OS detection plugin doesn't work properly with the script... I'm probably going to strike out the OS detection because it is pointless.. The repair function works, but it looks like it does not work... Just wait, and it will reinstall... If this is confirmed by one more person other than you, I will do some work on it...
« Last Edit: April 20, 2006, 03:05:35 am by Pharaoh Atem »

Offline troels

  • Multiple posting newcomer
  • *
  • Posts: 71
Re: New installer with componentization for Code::Blocks in the works...
« Reply #23 on: April 20, 2006, 12:46:26 pm »
I used an ANSI build so our good Windows 9x users can test it...
Well, my system is Unicode Windows, running Ansi makes Windows do nonstop string conversions (Ansi<->Unicode<->Ansi), not so great. ['National' chars might even end up garbled.]
Surely the primary target group cannot be Windows 9x users. Secondary target group at best. Deploying one's stuff on Windows 9x is one thing, but to use such an 'operative system' to develop it on is quite another matter. In my experience you cannot expect to do development stuff (esp. running the debugger, a heavyhanded demanding program) [on Windows 9x] - without endless rebooting. IMHO it's better to endorse use of 'proper' operating systems to developers, by providing Unicode builds first, Ansi a - distant - second.

IMHO, it is better to install MinGW separately :). It is easy and does not require specific knowledge

It's one more installation job to trust, to deal with. A bulky one IIRC - I like Pharaohs trimmed down MinGW much better, it's lean and mean and does the job.

Well, there is GCC 4.1.0 that Ceniza has made available (look at Ceniza's signature :)).

Thanks! It's the latest and greatest - but doesn't sound too wx-friendly. Which gcc version is most wx-friendly I wonder?

EDIT: Nice to have: The gcc version used to build CB itself displayed in the CB About dialog box (__GNUC__/__GNUC_MINOR__/__GNUC_PATCHLEVEL__) . EDIT: Oh it's already there, in the start page...

/Troels
« Last Edit: April 20, 2006, 11:22:46 pm by troels »

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Re: New installer with componentization for Code::Blocks in the works...
« Reply #24 on: April 20, 2006, 12:59:57 pm »
IMHO, it is better to install MinGW separately :). It is easy and does not require specific knowledge

It's one more installation job to trust, to deal with. A bulky one IIRC - I like Pharaohs trimmed down MinGW much better, it's lean and mean and does the job.

I would tend to agree with you if the Installation of MinGW was hard. But it is easy. Just use the installer and then eventually update it.

Well, there is GCC 4.1.0 that Ceniza has made available (look at Ceniza's signature :)).

Thanks! It's the latest and greatest - but doesn't sound too wx-friendly. Which gcc version is most wx-friendly I wonder?

I have heard that someone has built GCC 4.2 :). Anyway, there is a problem with GCC 4.1 when compiling wxWidgets. GCC 3.4.4 works fine, but I would use instead GCC 3.4.5 with wxWidgets (should be a bit more up to date).

I just wonder if GCC 4.0.x would work with wxWidgets...

Best wishes,
Michael

Offline troels

  • Multiple posting newcomer
  • *
  • Posts: 71
Re: New installer with componentization for Code::Blocks in the works...
« Reply #25 on: April 20, 2006, 01:04:59 pm »
GCC 3.4.4 works fine, but I would use instead GCC 3.4.5 with wxWidgets (should be a bit more up to date).

Thanks! I'll stick with 3.4.5 for the time being then.

Greetings
Troels

Offline artoj

  • Almost regular
  • **
  • Posts: 206
  • Location: Supporting my team
    • http://ajonsson.kapsi.fi/
Re: New installer with componentization for Code::Blocks in the works...
« Reply #26 on: April 20, 2006, 07:18:35 pm »
As far as I know, Inno Setup does not support web patching

It does: Inno Setup Download DLL

Though, maybe a better solution would be use this wxWidgets autoupdate project: http://wxcode.sourceforge.net/docs/webupdate/index.html

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with componentization for Code::Blocks in the works...
« Reply #27 on: April 29, 2006, 12:33:42 pm »
As far as I know, Inno Setup does not support web patching

It does: Inno Setup Download DLL

Though, maybe a better solution would be use this wxWidgets autoupdate project: http://wxcode.sourceforge.net/docs/webupdate/index.html

Note that I said, "Web Patching", I did not say, "Web downloading"... I am aware of Inno Setup's Download DLL, however, it has problems with proxies, handlers, and system anonymizers... It seems NSIS's plugin NSISdl seems to work perfectly with it... Although, probably the only component planned for web downloading would be MinGW...

I used an ANSI build so our good Windows 9x users can test it...
Well, my system is Unicode Windows, running Ansi makes Windows do nonstop string conversions (Ansi<->Unicode<->Ansi), not so great. ['National' chars might even end up garbled.]
Surely the primary target group cannot be Windows 9x users. Secondary target group at best. Deploying one's stuff on Windows 9x is one thing, but to use such an 'operative system' to develop it on is quite another matter. In my experience you cannot expect to do development stuff (esp. running the debugger, a heavyhanded demanding program) [on Windows 9x] - without endless rebooting. IMHO it's better to endorse use of 'proper' operating systems to developers, by providing Unicode builds first, Ansi a - distant - second.
The final installation script will contain a unicode build, and I hope by then a libunicows build is made so that there can be one build for both Windows 9x and Windows XP...
IMHO, it is better to install MinGW separately :). It is easy and does not require specific knowledge
ALL COMPONENTS ARE BEING PACKAGED AS BEING ABLE TO DOWNLOAD FROM THE INTERNET!
I originally planned for only MinGW, but I decided to make everyone's life easier and componentize the packaging itself to allow all the components to be able to be downloaded from the internet and installed...
Problems/Planned Features/Unfortunate Side-effects:
  • Splash is dithered to 256 colours, working on getting it to work properly
I figured out the problem with it, unfortunately, I need the someone to build the C::B transparent logo directly from the source image, because the PNG -> GIF conversion makes it dither to 256 colors... It would be great if whoever originally made the new C::B splash logo could make it as a GIF image that is transparent, because the splash plugin only supports GIF images... I know SOMEONE has the original source, I just do not know who...
EDIT: I am most likely going to leave the splash alone, it seems impossible...
« Last Edit: April 29, 2006, 07:45:04 pm by Pharaoh Atem »

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5193
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #28 on: April 29, 2006, 07:44:56 pm »
allrigthy some feedback.

this is what I have done :
1) start install (checked codecompletion)
  --> noticed some stuff got into Program files\common files\NSIS Installation Data
2) ran installed CB
3) add/remove programs -> uninstall
---> the installation dir is empty but still containes the complete directpry structure --> BUG
---> that NSis stuff is still there

overall impression : looks good, only downloading that weird named files is confusing for the user I think?

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #29 on: April 29, 2006, 07:46:13 pm »
allrigthy some feedback.

this is what I have done :
1) start install (checked codecompletion)
  --> noticed some stuff got into Program files\common files\NSIS Installation Data
2) ran installed CB
3) add/remove programs -> uninstall
---> the installation dir is empty but still containes the complete directpry structure --> BUG
---> that NSis stuff is still there

overall impression : looks good, only downloading that weird named files is confusing for the user I think?

complete directory stucture bug is fixed, build uploaded shortly... The NSIS Installation Data folder keeps a copy of the installer to retain MSI-level functionality... Clicking on Change or activating the installer manually will cause a special dialog to pop up... The NSIS stuff is being investigated... The names are actually package IDs, the packages have names, but they contain IDs as well... The installer copies them to temp dirs as package IDs...
« Last Edit: April 29, 2006, 11:43:03 pm by Pharaoh Atem »

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5193
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #30 on: April 29, 2006, 09:42:53 pm »
no idea what the msi functionality requirements are.
so double question :
1) needed to keep while the product has been installed ? (seems so according to your previous post)
2) needed tot keep even after product has been uninstalled ??

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #31 on: May 01, 2006, 01:54:13 pm »
no idea what the msi functionality requirements are.
so double question :
1) needed to keep while the product has been installed ? (seems so according to your previous post)
2) needed tot keep even after product has been uninstalled ??

It is needed while product is installed, but the bug is when it is being uninstalled, in which it is not self-removing...NSIS Installation Data bug fixed. I set up a new build that has some nicer features, and the directory tree problem should be fixed now... So, download it and try it out!
Problems/Planned Features/Unfortunate Side-effects:
  • OS detection disabled and ANSI version is installed because installer incorrectly identifies all Windows OSes as Windows 2000, permitting installation of unicode version; still investigating
I finally FIXED IT!!! Now the OS detection works properly and will pull the Unicode files on a KNOWN Unicode OS... Unfortunately, this means, Windows Vista will identify as a ANSI OS because I have no idea what the OS String is for Vista... On Windows NT, 2000, and XP, it will install Unicode... Windows 9x/ME and Vista, it will install ANSI...

And on another note:
I compiled C::B for the first time!  :D
I will allow people who request to try my build of the 30 April 2006 nightly..
This build is special, because ANSI and Unicode are in wxWidgets 2.6.3....
The build is 2397...
If anyone wants to test it, send a message to me requesting it and I will give details on how to get it... ANSI users will like this too.... maybe  :?

WxWidgets 2.6.3pl2 fixes the following:
Quote from: WxWidgets website
  • wxMSW: added XP theming to wxBitmapButton.
  • wxMSW: reverts a fix that caused wxChoice/wxComboBox sizing problems on Windows 2000 and below.
  • wxMSW: fixes a positioning problem when toolbars are changed after being shown initially.
« Last Edit: May 02, 2006, 02:09:18 pm by Pharaoh Atem »

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5193
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #32 on: May 01, 2006, 02:13:22 pm »
This build is special, because ANSI and Unicode are in wxWidgets 2.6.3....

What do you mean by this ???

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #33 on: May 01, 2006, 02:15:22 pm »
This build is special, because ANSI and Unicode are in wxWidgets 2.6.3....

What do you mean by this ???

Both the ANSI and the Unicode builds use wxWidgets 2.6.3 library! :D
« Last Edit: May 02, 2006, 12:55:03 am by Pharaoh Atem »

Offline jayatk

  • Multiple posting newcomer
  • *
  • Posts: 40
Re: New installer with patching system for Code::Blocks...
« Reply #34 on: May 01, 2006, 05:45:06 pm »
But need .NET framework to run.

I think that is a no go. .NET is not cross-platform.

Ah...but the Mono-Project is cross-platform and is supposed to run .NET code.
http://www.mono-project.com/Main_Page

Maybe NSIS can be used in the future.

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with patching system for Code::Blocks...
« Reply #35 on: May 01, 2006, 11:28:03 pm »
But need .NET framework to run.

I think that is a no go. .NET is not cross-platform.

Ah...but the Mono-Project is cross-platform and is supposed to run .NET code.
http://www.mono-project.com/Main_Page

Maybe NSIS can be used in the future.
Mono is only for C# projects... It will eventually encompass C++ though...

Offline grunerite

  • Multiple posting newcomer
  • *
  • Posts: 41
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #36 on: May 02, 2006, 12:56:07 am »
Hi Pharoah Atem,

Is the hotpatching/webpatching stuff working yet? Once your installer is done, how does it allow one to update to most recent version/nightly? Is it quicker?

Thanks.

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #37 on: May 02, 2006, 01:06:22 am »
Hi Pharoah Atem,

Is the hotpatching/webpatching stuff working yet? Once your installer is done, how does it allow one to update to most recent version/nightly? Is it quicker?

Thanks.

It is really easy to update C::B using my installer, but it requires you to reinstall... You do NOT have to redownload the installer, just run it... It will show a page similar to the one below: (This is from the C::B installer dev-PP1)

Simply select to continue setup and just run the process... It will pull the files and install right over it, but it SHOULD preserve your settings...
« Last Edit: May 07, 2006, 06:08:53 am by Pharaoh Atem »

Offline grunerite

  • Multiple posting newcomer
  • *
  • Posts: 41
Re: New installer with lots of stuff for Code::Blocks in the works...
« Reply #38 on: May 02, 2006, 09:16:27 pm »
Cool. That looks pretty nice!

Offline Conan Kudo

  • Multiple posting newcomer
  • *
  • Posts: 111
    • Enano CMS Project
Re: New unofficial installer for Code::Blocks available for testing!
« Reply #39 on: May 07, 2006, 05:58:36 am »
Alright, I have finished my Public Prerelease of my installer, and I decided to release it today, and it is available until the next version is ready. It contains Code::Blocks 1.0 rv2417. Well, here it is!

Link: Need special access! If you wish to gain access to the installer, you must register at RGW-Net and send a private message to "Pharaoh Atem" on there with the subject "Want to be added to Special Testers!" in order to be transferred into the testers group so that you can download the installer! Click here to go to the site and register if you have not already, and if you are in the testers group already, click on the link to the installer on the page! The few of you who MAY have an indev build, must remove it before installing this one! After this one, upgrading will be supported!

WARNING!!! MinGW is not selected to be installed BY DEFAULT!!! You must select to install it!

Featureset:
  • Code::Blocks transparent logo at startup
  • Variable directory paths and start menu folders
  • Componentization of C::B nightly based on RC2
  • Quick, speedy installation
  • Basic rewrite complete
  • MSI-like functionality written in
  • Vista-style look, ultrahigh solid LZMA compression
  • Repair functionality, allows repairing of installation if corrupt
  • Componentized uninstallation
  • MinGW included to support componentized uninstallation
  • Components selection space adequate now
  • System key identifies Codeblocks program correctly
  • Depending on version of OS, installer will install either the Unicode or the ANSI version

Problems/Planned Features/Unfortunate Side-effects:
  • Splash is dithered to 256 colours, limited by GIF format restrictions
  • Due to overwhelming opposition, hotpatching will NOT be included

THIS IS NOT THE OFFICIAL INSTALLER OF Code::Blocks!!! I just need some people to try it beforehand.
« Last Edit: May 08, 2006, 12:41:11 am by Pharaoh Atem »