SHA256
1
0
forked from pool/audacity

Accepting request 1124404 from multimedia:apps

- Removed patches:
  vst-system-path.patch, vst3sdk-fix-include-cstdint.patch and
  vst3sdk-fix-std-atomic-for-gcc12.patch.
- Added patches:
  lib64-plugins-default-path.patch,
  vst3sdk-fix-limits-include-moduleinfoparser.patch and
  vst3sdk-fix-include-cstdint-for-gcc13.patch
- Update to 3.4.1
  This is a hotfix release. It fixes the following bugs:
  * #5467 Fix 24-bit recording.
  * #5488 Fix a crash with .aup importing.
  * #5471 #5483 Fix crossfading of clips and tracks.
  * #5473 Exporting multiple files honors sample rate settings again.
  * #5480 #5417 Fix crashes related to external program exports.
  * #5479 #5476 Fix BSD and ARM builds.
  * #5498 Ctrl+J is now a standard shortcut for joining clips.
  * #5389 Stereo tracks no longer randomly split into mono.
  * #5007 When exporting a file, the file extension is now always
    added (except for custom FFmpeg and external program exports).
  * #5516 Fix a crash when exporting Opus with older CPUs that 
    don't support AVX.
- set vst3sdk to 3.7.7_build_19
- update patchset
- update dependencies in .spec
- Update to 3.4.0
  Major changes
  * Music workflows
    Audacity now features several music related features, such as
    switching between hh:mm:ss time and Beats & Measures, and
    time-stretching clips to align them to a song's tempo.
  * Time stretching
    Hold Alt (macOS: Option) while hovering over the top third
    of a clip edge to stretch it.
  * New exporter
    Audacity now features a new export window with easier access
    to options such as sample rate and custom mapping (for 5.1 or 7.1 audio).
    Additionally, the "Browse" button uses the native file browser now!
  Other changes
  * For MP3, Audacity now always uses Joint Stereo mode, which
    always delivers the best possible quality.
  * #4720 Simplified pasting logic.
  * Simplified stereo tracks. Left and right channels now always
    have synchronized clip starts and ends, and the same sample
    rate in both channels.
  * #5014 Added cursors trimming and stretching left and right,
    and changed the I-beam cursor to be less similar to either.
  * #4448 When importing audio, the project sample rate no longer changes.
  * #5204 The spectrogram colors are now perceptually uniform, and
    the colormap has gotten a name: Roseus. It also can be used
    for dataviz outside of Audacity, see https://github.com/dofuuz/roseus
    for more info! (Thanks, Myungchul Keum)
  * New defaults: The Time Signature toolbar now gets shown,
    the solo button is set to multi-track mode, time tracks have
    a wider starting range.
  * #5291 Unsquished the Audacity logo found in some places of the app.
  * #2330 Clicking on the border of two clips no longer merges them.
  * #2530 Overdubbing on Windows fails with WASAPI with default
    Recording device.
  * #443 Built-in Opus support.
  Libraries
  * lib-time-and-pitch implements a time stretching algorithm
    originating in Staffpad.
  * Audacity now uses Conan 2.
  * Continued extracting code into libraries and modules,
    especially in the context of importing and exporting.
  Bug fixes
  * #3778 --nogap metadata no longer is ignored.
  * #4410 fixed a crash with LV2 plugins (thanks jfroyall!).
  * #2471 #4798 fixed some crashes related to macros.
  * #4769 fixed a crash when pasting in certain configurations.
  * #4677 Accessibility: GUI can be disabled again for VST2
    plugins (thanks, David Bailes!).
  * #4988 Accessibility: Restored window control IDs, improving
    NVDA compatibility (thanks again, David Bailes!).
  * #4872 fixed a crash on launch on OSX 10.9 (thanks, René Bertin!).

OBS-URL: https://build.opensuse.org/request/show/1124404
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/audacity?expand=0&rev=115
This commit is contained in:
Ana Guerrero 2023-11-09 20:35:56 +00:00 committed by Git OBS Bridge
commit e93a9bc5f4
13 changed files with 185 additions and 85 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bf6863553bd2b822d3f236acb2de32527c93a968d114c6663920d2ebf61bf743
size 57120215

3
Audacity-3.4.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4fff39cfc984a3c47f5939ed76d854e3fe5a65c63132538b3e18f6bf111de038
size 57364897

View File

@ -2,8 +2,8 @@
<service name="tar_scm" mode="disabled"> <service name="tar_scm" mode="disabled">
<param name="scm">git</param> <param name="scm">git</param>
<param name="url">https://github.com/steinbergmedia/vst3sdk/</param> <param name="url">https://github.com/steinbergmedia/vst3sdk/</param>
<param name="revision">v3.7.3_build_20</param> <param name="revision">v3.7.7_build_19</param>
<param name="version">3.7.3_build_20</param> <param name="version">3.7.7_build_19</param>
<param name="exclude">doc</param> <param name="exclude">doc</param>
<param name="filename">vst3sdk</param> <param name="filename">vst3sdk</param>
</service> </service>

View File

@ -1,3 +1,98 @@
-------------------------------------------------------------------
Thu Nov 9 10:17:39 UTC 2023 - Dave Plater <davejplater@gmail.com>
- Removed patches:
vst-system-path.patch, vst3sdk-fix-include-cstdint.patch and
vst3sdk-fix-std-atomic-for-gcc12.patch.
- Added patches:
lib64-plugins-default-path.patch,
vst3sdk-fix-limits-include-moduleinfoparser.patch and
vst3sdk-fix-include-cstdint-for-gcc13.patch
-------------------------------------------------------------------
Wed Nov 8 22:12:25 UTC 2023 - Konstantin Voinov <kv@kott.no-ip.biz>
- Update to 3.4.1
This is a hotfix release. It fixes the following bugs:
* #5467 Fix 24-bit recording.
* #5488 Fix a crash with .aup importing.
* #5471 #5483 Fix crossfading of clips and tracks.
* #5473 Exporting multiple files honors sample rate settings again.
* #5480 #5417 Fix crashes related to external program exports.
* #5479 #5476 Fix BSD and ARM builds.
* #5498 Ctrl+J is now a standard shortcut for joining clips.
* #5389 Stereo tracks no longer randomly split into mono.
* #5007 When exporting a file, the file extension is now always
added (except for custom FFmpeg and external program exports).
* #5516 Fix a crash when exporting Opus with older CPUs that
don't support AVX.
-------------------------------------------------------------------
Sun Nov 5 23:27:49 UTC 2023 - Konstantin Voinov <kv@kott.no-ip.biz>
- set vst3sdk to 3.7.7_build_19
- update patchset
- update dependencies in .spec
- Update to 3.4.0
Major changes
* Music workflows
Audacity now features several music related features, such as
switching between hh:mm:ss time and Beats & Measures, and
time-stretching clips to align them to a song's tempo.
* Time stretching
Hold Alt (macOS: Option) while hovering over the top third
of a clip edge to stretch it.
* New exporter
Audacity now features a new export window with easier access
to options such as sample rate and custom mapping (for 5.1 or 7.1 audio).
Additionally, the "Browse" button uses the native file browser now!
Other changes
* For MP3, Audacity now always uses Joint Stereo mode, which
always delivers the best possible quality.
* #4720 Simplified pasting logic.
* Simplified stereo tracks. Left and right channels now always
have synchronized clip starts and ends, and the same sample
rate in both channels.
* #5014 Added cursors trimming and stretching left and right,
and changed the I-beam cursor to be less similar to either.
* #4448 When importing audio, the project sample rate no longer changes.
* #5204 The spectrogram colors are now perceptually uniform, and
the colormap has gotten a name: Roseus. It also can be used
for dataviz outside of Audacity, see https://github.com/dofuuz/roseus
for more info! (Thanks, Myungchul Keum)
* New defaults: The Time Signature toolbar now gets shown,
the solo button is set to multi-track mode, time tracks have
a wider starting range.
* #5291 Unsquished the Audacity logo found in some places of the app.
* #2330 Clicking on the border of two clips no longer merges them.
* #2530 Overdubbing on Windows fails with WASAPI with default
Recording device.
* #443 Built-in Opus support.
Libraries
* lib-time-and-pitch implements a time stretching algorithm
originating in Staffpad.
* Audacity now uses Conan 2.
* Continued extracting code into libraries and modules,
especially in the context of importing and exporting.
Bug fixes
* #3778 --nogap metadata no longer is ignored.
* #4410 fixed a crash with LV2 plugins (thanks jfroyall!).
* #2471 #4798 fixed some crashes related to macros.
* #4769 fixed a crash when pasting in certain configurations.
* #4677 Accessibility: GUI can be disabled again for VST2
plugins (thanks, David Bailes!).
* #4988 Accessibility: Restored window control IDs, improving
NVDA compatibility (thanks again, David Bailes!).
* #4872 fixed a crash on launch on OSX 10.9 (thanks, René Bertin!).
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Jul 12 14:39:35 UTC 2023 - Andreas Schwab <schwab@suse.de> Wed Jul 12 14:39:35 UTC 2023 - Andreas Schwab <schwab@suse.de>

View File

@ -24,7 +24,7 @@
%endif %endif
Name: audacity Name: audacity
Version: 3.3.3 Version: 3.4.1
Release: 0 Release: 0
Summary: A Multi Track Digital Audio Editor Summary: A Multi Track Digital Audio Editor
License: CC-BY-3.0 AND GPL-2.0-or-later AND GPL-3.0-only License: CC-BY-3.0 AND GPL-2.0-or-later AND GPL-3.0-only
@ -33,16 +33,16 @@ URL: http://audacityteam.org/
Source: https://github.com/audacity/audacity/archive/Audacity-%{version}.tar.gz Source: https://github.com/audacity/audacity/archive/Audacity-%{version}.tar.gz
Source1: audacity-license-nyquist Source1: audacity-license-nyquist
Source2: audacity-rpmlintrc Source2: audacity-rpmlintrc
Source3: vst3sdk-3.7.3_build_20.tar.xz Source3: vst3sdk-3.7.7_build_19.tar.xz
# PATCH-FIX-OPENSUSE audacity-no_buildstamp.patch davejplater@gmail.com -- Remove the buildstamp. # PATCH-FIX-OPENSUSE audacity-no_buildstamp.patch davejplater@gmail.com -- Remove the buildstamp.
Patch0: audacity-no_buildstamp.patch Patch0: audacity-no_buildstamp.patch
# PATCH-FIX-UPSTREAM audacity-no_return_in_nonvoid.patch - Fix false positive errors Two new gcc10 ones ignoring assert # PATCH-FIX-UPSTREAM audacity-no_return_in_nonvoid.patch - Fix false positive errors Two new gcc10 ones ignoring assert
Patch1: audacity-no_return_in_nonvoid.patch Patch1: audacity-no_return_in_nonvoid.patch
Patch2: mod-script-pipe-disable-rpath.patch Patch2: mod-script-pipe-disable-rpath.patch
# PATCH-FIX-OPENSUSE vst-system-path.patch - search fo vsts in /usr/lib64 in x86_64 and ARM system # PATCH-FIX-OPENSUSE vst-system-path.patch - search fo vsts in /usr/lib64 in x86_64 and ARM system
Patch3: vst-system-path.patch Patch3: lib64-plugins-default-path.patch
Patch94: vst3sdk-fix-std-atomic-for-gcc12.patch Patch94: vst3sdk-fix-include-cstdint-for-gcc13.patch
Patch95: vst3sdk-fix-include-cstdint.patch Patch95: vst3sdk-fix-limits-include-moduleinfoparser.patch
BuildRequires: cmake >= 3.16 BuildRequires: cmake >= 3.16
BuildRequires: desktop-file-utils BuildRequires: desktop-file-utils
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@ -51,6 +51,7 @@ BuildRequires: hicolor-icon-theme
BuildRequires: libmp3lame-devel BuildRequires: libmp3lame-devel
BuildRequires: portmidi-devel BuildRequires: portmidi-devel
BuildRequires: wxWidgets-3_2-nostl-devel BuildRequires: wxWidgets-3_2-nostl-devel
BuildRequires: pkgconfig(RapidJSON)
BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(flac) >= 1.3.1 BuildRequires: pkgconfig(flac) >= 1.3.1
@ -69,6 +70,7 @@ BuildRequires: pkgconfig(lv2) >= 1.16.0
BuildRequires: pkgconfig(mad) BuildRequires: pkgconfig(mad)
BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(opus) BuildRequires: pkgconfig(opus)
BuildRequires: pkgconfig(opusfile)
BuildRequires: pkgconfig(portaudio-2.0) BuildRequires: pkgconfig(portaudio-2.0)
BuildRequires: pkgconfig(serd-0) >= 0.30.2 BuildRequires: pkgconfig(serd-0) >= 0.30.2
BuildRequires: pkgconfig(shared-mime-info) BuildRequires: pkgconfig(shared-mime-info)
@ -86,6 +88,7 @@ BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(vorbisenc) BuildRequires: pkgconfig(vorbisenc)
BuildRequires: pkgconfig(vorbisfile) BuildRequires: pkgconfig(vorbisfile)
BuildRequires: pkgconfig(wavpack) BuildRequires: pkgconfig(wavpack)
BuildRequires: pkgconfig(zlib)
# WARNING lilv-0 >= 0.24.6;lv2 >= 1.16.0;serd-0 >= 0.30.2;sord-0 >= 0.16.4;sratom-0 >= 0.6.4;suil-0 >= 0.10.6 # WARNING lilv-0 >= 0.24.6;lv2 >= 1.16.0;serd-0 >= 0.30.2;sord-0 >= 0.16.4;sratom-0 >= 0.6.4;suil-0 >= 0.10.6
# check these versions after every update otherwise audacity builds libsuil itself. # check these versions after every update otherwise audacity builds libsuil itself.

View File

@ -0,0 +1,48 @@
diff -ur audacity-Audacity-3.4.0.orig/cmake-proxies/lv2/CMakeLists.txt audacity-Audacity-3.4.0/cmake-proxies/lv2/CMakeLists.txt
--- audacity-Audacity-3.4.0.orig/cmake-proxies/lv2/CMakeLists.txt 2023-11-02 04:14:25.000000000 -0700
+++ audacity-Audacity-3.4.0/cmake-proxies/lv2/CMakeLists.txt 2023-11-05 16:29:31.976019263 -0800
@@ -217,7 +217,7 @@
elseif( UNIX )
set( LILV_PATH_SEP ":" )
set( LILV_DIR_SEP "/" )
- set( LILV_DEFAULT_LV2_PATH "~/.lv2:/usr/lib/lv2:/usr/local/lib/lv2" )
+ set( LILV_DEFAULT_LV2_PATH "~/.lv2:/usr/lib64/lv2:/usr/local/lib/lv2" )
set( SUIL_MODULE_DIR "" )
set( SUIL_DIR_SEP "" )
diff -ur audacity-Audacity-3.4.0.orig/libraries/lib-vst/VSTEffectsModule.cpp audacity-Audacity-3.4.0/libraries/lib-vst/VSTEffectsModule.cpp
--- audacity-Audacity-3.4.0.orig/libraries/lib-vst/VSTEffectsModule.cpp 2023-11-02 04:14:25.000000000 -0700
+++ audacity-Audacity-3.4.0/libraries/lib-vst/VSTEffectsModule.cpp 2023-11-05 16:28:29.117199672 -0800
@@ -238,7 +238,7 @@
pathList.push_back(wxT(LIBDIR) wxT("/vst"));
// These are the defaults used by other hosts
- pathList.push_back(wxT("/usr/lib/vst"));
+ pathList.push_back(wxT("/usr/lib64/vst"));
pathList.push_back(wxT("/usr/local/lib/vst"));
pathList.push_back(wxGetHomeDir() + wxFILE_SEP_PATH + wxT(".vst"));
}
diff -ur audacity-Audacity-3.4.0.orig/libraries/lib-vst3/module_linux.cpp audacity-Audacity-3.4.0/libraries/lib-vst3/module_linux.cpp
--- audacity-Audacity-3.4.0.orig/libraries/lib-vst3/module_linux.cpp 2023-11-02 04:14:25.000000000 -0700
+++ audacity-Audacity-3.4.0/libraries/lib-vst3/module_linux.cpp 2023-11-05 16:27:31.894953308 -0800
@@ -278,7 +278,7 @@
* Application : /$APPFOLDER/vst3/
*/
- const auto systemPaths = {"/usr/lib/vst3/", "/usr/local/lib/vst3/"};
+ const auto systemPaths = {"/usr/lib64/vst3/", "/usr/local/lib/vst3/"};
PathList list;
if (auto homeDir = getenv ("HOME"))
diff -ur audacity-Audacity-3.4.0.orig/libraries/lib-vst3/VST3EffectsModule.cpp audacity-Audacity-3.4.0/libraries/lib-vst3/VST3EffectsModule.cpp
--- audacity-Audacity-3.4.0.orig/libraries/lib-vst3/VST3EffectsModule.cpp 2023-11-02 04:14:25.000000000 -0700
+++ audacity-Audacity-3.4.0/libraries/lib-vst3/VST3EffectsModule.cpp 2023-11-05 16:27:31.894953308 -0800
@@ -169,7 +169,7 @@
pathList.push_back("/Network/Library/Audio/Plug-ins/VST3/");
#elif __WXGTK__
pathList.push_back(wxGetHomeDir() + "/.vst3/");
- pathList.push_back("/usr/lib/vst3/");
+ pathList.push_back("/usr/lib64/vst3/");
pathList.push_back("/usr/local/lib/vst3/");
#endif

View File

@ -1,36 +0,0 @@
diff -ur audacity-Audacity-3.3.3.orig/libraries/lib-vst3/module_linux.cpp audacity-Audacity-3.3.3/libraries/lib-vst3/module_linux.cpp
--- audacity-Audacity-3.3.3.orig/libraries/lib-vst3/module_linux.cpp 2023-06-08 06:17:02.000000000 -0700
+++ audacity-Audacity-3.3.3/libraries/lib-vst3/module_linux.cpp 2023-06-08 15:55:40.689042067 -0700
@@ -278,7 +278,7 @@
* Application : /$APPFOLDER/vst3/
*/
- const auto systemPaths = {"/usr/lib/vst3/", "/usr/local/lib/vst3/"};
+ const auto systemPaths = {"/usr/lib64/vst3/", "/usr/local/lib/vst3/"};
PathList list;
if (auto homeDir = getenv ("HOME"))
diff -ur audacity-Audacity-3.3.3.orig/libraries/lib-vst3/VST3EffectsModule.cpp audacity-Audacity-3.3.3/libraries/lib-vst3/VST3EffectsModule.cpp
--- audacity-Audacity-3.3.3.orig/libraries/lib-vst3/VST3EffectsModule.cpp 2023-06-08 06:17:02.000000000 -0700
+++ audacity-Audacity-3.3.3/libraries/lib-vst3/VST3EffectsModule.cpp 2023-06-08 15:55:54.309041756 -0700
@@ -169,7 +169,7 @@
pathList.push_back("/Network/Library/Audio/Plug-ins/VST3/");
#elif __WXGTK__
pathList.push_back(wxGetHomeDir() + "/.vst3/");
- pathList.push_back("/usr/lib/vst3/");
+ pathList.push_back("/usr/lib64/vst3/");
pathList.push_back("/usr/local/lib/vst3/");
#endif
diff -ur audacity-Audacity-3.3.3.orig/src/effects/VST/VSTEffect.cpp audacity-Audacity-3.3.3/src/effects/VST/VSTEffect.cpp
--- audacity-Audacity-3.3.3.orig/src/effects/VST/VSTEffect.cpp 2023-06-08 06:17:02.000000000 -0700
+++ audacity-Audacity-3.3.3/src/effects/VST/VSTEffect.cpp 2023-06-08 15:58:57.777037560 -0700
@@ -346,7 +346,7 @@
pathList.push_back(wxT(LIBDIR) wxT("/vst"));
// These are the defaults used by other hosts
- pathList.push_back(wxT("/usr/lib/vst"));
+ pathList.push_back(wxT("/usr/lib64/vst"));
pathList.push_back(wxT("/usr/local/lib/vst"));
pathList.push_back(wxGetHomeDir() + wxFILE_SEP_PATH + wxT(".vst"));
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d7cf5aa32803d0b9f09cd257400d7b706350c0deff6bd5cdad61a38a1bf40d46
size 14407116

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:78eec6a80bf51ffc30ef3a1f03075ee095649df2d1df37cb592beb15a057f5fa
size 14548336

View File

@ -0,0 +1,13 @@
Submodule public.sdk contains modified content
diff --git a/public.sdk/source/vst/moduleinfo/moduleinfo.h b/public.sdk/source/vst/moduleinfo/moduleinfo.h
index ecf528b..49f2827 100644
--- a/public.sdk/source/vst/moduleinfo/moduleinfo.h
+++ b/public.sdk/source/vst/moduleinfo/moduleinfo.h
@@ -39,6 +39,7 @@
#include <string>
#include <vector>
+#include <cstdint>
//------------------------------------------------------------------------
namespace Steinberg {

View File

@ -1,13 +0,0 @@
Submodule public.sdk contains modified content
diff --git a/public.sdk/source/vst/utility/stringconvert.h b/public.sdk/source/vst/utility/stringconvert.h
index ff910aa..9dbd984 100644
--- a/public.sdk/source/vst/utility/stringconvert.h
+++ b/public.sdk/source/vst/utility/stringconvert.h
@@ -38,6 +38,7 @@
#include "pluginterfaces/vst/vsttypes.h"
#include <string>
+#include <cstdint>
//------------------------------------------------------------------------
namespace VST3 {

View File

@ -0,0 +1,13 @@
Submodule public.sdk contains modified content
diff --git a/public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp b/public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp
index b49b471..c99b7e2 100644
--- a/public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp
+++ b/public.sdk/source/vst/moduleinfo/moduleinfoparser.cpp
@@ -39,6 +39,7 @@
#include "jsoncxx.h"
#include "pluginterfaces/base/ipluginbase.h"
#include <stdexcept>
+#include <limits>
//------------------------------------------------------------------------
namespace Steinberg::ModuleInfoLib {

View File

@ -1,23 +0,0 @@
diff -ur vst3sdk-3.7.4_build_25.orig/pluginterfaces/base/funknown.cpp vst3sdk-3.7.4_build_25/pluginterfaces/base/funknown.cpp
--- vst3sdk-3.7.4_build_25.orig/pluginterfaces/base/funknown.cpp 2022-01-18 10:42:29.305860504 +1000
+++ vst3sdk-3.7.4_build_25/pluginterfaces/base/funknown.cpp 2022-05-17 10:22:42.306950103 +1000
@@ -88,7 +88,7 @@
int32 PLUGIN_API atomicAdd (int32& var, int32 d)
{
#if SMTG_USE_STDATOMIC_H
- return atomic_fetch_add (reinterpret_cast<atomic_int_least32_t*> (&var), d) + d;
+ return std::atomic_fetch_add (reinterpret_cast<std::atomic_int_least32_t*> (&var), d) + d;
#else
#if SMTG_OS_WINDOWS
#ifdef __MINGW32__
diff -ur vst3sdk-3.7.4_build_25.orig/pluginterfaces/base/funknown.h vst3sdk-3.7.4_build_25/pluginterfaces/base/funknown.h
--- vst3sdk-3.7.4_build_25.orig/pluginterfaces/base/funknown.h 2022-01-18 10:42:29.305860504 +1000
+++ vst3sdk-3.7.4_build_25/pluginterfaces/base/funknown.h 2022-05-17 10:22:52.071191240 +1000
@@ -20,6 +20,7 @@
#include "pluginterfaces/base/ftypes.h"
#include "pluginterfaces/base/smartpointer.h"
#include <cstring>
+#include <atomic>
#if SMTG_CPP11_STDLIBSUPPORT
#include <type_traits>