[arch-commits] Commit in (9 files)

David Runge dvzrv at archlinux.org
Wed Jan 8 01:43:50 UTC 2020


    Date: Wednesday, January 8, 2020 @ 01:43:49
  Author: dvzrv
Revision: 550149

Adding juce from the AUR.

Added:
  juce/
  juce/repos/
  juce/trunk/
  juce/trunk/PKGBUILD
  juce/trunk/juce-5.4.5-disable_update_check.patch
  juce/trunk/juce-5.4.5-disable_usage_data.patch
  juce/trunk/juce-5.4.5-fix_include_defines.patch
  juce/trunk/juce-5.4.5-jucepath.patch
  juce/trunk/juce-5.4.5-link_to_systemlibs.patch

---------------------------------------+
 PKGBUILD                              |   91 +++++++++++++++++++++++++++
 juce-5.4.5-disable_update_check.patch |   23 ++++++
 juce-5.4.5-disable_usage_data.patch   |   28 ++++++++
 juce-5.4.5-fix_include_defines.patch  |  106 ++++++++++++++++++++++++++++++++
 juce-5.4.5-jucepath.patch             |   22 ++++++
 juce-5.4.5-link_to_systemlibs.patch   |   69 ++++++++++++++++++++
 6 files changed, 339 insertions(+)

Added: juce/trunk/PKGBUILD
===================================================================
--- juce/trunk/PKGBUILD	                        (rev 0)
+++ juce/trunk/PKGBUILD	2020-01-08 01:43:49 UTC (rev 550149)
@@ -0,0 +1,91 @@
+# Maintainer: David Runge <dvzrv at archlinux.org>
+
+_name=JUCE
+pkgname=juce
+pkgver=5.4.5
+pkgrel=1
+pkgdesc="Cross-platform C++ framework"
+arch=('x86_64')
+url="https://github.com/weareroli/juce/"
+license=('Apache' 'BSD' 'GPL3' 'ISC')
+depends=('atk' 'cairo' 'gcc-libs' 'gdk-pixbuf2' 'glib2' 'glibc' 'gtk3'
+'harfbuzz' 'libfreetype.so' 'libjpeg-turbo' 'libpng' 'libsoup' 'libx11'
+'libxext' 'libxinerama' 'pango' 'webkit2gtk' 'zlib')
+makedepends=('doxygen' 'gendesk' 'graphviz' 'python')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/weareroli/${pkgname}/archive/${pkgver}.tar.gz"
+        "$pkgname-5.4.5-disable_update_check.patch"
+        "$pkgname-5.4.5-disable_usage_data.patch"
+        "$pkgname-5.4.5-fix_include_defines.patch"
+        "$pkgname-5.4.5-link_to_systemlibs.patch"
+        "$pkgname-5.4.5-jucepath.patch")
+sha512sums=('4fcd6b9d6d43c00683fdd9cabbbdba61094eee61d50738fb89d7330c95552712f876a9b76e2557a390060a875b9f771f3ffe8135d2b2a5b60e2e01586a79ccbf'
+            '5e7516d37deeb6faf9bd7ccf6b0da68f610992b9a4dfb8010baec1dba56cf2310c390c3d0876b5e2f30c89c69555ad34c088887a0254c59f121d2af38334b3d3'
+            '85ca210a4d904a00de0830385a9e103493d47981acdb24335494fddc4af3f8b89cc05d1935cc4695c9e136bce5f91c1568c2135a8fe4ce565f396c3ba0153460'
+            '69bc445275e88594ab6077285442bb3af97e2e4a7776f409d5e0ce2aae214a0eadedb82960c666ee45ea459f8ffb519873ecb0577eecf11e4728ee46e6ee042f'
+            '062197ee6860c2c9cf655131df042df536d0b9aab58b304ca35a9d335231932dc49d92cb439c347f3dc863fc60ae6ae2357fbca8d057b9ce3b06fdbf16ff05df'
+            'c7ad5fadedd09f6f810cc27736f0def236f3b107de00079fb24509fc27750b26225bed7e9b19b0fa9873d5dae7b686cd9929298bb0107fd44645aad1a69c9168')
+
+prepare() {
+  mv -v "${_name}-$pkgver" "$pkgname-$pkgver"
+  cd "$pkgname-$pkgver"
+  # setting juce path
+  patch -Np1 -i "../$pkgname-5.4.5-jucepath.patch"
+  # disable checking for update in projucer
+  patch -Np1 -i "../$pkgname-5.4.5-disable_update_check.patch"
+  # disable sending usage data in projucer
+  patch -Np1 -i "../$pkgname-5.4.5-disable_usage_data.patch"
+  # fix include defines in projucer
+  patch -Np1 -i "../$pkgname-5.4.5-fix_include_defines.patch"
+  # link to system libs, if flac, jack, libogg, vorbis, libjpeg, libpng or zlib
+  # are in use
+  patch -Np1 -i "../$pkgname-5.4.5-link_to_systemlibs.patch"
+  # disabling -march=native
+  sed -e 's/\-march=native//g' \
+      -i extras/Projucer/Builds/LinuxMakefile/Makefile
+  gendesk -n \
+          --pkgname "com.juce_projucer" \
+          --name "Projucer" \
+          --pkgdesc "Cross-platform project manager and C++ code editor" \
+          --exec "Projucer" \
+          --icon "Projucer" \
+          --genericname "Code manager and editor" \
+          --categories "Development"
+  # devendor bundled sources for flac, libogg, vorbis, libjpeg, libpng and zlib
+  rm -rvf modules/juce_audio_formats/codecs/flac/ \
+    modules/juce_audio_formats/codecs/oggvorbis/ \
+    modules/juce_audio_plugin_client/AU/ \
+    modules/juce_graphics/image_formats/jpglib/ \
+    modules/juce_graphics/image_formats/pnglib/ \
+    modules/juce_core/zip/zlib/
+}
+
+build() {
+  cd "$pkgname-$pkgver"
+  # enabling GPL mode via CPPFLAGS
+  CPPFLAGS+=" -DJUCER_ENABLE_GPL_MODE=1" \
+  LDFLAGS+=" $(pkg-config --libs libjpeg libpng zlib)" \
+  make -C extras/Projucer/Builds/LinuxMakefile/ V=1
+  cd doxygen
+  make
+}
+
+package() {
+  cd "$pkgname-$pkgver"
+  install -vDm 755 extras/Projucer/Builds/LinuxMakefile/build/Projucer \
+    -t "${pkgdir}/usr/bin"
+  # xdg desktop integration
+  install -vDm 644 *.desktop -t "${pkgdir}/usr/share/applications/"
+  install -vDm 644 examples/Assets/juce_icon.png \
+    "${pkgdir}/usr/share/icons/hicolor/512x512/apps/Projucer.png"
+  # modules
+  install -vDm 644 ChangeList.txt -t "${pkgdir}/usr/share/${pkgname}"
+  install -vdm 755 "${pkgdir}/usr/share/${pkgname}/modules"
+  cp -av modules/* "${pkgdir}/usr/share/${pkgname}/modules"
+  # docs
+  install -vdm 755 "${pkgdir}/usr/share/doc/${pkgname}/html"
+  cp -av doxygen/doc/* "${pkgdir}/usr/share/doc/${pkgname}/html"
+  install -vDm 644 {ChangeList.txt,README.md} \
+    -t "${pkgdir}/usr/share/doc/${pkgname}"
+  # license
+  install -vDm 644 LICENSE.md -t "${pkgdir}/usr/share/licenses/${pkgname}"
+}

Added: juce/trunk/juce-5.4.5-disable_update_check.patch
===================================================================
--- juce/trunk/juce-5.4.5-disable_update_check.patch	                        (rev 0)
+++ juce/trunk/juce-5.4.5-disable_update_check.patch	2020-01-08 01:43:49 UTC (rev 550149)
@@ -0,0 +1,23 @@
+From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= <umlaeute at debian.org>
+Date: Thu, 9 Nov 2017 00:00:00 +0100
+Subject: prevent Projucer from checking for updates
+
+ The check-for-updates only makes sense for user-installed Projucer, not for
+ the Debian packaged version.
+Forwarded: not-needed
+---
+ extras/Projucer/Source/Application/jucer_AutoUpdater.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp
+index a54b527..2014b10 100644
+--- a/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp
++++ b/extras/Projucer/Source/Application/jucer_AutoUpdater.cpp
+@@ -42,6 +42,7 @@ LatestVersionCheckerAndUpdater::~LatestVersionCheckerAndUpdater()
+ 
+ void LatestVersionCheckerAndUpdater::checkForNewVersion (bool showAlerts)
+ {
++    return; // DONT check for new versions on Debian
+     if (! isThreadRunning())
+     {
+         showAlertWindows = showAlerts;

Added: juce/trunk/juce-5.4.5-disable_usage_data.patch
===================================================================
--- juce/trunk/juce-5.4.5-disable_usage_data.patch	                        (rev 0)
+++ juce/trunk/juce-5.4.5-disable_usage_data.patch	2020-01-08 01:43:49 UTC (rev 550149)
@@ -0,0 +1,28 @@
+From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= <umlaeute at debian.org>
+Date: Mon, 26 Mar 2018 00:00:00 +0200
+Subject: default to not-sending usage-data to ROLI
+
+ we prefer to have privacy enabled by default...
+Forwarded: no
+---
+ .../Application/Windows/jucer_ApplicationUsageDataWindowComponent.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h b/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h
+index c9a06df..6a48b68 100644
+--- a/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h
++++ b/extras/Projucer/Source/Application/Windows/jucer_ApplicationUsageDataWindowComponent.h
+@@ -69,10 +69,10 @@ public:
+ 
+             auto* controller = ProjucerApplication::getApp().licenseController.get();
+ 
+-            if (controller != nullptr && controller->getState().applicationUsageDataState == LicenseState::ApplicationUsageData::disabled)
+-                shareApplicationUsageDataToggle->setToggleState (false, dontSendNotification);
+-            else
++            if (controller != nullptr && controller->getState().applicationUsageDataState == LicenseState::ApplicationUsageData::enabled)
+                 shareApplicationUsageDataToggle->setToggleState (true, dontSendNotification);
++            else
++                shareApplicationUsageDataToggle->setToggleState (false, dontSendNotification);
+ 
+             addAndMakeVisible (shareApplicationUsageDataLabel);
+             shareApplicationUsageDataLabel.setFont (Font (14.0f));

Added: juce/trunk/juce-5.4.5-fix_include_defines.patch
===================================================================
--- juce/trunk/juce-5.4.5-fix_include_defines.patch	                        (rev 0)
+++ juce/trunk/juce-5.4.5-fix_include_defines.patch	2020-01-08 01:43:49 UTC (rev 550149)
@@ -0,0 +1,106 @@
+From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= <umlaeute at debian.org>
+Date: Sun, 11 Feb 2018 00:00:00 +0100
+Subject: clamp a few defines to fixed values
+
+ on Debian we only ever allow using the system provided libraries
+ (zlib, flac, oggvorbis,...)
+Origin: Debian
+Forwarded: not-needed
+---
+ .../utility/juce_CheckSettingMacros.h              | 25 +++++++++++++++++
+ modules/juce_core/juce_core.h                      | 32 +++++++++++++++++++++-
+ 2 files changed, 56 insertions(+), 1 deletion(-)
+
+diff --git a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
+index b5278b1..4c0a9ba 100644
+--- a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
++++ b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
+@@ -24,6 +24,30 @@
+   ==============================================================================
+ */
+ 
++/* Debian specific overrides */
++#if JucePlugin_Build_LV2 && ! defined (JucePlugin_LV2URI)
++# warning JUCE/Debian using default LV2URI
++# define JucePlugin_LV2URI               JucePlugin_Name
++#endif
++
++#if JucePlugin_Build_AU
++# warning JUCE/Debian disabled AU support
++# undef JucePlugin_Build_AU
++# define JucePlugin_Build_AU 0
++#endif
++
++#if JucePlugin_Build_RTAS
++# warning JUCE/Debian disabled RTAS support
++# undef JucePlugin_Build_RTAS
++# define JucePlugin_Build_RTAS 0
++#endif
++
++#if JucePlugin_Build_AAX
++# warning JUCE/Debian disabled AAX support
++# undef JucePlugin_Build_AAX
++# define JucePlugin_Build_AAX 0
++#endif
++
+ // The following checks should cause a compile error if you've forgotten to
+ // define all your plugin settings properly..
+ 
+@@ -40,6 +64,7 @@
+ #endif
+ #define JUCE_CHECKSETTINGMACROS_H
+ 
++
+ #ifndef JucePlugin_IsSynth
+  #error "You need to define the JucePlugin_IsSynth value!"
+ #endif
+diff --git a/modules/juce_core/juce_core.h b/modules/juce_core/juce_core.h
+index 9cd4146..e26e139 100644
+--- a/modules/juce_core/juce_core.h
++++ b/modules/juce_core/juce_core.h
+@@ -64,6 +64,36 @@
+ 
+ #include "system/juce_TargetPlatform.h"
+ 
++/** Debian specific constants
++  - Debian, we don't use embedded libraries
++*/
++#ifdef JUCE_INCLUDE_ZLIB_CODE
++# undef JUCE_INCLUDE_ZLIB_CODE
++#endif
++#define JUCE_INCLUDE_ZLIB_CODE 0
++
++#ifdef JUCE_INCLUDE_FLAC_CODE
++# undef JUCE_INCLUDE_FLAC_CODE
++#endif
++#define JUCE_INCLUDE_FLAC_CODE 0
++
++#ifdef JUCE_INCLUDE_OGGVORBIS_CODE
++# undef JUCE_INCLUDE_OGGVORBIS_CODE
++#endif
++#define JUCE_INCLUDE_OGGVORBIS_CODE 0
++
++#ifdef JUCE_INCLUDE_JPEGLIB_CODE
++# undef JUCE_INCLUDE_JPEGLIB_CODE
++#endif
++#define JUCE_INCLUDE_JPEGLIB_CODE 0
++
++#ifdef JUCE_INCLUDE_PNGLIB_CODE
++# undef JUCE_INCLUDE_PNGLIB_CODE
++#endif
++#define JUCE_INCLUDE_PNGLIB_CODE 0
++/** Debian specifics END
++*/
++
+ //==============================================================================
+ /** Config: JUCE_FORCE_DEBUG
+ 
+@@ -123,7 +153,7 @@
+     specify the path where your zlib headers live.
+ */
+ #ifndef JUCE_INCLUDE_ZLIB_CODE
+- #define JUCE_INCLUDE_ZLIB_CODE 1
++ #define JUCE_INCLUDE_ZLIB_CODE 0
+ #endif
+ 
+ #ifndef JUCE_ZLIB_INCLUDE_PATH

Added: juce/trunk/juce-5.4.5-jucepath.patch
===================================================================
--- juce/trunk/juce-5.4.5-jucepath.patch	                        (rev 0)
+++ juce/trunk/juce-5.4.5-jucepath.patch	2020-01-08 01:43:49 UTC (rev 550149)
@@ -0,0 +1,22 @@
+diff -ruN a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp
+--- a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp	2019-10-16 11:09:54.000000000 +0200
++++ b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp	2020-01-07 15:11:25.562748860 +0100
+@@ -381,15 +381,15 @@
+ {
+     if (key == Ids::jucePath)
+     {
+-        return (os == TargetOS::windows ? "C:\\JUCE" : "~/JUCE");
++        return (os == TargetOS::windows ? "C:\\JUCE" : "/usr/share/juce");
+     }
+     else if (key == Ids::defaultJuceModulePath)
+     {
+-        return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "~/JUCE/modules");
++        return (os == TargetOS::windows ? "C:\\JUCE\\modules" : "/usr/share/juce/modules");
+     }
+     else if (key == Ids::defaultUserModulePath)
+     {
+-        return (os == TargetOS::windows ? "C:\\modules" : "~/modules");
++        return (os == TargetOS::windows ? "C:\\modules" : "~/.local/share/JUCE/modules");
+     }
+     else if (key == Ids::vstLegacyPath || key == Ids::vst3Path)
+     {

Added: juce/trunk/juce-5.4.5-link_to_systemlibs.patch
===================================================================
--- juce/trunk/juce-5.4.5-link_to_systemlibs.patch	                        (rev 0)
+++ juce/trunk/juce-5.4.5-link_to_systemlibs.patch	2020-01-08 01:43:49 UTC (rev 550149)
@@ -0,0 +1,69 @@
+From: Debian Multimedia Maintainers <debian-multimedia at lists.debian.org>
+Date: Wed, 23 Oct 2019 09:44:36 +0200
+Subject: have Projucer link against the system libraries
+
+Origin: Debian
+Forwarded: no
+Last-Update: 2019-08-21
+
+since the Debian package has removed 3rd-party libraries (jpeg, png, flag,
+ogg/vorbis), we must use against the system libraries.
+Last-Update: 2019-08-21
+---
+ .../ProjectSaving/jucer_ProjectExport_Make.h       | 36 ++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
+index 88fd4f1..cdac636 100644
+--- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
++++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Make.h
+@@ -464,6 +464,39 @@ private:
+         if (isCurlEnabled() && ! isLoadCurlSymbolsLazilyEnabled())
+             packages.add ("libcurl");
+ 
++        // on Debian, a number of 3rd-party libs have been stripped away,
++        // so we need to link to the system libraries
++        if (project.getEnabledModules().isModuleEnabled ("juce_core"))
++        {
++            packages.add ("zlib");
++        }
++        if (project.getEnabledModules().isModuleEnabled ("juce_graphics"))
++        {
++            packages.add ("libjpeg");
++            packages.add ("libpng");
++        }
++        if (project.getEnabledModules().isModuleEnabled ("juce_audio_formats"))
++        {
++            if(project.isConfigFlagEnabled ("JUCE_USE_FLAC", true))
++            {
++                packages.add ("flac");
++            }
++
++            if(project.isConfigFlagEnabled ("JUCE_USE_OGGVORBIS", true))
++            {
++                packages.add ("vorbis");
++                packages.add ("vorbisfile");
++                packages.add ("vorbisenc");
++                packages.add ("ogg");
++            }
++        }
++        if (project.getEnabledModules().isModuleEnabled ("juce_audio_devices"))
++        {
++            if(project.isConfigFlagEnabled ("JUCE_JACK", true))
++            {
++                packages.add ("jack");
++            }
++        }
+         packages.removeDuplicates (false);
+ 
+         return packages;
+@@ -563,6 +596,9 @@ private:
+         StringArray result (linuxLibs);
+ 
+         auto libraries = StringArray::fromTokens (getExternalLibrariesString(), ";", "\"'");
++#ifdef DEBIAN_JUCERPROJECT_LIBS
++        libraries.addArray(StringArray::fromTokens (DEBIAN_JUCERPROJECT_LIBS, ";", "\"'"));
++#endif
+         libraries.removeEmptyStrings();
+ 
+         for (auto& lib : libraries)



More information about the arch-commits mailing list