Build speedup

4 messages Options
Embed this post
Permalink
Kim Gybels

Build speedup

Reply Threaded More More options
Print post
Permalink
Hi,

First of, let me try to explain what I am trying to accomplish. Our
application
uses a very big library that needs to be installed. This is a third
party library
and doesn't get updated a lot. I want to speed up the build of our installer
by somehow prepackaging the library once.

I already decreased build time by moving all the files into a seperate
cab file.
Thanks to the smart cabbing feature we won some time with this.

I already tried doing this with a merge module and a binary wixlib, but this
slowed the build down, because all the files get unpacked and then repacked.

Is there someway to avoid the repacking? It would speed up the build with a
big factor if the cab file that is stored in the binary wixlib is just
imported
as a stream into the msi directly.

Any ideas of how to accomplish the wanted speedup?

- Kim

PS: the cab file for the library is 140MB on high compression.


--

*Kim Gybels
Software Developer
* [hidden email] <mailto:[hidden email]>
Tel: +32 16 74 01 01
Fax: +32 16 74 01 02



* Metris Europe
* Interleuvenlaan 86
3001 Leuven
Belgium
www.metris.com <http://www.metris.com/>




This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Kim Gybels

Re: Build speedup

Reply Threaded More More options
Print post
Permalink
Very typical to come up with some ideas myself just after I press send...

Here are two ideas that popped into my head:
1) Build an installer without the library, than use a transform to add
   the missing functionality.

2) This is a bit more of a hacky way:
   - build a binary wixlib
   - extract the cab file from the wixlib
   - make a cab file that is identical but with all files replaced
     with empty files
   - replace the prepended cab file in the binary wixlib with
     the one that has the empty files
   - build against the "hacked" up wixlib, which should be speedy
     because it is unpacking and repacking empty files
   - final step: replace the stream "Library.cab" in the msi with
     the correct cab file using msidb

   note: you only have the make that frankenstein wixlib once for each
         release of the third party library.

Let me know if you have any other ideas and what you think of the
two above.

Best regards,
Kim


Kim Gybels wrote:

> Hi,
>
> First of, let me try to explain what I am trying to accomplish. Our
> application
> uses a very big library that needs to be installed. This is a third
> party library
> and doesn't get updated a lot. I want to speed up the build of our installer
> by somehow prepackaging the library once.
>
> I already decreased build time by moving all the files into a seperate
> cab file.
> Thanks to the smart cabbing feature we won some time with this.
>
> I already tried doing this with a merge module and a binary wixlib, but this
> slowed the build down, because all the files get unpacked and then repacked.
>
> Is there someway to avoid the repacking? It would speed up the build with a
> big factor if the cab file that is stored in the binary wixlib is just
> imported
> as a stream into the msi directly.
>
> Any ideas of how to accomplish the wanted speedup?
>
> - Kim
>
> PS: the cab file for the library is 140MB on high compression.
>
>
> --
>
> *Kim Gybels
> Software Developer
> * [hidden email] <mailto:[hidden email]>
> Tel: +32 16 74 01 01
> Fax: +32 16 74 01 02
>
>
>
> * Metris Europe
> * Interleuvenlaan 86
> 3001 Leuven
> Belgium
> www.metris.com <http://www.metris.com/>
>
>
>
>
> This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
> this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
> this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.
> .
>
>


--

*Kim Gybels
Software Developer
* [hidden email] <mailto:[hidden email]>
Tel: +32 16 74 01 01
Fax: +32 16 74 01 02



* Metris Europe
* Interleuvenlaan 86
3001 Leuven
Belgium
www.metris.com <http://www.metris.com/>




This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Mike Carlson (DEV DIV)

Re: Build speedup

Reply Threaded More More options
Print post
Permalink
Did you already try the "-cc" and "-reusecab" switches for light? Make sure to specify both switches at the same time, and a valid folder after the "-cc" option. This should allow light to just use an existing cab if none of the files in that cab have changed. Then let it be a cab external to the MSI (set Media/@EmbedCab to no) instead of embedded in the MSI, and wix shouldn't have to do anything with it if it hasn't changed.

Thanks,
Mike Carlson
 
-----Original Message-----
From: Kim Gybels [mailto:[hidden email]]
Sent: Wednesday, November 04, 2009 2:27 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Build speedup

Very typical to come up with some ideas myself just after I press send...

Here are two ideas that popped into my head:
1) Build an installer without the library, than use a transform to add
   the missing functionality.

2) This is a bit more of a hacky way:
   - build a binary wixlib
   - extract the cab file from the wixlib
   - make a cab file that is identical but with all files replaced
     with empty files
   - replace the prepended cab file in the binary wixlib with
     the one that has the empty files
   - build against the "hacked" up wixlib, which should be speedy
     because it is unpacking and repacking empty files
   - final step: replace the stream "Library.cab" in the msi with
     the correct cab file using msidb

   note: you only have the make that frankenstein wixlib once for each
         release of the third party library.

Let me know if you have any other ideas and what you think of the
two above.

Best regards,
Kim


Kim Gybels wrote:

> Hi,
>
> First of, let me try to explain what I am trying to accomplish. Our
> application
> uses a very big library that needs to be installed. This is a third
> party library
> and doesn't get updated a lot. I want to speed up the build of our installer
> by somehow prepackaging the library once.
>
> I already decreased build time by moving all the files into a seperate
> cab file.
> Thanks to the smart cabbing feature we won some time with this.
>
> I already tried doing this with a merge module and a binary wixlib, but this
> slowed the build down, because all the files get unpacked and then repacked.
>
> Is there someway to avoid the repacking? It would speed up the build with a
> big factor if the cab file that is stored in the binary wixlib is just
> imported
> as a stream into the msi directly.
>
> Any ideas of how to accomplish the wanted speedup?
>
> - Kim
>
> PS: the cab file for the library is 140MB on high compression.
>
>
> --
>
> *Kim Gybels
> Software Developer
> * [hidden email] <mailto:[hidden email]>
> Tel: +32 16 74 01 01
> Fax: +32 16 74 01 02
>
>
>
> * Metris Europe
> * Interleuvenlaan 86
> 3001 Leuven
> Belgium
> www.metris.com <http://www.metris.com/>
>
>
>
>
> This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
> this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> WiX-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/wix-users
>
> This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
> this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.
> .
>
>


--

*Kim Gybels
Software Developer
* [hidden email] <mailto:[hidden email]>
Tel: +32 16 74 01 01
Fax: +32 16 74 01 02



* Metris Europe
* Interleuvenlaan 86
3001 Leuven
Belgium
www.metris.com <http://www.metris.com/>




This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users
Kim Gybels

Re: Build speedup

Reply Threaded More More options
Print post
Permalink

> Did you already try the "-cc" and "-reusecab" switches for light? Make sure to specify both switches at the same time, and a valid folder after the "-cc" option. This should allow light to just use an existing cab if none of the files in that cab have changed. Then let it be a cab external to the MSI (set Media/@EmbedCab to no) instead of embedded in the MSI, and wix shouldn't have to do anything with it if it hasn't changed.
>
No I didn't.

This helps a lot. Build time went from 12 minutes to 2 minutes when the
cabinets are cached.
Note that it also works with EmbedCab is yes.

For our autobuild which always starts from a clean slate I guess I could
precopy the big
library.cab into the cache before I start the build.

Thanks for the help.

- Kim


--

*Kim Gybels
Software Developer
* [hidden email] <mailto:[hidden email]>
Tel: +32 16 74 01 01
Fax: +32 16 74 01 02



* Metris Europe
* Interleuvenlaan 86
3001 Leuven
Belgium
www.metris.com <http://www.metris.com/>




This message and any attachment are privileged, confidential and contain private information. If you are not the addressee named above any disclosure, reproduction, copying, distribution, or other dissemination or use of this communication is prohibited. If you have received this transmission in error, please notify the sender immediately and destroy this e-mail. Metris does not guarantee that the integrity of this communication has been maintained or that
this communication is free of viruses, interceptions or interference, and shall not be liable for the improper or incomplete transmission of the information contained in this communication nor for any delay in its receipt or damage to your system. Incoming and outgoing email communications may be monitored by Metris, as permitted by applicable law and regulations.

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
WiX-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/wix-users