List:Commits« Previous MessageNext Message »
From:Ignacio Galarza Date:February 16 2009 10:37pm
Subject:bzr commit into libmysql branch (iggy:2816)
View as plain text  
#At file:///src/bzr.lp/libmysql/ based on revid:georg.richter@stripped

 2816 Ignacio Galarza	2009-02-16
      Added resource necessary to automate Windows MSI creation.
      - Install WiX 2.0 final. (See mysql-connc-setup.js for path)
      - Clone lp:libmysql.
      - Create solution with CMake (win32 or x64 platform).
      - Build Relwithdebinfo and Debug configurations.
      - From the repo root, run win/mysql-connc-setup.js to create the 
      install package.
      - Once an official package is created, check-in the corresponding
      win\mysql-connector-c-PLATFORM.xml. 
added:
  Bitmaps/
  Bitmaps/New.ico
  Bitmaps/Up.ico
  Bitmaps/bannrbmp.bmp
  Bitmaps/dlgbmp.bmp
  Bitmaps/exclamic.ico
  Bitmaps/info.ico
  License.rtf
  win/mysql-connc-msi-template.xml
  win/mysql-connc-setup.js

per-file messages:
  Bitmaps
    Windows installer resource
  Bitmaps/New.ico
    Default Icon
  Bitmaps/Up.ico
    Default Icon
  Bitmaps/bannrbmp.bmp
    MySQL installer banner dressing.
  Bitmaps/dlgbmp.bmp
    MySQL installer dialog dressing.
  Bitmaps/exclamic.ico
    Default Icon.
  Bitmaps/info.ico
    Default Icon.
  License.rtf
    GPL 2.0 in RTF format.  This license is displayed to the user during install.
  win/mysql-connc-msi-template.xml
    WiX Installer template.  This file contains placeholders that must be replaced before it's useful.
  win/mysql-connc-setup.js
    WiX Installer template processor and build script.
=== added directory 'Bitmaps'
=== added file 'Bitmaps/New.ico'
Binary files a/Bitmaps/New.ico	1970-01-01 00:00:00 +0000 and b/Bitmaps/New.ico	2009-02-16 22:37:38 +0000 differ

=== added file 'Bitmaps/Up.ico'
Binary files a/Bitmaps/Up.ico	1970-01-01 00:00:00 +0000 and b/Bitmaps/Up.ico	2009-02-16 22:37:38 +0000 differ

=== added file 'Bitmaps/bannrbmp.bmp'
Binary files a/Bitmaps/bannrbmp.bmp	1970-01-01 00:00:00 +0000 and b/Bitmaps/bannrbmp.bmp	2009-02-16 22:37:38 +0000 differ

=== added file 'Bitmaps/dlgbmp.bmp'
Binary files a/Bitmaps/dlgbmp.bmp	1970-01-01 00:00:00 +0000 and b/Bitmaps/dlgbmp.bmp	2009-02-16 22:37:38 +0000 differ

=== added file 'Bitmaps/exclamic.ico'
Binary files a/Bitmaps/exclamic.ico	1970-01-01 00:00:00 +0000 and b/Bitmaps/exclamic.ico	2009-02-16 22:37:38 +0000 differ

=== added file 'Bitmaps/info.ico'
Binary files a/Bitmaps/info.ico	1970-01-01 00:00:00 +0000 and b/Bitmaps/info.ico	2009-02-16 22:37:38 +0000 differ

=== added file 'License.rtf'
--- a/License.rtf	1970-01-01 00:00:00 +0000
+++ b/License.rtf	2009-02-16 22:37:38 +0000
@@ -0,0 +1,357 @@
+{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
+{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\lang1033\f0\fs20                  GNU GENERAL PUBLIC LICENSE\par
+                    Version 2, June 1991\par
+\par
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.\par
+59 Temple Place - Suite 330, Boston, MA  02111-1307, USA\par
+\par
+Everyone is permitted to copy and distribute verbatim copies\par
+of this license document, but changing it is not allowed.\par
+\par
+Preamble\par
+========\par
+\par
+The licenses for most software are designed to take away your freedom\par
+to share and change it.  By contrast, the GNU General Public License is\par
+intended to guarantee your freedom to share and change free\par
+software--to make sure the software is free for all its users.  This\par
+General Public License applies to most of the Free Software\par
+Foundation's software and to any other program whose authors commit to\par
+using it.  (Some other Free Software Foundation software is covered by\par
+the GNU Library General Public License instead.)  You can apply it to\par
+your programs, too.\par
+\par
+When we speak of free software, we are referring to freedom, not price.\par
+Our General Public Licenses are designed to make sure that you have\par
+the freedom to distribute copies of free software (and charge for this\par
+service if you wish), that you receive source code or can get it if you\par
+want it, that you can change the software or use pieces of it in new\par
+free programs; and that you know you can do these things.\par
+\par
+To protect your rights, we need to make restrictions that forbid anyone\par
+to deny you these rights or to ask you to surrender the rights.  These\par
+restrictions translate to certain responsibilities for you if you\par
+distribute copies of the software, or if you modify it.\par
+\par
+For example, if you distribute copies of such a program, whether gratis\par
+or for a fee, you must give the recipients all the rights that you\par
+have.  You must make sure that they, too, receive or can get the source\par
+code.  And you must show them these terms so they know their rights.\par
+\par
+We protect your rights with two steps: (1) copyright the software, and\par
+(2) offer you this license which gives you legal permission to copy,\par
+distribute and/or modify the software.\par
+\par
+Also, for each author's protection and ours, we want to make certain\par
+that everyone understands that there is no warranty for this free\par
+software.  If the software is modified by someone else and passed on, we\par
+want its recipients to know that what they have is not the original, so\par
+that any problems introduced by others will not reflect on the original\par
+authors' reputations.\par
+\par
+Finally, any free program is threatened constantly by software patents.\par
+We wish to avoid the danger that redistributors of a free program will\par
+individually obtain patent licenses, in effect making the program\par
+proprietary.  To prevent this, we have made it clear that any patent\par
+must be licensed for everyone's free use or not licensed at all.\par
+\par
+The precise terms and conditions for copying, distribution and\par
+modification follow.\par
+\par
+                      GNU GENERAL PUBLIC LICENSE\par
+    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par
+  0. This License applies to any program or other work which contains a\par
+     notice placed by the copyright holder saying it may be distributed\par
+     under the terms of this General Public License.  The "Program",\par
+     below, refers to any such program or work, and a "work based on\par
+     the Program" means either the Program or any derivative work under\par
+     copyright law: that is to say, a work containing the Program or a\par
+     portion of it, either verbatim or with modifications and/or\par
+     translated into another language.  (Hereinafter, translation is\par
+     included without limitation in the term "modification".)  Each\par
+     licensee is addressed as "you".\par
+\par
+     Activities other than copying, distribution and modification are\par
+     not covered by this License; they are outside its scope.  The act\par
+     of running the Program is not restricted, and the output from the\par
+     Program is covered only if its contents constitute a work based on\par
+     the Program (independent of having been made by running the\par
+     Program).  Whether that is true depends on what the Program does.\par
+\par
+  1. You may copy and distribute verbatim copies of the Program's\par
+     source code as you receive it, in any medium, provided that you\par
+     conspicuously and appropriately publish on each copy an appropriate\par
+     copyright notice and disclaimer of warranty; keep intact all the\par
+     notices that refer to this License and to the absence of any\par
+     warranty; and give any other recipients of the Program a copy of\par
+     this License along with the Program.\par
+\par
+     You may charge a fee for the physical act of transferring a copy,\par
+     and you may at your option offer warranty protection in exchange\par
+     for a fee.\par
+\par
+  2. You may modify your copy or copies of the Program or any portion\par
+     of it, thus forming a work based on the Program, and copy and\par
+     distribute such modifications or work under the terms of Section 1\par
+     above, provided that you also meet all of these conditions:\par
+\par
+       a. You must cause the modified files to carry prominent notices\par
+          stating that you changed the files and the date of any change.\par
+\par
+       b. You must cause any work that you distribute or publish, that\par
+          in whole or in part contains or is derived from the Program\par
+          or any part thereof, to be licensed as a whole at no charge\par
+          to all third parties under the terms of this License.\par
+\par
+       c. If the modified program normally reads commands interactively\par
+          when run, you must cause it, when started running for such\par
+          interactive use in the most ordinary way, to print or display\par
+          an announcement including an appropriate copyright notice and\par
+          a notice that there is no warranty (or else, saying that you\par
+          provide a warranty) and that users may redistribute the\par
+          program under these conditions, and telling the user how to\par
+          view a copy of this License.  (Exception: if the Program\par
+          itself is interactive but does not normally print such an\par
+          announcement, your work based on the Program is not required\par
+          to print an announcement.)\par
+\par
+     These requirements apply to the modified work as a whole.  If\par
+     identifiable sections of that work are not derived from the\par
+     Program, and can be reasonably considered independent and separate\par
+     works in themselves, then this License, and its terms, do not\par
+     apply to those sections when you distribute them as separate\par
+     works.  But when you distribute the same sections as part of a\par
+     whole which is a work based on the Program, the distribution of\par
+     the whole must be on the terms of this License, whose permissions\par
+     for other licensees extend to the entire whole, and thus to each\par
+     and every part regardless of who wrote it.\par
+\par
+     Thus, it is not the intent of this section to claim rights or\par
+     contest your rights to work written entirely by you; rather, the\par
+     intent is to exercise the right to control the distribution of\par
+     derivative or collective works based on the Program.\par
+\par
+     In addition, mere aggregation of another work not based on the\par
+     Program with the Program (or with a work based on the Program) on\par
+     a volume of a storage or distribution medium does not bring the\par
+     other work under the scope of this License.\par
+\par
+  3. You may copy and distribute the Program (or a work based on it,\par
+     under Section 2) in object code or executable form under the terms\par
+     of Sections 1 and 2 above provided that you also do one of the\par
+     following:\par
+\par
+       a. Accompany it with the complete corresponding machine-readable\par
+          source code, which must be distributed under the terms of\par
+          Sections 1 and 2 above on a medium customarily used for\par
+          software interchange; or,\par
+\par
+       b. Accompany it with a written offer, valid for at least three\par
+          years, to give any third-party, for a charge no more than your\par
+          cost of physically performing source distribution, a complete\par
+          machine-readable copy of the corresponding source code, to be\par
+          distributed under the terms of Sections 1 and 2 above on a\par
+          medium customarily used for software interchange; or,\par
+\par
+       c. Accompany it with the information you received as to the offer\par
+          to distribute corresponding source code.  (This alternative is\par
+          allowed only for noncommercial distribution and only if you\par
+          received the program in object code or executable form with\par
+          such an offer, in accord with Subsection b above.)\par
+\par
+     The source code for a work means the preferred form of the work for\par
+     making modifications to it.  For an executable work, complete\par
+     source code means all the source code for all modules it contains,\par
+     plus any associated interface definition files, plus the scripts\par
+     used to control compilation and installation of the executable.\par
+     However, as a special exception, the source code distributed need\par
+     not include anything that is normally distributed (in either\par
+     source or binary form) with the major components (compiler,\par
+     kernel, and so on) of the operating system on which the executable\par
+     runs, unless that component itself accompanies the executable.\par
+\par
+     If distribution of executable or object code is made by offering\par
+     access to copy from a designated place, then offering equivalent\par
+     access to copy the source code from the same place counts as\par
+     distribution of the source code, even though third parties are not\par
+     compelled to copy the source along with the object code.\par
+\par
+  4. You may not copy, modify, sublicense, or distribute the Program\par
+     except as expressly provided under this License.  Any attempt\par
+     otherwise to copy, modify, sublicense or distribute the Program is\par
+     void, and will automatically terminate your rights under this\par
+     License.  However, parties who have received copies, or rights,\par
+     from you under this License will not have their licenses\par
+     terminated so long as such parties remain in full compliance.\par
+\par
+  5. You are not required to accept this License, since you have not\par
+     signed it.  However, nothing else grants you permission to modify\par
+     or distribute the Program or its derivative works.  These actions\par
+     are prohibited by law if you do not accept this License.\par
+     Therefore, by modifying or distributing the Program (or any work\par
+     based on the Program), you indicate your acceptance of this\par
+     License to do so, and all its terms and conditions for copying,\par
+     distributing or modifying the Program or works based on it.\par
+\par
+  6. Each time you redistribute the Program (or any work based on the\par
+     Program), the recipient automatically receives a license from the\par
+     original licensor to copy, distribute or modify the Program\par
+     subject to these terms and conditions.  You may not impose any\par
+     further restrictions on the recipients' exercise of the rights\par
+     granted herein.  You are not responsible for enforcing compliance\par
+     by third parties to this License.\par
+\par
+  7. If, as a consequence of a court judgment or allegation of patent\par
+     infringement or for any other reason (not limited to patent\par
+     issues), conditions are imposed on you (whether by court order,\par
+     agreement or otherwise) that contradict the conditions of this\par
+     License, they do not excuse you from the conditions of this\par
+     License.  If you cannot distribute so as to satisfy simultaneously\par
+     your obligations under this License and any other pertinent\par
+     obligations, then as a consequence you may not distribute the\par
+     Program at all.  For example, if a patent license would not permit\par
+     royalty-free redistribution of the Program by all those who\par
+     receive copies directly or indirectly through you, then the only\par
+     way you could satisfy both it and this License would be to refrain\par
+     entirely from distribution of the Program.\par
+\par
+     If any portion of this section is held invalid or unenforceable\par
+     under any particular circumstance, the balance of the section is\par
+     intended to apply and the section as a whole is intended to apply\par
+     in other circumstances.\par
+\par
+     It is not the purpose of this section to induce you to infringe any\par
+     patents or other property right claims or to contest validity of\par
+     any such claims; this section has the sole purpose of protecting\par
+     the integrity of the free software distribution system, which is\par
+     implemented by public license practices.  Many people have made\par
+     generous contributions to the wide range of software distributed\par
+     through that system in reliance on consistent application of that\par
+     system; it is up to the author/donor to decide if he or she is\par
+     willing to distribute software through any other system and a\par
+     licensee cannot impose that choice.\par
+\par
+     This section is intended to make thoroughly clear what is believed\par
+     to be a consequence of the rest of this License.\par
+\par
+  8. If the distribution and/or use of the Program is restricted in\par
+     certain countries either by patents or by copyrighted interfaces,\par
+     the original copyright holder who places the Program under this\par
+     License may add an explicit geographical distribution limitation\par
+     excluding those countries, so that distribution is permitted only\par
+     in or among countries not thus excluded.  In such case, this\par
+     License incorporates the limitation as if written in the body of\par
+     this License.\par
+\par
+  9. The Free Software Foundation may publish revised and/or new\par
+     versions of the General Public License from time to time.  Such\par
+     new versions will be similar in spirit to the present version, but\par
+     may differ in detail to address new problems or concerns.\par
+\par
+     Each version is given a distinguishing version number.  If the\par
+     Program specifies a version number of this License which applies\par
+     to it and "any later version", you have the option of following\par
+     the terms and conditions either of that version or of any later\par
+     version published by the Free Software Foundation.  If the Program\par
+     does not specify a version number of this License, you may choose\par
+     any version ever published by the Free Software Foundation.\par
+\par
+ 10. If you wish to incorporate parts of the Program into other free\par
+     programs whose distribution conditions are different, write to the\par
+     author to ask for permission.  For software which is copyrighted\par
+     by the Free Software Foundation, write to the Free Software\par
+     Foundation; we sometimes make exceptions for this.  Our decision\par
+     will be guided by the two goals of preserving the free status of\par
+     all derivatives of our free software and of promoting the sharing\par
+     and reuse of software generally.\par
+\par
+                                NO WARRANTY\par
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO\par
+     WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE\par
+     LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\par
+     HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT\par
+     WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT\par
+     NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\par
+     FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE\par
+     QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\par
+     PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY\par
+     SERVICING, REPAIR OR CORRECTION.\par
+\par
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\par
+     WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY\par
+     MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE\par
+     LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,\par
+     INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR\par
+     INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\par
+     DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU\par
+     OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY\par
+     OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN\par
+     ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par
+\par
+                      END OF TERMS AND CONDITIONS\par
+How to Apply These Terms to Your New Programs\par
+=============================================\par
+\par
+If you develop a new program, and you want it to be of the greatest\par
+possible use to the public, the best way to achieve this is to make it\par
+free software which everyone can redistribute and change under these\par
+terms.\par
+\par
+To do so, attach the following notices to the program.  It is safest to\par
+attach them to the start of each source file to most effectively convey\par
+the exclusion of warranty; and each file should have at least the\par
+"copyright" line and a pointer to where the full notice is found.\par
+\par
+     ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES.\par
+     Copyright (C) YYYY  NAME OF AUTHOR\par
+\par
+     This program is free software; you can redistribute it and/or modify\par
+     it under the terms of the GNU General Public License as published by\par
+     the Free Software Foundation; either version 2 of the License, or\par
+     (at your option) any later version.\par
+\par
+     This program is distributed in the hope that it will be useful,\par
+     but WITHOUT ANY WARRANTY; without even the implied warranty of\par
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\par
+     GNU General Public License for more details.\par
+\par
+     You should have received a copy of the GNU General Public License\par
+     along with this program; if not, write to the Free Software\par
+     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.\par
+\par
+Also add information on how to contact you by electronic and paper mail.\par
+\par
+If the program is interactive, make it output a short notice like this\par
+when it starts in an interactive mode:\par
+\par
+     Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR\par
+     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\par
+     This is free software, and you are welcome to redistribute it\par
+     under certain conditions; type `show c' for details.\par
+\par
+The hypothetical commands `show w' and `show c' should show the\par
+appropriate parts of the General Public License.  Of course, the\par
+commands you use may be called something other than `show w' and `show\par
+c'; they could even be mouse-clicks or menu items--whatever suits your\par
+program.\par
+\par
+You should also get your employer (if you work as a programmer) or your\par
+school, if any, to sign a "copyright disclaimer" for the program, if\par
+necessary.  Here is a sample; alter the names:\par
+\par
+     Yoyodyne, Inc., hereby disclaims all copyright interest in the program\par
+     `Gnomovision' (which makes passes at compilers) written by James Hacker.\par
+\par
+     SIGNATURE OF TY COON, 1 April 1989\par
+     Ty Coon, President of Vice\par
+\par
+This General Public License does not permit incorporating your program\par
+into proprietary programs.  If your program is a subroutine library,\par
+you may consider it more useful to permit linking proprietary\par
+applications with the library.  If this is what you want to do, use the\par
+GNU Library General Public License instead of this License.\par
+\par
+\par
+\par
+}
+
\ No newline at end of file

=== added file 'win/mysql-connc-msi-template.xml'
--- a/win/mysql-connc-msi-template.xml	1970-01-01 00:00:00 +0000
+++ b/win/mysql-connc-msi-template.xml	2009-02-16 22:37:38 +0000
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
+  <Product Id="PKG_NEW_GUID" Name="MySQL Connector C" Language="1033" Version="PKG_VERSION" Manufacturer="Sun Microsystems">
+    <Package Id="PKG_NEW_GUID" Keywords="Installer,MSI,Database" Description="MySQL Client C Connector" InstallerVersion="200" Compressed="yes" SummaryCodepage="1252" />
+    <Media Id="1" Cabinet="Product.cab" EmbedCab="yes" />
+    <Directory Id="TARGETDIR" Name="SourceDir">
+      <Directory Id="PKG_PLATFORM_STRING">
+        <Directory Id="MYSQL" Name="MySQL">
+          <Directory Id="MysqlLibraryDir" Name="MYSQLC.CON" LongName="MySQL Connector C">
+            <Directory Id="INSTALLDIR" Name=".">
+              <!-- *****************************************************************************************
+                   include directory
+                -->
+              <Directory Id="include" Name="include">
+                <Component Id="IncludeFiles" Guid="89D253A8-D429-430E-B1EA-399A17B4080C" DiskId="1">
+                  <File Id="file0001" Name="base64.h" Source=".\include\base64.h" />
+                  <File Id="file0002" Name="CONFGWIN.H" LongName="config-win.h" Source=".\include\config-win.h" />
+                  <File Id="file0003" Name="decimal.h" Source=".\include\decimal.h" />
+                  <File Id="file0004" Name="errmsg.h" Source=".\include\errmsg.h" />
+                  <File Id="file0005" Name="hash.h" Source=".\include\hash.h" />
+                  <File Id="file0006" Name="keycache.h" Source=".\include\keycache.h" />
+                  <File Id="file0007" Name="lf.h" Source=".\include\lf.h" />
+                  <File Id="file0008" Name="m_ctype.h" Source=".\include\m_ctype.h" />
+                  <File Id="file0009" Name="m_string.h" Source=".\include\m_string.h" />
+                  <File Id="file0010" Name="my_aes.h" Source=".\include\my_aes.h" />
+                  <File Id="file0011" Name="my_alarm.h" Source=".\include\my_alarm.h" />
+                  <File Id="file0012" Name="my_alloc.h" Source=".\include\my_alloc.h" />
+                  <File Id="file0013" Name="MYATOMIC.H" LongName="my_atomic.h" Source=".\include\my_atomic.h" />
+                  <File Id="file0014" Name="MY_ATTRI.H" LongName="my_attribute.h"  Source=".\include\my_attribute.h" />
+                  <File Id="file0015" Name="my_base.h" Source=".\include\my_base.h" />
+                  <File Id="file0016" Name="my_bit.h" Source=".\include\my_bit.h" />
+                  <File Id="file0017" Name="MYBITM.H" LongName="my_bitmap.h" Source=".\include\my_bitmap.h" />
+                  <File Id="file0018" Name="MY_CHARS.H" LongName="my_charsets.h"  Source=".\include\my_charsets.h" />
+                  <File Id="file0019" Name="MYCONFIG.H" LongName="my_config.h" Source=".\include\my_config.h" />
+                  <File Id="file0020" Name="my_dbug.h"  Source=".\include\my_dbug.h" />
+                  <File Id="file0021" Name="my_dir.h"  Source=".\include\my_dir.h" />
+                  <File Id="file0022" Name="MY_GETOP.H" LongName="my_getopt.h" Source=".\include\my_getopt.h" />
+                  <File Id="file0023" Name="MY_GLOBL.H" LongName="my_global.h" Source=".\include\my_global.h" />
+                  <File Id="file0024" Name="MYLIBWRP.H" LongName="my_libwrap.h"  Source=".\include\my_libwrap.h" />
+                  <File Id="file0025" Name="my_list.h" Source=".\include\my_list.h" />
+                  <File Id="file0026" Name="my_md5.h" Source=".\include\my_md5.h" />
+                  <File Id="file0027" Name="my_net.h" Source=".\include\my_net.h" />
+                  <File Id="file0028" Name="MY_NO_PT.H" LongName="my_no_pthread.h"  Source=".\include\my_no_pthread.h" />
+                  <File Id="file0029" Name="my_nosys.h"  Source=".\include\my_nosys.h" />
+                  <File Id="file0030" Name="MY_PTHRD.H" LongName="my_pthread.h"  Source=".\include\my_pthread.h" />
+                  <File Id="file0031" Name="MYSTACKT.H" LongName="my_stacktrace.h"  Source=".\include\my_stacktrace.h" />
+                  <File Id="file0032" Name="my_sys.h" Source=".\include\my_sys.h" />
+                  <File Id="file0033" Name="my_time.h" Source=".\include\my_time.h" />
+                  <File Id="file0034" Name="my_tree.h" Source=".\include\my_tree.h" />
+                  <File Id="file0035" Name="my_trie.h" Source=".\include\my_trie.h" />
+                  <File Id="file0036" Name="MYUCTYPE.H" LongName="my_uctype.h" Source=".\include\my_uctype.h" />
+                  <File Id="file0037" Name="my_vle.h" Source=".\include\my_vle.h" />
+                  <File Id="file0038" Name="my_xml.h" Source=".\include\my_xml.h" />
+                  <File Id="file0039" Name="MYISAMPK.H" LongName="myisampack.h" Source=".\include\myisampack.h" />
+                  <File Id="file0040" Name="mysql.h" Source=".\include\mysql.h" />
+                  <File Id="file0041" Name="MYSQL_CM.H" LongName="mysql_com.h" Source=".\include\mysql_com.h" />
+                  <File Id="file0042" Name="MYSQL_TM.H" LongName="mysql_time.h" Source=".\include\mysql_time.h" />
+                  <File Id="file0043" Name="MYSQL_VR.H" LongName="mysql_version.h" Source=".\include\mysql_version.h" />
+                  <File Id="file0044" Name="MYSQLDER.H" LongName="mysqld_error.h" Source=".\include\mysqld_error.h" />
+                  <File Id="file0045" Name="MYSYSERR.H" LongName="mysys_err.h" Source=".\include\mysys_err.h" />
+                  <File Id="file0046" Name="queues.h" Source=".\include\queues.h" />
+                  <File Id="file0047" Name="sha1.h" Source=".\include\sha1.h" />
+                  <File Id="file0048" Name="sha2.h" Source=".\include\sha2.h" />
+                  <File Id="file0049" Name="SQL_COMN.H" LongName="sql_common.h" Source=".\include\sql_common.h" />
+                  <File Id="file0050" Name="SSLOPTCS.H" LongName="sslopt-case.h" Source=".\include\sslopt-case.h" />
+                  <File Id="file0051" Name="SSLOPTVR.H" LongName="sslopt-vars.h" Source=".\include\sslopt-vars.h" />
+                  <File Id="file0052" Name="t_ctype.h" Source=".\include\t_ctype.h" />
+                  <File Id="file0053" Name="THRALARM.H" LongName="thr_alarm.h" Source=".\include\thr_alarm.h" />
+                  <File Id="file0054" Name="thr_lock.h" Source=".\include\thr_lock.h" />
+                  <File Id="file0055" Name="typelib.h" Source=".\include\typelib.h" />
+                  <File Id="file0056" Name="violite.h" Source=".\include\violite.h" />
+                  <File Id="file0057" Name="WTHREADS.H" LongName="waiting_threads.h" Source=".\include\waiting_threads.h" />
+                  <File Id="file0058" Name="wqueue.h" Source=".\include\wqueue.h" />
+                </Component>
+                <Directory Id="include_mysql" Name="mysys">
+                    <Component Id="MysysIncludeFiles" Guid="548E409C-7C79-44e9-BA4E-FFD302A499FD" DiskId="1">
+                        <File Id="file0060" Name="rijndael.h"  Source=".\include\mysys\rijndael.h" />
+                    </Component>
+                </Directory>
+                <Directory Id="include_atomic" Name="atomic">
+                    <Component Id="AtomicIncludeFiles" Guid="4D8D4413-D05F-4011-AC37-60B7AD4A9C2B" DiskId="1">
+                        <File Id="file0061" Name="GCCBUILT.H" LongName="gcc_builtins.h" Source=".\include\atomic\gcc_builtins.h" />
+                        <File Id="file0062" Name="GENERIC.H" LongName="generic-msvc.h" Source=".\include\atomic\generic-msvc.h" />
+                        <File Id="file0063" Name="nolock.h" Source=".\include\atomic\nolock.h" />
+                        <File Id="file0064" Name="rwlock.h" Source=".\include\atomic\rwlock.h" />
+                        <File Id="file0065" Name="x86-gcc.h" Source=".\include\atomic\x86-gcc.h" />
+                    </Component>
+                </Directory>
+              </Directory>
+              <!-- *****************************************************************************************
+                   lib directory
+                -->
+              <Directory Id="lib" Name="lib">
+                <Directory Id="debug" Name="debug">
+                  <Component Id="ClientLibraryDebug" Guid="B9441015-94FC-42d1-BE35-724D41DC263B" DiskId="1">
+                    <File Id="file1000" Name="dbug.lib" Source=".\extlib\dbug\debug\dbug.lib" />
+                    <File Id="file1001" Name="dbug.pdb" Source=".\extlib\dbug\debug\dbug.pdb" />
+                    <File Id="file1002" Name="libmysql.dll" Source=".\libmysql\debug\libmysql.dll" />
+                    <File Id="file1003" Name="libmysql.lib" Source=".\libmysql\debug\libmysql.lib" />
+                    <File Id="file1004" Name="libmysql.pdb" Source=".\libmysql\debug\libmysql.pdb" />
+                    <File Id="file1005" Name="MYSQLCLN.LIB" LongName="mysqlclient.lib" Source=".\libmysql\debug\mysqlclient.lib" />
+                    <File Id="file1006" Name="MYSQLCLD.LIB" LongName="mysqlclient.pdb" Source=".\libmysql\debug\mysqlclient.pdb" />
+                    <File Id="file1007" Name="mysys.lib" Source=".\mysys\debug\mysys.lib" />
+                    <File Id="file1008" Name="mysys.pdb" Source=".\mysys\debug\mysys.pdb" />
+                    <File Id="file1009" Name="regex.lib" Source=".\extlib\regex\debug\regex.lib" />
+                    <File Id="file1010" Name="regex.pdb" Source=".\extlib\regex\debug\regex.pdb" />
+                    <File Id="file1011" Name="strings.lib" Source=".\strings\debug\strings.lib" />
+                    <File Id="file1012" Name="strings.pdb" Source=".\strings\debug\strings.pdb" />
+                    <File Id="file1013" Name="vio.lib" Source=".\vio\debug\vio.lib" />
+                    <File Id="file1014" Name="vio.pdb" Source=".\vio\debug\vio.pdb" />
+                    <File Id="file1015" Name="yassl.lib" Source=".\extlib\yassl\debug\yassl.lib" />
+                    <File Id="file1016" Name="yassl.pdb" Source=".\extlib\yassl\debug\yassl.pdb" />
+                    <File Id="file1017" Name="zlib.lib" Source=".\extlib\zlib\debug\zlib.lib" />
+                    <File Id="file1018" Name="zlib.pdb" Source=".\extlib\zlib\debug\zlib.pdb" />
+                  </Component>
+                </Directory>
+                <Directory Id="opt" Name="opt">
+                  <Component Id="ClientLibraryRelease" Guid="70C45D85-2377-4e86-A389-AF77D0E25953" DiskId="1">
+                    <File Id="file1050" Name="dbug.lib" Source=".\extlib\dbug\relwithdebinfo\dbug.lib" />
+                    <File Id="file1051" Name="dbug.pdb" Source=".\extlib\dbug\relwithdebinfo\dbug.pdb" />
+                    <File Id="file1052" Name="libmysql.dll" Source=".\libmysql\relwithdebinfo\libmysql.dll" />
+                    <File Id="file1053" Name="libmysql.lib" Source=".\libmysql\relwithdebinfo\libmysql.lib" />
+                    <File Id="file1054" Name="libmysql.pdb" Source=".\libmysql\relwithdebinfo\libmysql.pdb" />
+                    <File Id="file1055" Name="MYSQLCLN.LIB" LongName="mysqlclient.lib" Source=".\libmysql\relwithdebinfo\mysqlclient.lib" />
+                    <File Id="file1056" Name="MYSQLCLD.LIB" LongName="mysqlclient.pdb" Source=".\libmysql\relwithdebinfo\mysqlclient.pdb" />
+                    <File Id="file1057" Name="mysys.lib" Source=".\mysys\relwithdebinfo\mysys.lib" />
+                    <File Id="file1058" Name="mysys.pdb" Source=".\mysys\relwithdebinfo\mysys.pdb" />
+                    <File Id="file1059" Name="regex.lib" Source=".\extlib\regex\relwithdebinfo\regex.lib" />
+                    <File Id="file1060" Name="regex.pdb" Source=".\extlib\regex\relwithdebinfo\regex.pdb" />
+                    <File Id="file1061" Name="strings.lib" Source=".\strings\relwithdebinfo\strings.lib" />
+                    <File Id="file1062" Name="strings.pdb" Source=".\strings\relwithdebinfo\strings.pdb" />
+                    <File Id="file1063" Name="vio.lib" Source=".\vio\relwithdebinfo\vio.lib" />
+                    <File Id="file1064" Name="vio.pdb" Source=".\vio\relwithdebinfo\vio.pdb" />
+                    <File Id="file1065" Name="yassl.lib" Source=".\extlib\yassl\relwithdebinfo\yassl.lib" />
+                    <File Id="file1066" Name="yassl.pdb" Source=".\extlib\yassl\relwithdebinfo\yassl.pdb" />
+                    <File Id="file1067" Name="zlib.lib" Source=".\extlib\zlib\relwithdebinfo\zlib.lib" />
+                    <File Id="file1068" Name="zlib.pdb" Source=".\extlib\zlib\relwithdebinfo\zlib.pdb" />
+                  </Component>
+                </Directory>
+              </Directory>
+              <!-- *****************************************************************************************
+                   bin directory
+                -->
+              <Directory Id="bin" Name="bin">
+                <Component Id="ClientLibraryBins" Guid="3AC8ADC0-62BA-466c-AC97-6A017C17828A" DiskId="1">
+                  <File Id="file2000" Name="MYSQLCON.EXE" LongName="mysql_config.exe" Source=".\mysql_config\relwithdebinfo\mysql_config.exe" />
+                  <File Id="file2001" Name="MYSQLCON.PDB" LongName="mysql_config.pdb" Source=".\mysql_config\relwithdebinfo\mysql_config.pdb" />
+                  <File Id="file2002" Name="MYSQLCTE.EXE" LongName="mysql_client_test.exe" Source=".\tests\relwithdebinfo\mysql_client_test.exe" />
+                  <File Id="file2003" Name="MYSQLCTE.PDB" LongName="mysql_client_test.pdb" Source=".\tests\relwithdebinfo\mysql_client_test.pdb" />
+                </Component>
+              </Directory>
+            </Directory>
+          </Directory>
+        </Directory>
+      </Directory>
+    </Directory>
+
+    <Feature Id="Complete" Title="MySQL Connector C" Description="The MySQL Connector C client library." Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR">
+        <Feature Id="ConnectorC" Title="Library" Description="The release library and headers." Level="1" Display="expand">
+          <ComponentRef Id="IncludeFiles" />
+          <ComponentRef Id="MysysIncludeFiles" />
+          <ComponentRef Id="AtomicIncludeFiles" />
+          <ComponentRef Id="ClientLibraryRelease" />
+          <Feature Id="DebugLibraries" Title="Debug Libary" Description="Debug library and symbols." Level="1000">
+            <ComponentRef Id="ClientLibraryDebug" />
+          </Feature>
+        </Feature>
+        <Feature Id="ConnectorCBins" Title="Extra binaries" Description="Extra binaries used for development and testing." Level="1000">
+            <ComponentRef Id="ClientLibraryBins" />
+        </Feature>
+    </Feature>
+    <UIRef Id="WixUI_Mondo" />
+    <UIRef Id="WixUI_ErrorProgressText" />
+  </Product>
+</Wix>

=== added file 'win/mysql-connc-setup.js'
--- a/win/mysql-connc-setup.js	1970-01-01 00:00:00 +0000
+++ b/win/mysql-connc-setup.js	2009-02-16 22:37:38 +0000
@@ -0,0 +1,187 @@
+WiXSource = "C:\\Program Files\\WiX\\"; // This should be automated.
+
+ForReading = 1;
+ForWriting = 2;
+ForAppending = 8;
+
+try
+{
+    var fso = new ActiveXObject("Scripting.FileSystemObject");
+    if( checkDirectories(fso) != true)
+        throw new Error(1, "Invalid directory structure.");
+
+    var pkg_version = "";
+    var pkg_platform = "win32";
+    var pkg_signed = "no"
+    var args = WScript.Arguments;
+
+    for (i=0; i < args.Count(); i++)
+    {
+        var parts = args.Item(i).split('=');
+        switch (parts[0])
+        {
+          case "version":
+               pkg_version= parts[1];
+               break;
+          case "platform":
+               pkg_platform= parts[1];
+               break;
+          case "signed":
+               pkg_signed= parts[1];
+               break;
+          default:
+               throw new Error(1, "Invalid argument supplied.");
+        }
+    }
+    if (i != 2 && i != 3)
+      throw new Error(1, "Incorrect number of arguments.");
+
+    // read in the WiX template file
+    var wix_templateTS = fso.OpenTextFile("win\\mysql-connc-msi-template.xml", ForReading);
+    var wix_template = wix_templateTS.ReadAll();
+    wix_templateTS.Close();
+
+    wix_template = ReplaceValue(wix_template, "PKG_NEW_GUID", getGUIDString());
+    wix_template = ReplaceValue(wix_template, "PKG_NEW_GUID", getGUIDString());
+    wix_template = ReplaceValue(wix_template, "PKG_VERSION", pkg_version);
+    wix_template = ReplaceValue(wix_template, "PKG_PLATFORM_STRING", pkg_platform == "win32" ? "ProgramFilesFolder" : "ProgramFiles64Folder");
+    if (wix_template == 0)
+      throw new Error(1, "Bad Template Input");
+
+    var wix_final = fso.CreateTextFile("win\\mysql-connector-c-" + pkg_platform + ".xml", true);
+    wix_final.Write(wix_template);
+    wix_final.Close();
+
+    WScript.Echo("Updated the WiX XML for this version/platform.");
+    WScript.Echo("Please remember to check-in win\\mysql-connector-c-" + pkg_platform + " if this is an offical release.\n");
+
+    WScript.Echo("Compiling WiX.\n");
+    ExecuteShell("candle.exe -out mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".wixobj win\\mysql-connector-c-" + pkg_platform + ".xml");
+
+    WScript.Echo("Linking WiX.\n");
+    ExecuteShell("light.exe -out win\\mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".msi mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".wixobj \"" + WiXSource + "WixUI.wixlib\" -loc \"" + WiXSource + "WixUI_en-us.wxl\"");
+
+    if (pkg_signed == "yes")
+    {
+        WScript.Echo("Signing MSI\n");
+        ExecuteShell("signtool.exe sign /a /d \"MySQL Connector C " + pkg_version + "\" /du \"http://www.mysql.com\" /t \"http://timestamp.verisign.com/scripts/timestamp.dll\" mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".msi");
+
+        WScript.Echo("Creating MD5 checksum\n");
+        ExecuteShell("..\\..\\utils\\md5sum mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".msi > mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".msi.md5");
+    }
+
+    WScript.Echo("Cleaning up a little.\n");
+    leftOvers = fso.GetFile(".\\mysql-connector-c-" + pkg_version + "-" + pkg_platform + ".wixobj");
+    leftOvers.Delete();
+
+    WScript.Echo("It's nice.\n");
+    WScript.Quit(0);
+}
+catch (e)
+{
+    WScript.Echo("Error: " + e.description);
+    printUsage();
+    WScript.Quit(1);
+}
+
+/* Generate a GUID and return a formatted string */
+function getGUIDString()
+{
+     return new ActiveXObject("Scriptlet.TypeLib").GUID.substr(1,36);
+}
+
+/* Replace the first occurance of key with rpl in str */
+function ReplaceValue(str, key, rpl)
+{
+    var pos = str.indexOf(key);
+      if (pos == -1) return 0;
+    var new_string = str.substring(0, pos) + rpl + str.substring(pos + key.length, str.length);
+    return new_string;
+}
+
+/* Print Usage */
+function printUsage()
+{
+    WScript.Echo("mysql-connc-setup.js - Updates the Product GUID and version strings in the");
+    WScript.Echo("                       mysql-connector-c-VERSION-PLAT.xml created for this");
+    WScript.Echo("                       MSI creation attempt.");
+    WScript.Echo("  3 command line parameters must be supplied:");
+    WScript.Echo("  version  - Version of the package. ie 5.0.0.0");
+    WScript.Echo("  platform - x64 or win32 (default)");
+    WScript.Echo("  signed - yes or no (default)");
+    WScript.Echo("  Example:");
+    WScript.Echo("  cscript mysql-connc-setup.js version=5.0.32.0 platform=x64 signed=yes");
+    WScript.Echo("  Note:");
+    WScript.Echo("  This script should be executed from the root of an lp:libmysql repository.");
+}
+
+function checkDirectories(FSO)
+{
+    var retVal = true;
+    retVal &= FSO.FolderExists(".\\include");
+    retVal &= FSO.FolderExists(".\\include\\atomic");
+    retVal &= FSO.FolderExists(".\\include\\mysys");
+    retVal &= FSO.FolderExists(".\\extlib\\dbug\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\extlib\\dbug\\debug");
+    retVal &= FSO.FolderExists(".\\extlib\\zlib\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\extlib\\zlib\\debug");
+    retVal &= FSO.FolderExists(".\\extlib\\yassl\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\extlib\\yassl\\debug");
+    retVal &= FSO.FolderExists(".\\extlib\\regex\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\extlib\\regex\\debug");
+    retVal &= FSO.FolderExists(".\\libmysql\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\libmysql\\debug");
+    retVal &= FSO.FolderExists(".\\mysql_config\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\mysql_config\\debug");
+    retVal &= FSO.FolderExists(".\\mysys\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\mysys\\debug");
+    retVal &= FSO.FolderExists(".\\strings\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\strings\\debug");
+    retVal &= FSO.FolderExists(".\\tests\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\tests\\debug");
+    retVal &= FSO.FolderExists(".\\vio\\relwithdebinfo");
+    retVal &= FSO.FolderExists(".\\vio\\debug");
+    return retVal;
+}
+
+
+
+function ReadAllFromAny(oExec)
+{
+     if (!oExec.StdOut.AtEndOfStream)
+          return oExec.StdOut.ReadAll();
+
+     if (!oExec.StdErr.AtEndOfStream)
+          return oExec.StdErr.ReadAll();
+
+     return -1;
+}
+
+function ExecuteShell(cmd)
+{
+    var WshShell = new ActiveXObject("WScript.Shell");
+    var oExec    = WshShell.Exec(cmd);
+    var allInput = "";
+    var tryCount = 0;
+
+    while (true)
+    {
+         var input = ReadAllFromAny(oExec);
+         if (-1 == input)
+         {
+              if (tryCount++ > 10 && oExec.Status == 1)
+                   break;
+              WScript.Sleep(100);
+         }
+         else
+         {
+              allInput += input;
+              tryCount = 0;
+         }
+    }
+
+    WScript.Echo(allInput);
+
+    if (oExec. ExitCode!= 0)
+        throw new Error(1, "Shell command failed.  The error should have been displayed above.");
+}

Thread
bzr commit into libmysql branch (iggy:2816) Ignacio Galarza16 Feb