Date: Friday, December 16, 2022 @ 23:01:58 Author: dvzrv Revision: 1359695
upgpkg: rosegarden 22.12-1: Upgrade to 22.12. Add upstream patch to fix a segfault: https://sourceforge.net/p/rosegarden/bugs/1647/ Added: rosegarden/trunk/rosegarden-22.12-fix_static_init_order.patch Modified: rosegarden/trunk/PKGBUILD ----------------------------------------------+ PKGBUILD | 31 +++++- rosegarden-22.12-fix_static_init_order.patch | 118 +++++++++++++++++++++++++ 2 files changed, 142 insertions(+), 7 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-12-16 22:46:07 UTC (rev 1359694) +++ PKGBUILD 2022-12-16 23:01:58 UTC (rev 1359695) @@ -5,7 +5,7 @@ # Contributor: Robert Emil Berge <[email protected]> pkgname=rosegarden -pkgver=22.06 +pkgver=22.12 pkgrel=1 pkgdesc="MIDI/audio sequencer and notation editor" arch=(x86_64) @@ -28,10 +28,20 @@ ) provides=(dssi-host ladspa-host) options=(debug) -source=(https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2) -sha512sums=('42ce03a65f9c9401cb3f641c0ae80a827e18d6f47420add382f63273f4644eac5997befe70cac972380441a43d74153a4e37a276fc3dc8d9889eb8671759ab5a') -b2sums=('d4ba13ac6b4cba6d0b5bc555933737d696d380737e56a3e4e1dd782aff641dcbd49af50aade75550b8a0e22a45f491585ffb4166b21cb9889eca1a2e546c585a') +source=( + https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2 + $pkgname-22.12-fix_static_init_order.patch +) +sha512sums=('b9397ddd51bc2a2efa249377a61b8c14e902c495ebf52eb72f5083d10a5fc7136e249e8570f7110efb8acf3fbaae1b424e6bf33758168571ec407804ae8acdfe' + '11c256cc18805f6d392486e26ed654d75104d1b53857bba263b9c442a604221ffacb7141ff64c7fc872e29f48f14bdc05b507003d13d893faaa5d1705027cd79') +b2sums=('589863458b94876659ba64e65ff2e148aa7865c2d468bb7567fabf27af15f4026511bf6a2c06c103e73d0c94c7840146382261cb4952ae068605bdec05feaa6a' + '803e4f3d80d3137c2198d4cbe5d9a62313925f7cc1b60bdaefb9c92f3ae29c5f27a2527b40331fcdd3616e4567aa52049b77838605e4f7cb4687f64616903c2e') +prepare() { + # fix issue with static init ordering: https://sourceforge.net/p/rosegarden/bugs/1647/ + patch -Np1 -d $pkgname-$pkgver -i ../$pkgname-22.12-fix_static_init_order.patch +} + build() { cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ @@ -51,10 +61,17 @@ } package() { - depends+=(libasound.so libfftw3f.so libjack.so liblrdf.so liblo.so - libsamplerate.so libsndfile.so) + depends+=( + alsa-lib libasound.so + fftw libfftw3f.so + jack libjack.so + liblrdf liblrdf.so + liblo liblo.so + libsamplerate libsamplerate.so + libsndfile libsndfile.so + ) DESTDIR="$pkgdir" cmake --install build - install -vDm 644 $pkgname-$pkgver/{AUTHORS,CHANGELOG,README} -t "$pkgdir/usr/share/doc/$pkgname/" + install -vDm 644 $pkgname-$pkgver/{AUTHORS,CHANGELOG,README.md} -t "$pkgdir/usr/share/doc/$pkgname/" } # vim:set ts=2 sw=2 et: Added: rosegarden-22.12-fix_static_init_order.patch =================================================================== --- rosegarden-22.12-fix_static_init_order.patch (rev 0) +++ rosegarden-22.12-fix_static_init_order.patch 2022-12-16 23:01:58 UTC (rev 1359695) @@ -0,0 +1,118 @@ +From 3e34166965a2e9da4e755ef317741dae24cd4254 Mon Sep 17 00:00:00 2001 +From: Ted Felix <[email protected]> +Date: Sat, 10 Dec 2022 17:28:42 -0500 +Subject: [PATCH] Fix static init order fiasco. + +--- + src/misc/ConfigGroups.cpp | 13 ++++++++----- + src/misc/ConfigGroups.h | 13 ++++++++----- + src/misc/Preferences.cpp | 2 +- + src/sound/AlsaDriver.cpp | 4 ++-- + 4 files changed, 19 insertions(+), 13 deletions(-) + +diff --git a/src/misc/ConfigGroups.cpp b/src/misc/ConfigGroups.cpp +index 1cd03089c..feac5fd40 100644 +--- a/src/misc/ConfigGroups.cpp ++++ b/src/misc/ConfigGroups.cpp +@@ -17,12 +17,15 @@ + + namespace Rosegarden + { ++ + // + // QSettings group names + // ++ // Note: Use const char * instead of QString to avoid static ++ // init order fiasco. + const char* const GeneralOptionsConfigGroup = "General_Options"; + const char* const LatencyOptionsConfigGroup = "Latency_Options"; +- const QString SequencerOptionsConfigGroup = "Sequencer_Options"; ++ const char* const SequencerOptionsConfigGroup = "Sequencer_Options"; + const char* const NotationViewConfigGroup = "Notation_Options"; + const char* const PitchTrackerConfigGroup = "Pitch_Tracker_Options"; + const char* const AudioManagerDialogConfigGroup = "AudioManagerDialog"; +@@ -60,9 +63,9 @@ namespace Rosegarden + const char* const GridQuantizeConfigGroup = "Grid_Quantize_Parameters_Memory"; + const char* const NotationQuantizeConfigGroup = "Notation_Quantize_Parameters_Memory"; + const char* const TextEventDialogConfigGroup = "TextEvent_Dialog"; +- const QString RecentFilesConfigGroup = "RecentFiles"; +- const QString UserShortcutsConfigGroup = "UserShortcuts"; +- const QString ShortcutKeyboardConfigGroup = "ShortcutKeyboard"; +- const QString ExperimentalConfigGroup = "Experimental"; ++ const char* const RecentFilesConfigGroup = "RecentFiles"; ++ const char* const UserShortcutsConfigGroup = "UserShortcuts"; ++ const char* const ShortcutKeyboardConfigGroup = "ShortcutKeyboard"; ++ const char* const ExperimentalConfigGroup = "Experimental"; + + } +diff --git a/src/misc/ConfigGroups.h b/src/misc/ConfigGroups.h +index f93a05b0c..48afc5315 100644 +--- a/src/misc/ConfigGroups.h ++++ b/src/misc/ConfigGroups.h +@@ -27,9 +27,12 @@ + + namespace Rosegarden + { ++ ++ // Note: Use const char * instead of QString to avoid static ++ // init order fiasco. + extern ROSEGARDENPRIVATE_EXPORT const char* const GeneralOptionsConfigGroup; + extern const char* const LatencyOptionsConfigGroup; +- extern ROSEGARDENPRIVATE_EXPORT const QString SequencerOptionsConfigGroup; ++ extern ROSEGARDENPRIVATE_EXPORT const char* const SequencerOptionsConfigGroup; + extern const char* const NotationViewConfigGroup; + extern const char* const PitchTrackerConfigGroup; + extern const char* const AudioManagerDialogConfigGroup; +@@ -67,10 +70,10 @@ namespace Rosegarden + extern const char* const GridQuantizeConfigGroup; + extern const char* const NotationQuantizeConfigGroup; + extern const char* const TextEventDialogConfigGroup; +- extern const QString RecentFilesConfigGroup; +- extern const QString UserShortcutsConfigGroup; +- extern const QString ShortcutKeyboardConfigGroup; +- extern const QString ExperimentalConfigGroup; ++ extern const char* const RecentFilesConfigGroup; ++ extern const char* const UserShortcutsConfigGroup; ++ extern const char* const ShortcutKeyboardConfigGroup; ++ extern const char* const ExperimentalConfigGroup; + + } + +diff --git a/src/misc/Preferences.cpp b/src/misc/Preferences.cpp +index 2489cdc19..5b6a5d17c 100644 +--- a/src/misc/Preferences.cpp ++++ b/src/misc/Preferences.cpp +@@ -157,7 +157,7 @@ bool Preferences::getAdvancedLooping() + + namespace + { +- const QString AudioFileLocationDialogGroup = "AudioFileLocationDialog"; ++ const char *AudioFileLocationDialogGroup = "AudioFileLocationDialog"; + } + + PreferenceBool afldDontShow(AudioFileLocationDialogGroup, "dontShow", false); +diff --git a/src/sound/AlsaDriver.cpp b/src/sound/AlsaDriver.cpp +index 0bd3e017f..ae76f074f 100644 +--- a/src/sound/AlsaDriver.cpp ++++ b/src/sound/AlsaDriver.cpp +@@ -1582,7 +1582,7 @@ AlsaDriver::setCurrentTimer(QString timer) + return; + + m_currentTimer = timer; +- settings.setValue(SequencerOptionsConfigGroup + "/" + "timer", ++ settings.setValue(QString(SequencerOptionsConfigGroup) + "/" + "timer", + m_currentTimer); + + RG_DEBUG << "setCurrentTimer(" << timer << ")"; +@@ -1886,7 +1886,7 @@ AlsaDriver::initialiseMidi() + + QSettings settings; + const QString timer = settings.value( +- SequencerOptionsConfigGroup + "/" + "timer", ++ QString(SequencerOptionsConfigGroup) + "/" + "timer", + AUTO_TIMER_NAME).toString(); + + setCurrentTimer(timer); +-- +2.39.0 +
