1
0
mirror of https://github.com/fwbuilder/fwbuilder synced 2025-06-17 15:47:42 +02:00

switching to GPL for MacOSX and windows; merged build files for mac and win packages, updated license text

This commit is contained in:
Vadim Kurland 2012-03-19 12:45:32 -07:00
parent 49ae170756
commit 7015b23d1b
24 changed files with 1893 additions and 20 deletions

4
.gitignore vendored
View File

@ -11,11 +11,7 @@ core
*.fw
*.conf
*.app
*.icns
*.ico
*.plist
!src/gui/FwbuilderInfo.plist
*.rc
*.dylib
*.spec
*.control

View File

@ -1,13 +1,13 @@
#-*- mode: shell-script; tab-width: 4; -*-
FWB_MAJOR_VERSION=5
FWB_MINOR_VERSION=0
FWB_MICRO_VERSION=2
FWB_MINOR_VERSION=1
FWB_MICRO_VERSION=0
# build number is like "nano" version number. I am incrementing build
# number during development cycle
#
BUILD_NUM="3597"
BUILD_NUM="3598"
VERSION="$FWB_MAJOR_VERSION.$FWB_MINOR_VERSION.$FWB_MICRO_VERSION.$BUILD_NUM"

View File

@ -1,6 +1,10 @@
#include "VERSION.h"
#if defined(_WIN32)
# include "config.win32.h"
#else
#undef BUILD_NUM
#undef PACKAGE_LOCALE_DIR
@ -117,4 +121,5 @@ using namespace std;
# define VSNPRINTF _vsnprintf
#endif
#endif

186
config.win32.h Normal file
View File

@ -0,0 +1,186 @@
#include "VERSION.h"
#ifdef _WIN32
#ifndef __GNUC__
/***************** MSVC ****************/
/* define constants for access that are missing on windows */
/* Values for the second argument to access.
These may be OR'd together. */
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
/****************************************/
#endif
#define _WIN32_WINNT 0x0501
#undef PACKAGE_LOCALE_DIR
#undef PACKAGE_DATA_DIR
#undef PACKAGE_SOURCE_DIR
#define RCS_FILE_NAME "rcs.exe"
#define RCSDIFF_FILE_NAME "rcsdiff.exe"
#define RLOG_FILE_NAME "rlog.exe"
#define CI_FILE_NAME "ci.exe"
#define CO_FILE_NAME "co.exe"
/*
* Normally this macro defines directory where system-wide QT
* translations are installed. We do not use it on win32 since
* we can't assume user has QT installed on their machine.
*/
#define QTTRANSLATIONSDIR "."
/* Define if you have the <X11/SM/SMlib.h> header file. */
#undef HAVE_X11_SM_SMLIB_H
/* Name of package */
#define PACKAGE fwbuilder2
/* init dir */
#define RES_DIR "resources"
/* OS */
#undef OS
/* OS */
#define OS_WIN32 1
/* distribution (for Linux) */
#define DISTRO "Unknown"
/* prefix dir */
/* #define PREFIX Z: */
#define MANIFEST_MARKER "# files: "
#undef HAVE_LOCALE_H
#undef HAVE_GETOPT_H
#undef HAVE_SETLOCALE
#undef HAVE_SETENV
#undef HAVE_PUTENV
#ifdef HAVE_GETOPT_H
# define HAVE_DECL_GETOPT HAVE_GETOPT_H
#endif
#undef HAVE_STRUCT_TM_TM_ZONE
#undef TM_IN_SYS_TIME
/*
* This is needed for Solaris
*/
#undef __PRAGMA_REDEFINE_EXTNAME
#undef HAVE_CATGETS
#undef HAVE_GETTEXT
#undef HAVE_LC_MESSAGES
#undef HAVE_STPCPY
#undef HAVE_LIBSM
#undef HAVE_MEMPCPY
#undef HAVE_STRCHR
#define HAVE_LIBSNMP 1
#define HAVE_ANTLR_RUNTIME 1
#define SNPRINTF _snprintf
#define VSNPRINTF _vsnprintf
#endif /* End of _WIN32 */
/* **************************************************************** */
#ifdef Q_OS_MACX
#define RCS_FILE_NAME "/usr/bin/rcs"
#define RCSDIFF_FILE_NAME "/usr/bin/rcsdiff"
#define RLOG_FILE_NAME "/usr/bin/rlog"
#define CI_FILE_NAME "/usr/bin/ci"
#define CO_FILE_NAME "/usr/bin/co"
/* Define if you have the <X11/SM/SMlib.h> header file. */
/* #undef HAVE_X11_SM_SMLIB_H */
/* Name of package */
#define PACKAGE "fwbuilder"
/* OS */
#define OS "MacOSX"
/* OS */
/* #undef OS_CYGWIN */
/* #undef OS_MINGW */
#define OS_MACOSX "1"
/* #undef OS_SOLARIS */
/* #undef OS_FREEBSD */
/* #undef OS_OPENBSD */
/* #undef OS_LINUX */
/* #undef OS_UNKNOWN */
#if defined(OS_SOLARIS) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_LINUX) || defined(OS_MACOSX)
#define OS_UNIX 1
#endif
/* distribution (for Linux) */
#define DISTRO ""
/* prefix dir */
/* #undef PREFIX */
/* init dir */
#define RES_DIR "../Resources"
#define MANIFEST_MARKER "# files: "
/* #undef HAVE_LOCALE_H */
#define HAVE_GETOPT_H 1
/* #undef HAVE_SETLOCALE */
/* #undef HAVE_SETENV */
/* #undef HAVE_PUTENV */
#define HAVE_SIGNAL 1
#define HAVE_SIGNAL_H 1
/* #undef HAVE_PTY_H */
/* #undef HAVE_LIBUTIL_H */
#define HAVE_UTIL_H 1
#ifdef HAVE_GETOPT_H
# define HAVE_DECL_GETOPT HAVE_GETOPT_H
#endif
#define HAVE_STRUCT_TM_TM_ZONE 1
/* #undef TM_IN_SYS_TIME */
#define HAVE_FORKPTY 1
#define HAVE_CFMAKERAW 1
/* #undef HAVE_CATGETS */
/* #undef HAVE_GETTEXT */
/* #undef HAVE_LC_MESSAGES */
/* #undef HAVE_STPCPY */
/* #undef HAVE_LIBSM */
/* #undef HAVE_MEMPCPY */
#define HAVE_STRCHR 1
/*
* on some platforms (OpenBSD) the second parameter to dlopen is different
*/
/* #undef DLOPEN_MODE */
#define SNPRINTF snprintf
#define VSNPRINTF vsnprintf
#define HAVE_LIBSNMP 1
#define HAVE_ANTLR_RUNTIME 1
#endif

View File

@ -669,7 +669,8 @@ AC_CONFIG_FILES([ qmake.inc
src/libfwbuilder/etc/fwbuilder.dtd
packaging/fwbuilder.control
packaging/fwbuilder.spec
packaging/fwbuilder-static-qt.spec])
packaging/fwbuilder-static-qt.spec
packaging/fwbuilder.nsi])
AC_OUTPUT

View File

@ -1,3 +1,7 @@
2012-03-19 Vadim Kurland <vadim@netcitadel.com>
* switching to GPL for Mac OS X and Windows.
2012-03-18 Vadim Kurland <vadim@netcitadel.com>
* CompilerDriver.cpp (CompilerDriver::populateClusterElements):

712
packaging/SLA.r Normal file
View File

@ -0,0 +1,712 @@
data 'LPic' (5000) {
$"0002 0011 0003 0001 0000 0000 0002 0000"
$"0008 0003 0000 0001 0004 0000 0004 0005"
$"0000 000E 0006 0001 0005 0007 0000 0007"
$"0008 0000 0047 0009 0000 0034 000A 0001"
$"0035 000B 0001 0020 000C 0000 0011 000D"
$"0000 005B 0004 0000 0033 000F 0001 000C"
$"0010 0000 000B 000E 0000"
};
data 'TEXT' (5002, "English") {
" GNU GENERAL PUBLIC LICENSE\n"
" Version 2, June 1991\n"
"\n"
" Copyright (C) 1989, 1991 Free Software Foundation, Inc.\n"
" 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
" Everyone is permitted to copy and distribute verbatim copies\n"
" of this license document, but changing it is not allowed.\n"
"\n"
" Preamble\n"
"\n"
" The licenses for most software are designed to take away your\n"
"freedom to share and change it. By contrast, the GNU General Public\n"
"License is intended to guarantee your freedom to share and change free\n"
"software--to make sure the software is free for all its users. This\n"
"General Public License applies to most of the Free Software\n"
"Foundation\'s software and to any other program whose authors commit to\n"
"using it. (Some other Free Software Foundation software is covered by\n"
"the GNU Library General Public License instead.) You can apply it to\n"
"your programs, too.\n"
"\n"
" When we speak of free software, we are referring to freedom, not\n"
"price. Our General Public Licenses are designed to make sure that you\n"
"have the freedom to distribute copies of free software (and charge for\n"
"this service if you wish), that you receive source code or can get it\n"
"if you want it, that you can change the software or use pieces of it\n"
"in new free programs; and that you know you can do these things.\n"
"\n"
" To protect your rights, we need to make restrictions that forbid\n"
"anyone to deny you these rights or to ask you to surrender the rights.\n"
"These restrictions translate to certain responsibilities for you if you\n"
"distribute copies of the software, or if you modify it.\n"
"\n"
" For example, if you distribute copies of such a program, whether\n"
"gratis or for a fee, you must give the recipients all the rights that\n"
"you have. You must make sure that they, too, receive or can get the\n"
"source code. And you must show them these terms so they know their\n"
"rights.\n"
"\n"
" We protect your rights with two steps: (1) copyright the software, and\n"
"(2) offer you this license which gives you legal permission to copy,\n"
"distribute and/or modify the software.\n"
"\n"
" Also, for each author\'s protection and ours, we want to make certain\n"
"that everyone understands that there is no warranty for this free\n"
"software. If the software is modified by someone else and passed on, we\n"
"want its recipients to know that what they have is not the original, so\n"
"that any problems introduced by others will not reflect on the original\n"
"authors\' reputations.\n"
"\n"
" Finally, any free program is threatened constantly by software\n"
"patents. We wish to avoid the danger that redistributors of a free\n"
"program will individually obtain patent licenses, in effect making the\n"
"program proprietary. To prevent this, we have made it clear that any\n"
"patent must be licensed for everyone\'s free use or not licensed at all.\n"
"\n"
" The precise terms and conditions for copying, distribution and\n"
"modification follow.\n"
"\n"
" GNU GENERAL PUBLIC LICENSE\n"
" TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n"
"\n"
" 0. This License applies to any program or other work which contains\n"
"a notice placed by the copyright holder saying it may be distributed\n"
"under the terms of this General Public License. The \"Program\", below,\n"
"refers to any such program or work, and a \"work based on the Program\"\n"
"means either the Program or any derivative work under copyright law:\n"
"that is to say, a work containing the Program or a portion of it,\n"
"either verbatim or with modifications and/or translated into another\n"
"language. (Hereinafter, translation is included without limitation in\n"
"the term \"modification\".) Each licensee is addressed as \"you\".\n"
"\n"
"Activities other than copying, distribution and modification are not\n"
"covered by this License; they are outside its scope. The act of\n"
"running the Program is not restricted, and the output from the Program\n"
"is covered only if its contents constitute a work based on the\n"
"Program (independent of having been made by running the Program).\n"
"Whether that is true depends on what the Program does.\n"
"\n"
" 1. You may copy and distribute verbatim copies of the Program\'s\n"
"source code as you receive it, in any medium, provided that you\n"
"conspicuously and appropriately publish on each copy an appropriate\n"
"copyright notice and disclaimer of warranty; keep intact all the\n"
"notices that refer to this License and to the absence of any warranty;\n"
"and give any other recipients of the Program a copy of this License\n"
"along with the Program.\n"
"\n"
"You may charge a fee for the physical act of transferring a copy, and\n"
"you may at your option offer warranty protection in exchange for a fee.\n"
"\n"
" 2. You may modify your copy or copies of the Program or any portion\n"
"of it, thus forming a work based on the Program, and copy and\n"
"distribute such modifications or work under the terms of Section 1\n"
"above, provided that you also meet all of these conditions:\n"
"\n"
" a) You must cause the modified files to carry prominent notices\n"
" stating that you changed the files and the date of any change.\n"
"\n"
" b) You must cause any work that you distribute or publish, that in\n"
" whole or in part contains or is derived from the Program or any\n"
" part thereof, to be licensed as a whole at no charge to all third\n"
" parties under the terms of this License.\n"
"\n"
" c) If the modified program normally reads commands interactively\n"
" when run, you must cause it, when started running for such\n"
" interactive use in the most ordinary way, to print or display an\n"
" announcement including an appropriate copyright notice and a\n"
" notice that there is no warranty (or else, saying that you provide\n"
" a warranty) and that users may redistribute the program under\n"
" these conditions, and telling the user how to view a copy of this\n"
" License. (Exception: if the Program itself is interactive but\n"
" does not normally print such an announcement, your work based on\n"
" the Program is not required to print an announcement.)\n"
"\n"
"These requirements apply to the modified work as a whole. If\n"
"identifiable sections of that work are not derived from the Program,\n"
"and can be reasonably considered independent and separate works in\n"
"themselves, then this License, and its terms, do not apply to those\n"
"sections when you distribute them as separate works. But when you\n"
"distribute the same sections as part of a whole which is a work based\n"
"on the Program, the distribution of the whole must be on the terms of\n"
"this License, whose permissions for other licensees extend to the\n"
"entire whole, and thus to each and every part regardless of who wrote it.\n"
"\n"
"Thus, it is not the intent of this section to claim rights or contest\n"
"your rights to work written entirely by you; rather, the intent is to\n"
"exercise the right to control the distribution of derivative or\n"
"collective works based on the Program.\n"
"\n"
"In addition, mere aggregation of another work not based on the Program\n"
"with the Program (or with a work based on the Program) on a volume of\n"
"a storage or distribution medium does not bring the other work under\n"
"the scope of this License.\n"
"\n"
" 3. You may copy and distribute the Program (or a work based on it,\n"
"under Section 2) in object code or executable form under the terms of\n"
"Sections 1 and 2 above provided that you also do one of the following:\n"
"\n"
" a) Accompany it with the complete corresponding machine-readable\n"
" source code, which must be distributed under the terms of Sections\n"
" 1 and 2 above on a medium customarily used for software interchange; or,\n"
"\n"
" b) Accompany it with a written offer, valid for at least three\n"
" years, to give any third party, for a charge no more than your\n"
" cost of physically performing source distribution, a complete\n"
" machine-readable copy of the corresponding source code, to be\n"
" distributed under the terms of Sections 1 and 2 above on a medium\n"
" customarily used for software interchange; or,\n"
"\n"
" c) Accompany it with the information you received as to the offer\n"
" to distribute corresponding source code. (This alternative is\n"
" allowed only for noncommercial distribution and only if you\n"
" received the program in object code or executable form with such\n"
" an offer, in accord with Subsection b above.)\n"
"\n"
"The source code for a work means the preferred form of the work for\n"
"making modifications to it. For an executable work, complete source\n"
"code means all the source code for all modules it contains, plus any\n"
"associated interface definition files, plus the scripts used to\n"
"control compilation and installation of the executable. However, as a\n"
"special exception, the source code distributed need not include\n"
"anything that is normally distributed (in either source or binary\n"
"form) with the major components (compiler, kernel, and so on) of the\n"
"operating system on which the executable runs, unless that component\n"
"itself accompanies the executable.\n"
"\n"
"If distribution of executable or object code is made by offering\n"
"access to copy from a designated place, then offering equivalent\n"
"access to copy the source code from the same place counts as\n"
"distribution of the source code, even though third parties are not\n"
"compelled to copy the source along with the object code.\n"
"\n"
" 4. You may not copy, modify, sublicense, or distribute the Program\n"
"except as expressly provided under this License. Any attempt\n"
"otherwise to copy, modify, sublicense or distribute the Program is\n"
"void, and will automatically terminate your rights under this License.\n"
"However, parties who have received copies, or rights, from you under\n"
"this License will not have their licenses terminated so long as such\n"
"parties remain in full compliance.\n"
"\n"
" 5. You are not required to accept this License, since you have not\n"
"signed it. However, nothing else grants you permission to modify or\n"
"distribute the Program or its derivative works. These actions are\n"
"prohibited by law if you do not accept this License. Therefore, by\n"
"modifying or distributing the Program (or any work based on the\n"
"Program), you indicate your acceptance of this License to do so, and\n"
"all its terms and conditions for copying, distributing or modifying\n"
"the Program or works based on it.\n"
"\n"
" 6. Each time you redistribute the Program (or any work based on the\n"
"Program), the recipient automatically receives a license from the\n"
"original licensor to copy, distribute or modify the Program subject to\n"
"these terms and conditions. You may not impose any further\n"
"restrictions on the recipients\' exercise of the rights granted herein.\n"
"You are not responsible for enforcing compliance by third parties to\n"
"this License.\n"
"\n"
" 7. If, as a consequence of a court judgment or allegation of patent\n"
"infringement or for any other reason (not limited to patent issues),\n"
"conditions are imposed on you (whether by court order, agreement or\n"
"otherwise) that contradict the conditions of this License, they do not\n"
"excuse you from the conditions of this License. If you cannot\n"
"distribute so as to satisfy simultaneously your obligations under this\n"
"License and any other pertinent obligations, then as a consequence you\n"
"may not distribute the Program at all. For example, if a patent\n"
"license would not permit royalty-free redistribution of the Program by\n"
"all those who receive copies directly or indirectly through you, then\n"
"the only way you could satisfy both it and this License would be to\n"
"refrain entirely from distribution of the Program.\n"
"\n"
"If any portion of this section is held invalid or unenforceable under\n"
"any particular circumstance, the balance of the section is intended to\n"
"apply and the section as a whole is intended to apply in other\n"
"circumstances.\n"
"\n"
"It is not the purpose of this section to induce you to infringe any\n"
"patents or other property right claims or to contest validity of any\n"
"such claims; this section has the sole purpose of protecting the\n"
"integrity of the free software distribution system, which is\n"
"implemented by public license practices. Many people have made\n"
"generous contributions to the wide range of software distributed\n"
"through that system in reliance on consistent application of that\n"
"system; it is up to the author/donor to decide if he or she is willing\n"
"to distribute software through any other system and a licensee cannot\n"
"impose that choice.\n"
"\n"
"This section is intended to make thoroughly clear what is believed to\n"
"be a consequence of the rest of this License.\n"
"\n"
" 8. If the distribution and/or use of the Program is restricted in\n"
"certain countries either by patents or by copyrighted interfaces, the\n"
"original copyright holder who places the Program under this License\n"
"may add an explicit geographical distribution limitation excluding\n"
"those countries, so that distribution is permitted only in or among\n"
"countries not thus excluded. In such case, this License incorporates\n"
"the limitation as if written in the body of this License.\n"
"\n"
" 9. The Free Software Foundation may publish revised and/or new versions\n"
"of the General Public License from time to time. Such new versions will\n"
"be similar in spirit to the present version, but may differ in detail to\n"
"address new problems or concerns.\n"
"\n"
"Each version is given a distinguishing version number. If the Program\n"
"specifies a version number of this License which applies to it and \"any\n"
"later version\", you have the option of following the terms and conditions\n"
"either of that version or of any later version published by the Free\n"
"Software Foundation. If the Program does not specify a version number of\n"
"this License, you may choose any version ever published by the Free Software\n"
"Foundation.\n"
"\n"
" 10. If you wish to incorporate parts of the Program into other free\n"
"programs whose distribution conditions are different, write to the author\n"
"to ask for permission. For software which is copyrighted by the Free\n"
"Software Foundation, write to the Free Software Foundation; we sometimes\n"
"make exceptions for this. Our decision will be guided by the two goals\n"
"of preserving the free status of all derivatives of our free software and\n"
"of promoting the sharing and reuse of software generally.\n"
"\n"
" NO WARRANTY\n"
"\n"
" 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\n"
"FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN\n"
"OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\n"
"PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\n"
"OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n"
"MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS\n"
"TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE\n"
"PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\n"
"REPAIR OR CORRECTION.\n"
"\n"
" 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n"
"WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\n"
"REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\n"
"INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\n"
"OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\n"
"TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\n"
"YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\n"
"PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\n"
"POSSIBILITY OF SUCH DAMAGES.\n"
"\n"
};
resource 'STR#' (5001, "German") {
{ /* array StringArray: 9 elements */
/* [1] */
"Deutsch",
/* [2] */
"Akzeptieren",
/* [3] */
"Ablehnen",
/* [4] */
"Drucken",
/* [5] */
"Sichern...",
/* [6] */
"Klicken Sie auf ÒAkzeptierenÓ, wenn Sie mit den Bestimmungen des "
"Software-Lizenzvertrages einverstanden sind. Falls nicht, klicken "
"Sie bitte ÒAblehnenÓ an. Sie kšnnen die Software nur installieren, "
"wenn Sie ÒAkzeptierenÓ angeklickt haben.",
/* [7] */
"Software-Lizenzvertrag",
/* [8] */
"Dieser Text kann nicht gesichert werden. Diese Festplatte ist "
"mšglicherweise voll oder geschŸtzt oder der Ordner ist geschŸtzt.",
/* [9] */
"Es kann nicht gedruckt werden. Bitte stellen Sie sicher, da§ ein "
"Drucker ausgewŠhlt ist."
}
};
resource 'STR#' (5002, "English") {
{ /* array StringArray: 9 elements */
/* [1] */
"English",
/* [2] */
"Agree",
/* [3] */
"Disagree",
/* [4] */
"Print",
/* [5] */
"Save...",
/* [6] */
"IMPORTANT - Read this License Agreement carefully before clicking on "
"the \"Agree\" button. By clicking on the \"Agree\" button, you agree "
"to be bound by the terms of the License Agreement.",
/* [7] */
"Software License Agreement",
/* [8] */
"This text cannot be saved. This disk may be full or locked, or the file "
"may be locked.",
/* [9] */
"Unable to print. Make sure youÕve selected a printer."
}
};
resource 'STR#' (5003, "Spanish") {
{ /* array StringArray: 9 elements */
/* [1] */
"Espaol",
/* [2] */
"Aceptar",
/* [3] */
"No aceptar",
/* [4] */
"Imprimir",
/* [5] */
"Guardar...",
/* [6] */
"Si est‡ de acuerdo con los tŽrminos de esta licencia, pulse \"Aceptar\" "
"para instalar el software. En el supuesto de que no estŽ de acuerdo con "
"los tŽrminos de esta licencia, pulse \"No aceptar.\"",
/* [7] */
"Licencia de Software",
/* [8] */
"Este texto no se puede guardar. El disco puede estar lleno o bloqueado, "
"o el archivo puede estar bloqueado.",
/* [9] */
"No se puede imprimir. Compruebe que ha seleccionado una impresora."
}
};
resource 'STR#' (5004, "French") {
{ /* array StringArray: 9 elements */
/* [1] */
"Fran<EFBFBD>ais",
/* [2] */
"Accepter",
/* [3] */
"Refuser",
/* [4] */
"Imprimer",
/* [5] */
"Enregistrer...",
/* [6] */
"Si vous acceptez les termes de la prŽsente licence, cliquez sur "
"\"Accepter\" afin d'installer le logiciel. Si vous n'<27>tes pas d'accord "
"avec les termes de la licence, cliquez sur \"Refuser\".",
/* [7] */
"Contrat de licence de logiciel",
/* [8] */
"Ce texte ne peut <20>tre sauvegardŽ. Le disque est peut-<2D>tre saturŽ ou "
"verrouillŽ, ou bien le fichier est peut-<2D>tre verrouillŽ.",
/* [9] */
"Impression impossible. Assurez-vous dÕavoir sŽlectionnŽ une imprimante."
}
};
resource 'STR#' (5005, "Italian") {
{ /* array StringArray: 9 elements */
/* [1] */
"Italiano",
/* [2] */
"Accetto",
/* [3] */
"Rifiuto",
/* [4] */
"Stampa",
/* [5] */
"Registra...",
/* [6] */
"Se accetti le condizioni di questa licenza, fai clic su \"Accetto\" per "
"installare il software. Altrimenti fai clic su \"Rifiuto\".",
/* [7] */
"Licenza Software",
/* [8] */
"Non posso registrare il testo. Il disco potrebbe essere pieno o protetto "
"oppure il documento potrebbe essere protetto.",
/* [9] */
"Non posso stampare. Assicurati di aver selezionato una stampante."
}
};
resource 'STR#' (5006, "Japanese") {
{ /* array StringArray: 9 elements */
/* [1] */
"Japanese",
/* [2] */
"“¯ˆÓ‚µ‚Ü‚·",
/* [3] */
"“¯ˆÓ‚µ‚Ü‚¹‚ñ",
/* [4] */
"ˆó<EFBFBD>ü·é",
/* [5] */
"•Û‘¶...",
/* [6] */
"{ƒ\\ƒtƒgƒEƒGƒAŽg—pøŒ_ñÌ<E2809A>ðŒ<C3B0>É“¯ˆÓ³"
"êé<EFBFBD>ê<EFBFBD>ÉÍ<EFBFBD>Aƒ\\ƒtƒgƒEƒGƒAðƒCƒ“ƒXƒg<C692>[ƒ‹"
"·é½ßÉ<EFBFBD>u“¯ˆÓµÜ·<EFBFBD>vð‰ŸµÄ­¾³¢"
"<EFBFBD>B<EFBFBD>@“¯ˆÓ³êÈ¢<E2809A>ê<EFBFBD>ÉÍ<E2809A>A<EFBFBD>u“¯ˆÓµÜ¹ñ"
"<EFBFBD>vð‰ŸµÄ­¾³¢<EFBFBD>B",
/* [7] */
"ƒ\\ƒtƒgƒEƒFƒAŽg—pøŒ_ñ",
/* [8] */
"±ÌƒeƒLƒXƒgÍ<EFBFBD>A•Ûūܹñ<EFBFBD>B±ÌƒfƒB"
"ƒXƒNÉ󫪳¢©ƒ<EFBFBD>ƒbƒN³êÄ¢é‰Â”\\<5C>«"
"ª èÜ·<EFBFBD>BܽÍ<EFBFBD>A±Ìƒtƒ@ƒCƒªƒ<C2AA>ƒbƒN"
"‚³‚ê‚Ä‚¢‚é‰Â”\\<5C>«ª èÜ·<E2809A>B",
/* [9] */
"ˆó<EFBFBD>üūܹñ<EFBFBD>BƒvƒŠƒ“ƒ^ª<E2809A>³µ­Ið³ê"
"Ģ鱯ðŠm”FµÄ­¾³¢<EFBFBD>B"
}
};
resource 'STR#' (5007, "Dutch") {
{ /* array StringArray: 9 elements */
/* [1] */
"Nederlands",
/* [2] */
"Ja",
/* [3] */
"Nee",
/* [4] */
"Print",
/* [5] */
"Bewaar...",
/* [6] */
"Indien u akkoord gaat met de voorwaarden van deze licentie, kunt u op 'Ja' "
"klikken om de programmatuur te installeren. Indien u niet akkoord gaat, "
"klikt u op 'Nee'.",
/* [7] */
"Softwarelicentie",
/* [8] */
"De tekst kan niet worden bewaard. Het kan zijn dat uw schijf vol of "
"beveiligd is of dat het bestand beveiligd is.",
/* [9] */
"Afdrukken niet mogelijk. Zorg dat er een printer is geselecteerd."
}
};
resource 'STR#' (5008, "Swedish") {
{ /* array StringArray: 9 elements */
/* [1] */
"Svensk",
/* [2] */
"GodkŠnns",
/* [3] */
"Avbšjs",
/* [4] */
"Skriv ut",
/* [5] */
"Spara...",
/* [6] */
"Om Du godkŠnner licensvillkoren klicka pŒ \"GodkŠnns\" fšr att installera "
"programprodukten. Om Du inte godkŠnner licensvillkoren, klicka pŒ \"Avbšjs\".",
/* [7] */
"Licensavtal fšr Programprodukt",
/* [8] */
"Den hŠr texten kan inte sparas eftersom antingen skivan Šr full eller skivan "
"och/eller dokumentet Šr lŒst.",
/* [9] */
"Kan inte skriva ut. Kontrollera att du har valt en skrivare. "
}
};
resource 'STR#' (5009, "Brazilian Portuguese") {
{ /* array StringArray: 9 elements */
/* [1] */
"Portugu<EFBFBD>s, Brasil",
/* [2] */
"Concordar",
/* [3] */
"Discordar",
/* [4] */
"Imprimir",
/* [5] */
"Salvar...",
/* [6] */
"Se est‡ de acordo com os termos desta licen<65>a, pressione \"Concordar\" para "
"instalar o software. Se no est‡ de acordo, pressione \"Discordar\".",
/* [7] */
"Licen<EFBFBD>a de Uso de Software",
/* [8] */
"Este texto no pode ser salvo. O disco pode estar cheio ou\nbloqueado, ou o "
"arquivo pode estar bloqueado.",
/* [9] */
"No Ž possvel imprimir. Comprove que voc<6F> selecionou uma impressora."
}
};
resource 'STR#' (5010, "Simplified Chinese") {
{ /* array StringArray: 9 elements */
/* [1] */
"Simplified Chinese",
/* [2] */
"ͬÒâ",
/* [3] */
"²»Í¬Òâ",
/* [4] */
"´òÓ¡",
/* [5] */
"´æ´¢¡­",
/* [6] */
"Èç¹ûÄúͬÒâ±¾Ðí¿ÉЭÒéµÄÌõ¿î£¬Çë°´¡°Í¬Ò⡱"
"À´°²×°´ËÈí¼þ¡£Èç¹ûÄú²»Í¬Ò⣬Çë°´¡°²»Í¬Òâ"
"¡±¡£",
/* [7] */
"Èí¼þÐí¿ÉЭÒé",
/* [8] */
"²»ÄÜ´æ´¢Õâ¸öÎļþ¡£´ÅÅÌ¿ÉÄܱ»Ëø¶¨»òÒÑÂú£¬"
"Ò²ÐíÊÇÎļþ±»Ëø¶¨ÁË¡£",
/* [9] */
"ÎÞ·¨´òÓ¡¡£ÇëÈ·¶¨ÄúÒÑÑ¡ÔñÁËһ̨´òÓ¡»ú¡£"
}
};
resource 'STR#' (5011, "Traditional Chinese") {
{ /* array StringArray: 9 elements */
/* [1] */
"Traditional Chinese",
/* [2] */
"¦P·N",
/* [3] */
"¤£¦P·N",
/* [4] */
"¦C¦L",
/* [5] */
"Àx¦s¡K",
/* [6] */
"¦pªG±z¦P·N¥»³\\¥iÃҸ̪º±ø´Ú¡A½Ð«ö¡§¦P·N¡¨"
"¥H¦w¸Ë³nÅé¡C¦pªG¤£¦P·N¡A½Ð«ö¡§¤£¦P·N¡¨¡C",
/* [7] */
"³nÅé³\\¥i¨óij",
/* [8] */
"¥»¤å¦rµLªkÀx¦s¡C³o­ÓºÏºÐ¥i¯à¤wº¡©Î¬OÂê©w"
"¡A©ÎÀɮפw¸gÂê©w¡C",
/* [9] */
"µLªk¦C¦L¡C½Ð½T©w±z¤w¸g¿ï¾Ü¤F¦Lªí¾÷¡C"
}
};
resource 'STR#' (5012, "Danish") {
{ /* array StringArray: 9 elements */
/* [1] */
"Dansk",
/* [2] */
"Enig",
/* [3] */
"Uenig",
/* [4] */
"Udskriv",
/* [5] */
"Arkiver...",
/* [6] */
"Hvis du accepterer betingelserne i licensaftalen, skal du klikke pŒ ÒEnigÓ "
"for at installere softwaren. Klik pŒ ÒUenigÓ for at annullere installeringen.",
/* [7] */
"Licensaftale for software",
/* [8] */
"Teksten kan ikke arkiveres. Disken er evt. fuld eller lŒst, eller ogsŒ er "
"arkivet lŒst.",
/* [9] */
"Kan ikke udskrive. S¿rg for, at der er valgt en printer."
}
};
resource 'STR#' (5013, "Finnish") {
{ /* array StringArray: 9 elements */
/* [1] */
"Suomi",
/* [2] */
"HyvŠksyn",
/* [3] */
"En hyvŠksy",
/* [4] */
"Tulosta",
/* [5] */
"TallennaÉ",
/* [6] */
"HyvŠksy lisenssisopimuksen ehdot osoittamalla ÕHyvŠksyÕ. Jos et hyvŠksy "
"sopimuksen ehtoja, osoita ÕEn hyvŠksyÕ.",
/* [7] */
"Lisenssisopimus",
/* [8] */
"TekstiŠ ei voida tallentaa. Levy voi olla tŠynnŠ tai lukittu.",
/* [9] */
"TekstiŠ ei voida tulostaa. Varmista, ettŠ kirjoitin on valittu."
}
};
resource 'STR#' (5014, "French Canadian") {
{ /* array StringArray: 9 elements */
/* [1] */
"Fran<EFBFBD>ais canadien",
/* [2] */
"Accepter",
/* [3] */
"Refuser",
/* [4] */
"Imprimer",
/* [5] */
"Enregistrer...",
/* [6] */
"Si vous acceptez les termes de la prŽsente licence, cliquez sur \"Accepter\" "
"afin d'installer le logiciel. Si vous n'<27>tes pas d'accord avec les termes de "
"la licence, cliquez sur \"Refuser\".",
/* [7] */
"Contrat de licence de logiciel",
/* [8] */
"Ce texte ne peut <20>tre sauvegardŽ. Le disque est peut-<2D>tre saturŽ ou verrouillŽ, "
"ou bien le fichier est peut-<2D>tre verrouillŽ.",
/* [9] */
"Impression impossible. Assurez-vous dÕavoir sŽlectionnŽ une imprimante."
}
};
resource 'STR#' (5015, "Korean") {
{ /* array StringArray: 9 elements */
/* [1] */
"Korean",
/* [2] */
"µ¿ÀÇ",
/* [3] */
"µ¿ÀÇ ¾ÈÇÔ",
/* [4] */
"ÇÁ¸°Æ®",
/* [5] */
"ÀúÀå...",
/* [6] */
"»ç¿ë °è¾à¼­ÀÇ ³»¿ë¿¡ µ¿ÀÇÇϸé, \"µ¿ÀÇ\" ´Ü"
"Ã߸¦ ´­·¯ ¼ÒÇÁÆ®¿þ¾î¸¦ ¼³Ä¡ÇϽʽÿÀ. µ¿À"
"ÇÇÏÁö ¾Ê´Â´Ù¸é, \"µ¿ÀÇ ¾ÈÇÔ\" ´ÜÃ߸¦ ´©¸£½"
"ʽÿÀ.",
/* [7] */
"»ç¿ë °è¾à µ¿ÀǼ­",
/* [8] */
"ÀÌ ÅØ½ºÆ®¸¦ ÀúÀåÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ µð½ºÅ"
"©´Â ²Ë á°Å³ª Àá°Ü ÀÖ½À´Ï´Ù. ¶Ç´Â ÆÄÀÏÀÌ"
" Àá°Ü ÀÖÀ» ¼öµµ ÀÖ½À´Ï´Ù.",
/* [9] */
"ÇÁ¸°Æ®ÇÒ ¼ö ¾ø½À´Ï´Ù. ÇÁ¸°Å͸¦ ¼±ÅÃÇß´ÂÁ"
"ö È®ÀÎÇϽʽÿÀ."
}
};
resource 'STR#' (5016, "Norwegian") {
{ /* array StringArray: 9 elements */
/* [1] */
"Norsk",
/* [2] */
"Enig",
/* [3] */
"Ikke enig",
/* [4] */
"Skriv ut",
/* [5] */
"Arkiver...",
/* [6] */
"Hvis De er enig i bestemmelsene i denne lisensavtalen, klikker De pŒ "
"\"Enig\"-knappen for Œ installere programvaren. Hvis De ikke er enig, "
"klikker De pŒ \"Ikke enig\".",
/* [7] */
"Programvarelisensavtale",
/* [8] */
"Denne teksten kan ikke arkiveres. Disken kan v¾re full eller lŒst, "
"eller filen kan v¾re lŒst. ",
/* [9] */
"Kan ikke skrive ut. Forsikre deg om at du har valgt en skriver. "
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

407
packaging/fwbuilder.nsi.in Executable file
View File

@ -0,0 +1,407 @@
; fwbuilder.nsi
;
;
!verbose 1
;--------------------------------
;Variables
Var MUI_TEMP
Var STARTMENU_FOLDER
; GENERATION is used to build the path in the registry, it should be coordinated
; with the path defined in FWBSettings class
;
!define GENERATION "@GENERATION@"
!define GENERATION_SHORT "@GENERATION_SHORT@"
!define VERSION "@VERSION@"
!define APPNAME "FirewallBuilder${GENERATION}"
;------------------------------------------------------------------------------
; GetWindowsVersion
;
; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
; Returns on top of stack
;
; Windows Version (95, 98, ME, NT x.x, 2000)
; or
; '' (Unknown Windows Version)
;
; Usage:
; Call GetWindowsVersion
; Pop $0
; ; at this point $0 is "NT 4.0" or whatnot
Function GetWindowsVersion
Push $0
Push $9
ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
StrCmp $0 "" 0 lbl_winnt
; we are not NT.
ReadRegStr $0 HKLM SOFTWARE\Microsoft\Windows\CurrentVersion VersionNumber
StrCpy $9 $0 1
StrCmp $9 '4' 0 lbl_error
StrCpy $9 $0 3
StrCmp $9 '4.0' lbl_win32_95
StrCmp $9 '4.9' lbl_win32_ME lbl_win32_98
lbl_win32_95:
StrCpy $0 '95'
Goto lbl_done
lbl_win32_98:
StrCpy $0 '98'
Goto lbl_done
lbl_win32_ME:
StrCpy $0 'ME'
Goto lbl_done
lbl_winnt:
StrCpy $9 $0 1
StrCmp $9 '3' lbl_winnt_x
StrCmp $9 '4' lbl_winnt_x
StrCmp $9 '5' lbl_winnt_5
StrCmp $9 '6' lbl_winnt_6 lbl_error
lbl_winnt_x:
StrCpy $0 "NT $0" 6
Goto lbl_done
lbl_winnt_5:
Strcpy $0 '2000'
Goto lbl_done
lbl_winnt_6:
Strcpy $0 'Vista'
Goto lbl_done
lbl_error:
Strcpy $0 ''
lbl_done:
Pop $9
Exch $0
FunctionEnd
Function .onInit
Call GetWindowsVersion
Pop $0
StrCmp $0 "NT 4.0" lbl_done check_2000
check_2000:
StrCmp $0 "2000" lbl_done check_vista
check_vista:
StrCmp $0 "Vista" lbl_done lbl_error
lbl_error:
MessageBox MB_OK "Firewall Builder supports only Windows 2000, Windows XP and Vista platform."
Abort
lbl_done:
FunctionEnd
Function un.UninstallSurveyPageText
IfFileExists $PROFILE\fwb4*license* +4 0
IfFileExists $PROFILE\Documents\fwb4*license* +3 0
MessageBox MB_YESNO "Help us improve Firewall Builder! If you are \
uninstalling because you don't plan to use the software please fill out \
a short survey to tell us why you are leaving and what we can do better.\
$\n\
$\n\
Click Yes to open the survey in your web browser, click No to exit the \
uninstaller." IDNO +2
ExecShell open "http://www.fwbuilder.org/uninstall_survey.html"
; MessageBox MB_ICONSTOP "Continuing uninstaller"
FunctionEnd
;****************************************************************************
;Include Modern UI
!include "MUI2.nsh"
;****************************************************************************
setCompressor lzma
Name "Firewall Builder ${GENERATION}"
Caption "Firewall Builder installation"
OutFile "fwbuilder-${VERSION}.exe"
; Default installation folder
InstallDir "C:\FWBuilder${GENERATION_SHORT}"
;****************************************************************************
; We need to keep installation data and program settings in
; registry folders with different names. QSettings always looks into
; Current User registry first, so if the folders have the same names,
; then we store evaluation key in Current User, while it is better
; to put it in the Local Machine branch.
;
; So, installation data goes to HKLM Software\NetCitadel\FirewallBuilder\2.1
; and settings to HKCU Software\NetCitadel\FirewallBuilder2_1
;
; fwbuilder-lm determines folder path for the license file by
; reading key Install_Dir under HKLM Software\NetCitadel\FirewallBuilder\2.1
;
;****************************************************************************
;
; Get installation folder from registry if available
InstallDirRegKey HKLM Software\NetCitadel\${APPNAME} "Install_Dir"
;****************************************************************************
;Interface Settings
!define MUI_ABORTWARNING
;Start Menu Folder Page Configuration
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\NetCitadel\${APPNAME}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
LicenseText "GNU GENERAL PUBLIC LICENSE"
LicenseData "doc\COPYING"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP packaging\fwbuilder-160x60.bmp
!define MUI_WELCOMEFINISHPAGE_BITMAP packaging\fwbuilder-164x314.bmp
;****************************************************************************
; The following macros add PageEx statements
!insertmacro MUI_PAGE_LICENSE "doc\COPYING"
; !insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
!insertmacro MUI_PAGE_INSTFILES
; Uninstaller starts with a custom page that asks the user to fill survey
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
UninstPage custom un.UninstallSurveyPageText
; Set language
!insertmacro MUI_LANGUAGE "English"
;****************************************************************************
; Request elevated priviliges
RequestExecutionLevel admin
;****************************************************************************
; The stuff to install
Section "FWBuilder (required)"
; Set output path to the installation directory.
; SetOutPath $INSTDIR
SetOutPath $INSTDIR\resources
File src\res\resources.xml
File src\res\templates.xml
File src\res\objects_init.xml
File src\libfwbuilder\etc\fwbuilder.dtd
File /r src\res\configlets
File /r src\res\help
File /r src\res\os
File /r src\res\platform
File /r src\libfwbuilder\migration
SetOutPath $INSTDIR\resources\locale
; we have no working translations for v4 and v5
; File src\libgui\*.qm
SetOutPath $INSTDIR
File /oname=COPYING.doc doc\COPYING
File "doc\FWBuilder-Routing-LICENSE.txt"
File "doc\README.iosacl"
File "doc\README.ipt"
File "doc\README.ipf"
File "doc\README.ipfw"
File "doc\README.pf"
File "doc\README.pix"
File "doc\README.pix_routing"
File "doc\README.routing"
File /oname=fwbuilder.ico "src\gui\fwbuilder-windows.ico"
File /a "src\gui\release\fwbuilder.exe"
File /a "src\fwbedit\release\fwbedit.exe"
File /a "src\iosacl\release\fwb_iosacl.exe"
File /a "src\ipt\release\fwb_ipt.exe"
File /a "src\ipf\release\fwb_ipf.exe"
File /a "src\ipfw\release\fwb_ipfw.exe"
File /a "src\pf\release\fwb_pf.exe"
File /a "src\pix\release\fwb_pix.exe"
File /a "src\procurve_acl\release\fwb_procurve_acl.exe"
File "c:\MinGW\bin\libiconv-2.dll"
File "c:\MinGW\bin\libpthread-2.dll"
File "c:\MinGW\bin\libgcc_s_dw2-1.dll"
File "c:\MinGW\bin\libstdc++-6.dll"
File "c:\local\bin\libxml2-2.dll"
File "c:\local\bin\libxslt-1.dll"
; Install RCS for these files
;
File "c:\local\bin\ci.exe"
File "c:\local\bin\co.exe"
File "c:\local\bin\rcs.exe"
File "c:\local\bin\rcsdiff.exe"
File "c:\local\bin\rlog.exe"
File "c:\local\bin\diff.exe"
File "c:\local\bin\rcslib.dll"
; File "c:\local\bin\netsnmp.dll"
File "c:\local\qt-everywhere-commercial-src-4.7.3\bin\QtCore4.dll"
File "c:\local\qt-everywhere-commercial-src-4.7.3\bin\QtGui4.dll"
File "c:\local\qt-everywhere-commercial-src-4.7.3\bin\QtNetwork4.dll"
File "c:\local\qt-everywhere-commercial-src-4.7.3\bin\QtTest4.dll"
File /nonfatal /oname=resources\locale\qt_de.qm "c:\local\qt-everywhere-commercial-src-4.7.3\translations\qt_de.qm"
File /nonfatal /oname=resources\locale\qt_fr.qm "c:\local\qt-everywhere-commercial-src-4.7.3\translations\qt_fr.qm"
File /nonfatal /oname=resources\locale\qt_ru.qm "c:\local\qt-everywhere-commercial-src-4.7.3\translations\qt_ru.qm"
;; Starting with 4.0.2, we now package putty tools with fwbuilder
File "c:\PuTTY\plink.exe"
File "c:\PuTTY\pscp.exe"
; Write the installation path into the registry
WriteRegStr HKLM Software\NetCitadel\${APPNAME} "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FWBuilder ${GENERATION}" "DisplayName" "Firewall Builder ${GENERATION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FWBuilder ${GENERATION}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FWBuilder ${GENERATION}" "Publisher" "NetCitadel LLC"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FWBuilder ${GENERATION}" "DisplayVersion" "${VERSION}"
; Write file associations and icons
WriteRegStr HKLM "Software\Classes\.fwb" "" "fwbfile"
WriteRegStr HKLM "Software\Classes\fwbfile\shell\open\command" "" "$INSTDIR\fwbuilder.exe -noexec %1"
WriteRegStr HKLM "Software\Classes\fwbfile\DefaultIcon" "" "$INSTDIR\fwbuilder.exe,0"
WriteRegStr HKLM "Software\Classes\.fwl" "" "fwlfile"
WriteRegStr HKLM "Software\Classes\fwlfile\shell\open\command" "" "$INSTDIR\fwbuilder.exe -noexec %1"
WriteRegStr HKLM "Software\Classes\fwlfile\DefaultIcon" "" "$INSTDIR\fwbuilder.exe,0"
; Create registry entry for putty session with ssh keepalive
WriteRegDWORD HKCU "Software\SimonTatham\PuTTY\Sessions\fwb_session_with_keepalive" "PingInterval" "0"
WriteRegDWORD HKCU "Software\SimonTatham\PuTTY\Sessions\fwb_session_with_keepalive" "PingIntervalSecs" "10"
; ========================================================================
; Configure installer to use our prepackaged plink.exe and pscp.exe but only if it was not configured before
;
; ******** THESE KEYS MUST MATCH THOSE USED BY the class FWBSettings
;
ReadRegStr $0 HKCU "Software\netcitadel.com\${APPNAME}\${GENERATION}\SSH" "SSHPath"
StrCmp $0 "" 0 +3
WriteRegStr HKCU "Software\netcitadel.com\${APPNAME}\${GENERATION}\SSH" "SSHPath" "$INSTDIR\plink.exe"
WriteRegStr HKCU "Software\netcitadel.com\${APPNAME}\${GENERATION}\SSH" "SCPPath" "$INSTDIR\pscp.exe"
; ========================================================================
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
; Setting var context to "all" makes Start menu shortcuts appear for all
; users
; SetShellVarContext all
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\FWBuilder on the Web.lnk" "http://www.fwbuilder.org/" "" "$INSTDIR\fwbuilder.ico"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\FWBuilder.lnk" "$INSTDIR\fwbuilder.exe" "" "$INSTDIR\fwbuilder.ico"
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
!insertmacro MUI_STARTMENU_WRITE_END
WriteUninstaller "uninstall.exe"
SectionEnd
;=============================================================================
; uninstall stuff
UninstallText "This will uninstall FWBuilder. Hit next to continue."
;=============================================================================
Section "Uninstall"
; remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\FWBuilder ${GENERATION}"
DeleteRegKey HKLM "Software\NetCitadel\${APPNAME}"
; delete obsolete registry folder, not used in v3.x but could be left over from older versions
DeleteRegKey HKCU "Software\NetCitadel LLC\Firewall Builder"
DeleteRegKey HKCU "Software\netcitadel.com\${APPNAME}"
DeleteRegKey /ifempty HKCU "Software\netcitadel.com\${APPNAME}"
DeleteRegKey /ifempty HKCU "Software\netcitadel.com"
DeleteRegKey HKCR ".fwb"
DeleteRegKey HKCR ".fwl"
DeleteRegKey HKCR "fwbfile"
DeleteRegKey HKCR "fwlfile"
DeleteRegKey HKCR "FirewallBuilder.AssocFile.FWB"
DeleteRegKey HKCR "FirewallBuilder.AssocFile.FWL"
; remove files
; MUST REMOVE UNINSTALLER, too
Delete $INSTDIR\uninstall.exe
Delete "$INSTDIR\*.*"
Delete "$INSTDIR\migration\*.*"
Delete "$INSTDIR\resources\os\*.*"
Delete "$INSTDIR\resources\platform\*.*"
Delete "$INSTDIR\resources\help\*.*"
Delete "$INSTDIR\resources\configlets\*.*"
Delete $INSTDIR\COPYING.doc
RMDir /r "$INSTDIR"
; !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
; Delete "$SMPROGRAMS\$MUI_TEMP\*.*"
; StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
; Remove Start menu shortcuts
!insertmacro MUI_STARTMENU_GETFOLDER Application $STARTMENU_FOLDER
; SetShellVarContext all
Delete "$SMPROGRAMS\$STARTMENU_FOLDER\FWBuilder on the Web.lnk"
Delete "$SMPROGRAMS\$STARTMENU_FOLDER\FWBuilder.lnk"
Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk"
RMDir "$SMPROGRAMS\$STARTMENU_FOLDER"
; delete only if empty because there could be registry folders
; for our other products
DeleteRegKey /ifempty HKLM "Software\NetCitadel"
SectionEnd
; eof

126
qmake2.inc Normal file
View File

@ -0,0 +1,126 @@
#-*- mode: makefile; tab-width: 4; -*-
#
######### fwbuilder/files/qmake2.inc
#
win32 {
# Keep this as a absolute full path. For some reason, when
# I leave it is up to qmake to define this variable, and it
# makes it "xcopy /i /y /s /q", I get an error "Invalid number of parameters"
# even though command line looks correct. Chances are, there is another
# xcopy somewhere on the system that gets used, but I could not find it.
# Setting this variable using full path works.
QMAKE_COPY_DIR = C:\\Windows\\System32\\xcopy /I /Y /S /Q
PREFIX = "c:/tmp/build_root"
DOCDIR = "$$PREFIX/doc/fwbuilder"
exec_prefix = "$$PREFIX"
MANDIR = "$$PREFIX/man/"
DESTDIR = ""
doc.path = $$DOCDIR
target.path = $$PREFIX/
res.path = $$PREFIX/resources
res_os.path = $$res.path/os
res_platform.path = $$res.path/platform
res_help_C.path = $$res.path/help/C
res_help_en_US.path = $$res.path/help/en_US
res_configlets.path = $$res.path/configlets
PKGLOCALEDIR = $$res.path/locale
CONFIG += qt thread rtti stl warn_on release
CONFIG -= debug
BINARY_SUBDIR = release
DEFINES += LIBXML_STATIC LIBXSLT_STATIC
DEFINES += LIBEXSLT_STATIC XMLSEC_STATIC
INCLUDEPATH += "../.."
INCLUDEPATH += c:/local/include c:/local/include/libxml2 c:/MinGW/include
LIBS += -L "c:/local/lib"
LIBS += -l xslt -l xml2 -l iconv -l pthread -l netsnmp -l ws2_32
# workaround for QT += dbus not working atm
# Standard QT binary Windows distribution does not include QtDBus library
# Checked with 4.4.1 and 4.4.3 06/12/2009
# LIBS += -lQtDBus
target.path = $$PREFIX/bin
# on windows we use antlr DLL
HAVE_ANTLR_RUNTIME = 1
HAVE_EXTERNAL_ANTLR = 0
antlr.path = $$PREFIX/lib
# Qt on windows does not have DBus framework support, turn parts of .pro files off
# HAVE_QTDBUS =
ANTLR_INCLUDEPATH = ..
ANTLR_LIBS = ../antlr/release/libantlr.a
# our parsers are linked as a library (code is in src/parsers)
FWBPARSER_LIB = ../parsers/release/libfwbparser.a
# fwtransfer library for secuwall (and possibly other os/platform)
# override the name for windows
# FWTRANSFER_LIB = ../fwtransfer/release/libfwtransfer.a
}
macx {
// PREFIX = "$$DESTDIR"
DOCDIR = "$$PREFIX/doc/"
MANDIR = "$$PREFIX/share/man"
# These do not really matter because we never run make install on Mac OS X
target.path = $$PREFIX/
res.path = $$PREFIX/resources/
res_os.path = $$res.path/os
res_platform.path = $$res.path/platform
res_help_C.path = $$res.path/help/C
res_help_en_US.path = $$res.path/help/en_US
res_configlets.path = $$res.path/configlets
icns.files = fwbuilder.icns
icns.path = $$PREFIX/
PKGLOCALEDIR = $$res.path/locale
# If I build on 10.6 without these, generated binary depends on
# /usr/lib/libxml2.2.dynlib that has compatibility version 10.0.0
# which does not work on 10.5 where its compatibility version is
# 9.0.0. Chances are, the same thing may be happening with other
# dependency libraries. Building on 10.6 with deployment target 10.5
# should solve the problem
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5
QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk
CONFIG += qt thread rtti stl warn_on debug # release
# not compiling for PPC because of problems on Snow Leopard
CONFIG += x86
# See http://trolltech.com/developer/task-tracker/index_html?method=entry&id=211852
# for why ppc architecture is commented out.
# If Trolltech does not fix it by the time of release v3.0, will have
# to figure out workaround (turn off precompiled headers ?)
# CONFIG += ppc
INCLUDEPATH += $(INSTALL_ROOT)/$$PREFIX/include/
INCLUDEPATH += /usr/include/libxml2 /usr/include
QMAKE_LIBS_QT =
QMAKE_LIBS_QT_THREAD =
# LIBS += $$LIBS_FWBUILDER
LIBS += -lxml2 -lz
LIBS += -lpthread -lssl -lcrypto
}

View File

@ -8,7 +8,7 @@ include(../../qmake.inc)
TEMPLATE = lib
SOURCES = init.cpp
SOURCES = init.cpp init2.cpp
HEADERS = ../../config.h commoninit.h

123
src/common/init2.cpp Normal file
View File

@ -0,0 +1,123 @@
#include "../../config.h"
#include <qglobal.h>
#if defined(Q_OS_MACX) || defined(Q_OS_WIN32)
# include <qsettings.h>
# include <QDir>
# include <QApplication>
# include <assert.h>
#endif
#include <QString>
#include <QtDebug>
#ifdef _WIN32
# include <direct.h>
# include <stdlib.h>
# include <io.h>
# include <windows.h>
#else
# include <unistd.h>
# include <pwd.h>
#endif
#include <string>
#include "fwbuilder/libfwbuilder-config.h"
#include "fwbuilder/Tools.h"
#include "fwbuilder/Resources.h"
#include "fwbuilder/Constants.h"
#include "commoninit.h"
extern std::string appRootDir;
extern std::string userDataDir;
extern std::string argv0;
extern std::string ee;
extern QString user_name;
using namespace std;
using namespace libfwbuilder;
void init_win()
{
/*
* Note appRootDir is the path to the directory where fwbuilder binary
* is installed (on Mac it is <wherever>/fwbuilder3.app/Contents/MacOS.
* On Windows it is c:\FWBuilder30, on Linux it is something like
* /usr/bin or /usr/local/bin and so on.
*/
#if defined(Q_OS_WIN32) || defined(Q_OS_MACX)
if (QCoreApplication::instance()==NULL)
{
int ac = 0;
char **av = { NULL };
new QApplication( ac, av );
}
QDir dir(QApplication::applicationDirPath());
appRootDir = string(dir.absolutePath().toAscii().constData());
/* On windows and mac we install API resources (DTD etc) in the
* dir right above the one where we install resources for the GUI and compilers
*/
Constants::init(appRootDir);
// if (respath == "")
// {
// respath = appRootDir + FS_SEPARATOR + Constants::getTemplateDirectory();
// QFileInfo fi(respath.c_str());
// respath = fi.canonicalFilePath().toStdString(); // to remove .. and symlinks
// librespath = fi.canonicalPath().toStdString(); // dir one level up
// }
argv0 = QCoreApplication::applicationFilePath().toStdString();
libfwbuilder::init();
/* default directory where the user may want to save files */
#if defined(Q_OS_WIN32)
userDataDir = string(getenv("USERPROFILE"))+"\\Documents";
#elif defined(Q_OS_MACX)
userDataDir = string(getenv("HOME"))+"/Documents";
#endif
#ifdef _WIN32
#define INFO_BUFFER_SIZE 32767
TCHAR infoBuf[INFO_BUFFER_SIZE];
DWORD bufCharCount = INFO_BUFFER_SIZE;
bufCharCount = INFO_BUFFER_SIZE;
if( GetUserName( infoBuf, &bufCharCount ) )
{
#ifdef UNICODE
user_name = QString::fromUtf16((ushort*)infoBuf);
#else
user_name = QString::fromLocal8Bit(infoBuf);
#endif
}
user_name = user_name.replace(' ','_');
#elif defined(Q_OS_MACX)
char *lname = getenv("LOGNAME");
if (lname!=NULL)
user_name = QString(lname);
else
{
struct passwd *pwd = getpwuid(getuid());
assert(pwd);
user_name = QString(pwd->pw_name);
}
#endif
#endif
}

View File

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>fwb</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>@ICON@</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>text/xml</string>
</array>
<key>CFBundleTypeName</key>
<string>Firewall Builder Object File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>fwl</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>@ICON@</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>text/xml</string>
</array>
<key>CFBundleTypeName</key>
<string>Firewall Builder Library File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
</array>
<key>CFBundleIconFile</key>
<string>@ICON@</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>Created by Qt/QMake</string>
<key>CFBundleSignature</key>
<string>@TYPEINFO@</string>
<key>CFBundleExecutable</key>
<string>@EXECUTABLE@</string>
<key>NOTE</key>
<string>Please, do NOT change this file -- It was generated by Qt/QMake.</string>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

View File

@ -0,0 +1 @@
IDI_ICON1 ICON DISCARDABLE "fwbuilder-windows-app.ico"

View File

@ -64,6 +64,19 @@ STATIC_LIBS += $$LIBS_FWCOMPILER
LIBS = $$STATIC_LIBS $$LIBS
win32 {
RC_FILE = fwbuilder-windows.rc
win_ico.files = fwbuilder-windows.ico
win_ico.path = $$PREFIX
INSTALLS += win_ico
}
macx {
QMAKE_INFO_PLIST = FwbuilderInfo.plist
ICON = fwbuilder-macosx.icns
SOURCES += main_mac.cpp
}
# TRANSLATIONS = fwbuilder_ru.ts fwbuilder_ja.ts fwbuilder_en.ts
# ja.path = $$PKGLOCALEDIR
# ja.files = fwbuilder_ja.qm

132
src/gui/main_mac.cpp Normal file
View File

@ -0,0 +1,132 @@
/*
Firewall Builder
Copyright (C) 2008 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
$Id: main.cpp 493 2008-08-30 05:05:56Z vadim $
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "../../config.h"
#include "global.h"
#include "VERSION.h"
#include <QDir>
#include <QString>
#include "FWWindow.h"
#include "FWBSettings.h"
using namespace std;
#if defined(Q_WS_MAC)
#include <Carbon/Carbon.h>
static OSErr checkAppleEventForMissingParams(const AppleEvent&
theAppleEvent)
{
DescType returnedType;
Size actualSize;
OSErr err;
switch (err = AEGetAttributePtr(&theAppleEvent,
keyMissedKeywordAttr,
typeWildCard,
&returnedType,
nil,
0,
&actualSize))
{
case errAEDescNotFound:
return noErr;
case noErr:
return errAEEventNotHandled;
default:
return err;
}
}
static pascal OSErr odocHandler(const AppleEvent* inEvent, AppleEvent*
/*reply*/, long /*refCon*/)
{
if (fwbdebug) qDebug("Handling 'odoc'\n");
AEDescList documentList;
OSErr err = AEGetParamDesc(inEvent, keyDirectObject, typeAEList,
&documentList);
if (err == noErr)
{
err = checkAppleEventForMissingParams(*inEvent);
if (err == noErr)
{
long documentCount;
err = AECountItems(&documentList, &documentCount);
for (long documentIndex = 1; err == noErr && documentIndex <=
documentCount; documentIndex++)
{
// What kind of document is it?
DescType returnedType;
Size actualSize;
err = AESizeOfNthItem(&documentList,
documentIndex,
&returnedType,
&actualSize);
if (err == noErr)
{
// It's just a normal document file
AEKeyword keyword;
FSRef ref;
err = AEGetNthPtr(&documentList,
documentIndex,
typeFSRef,
&keyword,
&returnedType,
(Ptr)&ref, sizeof(FSRef), &actualSize);
if (err == noErr)
{
char buf[1024];
FSRefMakePath(&ref, reinterpret_cast<UInt8*>(buf),1024);
QDir file(buf);
mw->registerAutoOpenDocFile(file.canonicalPath(),
false);
//mw->openDocFiles << file.canonicalPath();
}
}
}
}
AEDisposeDesc(&documentList);
}
if (fwbdebug) qDebug("Returning %d from handleOpenDocuments\n", err);
return err;
}
void connectOdocHandler()
{
AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments,
NewAEEventHandlerUPP(odocHandler),0,false);
}
#endif // Q_WS_MAC

View File

@ -1,2 +1 @@
libfwbuilder-config.h

View File

@ -0,0 +1,58 @@
#-*- mode: makefile; tab-width: 4; -*-
#
######### libfwbuilder/files/qmake2.inc
#
win32 {
prefix = "c:/tmp/build_root"
DOCDIR = "$$prefix/doc/"
exec_prefix = "$$prefix"
DESTDIR = ""
target.path = "$$prefix/lib"
dtd.path = "$$prefix/resources"
migration.path = "$$prefix/resources/migration"
doc.path = "$$prefix/doc/libfwbuilder"
CONFIG -= debug
CONFIG += thread rtti stl warn_on release
CONFIG += staticlib
DEFINES += LIBXML_STATIC LIBXSLT_STATIC
INCLUDEPATH += ../../../fwb-lm/include
INCLUDEPATH += c:/local/include c:/local/include/libxml2 c:/MinGW/include
LIBS += -LC:\local\lib
# LIBS += ws2_32.lib pthreadVC.lib
LIBS += pthreadVC.lib
LIBS += libxml2.lib libxslt_a.lib libz.a # zlib.lib
}
macx {
prefix = "$$prefix"
DOCDIR = "$$prefix/doc/"
exec_prefix = "$$prefix"
DESTDIR =
# these path definitions are not used since we do not run make install on Mac
# (see fwbuilder.def file where it is defined that we don't do that)
# But I need to assign these variables some value to make qmake happy.
target.path = "$$prefix/lib"
dtd.path = "$$prefix/"
migration.path = "$$prefix/migration"
doc.path = "$$prefix/doc/"
CONFIG += x86
# If I build on 10.6 without these, generated binary depends on
# /usr/lib/libxml2.2.dynlib that has compatibility version 10.0.0
# which does not work on 10.5 where its compatibility version is
# 9.0.0. Chances are, the same thing may be happening with other
# dependency libraries. Building on 10.6 with deployment target 10.5
# should solve the problem
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5
QMAKE_MAC_SDK = /Developer/SDKs/MacOSX10.5.sdk
QMAKE_LFLAGS_SONAME = -Wl,-install_name,@executable_path/../Frameworks/
}

View File

@ -1,9 +1,58 @@
#undef FWBUILDER_XML_VERSION
#define FREEXMLBUFF(x) xmlFree((void*)(x))
#ifdef _WIN32
# pragma warning(disable:4786)
#endif
# define _WIN32_WINNT 0x0501
#undef FWBUILDER_XML_VERSION
/*
* Template files directory dir
* DO NOT USE THIS CONSTANT DIRECTLY - USE Constants class instead!
*/
# define RES_DIR "resources"
/* #undef UCD_SNMP */
# define HAVE_LIBSNMP 1
# define NET_SNMP 1
/*
* stdint.h must be installed on windows to satisfy uint128.h
*/
# define HAVE_STDINT_H 1
/* xmlSaveFile */
# define HAVE_XMLSAVEFORMATFILEENC 1
/* #undef HAVE_LIBXSLT_XSLTCONFIG_H */
/* strtok_s on windows */
# define HAVE_STRTOK_S 1
/* net-snmp lib checks HAVE_STRTOK_R on windows. This function
* exists both on windows and mac
*/
# define HAVE_STRTOK_R 1
# define WORDS_LITTLEENDIAN
/*
* newer versions of UCD-SNMP use this function. This should be preferred way,
* but Mandrake 8.2 comes with ucd-snmp v.4.2.3 which does not have it.
*/
# define HAVE_SNPRINT_OBJID 1
/*
* always need this for openssl
*/
# define OPENSSL_NO_KRB5
# define SNPRINTF _snprintf
# define VSNPRINTF _vsnprintf
# define FS_SEPARATOR "\\"
#else
/*
* Template files directory dir
@ -56,16 +105,9 @@
*/
#undef HAVE_SNPRINT_OBJID
#ifndef _WIN32
# define SNPRINTF snprintf
# define VSNPRINTF vsnprintf
# define FS_SEPARATOR "/"
#else
# define SNPRINTF _snprintf
# define VSNPRINTF _vsnprintf
# define FS_SEPARATOR "\\"
#endif
#define FREEXMLBUFF(x) xmlFree((void*)(x))

View File

@ -600,3 +600,10 @@ DEPENDPATH += \
RESOURCES += MainRes.qrc
win32 {
# add "." to include path to make sure #include works when we
# compile modules in subdirectories, such as
# importAddressListWizard and other wizards. This seems to only be
# necessary on Windows
INCLUDEPATH += .
}