From c0b6e63a0629e827f4c590079db7cd717f5fa035 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sat, 1 Jun 2019 17:10:27 -0600 Subject: [PATCH] Use external copy of nw.js for debian builds --- .gitignore | 2 + debian/DEBIAN/control | 3 +- debian/usr/bin/nickelbridge | 3 +- .../share/applications/NickelBridge.desktop | 2 +- debian/usr/share/doc/nickelbridge/copyright | 374 ------------------ scripts/debian_build.sh | 19 +- template.deb | Bin 12430 -> 0 bytes 7 files changed, 15 insertions(+), 388 deletions(-) create mode 100644 .gitignore delete mode 100644 debian/usr/share/doc/nickelbridge/copyright delete mode 100644 template.deb diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2c6155d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +debian/usr/share/nickelbridge/* +out/ diff --git a/debian/DEBIAN/control b/debian/DEBIAN/control index a5d00cd..927d988 100644 --- a/debian/DEBIAN/control +++ b/debian/DEBIAN/control @@ -4,5 +4,6 @@ Maintainer: Netsyms Technologies Section: web Homepage: https://netsyms.biz/apps/nickelbridge Priority: optional +Depends: nw.js Description: Desktop app to enable direct use of receipt printers in web apps. -Architecture: i386 +Architecture: all diff --git a/debian/usr/bin/nickelbridge b/debian/usr/bin/nickelbridge index 00b7b5d..a107c58 100755 --- a/debian/usr/bin/nickelbridge +++ b/debian/usr/bin/nickelbridge @@ -1,3 +1,2 @@ #!/bin/sh -cd /usr/lib/nickelbridge -./NickelBridge +nwjs /usr/share/nickelbridge diff --git a/debian/usr/share/applications/NickelBridge.desktop b/debian/usr/share/applications/NickelBridge.desktop index 0bf1219..64a228f 100755 --- a/debian/usr/share/applications/NickelBridge.desktop +++ b/debian/usr/share/applications/NickelBridge.desktop @@ -3,7 +3,7 @@ Name=NickelBridge Version=1.0 Exec=/usr/bin/nickelbridge Comment=Launch NickelBridge -Icon=/usr/lib/nickelbridge/logo.svg +Icon=/usr/share/nickelbridge/logo.svg Type=Application Terminal=false StartupNotify=true diff --git a/debian/usr/share/doc/nickelbridge/copyright b/debian/usr/share/doc/nickelbridge/copyright deleted file mode 100644 index 63a11e3..0000000 --- a/debian/usr/share/doc/nickelbridge/copyright +++ /dev/null @@ -1,374 +0,0 @@ -Copyright (c) 2018 Netsyms Technologies. - -If you modify and redistribute this project, you must replace the branding -assets with your own. - -The branding assets include: - * the application icon - * the Netsyms N punchcard logo - * the Netsyms for Business graph logo - -If you are unsure if your usage is allowed, please contact us: -https://netsyms.com/contact -legal@netsyms.com - -All other portions of this application, -unless otherwise noted (in comments, headers, etc), are licensed as follows: - -Mozilla Public License Version 2.0 -================================== - -### 1. Definitions - -**1.1. “Contributor”** - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -**1.2. “Contributor Version”** - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -**1.3. “Contribution”** - means Covered Software of a particular Contributor. - -**1.4. “Covered Software”** - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -**1.5. “Incompatible With Secondary Licenses”** - means - -* **(a)** that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or -* **(b)** that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -**1.6. “Executable Form”** - means any form of the work other than Source Code Form. - -**1.7. “Larger Work”** - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -**1.8. “License”** - means this document. - -**1.9. “Licensable”** - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -**1.10. “Modifications”** - means any of the following: - -* **(a)** any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or -* **(b)** any new file in Source Code Form that contains any Covered - Software. - -**1.11. “Patent Claims” of a Contributor** - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -**1.12. “Secondary License”** - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -**1.13. “Source Code Form”** - means the form of the work preferred for making modifications. - -**1.14. “You” (or “Your”)** - means an individual or a legal entity exercising rights under this - License. For legal entities, “You” includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, “control” means **(a)** the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or **(b)** ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - - -### 2. License Grants and Conditions - -#### 2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -* **(a)** under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and -* **(b)** under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -#### 2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -#### 2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -* **(a)** for any code that a Contributor has removed from Covered Software; - or -* **(b)** for infringements caused by: **(i)** Your and any other third party's - modifications of Covered Software, or **(ii)** the combination of its - Contributions with other software (except as part of its Contributor - Version); or -* **(c)** under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -#### 2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -#### 2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -#### 2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -#### 2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - - -### 3. Responsibilities - -#### 3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -#### 3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -* **(a)** such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -* **(b)** You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -#### 3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -#### 3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -#### 3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - - -### 4. Inability to Comply Due to Statute or Regulation - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: **(a)** comply with -the terms of this License to the maximum extent possible; and **(b)** -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - - -### 5. Termination - -**5.1.** The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated **(a)** provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and **(b)** on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -**5.2.** If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -**5.3.** In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - - -### 6. Disclaimer of Warranty - -> Covered Software is provided under this License on an “as is” -> basis, without warranty of any kind, either expressed, implied, or -> statutory, including, without limitation, warranties that the -> Covered Software is free of defects, merchantable, fit for a -> particular purpose or non-infringing. The entire risk as to the -> quality and performance of the Covered Software is with You. -> Should any Covered Software prove defective in any respect, You -> (not any Contributor) assume the cost of any necessary servicing, -> repair, or correction. This disclaimer of warranty constitutes an -> essential part of this License. No use of any Covered Software is -> authorized under this License except under this disclaimer. - -### 7. Limitation of Liability - -> Under no circumstances and under no legal theory, whether tort -> (including negligence), contract, or otherwise, shall any -> Contributor, or anyone who distributes Covered Software as -> permitted above, be liable to You for any direct, indirect, -> special, incidental, or consequential damages of any character -> including, without limitation, damages for lost profits, loss of -> goodwill, work stoppage, computer failure or malfunction, or any -> and all other commercial damages or losses, even if such party -> shall have been informed of the possibility of such damages. This -> limitation of liability shall not apply to liability for death or -> personal injury resulting from such party's negligence to the -> extent applicable law prohibits such limitation. Some -> jurisdictions do not allow the exclusion or limitation of -> incidental or consequential damages, so this exclusion and -> limitation may not apply to You. - - -### 8. Litigation - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - - -### 9. Miscellaneous - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - - -### 10. Versions of the License - -#### 10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -#### 10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -#### 10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -#### 10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -## Exhibit A - Source Code Form License Notice - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -## Exhibit B - “Incompatible With Secondary Licenses” Notice - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - - diff --git a/scripts/debian_build.sh b/scripts/debian_build.sh index 9915f3b..f085653 100644 --- a/scripts/debian_build.sh +++ b/scripts/debian_build.sh @@ -1,11 +1,10 @@ #!/bin/bash -# $1 is the binary location, $2 is the arch, $3 is the svg icon -mkdir tmp -mkdir out -dpkg-deb -R template.deb tmp -sed -i '/Architecture:/d' tmp/DEBIAN/control -echo "Architecture: $2" >> tmp/DEBIAN/control -rm -rf tmp/usr/lib/nickelbridge -rsync -rv "$1" tmp/usr/lib/nickelbridge -cp "$3" tmp/usr/lib/nickelbridge/logo.svg -dpkg-deb -b tmp "out/nickelbridge_1.0.0_$2.deb" +# $1 is the app location, $2 is the svg icon +mkdir -p out +rm -rf debian/usr/share/nickelbridge +mkdir -p debian/usr/share/nickelbridge +mkdir -p debian/usr/share/doc/nickelbridge +rsync -rv "$1" debian/usr/share/nickelbridge +cp debian/DEBIAN/copyright debian/usr/share/doc/nickelbridge/ +cp "$2" debian/usr/share/nickelbridge/logo.svg +dpkg-deb -b debian "out/nickelbridge_1.0.0-1_all.deb" diff --git a/template.deb b/template.deb deleted file mode 100644 index 0331a3d6f3b02fb02478e62ff7c455cf259fd563..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12430 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