[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