Continue High Sierra os x 10.13 support?
-
There are a large amount of people stuck on High Sierra with Hackintoshes because Apple and nvidia are at an impasse, so except for certain older cards, there are no nvidia drivers post 10.13 High Sierra.
You should include a link for latest High Sierra version on the download page.
I had to make an account to find the last version supporting High Sierra. Was afraid it would be a much older version, glad its pretty recent.
I am aware there is no mac dev atm, but supporting High Sierra if possible in the future might be worthwhile.
Thanks strawberry is much nicer than clementine! -
@omgwtflol
Then someone needs to volunteer for it, as this is a community project.
I have enough work with just supporting the 3 most recent macOS releases.
High Sierra is no longer supported by Apple, Homebrew has also discontinued it. Need to build all dependencies manually. -
@omgwtflol
How can i get download strawberry for high sierra please whre is link? -
-
@annie well this would be the most recent version
http://files.strawberrymusicplayer.org/strawberry-0.8.4-highsierra.dmg
-
Here's a build of release 0.9.3, compiled for macOS 10.13 (High Sierra).
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.
-
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.1Install 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.
-
@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}.cppThese steps can be skipped with Strawberry 0.9.3 and up; the code was fixed to check for Qt5 and use the proper function.