From a493c49775d0d66592accd70c8663588477e7482 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Mon, 30 Jan 2017 22:03:27 +0100 Subject: [PATCH] clockwerk: fix build on x86_64, add a version number. * drag'n drop doesn't seem to work... --- ...rk-git.recipe => clockwerk-1.0~git.recipe} | 12 +- .../patches/clockwerk-1.0~git.patchset | 414 ++++++++++++++++++ 2 files changed, 421 insertions(+), 5 deletions(-) rename haiku-apps/clockwerk/{clockwerk-git.recipe => clockwerk-1.0~git.recipe} (84%) create mode 100644 haiku-apps/clockwerk/patches/clockwerk-1.0~git.patchset diff --git a/haiku-apps/clockwerk/clockwerk-git.recipe b/haiku-apps/clockwerk/clockwerk-1.0~git.recipe similarity index 84% rename from haiku-apps/clockwerk/clockwerk-git.recipe rename to haiku-apps/clockwerk/clockwerk-1.0~git.recipe index 9b265f44d..3da8b8e2d 100644 --- a/haiku-apps/clockwerk/clockwerk-git.recipe +++ b/haiku-apps/clockwerk/clockwerk-1.0~git.recipe @@ -9,22 +9,24 @@ HOMEPAGE="https://github.com/stippi/Clockwerk" COPYRIGHT="2001-2009 Stephan Aßmus 2000-2006 Ingo Weinhold" LICENSE="GNU GPL v2" -REVISION="3" +REVISION="1" commit="6eab4202c857c7dc6f21b6e3262cff0b503acb0e" SOURCE_URI="$HOMEPAGE/archive/$commit.tar.gz" SOURCE_FILENAME="$portName-$commit.tar.gz" SOURCE_DIR="Clockwerk-$commit" CHECKSUM_SHA256="b779ff85fb5626dba84c01b983ba0fb2072154eb60ba7ad051ca20d54f56afc2" +PATCHES="clockwerk-$portVersion.patchset" -ARCHITECTURES="x86_gcc2 x86 ?x86_64" -SECONDARY_ARCHITECTURES="x86_gcc2 x86" +ARCHITECTURES="x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" PROVIDES=" - clockwerk = $portVersion - app:Clockwerk = $portVersion + clockwerk$secondaryArchSuffix = $portVersion + app:Clockwerk$secondaryArchSuffix = $portVersion " REQUIRES=" haiku$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix " BUILD_REQUIRES=" diff --git a/haiku-apps/clockwerk/patches/clockwerk-1.0~git.patchset b/haiku-apps/clockwerk/patches/clockwerk-1.0~git.patchset new file mode 100644 index 000000000..83d1f178a --- /dev/null +++ b/haiku-apps/clockwerk/patches/clockwerk-1.0~git.patchset @@ -0,0 +1,414 @@ +From 5a5f55a40357447c839e4285dab6d468a899cead Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Mon, 30 Jan 2017 21:49:11 +0100 +Subject: fix build on x86_64. + + +diff --git a/Jamrules b/Jamrules +index 6d9784c..67693f1 100644 +--- a/Jamrules ++++ b/Jamrules +@@ -6,26 +6,33 @@ DISTRO_DIR = [ FDirName $(TOP) generated distro ] ; + + # First find out which gcc version the platform uses. + IS_GCC_4_PLATFORM = ; ++IS_X86_64 = ; + if $(OS) = HAIKU { + # Only Haiku might use gcc 4. We use the existence of a libstdc++.r4.so in + # /boot/develop/lib/x86 to judge whether this is a BeOS compatible and thus + # gcc 2 platform. This is not entirely correct, but should be good enough + # for the time being. + local isGCC2Primary = [ Glob /boot/system/develop/lib/x86 : libstdc++.r4.so ] ; +- local path ; +- for path in $(PATH) { +- if $(path) = /boot/system/bin { +- if ! $(isGCC2Primary) { +- IS_GCC_4_PLATFORM = 1 ; ++ local isX86_64 = [ Glob /boot/system/ : kernel_x86_64 ] ; ++ if $(isX86_64) { ++ IS_GCC_4_PLATFORM = 1 ; ++ IS_X86_64 = 1 ; ++ } else { ++ local path ; ++ for path in $(PATH) { ++ if $(path) = /boot/system/bin { ++ if ! $(isGCC2Primary) { ++ IS_GCC_4_PLATFORM = 1 ; ++ } ++ break ; + } +- break ; +- } +- +- if $(path:D) = /boot/system/bin { +- if $(path:B) != x86_gcc2 { +- IS_GCC_4_PLATFORM = 1 ; ++ ++ if $(path:D) = /boot/system/bin { ++ if $(path:B) != x86_gcc2 { ++ IS_GCC_4_PLATFORM = 1 ; ++ } ++ break ; + } +- break ; + } + } + } else { +diff --git a/build/BuildSettings b/build/BuildSettings +index 59e4dd4..fc00a78 100644 +--- a/build/BuildSettings ++++ b/build/BuildSettings +@@ -31,7 +31,7 @@ if $(OSPLAT) = X86 { + + local freeTypeDir ; + +- if $(IS_GCC_4_PLATFORM) { ++ if $(IS_GCC_4_PLATFORM) && ! $(IS_X86_64) { + freeTypeDir = /boot/system/develop/headers/x86/freetype2 ; + } + else { +diff --git a/build/MainBuildRules b/build/MainBuildRules +index 7778889..0539b7d 100644 +--- a/build/MainBuildRules ++++ b/build/MainBuildRules +@@ -199,7 +199,7 @@ rule ResComp + # considered linker scripts, and thus we can use preprocessor features. + actions ResComp1 + { +- cat "$(2)" | $(CC) -E $(CCDEFS) $(HDRS) - | egrep -v '^#' | rc -o "$(1)" - ; ++ cat "$(2)" | $(CC) -E $(CCDEFS) $(HDRS) - | egrep -va '^#' | rc -o "$(1)" - ; + } + + rule XRes +diff --git a/src/editor/commands/InsertOrRemoveTrackCommand.cpp b/src/editor/commands/InsertOrRemoveTrackCommand.cpp +index 32e2b36..b3cba9e 100644 +--- a/src/editor/commands/InsertOrRemoveTrackCommand.cpp ++++ b/src/editor/commands/InsertOrRemoveTrackCommand.cpp +@@ -15,7 +15,7 @@ InsertOrRemoveTrackCommand::InsertOrRemoveTrackCommand(Playlist* playlist, + fPlaylist(playlist), + fTrack(track), + fInsert(insert), +- fTrackProperties(0UL) ++ fTrackProperties((uint32)0) + { + if (fPlaylist && !insert) { + TrackProperties* original = fPlaylist->PropertiesForTrack(fTrack); +diff --git a/src/editor/gui_stage/TransportControlGroup.cpp b/src/editor/gui_stage/TransportControlGroup.cpp +index 2276f73..04150a0 100644 +--- a/src/editor/gui_stage/TransportControlGroup.cpp ++++ b/src/editor/gui_stage/TransportControlGroup.cpp +@@ -282,9 +282,9 @@ void + TransportControlGroup::SetEnabled(bool enable) + { + if (!enable) +- SetEnabled(0UL); ++ SetEnabled((uint32)0); + else +- SetEnabled(0xffffffffUL); ++ SetEnabled(0xffffffff); + } + + +diff --git a/src/editor/gui_timeline/TimeView.cpp b/src/editor/gui_timeline/TimeView.cpp +index 02ab24c..30146c1 100644 +--- a/src/editor/gui_timeline/TimeView.cpp ++++ b/src/editor/gui_timeline/TimeView.cpp +@@ -402,7 +402,7 @@ TimeView::MouseDown(BPoint where) + BRect r(Bounds()); + int32 count = fKeyPoints.CountItems(); + for (int32 i = 0; i < count; i++) { +- int32 pos = (int32)fKeyPoints.ItemAtFast(i); ++ int32 pos = (int32)(addr_t)fKeyPoints.ItemAtFast(i); + r.left = pos - 4; + r.right = pos + 4; + if (r.Contains(where)) { +diff --git a/src/shared/generic/HashMap.h b/src/shared/generic/HashMap.h +index 6abd43d..1ca2225 100644 +--- a/src/shared/generic/HashMap.h ++++ b/src/shared/generic/HashMap.h +@@ -271,7 +271,7 @@ struct HashKey32 { + + uint32 GetHashCode() const + { +- return (uint32)value; ++ return (uint32)(addr_t)value; + } + + HashKey32& operator=(const HashKey32& other) +diff --git a/src/shared/generic/Referencable.h b/src/shared/generic/Referencable.h +index 0bb9a2a..5c672e6 100644 +--- a/src/shared/generic/Referencable.h ++++ b/src/shared/generic/Referencable.h +@@ -45,7 +45,7 @@ Referencable::Release() + { + int32 previousRefCount = atomic_add(&fReferenceCount, -1); + if (fDebug) +- printf("Referencable::Release() - %ld\n", previousRefCount); ++ printf("Referencable::Release() - %" B_PRId32 "\n", previousRefCount); + if (previousRefCount == 1) { + if (fDebug) + atomic_add(&sDebuggedReferencableCount, -1); +diff --git a/src/shared/generic/event_queue/Event.cpp b/src/shared/generic/event_queue/Event.cpp +index 101b5fc..2128f3b 100644 +--- a/src/shared/generic/event_queue/Event.cpp ++++ b/src/shared/generic/event_queue/Event.cpp +@@ -52,6 +52,6 @@ Event::SetAutoDelete(bool autoDelete) + void + Event::Execute() + { +- printf("Event::Execute() - %Ld\n", fTime); ++ printf("Event::Execute() - %" B_PRIdBIGTIME "\n", fTime); + } + +diff --git a/src/shared/generic/event_queue/EventQueue.cpp b/src/shared/generic/event_queue/EventQueue.cpp +index 25d9f45..c62ef62 100644 +--- a/src/shared/generic/event_queue/EventQueue.cpp ++++ b/src/shared/generic/event_queue/EventQueue.cpp +@@ -41,7 +41,7 @@ EventQueue::~EventQueue() + { + if (delete_sem(fThreadControl) == B_OK) + wait_for_thread(fEventExecutor, &fEventExecutor); +- while (Event *event = (Event*)fEvents.RemoveItem(0L)) { ++ while (Event *event = (Event*)fEvents.RemoveItem((int32)0)) { + if (event->AutoDelete()) + delete event; + } +@@ -174,7 +174,7 @@ EventQueue::_ExecuteEvents() + if (Lock()) { + while (!fEvents.IsEmpty() + && system_time() >= _EventAt(0)->Time()) { +- Event* event = (Event*)fEvents.RemoveItem(0L); ++ Event* event = (Event*)fEvents.RemoveItem((int32)0); + bool deleteEvent = event->AutoDelete(); + event->Execute(); + if (deleteEvent) +diff --git a/src/shared/generic/gui/columnlistview/ColumnListView.cpp b/src/shared/generic/gui/columnlistview/ColumnListView.cpp +index 8c23391..18c1aeb 100644 +--- a/src/shared/generic/gui/columnlistview/ColumnListView.cpp ++++ b/src/shared/generic/gui/columnlistview/ColumnListView.cpp +@@ -925,7 +925,7 @@ ColumnListView::SetSelectionMode(selection_mode mode) + int32 + ColumnListView::CurrentSelection(int32 index) const + { +- return (int32)fSelectedItems.ItemAt(index) - 1; ++ return (int32)(addr_t)fSelectedItems.ItemAt(index) - 1; + } + + // Deselect +@@ -1007,7 +1007,7 @@ ColumnListView::Select(int32 index, bool extend) + } + if (!item->IsSelected()) { + int32 insertionIndex = _FindSelectionInsertionIndex(index); +- fSelectedItems.AddItem((void*)(index + 1), insertionIndex); ++ fSelectedItems.AddItem((void*)(addr_t)(index + 1), insertionIndex); + item->SetSelected(true); + InvalidateItem(item); + _InternalSelectionChanged(); +@@ -1030,7 +1030,7 @@ ColumnListView::Select(int32 start, int32 finish, bool extend) + for (int32 i = start; i <= finish; i++) { + ColumnListItem* item = ItemAt(i); + if (!item->IsSelected()) { +- fSelectedItems.AddItem((void*)(i + 1), insertionIndex); ++ fSelectedItems.AddItem((void*)(addr_t)(i + 1), insertionIndex); + item->SetSelected(true); + } + insertionIndex++; +@@ -1836,7 +1836,7 @@ ColumnListView::_ReindexSelectedItems(int32 index, int32 offset) + int32 item = CurrentSelection(i); + if (item >= index) { + fSelectedItems.RemoveItem(i); +- fSelectedItems.AddItem((void*)(item + offset + 1), i); ++ fSelectedItems.AddItem((void*)(addr_t)(item + offset + 1), i); + } + } + } +@@ -1851,7 +1851,7 @@ ColumnListView::_RebuildSelectionList() + fSelectedItems.MakeEmpty(); + for (int32 i = 0; ColumnListItem* item = ItemAt(i); i++) { + if (item->IsSelected()) +- fSelectedItems.AddItem((void*)(i + 1)); ++ fSelectedItems.AddItem((void*)(addr_t)(i + 1)); + } + } + +diff --git a/src/shared/generic/regex.cpp b/src/shared/generic/regex.cpp +index 722f6f7..c6405b8 100644 +--- a/src/shared/generic/regex.cpp ++++ b/src/shared/generic/regex.cpp +@@ -2533,10 +2533,10 @@ typedef struct + DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \ + \ + /* Restore register info. */ \ +- high_reg = (unsigned) POP_FAILURE_ITEM (); \ ++ high_reg = (unsigned)(addr_t) POP_FAILURE_ITEM (); \ + DEBUG_PRINT2 (" Popping high active reg: %d\n", high_reg); \ + \ +- low_reg = (unsigned) POP_FAILURE_ITEM (); \ ++ low_reg = (unsigned)(addr_t) POP_FAILURE_ITEM (); \ + DEBUG_PRINT2 (" Popping low active reg: %d\n", low_reg); \ + \ + for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \ +@@ -3847,7 +3847,7 @@ re_match_2 ( + regstart[r] = old_regstart[r]; + + /* xx why this test? */ +- if ((int) old_regend[r] >= (int) regstart[r]) ++ if ((int)(addr_t) old_regend[r] >= (int)(addr_t) regstart[r]) + regend[r] = old_regend[r]; + } + } +diff --git a/src/shared/gui/ScopeMenuField.cpp b/src/shared/gui/ScopeMenuField.cpp +index 900cf79..3f6949d 100644 +--- a/src/shared/gui/ScopeMenuField.cpp ++++ b/src/shared/gui/ScopeMenuField.cpp +@@ -28,7 +28,7 @@ ScopeMenuField::SetScopes(const BMessage* _scopes) + { + BMenu* menu = Menu(); + // clean out menu +- while (BMenuItem* item = menu->RemoveItem(0L)) ++ while (BMenuItem* item = menu->RemoveItem((int32)0)) + delete item; + + BMessage scopes(*_scopes); +diff --git a/src/shared/playback/audio/AudioTrackReader.cpp b/src/shared/playback/audio/AudioTrackReader.cpp +index 143802d..6c93a1a 100644 +--- a/src/shared/playback/audio/AudioTrackReader.cpp ++++ b/src/shared/playback/audio/AudioTrackReader.cpp +@@ -109,7 +109,7 @@ ldebug("AudioTrackReader::Read() done\n"); + pos += fOutOffset; + // Fill the frames after the end of the track with silence. + if (pos + frames > fCountFrames) { +- int64 size = std::max(0LL, fCountFrames - pos); ++ int64 size = std::max((int64)0, fCountFrames - pos); + ReadSilence(SkipFrames(buffer, size), frames - size); + frames = size; + } +diff --git a/src/shared/playback/audio/PlaylistAudioReader.cpp b/src/shared/playback/audio/PlaylistAudioReader.cpp +index 7777b2d..c6b7be4 100644 +--- a/src/shared/playback/audio/PlaylistAudioReader.cpp ++++ b/src/shared/playback/audio/PlaylistAudioReader.cpp +@@ -42,8 +42,8 @@ class SoundItem : public Observer { + + inline bool operator<(const SoundItem& other) const + { +- return ((uint32)item < (uint32)other.item +- || ((uint32)item == (uint32)other.item && offset < other.offset)); ++ return ((addr_t)item < (addr_t)other.item ++ || ((addr_t)item == (addr_t)other.item && offset < other.offset)); + } + + inline bool operator>(const SoundItem& other) const +diff --git a/src/shared/playback/audio/PlaylistAudioSupplier.cpp b/src/shared/playback/audio/PlaylistAudioSupplier.cpp +index 70dfcb1..645a084 100644 +--- a/src/shared/playback/audio/PlaylistAudioSupplier.cpp ++++ b/src/shared/playback/audio/PlaylistAudioSupplier.cpp +@@ -102,7 +102,7 @@ buffer, frameCount, startTime, endTime); + int64 framesRead = 0; + while (!playingIntervals.IsEmpty()) { + PlayingInterval* interval +- = (PlayingInterval*)playingIntervals.RemoveItem(0L); ++ = (PlayingInterval*)playingIntervals.RemoveItem((int32)0); + if (error != B_OK) { + delete interval; + continue; +diff --git a/src/shared/playback/video/VideoConsumer.cpp b/src/shared/playback/video/VideoConsumer.cpp +index 480d040..f145179 100644 +--- a/src/shared/playback/video/VideoConsumer.cpp ++++ b/src/shared/playback/video/VideoConsumer.cpp +@@ -86,7 +86,7 @@ VideoConsumer::~VideoConsumer() + + // AddOn + BMediaAddOn* +-VideoConsumer::AddOn(long *cookie) const ++VideoConsumer::AddOn(int32 *cookie) const + { + FUNCTION("VideoConsumer::AddOn\n"); + // do the right thing if we're ever used with an add-on +@@ -336,7 +336,7 @@ VideoConsumer::CreateBuffers( + if ((status = fBuffers->GetBufferList(kBufferCount, buffList)) == B_OK) { + for (uint32 i = 0; i < kBufferCount; i++) { + if (buffList[i] != NULL) { +- fBufferMap[i] = (uint32)buffList[i]; ++ fBufferMap[i] = (addr_t)buffList[i]; + PROGRESS(" i = %d buffer = %08lx\n", i, fBufferMap[i]); + } else { + ERROR("VideoConsumer::CreateBuffers ERROR MAPPING RING BUFFER\n"); +@@ -611,7 +611,7 @@ VideoConsumer::HandleEvent( + uint32 index = 0; + fOurBuffers = true; + while(index < kBufferCount) +- if ((uint32)buffer == fBufferMap[index]) ++ if ((addr_t)buffer == fBufferMap[index]) + break; + else + index++; +diff --git a/src/shared/playback/video/VideoConsumer.h b/src/shared/playback/video/VideoConsumer.h +index 0a6f704..f7be27b 100644 +--- a/src/shared/playback/video/VideoConsumer.h ++++ b/src/shared/playback/video/VideoConsumer.h +@@ -34,7 +34,7 @@ class VideoConsumer : public BMediaEventLooper, public BBufferConsumer { + /* BMediaNode */ + public: + +- virtual BMediaAddOn *AddOn(long *cookie) const; ++ virtual BMediaAddOn *AddOn(int32 *cookie) const; + + protected: + +@@ -127,7 +127,7 @@ class VideoConsumer : public BMediaEventLooper, public BBufferConsumer { + BBitmap* fBitmap[kBufferCount]; + bool fOurBuffers; + BBufferGroup* fBuffers; +- uint32 fBufferMap[kBufferCount]; ++ addr_t fBufferMap[kBufferCount]; + + NodeManager* fManager; + BLocker fTargetLock; // locks the following variable +diff --git a/src/shared/playlist/PlaylistItemAudioReader.cpp b/src/shared/playlist/PlaylistItemAudioReader.cpp +index 0da3545..1d1182e 100644 +--- a/src/shared/playlist/PlaylistItemAudioReader.cpp ++++ b/src/shared/playlist/PlaylistItemAudioReader.cpp +@@ -109,7 +109,7 @@ PlaylistItemAudioReader::Read(void* buffer, int64 pos, int64 frames) + break; + case media_raw_audio_format::B_AUDIO_INT: + possibleGain = calc_possible_gain((int32*)buffer, +- channelCount, (int32)frames, LONG_MIN, LONG_MAX); ++ channelCount, (int32)frames, INT32_MIN, INT32_MAX); + break; + case media_raw_audio_format::B_AUDIO_SHORT: + possibleGain = calc_possible_gain((int16*)buffer, +diff --git a/src/shared/playlist/SlideShowPlaylist.cpp b/src/shared/playlist/SlideShowPlaylist.cpp +index d098121..b1c97d3 100644 +--- a/src/shared/playlist/SlideShowPlaylist.cpp ++++ b/src/shared/playlist/SlideShowPlaylist.cpp +@@ -32,12 +32,12 @@ SlideShowPlaylist::~SlideShowPlaylist() + void + SlideShowPlaylist::ValidateItemLayout() + { +- int64 duration = Value(PROPERTY_DURATION, 0LL); ++ int64 duration = Value(PROPERTY_DURATION, (int64)0); + if (duration == 0) + return; + + int64 transitionDuration +- = Value(PROPERTY_TRANSITION_DURATION, 0LL); ++ = Value(PROPERTY_TRANSITION_DURATION, (int64)0); + // TODO: transition mode... + + int32 count = CountItems(); +diff --git a/src/shared/playlist/StretchingPlaylist.cpp b/src/shared/playlist/StretchingPlaylist.cpp +index f34b5b6..d12cf21 100644 +--- a/src/shared/playlist/StretchingPlaylist.cpp ++++ b/src/shared/playlist/StretchingPlaylist.cpp +@@ -51,7 +51,7 @@ StretchingPlaylist::ValidateItemLayout() + // make sure we know the correct total duration for the current layout + Playlist::ValidateItemLayout(); + +- int64 overriddenDuration = Value(PROPERTY_DURATION, 0LL); ++ int64 overriddenDuration = Value(PROPERTY_DURATION, (int64)0); + if (overriddenDuration == 0) + return; + +-- +2.10.2 +