]> err.no Git - sope/commitdiff
work on OSX package
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 20 Aug 2005 22:40:35 +0000 (22:40 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 20 Aug 2005 22:40:35 +0000 (22:40 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1055 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

maintenance/ChangeLog
maintenance/License.rtf [new file with mode: 0644]
maintenance/Welcome.rtf [new file with mode: 0644]
maintenance/make-osxpkg.sh [new file with mode: 0755]
maintenance/package_background.tiff [new file with mode: 0644]

index 361176a669ee2094c3864ee3d4d4533fa79cc00e..ac59352c0eb3d77595567854d4ae4e96a24dcb9a 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-21  Helge Hess  <helge.hess@opengroupware.org>
+
+       * added files required to build an OSX package
+
 2005-08-17  Helge Hess  <helge.hess@opengroupware.org>
 
        * added rm-sope-on-osxlib.sh to delete all SOPE frameworks from
diff --git a/maintenance/License.rtf b/maintenance/License.rtf
new file mode 100644 (file)
index 0000000..8d5db8b
--- /dev/null
@@ -0,0 +1,492 @@
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110
+{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fnil\fcharset77 Monaco;}
+{\colortbl;\red255\green255\blue255;}
+\paperw11900\paperh16840\margl1440\margr1440\vieww10180\viewh18520\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 Copyright SKYRIX Software AG, Helge He\'a7, Marcus M\'9fller and Contributors\
+\
+
+\f1\fs18                 GNU LIBRARY GENERAL PUBLIC LICENSE\
+                      Version 2, June 1991\
+\
+ Copyright (C) 1991 Free Software Foundation, Inc.\
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\
+ Everyone is permitted to copy and distribute verbatim copies\
+ of this license document, but changing it is not allowed.\
+\
+[This is the first released version of the library GPL.  It is\
+ numbered 2 because it goes with version 2 of the ordinary GPL.]\
+\
+                           Preamble\
+\
+  The licenses for most software are designed to take away your\
+freedom to share and change it.  By contrast, the GNU General Public\
+Licenses are intended to guarantee your freedom to share and change\
+free software--to make sure the software is free for all its users.\
+\
+  This license, the Library General Public License, applies to some\
+specially designated Free Software Foundation software, and to any\
+other libraries whose authors decide to use it.  You can use it for\
+your libraries, too.\
+\
+  When we speak of free software, we are referring to freedom, not\
+price.  Our General Public Licenses are designed to make sure that you\
+have the freedom to distribute copies of free software (and charge for\
+this service if you wish), that you receive source code or can get it\
+if you want it, that you can change the software or use pieces of it\
+in new free programs; and that you know you can do these things.\
+\
+  To protect your rights, we need to make restrictions that forbid\
+anyone to deny you these rights or to ask you to surrender the rights.\
+These restrictions translate to certain responsibilities for you if\
+you distribute copies of the library, or if you modify it.\
+\
+  For example, if you distribute copies of the library, whether gratis\
+or for a fee, you must give the recipients all the rights that we gave\
+you.  You must make sure that they, too, receive or can get the source\
+code.  If you link a program with the library, you must provide\
+complete object files to the recipients so that they can relink them\
+with the library, after making changes to the library and recompiling\
+it.  And you must show them these terms so they know their rights.\
+\
+  Our method of protecting your rights has two steps: (1) copyright\
+the library, and (2) offer you this license which gives you legal\
+permission to copy, distribute and/or modify the library.\
+\
+  Also, for each distributor's protection, we want to make certain\
+that everyone understands that there is no warranty for this free\
+library.  If the library is modified by someone else and passed on, we\
+want its recipients to know that what they have is not the original\
+version, so that any problems introduced by others will not reflect on\
+the original authors' reputations.\
+\page \
+  Finally, any free program is threatened constantly by software\
+patents.  We wish to avoid the danger that companies distributing free\
+software will individually obtain patent licenses, thus in effect\
+transforming the program into proprietary software.  To prevent this,\
+we have made it clear that any patent must be licensed for everyone's\
+free use or not licensed at all.\
+\
+  Most GNU software, including some libraries, is covered by the ordinary\
+GNU General Public License, which was designed for utility programs.  This\
+license, the GNU Library General Public License, applies to certain\
+designated libraries.  This license is quite different from the ordinary\
+one; be sure to read it in full, and don't assume that anything in it is\
+the same as in the ordinary license.\
+\
+  The reason we have a separate public license for some libraries is that\
+they blur the distinction we usually make between modifying or adding to a\
+program and simply using it.  Linking a program with a library, without\
+changing the library, is in some sense simply using the library, and is\
+analogous to running a utility program or application program.  However, in\
+a textual and legal sense, the linked executable is a combined work, a\
+derivative of the original library, and the ordinary General Public License\
+treats it as such.\
+\
+  Because of this blurred distinction, using the ordinary General\
+Public License for libraries did not effectively promote software\
+sharing, because most developers did not use the libraries.  We\
+concluded that weaker conditions might promote sharing better.\
+\
+  However, unrestricted linking of non-free programs would deprive the\
+users of those programs of all benefit from the free status of the\
+libraries themselves.  This Library General Public License is intended to\
+permit developers of non-free programs to use free libraries, while\
+preserving your freedom as a user of such programs to change the free\
+libraries that are incorporated in them.  (We have not seen how to achieve\
+this as regards changes in header files, but we have achieved it as regards\
+changes in the actual functions of the Library.)  The hope is that this\
+will lead to faster development of free libraries.\
+\
+  The precise terms and conditions for copying, distribution and\
+modification follow.  Pay close attention to the difference between a\
+"work based on the library" and a "work that uses the library".  The\
+former contains code derived from the library, while the latter only\
+works together with the library.\
+\
+  Note that it is possible for a library to be covered by the ordinary\
+General Public License rather than by this special one.\
+\page \
+                 GNU LIBRARY GENERAL PUBLIC LICENSE\
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\
+\
+  0. This License Agreement applies to any software library which\
+contains a notice placed by the copyright holder or other authorized\
+party saying it may be distributed under the terms of this Library\
+General Public License (also called "this License").  Each licensee is\
+addressed as "you".\
+\
+  A "library" means a collection of software functions and/or data\
+prepared so as to be conveniently linked with application programs\
+(which use some of those functions and data) to form executables.\
+\
+  The "Library", below, refers to any such software library or work\
+which has been distributed under these terms.  A "work based on the\
+Library" means either the Library or any derivative work under\
+copyright law: that is to say, a work containing the Library or a\
+portion of it, either verbatim or with modifications and/or translated\
+straightforwardly into another language.  (Hereinafter, translation is\
+included without limitation in the term "modification".)\
+\
+  "Source code" for a work means the preferred form of the work for\
+making modifications to it.  For a library, complete source code means\
+all the source code for all modules it contains, plus any associated\
+interface definition files, plus the scripts used to control compilation\
+and installation of the library.\
+\
+  Activities other than copying, distribution and modification are not\
+covered by this License; they are outside its scope.  The act of\
+running a program using the Library is not restricted, and output from\
+such a program is covered only if its contents constitute a work based\
+on the Library (independent of the use of the Library in a tool for\
+writing it).  Whether that is true depends on what the Library does\
+and what the program that uses the Library does.\
+  \
+  1. You may copy and distribute verbatim copies of the Library's\
+complete source code as you receive it, in any medium, provided that\
+you conspicuously and appropriately publish on each copy an\
+appropriate copyright notice and disclaimer of warranty; keep intact\
+all the notices that refer to this License and to the absence of any\
+warranty; and distribute a copy of this License along with the\
+Library.\
+\
+  You may charge a fee for the physical act of transferring a copy,\
+and you may at your option offer warranty protection in exchange for a\
+fee.\
+\page \
+  2. You may modify your copy or copies of the Library or any portion\
+of it, thus forming a work based on the Library, and copy and\
+distribute such modifications or work under the terms of Section 1\
+above, provided that you also meet all of these conditions:\
+\
+    a) The modified work must itself be a software library.\
+\
+    b) You must cause the files modified to carry prominent notices\
+    stating that you changed the files and the date of any change.\
+\
+    c) You must cause the whole of the work to be licensed at no\
+    charge to all third parties under the terms of this License.\
+\
+    d) If a facility in the modified Library refers to a function or a\
+    table of data to be supplied by an application program that uses\
+    the facility, other than as an argument passed when the facility\
+    is invoked, then you must make a good faith effort to ensure that,\
+    in the event an application does not supply such function or\
+    table, the facility still operates, and performs whatever part of\
+    its purpose remains meaningful.\
+\
+    (For example, a function in a library to compute square roots has\
+    a purpose that is entirely well-defined independent of the\
+    application.  Therefore, Subsection 2d requires that any\
+    application-supplied function or table used by this function must\
+    be optional: if the application does not supply it, the square\
+    root function must still compute square roots.)\
+\
+These requirements apply to the modified work as a whole.  If\
+identifiable sections of that work are not derived from the Library,\
+and can be reasonably considered independent and separate works in\
+themselves, then this License, and its terms, do not apply to those\
+sections when you distribute them as separate works.  But when you\
+distribute the same sections as part of a whole which is a work based\
+on the Library, the distribution of the whole must be on the terms of\
+this License, whose permissions for other licensees extend to the\
+entire whole, and thus to each and every part regardless of who wrote\
+it.\
+\
+Thus, it is not the intent of this section to claim rights or contest\
+your rights to work written entirely by you; rather, the intent is to\
+exercise the right to control the distribution of derivative or\
+collective works based on the Library.\
+\
+In addition, mere aggregation of another work not based on the Library\
+with the Library (or with a work based on the Library) on a volume of\
+a storage or distribution medium does not bring the other work under\
+the scope of this License.\
+\
+  3. You may opt to apply the terms of the ordinary GNU General Public\
+License instead of this License to a given copy of the Library.  To do\
+this, you must alter all the notices that refer to this License, so\
+that they refer to the ordinary GNU General Public License, version 2,\
+instead of to this License.  (If a newer version than version 2 of the\
+ordinary GNU General Public License has appeared, then you can specify\
+that version instead if you wish.)  Do not make any other change in\
+these notices.\
+\page \
+  Once this change is made in a given copy, it is irreversible for\
+that copy, so the ordinary GNU General Public License applies to all\
+subsequent copies and derivative works made from that copy.\
+\
+  This option is useful when you wish to copy part of the code of\
+the Library into a program that is not a library.\
+\
+  4. You may copy and distribute the Library (or a portion or\
+derivative of it, under Section 2) in object code or executable form\
+under the terms of Sections 1 and 2 above provided that you accompany\
+it with the complete corresponding machine-readable source code, which\
+must be distributed under the terms of Sections 1 and 2 above on a\
+medium customarily used for software interchange.\
+\
+  If distribution of object code is made by offering access to copy\
+from a designated place, then offering equivalent access to copy the\
+source code from the same place satisfies the requirement to\
+distribute the source code, even though third parties are not\
+compelled to copy the source along with the object code.\
+\
+  5. A program that contains no derivative of any portion of the\
+Library, but is designed to work with the Library by being compiled or\
+linked with it, is called a "work that uses the Library".  Such a\
+work, in isolation, is not a derivative work of the Library, and\
+therefore falls outside the scope of this License.\
+\
+  However, linking a "work that uses the Library" with the Library\
+creates an executable that is a derivative of the Library (because it\
+contains portions of the Library), rather than a "work that uses the\
+library".  The executable is therefore covered by this License.\
+Section 6 states terms for distribution of such executables.\
+\
+  When a "work that uses the Library" uses material from a header file\
+that is part of the Library, the object code for the work may be a\
+derivative work of the Library even though the source code is not.\
+Whether this is true is especially significant if the work can be\
+linked without the Library, or if the work is itself a library.  The\
+threshold for this to be true is not precisely defined by law.\
+\
+  If such an object file uses only numerical parameters, data\
+structure layouts and accessors, and small macros and small inline\
+functions (ten lines or less in length), then the use of the object\
+file is unrestricted, regardless of whether it is legally a derivative\
+work.  (Executables containing this object code plus portions of the\
+Library will still fall under Section 6.)\
+\
+  Otherwise, if the work is a derivative of the Library, you may\
+distribute the object code for the work under the terms of Section 6.\
+Any executables containing that work also fall under Section 6,\
+whether or not they are linked directly with the Library itself.\
+\page \
+  6. As an exception to the Sections above, you may also compile or\
+link a "work that uses the Library" with the Library to produce a\
+work containing portions of the Library, and distribute that work\
+under terms of your choice, provided that the terms permit\
+modification of the work for the customer's own use and reverse\
+engineering for debugging such modifications.\
+\
+  You must give prominent notice with each copy of the work that the\
+Library is used in it and that the Library and its use are covered by\
+this License.  You must supply a copy of this License.  If the work\
+during execution displays copyright notices, you must include the\
+copyright notice for the Library among them, as well as a reference\
+directing the user to the copy of this License.  Also, you must do one\
+of these things:\
+\
+    a) Accompany the work with the complete corresponding\
+    machine-readable source code for the Library including whatever\
+    changes were used in the work (which must be distributed under\
+    Sections 1 and 2 above); and, if the work is an executable linked\
+    with the Library, with the complete machine-readable "work that\
+    uses the Library", as object code and/or source code, so that the\
+    user can modify the Library and then relink to produce a modified\
+    executable containing the modified Library.  (It is understood\
+    that the user who changes the contents of definitions files in the\
+    Library will not necessarily be able to recompile the application\
+    to use the modified definitions.)\
+\
+    b) Accompany the work with a written offer, valid for at\
+    least three years, to give the same user the materials\
+    specified in Subsection 6a, above, for a charge no more\
+    than the cost of performing this distribution.\
+\
+    c) If distribution of the work is made by offering access to copy\
+    from a designated place, offer equivalent access to copy the above\
+    specified materials from the same place.\
+\
+    d) Verify that the user has already received a copy of these\
+    materials or that you have already sent this user a copy.\
+\
+  For an executable, the required form of the "work that uses the\
+Library" must include any data and utility programs needed for\
+reproducing the executable from it.  However, as a special exception,\
+the source code distributed need not include anything that is normally\
+distributed (in either source or binary form) with the major\
+components (compiler, kernel, and so on) of the operating system on\
+which the executable runs, unless that component itself accompanies\
+the executable.\
+\
+  It may happen that this requirement contradicts the license\
+restrictions of other proprietary libraries that do not normally\
+accompany the operating system.  Such a contradiction means you cannot\
+use both them and the Library together in an executable that you\
+distribute.\
+\page \
+  7. You may place library facilities that are a work based on the\
+Library side-by-side in a single library together with other library\
+facilities not covered by this License, and distribute such a combined\
+library, provided that the separate distribution of the work based on\
+the Library and of the other library facilities is otherwise\
+permitted, and provided that you do these two things:\
+\
+    a) Accompany the combined library with a copy of the same work\
+    based on the Library, uncombined with any other library\
+    facilities.  This must be distributed under the terms of the\
+    Sections above.\
+\
+    b) Give prominent notice with the combined library of the fact\
+    that part of it is a work based on the Library, and explaining\
+    where to find the accompanying uncombined form of the same work.\
+\
+  8. You may not copy, modify, sublicense, link with, or distribute\
+the Library except as expressly provided under this License.  Any\
+attempt otherwise to copy, modify, sublicense, link with, or\
+distribute the Library is void, and will automatically terminate your\
+rights under this License.  However, parties who have received copies,\
+or rights, from you under this License will not have their licenses\
+terminated so long as such parties remain in full compliance.\
+\
+  9. You are not required to accept this License, since you have not\
+signed it.  However, nothing else grants you permission to modify or\
+distribute the Library or its derivative works.  These actions are\
+prohibited by law if you do not accept this License.  Therefore, by\
+modifying or distributing the Library (or any work based on the\
+Library), you indicate your acceptance of this License to do so, and\
+all its terms and conditions for copying, distributing or modifying\
+the Library or works based on it.\
+\
+  10. Each time you redistribute the Library (or any work based on the\
+Library), the recipient automatically receives a license from the\
+original licensor to copy, distribute, link with or modify the Library\
+subject to these terms and conditions.  You may not impose any further\
+restrictions on the recipients' exercise of the rights granted herein.\
+You are not responsible for enforcing compliance by third parties to\
+this License.\
+\page \
+  11. If, as a consequence of a court judgment or allegation of patent\
+infringement or for any other reason (not limited to patent issues),\
+conditions are imposed on you (whether by court order, agreement or\
+otherwise) that contradict the conditions of this License, they do not\
+excuse you from the conditions of this License.  If you cannot\
+distribute so as to satisfy simultaneously your obligations under this\
+License and any other pertinent obligations, then as a consequence you\
+may not distribute the Library at all.  For example, if a patent\
+license would not permit royalty-free redistribution of the Library by\
+all those who receive copies directly or indirectly through you, then\
+the only way you could satisfy both it and this License would be to\
+refrain entirely from distribution of the Library.\
+\
+If any portion of this section is held invalid or unenforceable under any\
+particular circumstance, the balance of the section is intended to apply,\
+and the section as a whole is intended to apply in other circumstances.\
+\
+It is not the purpose of this section to induce you to infringe any\
+patents or other property right claims or to contest validity of any\
+such claims; this section has the sole purpose of protecting the\
+integrity of the free software distribution system which is\
+implemented by public license practices.  Many people have made\
+generous contributions to the wide range of software distributed\
+through that system in reliance on consistent application of that\
+system; it is up to the author/donor to decide if he or she is willing\
+to distribute software through any other system and a licensee cannot\
+impose that choice.\
+\
+This section is intended to make thoroughly clear what is believed to\
+be a consequence of the rest of this License.\
+\
+  12. If the distribution and/or use of the Library is restricted in\
+certain countries either by patents or by copyrighted interfaces, the\
+original copyright holder who places the Library under this License may add\
+an explicit geographical distribution limitation excluding those countries,\
+so that distribution is permitted only in or among countries not thus\
+excluded.  In such case, this License incorporates the limitation as if\
+written in the body of this License.\
+\
+  13. The Free Software Foundation may publish revised and/or new\
+versions of the Library General Public License from time to time.\
+Such new versions will be similar in spirit to the present version,\
+but may differ in detail to address new problems or concerns.\
+\
+Each version is given a distinguishing version number.  If the Library\
+specifies a version number of this License which applies to it and\
+"any later version", you have the option of following the terms and\
+conditions either of that version or of any later version published by\
+the Free Software Foundation.  If the Library does not specify a\
+license version number, you may choose any version ever published by\
+the Free Software Foundation.\
+\page \
+  14. If you wish to incorporate parts of the Library into other free\
+programs whose distribution conditions are incompatible with these,\
+write to the author to ask for permission.  For software which is\
+copyrighted by the Free Software Foundation, write to the Free\
+Software Foundation; we sometimes make exceptions for this.  Our\
+decision will be guided by the two goals of preserving the free status\
+of all derivatives of our free software and of promoting the sharing\
+and reuse of software generally.\
+\
+                           NO WARRANTY\
+\
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY\
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\
+\
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\
+DAMAGES.\
+\
+                    END OF TERMS AND CONDITIONS\
+\page \
+     Appendix: How to Apply These Terms to Your New Libraries\
+\
+  If you develop a new library, and you want it to be of the greatest\
+possible use to the public, we recommend making it free software that\
+everyone can redistribute and change.  You can do so by permitting\
+redistribution under these terms (or, alternatively, under the terms of the\
+ordinary General Public License).\
+\
+  To apply these terms, attach the following notices to the library.  It is\
+safest to attach them to the start of each source file to most effectively\
+convey the exclusion of warranty; and each file should have at least the\
+"copyright" line and a pointer to where the full notice is found.\
+\
+    <one line to give the library's name and a brief idea of what it does.>\
+    Copyright (C) <year>  <name of author>\
+\
+    This library is free software; you can redistribute it and/or\
+    modify it under the terms of the GNU Library General Public\
+    License as published by the Free Software Foundation; either\
+    version 2 of the License, or (at your option) any later version.\
+\
+    This library 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\
+    Library General Public License for more details.\
+\
+    You should have received a copy of the GNU Library General Public\
+    License along with this library; if not, write to the Free\
+    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,\
+    MA 02111-1307, USA\
+\
+Also add information on how to contact you by electronic and paper mail.\
+\
+You should also get your employer (if you work as a programmer) or your\
+school, if any, to sign a "copyright disclaimer" for the library, if\
+necessary.  Here is a sample; alter the names:\
+\
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the\
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.\
+\
+  <signature of Ty Coon>, 1 April 1990\
+  Ty Coon, President of Vice\
+\
+That's all there is to it!\
+}
\ No newline at end of file
diff --git a/maintenance/Welcome.rtf b/maintenance/Welcome.rtf
new file mode 100644 (file)
index 0000000..dde8b13
--- /dev/null
@@ -0,0 +1,8 @@
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110
+{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww9000\viewh9000\viewkind0
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
+
+\f0\fs24 \cf0 Welcome to the SOPE Installation Program. You will be guided through the steps necessary to install the SOPE product.\
+}
\ No newline at end of file
diff --git a/maintenance/make-osxpkg.sh b/maintenance/make-osxpkg.sh
new file mode 100755 (executable)
index 0000000..f7d1e1d
--- /dev/null
@@ -0,0 +1,348 @@
+#!/bin/sh
+
+PKG_NAME="$1"
+
+oldpwd="$PWD"
+PKG_BUILD_DIR="$PWD/osxpkgbuild"
+PKG_DIR="$PKG_BUILD_DIR/${PKG_NAME}.pkg"
+PKG_RSRC_DIR="$PKG_BUILD_DIR/${PKG_NAME}.pkg/Contents/Resources"
+PKG_VERSION="4.5"
+ROOT_DIR="$PKG_BUILD_DIR/root"
+CHECK_XML="yes"
+PLIST_DT_ID="-//Apple Computer//DTD PLIST 1.0//EN"
+PLIST_DT_LOC="http://www.apple.com/DTDs/PropertyList-1.0.dtd"
+INSTALLER_FORMAT_KEY="0.10000000149011612"
+
+BACKGROUND_TIFF="../maintenance/package_background.tiff"
+LICENSE_FILE="../maintenance/License.rtf"
+WELCOME_FILE="../maintenance/Welcome.rtf"
+
+MKDIRS="mkdirhier"
+
+
+# ****************************** usage ********************************
+
+function usage() {
+  cat <<_ACEOF
+make-osxpkg.sh <pkgname>
+_ACEOF
+}
+
+
+# ****************************** validate cmdline args ****************
+
+function validateArgs() {
+  if test "x$PKG_NAME" = "x"; then
+    usage;
+    exit 1
+  fi
+}
+
+
+# ****************************** prepare/cleanup tmpfiles *************
+
+function prepareTmpDirs() {
+  if test -d $PKG_BUILD_DIR; then
+    echo -n "  deleting old builddir: $PKG_BUILD_DIR .."
+    rm -r $PKG_BUILD_DIR
+    echo ".. done."
+  fi
+
+  echo -n "  preparing temporary builddir .."
+  ${MKDIRS} "${PKG_BUILD_DIR}"
+  ${MKDIRS} "${PKG_DIR}"
+  ${MKDIRS} "${PKG_RSRC_DIR}"
+  ${MKDIRS} "${PKG_RSRC_DIR}/English.lproj"
+  ${MKDIRS} "${ROOT_DIR}"
+  ${MKDIRS} "${ROOT_DIR}/Library/Frameworks"
+  echo ".. done: $PKG_BUILD_DIR."
+}
+
+function cleanupTmpDirs() {
+  if test -d $PKG_BUILD_DIR; then
+    echo -n "  deleting builddir: $PKG_BUILD_DIR .."
+    rm -r $PKG_BUILD_DIR
+    echo ".. done."
+  fi
+}
+
+
+# ****************************** install ******************************
+
+function installIntoTmpDirs() {
+  echo -n "  install sources (log in ${PKG_BUILD_DIR}/install.log) .."
+  make -s FRAMEWORK_INSTALL_DIR="${ROOT_DIR}/Library/Frameworks" \
+    shared=yes frameworks=yes install \
+    >${PKG_BUILD_DIR}/install.log 2>&1
+  echo ".. done."
+}
+
+
+# ****************************** pax archive **************************
+
+function makePaxArchive() {
+  echo -n "  gen archive .."
+  cd "${ROOT_DIR}"
+  pax -w . | gzip -c >${PKG_DIR}/Contents/Archive.pax.gz
+
+  cd ${PKG_DIR}/Contents/Resources
+  ln -s ../Archive.pax.gz "${PKG_NAME}.pax.gz"
+  cd "$oldpwd"
+  echo ".. done: ${PKG_DIR}/Contents/Archive.pax.gz"
+}
+
+
+# ****************************** bom/sizes ****************************
+
+function generateBoM() {
+  echo -n "  gen BoM file .."
+  cd "${ROOT_DIR}"
+  mkbom . "${PKG_DIR}/Contents/Archive.bom"
+  
+  cd ${PKG_DIR}/Contents/Resources
+  ln -s ../Archive.bom "${PKG_NAME}.bom"
+  cd "$oldpwd"
+  echo ".. done."
+}
+
+function calcSizes() {
+  echo -n "  calculate sizes .."
+  size_uncompressed="`du -sk $ROOT_DIR | cut -f 1`"
+  size_compressed="`du -sk $PKG_DIR | cut -f 1`"
+  numfiles="`find $ROOT_DIR | wc -l`"
+  numfiles="`echo $numfiles - 1 | bc`"
+  echo ".. done (size=${size_compressed}K/${size_uncompressed}K, #$numfiles)."
+}
+
+function generateSizes() {
+  echo -n "  gen sizes file .."
+  cd "${ROOT_DIR}"
+  echo "NumFiles       $numfiles"          >${PKG_DIR}/Contents/Archive.sizes
+  echo "InstalledSize  $size_uncompressed" >>${PKG_DIR}/Contents/Archive.sizes
+  echo "CompressedSize $size_compressed"   >>${PKG_DIR}/Contents/Archive.sizes
+  
+  cd ${PKG_DIR}/Contents/Resources
+  ln -s ../Archive.sizes "${PKG_NAME}.sizes"
+  cd "$oldpwd"
+  echo ".. done."
+}
+
+
+# ****************************** info files ***************************
+
+function plistWriteString() {
+  echo "    <key>$1</key>"
+  echo "    <string>$2</string>"
+}
+function plistWriteInt() {
+  echo "    <key>$1</key>"
+  echo "    <integer>`echo $2`</integer>"
+}
+function plistWriteReal() {
+  echo "    <key>$1</key>"
+  echo "    <real>`echo $2`</real>"
+}
+function plistWriteDate() {
+  echo "    <key>$1</key>"
+  echo "    <date>$2</date>"
+}
+function plistWriteBool() {
+  echo "    <key>$1</key>"
+  echo "    <$2/>"
+}
+
+
+function genInfoPList() {
+  # http://developer.apple.com/documentation/DeveloperTools/Conceptual/
+  #   SoftwareDistribution/Concepts/sd_pkg_flags.html
+  F="${PKG_DIR}/Contents/Info.plist"
+  echo -n "  gen Info.plist: $F .."
+  
+  echo >$F  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+  echo >>$F "<!DOCTYPE plist PUBLIC \"${PLIST_DT_ID}\" \"${PLIST_DT_LOC}\">"
+  echo >>$F "<plist version=\"1.0\">"
+  echo >>$F "  <dict>"
+  
+  plistWriteString >>$F CFBundleGetInfoString "${PKG_NAME} ${PKG_VERSION}"
+  plistWriteString >>$F CFBundleIdentifier "org.opengroupware.pkg.${PKG_NAME}"
+  plistWriteString >>$F CFBundleName       "${PKG_NAME}"
+  plistWriteString >>$F CFBundleShortVersionString "${PKG_VERSION}"
+  
+  plistWriteString >>$F IFMajorVersion 4
+  plistWriteString >>$F IFMinorVersion 5
+  
+  plistWriteDate   >>$F IFPkgBuildDate "`date -u +%Y-%m-%dT%H:%M:%SZ`"
+  plistWriteString >>$F IFPkgBuildVersion                 "${PKG_VERSION}"
+  plistWriteBool   >>$F IFPkgFlagAllowBackRev             false
+  plistWriteString >>$F IFPkgFlagAuthorizationAction      AdminAuthorization
+  plistWriteString >>$F IFPkgFlagBackgroundAlignment      topright
+  plistWriteString >>$F IFPkgFlagBackgroundScaling        none
+  plistWriteString >>$F IFPkgFlagDefaultLocation          /
+  plistWriteBool   >>$F IFPkgFlagFollowLinks              true
+  plistWriteBool   >>$F IFPkgFlagInstallFat               true
+  plistWriteInt    >>$F IFPkgFlagInstalledSize            $size_uncompressed
+  plistWriteBool   >>$F IFPkgFlagIsRequired               false
+  plistWriteBool   >>$F IFPkgFlagOverwritePermissions     false
+  plistWriteBool   >>$F IFPkgFlagRelocatable              true
+  plistWriteString >>$F IFPkgFlagRestartAction            NoRestart
+  plistWriteBool   >>$F IFPkgFlagRootVolumeOnly           false
+  plistWriteBool   >>$F IFPkgFlagUpdateInstalledLanguages false
+  plistWriteBool   >>$F IFPkgFlagUseUserMask              false
+  plistWriteReal   >>$F IFPkgFormatVersion "${INSTALLER_FORMAT_KEY}"
+  plistWriteInt    >>$F IFPkgPayloadFileCount             $numfiles
+  
+  echo >>$F "  </dict>"
+  echo >>$F "</plist>"
+  if test "x$CHECK_XML" = "xyes"; then
+    xmllint --noout $F
+  fi
+  
+  echo ".. done."
+}
+
+
+function genBundleVersions() {
+  F="${PKG_RSRC_DIR}/BundleVersions.plist"
+  echo "  gen bundle versions: $F .."
+  
+  echo >$F  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+  echo >>$F "<!DOCTYPE plist PUBLIC \"${PLIST_DT_ID}\" \"${PLIST_DT_LOC}\">"
+  echo >>$F "<plist version=\"1.0\">"
+  echo >>$F "  <dict>"
+  
+  # TODO: generate framework versions (scan for .framework/../Version files)
+  frameworks=`find "${ROOT_DIR}" -type d -name "*.framework"`
+  for frameworkpath in $frameworks; do
+    frameworkvfile="`find $frameworkpath -type f -name Version | head -n 1`"
+    if test "x$frameworkvfile" != "x"; then
+      relfwpath="`echo $frameworkpath | sed sX${ROOT_DIR}/XXg`"
+      
+      echo >>$F "    <key>${relfwpath}</key>"
+      echo >>$F "    <dict>"
+      echo >>$F "      <key>BuildVersion</key>"
+      echo >>$F "      <string>1</string>" # TODO
+      echo >>$F "      <key>CFBundleShortVersionString</key>"
+      echo >>$F "      <string>${PKG_VERSION}</string>"
+      echo >>$F "      <key>ProjectName</key>"
+      echo >>$F "      <string>`basename -s .framework $relfwpath`</string>"
+      echo >>$F "      <key>SourceVersion</key>"
+      echo >>$F "      <string>${PKG_VERSION}</string>" # TODO
+      echo >>$F "    </dict>"
+    else
+      echo "    Note: no Version file in framework `basename $frameworkpath`"
+    fi
+  done
+  
+  echo >>$F "  </dict>"
+  echo >>$F "</plist>"
+  if test "x$CHECK_XML" = "xyes"; then
+    xmllint --noout $F
+  fi
+  echo "  generated: $F."
+}
+
+function genEnDescription() {
+  F="${PKG_RSRC_DIR}/English.lproj/Description.plist"
+  echo -n "  gen description plist: $F .."
+  
+  echo >$F  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+  echo >>$F "<!DOCTYPE plist PUBLIC \"${PLIST_DT_ID}\" \"${PLIST_DT_LOC}\">"
+  echo >>$F "<plist version=\"1.0\">"
+  echo >>$F "  <dict>"
+  
+  plistWriteString >>$F IFPkgDescriptionDescription "${PKG_NAME}"
+  plistWriteString >>$F IFPkgDescriptionTitle       "${PKG_NAME}"
+  plistWriteString >>$F IFPkgDescriptionVersion     "${PKG_VERSION}"
+  
+  echo >>$F "  </dict>"
+  echo >>$F "</plist>"
+  if test "x$CHECK_XML" = "xyes"; then
+    xmllint --noout $F
+  fi
+  echo ".. done."
+}
+
+function genInfoFile() {
+  F="${PKG_RSRC_DIR}/English.lproj/${PKG_NAME}.info"
+  echo -n "  gen info file: $F .."
+  
+  echo >$F  "Title                 ${PKG_NAME}"
+  echo >>$F "Version               ${PKG_VERSION}"
+  echo >>$F "Description           ${PKG_VERSION}"
+  echo >>$F "Require Reboot        NO"  # TODO: consolidate
+  echo >>$F "OverwritePermissions  NO"  # TODO: consolidate
+  echo >>$F "NeedsAuthorization    YES" # TODO: consolidate
+  echo >>$F "DefaultLocation       /"   # TODO: consolidate
+  echo >>$F "Relocatable           YES" # TODO: consolidate
+  echo >>$F "Install Fat           YES" # TODO: consolidate
+  echo >>$F "LibrarySubdirectory   Standard"
+  
+  echo ".. done."
+}
+
+
+# ****************************** resources ****************************
+
+function copyBackgroundImage() {
+  if test -f "${BACKGROUND_TIFF}"; then
+    cp "${BACKGROUND_TIFF}" "${PKG_RSRC_DIR}/background.tiff"
+  else
+    echo "ERROR: did not find background image: ${BACKGROUND_TIFF}"
+  fi
+}
+
+function copyLicenseFile() {
+  if test -f "${LICENSE_FILE}"; then
+    cp "${LICENSE_FILE}" "${PKG_RSRC_DIR}/English.lproj/License.rtf"
+  else
+    echo "ERROR: did not find file: ${LICENSE_FILE}"
+  fi
+}
+function copyWelcomeFile() {
+  if test -f "${WELCOME_FILE}"; then
+    cp "${WELCOME_FILE}" "${PKG_RSRC_DIR}/English.lproj/Welcome.rtf"
+  else
+    echo "ERROR: did not find file: ${WELCOME_FILE}"
+  fi
+}
+
+
+# ****************************** debugging ****************************
+
+function debugShowResults() {
+  echo ""
+  echo "prepared contents:"
+  find -s $PKG_BUILD_DIR \
+  | sed "sX${PKG_BUILD_DIR}/X  Xg"
+}
+
+
+# ****************************** running ******************************
+
+echo "Building MacOSX Installer.app package $PKG_NAME.pkg .."
+validateArgs;
+
+prepareTmpDirs;
+
+installIntoTmpDirs;
+
+makePaxArchive;
+generateBoM;
+
+calcSizes;
+generateSizes;
+
+genInfoPList;
+genInfoFile;
+genBundleVersions;
+genEnDescription;
+
+copyBackgroundImage;
+copyLicenseFile;
+copyWelcomeFile;
+
+
+# debugging, print results
+#debugShowResults;
+
+#cleanupTmpDirs;
diff --git a/maintenance/package_background.tiff b/maintenance/package_background.tiff
new file mode 100644 (file)
index 0000000..107bd59
Binary files /dev/null and b/maintenance/package_background.tiff differ