From: Peter Michael Green Date: Sat, 29 Jun 2019 01:02:25 +0000 (+0100) Subject: Import supercollider_3.10.0+repack-1+rpi1.debian.tar.xz X-Git-Tag: archive/raspbian/1%3.10.4+repack-1+rpi1~1^2~20^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ef741c57c6f1f78aedd535c4e545c308ffeaeead;p=supercollider.git Import supercollider_3.10.0+repack-1+rpi1.debian.tar.xz [dgit import tarball supercollider 1:3.10.0+repack-1+rpi1 supercollider_3.10.0+repack-1+rpi1.debian.tar.xz] --- ef741c57c6f1f78aedd535c4e545c308ffeaeead diff --git a/README.extensions b/README.extensions new file mode 100644 index 0000000..426ec4d --- /dev/null +++ b/README.extensions @@ -0,0 +1,3 @@ +The "Extensions" folder provided by SuperCollider is initially empty. +Packages will add class extensions and/or plugins into this folder. + diff --git a/README.source b/README.source new file mode 100644 index 0000000..75efe2f --- /dev/null +++ b/README.source @@ -0,0 +1,50 @@ +Building this package for Debian +-------------------------------- + +This source package need no special handling for normal package builds. + + +Developing this package for Debian +---------------------------------- + +The source of this package is developed using git and the helper tool +git-buildpackage, with all official releases tagged and signed and +binary diffs of tarballs stored using pristine-tar. This is documented +below /usr/share/doc/git-buildpackage/manual-html/ . + +A custom build target shows current upstream and packaging versions: + + debian/rules print-version + +Current upstream tarball can be prepared using this other build target: + + debian/rules get-orig-source + +To switch to newer upstream source, first add a dummy changelog entry +and comment out DEB_UPSTREAM_TARBALL_MD5 before getting the source: + + dch -v ${new_upstream_version}-1 "Dummy changelog entry" + sed -i -e 's/^\(DEB_UPSTREAM_TARBALL_MD5\b\)/#\1/' debian/rules + debian/rules get-orig-source + +Store new md5sum to help ensure identical source is received later. + +Setting DEB_MAINTAINER_MODE=1 enables additional build routines helpful +during development of the package, but unfit for normal builds. This +typically includes the CDBS feature of auto-updating debian/control with +CDBS-related build-dependencies, which is forbidden by Debian Policy as +build environment must not change during automated builds. + + +Maintaining packaging build routines +------------------------------------ + +This source package wraps debhelper commands and other tedious parts of +the build routines using the CDBS framework. Please refer to the actual +makefile snippets included from debian/rules for details on their +purpose and ways to override defaults. Additionally, makefile snippets +included from below /usr/share/cdbs may also be documented in +/usr/share/doc/cdbs/cdbs-doc.pdf.gz . + + + -- Jonas Smedegaard Thu, 26 Feb 2009 21:28:29 +0100 diff --git a/changelog b/changelog new file mode 100644 index 0000000..11d6147 --- /dev/null +++ b/changelog @@ -0,0 +1,770 @@ +supercollider (1:3.10.0+repack-1+rpi1) buster-staging; urgency=medium + + * Apply patches from https://github.com/supercollider/supercollider/pull/4328 + to make QTWebengine optional. + * Make debian/rules disable qtwebengine. + * Remove build-depends on qtwebengine. + + -- Peter Michael Green Sat, 29 Jun 2019 01:02:25 +0000 + +supercollider (1:3.10.0+repack-1) unstable; urgency=medium + + * fixed a little error in d/rules: create a missing directory + * replaced "Architecture: any" by + "Architecture: i386 amd64 arm64 armhf mipsel" for all binary packages + * this provides the new upstream version, also Closes: #904588 + + -- Georges Khaznadar Sun, 03 Feb 2019 22:31:06 +0100 + +supercollider (1:3.10.0+repack-0.2) UNPUBLISHED; urgency=medium + + * Added myself to Uploaders + * Closes: #911662, as 3.10 > 3.9.3 + * The new upstream version, also Closes: #904588 + + -- Georges Khaznadar Wed, 26 Dec 2018 12:54:46 +0100 + +supercollider (1:3.10.0+repack-0.1) UPUBLISHED; urgency=medium + + * Non-maintainer upload. + * upgraded to the newest upstream source + * refreshed quilt patches + * added a new patch to fix an error in upstream code + (file server/supernova/utilities/time_tag.hp): the result + of get_nanoseconds() had to be type-casted to long. + Closes: #914640 + * added build-dependencies on qtwebengine5-dev, libqt5websockets5-dev, + libqt5svg5-dev + * delete quilt patch 'supernova-i686-march-flag.patch', which defeats + the configuration step. + * modified the path to a documentation file for installation + * modified emacsen configuration files to fit the patterns found + with ELPA. This prevents the installation with xemacs and emacs <= 23. + Closes: #916858 + * expanded Files-Excluded with 'HelpSource/lib/*.min.js' in d/copyright + * added install overrides to create symlinks for + - HelpSource/lib/codemirror-5.39.2.min.js + - HelpSource/lib/codemirror-addon-simple-5.39.2.min.js + - HelpSource/lib/jquery.min.js + + -- Georges Khaznadar Mon, 24 Dec 2018 16:31:59 +0100 + +supercollider (1:3.9.3+repack-1) UNPUBLISHED; urgency=medium + + * upgraded to the newest upstream source + * modified the watch file to add the suffix +repack instead of -repack + so the deb release is not lesser than the upstream package, which + might be misleading + * updated debian patches; two of them are refreshed (fuzzy patching + was successful), the others deletes since they were already integrated + upstream. + * modified d/supercollider-vim.install since the only stuff related to + vim is built under editors/, and much of the files installed in the + previous debian release are missing from the build tree; this results + probably in a useless package for supercollider-vim. + * disabled the use of ccache by patching CMakeLists.txt; this has no + backdraw for debuilding since the compilation is done only once. + + -- Georges Khaznadar Sun, 21 Oct 2018 21:15:07 +0200 + +supercollider (1:3.8.0~repack-2) unstable; urgency=medium + + * Demote Depends of supercollider-language on supercollider-server to a Recommends. + Normal users are expected to install the supercollider package, and + this allows advanced users to install only the language and have a + remote server. (Closes: #810006) + * Don't let the build system enable sse on i386. + It's not part of mainline. (Closes: #878346). + * Remove autodetection of raspberry cpus. + In debian we don't actually target raspberries, and guessing based on the build machine + is wrong too (Closes: #878347) + + -- Felipe Sateler Thu, 12 Oct 2017 21:20:37 -0300 + +supercollider (1:3.8.0~repack-1) unstable; urgency=medium + + [ Dan Stowell ] + * New upstream version 3.8.0 + * Drop upstreamed patches, refresh the others + * Update path for lintian override + * Refresh patches + * Explicitly set to standard build type. + This prevents a debug build occurring due to mis-set cmake flag + + [ Felipe Sateler ] + * Remove more patches applied upstream + * Have uscan repack the upstream tarball for us + * Fix excluded files pattern. + - portaudio changed name, + - dirs should not end with / + * Fix stale entries in d/copyright. + Some files were moved around, others were removed + * Forward two patches upstream and mark them as such + + -- Felipe Sateler Fri, 06 Oct 2017 10:16:56 -0300 + +supercollider (1:3.7.0~repack-5) unstable; urgency=medium + + [ Felipe Sateler ] + * Fix FTBFS with gcc 7. + Thanks to Adrian Bunk for the patches. (Closes: #853671) + * Remove copyright_hints. + We no longer use CDBS + * Bump standards version + + -- Felipe Sateler Thu, 07 Sep 2017 19:52:02 -0300 + +supercollider (1:3.7.0~repack-4) unstable; urgency=medium + + [ Dan Stowell ] + * Add notes about forwarded patches + + [ Felipe Sateler ] + * Use gbp-pq for patches + * Add patch to fix build failure when gcc doesn't handle 128bit float types + * Bump debhelper compat level to 10 + * Switch from CDBS to short-form dh + * Enable hardening flags + * Drop unused lintian overrides + + -- Felipe Sateler Wed, 16 Nov 2016 20:27:41 -0300 + +supercollider (1:3.7.0~repack-3) unstable; urgency=medium + + * Team upload. + * Add patch to fix oscpack FTBFS. (Closes: #824581) + * Add epoch to supercollider-common Breaks + Replaces. (Closes: #824757) + + -- James Cowgill Tue, 24 May 2016 18:09:01 +0100 + +supercollider (1:3.7.0~repack-2) unstable; urgency=medium + + [ Fernando Seiti Furusato ] + * debian/rules: disabled altivec/vsx for ppc64el since the package does not + support the usage for now + + [ Dan Stowell ] + * Update copyright file headers + * Restrict (optional) supernova to its target archs (amd64, i386m ia64) + (Closes: #824581) + * Fix lintian warnings about license names + + [ Felipe Sateler ] + * Make supercollider-common Breaks/Replaces supercollider-gedit + (Closes: #824757) + * Drop unused dependency on libqtwebkit-dev (Closes: #784531) + + -- Felipe Sateler Thu, 19 May 2016 22:33:58 -0400 + +supercollider (1:3.7.0~repack-1) unstable; urgency=medium + + [ Dan Stowell ] + * Update upstream url references (github now not sourceforge) + * New Upstream version + - Closes: #822467 + - Update dependencies for new version + - Remove mathjax dependency management, dropped upstream + - Remove boost-lockfree from copyright, dropped upstream + - Refresh patches, and drop outdated ones + - Update copyright information + - Add patch to fix FTBFS when using system boost + - Update install rules for changed readme filenames + - Add patch to fix FTBFS, add -fPIC flag to tlsf build + * Ignore lintian error about (unused) portaudio config files + + [ IOhannes m zmölnig ] + * Use https:// in Vcs-Browser stanza + + [ Hanno Zulla ] + * Update upstream homepage URL, fix vcs-field-uses-insecure-uri + + [ Felipe Sateler ] + * Ship mime info in -common package, not -gedit package + * Bump Standards-Version to 3.9.8 + - Drop menu files in favor of the desktop entries + + [ Jonas Smedegaard ] + * Remove myself as uploader. + + -- Felipe Sateler Mon, 09 May 2016 20:59:52 -0300 + +supercollider (1:3.6.6~repack-2-2) unstable; urgency=medium + + [ Dan Stowell ] + * Update debian git URLs listed in control file + + [ Felipe Sateler ] + * Fixup watch file + * Backport upstream patch for gcc5 atomic fix (Closes: #795968) + + -- Felipe Sateler Sat, 26 Sep 2015 17:48:35 -0300 + +supercollider (1:3.6.6~repack-2-1) unstable; urgency=low + + [ Dan Stowell ] + * Exclude bundled minified javascript-prettify, use packaged version. + + [ Felipe Sateler ] + * Install prettify symlink during build, not installation time + * Add emacsen compat file + + -- Felipe Sateler Sat, 04 Oct 2014 13:19:47 -0300 + +supercollider (1:3.6.6~repack-1) unstable; urgency=low + + * Imported upstream version 3.6.6. + * Exclude bundled MathJax scripts. We use system MathJax. Closes: #760981 + * Refresh patches, dropping one superceded patch. + + -- Dan Stowell Wed, 10 Sep 2014 09:28:36 +0100 + +supercollider (1:3.6.3~repack-7) unstable; urgency=medium + + * Team upload. + + [ Felipe Sateler ] + * Fix package dir in emacs startup file. (Closes: #743469) + + [ Gabriele Giacone ] + * debian/control: Switch (Build-Depends) to emacs | emacsen. (Closes: #754027) + + -- Sebastian Ramacher Tue, 09 Sep 2014 18:16:49 +0200 + +supercollider (1:3.6.3~repack-6) unstable; urgency=medium + + * Fix FTBFS with gcc-4.9. Closes: #746917 + + -- Felipe Sateler Fri, 06 Jun 2014 13:25:55 -0400 + +supercollider (1:3.6.3~repack-5) unstable; urgency=medium + + * Do not use system yaml-cpp. Closes: #733277 + + -- Felipe Sateler Fri, 03 Jan 2014 13:11:22 -0300 + +supercollider (1:3.6.3~repack-4) unstable; urgency=low + + [ Dan Stowell ] + * Use system libyaml-cpp0.3 (Closes: #722430) + * Do not build/provide supernova on sparc/powerpc (Closes: #728573) + + -- Felipe Sateler Sun, 24 Nov 2013 12:50:24 -0300 + +supercollider (1:3.6.3~repack-3) unstable; urgency=low + + * Force use of bundled yaml-cpp + * Add patch to use system lockfree. Also link appropriate libs on all archs + + -- Felipe Sateler Thu, 12 Sep 2013 19:21:30 -0300 + +supercollider (1:3.6.3~repack-2) unstable; urgency=low + + [ Dan Stowell ] + * Add 2 more files needed in -dev: SCVersion.txt, SC_PlugIn.hpp + + [ Felipe Sateler ] + * Drop alternative build dependencies on specific libboost versions + * Bump standards version + * Upload to unstable + + -- Felipe Sateler Mon, 09 Sep 2013 22:06:01 -0300 + +supercollider (1:3.6.3~repack-1) experimental; urgency=low + + [ Dan Stowell ] + * Imported upstream version 3.6.3 + * Rename language package supercollider -> supercollider-language + * supercollider is now a metapackage to provide standard install + + [ Felipe Sateler ] + * Improve supercollider-supernova description. + + -- Felipe Sateler Mon, 11 Mar 2013 09:22:37 -0400 + +supercollider (1:3.6.1~repack) unstable; urgency=low + + * Imported upstream version 3.6.1 + * New "supercollider-ide" package for new Qt-based IDE + * Ensure build with system boost, and now v1.50+ is required + * Update/refresh patches, remove 4 outdated patches + * Update copyright file + * Update install files: supernova plugin path changed + * Add cmake flags to ensure libscsynth is built (while testsuite not, unneeded) + * supernova compile fix on x86 + + -- Dan Stowell Thu, 20 Dec 2012 19:22:39 +0000 + +supercollider (1:3.5.4~repack-2-2) unstable; urgency=low + + * Imported upstream version 3.5.4 + * Note copyright for added file git-archive-all.py + + -- Dan Stowell Mon, 13 Aug 2012 14:07:48 +0100 + +supercollider (1:3.5.3~repack-3) unstable; urgency=low + + * Avoid FTBFS in PowerPC + * Avoid FTBFS in ia64 + * Fix ARM FTBFS: more qreal->double assumptions. Closes: #682361 + + -- Felipe Sateler Sat, 28 Jul 2012 20:19:58 -0400 + +supercollider (1:3.5.3~repack-2) unstable; urgency=low + + [ Dan Stowell ] + * Fix build on ia64 - avoid invoking unneeded perf_counter.hpp + * Fix caps in supercollider-emacs remove script. Closes: #681187 + * Boost-atomic build fix for PPC + * Note copyright for file adapted from wmctrl project + * Strip accidental gremlin characters that can cause problems for users in + some locales + + [ Felipe Sateler ] + * Fix FTBFS in big endian architectures + * Fix FTBFS in arm* architectures + + -- Dan Stowell Thu, 12 Jul 2012 22:53:55 +0100 + +supercollider (1:3.5.3~repack-1) unstable; urgency=low + + + [ Dan Stowell ] + * Imported upstream version 3.5.3 + - Removed 3 patches now upstreamed + - Repack upstream source without boost sources + * Fix build on non-x86/64: define BOOST_LOCKFREE_DCAS_ALIGNMENT + (Update prefix.hpp to current boost SVN 2012-07-03) + + [ Jonas Smedegaard ] + * Unfuzz patch and refresh with shortening options. + * Revive copyright/license tracking silently dropped in 1:3.5.1-1. + + [ Felipe Sateler ] + * Add missing epoch to versioned breaks/replaces. Closes: #679705 + * Install README.extensions via debian/rules instead of a patch + * Add DEP3 header to update_boostlockfree_prefixhpp.patch + * Remove unused License paragraph + * Bump Standards-Version (no changes needed) + * Remove unused lintian override package-contains-empty-directory + * Update copyright hints file + + -- Felipe Sateler Sat, 07 Jul 2012 14:16:59 -0400 + +supercollider (1:3.5.2-1) unstable; urgency=low + + * Imported Upstream version 3.5.2 + * Add manpage for supernova + * Use system mathjax via dh_linktree + * Backport fix to vim plugin from upstream + + -- Dan Stowell Sat, 16 Jun 2012 10:12:09 -0400 + +supercollider (1:3.5.1-2) UNRELEASED; urgency=low + + * install supercollider mode for gedit (thanks Tim Blechmann) + + -- Dan Stowell Tue, 01 May 2012 10:11:34 +0100 + +supercollider (1:3.5.1-1) UNRELEASED; urgency=low + + [ Dan Stowell ] + * Imported Upstream version 3.5.1 + * Import and adapt debian packaging info updates for SC 3.5 from tim blechmann + * removing scons patches (no longer using scons) + * Update paths & content of copyright file for SC 3.5 + + -- Dan Stowell Sat, 07 Apr 2012 14:01:57 +0100 + +supercollider (1:3.4.5-2) UNRELEASED; urgency=low + + * Drop dpkg-source local-options: Defaults since dpkg-source 1.16.1. + * Update package relations: + + Relax to build-depend unversioned on debhelper: needed version + satisfied even in oldstable. + * Bump debhelper compat level to 7. + * Simplify install handling, as supported by debhelper compat level 7. + * Stop setting bogus (or obsolete?) CDBS_NO_DOC_SYMLINKING. + * Update copyright file: + + Merge Files sections with same Licensing and (subsets of) same + copyright holders. + + Extend a Files section and drop another, to sync with new upstream + source. + + Sort authors by copyright year, and then alphabetically. + + Add email of original author, from AUTHORS file. + + Strip excess whitespace, and rewrap License sections at 72 chars. + + Add Comment field to GNU License sections; shortened, duplicate + texts dropped, using FSF web address (not postal address), and + with license strings quoted. + * Replace README.source: + + Drop notes on no longer used quilt. + + Add notes on git-buildpackage and CDBS. + * Add myself as uploader. + * Consistently newline-delimit package relations. + + -- Jonas Smedegaard Wed, 08 Feb 2012 00:52:02 +0100 + +supercollider (1:3.4.5-1) unstable; urgency=low + + [ Dan Stowell ] + * Imported Upstream version 3.4.5 + * remove debian patches 11 & 12, upstreamed + + -- Dan Stowell Sun, 15 Jan 2012 15:48:04 +0000 + +supercollider (1:3.4.4-3) unstable; urgency=low + + * Patch from Mathieu Trudel-Lapierre to fix build under stricter linking. + Closes: #648782 + + -- Dan Stowell Tue, 15 Nov 2011 09:54:00 +0000 + +supercollider (1:3.4.4-2) unstable; urgency=low + + * Team upload. + * Disable building of gedit2 plugin. Closes: #635118 + + -- Felipe Sateler Fri, 28 Oct 2011 23:30:39 -0300 + +supercollider (1:3.4.4-1) unstable; urgency=low + + [ Alexandre Quessy ] + * Initial release for debian (Closes: #602050). + * Little cleanup in dependencies + * Build-Depend on libsndfile1-dev - the 1 is mandatory + * Use format 3.0 (quilt) + * Make sure short descriptions are not duplicates + + [ Felipe Sateler ] + * Add myself to Uploaders + * Use the cdbs scons class + - Tighten build-dep on cdbs for scons class support + * Add DEP-3 headers to patches + * Fix BSD license section in copyright file + * Bump Standards-Version + * Make use of dh_lintian instead of manually installing overrides + * Override lintian warnings: + - emacs command not in package, supercollider-emacs depends on emacs + - missing xpm, supercollider depends on supercollider-common + - empty directory, it is intentional + * Build-Depend on libcwiid-dev instead of dropped libcwiid1-dev + * Use single space after fields in debian/control + * Qualify build dependency on libasound for use only on linux archs + * Switch from pysupport to dh_python2 + + [ Dan Stowell ] + * Imported Upstream version 3.4.4 + * Apple copyright not needed, apple files not bundled + * Can build against jack2 as well as jack1 + * Update copyright to match rearranged folders and stripped linux + source tgz + * Combine -dev packages into one supercollider-dev + - Merged -dev package Conflicts+Replaces+Provides predecessors + * Handle DEB_BUILD_OPTIONS to control strip/optimise + * Don't strip in rules (let dh_strip decide) + * Update copyright with full dates+authors (largely from SCM analysis) + + [ Jonas Smedegaard ] + * Ease building with git-buildpackage: + + Git-ignore quilt .pc dir. + + Add dpkg-source local-options hints. + * Update copyright file: + + Drop superfluous X-Packaged-By fields (covered by Files section + + debian/* and - for more accurate times - file debian/control). + + Move license texts to License sections, sorted roughly by + similarity with main licensing terms. + + Reorder Files sections sorted by amount of files, first upstream + and then debian packaging. + + Stop listing WiiMote_OSX Files section apparently no longer + included. + + Tighten DEP-5 format to draft rev. 174. + + Extend with additional copyright holders. + * Enable CDBS utils.mk snippet, for copyright-check routine. + + -- Felipe Sateler Tue, 19 Jul 2011 22:18:02 -0400 + +supercollider (1:3.3.2~svn9887-0ubuntu1~lucid1) lucid; urgency=low + + * First build for Ubuntu. + + -- Артём Попов Fri, 26 Feb 2010 09:34:09 +0600 + +supercollider (1:3.3.2~svn9887-0) UNRELEASED; urgency=low + + [ Артём Попов ] + * New upstream release (LP: #183552). Repackaged from scratch + (with manpages adapted from the original package). + + [ Dan Stowell] + * Improve behaviour of "scvim" desktop icon: visible user prompt + about vim-addon-manager if needed. + * Desktop files and icons integration. + * Update packaging rules for reorganised folders. + * Update and extend manpages for scvim. + * Added debian menu files. + * Dependencies, architeture, copyright and lintian fixes. + + -- Артём Попов Fri, 26 Feb 2010 09:34:09 +0600 + +supercollider (20060416-1build1) gutsy; urgency=low + + * Rebuild for the libflac transition. + + -- Steve Kowalik Tue, 10 Jul 2007 15:31:52 +1000 + +supercollider (20060416-1) unstable; urgency=low + + * New upstream release + * Removed erroneous architecture fields in Suggests (closes: #356372) + * Activated RendezVous build, added Build-depends on libavahi-client-dev + * Bump sonames to libsclang.so.1 and libscsynth.so.1 + * Move supercollider-doc to Section: doc + + -- Paul Brossier Tue, 18 Apr 2006 12:28:40 +0200 + +supercollider (20051211-1) unstable; urgency=low + + * New upstream release + * Prevent byte-compilation for xemacs (closes: #338169, #342358) + * sclang is now to be compiled only on supported platforms + (closes: #276212, #290339) + * 10fix_emacs_help.dpatch: fix path for Help + + -- Paul Brossier Mon, 12 Dec 2005 10:12:21 +0000 + +supercollider (20050921-1) unstable; urgency=low + + * New upstream release + * Removed patch 60SC_Lib_dlopen and 100fix_gcc4, merged upstream. + * Added 20virtual_parsenode to prevent virtual destructor g++-4.0 warnings + * Drop supercollider package on architectures where test failed. The + supercollider-server package remains available on all platforms. Also drop + libsclang on these machines. + + -- Paul Brossier Thu, 22 Sep 2005 03:42:14 +0100 + +supercollider (20050624-1) unstable; urgency=low + + Paul Brossier: + * New upstream release + * Updated rules to follow the move to scons + * Added scons and removed emacsen first in Build-Deps + * Updated 10emacs, 60SC_Lib_dlopen, 70fix_some_warnings + * Adds 80remove_pragmas + * Removed 80fix_sclang.conf + * Bumped Standards-Version + * Splitted supercollider into supercollider, supercollider-server, + libsclang0 and libscsynth0. supercollider-dev now provides libsclang-dev + and libscsynth-dev + + Mario Lang: + * Execute the scons install target. + * Patch SConstruct to avoid Emacs byte-compilation at build-time. + * Use a emcsen-install script to perform byte-compilation + at package install time to be conformant with Debian Emacs Policy. + * Put plugins in libscsynth0 so that both either client-only + installations (with internal server) and server only installations + (no client package installed) work correctly. + * Move .rtf docs to /usr/share/SuperCollider/Help (as upstream + does by default) and symlink from /usr/share/doc/supercollider-doc/Help. + * Build against latest jackd (closes: #317225) + * Revive test-sclang target and make it run at build time. + * supercollider suggests supercollider-doc. + + Paul Brossier: + * Extension are now managed at install time. Changed sclang.cfg location + from /etc to /etc/supercollider to avoid loading old conffiles left over + from previous install. added a note in NEWS.Debian and updated manpage, + installed optional template in /usr/share/doc/supercollider + * Added conflict against supercollider (<< ${Source-Version}) to + libscsynth0 and libsclang0 to prevent file conflicts. + * Update test-sclang: replace LD_LIBRARY_PATH with LD_PRELOAD to make sure + newly libs are being used (and avoid a build-conflict against + supercollider binary), simplify the command line, activate noruntest + DEB_BUILD_OPTIONS to bypass run test + * Patch source/lang/LangSource/SC_LanguageClient.cpp to compile with + current g++ 4.0. + * Dropped unused libsigc++-dev, libtool and emacs21 Build-Deps + + -- Paul Brossier Fri, 8 Jul 2005 03:59:30 +0100 + +supercollider (20050424-1) unstable; urgency=low + + * CVS update + * Added cvsupdate target to rules + * Added Psycollider to debian/non-free + * Moved 60SC_Lib_dlopen to dpatch + * Added 70fix_some_warnings patch to fix some warnings + * Fix sclang.cfg template in 80fix_sclang.cfg + * Added hand crafted simple icon to menu entries (closes: #299421) + * Bumped upstream version number to `date +%Y%m%d` + * Removed obsolete scfront and (wish | tk) Suggests + + -- Paul Brossier Mon, 25 Apr 2005 15:23:43 +0100 + +supercollider (050114-2) unstable; urgency=low + + * Added Mario Lang to the Uploader field. + * Removed libhowl-dev from Build-Depends as howl is being removed (see + #289856) (closes: #295776) + * Removed odd comment about 64 bits: supercollider fails on many other + architectures. apparently anything but i386 and powerpc - and maybe mips + (see #274240, #276212 and #290339). + + -- Paul Brossier Sun, 27 Feb 2005 20:12:23 +0000 + +supercollider (050114-1) unstable; urgency=low + + * Cvs update (closes: #289340) + * Modified startup script to move synthdefs to ~/.scsynthdefs/ + * Fix clean and install time test in rules + * Removed automake1.7 dependancy. + + -- Paul Brossier Sun, 16 Jan 2005 19:31:06 +0000 + +supercollider (040926-3) unstable; urgency=low + + * Adding sclang test to debian/rules to fail 64 bit builds. + + -- Paul Brossier Sat, 8 Jan 2005 19:43:52 +0000 + +supercollider (040926-2) unstable; urgency=low + + * Asked for supercollider to be added to Packages-arch-specific + and for the 64-bit arch to be removed from archive (see: #276212) + * Back to Architecture: any in debian/control (closes: #274240) + + -- Paul Brossier Wed, 13 Oct 2004 10:10:25 +0100 + +supercollider (040926-1) unstable; urgency=low + + * New upstream release (closes: #272379) + * Added missing BBCUT JITLib support (closes: #272255) + * Regenerated automake files + * Added missing \ in debian/scsynth.1 + * Updated emacs menu entry to include emacs and tk. + * Dropped 64 bit architecture (closes: #274240) + + -- Paul Brossier Thu, 7 Oct 2004 18:12:28 +0100 + +supercollider (040808-1) unstable; urgency=high + + * Cvs update + * Removed non-free files (see non-free in debian/), removed useless + inclusion and installation of non-free dlfcn.h, updated debian/copyright + * Dropped emacs19 emacs20 and xemacs21 Build-Depends, added recommends on + emacsen | emacs21, included Makefile within diff and dropped autotools-dev + Build-Depends. + * Trying again sparc compilation (closes: #260251) + * gcc-3.4 compilation fixed upstream (closes: #263817) + * Inclusion of bbcut within supercollider orig (closes: #264564) + * Added missing end of lines in diff and small script in debian/rules + * Reenabled CFLAGS=-Wall + * Added in linux input device compilation --enable-lid + * Avoid deletion of .rtfd directories, instead remove empty files called + .typeAttributes.dict + * Disabled empty Help button in scfront + * Removed README.debian and added menu entries for emacs mode + * Moved .desktop from /usr/share/gnome/apps/Multimedia to + /usr/share/applications. + + -- Paul Brossier Mon, 16 Aug 2004 13:52:56 +0200 + +supercollider (040719-1) unstable; urgency=low + + * Cvs update + * Removed .cvsignore files in the archive + * Moved clz.h patch to dpatch + * Updated manpages, added sclang.real.1 and supercollider.1 + * Made links to redundant manpages + * Removed README.Debian + * Fixed .DS_Store removal + * Trying again sparc compilation (closes: #260251) + + -- Paul Brossier Fri, 6 Aug 2004 12:07:07 +0200 + +supercollider (040709-2) unstable; urgency=low + + * reFixed clz.h + + -- Paul Brossier Sat, 17 Jul 2004 13:13:21 +0100 + +supercollider (040709-1) unstable; urgency=low + + * Added fix for emacs doc (closes: #255002) (patches/10) + * Avoid compression of RTF documentation + * Added compilation of x11 plugins (fixed configure.in and depends) + * Wrapper: added sclang and modified scsynth (now creates ~/synthdefs) + * Modified scfront patch (still buggy) + * Fixed spelling in scfront.1 manpage + * Fixed extMain.sc install using $(DESTDIR) (patches/40) + * Use dh_installemacsen and removed install of .elc + * Added emacsen-startup (not fully emacsen compliant yet) + * Removed .DS_Store files + * Updated README.Debian + * Completed supercollider.desktop entries + * Cvs update + * Added workaround 'cd SC_SYNTHDEF_PATH' to both wrapper + + -- Paul Brossier Mon, 12 Jul 2004 18:40:06 +0100 + +supercollider (040513-2) unstable; urgency=low + + * Fixed clz.h (thanks again Guenter) + * added missing build deps (thanks G.Geiger) + * fixed sclang.wrapper + + -- Paul Brossier Tue, 8 Jun 2004 17:04:06 +0100 + +supercollider (040513-1) unstable; urgency=low + + * upstream cvs update + * added new /etc/sclang.cfg conffile + * wrapped scsynth, renamed as scsynth.real + (adds default port and jacka connection) + * added manpages for scsynth, sclang and scfront (1) + * added scfront menu (icons anyone ?) + * small hack for make install in linux/examples + + -- Paul Brossier Thu, 13 May 2004 23:48:26 +0100 + +supercollider (040312-0test1) unstable; urgency=low + + * upstream update + * removed empty changelog file + * updated plugins configure (fixed upstream) + * removed xlibs-dev dependancy (upstream) + + -- Paul Brossier Sun, 14 Mar 2004 01:35:32 +0000 + +supercollider (040301-0test2) unstable; urgency=low + + * fixed missing plugins + * corrected dependancies + * added sclang.cfg, sclang.sc and some documentation + * added scfront (tk front-end) + + -- Paul Brossier Mon, 8 Mar 2004 03:42:45 +0000 + +supercollider (040301-1) unstable; urgency=low + + * updated to last cvs + * added Emacs style files + * moved header files to supercollider-dev + + -- Paul Brossier Mon, 1 Mar 2004 03:36:00 +0000 + +supercollider (3.0-0test1) unstable; urgency=low + + * debian/control: wrote build dependencies + * added locally generated configure script + * debian/rules: commented out the autoconf & co. commands + * added template manpages for scsynth and sclang + + -- Free Ekanayaka Sat, 3 Jan 2004 10:44:07 +0100 + +supercollider (3.0-1) unstable; urgency=low + + * Initial Release. + + -- Paul Brossier Mon, 10 Nov 2003 01:41:48 +0000 + diff --git a/compat b/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +10 diff --git a/control b/control new file mode 100644 index 0000000..58f098a --- /dev/null +++ b/control @@ -0,0 +1,213 @@ +Source: supercollider +Section: sound +Priority: optional +Vcs-Git: https://salsa.debian.org/multimedia-team/supercollider.git +Vcs-Browser: https://salsa.debian.org/multimedia-team/supercollider +Maintainer: Debian Multimedia Maintainers +Uploaders: Alexandre Quessy , + Dan Stowell , + Felipe Sateler , + Georges Khaznadar +Build-Depends: + cmake (>= 2.8.12), + debhelper (>= 10~), + emacs | emacsen, + libasound2-dev [linux-any], + libavahi-client-dev, + libcwiid-dev, + libfftw3-dev, + libicu-dev, + libjack-dev, + libqt5core5a (>= 5.3), + libreadline-dev, + libsndfile1-dev (>= 1.0.16), + libudev-dev, + libxt-dev, + python-all-dev (>= 2.6.6-3~), + qtbase5-dev, + qt5-qmake, + qttools5-dev, + qttools5-dev-tools, + qtdeclarative5-dev, + libqt5opengl5-dev, + libqt5webkit5-dev, + libqt5websockets5-dev, + libqt5svg5-dev, + qtpositioning5-dev, + libqt5sensors5-dev, + libboost-dev (>= 1.57), + libboost-date-time-dev (>= 1.57), + libboost-filesystem-dev (>= 1.57), + libboost-math-dev (>= 1.57), + libboost-program-options-dev (>= 1.57), + libboost-regex-dev (>= 1.57), + libboost-system-dev (>= 1.57), + libboost-test-dev (>= 1.57), + libboost-thread-dev (>= 1.57) +Standards-Version: 4.1.0 +Homepage: http://supercollider.github.io + +Package: supercollider +Architecture: i386 amd64 arm64 armhf mipsel +Depends: supercollider-language, + supercollider-server, + supercollider-ide, + ${misc:Depends}, +Recommends: supercollider-supernova +Description: real time audio synthesis programming language + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This metapackage installs the standard core components of supercollider, + including the language, the synthesis server, and the code editor (IDE). + +Package: supercollider-language +Architecture: i386 amd64 arm64 armhf mipsel +Depends: ${shlibs:Depends}, + ${misc:Depends}, + supercollider-common (= ${source:Version}), +Recommends: + supercollider-server (= ${binary:Version}), +Suggests: subversion, + supercollider-ide +Breaks: supercollider (<= 1:3.5.3) +Replaces: supercollider (<= 1:3.5.3) +Description: real time audio synthesis programming language + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the language interpreter. + +Package: supercollider-common +Architecture: all +Depends: ${misc:Depends}, libjs-prettify +Breaks: supercollider-server (<< 1:3.5), + supercollider-gedit (<< 1:3.7.0~repack-1~) +Replaces: supercollider-doc, + supercollider-server (<< 1:3.5), + supercollider-gedit (<< 1:3.7.0~repack-1~) +Description: common files for SuperCollider + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the architecture independent files for SuperCollider. + +Package: supercollider-server +Architecture: i386 amd64 arm64 armhf mipsel +Depends: ${shlibs:Depends}, ${misc:Depends}, jackd +Description: real time audio synthesis server + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the synthesis server. + +Package: supercollider-ide +Architecture: i386 amd64 arm64 armhf mipsel +Depends: ${shlibs:Depends}, ${misc:Depends}, + supercollider-language (>= ${source:Version}) +Description: integrated development environment for supercollider audio system + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the graphical IDE, the recommended interface for + working with SuperCollider code. + +Package: supercollider-supernova +Architecture: i386 amd64 arm64 armhf mipsel +Depends: ${shlibs:Depends}, ${misc:Depends}, jackd +Description: real time audio synthesis server (multiprocessor version) + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the multiprocessor aware and parallelization capable + synthesis server supernova. Use of this server is manually enabled via a + Server.supernova call before starting the server. This server does not work + on i486 or i586 processors. + +Package: libscsynth1 +Architecture: i386 amd64 arm64 armhf mipsel +Depends: ${shlibs:Depends}, + ${misc:Depends} +Description: SuperCollider synthesis server library + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the shared library for the synthesis server. + +Package: supercollider-dev +Architecture: i386 amd64 arm64 armhf mipsel +Depends: ${misc:Depends}, + supercollider-language (= ${binary:Version}), + libsndfile1-dev (>= 1.0.16) +Conflicts: supercollider-common-dev, + supercollider-server-dev +Replaces: supercollider-common-dev, + supercollider-server-dev +Provides: supercollider-common-dev, + supercollider-server-dev +Description: development files for SuperCollider + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package contains the development files and headers. + +Package: supercollider-emacs +Architecture: all +Depends: ${misc:Depends}, + supercollider-language (>= ${source:Version}), + emacs | emacsen +Recommends: w3m-el +Description: SuperCollider mode for Emacs + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package provides the SuperCollider mode for Emacs. + +Package: supercollider-vim +Architecture: all +Depends: ${misc:Depends}, + supercollider-language (>= ${source:Version}), + vim | gvim, + ruby +Recommends: unhtml | links, + vim-addon-manager +Suggests: unrtf +Description: SuperCollider mode for Vim + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package provides the SuperCollider mode for Vim. + + +Package: supercollider-gedit +Architecture: all +Depends: ${misc:Depends}, + supercollider-language (>= ${source:Version}), + gedit (>=3.0.0) +Description: SuperCollider mode for Gedit + SuperCollider is an environment and programming language for real time + audio synthesis and algorithmic composition. It provides an interpreted + object-oriented language which functions as a network client + to a state of the art, realtime sound synthesis server. + . + This package provides the SuperCollider mode for Gedit. diff --git a/copyright b/copyright new file mode 100644 index 0000000..1e76694 --- /dev/null +++ b/copyright @@ -0,0 +1,893 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: SuperCollider +Upstream-Contact: SuperCollider Development Team +Source: http://supercollider.github.io/ + Repackaged, excluding third-party Boost library source +Files-Excluded: + external_libraries/boost + external_libraries/libsndfile + external_libraries/simplejson-* + external_libraries/icu + external_libraries/portaudio*/bindings/cpp/build + HelpSource/prettify.js + HelpSource/lib/*.min.js + +Files: * +Copyright: 2002-2007, James McCartney + 2002-2011, Chris Sattinger (Crucial Felix) + 2002-2011, Jan Trutzschler + 2002-2011, Stefan Kersten + 2003-2004, Christophe Costigan + 2003-2004, Dave Watson + 2003-2004, Maurizio Umberto Puxeddu + 2003-2008, Ross Bencina + 2003-2011, Julian Rohrhuber + 2003-2011, Nick Collins + 2003-2011, Ron Kuivila + 2003-2011, Scott Wilson + 2003, James Harkins + 2004-2005, Benjamin Golinvaux + 2004-2005, Newton Armstrong + 2004-2005, Rohan Drape + 2004-2006, Andi Pieper + 2004-2011, Alberto de Campo + 2004-2011, Fredrik Olofsson + 2004, Mark Polishook + 2004, Mike Whyte + 2005-2006, Mario Lang + 2005,2007-2010, Blackrain + 2005-2008, Christopher Frauenberger + 2005-2009, Tim Walters + 2005-2011, Dan Stowell + 2006-2010, Till Bovermann + 2006-2011, Joshua Parmenter + 2006-2011, Marije Baalman + 2006, Christian A. Hresko + 2006, Patrick Beard + 2007-2008, Ryan Brown + 2007-2010, Hanns Holger Rutz + 2007-2011, Thor Magnusson + 2008-2010, Anders Vinjar + 2008-2010, Charles Picasso + 2008-2011, Alex Norman + 2008-2011, Tim Blechmann + 2008, John Glover + 2009-2010, Miguel Negrao + 2009-2011, Axel Balley + 2009-2011, Batuhan Bozkurt + 2009-2011, Gerard Roma <0001@ooo000ooo.org> + 2009, Martin Victory + 2010-2011, Jonatan Liljedahl + 2010-2011, Patrick Borgeat +License: GPL-2+ + +Files: HelpSource/* +Copyright: 2009, SuperCollider 3 documentation contributors +License: CC-BY-SA-3.0 + +Files: include/lang/SC_LanguageClient.h + lang/LangSource/SC_TerminalClient.h + common/SC_StringParser.h + include/common/SC_StringBuffer.h + server/scsynth/Rendezvous.cpp + server/scsynth/SC_Jack.cpp + lang/LangPrimSource/PyrSerialPrim.cpp + lang/LangPrimSource/SC_AlsaMIDI.cpp + lang/LangPrimSource/SC_LID.cpp + editors/scel/* +Copyright: 2003-2006, Stefan Kersten +License: GPL-2+ + +Files: editors/sc-ide/* +Copyright: 2012, Tim Blechmann + 2012, Jakob Leben +License: GPL-2+ + +Files: editors/scvim/* +Copyright: 2007, Alex Norman +License: GPL-3+ + +Files: editors/sced/* +Copyright: 2006-2009, Артём Попов +License: GPL-3+ + +Files: editors/scel/el/sclang-vars.el.in + editors/scel/el/sclang-widgets.el +Copyright: 2004-2005, Free Software Foundation, Inc +License: GPL-2+ + +Files: lang/LangPrimSource/SC_Speech.mm + lang/LangPrimSource/SC_Speech.cpp +Copyright: 2003, sampleAndHold.org +License: GPL-2+ + +Files: external_libraries/boost_sync/* +Copyright: 2004 Michael Glassford, 2013 Andrey Semashev, 2013 Vicente J. Botet Escriba, 2013 Tim Blechmann +License: BSL-1.0 + +Files: external_libraries/hidapi/* +Copyright: 2009 Alan Ott, Ludovic Rousseau +License: HIDAPI-TRIPLE-LICENSE + HIDAPI can be used under one of three licenses. + 1. The GNU General Public License, version 3.0, in LICENSE-gpl3.txt + 2. A BSD-Style License, in LICENSE-bsd.txt. + 3. The more liberal original HIDAPI license. LICENSE-orig.txt + +Files: external_libraries/nova-simd/* +Copyright: 2009 Tim Blechmann +License: GPL-2+ + +Files: external_libraries/nova-simd/benchmarks/cache_aligned_array.hpp +Copyright: 2001, Nicolai M. Josuttis +License: BSL-1.0 + +Files: external_libraries/nova-simd/benchmarks/perf_counter.hpp +Copyright: 2008, Tim Blechmann + 2008-2009, Red Hat, Inc., Ingo Molnar + 2008-2009, Red Hat, Inc., Peter Zijlstra + 2008-2009, Thomas Gleixner +License: GPL-2+ + +Files: external_libraries/nova-tt/* +Copyright: 2009 Tim Blechmann +License: GPL-2+ + +Files: external_libraries/oscpack*/* +Copyright: 2004 Ross Bencina +License: BSD-like-oscpack + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + Any person wishing to distribute modifications to the Software is + requested to send the modifications to the original developer so that + they can be incorporated into the canonical version. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR + ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF + CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Files: external_libraries/TLSF-2.4.6/* +Copyright: 2009 UPVLC, OCERA Consortium +License: GPL-2+ with TLSF exception or LGPL-2.1+ with TLSF exception + As a special exception, including TLSF header files in a file, or linking with + other files objects to produce an executable application, is merely considered + normal use of the library, and does *not* fall under the heading of "derived + work". Therfore does not by itself cause the resulting executable application + to be covered by the GNU General Public License. This exception does not + however invalidate any other reasons why the executable file might be covered + by the GNU Public License. + +Files: external_libraries/yaml-cpp-0.3.0/* +Copyright: 2008 Jesse Beder +License: MIT + +Files: lang/LangSource/Bison/lang11d_tab.cpp +Copyright: 1984, 1989-1990, 2000-2006, Free Software Foundation, Inc. +License: GPL-2+ with Bison exception + As a special exception, you may create a larger work that contains part + or all of the Bison parser skeleton and distribute that work under + terms of your choice, so long as that work isn't itself a parser + generator using the skeleton or a modified version thereof as a parser + skeleton. Alternatively, if you modify or redistribute the parser + skeleton itself, you may (at your option) remove this special + exception, which will cause the skeleton and the resulting Bison output + files to be licensed under the GNU General Public License without this + special exception. + +Files: server/plugins/FilterUGens.cpp +Copyright: 2002, James McCartney + 2007, Federico Fontana +License: GPL-2+ + +Files: server/plugins/DynNoiseUGens.cpp +Copyright: 2002, James McCartney + 2004, HfbK +License: GPL-2+ + +Files: include/plugin_interface/SC_sndfile_stub.h +Copyright: 1999-2009, Erik de Castro Lopo +License: LGPL-2.1+ + +Files: package/pkg-dmg +Copyright: 2005, Mark Mentovai +License: MPL-1.1 or GPL-2+ or LGPL-2.1+ + +Files: package/git-archive-all.py +Copyright: 2012, Ilya Kulakov +License: MIT + +Files: examples/GUI?examples/ColorBrowser.scd +Copyright: 2007, Tom Hall +License: GPL-2+ + +Files: QtCollider/* +Copyright: 2010-2012, Jakob Leben +License: GPL-2+ + +Files: QtCollider/hacks/hacks_x11.cpp +Copyright: 2003 Tomas Styblo + 2011 Tim Blechmann + 2011 Jakob Leben +License: GPL-2+ + +Files: debian/* +Copyright: 2004, Paul Brossier + 2008, Артём Попов + 2010, Alexandre Quessy +License: GPL-2+ + +License: GPL-2+ + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. +Comment: + You should have received a copy of the 'GNU General Public License' + along with this program. If not, see . + . + On Debian systems the 'GNU General Public License' version 2 is located + in '/usr/share/common-licenses/GPL-2'. + +License: GPL-3+ + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. +Comment: + On Debian systems the 'GNU General Public License' version 3 is located + in '/usr/share/common-licenses/GPL-3'. + +License: LGPL-2.1+ + This package is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. +Comment: + You should have received a copy of the 'GNU Lesser General Public + License' along with this program. If not, see + . + . + On Debian systems the 'GNU Lesser General Public License' version 2.1 + is located in '/usr/share/common-licenses/LGPL-2.1'. + +License: CC-BY-SA-3.0 + This work is licensed under the Creative Commons Attribution-Share + Alike 3.0 Unported License. To view a copy of this license, visit + http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to + Creative Commons, 171 Second Street, Suite 300, San Francisco, + California, 94105, USA. + +License: BSL-1.0 + Permission is hereby granted, free of charge, to any person or + organization obtaining a copy of the software and accompanying + documentation covered by this license (the "Software") to use, + reproduce, display, distribute, execute, and transmit the Software, and + to prepare derivative works of the Software, and to permit + third-parties to whom the Software is furnished to do so, all subject + to the following: + . + The copyright notices in the Software and this entire statement, + including the above license grant, this restriction and the following + disclaimer, must be included in all copies of the Software, in whole or + in part, and all derivative works of the Software, unless such copies + or derivative works are solely in the form of machine-executable object + code generated by a source language processor. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND + NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE + DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, + WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished to do + so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + +License: MPL-1.1 + MOZILLA PUBLIC LICENSE + Version 1.1 + . + --------------- + . + 1. Definitions. + . + 1.0.1. "Commercial Use" means distribution or otherwise making the + Covered Code available to a third party. + . + 1.1. "Contributor" means each entity that creates or contributes to the + creation of Modifications. + . + 1.2. "Contributor Version" means the combination of the Original Code, + prior Modifications used by a Contributor, and the Modifications made + by that particular Contributor. + . + 1.3. "Covered Code" means the Original Code or Modifications or the + combination of the Original Code and Modifications, in each case + including portions thereof. + . + 1.4. "Electronic Distribution Mechanism" means a mechanism generally + accepted in the software development community for the electronic + transfer of data. + . + 1.5. "Executable" means Covered Code in any form other than Source + Code. + . + 1.6. "Initial Developer" means the individual or entity identified as + the Initial Developer in the Source Code notice required by Exhibit A. + . + 1.7. "Larger Work" means a work which combines Covered Code or portions + thereof with code not governed by the terms of this License. + . + 1.8. "License" means this document. + . + 1.8.1. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + . + 1.9. "Modifications" means any addition to or deletion from the + substance or structure of either the Original Code or any previous + Modifications. When Covered Code is released as a series of files, a + Modification is: + A. Any addition to or deletion from the contents of a file containing + Original Code or previous Modifications. + . + B. Any new file that contains any part of the Original Code or + previous Modifications. + . + 1.10. "Original Code" means Source Code of computer software code which + is described in the Source Code notice required by Exhibit A as + Original Code, and which, at the time of its release under this License + is not already Covered Code governed by this License. + . + 1.10.1. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, and + apparatus claims, in any patent Licensable by grantor. + . + 1.11. "Source Code" means the preferred form of the Covered Code for + making modifications to it, including all modules it contains, plus any + associated interface definition files, scripts used to control + compilation and installation of an Executable, or source code + differential comparisons against either the Original Code or another + well known, available Covered Code of the Contributor's choice. The + Source Code can be in a compressed or archival form, provided the + appropriate decompression or de-archiving software is widely available + for no charge. + . + 1.12. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, this + License or a future version of this License issued under Section 6.1. + For legal entities, "You" includes any entity which 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. Source Code License. + . + 2.1. The Initial Developer Grant. + . + The Initial Developer hereby grants You a world-wide, royalty-free, + non-exclusive license, subject to third party intellectual property + claims: + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Code (or portions thereof) with or without Modifications, and/or + as part of a Larger Work; and + (b) under Patents Claims infringed by the making, using or selling of + Original Code, to make, have made, use, practice, sell, and offer + for sale, and/or otherwise dispose of the Original Code (or + portions thereof). + (c) the licenses granted in this Section 2.1(a) and (b) are effective + on the date Initial Developer first distributes Original Code + under the terms of this License. + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: 1) for code that You delete from the Original Code; 2) + separate from the Original Code; or 3) for infringements caused + by: i) the modification of the Original Code or ii) the + combination of the Original Code with other software or devices. + . + 2.2. Contributor Grant. + . + Subject to third party intellectual property claims, 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 Contributor, to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof) either on an + unmodified basis, with other Modifications, as Covered Code and/or + as part of a Larger Work; and + (b) under Patent Claims infringed by the making, using, or selling of + Modifications made by that Contributor either alone and/or in + combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, + and/or otherwise dispose of: 1) Modifications made by that + Contributor (or portions thereof); and 2) the combination of + Modifications made by that Contributor with its Contributor + Version (or portions of such combination). + (c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective + on the date Contributor first makes Commercial Use of the Covered + Code. + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: 1) for any code that Contributor has deleted from the + Contributor Version; 2) separate from the Contributor Version; 3) + for infringement caused by: i) third party modifications of + Contributor Version or ii) the combination of Modifications made + by that Contributor with other software (except as part of the + Contributor Version) or other devices; or 4) under Patent Claims + infringed by Covered Code in the absence of Modifications made by + that Contributor. + . + 3. Distribution Obligations. + . + 3.1. Application of License. + . + The Modifications which You create or to which You contribute are + governed by the terms of this License, including without limitation + Section 2.2. The Source Code version of Covered Code may be distributed + only under the terms of this License or a future version of this + License released under Section 6.1, and You must include a copy of this + License with every copy of the Source Code You distribute. You may not + offer or impose any terms on any Source Code version that alters or + restricts the applicable version of this License or the recipients' + rights hereunder. However, You may include an additional document + offering the additional rights described in Section 3.5. + . + 3.2. Availability of Source Code. + . + Any Modification which You create or to which You contribute must be + made available in Source Code form under the terms of this License + either on the same media as an Executable version or via an accepted + Electronic Distribution Mechanism to anyone to whom you made an + Executable version available; and if made available via Electronic + Distribution Mechanism, must remain available for at least twelve (12) + months after the date it initially became available, or at least six + (6) months after a subsequent version of that particular Modification + has been made available to such recipients. You are responsible for + ensuring that the Source Code version remains available even if the + Electronic Distribution Mechanism is maintained by a third party. + . + 3.3. Description of Modifications. + . + You must cause all Covered Code to which You contribute to contain a + file documenting the changes You made to create that Covered Code and + the date of any change. You must include a prominent statement that the + Modification is derived, directly or indirectly, from Original Code + provided by the Initial Developer and including the name of the Initial + Developer in (a) the Source Code, and (b) in any notice in an + Executable version or related documentation in which You describe the + origin or ownership of the Covered Code. + . + 3.4. Intellectual Property Matters + (a) Third Party Claims. + If Contributor has knowledge that a license under a third party's + intellectual property rights is required to exercise the rights + granted by such Contributor under Sections 2.1 or 2.2, Contributor + must include a text file with the Source Code distribution titled + "LEGAL" which describes the claim and the party making the claim + in sufficient detail that a recipient will know whom to contact. + If Contributor obtains such knowledge after the Modification is + made available as described in Section 3.2, Contributor shall + promptly modify the LEGAL file in all copies Contributor makes + available thereafter and shall take other steps (such as notifying + appropriate mailing lists or newsgroups) reasonably calculated to + inform those who received the Covered Code that new knowledge has + been obtained. + . + (b) Contributor APIs. + If Contributor's Modifications include an application programming + interface and Contributor has knowledge of patent licenses which + are reasonably necessary to implement that API, Contributor must + also include this information in the LEGAL file. + . + (c) Representations. + Contributor represents that, except as disclosed pursuant to + Section 3.4(a) above, Contributor believes that Contributor's + Modifications are Contributor's original creation(s) and/or + Contributor has sufficient rights to grant the rights conveyed by + this License. + . + 3.5. Required Notices. + . + You must duplicate the notice in Exhibit A in each file of the Source + Code. If it is not possible to put such notice in a particular Source + Code file due to its structure, then You must include such notice in a + location (such as a relevant directory) where a user would be likely to + look for such a notice. If You created one or more Modification(s) You + may add your name as a Contributor to the notice described in Exhibit + A. You must also duplicate this License in any documentation for the + Source Code where You describe recipients' rights or ownership rights + relating to Covered Code. You may choose to offer, and to charge a fee + for, warranty, support, indemnity or liability obligations to one or + more recipients of Covered Code. However, You may do so only on Your + own behalf, and not on behalf of the Initial Developer or any + Contributor. You must make it absolutely clear than any such warranty, + support, indemnity or liability obligation is offered by You alone, + and You hereby agree to indemnify the Initial Developer and every + Contributor for any liability incurred by the Initial Developer or such + Contributor as a result of warranty, support, indemnity or liability + terms You offer. + . + 3.6. Distribution of Executable Versions. + . + You may distribute Covered Code in Executable form only if the + requirements of Section 3.1-3.5 have been met for that Covered Code, + and if You include a notice stating that the Source Code version of the + Covered Code is available under the terms of this License, including a + description of how and where You have fulfilled the obligations of + Section 3.2. The notice must be conspicuously included in any notice in + an Executable version, related documentation or collateral in which You + describe recipients' rights relating to the Covered Code. You may + distribute the Executable version of Covered Code or ownership rights + under a license of Your choice, which may contain terms different from + this License, provided that You are in compliance with the terms of + this License and that the license for the Executable version does not + attempt to limit or alter the recipient's rights in the Source Code + version from the rights set forth in this License. If You distribute + the Executable version under a different license You must make it + absolutely clear that any terms which differ from this License are + offered by You alone, not by the Initial Developer or any Contributor. + You hereby agree to indemnify the Initial Developer and every + Contributor for any liability incurred by the Initial Developer or such + Contributor as a result of any such terms You offer. + . + 3.7. Larger Works. + - + You may create a Larger Work by combining Covered Code with other code + not governed by the terms of this License and distribute the Larger + Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Code. + . + 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 Code 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 included + in the LEGAL file described in Section 3.4 and must be included with + all distributions of the Source Code. 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. Application of this License. + . + This License applies to code to which the Initial Developer has + attached the notice in Exhibit A and to related Covered Code. + . + 6. Versions of the License. + . + 6.1. New Versions. + . + Netscape Communications Corporation ("Netscape") may publish revised + and/or new versions of the License from time to time. Each version will + be given a distinguishing version number. + . + 6.2. Effect of New Versions. + . + Once Covered Code has been published under a particular version of the + License, You may always continue to use it under the terms of that + version. You may also choose to use such Covered Code under the terms + of any subsequent version of the License published by Netscape. No one + other than Netscape has the right to modify the terms applicable to + Covered Code created under this License. + . + 6.3. Derivative Works. + . + If You create or use a modified version of this License (which you may + only do in order to apply it to code which is not already Covered Code + governed by this License), You must (a) rename Your license so that the + phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", "MPL", "NPL" or + any confusingly similar phrase do not appear in your license (except to + note that your license differs from this License) and (b) otherwise + make it clear that Your version of the license contains terms which + differ from the Mozilla Public License and Netscape Public License. + (Filling in the name of the Initial Developer, Original Code or + Contributor in the notice described in Exhibit A shall not of + themselves be deemed to be modifications of this License.) + . + 7. DISCLAIMER OF WARRANTY. + . + COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE 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 CODE + IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, + YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER 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 CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + . + 8. TERMINATION. + . + 8.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to cure + such breach within 30 days of becoming aware of the breach. All + sublicenses to the Covered Code which are properly granted shall + survive any termination of this License. Provisions which, by their + nature, must remain in effect beyond the termination of this License + shall survive. + . + 8.2. If You initiate litigation by asserting a patent infringement + claim (excluding declatory judgment actions) against Initial Developer + or a Contributor (the Initial Developer or Contributor against whom You + file such action is referred to as "Participant") alleging that: + (a) such Participant's Contributor Version directly or indirectly + infringes any patent, then any and all rights granted by such + Participant to You under Sections 2.1 and/or 2.2 of this License + shall, upon 60 days notice from Participant terminate + prospectively, unless if within 60 days after receipt of notice + You either: (i) agree in writing to pay Participant a mutually + agreeable reasonable royalty for Your past and future use of + Modifications made by such Participant, or (ii) withdraw Your + litigation claim with respect to the Contributor Version against + such Participant. If within 60 days of notice, a reasonable + royalty and payment arrangement are not mutually agreed upon in + writing by the parties or the litigation claim is not withdrawn, + the rights granted by Participant to You under Sections 2.1 and/or + 2.2 automatically terminate at the expiration of the 60 day notice + period specified above. + . + (b) any software, hardware, or device, other than such Participant's + Contributor Version, directly or indirectly infringes any patent, + then any rights granted to You by such Participant under Sections + 2.1(b) and 2.2(b) are revoked effective as of the date You first + made, used, sold, distributed, or had made, Modifications made by + that Participant. + . + 8.3. If You assert a patent infringement claim against Participant + alleging that such Participant's Contributor Version directly or + indirectly infringes any patent where such claim is resolved (such as + by license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + . + 8.4. In the event of termination under Sections 8.1 or 8.2 above, all + end user license agreements (excluding distributors and resellers) + which have been validly granted by You or any distributor hereunder + prior to termination shall survive termination. + . + 9. LIMITATION OF LIABILITY. + . + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL + DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, + OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY + INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY + CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR 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. + . + 10. U.S. GOVERNMENT END USERS. + . + The Covered Code is a "commercial item," as that term is defined in 48 + C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" + and "commercial computer software documentation," as such terms are + used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 + and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. + Government End Users acquire Covered Code with only those rights set + forth herein. + . + 11. MISCELLANEOUS. + . + This License represents the complete agreement concerning 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. This License shall be governed by + California law provisions (except to the extent applicable law, if any, + provides otherwise), excluding its conflict-of-law provisions. With + respect to disputes in which at least one party is a citizen of, or an + entity chartered or registered to do business in the United States of + America, any litigation relating to this License shall be subject to + the jurisdiction of the Federal Courts of the Northern District of + California, with venue lying in Santa Clara County, California, with + the losing party responsible for costs, including without limitation, + court costs and reasonable attorneys' fees and expenses. The + application of the United Nations Convention on Contracts for the + International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall be + construed against the drafter shall not apply to this License. + . + 12. RESPONSIBILITY FOR CLAIMS. + . + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, out + of its utilization of rights under this License and You agree to work + with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + . + 13. MULTIPLE-LICENSED CODE. + . + Initial Developer may designate portions of the Covered Code as + "Multiple-Licensed". "Multiple-Licensed" means that the Initial + Developer permits you to utilize portions of the Covered Code under + Your choice of the NPL or the alternative licenses, if any, specified + by the Initial Developer in the file described in Exhibit A. + . + EXHIBIT A -Mozilla Public License. + . + ``The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/ + . + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + . + The Original Code is ______________________________________. + . + The Initial Developer of the Original Code is ________________________. + Portions created by ______________________ are Copyright (C) ______ + _______________________. All Rights Reserved. + . + Contributor(s): ______________________________________. + . + Alternatively, the contents of this file may be used under the terms of + the _____ license (the "[___] License"), in which case the provisions + of [______] License are applicable instead of those above. If you wish + to allow use of your version of this file only under the terms of the + [____] License and not to allow others to use your version of this file + under the MPL, indicate your decision by deleting the provisions above + and replace them with the notice and other provisions required by the + [___] License. If you do not delete the provisions above, a recipient + may use your version of this file under either the MPL or the [___] + License." + . + [NOTE: The text of this Exhibit A may differ slightly from the text of + the notices in the Source Code files of the Original Code. You should + use the text of this Exhibit A rather than the text found in the + Original Code Source Code for Your Modifications.] + . + ---------------------------------------------------------------------- + . + AMENDMENTS + . + The Netscape Public License Version 1.1 ("NPL") consists of the Mozilla + Public License Version 1.1 with the following Amendments, including + Exhibit A-Netscape Public License. Files identified with "Exhibit + A-Netscape Public License" are governed by the Netscape Public License + Version 1.1. + . + Additional Terms applicable to the Netscape Public License. + I. Effect. + These additional terms described in this Netscape Public License + -- Amendments shall apply to the Mozilla Communicator client code + and to all Covered Code under this License. + . + II. "Netscape's Branded Code" means Covered Code that Netscape + distributes and/or permits others to distribute under one or more + trademark(s) which are controlled by Netscape but which are not + licensed for use under this License. + . + III. Netscape and logo. + This License does not grant any rights to use the trademarks + "Netscape", the "Netscape N and horizon" logo or the "Netscape + lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript", + "Smart Browsing" even if such marks are included in the Original + Code or Modifications. + . + IV. Inability to Comply Due to Contractual Obligation. + Prior to licensing the Original Code under this License, Netscape + has licensed third party code for use in Netscape's Branded Code. + To the extent that Netscape is limited contractually from making + such third party code available under this License, Netscape may + choose to reintegrate such code into Covered Code without being + required to distribute such code in Source Code form, even if + such code would otherwise be considered "Modifications" under + this License. + . + V. Use of Modifications and Covered Code by Initial Developer. + V.1. In General. + The obligations of Section 3 apply to Netscape, except to + the extent specified in this Amendment, Section V.2 and V.3. + . + V.2. Other Products. + Netscape may include Covered Code in products other than the + Netscape's Branded Code which are released by Netscape during + the two (2) years following the release date of the Original + Code, without such additional products becoming subject to the + terms of this License, and may license such additional products + on different terms from those contained in this License. + . + V.3. Alternative Licensing. + Netscape may license the Source Code of Netscape's Branded Code, + including Modifications incorporated therein, without such + Netscape Branded Code becoming subject to the terms of this + License, and may license such Netscape Branded Code on different + terms from those contained in this License. + . + VI. Litigation. + Notwithstanding the limitations of Section 11 above, the + provisions regarding litigation in Section 11(a), (b) and (c) of + the License shall apply to all disputes relating to this + License. + . + EXHIBIT A-Netscape Public License. + . + "The contents of this file are subject to the Netscape Public License + Version 1.1 (the "License"); you may not use this file except in + compliance with the License. You may obtain a copy of the License at + http://www.mozilla.org/NPL/ + . + Software distributed under the License is distributed on an "AS IS" + basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + License for the specific language governing rights and limitations + under the License. + . + The Original Code is Mozilla Communicator client code, released March + 31, 1998. + . + The Initial Developer of the Original Code is Netscape Communications + Corporation. Portions created by Netscape are Copyright (C) 1998-1999 + Netscape Communications Corporation. All Rights Reserved. + . + Contributor(s): ______________________________________. + . + Alternatively, the contents of this file may be used under the terms of + the _____ license (the "[___] License"), in which case the provisions + of [______] License are applicable instead of those above. If you + wish to allow use of your version of this file only under the terms of + the [____] License and not to allow others to use your version of this + file under the NPL, indicate your decision by deleting the provisions + above and replace them with the notice and other provisions required by + the [___] License. If you do not delete the provisions above, a + recipient may use your version of this file under either the NPL or the + [___] License." diff --git a/gbp.conf b/gbp.conf new file mode 100644 index 0000000..5474c60 --- /dev/null +++ b/gbp.conf @@ -0,0 +1,3 @@ +[DEFAULT] +pristine-tar = True +sign-tags = True diff --git a/libscsynth1.install b/libscsynth1.install new file mode 100644 index 0000000..7ee1fc6 --- /dev/null +++ b/libscsynth1.install @@ -0,0 +1 @@ +usr/lib/libscsynth.so.1* diff --git a/patches/Remove-autodetection-of-raspberry-cpus.patch b/patches/Remove-autodetection-of-raspberry-cpus.patch new file mode 100644 index 0000000..9125dc3 --- /dev/null +++ b/patches/Remove-autodetection-of-raspberry-cpus.patch @@ -0,0 +1,38 @@ +From: Felipe Sateler +Date: Thu, 12 Oct 2017 21:19:55 -0300 +Subject: Remove autodetection of raspberry cpus + +In debian we don't actually target raspberries, and guessing based on the build machine +is wrong too + +Bug-Debian: https://bugs.debian.org/878347 +--- + CMakeLists.txt | 15 --------------- + 1 file changed, 15 deletions(-) + +Index: supercollider/CMakeLists.txt +=================================================================== +--- supercollider.orig/CMakeLists.txt ++++ supercollider/CMakeLists.txt +@@ -355,21 +355,6 @@ elseif(MINGW) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign") + endif() + +-# support for building on Raspberry Pi 1/2/3 and BBB +-if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") +- foreach(flag CMAKE_C_FLAGS CMAKE_CXX_FLAGS) +- set(${flag} "${${flag}} -mfloat-abi=hard") +- set(${flag} "${${flag}} -mfpu=neon") +- endforeach() +-elseif(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_SYSTEM_PROCESSOR STREQUAL "armv6l") +- foreach(flag CMAKE_C_FLAGS CMAKE_CXX_FLAGS) +- set(${flag} "${${flag}} -march=armv6") +- set(${flag} "${${flag}} -mtune=arm1176jzf-s") +- set(${flag} "${${flag}} -mfloat-abi=hard") +- set(${flag} "${${flag}} -mfpu=vfp") +- endforeach() +-endif() +- + if (NO_GPL3) + add_definitions(-DNO_GPL3) + endif() diff --git a/patches/disable-ccache.patch b/patches/disable-ccache.patch new file mode 100644 index 0000000..916c774 --- /dev/null +++ b/patches/disable-ccache.patch @@ -0,0 +1,25 @@ +disabled the use of ccache, to prevent FTBFS; as the compilation is done once +it has no backdraws to make the debian package. +Index: supercollider/CMakeLists.txt +=================================================================== +--- supercollider.orig/CMakeLists.txt ++++ supercollider/CMakeLists.txt +@@ -150,12 +150,12 @@ add_definitions(-DBOOST_CHRONO_HEADER_ON + ############################################# + # Detect CCache + +-find_program(CCacheExectuable ccache) +-if( CCacheExectuable ) +- # only used with >=cmake-3.4 +- set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExectuable}" ) +- set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExectuable}" ) +-endif() ++## find_program(CCacheExecutable ccache) ++## if( CCacheExecutable ) ++## # only used with >=cmake-3.4 ++## set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExecutable}" ) ++## set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExecutable}" ) ++## endif() + + ############################################# + # Options diff --git a/patches/fix-numeric-type.patch b/patches/fix-numeric-type.patch new file mode 100644 index 0000000..1b2aa5f --- /dev/null +++ b/patches/fix-numeric-type.patch @@ -0,0 +1,15 @@ +fixed a type inconsistency: forced the result of get_nanoseconds() to +double before the division by 1000. +Index: supercollider/server/supernova/utilities/time_tag.hpp +=================================================================== +--- supercollider.orig/server/supernova/utilities/time_tag.hpp ++++ supercollider/server/supernova/utilities/time_tag.hpp +@@ -229,7 +229,7 @@ public: + #ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG + time_duration offset = seconds(get_secs() - ntp_offset) + nanoseconds(get_nanoseconds()); + #else +- time_duration offset = seconds(get_secs() - ntp_offset) + microseconds(get_nanoseconds()/1000); ++ time_duration offset = seconds(get_secs() - ntp_offset) + microseconds((long) get_nanoseconds()/1000); + #endif + return ptime(base, offset); + } diff --git a/patches/optional-qtwebengine-00-formatting b/patches/optional-qtwebengine-00-formatting new file mode 100644 index 0000000..2d3e048 --- /dev/null +++ b/patches/optional-qtwebengine-00-formatting @@ -0,0 +1,1809 @@ +This patch contains formatting changes extracted from upstream commit +4518d54d0907ec6fcf2278dc9fe6a89b3b1162bd#diff-ee395cf55d38877e60aa360871be5c97 +it is applied to avoid patch conflicts in the "optional qtwebengine" patches. + +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/QcWebView.h ++++ supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h +@@ -37,168 +37,159 @@ namespace QtCollider { + class WebPage; + class QcCallback; + +-class QcCallbackWeakFunctor +-{ ++class QcCallbackWeakFunctor { + public: +- QcCallbackWeakFunctor(QPointer cb) +- : _cb(cb) +- {} +- +- template +- void operator()(RESULT r) const; ++ QcCallbackWeakFunctor(QPointer cb): _cb(cb) {} ++ ++ template void operator()(RESULT r) const; + + private: +- QPointer _cb; ++ QPointer _cb; + }; + +-class QcCallback : public QObject +-{ +- Q_OBJECT ++class QcCallback : public QObject { ++ Q_OBJECT + + public: +- QcCallback() {} +- +- template +- void call(const CallbackT& result) +- { +- Q_EMIT(onCalled(result)); +- } +- +- QcCallbackWeakFunctor asFunctor() +- { +- return QcCallbackWeakFunctor(QPointer(this)); +- } +- ++ QcCallback() {} ++ ++ template void call(const CallbackT& result) { Q_EMIT(onCalled(result)); } ++ ++ QcCallbackWeakFunctor asFunctor() { return QcCallbackWeakFunctor(QPointer(this)); } ++ + Q_SIGNALS: +- void onCalled(bool); +- void onCalled(const QString&); +- void onCalled(const QVariant&); +- void onCalled(const QUrl&); ++ void onCalled(bool); ++ void onCalled(const QString&); ++ void onCalled(const QVariant&); ++ void onCalled(const QUrl&); + }; +- +-template +-void QcCallbackWeakFunctor::operator()(RESULT r) const +- { +- if (_cb) { +- _cb->call(r); +- } ++ ++template void QcCallbackWeakFunctor::operator()(RESULT r) const { ++ if (_cb) { ++ _cb->call(r); ++ } + } + + +- +-class WebView : public QWebEngineView +-{ +- Q_OBJECT ++class WebView : public QWebEngineView { ++ Q_OBJECT + + public: +- Q_INVOKABLE void setFontFamily( int genericFontFamily, const QString & fontFamily ); +- Q_INVOKABLE void triggerPageAction( int action, bool checked ); +- Q_INVOKABLE QAction* pageAction( QWebEnginePage::WebAction ) const; +- +- // QWebEnginePage forwards +- Q_INVOKABLE void setHtml(const QString& html, const QString& baseUrl); +- Q_INVOKABLE void setContent(const QVector& data, const QString& mimeType, const QString& baseUrl); +- Q_INVOKABLE void toHtml(QcCallback* cb) const; +- Q_INVOKABLE void toPlainText(QcCallback* cb) const; +- Q_INVOKABLE void runJavaScript(const QString& script, QcCallback* cb); +- Q_INVOKABLE void setWebAttribute(int attr, bool on); +- Q_INVOKABLE bool testWebAttribute(int attr); +- Q_INVOKABLE void resetWebAttribute(int attr); +- Q_INVOKABLE void navigate(const QString& url); ++ Q_INVOKABLE void setFontFamily(int genericFontFamily, const QString& fontFamily); ++ Q_INVOKABLE void triggerPageAction(int action, bool checked); ++ Q_INVOKABLE QAction* pageAction(QWebEnginePage::WebAction) const; ++ ++ // QWebEnginePage forwards ++ Q_INVOKABLE void setHtml(const QString& html, const QString& baseUrl); ++ Q_INVOKABLE void setContent(const QVector& data, const QString& mimeType, const QString& baseUrl); ++ Q_INVOKABLE void toHtml(QcCallback* cb) const; ++ Q_INVOKABLE void toPlainText(QcCallback* cb) const; ++ Q_INVOKABLE void runJavaScript(const QString& script, QcCallback* cb); ++ Q_INVOKABLE void setWebAttribute(int attr, bool on); ++ Q_INVOKABLE bool testWebAttribute(int attr); ++ Q_INVOKABLE void resetWebAttribute(int attr); ++ Q_INVOKABLE void navigate(const QString& url); + + public Q_SLOTS: +- void findText( const QString &searchText, bool reversed, QcCallback* cb); ++ void findText(const QString& searchText, bool reversed, QcCallback* cb); + + Q_SIGNALS: +- void linkActivated( const QString &, int, bool ); +- void jsConsoleMsg( const QString &, int, const QString & ); +- void reloadTriggered( const QString & ); +- void interpret( const QString & code ); +- +- // QWebEnginePage forwards +- void linkHovered(const QString &url); +- void geometryChangeRequested(const QRect& geom); +- void windowCloseRequested(); +- void navigationRequested(const QUrl &, int, bool); +- +- void renderProcessTerminated(int terminationStatus, int exitCode); +- +- void scrollPositionChanged(const QPointF &position); +- void contentsSizeChanged(const QSizeF &size); +- void audioMutedChanged(bool muted); +- void recentlyAudibleChanged(bool recentlyAudible); +- ++ void linkActivated(const QString&, int, bool); ++ void jsConsoleMsg(const QString&, int, const QString&); ++ void reloadTriggered(const QString&); ++ void interpret(const QString& code); ++ ++ // QWebEnginePage forwards ++ void linkHovered(const QString& url); ++ void geometryChangeRequested(const QRect& geom); ++ void windowCloseRequested(); ++ void navigationRequested(const QUrl&, int, bool); ++ ++ void renderProcessTerminated(int terminationStatus, int exitCode); ++ ++ void scrollPositionChanged(const QPointF& position); ++ void contentsSizeChanged(const QSizeF& size); ++ void audioMutedChanged(bool muted); ++ void recentlyAudibleChanged(bool recentlyAudible); ++ + public: ++ WebView(QWidget* parent = 0); + +- WebView( QWidget *parent = 0 ); ++ Q_PROPERTY(qreal zoom READ zoomFactor WRITE setZoomFactor); ++ Q_PROPERTY(bool hasSelection READ hasSelection); ++ Q_PROPERTY(QString selectedText READ selectedText); ++ Q_PROPERTY(QString title READ title); + +- Q_PROPERTY( qreal zoom READ zoomFactor WRITE setZoomFactor ); +- Q_PROPERTY( bool hasSelection READ hasSelection ); +- Q_PROPERTY( QString selectedText READ selectedText ); +- Q_PROPERTY( QString title READ title ); +- +- Q_PROPERTY( bool overrideNavigation READ overrideNavigation WRITE setOverrideNavigation ); ++ Q_PROPERTY(bool overrideNavigation READ overrideNavigation WRITE setOverrideNavigation); + bool overrideNavigation() const; + void setOverrideNavigation(bool b); +- +- Q_PROPERTY( QString url READ url WRITE setUrl ); +- QString url() const; +- void setUrl( const QString & ); + +- Q_PROPERTY( bool delegateReload READ delegateReload WRITE setDelegateReload ); ++ Q_PROPERTY(QString url READ url WRITE setUrl); ++ QString url() const; ++ void setUrl(const QString&); ++ ++ Q_PROPERTY(bool delegateReload READ delegateReload WRITE setDelegateReload); + bool delegateReload() const; +- void setDelegateReload( bool ); ++ void setDelegateReload(bool); + +- Q_PROPERTY( bool enterInterpretsSelection READ interpretSelection WRITE setInterpretSelection ); +- bool interpretSelection() const { return _interpretSelection; } +- void setInterpretSelection( bool b ) { _interpretSelection = b; } ++ Q_PROPERTY(bool enterInterpretsSelection READ interpretSelection WRITE setInterpretSelection); ++ bool interpretSelection() const { return _interpretSelection; } ++ void setInterpretSelection(bool b) { _interpretSelection = b; } + +- Q_PROPERTY( bool editable READ editable WRITE setEditable ); ++ Q_PROPERTY(bool editable READ editable WRITE setEditable); + bool editable() const { return _editable; } +- void setEditable( bool b ) { _editable = b; updateEditable(true); } ++ void setEditable(bool b) { ++ _editable = b; ++ updateEditable(true); ++ } ++ ++ // QWebEnginePage properties ++ Q_PROPERTY(QString requestedUrl READ requestedUrl) ++ QString requestedUrl() const { return page() ? page()->requestedUrl().toString() : QString(); } ++ ++ Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) ++ QColor backgroundColor() const { return page() ? page()->backgroundColor() : QColor(); } ++ void setBackgroundColor(QColor c) { ++ if (page()) ++ page()->setBackgroundColor(c); ++ } ++ ++ Q_PROPERTY(QSizeF contentsSize READ contentsSize) ++ QSizeF contentsSize() const { return page() ? page()->contentsSize() : QSizeF(0, 0); } ++ ++ Q_PROPERTY(QPointF scrollPosition READ scrollPosition) ++ QPointF scrollPosition() const { return page() ? page()->scrollPosition() : QPointF(0, 0); } ++ ++ Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted) ++ bool isAudioMuted() const { return page() ? page()->isAudioMuted() : false; } ++ void setAudioMuted(bool m) { ++ if (page()) ++ page()->setAudioMuted(m); ++ } + +- // QWebEnginePage properties +- Q_PROPERTY(QString requestedUrl READ requestedUrl) +- QString requestedUrl() const { return page() ? page()->requestedUrl().toString() : QString(); } +- +- Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) +- QColor backgroundColor() const { return page() ? page()->backgroundColor() : QColor(); } +- void setBackgroundColor(QColor c) { if (page()) page()->setBackgroundColor(c); } +- +- Q_PROPERTY(QSizeF contentsSize READ contentsSize) +- QSizeF contentsSize() const { return page() ? page()->contentsSize() : QSizeF(0, 0); } +- +- Q_PROPERTY(QPointF scrollPosition READ scrollPosition) +- QPointF scrollPosition() const { return page() ? page()->scrollPosition() : QPointF(0, 0); } +- +- Q_PROPERTY(bool audioMuted READ isAudioMuted WRITE setAudioMuted) +- bool isAudioMuted() const { return page() ? page()->isAudioMuted() : false; } +- void setAudioMuted(bool m) { if (page()) page()->setAudioMuted(m); } +- +- Q_PROPERTY(bool recentlyAudible READ recentlyAudible) +- bool recentlyAudible() const { return page() ? page()->recentlyAudible() : false; } ++ Q_PROPERTY(bool recentlyAudible READ recentlyAudible) ++ bool recentlyAudible() const { return page() ? page()->recentlyAudible() : false; } + +- inline static QUrl urlFromString( const QString & str ) +- { return QUrl::fromUserInput(str); } ++ inline static QUrl urlFromString(const QString& str) { return QUrl::fromUserInput(str); } + + protected: +- virtual void keyPressEvent( QKeyEvent * ); +- virtual void contextMenuEvent ( QContextMenuEvent * ); ++ virtual void keyPressEvent(QKeyEvent*); ++ virtual void contextMenuEvent(QContextMenuEvent*); + + public Q_SLOTS: +- void onPageReload(); +- void onRenderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus, int); +- void onLinkClicked(const QUrl &, QWebEnginePage::NavigationType, bool); +- void updateEditable(bool); ++ void onPageReload(); ++ void onRenderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus, int); ++ void onLinkClicked(const QUrl&, QWebEnginePage::NavigationType, bool); ++ void updateEditable(bool); + + private: +- void connectPage(QtCollider::WebPage* page); +- +- bool _interpretSelection; +- bool _editable; ++ void connectPage(QtCollider::WebPage* page); ++ ++ bool _interpretSelection; ++ bool _editable; + }; + + } // namespace QtCollider + + using namespace QtCollider; +-Q_DECLARE_METATYPE( QcCallback* ); ++Q_DECLARE_METATYPE(QcCallback*); +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/factories.cpp ++++ supercollider-3.10.0+repack/QtCollider/factories.cpp +@@ -1,83 +1,79 @@ + /************************************************************************ +-* +-* Copyright 2012 Jakob Leben (jakob.leben@gmail.com) +-* +-* This file is part of SuperCollider Qt GUI. +-* +-* This program is free software: you can redistribute it and/or modify +-* it under the terms of the GNU General Public License as published by +-* the Free Software Foundation, either version 2 of the License, or +-* (at your option) any later version. +-* +-* This program is distributed in the hope that it will be useful, +-* but WITHOUT ANY WARRANTY; without even the implied warranty of +-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-* GNU General Public License for more details. +-* +-* You should have received a copy of the GNU General Public License +-* along with this program. If not, see . +-* +-************************************************************************/ ++ * ++ * Copyright 2012 Jakob Leben (jakob.leben@gmail.com) ++ * ++ * This file is part of SuperCollider Qt GUI. ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. If not, see . ++ * ++ ************************************************************************/ + + #include "QcObjectFactory.h" + #include "QcWidgetFactory.h" + + #include + +-QC_DECLARE_QWIDGET_FACTORY( QLabel ); ++QC_DECLARE_QWIDGET_FACTORY(QLabel); + +-static void doLoadFactories () +-{ +- QC_ADD_FACTORY( QcDefaultWidget ); +- QC_ADD_FACTORY( QcHLayoutWidget ); +- QC_ADD_FACTORY( QcVLayoutWidget ); +- QC_ADD_FACTORY( QLabel ); +- QC_ADD_FACTORY( QcTextField ); +- QC_ADD_FACTORY( QcCheckBox ); +- QC_ADD_FACTORY( QcListWidget ); +- QC_ADD_FACTORY( QcPopUpMenu ); +- QC_ADD_FACTORY( QcButton ); +- QC_ADD_FACTORY( QcCustomPainted ); +- QC_ADD_FACTORY( QcFileDialog ); +- QC_ADD_FACTORY( QcGraph ); +- QC_ADD_FACTORY( QcKnob ); +- QC_ADD_FACTORY( QcLevelIndicator ); +- QC_ADD_FACTORY( QcMultiSlider ); +- QC_ADD_FACTORY( QcNumberBox ); +- QC_ADD_FACTORY( QcPenPrinter ); +- QC_ADD_FACTORY( QcRangeSlider ); +- QC_ADD_FACTORY( QcScope ); +- QC_ADD_FACTORY( QcScopeShm ); +- QC_ADD_FACTORY( QcScrollWidget ); +- QC_ADD_FACTORY( QcScrollArea ); +- QC_ADD_FACTORY( QcSlider ); +- QC_ADD_FACTORY( QcSlider2D ); +- QC_ADD_FACTORY( QcWaveform ); +- QC_ADD_FACTORY( QcTextEdit ); +- QC_ADD_FACTORY( QcTreeWidget ); +- QC_ADD_FACTORY( QcMenu ); +- QC_ADD_FACTORY( QcToolBar ); +- QC_ADD_FACTORY( QcAction ); +- QC_ADD_FACTORY( QcWidgetAction ); +- QC_ADD_FACTORY( QcCallback ); +- QC_ADD_FACTORY( WebView ); +- QC_ADD_FACTORY( QcWindow ); +- QC_ADD_FACTORY( QcScrollWindow ); +- QC_ADD_FACTORY( QcHBoxLayout ); +- QC_ADD_FACTORY( QcVBoxLayout ); +- QC_ADD_FACTORY( QcGridLayout ); +- QC_ADD_FACTORY( QcStackLayout ); +- QC_ADD_FACTORY( QtDownload ); ++static void doLoadFactories() { ++ QC_ADD_FACTORY(QcDefaultWidget); ++ QC_ADD_FACTORY(QcHLayoutWidget); ++ QC_ADD_FACTORY(QcVLayoutWidget); ++ QC_ADD_FACTORY(QLabel); ++ QC_ADD_FACTORY(QcTextField); ++ QC_ADD_FACTORY(QcCheckBox); ++ QC_ADD_FACTORY(QcListWidget); ++ QC_ADD_FACTORY(QcPopUpMenu); ++ QC_ADD_FACTORY(QcButton); ++ QC_ADD_FACTORY(QcCustomPainted); ++ QC_ADD_FACTORY(QcFileDialog); ++ QC_ADD_FACTORY(QcGraph); ++ QC_ADD_FACTORY(QcKnob); ++ QC_ADD_FACTORY(QcLevelIndicator); ++ QC_ADD_FACTORY(QcMultiSlider); ++ QC_ADD_FACTORY(QcNumberBox); ++ QC_ADD_FACTORY(QcPenPrinter); ++ QC_ADD_FACTORY(QcRangeSlider); ++ QC_ADD_FACTORY(QcScope); ++ QC_ADD_FACTORY(QcScopeShm); ++ QC_ADD_FACTORY(QcScrollWidget); ++ QC_ADD_FACTORY(QcScrollArea); ++ QC_ADD_FACTORY(QcSlider); ++ QC_ADD_FACTORY(QcSlider2D); ++ QC_ADD_FACTORY(QcWaveform); ++ QC_ADD_FACTORY(QcTextEdit); ++ QC_ADD_FACTORY(QcTreeWidget); ++ QC_ADD_FACTORY(QcMenu); ++ QC_ADD_FACTORY(QcToolBar); ++ QC_ADD_FACTORY(QcAction); ++ QC_ADD_FACTORY(QcWidgetAction); ++ QC_ADD_FACTORY(QcCallback); ++ QC_ADD_FACTORY(WebView); ++ QC_ADD_FACTORY(QcWindow); ++ QC_ADD_FACTORY(QcScrollWindow); ++ QC_ADD_FACTORY(QcHBoxLayout); ++ QC_ADD_FACTORY(QcVBoxLayout); ++ QC_ADD_FACTORY(QcGridLayout); ++ QC_ADD_FACTORY(QcStackLayout); ++ QC_ADD_FACTORY(QtDownload); + #ifdef __APPLE__ +- QC_ADD_FACTORY( QcQuartzComposerView ); ++ QC_ADD_FACTORY(QcQuartzComposerView); + #endif + } + + namespace QtCollider { + +-void loadFactories() +-{ +- doLoadFactories(); +-} ++void loadFactories() { doLoadFactories(); } + + } // namespace QtCollider +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/interface.cpp ++++ supercollider-3.10.0+repack/QtCollider/interface.cpp +@@ -47,49 +47,49 @@ static QPalette gSystemPalette; + QPalette QtCollider::systemPalette() { return gSystemPalette; } + + void QtCollider::init() { +- if( !QApplication::instance() ) { +- qcDebugMsg( 1, "Initializing QtCollider" ); ++ if (!QApplication::instance()) { ++ qcDebugMsg(1, "Initializing QtCollider"); + +- initResources(); ++ initResources(); + +- QtCollider::loadFactories(); ++ QtCollider::loadFactories(); + +- QtCollider::MetaType::initAll(); ++ QtCollider::MetaType::initAll(); + +- QLocale::setDefault( QLocale::c() ); ++ QLocale::setDefault(QLocale::c()); + + #ifdef Q_WS_X11 +- XInitThreads(); ++ XInitThreads(); + #endif + + #ifdef Q_OS_MAC +- // TODO: this should not be necessary +- QApplication::setAttribute( Qt::AA_PluginApplication, true ); ++ // TODO: this should not be necessary ++ QApplication::setAttribute(Qt::AA_PluginApplication, true); + #endif + +- static int qcArgc = 1; +- static char qcArg0[] = "SuperCollider"; +- static char *qcArgv[1] = {qcArg0}; ++ static int qcArgc = 1; ++ static char qcArg0[] = "SuperCollider"; ++ static char* qcArgv[1] = { qcArg0 }; + +- QcApplication *qcApp = new QcApplication( qcArgc, qcArgv ); ++ QcApplication* qcApp = new QcApplication(qcArgc, qcArgv); + +- qcApp->setQuitOnLastWindowClosed( false ); ++ qcApp->setQuitOnLastWindowClosed(false); + +- //qcApp->setStyle( new QtCollider::Style::StyleImpl( new QPlastiqueStyle ) ); ++ // qcApp->setStyle( new QtCollider::Style::StyleImpl( new QPlastiqueStyle ) ); + +- gSystemPalette = qcApp->palette(); ++ gSystemPalette = qcApp->palette(); + +- // Enable javascript localStorage for WebViews +- QWebEngineSettings::globalSettings()->setAttribute( QWebEngineSettings::LocalStorageEnabled, true ); ++ // Enable javascript localStorage for WebViews ++ QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + +- // NOTE: Qt may tamper with the C language locale, affecting POSIX number-string conversions. +- // Revert the locale to default: +- setlocale( LC_NUMERIC, "C" ); +- } ++ // NOTE: Qt may tamper with the C language locale, affecting POSIX number-string conversions. ++ // Revert the locale to default: ++ setlocale(LC_NUMERIC, "C"); ++ } + } + +-int QtCollider::exec( int argc, char** argv ) { +- QtCollider::init(); +- Q_ASSERT( qApp ); +- return qApp->exec(); ++int QtCollider::exec(int argc, char** argv) { ++ QtCollider::init(); ++ Q_ASSERT(qApp); ++ return qApp->exec(); + } +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/style/ProxyStyle.cpp ++++ supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +@@ -8,65 +8,61 @@ + #include + + #ifdef Q_OS_MAC +- #include "../hacks/hacks_mac.hpp" ++# include "../hacks/hacks_mac.hpp" + #endif + + using namespace QtCollider; + + static bool AlwaysShowScrollbars() { + #if defined(Q_OS_MAC) +- return QtCollider::Mac::AlwaysShowScrollbars(); ++ return QtCollider::Mac::AlwaysShowScrollbars(); + + #elif defined(Q_OS_X11) +- return true; ++ return true; + + #elif defined(Q_OS_WIN) +- return true; ++ return true; + + #else +- return true; ++ return true; + #endif + }; + +-void ProxyStyle::drawComplexControl ( ComplexControl ctrl, const QStyleOptionComplex *opt, +- QPainter *p, const QWidget * w) const +-{ +- // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). +- if( ctrl == QStyle::CC_ScrollBar +- && qobject_cast(w) != 0 +- && opt->type == QStyleOption::SO_Slider ) +- { +- // WebKit tries to hide scrollbars, but mistakenly hides QWebView - NULL-ify styleObject to prevent. +- const QStyleOptionSlider *optSlider = static_cast(opt); +- QStyleOptionSlider opt2( *optSlider ); +- opt2.styleObject = NULL; +- +- QProxyStyle::drawComplexControl( ctrl, &opt2, p, w ); +- return; +- } +- +- if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { +- const QStyleOptionSlider *optSlider = static_cast(opt); +- QStyleOptionSlider opt2( *optSlider ); +- opt2.state = State_On; +- QProxyStyle::drawComplexControl( ctrl, static_cast(&opt2), p, w ); +- return; +- } ++void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, ++ const QWidget* w) const { ++ // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). ++ if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 ++ && opt->type == QStyleOption::SO_Slider) { ++ // WebKit tries to hide scrollbars, but mistakenly hides QWebView - NULL-ify styleObject to prevent. ++ const QStyleOptionSlider* optSlider = static_cast(opt); ++ QStyleOptionSlider opt2(*optSlider); ++ opt2.styleObject = NULL; ++ ++ QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); ++ return; ++ } ++ ++ if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { ++ const QStyleOptionSlider* optSlider = static_cast(opt); ++ QStyleOptionSlider opt2(*optSlider); ++ opt2.state = State_On; ++ QProxyStyle::drawComplexControl(ctrl, static_cast(&opt2), p, w); ++ return; ++ } + +- QProxyStyle::drawComplexControl( ctrl, opt, p, w ); ++ QProxyStyle::drawComplexControl(ctrl, opt, p, w); + } + +-int ProxyStyle::styleHint ( StyleHint hint, const QStyleOption * option, +- const QWidget * widget, QStyleHintReturn * returnData ) const +-{ +- switch( hint ) { ++int ProxyStyle::styleHint(StyleHint hint, const QStyleOption* option, const QWidget* widget, ++ QStyleHintReturn* returnData) const { ++ switch (hint) { + case QStyle::SH_Slider_AbsoluteSetButtons: +- return Qt::LeftButton; ++ return Qt::LeftButton; + case QStyle::SH_Slider_PageSetButtons: +- return Qt::NoButton; ++ return Qt::NoButton; + case QStyle::SH_ScrollBar_Transient: +- return 1; ++ return 1; + default: +- return QProxyStyle::styleHint( hint, option, widget, returnData ); +- } ++ return QProxyStyle::styleHint(hint, option, widget, returnData); ++ } + } +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/web_page.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +@@ -26,39 +26,37 @@ + + namespace QtCollider { + +-void WebPage::triggerAction ( WebAction action, bool checked ) +-{ +- switch ( action ) { ++void WebPage::triggerAction(WebAction action, bool checked) { ++ switch (action) { + case QWebEnginePage::Reload: +- if( _delegateReload ) return; +- break; ++ if (_delegateReload) ++ return; ++ break; + case QWebEnginePage::Copy: +- // ignore text formatting, copy only plain text: +- QApplication::clipboard()->setText( selectedText() ); +- return; ++ // ignore text formatting, copy only plain text: ++ QApplication::clipboard()->setText(selectedText()); ++ return; + default: +- break; +- } ++ break; ++ } + +- QWebEnginePage::triggerAction( action, checked ); ++ QWebEnginePage::triggerAction(action, checked); + } + + +-void WebPage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) +-{ +- Q_EMIT( jsConsoleMsg(message, lineNumber, sourceID) ); ++void WebPage::javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, ++ const QString& sourceID) { ++ Q_EMIT(jsConsoleMsg(message, lineNumber, sourceID)); + } + +-bool WebPage::acceptNavigationRequest(const QUrl &url, QWebEnginePage::NavigationType type, bool isMainFrame) +-{ +- if (type == QWebEnginePage::NavigationTypeLinkClicked) { +- Q_EMIT(navigationRequested(url, type, isMainFrame)); +- if (_delegateNavigation) { +- return false; ++bool WebPage::acceptNavigationRequest(const QUrl& url, QWebEnginePage::NavigationType type, bool isMainFrame) { ++ if (type == QWebEnginePage::NavigationTypeLinkClicked) { ++ Q_EMIT(navigationRequested(url, type, isMainFrame)); ++ if (_delegateNavigation) { ++ return false; ++ } + } +- } +- return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); ++ return QWebEnginePage::acceptNavigationRequest(url, type, isMainFrame); + } + + } // namespace QtCollider +- +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/help_browser.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +@@ -42,42 +42,38 @@ + #include + + #ifdef Q_OS_MAC +-# include // QStyleFactory::create, see below ++# include // QStyleFactory::create, see below + #endif + + namespace ScIDE { + +-HelpWebPage::HelpWebPage(HelpBrowser* browser) +- : WebPage(browser), mBrowser(browser) +-{ ++HelpWebPage::HelpWebPage(HelpBrowser* browser): WebPage(browser), mBrowser(browser) { + setDelegateNavigation(true); +- connect( this, SIGNAL(navigationRequested(const QUrl &, QWebEnginePage::NavigationType, bool)), +- browser, SLOT(onLinkClicked(const QUrl &, QWebEnginePage::NavigationType, bool)) ); ++ connect(this, SIGNAL(navigationRequested(const QUrl&, QWebEnginePage::NavigationType, bool)), browser, ++ SLOT(onLinkClicked(const QUrl&, QWebEnginePage::NavigationType, bool))); + } + +-HelpBrowser::HelpBrowser( QWidget * parent ): +- QWidget(parent) +-{ ++HelpBrowser::HelpBrowser(QWidget* parent): QWidget(parent) { + QRect availableScreenRect = qApp->desktop()->availableGeometry(this); +- mSizeHint = QSize( availableScreenRect.width() * 0.4, availableScreenRect.height() * 0.7 ); ++ mSizeHint = QSize(availableScreenRect.width() * 0.4, availableScreenRect.height() * 0.7); + +- HelpWebPage *webPage = new HelpWebPage(this); ++ HelpWebPage* webPage = new HelpWebPage(this); + webPage->setDelegateReload(true); + + mWebView = new QWebEngineView; + // setPage does not take ownership of webPage; it must be deleted manually later (see below) +- mWebView->setPage( webPage ); +- mWebView->settings()->setAttribute( QWebEngineSettings::LocalStorageEnabled, true ); +- mWebView->setContextMenuPolicy( Qt::CustomContextMenu ); ++ mWebView->setPage(webPage); ++ mWebView->settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); ++ mWebView->setContextMenuPolicy(Qt::CustomContextMenu); + + // Set the style's standard palette to avoid system's palette incoherencies + // get in the way of rendering web pages +- mWebView->setPalette( style()->standardPalette() ); ++ mWebView->setPalette(style()->standardPalette()); + + #ifdef Q_OS_MAC + // On macOS, checkboxes unwantedly appear in the top left-hand corner. + // See QTBUG-43366, 43070, and 42948. The workaround is to set style to fusion. +- mWebView->setStyle( QStyleFactory::create("Fusion") ); ++ mWebView->setStyle(QStyleFactory::create("Fusion")); + #endif + + mWebView->installEventFilter(this); +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -145,24 +145,22 @@ int main( int argc, char *argv[] ) + // setup comm channel + WebSocketClientWrapper clientWrapper(&server); + QWebChannel channel; +- QObject::connect(&clientWrapper, &WebSocketClientWrapper::clientConnected, +- &channel, &QWebChannel::connectTo); ++ QObject::connect(&clientWrapper, &WebSocketClientWrapper::clientConnected, &channel, &QWebChannel::connectTo); + + // publish IDE interface +- IDEWebChannelWrapper ideWrapper{win->helpBrowserDocklet()->browser()}; ++ IDEWebChannelWrapper ideWrapper { win->helpBrowserDocklet()->browser() }; + channel.registerObject("IDE", &ideWrapper); + + return app.exec(); + } + + +-bool SingleInstanceGuard::tryConnect(QStringList const & arguments) +-{ ++bool SingleInstanceGuard::tryConnect(QStringList const& arguments) { + const int maxNumberOfInstances = 128; + if (!arguments.empty()) { + for (int socketID = 0; socketID != maxNumberOfInstances; ++socketID) { + QString serverName = QStringLiteral("SuperColliderIDE_Singleton_%1").arg(socketID); +- QSharedPointer socket (new QLocalSocket(this)); ++ QSharedPointer socket(new QLocalSocket(this)); + socket->connectToServer(serverName); + + QStringList canonicalArguments; +@@ -311,28 +309,25 @@ bool Main::nativeEventFilter(const QByte + return result; + } + +-bool Main::openDocumentation(const QString & string) +-{ ++bool Main::openDocumentation(const QString& string) { + QString symbol = string.trimmed(); + if (symbol.isEmpty()) + return false; + +- HelpBrowserDocklet *helpDock = MainWindow::instance()->helpBrowserDocklet(); ++ HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + return true; + } + +-bool Main::openDocumentationForMethod(const QString & className, const QString & methodName) +-{ +- HelpBrowserDocklet *helpDock = MainWindow::instance()->helpBrowserDocklet(); ++bool Main::openDocumentationForMethod(const QString& className, const QString& methodName) { ++ HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpForMethod(className, methodName); + helpDock->focus(); + return true; + } + +-void Main::openDefinition(const QString &string, QWidget * parent) +-{ ++void Main::openDefinition(const QString& string, QWidget* parent) { + QString definitionString = string.trimmed(); + + LookupDialog dialog(parent); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -1306,9 +1306,8 @@ void AutoCompleter::parseClassNode(DocNo + parseClassNode(node->children[i], str); + } + +-void AutoCompleter::gotoHelp(QString symbol) +-{ +- HelpBrowserDocklet *helpDock = MainWindow::instance()->helpBrowserDocklet(); ++void AutoCompleter::gotoHelp(QString symbol) { ++ HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + } +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -146,73 +146,58 @@ MainWindow::MainWindow(Main * main) : + mHelpBrowserDocklet = new HelpBrowserDocklet(this); + mHelpBrowserDocklet->setObjectName("help-dock"); + addDockWidget(Qt::RightDockWidgetArea, mHelpBrowserDocklet->dockWidget()); +- //mHelpBrowserDockable->hide(); ++ // mHelpBrowserDockable->hide(); + + mPostDocklet = new PostDocklet(this); + mPostDocklet->setObjectName("post-dock"); + addDockWidget(Qt::RightDockWidgetArea, mPostDocklet->dockWidget()); + + // Layout +- QVBoxLayout *center_box = new QVBoxLayout; +- center_box->setContentsMargins(0,0,0,0); ++ QVBoxLayout* center_box = new QVBoxLayout; ++ center_box->setContentsMargins(0, 0, 0, 0); + center_box->setSpacing(0); + center_box->addWidget(mEditors); + center_box->addWidget(mToolBox); + +- QWidget *central = new QWidget; ++ QWidget* central = new QWidget; + central->setLayout(center_box); + setCentralWidget(central); + + // Session management +- connect(main->sessionManager(), SIGNAL(saveSessionRequest(Session*)), +- this, SLOT(saveSession(Session*))); +- connect(main->sessionManager(), SIGNAL(switchSessionRequest(Session*)), +- this, SLOT(switchSession(Session*))); +- connect(main->sessionManager(), SIGNAL(currentSessionNameChanged()), +- this, SLOT(updateWindowTitle())); ++ connect(main->sessionManager(), SIGNAL(saveSessionRequest(Session*)), this, SLOT(saveSession(Session*))); ++ connect(main->sessionManager(), SIGNAL(switchSessionRequest(Session*)), this, SLOT(switchSession(Session*))); ++ connect(main->sessionManager(), SIGNAL(currentSessionNameChanged()), this, SLOT(updateWindowTitle())); + // A system for easy evaluation of pre-defined code: +- connect(&mCodeEvalMapper, SIGNAL(mapped(QString)), +- this, SIGNAL(evaluateCode(QString))); +- connect(this, SIGNAL(evaluateCode(QString,bool)), +- main->scProcess(), SLOT(evaluateCode(QString,bool))); ++ connect(&mCodeEvalMapper, SIGNAL(mapped(QString)), this, SIGNAL(evaluateCode(QString))); ++ connect(this, SIGNAL(evaluateCode(QString, bool)), main->scProcess(), SLOT(evaluateCode(QString, bool))); + // Interpreter: post output +- connect(main->scProcess(), SIGNAL( scPost(QString) ), +- mPostDocklet->mPostWindow, SLOT( post(QString) ) ); ++ connect(main->scProcess(), SIGNAL(scPost(QString)), mPostDocklet->mPostWindow, SLOT(post(QString))); + // Interpreter: monitor running state +- connect(main->scProcess(), SIGNAL( stateChanged(QProcess::ProcessState) ), +- this, SLOT( onInterpreterStateChanged(QProcess::ProcessState) ) ); ++ connect(main->scProcess(), SIGNAL(stateChanged(QProcess::ProcessState)), this, ++ SLOT(onInterpreterStateChanged(QProcess::ProcessState))); + // Interpreter: forward status messages +- connect(main->scProcess(), SIGNAL(statusMessage(const QString&)), +- this, SLOT(showStatusMessage(const QString&))); ++ connect(main->scProcess(), SIGNAL(statusMessage(const QString&)), this, SLOT(showStatusMessage(const QString&))); + + // Document list interaction +- connect(mDocumentsDocklet->list(), SIGNAL(clicked(Document*)), +- mEditors, SLOT(setCurrent(Document*))); +- connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), +- mDocumentsDocklet->list(), SLOT(setCurrent(Document*)), +- Qt::QueuedConnection); +- connect(mDocumentsDocklet->list(), SIGNAL(updateTabsOrder(QList)), +- mEditors, SLOT(updateTabsOrder(QList))); +- connect(mEditors, SIGNAL(updateDockletOrder(int, int)), +- mDocumentsDocklet->list(), SLOT(updateDockletOrder(int, int)), ++ connect(mDocumentsDocklet->list(), SIGNAL(clicked(Document*)), mEditors, SLOT(setCurrent(Document*))); ++ connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), mDocumentsDocklet->list(), SLOT(setCurrent(Document*)), + Qt::QueuedConnection); ++ connect(mDocumentsDocklet->list(), SIGNAL(updateTabsOrder(QList)), mEditors, ++ SLOT(updateTabsOrder(QList))); ++ connect(mEditors, SIGNAL(updateDockletOrder(int, int)), mDocumentsDocklet->list(), ++ SLOT(updateDockletOrder(int, int)), Qt::QueuedConnection); + + // Update actions on document change +- connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), +- this, SLOT(onCurrentDocumentChanged(Document*))); ++ connect(mEditors, SIGNAL(currentDocumentChanged(Document*)), this, SLOT(onCurrentDocumentChanged(Document*))); + // Document management +- DocumentManager *docMng = main->documentManager(); +- connect(docMng, SIGNAL(changedExternally(Document*)), +- this, SLOT(onDocumentChangedExternally(Document*))); +- connect(docMng, SIGNAL(recentsChanged()), +- this, SLOT(updateRecentDocsMenu())); +- connect(docMng, SIGNAL(saved(Document*)), this, SLOT(updateWindowTitle()) ); +- connect(docMng, SIGNAL(titleChanged(Document*)), this, SLOT(updateWindowTitle()) ); +- +- connect(main, SIGNAL(applySettingsRequest(Settings::Manager*)), +- this, SLOT(applySettings(Settings::Manager*))); +- connect(main, SIGNAL(storeSettingsRequest(Settings::Manager*)), +- this, SLOT(storeSettings(Settings::Manager*))); ++ DocumentManager* docMng = main->documentManager(); ++ connect(docMng, SIGNAL(changedExternally(Document*)), this, SLOT(onDocumentChangedExternally(Document*))); ++ connect(docMng, SIGNAL(recentsChanged()), this, SLOT(updateRecentDocsMenu())); ++ connect(docMng, SIGNAL(saved(Document*)), this, SLOT(updateWindowTitle())); ++ connect(docMng, SIGNAL(titleChanged(Document*)), this, SLOT(updateWindowTitle())); ++ ++ connect(main, SIGNAL(applySettingsRequest(Settings::Manager*)), this, SLOT(applySettings(Settings::Manager*))); ++ connect(main, SIGNAL(storeSettingsRequest(Settings::Manager*)), this, SLOT(storeSettings(Settings::Manager*))); + + // ToolBox + connect(mToolBox->closeButton(), SIGNAL(clicked()), this, SLOT(hideToolBox())); +@@ -448,72 +433,64 @@ void MainWindow::createActions() + #endif + action->setStatusTip(tr("Show configuration dialog")); + connect(action, SIGNAL(triggered()), this, SLOT(showSettings())); +- settings->addAction( action, "ide-settings-dialog", ideCategory); ++ settings->addAction(action, "ide-settings-dialog", ideCategory); + + // Help + mActions[Help] = action = new QAction(tr("Show &Help Browser"), this); + action->setStatusTip(tr("Show and focus the Help Browser")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelp())); +- settings->addAction( action, "help-browser", helpCategory); ++ settings->addAction(action, "help-browser", helpCategory); + +- mActions[HelpAboutIDE] = action = +- new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); ++ mActions[HelpAboutIDE] = action = ++ new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); + action->setStatusTip(tr("Open the SuperCollider IDE guide")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelpAboutIDE())); + +- mActions[ReportABug] = action = +- new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); ++ mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); + action->setStatusTip(tr("Report a bug")); + connect(action, SIGNAL(triggered()), this, SLOT(doBugReport())); +- +- mActions[LookupDocumentationForCursor] = action = +- new QAction(tr("Look Up Documentation for Cursor"), this); ++ ++ mActions[LookupDocumentationForCursor] = action = new QAction(tr("Look Up Documentation for Cursor"), this); + action->setShortcut(tr("Ctrl+D", "Look Up Documentation for Cursor")); + action->setStatusTip(tr("Look up documentation for text under cursor")); + connect(action, SIGNAL(triggered()), this, SLOT(lookupDocumentationForCursor())); +- settings->addAction( action, "help-lookup-for-cursor", helpCategory); ++ settings->addAction(action, "help-lookup-for-cursor", helpCategory); + +- mActions[LookupDocumentation] = action = +- new QAction(tr("Look Up Documentation..."), this); ++ mActions[LookupDocumentation] = action = new QAction(tr("Look Up Documentation..."), this); + action->setShortcut(tr("Ctrl+Shift+D", "Look Up Documentation")); + action->setStatusTip(tr("Enter text to look up in documentation")); + connect(action, SIGNAL(triggered()), this, SLOT(lookupDocumentation())); +- settings->addAction( action, "help-lookup", helpCategory); ++ settings->addAction(action, "help-lookup", helpCategory); + +- mActions[ShowAbout] = action = new QAction( +- QIcon::fromTheme("help-about"), tr("&About SuperCollider"), this); ++ mActions[ShowAbout] = action = new QAction(QIcon::fromTheme("help-about"), tr("&About SuperCollider"), this); + connect(action, SIGNAL(triggered()), this, SLOT(showAbout())); +- settings->addAction( action, "ide-about", ideCategory); ++ settings->addAction(action, "ide-about", ideCategory); + +- mActions[ShowAboutQT] = action = new QAction( +- QIcon::fromTheme("show-about-qt"), tr("About &Qt"), this); ++ mActions[ShowAboutQT] = action = new QAction(QIcon::fromTheme("show-about-qt"), tr("About &Qt"), this); + connect(action, SIGNAL(triggered()), this, SLOT(showAboutQT())); +- settings->addAction( action, "ide-about-qt", ideCategory); ++ settings->addAction(action, "ide-about-qt", ideCategory); + + // Add external actions to settings: + action = mPostDocklet->toggleViewAction(); +- action->setIcon( QIcon::fromTheme("utilities-terminal")); ++ action->setIcon(QIcon::fromTheme("utilities-terminal")); + action->setStatusTip(tr("Show/hide Post docklet")); +- settings->addAction( mPostDocklet->toggleViewAction(), +- "ide-docklet-post", ideCategory ); ++ settings->addAction(mPostDocklet->toggleViewAction(), "ide-docklet-post", ideCategory); + + action = mDocumentsDocklet->toggleViewAction(); +- action->setIcon( QIcon::fromTheme("text-x-generic") ); ++ action->setIcon(QIcon::fromTheme("text-x-generic")); + action->setStatusTip(tr("Show/hide Documents docklet")); +- settings->addAction( mDocumentsDocklet->toggleViewAction(), +- "ide-docklet-documents", ideCategory ); ++ settings->addAction(mDocumentsDocklet->toggleViewAction(), "ide-docklet-documents", ideCategory); + + action = mHelpBrowserDocklet->toggleViewAction(); +- action->setIcon( QIcon::fromTheme("system-help") ); ++ action->setIcon(QIcon::fromTheme("system-help")); + action->setStatusTip(tr("Show/hide Help browser docklet")); +- settings->addAction( mHelpBrowserDocklet->toggleViewAction(), +- "ide-docklet-help", ideCategory ); ++ settings->addAction(mHelpBrowserDocklet->toggleViewAction(), "ide-docklet-help", ideCategory); + + // In Mac OS, all menu item shortcuts need a modifier, so add the action with + // the "Escape" default shortcut to the main window widget. + // FIXME: This is not perfect, as any other action customized to "Escape" will + // still not work. +- addAction( mActions[CloseToolBox] ); ++ addAction(mActions[CloseToolBox]); + + // Add actions to docklets, so shortcuts work when docklets detached: + +@@ -530,14 +507,12 @@ void MainWindow::createActions() + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferences]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); +- + } + +-void MainWindow::createMenus() +-{ +- QMenuBar *menuBar; +- QMenu *menu; +- QMenu *submenu; ++void MainWindow::createMenus() { ++ QMenuBar* menuBar; ++ QMenu* menu; ++ QMenu* submenu; + + // On Mac, create a parent-less menu bar to be shared by all windows: + #ifdef Q_OS_MAC +@@ -547,170 +522,165 @@ void MainWindow::createMenus() + #endif + + menu = new QMenu(tr("&File"), this); +- menu->addAction( mActions[DocNew] ); +- menu->addAction( mActions[DocOpen] ); ++ menu->addAction(mActions[DocNew]); ++ menu->addAction(mActions[DocOpen]); + mRecentDocsMenu = menu->addMenu(tr("Open Recent", "Open a recent document")); +- connect(mRecentDocsMenu, SIGNAL(triggered(QAction*)), +- this, SLOT(onOpenRecentDocument(QAction*))); +- menu->addAction( mActions[DocOpenStartup] ); +- menu->addAction( mActions[DocOpenSupportDir] ); +- menu->addAction( mActions[DocSave] ); +- menu->addAction( mActions[DocSaveAs] ); +- menu->addAction( mActions[DocSaveAsExtension] ); +- menu->addAction( mActions[DocSaveAll] ); ++ connect(mRecentDocsMenu, SIGNAL(triggered(QAction*)), this, SLOT(onOpenRecentDocument(QAction*))); ++ menu->addAction(mActions[DocOpenStartup]); ++ menu->addAction(mActions[DocOpenSupportDir]); ++ menu->addAction(mActions[DocSave]); ++ menu->addAction(mActions[DocSaveAs]); ++ menu->addAction(mActions[DocSaveAsExtension]); ++ menu->addAction(mActions[DocSaveAll]); + menu->addSeparator(); +- menu->addAction( mActions[DocReload] ); ++ menu->addAction(mActions[DocReload]); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::DocClose) ); +- menu->addAction( mActions[DocCloseAll] ); ++ menu->addAction(mEditors->action(MultiEditor::DocClose)); ++ menu->addAction(mActions[DocCloseAll]); + menu->addSeparator(); +- menu->addAction( mActions[Quit] ); ++ menu->addAction(mActions[Quit]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Session"), this); +- menu->addAction( mActions[NewSession] ); +- menu->addAction( mActions[SaveSessionAs] ); ++ menu->addAction(mActions[NewSession]); ++ menu->addAction(mActions[SaveSessionAs]); + submenu = menu->addMenu(tr("&Open Session")); +- connect(submenu, SIGNAL(triggered(QAction*)), +- this, SLOT(onOpenSessionAction(QAction*))); ++ connect(submenu, SIGNAL(triggered(QAction*)), this, SLOT(onOpenSessionAction(QAction*))); + mSessionsMenu = submenu; + updateSessionsMenu(); + menu->addSeparator(); +- menu->addAction( mActions[ManageSessions] ); +- menu->addAction( mActions[OpenSessionSwitchDialog] ); ++ menu->addAction(mActions[ManageSessions]); ++ menu->addAction(mActions[OpenSessionSwitchDialog]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Edit"), this); +- menu->addAction( mEditors->action(MultiEditor::Undo) ); +- menu->addAction( mEditors->action(MultiEditor::Redo) ); ++ menu->addAction(mEditors->action(MultiEditor::Undo)); ++ menu->addAction(mEditors->action(MultiEditor::Redo)); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::Cut) ); +- menu->addAction( mEditors->action(MultiEditor::Copy) ); +- menu->addAction( mEditors->action(MultiEditor::Paste) ); +- menu->addSeparator(); +- menu->addAction( mActions[Find] ); +- menu->addAction( mFindReplaceTool->action(TextFindReplacePanel::FindNext) ); +- menu->addAction( mFindReplaceTool->action(TextFindReplacePanel::FindPrevious) ); +- menu->addAction( mActions[Replace] ); +- menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::IndentWithSpaces) ); +- menu->addAction( mEditors->action(MultiEditor::IndentLineOrRegion) ); +- menu->addAction( mEditors->action(MultiEditor::ToggleComment) ); +- menu->addAction( mEditors->action(MultiEditor::ToggleOverwriteMode) ); +- menu->addAction( mEditors->action(MultiEditor::SelectRegion) ); +- menu->addAction( mEditors->action(MultiEditor::SelectEnclosingBlock) ); ++ menu->addAction(mEditors->action(MultiEditor::Cut)); ++ menu->addAction(mEditors->action(MultiEditor::Copy)); ++ menu->addAction(mEditors->action(MultiEditor::Paste)); ++ menu->addSeparator(); ++ menu->addAction(mActions[Find]); ++ menu->addAction(mFindReplaceTool->action(TextFindReplacePanel::FindNext)); ++ menu->addAction(mFindReplaceTool->action(TextFindReplacePanel::FindPrevious)); ++ menu->addAction(mActions[Replace]); ++ menu->addSeparator(); ++ menu->addAction(mEditors->action(MultiEditor::IndentWithSpaces)); ++ menu->addAction(mEditors->action(MultiEditor::IndentLineOrRegion)); ++ menu->addAction(mEditors->action(MultiEditor::ToggleComment)); ++ menu->addAction(mEditors->action(MultiEditor::ToggleOverwriteMode)); ++ menu->addAction(mEditors->action(MultiEditor::SelectRegion)); ++ menu->addAction(mEditors->action(MultiEditor::SelectEnclosingBlock)); + + menu->addSeparator(); +- menu->addAction( mActions[ShowSettings] ); ++ menu->addAction(mActions[ShowSettings]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&View"), this); + submenu = new QMenu(tr("&Docklets"), this); +- submenu->addAction( mPostDocklet->toggleViewAction() ); +- submenu->addAction( mDocumentsDocklet->toggleViewAction() ); +- submenu->addAction( mHelpBrowserDocklet->toggleViewAction() ); ++ submenu->addAction(mPostDocklet->toggleViewAction()); ++ submenu->addAction(mDocumentsDocklet->toggleViewAction()); ++ submenu->addAction(mHelpBrowserDocklet->toggleViewAction()); + menu->addMenu(submenu); + menu->addSeparator(); + submenu = menu->addMenu(tr("&Tool Panels")); +- submenu->addAction( mActions[Find] ); +- submenu->addAction( mActions[Replace] ); +- submenu->addAction( mActions[ShowCmdLine] ); +- submenu->addAction( mActions[CmdLineForCursor] ); +- submenu->addAction( mActions[ShowGoToLineTool] ); ++ submenu->addAction(mActions[Find]); ++ submenu->addAction(mActions[Replace]); ++ submenu->addAction(mActions[ShowCmdLine]); ++ submenu->addAction(mActions[CmdLineForCursor]); ++ submenu->addAction(mActions[ShowGoToLineTool]); + submenu->addSeparator(); +- submenu->addAction( mActions[CloseToolBox] ); ++ submenu->addAction(mActions[CloseToolBox]); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::EnlargeFont) ); +- menu->addAction( mEditors->action(MultiEditor::ShrinkFont) ); +- menu->addAction( mEditors->action(MultiEditor::ResetFontSize) ); ++ menu->addAction(mEditors->action(MultiEditor::EnlargeFont)); ++ menu->addAction(mEditors->action(MultiEditor::ShrinkFont)); ++ menu->addAction(mEditors->action(MultiEditor::ResetFontSize)); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::ShowWhitespace) ); +- menu->addAction( mEditors->action(MultiEditor::ShowLinenumber) ); ++ menu->addAction(mEditors->action(MultiEditor::ShowWhitespace)); ++ menu->addAction(mEditors->action(MultiEditor::ShowLinenumber)); + menu->addSeparator(); + menu->addAction(mEditors->action(MultiEditor::ShowAutocompleteHelp)); + menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::NextDocument) ); +- menu->addAction( mEditors->action(MultiEditor::PreviousDocument) ); +- menu->addAction( mEditors->action(MultiEditor::SwitchDocument) ); +- menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::SplitHorizontally) ); +- menu->addAction( mEditors->action(MultiEditor::SplitVertically) ); +- menu->addAction( mEditors->action(MultiEditor::RemoveCurrentSplit) ); +- menu->addAction( mEditors->action(MultiEditor::RemoveAllSplits) ); ++ menu->addAction(mEditors->action(MultiEditor::NextDocument)); ++ menu->addAction(mEditors->action(MultiEditor::PreviousDocument)); ++ menu->addAction(mEditors->action(MultiEditor::SwitchDocument)); ++ menu->addSeparator(); ++ menu->addAction(mEditors->action(MultiEditor::SplitHorizontally)); ++ menu->addAction(mEditors->action(MultiEditor::SplitVertically)); ++ menu->addAction(mEditors->action(MultiEditor::RemoveCurrentSplit)); ++ menu->addAction(mEditors->action(MultiEditor::RemoveAllSplits)); + menu->addSeparator(); +- menu->addAction( mActions[FocusPostWindow] ); ++ menu->addAction(mActions[FocusPostWindow]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Language"), this); +- menu->addAction( mMain->scProcess()->action(ScProcess::ToggleRunning) ); +- menu->addAction( mMain->scProcess()->action(ScProcess::Restart) ); +- menu->addAction( mMain->scProcess()->action(ScProcess::RecompileClassLibrary) ); +- menu->addSeparator(); +- menu->addAction( mMain->scProcess()->action(ScProcess::ShowQuarks) ); +- menu->addSeparator(); +- menu->addAction( mEditors->action(MultiEditor::EvaluateCurrentDocument) ); +- menu->addAction( mEditors->action(MultiEditor::EvaluateRegion) ); +- menu->addAction( mEditors->action(MultiEditor::EvaluateLine) ); +- menu->addAction( mMain->scProcess()->action(ScIDE::ScProcess::StopMain) ); +- menu->addSeparator(); +- menu->addAction( mActions[LookupImplementationForCursor] ); +- menu->addAction( mActions[LookupImplementation] ); +- menu->addAction( mActions[LookupReferencesForCursor] ); +- menu->addAction( mActions[LookupReferences] ); ++ menu->addAction(mMain->scProcess()->action(ScProcess::ToggleRunning)); ++ menu->addAction(mMain->scProcess()->action(ScProcess::Restart)); ++ menu->addAction(mMain->scProcess()->action(ScProcess::RecompileClassLibrary)); ++ menu->addSeparator(); ++ menu->addAction(mMain->scProcess()->action(ScProcess::ShowQuarks)); ++ menu->addSeparator(); ++ menu->addAction(mEditors->action(MultiEditor::EvaluateCurrentDocument)); ++ menu->addAction(mEditors->action(MultiEditor::EvaluateRegion)); ++ menu->addAction(mEditors->action(MultiEditor::EvaluateLine)); ++ menu->addAction(mMain->scProcess()->action(ScIDE::ScProcess::StopMain)); ++ menu->addSeparator(); ++ menu->addAction(mActions[LookupImplementationForCursor]); ++ menu->addAction(mActions[LookupImplementation]); ++ menu->addAction(mActions[LookupReferencesForCursor]); ++ menu->addAction(mActions[LookupReferences]); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("Se&rver"), this); +- menu->addAction( mMain->scServer()->action(ScServer::ToggleRunning) ); +- menu->addAction( mMain->scServer()->action(ScServer::Reboot) ); +- menu->addAction( mMain->scServer()->action(ScServer::KillAll) ); +- menu->addSeparator(); +- menu->addAction( mMain->scServer()->action(ScServer::ShowMeters) ); +- menu->addAction( mMain->scServer()->action(ScServer::ShowScope) ); +- menu->addAction( mMain->scServer()->action(ScServer::ShowFreqScope) ); +- menu->addAction( mMain->scServer()->action(ScServer::DumpNodeTree) ); +- menu->addAction( mMain->scServer()->action(ScServer::DumpNodeTreeWithControls) ); +- menu->addAction( mMain->scServer()->action(ScServer::PlotTree) ); +- menu->addAction( mMain->scServer()->action(ScServer::DumpOSC) ); +- menu->addAction( mMain->scServer()->action(ScServer::Record) ); +- menu->addAction( mMain->scServer()->action(ScServer::PauseRecord) ); +- menu->addAction( mMain->scServer()->action(ScServer::VolumeUp) ); +- menu->addAction( mMain->scServer()->action(ScServer::VolumeDown) ); +- menu->addAction( mMain->scServer()->action(ScServer::VolumeRestore) ); +- menu->addAction( mMain->scServer()->action(ScServer::Mute) ); ++ menu->addAction(mMain->scServer()->action(ScServer::ToggleRunning)); ++ menu->addAction(mMain->scServer()->action(ScServer::Reboot)); ++ menu->addAction(mMain->scServer()->action(ScServer::KillAll)); ++ menu->addSeparator(); ++ menu->addAction(mMain->scServer()->action(ScServer::ShowMeters)); ++ menu->addAction(mMain->scServer()->action(ScServer::ShowScope)); ++ menu->addAction(mMain->scServer()->action(ScServer::ShowFreqScope)); ++ menu->addAction(mMain->scServer()->action(ScServer::DumpNodeTree)); ++ menu->addAction(mMain->scServer()->action(ScServer::DumpNodeTreeWithControls)); ++ menu->addAction(mMain->scServer()->action(ScServer::PlotTree)); ++ menu->addAction(mMain->scServer()->action(ScServer::DumpOSC)); ++ menu->addAction(mMain->scServer()->action(ScServer::Record)); ++ menu->addAction(mMain->scServer()->action(ScServer::PauseRecord)); ++ menu->addAction(mMain->scServer()->action(ScServer::VolumeUp)); ++ menu->addAction(mMain->scServer()->action(ScServer::VolumeDown)); ++ menu->addAction(mMain->scServer()->action(ScServer::VolumeRestore)); ++ menu->addAction(mMain->scServer()->action(ScServer::Mute)); + + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Help"), this); +- menu->addAction( mActions[HelpAboutIDE] ); +- menu->addAction( mActions[ReportABug] ); ++ menu->addAction(mActions[HelpAboutIDE]); ++ menu->addAction(mActions[ReportABug]); + menu->addSeparator(); +- menu->addAction( mActions[Help] ); +- menu->addAction( mActions[LookupDocumentationForCursor] ); +- menu->addAction( mActions[LookupDocumentation] ); ++ menu->addAction(mActions[Help]); ++ menu->addAction(mActions[LookupDocumentationForCursor]); ++ menu->addAction(mActions[LookupDocumentation]); + menu->addSeparator(); +- menu->addAction( mActions[ShowAbout] ); +- menu->addAction( mActions[ShowAboutQT] ); ++ menu->addAction(mActions[ShowAbout]); ++ menu->addAction(mActions[ShowAboutQT]); + + menuBar->addMenu(menu); + } + +-static void saveDetachedState( Docklet *docklet, QVariantMap & data ) +-{ +- data.insert( docklet->objectName(), docklet->saveDetachedState().toBase64() ); ++static void saveDetachedState(Docklet* docklet, QVariantMap& data) { ++ data.insert(docklet->objectName(), docklet->saveDetachedState().toBase64()); + } + +-template +-void MainWindow::saveWindowState(T * settings) +-{ ++template void MainWindow::saveWindowState(T* settings) { + QVariantMap detachedData; +- saveDetachedState( mPostDocklet, detachedData ); +- saveDetachedState( mDocumentsDocklet, detachedData ); +- saveDetachedState( mHelpBrowserDocklet, detachedData ); ++ saveDetachedState(mPostDocklet, detachedData); ++ saveDetachedState(mDocumentsDocklet, detachedData); ++ saveDetachedState(mHelpBrowserDocklet, detachedData); + + settings->beginGroup("mainWindow"); + settings->setValue("geometry", this->saveGeometry().toBase64()); +@@ -744,21 +714,20 @@ void MainWindow::restoreWindowState( T * + QVariant varDetached = settings->value("detached"); + settings->endGroup(); + +- QByteArray geom = QByteArray::fromBase64( varGeom.value() ); +- QByteArray state = QByteArray::fromBase64( varState.value() ); ++ QByteArray geom = QByteArray::fromBase64(varGeom.value()); ++ QByteArray state = QByteArray::fromBase64(varState.value()); + QVariantMap detachedData = varDetached.value(); + + if (!geom.isEmpty()) { + // Workaround for Qt bug 4397: + setWindowState(Qt::WindowNoState); + restoreGeometry(geom); +- } +- else +- setWindowState( windowState() & ~Qt::WindowFullScreen | Qt::WindowMaximized ); ++ } else ++ setWindowState(windowState() & ~Qt::WindowFullScreen | Qt::WindowMaximized); + +- restoreDetachedState( mPostDocklet, detachedData ); +- restoreDetachedState( mDocumentsDocklet, detachedData ); +- restoreDetachedState( mHelpBrowserDocklet, detachedData ); ++ restoreDetachedState(mPostDocklet, detachedData); ++ restoreDetachedState(mDocumentsDocklet, detachedData); ++ restoreDetachedState(mHelpBrowserDocklet, detachedData); + + qDebug("restoring state"); + +@@ -1387,72 +1356,51 @@ void MainWindow::updateClockWidget(bool + } + } + +-void MainWindow::openSession(const QString &sessionName) +-{ +- mMain->sessionManager()->openSession( sessionName ); +-} ++void MainWindow::openSession(const QString& sessionName) { mMain->sessionManager()->openSession(sessionName); } + +-void MainWindow::lookupImplementationForCursor() +-{ ++void MainWindow::lookupImplementationForCursor() { + static const QByteArray signature = QMetaObject::normalizedSignature("openDefinition()"); + + invokeMethodOnFirstResponder(signature); + } + +-void MainWindow::lookupImplementation() +-{ +- Main::openDefinition(QString(), QApplication::activeWindow()); +-} ++void MainWindow::lookupImplementation() { Main::openDefinition(QString(), QApplication::activeWindow()); } + +-void MainWindow::lookupReferencesForCursor() +-{ ++void MainWindow::lookupReferencesForCursor() { + static const QByteArray signature = QMetaObject::normalizedSignature("findReferences()"); + + invokeMethodOnFirstResponder(signature); + } + +-void MainWindow::lookupReferences() +-{ +- Main::findReferences(QString(), QApplication::activeWindow()); +-} ++void MainWindow::lookupReferences() { Main::findReferences(QString(), QApplication::activeWindow()); } + +-void MainWindow::showStatusMessage( QString const & string ) +-{ +- mStatusBar->showMessage(string, 3000); +-} ++void MainWindow::showStatusMessage(QString const& string) { mStatusBar->showMessage(string, 3000); } + +-void MainWindow::applySettings( Settings::Manager * settings ) +-{ +- applyCursorBlinkingSettings( settings ); ++void MainWindow::applySettings(Settings::Manager* settings) { ++ applyCursorBlinkingSettings(settings); + + mPostDocklet->mPostWindow->applySettings(settings); + mHelpBrowserDocklet->browser()->applySettings(settings); + mCmdLine->applySettings(settings); + } + +-void MainWindow::applyCursorBlinkingSettings( Settings::Manager * settings ) +-{ ++void MainWindow::applyCursorBlinkingSettings(Settings::Manager* settings) { + const bool disableBlinkingCursor = settings->value("IDE/editor/disableBlinkingCursor").toBool(); + const int defaultCursorFlashTime = settings->defaultCursorFlashTime(); +- QApplication::setCursorFlashTime( disableBlinkingCursor ? 0 : defaultCursorFlashTime ); ++ QApplication::setCursorFlashTime(disableBlinkingCursor ? 0 : defaultCursorFlashTime); + } + +-void MainWindow::storeSettings( Settings::Manager * settings ) +-{ +- mPostDocklet->mPostWindow->storeSettings(settings); +-} ++void MainWindow::storeSettings(Settings::Manager* settings) { mPostDocklet->mPostWindow->storeSettings(settings); } + +-void MainWindow::updateSessionsMenu() +-{ ++void MainWindow::updateSessionsMenu() { + mSessionsMenu->clear(); + QStringList sessions = mMain->sessionManager()->availableSessions(); +- foreach (const QString & session, sessions) +- mSessionsMenu->addAction( session ); ++ foreach (const QString& session, sessions) ++ mSessionsMenu->addAction(session); + } + +-void MainWindow::showSwitchSessionDialog() +-{ +- SessionSwitchDialog * dialog = new SessionSwitchDialog(this); ++void MainWindow::showSwitchSessionDialog() { ++ SessionSwitchDialog* dialog = new SessionSwitchDialog(this); + int result = dialog->exec(); + + if (result == QDialog::Accepted) +@@ -1589,50 +1537,43 @@ void MainWindow::lookupDocumentation() + delete dialog; + } + +-void MainWindow::lookupDocumentationForCursor() +-{ ++void MainWindow::lookupDocumentationForCursor() { + static const QByteArray signature = QMetaObject::normalizedSignature("openDocumentation()"); + + bool documentationOpened = false; +- QWidget * widget = QApplication::focusWidget(); ++ QWidget* widget = QApplication::focusWidget(); + int methodIdx = -1; + +- widget = findFirstResponder( widget, signature.constData(), methodIdx ); ++ widget = findFirstResponder(widget, signature.constData(), methodIdx); + + if (widget && methodIdx != -1) { +- widget->metaObject()->method(methodIdx).invoke( +- widget, Qt::DirectConnection, +- Q_RETURN_ARG(bool, documentationOpened) ); ++ widget->metaObject()->method(methodIdx).invoke(widget, Qt::DirectConnection, ++ Q_RETURN_ARG(bool, documentationOpened)); + }; + + if (!documentationOpened) + openHelp(); + } + +-void MainWindow::openHelp() +-{ ++void MainWindow::openHelp() { + if (mHelpBrowserDocklet->browser()->url().isEmpty()) + mHelpBrowserDocklet->browser()->goHome(); + mHelpBrowserDocklet->focus(); + } + +-void MainWindow::openHelpAboutIDE() +-{ ++void MainWindow::openHelpAboutIDE() { + mHelpBrowserDocklet->browser()->gotoHelpFor("Guides/SCIde"); + mHelpBrowserDocklet->focus(); + } +- +-void MainWindow::doBugReport() +-{ +- Settings::Manager *settings = mMain->settings(); ++ ++void MainWindow::doBugReport() { ++ Settings::Manager* settings = mMain->settings(); + bool useGitHubBugReport = false; +- ++ + if (settings->contains("IDE/useGitHubBugReport")) { +- + useGitHubBugReport = settings->value("IDE/useGitHubBugReport").toBool(); +- ++ + } else { +- + QMessageBox* dialog = new QMessageBox(); + dialog->setText("Do you want to submit bugs using GitHub?"); + dialog->setInformativeText("This requires a GitHub account."); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.hpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +@@ -120,15 +120,15 @@ public: + void focusCodeEditor(); + bool promptSaveDocs(); + +- HelpBrowserDocklet * helpBrowserDocklet() { return mHelpBrowserDocklet; } +- PostDocklet * postDocklet() { return mPostDocklet; } ++ HelpBrowserDocklet* helpBrowserDocklet() { return mHelpBrowserDocklet; } ++ PostDocklet* postDocklet() { return mPostDocklet; } + +- static MainWindow *instance() { return mInstance; } +- Settings::Manager *setting(); ++ static MainWindow* instance() { return mInstance; } ++ Settings::Manager* setting(); + +- static bool close( Document * ); +- static bool save( Document *, bool forceChoose = false, bool saveInExtensionFolder = false ); +- static bool reload( Document * ); ++ static bool close(Document*); ++ static bool save(Document*, bool forceChoose = false, bool saveInExtensionFolder = false); ++ static bool reload(Document*); + + void restoreDocuments(); + +@@ -187,74 +187,73 @@ private Q_SLOTS: + void doBugReport(); + void lookupDocumentationForCursor(); + void lookupDocumentation(); +- void applySettings( Settings::Manager * ); +- void storeSettings( Settings::Manager * ); ++ void applySettings(Settings::Manager*); ++ void storeSettings(Settings::Manager*); + void showSwitchSessionDialog(); + void showAbout(); + void showAboutQT(); + void cmdLineForCursor(); + + protected: +- virtual void closeEvent(QCloseEvent *event); +- virtual void dragEnterEvent( QDragEnterEvent * ); +- virtual void dropEvent( QDropEvent * ); +- virtual bool eventFilter( QObject *, QEvent * ); ++ virtual void closeEvent(QCloseEvent* event); ++ virtual void dragEnterEvent(QDragEnterEvent*); ++ virtual void dropEvent(QDropEvent*); ++ virtual bool eventFilter(QObject*, QEvent*); + + private: + void createActions(); + void createMenus(); +- template void saveWindowState(T * settings); +- template void restoreWindowState(T * settings); ++ template void saveWindowState(T* settings); ++ template void restoreWindowState(T* settings); + void updateSessionsMenu(); +- void updateClockWidget( bool isFullScreen ); +- void openSession( QString const & sessionName ); +- bool checkFileExtension( const QString & fpath ); +- void toggleInterpreterActions( bool enabled); +- void applyCursorBlinkingSettings( Settings::Manager * ); ++ void updateClockWidget(bool isFullScreen); ++ void openSession(QString const& sessionName); ++ bool checkFileExtension(const QString& fpath); ++ void toggleInterpreterActions(bool enabled); ++ void applyCursorBlinkingSettings(Settings::Manager*); + QString documentOpenPath() const; +- QString documentSavePath( Document * ) const; ++ QString documentSavePath(Document*) const; + +- Main *mMain; ++ Main* mMain; + +- QAction * mActions[ActionCount]; +- QMenu * mRecentDocsMenu; +- QMenu * mSessionsMenu; ++ QAction* mActions[ActionCount]; ++ QMenu* mRecentDocsMenu; ++ QMenu* mSessionsMenu; + +- MultiEditor *mEditors; ++ MultiEditor* mEditors; + + // Tools +- ToolBox *mToolBox; +- CmdLine *mCmdLine; +- GoToLineTool *mGoToLineTool; +- TextFindReplacePanel *mFindReplaceTool; ++ ToolBox* mToolBox; ++ CmdLine* mCmdLine; ++ GoToLineTool* mGoToLineTool; ++ TextFindReplacePanel* mFindReplaceTool; + + // Status bar +- QStatusBar *mStatusBar; +- StatusBox *mLangStatus; +- StatusBox *mServerStatus; +- ClockStatusBox *mClockLabel; ++ QStatusBar* mStatusBar; ++ StatusBox* mLangStatus; ++ StatusBox* mServerStatus; ++ ClockStatusBox* mClockLabel; + + // Docks +- PostDocklet * mPostDocklet; +- DocumentsDocklet *mDocumentsDocklet; +- HelpBrowserDocklet *mHelpBrowserDocklet; ++ PostDocklet* mPostDocklet; ++ DocumentsDocklet* mDocumentsDocklet; ++ HelpBrowserDocklet* mHelpBrowserDocklet; + + QSignalMapper mCodeEvalMapper; +- DocumentsDialog * mDocDialog; ++ DocumentsDialog* mDocDialog; + + QString mLastDocumentSavePath; + +- static MainWindow *mInstance; ++ static MainWindow* mInstance; + }; + +-class ClockStatusBox : public StatusLabel +-{ ++class ClockStatusBox : public StatusLabel { + public: +- ClockStatusBox (QWidget * parent = 0); ++ ClockStatusBox(QWidget* parent = 0); + ~ClockStatusBox(); + + private: +- void timerEvent(QTimerEvent *); ++ void timerEvent(QTimerEvent*); + void updateTime(); + int mTimerId; + }; +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/style/style.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +@@ -55,75 +55,61 @@ void Style::polish ( QWidget * widget ) + if (qobject_cast(widget)) { + return; + } +- if ( (qobject_cast(widget)) +- || (qobject_cast(widget)) ) +- { ++ if ((qobject_cast(widget)) || (qobject_cast(widget))) { + widget->setAttribute(Qt::WA_Hover, true); +- } +- else ++ } else + QProxyStyle::polish(widget); +- + } + +-void Style::unpolish ( QWidget * widget ) +-{ +- QProxyStyle::unpolish(widget); +-} ++void Style::unpolish(QWidget* widget) { QProxyStyle::unpolish(widget); } + +-void Style::drawComplexControl +-( ComplexControl control, const QStyleOptionComplex * option, +- QPainter * painter, const QWidget * widget ) const +-{ ++void Style::drawComplexControl(ComplexControl control, const QStyleOptionComplex* option, QPainter* painter, ++ const QWidget* widget) const { + if (shouldNotHandle(widget)) { + QProxyStyle::drawComplexControl(control, option, painter, widget); + return; + } + +- switch(control) { ++ switch (control) { + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). +- case QStyle::CC_ScrollBar: +- { +- if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) +- { ++ case QStyle::CC_ScrollBar: { ++ if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) { + // WebKit tries to hide scrollbars, but mistakenly hides QWebView - NULL-ify styleObject to prevent. +- const QStyleOptionSlider *optSlider = static_cast(option); +- QStyleOptionSlider opt2( *optSlider ); ++ const QStyleOptionSlider* optSlider = static_cast(option); ++ QStyleOptionSlider opt2(*optSlider); + opt2.styleObject = NULL; + +- QProxyStyle::drawComplexControl( control, &opt2, painter, widget ); ++ QProxyStyle::drawComplexControl(control, &opt2, painter, widget); + return; + } + } +- case QStyle::CC_ToolButton: +- { ++ case QStyle::CC_ToolButton: { + // TODO: We only draw either text, or icon, or arrow + +- const QToolButton *toolBtn = qobject_cast(widget); ++ const QToolButton* toolBtn = qobject_cast(widget); + if (!toolBtn) + break; + + Q_ASSERT(toolBtn); + +- const QStyleOptionToolButton *toolOption = +- static_cast(option); ++ const QStyleOptionToolButton* toolOption = static_cast(option); + + painter->save(); + + QRect r = option->rect; + + if (option->state & QStyle::State_On) { +- painter->setBrush( option->palette.color(QPalette::Dark) ); +- painter->setPen( option->palette.color(QPalette::Shadow) ); +- painter->drawRect( r.adjusted(0,0,-1,-1) ); +- } +- else { ++ painter->setBrush(option->palette.color(QPalette::Dark)); ++ painter->setPen(option->palette.color(QPalette::Shadow)); ++ painter->drawRect(r.adjusted(0, 0, -1, -1)); ++ } else { + bool highlight = option->state & QStyle::State_MouseOver; + + if (highlight) { + QColor fill = option->palette.color(QPalette::Button); + painter->setBrush(fill); + painter->setPen(Qt::NoPen); +- painter->drawRect(r.adjusted(0,0,0,-1)); ++ painter->drawRect(r.adjusted(0, 0, 0, -1)); + } + + if (qobject_cast(toolBtn->parent())) { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/lookup_dialog.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp +@@ -35,9 +35,7 @@ + + namespace ScIDE { + +-GenericLookupDialog::GenericLookupDialog( QWidget * parent ): +- QDialog(parent) +-{ ++GenericLookupDialog::GenericLookupDialog(QWidget* parent): QDialog(parent) { + addAction(MainWindow::instance()->action(MainWindow::LookupDocumentationForCursor)); + + mQueryEdit = new QLineEdit(this); +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.h.rej +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/lookup_dialog.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp.rej +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp.orig +=================================================================== +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp.rej +=================================================================== diff --git a/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 b/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 new file mode 100644 index 0000000..bbfe83a --- /dev/null +++ b/patches/optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 @@ -0,0 +1,216 @@ +commit cc8201ac297ee8de90949eb0209228b0394678a0 +Author: Nathan Ho +Date: Sun Jun 2 01:42:20 2019 -0700 + + sclang: Refactor QcCallback declaration out of QcWebView + + This commit relocates QcCallback out of the QcWebView header. QcCallback is not specific to WebView. + + Also removes a dangerous "using" in header file. + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 4702367a2..0fcd01726 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -41,6 +41,7 @@ set( QT_COLLIDER_HDRS + ${QT_COLLIDER_DIR}/QObjectProxy.h + ${QT_COLLIDER_DIR}/QWidgetProxy.h + ${QT_COLLIDER_DIR}/QtDownload.h ++ ${QT_COLLIDER_DIR}/QcCallback.hpp + ${QT_COLLIDER_DIR}/widgets/BasicWidgets.h + ${QT_COLLIDER_DIR}/widgets/QcButton.h + ${QT_COLLIDER_DIR}/widgets/QcCheckBox.h +@@ -85,6 +86,7 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/QWidgetProxy.cpp + ${QT_COLLIDER_DIR}/QcObjectFactory.cpp + ${QT_COLLIDER_DIR}/QtDownload.cpp ++ ${QT_COLLIDER_DIR}/QcCallback.cpp + ${QT_COLLIDER_DIR}/hacks/hacks_x11.cpp + ${QT_COLLIDER_DIR}/primitives/primitives.cpp + ${QT_COLLIDER_DIR}/primitives/prim_QObject.cpp +diff --git a/QtCollider/QcCallback.cpp b/QtCollider/QcCallback.cpp +new file mode 100644 +index 000000000..2094a9514 +--- /dev/null ++++ b/QtCollider/QcCallback.cpp +@@ -0,0 +1,24 @@ ++/* ++ SuperCollider Language ++ Copyright (c) 2018 SuperCollider Team ++ https://supercollider.github.io/ ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++*/ ++ ++#include "QcCallback.hpp" ++#include "QcObjectFactory.h" ++ ++QC_DECLARE_QOBJECT_FACTORY(QcCallback); +diff --git a/QtCollider/QcCallback.hpp b/QtCollider/QcCallback.hpp +new file mode 100644 +index 000000000..31289f213 +--- /dev/null ++++ b/QtCollider/QcCallback.hpp +@@ -0,0 +1,64 @@ ++/* ++ SuperCollider Language ++ Copyright (c) 2018 SuperCollider Team ++ https://supercollider.github.io/ ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ++*/ ++ ++#pragma once ++ ++#include ++ ++namespace QtCollider { ++ ++class QcCallback; ++ ++class QcCallbackWeakFunctor { ++public: ++ QcCallbackWeakFunctor(QPointer cb): _cb(cb) {} ++ ++ template void operator()(RESULT r) const; ++ ++private: ++ QPointer _cb; ++}; ++ ++class QcCallback : public QObject { ++ Q_OBJECT ++ ++public: ++ QcCallback() {} ++ ++ template void call(const CallbackT& result) { Q_EMIT(onCalled(result)); } ++ ++ QcCallbackWeakFunctor asFunctor() { return QcCallbackWeakFunctor(QPointer(this)); } ++ ++Q_SIGNALS: ++ void onCalled(bool); ++ void onCalled(const QString&); ++ void onCalled(const QVariant&); ++ void onCalled(const QUrl&); ++}; ++ ++template void QcCallbackWeakFunctor::operator()(RESULT r) const { ++ if (_cb) { ++ _cb->call(r); ++ } ++} ++ ++} // namespace QtCollider ++ ++Q_DECLARE_METATYPE(QtCollider::QcCallback*); +diff --git a/QtCollider/metatype.cpp b/QtCollider/metatype.cpp +index 496494191..d867b5de0 100644 +--- a/QtCollider/metatype.cpp ++++ b/QtCollider/metatype.cpp +@@ -24,7 +24,7 @@ + #include "Common.h" // Make sure PyrObject* is declared to QMetaType + #include + +-#include "widgets/QcWebView.h" ++#include "QcCallback.hpp" + + namespace QtCollider { + +diff --git a/QtCollider/widgets/QcWebView.cpp b/QtCollider/widgets/QcWebView.cpp +index 120941129..6d4dfd1ae 100644 +--- a/QtCollider/widgets/QcWebView.cpp ++++ b/QtCollider/widgets/QcWebView.cpp +@@ -34,7 +34,6 @@ + #include + + QC_DECLARE_QWIDGET_FACTORY(WebView); +-QC_DECLARE_QOBJECT_FACTORY(QcCallback); + + namespace QtCollider { + +diff --git a/QtCollider/widgets/QcWebView.h b/QtCollider/widgets/QcWebView.h +index ef1aefad8..6ec2be836 100644 +--- a/QtCollider/widgets/QcWebView.h ++++ b/QtCollider/widgets/QcWebView.h +@@ -21,6 +21,7 @@ + + #pragma once + ++#include "../QcCallback.hpp" + #include + #include + #include +@@ -35,41 +36,6 @@ Q_DECLARE_METATYPE(QUrl) + namespace QtCollider { + + class WebPage; +-class QcCallback; +- +-class QcCallbackWeakFunctor { +-public: +- QcCallbackWeakFunctor(QPointer cb): _cb(cb) {} +- +- template void operator()(RESULT r) const; +- +-private: +- QPointer _cb; +-}; +- +-class QcCallback : public QObject { +- Q_OBJECT +- +-public: +- QcCallback() {} +- +- template void call(const CallbackT& result) { Q_EMIT(onCalled(result)); } +- +- QcCallbackWeakFunctor asFunctor() { return QcCallbackWeakFunctor(QPointer(this)); } +- +-Q_SIGNALS: +- void onCalled(bool); +- void onCalled(const QString&); +- void onCalled(const QVariant&); +- void onCalled(const QUrl&); +-}; +- +-template void QcCallbackWeakFunctor::operator()(RESULT r) const { +- if (_cb) { +- _cb->call(r); +- } +-} +- + + class WebView : public QWebEngineView { + Q_OBJECT +@@ -190,6 +156,3 @@ private: + }; + + } // namespace QtCollider +- +-using namespace QtCollider; +-Q_DECLARE_METATYPE(QcCallback*); diff --git a/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 b/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 new file mode 100644 index 0000000..05a643c --- /dev/null +++ b/patches/optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 @@ -0,0 +1,108 @@ +commit 87fedd160798e793fe155c693309479b493279b3 +Author: Nathan Ho +Date: Sun Jun 2 01:43:21 2019 -0700 + + sclang: Refactor QtCollider CMakeLists + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 0fcd01726..31447a42e 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -1,37 +1,51 @@ + set(REQUIRED_QT_VERSION 5.7) ++set(QT_WEBENGINE TRUE) + +-find_package( +- Qt5 ${REQUIRED_QT_VERSION} +- COMPONENTS ++set( QT_USE_QTWEBENGINE TRUE ) # TODO: figure out what to do with this ++ ++############################################################################### ++# Components and libraries ++ ++set( ++ QT_COMPONENTS + Core + Widgets + Network +- WebEngine +- WebEngineCore +- WebEngineWidgets + PrintSupport + OpenGL + Quick + Qml + Sql + Svg +- REQUIRED + ) + + set (QT_COLLIDER_LIBS +- Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::WebEngineCore Qt5::WebEngineWidgets Qt5::PrintSupport ++ Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::PrintSupport + Qt5::Quick Qt5::Qml Qt5::Sql Qt5::OpenGL Qt5::Svg + ${MATH_LIBRARY}) + ++if(QT_WEBENGINE) ++ list(APPEND QT_COMPONENTS WebEngine WebEngineCore WebEngineWidgets) ++ list(APPEND QT_COLLIDER_LIBS Qt5::WebEngineCore Qt5::WebEngineWidgets) ++endif() ++ ++find_package(Qt5 ${REQUIRED_QT_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED) ++ + if (APPLE) + find_package(Qt5MacExtras) + mark_as_advanced(Qt5MacExtras_DIR) + list(APPEND QT_COLLIDER_LIBS Qt5::MacExtras) + endif() + ++############################################################################### ++# Debug flags ++ + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DQC_DEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DQC_DEBUG") + ++############################################################################### ++# Source file manifest ++ + set(QT_COLLIDER_DIR ${CMAKE_SOURCE_DIR}/QtCollider) + + include_directories( ${QT_COLLIDER_DIR} ) +@@ -66,8 +80,6 @@ set( QT_COLLIDER_HDRS + ${QT_COLLIDER_DIR}/widgets/soundfileview/view.hpp + ${QT_COLLIDER_DIR}/widgets/QcFileDialog.h + ${QT_COLLIDER_DIR}/widgets/QcPenPrinter.h +- ${QT_COLLIDER_DIR}/widgets/QcWebView.h +- ${QT_COLLIDER_DIR}/widgets/web_page.hpp + ${QT_COLLIDER_DIR}/widgets/QcWindow.h + ${QT_COLLIDER_DIR}/layouts/layouts.hpp + ${QT_COLLIDER_DIR}/layouts/stack_layout.hpp +@@ -123,8 +135,6 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/soundfileview/cachestream.cpp + ${QT_COLLIDER_DIR}/widgets/QcFileDialog.cpp + ${QT_COLLIDER_DIR}/widgets/QcPenPrinter.cpp +- ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp +- ${QT_COLLIDER_DIR}/widgets/web_page.cpp + ${QT_COLLIDER_DIR}/layouts/layouts.cpp + ${QT_COLLIDER_DIR}/layouts/stack_layout.cpp + ${QT_COLLIDER_DIR}/style/ProxyStyle.cpp +@@ -136,8 +146,18 @@ if(QT_COLLIDER_LANG_CLIENT) + list(APPEND QT_COLLIDER_SRCS ${QT_COLLIDER_DIR}/LanguageClient.cpp) + endif() + ++if(QT_WEBENGINE) ++ list(APPEND QT_COLLIDER_HDRS ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.h ++ ${QT_COLLIDER_DIR}/widgets/web_page.hpp ++ ) ++ list(APPEND QT_COLLIDER_SRCS ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp ++ ${QT_COLLIDER_DIR}/widgets/web_page.cpp ++ ) ++endif() + +-set( QT_USE_QTWEBENGINE TRUE ) ++############################################################################### + + qt5_wrap_cpp( QT_COLLIDER_MOC_SRCS ${QT_COLLIDER_HDRS} ) + qt5_add_resources( QT_COLLIDER_RCC ${QT_COLLIDER_DIR}/resources.qrc ) diff --git a/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 b/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 new file mode 100644 index 0000000..694de44 --- /dev/null +++ b/patches/optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 @@ -0,0 +1,123 @@ +commit e312031105bd66e0f67cba3a199445cdd9b87939 +Author: Nathan Ho +Date: Sun Jun 2 01:43:33 2019 -0700 + + sclang: Fix build with QT_WEBENGINE off + +Index: supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/CMakeLists.txt ++++ supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +@@ -1,5 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-set(QT_WEBENGINE TRUE) ++set(QT_WEBENGINE FALSE) + + set( QT_USE_QTWEBENGINE TRUE ) # TODO: figure out what to do with this + +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/factories.cpp ++++ supercollider-3.10.0+repack/QtCollider/factories.cpp +@@ -59,7 +59,6 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcAction); + QC_ADD_FACTORY(QcWidgetAction); + QC_ADD_FACTORY(QcCallback); +- QC_ADD_FACTORY(WebView); + QC_ADD_FACTORY(QcWindow); + QC_ADD_FACTORY(QcScrollWindow); + QC_ADD_FACTORY(QcHBoxLayout); +@@ -67,6 +66,9 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcGridLayout); + QC_ADD_FACTORY(QcStackLayout); + QC_ADD_FACTORY(QtDownload); ++#ifdef QT_WEBENGINE ++ QC_ADD_FACTORY(WebView); ++#endif + #ifdef __APPLE__ + QC_ADD_FACTORY(QcQuartzComposerView); + #endif +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/interface.cpp ++++ supercollider-3.10.0+repack/QtCollider/interface.cpp +@@ -29,7 +29,10 @@ + #include + #include + #include +-#include ++ ++#ifdef QT_WEBENGINE ++# include ++#endif + + #ifdef Q_WS_X11 + # include +@@ -79,8 +82,10 @@ void QtCollider::init() { + + gSystemPalette = qcApp->palette(); + ++#ifdef QT_WEBENGINE + // Enable javascript localStorage for WebViews + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); ++#endif + + // NOTE: Qt may tamper with the C language locale, affecting POSIX number-string conversions. + // Revert the locale to default: +Index: supercollider-3.10.0+repack/QtCollider/primitives/prim_misc.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/primitives/prim_misc.cpp ++++ supercollider-3.10.0+repack/QtCollider/primitives/prim_misc.cpp +@@ -25,8 +25,8 @@ + #include "../type_codec.hpp" + #include "../QcApplication.h" + #include "../QObjectProxy.h" +-#include "../widgets/QcWebView.h" + #include "../style/style.hpp" ++#include "../QcCallback.hpp" + #include "QtCollider.h" + + #ifdef Q_OS_MAC +@@ -41,7 +41,6 @@ + #include + #include + #include +-#include + #include + + namespace QtCollider { +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/style/ProxyStyle.cpp ++++ supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +@@ -3,10 +3,13 @@ + #include "../QcApplication.h" + + #include +-#include + #include + #include + ++#ifdef QT_WEBENGINE ++# include ++#endif ++ + #ifdef Q_OS_MAC + # include "../hacks/hacks_mac.hpp" + #endif +@@ -30,6 +33,7 @@ static bool AlwaysShowScrollbars() { + + void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, + const QWidget* w) const { ++#ifdef QT_WEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 + && opt->type == QStyleOption::SO_Slider) { +@@ -41,6 +45,7 @@ void ProxyStyle::drawComplexControl(Comp + QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); + return; + } ++#endif // QT_WEBENGINE + + if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { + const QStyleOptionSlider* optSlider = static_cast(opt); diff --git a/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd b/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd new file mode 100644 index 0000000..7d0c314 --- /dev/null +++ b/patches/optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd @@ -0,0 +1,34 @@ +commit 2005e6f18906b092686f8ed0f48b54c67acf01fd +Author: Nathan Ho +Date: Sun Jun 2 01:43:36 2019 -0700 + + sclang: Connect CMake to QT_WEBENGINE macro + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 1e4f78eab..398fad80a 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -1,7 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-set(QT_WEBENGINE FALSE) +- +-set( QT_USE_QTWEBENGINE TRUE ) # TODO: figure out what to do with this ++option(QT_WEBENGINE "Build with Qt WebEngine." ON) + + ############################################################################### + # Components and libraries +diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt +index c68b32fdc..313a74277 100644 +--- a/lang/CMakeLists.txt ++++ b/lang/CMakeLists.txt +@@ -182,6 +182,10 @@ if(SC_QT OR SC_IDE) + message(STATUS "Found Qt: " ${QtCore_location} ) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + ++ if(QT_WEBENGINE) ++ message(STATUS "Building with QtWebEngine") ++ target_compile_definitions(libsclang PUBLIC QT_WEBENGINE) ++ endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) + endif() + diff --git a/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a b/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a new file mode 100644 index 0000000..0842d2a --- /dev/null +++ b/patches/optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a @@ -0,0 +1,34 @@ +commit 98482ee0ebae1021655d9a6beb8c6b8a5f62605a +Author: Nathan Ho +Date: Sun Jun 2 01:43:38 2019 -0700 + + help: Expand docs for WebView/HelpBrowser + +diff --git a/HelpSource/Classes/HelpBrowser.schelp b/HelpSource/Classes/HelpBrowser.schelp +index 768a8158c..c507afea0 100644 +--- a/HelpSource/Classes/HelpBrowser.schelp ++++ b/HelpSource/Classes/HelpBrowser.schelp +@@ -7,6 +7,10 @@ description:: + + HelpBrowser is the GUI help browser that lets you browse the documentation of SuperCollider. It is coupled with SCDoc to allow on-the-fly rendering of HTML help files. + ++Note that this is not the same as the help browser built into the IDE. ++ ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++ + classmethods:: + private:: getOldWrapUrl, initClass + +diff --git a/HelpSource/Classes/WebView.schelp b/HelpSource/Classes/WebView.schelp +index 747155532..d22bafb04 100644 +--- a/HelpSource/Classes/WebView.schelp ++++ b/HelpSource/Classes/WebView.schelp +@@ -6,6 +6,8 @@ DESCRIPTION:: + + WebView displays web pages and provides all the standard browsing functionality. + ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++ + CLASSMETHODS:: + + PRIVATE:: key diff --git a/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 b/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 new file mode 100644 index 0000000..2dfeaf1 --- /dev/null +++ b/patches/optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 @@ -0,0 +1,143 @@ +commit fa2783c88d8dbbe124396d5e57523e5abcd689e2 +Author: Nathan Ho +Date: Sun Jun 2 01:43:39 2019 -0700 + + sclang: Rename QT_WEBENGINE to SC_USE_WEBENGINE + +diff --git a/HelpSource/Classes/HelpBrowser.schelp b/HelpSource/Classes/HelpBrowser.schelp +index c507afea0..20e94abbb 100644 +--- a/HelpSource/Classes/HelpBrowser.schelp ++++ b/HelpSource/Classes/HelpBrowser.schelp +@@ -9,7 +9,7 @@ HelpBrowser is the GUI help browser that lets you browse the documentation of Su + + Note that this is not the same as the help browser built into the IDE. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + classmethods:: + private:: getOldWrapUrl, initClass +diff --git a/HelpSource/Classes/WebView.schelp b/HelpSource/Classes/WebView.schelp +index d22bafb04..74cf94344 100644 +--- a/HelpSource/Classes/WebView.schelp ++++ b/HelpSource/Classes/WebView.schelp +@@ -6,7 +6,7 @@ DESCRIPTION:: + + WebView displays web pages and provides all the standard browsing functionality. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DQT_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + CLASSMETHODS:: + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index 398fad80a..e4ca98780 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -1,5 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-option(QT_WEBENGINE "Build with Qt WebEngine." ON) ++option(SC_USE_WEBENGINE "Build with Qt WebEngine." ON) + + ############################################################################### + # Components and libraries +@@ -22,7 +22,7 @@ set (QT_COLLIDER_LIBS + Qt5::Quick Qt5::Qml Qt5::Sql Qt5::OpenGL Qt5::Svg + ${MATH_LIBRARY}) + +-if(QT_WEBENGINE) ++if(SC_USE_WEBENGINE) + list(APPEND QT_COMPONENTS WebEngine WebEngineCore WebEngineWidgets) + list(APPEND QT_COLLIDER_LIBS Qt5::WebEngineCore Qt5::WebEngineWidgets) + endif() +@@ -144,7 +144,7 @@ if(QT_COLLIDER_LANG_CLIENT) + list(APPEND QT_COLLIDER_SRCS ${QT_COLLIDER_DIR}/LanguageClient.cpp) + endif() + +-if(QT_WEBENGINE) ++if(SC_USE_WEBENGINE) + list(APPEND QT_COLLIDER_HDRS + ${QT_COLLIDER_DIR}/widgets/QcWebView.h + ${QT_COLLIDER_DIR}/widgets/web_page.hpp +diff --git a/QtCollider/factories.cpp b/QtCollider/factories.cpp +index a5a667ac3..c3d04b6f3 100644 +--- a/QtCollider/factories.cpp ++++ b/QtCollider/factories.cpp +@@ -66,7 +66,7 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcGridLayout); + QC_ADD_FACTORY(QcStackLayout); + QC_ADD_FACTORY(QtDownload); +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + QC_ADD_FACTORY(WebView); + #endif + #ifdef __APPLE__ +diff --git a/QtCollider/interface.cpp b/QtCollider/interface.cpp +index cdc788649..09951ef27 100644 +--- a/QtCollider/interface.cpp ++++ b/QtCollider/interface.cpp +@@ -30,7 +30,7 @@ + #include + #include + +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + # include + #endif + +@@ -82,7 +82,7 @@ void QtCollider::init() { + + gSystemPalette = qcApp->palette(); + +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + // Enable javascript localStorage for WebViews + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + #endif +diff --git a/QtCollider/style/ProxyStyle.cpp b/QtCollider/style/ProxyStyle.cpp +index a1d68830f..38a0b77a7 100644 +--- a/QtCollider/style/ProxyStyle.cpp ++++ b/QtCollider/style/ProxyStyle.cpp +@@ -6,7 +6,7 @@ + #include + #include + +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + # include + #endif + +@@ -33,7 +33,7 @@ static bool AlwaysShowScrollbars() { + + void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, + const QWidget* w) const { +-#ifdef QT_WEBENGINE ++#ifdef SC_USE_WEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 + && opt->type == QStyleOption::SO_Slider) { +@@ -45,7 +45,7 @@ void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionCompl + QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); + return; + } +-#endif // QT_WEBENGINE ++#endif // SC_USE_WEBENGINE + + if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { + const QStyleOptionSlider* optSlider = static_cast(opt); +diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt +index 313a74277..05cd992bc 100644 +--- a/lang/CMakeLists.txt ++++ b/lang/CMakeLists.txt +@@ -182,9 +182,9 @@ if(SC_QT OR SC_IDE) + message(STATUS "Found Qt: " ${QtCore_location} ) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + +- if(QT_WEBENGINE) ++ if(SC_USE_WEBENGINE) + message(STATUS "Building with QtWebEngine") +- target_compile_definitions(libsclang PUBLIC QT_WEBENGINE) ++ target_compile_definitions(libsclang PUBLIC SC_USE_WEBENGINE) + endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) + endif() diff --git a/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 b/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 new file mode 100644 index 0000000..91e8e0c --- /dev/null +++ b/patches/optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 @@ -0,0 +1,36 @@ +commit 2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 +Author: Nathan Ho +Date: Sun Jun 2 01:43:41 2019 -0700 + + sclang: Make sure WebView headers appear in QT_COLLIDER_SRCS unconditionally + +diff --git a/QtCollider/CMakeLists.txt b/QtCollider/CMakeLists.txt +index e4ca98780..f409979fe 100644 +--- a/QtCollider/CMakeLists.txt ++++ b/QtCollider/CMakeLists.txt +@@ -144,11 +144,13 @@ if(QT_COLLIDER_LANG_CLIENT) + list(APPEND QT_COLLIDER_SRCS ${QT_COLLIDER_DIR}/LanguageClient.cpp) + endif() + ++set(QT_COLLIDER_WEBENGINE_HDRS ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.h ++ ${QT_COLLIDER_DIR}/widgets/web_page.hpp ++) ++ + if(SC_USE_WEBENGINE) +- list(APPEND QT_COLLIDER_HDRS +- ${QT_COLLIDER_DIR}/widgets/QcWebView.h +- ${QT_COLLIDER_DIR}/widgets/web_page.hpp +- ) ++ list(APPEND QT_COLLIDER_HDRS ${QT_COLLIDER_WEBENGINE_HDRS}) + list(APPEND QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp + ${QT_COLLIDER_DIR}/widgets/web_page.cpp +@@ -179,6 +181,7 @@ list( APPEND QT_COLLIDER_SRCS + ${QT_COLLIDER_OBJCPP_SRCS} + ${QT_COLLIDER_MOC_SRCS} + ${QT_COLLIDER_RCC} ++ ${QT_COLLIDER_WEBENGINE_HDRS} + ) + + add_definitions(-DSC_QT -DQT_COLLIDER_EXPORTING -DQT_NO_KEYWORDS) diff --git a/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a b/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a new file mode 100644 index 0000000..9383500 --- /dev/null +++ b/patches/optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a @@ -0,0 +1,136 @@ +commit 48ae2945e02218c0793977f4e90cefc4cd2ac75a +Author: Nathan Ho +Date: Sun Jun 2 01:43:42 2019 -0700 + + cmake: include all C++ files in target even if no objects + +Index: supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/CMakeLists.txt ++++ supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +@@ -125,6 +125,7 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/QcScope.cpp + ${QT_COLLIDER_DIR}/widgets/QcScopeShm.cpp + ${QT_COLLIDER_DIR}/widgets/QcLevelIndicator.cpp ++ ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp + ${QT_COLLIDER_DIR}/widgets/QcWindow.cpp + ${QT_COLLIDER_DIR}/widgets/QcGraph.cpp + ${QT_COLLIDER_DIR}/widgets/QcCanvas.cpp +@@ -133,6 +134,7 @@ set( QT_COLLIDER_SRCS + ${QT_COLLIDER_DIR}/widgets/soundfileview/cachestream.cpp + ${QT_COLLIDER_DIR}/widgets/QcFileDialog.cpp + ${QT_COLLIDER_DIR}/widgets/QcPenPrinter.cpp ++ ${QT_COLLIDER_DIR}/widgets/web_page.cpp + ${QT_COLLIDER_DIR}/layouts/layouts.cpp + ${QT_COLLIDER_DIR}/layouts/stack_layout.cpp + ${QT_COLLIDER_DIR}/style/ProxyStyle.cpp +@@ -151,10 +153,6 @@ set(QT_COLLIDER_WEBENGINE_HDRS + + if(SC_USE_WEBENGINE) + list(APPEND QT_COLLIDER_HDRS ${QT_COLLIDER_WEBENGINE_HDRS}) +- list(APPEND QT_COLLIDER_SRCS +- ${QT_COLLIDER_DIR}/widgets/QcWebView.cpp +- ${QT_COLLIDER_DIR}/widgets/web_page.cpp +- ) + endif() + + ############################################################################### +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/QcWebView.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +@@ -19,19 +19,21 @@ + * + ************************************************************************/ + +-#include "QcWebView.h" +-#include "../widgets/web_page.hpp" +-#include "../QcWidgetFactory.h" +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#ifdef SC_USE_WEBENGINE ++ ++# include "QcWebView.h" ++# include "../widgets/web_page.hpp" ++# include "../QcWidgetFactory.h" ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include + + QC_DECLARE_QWIDGET_FACTORY(WebView); + +@@ -321,3 +323,5 @@ void WebView::onLinkClicked(const QUrl & + } + + } // namespace QtCollider ++ ++#endif // SC_USE_WEBENGINE +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/web_page.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +@@ -19,10 +19,12 @@ + * + ************************************************************************/ + +-#include "web_page.hpp" ++#ifdef SC_USE_WEBENGINE + +-#include +-#include ++# include "web_page.hpp" ++ ++# include ++# include + + namespace QtCollider { + +@@ -60,3 +62,5 @@ bool WebPage::acceptNavigationRequest(co + } + + } // namespace QtCollider ++ ++#endif // SC_USE_WEBENGINE +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -337,6 +337,10 @@ if(LTO) + APPEND PROPERTY LINK_FLAGS "-flto -flto-report -fwhole-program") + endif() + ++if(SC_USE_WEBENGINE) ++ message(STATUS "IDE: Building with QtWebEngine") ++ target_compile_definitions(SuperCollider PUBLIC SC_USE_WEBENGINE) ++endif() + + # Installation + +Index: supercollider-3.10.0+repack/lang/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/lang/CMakeLists.txt ++++ supercollider-3.10.0+repack/lang/CMakeLists.txt +@@ -183,7 +183,7 @@ if(SC_QT OR SC_IDE) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + + if(SC_USE_WEBENGINE) +- message(STATUS "Building with QtWebEngine") ++ message(STATUS "sclang: Building with QtWebEngine") + target_compile_definitions(libsclang PUBLIC SC_USE_WEBENGINE) + endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) diff --git a/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 b/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 new file mode 100644 index 0000000..84a95ce --- /dev/null +++ b/patches/optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 @@ -0,0 +1,151 @@ +commit a34b19c2ca1fa5641a25b5b962a19e0fa5223452 +Author: Nathan Ho +Date: Sun Jun 2 01:43:43 2019 -0700 + + scide: Don't compile help browser code if SC_USE_WEBENGINE is off + +diff --git a/editors/sc-ide/CMakeLists.txt b/editors/sc-ide/CMakeLists.txt +index 25c39a9f2..77d84e79e 100644 +--- a/editors/sc-ide/CMakeLists.txt ++++ b/editors/sc-ide/CMakeLists.txt +@@ -66,8 +66,6 @@ if(APPLE) + set(AdditionalBundleSources ${ClassLibrary} ${HelpSource} ${BundleResources} ${Examples} ${Sounds} ${Icons}) + endif() + +- +- + set ( ide_moc_hdr + core/main.hpp + core/sig_mux.hpp +@@ -115,8 +113,6 @@ set ( ide_moc_hdr + widgets/util/WebSocketTransport.hpp + widgets/util/WebSocketClientWrapper.hpp + widgets/util/IDEWebChannelWrapper.hpp +- +- ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.hpp + ) + + file (GLOB_RECURSE all_hdr *hpp) +@@ -148,7 +144,6 @@ set ( ide_src + widgets/multi_editor.cpp + widgets/post_window.cpp + widgets/session_switch_dialog.cpp +- widgets/help_browser.cpp + widgets/audio_status_box.cpp + widgets/lang_status_box.cpp + widgets/code_editor/editor.cpp +@@ -172,8 +167,6 @@ set ( ide_src + widgets/util/WebSocketTransport.cpp + widgets/style/style.cpp + +- ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp +- + ${CMAKE_SOURCE_DIR}/common/SC_TextUtils.cpp + ${CMAKE_SOURCE_DIR}/common/SC_Filesystem_macos.cpp + ${CMAKE_SOURCE_DIR}/common/SC_Filesystem_win.cpp +@@ -188,6 +181,20 @@ set ( ide_src + ${CMAKE_SOURCE_DIR}/SCDoc/lex.scdoc.cpp + ) + ++set(ide_webengine_moc_hdrs ++ widgets/help_browser.hpp ++ ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.hpp ++) ++set(ide_webengine_src ++ widgets/help_browser.cpp ++ ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp ++) ++ ++if(SC_USE_WEBENGINE) ++ list(APPEND ide_moc_hdr ${ide_webengine_moc_hdrs}) ++ list(APPEND ide_src ${ide_webengine_src}) ++endif() ++ + set( ide_forms + forms/settings_dialog.ui + forms/settings_general.ui +diff --git a/editors/sc-ide/widgets/help_browser.cpp b/editors/sc-ide/widgets/help_browser.cpp +index 089c0deed..5a9dd44f0 100644 +--- a/editors/sc-ide/widgets/help_browser.cpp ++++ b/editors/sc-ide/widgets/help_browser.cpp +@@ -18,32 +18,34 @@ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-#define QT_NO_DEBUG_OUTPUT +- +-#include "help_browser.hpp" +-#include "main_window.hpp" +-#include "../core/sc_process.hpp" +-#include "../core/main.hpp" +-#include "../core/util/overriding_action.hpp" +-#include "QtCollider/widgets/web_page.hpp" +-#include "QtCollider/hacks/hacks_qt.hpp" +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#ifdef Q_OS_MAC +-# include // QStyleFactory::create, see below +-#endif ++#ifdef SC_USE_WEBENGINE ++ ++# define QT_NO_DEBUG_OUTPUT ++ ++# include "help_browser.hpp" ++# include "main_window.hpp" ++# include "../core/sc_process.hpp" ++# include "../core/main.hpp" ++# include "../core/util/overriding_action.hpp" ++# include "QtCollider/widgets/web_page.hpp" ++# include "QtCollider/hacks/hacks_qt.hpp" ++ ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++# include ++ ++# ifdef Q_OS_MAC ++# include // QStyleFactory::create, see below ++# endif + + namespace ScIDE { + +@@ -70,11 +72,11 @@ HelpBrowser::HelpBrowser(QWidget* parent): QWidget(parent) { + // get in the way of rendering web pages + mWebView->setPalette(style()->standardPalette()); + +-#ifdef Q_OS_MAC ++# ifdef Q_OS_MAC + // On macOS, checkboxes unwantedly appear in the top left-hand corner. + // See QTBUG-43366, 43070, and 42948. The workaround is to set style to fusion. + mWebView->setStyle(QStyleFactory::create("Fusion")); +-#endif ++# endif + + mWebView->installEventFilter(this); + +@@ -475,3 +477,5 @@ HelpBrowserDocklet::HelpBrowserDocklet(QWidget* parent): Docklet(tr("Help browse + } + + } // namespace ScIDE ++ ++#endif // SC_USE_WEBENGINE diff --git a/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 b/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 new file mode 100644 index 0000000..9ef96a9 --- /dev/null +++ b/patches/optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 @@ -0,0 +1,289 @@ +commit b2c5f95b842aa0d602723a95983841615b0e4bc1 +Author: Nathan Ho +Date: Sun Jun 2 01:43:44 2019 -0700 + + scide: Fix build with SC_USE_WEBENGINE + +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -88,7 +88,6 @@ set ( ide_moc_hdr + widgets/session_switch_dialog.hpp + widgets/sessions_dialog.hpp + widgets/tool_box.hpp +- widgets/help_browser.hpp + widgets/audio_status_box.hpp + widgets/lang_status_box.hpp + widgets/code_editor/editor.hpp +@@ -110,9 +109,6 @@ set ( ide_moc_hdr + widgets/util/color_widget.hpp + widgets/util/docklet.hpp + widgets/util/volume_widget.hpp +- widgets/util/WebSocketTransport.hpp +- widgets/util/WebSocketClientWrapper.hpp +- widgets/util/IDEWebChannelWrapper.hpp + ) + + file (GLOB_RECURSE all_hdr *hpp) +@@ -164,7 +160,6 @@ set ( ide_src + widgets/util/docklet.cpp + widgets/util/volume_widget.cpp + widgets/util/status_box.cpp +- widgets/util/WebSocketTransport.cpp + widgets/style/style.cpp + + ${CMAKE_SOURCE_DIR}/common/SC_TextUtils.cpp +@@ -183,10 +178,14 @@ set ( ide_src + + set(ide_webengine_moc_hdrs + widgets/help_browser.hpp ++ widgets/util/WebSocketTransport.hpp ++ widgets/util/WebSocketClientWrapper.hpp ++ widgets/util/IDEWebChannelWrapper.hpp + ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.hpp + ) + set(ide_webengine_src + widgets/help_browser.cpp ++ widgets/util/WebSocketTransport.cpp + ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp + ) + +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -131,6 +131,7 @@ int main(int argc, char* argv[]) { + if (startInterpreter) + main->scProcess()->startLanguage(); + ++#ifdef SC_USE_WEBENGINE + // setup HelpBrowser server + QWebSocketServer server("SCIDE HelpBrowser Server", QWebSocketServer::NonSecureMode); + if (!server.listen(QHostAddress::LocalHost, 12344)) { +@@ -146,6 +147,7 @@ int main(int argc, char* argv[]) { + // publish IDE interface + IDEWebChannelWrapper ideWrapper { win->helpBrowserDocklet()->browser() }; + channel.registerObject("IDE", &ideWrapper); ++#endif // SC_USE_WEBENGINE + + return app.exec(); + } +@@ -294,6 +296,7 @@ bool Main::nativeEventFilter(const QByte + } + + bool Main::openDocumentation(const QString& string) { ++#ifdef SC_USE_WEBENGINE + QString symbol = string.trimmed(); + if (symbol.isEmpty()) + return false; +@@ -302,13 +305,20 @@ bool Main::openDocumentation(const QStri + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + return true; ++#else // SC_USE_WEBENGINE ++ return false; ++#endif // SC_USE_WEBENGINE + } + + bool Main::openDocumentationForMethod(const QString& className, const QString& methodName) { ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpForMethod(className, methodName); + helpDock->focus(); + return true; ++#else // SC_USE_WEBENGINE ++ return false; ++#endif // SC_USE_WEBENGINE + } + + void Main::openDefinition(const QString& string, QWidget* parent) { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -1213,9 +1213,11 @@ void AutoCompleter::parseClassNode(DocNo + } + + void AutoCompleter::gotoHelp(QString symbol) { ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); ++#endif // SC_USE_WEBENGINE + } + + } // namespace ScIDE +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/sc_editor.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +@@ -1317,11 +1317,13 @@ void ScCodeEditor::evaluateLine() + { + QString text; + ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(false); + return; // early return + } ++#endif // SC_USE_WEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +@@ -1356,11 +1358,13 @@ void ScCodeEditor::evaluateRegion() + { + QString text; + ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(true); + return; // early return + } ++#endif // SC_USE_WEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -134,10 +134,12 @@ MainWindow::MainWindow(Main* main): mMai + addDockWidget(Qt::LeftDockWidgetArea, mDocumentsDocklet->dockWidget()); + mDocumentsDocklet->hide(); + ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet = new HelpBrowserDocklet(this); + mHelpBrowserDocklet->setObjectName("help-dock"); + addDockWidget(Qt::RightDockWidgetArea, mHelpBrowserDocklet->dockWidget()); + // mHelpBrowserDockable->hide(); ++#endif // SC_USE_WEBENGINE + + mPostDocklet = new PostDocklet(this); + mPostDocklet->setObjectName("post-dock"); +@@ -455,10 +457,12 @@ void MainWindow::createActions() { + action->setStatusTip(tr("Show/hide Documents docklet")); + settings->addAction(mDocumentsDocklet->toggleViewAction(), "ide-docklet-documents", ideCategory); + ++#ifdef SC_USE_WEBENGINE + action = mHelpBrowserDocklet->toggleViewAction(); + action->setIcon(QIcon::fromTheme("system-help")); + action->setStatusTip(tr("Show/hide Help browser docklet")); + settings->addAction(mHelpBrowserDocklet->toggleViewAction(), "ide-docklet-help", ideCategory); ++#endif // SC_USE_WEBENGINE + + // In Mac OS, all menu item shortcuts need a modifier, so add the action with + // the "Escape" default shortcut to the main window widget. +@@ -475,12 +479,14 @@ void MainWindow::createActions() { + mPostDocklet->widget()->addAction(mActions[LookupReferences]); + mPostDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); + ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferences]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); ++#endif // SC_USE_WEBENGINE + } + + void MainWindow::createMenus() { +@@ -558,7 +564,9 @@ void MainWindow::createMenus() { + submenu = new QMenu(tr("&Docklets"), this); + submenu->addAction(mPostDocklet->toggleViewAction()); + submenu->addAction(mDocumentsDocklet->toggleViewAction()); ++#ifdef SC_USE_WEBENGINE + submenu->addAction(mHelpBrowserDocklet->toggleViewAction()); ++#endif // SC_USE_WEBENGINE + menu->addMenu(submenu); + menu->addSeparator(); + submenu = menu->addMenu(tr("&Tool Panels")); +@@ -635,10 +643,12 @@ void MainWindow::createMenus() { + menu = new QMenu(tr("&Help"), this); + menu->addAction(mActions[HelpAboutIDE]); + menu->addAction(mActions[ReportABug]); ++#ifdef SC_USE_WEBENGINE + menu->addSeparator(); + menu->addAction(mActions[Help]); + menu->addAction(mActions[LookupDocumentationForCursor]); + menu->addAction(mActions[LookupDocumentation]); ++#endif // SC_USE_WEBENGINE + menu->addSeparator(); + menu->addAction(mActions[ShowAbout]); + menu->addAction(mActions[ShowAboutQT]); +@@ -654,7 +664,9 @@ template void MainWindow::save + QVariantMap detachedData; + saveDetachedState(mPostDocklet, detachedData); + saveDetachedState(mDocumentsDocklet, detachedData); ++#ifdef SC_USE_WEBENGINE + saveDetachedState(mHelpBrowserDocklet, detachedData); ++#endif // SC_USE_WEBENGINE + + settings->beginGroup("mainWindow"); + settings->setValue("geometry", this->saveGeometry().toBase64()); +@@ -697,7 +709,9 @@ template void MainWindow::rest + + restoreDetachedState(mPostDocklet, detachedData); + restoreDetachedState(mDocumentsDocklet, detachedData); ++#ifdef SC_USE_WEBENGINE + restoreDetachedState(mHelpBrowserDocklet, detachedData); ++#endif // SC_USE_WEBENGINE + + qDebug("restoring state"); + +@@ -1287,7 +1301,9 @@ void MainWindow::applySettings(Settings: + applyCursorBlinkingSettings(settings); + + mPostDocklet->mPostWindow->applySettings(settings); ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet->browser()->applySettings(settings); ++#endif // SC_USE_WEBENGINE + mCmdLine->applySettings(settings); + } + +@@ -1446,14 +1462,18 @@ void MainWindow::lookupDocumentationForC + } + + void MainWindow::openHelp() { ++#ifdef SC_USE_WEBENGINE + if (mHelpBrowserDocklet->browser()->url().isEmpty()) + mHelpBrowserDocklet->browser()->goHome(); + mHelpBrowserDocklet->focus(); ++#endif // SC_USE_WEBENGINE + } + + void MainWindow::openHelpAboutIDE() { ++#ifdef SC_USE_WEBENGINE + mHelpBrowserDocklet->browser()->gotoHelpFor("Guides/SCIde"); + mHelpBrowserDocklet->focus(); ++#endif // SC_USE_WEBENGINE + } + + void MainWindow::doBugReport() { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.hpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +@@ -120,7 +120,9 @@ public: + void focusCodeEditor(); + bool promptSaveDocs(); + ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* helpBrowserDocklet() { return mHelpBrowserDocklet; } ++#endif + PostDocklet* postDocklet() { return mPostDocklet; } + + static MainWindow* instance() { return mInstance; } +@@ -237,7 +239,9 @@ private: + // Docks + PostDocklet* mPostDocklet; + DocumentsDocklet* mDocumentsDocklet; ++#ifdef SC_USE_WEBENGINE + HelpBrowserDocklet* mHelpBrowserDocklet; ++#endif + + QSignalMapper mCodeEvalMapper; + DocumentsDialog* mDocDialog; diff --git a/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 b/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 new file mode 100644 index 0000000..5b2d560 --- /dev/null +++ b/patches/optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 @@ -0,0 +1,239 @@ +commit 6c83b58ee7a5c621bb71c481fadccf103f63b9c0 +Author: Nathan Ho +Date: Sun Jun 2 01:43:47 2019 -0700 + + scide: Remove some Qt components if SC_USE_WEBENGINE is off + +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -2,9 +2,7 @@ + SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +-find_package( +- Qt5 ${REQUIRED_QT_VERSION} +- COMPONENTS ++set(QT_IDE_COMPONENTS + Concurrent + Core + LinguistTools +@@ -13,12 +11,7 @@ find_package( + Qml + Quick + Sql +- WebChannel +- WebEngine +- WebEngineWidgets +- WebSockets + Widgets +- REQUIRED + ) + + set(QT_IDE_LIBRARIES +@@ -29,9 +22,27 @@ set(QT_IDE_LIBRARIES + Qt5::Qml + Qt5::Quick + Qt5::Sql +- Qt5::WebChannel +- Qt5::WebEngineWidgets +- Qt5::WebSockets ++) ++ ++if(SC_USE_WEBENGINE) ++ list(APPEND QT_IDE_COMPONENTS ++ WebChannel ++ WebEngine ++ WebEngineWidgets ++ WebSockets ++ ) ++ list(APPEND QT_IDE_LIBRARIES ++ Qt5::WebChannel ++ Qt5::WebEngineWidgets ++ Qt5::WebSockets ++ ) ++endif() ++ ++find_package( ++ Qt5 ${REQUIRED_QT_VERSION} ++ COMPONENTS ++ ${QT_IDE_COMPONENTS} ++ REQUIRED + ) + + if(${CMAKE_COMPILER_IS_GNUCXX}) +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -23,13 +23,9 @@ + #include "session_manager.hpp" + #include "util/standard_dirs.hpp" + #include "../widgets/main_window.hpp" +-#include "../widgets/help_browser.hpp" + #include "../widgets/lookup_dialog.hpp" + #include "../widgets/code_editor/highlighter.hpp" + #include "../widgets/style/style.hpp" +-#include "../widgets/util/WebSocketClientWrapper.hpp" +-#include "../widgets/util/WebSocketTransport.hpp" +-#include "../widgets/util/IDEWebChannelWrapper.hpp" + #include "../../../QtCollider/hacks/hacks_mac.hpp" + #include "../primitives/localsocket_utils.hpp" + +@@ -45,9 +41,15 @@ + #include + #include + #include +-#include + #include + ++#ifdef SC_USE_WEBENGINE ++# include ++# include "../widgets/util/WebSocketClientWrapper.hpp" ++# include "../widgets/util/WebSocketTransport.hpp" ++# include "../widgets/util/IDEWebChannelWrapper.hpp" ++#endif // SC_USE_WEBENGINE ++ + using namespace ScIDE; + + int main( int argc, char *argv[] ) +Index: supercollider-3.10.0+repack/editors/sc-ide/core/sc_process.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/sc_process.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/sc_process.cpp +@@ -35,8 +35,6 @@ + #include "util/standard_dirs.hpp" + #include "../primitives/localsocket_utils.hpp" + +-#include "../widgets/help_browser.hpp" +- + #include + #include + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -28,7 +28,10 @@ + #include "../../core/main.hpp" + #include "../../core/util/standard_dirs.hpp" + #include "../main_window.hpp" +-#include "../help_browser.hpp" ++ ++#ifdef SC_USE_WEBENGINE ++# include "../help_browser.hpp" ++#endif // SC_USE_WEBENGINE + + #include + #include +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/sc_editor.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +@@ -22,20 +22,22 @@ + #include "autocompleter.hpp" + #include "line_indicator.hpp" + #include "main_window.hpp" +-#include "help_browser.hpp" + #include "../util/gui_utilities.hpp" + #include "../../core/main.hpp" + #include "../../core/doc_manager.hpp" + #include "../../core/settings/manager.hpp" + #include "../../core/settings/theme.hpp" + ++#ifdef SC_USE_WEBENGINE ++# include "help_browser.hpp" ++#endif // SC_USE_WEBENGINE ++ + #include "QtCollider/hacks/hacks_qt.hpp" + + #include + #include + #include + #include +-#include + + namespace ScIDE { + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -30,7 +30,6 @@ + #include "multi_editor.hpp" + #include "popup_text_input.hpp" + #include "post_window.hpp" +-#include "help_browser.hpp" + #include "session_switch_dialog.hpp" + #include "sessions_dialog.hpp" + #include "tool_box.hpp" +@@ -44,6 +43,10 @@ + #include "code_editor/sc_editor.hpp" + #include "settings/dialog.hpp" + ++#ifdef SC_USE_WEBENGINE ++# include "help_browser.hpp" ++#endif // SC_USE_WEBENGINE ++ + #include "QtCollider/hacks/hacks_qt.hpp" + + #include "SC_Version.hpp" +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/style/style.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +@@ -32,7 +32,10 @@ + #include + #include + #include +-#include ++ ++#ifdef SC_USE_WEBENGINE ++# include ++#endif // SC_USE_WEBENGINE + + namespace ScIDE { + +@@ -71,6 +74,7 @@ void Style::drawComplexControl(ComplexCo + } + + switch (control) { ++#ifdef SC_USE_WEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + case QStyle::CC_ScrollBar: { + if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) { +@@ -83,6 +87,7 @@ void Style::drawComplexControl(ComplexCo + return; + } + } ++#endif // SC_USE_WEBENGINE + case QStyle::CC_ToolButton: { + // TODO: We only draw either text, or icon, or arrow + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/util/WebSocketTransport.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +@@ -48,10 +48,12 @@ + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#include "WebSocketTransport.hpp" ++#ifdef SC_USE_WEBENGINE + +-#include +-#include ++# include "WebSocketTransport.hpp" ++ ++# include ++# include + + namespace ScIDE { + +@@ -85,3 +87,5 @@ void WebSocketTransport::textMessageRece + } + + } // namespace ScIDE ++ ++#endif // SC_USE_WEBENGINE diff --git a/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 b/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 new file mode 100644 index 0000000..18250ff --- /dev/null +++ b/patches/optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 @@ -0,0 +1,608 @@ +commit 7c3305d45cba46096c01ea9f7e8232436c1d3271 +Author: Nathan Ho +Date: Sat Jun 8 15:19:17 2019 -0700 + + Change SC_USE_WEBENGINE to SC_USE_QTWEBENGINE + +Index: supercollider-3.10.0+repack/HelpSource/Classes/HelpBrowser.schelp +=================================================================== +--- supercollider-3.10.0+repack.orig/HelpSource/Classes/HelpBrowser.schelp ++++ supercollider-3.10.0+repack/HelpSource/Classes/HelpBrowser.schelp +@@ -9,7 +9,7 @@ HelpBrowser is the GUI help browser that + + Note that this is not the same as the help browser built into the IDE. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_QTWEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + classmethods:: + private:: getOldWrapUrl, initClass +Index: supercollider-3.10.0+repack/HelpSource/Classes/WebView.schelp +=================================================================== +--- supercollider-3.10.0+repack.orig/HelpSource/Classes/WebView.schelp ++++ supercollider-3.10.0+repack/HelpSource/Classes/WebView.schelp +@@ -6,7 +6,7 @@ DESCRIPTION:: + + WebView displays web pages and provides all the standard browsing functionality. + +-Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_WEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. ++Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_QTWEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + + CLASSMETHODS:: + +Index: supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/CMakeLists.txt ++++ supercollider-3.10.0+repack/QtCollider/CMakeLists.txt +@@ -1,5 +1,5 @@ + set(REQUIRED_QT_VERSION 5.7) +-option(SC_USE_WEBENGINE "Build with Qt WebEngine." ON) ++option(SC_USE_QTWEBENGINE "Build with Qt WebEngine." ON) + + ############################################################################### + # Components and libraries +@@ -22,7 +22,7 @@ set (QT_COLLIDER_LIBS + Qt5::Quick Qt5::Qml Qt5::Sql Qt5::OpenGL Qt5::Svg + ${MATH_LIBRARY}) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND QT_COMPONENTS WebEngine WebEngineCore WebEngineWidgets) + list(APPEND QT_COLLIDER_LIBS Qt5::WebEngineCore Qt5::WebEngineWidgets) + endif() +@@ -151,7 +151,7 @@ set(QT_COLLIDER_WEBENGINE_HDRS + ${QT_COLLIDER_DIR}/widgets/web_page.hpp + ) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND QT_COLLIDER_HDRS ${QT_COLLIDER_WEBENGINE_HDRS}) + endif() + +Index: supercollider-3.10.0+repack/QtCollider/factories.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/factories.cpp ++++ supercollider-3.10.0+repack/QtCollider/factories.cpp +@@ -66,7 +66,7 @@ static void doLoadFactories() { + QC_ADD_FACTORY(QcGridLayout); + QC_ADD_FACTORY(QcStackLayout); + QC_ADD_FACTORY(QtDownload); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + QC_ADD_FACTORY(WebView); + #endif + #ifdef __APPLE__ +Index: supercollider-3.10.0+repack/QtCollider/interface.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/interface.cpp ++++ supercollider-3.10.0+repack/QtCollider/interface.cpp +@@ -30,7 +30,7 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include + #endif + +@@ -82,7 +82,7 @@ void QtCollider::init() { + + gSystemPalette = qcApp->palette(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // Enable javascript localStorage for WebViews + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, true); + #endif +Index: supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/style/ProxyStyle.cpp ++++ supercollider-3.10.0+repack/QtCollider/style/ProxyStyle.cpp +@@ -6,7 +6,7 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include + #endif + +@@ -33,7 +33,7 @@ static bool AlwaysShowScrollbars() { + + void ProxyStyle::drawComplexControl(ComplexControl ctrl, const QStyleOptionComplex* opt, QPainter* p, + const QWidget* w) const { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + if (ctrl == QStyle::CC_ScrollBar && qobject_cast(w) != 0 + && opt->type == QStyleOption::SO_Slider) { +@@ -45,7 +45,7 @@ void ProxyStyle::drawComplexControl(Comp + QProxyStyle::drawComplexControl(ctrl, &opt2, p, w); + return; + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + if (ctrl == QStyle::CC_ScrollBar && AlwaysShowScrollbars()) { + const QStyleOptionSlider* optSlider = static_cast(opt); +Index: supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/QcWebView.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/QcWebView.cpp +@@ -19,7 +19,7 @@ + * + ************************************************************************/ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # include "QcWebView.h" + # include "../widgets/web_page.hpp" +@@ -324,4 +324,4 @@ void WebView::onLinkClicked(const QUrl & + + } // namespace QtCollider + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/QtCollider/widgets/web_page.cpp ++++ supercollider-3.10.0+repack/QtCollider/widgets/web_page.cpp +@@ -19,7 +19,7 @@ + * + ************************************************************************/ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # include "web_page.hpp" + +@@ -63,4 +63,4 @@ bool WebPage::acceptNavigationRequest(co + + } // namespace QtCollider + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/CMakeLists.txt ++++ supercollider-3.10.0+repack/editors/sc-ide/CMakeLists.txt +@@ -24,7 +24,7 @@ set(QT_IDE_LIBRARIES + Qt5::Sql + ) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND QT_IDE_COMPONENTS + WebChannel + WebEngine +@@ -200,7 +200,7 @@ set(ide_webengine_src + ${CMAKE_SOURCE_DIR}/QtCollider/widgets/web_page.cpp + ) + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + list(APPEND ide_moc_hdr ${ide_webengine_moc_hdrs}) + list(APPEND ide_src ${ide_webengine_src}) + endif() +@@ -354,9 +354,9 @@ if(LTO) + APPEND PROPERTY LINK_FLAGS "-flto -flto-report -fwhole-program") + endif() + +-if(SC_USE_WEBENGINE) ++if(SC_USE_QTWEBENGINE) + message(STATUS "IDE: Building with QtWebEngine") +- target_compile_definitions(SuperCollider PUBLIC SC_USE_WEBENGINE) ++ target_compile_definitions(SuperCollider PUBLIC SC_USE_QTWEBENGINE) + endif() + + # Installation +Index: supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/core/main.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/core/main.cpp +@@ -43,12 +43,12 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include + # include "../widgets/util/WebSocketClientWrapper.hpp" + # include "../widgets/util/WebSocketTransport.hpp" + # include "../widgets/util/IDEWebChannelWrapper.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + using namespace ScIDE; + +@@ -137,7 +137,7 @@ int main( int argc, char *argv[] ) + if (startInterpreter) + main->scProcess()->startLanguage(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // setup HelpBrowser server + QWebSocketServer server("SCIDE HelpBrowser Server", QWebSocketServer::NonSecureMode); + if (!server.listen(QHostAddress::LocalHost, 12344)) { +@@ -153,7 +153,7 @@ int main( int argc, char *argv[] ) + // publish IDE interface + IDEWebChannelWrapper ideWrapper { win->helpBrowserDocklet()->browser() }; + channel.registerObject("IDE", &ideWrapper); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + return app.exec(); + } +@@ -314,7 +314,7 @@ bool Main::nativeEventFilter(const QByte + } + + bool Main::openDocumentation(const QString& string) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + QString symbol = string.trimmed(); + if (symbol.isEmpty()) + return false; +@@ -323,20 +323,20 @@ bool Main::openDocumentation(const QStri + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); + return true; +-#else // SC_USE_WEBENGINE ++#else // SC_USE_QTWEBENGINE + return false; +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + bool Main::openDocumentationForMethod(const QString& className, const QString& methodName) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpForMethod(className, methodName); + helpDock->focus(); + return true; +-#else // SC_USE_WEBENGINE ++#else // SC_USE_QTWEBENGINE + return false; +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void Main::openDefinition(const QString& string, QWidget* parent) { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/autocompleter.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/autocompleter.cpp +@@ -29,9 +29,9 @@ + #include "../../core/util/standard_dirs.hpp" + #include "../main_window.hpp" + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include "../help_browser.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + #include + #include +@@ -1310,11 +1310,11 @@ void AutoCompleter::parseClassNode(DocNo + } + + void AutoCompleter::gotoHelp(QString symbol) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* helpDock = MainWindow::instance()->helpBrowserDocklet(); + helpDock->browser()->gotoHelpFor(symbol); + helpDock->focus(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + } // namespace ScIDE +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/code_editor/sc_editor.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/code_editor/sc_editor.cpp +@@ -28,9 +28,9 @@ + #include "../../core/settings/manager.hpp" + #include "../../core/settings/theme.hpp" + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include "help_browser.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + #include "QtCollider/hacks/hacks_qt.hpp" + +@@ -1319,13 +1319,13 @@ void ScCodeEditor::evaluateLine() + { + QString text; + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(false); + return; // early return + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +@@ -1360,13 +1360,13 @@ void ScCodeEditor::evaluateRegion() + { + QString text; + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* help = MainWindow::instance()->helpBrowserDocklet(); + if (help && help->browser()->helpBrowserHasFocus()) { + help->browser()->evaluateSelection(true); + return; // early return + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + // Try current selection + QTextCursor cursor = textCursor(); +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/help_browser.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/help_browser.cpp +@@ -18,7 +18,7 @@ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # define QT_NO_DEBUG_OUTPUT + +@@ -527,4 +527,4 @@ HelpBrowserDocklet::HelpBrowserDocklet( + + } // namespace ScIDE + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.cpp +@@ -43,9 +43,9 @@ + #include "code_editor/sc_editor.hpp" + #include "settings/dialog.hpp" + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include "help_browser.hpp" +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + #include "QtCollider/hacks/hacks_qt.hpp" + +@@ -146,12 +146,12 @@ MainWindow::MainWindow(Main * main) : + addDockWidget(Qt::LeftDockWidgetArea, mDocumentsDocklet->dockWidget()); + mDocumentsDocklet->hide(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet = new HelpBrowserDocklet(this); + mHelpBrowserDocklet->setObjectName("help-dock"); + addDockWidget(Qt::RightDockWidgetArea, mHelpBrowserDocklet->dockWidget()); + // mHelpBrowserDockable->hide(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + mPostDocklet = new PostDocklet(this); + mPostDocklet->setObjectName("post-dock"); +@@ -486,12 +486,12 @@ void MainWindow::createActions() + action->setStatusTip(tr("Show/hide Documents docklet")); + settings->addAction(mDocumentsDocklet->toggleViewAction(), "ide-docklet-documents", ideCategory); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + action = mHelpBrowserDocklet->toggleViewAction(); + action->setIcon(QIcon::fromTheme("system-help")); + action->setStatusTip(tr("Show/hide Help browser docklet")); + settings->addAction(mHelpBrowserDocklet->toggleViewAction(), "ide-docklet-help", ideCategory); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + // In Mac OS, all menu item shortcuts need a modifier, so add the action with + // the "Escape" default shortcut to the main window widget. +@@ -508,14 +508,14 @@ void MainWindow::createActions() + mPostDocklet->widget()->addAction(mActions[LookupReferences]); + mPostDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupDocumentationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementation]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferences]); + mHelpBrowserDocklet->widget()->addAction(mActions[LookupReferencesForCursor]); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void MainWindow::createMenus() { +@@ -593,9 +593,9 @@ void MainWindow::createMenus() { + submenu = new QMenu(tr("&Docklets"), this); + submenu->addAction(mPostDocklet->toggleViewAction()); + submenu->addAction(mDocumentsDocklet->toggleViewAction()); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + submenu->addAction(mHelpBrowserDocklet->toggleViewAction()); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + menu->addMenu(submenu); + menu->addSeparator(); + submenu = menu->addMenu(tr("&Tool Panels")); +@@ -672,12 +672,12 @@ void MainWindow::createMenus() { + menu = new QMenu(tr("&Help"), this); + menu->addAction(mActions[HelpAboutIDE]); + menu->addAction(mActions[ReportABug]); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + menu->addSeparator(); + menu->addAction(mActions[Help]); + menu->addAction(mActions[LookupDocumentationForCursor]); + menu->addAction(mActions[LookupDocumentation]); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + menu->addSeparator(); + menu->addAction(mActions[ShowAbout]); + menu->addAction(mActions[ShowAboutQT]); +@@ -693,9 +693,9 @@ template void MainWindow::save + QVariantMap detachedData; + saveDetachedState(mPostDocklet, detachedData); + saveDetachedState(mDocumentsDocklet, detachedData); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + saveDetachedState(mHelpBrowserDocklet, detachedData); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + settings->beginGroup("mainWindow"); + settings->setValue("geometry", this->saveGeometry().toBase64()); +@@ -742,9 +742,9 @@ void MainWindow::restoreWindowState( T * + + restoreDetachedState(mPostDocklet, detachedData); + restoreDetachedState(mDocumentsDocklet, detachedData); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + restoreDetachedState(mHelpBrowserDocklet, detachedData); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + qDebug("restoring state"); + +@@ -1397,9 +1397,9 @@ void MainWindow::applySettings(Settings: + applyCursorBlinkingSettings(settings); + + mPostDocklet->mPostWindow->applySettings(settings); +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet->browser()->applySettings(settings); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + mCmdLine->applySettings(settings); + } + +@@ -1575,18 +1575,18 @@ void MainWindow::lookupDocumentationForC + } + + void MainWindow::openHelp() { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + if (mHelpBrowserDocklet->browser()->url().isEmpty()) + mHelpBrowserDocklet->browser()->goHome(); + mHelpBrowserDocklet->focus(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void MainWindow::openHelpAboutIDE() { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + mHelpBrowserDocklet->browser()->gotoHelpFor("Guides/SCIde"); + mHelpBrowserDocklet->focus(); +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + } + + void MainWindow::doBugReport() { +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/main_window.hpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/main_window.hpp +@@ -120,7 +120,7 @@ public: + void focusCodeEditor(); + bool promptSaveDocs(); + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* helpBrowserDocklet() { return mHelpBrowserDocklet; } + #endif + PostDocklet* postDocklet() { return mPostDocklet; } +@@ -239,7 +239,7 @@ private: + // Docks + PostDocklet* mPostDocklet; + DocumentsDocklet* mDocumentsDocklet; +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + HelpBrowserDocklet* mHelpBrowserDocklet; + #endif + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/style/style.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/style/style.cpp +@@ -33,9 +33,9 @@ + #include + #include + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + # include +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + + namespace ScIDE { + +@@ -74,7 +74,7 @@ void Style::drawComplexControl(ComplexCo + } + + switch (control) { +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + // FIXME: this is a workaround for the WebKit bug #104116 (or a variation on it). + case QStyle::CC_ScrollBar: { + if (qobject_cast(widget) != 0 && option->type == QStyleOption::SO_Slider) { +@@ -87,7 +87,7 @@ void Style::drawComplexControl(ComplexCo + return; + } + } +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE + case QStyle::CC_ToolButton: { + // TODO: We only draw either text, or icon, or arrow + +Index: supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +=================================================================== +--- supercollider-3.10.0+repack.orig/editors/sc-ide/widgets/util/WebSocketTransport.cpp ++++ supercollider-3.10.0+repack/editors/sc-ide/widgets/util/WebSocketTransport.cpp +@@ -48,7 +48,7 @@ + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +-#ifdef SC_USE_WEBENGINE ++#ifdef SC_USE_QTWEBENGINE + + # include "WebSocketTransport.hpp" + +@@ -88,4 +88,4 @@ void WebSocketTransport::textMessageRece + + } // namespace ScIDE + +-#endif // SC_USE_WEBENGINE ++#endif // SC_USE_QTWEBENGINE +Index: supercollider-3.10.0+repack/lang/CMakeLists.txt +=================================================================== +--- supercollider-3.10.0+repack.orig/lang/CMakeLists.txt ++++ supercollider-3.10.0+repack/lang/CMakeLists.txt +@@ -182,9 +182,9 @@ if(SC_QT OR SC_IDE) + message(STATUS "Found Qt: " ${QtCore_location} ) + get_filename_component(QT_BIN_PATH ${QtCore_location} DIRECTORY CACHE) + +- if(SC_USE_WEBENGINE) ++ if(SC_USE_QTWEBENGINE) + message(STATUS "sclang: Building with QtWebEngine") +- target_compile_definitions(libsclang PUBLIC SC_USE_WEBENGINE) ++ target_compile_definitions(libsclang PUBLIC SC_USE_QTWEBENGINE) + endif() + target_link_libraries(libsclang ${QT_COLLIDER_LIBS}) + endif() diff --git a/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 b/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 new file mode 100644 index 0000000..7dacf47 --- /dev/null +++ b/patches/optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 @@ -0,0 +1,23 @@ +commit 766c44173c83ec5b4eb4a4cc202e78bf35917724 +Author: Nathan Ho +Date: Sat Jun 8 15:55:47 2019 -0700 + + scide: Remove IDE help menu item when SC_USE_QTWEBENGINE is off + +diff --git a/editors/sc-ide/widgets/main_window.cpp b/editors/sc-ide/widgets/main_window.cpp +index 864c33c9a..cfe436212 100644 +--- a/editors/sc-ide/widgets/main_window.cpp ++++ b/editors/sc-ide/widgets/main_window.cpp +@@ -422,10 +422,12 @@ void MainWindow::createActions() { + connect(action, SIGNAL(triggered()), this, SLOT(openHelp())); + settings->addAction(action, "help-browser", helpCategory); + ++#ifdef SC_USE_QTWEBENGINE + mActions[HelpAboutIDE] = action = + new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); + action->setStatusTip(tr("Open the SuperCollider IDE guide")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelpAboutIDE())); ++#endif // SC_USE_QTWEBENGINE + + mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); + action->setStatusTip(tr("Report a bug")); diff --git a/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 b/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 new file mode 100644 index 0000000..bde9f93 --- /dev/null +++ b/patches/optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 @@ -0,0 +1,100 @@ +commit 5006d4f9ed636ad0798af9dac01a91bdff877d45 +Author: Nathan Ho +Date: Thu Jul 4 19:56:05 2019 -0700 + + scide: Fix crashes for certain menu items and actions with QtWebEngine off + +diff --git a/editors/sc-ide/widgets/lookup_dialog.cpp b/editors/sc-ide/widgets/lookup_dialog.cpp +index 6be1ba639..a56d2d120 100644 +--- a/editors/sc-ide/widgets/lookup_dialog.cpp ++++ b/editors/sc-ide/widgets/lookup_dialog.cpp +@@ -36,7 +36,9 @@ + namespace ScIDE { + + GenericLookupDialog::GenericLookupDialog(QWidget* parent): QDialog(parent) { ++#ifdef SC_USE_QTWEBENGINE + addAction(MainWindow::instance()->action(MainWindow::LookupDocumentationForCursor)); ++#endif // SC_USE_WEBENGINE + + mQueryEdit = new QLineEdit(this); + +diff --git a/editors/sc-ide/widgets/main_window.cpp b/editors/sc-ide/widgets/main_window.cpp +index cfe436212..a6d0f73da 100644 +--- a/editors/sc-ide/widgets/main_window.cpp ++++ b/editors/sc-ide/widgets/main_window.cpp +@@ -417,21 +417,20 @@ void MainWindow::createActions() { + settings->addAction(action, "ide-settings-dialog", ideCategory); + + // Help ++ mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); ++ action->setStatusTip(tr("Report a bug")); ++ connect(action, SIGNAL(triggered()), this, SLOT(doBugReport())); ++ ++#ifdef SC_USE_QTWEBENGINE + mActions[Help] = action = new QAction(tr("Show &Help Browser"), this); + action->setStatusTip(tr("Show and focus the Help Browser")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelp())); + settings->addAction(action, "help-browser", helpCategory); + +-#ifdef SC_USE_QTWEBENGINE + mActions[HelpAboutIDE] = action = + new QAction(QIcon::fromTheme("system-help"), tr("How to Use SuperCollider IDE"), this); + action->setStatusTip(tr("Open the SuperCollider IDE guide")); + connect(action, SIGNAL(triggered()), this, SLOT(openHelpAboutIDE())); +-#endif // SC_USE_QTWEBENGINE +- +- mActions[ReportABug] = action = new QAction(QIcon::fromTheme("system-help"), tr("Report a bug..."), this); +- action->setStatusTip(tr("Report a bug")); +- connect(action, SIGNAL(triggered()), this, SLOT(doBugReport())); + + mActions[LookupDocumentationForCursor] = action = new QAction(tr("Look Up Documentation for Cursor"), this); + action->setShortcut(tr("Ctrl+D", "Look Up Documentation for Cursor")); +@@ -444,6 +443,7 @@ void MainWindow::createActions() { + action->setStatusTip(tr("Enter text to look up in documentation")); + connect(action, SIGNAL(triggered()), this, SLOT(lookupDocumentation())); + settings->addAction(action, "help-lookup", helpCategory); ++#endif // SC_USE_QTWEBENGINE + + mActions[ShowAbout] = action = new QAction(QIcon::fromTheme("help-about"), tr("&About SuperCollider"), this); + connect(action, SIGNAL(triggered()), this, SLOT(showAbout())); +@@ -479,8 +479,10 @@ void MainWindow::createActions() { + + // Add actions to docklets, so shortcuts work when docklets detached: + ++#ifdef SC_USE_QTWEBENGINE + mPostDocklet->widget()->addAction(mActions[LookupDocumentation]); + mPostDocklet->widget()->addAction(mActions[LookupDocumentationForCursor]); ++#endif // SC_USE_QTWEBENGINE + mPostDocklet->widget()->addAction(mActions[LookupImplementation]); + mPostDocklet->widget()->addAction(mActions[LookupImplementationForCursor]); + mPostDocklet->widget()->addAction(mActions[LookupReferences]); +@@ -648,7 +650,9 @@ void MainWindow::createMenus() { + menuBar->addMenu(menu); + + menu = new QMenu(tr("&Help"), this); ++#ifdef SC_USE_QTWEBENGINE + menu->addAction(mActions[HelpAboutIDE]); ++#endif + menu->addAction(mActions[ReportABug]); + #ifdef SC_USE_QTWEBENGINE + menu->addSeparator(); +diff --git a/editors/sc-ide/widgets/main_window.hpp b/editors/sc-ide/widgets/main_window.hpp +index 21faea32c..aaea60956 100644 +--- a/editors/sc-ide/widgets/main_window.hpp ++++ b/editors/sc-ide/widgets/main_window.hpp +@@ -101,8 +101,15 @@ public: + Help, + HelpAboutIDE, + ReportABug, ++ ++#ifdef SC_USE_QTWEBENGINE ++ // These QtWebEngine-only actions are branched at the preprocessor ++ // level so that accidental invocations of these actions in other code ++ // are caught at compile time. + LookupDocumentationForCursor, + LookupDocumentation, ++#endif // SC_USE_QTWEBENGINE ++ + ShowAbout, + ShowAboutQT, + diff --git a/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 b/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 new file mode 100644 index 0000000..7b8af1c --- /dev/null +++ b/patches/optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 @@ -0,0 +1,22 @@ +commit c1031b935fc3854758317d2ffda268170170c0e1 +Author: Nathan Ho +Date: Fri Jul 5 13:43:32 2019 -0700 + + help: Explain difference between the two help browsers + +diff --git a/HelpSource/Classes/HelpBrowser.schelp b/HelpSource/Classes/HelpBrowser.schelp +index 799d20a14..8bb195b39 100644 +--- a/HelpSource/Classes/HelpBrowser.schelp ++++ b/HelpSource/Classes/HelpBrowser.schelp +@@ -5,9 +5,9 @@ summary:: Browse the SuperCollider help documentation + + description:: + +-HelpBrowser is the GUI help browser that lets you browse the documentation of SuperCollider. It is coupled with SCDoc to allow on-the-fly rendering of HTML help files. ++HelpBrowser is a GUI help browser that lets you browse the documentation of SuperCollider. It is coupled with SCDoc to allow on-the-fly rendering of HTML help files. + +-Note that this is not the same as the help browser built into the IDE. ++There are two different help browsers in SuperCollider: the help browser built into SCIDE, and this HelpBrowser class implemented with sclang's GUI features. Both are implemented with the same underlying Qt WebEngine browser. + + Since the Qt WebEngine dependency is hefty and difficult to install on some systems, it is possible for sclang to have been built without WebView support (using the CMake flag code:: -DSC_USE_QTWEBENGINE=OFF :: at compile). If so, attempting to invoke this class will throw an error. + diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..f87719f --- /dev/null +++ b/patches/series @@ -0,0 +1,19 @@ +Remove-autodetection-of-raspberry-cpus.patch +disable-ccache.patch +fix-numeric-type.patch +optional-qtwebengine-00-formatting +optional-qtwebengine-01-cc8201ac297ee8de90949eb0209228b0394678a0 +optional-qtwebengine-02-87fedd160798e793fe155c693309479b493279b3 +optional-qtwebengine-03-e312031105bd66e0f67cba3a199445cdd9b87939 +optional-qtwebengine-04-2005e6f18906b092686f8ed0f48b54c67acf01fd +optional-qtwebengine-05-98482ee0ebae1021655d9a6beb8c6b8a5f62605a +optional-qtwebengine-06-fa2783c88d8dbbe124396d5e57523e5abcd689e2 +optional-qtwebengine-07-2cded7579d097de45a9a1e4c6ca8a87f3fd03e63 +optional-qtwebengine-08-48ae2945e02218c0793977f4e90cefc4cd2ac75a +optional-qtwebengine-09-a34b19c2ca1fa5641a25b5b962a19e0fa5223452 +optional-qtwebengine-10-b2c5f95b842aa0d602723a95983841615b0e4bc1 +optional-qtwebengine-11-6c83b58ee7a5c621bb71c481fadccf103f63b9c0 +optional-qtwebengine-12-7c3305d45cba46096c01ea9f7e8232436c1d3271 +optional-qtwebengine-13-766c44173c83ec5b4eb4a4cc202e78bf35917724 +optional-qtwebengine-14-5006d4f9ed636ad0798af9dac01a91bdff877d45 +optional-qtwebengine-15-c1031b935fc3854758317d2ffda268170170c0e1 diff --git a/patches/supernova-i686-march-flag.patch b/patches/supernova-i686-march-flag.patch new file mode 100644 index 0000000..37639b3 --- /dev/null +++ b/patches/supernova-i686-march-flag.patch @@ -0,0 +1,23 @@ +From: Dan Stowell +Date: Wed, 16 Nov 2016 18:33:12 -0300 +Subject: Fix supernova build on x86 + +--- + server/supernova/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +Index: supercollider/server/supernova/CMakeLists.txt +=================================================================== +--- supercollider.orig/server/supernova/CMakeLists.txt ++++ supercollider/server/supernova/CMakeLists.txt +@@ -155,6 +155,10 @@ else() + target_link_libraries(libsupernova boost_system boost_filesystem boost_program_options) + endif() + ++if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") ++endif() ++ + if(CMAKE_COMPILER_IS_GNUCXX) + if( ${_gcc_version} VERSION_GREATER 5 ) + target_link_libraries( libsupernova atomic ) diff --git a/rules b/rules new file mode 100755 index 0000000..d471548 --- /dev/null +++ b/rules @@ -0,0 +1,64 @@ +#! /usr/bin/make -f + +include /usr/share/dpkg/architecture.mk + +ifeq ("$(DEB_HOST_ARCH_CPU)","ppc64el") + DEB_CFLAGS_MAINT_APPEND = -mno-altivec -mno-vsx + DEB_CXXFLAGS_MAINT_APPEND = -mno-altivec -mno-vsx +endif + +DPKG_EXPORT_BUILDFLAGS = 1 +DEB_BUILD_MAINT_OPTIONS=hardening=+all +include /usr/share/dpkg/default.mk + +%: + dh $@ + +# supernova (optional alternative to scsynth) uses fancy simd things which fail to build on non-target architectures +DEB_BUILD_SUPERNOVA = $(shell dh_listpackages -a | grep -q supercollider-supernova && echo on || echo off) + +# NATIVE needs to be off to build for generic machines +# SSE can be off always: amd64 always enables it, i386 +# cannot enable it + +DEB_CMAKE_EXTRA_FLAGS = \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DNATIVE=off \ + -DSSE=off \ + -DSSE2=off \ + -DCMAKE_SKIP_RPATH=on \ + -DDSO_VISIBILITY=on \ + -DSC_EL_BYTECOMPILE=off \ + -DSYSTEM_BOOST=on \ + -DENABLE_TESTSUITE=off \ + -DLIBSCSYNTH=on \ + -DSYSTEM_YAMLCPP=off \ + -DSC_USE_QTWEBENGINE=off \ + -DSUPERNOVA="$(DEB_BUILD_SUPERNOVA)" + + +override_dh_auto_configure: + dh_auto_configure -- $(DEB_CMAKE_EXTRA_FLAGS) + + +# Do not enable tests, they only test the supernova component, which only works on x86 +override_dh_auto_test: + @echo "Tests disabled" + +override_dh_auto_install: + dh_auto_install + install -m 644 debian/README.extensions \ + $(CURDIR)/debian/tmp/usr/share/SuperCollider/Extensions/README +# this needs to be an absolute not relative softlink, +# because supercollider copies it around. hence not using dh_link for this. + install -d $(CURDIR)/debian/tmp/usr/share/SuperCollider/HelpSource/lib + ln -sf /usr/share/javascript/prettify/prettify.js $(CURDIR)/debian/tmp/usr/share/SuperCollider/HelpSource/prettify.js + ln -sf /usr/share/javascript/codemirror/codemirror.js $(CURDIR)/debian/tmp/usr/share/SuperCollider/HelpSource/lib/codemirror-5.39.2.min.js + ln -sf /usr/share/javascript/codemirror/addon/mode/simple.js $(CURDIR)/debian/tmp/usr/share/SuperCollider/HelpSource/lib/codemirror-addon-simple-5.39.2.min.js + ln -sf /usr/share/javascript/jquery/jquery.min.js $(CURDIR)/debian/tmp/usr/share/SuperCollider/HelpSource/lib/jquery.min.js + install -d $(CURDIR)/debian/tmp/usr/share/applications + install -m 644 debian/scel.desktop $(CURDIR)/debian/tmp/usr/share/applications + install -m 644 debian/scvim.desktop $(CURDIR)/debian/tmp/usr/share/applications + +override_dh_installdocs: + dh_installdocs -A AUTHORS diff --git a/scel.desktop b/scel.desktop new file mode 100644 index 0000000..5ab3460 --- /dev/null +++ b/scel.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=SuperCollider Emacs (scel) +Comment=Emacs environment for SuperCollider +Exec=emacs -sclang +Terminal=false +Type=Application +Icon=supercollider +#cats as in menu-spec-1.0: +Categories=Audio;AudioVideo;Music; diff --git a/scide.1 b/scide.1 new file mode 100644 index 0000000..8d4f4ee --- /dev/null +++ b/scide.1 @@ -0,0 +1,42 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SCIDE 1 "Dec 21, 2012" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +scide \- SuperCollider IDE +.SH SYNOPSIS +.B scide +.SH DESCRIPTION +\fBSuperCollider\fP is a real time audio synthesis programming +language. +This manual page documents briefly the +.B scide +command, the authoring environment for SuperCollider code. + +SuperCollider has documentation in the HTML format available in the +\fIsupercollider\-doc\fP package. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH SEE ALSO +.BR sclang (1), +.br +.I /usr/share/doc/supercollider\-server +.br +.SH AUTHOR +This manual page was written by Dan Stowell +for the Debian project (but may be used by others). diff --git a/sclang.1 b/sclang.1 new file mode 100644 index 0000000..d98fd6f --- /dev/null +++ b/sclang.1 @@ -0,0 +1,73 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SCLANG 1 "Nov 18, 2008" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +sclang \- a real time audio synthesis programming language +.SH SYNOPSIS +.B sclang +.RI [ options ] +.SH DESCRIPTION +\fBSuperCollider\fP is a real time audio synthesis programming +language. \fBsclang\fP is a client for the \fBscsynth\fP(1) +server. It connects to scsynth, interprets your sclang commands, +and sends OSC message to scsynth. + +SuperCollider has documentation in the HTML format available in the +\fIsupercollider\-doc\fP package. +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-d +Set runtime directory +.TP +.B \-D +Enter daemon mode (no input) +.TP +.B \-g [ k | m ] +Set heap growth (default 256k) +.TP +.B \-h +Show summary of options +.TP +.B \-l +Set library configuration file +.TP +.B \-m [ k | m ] +Set initial heap size (default 2m) +.TP +.B \-r +Call Main.run on startup +.TP +.B \-s +Call Main.stop on shutdown +.TP +.B \-u +Set UDP listening port (default 57120) + +.SH SEE ALSO +.BR scsynth (1) +.br +.I /usr/share/doc/supercollider +.br +.SH AUTHOR +This manual page was written by Paul Brossier +for the Debian project (but may be used by others). + +Modified and updated by Artem Popov . diff --git a/sclangpipe_app.1 b/sclangpipe_app.1 new file mode 100644 index 0000000..94d1c20 --- /dev/null +++ b/sclangpipe_app.1 @@ -0,0 +1,42 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SCVIM 1 "Nov 18, 2008" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +sclangpipe_app \- a wrapper to invoke sclang for scvim +.SH SYNOPSIS +.B sclangpipe_app +.RI [ options ] +.SH DESCRIPTION +This manual page documents briefly the +.B sclangpipe_app +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBsclangpipe_app\fP is a script that invokes the supercollider language (sclang) +executable for use with scvim. Users do NOT normally need to invoke it, since it +is called by the main \fBscvim\fP plugin when invoked by vim. +.SH SEE ALSO +.BR scvim (1) +.br +.I /usr/share/doc/supercollider\-vim/README.scvim +.SH AUTHOR +scvim was written by Alex Norman . +.PP +This manual page was written by Dan Stowell , +for the Ubuntu project (but may be used by others). diff --git a/scsynth.1 b/scsynth.1 new file mode 100644 index 0000000..b9d9290 --- /dev/null +++ b/scsynth.1 @@ -0,0 +1,135 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SCSYNTH 1 "Nov 18, 2008" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +scsynth \- SuperCollider audio synthesis server +.SH SYNOPSIS +.B scsynth +.RI [ options ] +.SH DESCRIPTION +\fBSuperCollider\fP is a real time audio synthesis programming +language. +This manual page documents briefly the +.B scsynth +command, the audio server of SuperCollider. + +SuperCollider has documentation in the HTML format available in the +\fIsupercollider\-doc\fP package. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. There \fBmust\fP be a \-u and/or a \-t +option, or \-N for nonrealtime. +.TP +.B \-u +a port number (0\(hy65535) +.TP +.B \-t +a port number (0\(hy65535) +.TP +.B \-c +default 4096 +.TP +.B \-a +default 128 +.TP +.B \-i +default 2 +.TP +.B \-o +default 2 +.TP +.B \-z +default 64 +.TP +.B \-Z +default 0 +.TP +.B \-S +default 0 +.TP +.B \-b +default 1024 +.TP +.B \-n +default 1024 +.TP +.B \-d +default 1024 +.TP +.B \-m +default 8192 +.TP +.B \-w +default 64 +.TP +.B \-r +default 64 +.TP +.B \-D +default 1 +.TP +.B \-R +default 1 +.TP +.B \-l +default 64 +.br +maximum number of named return addresses stored +.br +also maximum number of tcp connections accepted +.TP +.B \-p +When using TCP, the session password must be the first command sent. +The default is no password. UDP ports never require passwords, so +for security use TCP. +.TP +.B \-N +.TP +.B \-L +enable memory locking +.TP +.B \-H +.TP +.B \-v +0 is normal behaviour +.br +\-1 suppresses informational messages +.br +\-2 suppresses informational and many error messages +.TP +.B \-U +a colon\-separated list of paths +.br +If \-U is specified, the standard paths are NOT searched for plugins. +.TP +.B \-P +If specified, prevents file\-accessing OSC commands from accessing files outside . +.SH TO QUIT +To quit, send a 'quit' command via UDP or TCP, or press ctrl\-C. +.SH SEE ALSO +.BR sclang (1), +.br +.I /usr/share/doc/supercollider\-server +.br +.SH AUTHOR +This manual page was written by Paul Brossier +for the Debian project (but may be used by others). + +Modified and updated by Artem Popov . diff --git a/scvim.1 b/scvim.1 new file mode 100644 index 0000000..4e30c87 --- /dev/null +++ b/scvim.1 @@ -0,0 +1,53 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SCVIM 1 "Nov 18, 2008" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +scvim \- run Vim with SuperCollider mode +.SH SYNOPSIS +.B scvim +.RI [ options ] +.SH DESCRIPTION +This manual page documents briefly the +.B scvim +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBscvim\fP is a script that runs Vim text editor with SuperCollider mode. +It activates the SuperCollider syntax highlighting and starts the \fBsclang\fP +interpreter within Vim. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-g \-\-graphical +Use gvim (graphical vim). +.TP +.B \-r \-\-rcfile rcfile +Use the file indicated as the scvim configuration file. +.TP +.B \-h \-\-help +Show summary of options. +.SH SEE ALSO +.BR sclang (1) +.br +.I /usr/share/doc/supercollider\-vim/README.scvim +.SH AUTHOR +scvim was written by Alex Norman . +.PP +This manual page was written by Artem Popov , +for the Ubuntu project (but may be used by others). diff --git a/scvim.desktop b/scvim.desktop new file mode 100644 index 0000000..3009c8c --- /dev/null +++ b/scvim.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Name=SuperCollider Vim +Comment=Vim environment for SuperCollider +Exec=scvim +Terminal=true +Type=Application +Icon=supercollider +#cats as in menu-spec-1.0: +Categories=Audio;AudioVideo;Music; diff --git a/scvim_make_help.1 b/scvim_make_help.1 new file mode 100644 index 0000000..a6d5397 --- /dev/null +++ b/scvim_make_help.1 @@ -0,0 +1,61 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SCVIM 1 "Nov 18, 2008" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +scvim_make_help \- strip SuperCollider HTML help to text, for use with scvim +.SH SYNOPSIS +.B scvim_make_help +.RI [ options ] +.SH DESCRIPTION +This manual page documents briefly the +.B scvim_make_help +command. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +\fBscvim_make_help\fP is a script that strips SuperCollider HTML help to text +format, for use with scvim. Users do NOT normally need to invoke it, since it +is called by the main \fBscvim\fP script upon first run. +The stripped files are placed in ~/.scvim by default, but this can be overridden +by specifying SCVIM_CACHE_DIR environment variable. +.SH OPTIONS +A summary of options is included below. +.TP +.B \-s \-\-source\-dir directory +Specify the soruce directory to search for HTML help files. +.TP +.B \-d \-\-dest\-dir directory +The Destination Directory for the processed Help Files. +.TP +.B \-c \-\-clean +Clean the Destination Directory before building the helpfiles. +.TP +.B \-f \-\-force +Do not prompt to see if the user is sure about deleting files. +.TP +.B \-h \-\-help +Show summary of options. +.SH SEE ALSO +.BR scvim (1) +.br +.I /usr/share/doc/supercollider\-vim/README.scvim +.SH AUTHOR +scvim was written by Alex Norman . +.PP +This manual page was written by Dan Stowell , +for the Ubuntu project (but may be used by others). diff --git a/source.lintian-overrides b/source.lintian-overrides new file mode 100644 index 0000000..b17ddf2 --- /dev/null +++ b/source.lintian-overrides @@ -0,0 +1,3 @@ +# bundled portaudio comes with some ancient config files; they're not used in supercollider build though +supercollider source: ancient-autotools-helper-file external_libraries/portaudio_sc_org/bindings/cpp/build/gnu/config.* + diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/include-binaries b/source/include-binaries new file mode 100644 index 0000000..f0b8d18 --- /dev/null +++ b/source/include-binaries @@ -0,0 +1,5 @@ +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CMakeDetermineCompilerABI_C.bin +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CMakeDetermineCompilerABI_CXX.bin +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CompilerIdC/a.out +obj-arm-linux-gnueabihf/CMakeFiles/3.13.4/CompilerIdCXX/a.out +obj-arm-linux-gnueabihf/CMakeFiles/feature_tests.bin diff --git a/supercollider-common.install b/supercollider-common.install new file mode 100644 index 0000000..a0a9b09 --- /dev/null +++ b/supercollider-common.install @@ -0,0 +1,6 @@ +usr/share/SuperCollider/SCClassLibrary +usr/share/pixmaps/* +usr/share/SuperCollider/Extensions/README +usr/share/SuperCollider/HelpSource +usr/share/SuperCollider/sounds +usr/share/mime diff --git a/supercollider-dev.install b/supercollider-dev.install new file mode 100644 index 0000000..b4c4a99 --- /dev/null +++ b/supercollider-dev.install @@ -0,0 +1,5 @@ +usr/include/SuperCollider/common +usr/include/SuperCollider/server +usr/include/SuperCollider/plugin_interface +usr/include/SuperCollider/SCVersion.txt +usr/lib/libscsynth.so diff --git a/supercollider-doc.install b/supercollider-doc.install new file mode 100644 index 0000000..b2080ef --- /dev/null +++ b/supercollider-doc.install @@ -0,0 +1 @@ +usr/share/SuperCollider/Help diff --git a/supercollider-emacs.docs b/supercollider-emacs.docs new file mode 100644 index 0000000..8060448 --- /dev/null +++ b/supercollider-emacs.docs @@ -0,0 +1 @@ +editors/sc-el/README.md diff --git a/supercollider-emacs.emacsen-compat b/supercollider-emacs.emacsen-compat new file mode 100644 index 0000000..573541a --- /dev/null +++ b/supercollider-emacs.emacsen-compat @@ -0,0 +1 @@ +0 diff --git a/supercollider-emacs.emacsen-install b/supercollider-emacs.emacsen-install new file mode 100644 index 0000000..662af82 --- /dev/null +++ b/supercollider-emacs.emacsen-install @@ -0,0 +1,58 @@ +#! /bin/sh -e +# /usr/lib/emacsen-common/packages/install/supercollider + +# Written by Jim Van Zandt , borrowing heavily +# from the install scripts for gettext by Santiago Vila +# and octave by Dirk Eddelbuettel . + +FLAVOR=$1 +PACKAGE=SuperCollider + +case $FLAVOR in + emacs) + exit 0 + ;; + emacs2[0123]*) + echo install/${PACKAGE}: Skipping obsolete emacs ${FLAVOR} + exit 0 + ;; + xemacs*) + echo install/${PACKAGE}: Skipping unsupported emacs ${FLAVOR} + exit 0 + ;; + *) + echo install/${PACKAGE}: Handling install of emacsen flavor ${FLAVOR} + + #FLAVORTEST=`echo $FLAVOR | cut -c-6` + #if [ ${FLAVORTEST} = xemacs ] ; then + # SITEFLAG="-no-site-file" + #else + # SITEFLAG="--no-site-file" + #fi + FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" + + ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} + ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} + + # Install-info-altdir does not actually exist. + # Maybe somebody will write it. + if test -x /usr/sbin/install-info-altdir; then + echo install/${PACKAGE}: install Info links for ${FLAVOR} + install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/share/info/${PACKAGE}.info.gz + fi + + install -m 755 -d ${ELCDIR} + cd ${ELDIR} + FILES=`echo *.el` + cp ${FILES} ${ELCDIR} + cd ${ELCDIR} + + cat << EOF > path.el +(setq load-path (cons "." load-path) byte-compile-warnings nil) +EOF + ${FLAVOR} ${FLAGS} ${FILES} + rm -f *.el path.el + + exit 0 +esac + diff --git a/supercollider-emacs.emacsen-remove b/supercollider-emacs.emacsen-remove new file mode 100644 index 0000000..f36af55 --- /dev/null +++ b/supercollider-emacs.emacsen-remove @@ -0,0 +1,28 @@ +#!/bin/sh -e +# /usr/lib/emacsen-common/packages/remove/supercollider + +FLAVOR=$1 +PACKAGE=SuperCollider + +case $FLAVOR in + emacs) + exit 0 + ;; + emacs2[0123]*) + echo remove/${PACKAGE}: Skipping obsolete emacs ${FLAVOUR} + exit 0 + ;; + xemacs*) + echo remove/${PACKAGE}: Skipping unsupported emacs ${FLAVOUR} + exit 0 + ;; + *) + if test -x /usr/sbin/install-info-altdir; then + echo remove/${PACKAGE}: removing Info links for ${FLAVOR} + install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/share/info/supercollider.info.gz + fi + + echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} + rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} +esac + diff --git a/supercollider-emacs.emacsen-startup b/supercollider-emacs.emacsen-startup new file mode 100644 index 0000000..611b891 --- /dev/null +++ b/supercollider-emacs.emacsen-startup @@ -0,0 +1,25 @@ +;; -*-emacs-lisp-*- +;; +;; Emacs startup file, e.g. /etc/emacs/site-start.d/50supercollider.el +;; for the Debian supercollider package +;; +;; Originally contributed by Nils Naumann +;; Modified by Dirk Eddelbuettel +;; Adapted for dh-make by Jim Van Zandt + +;; The supercollider package follows the Debian/GNU Linux 'emacsen' policy and +;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, +;; xemacs19, emacs20, xemacs20...). The compiled code is then +;; installed in a subdirectory of the respective site-lisp directory. +;; We have to add this to the load-path: +(let ((package-dir (concat "/usr/share/" + (symbol-name flavor) + "/site-lisp/SuperCollider"))) +;; If package-dir does not exist, the supercollider package must have +;; removed but not purged, and we should skip the setup. + (when (file-directory-p package-dir) + (setq load-path (cons package-dir load-path)) +;; (autoload 'supercollider-mode "supercollider-mode" +;; "Major mode for editing supercollider files." t) +;; (add-to-list 'auto-mode-alist '("\\.supercollider$" . supercollider-mode)) + (require 'sclang))) diff --git a/supercollider-emacs.install b/supercollider-emacs.install new file mode 100644 index 0000000..e526b56 --- /dev/null +++ b/supercollider-emacs.install @@ -0,0 +1,3 @@ +usr/share/emacs +usr/share/SuperCollider/Extensions/scide_scel +usr/share/applications/scel.desktop diff --git a/supercollider-emacs.lintian-overrides b/supercollider-emacs.lintian-overrides new file mode 100644 index 0000000..d14ee50 --- /dev/null +++ b/supercollider-emacs.lintian-overrides @@ -0,0 +1 @@ +supercollider-emacs: desktop-command-not-in-package usr/share/applications/scel.desktop emacs diff --git a/supercollider-gedit.docs b/supercollider-gedit.docs new file mode 100644 index 0000000..205df92 --- /dev/null +++ b/supercollider-gedit.docs @@ -0,0 +1 @@ +editors/sced/README.md diff --git a/supercollider-gedit.install b/supercollider-gedit.install new file mode 100644 index 0000000..b70dbd7 --- /dev/null +++ b/supercollider-gedit.install @@ -0,0 +1,2 @@ +usr/lib/gedit/plugins/ +usr/share/gtksourceview-3.0/language-specs/supercollider.lang diff --git a/supercollider-ide.install b/supercollider-ide.install new file mode 100644 index 0000000..3c506f4 --- /dev/null +++ b/supercollider-ide.install @@ -0,0 +1,3 @@ +usr/bin/scide +usr/share/applications/SuperColliderIDE.desktop +usr/share/SuperCollider/translations/* diff --git a/supercollider-ide.manpages b/supercollider-ide.manpages new file mode 100644 index 0000000..6b2c1e2 --- /dev/null +++ b/supercollider-ide.manpages @@ -0,0 +1 @@ +debian/scide.1 diff --git a/supercollider-language.docs b/supercollider-language.docs new file mode 100644 index 0000000..4e10014 --- /dev/null +++ b/supercollider-language.docs @@ -0,0 +1,2 @@ +README_LINUX.md +README.md diff --git a/supercollider-language.install b/supercollider-language.install new file mode 100644 index 0000000..5ecb16d --- /dev/null +++ b/supercollider-language.install @@ -0,0 +1 @@ +usr/bin/sclang diff --git a/supercollider-language.manpages b/supercollider-language.manpages new file mode 100644 index 0000000..02843d5 --- /dev/null +++ b/supercollider-language.manpages @@ -0,0 +1 @@ +debian/sclang.1 diff --git a/supercollider-server.docs b/supercollider-server.docs new file mode 100644 index 0000000..4e10014 --- /dev/null +++ b/supercollider-server.docs @@ -0,0 +1,2 @@ +README_LINUX.md +README.md diff --git a/supercollider-server.install b/supercollider-server.install new file mode 100644 index 0000000..78f6ce6 --- /dev/null +++ b/supercollider-server.install @@ -0,0 +1,26 @@ +usr/bin/scsynth +usr/lib/SuperCollider/plugins/BinaryOpUGens.so +usr/lib/SuperCollider/plugins/ChaosUGens.so +usr/lib/SuperCollider/plugins/DelayUGens.so +usr/lib/SuperCollider/plugins/DemandUGens.so +usr/lib/SuperCollider/plugins/DiskIO_UGens.so +usr/lib/SuperCollider/plugins/DynNoiseUGens.so +usr/lib/SuperCollider/plugins/FFT_UGens.so +usr/lib/SuperCollider/plugins/FilterUGens.so +usr/lib/SuperCollider/plugins/GendynUGens.so +usr/lib/SuperCollider/plugins/GrainUGens.so +usr/lib/SuperCollider/plugins/IOUGens.so +usr/lib/SuperCollider/plugins/LFUGens.so +usr/lib/SuperCollider/plugins/ML_UGens.so +usr/lib/SuperCollider/plugins/MulAddUGens.so +usr/lib/SuperCollider/plugins/NoiseUGens.so +usr/lib/SuperCollider/plugins/OscUGens.so +usr/lib/SuperCollider/plugins/PanUGens.so +usr/lib/SuperCollider/plugins/PhysicalModelingUGens.so +usr/lib/SuperCollider/plugins/PV_ThirdParty.so +usr/lib/SuperCollider/plugins/ReverbUGens.so +usr/lib/SuperCollider/plugins/TestUGens.so +usr/lib/SuperCollider/plugins/TriggerUGens.so +usr/lib/SuperCollider/plugins/UIUGens.so +usr/lib/SuperCollider/plugins/UnaryOpUGens.so +usr/lib/SuperCollider/plugins/UnpackFFTUGens.so diff --git a/supercollider-server.manpages b/supercollider-server.manpages new file mode 100644 index 0000000..ce1fe5e --- /dev/null +++ b/supercollider-server.manpages @@ -0,0 +1 @@ +debian/scsynth.1 diff --git a/supercollider-supernova.install b/supercollider-supernova.install new file mode 100644 index 0000000..68d1c61 --- /dev/null +++ b/supercollider-supernova.install @@ -0,0 +1,26 @@ +usr/bin/supernova +usr/lib/SuperCollider/plugins/BinaryOpUGens_supernova.so +usr/lib/SuperCollider/plugins/ChaosUGens_supernova.so +usr/lib/SuperCollider/plugins/DelayUGens_supernova.so +usr/lib/SuperCollider/plugins/DemandUGens_supernova.so +usr/lib/SuperCollider/plugins/DiskIO_UGens_supernova.so +usr/lib/SuperCollider/plugins/DynNoiseUGens_supernova.so +usr/lib/SuperCollider/plugins/FFT_UGens_supernova.so +usr/lib/SuperCollider/plugins/FilterUGens_supernova.so +usr/lib/SuperCollider/plugins/GendynUGens_supernova.so +usr/lib/SuperCollider/plugins/GrainUGens_supernova.so +usr/lib/SuperCollider/plugins/IOUGens_supernova.so +usr/lib/SuperCollider/plugins/LFUGens_supernova.so +usr/lib/SuperCollider/plugins/ML_UGens_supernova.so +usr/lib/SuperCollider/plugins/MulAddUGens_supernova.so +usr/lib/SuperCollider/plugins/NoiseUGens_supernova.so +usr/lib/SuperCollider/plugins/OscUGens_supernova.so +usr/lib/SuperCollider/plugins/PanUGens_supernova.so +usr/lib/SuperCollider/plugins/PhysicalModelingUGens_supernova.so +usr/lib/SuperCollider/plugins/PV_ThirdParty_supernova.so +usr/lib/SuperCollider/plugins/ReverbUGens_supernova.so +usr/lib/SuperCollider/plugins/TestUGens_supernova.so +usr/lib/SuperCollider/plugins/TriggerUGens_supernova.so +usr/lib/SuperCollider/plugins/UIUGens_supernova.so +usr/lib/SuperCollider/plugins/UnaryOpUGens_supernova.so +usr/lib/SuperCollider/plugins/UnpackFFTUGens_supernova.so diff --git a/supercollider-supernova.manpages b/supercollider-supernova.manpages new file mode 100644 index 0000000..3081379 --- /dev/null +++ b/supercollider-supernova.manpages @@ -0,0 +1 @@ +debian/supernova.1 diff --git a/supercollider-vim.README.Debian b/supercollider-vim.README.Debian new file mode 100644 index 0000000..d48939a --- /dev/null +++ b/supercollider-vim.README.Debian @@ -0,0 +1,12 @@ +Dear user, this package provides the vim addon supercollider-vim, but it is +not enabled by default. If you want to enable it for your user account just +execute: + +vim-addons install supercollider + +Similarly, to enable it for all users of this system just execute (as root): + +vim-addons -w install supercollider + +vim-addons is provided by the vim-addon-manager package, have a look at its +manpage for more information. diff --git a/supercollider-vim.docs b/supercollider-vim.docs new file mode 100644 index 0000000..a0b43ea --- /dev/null +++ b/supercollider-vim.docs @@ -0,0 +1,2 @@ +editors/scvim/README.md +#editors/scvim/SCVim.scd diff --git a/supercollider-vim.install b/supercollider-vim.install new file mode 100644 index 0000000..1603a3e --- /dev/null +++ b/supercollider-vim.install @@ -0,0 +1,7 @@ +#usr/bin/sclangpipe_app +#usr/bin/scvim +#usr/share/vim +#usr/share/scvim +#usr/share/SuperCollider/Extensions/scvim +#debian/supercollider-vim.yaml usr/share/vim/registry/ +usr/share/applications/scvim.desktop diff --git a/supercollider-vim.manpages b/supercollider-vim.manpages new file mode 100644 index 0000000..ba418be --- /dev/null +++ b/supercollider-vim.manpages @@ -0,0 +1 @@ +debian/scvim.1 debian/sclangpipe_app.1 diff --git a/supercollider-vim.yaml b/supercollider-vim.yaml new file mode 100644 index 0000000..4aa2a04 --- /dev/null +++ b/supercollider-vim.yaml @@ -0,0 +1,10 @@ +addon: supercollider +description: "SuperCollider mode for Vim" +disabledby: "let loaded_supercollider = 1" +files: + - ftplugin/supercollider.vim + - indent/sc_indent.vim + - syntax/supercollider.vim + - syntax/supercollider_lang.vim + - syntax/supercollider_objects.vim + - syntax/supercollider_operators.vim diff --git a/supernova.1 b/supernova.1 new file mode 100644 index 0000000..de73604 --- /dev/null +++ b/supernova.1 @@ -0,0 +1,135 @@ +.\" Hey, EMACS: -*- nroff -*- +.\" First parameter, NAME, should be all caps +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection +.\" other parameters are allowed: see man(7), man(1) +.TH SUPERNOVA 1 "Nov 18, 2008" +.\" Please adjust this date whenever revising the manpage. +.\" +.\" Some roff macros, for reference: +.\" .nh disable hyphenation +.\" .hy enable hyphenation +.\" .ad l left justify +.\" .ad b justify to both left and right margins +.\" .nf disable filling +.\" .fi enable filling +.\" .br insert line break +.\" .sp insert n+1 empty lines +.\" for manpage-specific macros, see man(7) +.SH NAME +supernova \- SuperCollider audio synthesis server +.SH SYNOPSIS +.B supernova +.RI [ options ] +.SH DESCRIPTION +\fBSuperCollider\fP is a real time audio synthesis programming +language. +This manual page documents briefly the +.B supernova +command, the audio server of SuperCollider. + +SuperCollider has documentation in the HTML format available in the +\fIsupercollider\-doc\fP package. +.PP +.\" TeX users may be more comfortable with the \fB\fP and +.\" \fI\fP escape sequences to invode bold face and italics, +.\" respectively. +.SH OPTIONS +A summary of options is included below. There \fBmust\fP be a \-u and/or a \-t +option, or \-N for nonrealtime. +.TP +.B \-u +a port number (0\(hy65535) +.TP +.B \-t +a port number (0\(hy65535) +.TP +.B \-c +default 4096 +.TP +.B \-a +default 128 +.TP +.B \-i +default 2 +.TP +.B \-o +default 2 +.TP +.B \-z +default 64 +.TP +.B \-Z +default 0 +.TP +.B \-S +default 0 +.TP +.B \-b +default 1024 +.TP +.B \-n +default 1024 +.TP +.B \-d +default 1024 +.TP +.B \-m +default 8192 +.TP +.B \-w +default 64 +.TP +.B \-r +default 64 +.TP +.B \-D +default 1 +.TP +.B \-R +default 1 +.TP +.B \-l +default 64 +.br +maximum number of named return addresses stored +.br +also maximum number of tcp connections accepted +.TP +.B \-p +When using TCP, the session password must be the first command sent. +The default is no password. UDP ports never require passwords, so +for security use TCP. +.TP +.B \-N +.TP +.B \-L +enable memory locking +.TP +.B \-H +.TP +.B \-v +0 is normal behaviour +.br +\-1 suppresses informational messages +.br +\-2 suppresses informational and many error messages +.TP +.B \-U +a colon\-separated list of paths +.br +If \-U is specified, the standard paths are NOT searched for plugins. +.TP +.B \-P +If specified, prevents file\-accessing OSC commands from accessing files outside . +.SH TO QUIT +To quit, send a 'quit' command via UDP or TCP, or press ctrl\-C. +.SH SEE ALSO +.BR sclang (1), +.br +.I /usr/share/doc/supercollider\-server +.br +.SH AUTHOR +This manual page was written by Paul Brossier +for the Debian project (but may be used by others). + +Modified and updated by Artem Popov . diff --git a/watch b/watch new file mode 100644 index 0000000..1b3fdbe --- /dev/null +++ b/watch @@ -0,0 +1,4 @@ +version=3 + +opts=repack,repacksuffix=+repack,dversionmangle=s/\+repack(-?[0-9]+)?$//,uversionmangle=s/-?([a-zA-Z]+[0-9])/+$1/ \ + https://github.com/supercollider/supercollider/releases/latest .*/SuperCollider-(\d\S*)-Source-linux\.tar\.bz2