#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 Galarza | 16 Feb |