Mageia Bugzilla – Attachment 13542 Details for
Bug 28814
Wine 32bit install on 64bit system doesn't pull mesa 32bit drivers
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
New Account
|
Forgot Password
Fixed spec file
wine_7.22_1.mga9.spec (text/x-matlab), 19.06 KB, created by
Aurelian R
on 2022-12-04 22:20:34 CET
(
hide
)
Description:
Fixed spec file
Filename:
MIME Type:
Creator:
Aurelian R
Created:
2022-12-04 22:20:34 CET
Size:
19.06 KB
patch
obsolete
>%ifarch x86_64 aarch64 >%define wine wine64 >%define umingw mingw64 >%define mark64 ()(64bit) >%else >%define wine wine >%define umingw mingw32 >%define mark64 %{nil} >%endif >%define lib_name_orig lib%{name} >%define lib_major 1 >%define lib_name %mklibname %{name} %{lib_major} >%define lib_name_devel %mklibname wine -d > >%define have_mingw 0 >%ifarch %{ix86} x86_64 ># Mingw can only be used on x86. >%define have_mingw 1 >%endif > ># On 32-bit we have ># wine32 - those 32-bit binaries that are also used on 64-bit for 32-bit support ># wine - all other files (requires 'wine32') ># On 64-bit we have ># wine64 - all 64-bit files (suggests 'wine32') ># - Anssi 07/2010 > >%define mainver 7.22 >%define mainget 7.x >#define bugfix 0 >%define rel 2 >#define prerel rc5 >%define snaprel 1 > ># Parallel build broken (fails with ># /usr/bin/x86_64-w64-mingw32-dlltool: dlls/winmm/libwinmm.{cross,delay}.a: No such file or directory ># /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/liboleaut32.{cross,delay}.a: No such file or directory ># /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/libwintrust.{cross,delay}.a: No such file or directory >#global _smp_mflags -j1 > ># When altering these, make sure corresponding wine-gecko/wine-mono is ># submitted, or notify their maintainer about the new version: ># Dependencies hardcoded in dlls/appwiz.cpl/addons.c >%define gecko_version 2.47.3 >%define mono_version 7.4.0 > ># build with wine-staging patches, see: https://github.com/wine-staging/wine-staging ># Build with staging during our development cycles, stick to stable for Mageia stable releases >%global wine_staging 0 > >%ifarch %{ix86} >%global winepedir i386-windows >%global winesodir i386-unix >%endif >%ifarch x86_64 >%global winepedir x86_64-windows >%global winesodir x86_64-unix >%endif >%ifarch %{arm} >%global winepedir arm-windows >%global winesodir arm-unix >%endif >%ifarch aarch64 >%global winepedir aarch64-windows >%global winesodir aarch64-unix >%global __brp_llvm_compile_lto_elf %nil >%global __brp_strip_lto %nil >%global __brp_strip_static_archive %nil >%endif > >%define dlopenreq() %(F=%{_libdir}/lib%{1}.so;[ -e $F ] && (file $F|grep -q ASCII && grep -o 'lib[^ ]*' $F|sed -e "s/\$/%{mark64}/"||objdump -p $F | grep SONAME | awk '{ print $2 "%{mark64}" }') || echo "wine-missing-buildrequires-on-%{1}") > >Name: wine >Epoch: 1 >Version: %{mainver}%{?bugfix:.%{bugfix}} >Release: %mkrel %{rel}%{?prerel:.%{prerel}.%{snaprel}} >Summary: WINE Is Not An Emulator - runs MS Windows programs >License: LGPLv2+ >Group: Emulators >URL: https://www.winehq.org/ >Source0: https://dl.winehq.org/wine/source/%mainget/%{name}-%{version}%{?prerel:-%{prerel}}.tar.xz >Source10: https://dl.winehq.org/wine/source/%mainget/%{name}-%{version}%{?prerel:-%{prerel}}.tar.xz.sign >Source2: wine.systemd >Source3: wine-icons_256.tar.xz > >%if 0%{?wine_staging} >Source900: https://github.com/wine-staging/wine-staging/archive/v%{mainver}%{?prerel:-%{prerel}}/wine-staging-%{mainver}%{?prerel:-%{prerel}}.tar.gz >%endif > ># fix configure macros for cross-compiling >Patch100: wine-7.21-cross.patch > ># https://bugs.winehq.org/show_bug.cgi?id=45277 >#Patch100: wine-6.0-vulkan-child-window.patch > ># (Anssi 05/2008) Adds: ># a: => /media/floppy ># d: => $HOME (at config_dir creation time, not refreshed if $HOME changes; ># note that Wine also provides $HOME in My Documents) ># com4 => /dev/ttyUSB0 (replaces /dev/ttyS3) >Patch108: wine-mgaconf.patch > >ExclusiveArch: %{ix86} x86_64 aarch64 > >BuildRequires: autoconf >BuildRequires: bison >BuildRequires: flex >%ifarch %{arm} aarch64 >BuildRequires: clang >= 5.0 >BuildRequires: lld >%else >BuildRequires: gcc >%endif >%if 0%{?have_mingw} >BuildRequires: %{umingw}-gcc >BuildRequires: %{umingw}-lcms2 >BuildRequires: %{umingw}-libxml2 >BuildRequires: %{umingw}-libxslt >BuildRequires: %{umingw}-zlib >%if 0%{distro_release} > 8 ># Unavailable or too old >BuildRequires: %{umingw}-libjpeg-turbo >BuildRequires: %{umingw}-libpng >BuildRequires: %{umingw}-libtiff >BuildRequires: %{umingw}-FAudio >BuildRequires: %{umingw}-vkd3d >BuildRequires: %{umingw}-vulkan-headers >#BuildRequires: %%{umingw}-gsm >#BuildRequires: %%{umingw}-mpg123 >%endif >%endif >BuildRequires: desktop-file-utils >BuildRequires: docbook-dtd-sgml >BuildRequires: docbook-utils >BuildRequires: ffmpeg-devel >BuildRequires: fontconfig-devel >BuildRequires: fontforge >BuildRequires: freetype2-devel >BuildRequires: gettext-devel >BuildRequires: glibc-static-devel >BuildRequires: cups-devel >BuildRequires: dbus-devel >BuildRequires: glut-devel >BuildRequires: gnutls-devel >BuildRequires: gphoto2-devel >BuildRequires: gpm-devel >BuildRequires: gstreamer1.0-devel >BuildRequires: gtk3-devel >BuildRequires: icoutils >BuildRequires: imagemagick >BuildRequires: libalsa-devel >BuildRequires: libgstreamer1.0-plugins-base-devel >BuildRequires: libpcap-devel >BuildRequires: librsvg >BuildRequires: libsm-devel >BuildRequires: libv4l-devel >BuildRequires: chrpath >BuildRequires: libva-devel >BuildRequires: libx11-devel >BuildRequires: libxcomposite-devel >BuildRequires: libxcursor-devel >BuildRequires: libxext-devel >BuildRequires: libxi-devel >BuildRequires: libxinerama-devel >BuildRequires: libxrandr-devel >BuildRequires: libxrender-devel >BuildRequires: mesaglu-devel >BuildRequires: ncurses-devel >BuildRequires: opencl-devel >BuildRequires: openldap-devel >BuildRequires: osmesa-devel >BuildRequires: perl-devel >BuildRequires: pkgconfig(vulkan) >BuildRequires: pulseaudio-devel >BuildRequires: sane-devel >BuildRequires: sgml-tools >BuildRequires: ungif-devel >BuildRequires: unixODBC-devel >BuildRequires: valgrind-devel >BuildRequires: xpm-devel >BuildRequires: samba-devel > >%define desc Wine is a program which allows running Microsoft Windows programs \ >(including DOS, Windows 3.x and Win32 executables) on Unix. It \ >consists of a program loader which loads and executes a Microsoft \ >Windows binary, and a library (called Winelib) that implements Windows \ >API calls using their Unix or X11 equivalents. The library may also \ >be used for porting Win32 code into native Unix executables. > >%ifarch x86_64 aarch64 >%package -n %{wine} >Summary: WINE Is Not An Emulator - runs MS Windows programs >Group: Emulators >%endif > >%ifarch x86_64 ># on x86_64 always try to load support for 32bit apps if available ># No 32bit for aarch64, see: https://bugs.winehq.org/show_bug.cgi?id=53600#c5 >Recommends: wine32 = %{epoch}:%{version}-%{release} >%endif >%ifarch %{ix86} ># on ix86 we always want wine32 package ># No separate 32-bit pkg for arm, only ix86 >Requires: wine32 = %{epoch}:%{version}-%{release} >%endif > >Provides: %{wine}-full = %{epoch}:%{version}-%{release} >Obsoletes: %{wine}-full <= %{epoch}:%{version}-%{release} >Provides: %{lib_name} = %{epoch}:%{version}-%{release} >Obsoletes: %{lib_name} <= %{epoch}:%{version}-%{release} >Provides: %{name}-bin = %{epoch}:%{version}-%{release} ># (Anssi) If not installed, wine pops up a dialog on first start proposing to ># download pre-built binaries (unlike wine-gecko, same wine-mono works with ># both wine and wine64): >Recommends: wine-mono = %mono_version >Recommends: sane-frontends >Recommends: tcp_wrappers ># Samba support(no 32bit libs on 64bit systems necessary) >Recommends: %dlopenreq netapi > >%ifarch %{ix86} >#32bit support support on x86 >%package -n wine32 >Summary: 32-bit support for Wine >Group: Emulators ># This is not an EVR-specific requirement, as otherwise on x86_64 urpmi could ># resolve the dependency to wine64 even on upgrades, and therefore replace ># wine+nwine32 installation with a wine32+wine64 installation. - Anssi >Requires: %{name}-bin >%endif > ># (Anssi) If wine-gecko is not installed, wine pops up a dialog on first ># start proposing to download wine-gecko from sourceforge, while recommending ># to use distribution packages instead. Therefore suggest wine-gecko here: >%if 0%{distro_release} > 8 >Recommends: %{umingw}-wine-gecko = %gecko_version >%else >Recommends: %{wine}-gecko = %gecko_version >%endif > ># (tv) needed by games: >Recommends: %{mklibname dri-drivers} > ># Load system mingw libraries used in BuildRequires >%if 0%{?have_mingw} >Requires: %{umingw}-lcms2 >Requires: %{umingw}-libxml2 >Requires: %{umingw}-libxslt >Requires: %{umingw}-zlib >%if 0%{distro_release} > 8 ># Unavailable or too old >Requires: %{umingw}-libjpeg-turbo >Requires: %{umingw}-libpng >Requires: %{umingw}-libtiff >Requires: %{umingw}-FAudio >Requires: %{umingw}-vkd3d >#Requires: %%{umingw}-gsm >#Requires: %%{umingw}-mpg123 >%endif >%endif > ># wine dlopen's these, so let's add the dependencies ourself ># Adding these here is especially important with wine, since wine32 is ># commonly one of the few 32-bit components on a 64-bit installation, so ># these packages might not necessarily be pulled by anything else. ># grep WINE_CHECK_SONAME configure.ac :) (though note that some of those ># results are in autoreq already) - (Anssi 08/2012) >Requires: %dlopenreq asound >Requires: %dlopenreq attr >Requires: %dlopenreq crypto >Requires: %dlopenreq cups >Requires: %dlopenreq dbus-1 >Requires: %dlopenreq fontconfig >Requires: %dlopenreq freetype >Requires: %dlopenreq gnutls >Requires: %dlopenreq krb5 >Requires: %dlopenreq ncurses >Requires: %dlopenreq odbc >Requires: %dlopenreq OSMesa >Requires: %dlopenreq sane >Requires: %dlopenreq SDL2 >Requires: %dlopenreq ssl >Requires: %dlopenreq v4l1 >Requires: %dlopenreq vulkan >Requires: %dlopenreq Xcomposite >Requires: %dlopenreq Xcursor >Requires: %dlopenreq Xi >Requires: %dlopenreq Xinerama >Requires: %dlopenreq Xrandr >Requires: %dlopenreq Xrender >Requires: %dlopenreq Xxf86vm > >Recommends: %dlopenreq com_err >Recommends: %dlopenreq EGL >Recommends: %dlopenreq FLAC >Recommends: %dlopenreq GL >Recommends: %dlopenreq GLU >Recommends: %dlopenreq gcrypt >Recommends: %dlopenreq gphoto2 >Recommends: %dlopenreq ICE >Recommends: %dlopenreq pcap >Recommends: %dlopenreq pulse >Recommends: %dlopenreq sndfile >Recommends: %dlopenreq udev >Recommends: %dlopenreq va >Recommends: %dlopenreq vorbis >Recommends: %dlopenreq Xext >Recommends: %dlopenreq Xfixes > >Requires(post): desktop-file-utils >Requires(postun): desktop-file-utils >Requires(post): desktop-common-data >Requires(postun): desktop-common-data >Requires(preun): rpm-helper >Requires(post): rpm-helper > >%description >%desc > >%ifarch x86_64 aarch64 >%description -n %{wine} >%desc > >This package contains the Win64 version of Wine. You need the wine32 >package from the 32-bit repository to be able to run 32-bit applications. >%endif >%ifarch %{ix86} >%description -n wine32 >Wine is a program which allows running Microsoft Windows programs >(including DOS, Windows 3.x and Win32 executables) on Unix. > >This package contains the files needed to support 32-bit Windows >programs. >%endif > >%package -n %{wine}-devel >Summary: Static libraries and headers for %{name} >Group: Development/C >Requires: %{wine} = %{epoch}:%{version} >Provides: %{lib_name_devel} = %{epoch}:%{version}-%{release} >Provides: %{lib_name_orig}-devel = %{epoch}:%{version}-%{release} >Obsoletes: %{lib_name_devel} <= %{epoch}:%{version}-%{release} >Obsoletes: %{mklibname -d wine 1} < %{epoch}:%{version} >%ifarch %{ix86} %{arm} >Conflicts: %{name}64-devel >%else >Conflicts: %{name}-devel >%endif > >%description -n %{wine}-devel >Wine is a program which allows running Microsoft Windows programs >(including DOS, Windows 3.x and Win32 executables) on Unix. > >%{wine}-devel contains the libraries and header files needed to >develop programs which make use of wine. > >%prep >%setup -q -n %{name}-%{version}%{?prerel:-%{prerel}} >%if 0%{?wine_staging} >gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 >./patches/patchinstall.sh --all >%patch100 -p1 ># Fix wine-mgaconf.patch for staging patches >cp %PATCH108 ./tmp.save >sed -i 's/mkdir( "drive_c", 0777 );/set_case_insensitive( "drive_c" );/g' %PATCH108 >%endif >%patch100 -p1 >%patch108 -p1 > >%if 0%{?wine_staging} ># Reset the patch back to preserve the file in source package. >mv -f ./tmp.save %PATCH108 >%endif > >GECKO_VERSION=$(sed -rn 's,^#define\s+GECKO_VERSION\s+"([^"]*)".*$,\1,p' dlls/appwiz.cpl/addons.c) >[ "$GECKO_VERSION" = "%gecko_version" ] || { echo %{name}-gecko version mismatch; exit 1; } >MONO_VERSION=$(sed -rn 's,^#define\s+MONO_VERSION\s+"([^"]*)".*$,\1,p' dlls/appwiz.cpl/addons.c) >[ "$MONO_VERSION" = "%mono_version" ] || { echo wine-mono version mismatch; exit 1; } > >%build >autoreconf -vfi > ># disable fortify as it breaks wine ># https://bugs.winehq.org/show_bug.cgi?id=24606 ># https://bugs.winehq.org/show_bug.cgi?id=25073 >export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" > >%ifarch %{arm} aarch64 ># ARM64 now requires clang ># https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 >export CC="/usr/bin/clang" >%endif >%ifarch armv7hl >export CFLAGS="`echo $CFLAGS | sed -e 's/-fexceptions//'`" >%endif > ># required so that both Linux and Windows development files can be found >unset PKG_CONFIG_PATH >unset PKG_CONFIG_LIBDIR > >%configure \ > --with-x \ > --with-dbus \ > --with-pulse \ >%ifarch %{arm} > --with-float-abi=hard \ >%endif >%ifarch x86_64 > --enable-win64 \ >%endif >%if 0%{?have_mingw} >%ifarch x86_64 > --with-system-dllpath=%{mingw64_bindir} \ >%endif >%ifarch %{ix86} > --with-system-dllpath=%{mingw32_bindir} \ >%endif >%endif > --disable-tests > >%make_build depend >%make_build > >%install >%make_install LDCONFIG=/bin/true > ># remove rpath >chrpath -d %{buildroot}%{_bindir}/{wineserver,wmc,wrc} >%ifarch x86_64 >chrpath -d %{buildroot}%{_bindir}/wine64 >%else >chrpath -d %{buildroot}%{_bindir}/wine >%endif > ># Allow users to launch Windows programs by just clicking on the .exe file... >mkdir -p %{buildroot}%{_binfmtdir} >install -p -c -m 644 %{SOURCE2} %{buildroot}%{_binfmtdir}/wine.conf > >mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged >cat > %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged/%{name}.menu <<EOF ><!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" >"https://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> ><Menu> > <Name>Applications</Name> > <Menu> > <Name>Tools</Name> > <Menu> > <Name>Emulators</Name> > <Menu> > <Name>Wine</Name> > <Directory>%{name}.directory</Directory> > <Include> > <Category>X-Wine</Category> > </Include> > </Menu> > </Menu> > </Menu> ></Menu> >EOF > >mkdir -p %{buildroot}%{_datadir}/desktop-directories >cat > %{buildroot}%{_datadir}/desktop-directories/%{name}.directory <<EOF >[Desktop Entry] >Encoding=UTF-8 >Name=Wine >Icon=%{name} >Type=Directory >EOF > >mkdir -p %{buildroot}%{_datadir}/applications >for i in winecfg:Wine\ Configuration:winecfg \ > notepad:Wine\ Notepad:notepad \ > winefile:Wine\ File\ Manager:winefile \ > regedit:Wine\ Registry\ Editor:regedit \ > winemine:Wine\ Minesweeper:winemine \ > wineboot:Wine\ Reboot:wine \ > "wineconsole cmd":Wine\ Command\ Line:wine \ > "wine uninstaller":Wine\ Software\ Uninstaller:msiexec \ > "wine wordpad":Wine\ Wordpad:wordpad \ > "wine winhlp32":Wine\ WinHelp:winhelp \ > "wine oleview":Wine\ OLE\ View:wine; >do cat > %{buildroot}%{_datadir}/applications/%{name}-`echo $i|cut -d: -f1|sed s/"%{name} "//g`.desktop << EOF >[Desktop Entry] >Name=`echo $i|cut -d: -f2` >Comment=`echo $i|cut -d: -f2` >Exec=`echo $i|cut -d: -f1` >Icon=`echo $i|cut -d: -f3` >Terminal=false >Type=Application >Categories=X-Wine; >EOF >done > ># Use Category=Wine instead of the previous workaround (Category=Emulator) >desktop-file-install --add-mime-type=application/x-zip-compressed \ > --remove-mime-type=application/x-zip-compressed \ > --add-category=X-Wine \ > --dir %{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/%{name}.desktop > >%ifarch x86_64 ># fix the binary name >sed -i 's,Exec=wine ,Exec=wine64 ,' %{buildroot}%{_datadir}/applications/%{name}.desktop >%endif > >mkdir -p %{buildroot}%{_iconsdir}/hicolor/256x256/apps >tar -Jxf %{SOURCE3} -C %{buildroot}%{_iconsdir}/hicolor/256x256/apps/ > >%ifarch x86_64 >cat > README.install.urpmi <<EOF >This is the Win64 version of Wine. This version can only be used to run >64-bit Windows applications as is. For running 32-bit Windows applications, >you need to also install the 'wine32' package from the 32-bit repository. >EOF >%endif > >%files -n %{wine} >%doc ANNOUNCE AUTHORS README >%config %{_binfmtdir}/wine.conf >%{_bindir}/winecfg >%{_bindir}/wineconsole* >%{_bindir}/wineserver >%{_bindir}/wineboot >%{_bindir}/function_grep.pl >%if 0%{?wine_staging} >%{_bindir}/msidb >%endif >%{_bindir}/msiexec >%{_bindir}/notepad >%{_bindir}/regedit >%{_bindir}/winemine >%{_bindir}/winepath >%{_bindir}/regsvr32 >%{_bindir}/winefile >%lang(de) %{_mandir}/de.UTF-8/man?/wineserver.?* >%lang(fr) %{_mandir}/fr.UTF-8/man?/wineserver.?* >%{_mandir}/man?/wineserver.?* >%{_mandir}/man?/msiexec.?* >%{_mandir}/man?/notepad.?* >%{_mandir}/man?/regedit.?* >%{_mandir}/man?/regsvr32.?* >%{_mandir}/man?/wineboot.?* >%{_mandir}/man?/winecfg.?* >%{_mandir}/man?/wineconsole.?* >%{_mandir}/man?/winefile.?* >%{_mandir}/man?/winemine.?* >%{_mandir}/man?/winepath.?* >%{_datadir}/%{name}/*.inf >%{_datadir}/%{name}/nls >%{_datadir}/applications/*.desktop >%{_sysconfdir}/xdg/menus/applications-merged/%{name}.menu >%{_datadir}/desktop-directories/%{name}.directory >%{_datadir}/wine/fonts/* >%{_iconsdir}/hicolor/*/apps/*.png > >%ifarch x86_64 >%doc README.install.urpmi >%{_bindir}/%{name}64 >%{_bindir}/%{name}64-preloader >%else >%ifarch %{ix86} >%files -n wine32 >%endif >%{_bindir}/%{name} >%{_bindir}/%{name}-preloader >%{_mandir}/man?/%{name}.?* >%lang(de) %{_mandir}/de.UTF-8/man?/%{name}.?* >%lang(fr) %{_mandir}/fr.UTF-8/man?/%{name}.?* >%lang(pl) %{_mandir}/pl.UTF-8/man?/%{name}.?* >%endif > >%{_libdir}/%{name}/%{winesodir}/libwine*.so.%{lib_major}{,.*} >%{_libdir}/%{name}/%{winesodir}/*.so > ># PE format objects. >%{_libdir}/%{name}/%{winepedir}/*.msstyles >%{_libdir}/%{name}/%{winepedir}/*.acm >%{_libdir}/%{name}/%{winepedir}/*.ax >%{_libdir}/%{name}/%{winepedir}/*.cpl >%{_libdir}/%{name}/%{winepedir}/*.dll >%{_libdir}/%{name}/%{winepedir}/*.drv >%{_libdir}/%{name}/%{winepedir}/*.ds >%{_libdir}/%{name}/%{winepedir}/*.exe >%{_libdir}/%{name}/%{winepedir}/*.com >%{_libdir}/%{name}/%{winepedir}/*.ocx >%{_libdir}/%{name}/%{winepedir}/*.sys >%{_libdir}/%{name}/%{winepedir}/*.tlb >%ifarch %{ix86} >%{_libdir}/%{name}/%{winepedir}/*.dll16 >%{_libdir}/%{name}/%{winepedir}/*.drv16 >%{_libdir}/%{name}/%{winepedir}/*.exe16 >%{_libdir}/%{name}/%{winepedir}/*.mod16 >%{_libdir}/%{name}/%{winepedir}/*.vxd >%endif >%if 0%{?wine_staging} >%{_libdir}/%{name}/%{winepedir}/windows.networking.connectivity >%endif > >%files -n %{wine}-devel >%{_libdir}/%{name}/%{winesodir}/*.a ># *-windows/*.a exists only in aarch64 and x86* with mingw builds >%if 0%{?have_mingw} >%{_libdir}/%{name}/%{winepedir}/*.a >%else >%ifarch aarch64 >%{_libdir}/%{name}/%{winepedir}/*.a >%endif >%endif >%{_includedir}/* >%{_bindir}/msidb >%{_bindir}/wmc >%{_bindir}/wrc >%{_bindir}/winebuild >%{_bindir}/winegcc >%{_bindir}/wineg++ >%{_bindir}/winecpp >%{_bindir}/widl >%{_bindir}/winedbg >%{_bindir}/winemaker >%{_bindir}/winedump >%lang(de) %{_mandir}/de.UTF-8/man?/winemaker.?* >%lang(fr) %{_mandir}/fr.UTF-8/man?/winemaker.?* >%{_mandir}/man1/wmc.1* >%{_mandir}/man1/wrc.1* >%{_mandir}/man1/winebuild.1* >%{_mandir}/man1/winemaker.1* >%{_mandir}/man1/winedump.1* >%{_mandir}/man1/widl.1* >%{_mandir}/man1/winedbg.1* >%{_mandir}/man1/wineg++.1* >%{_mandir}/man1/winegcc.1* >%{_mandir}/man1/winecpp.1*
%ifarch x86_64 aarch64 %define wine wine64 %define umingw mingw64 %define mark64 ()(64bit) %else %define wine wine %define umingw mingw32 %define mark64 %{nil} %endif %define lib_name_orig lib%{name} %define lib_major 1 %define lib_name %mklibname %{name} %{lib_major} %define lib_name_devel %mklibname wine -d %define have_mingw 0 %ifarch %{ix86} x86_64 # Mingw can only be used on x86. %define have_mingw 1 %endif # On 32-bit we have # wine32 - those 32-bit binaries that are also used on 64-bit for 32-bit support # wine - all other files (requires 'wine32') # On 64-bit we have # wine64 - all 64-bit files (suggests 'wine32') # - Anssi 07/2010 %define mainver 7.22 %define mainget 7.x #define bugfix 0 %define rel 2 #define prerel rc5 %define snaprel 1 # Parallel build broken (fails with # /usr/bin/x86_64-w64-mingw32-dlltool: dlls/winmm/libwinmm.{cross,delay}.a: No such file or directory # /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/liboleaut32.{cross,delay}.a: No such file or directory # /usr/bin/x86_64-w64-mingw32-dlltool: dlls/oleaut32/libwintrust.{cross,delay}.a: No such file or directory #global _smp_mflags -j1 # When altering these, make sure corresponding wine-gecko/wine-mono is # submitted, or notify their maintainer about the new version: # Dependencies hardcoded in dlls/appwiz.cpl/addons.c %define gecko_version 2.47.3 %define mono_version 7.4.0 # build with wine-staging patches, see: https://github.com/wine-staging/wine-staging # Build with staging during our development cycles, stick to stable for Mageia stable releases %global wine_staging 0 %ifarch %{ix86} %global winepedir i386-windows %global winesodir i386-unix %endif %ifarch x86_64 %global winepedir x86_64-windows %global winesodir x86_64-unix %endif %ifarch %{arm} %global winepedir arm-windows %global winesodir arm-unix %endif %ifarch aarch64 %global winepedir aarch64-windows %global winesodir aarch64-unix %global __brp_llvm_compile_lto_elf %nil %global __brp_strip_lto %nil %global __brp_strip_static_archive %nil %endif %define dlopenreq() %(F=%{_libdir}/lib%{1}.so;[ -e $F ] && (file $F|grep -q ASCII && grep -o 'lib[^ ]*' $F|sed -e "s/\$/%{mark64}/"||objdump -p $F | grep SONAME | awk '{ print $2 "%{mark64}" }') || echo "wine-missing-buildrequires-on-%{1}") Name: wine Epoch: 1 Version: %{mainver}%{?bugfix:.%{bugfix}} Release: %mkrel %{rel}%{?prerel:.%{prerel}.%{snaprel}} Summary: WINE Is Not An Emulator - runs MS Windows programs License: LGPLv2+ Group: Emulators URL: https://www.winehq.org/ Source0: https://dl.winehq.org/wine/source/%mainget/%{name}-%{version}%{?prerel:-%{prerel}}.tar.xz Source10: https://dl.winehq.org/wine/source/%mainget/%{name}-%{version}%{?prerel:-%{prerel}}.tar.xz.sign Source2: wine.systemd Source3: wine-icons_256.tar.xz %if 0%{?wine_staging} Source900: https://github.com/wine-staging/wine-staging/archive/v%{mainver}%{?prerel:-%{prerel}}/wine-staging-%{mainver}%{?prerel:-%{prerel}}.tar.gz %endif # fix configure macros for cross-compiling Patch100: wine-7.21-cross.patch # https://bugs.winehq.org/show_bug.cgi?id=45277 #Patch100: wine-6.0-vulkan-child-window.patch # (Anssi 05/2008) Adds: # a: => /media/floppy # d: => $HOME (at config_dir creation time, not refreshed if $HOME changes; # note that Wine also provides $HOME in My Documents) # com4 => /dev/ttyUSB0 (replaces /dev/ttyS3) Patch108: wine-mgaconf.patch ExclusiveArch: %{ix86} x86_64 aarch64 BuildRequires: autoconf BuildRequires: bison BuildRequires: flex %ifarch %{arm} aarch64 BuildRequires: clang >= 5.0 BuildRequires: lld %else BuildRequires: gcc %endif %if 0%{?have_mingw} BuildRequires: %{umingw}-gcc BuildRequires: %{umingw}-lcms2 BuildRequires: %{umingw}-libxml2 BuildRequires: %{umingw}-libxslt BuildRequires: %{umingw}-zlib %if 0%{distro_release} > 8 # Unavailable or too old BuildRequires: %{umingw}-libjpeg-turbo BuildRequires: %{umingw}-libpng BuildRequires: %{umingw}-libtiff BuildRequires: %{umingw}-FAudio BuildRequires: %{umingw}-vkd3d BuildRequires: %{umingw}-vulkan-headers #BuildRequires: %%{umingw}-gsm #BuildRequires: %%{umingw}-mpg123 %endif %endif BuildRequires: desktop-file-utils BuildRequires: docbook-dtd-sgml BuildRequires: docbook-utils BuildRequires: ffmpeg-devel BuildRequires: fontconfig-devel BuildRequires: fontforge BuildRequires: freetype2-devel BuildRequires: gettext-devel BuildRequires: glibc-static-devel BuildRequires: cups-devel BuildRequires: dbus-devel BuildRequires: glut-devel BuildRequires: gnutls-devel BuildRequires: gphoto2-devel BuildRequires: gpm-devel BuildRequires: gstreamer1.0-devel BuildRequires: gtk3-devel BuildRequires: icoutils BuildRequires: imagemagick BuildRequires: libalsa-devel BuildRequires: libgstreamer1.0-plugins-base-devel BuildRequires: libpcap-devel BuildRequires: librsvg BuildRequires: libsm-devel BuildRequires: libv4l-devel BuildRequires: chrpath BuildRequires: libva-devel BuildRequires: libx11-devel BuildRequires: libxcomposite-devel BuildRequires: libxcursor-devel BuildRequires: libxext-devel BuildRequires: libxi-devel BuildRequires: libxinerama-devel BuildRequires: libxrandr-devel BuildRequires: libxrender-devel BuildRequires: mesaglu-devel BuildRequires: ncurses-devel BuildRequires: opencl-devel BuildRequires: openldap-devel BuildRequires: osmesa-devel BuildRequires: perl-devel BuildRequires: pkgconfig(vulkan) BuildRequires: pulseaudio-devel BuildRequires: sane-devel BuildRequires: sgml-tools BuildRequires: ungif-devel BuildRequires: unixODBC-devel BuildRequires: valgrind-devel BuildRequires: xpm-devel BuildRequires: samba-devel %define desc Wine is a program which allows running Microsoft Windows programs \ (including DOS, Windows 3.x and Win32 executables) on Unix. It \ consists of a program loader which loads and executes a Microsoft \ Windows binary, and a library (called Winelib) that implements Windows \ API calls using their Unix or X11 equivalents. The library may also \ be used for porting Win32 code into native Unix executables. %ifarch x86_64 aarch64 %package -n %{wine} Summary: WINE Is Not An Emulator - runs MS Windows programs Group: Emulators %endif %ifarch x86_64 # on x86_64 always try to load support for 32bit apps if available # No 32bit for aarch64, see: https://bugs.winehq.org/show_bug.cgi?id=53600#c5 Recommends: wine32 = %{epoch}:%{version}-%{release} %endif %ifarch %{ix86} # on ix86 we always want wine32 package # No separate 32-bit pkg for arm, only ix86 Requires: wine32 = %{epoch}:%{version}-%{release} %endif Provides: %{wine}-full = %{epoch}:%{version}-%{release} Obsoletes: %{wine}-full <= %{epoch}:%{version}-%{release} Provides: %{lib_name} = %{epoch}:%{version}-%{release} Obsoletes: %{lib_name} <= %{epoch}:%{version}-%{release} Provides: %{name}-bin = %{epoch}:%{version}-%{release} # (Anssi) If not installed, wine pops up a dialog on first start proposing to # download pre-built binaries (unlike wine-gecko, same wine-mono works with # both wine and wine64): Recommends: wine-mono = %mono_version Recommends: sane-frontends Recommends: tcp_wrappers # Samba support(no 32bit libs on 64bit systems necessary) Recommends: %dlopenreq netapi %ifarch %{ix86} #32bit support support on x86 %package -n wine32 Summary: 32-bit support for Wine Group: Emulators # This is not an EVR-specific requirement, as otherwise on x86_64 urpmi could # resolve the dependency to wine64 even on upgrades, and therefore replace # wine+nwine32 installation with a wine32+wine64 installation. - Anssi Requires: %{name}-bin %endif # (Anssi) If wine-gecko is not installed, wine pops up a dialog on first # start proposing to download wine-gecko from sourceforge, while recommending # to use distribution packages instead. Therefore suggest wine-gecko here: %if 0%{distro_release} > 8 Recommends: %{umingw}-wine-gecko = %gecko_version %else Recommends: %{wine}-gecko = %gecko_version %endif # (tv) needed by games: Recommends: %{mklibname dri-drivers} # Load system mingw libraries used in BuildRequires %if 0%{?have_mingw} Requires: %{umingw}-lcms2 Requires: %{umingw}-libxml2 Requires: %{umingw}-libxslt Requires: %{umingw}-zlib %if 0%{distro_release} > 8 # Unavailable or too old Requires: %{umingw}-libjpeg-turbo Requires: %{umingw}-libpng Requires: %{umingw}-libtiff Requires: %{umingw}-FAudio Requires: %{umingw}-vkd3d #Requires: %%{umingw}-gsm #Requires: %%{umingw}-mpg123 %endif %endif # wine dlopen's these, so let's add the dependencies ourself # Adding these here is especially important with wine, since wine32 is # commonly one of the few 32-bit components on a 64-bit installation, so # these packages might not necessarily be pulled by anything else. # grep WINE_CHECK_SONAME configure.ac :) (though note that some of those # results are in autoreq already) - (Anssi 08/2012) Requires: %dlopenreq asound Requires: %dlopenreq attr Requires: %dlopenreq crypto Requires: %dlopenreq cups Requires: %dlopenreq dbus-1 Requires: %dlopenreq fontconfig Requires: %dlopenreq freetype Requires: %dlopenreq gnutls Requires: %dlopenreq krb5 Requires: %dlopenreq ncurses Requires: %dlopenreq odbc Requires: %dlopenreq OSMesa Requires: %dlopenreq sane Requires: %dlopenreq SDL2 Requires: %dlopenreq ssl Requires: %dlopenreq v4l1 Requires: %dlopenreq vulkan Requires: %dlopenreq Xcomposite Requires: %dlopenreq Xcursor Requires: %dlopenreq Xi Requires: %dlopenreq Xinerama Requires: %dlopenreq Xrandr Requires: %dlopenreq Xrender Requires: %dlopenreq Xxf86vm Recommends: %dlopenreq com_err Recommends: %dlopenreq EGL Recommends: %dlopenreq FLAC Recommends: %dlopenreq GL Recommends: %dlopenreq GLU Recommends: %dlopenreq gcrypt Recommends: %dlopenreq gphoto2 Recommends: %dlopenreq ICE Recommends: %dlopenreq pcap Recommends: %dlopenreq pulse Recommends: %dlopenreq sndfile Recommends: %dlopenreq udev Recommends: %dlopenreq va Recommends: %dlopenreq vorbis Recommends: %dlopenreq Xext Recommends: %dlopenreq Xfixes Requires(post): desktop-file-utils Requires(postun): desktop-file-utils Requires(post): desktop-common-data Requires(postun): desktop-common-data Requires(preun): rpm-helper Requires(post): rpm-helper %description %desc %ifarch x86_64 aarch64 %description -n %{wine} %desc This package contains the Win64 version of Wine. You need the wine32 package from the 32-bit repository to be able to run 32-bit applications. %endif %ifarch %{ix86} %description -n wine32 Wine is a program which allows running Microsoft Windows programs (including DOS, Windows 3.x and Win32 executables) on Unix. This package contains the files needed to support 32-bit Windows programs. %endif %package -n %{wine}-devel Summary: Static libraries and headers for %{name} Group: Development/C Requires: %{wine} = %{epoch}:%{version} Provides: %{lib_name_devel} = %{epoch}:%{version}-%{release} Provides: %{lib_name_orig}-devel = %{epoch}:%{version}-%{release} Obsoletes: %{lib_name_devel} <= %{epoch}:%{version}-%{release} Obsoletes: %{mklibname -d wine 1} < %{epoch}:%{version} %ifarch %{ix86} %{arm} Conflicts: %{name}64-devel %else Conflicts: %{name}-devel %endif %description -n %{wine}-devel Wine is a program which allows running Microsoft Windows programs (including DOS, Windows 3.x and Win32 executables) on Unix. %{wine}-devel contains the libraries and header files needed to develop programs which make use of wine. %prep %setup -q -n %{name}-%{version}%{?prerel:-%{prerel}} %if 0%{?wine_staging} gzip -dc %{SOURCE900} | tar -xf - --strip-components=1 ./patches/patchinstall.sh --all %patch100 -p1 # Fix wine-mgaconf.patch for staging patches cp %PATCH108 ./tmp.save sed -i 's/mkdir( "drive_c", 0777 );/set_case_insensitive( "drive_c" );/g' %PATCH108 %endif %patch100 -p1 %patch108 -p1 %if 0%{?wine_staging} # Reset the patch back to preserve the file in source package. mv -f ./tmp.save %PATCH108 %endif GECKO_VERSION=$(sed -rn 's,^#define\s+GECKO_VERSION\s+"([^"]*)".*$,\1,p' dlls/appwiz.cpl/addons.c) [ "$GECKO_VERSION" = "%gecko_version" ] || { echo %{name}-gecko version mismatch; exit 1; } MONO_VERSION=$(sed -rn 's,^#define\s+MONO_VERSION\s+"([^"]*)".*$,\1,p' dlls/appwiz.cpl/addons.c) [ "$MONO_VERSION" = "%mono_version" ] || { echo wine-mono version mismatch; exit 1; } %build autoreconf -vfi # disable fortify as it breaks wine # https://bugs.winehq.org/show_bug.cgi?id=24606 # https://bugs.winehq.org/show_bug.cgi?id=25073 export CFLAGS="`echo $RPM_OPT_FLAGS | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//'` -Wno-error" %ifarch %{arm} aarch64 # ARM64 now requires clang # https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95 export CC="/usr/bin/clang" %endif %ifarch armv7hl export CFLAGS="`echo $CFLAGS | sed -e 's/-fexceptions//'`" %endif # required so that both Linux and Windows development files can be found unset PKG_CONFIG_PATH unset PKG_CONFIG_LIBDIR %configure \ --with-x \ --with-dbus \ --with-pulse \ %ifarch %{arm} --with-float-abi=hard \ %endif %ifarch x86_64 --enable-win64 \ %endif %if 0%{?have_mingw} %ifarch x86_64 --with-system-dllpath=%{mingw64_bindir} \ %endif %ifarch %{ix86} --with-system-dllpath=%{mingw32_bindir} \ %endif %endif --disable-tests %make_build depend %make_build %install %make_install LDCONFIG=/bin/true # remove rpath chrpath -d %{buildroot}%{_bindir}/{wineserver,wmc,wrc} %ifarch x86_64 chrpath -d %{buildroot}%{_bindir}/wine64 %else chrpath -d %{buildroot}%{_bindir}/wine %endif # Allow users to launch Windows programs by just clicking on the .exe file... mkdir -p %{buildroot}%{_binfmtdir} install -p -c -m 644 %{SOURCE2} %{buildroot}%{_binfmtdir}/wine.conf mkdir -p %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged cat > %{buildroot}%{_sysconfdir}/xdg/menus/applications-merged/%{name}.menu <<EOF <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "https://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <Menu> <Name>Tools</Name> <Menu> <Name>Emulators</Name> <Menu> <Name>Wine</Name> <Directory>%{name}.directory</Directory> <Include> <Category>X-Wine</Category> </Include> </Menu> </Menu> </Menu> </Menu> EOF mkdir -p %{buildroot}%{_datadir}/desktop-directories cat > %{buildroot}%{_datadir}/desktop-directories/%{name}.directory <<EOF [Desktop Entry] Encoding=UTF-8 Name=Wine Icon=%{name} Type=Directory EOF mkdir -p %{buildroot}%{_datadir}/applications for i in winecfg:Wine\ Configuration:winecfg \ notepad:Wine\ Notepad:notepad \ winefile:Wine\ File\ Manager:winefile \ regedit:Wine\ Registry\ Editor:regedit \ winemine:Wine\ Minesweeper:winemine \ wineboot:Wine\ Reboot:wine \ "wineconsole cmd":Wine\ Command\ Line:wine \ "wine uninstaller":Wine\ Software\ Uninstaller:msiexec \ "wine wordpad":Wine\ Wordpad:wordpad \ "wine winhlp32":Wine\ WinHelp:winhelp \ "wine oleview":Wine\ OLE\ View:wine; do cat > %{buildroot}%{_datadir}/applications/%{name}-`echo $i|cut -d: -f1|sed s/"%{name} "//g`.desktop << EOF [Desktop Entry] Name=`echo $i|cut -d: -f2` Comment=`echo $i|cut -d: -f2` Exec=`echo $i|cut -d: -f1` Icon=`echo $i|cut -d: -f3` Terminal=false Type=Application Categories=X-Wine; EOF done # Use Category=Wine instead of the previous workaround (Category=Emulator) desktop-file-install --add-mime-type=application/x-zip-compressed \ --remove-mime-type=application/x-zip-compressed \ --add-category=X-Wine \ --dir %{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/%{name}.desktop %ifarch x86_64 # fix the binary name sed -i 's,Exec=wine ,Exec=wine64 ,' %{buildroot}%{_datadir}/applications/%{name}.desktop %endif mkdir -p %{buildroot}%{_iconsdir}/hicolor/256x256/apps tar -Jxf %{SOURCE3} -C %{buildroot}%{_iconsdir}/hicolor/256x256/apps/ %ifarch x86_64 cat > README.install.urpmi <<EOF This is the Win64 version of Wine. This version can only be used to run 64-bit Windows applications as is. For running 32-bit Windows applications, you need to also install the 'wine32' package from the 32-bit repository. EOF %endif %files -n %{wine} %doc ANNOUNCE AUTHORS README %config %{_binfmtdir}/wine.conf %{_bindir}/winecfg %{_bindir}/wineconsole* %{_bindir}/wineserver %{_bindir}/wineboot %{_bindir}/function_grep.pl %if 0%{?wine_staging} %{_bindir}/msidb %endif %{_bindir}/msiexec %{_bindir}/notepad %{_bindir}/regedit %{_bindir}/winemine %{_bindir}/winepath %{_bindir}/regsvr32 %{_bindir}/winefile %lang(de) %{_mandir}/de.UTF-8/man?/wineserver.?* %lang(fr) %{_mandir}/fr.UTF-8/man?/wineserver.?* %{_mandir}/man?/wineserver.?* %{_mandir}/man?/msiexec.?* %{_mandir}/man?/notepad.?* %{_mandir}/man?/regedit.?* %{_mandir}/man?/regsvr32.?* %{_mandir}/man?/wineboot.?* %{_mandir}/man?/winecfg.?* %{_mandir}/man?/wineconsole.?* %{_mandir}/man?/winefile.?* %{_mandir}/man?/winemine.?* %{_mandir}/man?/winepath.?* %{_datadir}/%{name}/*.inf %{_datadir}/%{name}/nls %{_datadir}/applications/*.desktop %{_sysconfdir}/xdg/menus/applications-merged/%{name}.menu %{_datadir}/desktop-directories/%{name}.directory %{_datadir}/wine/fonts/* %{_iconsdir}/hicolor/*/apps/*.png %ifarch x86_64 %doc README.install.urpmi %{_bindir}/%{name}64 %{_bindir}/%{name}64-preloader %else %ifarch %{ix86} %files -n wine32 %endif %{_bindir}/%{name} %{_bindir}/%{name}-preloader %{_mandir}/man?/%{name}.?* %lang(de) %{_mandir}/de.UTF-8/man?/%{name}.?* %lang(fr) %{_mandir}/fr.UTF-8/man?/%{name}.?* %lang(pl) %{_mandir}/pl.UTF-8/man?/%{name}.?* %endif %{_libdir}/%{name}/%{winesodir}/libwine*.so.%{lib_major}{,.*} %{_libdir}/%{name}/%{winesodir}/*.so # PE format objects. %{_libdir}/%{name}/%{winepedir}/*.msstyles %{_libdir}/%{name}/%{winepedir}/*.acm %{_libdir}/%{name}/%{winepedir}/*.ax %{_libdir}/%{name}/%{winepedir}/*.cpl %{_libdir}/%{name}/%{winepedir}/*.dll %{_libdir}/%{name}/%{winepedir}/*.drv %{_libdir}/%{name}/%{winepedir}/*.ds %{_libdir}/%{name}/%{winepedir}/*.exe %{_libdir}/%{name}/%{winepedir}/*.com %{_libdir}/%{name}/%{winepedir}/*.ocx %{_libdir}/%{name}/%{winepedir}/*.sys %{_libdir}/%{name}/%{winepedir}/*.tlb %ifarch %{ix86} %{_libdir}/%{name}/%{winepedir}/*.dll16 %{_libdir}/%{name}/%{winepedir}/*.drv16 %{_libdir}/%{name}/%{winepedir}/*.exe16 %{_libdir}/%{name}/%{winepedir}/*.mod16 %{_libdir}/%{name}/%{winepedir}/*.vxd %endif %if 0%{?wine_staging} %{_libdir}/%{name}/%{winepedir}/windows.networking.connectivity %endif %files -n %{wine}-devel %{_libdir}/%{name}/%{winesodir}/*.a # *-windows/*.a exists only in aarch64 and x86* with mingw builds %if 0%{?have_mingw} %{_libdir}/%{name}/%{winepedir}/*.a %else %ifarch aarch64 %{_libdir}/%{name}/%{winepedir}/*.a %endif %endif %{_includedir}/* %{_bindir}/msidb %{_bindir}/wmc %{_bindir}/wrc %{_bindir}/winebuild %{_bindir}/winegcc %{_bindir}/wineg++ %{_bindir}/winecpp %{_bindir}/widl %{_bindir}/winedbg %{_bindir}/winemaker %{_bindir}/winedump %lang(de) %{_mandir}/de.UTF-8/man?/winemaker.?* %lang(fr) %{_mandir}/fr.UTF-8/man?/winemaker.?* %{_mandir}/man1/wmc.1* %{_mandir}/man1/wrc.1* %{_mandir}/man1/winebuild.1* %{_mandir}/man1/winemaker.1* %{_mandir}/man1/winedump.1* %{_mandir}/man1/widl.1* %{_mandir}/man1/winedbg.1* %{_mandir}/man1/wineg++.1* %{_mandir}/man1/winegcc.1* %{_mandir}/man1/winecpp.1*
View Attachment As Raw
Actions:
View
Attachments on
bug 28814
:
12655
|
12675
|
12676
|
12677
|
12678
|
12711
|
12752
|
12802
|
12851
|
12902
|
13109
|
13345
|
13347
|
13348
|
13511
|
13521
|
13524
|
13542
|
13547
|
13564
|
13565