Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # Installation script for Houdini
- #
- # If we have no stdin, then try to run inside an xterm
- stdin=$(readlink /proc/self/fd/0)
- if [ "$stdin" = "/dev/null" -a -n "$DISPLAY" ]; then
- cd "$(dirname "$0")"
- for prog in x-terminal-emulator xterm; do
- exe=$(which $prog 2>/dev/null)
- if [ -x "$exe" ]; then
- exec "$exe" -e "./$(basename "$0")"
- fi
- done
- fi
- usage="usage: ./houdini.install [--help] [--[no-]local-licensing] [--[no-]install-engine-maya] [--[no-]install-engine-unity] [--[no-]install-houdini] [--[no-]license] [--[no-]menus] [--[no-]hfs-symlink] [--[no-]bin-symlink] [--no-root-check] [--make-dir] [--install-hqueue-server] [--hqueue-server-dir /path/to/install] [--create-hqueue-shared-dir yes|no] [--hqueue-shared-dir /path/to/sharedDir] [--hqueue-shared-dir-mount /path/to/mountPoint] [--upgrade-hqueue-server-if-exists yes|no] [--install-hqueue-client] [--hqueue-client-dir /path/to/install] [--hqueue-server-name hqserverName] [--hqueue-server-port hqserverPort] [--mount-hqueue-shared-dir yes|no] [/path/to/install]"
- long_usage()
- {
- echo "usage: ./houdini.install [options] [installation_directory]
- OPTIONS
- --install-houdini | --no-install-houdini
- Select or deselect Houdini and the HDK for installation
- --install-engine-maya | --no-install-engine-maya
- Select or deselect Houdini Engine Maya plugin for installation
- --install-engine-unity | --no-install-engine-unity
- Select or deselect Houdini Engine Unity plugin for installation
- --install-menus | --no-install-menus
- Select or deselect desktop menus for installation
- --install-bin-symlink | --no-install-bin-symlink
- Select or deselect symlinks in /usr/local/bin for installation
- --install-hfs-symlink | --no-install-hfs-symlink
- Select or deselect symlink in /opt/hfs$VER_MAJOR.$VER_MINOR for installation
- --install-license | --no-install-license
- Select or deselect sesinetd (license server) for installation
- --local-licensing | --no-local-licensing
- Select or deselect local licensing for installation
- --install-hqueue-server | --no-install-hqueue-server
- Select or deselect HQueue server for installation
- --install-hqueue-client | --no-install-hqueue-client
- Select or deselect HQueue client for installation
- --hqueue-server-dir directory
- Directory to install HQueue server in
- --create-hqueue-shared-dir (yes|no)
- Create and mount the shared directory on HQueue server
- --mount-hqueue-shared-dir (yes|no)
- Mount the shared directory on HQueue client
- --hqueue-shared-dir directory
- Directory name of the shared directory
- --hqueue-shared-dir-mount mount_point
- Mount point of the shared directory
- --upgrade-hqueue-server-if-exists (yes|no)
- Upgrade an existing install of HQueue server
- --hqueue-client-dir directory
- Directory to install HQueue client in
- --hqueue-server-name server_name
- Set the server name of the HQueue server
- --hqueue-server-port port_number
- Set the port number of the HQueue server
- --auto-install install automatically, do not prompt user
- --no-root-check
- do not show a warning if the installer is not run as root
- --help display this message
- For a full description of how to configure installation using command line
- options, see the installation manual."
- }
- #-------------------------------------------------------------------------
- do_wait()
- {
- if [ "$dowait" = "yes" ]; then
- echo $nn "[Hit return to continue]$cc"
- read anything
- fi
- }
- dowait=no
- if [ -z "$PAGER" ]; then
- PAGER=more
- fi
- VER_MAJOR=16
- VER_MINOR=5
- VER_BUILD=405
- BUILD_ARCH=x86_64
- PYTHON_VERSIONS="2.7"
- SIZE_HOUDINI=2278136
- SIZE_HQUEUE=462160
- SIZE_HQUEUE_CLIENT=431016
- SIZE_LICENSE=20620
- SIZE_ENGINE_MAYA=6072
- SIZE_ENGINE_UNITY=2240
- AGREEMENT_TEXT=" Last Updated Date: February 6, 2018
- SIDE EFFECTS SOFTWARE
- LICENSE AGREEMENT
- IMPORTANT - READ CAREFULLY: Side Effects Software Inc. or its
- subsidiary (as applicable, \"SideFX\") licenses this software and
- all upgrades and related materials (collectively, the \"Software\"),
- excluding any open source software that is distributed with the
- Software, subject to the terms and conditions of this Agreement. BY
- SELECTING \"ACCEPT\", OR BY DOWNLOADING, INSTALLING OR USING THE
- SOFTWARE, ALL OF THE TERMS AND CONDITIONS CONTAINED IN THIS AGREEMENT
- BECOME LEGALLY BINDING ON YOU AS AN INDIVIDUAL OR ON THE ORGANIZATION
- THAT YOU REPRESENT.
- IF YOU THE INDIVIDUAL (A) DO NOT AGREE TO THE TERMS AND CONDITIONS OF
- THIS AGREEMENT, OR (B) ARE NOT AUTHORIZED TO DOWNLOAD OR INSTALL THE
- SOFTWARE OR TO AGREE TO BE BOUND BY THIS AGREEMENT ON BEHALF OF YOUR
- ORGANIZATION, YOU ARE REQUIRED TO SELECT \"DO NOT ACCEPT\", IN WHICH
- CASE YOU ARE NOT PERMITTED TO DOWNLOAD, INSTALL OR USE THE SOFTWARE.
- NOTE: The terms and conditions of this Agreement were last updated,
- and are effective as of, the \"Last Updated Date\" indicated above. Any
- downloading, installation or Use of the Software or an earlier version
- of the Software that was licensed prior to such date is governed by
- prior terms and conditions, which differ from those set out in this
- Agreement.
- 1. GENERAL
- 1.1. Formation of Legally Binding Contract. A legally binding
- contract is immediately formed upon your acceptance of this Agreement.
- The licensee who is bound by this Agreement (\"Licensee\") is: (i) the
- individual accepting this Agreement, if the individual is licensing
- the Software for his or her personal use or use as a sole proprietor;
- or (ii) the corporation, institution, partnership, organization or
- other entity (\"Organization\") on whose behalf the individual accepting
- this Agreement is acting. Where a Transaction Confirmation is
- provided to Licensee, Licensee's name will be confirmed in the
- Transaction Confirmation. Where no Transaction Confirmation is
- provided to Licensee and Licensee obtains an Entitlement(s) or
- License(s) through the online process, Licensee's name will be the
- name provided as part of the online process or, where no name is
- provided, the name associated with the email address provided or used
- as part of the online process. The Entitlement(s) and License(s)
- issued to Licensee will be associated with such name. Licensee
- represents that the name provided to SideFX, if any, is its full
- and correct legal name.
- 1.2. Application and Priority of Terms. The terms and conditions of
- this Agreement apply regardless of, and take priority over, any terms
- and conditions applicable to Licensee's software or, subject to
- Section 3.11, any third party software which may be used in
- conjunction with the Software.
- 1.3. Subsequent Licensing; Upgrades. Subsequent licensing of the
- Software may be subject to updated terms and conditions that differ
- from those set out in this Agreement (an \"Updated Agreement\").
- SideFX may require Licensee to accept an Updated Agreement in
- connection with: (i) any subsequent downloading and/or installation
- of Upgrades; or (ii) the issuance of subsequent Entitlements or
- Licenses to Use the Software (see Section 2.2); in which case any
- downloading, installation of Use of such Upgrade (in the case of
- (i)), or any Use of the Software under such Entitlements and Licenses
- (in the case of (ii)), will be governed by the Updated Agreement. An
- Updated Agreement will be indicated by a change to the \"Last Updated
- Date\" indicated at the top of this Agreement. If Licensee obtains
- additional Entitlements and Licenses to Use the Software without
- having to accept an Updated Agreement, this Agreement will continue
- to apply to Licensee's Use of the Software under such Entitlements
- and Licenses.
- 1.4. Communication of Usage Data. Licensee acknowledges that the
- Software may communicate to SideFX certain technical,
- non-personal information concerning Licensee's Licenses and Use of the
- Software. Licensee hereby consents to such communication.
- 1.5. Information Provided by Licensee. Licensee represents, warrants
- and covenants that any information provided by Licensee to SideFX
- concerning Licensee's identity, contact information, Authorized
- Users, revenue, applicable project or otherwise is, and will
- continuously be, true and accurate and not misleading. Licensee
- agrees to notify SideFX of any changes in such information.
- 1.6. Defined Terms. Section 12 sets out certain defined terms used in
- this Agreement.
- 2. RIGHT TO USE
- 2.1. Grant of Rights. Subject to Licensee's payment of the applicable
- fees and continuous compliance with the terms and conditions of this
- Agreement, SideFX hereby grants to Licensee a limited,
- non-transferable, non-exclusive, non-sublicensable right for
- Authorized Users to install and Use the Software: (i) solely in object
- code format; (ii) solely in the applicable Territory; (iii) solely for
- the Usage Purpose; and (iv) subject to the terms and conditions of the
- applicable License Type (as set out in Section 3).
- 2.2. Entitlements and Licenses. Licensee acknowledges that Use of the
- Software requires: (i) the issuance by SideFX of an
- Entitlement(s); (ii) the redemption of such Entitlement(s) by Licensee
- to obtain a License(s); and (iii) the installation of such License(s)
- on the applicable Computer using the tools provided as part of the
- Software. SideFX will issue Licensee an Entitlement(s) based on
- the applicable License Type and permitted Use. Each License permits
- Use of the Software on a single Computer (in the case of a Workstation
- Installation) or on a single Network Server and single Client Computer
- (in the case of a Network Installation).
- 2.3. Licensee Responsibilities. Licensee shall: (i) take appropriate
- action to ensure that non-Authorized Users do not Use the Software;
- (ii) ensure that all Authorized Users comply with all of the terms and
- conditions of this Agreement, including the restrictions set out in
- Section 4.1; (iii) be solely responsible for any digital assets or
- other content that is uploaded to the Software by Authorized Users,
- including compliance with any restrictions imposed by the author of
- the content and any violations of intellectual property rights; (iv)
- be solely responsible for the accuracy, integrity, legality and
- appropriateness of all content created by Authorized Users using the
- Software; and (v) Use the Software in compliance with all applicable
- laws, rules and regulations (including those relating to export,
- homeland security, anti-terrorism, data protection and privacy) and
- any documentation included with the Software. Licensee shall be
- responsible for any breach of this Agreement by Authorized Users and
- any installation or Use of the Software by persons other than
- Authorized Users utilizing Licenses issued to Licensee. Licensee
- shall immediately notify SideFX of any unauthorized installation
- or Use of the Software.
- 3. LICENSE TYPES AND SCOPE OF USE
- 3.1. License Types. The Software is provided to Licensee subject to
- specific terms and conditions that further define the scope of
- Licensee's permitted installation of Licenses and Use of the Software
- based on the type of license granted (\"License Type\"). The License
- Types, and the terms and conditions applicable to each License Type,
- are set out in Appendix A to this Agreement. Licensee must not, and
- must not attempt to, install any License(s) or Use the Software
- outside of the scope of the License Type that applies to the
- License(s) issued to Licensee. Any actual or attempted installation
- of Licenses or Use of the Software outside of the scope of the
- applicable License Type is a breach of this Agreement and an
- infringement of the rights of SideFX.
- 3.2. Additional Limitations and Restrictions. For greater certainty,
- the limitations and restrictions of the applicable License Type are in
- addition to all other limitations and restrictions under this
- Agreement, including those set out in Section 2, Section 3 and Section 4.
- 3.3. Network Installation. Certain of the License Types provide for
- Network Installation. \"Network Installation\" means that each of the
- Licenses issued to Licensee may be installed on one (1) Computer
- acting as a license server (the \"License Server\") that can be accessed
- by other Computers acting as clients (\"Client Computers\") through a
- local area network connection or through a VPN connection, provided
- that: (i) the VPN connection is secure; (ii) each Client Computer is
- within the Territory; and (iii) the Software may only be Used on the
- Client Computers accessing the License Server. The number of Client
- Computers accessing the Licenses on the License Server(s) and on which
- the Software is being Used concurrently shall not exceed the number of
- Licenses issued. For example, if Licensee has been issued ten (10)
- Local Access Licenses, each of the ten (10) Licenses may be installed
- on a License Server, and the Software may be Used on a maximum of ten
- (10) Client Computers at any given time. For certainty, each of the
- Licenses issued to Licensee does not have to be installed on the same
- License Server, but any single License cannot be installed on more
- than one License Server.
- 3.4. Workstation Installation. Certain of the License Types provide
- for Workstation Installation. \"Workstation Installation\" means that
- the License may be installed on one (1) dedicated Computer and the
- Software may only be Used on that Computer. Unless otherwise
- expressly provided in Appendix A, the License cannot subsequently be
- relocated (i.e. installed on a different Computer).
- 3.5. Location. The rights granted under this Agreement provide for
- Use of the Software in the applicable Territory and certain of the
- License Types may provide for Use of the Software only at a particular
- location. Authorized Users will be considered to be Using the
- Software in the Territory (or at a particular location) only if the
- individual is physically located within the Territory (or at the
- particular location) at the time he or she is Using the Software.
- 3.6. Use of Cloud Services. For certainty, notwithstanding anything
- else in this Agreement, Licensee may only install the Software, or
- have a third party install the Software for Licensee, for use with a
- Cloud Service if the License Type that applies to the Licenses issued
- to Licensee is a Global Access License and only for non-interactive
- processing. Otherwise, Licensee is not permitted to install or have
- installed or Use the Software on a Cloud Service regardless of the
- location of the Computers utilized by the Cloud Service. For
- certainty, non-interactive processing includes processing using
- Houdini Mantra, Houdini Engine and Houdini Batch, but excludes
- processing using Houdini Core or Houdini FX. Nothing in this Section
- shall be taken to limit any restriction set out in Article 3 or
- otherwise in this Agreement.
- 3.7. Use of Third Party Rendering. Except for Users under an
- Apprentice License, Users may utilize third party software (the
- \"Third Party Rendering Software\") for the purpose of rendering images
- created using the Software; provided that with respect to Indie
- Licenses: (i) the Third Party Rendering Software and its dedicated
- Houdini plug-in must be installed and used on the same dedicated
- Computer on which the Software is installed and Used; (ii) the User
- must not render sequences at a resolution higher than 4096x4096; and
- (iii) the User shall Use only the final work product produced by the
- Third Party Rendering Software and shall not access or Use or have
- any rights in or to any temporary or intermediate images or files
- produced by the Third Party Rendering Software and/or its dedicated
- Houdini plug-in. Within ten (10) days of a request by SideFX, the
- third party who provides the Third Party Rendering Software and its
- dedicated Houdini plug-in shall certify in writing to SideFX the
- extent to which such third party has implemented technical measures
- to prevent any breach of such restrictions. For certainty, Users
- under all License Types other than the Apprentice License and the
- Indie License may utilize Third Party Rendering Software for the
- purpose of rendering images created using the Software, without
- reference to the restrictions and requirements set out in this
- Section (but, for certainty, subject to the restrictions that
- otherwise apply to such License Types).
- 3.8. Non-Concurrent Use. For all License Types, only one individual
- may Use the Software interactively (i.e. operating the Software
- through its graphical user interface) on a Computer (including, for
- certainty, a Client Computer or a dedicated Computer) at any given
- time. Without limiting the foregoing in this Section, where the
- Software is being Used interactively on a Client Computer or a
- dedicated Computer by an individual, a second individual may not Use
- the Software on that same dedicated Computer or Client Computer
- indirectly through a separate Computer, terminal or monitor.
- 3.9. Limits on Number of Licenses. SideFX may limit the number
- of Licenses of a particular License Type available to any particular
- Licensee, alone or together with its related individuals and
- Affiliates.
- 3.10. Orbolt. Digital assets that are authored Using the Software
- can be uploaded to and downloaded from the website maintained by the
- SideFX affiliate, Orbolt Inc., at www.orbolt.com (the \"Orbolt
- Website\"), pursuant to the Orbolt Inc. Terms and Conditions of
- Website Use. Notwithstanding the prohibitions on Commercial Use
- under the Non-Commercial Licenses, the Software may be Used under the
- Non-Commercial Licenses (as well as under the Commercial Licenses)
- for the purpose of authoring digital assets for upload to the Orbolt
- Website. Any other Commercial Use of the Software under a
- Non-Commercial License is strictly prohibited. Any digital asset
- that is downloaded from the Orbolt Website may be further developed
- subject to: (i) the terms of the applicable License Type under which
- the digital asset was downloaded; and (ii) any restrictions imposed
- by the author of the downloaded digital asset or by the License Type
- under which the digital asset was created.
- 3.11. Open Source Software. The Software may be accompanied by
- certain open source software (in source code and executable forms, as
- applicable) (the \"Open Source Software\") that works with the Software.
- The Open Source Software forms, and is distributed as, a separate and
- independent software program from the Software (and the Software is
- not a modification of, or a work based on, the Open Source Software),
- even though the Open Source Software may have been aggregated or
- packaged with the Software for purposes of distribution. The Open
- Source Software is distributed under and subject to the terms and
- conditions of the applicable open source licenses and notices set out
- at http://www.sidefx.com/docs/houdini/licenses/ (the \"Open Source
- Licenses\"). Licensee hereby agrees to the terms and conditions of the
- Open Source Licenses as they relate to the applicable Open Source
- Software.
- 4. RESTRICTIONS ON USE
- 4.1. Restrictions on Use of Software. Subject to the terms and
- conditions for the applicable License Type, Licensee agrees that it
- will not, and will not permit any third party to, directly or
- indirectly: (i) copy the Software (except that Licensee may download
- and install the Software and make one (1) copy of the Software solely
- for backup purposes) or create derivative works based on the Software;
- (ii) assign, transfer, lease, rent, sublicense, distribute or
- otherwise make available the Software, any Entitlement, any License or
- any right granted under this Agreement, in whole or in part, to any
- other Person, including on a timesharing, software-as-a-service or
- other similar basis (except that, with certain License Types, Licensee
- may permit third party Authorized Users to Use the Software to create
- content for Licensee); (iii) permit any third party, other than an
- Authorized User, to redeem or un-redeem Entitlements, install Licenses
- or Use the Software; (iv) share any user ids or passwords with anyone
- other than Authorized Users; (v) Use the Software to provide any
- service bureau services or any services on a similar basis; (vi)
- except as provided under Section 3.10, Use the Software under a
- Non-Commercial License for Commercial purposes, or receive any form of
- compensation for work product created or work performed Using the
- Software under a Non-Commercial License; (vii) reverse engineer,
- decompile, disassemble, or otherwise attempt to discover the source
- code of any portion of the Software; (viii) disassemble, reverse
- engineer or use the file format of any file generated by the Software
- for purposes of by-passing any restrictions or requirements of the
- Software; (ix) attempt to tamper with, alter, disable, hinder,
- by-pass, override, or circumvent any security, reliability, integrity,
- accounting or other mechanism, restriction or requirement of the
- Software, including any Entitlement or License or any other mechanism
- that permits, monitors or limits installation of Licenses or Use of
- the Software to the applicable scope in accordance with this
- Agreement; (x) convert the file format of any file generated by the
- Software when licensed under a Non-Commercial License to a file format
- generated by the Software when licensed under a Commercial License;
- (xi) attempt to tamper with or alter (or with respect to
- Non-Commercial Licenses, hinder) the usage information conveyed by the
- Software to SideFX; (xii) modify or attempt to modify the
- Software; (xiii) install or Use the Software in any way that would
- subject the Software, in whole in or in part, to governmental
- regulation that would not have otherwise applied but for such
- installation or Use; (xiv) remove, obscure or alter any copyright,
- trade-mark, patent or proprietary notice affixed to the media or
- packaging of the Software or displayed by or in the Software; (xv)
- access or attempt to access SideFX' network, databases, or
- systems (other than to download the Software); or (xvi) perform load
- tests, network scans, penetration tests, ethical hacks or any other
- security auditing procedures on the SideFX network.
- 4.2. Further Restrictions on Use of Software. Licensee agrees that it
- will not, and will not permit any third party to, directly or
- indirectly: (i) Use the Software to conduct any competitive analysis
- of or with the Software; (ii) access the Software in order to compete
- or build a competitive product or service, or impair the market for
- the Software or any part thereof; or (iii) copy any features,
- functions, graphics or other component of the Software.
- 4.3. Restrictions on Open Source Software. Licensee's use of the Open
- Source Software is governed by the Open Source Licenses, as
- applicable.
- 5. OWNERSHIP AND RESERVATION OF RIGHTS
- 5.1. Ownership of Software. The Software is not sold; it is licensed
- to Licensee under the terms and conditions of this Agreement. SideFX
- and its licensors are the owners of the Software, including all
- intellectual property rights (including trade secrets rights)
- relating thereto. No title to the Software or such rights is
- transferred to Licensee by this Agreement. All rights not expressly
- granted pursuant to this Agreement are reserved by SideFX.
- 5.2. Feedback. SideFX shall own, and Licensee shall not have
- any right, title or interest in, any enhancements or other
- modifications to the Software created based on any suggestions,
- enhancement requests, recommendations or other feedback provided by or
- on behalf of Licensee or Authorized Users.
- 6. FEES AND PAYMENT
- 6.1. Fees. Fees are based upon, among other things: (i) the
- applicable License Type; (ii) the characteristics of Licensee; and
- (iii) the number of authorized Licenses, whether or not the Licenses
- are used. All fees are payable in full, without deduction or offset,
- upon purchase of the Entitlements or Licenses unless otherwise agreed
- by the parties, unless SideFX agrees to invoice Licensee, in
- which case the applicable fees are payable within the period set out
- in the invoice (and if no period is set out in the invoice, within
- thirty (30) days of the date on which Licensee receives the invoice).
- All fees are non-cancelable and non-refundable. SideFX may
- suspend Use of the Software, without liability to SideFX, in the
- event that any amounts payable by Licensee are past due or Licensee is
- otherwise in breach of this Agreement. Entitlements and Licenses for
- certain License Types may be provided free of charge.
- 6.2. Indie Licenses. The pricing applicable to Indie Licenses is only
- available to those individuals or Organizations (the \"Indie User\")
- where: (i) such Indie User and its Affiliates and related individuals
- collectively have in the current calendar year, or had in the most
- recently completed calendar year, directly or indirectly, aggregate
- gross revenues from all sources less than US$100,000; and (ii) in the
- case of an Indie User that is using the Software to create content for
- a third party that will use such content in connection with a
- Commercial activity, such third party and its Affiliates and related
- individuals collectively have in the current calendar year, or had in
- the most recently completed calendar year, directly or indirectly,
- aggregate gross revenues from all sources less than US$100,000. If
- Licensee is taking advantage of the pricing applicable to Indie
- Licenses, Licensee represents and warrants that it satisfies the
- criteria set out in this Section 6.2.
- 6.3. Taxes. All fees are exclusive of any Taxes. If SideFX has
- a legal obligation to pay or collect Taxes, the appropriate amount
- shall be invoiced to and paid by Licensee, unless Licensee provides
- SideFX with an acceptable tax exemption certificate issued by
- the appropriate taxing authority.
- 7. DISCLAIMER OF WARRANTIES AND LIMITATION OF LIABILITY
- 7.1. Limited Warranty. SideFX warrants that the Software will
- perform substantially in accordance with the applicable SideFX
- user documentation (excluding any errors in the documentation, as
- determined by SideFX in good faith). SideFX' entire
- responsibility and obligation, and Licensee's exclusive remedy, for
- any breach of the foregoing warranty shall be for SideFX to use
- commercially reasonable efforts to cause the Software to comply with
- such warranty.
- 7.2. Warranty Disclaimer. EXCEPT AS PROVIDED IN SECTION 7.1, THE
- SOFTWARE IS PROVIDED \"AS IS\" WITHOUT WARRANTY OR CONDITION OF ANY
- KIND, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE IN LAW OR EQUITY,
- INCLUDING ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE,
- NON-INFRINGEMENT, MERCHANTABLE QUALITY, FITNESS FOR A PARTICULAR
- PURPOSE OR THOSE ARISING OTHERWISE FROM A COURSE OF DEALING OR USAGE
- OF TRADE, ALL OF WHICH ARE SPECIFICALLY DISCLAIMED TO THE MAXIMUM
- EXTENT PERMITTED BY LAW. WITHOUT LIMITING THE FOREGOING, SIDEFX
- DOES NOT WARRANT THAT: (i) THE SOFTWARE WILL MEET LICENSEE'S NEEDS OR
- REQUIREMENTS; ii) THE SOFTWARE WILL RUN WITHOUT INTERRUPTION OR BE
- ERROR FREE; (iii) THE SOFTWARE IS IMPENETRABLE OR OTHERWISE MEETS ANY
- SECURITY STANDARDS; OR (iv) THE FUNCTIONS CONTAINED IN THE SOFTWARE
- WILL OPERATE IN ALL COMBINATIONS WHICH MAY BE SELECTED FOR USE BY
- LICENSEE. FOR PURPOSES OF THIS SECTION 7.2 (BUT NOT FOR PURPOSES OF
- SECTION 7.1), REFERENCES TO SOFTWARE INCLUDE THE OPEN SOURCE SOFTWARE.
- SIDEFX MAKES NO REPRESENTATIONS OR WARRANTIES, AND THERE ARE NO
- CONDITIONS, REGARDING THE OPEN SOURCE SOFTWARE.
- 7.3. Limitation on Types of Recoverable Damages. SIDEFX WILL
- ONLY BE LIABLE FOR DIRECT DAMAGES, SUBJECT TO SECTION 7.4. IN NO
- EVENT WILL SIDEFX BE LIABLE TO LICENSEE OR ANY OTHER PERSON FOR
- ANY LOST PROFITS, LOST OR DAMAGED DATA, OR ANY SPECIAL, INCIDENTAL,
- INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES OF ANY KIND, WHETHER BASED
- ON BREACH OF CONTRACT OR WARRANTY, TORT (INCLUDING NEGLIGENCE),
- PRODUCT LIABILITY OR OTHERWISE, EVEN IF SIDEFX IS INFORMED OR
- OTHERWISE HAS KNOWLEDGE OF THE POSSIBILITY OF SUCH DAMAGES AND EVEN IF
- SUCH DAMAGES WERE FORESEEABLE.
- 7.4. Monetary Cap on Damages. LICENSEE AGREES THAT THE MAXIMUM
- AGGREGATE LIABILITY OF SIDEFX AND ITS AFFILIATES, AND THEIR
- RESPECTIVE DIRECTORS, OFFICERS, EMPLOYEES, AGENTS AND REPRESENTATIVES
- FOR ALL CLAIMS UNDER ANY AND ALL CIRCUMSTANCES RELATING TO THE
- SOFTWARE UNDER ALL THEORIES OF LIABILITY WILL BE LIMITED TO: (I) WITH
- RESPECT TO SIDEFX' INDEMNITY OBLIGATION UNDER SECTION 8, THE
- FEES PAID TO SIDEFX BY LICENSEE IN RESPECT OF THE INFRINGING
- SOFTWARE IN THE TWELVE (12) MONTH PERIOD PRECEDING THE CLAIM IN
- RESPECT OF SUCH LIABILITY; AND (II) IN ALL OTHER INSTANCES, THE FEES
- PAID TO SIDEFX BY LICENSEE IN RESPECT OF THE APPLICABLE SOFTWARE
- IN THE THREE (3) MONTH PERIOD PRECEDING THE CLAIM IN RESPECT OF SUCH
- LIABILITY.
- 7.5. Essential Terms. The disclaimer of warranties and the limitation
- of liability in this Section 7 constitute an essential part of this
- Agreement. A fundamental breach or breach of a fundamental term of
- this Agreement by SideFX shall not limit the intended effect of
- Section 7 or any other provision of this Agreement which is intended
- to limit SideFX' liability. Licensee acknowledges that, but for
- the disclaimer of warranties and limitation of liability, SideFX
- would not enter into this Agreement.
- 8. INTELLECTUAL PROPERTY INFRINGEMENT INDEMNITY
- 8.1. Indemnity. Subject to Section 7, if any claim based upon an
- alleged direct infringement of a Canadian or American copyright or
- trade secret is asserted against Licensee by a third party (other than
- an Affiliate of Licensee) by virtue of its Use of the Software in
- accordance with this Agreement, SideFX will indemnify Licensee
- solely for direct damages (which, for greater certainty, excludes any
- accounting of profits) awarded to such third party and which the
- Licensee has been ordered to pay as a result of such claim, provided
- that SideFX: (i) receives prompt written notice of such claim;
- (ii) has the sole and exclusive right, if it chooses, to control and
- direct the investigation and the defense or settlement of such claim;
- and (iii) receives the reasonable cooperation and assistance of
- Licensee as requested by SideFX, at SideFX' expense.
- 8.2. Exclusions. SideFX shall have no obligation or liability
- under Section 8.1 if the infringement relates to: (i) Use of the
- Software other than as expressly authorized under this Agreement; (ii)
- the combination, merger or interface of the Software with other
- software by Licensee or a third party; or (iii) compliance with any
- Licensee instructions or requests. SideFX shall also have no
- obligation or liability under Section 8.1 in connection with any
- software or other technology not claimed to be owned by SideFX,
- including without limitation, the Open Source Software and any
- materials related thereto.
- 8.3. SideFX Options. If the Software infringes, or in the
- reasonable determination of SideFX is likely to infringe, any
- third party's intellectual property rights, SideFX may, at its
- option, either: (i) procure for Licensee the right to continue Using
- the Software or replace or modify the Software (without loss of
- functionality) so that it becomes non-infringing; or (ii) terminate
- this Agreement and refund the license fee paid by Licensee less a
- reasonable amount for any value received by Licensee.
- 8.4. Exclusive Remedy. THE FOREGOING PROVISIONS OF THIS SECTION 8
- STATE SIDEFX' ENTIRE LIABILITY AND OBLIGATIONS, AND THE
- EXCLUSIVE REMEDY OF LICENSEE, WITH RESPECT TO ANY ACTUAL OR ALLEGED
- INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS.
- 9. TERM AND TERMINATION
- 9.1. Term. Licensee's right to Use the Software pursuant to any given
- License shall terminate at the end of the term for the License Type
- associated with such License, as such term is set out in Appendix A to
- this Agreement.
- 9.2. Termination by Licensee for Convenience. Subject to Section 6.1,
- Licensee may terminate this Agreement at any time by providing SideFX
- with written notice of same and complying with Section 9.4.
- 9.3. Termination by SideFX. SideFX may terminate this
- Agreement, and therefore the right granted under Section 2.1, upon
- notice to Licensee: (i) if Licensee breaches any of the terms and
- conditions of this Agreement and, if curable, fails to cure such
- breach to the satisfaction of SideFX within fifteen (15) days of
- SideFX notifying Licensee of the breach; (ii) if Licensee
- breaches any of its payment obligations under this Agreement and fails
- to make full payment within ten (10) days of SideFX notifying
- Licensee of such breach; (iii) Licensee undergoes a Change of Control
- without the prior written consent of SideFX (which consent may
- be withheld by SideFX in its sole and absolute discretion); (iv)
- Licensee commits any act of bankruptcy, becomes insolvent or admits
- its insolvency (as defined or provided for in any applicable statute);
- (v) any proceeding, voluntary or involuntary, is commenced respecting
- Licensee pursuant to any statute relating to bankruptcy, insolvency,
- reorganization of debts, liquidation, winding up or dissolution,
- including any proceedings under the Bankruptcy and Insolvency Act, the
- Companies' Creditors Arrangement Act or the Winding-Up and
- Restructuring Act; (vi) Licensee passes any resolution for its
- liquidation, winding up or dissolution; or (vii) Licensee ceases to
- carry on business in the ordinary course.
- 9.4. Licensee Obligations Upon Termination. Upon receipt by Licensee
- of written notice of termination from SideFX, or termination by
- Licensee, Licensee shall immediately: (i) unredeem all Entitlements
- (i.e. return all Licenses) using the tools provided as part of the
- Software; (ii) cease Using the Software; (iii) permanently delete all
- installed and back-up copies of the Software; and (iv) within five (5)
- days after the date of such termination, provide SideFX with a
- written confirmation that Licensee has complied with all of the
- foregoing.
- 9.5. Survival. The provisions of Sections 2.3 (excluding part (v)),
- 3.11, 4 (without limiting the intended effect of Section 9.4), 5, 6,
- 7.3, 7.4, 7.5, 9.4, 9.5, 10, 11 (excluding 11.11) and 12 shall survive
- termination of this Agreement.
- 10. CERTIFICATION AND INSPECTION
- 10.1. Certification. Within ten (10) days of a request by SideFX, a
- Certification Authority of Licensee shall, after making due inquiry,
- certify in writing to SideFX, as applicable: (i) that Licensee (and
- in the case of a Global Access License, each applicable Licensee
- Affiliate and third party Authorized User) is, and has continuously
- been, in full compliance with the terms and conditions of this
- Agreement, including all applicable restrictions and limitations on
- installation and Use of the Software; or (ii) the extent to which
- Licensee (or in the case of a Global Access License, any applicable
- Licensee Affiliate or third party Authorized User) is not, or has not
- been, in full compliance with the terms and conditions of this
- Agreement, including all applicable restrictions and limitations on
- the installation of Licenses and Use of the Software. Licensee shall
- provide such supporting evidencing as SideFX may reasonably request.
- \"Certification Authority\" means: (a) Licensee, where Licensee is an
- individual; or (b) a senior officer, signing authority or other
- senior official of Licensee, where Licensee is an Organization. For
- certainty, failure to provide the certification as required by this
- Section is a material breach of this Agreement that entitles SideFX
- to terminate this Agreement and to any other remedies that may be
- available to SideFX at law or in equity.
- 10.2. Inspection. SideFX or its authorized representative may
- at any time after written notice to Licensee, electronically or
- otherwise, reasonably inspect Licensee's (and in the case of a Global
- Access License, each applicable Licensee Affiliate's and third party
- Authorized User's) records, systems and facilities in order to ensure
- compliance with this Agreement. Licensee will provide (and in the case
- of a Global Access License, ensure that each applicable Licensee
- Affiliate and third party Authorized User provides) full cooperation
- in connection with any such inspection, including the provision of
- such additional documentation and information as SideFX may
- reasonably request. Licensee shall ensure that the agreement between
- Licensee and each applicable Licensee Affiliate and third party
- Authorized User includes the right for SideFX to perform such
- inspections.
- 10.3. Remediation. If as a result of a certification pursuant to
- Section 10.1, or an inspection pursuant to Section 10.2, SideFX
- determines that Licensee's (or in the case of a Global Access License,
- any applicable Licensee Affiliate's or third party Authorized User's)
- installation of Licenses or Use of the Software is not, or has not
- been, in conformity with this Agreement, Licensee shall promptly: (i)
- obtain the applicable Entitlement(s) or License(s) from SideFX
- required for such installation or Use; (ii) pay the applicable fees in
- respect of such License(s) for prior and future Use; and (iii) pay all
- reasonable costs and expenses incurred by SideFX in respect of
- the certification or inspection, as applicable.
- 11. MISCELLANEOUS
- 11.1. Relationship of Parties. In giving effect to this Agreement,
- neither party will be or be deemed an agent of the other for any
- purpose and their relationship in law to the other will be that of
- independent contractors. Nothing in this Agreement will constitute a
- partnership in law or a joint venture between the parties. Neither
- party will have the right to enter into contracts, pledge the credit
- of or incur expenses on behalf of the other.
- 11.2. No Waiver. Any waiver of any terms or conditions of this
- Agreement will be effective only if in writing and signed by the party
- granting such waiver. Such waiver shall be effective only in the
- specific instance and for the specific purpose for which it has been
- given and shall not be deemed or constitute a waiver of any other
- provisions (whether or not similar) nor shall such waiver constitute a
- continuing waiver unless otherwise expressly provided. The failure of
- either party to exercise, and any delay in exercising, any of its
- rights hereunder, in whole or in part, shall not constitute or be
- deemed a waiver or forfeiture of such rights, neither in the specific
- instance nor on a continuing basis. No single or partial exercise of
- any such right shall preclude any other or further exercise of such
- right or the exercise of any other right.
- 11.3. Severability. If for any reason a court of competent
- jurisdiction finds any terms or conditions of this Agreement, or
- portion thereof, to be unenforceable, the remainder of this Agreement
- will continue in full force and effect.
- 11.4. Assignment. Licensee shall not assign or transfer this
- Agreement or any of its rights or obligations hereunder (whether in
- connection with or as a result of any consolidation, arrangement,
- reorganization, amalgamation, acquisition, merger, sale, operation of
- law, or otherwise), in whole or in part, without the prior written
- consent of SideFX (which consent may be withheld by SideFX
- in its sole and absolute discretion).
- 11.5. Entire Agreement. This Agreement constitutes the entire
- agreement between the parties with respect to the subject matter
- hereof, and supersedes and replaces all prior or contemporaneous
- understandings or agreements, written or oral, regarding such subject
- matter and there are no representations, warranties, conditions or
- other agreements between the parties in connection with the subject
- matter hereof except as specifically set forth herein.
- 11.6. Binding Arbitration. Unless otherwise agreed in writing by the
- parties, all disputes relating to this Agreement shall not be
- submitted to the courts for resolution, but may be submitted to final
- and binding arbitration by either party pursuant to the Arbitration
- Act, 1991 (Ontario) (the \"Arbitration Act\"). The arbitration shall be
- treated as confidential and will be held in Toronto, Canada. The
- arbitral tribunal shall be composed of one arbitrator (the
- \"Arbitrator\"). The party that wishes to initiate the arbitration (the
- \"Applicant\") shall deliver a notice to that effect (the \"Notice to
- Arbitrate\") to the other party, which notice shall nominate an
- individual to act as the Arbitrator. Within thirty (30) days of the
- date of receipt of the Notice to Arbitrate (the \"Response Date\") the
- other party (the \"Respondent\") shall, by notice to the Applicant,
- either signify its acceptance of the nominee or, in the alternative,
- propose an alternative individual to act as the Arbitrator (the
- \"Response\"). If the Respondent fails to provide a Response by the
- Response Date, the Respondent shall be deemed to have accepted the
- Applicant's nominee for Arbitrator. If the Respondent provides a
- Response by the Response Date suggesting an alternative individual to
- act as Arbitrator, the Applicant shall within thirty (30) days of the
- date of receipt of the Response, by notice to the Respondent, signify
- either its acceptance or rejection of the Respondent's nominee for
- Arbitrator. If the Applicant fails to provide notice by such date,
- the Applicant shall be deemed to have accepted the Respondent's
- nominee for Arbitrator. If the Applicant provides notice by such date
- signifying its rejection of the Respondent's nominee for Arbitrator,
- the parties shall use commercially reasonable efforts to cause their
- respective nominees to select the Arbitrator. Any costs associated
- with same shall be borne equally by the parties. If such selection
- does not occur within thirty (30) days of the date of the Applicant's
- rejection notice, then the Applicant may apply to the Superior Court
- of Justice of Ontario for the appointment of an arbitrator pursuant to
- the provisions of the Arbitration Act. The costs of the application
- shall be borne equally by the parties. The parties agree that they
- will act reasonably and in good faith to ensure the selection of an
- Arbitrator who is objective, independent and suitably qualified to
- deal with the dispute. Upon failure, refusal or inability of the
- Arbitrator to act, his or her successor shall be appointed in the same
- manner. The costs of the Arbitration shall be in the discretion of
- the Arbitrator.
- 11.7. Governing Law and Jurisdiction for Resolving Claims. Subject to
- Section 11.6, this Agreement shall be governed by the laws of the
- Province of Ontario, Canada and the federal laws of Canada applicable
- therein and the parties irrevocably submit to the non-exclusive
- jurisdiction of the Ontario courts. The parties expressly disclaim
- the application of the United Nations Convention for the International
- Sale of Goods.
- 11.8. Headings; Sections. The division of this Agreement into
- sections and the insertion of headings are for convenience of
- reference only and shall not affect the construction or interpretation
- of this Agreement. References herein to Sections are to sections of
- this Agreement.
- 11.9. Interpretation of \"including\". Where the word \"include\",
- \"includes\" or \"including\" is used in this Agreement, it means
- \"include\", \"includes\" or \"including\", in each case, \"without
- limitation\".
- 11.10. Non-Exclusive Remedies. All remedies provided for under this
- Agreement are non-exclusive and are in addition, and without
- prejudice, to any other rights as may be available to SideFX,
- whether in law or equity. By electing to pursue a remedy, SideFX
- does not waive its right to pursue any other available remedies.
- 11.11. Export Compliance. Each party shall comply with the export
- laws and regulations of Canada, the United States, and other
- applicable jurisdictions in its provision and, in the case of
- Licensee, its downloading, installation and Use of, the Software.
- Without limiting the foregoing: (i) each of SideFX and Licensee
- represents that it is not named on any U.S. government list of person
- or entities prohibited from receiving exports; and (ii) Licensee shall
- not permit any Person to Use the Software in violation of any U.S.
- export embargo, prohibition, or restriction.
- 11.12. Publicity. Neither party may issue press releases relating to
- this Agreement without the other party's prior written consent, or use
- in any manner the name(s), logo(s) or trade-mark(s) of the other party
- without such other party's prior written consent. Each party hereby
- consents to the inclusion of its name and logo by the other party
- among at least three other companies in lists of customers or vendors
- in accordance with the other party's standard guidelines.
- 11.13. Language. The parties acknowledge that they have required this
- Agreement to be written in English. Les parties aux présentes
- reconnaissent qu'elles ont exigé que la présente entente soit rédigée
- en anglais.
- 11.14. Notice. Any notice, demand or other communication (in this
- Section, a \"notice\") required or permitted to be given or made under
- this Agreement will be in writing and will be sufficiently given or
- made if: (i) delivered in person during normal business hours of the
- recipient on a Business Day and left with a receptionist or other
- responsible employee of the recipient; (ii) except during any period
- of actual or imminent interruption of postal services due to strike,
- lockout or other cause, sent by registered mail; or (iii) sent by
- facsimile transmission or other electronic means which produces a
- written record of successful transmission, or by email if receipt is
- confirmed by the sender's email system. Notices to Licensee shall be
- sent to the most recent address, facsimile number or email address
- provided by Licensee to SideFX and to the attention of the
- contact person on file with SideFX. Notices to SideFX
- shall be sent to Suite 1401, 123 Front Street West, Toronto, Ontario,
- M5J 2M2, or (416) 504-6648 or notices@sidefx.com, to the attention of
- Chief Financial Officer. Each notice sent in accordance with this
- Section will be deemed to have been received: (iv) on the day it was
- delivered; (v) on the seventh (7th) Business Day after it was mailed
- (excluding each day on which there is any interruption of postal
- services due to strike, lockout or other cause); (vi) on the same day
- that it was sent by facsimile transmission or email provided that it
- was sent during normal business hours of the recipient on a Business
- Day, otherwise, on the first Business Day thereafter. Contact
- information for notice may be changed by giving notice in accordance
- with this Section. \"Business Day\" means any day of the week except
- Saturday, Sunday or any statutory or civic holiday observed in
- Toronto, Ontario.
- 12. DEFINITIONS
- When used in this Agreement, each of the following terms has the
- meaning given to such term below, and grammatical variations of such
- terms have corresponding meanings.
- \"Affiliate\" of a party means any Person that directly, or
- indirectly through one or more intermediaries, Controls or is
- Controlled by such party, or is Controlled by a Person who also
- Controls such party.
- \"Agreement\" means this SideFX Software License Agreement, as
- may be amended in accordance with its terms.
- \"Applicant\" has the meaning set out in Section 11.6.
- \"Arbitrator\" has the meaning set out in Section 11.6.
- \"Arbitration Act\" has the meaning set out in Section 11.6.
- \"Authorized Subcontractors\" means third parties sub-contracted by
- Licensee to create content for Licensee.
- \"Authorized Users\" means: (i) in the case of all License Types
- other than a Global Access License and a Project License, Licensee
- Personnel; and (ii) in the case of a Global Access License and
- Project License (A) Licensee Personnel, and (B) Licensee Affiliate
- Personnel and employees of Authorized Subcontractors, provided
- that Licensee has given SideFX notice of such Affiliates and
- Authorized Subcontractors, and provided that such Licensee
- Affiliate Personnel and employees of Authorized Subcontractors are
- Using the Software solely to create content for Licensee.
- \"Certification Authority\" has the meaning set out in Section 10.1.
- \"Change of Control\" of Licensee means a change of the Person or
- Persons that directly or indirectly Control Licensee.
- \"Client Computers\" has the meaning set out in Section 3.3.
- \"Cloud Service\" means a third party service that provides access
- to a pool of Computers for installation, hosting, processing
- and/or storage of software and/or data, where such Computers are
- outside of the direct physical control and/or ownership of the
- Person obtaining the service and where such Computers may or may
- not be shared by other Persons.
- \"Commercial\" means any activity carried on with the intention of,
- or with a view to, generating revenue or other compensation,
- directly or indirectly, or that actually generates revenue or
- other compensation, directly or indirectly.
- \"Commercial License\" means any License other than a Non-Commercial
- License, including a License that is any of the following License
- Types: Commercial Workstation License, Indie License, Local Access
- License, Global Access License and Project License.
- \"Computer\" means: (i) an electronic device containing one or more
- central processing units that runs an operating system and accepts
- information in digital or similar form and manipulates the
- information for a specific result based on a sequence of
- instructions; or (ii) a software implementation of such a device
- (including virtual machines and other emulation technology); in
- each case that is owned, leased, rented or borrowed by Licensee or
- the Authorized User.
- \"Control\" means the possession, directly or indirectly, of the
- power to direct or cause the direction of the management or
- policies of an entity, whether through the ownership of voting
- securities, by contract or otherwise.
- \"Entitlement\" means a string of data residing on SideFX'
- systems that the Licensee can redeem (i.e. trade in exchange for a
- License) or un-redeem, using the tools provided as part of the
- Software.
- \"Indie User\" has the meaning set out in Section 6.2.
- \"License\" means a string of data that is issued upon the
- redemption of an Entitlement, or issued by SideFX directly,
- and that, when installed on a Computer, allows the Software to be
- Used on that Computer.
- \"License Server\" has the meaning set out in Section 3.3.
- \"License Type\" has the meaning set out in Section 3.1.
- \"Licensee\" has the meaning set out in Section 1.1.
- \"Licensee Affiliate Personnel\" means the (i) employees (including
- contract employees) of the applicable Licensee Affiliate, (ii)
- third parties subcontracted by the applicable Licensee Affiliate
- to create content for Licensee, (iii) co-op and other students
- engaged by and otherwise working with the applicable Licensee
- Affiliate, and (iv) interns of the applicable Licensee Affiliate.
- \"Licensee Personnel\" means: (i) if Licensee is an individual, that
- individual; or (ii) if Licensee is an Organization (A) Licensee's
- employees (including contract employees), (B) independent
- contractors engaged by Licensee, (C) co-op and other students
- engaged by and otherwise working with or for Licensee, and (D)
- Licensee's interns.
- \"Network Installation\" has the meaning set out in Section 3.3.
- \"Non-Commercial License\" means a License that is any of the
- following License Types: Apprentice License, Education License and
- Evaluation License.
- \"Notice to Arbitrator\" has the meaning set forth in Section 11.6.
- \"Open Source Software\" and \"Open Source Licenses\" have the
- respective meanings set out in Section 3.11.
- \"Orbolt Website\" has the meaning set out in Section 3.10.
- \"Organization\" has the meaning set out in Section 1.1.
- \"Person\" includes an individual, corporation, partnership, joint
- venture, trust, unincorporated organization, the Crown or any
- agency or instrumentality of the foregoing or any other judicial
- entity recognized by law.
- \"Related Materials\" means all materials related to the software
- being installed and all Upgrades, including documentation, user
- manuals, training videos, tutorials and files, provided directly
- or indirectly by SideFX, whether on-line or otherwise.
- \"Response\" has the meaning set out in Section 11.6.
- \"Response Date\" has the meaning set out in Section 11.6.
- \"Respondent\" has the meaning set out in Section 11.6.
- \"SideFX\" has the meaning set out in the preamble to this
- Agreement.
- \"Software\" has the meaning set out in the preamble to this
- Agreement.
- \"Taxes\" means any direct or indirect local, state, provincial,
- federal or foreign taxes, levies, duties or similar government
- charges or assessments of any nature, including sales taxes,
- value-added taxes and withholding taxes, exigible on the
- transaction contemplated by this Agreement.
- \"Territory\" means: (a) the country, state, province, municipality
- or other jurisdiction specified in the Transaction Confirmation;
- (b) where no Transaction Confirmation is provided to Licensee and
- Licensee obtains Entitlements(s) through the online process, the
- Territory will be the province (in the case of Canada), state (in
- the case of the United States) or equivalent administrative
- division (in the case of some other country) that corresponds with
- the address confirmed as part of the online purchase verification;
- (c) if no country, state, province, municipality or other
- jurisdiction is specified in the Transaction Confirmation or the
- online purchase verification, the Territory shall be the province
- (in the case of Canada), state (in the case of the United States)
- or equivalent administrative division (in the case of some other
- country) where Licensee originally installed the License(s). In
- the case of a Global Access License, the Territory will be the
- world. With respect to non-interactive Use of the Software in the
- case of a Network Installation, the Territory will be the world.
- \"Third Party Rendering Software\" has the meaning set out in
- Section 3.7.
- \"Transaction Confirmation\" means an invoice issued by SideFX
- to Licensee in respect of Licensee's licensing of the Software or,
- where no invoice is issued, the email, quotation or other
- communication provided by SideFX to Licensee, setting out
- certain particulars in respect of the licensing of the Software to
- Licensee, which may include: (i) Licensee's name and contact
- information; (ii) the Software product being licensed; (iii) the
- applicable License Type(s); (iv) the fees payable to SideFX;
- (v) the applicable Territory; (vi) the number of Entitlements
- and/or Licenses issued or to be issued; (vii) the locations from
- which the Software may be Used; (viii) the applicable term(s)
- and/or termination date(s); and/or (xix) any additional
- restrictions on Use of the Software.
- \"Updated Agreement\" has the meaning set out in Section 1.3.
- \"Upgrades\" means all updated and/or upgraded versions of the
- software being installed that SideFX provides or makes
- available to Licensee from time to time.
- \"Usage Purpose\" means: (i) where Licensee is engaged primarily in
- Commercial activities, the internal requirements of Licensee's
- business in the ordinary course of such business; and (ii) where
- Licensee is engaged primarily in non-Commercial activities, the
- internal requirements of Licensee's ordinary course activities.
- Notwithstanding the forgoing, the Usage Purpose shall not in
- either case include the Use of the Software by any Licensee
- Personnel of an Organization for any personal projects where it is
- reasonably expected that revenue may be earned.
- \"Use\", \"Used\" or \"Using\" means: (i) to access, initiate, execute,
- run, display, view and operate the Software, including to author,
- modify and run digital assets; and (ii) in the case of the Related
- Materials only, to review and print.
- \"Work Station Installation\" has the meaning set out in Section
- 3.4.
- APPENDIX A
- TERMS AND CONDITIONS OF LICENSE TYPES
- (capitalized terms used below are defined in the Agreement)
- Trial License Type
- Permitted Use
- The Software may be Used only for non-Commercial purposes. The
- Software may not be Used to generate any work product that
- will be used in any Commercial manner.
- Only Licensee Personnel can Use the Software.
- Installation
- For each License issued, Licensee may install the License and
- Use the Software only pursuant to a Workstation Installation.
- License Relocation
- No relocating of the License is permitted.
- Dedicated Computer / License Server Relocation
- No relocations permitted.
- Term
- Fifteen (15) days from the License Activation Date.
- Education License Type
- Permitted Use
- The Software may be Used only for: (A) purposes directly
- related to learning, teaching, training and research that are
- part of the instructional functions performed by a formal
- educational institution, such as a degree-granting or
- certificate-granting college or university, or any other
- dedicated learning, teaching or training facility; or (B)
- training and education purposes by a Licensee engaged in
- Commercial activities. The Software may not be Used to
- generate any work product that will be used in any Commercial
- manner.
- Only Licensee Personnel can Use the Software.
- Installation
- Licensee may (A) for each License issued, install the License
- and Use the Software pursuant to a Workstation Installation,
- or (B) if multiple Licenses are issued for the purpose of
- usage on a network, install the Licenses and Use the Software
- pursuant to a Network Installation.
- License Relocation
- Licensee may relocate the License from the dedicated Computer
- or a License Server, as applicable, to another Computer (in
- which case such Computer would then be the dedicated Computer
- or the License Server, as applicable) only (A) within the
- Territory, (B) within a one hundred (100) kilometre radius of
- where the dedicated Computer or License Server was located
- when the License was originally installed, and (C) upon prior
- written notice to SideFX. A maximum of one (1) such
- relocation is permitted without paying the applicable
- relocation fee to SideFX. (*)
- Dedicated Computer / License Server Relocation
- Licensee may relocate the dedicated Computer only (A) within
- the Territory, (B) to a location within a one hundred (100)
- kilometre radius of where the dedicated Computer was located
- when the License was originally installed, and (C) upon the
- prior written consent of SideFX (which consent may be
- withheld by SideFX in its sole and absolute discretion).
- Term
- Three hundred and sixty five (365) days from the License
- Activation Date.
- Evaluation License Type
- Permitted Use
- The Software may be Used only for purposes of internal
- evaluation and demonstration of the capabilities of the
- Software by and to Authorized Users. The Software may not be
- Used to generate any work product that will be used in any
- Commercial manner.
- Only Licensee Personnel can Use the Software, unless otherwise
- agreed by SideFX and set out in the Transaction
- Confirmation.
- Installation
- Licensee may (A) for each License issued, install the License
- and Use the Software pursuant to a Workstation Installation,
- or (B) if multiple Licenses are issued for the purpose of
- usage on a network, install the Licenses and Use the Software
- pursuant to a Network Installation.
- License Relocation
- Licensee may relocate the License from the dedicated Computer
- or a License Server, as applicable, to another Computer (in
- which case such Computer would then be the dedicated Computer
- or the License Server, as applicable) only (A) within the
- Territory, and (B) upon prior written notice to SideFX.
- A maximum of one (1) such relocation is permitted without
- paying the applicable relocation fee to SideFX. (*)
- Dedicated Computer / License Server Relocation
- Licensee may relocate the dedicated Computer only (A) within
- the Territory, and (B) upon the prior written consent of
- SideFX (which consent may be withheld by SideFX in its sole
- and absolute discretion).
- Term
- Thirty (30) days from the License Activation Date.
- Commercial Workstation License Type
- Permitted Use
- The Software may be Used for Commercial or non-Commercial
- purposes.
- Only Licensee Personnel can Use the Software.
- The number of Licenses available to Licensee and its
- Affiliates is limited to a maximum of five (5), unless
- otherwise agreed by SideFX.
- Installation
- For each License issued, Licensee may install the License and
- Use the Software only pursuant to a Workstation Installation.
- License Relocation
- Licensee may relocate the License from the dedicated Computer
- to another Computer (in which case such Computer would then be
- the dedicated Computer) only (A) within the Territory, (B)
- within a one hundred (100) kilometre radius of where the
- dedicated Computer was located when the License was originally
- installed, and (C) upon prior written notice to SideFX.
- A maximum of two (2) such relocations in any rolling seven
- hundred and fifty (750) day period is permitted without paying
- the applicable relocation fee to SideFX. (*)
- Dedicated Computer / License Server Relocation
- Licensee may relocate the dedicated Computer only (A) within
- the Territory, (B) to a location within a one hundred (100)
- kilometre radius of where the dedicated Computer was located
- when the License was originally installed, and (C) upon the
- prior written consent of SideFX (which consent may be
- withheld by SideFX in its sole and absolute discretion).
- Notwithstanding the foregoing paragraph and part (b) of
- Section 2.1 of the Agreement, if Licensee is an individual
- freelance worker who is self-employed and does not have an
- affiliation or long-term (i.e. longer than nine (9) months)
- contractual arrangement with any particular Organization,
- Licensee may relocate the dedicated Computer and Use the
- Software anywhere in the world in order to provide freelance
- services to third parties.
- Term
- Starting from the License Activation Date and ending on: (i)
- the termination date as set out in the Transaction
- Confirmation; or (ii) if there is no Transaction Confirmation,
- the termination date selected upon purchase of the applicable
- License.
- Indie License Type
- Permitted Use
- The Software may be Used for Commercial purposes, subject to
- the revenue limitations set out in Section 6.2 of the
- Agreement.
- An Indie User and its Affiliates and related individuals,
- collectively, may have or Use a maximum of three (3) purchased
- Indie Licenses at any given time.
- SideFX may elect to issue one supplementary License with each
- purchased Indie License in order to enable the Indie User to
- use The Software on a dual-boot Computer or a second Computer.
- The supplementary License may only be Used by the same Indie
- User using the corresponding purchased Indie License.
- Installation
- For each License issued, Licensee may install the License and
- Use the Software only pursuant to a Workstation Installation.
- License Relocation
- Licensee may relocate the License from the dedicated Computer
- to another Computer (in which case such Computer would then be
- the dedicated Computer) only (A) within the Territory, and (B)
- within a one hundred (100) kilometre radius of where the
- dedicated Computer was located when the License was originally
- installed. A maximum of one (1) such relocation is permitted
- without paying the applicable relocation fee to SideFX.
- (*)
- Dedicated Computer / License Server Relocation
- Licensee may relocate the dedicated Computer only (A) within
- the Territory, and (B) to a location within a one hundred
- (100) kilometre radius of where the dedicated Computer was
- located when the License was originally installed.
- Notwithstanding the foregoing paragraph and part (b) of
- Section 2.1 of the Agreement, if Licensee is an individual
- freelance worker who is self-employed and does not have an
- affiliation or long-term (i.e. longer than nine (9) months)
- contractual arrangement with any particular Organization,
- Licensee may relocate the dedicated Computer and Use the
- Software anywhere in the world in order to provide freelance
- services to third parties.
- Term
- Three hundred and sixty five (365) days or seven hundred and
- thirty (730) days from the License Activation Date.
- Local Access License Type
- Permitted Use
- The Software may be Used for Commercial or non-Commercial
- purposes.
- Only Licensee Personnel can Use the Software
- Installation
- Licensee may install the Licenses and Use the Software only
- pursuant to a Network Installation.
- License Relocation
- Licensee may relocate the Licenses from a License Server to
- another Computer (in which case such Computer would then be
- the License Server) only (A) within the Territory, (B) within
- a one hundred (100) kilometre radius of where the License
- Server was located when the License was originally installed,
- and (C) upon prior written notice to SideFX. A maximum
- of two (2) such relocations in any rolling seven hundred and
- fifty (750) day period is permitted without paying the
- applicable relocation fee to SideFX, and is permitted
- solely when the License Server is being replaced or upgraded.
- (*)
- Dedicated Computer / License Server Relocation
- Licensee may relocate a License Server only (A) within the
- Territory, (B) to a location within a one hundred (100)
- kilometre radius of where the License Server was located when
- the License was originally installed, and (C) upon the prior
- written consent of SideFX (which consent may be withheld
- by SideFX in its sole and absolute discretion).
- Licensee may relocate a Client Computer only (A) within the
- Territory, (B) to a location within a one hundred (100)
- kilometre radius of where the License Server, and (C) upon the
- prior written consent of SideFX (which consent may be
- withheld by SideFX in its sole and absolute discretion).
- Part (B) of this paragraph shall not apply to any Client
- Computer that is used solely for non-interactive Use of the
- Software.
- Term
- Starting from the License Activation Date and ending on the
- termination date as set out in the Transaction Confirmation.
- Global Access License Type
- Permitted Use
- The Software may be Used for Commercial or non-Commercial
- purposes.
- The Software can be Used by (A) Licensee Personnel, and (B)
- Licensee Affiliate Personnel and employees of Authorized
- Subcontractors (subject to the additional requirements and
- limitations set out in the definition of Authorized Users in
- Section 12 of the Agreement).
- Installation
- Licensee may install the Licenses and Use the Software only
- pursuant to a Network Installation.
- License Relocation
- No restrictions on the relocation of Licenses.
- Dedicated Computer / License Server Relocation
- No restrictions on the relocation of License Servers or Client
- Computers
- Term
- Starting from the License Activation Date and ending on the
- termination date as set out in the Transaction Confirmation.
- Project License Type
- Permitted Use
- The Software may be Used for Commercial or non-Commercial
- purposes and solely for purposes of creating content for the
- project as described in the Transaction Confirmation (the
- \"Project\") by up to the number of Authorized Users set out in
- the Transaction Confirmation.
- The Software can be Used by (A) Licensee Personnel, and (B)
- Licensee Affiliate Personnel and employees of Authorized
- Subcontractors (subject to the additional requirements and
- limitations set out in the definition of Authorized Users in
- Section 12 of the Agreement).
- Installation
- Licensee may install the Licenses and Use the Software only
- pursuant to a Network Installation.
- License Relocation
- No restrictions on the relocation of Licenses.
- Dedicated Computer / License Server Relocation
- No restrictions on the relocation of License Servers or Client
- Computers.
- Term
- Starting from the License Activation Date and ending on the
- earlier of: (A) the date that the Project is completed as
- evidenced by the film, game or other product being made
- Commercially available; and (B) the outside date set out in
- the Transaction Confirmation.
- (*) For greater certainty, SideFX reserves the right to decline
- to consent to any relocation of the License from the dedicated
- Computer or License Server beyond the number expressly permitted
- above, in its sole and absolute discretion.
- (**) For all License Types, interactive use of the Software is
- permitted only on a non-concurrent basis (as further described in
- Section 3.6 of the Agreement) and Use of the Software is otherwise
- subject to the restrictions and limitations set out in Sections 3 and
- 4 of the Agreement.
- (***) Note: The terms \"Agreement\", \"Authorized Users\", \"Commercial\",
- \"Computer\", \"License(s)\", \"License Activation Date\", \"Licensee
- Personnel\", \"Software\", \"Territory\", \"Transaction Confirmation\", and
- \"Used\" have the meaning set out in Section 12 of the Agreement. The
- terms \"License Server\" and \"Network Installation\" have the meaning set
- out in Section 3.3 of the Agreement. The term \"Workstation
- Installation\" has the meaning set out in Section 3.4 of the Agreement.
- The terms \"Licensee\" and \"Organization\" have the meaning set out in
- Section 1.1 of the Agreement. The term \"SideFX\" has the meaning
- set out in the preamble to the Agreement.
- "
- VER_MM="${VER_MAJOR}.${VER_MINOR}"
- VER_MMB="${VER_MM}.${VER_BUILD}"
- SIZE_HOUDINI="${SIZE_HOUDINI:-0}"
- SIZE_LICENSE="${SIZE_LICENSE:-0}"
- SIZE_ENGINE_MAYA="${SIZE_ENGINE_MAYA:-0}"
- SIZE_ENGINE_UNITY="${SIZE_ENGINE_UNITY:-0}"
- SIZE_HQUEUE="${SIZE_HQUEUE:-0}"
- SIZE_HOUDINI_MB=`echo "scale=1;$SIZE_HOUDINI/1024" | bc`
- SIZE_LICENSE_MB=`echo "scale=1;$SIZE_LICENSE/1024" | bc`
- SIZE_ENGINE_MAYA_MB=`echo "scale=1;$SIZE_ENGINE_MAYA/1024" | bc`
- SIZE_ENGINE_UNITY_MB=`echo "scale=1;$SIZE_ENGINE_UNITY/1024" | bc`
- SIZE_HQUEUE_MB=`echo "scale=1;$SIZE_HQUEUE/1024" | bc`
- SIZE_HQUEUE_CLIENT_MB=`echo "scale=1;$SIZE_HQUEUE_CLIENT/1024" | bc`
- INSTALL_ERROR=0
- LINUX_MIN=2.6
- HFS_LOCATION="/opt/hfs${VER_MMB}"
- hfsFileList="houdini_filelist"
- hfsSymlinkList="houdini_symlinklist"
- pythonFileList="python_filelist"
- engineMayaFileList="engine_maya_filelist"
- engineUnityFileList="engine_unity_filelist"
- binSymlinkList=("hkey" "houdini" "hython" "mantra")
- #-------------------------------------------------------------------------
- installHoudini="yes" # houdini + libs
- if [ "$EUID" = 0 ]; then
- licenseServer="yes" # License Server
- localLicensing="no" # Use local licensing mode
- else
- licenseServer="no" # License Server
- localLicensing="yes" # Use local licensing mode
- fi
- installEngineMaya="no"
- installEngineUnity="no"
- makeDirectory="no" # Create the specified directory if it doesn't exist
- installHQueue="no" # Install HQueue server
- hqServerDir=""
- createHQSharedDir=""
- hqSharedDir=""
- hqMountPoint=""
- upgradeHQIfExists=""
- installHQueueClient="no" # Install HQueue client
- hqClientDir=""
- hqServerName=""
- hqServerPort=""
- hqMountSharedDir=""
- desktopMenu="yes"
- binSymlink="no"
- hfsSymlink="yes"
- acceptedEULA="no" # Has the EULA been accepted?
- checkRoot="yes"
- autoInstall="no" # Install things automatically?
- cc="\c"; nn=
- test "`echo -n X`" = "X" && {
- nn=-n; cc=
- }
- #-------------------------------------------------------------------------
- copy_file_to_dir()
- {
- src_file="$1"
- dst_dir="$2"
- if [ ! -e "$dst_dir" ]
- then
- mkdir -p "$dst_dir" || return 1
- fi
- if [ ! -d "$dst_dir" -o ! -w "$dst_dir" ]
- then
- return 1
- fi
- cp "$src_file" "$dst_dir" || return 1
- return 0
- }
- #-------------------------------------------------------------------------
- clean_up()
- {
- ERROR="$1"
- case "$ERROR" in
- 0)
- if [ "$installHoudini" = "yes" ]; then
- echo "
- Houdini $VER_MM Installation completed.
- "
- echo "
- Please read $HFS_LOCATION/Readme.txt
- for instructions on how to run Houdini.
- "
- fi
- if [ "$INSTALL_ERROR" != 0 ]; then
- echo "*** NOTE ***
- Some install errors seem to have occurred.
- Your installation may not be complete.
- Please correct any serious problems and re-install if necessary.
- "
- fi
- echo ""
- echo "We hope you enjoy using Houdini $VER_MM"
- echo "Thank you."
- ;;
- 1) echo "Error creating installation directory."
- echo "Nothing was installed."
- ;;
- 2) echo "Nothing was installed."
- ;;
- 3) echo "$0: Fatal Error: couldn't locate distribution directory."
- echo "(Could not find houdini.tar.gz or houdini.tar)"
- echo ""
- echo "Nothing was installed."
- ;;
- 4) echo "You must agree to the license to install this software."
- ;;
- esac
- do_wait
- exit $ERROR
- }
- #-------------------------------------------------------------------------
- wait_for_license_acceptance()
- {
- while : ; do
- echo $nn "Do you agree to the above license terms? [yes or no] $cc"
- read ans
- case $ans in
- yes|YES|Yes)
- break
- ;;
- no|NO|No)
- clean_up 4
- break
- ;;
- *) echo "Enter yes or no"
- ;;
- esac
- done
- }
- #-------------------------------------------------------------------------
- accept_license_agreement()
- {
- echo $nn "$AGREEMENT_TEXT" | "$PAGER"
- wait_for_license_acceptance
- acceptedEULA="yes"
- }
- #-------------------------------------------------------------------------
- accept_alphabeta_license_agreement()
- {
- echo $nn "$AGREEMENT_ALPHABETA_TEXT" | "$PAGER"
- wait_for_license_acceptance
- }
- #-------------------------------------------------------------------------
- check_pwd()
- {
- for d in "$PWD" "$(dirname "$0")"; do
- if [ -f "$d/houdini.tar.gz" -o -f "$d/houdini.tar" ]; then
- export SRC="$(cd "$d" && pwd)"
- return
- fi
- done
- clean_up 3
- }
- #-------------------------------------------------------------------------
- check_os()
- {
- OS=`uname -s`
- REL=`uname -r`
- ARCH=`uname -m`
- OS_WARNINGS=""
- REL_MIN=0
- if [ "$OS" = "Linux" ]; then
- REL_MIN="$LINUX_MIN"
- else
- OS_WARNINGS+="
- This Houdini installer is built for Linux operating systems,
- but your computer is ${OS:-Unknown operating system}. You should download the correct
- installer for your operating system."
- fi
- if [ "$ARCH" != "$BUILD_ARCH" ]; then
- OS_WARNINGS+="
- This Houdini installer is built for $BUILD_ARCH operating systems,
- but your computer is ${ARCH:-unknown architecture}. You should download the correct
- installer for your computer architecture."
- fi
- if [ $REL_MIN != 0 ]; then
- TOO_LOW=0
- i=1
- while (true); do
- r1=`echo $REL_MIN | cut -d"." -f$i`
- r2=`echo $REL | cut -d"." -f$i`
- if [ "$r1" = "" -o "$r2" = "" ]; then
- break
- fi
- if [ "$r2" -lt "$r1" ]; then
- TOO_LOW=1
- break
- fi
- # If this version is newer than the minimum, don't compare the
- # sub portions.
- if [ "$r2" -gt "$r1" ]; then
- break
- fi
- i=$(($i+1))
- done
- if [ "$TOO_LOW" = "1" ]; then
- OS_WARNINGS+="
- Your operating system version is lower than release $REL_MIN.
- Houdini $VER_MM is not guaranteed to operate correctly on
- $OS revisions lower than release ${REL_MIN}."
- fi
- fi
- if [ "$OS_WARNINGS" != "" ]; then
- while : ; do
- test -t 1 && clear
- echo $nn "
- WARNING:$OS_WARNINGS
- Do you wish to continue (y or n) [y] ==> $cc"
- read ans
- case $ans in
- ""|y|Y|yes|YES|Yes)
- break
- ;;
- n|N|no|NO|No)
- clean_up 2
- break
- ;;
- QUIT|quit|Q|Quit|q)
- clean_up 2
- ;;
- *) echo "Enter yes, no or Quit"
- ;;
- esac
- done
- fi
- }
- #-------------------------------------------------------------------------
- check_root()
- {
- if [ "$EUID" -ne 0 -a "$checkRoot" = "yes" ]; then
- ERROR=""
- while true; do
- test -t 1 && clear
- echo $nn "
- SIDE EFFECTS SOFTWARE HOUDINI ${VER_MMB} INSTALLATION
- The installer is not being run as root. You may not be able to
- install the desired features unless the installer is run as root.
- ${ERROR}
- Re-run installer as root (y or n) ==> $cc"
- read ans
- case $ans in
- y|Y|YES|Yes|yes)
- sudo "$0" "$@"
- exit $?
- ;;
- n|N|NO|No|no)
- break
- ;;
- q|Q|QUIT|quit|Quit)
- clean_up 2
- ;;
- *) ERROR="
- Enter yes, no or Quit
- "
- ;;
- esac
- done
- fi
- }
- #-------------------------------------------------------------------------
- compute_space()
- {
- DISK_REQ=0
- if [ "$installHoudini" = "yes" ]; then
- DISK_REQ=`expr $DISK_REQ + $SIZE_HOUDINI`
- fi
- if [ "$licenseServer" = "yes" ]; then
- DISK_REQ=`expr $DISK_REQ + $SIZE_LICENSE`
- fi
- if [ "$installEngineMaya" = "yes" ]; then
- DISK_REQ=`expr $DISK_REQ + $SIZE_ENGINE_MAYA`
- fi
- if [ "$installEngineUnity" = "yes" ]; then
- DISK_REQ=`expr $DISK_REQ + $SIZE_ENGINE_UNITY`
- fi
- DISK_MB=`expr \( $DISK_REQ + 500 \) / 1000`
- }
- #-------------------------------------------------------------------------
- check_constraints()
- {
- if [ "$installHoudini" = "no" ]; then
- localLicensing="no"
- desktopMenu="no"
- installEngineMaya="no"
- installEngineUnity="no"
- binSymlink="no"
- hfsSymlink="no"
- fi
- if [ "$licenseServer" = "yes" ]; then
- localLicensing="no"
- fi
- }
- #-------------------------------------------------------------------------
- inst_menu()
- {
- compute_space
- choiceCount=0
- choiceDescriptions[$choiceCount]="Houdini"
- choiceSizes[$choiceCount]="(${SIZE_HOUDINI_MB}Mb)"
- choiceToggles[$choiceCount]="installHoudini"
- let choiceCount++
- installHoudiniChoice=$choiceCount
- choiceDescriptions[$choiceCount]="Desktop Menus for Houdini"
- choiceSizes[$choiceCount]=""
- choiceToggles[$choiceCount]="desktopMenu"
- let choiceCount++
- desktopMenuChoice=$choiceCount
- choiceDescriptions[$choiceCount]="Symlinks in /usr/local/bin"
- choiceSizes[$choiceCount]=""
- choiceToggles[$choiceCount]="binSymlink"
- let choiceCount++
- binSymlinkChoice=$choiceCount
- choiceDescriptions[$choiceCount]="Symlink /opt/hfs${VER_MM} to install directory"
- choiceSizes[$choiceCount]=""
- choiceToggles[$choiceCount]="hfsSymlink"
- let choiceCount++
- hfsSymlinkChoice=$choiceCount
- choiceDescriptions[$choiceCount]="Apprentice Licensing (Local Licensing)"
- choiceSizes[$choiceCount]=""
- choiceToggles[$choiceCount]="localLicensing"
- let choiceCount++
- localLicensingChoice=$choiceCount
- choiceDescriptions[$choiceCount]="Commercial Licensing (License Server)"
- choiceSizes[$choiceCount]="(${SIZE_LICENSE_MB}Mb)"
- choiceToggles[$choiceCount]="licenseServer"
- let choiceCount++
- licenseServerChoice=$choiceCount
- if [ "${SIZE_ENGINE_MAYA}" != "-1" ]; then
- choiceDescriptions[$choiceCount]="Houdini Engine for Maya"
- choiceSizes[$choiceCount]="(${SIZE_ENGINE_MAYA_MB}Mb)"
- choiceToggles[$choiceCount]="installEngineMaya"
- let choiceCount++
- installEngineMayaChoice=$choiceCount
- else
- installEngineMayaChoice=-1
- fi
- if [ "${SIZE_ENGINE_UNITY}" != "-1" ]; then
- choiceDescriptions[$choiceCount]="Houdini Engine for Unity"
- choiceSizes[$choiceCount]="(${SIZE_ENGINE_UNITY_MB}Mb)"
- choiceToggles[$choiceCount]="installEngineUnity"
- let choiceCount++
- installEngineUnityChoice=$choiceCount
- else
- installEngineUnityChoice=-1
- fi
- choiceDescriptions[$choiceCount]="HQueue Server"
- choiceSizes[$choiceCount]="(${SIZE_HQUEUE_MB}Mb)"
- choiceToggles[$choiceCount]="installHQueue"
- let choiceCount++
- installHQueueChoice=$choiceCount
- choiceDescriptions[$choiceCount]="HQueue Client"
- choiceSizes[$choiceCount]="(${SIZE_HQUEUE_CLIENT_MB}Mb)"
- choiceToggles[$choiceCount]="installHQueueClient"
- let choiceCount++
- installHQueueClientChoice=$choiceCount
- while : ; do
- test -t 1 && clear
- echo "
- HOUDINI $VER_MMB INSTALLATION
- Enter a number to toggle an item to be installed.
- INSTALL
- ======="
- i=0
- while [ "$i" -lt "$choiceCount" ]; do
- printf " %2d. %-42s %12s %4s\n" "$((i+1))" "${choiceDescriptions[$i]}" "${choiceSizes[$i]}" "${!choiceToggles[$i]}"
- let i++
- done
- echo $nn "
- D. Change installation directory ($HFS_LOCATION)
- F. Finished selections, proceed to next step
- Q. Quit (no installation will be attempted)
- $ERROR
- Note that the Houdini Development Kit (HDK) is installed as part
- of the full Houdini installation (selection 1 above).
- Current total space requirement: $DISK_MB Mb
- What is your selection (1-$choiceCount,D,F,Q) [F] ==> $cc"
- read choice
- ERROR=""
- # We're toggling choices here
- handledChoice="no"
- if [ "${SIZE_ENGINE_MAYA}" != "-1" \
- -a "$choice" == "$installEngineMayaChoice" ]; then
- if [ "$installHoudini" = "yes" ]; then
- if [ "$installEngineMaya" = "yes" ]; then
- installEngineMaya="no"
- else
- installEngineMaya="yes"
- fi
- else
- ERROR="You must install Houdini in order to install Maya plug-in for Houdini Engine."
- fi
- handledChoice="yes"
- fi
- if [ "${SIZE_ENGINE_Unity}" != "-1" \
- -a "$choice" == "$installEngineUnityChoice" ]; then
- if [ "$installHoudini" = "yes" ]; then
- if [ "$installEngineUnity" = "yes" ]; then
- installEngineUnity="no"
- else
- installEngineUnity="yes"
- fi
- else
- ERROR="You must install Houdini in order to install Unity plug-in for Houdini Engine."
- fi
- handledChoice="yes"
- fi
- case "$choice" in
- $installHoudiniChoice)
- if [ "$installHoudini" = "yes" ]; then
- installHoudini="no"
- localLicensing="no"
- desktopMenu="no"
- installEngineMaya="no"
- installEngineUnity="no"
- binSymlink="no"
- hfsSymlink="no"
- else
- installHoudini="yes"
- fi
- ;;
- $desktopMenuChoice)
- if [ "$desktopMenu" = "yes" ]; then
- desktopMenu="no"
- elif [ "$installHoudini" = "yes" ]; then
- desktopMenu="yes"
- fi
- ;;
- $binSymlinkChoice)
- if [ "$binSymlink" = "yes" ]; then
- binSymlink="no"
- elif [ "$installHoudini" = "yes" ]; then
- binSymlink="yes"
- fi
- ;;
- $hfsSymlinkChoice)
- if [ "$hfsSymlink" = "yes" ]; then
- hfsSymlink="no"
- elif [ "$installHoudini" = "yes" ]; then
- hfsSymlink="yes"
- fi
- ;;
- $localLicensingChoice)
- if [ "$localLicensing" = "yes" ]; then
- localLicensing="no"
- else
- if [ "$EUID" -ne 0 ]; then
- ERROR="You must be root when installing Houdini to set up Apprentice Licensing"
- else
- localLicensing="yes"
- licenseServer="no"
- installHoudini="yes"
- fi
- fi
- ;;
- $licenseServerChoice)
- if [ "$licenseServer" = "yes" ]; then
- licenseServer="no"
- else
- if [ "$EUID" -ne 0 ]; then
- ERROR="You must be root to install the Houdini License Server"
- else
- licenseServer="yes"
- localLicensing="no"
- fi
- fi
- ;;
- $installHQueueChoice)
- if [ "$installHQueue" = "yes" ]; then
- installHQueue="no"
- else
- installHQueue="yes"
- fi
- ;;
- $installHQueueClientChoice)
- if [ "$installHQueueClient" = "yes" ]; then
- installHQueueClient="no"
- else
- installHQueueClient="yes"
- fi
- ;;
- ""|F|f) break ;;
- D|d)
- custom_HFS
- ;;
- Q|q) clean_up 2 ;;
- *)
- if [ "$handledChoice" = "no" ]; then
- ERROR="Please enter one of these choices"
- fi
- esac
- compute_space
- done
- }
- #-------------------------------------------------------------------------
- custom_HFS()
- {
- test -t 1 && clear
- echo $nn "
- Enter an installation directory for houdini
- ==> [$HFS_LOCATION] $cc"
- read ans
- if [ "$ans" != "" ]; then
- HFS_LOCATION=`eval echo "$ans"`
- fi
- }
- #-------------------------------------------------------------------------
- final_check()
- {
- # One last time, check that they really want to install the
- # software choices...
- choice=""
- WARNINGS=""
- ERROR=""
- MSG=""
- INSTALL_LOC=""
- if [ "$licenseServer" = "yes" ]; then
- localLicensing="no"
- fi
- if [ "$installHoudini" = "yes" ]; then
- if [ "$localLicensing" = "yes" ]; then
- MSG="houdini (apprentice-licensing)"
- fi
- if [ -f "$HFS_LOCATION" ]; then
- WARNINGS="WARNING: Installation directory ${HFS_LOCATION}
- exists and is a file
- "
- elif [ -d "$HFS_LOCATION" ]; then
- WARNINGS="WARNING: Installation directory ${HFS_LOCATION}
- already exists
- "
- fi
- INSTALL_LOC="
- Location for installation:
- $HFS_LOCATION
- "
- else
- localLicensing="no"
- fi
- if [ "$localLicensing" = "yes" ]; then
- licenseServer="no"
- fi
- if [ "$licenseServer" = "yes" ]; then
- MSG="$MSG license-server"
- fi
- if [ "$installHQueue" = "yes" ]; then
- MSG="$MSG HQueue Server"
- fi
- if [ "$installHQueueClient" = "yes" ]; then
- MSG="$MSG HQueue Client"
- fi
- if [ "$hfsSymlink" = "yes" ]; then
- MSG="$MSG symlink in /opt/hfs${VER_MM}"
- if [ -d "/opt/${VER_MM}" ]; then
- WARNINGS+="WARNING: Cannot create symlink /opt/${VER_MM}. Path is a directory.
- "
- elif [ -e "/opt/hfs${VER_MM}" ]; then
- WARNINGS+="WARNING: File /opt/hfs${VER_MM} will be overwritten
- "
- fi
- fi
- if [ "$binSymlink" = "yes" ]; then
- MSG="$MSG symlinks in /usr/local/bin"
- existingLinks=""
- for f in "${binSymlinkList[@]}"; do
- if [ -e "/usr/local/bin/${f}" ]; then
- existingLinks+="$f "
- fi
- done
- if [ "$existingLinks" != "" ]; then
- WARNINGS+="WARNING: The following files in /usr/local/bin will be overwritten:
- ${existingLinks}
- "
- fi
- fi
- if [ "$WARNINGS" != "" ]; then
- WARNINGS="
- ${WARNINGS}"
- fi
- while [ "$choice" = "" ]
- do
- test -t 1 && clear
- echo $nn "
- Here are the choices you have made so far:
- Modules chosen to install:
- $MSG
- $INSTALL_LOC
- Disk Space Required for installation:
- $DISK_MB Mbytes
- $WARNINGS
- Choose yes to proceed with the installation.
- Otherwise you may return to the choice menu to change your selections.
- $ERROR
- Would you like to start the installation? (y or n) [y] ==> $cc"
- read ans
- case $ans in
- ""|y|Y|yes|Yes|YES)
- FINALCHECK=OK
- break
- ;;
- QUIT|quit|Q|Quit|q)
- clean_up 2
- ;;
- n|N|no|NO|No)
- FINALCHECK=NOTOK
- break
- ;;
- *)
- ERROR="
- Please enter 'y' to install or 'n' to alter your selections.
- "
- ;;
- esac
- echo ""
- done
- }
- #-------------------------------------------------------------------------
- install_python()
- {
- mkdir -p "$HFS_LOCATION/python"
- tar_ext=".tar"
- tar_options="xvf"
- if [ -f "${SRC}/pythonlibdeps.tar.gz" ]; then
- tar_ext=".tar.gz"
- tar_options="zxvf"
- fi
- # First install Python's library dependencies.
- (cd "$HFS_LOCATION/python"; \
- tar "${tar_options}" "$SRC/pythonlibdeps${tar_ext}" > "$pythonFileList")
- tarstatus=$?
- if [ "$tarstatus" != 0 ]; then
- echo " Problem encountered installing Python's library dependencies."
- echo " Please refer to the installation guide for assistance"
- INSTALL_ERROR=1
- else
- # Install Python distributions.
- for py_ver in ${PYTHON_VERSIONS}; do
- (cd "$HFS_LOCATION/python"; \
- tar "${tar_options}" "$SRC/python${py_ver}${tar_ext}" \
- >> "$pythonFileList")
- tarstatus=$?
- if [ "$tarstatus" != 0 ]; then
- echo " Problem encountered installing Python ${py_ver}."
- echo " Please refer to the installation guide for assistance"
- INSTALL_ERROR=1
- break
- fi
- done
- # Add the Python file list to the main file list.
- echo "python" >> "$HFS_LOCATION/$hfsFileList"
- echo "python/${pythonFileList}" >> "$HFS_LOCATION/$hfsFileList"
- fi
- }
- #-------------------------------------------------------------------------
- install_engine_maya()
- {
- mkdir -p "${HFS_LOCATION}/engine/maya"
- tar_ext=".tar"
- tar_options="xvf"
- if [ -f "${SRC}/engine_maya.tar.gz" ]; then
- tar_ext=".tar.gz"
- tar_options="zxvf"
- fi
- (cd "${HFS_LOCATION}/engine/maya"; \
- tar "${tar_options}" "${SRC}/engine_maya${tar_ext}" >> "${HFS_LOCATION}/engine/maya/${engineMayaFileList}")
- # Replace the absolute path for Maya module description in $HFS/engine/maya
- sed -i -e 's,REPLACE_WITH_HFS,'${HFS_LOCATION}',' \
- $(find "${HFS_LOCATION}/engine/maya" -mindepth 2 -maxdepth 2 -type f -name "houdiniEngine-*")
- echo "engine" >> "${HFS_LOCATION}/${hfsFileList}"
- echo "engine/maya" >> "${HFS_LOCATION}/${hfsFileList}"
- echo "engine/maya/${engineMayaFileList}" >> "${HFS_LOCATION}/${hfsFileList}"
- ALL_MAYA_VERSIONS=("2018"
- "2017"
- "2016.5"
- "2016"
- "2015"
- "2014")
- for maya_version in "${ALL_MAYA_VERSIONS[@]}"
- do
- # Copy module files to standard Maya module folder
- if [[ $maya_version == "2014"
- || $maya_version == "2015" ]]
- then
- maya_dir="/usr/autodesk/maya${maya_version}-x64"
- else
- maya_dir="/usr/autodesk/maya${maya_version}"
- fi
- module_dir="${maya_dir}/modules"
- if [ -w "${maya_dir}" ]
- then
- if ! copy_file_to_dir "${HFS_LOCATION}/engine/maya/maya${maya_version}/houdiniEngine-maya${maya_version}" "$module_dir"
- then
- echo "Error copying Maya module file to: $module_dir"
- fi
- fi
- done
- }
- #-------------------------------------------------------------------------
- install_engine_unity()
- {
- mkdir -p "${HFS_LOCATION}/engine/unity"
- tar_ext=".tar"
- tar_options="xvf"
- if [ -f "${SRC}/engine_unity.tar.gz" ]; then
- tar_ext=".tar.gz"
- tar_options="zxvf"
- fi
- (cd "${HFS_LOCATION}/engine/unity"; \
- tar "${tar_options}" "${SRC}/engine_unity${tar_ext}" >> "${HFS_LOCATION}/engine/unity/${engineUnityFileList}")
- echo "engine" >> "${HFS_LOCATION}/${hfsFileList}"
- echo "engine/unity" >> "${HFS_LOCATION}/${hfsFileList}"
- echo "engine/unity/${engineUnityFileList}" >> "${HFS_LOCATION}/${hfsFileList}"
- }
- #-------------------------------------------------------------------------
- install_sesinetd()
- {
- TARGET=/usr/lib/sesi
- SAVED="BACKUP_SESI.$(date +%Y%m%s%H%M%S)"
- STATUS=0
- is_systemd=
- if [ -d /run/systemd/system ]; then
- is_systemd=1
- fi
- # Where directories like init.d, rc3.d, etc. are located
- # Recent linux systems have them directly under /etc while
- # older system have them under /etc/rc.d
- RCDIRS=
- if [ -d /etc/init.d ]; then
- RCDIRS=/etc
- elif [ -d /etc/rc.d/init.d ]; then
- RCDIRS=/etc/rc.d
- fi
- if [ "$RCDIRS" = "" ]; then
- echo "Cannot figure out where to put system startup scripts"
- echo "Please install manually"
- return 1
- fi
- if [ -d /var/run ]; then
- PID_DIR=/var/run
- else
- PID_DIR="$TARGET"
- fi
- HOST=$(hostname -s)
- PID_FILE="$PID_DIR/sesinetd_${HOST}.pid"
- if [ "$EUID" != 0 ]; then
- echo "You must be root to install sesinetd."
- do_wait
- return 1
- fi
- if [ ! -f "$SRC/houdini.tar.gz" -a ! -f "$SRC/houdini.tar" ]; then
- echo "Cannot find houdini.tar.gz or houdini.tar in $SRC"
- do_wait
- return 1
- fi
- flag=not_done
- backupFiles=no
- echo ""
- echo "Installing: Side Effects License Management Tools"
- KILLED=no
- if [ ! -d "$TARGET" ]; then
- echo "Creating $TARGET"
- mkdir -m 755 "$TARGET"
- if [ ! -d "$TARGET" ]; then
- echo ""
- echo "Problem encountered creating directory: $TARGET"
- echo "Unable to install license management tools."
- echo ""
- return 1
- fi
- else
- ERROR=""
- echo "
- An installation of Side Effects license tools and
- license key files already exists in $TARGET.
- Older versions of the sesi* tools, and licenses file
- will be backed up in:
- $SAVED
- Houdini ${VER_MM} requires a license key version of at least ${VER_MAJOR}.0.
- An updated license manager daemon \"sesinetd\" and administration
- tool \"sesictrl\" will be installed by this process.
- THE CURRENTLY RUNNING LICENSE SERVER WILL BE STOPPED."
- backupFiles=yes
- fi
- echo ""
- if [ ! -w "$TARGET" -o ! -d "$TARGET" ]; then
- echo "Unable to write to directory: $TARGET"
- echo "Please ensure that you are running as root on the system"
- echo "that the license tools are to be installed on."
- echo "
- Houdini license tools have NOT been installed."
- return 1
- fi
- echo "Checking for running server... It has to be stopped before"
- echo "we can install the new version"
- if [ -x "$RCDIRS/init.d/sesinetd" ]; then
- if ( "$RCDIRS/init.d/sesinetd" stop ); then
- KILLED=yes
- fi
- elif [ -x "$TARGET/sesictrl" ]; then
- SESI_LMHOST=`hostname`
- if [ -f "$PID_FILE" ]; then
- rm -rf "$PID_FILE"
- fi
- "$TARGET/sesictrl" -h "$SESI_LMHOST" -Q
- killall -9 hserver
- sleep 5
- KILLED=yes
- fi
- pushd "$TARGET" > /dev/null
- if [ "$backupFiles" = "yes" ]; then
- mkdir "$SAVED"
- if [ -e sesictrl ]; then
- cp -d sesictrl* "$SAVED/"
- rm -f sesictrl*
- fi
- if [ -e sesinetd ]; then
- cp sesinetd "$SAVED/sesinetd"
- rm -f sesinetd
- fi
- if [ -e sesinetd.options ]; then
- cp sesinetd.options "$SAVED/sesinetd.options"
- fi
- if [ -e sesinetd_safe ]; then
- cp sesinetd_safe "$SAVED/sesinetd_safe"
- rm -f sesinetd_safe
- fi
- if [ -e licenses ]; then
- cp licenses "$SAVED/licenses"
- fi
- if [ -e sesiusage ]; then
- cp -d sesiusage* "$SAVED/"
- rm -f sesiusage*
- fi
- # This file is from the H9.0 days.
- if [ -e startupScriptLINUX ]; then
- cp -d startupScriptLINUX "$SAVED/startupScriptLINUX"
- rm -f startupScriptLINUX
- fi
- fi
- popd > /dev/null
- TMP="$(mktemp -d)"
- echo
- echo "Unpacking files..."
- if [ -f "$SRC/houdini.tar.gz" ]; then
- gunzip -c "$SRC/houdini.tar.gz" | (cd "$TMP"; tar xf - houdini/sbin/sesictrl houdini/sbin/sesinetd houdini/sbin/sesinetd_safe houdini/sbin/sesinetd.startup houdini/sbin/sesinetd.options houdini/sbin/sesiusage )
- (cd "$TMP"; cp -a houdini/sbin/sesictrl houdini/sbin/sesinetd houdini/sbin/sesinetd_safe houdini/sbin/sesinetd.startup houdini/sbin/sesinetd.options houdini/sbin/sesiusage "$TARGET/")
- elif [ -f "$SRC/houdini.tar" ]; then
- (cd "$TMP"; tar xf "$SRC/houdini.tar" houdini/sbin/sesictrl houdini/sbin/sesinetd houdini/sbin/sesinetd_safe houdini/sbin/sesinetd.startup houdini/sbin/sesinetd.options houdini/sbin/sesiusage )
- (cd "$TMP"; cp -a houdini/sbin/sesictrl houdini/sbin/sesinetd houdini/sbin/sesinetd_safe houdini/sbin/sesinetd.startup houdini/sbin/sesinetd.options houdini/sbin/sesiusage "$TARGET/")
- fi
- rm -rf "$TMP"
- if [ $? != 0 ]; then
- STATUS=1
- fi
- # Restore sesinetd.options if it exists in the backup directory
- cd "$TARGET"
- if [ -e "$SAVED/sesinetd.options" ]; then
- cp -f "$SAVED/sesinetd.options" "$TARGET"
- fi
- if [ -f "$RCDIRS/init.d/sesinetd" ]; then
- mv "$RCDIRS/init.d/sesinetd" "$RCDIRS/init.d/sesinetd.old"
- fi
- if [ ! -f sesinetd ]; then
- cat <<EOERROR
- A problem has occurred installing the license tools.
- Please correct any errors above and try again.
- EOERROR
- return 1
- fi
- ## sesinetd.startup is renamed when placed in init.d ##
- cp sesinetd.startup "$RCDIRS/init.d/sesinetd"
- chmod 755 "$RCDIRS/init.d/sesinetd"
- # OpenSUSE >= 13.2 has moved the rc folders into /etc/init.d.
- if [ -d "$RCDIRS/init.d/rc0.d" ]; then
- RCROOT="$RCDIRS/init.d"
- else
- RCROOT="$RCDIRS"
- fi
- test -d "$RCROOT/rc2.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc2.d/S89sesinetd"
- test -d "$RCROOT/rc3.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc3.d/S89sesinetd"
- test -d "$RCROOT/rc4.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc4.d/S89sesinetd"
- test -d "$RCROOT/rc5.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc5.d/S89sesinetd"
- test -d "$RCROOT/rcS.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rcS.d/K89sesinetd"
- test -d "$RCROOT/rc0.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc0.d/K89sesinetd"
- test -d "$RCROOT/rc1.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc1.d/K89sesinetd"
- test -d "$RCROOT/rc6.d" && ln -sf "$RCDIRS/init.d/sesinetd" "$RCROOT/rc6.d/K89sesinetd"
- if [ -n "$is_systemd" ]; then
- # Reload systemd so that it picks up the new sesinetd init script.
- # Otherwise, running the init script below could fail.
- systemctl daemon-reload
- fi
- if [ "$KILLED" = "no" ]; then
- if [ -x "$RCDIRS/init.d/sesinetd" ]; then
- "$RCDIRS/init.d/sesinetd" stop
- else
- # Stop sesinetd
- SESI_LMHOST=`hostname`
- if [ -f "$PID_FILE" ]; then
- rm -rf "$PID_FILE"
- fi
- "$TARGET/sesictrl" -h "$SESI_LMHOST" -Q
- sleep 5
- fi
- fi
- echo
- if [ -x "$RCDIRS/init.d/sesinetd" ]; then
- "$RCDIRS/init.d/sesinetd" start
- fi
- cat <<EOM
- Please install licenses using the Houdini License Administrator
- (hkey). Start hkey by first changing to the directory where
- houdini is installed and then running:
- source houdini_setup
- hkey
- License tools have been installed.
- EOM
- return $STATUS
- }
- #---MAINLINE--------------------------------------------------------------
- saved_args=("$@")
- while [ "$1" != "" ]; do
- case "$1" in
- "--install-toolkit")
- # We always install the HDK now, but ignore this for backwards
- # compatibility.
- ;;
- "--localLicensing"|"--local-licensing")
- localLicensing="yes"
- ;;
- "--no-localLicensing"|"--no-local-licensing")
- localLicensing="no"
- ;;
- "--installEngineMaya"|"--install-engine-maya")
- installEngineMaya="yes"
- ;;
- "--no-installEngineMaya"|"--no-install-engine-maya")
- installEngineMaya="no"
- ;;
- "--installEngineUnity"|"--install-engine-unity")
- installEngineUnity="yes"
- ;;
- "--no-installEngineUnity"|"--no-install-engine-unity")
- installEngineUnity="no"
- ;;
- "--install-hqueue-server")
- installHQueue="yes"
- ;;
- "--no-install-hqueue-server")
- installHQueue="no"
- ;;
- "--hqueue-server-dir")
- shift
- hqServerDir=$1
- ;;
- "--create-hqueue-shared-dir")
- shift
- createHQSharedDir=$1
- ;;
- "--hqueue-shared-dir")
- shift
- hqSharedDir=$1
- ;;
- "--hqueue-shared-dir-mount")
- shift
- hqMountPoint=$1
- ;;
- "--upgrade-hqueue-server-if-exists")
- shift
- upgradeHQIfExists=$1
- ;;
- "--install-hqueue-client")
- installHQueueClient="yes"
- ;;
- "--hqueue-client-dir")
- shift
- hqClientDir=$1
- ;;
- "--hqueue-server-name")
- shift
- hqServerName=$1
- ;;
- "--hqueue-server-port")
- shift
- hqServerPort=$1
- ;;
- "--mount-hqueue-shared-dir")
- shift
- hqMountSharedDir=$1
- ;;
- "--houdini"|"--install-houdini")
- installHoudini="yes"
- ;;
- "--no-houdini"|"--no-install-houdini")
- installHoudini="no"
- ;;
- "--license"|"--install-license")
- licenseServer="yes"
- ;;
- "--no-license"|"--no-install-license")
- licenseServer="no"
- ;;
- "--menus"|"--install-menus")
- desktopMenu="yes"
- ;;
- "--no-menus"|"--no-install-menus")
- desktopMenu="no"
- ;;
- "--install-bin-symlink")
- binSymlink="yes"
- ;;
- "--no-install-bin-symlink")
- binSymlink="no"
- ;;
- "--install-hfs-symlink")
- hfsSymlink="yes"
- ;;
- "--no-install-hfs-symlink")
- hfsSymlink="no"
- ;;
- "--accept-EULA")
- acceptedEULA="yes"
- ;;
- "--no-root-check")
- checkRoot="no"
- ;;
- "--auto-install")
- autoInstall="yes"
- ;;
- "--help"|"-h"|"-?")
- long_usage
- exit 0
- ;;
- "--make-dir")
- makeDirectory="yes"
- ;;
- "--")
- shift
- break
- ;;
- *)
- break
- ;;
- esac
- shift
- done
- if [ -n "$1" ]; then
- if [ ! -e "$1" -a "$makeDirectory" = "yes" ]; then
- mkdir -p "$1"
- fi
- if [ -d "$1" -a -w "$1" ]; then
- HFS_LOCATION="$1"
- autoInstall="yes"
- else
- echo "Error: $1 must be a writeable directory"
- echo "$usage"
- exit -1;
- fi
- fi
- # If invoked as "sesinetd.install", override feature selection
- if [ "$(basename "$0")" = "sesinetd.install" ]; then
- licenseServer="yes"
- installEngineMaya="no"
- installEngineUnity="no"
- installHQueue="no"
- localLicensing="no"
- installHoudini="no"
- desktopMenu="no"
- binSymlink="no"
- hfsSymlink="no"
- autoInstall="yes"
- acceptedEULA="yes"
- fi
- check_pwd
- check_os
- check_root "${saved_args[@]}"
- check_constraints
- if [ "$acceptedEULA" != "yes" ]; then
- accept_license_agreement
- if [ -n "$AGREEMENT_ALPHABETA_TEXT" ]; then
- accept_alphabeta_license_agreement
- fi
- fi
- if [ "$installHoudini" = "no" -a "$licenseServer" = "no" ]; then
- if [ "$installHQueue" = "yes" -o "$installHQueueClient" = "yes" ]; then
- autoInstall="yes"
- fi
- fi
- compute_space
- FINALCHECK=NOTOK
- while [ "$FINALCHECK" != "OK" ]; do
- if [ "$autoInstall" = "no" ]; then
- inst_menu
- fi
- if [ "$installHoudini" = "yes" -o "$licenseServer" = "yes" ]; then
- # Assume that the installation will go
- # in the first existing ancestor's partition
- HFS_PARTITION="$HFS_LOCATION"
- while [ ! -e "$HFS_PARTITION" ]; do
- HFS_PARTITION=`dirname "$HFS_PARTITION"`
- done
- DISK_FREE=`df -k "$HFS_PARTITION" | tail -n 1 | awk ' { print $(NF-2) } '`
- if [ "$DISK_FREE" = "avail" -o "$DISK_FREE" = "$HFS_LOCATION" ]; then
- DISK_FREE=""
- ERROR2="Volume not mounted part 1"
- fi
- if [ "${DISK_FREE:=0}" -gt "$DISK_REQ" ]; then
- if [ "$autoInstall" = "no" ]; then
- final_check
- else
- FINALCHECK=OK
- fi
- else
- FREE_MB=`expr \( $DISK_FREE + 500 \) / 1000`
- ERROR="Warning: not enough space on $HFS_LOCATION."
- echo ""
- echo $ERROR
- echo "$FREE_MB Mb free, $DISK_MB Mb required. ${ERROR2}"
- echo "Please change your selections or choose another location."
- echo ""
- if [ "$autoInstall" = "no" ]; then
- echo $nn "[Hit return to continue]"
- read ans
- fi
- fi
- elif [ "$installHQueue" = "yes" -o "$installHQueueClient" = "yes" ]; then
- # Only HQueue was chosen.
- FINALCHECK=OK
- else
- echo
- echo "Nothing chosen."
- sleep 1
- FINALCHECK=NOTOK
- fi
- if [ "$FINALCHECK" != "OK" -a "$autoInstall" = "yes" ]; then
- # Things aren't okay, but the user can't fix them. Abort install
- clean_up 2
- fi
- done
- if [ "$installHoudini" = "yes" -a "$autoInstall" = "no" -a \
- -e "$HFS_LOCATION" ]; then
- test -t 1 && clear
- if [ -f "$HFS_LOCATION" ]; then
- MSG="
- ${HFS_LOCATION} exists and is a file. Installation cannot
- proceed unless it is deleted."
- elif [ -d "$HFS_LOCATION" ]; then
- if [ "$(ls -A "$HFS_LOCATION")" != "" ]; then
- MSG="
- ${HFS_LOCATION} exists and is not empty. Houdini may
- not install correctly unless it is deleted."
- fi
- else
- MSG="
- ${HFS_LOCATION} exists. Houdini may not install correctly
- unless it is deleted."
- fi
- while true; do
- echo "$MSG"
- echo $nn " Delete ${HFS_LOCATION} (y/n) ==> $cc"
- read choice
- case "$choice" in
- Y|y|Yes|yes)
- rm -rf "$HFS_LOCATION"
- break
- ;;
- N|n|No|no)
- break
- ;;
- Q|q|QUIT|Quit|quit)
- clean_up 2
- ;;
- *)
- echo "Please choose y or n"
- ;;
- esac
- done
- fi
- test -t 1 && clear
- echo "
- ${DISK_REQ}K is the space required to install selections...
- ${DISK_FREE}K is available on ${HFS_LOCATION}
- Commencing installation of selected modules.
- This may take a few minutes...
- "
- #---HOUDINI INSTALLATION---------------------------------------------------
- if [ "$installHoudini" = "yes" ]; then
- if [ ! -d "$HFS_LOCATION" ]; then
- mkdir -p "$HFS_LOCATION" || clean_up 1
- fi
- echo $nn " Installing: Houdini in ${HFS_LOCATION}${cc}"
- tarfile="$SRC/houdini.tar"
- tarflags=""
- test -t 1 && tarflags="--checkpoint=${SIZE_HOUDINI%??} --checkpoint-action=ttyout=."
- if [ -f "$SRC/houdini.tar.gz" ]; then
- tarfile="$SRC/houdini.tar.gz"
- tarflags="$tarflags -xzvf"
- elif [ -f "$SRC/houdini.tar" ]; then
- tarfile="$SRC/houdini.tar"
- tarflags="$tarflags -xvf"
- else
- echo ""
- echo "Error: this doesn't appear to be a valid houdini package"
- INSTALL_ERROR=3
- fi
- (cd "$HFS_LOCATION"; tar $tarflags "$tarfile" > "$hfsFileList")
- tarstatus=$?
- if [ "$tarstatus" != 0 ]; then
- echo " Problem encountered installing Houdini"
- echo " Please refer to the installation guide for assistance"
- INSTALL_ERROR=1
- fi
- echo
- install_python
- if [ "$INSTALL_ERROR" = 0 ]; then
- # Run the python script which installs desktop items such as
- # menu shortcuts, mime-types, etc.
- # Also, copy the desktop install script into the installation path.
- if [ "$desktopMenu" = "yes" ]; then
- if [ -f "$SRC/installDesktopItems.py" ]; then
- (cd "$HFS_LOCATION" && source houdini_setup_bash > /dev/null \
- && "$HFS_LOCATION/python/bin/python" "$SRC/installDesktopItems.py")
- cp "$SRC/installDesktopItems.py" "$HFS_LOCATION"
- echo installDesktopItems.py >> "$HFS_LOCATION/$hfsFileList"
- fi
- fi
- # Install symlink options
- if [ "$binSymlink" = "yes" ]; then
- for name in "${binSymlinkList[@]}"; do
- ln -fns "${HFS_LOCATION}/bin/${name}" "/usr/local/bin/${name}"
- echo "/usr/local/bin/${name}" >> "$HFS_LOCATION/$hfsSymlinkList"
- done
- fi
- if [ "$hfsSymlink" = "yes" -a \
- "$HFS_LOCATION" != "/opt/hfs${VER_MM}" ]; then
- ln -fns "$HFS_LOCATION" "/opt/hfs${VER_MM}"
- echo "/opt/hfs${VER_MM}" >> "$HFS_LOCATION/$hfsSymlinkList"
- fi
- # Copy over uninstall scripts to $HFS.
- cp "$SRC/houdini.uninstall" "$HFS_LOCATION"
- if [ "$binSymlink" = "yes" -o "$hfsSymlink" = "yes" ]; then
- echo "$hfsSymlinkList" >> "$HFS_LOCATION/$hfsFileList"
- fi
- echo houdini.uninstall >> "$HFS_LOCATION/$hfsFileList"
- echo "$hfsFileList" >> "$HFS_LOCATION/$hfsFileList"
- if [ "$localLicensing" = "yes" ]; then
- houHomeDir="$HOME/houdini$VER_MM"
- houHomeDirExists="0"
- if [ -d "$houHomeDir" ]; then
- houHomeDirExists="1"
- fi
- licenseOpt="$HFS_LOCATION/houdini/Licensing.opt"
- touch "$licenseOpt"
- chmod 666 "$licenseOpt"
- echo "licensingMode = localValidator" >> "$licenseOpt"
- echo "Installing apprentice license..."
- mkdir -p /usr/lib/sesi
- touch /usr/lib/sesi/licenses.local
- chmod 666 /usr/lib/sesi/licenses.local
- (cd "$HFS_LOCATION"; source houdini_setup_bash; hkey -n 1 -c -foreground)
- if [ $? != 0 ]; then
- echo "Error installing apprentice license"
- fi
- if [ "$houHomeDirExists" = 0 ]; then
- chown -R `stat --printf=%U:%G "$HOME"` "$houHomeDir"
- fi
- fi
- if [ "${SIZE_ENGINE_MAYA}" != "-1" -a "$installEngineMaya" = "yes" ]; then
- install_engine_maya
- fi
- if [ "${SIZE_ENGINE_UNITY}" != "-1" -a "$installEngineUnity" = "yes" ]; then
- install_engine_unity
- fi
- echo " Houdini install successful"
- fi
- fi
- #---LICENSE SERVER INSTALLATION--------------------------------------------
- if [ "$licenseServer" = "yes" ]; then
- if [ "$EUID" -ne 0 ]; then
- echo "You must be root to install the license server, not installing"
- else
- cd "$SRC"
- install_sesinetd
- license_status=$?
- if [ "$license_status" != 0 ]; then
- INSTALL_ERROR=1
- fi
- fi
- fi
- #---HQUEUE SERVER/CLIENT INSTALLATION-------------------------------------
- if [ "${installHQueue}" = "yes" -o "${installHQueueClient}" = "yes" ]; then
- cd "$SRC"
- if [ ! -f "$SRC/hqueue.install" ]; then
- echo "Error: no HQueue installation script"
- else
- export SRC
- hqueue_cmd_args=""
- if [ "${installHQueue}" = "yes" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --install-server"
- if [ "${hqServerDir}" != "" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --server-dir ${hqServerDir} --force"
- fi
- if [ "${createHQSharedDir}" = "yes" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --create-shared-folder"
- if [ "${hqSharedDir}" != "" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --shared-folder-path ${hqSharedDir}"
- fi
- if [ "${hqMountPoint}" != "" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --shared-folder-mount ${hqMountPoint}"
- fi
- elif [ "${createHQSharedDir}" = "no" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --no-shared-folder"
- fi
- if [ "${upgradeHQIfExists}" = "yes" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --do-upgrade"
- elif [ "${upgradeHQIfExists}" = "no" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --do-install"
- fi
- fi
- if [ "${installHQueueClient}" = "yes" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --install-client"
- if [ "${hqClientDir}" != "" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --client-dir ${hqClientDir}"
- fi
- if [ "${hqServerName}" != "" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --hq-server ${hqServerName}"
- fi
- if [ "${hqServerPort}" != "" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --hq-server-port ${hqServerPort}"
- fi
- if [ "${hqMountSharedDir}" = "yes" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --mount-shared-folder"
- elif [ "${hqMountSharedDir}" = "no" ]; then
- hqueue_cmd_args="${hqueue_cmd_args} --no-mount-shared-folder"
- fi
- fi
- /bin/bash "$SRC/hqueue.install" ${hqueue_cmd_args}
- if [ "$?" != "0" ]; then
- echo "Error: Could not install HQueue."
- INSTALL_ERROR=1
- fi
- fi
- fi
- #-------------------------------------------------------------------------
- # All done...
- clean_up 0
- #-------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement