• Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login
    1. Strawberry Music Player Forums
    2. swagstaff
    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 3
    • Best 3
    • Controversial 0
    • Groups 0

    swagstaff

    @swagstaff

    3
    Reputation
    2
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    swagstaff Unfollow Follow

    Best posts made by swagstaff

    • RE: Continue High Sierra os x 10.13 support?

      Here's a build of release 0.9.3, compiled for macOS 10.13 (High Sierra).

      https://gofile.io/d/gb0LvS

      Only test was playing random local music and video files (for hours). Don't know if anything else works, e.g., streaming, scrobbling, lyrics, etc.

      No Qt6, because it's not supported on macOS 10.13.

      No Sparkle updating, because there's no infrastructure for this build.

      See next entry for build how-to.

      posted in Comments & Feedback
      S
      swagstaff
    • RE: Continue High Sierra os x 10.13 support?

      HOWTO: build Strawberry Music Player for macOS 10.13 (High Sierra)

      Additional notes and links at the end of this.

      (bash) shell commands are indicated by '$ ' at the beginning of a line.

      You will need:

      A Mac or virtual machine with macOS 10.13.6 installed
      Xcode 9.4.1
      Xcode 10.1
      Command Line Tools (macOS 10.13) for Xcode 9.4.1

      Install Xcode 9.4.1 to /Applications.

      Run the Command Line Tools (macOS 10.13) for Xcode 9.4.1 installer from its dmg.

      If you have never run Xcode, do it now to agree to Apple's terms and install some "components." I.e., run, agree, wait until idle, quit.

      Install brew. Instructions at https://brew.sh#install

      Refer to strawberry build instructions at github. Look for the line that says 'build-macos-qt5'. Link to the line as of this writing:

      https://github.com/strawberrymusicplayer/strawberry/blob/master/.github/workflows/ccpp.yml#L1174

      DO NOT 'brew install qt5' in the next step. It will be performed in a later step.

      Do the brew-installs listed in ccpp.yml/build-macos-qt5.

      Example: start with

      $ brew install glib

      And then (again, SKIP qt5 for now)

      brew install pkgconfig ... etc. through taglib

      INSTALL Qt5:

      Rename /Applications/Xcode. We renamed it 'Xcode-9.4.1'.

      Install Xcode 10.1 to /Applications

      Set the active developer directory to Xcode 10.1:

      $ xcode-select -s /Application/Xcode.app

      Check that it worked:
      $ xcodebuild -version

      $ brew install qt5

      After the qt5 build succeeds, go back to Xclode 9.4.1:

      $ xcode-select -s /Application/Xcode-9.4.1.app

      SKIP anything in ccpp.yml related to Sparkle.

      Get the strawberry code (to ~/Documents):

      $ cd ~/Documents

      $ git clone git://github.com/strawberrymusicplayer/strawberry --branch 0.9.3

      Make and enter the build directory. (We end up in ~/Documents/strawberry/build):

      $ cd strawberry

      $ mkdir build && cd build

      We have to patch some Qt6-specific code to build with Qt5. Edit the following files:

      ../3rdparty/macdeployqt/main.cpp

      ../3rdparty/macdeployqt/shared.cpp

      And change ALL instances of

      QLibraryInfo::path

      to

      QLibraryInfo::location

      (A quick way to patch:)

      $ sed -i '.bak' 's/QLibraryInfo::path/QLibraryInfo::location/g' ../3rdparty/macdeployqt/{main,shared}.cpp

      Configure CMake:

      $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

      $ export Qt5_DIR=/usr/local/opt/qt5/lib/cmake

      $ export Qt5LinguistTools_DIR=/usr/local/opt/qt5/lib/cmake/Qt5LinguistTools

      $ export GIO_EXTRA_MODULES=/usr/local/lib/gio/modules

      $ export GST_PLUGIN_SCANNER=/usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner

      $ export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0

      $ cmake .. -DBUILD_WITH_QT5=ON -DBUILD_WERROR=ON -DUSE_BUNDLE=ON -DSPARKLE=OFF -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake

      Build:

      $ cmake --build .

      $ make install

      We have to patch a file that refers to Sparkle, which we are not using:

      Either edit

      CMakeFiles/dmg.dir/build.make

      and comment out the line that copies Sparkle.framework

      or more simply (assumes 'Sparkle' is a case-sensitive match):

      $ sed -i '.bak' '/Sparkle/s/^/##/' CMakeFiles/dmg.dir/build.make

      Before the final step, we have to preemptively copy a dylib that doesn't get copied in 'make dmg':

      $ mkdir strawberry.app/Contents/Frameworks

      $ cp /usr/local/opt/icu4c/lib/libicudata.68.dylib strawberry.app/Contents/Frameworks

      $ make dmg

      Et voila! There should be a strawberry-0.9.3-highsierra-x86_64.dmg in the current (build) directory.


      NOTES AND MORE INFORMATION

      There are lots of ways to accomplish these tasks. If you know more or better, do it your way.

      Developer tools are available with a free(?) developer account from
      https://developer.apple.com/download/more/

      We assume that it's best to build for macOS 10.13 with the latest tools that contain the 10.13 SDK. These are Xcode 9.4.1 and Command Line Tools (macOS 10.13) for Xcode 9.4.1. Ref.
      Xcode Wikipedia article.

      brew-installs can take a serious-long time, especially with older hardware and/or virtual machine installations. Building Qt5 alone took over 19 hours to build on a VirtualBox machine with an old Mac Pro host. Other builds took over 4 hours. Because you can run into problems, you might want to brew-install one formula (package) at a time.

      We build strawberry with Qt5 because Qt6 is not supported on macOS 10.13.

      Qt5 does not build with Xcode 9.4.1, but does with Xcode 10.1. We just worked with this fact and didn't spend any time figuring out why.

      We do not install Sparkle because there is no auto-update infrastructure for this build.

      'QLibraryInfo::path' is a Qt6 thing; it must be patched to its Qt5 equivalent, 'QLibraryInfo::location'

      We skipped all references like 'MAKE_BUILD_TYPE=Release' under the possibly-incorrect supposition that this may enable some debugging output that might be useful to a knowledgable user.

      posted in Comments & Feedback
      S
      swagstaff
    • RE: Continue High Sierra os x 10.13 support?

      @swagstaff said in Continue High Sierra os x 10.13 support?:

      We have to patch some Qt6-specific code to build with Qt5. Edit the following files:
      ../3rdparty/macdeployqt/main.cpp
      ../3rdparty/macdeployqt/shared.cpp
      And change ALL instances of
      QLibraryInfo::path
      to
      QLibraryInfo::location
      (A quick way to patch:)
      $ sed -i '.bak' 's/QLibraryInfo::path/QLibraryInfo::location/g' ../3rdparty/macdeployqt/{main,shared}.cpp

      These steps can be skipped with Strawberry 0.9.3 and up; the code was fixed to check for Qt5 and use the proper function.

      posted in Comments & Feedback
      S
      swagstaff

    Latest posts made by swagstaff

    • RE: Continue High Sierra os x 10.13 support?

      @swagstaff said in Continue High Sierra os x 10.13 support?:

      We have to patch some Qt6-specific code to build with Qt5. Edit the following files:
      ../3rdparty/macdeployqt/main.cpp
      ../3rdparty/macdeployqt/shared.cpp
      And change ALL instances of
      QLibraryInfo::path
      to
      QLibraryInfo::location
      (A quick way to patch:)
      $ sed -i '.bak' 's/QLibraryInfo::path/QLibraryInfo::location/g' ../3rdparty/macdeployqt/{main,shared}.cpp

      These steps can be skipped with Strawberry 0.9.3 and up; the code was fixed to check for Qt5 and use the proper function.

      posted in Comments & Feedback
      S
      swagstaff
    • RE: Continue High Sierra os x 10.13 support?

      HOWTO: build Strawberry Music Player for macOS 10.13 (High Sierra)

      Additional notes and links at the end of this.

      (bash) shell commands are indicated by '$ ' at the beginning of a line.

      You will need:

      A Mac or virtual machine with macOS 10.13.6 installed
      Xcode 9.4.1
      Xcode 10.1
      Command Line Tools (macOS 10.13) for Xcode 9.4.1

      Install Xcode 9.4.1 to /Applications.

      Run the Command Line Tools (macOS 10.13) for Xcode 9.4.1 installer from its dmg.

      If you have never run Xcode, do it now to agree to Apple's terms and install some "components." I.e., run, agree, wait until idle, quit.

      Install brew. Instructions at https://brew.sh#install

      Refer to strawberry build instructions at github. Look for the line that says 'build-macos-qt5'. Link to the line as of this writing:

      https://github.com/strawberrymusicplayer/strawberry/blob/master/.github/workflows/ccpp.yml#L1174

      DO NOT 'brew install qt5' in the next step. It will be performed in a later step.

      Do the brew-installs listed in ccpp.yml/build-macos-qt5.

      Example: start with

      $ brew install glib

      And then (again, SKIP qt5 for now)

      brew install pkgconfig ... etc. through taglib

      INSTALL Qt5:

      Rename /Applications/Xcode. We renamed it 'Xcode-9.4.1'.

      Install Xcode 10.1 to /Applications

      Set the active developer directory to Xcode 10.1:

      $ xcode-select -s /Application/Xcode.app

      Check that it worked:
      $ xcodebuild -version

      $ brew install qt5

      After the qt5 build succeeds, go back to Xclode 9.4.1:

      $ xcode-select -s /Application/Xcode-9.4.1.app

      SKIP anything in ccpp.yml related to Sparkle.

      Get the strawberry code (to ~/Documents):

      $ cd ~/Documents

      $ git clone git://github.com/strawberrymusicplayer/strawberry --branch 0.9.3

      Make and enter the build directory. (We end up in ~/Documents/strawberry/build):

      $ cd strawberry

      $ mkdir build && cd build

      We have to patch some Qt6-specific code to build with Qt5. Edit the following files:

      ../3rdparty/macdeployqt/main.cpp

      ../3rdparty/macdeployqt/shared.cpp

      And change ALL instances of

      QLibraryInfo::path

      to

      QLibraryInfo::location

      (A quick way to patch:)

      $ sed -i '.bak' 's/QLibraryInfo::path/QLibraryInfo::location/g' ../3rdparty/macdeployqt/{main,shared}.cpp

      Configure CMake:

      $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

      $ export Qt5_DIR=/usr/local/opt/qt5/lib/cmake

      $ export Qt5LinguistTools_DIR=/usr/local/opt/qt5/lib/cmake/Qt5LinguistTools

      $ export GIO_EXTRA_MODULES=/usr/local/lib/gio/modules

      $ export GST_PLUGIN_SCANNER=/usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner

      $ export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0

      $ cmake .. -DBUILD_WITH_QT5=ON -DBUILD_WERROR=ON -DUSE_BUNDLE=ON -DSPARKLE=OFF -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake

      Build:

      $ cmake --build .

      $ make install

      We have to patch a file that refers to Sparkle, which we are not using:

      Either edit

      CMakeFiles/dmg.dir/build.make

      and comment out the line that copies Sparkle.framework

      or more simply (assumes 'Sparkle' is a case-sensitive match):

      $ sed -i '.bak' '/Sparkle/s/^/##/' CMakeFiles/dmg.dir/build.make

      Before the final step, we have to preemptively copy a dylib that doesn't get copied in 'make dmg':

      $ mkdir strawberry.app/Contents/Frameworks

      $ cp /usr/local/opt/icu4c/lib/libicudata.68.dylib strawberry.app/Contents/Frameworks

      $ make dmg

      Et voila! There should be a strawberry-0.9.3-highsierra-x86_64.dmg in the current (build) directory.


      NOTES AND MORE INFORMATION

      There are lots of ways to accomplish these tasks. If you know more or better, do it your way.

      Developer tools are available with a free(?) developer account from
      https://developer.apple.com/download/more/

      We assume that it's best to build for macOS 10.13 with the latest tools that contain the 10.13 SDK. These are Xcode 9.4.1 and Command Line Tools (macOS 10.13) for Xcode 9.4.1. Ref.
      Xcode Wikipedia article.

      brew-installs can take a serious-long time, especially with older hardware and/or virtual machine installations. Building Qt5 alone took over 19 hours to build on a VirtualBox machine with an old Mac Pro host. Other builds took over 4 hours. Because you can run into problems, you might want to brew-install one formula (package) at a time.

      We build strawberry with Qt5 because Qt6 is not supported on macOS 10.13.

      Qt5 does not build with Xcode 9.4.1, but does with Xcode 10.1. We just worked with this fact and didn't spend any time figuring out why.

      We do not install Sparkle because there is no auto-update infrastructure for this build.

      'QLibraryInfo::path' is a Qt6 thing; it must be patched to its Qt5 equivalent, 'QLibraryInfo::location'

      We skipped all references like 'MAKE_BUILD_TYPE=Release' under the possibly-incorrect supposition that this may enable some debugging output that might be useful to a knowledgable user.

      posted in Comments & Feedback
      S
      swagstaff
    • RE: Continue High Sierra os x 10.13 support?

      Here's a build of release 0.9.3, compiled for macOS 10.13 (High Sierra).

      https://gofile.io/d/gb0LvS

      Only test was playing random local music and video files (for hours). Don't know if anything else works, e.g., streaming, scrobbling, lyrics, etc.

      No Qt6, because it's not supported on macOS 10.13.

      No Sparkle updating, because there's no infrastructure for this build.

      See next entry for build how-to.

      posted in Comments & Feedback
      S
      swagstaff