summaryrefslogtreecommitdiffstats
path: root/OSX-package
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /OSX-package
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'OSX-package')
-rw-r--r--OSX-package/Makefile49
-rw-r--r--OSX-package/inputs/Info.plist22
-rw-r--r--OSX-package/inputs/Resources/Description.plist10
-rw-r--r--OSX-package/inputs/Resources/English.lproj/License.txt309
-rw-r--r--OSX-package/inputs/Resources/English.lproj/ReadMe.rtf12
-rw-r--r--OSX-package/inputs/Resources/English.lproj/Welcome.rtf10
-rw-r--r--OSX-package/inputs/Resources/Scribus-135.info17
-rw-r--r--OSX-package/inputs/Resources/background.pdfbin0 -> 8543 bytes
-rw-r--r--OSX-package/inputs/Scribus.pkg-Info.plist18
-rw-r--r--OSX-package/inputs/background.sla119
-rw-r--r--OSX-package/inputs/scribus-icon2.svg246
-rw-r--r--OSX-package/linktools/MachO.py215
-rwxr-xr-xOSX-package/linktools/ingest.py72
-rwxr-xr-xOSX-package/linktools/mkappbundle.py87
-rwxr-xr-xOSX-package/linktools/mkframework.py111
-rwxr-xr-xOSX-package/linktools/osxtools.py114
16 files changed, 1411 insertions, 0 deletions
diff --git a/OSX-package/Makefile b/OSX-package/Makefile
new file mode 100644
index 0000000..f04d60e
--- /dev/null
+++ b/OSX-package/Makefile
@@ -0,0 +1,49 @@
+# currently a handpicked list of libraries Scribus depends on
+DEPLIBRARIES=zlib.pkg jpeg.pkg tiff.pkg lcms.pkg freetype.pkg cairo.pkg
+# these wil be optional packages later
+ADDITIONAL=ghostscript.mpkg antiword.pkg aspell.pkg
+# this MUST be the installed path of the Scribus.app bundle
+SCRIBUSAPP=/usr/local/Applications/Scribus135.app
+# How to name the package
+PKGNAME=Scribus-135
+
+# no need to change those:
+DISTDIR=dist
+INPUTDIR=inputs
+INFOFILE=${INPUTDIR}/Info.plist
+SCRIBUSINFOFILE=${INPUTDIR}/Scribus.pkg-Info.plist
+SCRIBUSPKG=${INPUTDIR}/ScribusPkg
+DESCFILE=${INPUTDIR}/Description.plist
+RESOURCES=${INPUTDIR}/Resources
+
+all: ${DEPLIBRARIES} Scribus.pkg
+ @echo Packaging ${PKGNAME} with ${DEPLIBRARIES}
+ @/Developer/Tools/packagemaker -build -p ${DISTDIR}/${PKGNAME}.mpkg -mi ${DISTDIR}/packages -i ${INFOFILE} -r ${RESOURCES}
+
+tmpdirs:
+ mkdir -p ${DISTDIR}/packages
+
+%.pkg: tmpdirs
+ port -f -k pkg $*
+ @cp -Rpn /opt/local/var/macports/build/*$**/work/*.pkg ${DISTDIR}/packages/
+
+cairo.pkg: fontconfig.pkg expat.pkg libiconv.pkg libpng.pkg
+ port -f -k pkg cairo +no-x11
+ @cp -Rpn /opt/local/var/macports/build/*cairo*/work/*.pkg ${DISTDIR}/packages/
+
+%.mpkg: tmpdirs
+ #port -f -k upgrade $*
+ port -f -k -v mpkg $*
+ @cp -Rpn /opt/local/var/macports/build/*$**/work/*.mpkg ${DISTDIR}/packages/
+
+Scribus.pkg: tmpdirs
+ @mkdir -p ${SCRIBUSPKG}/Applications
+ @(cd ${SCRIBUSPKG}/Applications; mv ${SCRIBUSAPP} .)
+ /Developer/Tools/packagemaker -build -p ${DISTDIR}/packages/Scribus.pkg -f ${SCRIBUSPKG} -i ${SCRIBUSINFOFILE}
+ @(cd ${SCRIBUSPKG}/Applications ; mv Scribus*.app ${SCRIBUSAPP})
+
+
+
+clean:
+ rm -rf ${DISTDIR}/packages/*
+
diff --git a/OSX-package/inputs/Info.plist b/OSX-package/inputs/Info.plist
new file mode 100644
index 0000000..3296fd8
--- /dev/null
+++ b/OSX-package/inputs/Info.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>Scribus Installer 1.4.0</string>
+ <key>CFBundleIdentifier</key>
+ <string>net.scribus.osxinstaller</string>
+ <key>CFBundleName</key>
+ <string>Scribus</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.4.0</string>
+ <key>IFMajorVersion</key>
+ <integer>0</integer>
+ <key>IFMinorVersion</key>
+ <integer>0</integer>
+ <key>IFPkgFlagBackgroundAlignment</key>
+ <string>topleft</string>
+ <key>IFPkgFlagBackgroundScaling</key>
+ <string>tofit</string>
+</dict>
+</plist>
diff --git a/OSX-package/inputs/Resources/Description.plist b/OSX-package/inputs/Resources/Description.plist
new file mode 100644
index 0000000..00929bf
--- /dev/null
+++ b/OSX-package/inputs/Resources/Description.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IFPkgDescriptionDescription</key>
+ <string>This will install Scribus and needed libraries on your computer.</string>
+ <key>IFPkgDescriptionTitle</key>
+ <string>Scribus Installer</string>
+</dict>
+</plist>
diff --git a/OSX-package/inputs/Resources/English.lproj/License.txt b/OSX-package/inputs/Resources/English.lproj/License.txt
new file mode 100644
index 0000000..3731695
--- /dev/null
+++ b/OSX-package/inputs/Resources/English.lproj/License.txt
@@ -0,0 +1,309 @@
+Scribus Copyright 2001-2006 Franz Schmid and the members of the Scribus
+ Team. The "Scribus Team" is informally defined as the following people:
+ Peter Linnell, Paul Johnson, Craig Bradney, Petr Vanek, Riku Leino,
+Craig Ringer, Andreas Vox and Jean Ghali.
+
+This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public 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.
+
+In addition, as a special exception, the listed copyright holders
+ above give permission to link the code of this program with the Trolltech
+ AS Qt3 Commercially Licensed Dynamic Link Libraries (or with modified
+versions of Trolltech AS Qt3 Commercially Licensed Dynamic Link Libraries
+that use the same license as Trolltech AS Qt3 Commercially Licensed Dynamic
+Link Libraries), and distribute linked combinations including the two. You
+must obey the GNU General Public License in all respects for all of the code
+used other than Trolltech AS Qt3 Commercially Licensed Dynamic Link Libraries.
+If you modify this file, you may extend this exception to your version of the
+file, but you are not obligated to do so. If you do not wish to do so, delete
+this exception statement from your version.
+
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, 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 software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+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 give any other recipients of the Program a copy of this License
+along with the Program.
+
+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.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+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 Program, 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 Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) 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; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, 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 executable. 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.
+
+If distribution of executable or 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 counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+ 5. 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 Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program 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.
+
+ 7. 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 Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program 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 Program.
+
+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.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program 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.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the 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 Program
+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 Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, 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
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
diff --git a/OSX-package/inputs/Resources/English.lproj/ReadMe.rtf b/OSX-package/inputs/Resources/English.lproj/ReadMe.rtf
new file mode 100644
index 0000000..6e0377e
--- /dev/null
+++ b/OSX-package/inputs/Resources/English.lproj/ReadMe.rtf
@@ -0,0 +1,12 @@
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf440
+{\fonttbl\f0\fnil\fcharset77 Fontin-Regular;\f1\fswiss\fcharset77 Helvetica;\f2\fscript\fcharset77 BrushScriptMT;
+}
+{\colortbl;\red255\green255\blue255;}
+\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\fs24 \cf0 This is a stub while I test creating installation packages for Scribus - avox\
+
+\f1 \
+
+\f2\i\fs36 Ho Ho Ho!} \ No newline at end of file
diff --git a/OSX-package/inputs/Resources/English.lproj/Welcome.rtf b/OSX-package/inputs/Resources/English.lproj/Welcome.rtf
new file mode 100644
index 0000000..ddc1bc6
--- /dev/null
+++ b/OSX-package/inputs/Resources/English.lproj/Welcome.rtf
@@ -0,0 +1,10 @@
+{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf440
+{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural
+
+\f0\b\fs24 \cf0 Welcome in the world of Scribus installers for OSX!\
+
+\f1\b0 \
+this is still very alpha...} \ No newline at end of file
diff --git a/OSX-package/inputs/Resources/Scribus-135.info b/OSX-package/inputs/Resources/Scribus-135.info
new file mode 100644
index 0000000..98424fc
--- /dev/null
+++ b/OSX-package/inputs/Resources/Scribus-135.info
@@ -0,0 +1,17 @@
+Title Scribus Installer
+Version
+Description This will install Scribus and needed libraries on your computer.
+DefaultLocation
+DeleteWarning
+
+### Package Flags
+
+NeedsAuthorization NO
+Required NO
+Relocatable NO
+RequiresReboot NO
+UseUserMask NO
+OverwritePermissions NO
+InstallFat NO
+RootVolumeOnly NO
+OnlyUpdateInstalledLanguages NO
diff --git a/OSX-package/inputs/Resources/background.pdf b/OSX-package/inputs/Resources/background.pdf
new file mode 100644
index 0000000..ab130bd
--- /dev/null
+++ b/OSX-package/inputs/Resources/background.pdf
Binary files differ
diff --git a/OSX-package/inputs/Scribus.pkg-Info.plist b/OSX-package/inputs/Scribus.pkg-Info.plist
new file mode 100644
index 0000000..33f3b44
--- /dev/null
+++ b/OSX-package/inputs/Scribus.pkg-Info.plist
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleGetInfoString</key>
+ <string>Scribus 1.4.0</string>
+ <key>CFBundleIdentifier</key>
+ <string>net.scribus.aqua</string>
+ <key>CFBundleName</key>
+ <string>Scribus</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.4.0</string>
+ <key>IFMajorVersion</key>
+ <integer>0</integer>
+ <key>IFMinorVersion</key>
+ <integer>0</integer>
+</dict>
+</plist>
diff --git a/OSX-package/inputs/background.sla b/OSX-package/inputs/background.sla
new file mode 100644
index 0000000..47eed38
--- /dev/null
+++ b/OSX-package/inputs/background.sla
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<SCRIBUSUTF8NEW Version="1.3.5svn" >
+ <DOCUMENT ANZPAGES="1" DPbla="0" GuideRad="1" SHOWLINK="0" TextLineColor="Black" rulerYoffset="0" KEYWORDS="" SnapToGrid="0" COMMENTS="" rulerXoffset="0" DISc="1" WIDTH="1" MAJGRID="10" DPIn2="Adobe RGB (1998)" DOCIDENT="" ScratchTop="20" DPIn3="Generic CMYK Profile" DPSo="0" PENLINE="Black" StartArrow="0" StrikeThruPos="1000" AUTHOR="" PAGEHEIGHT="842" AutoSaveTime="600000" VHOCHSC="100" AUTOCHECK="0" ScratchBottom="20" DOCRIGHTS="" TabFill="" VKAPIT="75" SHOWControl="0" MAGMIN="10" showBleed="1" HYCOUNT="0" BORDERLEFT="0" LANGUAGE="German" PASPECT="1" BleedRight="0" BRUSH="None" PICTSHADE="100" MINORC="#00ff00" PEN="Black" WIDTHLINE="1" SnapToGuides="0" BORDERTOP="0" BleedBottom="0" GUIDELOCK="0" ORIENTATION="0" BaseC="#c0c0c0" DOCTYPE="" PAGEWIDTH="595" DPgam="0" STIL="1" SHOWPICT="1" DOCSOURCE="" HCMS="0" TextBackGround="None" DPuse="0" PENSHADE="100" VTIEF="33" PICTSCX="1" PICTSCY="1" SHOWBASE="0" BleedTop="0" showcolborders="0" TextBackGroundShade="100" BORDERRIGHT="0" DPInCMYK="Generic CMYK Profile" DPIn="Adobe RGB (1998)" TabWidth="36" BRUSHSHADE="100" DIIm="0" TITLE="" RANDF="0" ScratchLeft="100" BASEO="1" CPICT="None" MAJORC="#00ff00" GuideC="#000080" LINESHADE="100" StrikeThruWidth="1000" BleedLeft="0" PENTEXT="Black" DOCRELATION="" PAGEC="#ffffff" MINGRID="1" DOCLANGINFO="" ALAYER="0" GRAB="4" constrain="15" MINWORDLEN="3" AUTOSPALTEN="0" GuideZ="1" ABSTSPALTEN="0" MARGC="#0000ff" SHOWFRAME="1" EmbeddedPath="0" PAGESIZE="Custom" SHOWGRID="0" TextPenShade="100" FIRSTNUM="1" DOCDATE="" DPMo="Adobe RGB (1998)" DSIZE="12" ScratchRight="100" PUBLISHER="" DOCCOVER="" MAGMAX="3200" TextLineShade="100" SHOWGUIDES="0" DCOL="1" dispX="10" BASEGRID="14.4" VTIEFSC="100" dispY="10" GROUPC="2" UNITS="0" DPSFo="0" BORDERBOTTOM="0" DOCCONTRIB="" UnderlineWidth="1000" DFONT="Bitstream Vera Sans Roman" showrulers="1" UnderlinePos="1000" BOOK="0" SHOWLAYERM="0" DOCFORMAT="" MAGSTEP="141" POLYFD="-53" TextStrokeShade="100" DGAP="10" AUTOL="20" currentProfile="PDF 1.4" EndArrow="0" AutoSave="0" SHOWMARGIN="1" DPPr="Generic CMYK Profile" PSCALE="1" StrokeText="None" BACKG="1" AUTOMATIC="1" POLYC="5" POLYF="0.3802379873562253" rulerMode="1" STILLINE="1" POLYR="0" POLYS="1" VHOCH="33" HalfRes="1" >
+ <CheckProfile autoCheck="1" maxResolution="4800" checkTransparency="1" checkRasterPDF="1" checkOrphans="1" ignoreErrors="0" checkGlyphs="1" Name="PDF 1.3" checkPictures="1" checkOverflow="1" minResolution="72" checkForGIF="1" ignoreOffLayers="0" checkResolution="1" checkAnnotations="0" />
+ <CheckProfile autoCheck="1" maxResolution="4800" checkTransparency="0" checkRasterPDF="1" checkOrphans="1" ignoreErrors="0" checkGlyphs="1" Name="PDF 1.4" checkPictures="1" checkOverflow="1" minResolution="72" checkForGIF="1" ignoreOffLayers="0" checkResolution="1" checkAnnotations="0" />
+ <CheckProfile autoCheck="1" maxResolution="2400" checkTransparency="0" checkRasterPDF="1" checkOrphans="1" ignoreErrors="0" checkGlyphs="1" Name="PDF 1.5" checkPictures="1" checkOverflow="1" minResolution="72" checkForGIF="1" ignoreOffLayers="0" checkResolution="1" checkAnnotations="0" />
+ <CheckProfile autoCheck="1" maxResolution="4800" checkTransparency="1" checkRasterPDF="1" checkOrphans="1" ignoreErrors="0" checkGlyphs="1" Name="PDF/X-3" checkPictures="1" checkOverflow="1" minResolution="144" checkForGIF="1" ignoreOffLayers="0" checkResolution="1" checkAnnotations="1" />
+ <CheckProfile autoCheck="1" maxResolution="4800" checkTransparency="1" checkRasterPDF="1" checkOrphans="1" ignoreErrors="0" checkGlyphs="1" Name="PostScript" checkPictures="1" checkOverflow="1" minResolution="72" checkForGIF="1" ignoreOffLayers="0" checkResolution="1" checkAnnotations="0" />
+ <COLOR Spot="0" Register="0" NAME="Black" CMYK="#000000ff" />
+ <COLOR Spot="0" RGB="#000000" Register="0" NAME="FromSVG#000000" />
+ <COLOR Spot="0" RGB="#00507a" Register="0" NAME="FromSVG#00507a" />
+ <COLOR Spot="0" RGB="#060000" Register="0" NAME="FromSVG#060000" />
+ <COLOR Spot="0" RGB="#2c2c2c" Register="0" NAME="FromSVG#2c2c2c" />
+ <COLOR Spot="0" RGB="#323232" Register="0" NAME="FromSVG#323232" />
+ <COLOR Spot="0" RGB="#665123" Register="0" NAME="FromSVG#665123" />
+ <COLOR Spot="0" RGB="#66b8ff" Register="0" NAME="FromSVG#66b8ff" />
+ <COLOR Spot="0" RGB="#6e6969" Register="0" NAME="FromSVG#6e6969" />
+ <COLOR Spot="0" RGB="#83560b" Register="0" NAME="FromSVG#83560b" />
+ <COLOR Spot="0" RGB="#838383" Register="0" NAME="FromSVG#838383" />
+ <COLOR Spot="0" RGB="#b9e5ff" Register="0" NAME="FromSVG#b9e5ff" />
+ <COLOR Spot="0" RGB="#daecf8" Register="0" NAME="FromSVG#daecf8" />
+ <COLOR Spot="0" RGB="#e1dedd" Register="0" NAME="FromSVG#e1dedd" />
+ <COLOR Spot="0" RGB="#f6f7f7" Register="0" NAME="FromSVG#f6f7f7" />
+ <COLOR Spot="0" RGB="#fff2bc" Register="0" NAME="FromSVG#fff2bc" />
+ <COLOR Spot="0" RGB="#fff9db" Register="0" NAME="FromSVG#fff9db" />
+ <COLOR Spot="0" RGB="#ffffff" Register="0" NAME="FromSVG#ffffff" />
+ <COLOR Spot="0" Register="0" NAME="White" CMYK="#00000000" />
+ <HYPHEN/>
+ <STYLE DROPDIST="0" ALIGN="0" LINESP="15" VOR="0" RMARGIN="0" NACH="0" DROPLIN="2" LINESPMode="0" INDENT="0" FIRST="0" NAME="Default Paragraph Style" DROP="0" />
+ <CHARSTYLE CNAME="Default Character Style" SCALEV="100" SCOLOR="None" TXTSTP="100" TXTSHX="5" TXTSHY="-5" FSHADE="100" TXTSTW="100" FCOLOR="Black" TXTULP="100" SCALEH="100" TXTULW="100" KERN="0" FONT="Bitstream Vera Sans Roman" SSHADE="100" FONTSIZE="12" FEATURES="inherit" TXTOUT="1" BASEO="0" />
+ <LAYERS SICHTBAR="1" NUMMER="0" TRANS="1" LAYERC="#000000" EDIT="1" NAME="Background" FLOW="1" LEVEL="0" DRUCKEN="1" BLEND="0" OUTL="0" />
+ <Printer colorMarks="0" firstUse="1" useICC="0" mirrorV="0" registrationMarks="841396272" PSLevel="0" useColor="0" bleedMarks="0" doOverprint="-1602504344" outputSeparations="0" cropMarks="0" markOffset="4.270762809579739e-315" filename="" printerCommand="" printer="" toFile="0" useSpotColors="0" setDevParam="0" BleedBottom="0" PDLanguage="0" BleedRight="0" doGCR="0" mirrorH="0" useAltPrintCommand="0" BleedTop="0" doClip="0" separationName="" BleedLeft="0" />
+ <PDF BTop="0" Bookmarks="0" BLeft="0" bleedMarks="0" BRight="0" displayFullscreen="0" PicRes="300" cropMarks="0" Intent="1" Articles="0" Intent2="0" RGBMode="1" RotateDeg="0" MirrorH="0" ImagePr="0" PrintP="Generic CMYK Profile" UseProfiles2="0" UseLayers="0" doMultiFile="0" Clip="0" Compress="1" docInfoMarks="0" UseLpi="0" CMethod="0" Grayscale="0" BBottom="0" PassOwner="" doOverprint="1" ImageP="Adobe RGB (1998)" MirrorV="0" UseProfiles="0" Permissions="-4" Encrypt="0" SolidP="Adobe RGB (1998)" markOffset="0" PageLayout="0" RecalcPic="0" Version="14" hideMenuBar="0" PresentMode="0" Thumbnails="0" colorMarks="0" InfoString="" Resolution="300" UseSpotColors="0" hideToolBar="0" firstUse="0" useDocBleeds="0" PassUser="" fitWindow="0" registrationMarks="0" displayThumbs="0" Quality="0" displayBookmarks="0" Binding="0" displayLayers="0" openAction="" >
+ <Fonts Name="Bitstream Vera Sans Roman" />
+ <Effekte pageEffectDuration="1" Di="0" effectType="0" Dm="0" pageViewDuration="1" M="0" />
+ <LPI Angle="0" Frequency="10" Color="" SpotFunction="0" />
+ </PDF>
+ <DocItemAttributes/>
+ <TablesOfContents/>
+ <PageSets>
+ <Set GapBelow="40" Columns="1" GapHorizontal="0" Rows="1" Name="Single Page" GapVertical="0" FirstPage="0" />
+ <Set GapBelow="40" Columns="2" GapHorizontal="0" Rows="1" Name="Double Sided" GapVertical="0" FirstPage="1" >
+ <PageNames Name="Left Page" />
+ <PageNames Name="Right Page" />
+ </Set>
+ <Set GapBelow="40" Columns="3" GapHorizontal="0" Rows="1" Name="3-Fold" GapVertical="0" FirstPage="0" >
+ <PageNames Name="Left Page" />
+ <PageNames Name="Middle" />
+ <PageNames Name="Right Page" />
+ </Set>
+ <Set GapBelow="40" Columns="4" GapHorizontal="0" Rows="1" Name="4-Fold" GapVertical="0" FirstPage="0" >
+ <PageNames Name="Left Page" />
+ <PageNames Name="Middle Left" />
+ <PageNames Name="Middle Right" />
+ <PageNames Name="Right Page" />
+ </Set>
+ </PageSets>
+ <Sections>
+ <Section Active="1" Number="0" From="0" Type="Type_1_2_3" To="0" Name="0" Start="1" Reversed="0" />
+ </Sections>
+ <MASTERPAGE Orientation="0" AGverticalAutoGap="0" AGverticalAutoRefer="0" AGhorizontalAutoRefer="0" HorizontalGuides="" PAGEHEIGHT="842" AGhorizontalAutoGap="0" BORDERBOTTOM="0" Size="Custom" VerticalGuides="" BORDERTOP="0" LEFT="0" AGSelection="9.88299e+188 7.65375e-95 1.44819e+166 1.19198e+213" AGverticalAutoCount="0" PAGEWIDTH="595" PAGEYPOS="20" NUM="0" BORDERLEFT="0" BORDERRIGHT="0" PAGEXPOS="100" NAM="Normal" AGhorizontalAutoCount="0" MNAM="" />
+ <PAGE Orientation="1" AGverticalAutoGap="0" AGverticalAutoRefer="0" AGhorizontalAutoRefer="0" HorizontalGuides="" PAGEHEIGHT="297.64" AGhorizontalAutoGap="0" BORDERBOTTOM="0" Size="A6" VerticalGuides="" BORDERTOP="0" LEFT="0" AGSelection="9.88299e+188 7.65375e-95 1.44819e+166 1.19198e+213" AGverticalAutoCount="0" PAGEWIDTH="419.53" PAGEYPOS="20" NUM="0" BORDERLEFT="0" BORDERRIGHT="0" PAGEXPOS="100" NAM="" AGhorizontalAutoCount="0" MNAM="Normal" />
+ <PAGEOBJECT POCOOR="0 0 0 0 419.53 0 419.53 0 419.53 0 419.53 0 419.53 297.64 419.53 297.64 419.53 297.64 419.53 297.64 0 297.64 0 297.64 0 297.64 0 297.64 0 0 0 0 " ANNAME="" RADRECT="0" GRTYP="2" PCOLOR="None" WIDTH="419.53" BACKITEM="-1" gXpos="0" XPOS="100" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="297.64" gWidth="0" LAYER="0" gHeight="0" BASEOF="0" isTableItem="0" TEXTFLOWMODE="0" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="" TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="0" PICART="1" YPOS="20" isGroupControl="0" NUMCO="16" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" GRENDX="209.765" GRENDY="297.64" RATIO="1" PLINEART="1" PCOLOR2="None" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="0" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="1" COCOOR="0 0 0 0 419.53 0 419.53 0 419.53 0 419.53 0 419.53 297.64 419.53 297.64 419.53 297.64 419.53 297.64 0 297.64 0 297.64 0 297.64 0 297.64 0 0 0 0 " FLIPPEDV="0" RightLine="0" TEXTFLOW="0" SHADE="100" NUMGROUP="0" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" GRSTARTX="209.765" FRTYPE="0" GRSTARTY="0" NUMPO="16" >
+ <CSTOP RAMP="0" TRANS="1" SHADE="100" NAME="Black" />
+ <CSTOP RAMP="0.0119047619047619" TRANS="1" SHADE="100" NAME="FromSVG#00507a" />
+ <CSTOP RAMP="0.2083333333333333" TRANS="1" SHADE="100" NAME="FromSVG#66b8ff" />
+ <CSTOP RAMP="0.5982142857142857" TRANS="1" SHADE="100" NAME="White" />
+ <CSTOP RAMP="1" TRANS="1" SHADE="100" NAME="White" />
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="0 0 0 0 109.333 0 109.333 0 109.333 0 109.333 0 109.333 106.667 109.333 106.667 109.333 106.667 109.333 106.667 0 106.667 0 106.667 0 106.667 0 106.667 0 0 0 0 " ANNAME="" RADRECT="0" GRTYP="0" PCOLOR="None" WIDTH="109.3333333333333" BACKITEM="-1" gXpos="0" XPOS="108" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="106.6666666666667" gWidth="109.3333333333333" LAYER="0" groupsLastItem="8" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="1" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="0" PICART="1" YPOS="197.3333333333333" isGroupControl="1" NUMCO="16" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" RATIO="1" PLINEART="1" PCOLOR2="None" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="0" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.01" COCOOR="0 0 0 0 109.333 0 109.333 0 109.333 0 109.333 0 109.333 106.667 109.333 106.667 109.333 106.667 109.333 106.667 0 106.667 0 106.667 0 106.667 0 106.667 0 0 0 0 " FLIPPEDV="0" RightLine="0" TEXTFLOW="1" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" FRTYPE="0" NUMPO="16" >
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="100.549 51.7038 100.549 23.1486 50.2747 2.22045e-15 78.0406 7.10543e-15 50.2747 2.22045e-15 22.5087 0 0 51.7038 3.55271e-15 23.1486 0 51.7038 6.86644e-06 80.2589 50.2747 103.407 22.5087 103.407 50.2747 103.407 78.0406 103.407 100.549 51.7037 100.549 80.2589 100.549 51.7037 100.549 51.7037 50.2747 51.7038 50.2747 51.7038 50.2747 51.7038 50.2747 51.7038 100.549 51.7038 100.549 51.7038 " ANNAME="" RADRECT="0" GRTYP="6" PCOLOR="None" WIDTH="100.5493327868683" BACKITEM="-1" gXpos="1.054863210219722" XPOS="109.0548632102197" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="103.4074991808161" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="0" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="2.1986627306527" PICART="1" YPOS="199.531996063986" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" GRENDX="48.94125697213172" GRENDY="99.43958620266599" RATIO="1" PLINEART="1" PCOLOR2="FromSVG#000000" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="2.115368789809522" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="0" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" GRSTARTX="8.73820817743221" FRTYPE="3" GRSTARTY="5.583647914325453" NUMPO="24" >
+ <CSTOP RAMP="0" TRANS="1" SHADE="100" NAME="FromSVG#66b8ff" />
+ <CSTOP RAMP="1" TRANS="1" SHADE="100" NAME="FromSVG#00507a" />
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="97.9636 50.0943 97.9636 22.428 48.9818 2.22045e-15 76.0337 4.44089e-15 48.9818 2.22045e-15 21.9299 0 0 50.0943 2.22045e-15 22.428 0 50.0943 6.68986e-06 77.7607 48.9818 100.189 21.9299 100.189 48.9818 100.189 76.0337 100.189 97.9636 50.0943 97.9636 77.7607 97.9636 50.0943 97.9636 50.0943 48.9818 50.0943 48.9818 50.0943 48.9818 50.0943 48.9818 50.0943 97.9636 50.0943 97.9636 50.0943 " ANNAME="" RADRECT="0" GRTYP="6" PCOLOR="None" WIDTH="97.9635814428036" BACKITEM="-1" gXpos="2.604759563822753" XPOS="110.6047595638228" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="100.1886729622588" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="0" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="3.118054395945023" PICART="1" YPOS="200.4513877292784" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" GRENDX="47.58020415920879" GRENDY="96.38951744575422" RATIO="1" PLINEART="1" PCOLOR2="None" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="2.055181006788655" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="0" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" GRSTARTX="8.615961694361228" FRTYPE="3" GRSTARTY="5.364596518332782" NUMPO="24" >
+ <CSTOP RAMP="0" TRANS="1" SHADE="100" NAME="FromSVG#66b8ff" />
+ <CSTOP RAMP="1" TRANS="1" SHADE="100" NAME="FromSVG#00507a" />
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="26.9996 23.1146 30.635 19.7624 21.9 7.16372 28.3518 12.621 21.9 7.16372 15.4481 1.70648 3.63541 3.35218 7.27081 0 3.63541 3.35218 0 6.70435 8.73498 19.303 2.28315 13.8458 8.73498 19.303 15.1868 24.7602 26.9995 23.1146 23.3641 26.4667 26.9995 23.1146 26.9995 23.1146 15.3175 13.2334 15.3175 13.2334 15.3175 13.2334 15.3175 13.2334 26.9996 23.1146 26.9996 23.1146 " ANNAME="" RADRECT="0" GRTYP="0" PCOLOR="FromSVG#060000" WIDTH="30.63498544760542" BACKITEM="-1" gXpos="78.64247942511881" XPOS="186.6424794251188" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="26.4667257443615" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="1" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="0.05616725236751563" PICART="1" YPOS="197.3895005857009" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" RATIO="1" PLINEART="1" PCOLOR2="FromSVG#000000" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.1120357566387365" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="1" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" FRTYPE="3" NUMPO="24" >
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="40.5379 89.477 40.5379 89.477 37.4674 45.5973 26.8204 67.6504 37.4674 45.5973 45.9293 27.8699 41.673 0 48.5555 11.548 41.673 0 29.4499 1.53179 13.5373 13.1749 18.8093 7.81199 13.5373 13.1749 5.55147 20.9989 0 34.9353 1.73029 29.2014 0 34.9353 2.30706 63.2092 40.5379 89.477 40.7301 90.0702 " ANNAME="" RADRECT="0" GRTYP="6" PCOLOR="None" WIDTH="48.5554986758374" BACKITEM="-1" gXpos="4.42510312998165" XPOS="112.4251031299817" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="90.07017878634051" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="0" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="3.508969802529407" PICART="1" YPOS="200.8423031358627" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0.607143" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" GRENDX="43.85757533893796" GRENDY="82.6626675502642" RATIO="1" PLINEART="1" PCOLOR2="FromSVG#f6f7f7" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.1559752700702183" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="0" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0.25" REVERS="0" GRSTARTX="19.19209997343707" FRTYPE="3" GRSTARTY="6.00016469253974" NUMPO="20" >
+ <CSTOP RAMP="0" TRANS="0.419643" SHADE="100" NAME="FromSVG#b9e5ff" />
+ <CSTOP RAMP="1" TRANS="1" SHADE="100" NAME="FromSVG#ffffff" />
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="1.2463 88.6271 0.881998 88.2849 41.5381 57.3127 19.1759 61.0155 41.5381 57.3127 41.6068 27.9179 55.9014 15.2645 55.0505 17.1049 55.9014 15.2645 54.1046 5.49919 44.0676 1.03403 48.8291 1.81093 44.0676 1.03403 35.9973 0 36.5204 4.60935 37.512 3.64014 36.5204 4.60935 31.0594 17.0076 18.0083 37.6395 19.6226 34.5099 18.0083 37.6395 13.4662 43.9671 0 88.5651 3.84736 75.1967 0 88.5651 0 88.5651 1.2463 88.6271 1.2463 88.6271 " ANNAME="" RADRECT="0" GRTYP="6" PCOLOR="None" WIDTH="55.90142096476593" BACKITEM="-1" gXpos="47.22628937466737" XPOS="155.2262893746674" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="88.62707019524797" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="0" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="5.440828530701225" PICART="1" YPOS="202.7741618640346" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" GRENDX="33.44760125456146" GRENDY="39.25062211292409" RATIO="1" PLINEART="1" PCOLOR2="FromSVG#323232" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.8987186537133928" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="0" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" GRSTARTX="22.28803174802083" FRTYPE="3" GRSTARTY="34.14367039251563" NUMPO="28" >
+ <CSTOP RAMP="0" TRANS="1" SHADE="100" NAME="FromSVG#fff2bc" />
+ <CSTOP RAMP="1" TRANS="1" SHADE="100" NAME="FromSVG#83560b" />
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="3.82542 4.6178 4.95317 2.72998 4.71845 0.426803 5.35299 0.853606 4.71845 0.426803 4.08391 0 1.52755 3.07221 2.65529 1.18439 1.52755 3.07221 0.399809 4.96003 0.63455 7.26317 0 6.83639 0.63455 7.26317 1.2691 7.68996 3.82546 4.61773 2.69772 6.50555 3.82546 4.61773 3.82546 4.61773 2.67648 3.845 2.67648 3.845 2.67648 3.845 2.67648 3.845 3.82542 4.6178 3.82542 4.6178 " ANNAME="" RADRECT="0" GRTYP="0" PCOLOR="FromSVG#665123" WIDTH="5.352988023643846" BACKITEM="-1" gXpos="63.64931438712227" XPOS="171.6493143871223" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="7.689959375952149" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="1" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="44.37366521214929" PICART="1" YPOS="241.7069985454826" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" RATIO="1" PLINEART="1" PCOLOR2="None" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.3954725334214083" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="1" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" FRTYPE="3" NUMPO="24" >
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="16.7192 0.581669 16.7192 0.581669 16.361 0.31115 16.361 0.31115 16.361 0.31115 15.9489 0 0 42.9938 2.13215 36.4614 0 42.9938 2.11892 36.1058 16.7192 0.581669 14.5867 3.45536 " ANNAME="" RADRECT="0" GRTYP="0" PCOLOR="FromSVG#665123" WIDTH="16.71922764263945" BACKITEM="-1" gXpos="47.9503315774451" XPOS="155.9503315774451" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="42.99375381334256" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="1" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="50.8475592507813" PICART="1" YPOS="248.1808925841146" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" RATIO="1" PLINEART="1" PCOLOR2="FromSVG#665123" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.2773664896879783" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="1" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" FRTYPE="3" NUMPO="12" >
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ <PAGEOBJECT POCOOR="0 50.341 4.8509 46.5069 11.7917 42.4356 6.98887 43.3865 11.7917 42.4356 10.962 30.4471 27.5775 2.4339 20.1272 15.9705 27.5775 2.4339 27.5775 2.4339 26.2359 0 26.2359 0 26.2359 0 23.154 4.69262 0 50.341 4.83881 38.4101 " ANNAME="" RADRECT="0" GRTYP="6" PCOLOR="None" WIDTH="27.57748748991603" BACKITEM="-1" gXpos="72.42051071438388" XPOS="180.4205107143839" EXTRA="0" PFILE="" isInline="0" TopLine="0" NEXTITEM="-1" PRINTABLE="1" HEIGHT="50.34097787674683" gWidth="109.3333333333333" LAYER="0" gHeight="106.6666666666667" BASEOF="0" isTableItem="0" TEXTFLOWMODE="0" TransBlendS="0" textPathFlipped="0" BottomLine="0" PLINEEND="0" BEXTRA="0" GROUPS="1 " TransBlend="0" NAMEDLST="" AUTOTEXT="0" startArrowIndex="0" gYpos="13.37722232896957" PICART="1" YPOS="210.7105556623029" isGroupControl="0" NUMCO="0" OnMasterPage="" LOCALSCX="1" LOCK="0" LOCALSCY="1" PRFILE="" TransValueS="0" doOverprint="0" IRENDER="1" ImageRes="1" fillRule="1" TEXTRA="0" ROT="0" textPathType="0" GRENDX="32.39496053251811" GRENDY="33.10719259491897" RATIO="1" PLINEART="1" PCOLOR2="None" COLUMNS="1" PTYPE="6" OwnPage="0" ANNOTATION="0" PLTSHOW="0" DASHS="" BOOKMARK="0" REXTRA="0" LOCKR="0" DASHOFF="0" LOCALX="0" CLIPEDIT="1" ImageClip="" LOCALY="0" EPROF="" FLIPPEDH="0" SHADE2="100" LeftLine="0" PLINEJOIN="0" NUMDASH="0" PFILE2="" PFILE3="" PWIDTH="0.1594866884907184" COCOOR="" FLIPPEDV="0" RightLine="0" TEXTFLOW="0" SHADE="100" NUMGROUP="1" endArrowIndex="0" COLGAP="10" SCALETYPE="1" EMBEDDED="1" TEXTFLOW2="0" TEXTFLOW3="0" TransValue="0" REVERS="0" GRSTARTX="12.06670137326354" FRTYPE="3" GRSTARTY="15.26734083351744" NUMPO="16" >
+ <CSTOP RAMP="0" TRANS="0.732143" SHADE="100" NAME="FromSVG#fff9db" />
+ <CSTOP RAMP="1" TRANS="1" SHADE="100" NAME="FromSVG#2c2c2c" />
+ <para/>
+ <PageItemAttributes/>
+ </PAGEOBJECT>
+ </DOCUMENT>
+</SCRIBUSUTF8NEW>
diff --git a/OSX-package/inputs/scribus-icon2.svg b/OSX-package/inputs/scribus-icon2.svg
new file mode 100644
index 0000000..1c4edec
--- /dev/null
+++ b/OSX-package/inputs/scribus-icon2.svg
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.38.1"
+ width="210mm"
+ height="297mm"
+ sodipodi:docbase="/home/gregp"
+ sodipodi:docname="scribus-icon2.svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient665">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.285714;"
+ offset="0.00000000"
+ id="stop666" />
+ <stop
+ style="stop-color:#daecf8;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop667" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient624">
+ <stop
+ style="stop-color:#b9e5ff;stop-opacity:0.419643;"
+ offset="0.00000000"
+ id="stop625" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop626" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient619">
+ <stop
+ style="stop-color:#66b8ff;stop-opacity:1;"
+ offset="0.00000000"
+ id="stop620" />
+ <stop
+ style="stop-color:#00507a;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop621" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient604">
+ <stop
+ style="stop-color:#838383;stop-opacity:1;"
+ offset="0.00000000"
+ id="stop605" />
+ <stop
+ style="stop-color:#2c2c2c;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop606" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient598">
+ <stop
+ style="stop-color:#e1dedd;stop-opacity:0.866071;"
+ offset="0.00000000"
+ id="stop599" />
+ <stop
+ style="stop-color:#2c2c2c;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop600" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient593">
+ <stop
+ style="stop-color:#fff9db;stop-opacity:0.732143;"
+ offset="0.00000000"
+ id="stop594" />
+ <stop
+ style="stop-color:#2c2c2c;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop595" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient586">
+ <stop
+ style="stop-color:#6e6969;stop-opacity:1;"
+ offset="0.00000000"
+ id="stop587" />
+ <stop
+ style="stop-color:#2c2c2c;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop588" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient578">
+ <stop
+ style="stop-color:#fff2bc;stop-opacity:1;"
+ offset="0.00000000"
+ id="stop579" />
+ <stop
+ style="stop-color:#83560b;stop-opacity:1;"
+ offset="1.00000000"
+ id="stop580" />
+ </linearGradient>
+ <linearGradient
+ xlink:href="#linearGradient578"
+ id="linearGradient581"
+ x1="0.43076923"
+ y1="0.35937500"
+ x2="0.56626505"
+ y2="0.46875000" />
+ <radialGradient
+ xlink:href="#linearGradient578"
+ id="radialGradient582"
+ cx="0.50000000"
+ cy="0.50000000"
+ r="0.50000000"
+ fx="0.50000000"
+ fy="0.50000000" />
+ <linearGradient
+ xlink:href="#linearGradient593"
+ id="linearGradient590"
+ x1="0.53061223"
+ y1="0.25781250"
+ x2="1.08163261"
+ y2="0.70312500" />
+ <linearGradient
+ xlink:href="#linearGradient586"
+ id="linearGradient592"
+ x1="0.19587629"
+ y1="0.49218750"
+ x2="0.31958762"
+ y2="0.53906250" />
+ <linearGradient
+ xlink:href="#linearGradient598"
+ id="linearGradient597"
+ x1="0.49333334"
+ y1="0.25781250"
+ x2="0.66666669"
+ y2="0.38281250" />
+ <linearGradient
+ xlink:href="#linearGradient604"
+ id="linearGradient603"
+ x1="0.83076924"
+ y1="0.37500000"
+ x2="0.43835616"
+ y2="0.10937500" />
+ <linearGradient
+ xlink:href="#linearGradient665"
+ id="linearGradient618"
+ x1="0.41085270"
+ y1="0.37500000"
+ x2="0.97674412"
+ y2="0.92968750" />
+ <linearGradient
+ xlink:href="#linearGradient624"
+ id="linearGradient623"
+ x1="0.47761193"
+ y1="0.05468750"
+ x2="0.82089549"
+ y2="0.92968750" />
+ <linearGradient
+ xlink:href="#linearGradient619"
+ id="linearGradient664"
+ x1="0.08527132"
+ y1="0.05468749"
+ x2="0.48837212"
+ y2="0.96093744" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0000000"
+ inkscape:cx="438.67740"
+ inkscape:cy="570.98413"
+ inkscape:window-width="1016"
+ inkscape:window-height="709"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:12;fill:url(#linearGradient664);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:15.3505;stroke-opacity:1;stroke-dasharray:none;"
+ id="path653"
+ sodipodi:cx="341.25000000"
+ sodipodi:cy="257.36218262"
+ sodipodi:rx="370.00000000"
+ sodipodi:ry="370.00000000"
+ d="M 711.250000 257.362183 A 370.000000 370.000000 0 1 0 -28.750000,257.362183 A 370 370 0 1 0 711.25 257.362 L 341.250000 257.362183 z"
+ transform="matrix(0.854246,0.000000,0.000000,0.873855,62.54055,163.8050)" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:12;fill:url(#linearGradient664);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15.3505;stroke-opacity:1;stroke-dasharray:none;"
+ id="path869"
+ sodipodi:cx="341.25000000"
+ sodipodi:cy="257.36218262"
+ sodipodi:rx="370.00000000"
+ sodipodi:ry="370.00000000"
+ d="M 711.250000 257.362183 A 370.000000 370.000000 0 1 0 -28.750000,257.362183 A 370 370 0 1 0 711.25 257.362 L 341.250000 257.362183 z"
+ transform="matrix(0.832278,0.000000,0.000000,0.846654,71.65299,166.4905)" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:12;fill:#060000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;"
+ id="path686"
+ sodipodi:cx="765.44311523"
+ sodipodi:cy="228.58277893"
+ sodipodi:rx="134.35029602"
+ sodipodi:ry="81.31728363"
+ d="M 899.793411 228.582779 A 134.350296 81.317284 0 1 0 631.092819,228.582779 A 134.35 81.3173 0 1 0 899.793 228.583 L 765.443115 228.582779 z"
+ transform="matrix(0.546660,0.459928,-0.508911,0.466767,319.9559,-324.0116)" />
+ <path
+ style="font-size:12;fill:url(#linearGradient623);fill-opacity:0.75;fill-rule:evenodd;stroke:#f6f7f7;stroke-width:0.977983pt;stroke-opacity:0.392857;"
+ d="M 314.02616 633.10904 C 314.02616 633.10904 227.78618 496.61739 294.72278 358.70964 C 347.9212 247.85253 364.43212 145.78479 321.16276 73.569808 C 244.31733 83.148787 177.42134 122.4216 144.27654 155.95854 C 94.070726 204.88546 70.047451 256.17907 59.169288 292.03552 C 73.673505 468.84489 315.23484 636.81833 314.02616 633.10904 z "
+ id="path622"
+ sodipodi:nodetypes="cscscc" />
+ <path
+ style="font-size:12;fill:url(#linearGradient581);fill-rule:evenodd;stroke:#323232;stroke-width:5.63507;"
+ d="M 336.09076 639.8747 C 333.80044 637.73485 448.81194 467.20742 589.40037 444.05202 C 589.83246 260.23343 674.35129 192.615 679.70122 181.10615 C 668.4051 120.03946 635.23858 96.975101 605.30364 92.116806 C 554.56633 85.650572 564.08908 108.41399 557.85521 114.4749 C 523.52259 192.00646 451.62029 301.45609 441.4715 321.02692 C 412.91571 360.59648 352.4433 555.88876 328.25542 639.48716 L 336.09076 639.8747 z "
+ id="hrot"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ sodipodi:type="arc"
+ style="font-size:12;fill:#665123;fill-rule:evenodd;stroke-width:1.25097;"
+ id="path583"
+ sodipodi:cx="145.62500000"
+ sodipodi:cy="355.48718262"
+ sodipodi:rx="6.25000000"
+ sodipodi:ry="9.68750000"
+ d="M 151.875000 355.487183 A 6.250000 9.687500 0 1 0 139.375000,355.487183 A 6.25 9.6875 0 1 0 151.875 355.487 L 145.625000 355.487183 z"
+ transform="matrix(1.155716,0.773221,-1.325171,2.206503,751.1120,-543.8246)" />
+ <path
+ style="font-size:12;fill:#665123;fill-rule:evenodd;stroke:#665123;stroke-width:1.73912;"
+ d="M 437.91925 373.2363 L 435.66695 371.54463 C 433.07632 369.59887 346.21199 597.60802 332.80739 638.45776 C 346.12878 595.38431 424.51209 391.20678 437.91925 373.2363 z "
+ id="path585"
+ sodipodi:nodetypes="cscc" />
+ <path
+ style="font-size:12;fill:url(#linearGradient590);fill-rule:evenodd;stroke-width:1pt;"
+ d="M 486.64859 450.08466 C 517.14565 426.10831 530.58683 406.59541 560.7817 400.64869 C 555.56529 325.67962 613.18616 235.15094 660.02508 150.50056 L 651.59041 135.28034 C 632.21505 164.62538 517.06962 375.47577 486.64859 450.08466 z "
+ id="path589"
+ sodipodi:nodetypes="ccccc" />
+</svg>
diff --git a/OSX-package/linktools/MachO.py b/OSX-package/linktools/MachO.py
new file mode 100644
index 0000000..847d539
--- /dev/null
+++ b/OSX-package/linktools/MachO.py
@@ -0,0 +1,215 @@
+import os
+import re
+import shutil
+
+
+def findFramework(path, name = None):
+ "find the framework folder for FW name"
+ if path == "" or path == "@executable_path" or path == "/":
+ return None
+ elif name == None:
+ return findFramework(os.path.dirname(path),
+ os.path.basename(path))
+ elif os.path.basename(path) == name + ".framework":
+ return path
+ elif len(os.path.dirname(path)) >= len(path):
+ print "MachO.findFramework: Oops '" + path + "', '" + name + "'"
+ return None
+ else:
+ return findFramework(os.path.dirname(path), name)
+
+
+
+def stripPrefix(prefix, path):
+ "Returns the relative path r such that os.path.join(prefix, r) == path"
+ prefix = os.path.normpath(prefix)
+ prefixLen = len(prefix)
+ path = os.path.normpath(path)
+ if path[0 : prefixLen] == prefix:
+ if path[prefixLen] == os.sep:
+ return path[prefixLen+1 : ]
+ else:
+ return path[prefixLen : ]
+ else:
+ return path
+
+
+class Executable:
+ "Represents an Mach-O executable."
+
+ def __init__(self, path, kind):
+ self.Location = path
+ self.Kind = kind
+
+
+ def __repr__(self):
+ return self.Location + " (" + self.Kind + ")"
+
+
+ def getDependencies(self):
+ "Return a list of MachO.Fixes describing the dependencies."
+ "Uses otool -L"
+ f = os.popen("otool -L " + self.Location, "r")
+ result = []
+ pat = re.compile("\s*([^(]*)\s\((.+)\)")
+ for line in f:
+ m = pat.match(line)
+ if m != None:
+ result.append(Fix(m.group(1), m.group(2)))
+ status = f.close()
+ return result
+
+ def applyFixes(self, changes, log):
+ "Uses install_name_tool to change the links to dependencies."
+ "changes is a dictionary mapping links (as strings) to Fixes."
+ args = ""
+ for dep in self.getDependencies():
+ if dep.Link in changes:
+ args = args + changes[dep.Link].getChange()
+ log.append(">> " + "install_name_tool " + args + self.Location)
+ if len(args) > 0:
+ os.system("install_name_tool " + args + self.Location)
+ pat = re.compile("(library)|(universal binary)")
+ if pat.search(self.Kind):
+ relName = os.path.basename(self.Location) # FIXME: rel to fw
+ log.append(">> " + "install_name_tool -id " + relName +
+ " " + self.Location)
+ os.system("install_name_tool -id " + relName +
+ " " + self.Location)
+
+
+def findExecutables(bundleDir):
+ "Return a list of MachO.Executables found in bundleDir"
+ result = []
+ pat = re.compile("Mach-O (.+)")
+ for root, dirs, files in os.walk(bundleDir):
+ for n in files:
+ p = os.path.join(root, n)
+ f = os.popen("file -b " + p, "r")
+ m = pat.match(f.readline())
+ if m != None:
+ result.append(Executable(p, m.group(1)))
+ print "found " + m.group(1) + ": " + n
+ f.close()
+ return result
+
+
+
+class Fix:
+ "Represents a fix for a library link."
+
+ def __init__(self, dependency, versionString="?"):
+ self.Link = dependency
+ self.Location = dependency
+ self.NewLink = dependency
+ self.NewLocation = dependency
+ self.versionString = versionString # not used yet
+ self.fwPath = None
+ self.relPath = None
+
+ def __repr__(self):
+ return (self.Link + " (" + self.versionString + ")")
+
+ def isAbsolute(self):
+ return os.path.isabs(self.Link)
+
+ def isBundleRelative(self):
+ return self.Link[0:17] == "@executable_path/"
+
+ def isSystem(self):
+ return (self.Location[0:8] == "/usr/lib" # also matches libexec
+ or self.Location[0:8] == "/usr/X11" # also matches X11R6
+ or self.Location[0:8] == "/System/")
+
+ def getChange(self):
+ "Returns argument for install_name_tool."
+ if self.Link == self.NewLink:
+ return ""
+ else:
+ return "-change " + self.Link + " " + self.NewLink + " "
+
+ def findLocation(self, exePath=None):
+ if self.isBundleRelative():
+ if exePath != None:
+ self.Location = os.path.normpath(
+ os.path.join(exePath, self.Link[17:]))
+ else:
+ self.Location = self.Link[17:]
+ else:
+ self.Location = self.Link
+
+ # check if done
+ if (os.path.isabs(self.Location) and
+ os.path.isfile(self.Location)):
+ self.NewLocation = self.Location
+ return True
+
+ # search for frameworks in /System/Library and /Library
+ fwPath = findFramework(self.Location)
+ if fwPath:
+ fwdir = os.path.dirname(fwPath)
+ self.relPath = stripPrefix(fwdir, self.Location)
+ for d in ["/Library/Frameworks",
+ "/System/Library/Frameworks"]:
+ if os.path.isfile(os.path.join(d, self.relPath)):
+# self.Location = os.path.join(d, self.relPath)
+ self.Location = os.path.join(d, self.relPath)
+ self.NewLocation = self.Location
+ self.fwPath = os.path.join(d, os.path.basename(fwPath))
+ self.relPath = stripPrefix(self.fwPath, self.Location)
+ return True
+
+ # ok, try libs
+ lib = os.path.basename(self.Location)
+ self.relPath = None
+ for d in ["/usr/local/lib", "/opt/local/lib",
+ "/usr/lib", "/opt/lib"]:
+ if os.path.isfile(os.path.join(d, lib)):
+ self.Location = os.path.join(d, lib)
+ self.NewLocation = self.Location
+ return True
+
+ # not found
+ return False
+
+
+ def moveLibrary(self, destBundlePath, stripFW, log):
+ "Copies the library or fw to destBundlePath."
+ "Also sets NewLink and NewLocation properties"
+ "Returns a list of copied executables"
+
+ # dont do this if we are already inside the bundle:
+ if stripPrefix(destBundlePath, self.Location) != self.Location:
+ log.append("-- ignoring " + self.Location)
+ return []
+
+ if self.relPath != None and not stripFW:
+ # copy framework
+ newFwPath = os.path.join(destBundlePath,
+ "Contents/Frameworks",
+ os.path.basename(self.fwPath))
+ log.append(">> " + self.fwPath + " ===> " + newFwPath)
+ if (os.path.exists(destBundlePath) and
+ not os.path.exists(newFwPath)):
+ shutil.copytree(self.fwPath, newFwPath, True)
+ self.NewLocation = os.path.join(newFwPath, self.relPath)
+ self.NewLink = ("@executable_path/"
+ + os.path.join("../Frameworks",
+ os.path.basename(self.fwPath),
+ self.relPath))
+ return findExecutables(newFwPath)
+ else:
+ # copy lib to bundle.app/Contents/Frameworks/
+ self.NewLocation = os.path.join(destBundlePath,
+ "Contents/Frameworks",
+ os.path.basename(self.Location))
+ self.NewLink = ("@executable_path/"
+ + os.path.join("../Frameworks",
+ os.path.basename(self.Location)))
+ log.append(">> " + self.Location + " ---> " + self.NewLocation)
+ if (os.path.exists(destBundlePath) and
+ not os.path.exists(self.NewLocation)):
+ shutil.copy(self.Location, self.NewLocation)
+ return [Executable(self.NewLocation, "lib")]
+
+ \ No newline at end of file
diff --git a/OSX-package/linktools/ingest.py b/OSX-package/linktools/ingest.py
new file mode 100755
index 0000000..83a0620
--- /dev/null
+++ b/OSX-package/linktools/ingest.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+
+import os
+import sys
+import osxtools
+
+def usage():
+ print """
+ Usage: ingest.py bundle [-x lib] [-s fw]
+
+ Copies all dependent libraries and frameworks into the app bundle.
+ System libraries (/usr/lib*, /System/Library) are not copied.
+ Fixes the dependencies in all executabels contained in bundle.
+
+ bundle: the path to the *.app bundle
+ -x lib: dont move lib into the bundle.
+ -s fw: only move the referenced libarry file from framework fw
+ into the bundle, not the complete framework
+ """
+
+
+if len(sys.argv) <= 1 or sys.argv[1] == "-?" :
+ usage()
+ sys.exit(0)
+
+
+
+exceptions = []
+strippedfws = []
+bundle = None
+
+argp = 1
+
+while argp < len(sys.argv) :
+ if sys.argv[argp] == '-x' :
+ exceptions.append(sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-x' :
+ exceptions.append(sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp] == '-s' :
+ strippedfws.append(sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-s' :
+ strippedfws.append(sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp][0:1] == '-' :
+ print "Error: unknown option: " + sys.argv[argp]
+ usage()
+ sys.exit(1)
+ elif bundle == None:
+ bundle = sys.argv[argp]
+ argp = argp + 1
+ else:
+ print "Error: more than one bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if bundle == None:
+ print "Error: no bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if not os.path.isabs(bundle):
+ bundle = os.path.join(os.getenv("PWD"), bundle)
+
+if not os.path.isdir(bundle):
+ print "Error: '" + bundle + "' is no bundle path!"
+ usage()
+ sys.exit(1)
+
+osxtools.ingest(bundle, exceptions, strippedfws)
diff --git a/OSX-package/linktools/mkappbundle.py b/OSX-package/linktools/mkappbundle.py
new file mode 100755
index 0000000..a8eff74
--- /dev/null
+++ b/OSX-package/linktools/mkappbundle.py
@@ -0,0 +1,87 @@
+#!/usr/bin/python
+
+import os
+import sys
+import shutil
+import osxtools
+
+def usage():
+ print """
+ Usage: mkappbundle.py bundle [-b binary] [-i infofile|-v version]
+
+ Creates the directory structure for an application bundle.
+ If binary is given, it will be used as the binaries executable,
+ otherwise the binary will just be an empty shell.
+
+ bundle: the path to the *.app bundle
+ -b binary: copy lib into the bundle.
+ -i infofile: use "ver" as the version instead of the standard 'A'
+ """
+
+
+if len(sys.argv) <= 1 or sys.argv[1] == "-?" :
+ usage()
+ sys.exit(0)
+
+
+
+infofile = None
+binfile = None
+bundle = None
+
+argp = 1
+
+while argp < len(sys.argv) :
+ if sys.argv[argp] == '-b' :
+ binfile = (sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-b' :
+ binfile = (sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp] == '-i' :
+ infofile = (sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-i' :
+ infofile = (sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp][0:1] == '-' :
+ print "Error: unknown option: " + sys.argv[argp]
+ usage()
+ sys.exit(1)
+ elif bundle == None:
+ bundle = sys.argv[argp]
+ argp = argp + 1
+ else:
+ print "Error: more than one bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if bundle == None:
+ print "Error: no bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if not os.path.isabs(bundle):
+ bundle = os.path.join(os.getenv("PWD"), bundle)
+
+if bundle[-4 : ] != ".app":
+ bundle = bundle + ".app"
+appName = os.path.basename(bundle)[0: -4]
+
+if not os.path.exists(bundle):
+ os.makedirs(bundle, 0755)
+elif not os.path.isdir(bundle):
+ print "Error: '" + bundle + "' is no bundle path!"
+ usage()
+ sys.exit(1)
+
+binPath = os.path.join(bundle, "Contents/MacOS")
+
+if not os.path.exists(binPath):
+ os.makedirs(binPath, 0755)
+
+if binfile != None:
+ shutil.copy(binfile, os.path.join(binPath, appName))
+
+shutil.copy(infofile, os.path.join(bundle, "Contents/Info.plist")
+
diff --git a/OSX-package/linktools/mkframework.py b/OSX-package/linktools/mkframework.py
new file mode 100755
index 0000000..c29e847
--- /dev/null
+++ b/OSX-package/linktools/mkframework.py
@@ -0,0 +1,111 @@
+#!/usr/bin/python
+
+import os
+import sys
+import shutil
+import osxtools
+
+def usage():
+ print """
+ Usage: mkframework.py bundle [-l libfile] [-v version]
+
+ Creates the directory structure for a framework.
+ If libfile is given, it will be used as the frameworks executable,
+ otherwise the framework will just be an empty shell.
+
+ bundle: the path to the *.framework bundle
+ -l lib: copy lib into the bundle.
+ -v ver: use "ver" as the version instead of the standard 'A'
+ -f: overwrite existing files if version exists
+ """
+
+
+if len(sys.argv) <= 1 or sys.argv[1] == "-?" :
+ usage()
+ sys.exit(0)
+
+
+
+version = "A"
+overwrite = False
+libfile = None
+bundle = None
+
+argp = 1
+
+while argp < len(sys.argv) :
+ if sys.argv[argp] == '-f':
+ overwrite = True;
+ argp = argp + 1
+ elif sys.argv[argp] == '-l' :
+ libfile = (sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-l' :
+ libfile = (sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp] == '-v' :
+ version = (sys.argv[argp + 1])
+ argp = argp + 2
+ elif sys.argv[argp][0:2] == '-v' :
+ version = (sys.argv[argp][2:])
+ argp = argp + 1
+ elif sys.argv[argp][0:1] == '-' :
+ print "Error: unknown option: " + sys.argv[argp]
+ usage()
+ sys.exit(1)
+ elif bundle == None:
+ bundle = sys.argv[argp]
+ argp = argp + 1
+ else:
+ print "Error: more than one bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if bundle == None:
+ print "Error: no bundle path specified!"
+ usage()
+ sys.exit(1)
+
+if not os.path.isabs(bundle):
+ bundle = os.path.join(os.getenv("PWD"), bundle)
+
+if bundle[-10 : ] != ".framework":
+ bundle = bundle + ".framework"
+fwName = os.path.basename(bundle)[0: -10]
+
+if not os.path.exists(bundle):
+ os.makedirs(bundle, 0755)
+elif not os.path.isdir(bundle):
+ print "Error: '" + bundle + "' is no bundle path!"
+ usage()
+ sys.exit(1)
+
+versionPath = os.path.join(bundle, "Versions", version)
+
+if os.path.exists(versionPath):
+ if overwrite:
+ shutil.removetree(versionPath)
+ else:
+ print "Error: '" + versionPath + "' already exists!"
+ usage()
+ sys.exit(1)
+
+os.makedirs(versionPath, 0755)
+
+if libfile != None:
+ shutil.copy(libfile, os.path.join(versionPath, fwName))
+ os.system("install_name_tool -id @executable_path/" +
+ os.path.join("../Frameworks",
+ fwName + ".framework",
+ "Versions",
+ version,
+ fwName) +
+ " " +
+ os.path.join(versionPath, fwName))
+
+osxtools.createSymlinks(bundle, [
+ ("Versions/Current", version),
+ (fwName, os.path.join("Versions/Current", fwName)),
+ ("Headers", "Versions/Current/Headers")
+])
+
diff --git a/OSX-package/linktools/osxtools.py b/OSX-package/linktools/osxtools.py
new file mode 100755
index 0000000..ac2bb57
--- /dev/null
+++ b/OSX-package/linktools/osxtools.py
@@ -0,0 +1,114 @@
+import os
+import re
+import MachO
+from distutils.dir_util import copy_tree
+from datetime import datetime
+
+
+def findDependencies(exeFiles, exePath):
+ "Return a dictionary of MachO.Fixes of all recursive dependencies"
+ result = {}
+
+ # allow some sloppyness:
+ if isinstance(exeFiles, str):
+ exeFiles = [MachO.Executable(exeFiles, "executable")]
+ elif isinstance(exeFiles, MachO.Executable):
+ exeFiles = [exeFiles]
+
+ # go through executables and store Fixes
+ todo = [x for x in exeFiles]
+ done = [x.Location for x in exeFiles]
+ while len(todo) > 0:
+ current = todo.pop()
+ print "getting dependencies for " + current.Location
+ for dep in current.getDependencies():
+ if dep.Link not in result:
+ if dep.findLocation(exePath):
+ result[dep.Link] = dep
+ # check if we need to traverse the referenced lib
+ if not dep.isSystem() and dep.Location not in done:
+ print "- adding " + dep.Location
+ done.append(dep.Location)
+ todo.append(MachO.Executable(dep.Location, "lib"))
+ else:
+ print ("couldn't find " + dep.Link +
+ " -> " + dep.Location)
+
+ # forget any system dependencies
+ for k,fix in result.items():
+ if fix.isSystem():
+ del result[k]
+
+ return result
+
+
+def ingest(bundle, exceptions=[], strippedFrameworks=[]):
+ "Moves all needed non-System libraries inside the bundle and fixes links"
+ # step 1: find all executables
+ executables = MachO.findExecutables(bundle)
+ # find the bundle executable
+ pat = re.compile("executable")
+ exePath = ""
+ for exe in executables:
+ if pat.match(exe.Kind):
+ exePath = os.path.dirname(exe.Location)
+ print "using @executable_path=" + exePath
+ break
+ # step 2: find all dependencies
+ fixes = findDependencies(executables, exePath)
+ # step 3: move all libraries which are not excepted
+ log = []
+ frameworks = os.path.join(bundle, "Contents/Frameworks")
+ if not os.path.exists(frameworks):
+ log.append(">> mkdir " + frameworks)
+ os.makedirs(frameworks, 0755)
+ for k,fix in fixes.items():
+ if fix.Location in exceptions or fix.Link in exceptions:
+ del fixes[k]
+ else:
+ stripFW = fix.Location in strippedFrameworks
+ executables.extend(fix.moveLibrary(bundle, stripFW, log))
+
+ # step 3.5: copy aspell dictionaries, hacked for aspell via macports for now, #7371
+ aspellsrcpath = "/opt/local/share/aspell"
+ if os.path.exists(aspellsrcpath):
+ aspelldestpath = os.path.join(bundle, "Contents/share/aspell")
+ if not os.path.exists(aspelldestpath):
+ log.append(">> mkdir " + aspelldestpath)
+ os.makedirs(aspelldestpath, 0755)
+ if os.path.exists(aspelldestpath):
+ log.append(">> copying aspell dictionaries")
+ print "copying aspell dictionaries"
+ copy_tree(aspellsrcpath, aspelldestpath)
+
+ # step 4: fix all executables
+ for exe in executables:
+ exe.applyFixes(fixes, log)
+ # step 5: write log
+ logfile = file(os.path.join(bundle, "Contents/osxtools.log"), "a")
+ logfile.write("ingest at " + datetime.now().isoformat(" ") + "\n")
+ for e in log:
+ logfile.write(e + "\n")
+ logfile.close()
+
+
+def createSymlinks(bundle, links):
+ currDir = os.getcwd()
+ for lnk,tar in links:
+ print "chdir to " + os.path.join(bundle, os.path.dirname(lnk))
+ os.chdir(os.path.join(bundle, os.path.dirname(lnk)))
+ print "symlink " + os.path.basename(lnk) + " -> " + tar
+ os.symlink(tar, os.path.basename(lnk))
+ os.chdir(currDir)
+
+
+def relinkOld(FILE, LIBDIR, INSTALLDIR):
+ #LIBS=`otool -L $FILE | sed 's/\([^(]*\)(.*)/\1/g'`
+ #for LIB in $LIBS ; do
+ # LNAM=`basename $LIB`
+ # if [ $FILE -ef $LIBDIR/$LNAM ] ; then
+ # install_name_tool -id $INSTALLDIR$LNAM $FILE
+ # elif [ -e $LIBDIR/$LNAM ] ; then
+ # install_name_tool -change $LIB $INSTALLDIR$LNAM $FILE
+ pass
+