rpms/audacity/F-10 audacity-1.3.8-gsocket-conflict.patch, NONE, 1.1 audacity-1.3.9-labelpopup.patch, NONE, 1.1 audacity-1.3.9-labeltrack-crash.patch, NONE, 1.1 audacity-1.3.9-libdir.patch, NONE, 1.1 audacity.spec, 1.66, 1.67 audacity-1.3.6-flac-import.patch, 1.2, NONE audacity-1.3.7-audiodevdefaults.patch, 1.1, NONE audacity-1.3.7-libdir.patch, 1.1, NONE
Michael Schwendt
mschwendt at fedoraproject.org
Tue Oct 13 11:24:13 UTC 2009
Author: mschwendt
Update of /cvs/pkgs/rpms/audacity/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv357
Modified Files:
audacity.spec
Added Files:
audacity-1.3.8-gsocket-conflict.patch
audacity-1.3.9-labelpopup.patch
audacity-1.3.9-labeltrack-crash.patch
audacity-1.3.9-libdir.patch
Removed Files:
audacity-1.3.6-flac-import.patch
audacity-1.3.7-audiodevdefaults.patch
audacity-1.3.7-libdir.patch
Log Message:
sync with F-11 for updates-testing : Audacity 1.3.9-beta
audacity-1.3.8-gsocket-conflict.patch:
AudacityApp.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- NEW FILE audacity-1.3.8-gsocket-conflict.patch ---
diff -Nur audacity-src-1.3.8-orig/src/AudacityApp.cpp audacity-src-1.3.8/src/AudacityApp.cpp
--- audacity-src-1.3.8-orig/src/AudacityApp.cpp 2009-07-16 05:27:35.000000000 +0200
+++ audacity-src-1.3.8/src/AudacityApp.cpp 2009-07-20 23:45:41.000000000 +0200
@@ -331,7 +331,9 @@
///////////////////////////////////////////////////////////////////////////////
#include <dlfcn.h>
-#include <gtk/gtk.h>
+/*#include <gtk/gtk.h>*/
+#include <glib/gtypes.h>
+#include <glib-object.h>
typedef struct _GnomeProgram GnomeProgram;
typedef struct _GnomeModuleInfo GnomeModuleInfo;
audacity-1.3.9-labelpopup.patch:
TrackPanel.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE audacity-1.3.9-labelpopup.patch ---
diff -Nur audacity-src-1.3.9-orig/src/TrackPanel.cpp audacity-src-1.3.9/src/TrackPanel.cpp
--- audacity-src-1.3.9-orig/src/TrackPanel.cpp 2009-08-31 12:45:39.000000000 +0200
+++ audacity-src-1.3.9/src/TrackPanel.cpp 2009-09-14 08:52:22.764231346 +0200
@@ -4464,7 +4464,7 @@
}
- if (event.RightDown()) {
+ if (event.RightUp()) {
// popup menu for editing
RefreshTrack(lTrack);
audacity-1.3.9-labeltrack-crash.patch:
LabelTrack.cpp | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
LabelTrack.h | 2 -
Menus.cpp | 17 +-------
Project.cpp | 18 +--------
Project.h | 4 --
5 files changed, 112 insertions(+), 39 deletions(-)
--- NEW FILE audacity-1.3.9-labeltrack-crash.patch ---
diff -Nur audacity-src-1.3.9-orig/src/LabelTrack.cpp audacity-src-1.3.9/src/LabelTrack.cpp
--- audacity-src-1.3.9-orig/src/LabelTrack.cpp 2009-08-31 12:45:38.000000000 +0200
+++ audacity-src-1.3.9/src/LabelTrack.cpp 2009-09-12 14:59:27.000000000 +0200
@@ -57,6 +57,97 @@
#include "Project.h"
#include "commands/CommandManager.h"
+#if defined(__WXGTK__)
+// As of wxGTK 2.8.9, there is a problem in the wxClipboard class that
+// allows recursive event processing. This problem has been corrected
+// by wxWidgets 2.9+. However, this han't made it into a release yet,
+// so we have to work around it.
+//
+// This is done by pulling/merging in some code from wx29 and creating
+// the following class to capture events while accessing the clipboard
+// to prevent the asynchronous clipboard access from causing recursive
+// event processing.
+
+#include <wx/app.h>
+#include <wx/dynarray.h>
+
+#include <gtk/gtk.h>
+
+extern GtkWidget *wxGetRootWindow();
+
+static void main_do_event(GdkEvent *event, wxArrayPtrVoid *queue)
+{
+ switch (event->type)
+ {
+ case GDK_NOTHING:
+ // Ignore it
+ break;
+
+ case GDK_SELECTION_REQUEST:
+ case GDK_SELECTION_NOTIFY:
+ case GDK_SELECTION_CLEAR:
+#if GTK_CHECK_VERSION(2,6,0)
+ case GDK_OWNER_CHANGE:
+#endif
+ // process it now
+ gtk_main_do_event(event);
+ break;
+
+ default:
+ // process it later (but make a copy; the caller will free the event pointer)
+ queue->Add(gdk_event_copy(event));
+ break;
+ }
+
+ // don't allow idle callbacks while we're active
+ wxTheApp->SuspendIdleCallback();
+
+ return;
+}
+
+class CaptureEvents
+{
+ public:
+ CaptureEvents()
+ {
+#if wxUSE_LOG
+ // disable log flushing from here because a call to wxYield() shouldn't
+ // normally result in message boxes popping up &c
+ wxLog::Suspend();
+#endif
+
+ // temporarily replace the global GDK event handler with our function
+ gdk_event_handler_set((GdkEventFunc)main_do_event, &queue, NULL);
+
+ // temporarily suspend idle callbacks
+ wxTheApp->SuspendIdleCallback();
+ }
+
+ virtual ~CaptureEvents()
+ {
+ gdk_event_handler_set((GdkEventFunc)gtk_main_do_event, NULL, NULL);
+
+ // put all unprocessed GDK events back in the queue
+ GdkDisplay* disp = gtk_widget_get_display(wxGetRootWindow());
+ size_t cnt = queue.GetCount();
+ for (size_t i = 0; i < cnt; i++) {
+ GdkEvent* event = (GdkEvent*)queue[i];
+ // NOTE: gdk_display_put_event makes a copy of the event passed to it
+ gdk_display_put_event(disp, event);
+ gdk_event_free(event);
+ }
+
+#if wxUSE_LOG
+ // let the logs be flashed again
+ wxLog::Resume();
+#endif
+ }
+
+ private:
+ wxArrayPtrVoid queue;
+};
+#endif
+
wxFont LabelTrack::msFont;
// static member variables.
@@ -74,13 +165,11 @@
int LabelTrack::mFontHeight=-1;
-
LabelTrack *TrackFactory::NewLabelTrack()
{
return new LabelTrack(mDirManager);
}
-
LabelTrack::LabelTrack(DirManager * projDirManager):
Track(projDirManager),
mbHitCenter(false),
@@ -969,6 +1058,9 @@
// copy data onto clipboard
if (wxTheClipboard->Open()) {
+#if defined(__WXGTK__)
+ CaptureEvents capture;
+#endif
wxTheClipboard->SetData(new wxTextDataObject(data));
wxTheClipboard->Close();
}
@@ -1001,6 +1093,9 @@
// copy the data on clipboard
if (wxTheClipboard->Open()) {
+#if defined(__WXGTK__)
+ CaptureEvents capture;
+#endif
wxTheClipboard->SetData(new wxTextDataObject(data));
wxTheClipboard->Close();
}
@@ -1021,10 +1116,13 @@
wxString right=wxT("");
// if text data is available
- if (wxTheClipboard->IsSupported(wxDF_TEXT)) {
+ if (IsTextClipSupported()) {
if (wxTheClipboard->Open()) {
+#if defined(__WXGTK__)
+ CaptureEvents capture;
+#endif
wxTextDataObject data;
- wxTheClipboard->GetData( data );
+ wxTheClipboard->GetData(data);
wxTheClipboard->Close();
text = data.GetText();
}
@@ -1077,6 +1175,10 @@
/// @return true if the text data is available in the clipboard, false otherwise
bool LabelTrack::IsTextClipSupported()
{
+#if defined(__WXGTK__)
+ CaptureEvents capture;
+#endif
+
return wxTheClipboard->IsSupported(wxDF_TEXT);
}
diff -Nur audacity-src-1.3.9-orig/src/LabelTrack.h audacity-src-1.3.9/src/LabelTrack.h
--- audacity-src-1.3.9-orig/src/LabelTrack.h 2009-08-31 12:45:38.000000000 +0200
+++ audacity-src-1.3.9/src/LabelTrack.h 2009-09-12 14:59:27.000000000 +0200
@@ -129,7 +129,7 @@
bool CutSelectedText();
bool CopySelectedText();
bool PasteSelectedText(double sel0, double sel1);
- bool IsTextClipSupported();
+ static bool IsTextClipSupported();
// methods to set flags
void SetDragXPos(const int d) { mDragXPos = d; };
diff -Nur audacity-src-1.3.9-orig/src/Menus.cpp audacity-src-1.3.9/src/Menus.cpp
--- audacity-src-1.3.9-orig/src/Menus.cpp 2009-08-31 12:45:38.000000000 +0200
+++ audacity-src-1.3.9/src/Menus.cpp 2009-09-12 15:18:22.150741538 +0200
@@ -1359,20 +1359,6 @@
if (lt->IsTextSelected()) {
flags |= CutCopyAvailableFlag;
}
-
- // See AudacityProject::OnUpdateUI() for an explanation
- if (mInIdle) {
- if (lt->IsTextClipSupported()) {
- flags |= TextClipFlag;
- mTextClipFlag = TextClipFlag;
- }
- else {
- mTextClipFlag = 0;
- }
- }
- else {
- flags |= mTextClipFlag;
- }
}
else if (t->GetKind() == Track::Wave) {
flags |= WaveTracksExistFlag;
@@ -1422,6 +1408,9 @@
if (GetZoom() > gMinZoom && (flags & TracksExistFlag))
flags |= ZoomOutAvailableFlag;
+ if ((flags & LabelTracksExistFlag) && LabelTrack::IsTextClipSupported())
+ flags |= TextClipFlag;
+
flags |= GetFocusedFrame();
if (IsPlayRegionLocked())
diff -Nur audacity-src-1.3.9-orig/src/Project.cpp audacity-src-1.3.9/src/Project.cpp
--- audacity-src-1.3.9-orig/src/Project.cpp 2009-08-31 12:45:38.000000000 +0200
+++ audacity-src-1.3.9/src/Project.cpp 2009-09-12 15:18:29.746745064 +0200
@@ -653,13 +653,12 @@
const wxSize & size)
: wxFrame(parent, id, wxT("Audacity"), pos, size),
mLastPlayMode(normalPlay),
+ mFreqWindow(NULL),
mRate((double) gPrefs->Read(wxT("/SamplingRate/DefaultProjectSampleRate"), AudioIO::GetOptimalSupportedSampleRate())),
mDefaultFormat((sampleFormat) gPrefs->
Read(wxT("/SamplingRate/DefaultProjectSampleFormat"), floatSample)),
mSnapTo(0),
mDirty(false),
- mInIdle(false),
- mTextClipFlag(0),
mTrackPanel(NULL),
mTrackFactory(NULL),
mAutoScrolling(false),
@@ -689,8 +688,7 @@
mWantSaveCompressed(false),
mLastEffect(NULL),
mLastEffectType(0),
- mLastEffectDesc(_("Repeat Last Effect")),
- mFreqWindow(NULL)
+ mLastEffectDesc(_("Repeat Last Effect"))
{
int widths[] = {-1, 130};
mStatusBar = CreateStatusBar(2);
@@ -1644,19 +1642,7 @@
void AudacityProject::OnUpdateUI(wxUpdateUIEvent & event)
{
- // As of wxGTK 2.8.9, there is a problem in the wxClipboard class that
- // allows recursive event processing. This problem has been corrected
- // by wxWidgets changeset #45180. However, this han't made it into a
- // release yet, so we have to work around it.
- //
- // This is done by only checking the wxClipboard contents during an idle
- // event, thus preventing possible recursion during other event processing.
- //
- mInIdle = true;
-
UpdateMenus();
-
- mInIdle = false;
}
void AudacityProject::OnActivate(wxActivateEvent & event)
diff -Nur audacity-src-1.3.9-orig/src/Project.h audacity-src-1.3.9/src/Project.h
--- audacity-src-1.3.9-orig/src/Project.h 2009-08-31 12:45:38.000000000 +0200
+++ audacity-src-1.3.9/src/Project.h 2009-09-12 15:18:26.812745135 +0200
@@ -431,10 +431,6 @@
wxUint32 mLastFlags;
- // see AudacityProject::OnUpdateUI() for explanation of next two
- bool mInIdle;
- wxUint32 mTextClipFlag;
-
// Window elements
wxTimer *mTimer;
audacity-1.3.9-libdir.patch:
LoadLadspa.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE audacity-1.3.9-libdir.patch ---
diff -Nur audacity-src-1.3.9-orig/src/effects/ladspa/LoadLadspa.cpp audacity-src-1.3.9/src/effects/ladspa/LoadLadspa.cpp
--- audacity-src-1.3.9-orig/src/effects/ladspa/LoadLadspa.cpp 2009-08-31 12:45:40.000000000 +0200
+++ audacity-src-1.3.9/src/effects/ladspa/LoadLadspa.cpp 2009-09-03 12:01:49.823505468 +0200
@@ -286,7 +286,7 @@
#ifdef __WXGTK__
wxGetApp().AddUniquePathToPathList(wxT(INSTALL_PREFIX) wxT("/ladspa"), pathList);
- wxGetApp().AddUniquePathToPathList(wxT("/usr/local/lib/ladspa"), pathList);
+ wxGetApp().AddUniquePathToPathList(wxT("/usr/local/__RPM_LIB__/ladspa"), pathList);
wxGetApp().AddUniquePathToPathList(wxT(LIBDIR) wxT("/ladspa"), pathList);
#endif
Index: audacity.spec
===================================================================
RCS file: /cvs/pkgs/rpms/audacity/F-10/audacity.spec,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -p -r1.66 -r1.67
--- audacity.spec 13 May 2009 08:37:01 -0000 1.66
+++ audacity.spec 13 Oct 2009 11:24:12 -0000 1.67
@@ -1,27 +1,26 @@
# Compile options:
# --with mp3 : enable mp3 support
-%define tartopdir audacity-src-1.3.7
+%define tartopdir audacity-src-1.3.9
Name: audacity
-Version: 1.3.7
-Release: 0.7.beta%{?dist}
+Version: 1.3.9
+Release: 0.3.beta%{?dist}
Summary: Multitrack audio editor
Group: Applications/Multimedia
License: GPLv2
URL: http://audacity.sourceforge.net
-Source0: http://downloads.sf.net/sourceforge/audacity/audacity-minsrc-1.3.7.tar.bz2
+Source0: http://downloads.sf.net/sourceforge/audacity/audacity-minsrc-%{version}.tar.bz2
Source1: audacity.png
Source2: audacity.desktop
Patch1: audacity-1.3.7-libmp3lame-default.patch
-Patch2: audacity-1.3.7-libdir.patch
-Patch3: audacity-1.3.6-flac-import.patch
-Patch4: audacity-1.3.7-portaudio-non-mmap-alsa.patch
-Patch5: audacity-1.3.7-repeat.patch
+Patch2: audacity-1.3.9-libdir.patch
+Patch3: audacity-1.3.8-gsocket-conflict.patch
+Patch4: audacity-1.3.9-labeltrack-crash.patch
+Patch5: audacity-1.3.9-labelpopup.patch
Patch6: audacity-1.3.7-vamp-1.3.patch
-Patch7: audacity-1.3.7-audiodevdefaults.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: alsa-lib-devel
@@ -32,6 +31,7 @@ BuildRequires: gettext
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: ladspa-devel
BuildRequires: libid3tag-devel
+BuildRequires: taglib-devel
BuildRequires: libogg-devel
BuildRequires: libsamplerate-devel
BuildRequires: libsndfile-devel
@@ -69,13 +69,12 @@ do
done
grep -q -s __RPM_LIB * -R && exit 1
-%patch3 -p1 -b .dumb-flac-import
-%patch4 -p1 -b .pa-non-mmap-alsa
-%patch5 -p1 -b .repeat
+%patch3 -p1 -b .gsocket-conflict
+%patch4 -p1 -b .labeltrack-crash
+%patch5 -p1 -b .labelpopup
%if 0%{?fedora} < 11
%patch6 -p1 -b .vamp-1.3
%endif
-%patch7 -p1 -b .audiodevdefaults
# Substitute occurences of "libmp3lame.so" with "libmp3lame.so.0".
for i in locale/*.po src/export/ExportMP3.cpp
@@ -110,6 +109,10 @@ cp %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}
make DESTDIR=${RPM_BUILD_ROOT} install
+# Audacity 1.3.8-beta complains if the help/manual directories
+# don't exist.
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/help/manual
+
%{find_lang} %{name}
rm -f $RPM_BUILD_ROOT%{_datadir}/applications/*.desktop
@@ -147,6 +150,34 @@ update-desktop-database &> /dev/null ||
%changelog
+* Mon Sep 14 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.3.9-0.3.beta
+- add patch to fix LabelTrack popup
+
+* Sat Sep 12 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.3.9-0.2.beta
+- add wxGTK work-around patches to fix LabelTrack crash
+ (shall fix #520917 and similar race-conditions)
+
+* Thu Sep 3 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.3.9-0.1.beta
+- upgrade to 1.3.9-beta
+- upstream's changes in the device prefs code make the audiodevdefaults
+ patch unnecessary afaic see
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3.8-0.3.beta
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon Jul 20 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.3.8-0.2.beta
+- glib2 2.21.1's gio in Rawhide F-12 introduces a GSocket that
+ conflicts with wxGTK's GSocket class (gsocket.h): as a work-around,
+ include less glib headers
+
+* Mon Jul 20 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.3.8-0.1.beta
+- upgrade to 1.3.8-beta
+- BR taglib-devel
+- patches merged/obsoleted upstream:
+ audacity-1.3.7-portaudio-non-mmap-alsa.patch
+ audacity-1.3.7-repeat.patch
+ audacity-1.3.6-flac-import.patch
+
* Wed May 13 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.3.7-0.7.beta
- retag up-to-date files and copy to F-10/F-11
--- audacity-1.3.6-flac-import.patch DELETED ---
--- audacity-1.3.7-audiodevdefaults.patch DELETED ---
--- audacity-1.3.7-libdir.patch DELETED ---
More information about the fedora-extras-commits
mailing list