Пакет eduke32: Specfile

Name: eduke32
Version: 20230123.10167
Release: alt1
Summary: Source port of Duke Nukem 3D
License: GPL-2.0-only
Group: Games/Arcade
Url: https://www.eduke32.com/
Packager: Artyom Bystrov <arbars@altlinux.org>

Source: eduke32-%version.tar.xz
Source1: %{name}_32x32.png
Source2: %{name}_48x48.png
Source3: %{name}_64x64.png
Source4: %{name}_128x128.png
Source5: %name.desktop
Source6: %name-demo-install.sh
Source7: %name-demo-install.1
BuildRequires: dos2unix
BuildRequires: gcc-c++
BuildRequires: help2man
BuildRequires: nasm
BuildRequires: pkg-config
BuildRequires: libSDL2_mixer-devel
BuildRequires: libalsa-devel
BuildRequires: libflac-devel
BuildRequires: libgtk+2-devel
BuildRequires: libpng-devel
BuildRequires: libSDL2-devel
BuildRequires: libvorbis-devel
BuildRequires: libvpx-devel
BuildRequires: libGLU-devel
BuildRequires: imgui-devel

ExcludeArch: %ix86

%description
EDuke32 is a source port of the classic PC first person shooter Duke Nukem 3D
to Windows, Linux and OS X, which adds a ton of awesome features and
upgrades for regular players and an arsenal of editing functions and
scripting extensions for mod authors and map makers.

Note: You need 'Duke Nukem 3D' data files to play.
You can put them under '%_gamesdatadir/eduke32/' for all users
or '~/.eduke32/' only for yourself.
You can also play the shareware version. Use 'eduke32-demo-install' to
install the shareware files.

%package mapeditor
Summary: Eduke32 map editor
Group: Games/Arcade

%description mapeditor
Eduke32 maps editor based on BUILD engine

%prep
%setup
cp %SOURCE1 .
cp %SOURCE2 .
cp %SOURCE3 .
cp %SOURCE4 .
cp %SOURCE5 .
cp %SOURCE6 .
cp %SOURCE7 .

sed -i 's/ -save-temps=obj / /g' GNUmakefile

%build
export CFLAGS='%optflags -Wno-format'
make PACKAGE_REPOSITORY=1 \
     PRETTY_OUTPUT=1 \
     RELEASE=1 \
     SDL_TARGET=2 \
     BASECFLAGS="%{optflags}" \
%{?_smp_mflags} \
     VC_REV=%version

dos2unix source/build/buildlic.txt

%install
install -Dm 0755 %name %buildroot%_bindir/%name
install -Dm 0755 mapster32 %buildroot%_bindir/mapster32
# shareware demo installer script
install -Dm 0755 %name-demo-install.sh %buildroot%_bindir/%name-demo-install
# data files and help files for editor
install -Dm 0644 package/sdk/SEHELP.HLP %buildroot%_gamesdatadir/%name/sehelp.hlp
install -Dm 0644 package/sdk/STHELP.HLP %buildroot%_gamesdatadir/%name/sthelp.hlp
install -Dm 0644 package/sdk/m32help.hlp %buildroot%_gamesdatadir/%name/m32help.hlp
install -Dm 0644 package/sdk/tiles.cfg %buildroot%_gamesdatadir/%name/tiles.cfg
install -Dm 0644 %name.desktop %buildroot%_desktopdir/%name.desktop
install -Dm 0644 %{name}_32x32.png %buildroot%_niconsdir/%name.png
install -Dm 0644 %{name}_48x48.png %buildroot%_liconsdir/%name.png
install -Dm 0644 %{name}_64x64.png %buildroot%_iconsdir/hicolor/64x64/apps/%name.png
install -Dm 0644 %{name}_128x128.png %buildroot%_iconsdir/hicolor/128x128/apps/%name.png

%files
%_bindir/%name
%_bindir/%name-demo-install
%dir %_gamesdatadir/%name/
%_gamesdatadir/%name/m32help.hlp
%_gamesdatadir/%name/sehelp.hlp
%_gamesdatadir/%name/sthelp.hlp
%_gamesdatadir/%name/tiles.cfg
%doc source/build/buildlic.txt
%_iconsdir/hicolor/*/apps/%name.png
%_desktopdir/%name.desktop

%files mapeditor
%_bindir/mapster32

%changelog
* Tue Apr 25 2023 Artyom Bystrov <arbars@altlinux.org> 20230123.10167-alt1
- update to new version

* Thu Jan 19 2023 Artyom Bystrov <arbars@altlinux.org> 20221225-alt1
- initial build for ALT Sisyphus

* Sun Oct 17 2021 boris@steki.net
- Update to version 1633892719.d307f703c:
  * Fix dumbass oversight in 6839e418e34bff05bdd5debad9bf9146a09d9d72
  * Revert "engine: make floor sprites clip a little more like floors"
  * SW: fix buffer overflow preventing the game from starting, exposed by switching to the new memory allocation systems
  * engine: fix SDL fullscreen issues
  * engine: remove r_pr_vbos cvar and the code paths used for values 0 and 1
  * engine: add GL context version to glinfo, allow in 8 bpp mode (it's still backed by a GL surface, after all...)
  * engine: manually flush console log file ptr in crash handler
  * editor: fix "gameexecutable" option in configuration file
  * Fury: don't block input when player .hard_landing is set
  * Duke3d: zero player .horizRecenter and .horizSkew when zeroing return_to_center from CON
* Sun Apr 11 2021 Ferdinand Thiessen <rpm@fthiessen.de>
- Update to latest revision 9321 on 20210404
* Thu Aug 27 2020 Matthias Mailänder <mailaender@opensuse.org>
- Update to latest revision 8798 snapshot on 20200404
* Sat Apr 20 2019 Martin Hauke <mardnh@gmx.de>
- Update to latest revision 7615 snapshot on 20190419
- Use switch to SDL2
- Build with CFLAGS
- Run spec-cleaner
* Sat Apr 22 2017 boris@steki.net
- update to latest revision 6120 snapshot on 20170412
* Fri Jul 22 2016 boris@steki.net
- updated to latest revision 5811 snapshot on 20160704
- added gcc-c++ as build requirement
* Sat Nov  8 2014 kieltux@gmail.com
- Update to 2.0.0rev4584 (20140831)
  Still building against SDL because of a bug in the timidity
  implementation of SDL2_mixer which has already been fixed
  upstream, but there has not been any release since.
  https://hg.libsdl.org/SDL_mixer/rev/8ef083375857
- Removed subpackage eduke32-gui, eduke32-console
  It is now just eduke32 without a non-gui version.
- Updated eduke32-demo-install.sh, because ftp.3drealms.com is down.
  Using now archive.org.
- Spec file cleaning.
- Using _service for source download.
* Sat Aug 27 2011 boris@steki.net
- updated package to 2.0.0 rev 1992
  a lot of fixes some highlights
  Engine stuff:
  * Polymer light access to m32script (light[<lightidx>].<field>).
    As an application, provide a state 'insertlights' that takes the
    currently active lights and puts them into the map as SEs (e.g. for
    maphack recovery).
  * Prototype of a mechanism to gray out certain portion of a map,
    making them inactive to various, but not all, editing operations.
    Highlighting a set of sectors and pressing Ctrl-R will make the Z
    bounds be [(least ceiling z), (greatest floor z)] of all selected
    ones, pressing Ctrl-R when no sectors are highlighted will reset
    them. Not sure if it's for production use at this stage.
  * The 'align walls' feature [.] now has three independently
    toggleable behaviours: recurse nextwalls (toggled when Ctrl is
    pressed), iterate point2s (disabled when Shift is pressed), and also
    copy pixel width (toggled when Alt is pressed).
  * Make shades clamp instead of overflowing in the editor
  * Add 'r_shadescale_unbounded' cvar. When set to 0, OpenGL
    renderers should never draw completely black objects (currently
    only implemented for Polymost)
  * sector-like sprite clipping now works with x- xor y-flipped
    actual sprites
  Mapster32:
  * Add 'r_shadescale' to config
  * In 3D mode, make SPACE behave the same as holding down a mose
    button: the currently pointed-at object is locked. Required some
    modification of a.m32 to play well (i.e. not reset SPACE).
    This is useful by itself but more so in conjunction with the next point
  * make Alt behave as a modifier with PGUP/PGDN: when aiming at a
    2-sided wall, move the other side's sector's ceiling or floor (only
    this is new).
  * Auto-alignment of walls can be controlled in a finer grained
    fashion now:
    When pressing '.', only the immediate neighbors get aligned.
    Use Ctrl-. for the old behaviour.
  * When inserting a point in 2D mode, auto-align the neighboring
    wall
  * corruption checker has been hooked up to loading/saving
    routines to inform/warn the user
  * also warn if mouse pointer is over corrupt wall which is shown
    in pink then: you should not move such a wall!
  * faster map loading by deferring polymer_loadboard to 3d mode
    entrance (also removes some 'glGetTexLevelParameteriv returned
    GL_FALSE' warnings)
  * more logical maphack light handling, the logic is still a bit
    dodgy though
  * some menu and misc. function fixup
  * redundancy elimination...
  API:
  * added consts various for 'char *filename' parameters
  * loadboard() now accepts bit 4 for flags (formerly 'fromwhere')
* Sat Jul  2 2011 jengelh@medozas.de
- Use %%_smp_mflags for parallel building
- Strip %%clean section (not needed on BS)
* Tue Nov  2 2010 boris@steki.net
- updated package to 2.0.0 rev 1723
  * Polymost-style HUD model support for Polymer.
    It properly displays all HRP HUD models as far as I can tell.
  * New CON commands
  * mostly multiplayer fixes among other things
  * SDL and menu joystick fixes
  * Link debug builds with -rdynamic in order to get symbol
    names when printing backtraces from the signal handler.
  * Make the "Start" button of the GTK start-up window the default
    button of the window, which means pressing Enter now works at
    you'd expect.
  + Lot of other bugs fixed
* Tue Jan 19 2010 boris@steki.net
- Added demo files installation script called
  eduke32-demo-install which will download package
  extract it and show its license to user and force
  him to accept terms within
* Tue Jan 19 2010 boris@steki.net
- Added obsolete tag in spec file for removing -common
  package on upgrade
* Mon Jan 18 2010 boris@steki.net
- Removed -common package as it was unnecessary and
  was just confusing
* Sat Jan 16 2010 boris@steki.net
- Added Desktop integration files and icons
* Sat Jan 16 2010 boris@steki.net
- Packages for gui,console and mapeditor are created
  so now it can be selected on install or after can
  be changed with use of update-alternatives
* Fri Jan 15 2010 boris@steki.net
- Created inital rpm package from svn export