PDA

View Full Version : Maintaining similar installs



NewsArchive
10-07-2009, 01:26 AM
Friedrich,

Something to chew for a future release.

I'm selling commercial applications. When I do web updates, it looks at a
certain location. That's fine and works perfectly. When I get a customer
that wants custom mods, I might want the web update to look in a different
location on my server. Otherwise the update gets the non-custom mod and
this customer would lose the features they've paid for.

The only way I can think of doing this is one of the following:

1) Make copies of the base package web update and change the location where
to check for updates. If I want to add a new feature or fix a bug in my
original script, I'd have to mirror that fix/update in the custom one.

2) Use an include script that has all the common functions and dialogs in
it. The only thing I would maintain in the various custom scripts is the
update location. Is that even feasible?

3) Some bright idea that has not yet come to me to make this task easy and
not so error prone. <g>

--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm

NewsArchive
10-07-2009, 01:27 AM
Hi Russ,

> The only way I can think of doing this is one of the following:
>
> 1) Make copies of the base package web update and change the location where
> to check for updates. If I want to add a new feature or fix a bug in my
> original script, I'd have to mirror that fix/update in the custom one.

Build Automator might be able to help you there if the SB script can use
Compiler variables for the web update location. I don't know if it can, so
that's something to explore (I'm sure Friedrich knows:)

Then you would simply compile the SB script using BA and set a variable for
the location and then compile it again and give it a different location and
different target folder (the target option is built into the BA action to
compile Setup Builder projects). That way you would have two different web
updates that you can then upload to your ftp site.

Best regards,

--
Arnór Baldvinsson - Icetips Alta LLC
Port Angeles, Washington
www.icetips.com - www.buildautomator.com - www.altawebworks.com

Icetips product subscriptions at http://www.icetips.com/subscribe.php

NewsArchive
10-07-2009, 01:27 AM
Arnor,

That would be cool. We'll be talking soon <G>

--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm

NewsArchive
10-07-2009, 01:27 AM
Hi Russ,

> That would be cool. We'll be talking soon <G>

I could run some tests, but it's not going to be until this weekend. I was
out sick yesterday and partially today so I'm behind (what else is new?!<g>)

IF you can use a variable in the SB script to determine the ftp settings
(i.e. location) then you should be able to do this.

Best regards,

--
Arnór Baldvinsson - Icetips Alta LLC
Port Angeles, Washington
www.icetips.com - www.buildautomator.com - www.altawebworks.com

Icetips product subscriptions at http://www.icetips.com/subscribe.php

NewsArchive
10-07-2009, 01:28 AM
Hi Arnor

>I could run some tests, but it's not going to be until this weekend. I was
>out sick yesterday and partially today so I'm behind (what else is new?!<g>)

Hope you are better by Wednesday next week. I wouldn't want to catch anythang.

JohnG

NewsArchive
10-07-2009, 02:08 AM
Hi Russ,

> 3) Some bright idea that has not yet come to me to make this task easy and
> not so error prone. <g>

I think there are different ways to handle this.

1. What Arnór said. SetupBuilder in combination with Build Automator might
be able to help.

2. The new SDK Management Wizard.

The "SKU Management Wizard is a new feature in SB7 to maintain a single
project for various flavors of an application or application suite by
filtering actions based on criteria you specify in the IDE. When building a
specific release version of the project, only those features associated with
the selected compile variable(s) are included as part of the build.

Please download and unzip the following file:
http://www.lindersoft.com/projects/similarinstalls.zip

The ZIP includes a SimilarInstalls.sb7 project file and four example
"configuration" files:

- Beachbunnysoftware.txt
- Softvelocity.txt
- Radfusion.txt
- Icetips.txt

The configuration files store specific information about your custom project
and look like this (you can store whatever you want here):

[$MY_OUTPUT_DIR$]
Value=[SB_PROJECT]\BeachBunny

[$MY_PRODUCT_NAME$]
Value=Beachbunny KillerApp

[$MY_PRODUCT_GUID$]
Value={19057E80-B30F-11DE-3D6C-0EA47FA94AE1}

[$MY_PRODUCT_VERSION$]
Value=6.50

[$MY_PRODUCT_EXENAME$]
Value=beach.exe

[$MY_HOST_ADDRESS$]
Value=http://www.beachbunnysoftware.com

[$MY_HOST_DIRECTORY$]
Value=test

[$MY_HOST_USERNAME$]
Value=top

[$MY_HOST_PASSWORD$]
Value=secret

[$MY_HOST_MANIFEST$]
Value=beachbunny.ini

Okay, how does it work? Please open the SimilarInstalls.sb7 project file.

1. See IMAGE1.JPG. I have created a SKU-enabled Compiler Variable
[CUSTOMER_CONFIG_FILE]. If you compile the project, the compiler will
display a wizard which allows you to select one of your configuration files.
The selected file name is stored in [CUSTOMER_CONFIG_FILE].

2. See IMAGE2.JPG. In the Script Editor, the preprocessor reads values from
the configuration file and stores it in compiler variables. For example,
the name of the product is stored in [MY_PRODUCT_NAME] and the setup EXE
Name is stored in [MY_PRODUCT_EXENAME].

3. See IMAGE3.JPG. In the Product Properties, the Compiler Variables are
used to modify some project properties at compile time (for example, the
Product Name and the EXE Name)

4. See IMAGE4.JPG. Compiler Variables are used in the Web Update Properties
to automatically set the host information.

5. See IMAGE5.JPG. Compile the project and the SKU-Wizard is displayed.
Select a "configuration file" (e.g. Radfusion.txt) and the customized
installer is created.

You can now create completely different installations based on configuration
files from the same project.

What do you think?

BTW, during my tests I found out that the "Server Manifest File" and the
OUTPUT directory can't be set from a SKU-powered compiler variable. This
item is in review.

Friedrich

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
10-07-2009, 02:52 AM
G'day Russ
I do this by using secwin as the registration manager for the app, and
allowing access when the app is run rather than when the app is installed
....
Sorry I won't see you at Devcon - happens to be my daughters birthday on one
day and our anniversary on the next. Wouldn't want it to be my last
anniversary <g>!
Cheers!
Dave Beggs

NewsArchive
10-08-2009, 03:02 AM
Hi John,

> Hope you are better by Wednesday next week. I wouldn't want to catch anythang.

I'm fine now, no worries:)

Best regards,

--
Arnór Baldvinsson - Icetips Alta LLC
Port Angeles, Washington
www.icetips.com - www.buildautomator.com - www.altawebworks.com

Icetips product subscriptions at http://www.icetips.com/subscribe.php

NewsArchive
10-08-2009, 03:03 AM
Dave,

Anyone can install the app, I don't want any kind of restriction there! <bg>
Until they get a registration from me, the check for updates is the only
thing non-functional in a demo.

I won't be making the trip either. The situation with my parents is keeping
me home. Despite neither of us going, I'm still gonna miss your rather
unique presentations - I will never get those pictures of the sick cow and
lovesick roo out of my head!<g>

--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm

NewsArchive
10-08-2009, 03:07 AM
COOL!

Thanks! This one is definitely a keeper! <g>

--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm

NewsArchive
10-08-2009, 03:07 AM
> COOL!
>
> Thanks! This one is definitely a keeper! <g>

;-)

Friedrich

NewsArchive
10-08-2009, 03:08 AM
This looks interesting.
Can it be used to control wheter to make web installation or not too? I have some clients that has so bad connection that they preferably download the
entire package than try webupdate. Now this means I have to build two installs from the same file, one complete and one web install. It usually ends
with me overwriting the exe on the web...

Bjarne

NewsArchive
10-08-2009, 03:08 AM
Hi Bjarne,

> This looks interesting.
> Can it be used to control wheter to make web installation or not too?
> I have some clients that has so bad connection that they preferably
> download the entire package than try webupdate. Now this means I have
> to build two installs from the same file, one complete and one web
> install. It usually ends with me overwriting the exe on the web...

YES! ;-)

There are two new #pragma compiler directives to handle this:

DISABLEWEBINSTALL-Lets you programmatically disable the Web Install option.
DISABLEWEBUPDATE-Lets you programmatically disable the Web Update option.

For example, if you have a Compiler Variable [MY_SUPPORT_WEBINSTALL] and Web
Install is enabled in your project, then you can use the following to
programmatically disable Web Install:

#ifcompvar [MY_SUPPORT_WEBINSTALL] Equals "0" Then
#pragma DISABLEWEBINSTALL = "1"
#end

In other words, if [MY_SUPPORT_WEBINSTALL] = 0 then support for Web Install
is disabled.

More #pragma compiler directives will follow in the next SB7 builds.

Does this help?

Friedrich

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
10-08-2009, 03:09 AM
Thank you :)

Bjarne Havnen

NewsArchive
10-08-2009, 03:09 AM
>
> Thank you :)
>

You are welcome :)

Friedrich

NewsArchive
10-12-2009, 01:31 AM
I noticed this too. I think I can live with this for now since the SKU
uploads to different folders.

--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm

NewsArchive
10-12-2009, 01:31 AM
Friedrich,

Thanks so much for the helpful advice. I've got everything working (except
the manifest file <g>). Even the web updates know where to look so each
build I make knows where to go. The longest part of the process is
uploading to the ftp site <g>.

This is really going to shine when I need to have unique builds for a
customer and that version has to know where to check for updates too!

Thanks again! I'm now cleared to watch some football (real football <g>).
--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm

NewsArchive
10-15-2009, 02:55 AM
> BTW, during my tests I found out that the "Server Manifest File" and the
> OUTPUT directory can't be set from a SKU-powered compiler variable. This
> item is in review.

Update: it's possible now to set the "Server Manifest File" from the script
in our latest internal version.

So the following will work in the next build:

! Set Server Manifest File
#const $MY_HOST_MANIFEST$ = Get Value from INI file: [CUSTOMER_CONFIG_FILE]
#set compiler variable [MY_HOST_MANIFEST] = "$MY_HOST_MANIFEST$"

Unfortunately, it's impossible to set the OUTPUTDIR value from the script.

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
10-15-2009, 02:55 AM
>
> Unfortunately, it's impossible to set the OUTPUTDIR value from the script.
>

The "#copy file..." compiler directive with enabled "Post-compile" option
lets you work around this. You can copy the file(s) based on the SKU
settings to whetever folder you want.

Similar to this:

! Set Output Directory
#const $MY_OUTPUT_DIR$ = Get Value from INI file: [CUSTOMER_CONFIG_FILE]
#set compiler variable [MY_OUTPUT_DIR] = "$MY_OUTPUT_DIR$"
#create folder "[MY_OUTPUT_DIR]" [Post-compile]
#copy file "[OUTPUTDIR]\[EXENAME]" to "[MY_OUTPUT_DIR]\[MY_PRODUCT_EXENAME]"
[Post-compile]

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

SetupBuilder is Windows installation -- "point. click. ship"

-- Official Comodo Code Signing and SSL Certificate Partner

NewsArchive
10-15-2009, 02:56 AM
Cool!

--
Russell B. Eggen
www.radfusion.com
Clarion developers: www.radfusion.com/devs.htm