libopenshot-audio: use a minimal patch for gcc9 builds
This reverts commit fbb65f4884
.
This should also fix the atomic failures.
This commit is contained in:
parent
0d3a5cd4b0
commit
5b9a0bfd89
3 changed files with 162 additions and 9 deletions
23
srcpkgs/libopenshot-audio/patches/fix-std_isfinite.patch
Normal file
23
srcpkgs/libopenshot-audio/patches/fix-std_isfinite.patch
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Fix for gcc6 which does not have std::isfinite() but suggests
|
||||||
|
to use std::finite() instead.
|
||||||
|
|
||||||
|
--- JuceLibraryCode/modules/juce_core/maths/juce_MathsFunctions.h 2016-08-30 06:24:27.000000000 +0200
|
||||||
|
+++ JuceLibraryCode/modules/juce_core/maths/juce_MathsFunctions.h 2016-12-12 14:33:29.170005576 +0100
|
||||||
|
@@ -381,7 +381,7 @@
|
||||||
|
#if JUCE_WINDOWS && !JUCE_MINGW
|
||||||
|
return _finite (value) != 0;
|
||||||
|
#else
|
||||||
|
- return std::isfinite (value);
|
||||||
|
+ return finite (value);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -391,7 +391,7 @@
|
||||||
|
#if JUCE_WINDOWS && !JUCE_MINGW
|
||||||
|
return _finite (value) != 0;
|
||||||
|
#else
|
||||||
|
- return std::isfinite (value);
|
||||||
|
+ return finite (value);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
136
srcpkgs/libopenshot-audio/patches/gcc9.patch
Normal file
136
srcpkgs/libopenshot-audio/patches/gcc9.patch
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
commit fa0e4ef1c4969ac1f6c54d306e66b27a31da5b87
|
||||||
|
Author: q66 <daniel@octaforge.org>
|
||||||
|
Date: Mon Dec 23 18:23:28 2019 +0100
|
||||||
|
|
||||||
|
fix build with gcc9
|
||||||
|
|
||||||
|
Adapted from upstream.
|
||||||
|
|
||||||
|
diff --git JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||||
|
index 0df5987..ea2e990 100644
|
||||||
|
--- JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||||
|
+++ JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||||
|
@@ -108,19 +108,6 @@ public:
|
||||||
|
forcedinline uint8 getGreen() const noexcept { return components.g; }
|
||||||
|
forcedinline uint8 getBlue() const noexcept { return components.b; }
|
||||||
|
|
||||||
|
- #if JUCE_GCC && ! JUCE_CLANG
|
||||||
|
- // NB these are here as a workaround because GCC refuses to bind to packed values.
|
||||||
|
- forcedinline uint8& getAlpha() noexcept { return comps [indexA]; }
|
||||||
|
- forcedinline uint8& getRed() noexcept { return comps [indexR]; }
|
||||||
|
- forcedinline uint8& getGreen() noexcept { return comps [indexG]; }
|
||||||
|
- forcedinline uint8& getBlue() noexcept { return comps [indexB]; }
|
||||||
|
- #else
|
||||||
|
- forcedinline uint8& getAlpha() noexcept { return components.a; }
|
||||||
|
- forcedinline uint8& getRed() noexcept { return components.r; }
|
||||||
|
- forcedinline uint8& getGreen() noexcept { return components.g; }
|
||||||
|
- forcedinline uint8& getBlue() noexcept { return components.b; }
|
||||||
|
- #endif
|
||||||
|
-
|
||||||
|
//==============================================================================
|
||||||
|
/** Copies another pixel colour over this one.
|
||||||
|
|
||||||
|
@@ -339,9 +326,6 @@ private:
|
||||||
|
{
|
||||||
|
uint32 internal;
|
||||||
|
Components components;
|
||||||
|
- #if JUCE_GCC
|
||||||
|
- uint8 comps[4]; // helper struct needed because gcc does not allow references to packed union members
|
||||||
|
- #endif
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#ifndef DOXYGEN
|
||||||
|
@@ -428,10 +412,6 @@ public:
|
||||||
|
forcedinline uint8 getGreen() const noexcept { return g; }
|
||||||
|
forcedinline uint8 getBlue() const noexcept { return b; }
|
||||||
|
|
||||||
|
- forcedinline uint8& getRed() noexcept { return r; }
|
||||||
|
- forcedinline uint8& getGreen() noexcept { return g; }
|
||||||
|
- forcedinline uint8& getBlue() noexcept { return b; }
|
||||||
|
-
|
||||||
|
//==============================================================================
|
||||||
|
/** Copies another pixel colour over this one.
|
||||||
|
|
||||||
|
@@ -645,7 +625,6 @@ public:
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
forcedinline uint8 getAlpha() const noexcept { return a; }
|
||||||
|
- forcedinline uint8& getAlpha() noexcept { return a; }
|
||||||
|
|
||||||
|
forcedinline uint8 getRed() const noexcept { return 0; }
|
||||||
|
forcedinline uint8 getGreen() const noexcept { return 0; }
|
||||||
|
diff --git JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||||
|
index cd8cd36..87bf33e 100644
|
||||||
|
--- JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||||
|
+++ JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||||
|
@@ -583,10 +583,6 @@ namespace EdgeTableFillers
|
||||||
|
{
|
||||||
|
areRGBComponentsEqual = sourceColour.getRed() == sourceColour.getGreen()
|
||||||
|
&& sourceColour.getGreen() == sourceColour.getBlue();
|
||||||
|
- filler[0].set (sourceColour);
|
||||||
|
- filler[1].set (sourceColour);
|
||||||
|
- filler[2].set (sourceColour);
|
||||||
|
- filler[3].set (sourceColour);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@@ -642,7 +638,6 @@ namespace EdgeTableFillers
|
||||||
|
const Image::BitmapData& destData;
|
||||||
|
PixelType* linePixels;
|
||||||
|
PixelARGB sourceColour;
|
||||||
|
- PixelRGB filler [4];
|
||||||
|
bool areRGBComponentsEqual;
|
||||||
|
|
||||||
|
forcedinline PixelType* getPixel (const int x) const noexcept
|
||||||
|
@@ -657,47 +652,10 @@ namespace EdgeTableFillers
|
||||||
|
|
||||||
|
forcedinline void replaceLine (PixelRGB* dest, const PixelARGB colour, int width) const noexcept
|
||||||
|
{
|
||||||
|
- if (destData.pixelStride == sizeof (*dest))
|
||||||
|
- {
|
||||||
|
- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat..
|
||||||
|
- {
|
||||||
|
- memset (dest, colour.getRed(), (size_t) width * 3);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- if (width >> 5)
|
||||||
|
- {
|
||||||
|
- const int* const intFiller = reinterpret_cast<const int*> (filler);
|
||||||
|
-
|
||||||
|
- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)
|
||||||
|
- {
|
||||||
|
- dest->set (colour);
|
||||||
|
- ++dest;
|
||||||
|
- --width;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- while (width > 4)
|
||||||
|
- {
|
||||||
|
- int* d = reinterpret_cast<int*> (dest);
|
||||||
|
- *d++ = intFiller[0];
|
||||||
|
- *d++ = intFiller[1];
|
||||||
|
- *d++ = intFiller[2];
|
||||||
|
- dest = reinterpret_cast<PixelRGB*> (d);
|
||||||
|
- width -= 4;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- while (--width >= 0)
|
||||||
|
- {
|
||||||
|
- dest->set (colour);
|
||||||
|
- ++dest;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- JUCE_PERFORM_PIXEL_OP_LOOP (set (colour))
|
||||||
|
- }
|
||||||
|
+ if ((size_t) destData.pixelStride == sizeof (*dest) && areRGBComponentsEqual)
|
||||||
|
+ memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
|
||||||
|
+ else
|
||||||
|
+ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour));
|
||||||
|
}
|
||||||
|
|
||||||
|
forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept
|
|
@ -1,7 +1,7 @@
|
||||||
# Template file for 'libopenshot-audio'
|
# Template file for 'libopenshot-audio'
|
||||||
pkgname=libopenshot-audio
|
pkgname=libopenshot-audio
|
||||||
version=0.1.8
|
version=0.1.8
|
||||||
revision=2
|
revision=3
|
||||||
build_style=cmake
|
build_style=cmake
|
||||||
hostmakedepends="doxygen"
|
hostmakedepends="doxygen"
|
||||||
makedepends="alsa-lib-devel libXcursor-devel libXinerama-devel libXrandr-devel
|
makedepends="alsa-lib-devel libXcursor-devel libXinerama-devel libXrandr-devel
|
||||||
|
@ -10,17 +10,11 @@ short_desc="OpenShot audio library"
|
||||||
maintainer="Spencer Hill <spencernh77@gmail.com>"
|
maintainer="Spencer Hill <spencernh77@gmail.com>"
|
||||||
license="GPL-3.0-or-later"
|
license="GPL-3.0-or-later"
|
||||||
homepage="https://github.com/OpenShot/libopenshot-audio"
|
homepage="https://github.com/OpenShot/libopenshot-audio"
|
||||||
distfiles="https://github.com/OpenShot/libopenshot-audio/archive/v${version}.tar.gz
|
distfiles="https://github.com/OpenShot/libopenshot-audio/archive/v${version}.tar.gz"
|
||||||
https://patch-diff.githubusercontent.com/raw/OpenShot/libopenshot-audio/pull/39.patch"
|
checksum=384d0ef39c78f16d77048de3c96152321724084f978dc622675dd6bb16e15e19
|
||||||
checksum="384d0ef39c78f16d77048de3c96152321724084f978dc622675dd6bb16e15e19
|
|
||||||
ae784a96730f7cf09ba7bf29d06704ba6a0eca662d242d786b0a86a4343e9dc9"
|
|
||||||
|
|
||||||
CXXFLAGS="-I${XBPS_CROSS_BASE}/usr/include/freetype2"
|
CXXFLAGS="-I${XBPS_CROSS_BASE}/usr/include/freetype2"
|
||||||
|
|
||||||
post_extract() {
|
|
||||||
patch -p1 <../39.patch
|
|
||||||
}
|
|
||||||
|
|
||||||
libopenshot-audio-devel_package() {
|
libopenshot-audio-devel_package() {
|
||||||
short_desc+=" - development files"
|
short_desc+=" - development files"
|
||||||
depends+=" ${sourcepkg}>=${version}_${revision}"
|
depends+=" ${sourcepkg}>=${version}_${revision}"
|
||||||
|
|
Loading…
Reference in a new issue