Merge pull request #238991 from SuperSamus/wine-gstreamer-fix

wine: fix gstreamer on WoW builds
This commit is contained in:
7c6f434c 2023-06-25 07:26:23 +00:00 committed by GitHub
commit c077412652
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 6 deletions

View file

@ -1,4 +1,4 @@
{ stdenv, lib, pkgArches, callPackage, makeSetupHook,
{ stdenv, lib, pkgArches, makeSetupHook,
pname, version, src, mingwGccs, monos, geckos, platforms,
bison, flex, fontforge, makeWrapper, pkg-config,
nixosTests,
@ -84,8 +84,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
++ lib.optional sdlSupport pkgs.SDL2
++ lib.optional usbSupport pkgs.libusb1
++ lib.optionals gstreamerSupport (with pkgs.gst_all_1;
[ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav
(gst-plugins-bad.override { enableZbar = false; }) ])
[ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav gst-plugins-bad ])
++ lib.optionals gtkSupport [ pkgs.gtk3 pkgs.glib ]
++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.ocl-icd ]
++ lib.optionals tlsSupport [ pkgs.openssl pkgs.gnutls ]

View file

@ -1,4 +1,4 @@
## build described at http://wiki.winehq.org/Wine64
## build described at https://wiki.winehq.org/Building_Wine#Shared_WoW64
source $stdenv/setup
preFlags="${configureFlags}"
@ -17,6 +17,26 @@ configurePhase
buildPhase
# checkPhase
# Remove 64 bit gstreamer from PKG_CONFIG_PATH
IFS=":" read -ra LIST_ARRAY <<< "$PKG_CONFIG_PATH"
IFS=":" read -ra REMOVE_ARRAY <<< "@pkgconfig64remove@"
NEW_LIST_ARRAY=()
for ELEMENT in "${LIST_ARRAY[@]}"; do
TO_ADD=1
for REMOVE in "${REMOVE_ARRAY[@]}"; do
if [[ "$REMOVE" == "$ELEMENT" ]]; then
TO_ADD=0
break
fi
done
if [[ $TO_ADD -eq 1 ]]; then
NEW_LIST_ARRAY+=("$ELEMENT")
fi
done
PKG_CONFIG_PATH=$(IFS=":"; echo "${NEW_LIST_ARRAY[*]}")
cd $TMP/wine-wow
sourceRoot=`pwd`
configureFlags="${preFlags} --with-wine64=../wine64"

View file

@ -1,4 +1,4 @@
{ stdenv_32bit, lib, pkgs, pkgsi686Linux, pkgsCross, callPackage, moltenvk,
{ stdenv_32bit, lib, pkgs, pkgsi686Linux, pkgsCross, callPackage, substituteAll, moltenvk,
wineRelease ? "stable",
supportFlags
}:
@ -34,7 +34,11 @@ in with src; {
geckos = [ gecko32 gecko64 ];
mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc mingwW64.buildPackages.gcc ];
monos = [ mono ];
buildScript = ./builder-wow.sh;
buildScript = substituteAll {
src = ./builder-wow.sh;
# pkgconfig has trouble picking the right architecture
pkgconfig64remove = lib.makeSearchPathOutput "dev" "lib/pkgconfig" [ pkgs.glib pkgs.gst_all_1.gstreamer ];
};
platforms = [ "x86_64-linux" ];
mainProgram = "wine64";
};