Use our own macOS dependencies

This commit is contained in:
Jonas Kvinge 2022-03-07 21:03:53 +01:00
parent 73843cb54d
commit 1b363babe2
4 changed files with 192 additions and 220 deletions

View File

@ -1300,186 +1300,145 @@ jobs:
run: dpkg-buildpackage -b -d -uc -us -nc -j2 run: dpkg-buildpackage -b -d -uc -us -nc -j2
build-macos-qt5: build-macos:
name: Build macOS Qt 5 name: Build macOS
runs-on: macos-10.15 runs-on: macos-10.15
steps: steps:
- uses: actions/checkout@v1.2.0 - uses: actions/checkout@v1.2.0
- name: Install macports
run: |
wget https://github.com/macports/macports-base/releases/download/v2.7.1/MacPorts-2.7.1-10.15-Catalina.pkg
sudo installer -pkg ./MacPorts-2.7.1-10.15-Catalina.pkg -target /
- name: Uninstall homebrew
run: |
curl -sLO https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh
chmod +x ./uninstall.sh
sudo ./uninstall.sh --force
- name: Update macports
run: sudo /opt/local/bin/port -v selfupdate
- name: Install packages - name: Install packages
run: > run: >
brew install sudo /opt/local/bin/port -N -p install
gsed
wget wget
glib
pkgconfig pkgconfig
boost autoconf
libffi automake
protobuf libtool
protobuf-c intltool
qt5 cmake
gettext meson
gnutls p7zip
fftw lzip
sqlite xz
chromaprint bison
gstreamer flex
gst-plugins-base gtk-doc
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
libcdio
libmtp
create-dmg
taglib
libplist
gdk-pixbuf
- name: Build libgpod - name: Install create-dmg
shell: bash
env:
PERL_MM_USE_DEFAULT: 1
run: | run: |
git clone https://github.com/strawberrymusicplayer/strawberry-libgpod git clone https://github.com/create-dmg/create-dmg.git
cd strawberry-libgpod cd create-dmg
mkdir build make install
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release - name: Get macOS dependencies
make -j 4 shell: bash
sudo make install run: |
cd ../../
mkdir -p strawberry-macos-dependencies/strawberry-macos-dependencies
cd strawberry-macos-dependencies/strawberry-macos-dependencies
/opt/local/bin/wget https://github.com/strawberrymusicplayer/strawberry-macos-dependencies/releases/download/latest/strawberry-macos-catalina-dependencies.tar.xz
tar -xf strawberry-macos-catalina-dependencies.tar.xz
- name: Create Build Environment - name: Create Build Environment
shell: bash shell: bash
run: cmake -E make_directory build run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cmake -E make_directory build
- name: Remove -Wundef
shell: bash
run: /opt/local/bin/gsed -i '/-Wundef/d' CMakeLists.txt
- name: Configure CMake - name: Configure CMake
shell: bash shell: bash
env: env:
MACOSX_DEPLOYMENT_TARGET: 10.15 MACOSX_DEPLOYMENT_TARGET: 10.15
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig CFLAGS: -I${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include
GIO_EXTRA_MODULES: /usr/local/lib/gio/modules CXXFLAGS: -I${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include
GST_PLUGIN_SCANNER: /usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner LDFLAGS: -L${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib -Wl,-rpath,${{github.workspace}}/strawberry-macos-dependencies/usr/lib
GST_PLUGIN_PATH: /usr/local/lib/gstreamer-1.0 PKG_CONFIG_EXECUTABLE: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin/pkg-config
PKG_CONFIG_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/pkgconfig
working-directory: build working-directory: build
run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WITH_QT5=ON -DBUILD_WERROR=ON -DUSE_BUNDLE=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake run: |
pwd
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/cmake \
-DBUILD_WITH_QT6=ON \
-DBUILD_WERROR=OFF \
-DUSE_BUNDLE=ON \
-DBoost_INCLUDE_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \
-DProtobuf_INCLUDE_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \
-DProtobuf_INCLUDE_DIRS=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \
-DProtobuf_LIBRARY=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/libprotobuf.dylib \
-DProtobuf_PROTOC_EXECUTABLE=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin/protoc \
-DFFTW3_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr
- name: Build - name: Build
working-directory: build working-directory: build
shell: bash shell: bash
run: cmake --build . --config Debug --parallel 4 run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cmake --build . --config Release --parallel 4
- name: Fix macdeployqt and macdeploycheck
working-directory: build
shell: bash
run: |
install_name_tool -change "@rpath/QtCore.framework/Versions/A/QtCore" "/Users/runner/work/strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/QtCore.framework/Versions/A/QtCore" /Users/runner/work/strawberry/strawberry/build/3rdparty/macdeployqt/macdeployqt
install_name_tool -change "@rpath/QtCore.framework/Versions/A/QtCore" "/Users/runner/work/strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/QtCore.framework/Versions/A/QtCore" /Users/runner/work/strawberry/strawberry/build/ext/macdeploycheck/macdeploycheck
- name: Install - name: Install
working-directory: build
shell: bash
run: make install
- name: Manually copy files not handled by macdeployqt
working-directory: build working-directory: build
shell: bash shell: bash
run: | run: |
mkdir -p strawberry.app/Contents/Frameworks/ export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cp -v /usr/local/lib/libbrotlicommon.1.dylib strawberry.app/Contents/Frameworks/ make install
cp -v /usr/local/opt/icu4c/lib/libicudata.69.dylib strawberry.app/Contents/Frameworks/
cp -v /usr/local/lib/libgpod.dylib strawberry.app/Contents/Frameworks/
install_name_tool -change "@rpath/libgpod.dylib" "@loader_path/../Frameworks/libgpod.dylib" strawberry.app/Contents/MacOS/strawberry
- name: Deploy - name: Deploy
working-directory: build working-directory: build
shell: bash shell: bash
run: make deploy env:
GIO_EXTRA_MODULES: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gio/modules
GST_PLUGIN_SCANNER: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/libexec/gst-plugin-scanner
GST_PLUGIN_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gstreamer-1.0
run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
make deploy
- name: Deploy check - name: Deploy check
working-directory: build working-directory: build
shell: bash shell: bash
run: make deploycheck run: |
export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
make deploycheck
- name: Create DMG - name: Create DMG
working-directory: build working-directory: build
shell: bash
run: make dmg
build-macos-qt6:
name: Build macOS Qt 6
runs-on: macos-10.15
steps:
- uses: actions/checkout@v1.2.0
- name: Install packages
run: >
brew install
wget
glib
pkgconfig
boost
libffi
protobuf
protobuf-c
qt6
gettext
gnutls
fftw
sqlite
chromaprint
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
libcdio
libmtp
create-dmg
taglib
libplist
gdk-pixbuf
- name: Build libgpod
shell: bash shell: bash
env: env:
PERL_MM_USE_DEFAULT: 1 GIO_EXTRA_MODULES: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gio/modules
GST_PLUGIN_SCANNER: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/libexec/gst-plugin-scanner
GST_PLUGIN_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gstreamer-1.0
run: | run: |
git clone https://github.com/strawberrymusicplayer/strawberry-libgpod export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH"
cd strawberry-libgpod make dmg
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j 4
sudo make install
- name: Remove problematic files
shell: bash
run: sudo rm -rf /usr/local/opt/qt6/share/qt/plugins/virtualkeyboard /usr/local/opt/qt6/share/qt/plugins/platforminputcontexts
- name: Create Build Environment
shell: bash
run: cmake -E make_directory build
- name: Configure CMake
shell: bash
env:
MACOSX_DEPLOYMENT_TARGET: 10.15
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig
GIO_EXTRA_MODULES: /usr/local/lib/gio/modules
GST_PLUGIN_SCANNER: /usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner
GST_PLUGIN_PATH: /usr/local/lib/gstreamer-1.0
working-directory: build
run: cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_QT6=ON -DBUILD_WERROR=ON -DUSE_BUNDLE=ON -DCMAKE_PREFIX_PATH=/usr/local/opt/qt6/lib/cmake
- name: Build
working-directory: build
shell: bash
run: cmake --build . --config Release --parallel 4
- name: Install
working-directory: build
shell: bash
run: make install
- name: Manually copy files not handled by macdeployqt
working-directory: build
shell: bash
run: |
mkdir -p strawberry.app/Contents/Frameworks/
cp -v /usr/local/lib/libbrotlicommon.1.dylib strawberry.app/Contents/Frameworks/
- name: Deploy
working-directory: build
shell: bash
run: make deploy
- name: Deploy check
working-directory: build
shell: bash
run: make deploycheck
- name: Create DMG
working-directory: build
shell: bash
run: make dmg
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
name: upload-macos name: upload-macos
@ -2167,7 +2126,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'
needs: needs:
- build-macos-qt6 - build-macos
steps: steps:
- uses: actions/checkout@v1.2.0 - uses: actions/checkout@v1.2.0
- uses: actions/download-artifact@v2 - uses: actions/download-artifact@v2

View File

@ -1214,27 +1214,34 @@ void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pl
// GIO modules // GIO modules
{ {
QString sourcePath = qgetenv("GIO_EXTRA_MODULES"); QString giomodule_path = qgetenv("GIO_EXTRA_MODULES");
if (sourcePath.isEmpty()) { if (giomodule_path.isEmpty()) {
if (QFileInfo::exists("/usr/local/lib/gio/modules/libgiognutls.so")) { if (QDir().exists("/usr/local/lib/gio/modules")) {
sourcePath = "/usr/local/lib/gio/modules/libgiognutls.so"; giomodule_path = "/usr/local/lib/gio/modules";
} }
else if (QFileInfo::exists("/opt/local/lib/gio/modules/libgiognutls.so")) { else if (QDir().exists("/opt/local/lib/gio/modules")) {
sourcePath = "/opt/local/lib/gio/modules/libgiognutls.so"; giomodule_path = "/opt/local/lib/gio/modules";
} }
else { else {
qFatal("Missing GIO_EXTRA_MODULES"); qFatal("Missing GIO_EXTRA_MODULES");
} }
} }
else {
sourcePath = sourcePath + "/libgiognutls.so"; const QStringList giomodules = QStringList() << "libgiognutls.so" << "libgioopenssl.so";
} for (const QString &giomodule : giomodules) {
const QString destinationPath = appBundleInfo.path + "/Contents/PlugIns/gio-modules/libgiognutls.so"; const QString sourcePath = giomodule_path + "/" + giomodule;
QDir dir; QFileInfo fileinfo(sourcePath);
if (dir.mkpath(QFileInfo(destinationPath).path()) && copyFilePrintStatus(sourcePath, destinationPath)) { if (!fileinfo.exists()) {
runStrip(destinationPath); LogError() << "Missing GIO module" << fileinfo.baseName();
QList<FrameworkInfo> frameworks = getQtFrameworks(destinationPath, appBundleInfo.path, deploymentInfo.rpathsUsed, useDebugLibs); qFatal("Missing GIO modules.");
deployQtFrameworks(frameworks, appBundleInfo.path, QStringList() << destinationPath, useDebugLibs, deploymentInfo.useLoaderPath); }
const QString destinationPath = appBundleInfo.path + "/Contents/PlugIns/gio-modules/" + giomodule;
QDir dir;
if (dir.mkpath(QFileInfo(destinationPath).path()) && copyFilePrintStatus(sourcePath, destinationPath)) {
runStrip(destinationPath);
QList<FrameworkInfo> frameworks = getQtFrameworks(destinationPath, appBundleInfo.path, deploymentInfo.rpathsUsed, useDebugLibs);
deployQtFrameworks(frameworks, appBundleInfo.path, QStringList() << destinationPath, useDebugLibs, deploymentInfo.useLoaderPath);
}
} }
} }
@ -1262,8 +1269,13 @@ void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pl
} }
// GStreamer plugins. // GStreamer plugins.
QStringList gstreamer_plugins = QStringList() << "libgstapetag.dylib" QStringList gstreamer_plugins = QStringList()
<< "libgstaes.dylib"
<< "libgstaiff.dylib"
<< "libgstapetag.dylib"
<< "libgstapp.dylib" << "libgstapp.dylib"
<< "libgstasf.dylib"
<< "libgstasfmux.dylib"
<< "libgstaudioconvert.dylib" << "libgstaudioconvert.dylib"
<< "libgstaudiofx.dylib" << "libgstaudiofx.dylib"
<< "libgstaudiomixer.dylib" << "libgstaudiomixer.dylib"
@ -1271,48 +1283,48 @@ void deployPlugins(const ApplicationBundleInfo &appBundleInfo, const QString &pl
<< "libgstaudiorate.dylib" << "libgstaudiorate.dylib"
<< "libgstaudioresample.dylib" << "libgstaudioresample.dylib"
<< "libgstaudiotestsrc.dylib" << "libgstaudiotestsrc.dylib"
<< "libgstaudiovisualizers.dylib"
<< "libgstauparse.dylib"
<< "libgstautoconvert.dylib"
<< "libgstautodetect.dylib" << "libgstautodetect.dylib"
<< "libgstbs2b.dylib"
<< "libgstcdio.dylib"
<< "libgstcoreelements.dylib" << "libgstcoreelements.dylib"
<< "libgstdash.dylib"
<< "libgstequalizer.dylib" << "libgstequalizer.dylib"
<< "libgstflac.dylib"
<< "libgstfaac.dylib"
<< "libgstfaad.dylib"
<< "libgstfdkaac.dylib"
<< "libgstgio.dylib" << "libgstgio.dylib"
<< "libgsticydemux.dylib" << "libgsticydemux.dylib"
<< "libgstid3demux.dylib" << "libgstid3demux.dylib"
<< "libgstlevel.dylib" << "libgstisomp4.dylib"
<< "libgstlame.dylib"
<< "libgstlibav.dylib"
<< "libgstmpg123.dylib"
<< "libgstmusepack.dylib"
<< "libgstogg.dylib"
<< "libgstopenmpt.dylib"
<< "libgstopus.dylib"
<< "libgstopusparse.dylib"
<< "libgstosxaudio.dylib" << "libgstosxaudio.dylib"
<< "libgstplayback.dylib"
<< "libgstrawparse.dylib"
<< "libgstreplaygain.dylib"
<< "libgstsoup.dylib"
<< "libgstspectrum.dylib"
<< "libgsttypefindfunctions.dylib"
<< "libgstvolume.dylib"
<< "libgstxingmux.dylib"
<< "libgsttcp.dylib"
<< "libgstudp.dylib"
<< "libgstpbtypes.dylib" << "libgstpbtypes.dylib"
<< "libgstplayback.dylib"
<< "libgstreplaygain.dylib"
<< "libgstrtp.dylib" << "libgstrtp.dylib"
<< "libgstrtsp.dylib" << "libgstrtsp.dylib"
<< "libgstflac.dylib" << "libgstsoup.dylib"
<< "libgstwavparse.dylib" << "libgstspectrum.dylib"
<< "libgstfaad.dylib"
<< "libgstogg.dylib"
<< "libgstopus.dylib"
<< "libgstasf.dylib"
<< "libgstspeex.dylib" << "libgstspeex.dylib"
<< "libgsttaglib.dylib" << "libgsttaglib.dylib"
<< "libgsttcp.dylib"
<< "libgsttypefindfunctions.dylib"
<< "libgstudp.dylib"
<< "libgstvolume.dylib"
<< "libgstvorbis.dylib" << "libgstvorbis.dylib"
<< "libgstisomp4.dylib" << "libgstwavpack.dylib"
<< "libgstlibav.dylib" << "libgstwavparse.dylib"
<< "libgstaiff.dylib" << "libgstxingmux.dylib";
<< "libgstlame.dylib";
// macports does not have these. QStringList gstreamer_plugins_optional = QStringList();
QStringList gstreamer_plugins_optional = QStringList() << "libgstopusparse.dylib"
<< "libgstfaac.dylib"
<< "libgstmusepack.dylib";
QString gstreamer_plugins_dir = qgetenv("GST_PLUGIN_PATH"); QString gstreamer_plugins_dir = qgetenv("GST_PLUGIN_PATH");
if (gstreamer_plugins_dir.isEmpty()) { if (gstreamer_plugins_dir.isEmpty()) {

View File

@ -21,10 +21,7 @@ if(MACDEPLOYQT_EXECUTABLE)
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/{Frameworks,Resources} COMMAND mkdir -p ${CMAKE_BINARY_DIR}/strawberry.app/Contents/{Frameworks,Resources}
COMMAND cp -v ${CMAKE_SOURCE_DIR}/dist/macos/Info.plist ${CMAKE_BINARY_DIR}/strawberry.app/Contents/ COMMAND cp -v ${CMAKE_SOURCE_DIR}/dist/macos/Info.plist ${CMAKE_BINARY_DIR}/strawberry.app/Contents/
COMMAND cp -v ${CMAKE_SOURCE_DIR}/dist/macos/strawberry.icns ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources/ COMMAND cp -v ${CMAKE_SOURCE_DIR}/dist/macos/strawberry.icns ${CMAKE_BINARY_DIR}/strawberry.app/Contents/Resources/
COMMAND ${MACDEPLOYQT_EXECUTABLE} strawberry.app -verbose=3 COMMAND ${MACDEPLOYQT_EXECUTABLE} strawberry.app -verbose=3 -executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/strawberry-tagreader
-executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/strawberry-tagreader
-executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/gio-modules/libgiognutls.so
#-executable=${CMAKE_BINARY_DIR}/strawberry.app/Contents/PlugIns/gst-plugin-scanner
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
DEPENDS strawberry strawberry-tagreader copy_gstreamer_plugins macdeployqt DEPENDS strawberry strawberry-tagreader copy_gstreamer_plugins macdeployqt
) )

View File

@ -39,8 +39,12 @@ fi
cp -v -f "${GST_PLUGIN_SCANNER}" "${bundledir}/Contents/PlugIns/" || exit 1 cp -v -f "${GST_PLUGIN_SCANNER}" "${bundledir}/Contents/PlugIns/" || exit 1
gst_plugins=" gst_plugins="
libgstaes.dylib
libgstaiff.dylib
libgstapetag.dylib libgstapetag.dylib
libgstapp.dylib libgstapp.dylib
libgstasf.dylib
libgstasfmux.dylib
libgstaudioconvert.dylib libgstaudioconvert.dylib
libgstaudiofx.dylib libgstaudiofx.dylib
libgstaudiomixer.dylib libgstaudiomixer.dylib
@ -48,46 +52,46 @@ libgstaudioparsers.dylib
libgstaudiorate.dylib libgstaudiorate.dylib
libgstaudioresample.dylib libgstaudioresample.dylib
libgstaudiotestsrc.dylib libgstaudiotestsrc.dylib
libgstaudiovisualizers.dylib
libgstauparse.dylib
libgstautoconvert.dylib
libgstautodetect.dylib libgstautodetect.dylib
libgstbs2b.dylib
libgstcdio.dylib
libgstcoreelements.dylib libgstcoreelements.dylib
libgstdash.dylib
libgstequalizer.dylib libgstequalizer.dylib
libgstflac.dylib
libgstfaac.dylib
libgstfaad.dylib
libgstfdkaac.dylib
libgstgio.dylib libgstgio.dylib
libgsticydemux.dylib libgsticydemux.dylib
libgstid3demux.dylib libgstid3demux.dylib
libgstlevel.dylib libgstisomp4.dylib
libgstlame.dylib
libgstlibav.dylib
libgstmpg123.dylib
libgstmusepack.dylib
libgstogg.dylib
libgstopenmpt.dylib
libgstopus.dylib
libgstopusparse.dylib
libgstosxaudio.dylib libgstosxaudio.dylib
libgstplayback.dylib
libgstrawparse.dylib
libgstreplaygain.dylib
libgstsoup.dylib
libgstspectrum.dylib
libgsttypefindfunctions.dylib
libgstvolume.dylib
libgstxingmux.dylib
libgsttcp.dylib
libgstudp.dylib
libgstpbtypes.dylib libgstpbtypes.dylib
libgstplayback.dylib
libgstreplaygain.dylib
libgstrtp.dylib libgstrtp.dylib
libgstrtsp.dylib libgstrtsp.dylib
libgstflac.dylib libgstsoup.dylib
libgstwavparse.dylib libgstspectrum.dylib
libgstfaad.dylib
libgstogg.dylib
libgstopus.dylib
libgstasf.dylib
libgstspeex.dylib libgstspeex.dylib
libgsttaglib.dylib libgsttaglib.dylib
libgsttcp.dylib
libgsttypefindfunctions.dylib
libgstudp.dylib
libgstvolume.dylib
libgstvorbis.dylib libgstvorbis.dylib
libgstisomp4.dylib libgstwavpack.dylib
libgstlibav.dylib libgstwavparse.dylib
libgstaiff.dylib libgstxingmux.dylib;
libgstlame.dylib
libgstopusparse.dylib
libgstfaac.dylib
libgstmusepack.dylib
" "
gst_plugins=$(echo "$gst_plugins" | tr '\n' ' ' | sed -e 's/^ //g' | sed -e 's/ / /g') gst_plugins=$(echo "$gst_plugins" | tr '\n' ' ' | sed -e 's/^ //g' | sed -e 's/ / /g')