audacity: update to 3.1.3 (#7428)

This commit is contained in:
davidkaroly
2022-11-17 21:42:57 +01:00
committed by GitHub
parent 216ac58ef9
commit 17ac36f767
3 changed files with 378 additions and 310 deletions

View File

@@ -4,11 +4,11 @@ recording tasks such as making ringtones, mixing stero tracks, transferring \
tapes and records to computer or CD, splitting recordings into separate \
tracks and more."
HOMEPAGE="https://www.audacityteam.org"
COPYRIGHT="1999-2020 by Audacity Team"
COPYRIGHT="1999-2021 by Audacity Team"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://github.com/audacity/audacity/archive/refs/tags/Audacity-$portVersion.tar.gz"
CHECKSUM_SHA256="cdb4800c8e9d1d4ca19964caf8d24000f80286ebd8a4db566c2622449744c099"
CHECKSUM_SHA256="07aed333a20b8df381d5c0a167840883fff8ef65f5e5f71e654c0925d6c60de8"
SOURCE_DIR="audacity-Audacity-$portVersion"
PATCHES="audacity-$portVersion.patchset"
@@ -36,12 +36,17 @@ REQUIRES="
lib:libgtk_3$secondaryArchSuffix
lib:libharfbuzz$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
# lib:libid3tag$secondaryArchSuffix -- missing pkgconfig
lib:libid3tag$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
# lib:libmad$secondaryArchSuffix -- missing pkgconfig
lib:libmad$secondaryArchSuffix
lib:libmp3lame$secondaryArchSuffix
lib:libogg$secondaryArchSuffix
lib:libopus$secondaryArchSuffix
lib:libpango_1.0$secondaryArchSuffix
lib:libportaudio$secondaryArchSuffix
lib:libportmidi$secondaryArchSuffix
lib:libsndfile$secondaryArchSuffix
lib:libuuid$secondaryArchSuffix
lib:libvorbis$secondaryArchSuffix
lib:libX11$secondaryArchSuffix
lib:libz$secondaryArchSuffix
@@ -58,10 +63,18 @@ BUILD_REQUIRES="
devel:libglib_2.0$secondaryArchSuffix
devel:libgtk_3$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
# devel:libid3tag$secondaryArchSuffix
devel:libid3tag$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
# devel:libmad$secondaryArchSuffix
devel:libmad$secondaryArchSuffix
devel:libmp3lame$secondaryArchSuffix
devel:libogg$secondaryArchSuffix
devel:libopus$secondaryArchSuffix
devel:libportaudio$secondaryArchSuffix
devel:libportmidi$secondaryArchSuffix
devel:libsndfile$secondaryArchSuffix
devel:libuuid$secondaryArchSuffix
devel:libvorbis$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:awk
@@ -77,18 +90,21 @@ BUILD_PREREQUIRES="
cmd:wx_config$secondaryArchSuffix
"
defineDebugInfoPackage audacity$secondaryArchSuffix \
$binDir/audacity$secondaryArchSuffix
BUILD()
{
mkdir -p build/src/private
cmake -S . -B build -G Ninja \
$cmakeDirArgs \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_MIDI=OFF \
-Daudacity_use_pa_oss=NO -Daudacity_use_pa_jack=off \
-Daudacity_use_ffmpeg=off -Daudacity_use_midi=off -Daudacity_use_pch=no
-Daudacity_conan_enabled=Off \
-Daudacity_use_pch=no
cmake --build build $jobArgs
}
INSTALL()
{
cmake --install build $jobArgs
cmake --install build
}

View File

@@ -1,300 +0,0 @@
From 3cd38dec6acc320d47361f78f9ec7ffa759689a9 Mon Sep 17 00:00:00 2001
From: Ken Mays <kmays2000@gmail.com>
Date: Sat, 25 Dec 2021 06:19:07 +0200
Subject: Fix OSS detect for Haiku
diff --git a/lib-src/portaudio-v19/configure b/lib-src/portaudio-v19/configure
index 9d32fcc..8a2b037 100755
--- a/lib-src/portaudio-v19/configure
+++ b/lib-src/portaudio-v19/configure
@@ -15373,7 +15373,7 @@ fi
have_libossaudio=no
have_oss=no
if test "x$with_oss" != "xno"; then
- for ac_header in sys/soundcard.h linux/soundcard.h machine/soundcard.h
+ for ac_header in private/audio/soundcard.h sys/soundcard.h linux/soundcard.h machine/soundcard.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
diff --git a/lib-src/portaudio-v19/configure.in b/lib-src/portaudio-v19/configure.in
index a3628bd..e15a8c5 100644
--- a/lib-src/portaudio-v19/configure.in
+++ b/lib-src/portaudio-v19/configure.in
@@ -127,7 +127,7 @@ fi
have_libossaudio=no
have_oss=no
if test "x$with_oss" != "xno"; then
- AC_CHECK_HEADERS([sys/soundcard.h linux/soundcard.h machine/soundcard.h], [have_oss=yes])
+ AC_CHECK_HEADERS([private/audio/soundcard.h sys/soundcard.h linux/soundcard.h machine/soundcard.h], [have_oss=yes])
if test "x$have_oss" = "xyes"; then
AC_CHECK_LIB(ossaudio, _oss_ioctl, have_libossaudio=yes, have_libossaudio=no)
fi
--
2.37.3
From 9c3fa9c8469622f831072843499c49dccc0969fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Revol?= <revol@free.fr>
Date: Wed, 30 Jul 2014 01:38:19 +0200
Subject: Add a case for Haiku in configure.in
diff --git a/lib-src/portaudio-v19/configure b/lib-src/portaudio-v19/configure
index 8a2b037..5853485 100755
--- a/lib-src/portaudio-v19/configure
+++ b/lib-src/portaudio-v19/configure
@@ -16144,6 +16144,21 @@ fi
SHARED_FLAGS=""
;;
+ haiku* )
+
+ printf "%s\n" "#define PA_USE_SKELETON 1" >>confdefs.h
+
+
+ CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix"
+ # -Werror
+ LIBS="-lmedia"
+
+ SHARED_FLAGS="$LIBS -shared"
+ #CFLAGS="$CFLAGS"
+ OTHER_OBJS="src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o"
+ PADLL="libportaudio.so"
+ ;;
+
*)
CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix"
diff --git a/lib-src/portaudio-v19/configure.in b/lib-src/portaudio-v19/configure.in
index e15a8c5..ceff5b2 100644
--- a/lib-src/portaudio-v19/configure.in
+++ b/lib-src/portaudio-v19/configure.in
@@ -393,6 +393,22 @@ case "${host_os}" in
SHARED_FLAGS=""
;;
+ haiku* )
+ dnl Haiku configuration
+
+ dnl AC_DEFINE(PA_USE_HAIKU,1)
+ AC_DEFINE(PA_USE_SKELETON,1)
+
+ CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix"
+ # -Werror
+ LIBS="-lmedia"
+
+ SHARED_FLAGS="$LIBS -shared"
+ #CFLAGS="$CFLAGS"
+ OTHER_OBJS="src/os/unix/pa_unix_hostapis.o src/os/unix/pa_unix_util.o"
+ PADLL="libportaudio.so"
+ ;;
+
*)
dnl Unix configuration
--
2.37.3
From 2c8cae10a82d44f5dcc5c0ca21d91d310bac66b6 Mon Sep 17 00:00:00 2001
From: Ian McInerney <ian.s.mcinerney@ieee.org>
Date: Fri, 8 Apr 2022 01:08:12 +0100
Subject: Remove custom languages in wx 3.1.6 and above
Basque was added as a language with identifier "eu" into wx 3.1.6, so
there is no more need to provide custom languages. Additionally, this
struct changed formatting in 3.1.6, meaning it threw a compile error
when included (so it would have to be fixed if still needed).
diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp
index 661ab7e..c5738eb 100644
--- a/src/AudacityApp.cpp
+++ b/src/AudacityApp.cpp
@@ -964,12 +964,10 @@ locations of the missing files.").Format( missingFileName ) ;
#define WL(lang,sublang)
#endif
-#if wxCHECK_VERSION(3, 0, 1)
+#if wxCHECK_VERSION(3, 0, 1) && !wxCHECK_VERSION(3, 1, 6)
wxLanguageInfo userLangs[] =
{
- // Bosnian is defined in wxWidgets already
-// { wxLANGUAGE_USER_DEFINED, wxT("bs"), WL(0, SUBLANG_DEFAULT) wxT("Bosnian"), wxLayout_LeftToRight },
-
+ // Included upstream in version 3.1.6
{ wxLANGUAGE_USER_DEFINED, wxT("eu"), WL(0, SUBLANG_DEFAULT) wxT("Basque"), wxLayout_LeftToRight },
};
#endif
@@ -1270,7 +1268,7 @@ bool AudacityApp::OnInit()
//
// TODO: The whole Language initialization really need to be reworked.
// It's all over the place.
-#if wxCHECK_VERSION(3, 0, 1)
+#if wxCHECK_VERSION(3, 0, 1) && !wxCHECK_VERSION(3, 1, 6)
for (size_t i = 0, cnt = WXSIZEOF(userLangs); i < cnt; i++)
{
wxLocale::AddLanguage(userLangs[i]);
--
2.37.3
From f645a5ac4bc6a95d8c3bff9441c0a4dc9f9fc04a Mon Sep 17 00:00:00 2001
From: Ian McInerney <ian.s.mcinerney@ieee.org>
Date: Fri, 8 Apr 2022 01:27:52 +0100
Subject: Call the proper wxBitmap constructor for XPM data
wxBitmap back to at least 3.0.0 did not have a constructor for an XPM
image that took a size parameter, it would only take the XPM data
itself.
I don't know how this compiled until now, but it doesn't anymore when
the size is included and built against wx 3.1.6 in Fedora.
diff --git a/src/MixerBoard.cpp b/src/MixerBoard.cpp
index be46e63..c6d0296 100644
--- a/src/MixerBoard.cpp
+++ b/src/MixerBoard.cpp
@@ -1304,7 +1304,7 @@ void MixerBoard::LoadMusicalInstruments()
wxMemoryDC dc;
for (const auto &data : table) {
- auto bmp = std::make_unique<wxBitmap>(data.bitmap,24);
+ auto bmp = std::make_unique<wxBitmap>(data.bitmap);
dc.SelectObject(*bmp);
AColor::Bevel(dc, false, bev);
mMusicalInstruments.push_back(std::make_unique<MusicalInstrument>(
--
2.37.3
From 691abd21f920d776dd75048aeb893517635863af Mon Sep 17 00:00:00 2001
From: Paul Licameli <paul.licameli@audacityteam.org>
Date: Fri, 14 May 2021 16:22:28 -0400
Subject: Add #include needed to build on Fedora 34, recommended by Be-ing
diff --git a/include/audacity/Types.h b/include/audacity/Types.h
index e137ea9..647c829 100644
--- a/include/audacity/Types.h
+++ b/include/audacity/Types.h
@@ -44,6 +44,7 @@
#include <algorithm>
#include <functional>
+#include <limits>
#include <type_traits>
#include <vector>
#include <wx/debug.h> // for wxASSERT
--
2.37.3
From bf63b0cd604d836c09ec0202205c07a0a0c5f487 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Sun, 6 Nov 2022 18:02:52 +0100
Subject: portaudio: fix build on Haiku
diff --git a/cmake-proxies/portaudio-v19/CMakeLists.txt b/cmake-proxies/portaudio-v19/CMakeLists.txt
index d46ae06..5f1aa7a 100644
--- a/cmake-proxies/portaudio-v19/CMakeLists.txt
+++ b/cmake-proxies/portaudio-v19/CMakeLists.txt
@@ -118,7 +118,7 @@ list( APPEND SOURCES
${TARGET_ROOT}/src/hostapi/coreaudio/pa_mac_core_utilities.c
>
- $<$<PLATFORM_ID:Darwin,Linux,FreeBSD,CYGWIN>:
+ $<$<PLATFORM_ID:Darwin,Linux,FreeBSD,CYGWIN,Haiku>:
${TARGET_ROOT}/src/os/unix/pa_unix_hostapis.c
${TARGET_ROOT}/src/os/unix/pa_unix_util.c
>
--
2.37.3
From a8d2d4ad48cf78315dddc618d69f657ea926450e Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Sun, 6 Nov 2022 18:02:52 +0100
Subject: nyquist: fix build on Haiku
diff --git a/lib-src/libnyquist/nyquist/xlisp/xlisp.h b/lib-src/libnyquist/nyquist/xlisp/xlisp.h
index 6bbf324..1daa2c6 100644
--- a/lib-src/libnyquist/nyquist/xlisp/xlisp.h
+++ b/lib-src/libnyquist/nyquist/xlisp/xlisp.h
@@ -177,6 +177,10 @@ extern long ptrtoabs();
#endif
#endif
+#ifdef __HAIKU__
+#define XL_LITTLE_ENDIAN
+#endif
+
/* default important definitions */
#ifndef NNODES
#define NNODES 1000
--
2.37.3
From 8117f0a0e28851e4a25f31f125d39391015c3e65 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Sun, 6 Nov 2022 18:02:52 +0100
Subject: fix GTK include paths and libs
diff --git a/cmake-proxies/wxWidgets/CMakeLists.txt b/cmake-proxies/wxWidgets/CMakeLists.txt
index 94d19dd..6dcffc8 100644
--- a/cmake-proxies/wxWidgets/CMakeLists.txt
+++ b/cmake-proxies/wxWidgets/CMakeLists.txt
@@ -205,6 +205,10 @@ endif()
if( "${wxTOOLKIT}" MATCHES "GTK." )
pkg_check_modules( GTK REQUIRED IMPORTED_TARGET GLOBAL ${gtk} )
pkg_check_modules( GLIB REQUIRED IMPORTED_TARGET GLOBAL ${glib} )
+
+ list( APPEND INCLUDES ${GTK_INCLUDE_DIRS} )
+ list( APPEND LINKDIRS ${GTK_LIB_DIR} )
+ list( APPEND LIBRARIES ${GTK_LIBRARIES} )
endif()
target_include_directories( ${TARGET} INTERFACE ${INCLUDES} )
--
2.37.3
From d31d3b29e8a77b1b703cc58ee867caf6e1b37651 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Sun, 6 Nov 2022 18:02:52 +0100
Subject: fix build for AudioIO.cpp
diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp
index 0187e39..feb62bf 100644
--- a/src/AudioIO.cpp
+++ b/src/AudioIO.cpp
@@ -821,7 +821,7 @@ static double SystemTime(bool usingAlsa)
if (usingAlsa) {
struct timespec now;
// CLOCK_MONOTONIC_RAW is unaffected by NTP or adj-time
- clock_gettime(CLOCK_MONOTONIC_RAW, &now);
+ clock_gettime(CLOCK_MONOTONIC, &now);
//return now.tv_sec + now.tv_nsec * 0.000000001;
return (now.tv_sec + now.tv_nsec * 0.000000001) - streamStartTime;
}
--
2.37.3
From cffae938201f9bf330e38eba571e7207b4c35bbe Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Sun, 6 Nov 2022 18:02:52 +0100
Subject: add dummy RevisionIdent.h
diff --git a/include/RevisionIdent.h b/include/RevisionIdent.h
new file mode 100644
index 0000000..e69de29
--
2.37.3

View File

@@ -0,0 +1,352 @@
From 4260b97c697d780999812ae4fb19f2c6e51fe0b7 Mon Sep 17 00:00:00 2001
From: Ian McInerney <ian.s.mcinerney@ieee.org>
Date: Fri, 8 Apr 2022 01:08:12 +0100
Subject: Remove custom languages in wx 3.1.6 and above
Basque was added as a language with identifier "eu" into wx 3.1.6, so
there is no more need to provide custom languages. Additionally, this
struct changed formatting in 3.1.6, meaning it threw a compile error
when included (so it would have to be fixed if still needed).
diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp
index 13b50e8..7d45fd2 100644
--- a/src/AudacityApp.cpp
+++ b/src/AudacityApp.cpp
@@ -991,12 +991,10 @@ void AudacityApp::OnTimer(wxTimerEvent& WXUNUSED(event))
#define WL(lang,sublang)
#endif
-#if wxCHECK_VERSION(3, 0, 1)
+#if wxCHECK_VERSION(3, 0, 1) && !wxCHECK_VERSION(3, 1, 6)
wxLanguageInfo userLangs[] =
{
- // Bosnian is defined in wxWidgets already
-// { wxLANGUAGE_USER_DEFINED, wxT("bs"), WL(0, SUBLANG_DEFAULT) wxT("Bosnian"), wxLayout_LeftToRight },
-
+ // Included upstream in version 3.1.6
{ wxLANGUAGE_USER_DEFINED, wxT("eu"), WL(0, SUBLANG_DEFAULT) wxT("Basque"), wxLayout_LeftToRight },
};
#endif
@@ -1317,7 +1315,7 @@ bool AudacityApp::OnInit()
//
// TODO: The whole Language initialization really need to be reworked.
// It's all over the place.
-#if wxCHECK_VERSION(3, 0, 1)
+#if wxCHECK_VERSION(3, 0, 1) && !wxCHECK_VERSION(3, 1, 6)
for (size_t i = 0, cnt = WXSIZEOF(userLangs); i < cnt; i++)
{
wxLocale::AddLanguage(userLangs[i]);
--
2.37.3
From 1ba608cd73bc261de59e3d61fee64cdd8f7b0a0a Mon Sep 17 00:00:00 2001
From: Ian McInerney <ian.s.mcinerney@ieee.org>
Date: Fri, 8 Apr 2022 01:27:52 +0100
Subject: Call the proper wxBitmap constructor for XPM data
wxBitmap back to at least 3.0.0 did not have a constructor for an XPM
image that took a size parameter, it would only take the XPM data
itself.
I don't know how this compiled until now, but it doesn't anymore when
the size is included and built against wx 3.1.6 in Fedora.
diff --git a/src/MixerBoard.cpp b/src/MixerBoard.cpp
index 0f3c67b..b5b9e6b 100644
--- a/src/MixerBoard.cpp
+++ b/src/MixerBoard.cpp
@@ -1314,7 +1314,7 @@ void MixerBoard::LoadMusicalInstruments()
wxMemoryDC dc;
for (const auto &data : table) {
- auto bmp = std::make_unique<wxBitmap>(data.bitmap,24);
+ auto bmp = std::make_unique<wxBitmap>(data.bitmap);
dc.SelectObject(*bmp);
AColor::Bevel(dc, false, bev);
mMusicalInstruments.push_back(std::make_unique<MusicalInstrument>(
--
2.37.3
From 5b158a877e36331823d11ee6306b14f1ce8c2554 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Mon, 7 Nov 2022 14:27:23 +0100
Subject: nyquist: fix build on Haiku
diff --git a/lib-src/libnyquist/nyquist/xlisp/xlisp.h b/lib-src/libnyquist/nyquist/xlisp/xlisp.h
index 44d52c3..e43f2ce 100644
--- a/lib-src/libnyquist/nyquist/xlisp/xlisp.h
+++ b/lib-src/libnyquist/nyquist/xlisp/xlisp.h
@@ -27,6 +27,10 @@ extern "C" {
#include <ctype.h>
#include <setjmp.h>
+#ifdef __HAIKU__
+#include <stdint.h>
+#endif
+
/* NNODES number of nodes to allocate in each request (1000) */
/* EDEPTH evaluation stack depth (2000) */
/* ADEPTH argument stack depth (1000) */
@@ -188,6 +192,10 @@ extern long ptrtoabs();
#endif
#endif
+#ifdef __HAIKU__
+#define XL_LITTLE_ENDIAN
+#endif
+
/* default important definitions */
#ifndef NNODES
#define NNODES 1000
--
2.37.3
From e6836c68bfa510ed9ec077b7672ffbd8a4b6729b Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Mon, 7 Nov 2022 14:17:48 +0100
Subject: portmixer: fix build on Haiku
diff --git a/cmake-proxies/cmake-modules/FindOSS.cmake b/cmake-proxies/cmake-modules/FindOSS.cmake
index b6e061a..9c747d0 100644
--- a/cmake-proxies/cmake-modules/FindOSS.cmake
+++ b/cmake-proxies/cmake-modules/FindOSS.cmake
@@ -3,6 +3,10 @@ A module to look for OSS
]]
if( NOT OSS_FOUND )
+ find_path(HAIKU_OSS_INCLUDE_DIR "private/audio/soundcard.h"
+ HINTS "/system/develop/headers"
+ )
+
find_path(LINUX_OSS_INCLUDE_DIR "linux/soundcard.h"
HINTS "/usr/include" "/usr/local/include"
)
@@ -15,11 +19,17 @@ if( NOT OSS_FOUND )
HINTS "/usr/include" "/usr/local/include"
)
+ set( HAVE_HAIKU_SOUNDCARD_H No CACHE BOOL "private/audio/soundcard.h is available" FORCE )
set( HAVE_SYS_SOUNDCARD_H No CACHE BOOL "sys/soundcard.h is available" FORCE )
set( HAVE_LINUX_SOUNDCARD_H No CACHE BOOL "linux/soundcard.h is available" FORCE )
set( HAVE_MACHINE_SOUNDCARD_H No CACHE BOOL "machine/soundcard.h is available" FORCE )
- if( LINUX_OSS_INCLUDE_DIR )
+ if( HAIKU_OSS_INCLUDE_DIR )
+ set( OSS_FOUND True )
+ set( OSS_INCLUDE_DIR ${HAIKU_OSS_INCLUDE_DIR} )
+ set( HAVE_HAIKU_SOUNDCARD_H Yes CACHE BOOL "private/audio/soundcard.h is available" FORCE )
+ list( APPEND OSS_DEFINITIONS HAVE_HAIKU_SOUNDCARD_H=1 )
+ elseif( LINUX_OSS_INCLUDE_DIR )
set( OSS_FOUND True )
set( OSS_INCLUDE_DIR ${LINUX_OSS_INCLUDE_DIR} )
set( HAVE_LINUX_SOUNDCARD_H Yes CACHE BOOL "sys/soundcard.h is available" FORCE )
diff --git a/lib-src/portmixer/src/px_unix_oss.c b/lib-src/portmixer/src/px_unix_oss.c
index 978f27b..eb44dce 100644
--- a/lib-src/portmixer/src/px_unix_oss.c
+++ b/lib-src/portmixer/src/px_unix_oss.c
@@ -46,7 +46,9 @@
#include <sys/ioctl.h>
#include <ctype.h>
-#if defined(HAVE_SYS_SOUNDCARD_H)
+#if defined(HAVE_HAIKU_SOUNDCARD_H)
+# include <private/audio/soundcard.h>
+#elif defined(HAVE_SYS_SOUNDCARD_H)
# include <sys/soundcard.h>
#elif defined(HAVE_LINUX_SOUNDCARD_H)
# include <linux/soundcard.h>
--
2.37.3
From 495fe0214fe2a8f1595b197f990068092e5f45b0 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Mon, 7 Nov 2022 15:09:44 +0100
Subject: MIDIPlay: fix build on Haiku
diff --git a/src/MIDIPlay.cpp b/src/MIDIPlay.cpp
index 788e431..aba6288 100644
--- a/src/MIDIPlay.cpp
+++ b/src/MIDIPlay.cpp
@@ -486,7 +486,7 @@ static double streamStartTime = 0; // bias system time to small number
static double SystemTime(bool usingAlsa)
{
-#ifdef __WXGTK__
+#if defined(__WXGTK__) && !defined(__HAIKU__)
if (usingAlsa) {
struct timespec now;
// CLOCK_MONOTONIC_RAW is unaffected by NTP or adj-time
--
2.37.3
From 5d6f5d180b7883738fcd29d5ec2cda46fa5cbab6 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Mon, 7 Nov 2022 15:06:14 +0100
Subject: fix GTK include paths and libs
diff --git a/cmake-proxies/cmake-modules/dependencies/wxwidgets.cmake b/cmake-proxies/cmake-modules/dependencies/wxwidgets.cmake
index 4b35e89..e5a909c 100644
--- a/cmake-proxies/cmake-modules/dependencies/wxwidgets.cmake
+++ b/cmake-proxies/cmake-modules/dependencies/wxwidgets.cmake
@@ -106,5 +106,9 @@ if( NOT CMAKE_SYSTEM_NAME MATCHES "Windows|Darwin" )
pkg_check_modules( GTK REQUIRED IMPORTED_TARGET GLOBAL ${gtk} )
pkg_check_modules( GLIB REQUIRED IMPORTED_TARGET GLOBAL ${glib} )
+
+ target_include_directories( wxwidgets::wxwidgets INTERFACE ${GTK_INCLUDE_DIRS} )
+ target_link_directories( wxwidgets::wxwidgets INTERFACE ${GTK_LIB_DIR} )
+ target_link_libraries( wxwidgets::wxwidgets INTERFACE ${GTK_LIBRARIES} )
endif()
--
2.37.3
From 0ba846266c5b827e648860e6e886507c4b35bf8c Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Mon, 7 Nov 2022 14:33:10 +0100
Subject: adjust install rules for Haiku
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 430ec6e..01b978c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -344,7 +344,7 @@ set( _EXEDIR "${_DEST}" )
# Setup RPATH handling
set( CMAKE_BUILD_RPATH "${_DEST}/${_PKGLIB}" )
set( CMAKE_BUILD_WITH_INSTALL_RPATH FALSE )
-set( CMAKE_INSTALL_RPATH "$ORIGIN/../${_PKGLIB}" )
+set( CMAKE_INSTALL_RPATH "${_PKGLIB}" )
set( CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE )
# Adjust them for the Mac
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index f6468cd..7378eb3 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1229,6 +1229,8 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
set_target_property_all( "Wrapper" RUNTIME_OUTPUT_DIRECTORY "${_EXEDIR}" )
organize_source( "${WRAPPER_ROOT}" "mac" "${WRAPPER_SOURCES}" )
+elseif( CMAKE_SYSTEM_NAME MATCHES "Haiku" )
+ set_target_property_all( ${TARGET} RUNTIME_OUTPUT_DIRECTORY "${_DEST}" )
else()
set_target_property_all( ${TARGET} RUNTIME_OUTPUT_DIRECTORY "${_DEST}" )
@@ -1368,6 +1370,18 @@ else()
install( TARGETS ${TARGET}
DESTINATION "."
RESOURCE DESTINATION "${_APPDIR}/Resources" )
+ elseif( CMAKE_SYSTEM_NAME MATCHES "Haiku" )
+ install( TARGETS ${TARGET} RUNTIME )
+ install( DIRECTORY "${_DEST}/${_LIBDIR}/"
+ DESTINATION "${_LIBDIR}"
+ USE_SOURCE_PERMISSIONS
+ FILES_MATCHING PATTERN "*.so*" )
+ install( FILES "${topdir}/LICENSE.txt" "${topdir}/README.txt"
+ DESTINATION "${_DATADIR}/doc/${AUDACITY_NAME}" )
+ install( FILES "${_SRCDIR}/audacity.xml"
+ DESTINATION "${_DATADIR}/mime/packages" )
+ install( FILES "${topdir}/presets/EQDefaultCurves.xml"
+ DESTINATION "${_PKGDATA}" )
else()
install( TARGETS ${TARGET} RUNTIME )
install( DIRECTORY "${_DEST}/${_LIBDIR}/"
--
2.37.3
From 34335b8df5ee17ceb58267e6e10aadc932624012 Mon Sep 17 00:00:00 2001
From: David Karoly <david.karoly@outlook.com>
Date: Thu, 17 Nov 2022 20:54:07 +0100
Subject: Adapt shm to Haiku
This implementation is based on the haikuports patch for postgresql and qt5/qt6
diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp
index 7d45fd2..c8f1c02 100644
--- a/src/AudacityApp.cpp
+++ b/src/AudacityApp.cpp
@@ -1923,7 +1923,69 @@ bool AudacityApp::CreateSingleInstanceChecker(const wxString &dir)
#include <sys/ipc.h>
#include <sys/sem.h>
+
+#ifdef __HAIKU__
+#include <OS.h>
+
+/*
+ * The following code is adapted from:
+ * Haiku System V Shared Memory Emulation
+ *
+ * Copyright (C) 1999-2001, Cyril Velter
+ */
+
+int shmget(key_t key, size_t size, int flags)
+{
+ char areaName[64];
+ sprintf(areaName, "sysv_ipc_shm[%d]", (int)key);
+
+ area_id areaId = find_area(areaName);
+
+ if (areaId != B_NAME_NOT_FOUND) {
+ return areaId;
+ }
+
+ if (flags==0) {
+ return -1;
+ }
+
+ void *address = NULL;
+ areaId = create_area(areaName, &address, B_ANY_ADDRESS,
+ ((size / 4096) + 1) * 4096, B_NO_LOCK,
+ B_READ_AREA | B_WRITE_AREA | B_CLONEABLE_AREA);
+
+ return areaId;
+}
+
+void *shmat(int shmid, const void *shmaddr, int flags)
+{
+ thread_info threadInfo;
+ get_thread_info(find_thread(NULL), &threadInfo);
+
+ team_info teamInfo;
+ get_team_info(threadInfo.team, &teamInfo);
+
+ area_info areaInfo;
+ if (get_area_info(shmid, &areaInfo) != B_OK) {
+ return NULL;
+ }
+
+ void *res;
+
+ if (areaInfo.team == teamInfo.team) {
+ return (void *)areaInfo.address;
+ }
+
+ void *address = areaInfo.address;
+ area_id areaId = clone_area(areaInfo.name, &address, B_ANY_ADDRESS,
+ B_READ_AREA | B_WRITE_AREA, shmid);
+ get_area_info(areaId, &areaInfo);
+
+ return (void *)areaInfo.address;
+}
+#else
#include <sys/shm.h>
+#endif
// Return true if there are no other instances of Audacity running,
// false otherwise.
--
2.37.3