commit: 4361e2f15db8f3f934e9d1497d350faf62f77a96 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Sat Jun 7 22:03:24 2025 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Sat Jun 7 22:03:24 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4361e2f1
games-puzzle/enigma: Version bump to 1.30, fixes musl, EAPI 8 The non-free menu music track is now conditionally removed. A patch to remove references to it was submitted, but simply deleting the file has the same effect. Closes: https://bugs.gentoo.org/739292 Closes: https://bugs.gentoo.org/778542 Closes: https://bugs.gentoo.org/868720 Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> games-puzzle/enigma/Manifest | 1 + games-puzzle/enigma/enigma-1.30.ebuild | 83 +++++++++++ games-puzzle/enigma/files/enigma-1.30-build.patch | 98 ++++++++++++ .../enigma/files/enigma-1.30-no-gettext.patch | 164 +++++++++++++++++++++ games-puzzle/enigma/metadata.xml | 4 + 5 files changed, 350 insertions(+) diff --git a/games-puzzle/enigma/Manifest b/games-puzzle/enigma/Manifest index 124a8a765402..d765365cca8b 100644 --- a/games-puzzle/enigma/Manifest +++ b/games-puzzle/enigma/Manifest @@ -1 +1,2 @@ +DIST Enigma-1.30-src.tar.gz 43653520 BLAKE2B 28486f51fcec7f41212e06f192acd346f7a5eef74b941685cc27314ef9d68d8ffc35d4f438ac0fc9b4464e13ad8ecb04a0bf7042a8c06bf4f7b9adfe34e53ad8 SHA512 57c6d642538b7bce6a748e1e1bce641dcc1dcd627a4e2c4dfe5d1271bf9df624075914c04fc6cddc1b1118585e4f111d79c8c8a54a1a6b93a8bedfb1aa9f2ef6 DIST enigma-1.21.tar.gz 56409951 BLAKE2B c03cf3c66cb1df771671c6c92d5a64e66ab78c2abbf25008285dedb5db10fb1c8daf2053c15a09147e00f0a22a7882e47b1c6ed66588b2397deec084456af1b9 SHA512 0cca56a193f0f416e0fde02caf2e30b61eef506b6c62e151ff575f5c130f1e2e778d77149007b114ebaeec3a3e793434328555cb5190954a0ae13ed6cee229f0 diff --git a/games-puzzle/enigma/enigma-1.30.ebuild b/games-puzzle/enigma/enigma-1.30.ebuild new file mode 100644 index 000000000000..1b9d3ee64d46 --- /dev/null +++ b/games-puzzle/enigma/enigma-1.30.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools xdg + +DESCRIPTION="Puzzle game similar to Oxyd" +HOMEPAGE="http://www.nongnu.org/enigma/" +SRC_URI="https://github.com/Enigma-Game/Enigma/releases/download/${PV}/Enigma-${PV}-src.tar.gz" + +LICENSE="GPL-2+ non-free? ( all-rights-reserved )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="nls non-free" +RESTRICT="mirror non-free? ( bindist )" + +DEPEND=" + dev-libs/xerces-c:= + media-libs/libpng:0= + media-libs/libsdl2[video] + media-libs/sdl2-image[jpeg,png] + media-libs/sdl2-mixer[vorbis] + media-libs/sdl2-ttf + net-libs/enet:= + net-misc/curl + sys-libs/zlib + non-free? ( media-libs/sdl2-mixer[mod] ) +" +RDEPEND=" + ${DEPEND} + media-fonts/dejavu +" +BDEPEND=" + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${P}-no-gettext.patch + "${FILESDIR}"/${P}-build.patch +) + +DOCS=( + ACKNOWLEDGEMENTS + AUTHORS + CHANGES + README + doc/HACKING +) + +src_prepare() { + default + rm -r intl/ || die + eautoreconf + config_rpath_update . +} + +src_configure() { + # After patching, all docs are HTML. The game itself uses docdir, and + # overriding it here is the easiest way to handle this. + econf \ + --docdir="${EPREFIX}"/usr/share/doc/${PF}/html \ + --with-system-enet \ + $(use_enable nls) +} + +src_install() { + default + doman doc/${PN}.6 + + dosym \ + ../../fonts/dejavu/DejaVuSansCondensed.ttf \ + /usr/share/${PN}/fonts/DejaVuSansCondensed.ttf + dosym \ + ../../fonts/dejavu/DejaVuSans.ttf \ + /usr/share/${PN}/fonts/vera_sans.ttf + + if ! use non-free; then + # Informal permission was given by this track's author, but there is no + # formal license, and the file includes an All Rights Reserved notice. + rm -v "${ED}"/usr/share/${PN}/music/menu/pentagonal_dreams.s3m || die + fi +} diff --git a/games-puzzle/enigma/files/enigma-1.30-build.patch b/games-puzzle/enigma/files/enigma-1.30-build.patch new file mode 100644 index 000000000000..0fd04ee3fe54 --- /dev/null +++ b/games-puzzle/enigma/files/enigma-1.30-build.patch @@ -0,0 +1,98 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -51,6 +51,7 @@ + AC_PROG_CXX + AC_PROG_CPP + AC_PROG_RANLIB ++AM_PROG_AR + PKG_PROG_PKG_CONFIG + + dnl do not add the AC_PROG_CXX default CXXFLAGS +@@ -268,7 +269,7 @@ + CXXFLAGS="$CXXFLAGS -O2 -ffast-math -fomit-frame-pointer" + AC_MSG_RESULT(yes) + else +- CXXFLAGS="$CXXFLAGS -g" ++ CXXFLAGS="$CXXFLAGS" + AC_MSG_RESULT(no) + fi + +@@ -347,13 +348,15 @@ + dnl ---------------------------------------------------------- + + AC_MSG_CHECKING(whether to use system enet) +-AC_ARG_WITH(system-enet, +- AS_HELP_STRING(--with-system-enet, Use system enet), system_enet=$withval, +- system_enet=no ++AC_ARG_WITH([system-enet], ++ AS_HELP_STRING([--with-system-enet], [Use system enet]), ++ [system_enet=$withval], ++ [system_enet=no] + ) + AM_CONDITIONAL([SYSTEM_ENET], [test "x$system_enet" = xyes]) + AM_COND_IF([SYSTEM_ENET], +- PKG_CHECK_MODULES(LIBENET, [libenet], ,AC_MSG_ERROR([libenet not found!]))) ++ [PKG_CHECK_MODULES(LIBENET, [libenet], , AC_MSG_ERROR([libenet not found!]))] ++) + dnl Even if using system enet, still need to config the local version for running make dist + AC_CONFIG_SUBDIRS([lib-src/enet]) + +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -6,7 +6,6 @@ + index_DATA = index.html + + docdir = @docdir@ +-doc_DATA = gpl.txt lgpl.txt + + EXTRA_DIST = gpl.txt lgpl.txt enigma.6 HACKING README.mingw32 REQUIREMENTS README.macosx\ + doxygen.config $(index_DATA) +--- a/etc/enigma.desktop ++++ b/etc/enigma.desktop +@@ -1,5 +1,5 @@ + [Desktop Entry] +-Version=1.30 ++Version=1.0 + Name=Enigma + Name[be]=Enigma + Name[cs]=Enigma +@@ -44,5 +44,5 @@ + StartupNotify=false + Icon=enigma + Type=Application +-Categories=Application;Game;PuzzleGame; ++Categories=Game;LogicGame; + +--- a/etc/Makefile.am ++++ b/etc/Makefile.am +@@ -12,8 +12,8 @@ + desktop_DATA = enigma.desktop + + # Install AppData file +-appdatadir = $(prefix)/share/appdata +-dist_appdata_DATA = enigma.appdata.xml ++metainfodir = $(prefix)/share/metainfo ++dist_metainfo_DATA = enigma.appdata.xml + # endif !MINGW32 + + EXTRA_DIST = \ +--- a/lib-src/zipios++/configure.ac ++++ b/lib-src/zipios++/configure.ac +@@ -36,6 +36,7 @@ + AC_PROG_CPP + AC_PROG_INSTALL + AC_PROG_RANLIB ++AM_PROG_AR + + dnl Checks for libraries. + AC_CHECK_LIB(z, inflate, [cv_libz=yes], [cv_libz=no]) +--- a/Makefile.am ++++ b/Makefile.am +@@ -7,7 +7,6 @@ + EXTRA_DIST = enigma CHANGES ACKNOWLEDGEMENTS + + docdir = @datadir@/doc/enigma +-doc_DATA = README CHANGES COPYING ACKNOWLEDGEMENTS + + ACLOCAL_AMFLAGS = -I m4 + diff --git a/games-puzzle/enigma/files/enigma-1.30-no-gettext.patch b/games-puzzle/enigma/files/enigma-1.30-no-gettext.patch new file mode 100644 index 000000000000..cd0ebfe60c2a --- /dev/null +++ b/games-puzzle/enigma/files/enigma-1.30-no-gettext.patch @@ -0,0 +1,164 @@ +From 22f3771073c95e789ab37189b4cb324e0a849784 Mon Sep 17 00:00:00 2001 +From: Andreas Lochmann <[email protected]> +Date: Wed, 22 Mar 2023 00:50:37 +0100 +Subject: [PATCH] Remove remnants of gettext, including intl directory (no + libintl needed anymore). + +--- a/Makefile.am ++++ b/Makefile.am +@@ -3,7 +3,7 @@ + # tools -> lib-src/lua + # src -> tools, lib-src + # +-SUBDIRS = m4 lib-src tools intl src data doc etc ++SUBDIRS = m4 lib-src tools src data doc etc + EXTRA_DIST = enigma CHANGES ACKNOWLEDGEMENTS + + docdir = @datadir@/doc/enigma +--- a/configure.ac ++++ b/configure.ac +@@ -98,12 +98,6 @@ dnl Check for libraries + dnl ====================================================================== + AC_SEARCH_LIBS([dlopen], [dl]) + +-dnl When using the included gettext package from the /intl subdir +-dnl /intl needs to be added to the list of include folders +-if test "$BUILD_INCLUDED_LIBINTL" = yes; then +- CXXFLAGS="$CXXFLAGS -I\$(top_srcdir)/intl" +-fi +- + dnl This is to check for winmm which must be included to satisfy enet + dnl when compiling under mingw32 + if test "$MINGW32" = yes; then +@@ -368,7 +362,7 @@ dnl Configure libraries + dnl ---------------------------------------------------------- + AC_CONFIG_SUBDIRS(lib-src/zipios++) + +-AC_CONFIG_FILES([Makefile m4/Makefile intl/Makefile ++AC_CONFIG_FILES([Makefile m4/Makefile + data/Makefile + data/gfx/Makefile + data/gfx/flags25x15/Makefile +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -27,8 +27,7 @@ if MINGW32 + CXXFLAGS += -static-libgcc -static-libstdc++ -DWIN32 + endif + +-CXXFLAGS += -I$(top_srcdir)/lib-src \ +- -I$(top_builddir)/intl @SDL_CFLAGS@ ++CXXFLAGS += -I$(top_srcdir)/lib-src @SDL_CFLAGS@ + + + enigma_SOURCES = \ +@@ -471,7 +470,6 @@ else # not MACOSX + endif + + enigma_LDADD = \ +- @LIBINTL@ \ + $(top_builddir)/lib-src/enigma-core/libecl.a \ + $(top_builddir)/lib-src/lua/liblua.a + +--- a/src/gui/OptionsMenu.cc ++++ b/src/gui/OptionsMenu.cc +@@ -992,7 +992,6 @@ class VideoCheckTickDown : public Label { + std::string tfLocalization = XMLtoLocal(Utf8ToXML(localizationPathTF->getText().c_str()).x_str()).c_str(); + if (app.l10nPath != tfLocalization) { + app.l10nPath = tfLocalization; +- bindtextdomain (PACKAGE_NAME, app.l10nPath.c_str()); + app.prefs->setProperty("LocalizationPath", app.l10nPath); + } + } +--- a/src/main.cc ++++ b/src/main.cc +@@ -52,7 +52,6 @@ + + #include "tinygettext/include/tinygettext/log.hpp" + +-#include <locale.h> + #include <cstdio> + #include <cstdlib> + #include <ctime> +@@ -894,13 +893,6 @@ void Application::init_i18n() + + nls::SetMessageLocale (app.language); + +- // TODO: Make sure that bindtextdomain accepts UTF-8, then replace +- // by XMLtoUtf8(LocalToXML(app.l10nPath.c_str()).x_str()).c_str(). +- bindtextdomain (PACKAGE_NAME, app.l10nPath.c_str()); +- +- // SDL_ttf does not handle arbitrary encodings, so use UTF-8 +- bind_textdomain_codeset (PACKAGE_NAME, "utf-8"); +- textdomain (PACKAGE_NAME); + #endif + + } +--- a/src/nls.cc ++++ b/src/nls.cc +@@ -5,7 +5,6 @@ + #include "enigma.hh" + #include "options.hh" + +-#include <locale.h> + #include <fstream> + #include <string> + #include <cstdlib> +@@ -17,47 +16,10 @@ using namespace nls; + + unique_ptr<tinygettext::DictionaryManager> nls::theDictionaryManager = nullptr; + +-#if !defined (HAVE_SETENV) && defined (HAVE_PUTENV) +-static char lang_env[256]; +-#endif +- +-static char localeutf[256]; +- +-static void my_setenv (const char* var, const char* val) +-{ +-#if defined (HAVE_SETENV) +- setenv(var, val, 1); +-#elif defined (HAVE_PUTENV) +- snprintf (lang_env, sizeof(lang_env), "%s=%s", var, val); +- putenv(lang_env); +-#endif +-} +- + void nls::SetMessageLocale(const std::string &language) + { +- if (language != "") { ++ if (language != "") + theDictionaryManager->set_language(tinygettext::Language::from_name(language)); +-#if defined (WIN32) || defined (MACOSX) +- my_setenv ("LANG", language.c_str()); +-#else // not WIN32 or MACOSX +- if (setlocale (LC_MESSAGES, language.c_str()) != NULL) { +- my_setenv ("LANG", language.c_str()); +- } else { +- // Second attempt: lang + .UTF-8 +- snprintf(localeutf, sizeof(localeutf), "%s.UTF-8", language.c_str()); +- if (setlocale (LC_MESSAGES, localeutf) != NULL) { +- my_setenv ("LANG", localeutf); +- } +- } +-#endif +- } +- +-#if defined(ENABLE_NLS) && defined(HAVE_LC_MESSAGES) +- // Hack to fool libintl into changing the message locale more than +- // once +- setlocale (LC_MESSAGES, "C"); +- setlocale (LC_MESSAGES, ""); //language.c_str()); +-#endif + } + + void nls::CycleLocale(bool direction) +--- a/src/nls.hh ++++ b/src/nls.hh +@@ -3,7 +3,6 @@ + #include "config.h" + + #if defined(ENABLE_NLS) +-# include <libintl.h> + # define _(String) nls::translate(String).c_str() + //# define _(String) gettext(String) + # define gettext_noop(String) (String) diff --git a/games-puzzle/enigma/metadata.xml b/games-puzzle/enigma/metadata.xml index a41fcc8473c8..892af9aefca1 100644 --- a/games-puzzle/enigma/metadata.xml +++ b/games-puzzle/enigma/metadata.xml @@ -6,6 +6,10 @@ <name>Gentoo Games Project</name> </maintainer> <upstream> + <remote-id type="github">Enigma-Game/Enigma</remote-id> <remote-id type="sourceforge">enigma-game</remote-id> </upstream> + <use> + <flag name="non-free">Install the non-free Pentagonal Dreams menu music track</flag> + </use> </pkgmetadata>
