Hello community, here is the log from the commit of package mame for openSUSE:Factory checked in at 2019-12-09 21:35:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mame (Old) and /work/SRC/openSUSE:Factory/.mame.new.4691 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mame" Mon Dec 9 21:35:18 2019 rev:19 rq:755098 version:0.211 Changes: -------- --- /work/SRC/openSUSE:Factory/mame/mame.changes 2019-10-30 14:47:38.242170723 +0100 +++ /work/SRC/openSUSE:Factory/.mame.new.4691/mame.changes 2019-12-09 21:35:28.942092033 +0100 @@ -1,0 +2,25 @@ +Sun Dec 8 15:58:09 UTC 2019 - Stefan Brüns <[email protected]> + +- Split mame, mame-mess and tools build using _multibuild. + This allows to reduce the disk constraints to 33 GByte, + 31 GByte and 8 GByte respectively. +- Use python3 instead of python2 for building +- Spec file cleanup: + * Drop obsolete %desktop_database_post/postun scriptlets + * Generalize arch specific conditional build statements + +------------------------------------------------------------------- +Thu Oct 31 15:05:04 UTC 2019 - Stefan Brüns <[email protected]> + +- Update BuildRequires for current version: + - drop libuv, replaced by asio + - add pugixml, RapidJSON, glm +- Remove lto flags mangling again, linker memory usage does not + grow linearly with number of partitions. It also significantly + hurts build time, occasionaly causing timeouts during linking. +- Reduce disk usage for temporary static libraries, add + use_thin_archives.patch +- Set disk constraints to value reported by OBS statistics. With + thin archives 47GB are required (regular archives: 59GB). + +------------------------------------------------------------------- New: ---- _multibuild use_thin_archives.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mame.spec ++++++ --- /var/tmp/diff_new_pack.l0AtlU/_old 2019-12-09 21:35:30.934091248 +0100 +++ /var/tmp/diff_new_pack.l0AtlU/_new 2019-12-09 21:35:30.938091247 +0100 @@ -1,7 +1,7 @@ # # spec file for package mame # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,19 +16,38 @@ # +%global flavor @BUILD_FLAVOR@%{nil} + +%if %{__isa_bits} == 64 +%define is_64bit 1 +%endif + +%if "%{flavor}" == "" +ExclusiveArch: do_not_build +%endif + +%if "%{flavor}" == "mame" || "%{flavor}" == "" +%define pkgsuffix %{nil} +%else +%define pkgsuffix -%{flavor} +%endif + %define fver 211 # Build mame-mess by default, and use system libraries -%bcond_without mess %bcond_without systemlibs -Name: mame +Name: mame%{?pkgsuffix} Version: 0.%fver Release: 0 +%if "%{flavor}" != "mess" Summary: Multiple Arcade Machine Emulator +%else +Summary: Multi Emulator Super System +%endif License: GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause Group: System/Emulators/Other -Url: http://mamedev.org/ +URL: http://mamedev.org/ Source0: https://github.com/mamedev/mame/archive/mame0%{fver}.tar.gz Source1: https://github.com/mamedev/mame/releases/download/mame0%{fver}/whatsnew_0%{fver}.txt Source2: mame.png @@ -37,14 +56,16 @@ Source101: mame.ini.in Source102: mame.appdata.xml Source104: mame-mess.appdata.xml -# PATCH-FIX-UPSTREAM [email protected] gh#mamedev/mame#4771 -- Add a messing dependency on generated file +# PATCH-FIX-UPSTREAM [email protected] gh#mamedev/mame#4771 -- Add a missing dependency on generated file Patch0: add_tms57002_hxx_dependecy.patch Patch1: fix_mkdir_order.patch +# PATCH-FIX-OPENSUSE -- use thin archives for static libraries +Patch2: use_thin_archives.patch BuildRequires: binutils-gold BuildRequires: fdupes BuildRequires: memory-constraints BuildRequires: pkgconfig -BuildRequires: python-xml +BuildRequires: python3-xml BuildRequires: update-desktop-files BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) @@ -60,70 +81,75 @@ Requires(postun): desktop-file-utils BuildRequires: gcc-c++ %if %{with systemlibs} +BuildRequires: asio-devel BuildRequires: libexpat-devel BuildRequires: libjpeg8-devel BuildRequires: portmidi-devel BuildRequires: utf8proc-devel +BuildRequires: pkgconfig(RapidJSON) BuildRequires: pkgconfig(flac) -BuildRequires: pkgconfig(libuv) +BuildRequires: pkgconfig(glm) BuildRequires: pkgconfig(lua) BuildRequires: pkgconfig(portaudio-2.0) +BuildRequires: pkgconfig(pugixml) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(zlib) %endif -Suggests: %{name}-tools = %{version} +Requires: mame-data = %{version}-%{release} +Suggests: mame-tools = %{version} + +%if "%{flavor}" == "mame" # sdlmame was last used at version 0.142 +Provides: sdlmame = %{version} Obsoletes: sdlmame < %{version} # ume was last used at version 0.159 -Obsoletes: mame-arcade < %{version} +Provides: ume = %{version} Obsoletes: ume < %{version} -Requires: %{name}-data = %{version}-%{release} -# s390x does not have currently a worker strong enough to satisfy the build constraints -ExcludeArch: s390x +%endif + +%if "%{flavor}" == "mess" +# sdlmess was last used at version 0.142 +Provides: sdlmess = %{version} +Obsoletes: sdlmess < %{version} +# mess was last used at version 0.159 +Provides: mess = %{version} +Obsoletes: mess < %{version} +%endif +%if "%{flavor}" != "mess" %description MAME is an emulator designed to recreate the hardware of arcade game systems in software on modern personal computers. The source code to MAME serves as this hardware documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation. +%else + +%description +This is the MESS only build of MAME; it has been compiled without Arcade built in. + +MESS is an emulator for many game consoles and computer systems, based on +the MAME core and now a part of MAME. MESS emulates portable and console +gaming systems, computer platforms, and calculators. +%endif -%package tools +%package -n mame-tools Summary: MAME Tools Group: System/Emulators/Other -Requires: %{name}-data = %{version}-%{release} # mess-tools was last used at version 0.159 Provides: mess-tools = %{version} Obsoletes: mess-tools < %{version} -%description tools +%description -n mame-tools Tools for use with MAME/MESS roms and images. -%package mess -Summary: Multi Emulator Super System -Group: System/Emulators/Other -Requires: %{name}-data = %{version}-%{release} -# mess was last used at version 0.159 -Provides: mess = %{version} -Obsoletes: mess < %{version} -# sdlmess was last used at version 0.142 -Provides: sdlmess = %{version} -Obsoletes: sdlmess < %{version} - -%description mess -This is the MESS only build of MAME; it has been compiled without Arcade built in. - -MESS is an emulator for many game consoles and computer systems, based on -the MAME core and now a part of MAME. MESS emulates portable and console -gaming systems, computer platforms, and calculators. - -%package data +%package -n mame-data Summary: Data files required by all builds of MAME Group: System/Emulators/Other BuildArch: noarch -%description data -This package contains all data files needed by the MAME binaries; +%description -n mame-data +This package contains all data files needed by the MAME binaries: * shaders * artwork * rom hashes @@ -133,6 +159,7 @@ %setup -q -n mame-mame0%fver %patch0 -p0 %patch1 -p0 +%patch2 -p0 cp %{SOURCE1} whatsnew-%{version}.txt # Fix rpmlint warning "wrong-file-end-of-line-encoding" @@ -143,7 +170,7 @@ -e "s,@SYSCONFDIR@,%{_sysconfdir},g" %{SOURCE101} > mame.ini # limit 32bit archs to debug level 1, the linker exhausts the address space otherwise -%ifarch %ix86 %arm +%if ! 0%{?is_64bit} %define myoptflags %(echo %{optflags} | sed -E 's@(-g\\\b)|(-g[0-9])@-g1@g') %else %define myoptflags %{optflags} @@ -155,12 +182,9 @@ %build %limit_build -m 1800 -echo $_threads -export _lto_cflags="-flto=$_threads" -%define _lto_cflags $_lto_cflags # Memory mapped files occupy the limited 32bit address space -%ifarch %ix86 %arm +%if ! 0%{?is_64bit} export LDFLAGS="${LDFLAGS} -Wl,-v -fuse-ld=gold -Wl,--no-keep-files-mapped -Wl,--no-map-whole-files -Wl,--no-mmap-output-file %{?_lto_cflags}" %else export LDFLAGS="${LDFLAGS} -Wl,-v -fuse-ld=gold %{?_lto_cflags}" @@ -172,17 +196,22 @@ NOWERROR=1 \ VERBOSE=1 \ OPTIMIZE=3 \ + PYTHON=python3 \ + PYTHON_EXECUTABLE=python3 \ %if %{with systemlibs} + USE_SYSTEM_LIB_ASIO=1 \ USE_SYSTEM_LIB_EXPAT=1 \ USE_SYSTEM_LIB_ZLIB=1 \ USE_SYSTEM_LIB_JPEG=1 \ USE_SYSTEM_LIB_FLAC=1 \ USE_SYSTEM_LIB_LUA=1 \ - USE_SYSTEM_LIB_UV=1 \ USE_SYSTEM_LIB_SQLITE3=1 \ USE_SYSTEM_LIB_PORTMIDI=1 \ USE_SYSTEM_LIB_PORTAUDIO=1 \ USE_SYSTEM_LIB_UTF8PROC=1 \ + USE_SYSTEM_LIB_GLM=1 \ + USE_SYSTEM_LIB_RAPIDJSON=1 \ + USE_SYSTEM_LIB_PUGIXML=1 \ %endif " # Bootstrap genie, scripts file has been patched @@ -190,64 +219,80 @@ (cd 3rdparty/genie/; bin/linux/genie embed) make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS genie -make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=arcade TOOLS=1 -# Remove static libraries after linking, to save some disk space -find build/ -ipath '*mame_arcade/lib*a' -delete - -%if %{with mess} -make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=mess -# Remove static libraries after linking, to save some disk space -find build/ -ipath '*mame_mess/lib*a' -delete +# Build the emulator itself +%if "%{flavor}" == "mame" +make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=arcade TOOLS=0 +%endif +%if "%{flavor}" == "mess" +make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=mess TOOLS=0 +%endif +%if "%{flavor}" == "tools-data" +# Tiny still builds too much, but is the smallest target available for just building the tools +make %{?_smp_mflags} OPT_FLAGS="%{myoptflags}" $COMMON_FLAGS SUBTARGET=tiny TOOLS=1 %endif %install -# Rename binaries -%define emu_bin_dir %{buildroot}%{_bindir} -%define emu_data_dir %{buildroot}%{_datadir}/mame -# Install binaries -%ifarch x86_64 -install -Dpm 0755 mamearcade64 %{emu_bin_dir}/mame -%if %{with mess} -install -pm 0755 mess64 %{emu_bin_dir}/mame-mess -%endif -%else -install -Dpm 0755 mamearcade %{emu_bin_dir}/mame -%if %{with mess} -install -pm 0755 mess %{emu_bin_dir}/mame-mess +%if "%{flavor}" == "mame" +# Install emulator binaries and manpages +install -Dpm 0755 mamearcade%{?is_64bit:64} %{buildroot}%{_bindir}/mame +install -Dpm 0644 docs/man/mame.6 %{buildroot}%{_mandir}/man6/mame.6 +install -Dpm 0644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/mame.png + +# Install config file +mkdir -p %{buildroot}%{_sysconfdir}/skel/.mame +install -Dpm 0644 mame.ini %{buildroot}%{_sysconfdir}/skel/.mame/mame.ini + +%suse_update_desktop_file -c mame 'MAME' 'Multiple Arcade Machine Emulator' mame mame Game Emulator +install -Dpm 0644 %{SOURCE102} %{buildroot}%{_datadir}/metainfo/mame.appdata.xml %endif + +%if "%{flavor}" == "mess" +# Install emulator binaries and manpages +install -Dpm 0755 mess%{?is_64bit:64} %{buildroot}%{_bindir}/mame-mess +install -Dpm 0644 docs/man/mess.6 %{buildroot}%{_mandir}/man6/mame-mess.6 +install -Dpm 0644 %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/mame-mess.png + +# Install config file +mkdir -p %{buildroot}%{_sysconfdir}/skel/.mess +install -Dpm 0644 mame.ini %{buildroot}%{_sysconfdir}/skel/.mess/mess.ini +sed -i -- 's/.mame;/.mess;/g' %{buildroot}%{_sysconfdir}/skel/.mess/mess.ini + +%suse_update_desktop_file -c mame-mess 'MESS' 'Multi Emulator Super System' mame-mess mame-mess Game Emulator +install -Dpm 0644 %{SOURCE104} %{buildroot}%{_datadir}/metainfo/mame-mess.appdata.xml %endif -# Tool binaries + +# Tool binaries and manpages +%if "%{flavor}" == "tools-data" +install -dm 0755 %{buildroot}%{_bindir} install -pm 0755 castool chdman floptool imgtool jedutil ldresample \ - ldverify romcmp unidasm %{emu_bin_dir}/ + ldverify romcmp unidasm %{buildroot}%{_bindir}/ for mame_tool in nltool nlwav pngcmp regrep split src2html srcclean do - install -pm 0755 $mame_tool %{emu_bin_dir}/mame-$mame_tool + install -pm 0755 $mame_tool %{buildroot}%{_bindir}/mame-${mame_tool} done -# Install manpages -install -dm 0755 %{buildroot}%{_mandir}/{man1,man6} +install -dm 0755 %{buildroot}%{_mandir}/man1 pushd docs/man/ install -pm 0644 castool.1 chdman.1 floptool.1 imgtool.1 jedutil.1 \ ldresample.1 ldverify.1 romcmp.1 %{buildroot}%{_mandir}/man1/ -install -pm 0644 mame.6 mess.6 %{buildroot}%{_mandir}/man6/ popd # Install data required by mame +%define emu_data_dir %{buildroot}%{_datadir}/mame for dir in artwork chds bgfx cheats crosshair ctrlr fonts hash \ keymaps language plugins roms samples opengl_shaders do - install -dm 0755 %{emu_data_dir}/$dir + install -dm 0755 %{emu_data_dir}/${dir} done install -dm 0755 %{emu_data_dir}/bgfx/shaders install -dm 0755 %{buildroot}%{_datadir}/pixmaps install -pm 0644 hash/* %{emu_data_dir}/hash/ install -pm 0644 uismall.bdf %{emu_data_dir}/uismall.bdf -install -pm 0644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/mame.png install -pm 0644 keymaps/{LICENSE,README.md} %{emu_data_dir}/keymaps/ install -pm 0644 keymaps/*LINUX.map %{emu_data_dir}/keymaps/ cp -ar language %{emu_data_dir}/ -find %{emu_data_dir}/language/ -name "*.po" | xargs rm -rf +find %{emu_data_dir}/language/ -name "*.po" -delete cp -ar artwork %{emu_data_dir}/ cp -ar plugins %{emu_data_dir}/ cp -ar samples %{emu_data_dir}/ @@ -257,54 +302,30 @@ cp -ar bgfx/shaders/glsl %{emu_data_dir}/bgfx/shaders/ install -pm 0644 src/osd/modules/opengl/shader/*.{fsh,vsh} %{emu_data_dir}/opengl_shaders/ -# Install config file -mkdir -p %{buildroot}%{_sysconfdir}/skel/.%{name} -install -Dpm 0644 mame.ini %{buildroot}%{_sysconfdir}/skel/.%{name}/mame.ini - -%suse_update_desktop_file -c mame 'MAME' 'Multiple Arcade Machine Emulator' mame mame Game Emulator -install -Dpm 0644 %{SOURCE102} %{buildroot}%{_datadir}/appdata/mame.appdata.xml - -%if %{with mess} -mkdir -p %{buildroot}%{_sysconfdir}/skel/.mess -install -Dpm 0644 mame.ini %{buildroot}%{_sysconfdir}/skel/.mess/mess.ini -sed -i -- 's/.mame;/.mess;/g' %{buildroot}%{_sysconfdir}/skel/.mess/mess.ini -mv %{buildroot}%{_mandir}/man6/mess.6 %{buildroot}%{_mandir}/man6/mame-mess.6 -install -Dpm 0644 %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/mame-mess.png -%suse_update_desktop_file -c mame-mess 'MESS' 'Multi Emulator Super System' mame-mess mame-mess Game Emulator -install -Dpm 0644 %{SOURCE104} %{buildroot}%{_datadir}/appdata/mame-mess.appdata.xml -%endif - %fdupes -s %{buildroot}/%{_datadir}/mame/bgfx +%endif -%post -%desktop_database_post - -%postun -%desktop_database_postun - +%if "%{flavor}" == "mame" || "%{flavor}" == "mess" %files %doc README.md whatsnew-%{version}.txt %license docs/LICENSE LICENSE.md -%{_bindir}/mame -%{_datadir}/pixmaps/mame.png -%{_datadir}/applications/mame.desktop -%dir %{_datadir}/appdata -%{_datadir}/appdata/mame.appdata.xml -%{_mandir}/man6/mame.6%{ext_man} -%if %{without mess} -%{_mandir}/man6/mess.6%{ext_man} +%{_bindir}/mame* +%{_datadir}/pixmaps/mame*.png +%{_datadir}/applications/mame*.desktop +%dir %{_sysconfdir}/skel/.* +%config(noreplace) %{_sysconfdir}/skel/.*/*.ini +%dir %{_datadir}/metainfo +%{_datadir}/metainfo/mame*.appdata.xml +%{_mandir}/man6/mame*.6%{ext_man} %endif -%files data +%if "%{flavor}" == "tools-data" +%files -n mame-data %doc README.md %license docs/LICENSE LICENSE.md %{_datadir}/mame/ -%dir %{_sysconfdir}/skel/.mame -%dir %{_sysconfdir}/skel/.mess -%config(noreplace) %{_sysconfdir}/skel/.mame/mame.ini -%config(noreplace) %{_sysconfdir}/skel/.mess/mess.ini -%files tools +%files -n mame-tools %license docs/LICENSE LICENSE.md %{_bindir}/castool %{_bindir}/chdman @@ -330,17 +351,6 @@ %{_mandir}/man1/ldresample.1%{ext_man} %{_mandir}/man1/ldverify.1%{ext_man} %{_mandir}/man1/romcmp.1%{ext_man} - -%files mess -%if %{with mess} -%doc README.md whatsnew-%{version}.txt -%license docs/LICENSE LICENSE.md -%{_bindir}/mame-mess -%{_datadir}/pixmaps/mame-mess.png -%{_datadir}/applications/mame-mess.desktop -%dir %{_datadir}/appdata -%{_datadir}/appdata/mame-mess.appdata.xml -%{_mandir}/man6/mame-mess.6%{ext_man} %endif %changelog ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.l0AtlU/_old 2019-12-09 21:35:30.990091226 +0100 +++ /var/tmp/diff_new_pack.l0AtlU/_new 2019-12-09 21:35:30.990091226 +0100 @@ -8,16 +8,18 @@ <size unit="G">8</size> </disk> </hardware> - + <overwrite> <conditions> <arch>aarch64</arch> <arch>x86_64</arch> <arch>ppc64le</arch> + <package>mame:mame</package> + <package>mame:mess</package> </conditions> <hardware> <disk> - <size unit="G">30</size> + <size unit="G">33</size> </disk> <memory> <size unit="M">13500</size> ++++++ _multibuild ++++++ <multibuild> <package>mame</package> <package>mess</package> <package>tools-data</package> </multibuild> ++++++ use_thin_archives.patch ++++++ --- 3rdparty/genie/src/tools/gcc.lua_orig 2019-10-31 01:14:26.826612937 +0100 +++ 3rdparty/genie/src/tools/gcc.lua 2019-10-31 02:06:13.625516286 +0100 @@ -277,7 +277,7 @@ if premake.gcc.llvm then table.insert(result, 'rcs') else - table.insert(result, '-rcs') + table.insert(result, '-rcTs') end else if premake.gcc.llvm then @@ -288,9 +288,9 @@ end else if (not ndx) then - table.insert(result, '-qc') + table.insert(result, '-qTc') else - table.insert(result, '-cs') + table.insert(result, '-cTs') end end end
