initial import

This commit is contained in:
2025-06-22 20:39:04 -05:00
commit f8a70886f0
3428 changed files with 302546 additions and 0 deletions

42
trackballs/PKGBUILD Normal file
View File

@@ -0,0 +1,42 @@
# Maintainer: Jesus E. <heckyel@riseup.net>
pkgname=trackballs
pkgver=1.3.2
pkgrel=2
pkgdesc="Free and libre game where you guide a marble through a maze and avoid obstacles"
arch=('i686' 'x86_64')
license=('GPL-2')
url='https://trackballs.github.io/'
depends=('guile' 'sdl2_ttf' 'sdl2_image' 'sdl2_mixer' 'hicolor-icon-theme' 'gettext-tiny')
makedepends=('cmake')
groups=('games')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/trackballs/trackballs/archive/v${pkgver}.tar.gz"
"find_guile.patch"
"${pkgname}.desktop")
sha512sums=('489b93cdf0e7941ffff545bfdafd665d2555a5367a282562bdcba3e1405d16110c84691117e0aa9f2c2561617c2a0bde82f186a972a1eaf53afa3405b02d4819'
'17a936d1d12eba850757d0e63a4a9457e1cdd5f73e3312b9cbaeecb35a17524775e04afb2b3f2650e117125c6c9036f622bc98c628d8c4942c4abaf54822375f'
'a6802bfe09c2a0a1c25f10ce6c3eac600a3e819716811d0a578c0458856d6bb63df181432c3bef69e5fc66d2dbdf9a784ff1ee6580f0010b3f46a71105156fa7')
prepare() {
cd ${srcdir}/$pkgname-$pkgver
patch -p1 -i "${srcdir}/find_guile.patch"
}
build() {
cmake -B build \
-S $pkgname-$pkgver \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DTRACKBALLS_BIN_DIR=/usr/games \
-DTRACKBALLS_SHARE_DIR=/usr/share/games/$pkgname
make -C build
}
package() {
make -C build DESTDIR=${pkgdir} install
rm -rf "${pkgdir}/usr/share/applications"
install -Dm644 "${srcdir}/${pkgname}.desktop" -t "${pkgdir}/usr/share/applications"
install -Dm644 $pkgname-$pkgver/COPYING -t "${pkgdir}/usr/share/licenses/$pkgname"
}

View File

@@ -0,0 +1,95 @@
diff --git a/cmake/FindGuile.cmake b/cmake/FindGuile.cmake
index 844e817..46ef61b 100644
--- a/cmake/FindGuile.cmake
+++ b/cmake/FindGuile.cmake
@@ -1,36 +1,71 @@
-# Locate Guile.
+# Locate Guile.
# Note: `guile-config` ultimately calls pkg-config anyway
# Nothing gets marked `advanced` since there aren't that many variables
-find_program(GUILE_SNARF NAMES guile-snarf guile-snarf3.0 guile-snarf2.2 guile-snarf2.0)
+# Use PkgConfig when possible to find the version of guile which is available,
+# and then use its results as hints toward the actual library/include paths
-# PkgConfig is only there to provide hints
find_package(PkgConfig)
-pkg_check_modules(PC_GUILE QUIET guile)
+pkg_check_modules(PC_GUILE QUIET guile-3.0)
+if (PC_GUILE_FOUND)
+ find_program(GUILE_SNARF NAMES guile-snarf3.0 guile-snarf)
+ find_path(GUILE_INCLUDE_DIR libguile.h
+ HINTS ${PC_GUILE_INCLUDEDIR} ${PC_GUILE_INCLUDE_DIRS}
+ PATH_SUFFIXES guile/3.0 guile)
+ find_library(GUILE_LIBRARY NAMES guile-3.0 guile
+ HINTS ${PC_GUILE_LIBDIR} ${PC_GUILE_LIBRARY_DIRS} )
+endif(PC_GUILE_FOUND)
+
if (NOT PC_GUILE_FOUND)
- pkg_check_modules(PC_GUILE QUIET guile-3.0)
- if (NOT PC_GUILE_FOUND)
pkg_check_modules(PC_GUILE QUIET guile-2.2)
- if (NOT PC_GUILE_FOUND)
- pkg_check_modules(PC_GUILE QUIET guile-2.0)
- endif(NOT PC_GUILE_FOUND)
- endif(NOT PC_GUILE_FOUND)
+ if (PC_GUILE_FOUND)
+ find_program(GUILE_SNARF NAMES guile-snarf2.2 guile-snarf)
+ find_path(GUILE_INCLUDE_DIR libguile.h
+ HINTS ${PC_GUILE_INCLUDEDIR} ${PC_GUILE_INCLUDE_DIRS}
+ PATH_SUFFIXES guile/2.2 guile)
+ find_library(GUILE_LIBRARY NAMES guile-2.2 guile
+ HINTS ${PC_GUILE_LIBDIR} ${PC_GUILE_LIBRARY_DIRS} )
+ endif(PC_GUILE_FOUND)
endif(NOT PC_GUILE_FOUND)
+if (NOT PC_GUILE_FOUND)
+ pkg_check_modules(PC_GUILE QUIET guile-2.0)
+ if (PC_GUILE_FOUND)
+ find_program(GUILE_SNARF NAMES guile-snarf2.0 guile-snarf)
+ find_path(GUILE_INCLUDE_DIR libguile.h
+ HINTS ${PC_GUILE_INCLUDEDIR} ${PC_GUILE_INCLUDE_DIRS}
+ PATH_SUFFIXES guile/2.0 guile)
+ find_library(GUILE_LIBRARY NAMES guile-2.0 guile
+ HINTS ${PC_GUILE_LIBDIR} ${PC_GUILE_LIBRARY_DIRS} )
+ endif(PC_GUILE_FOUND)
+endif(NOT PC_GUILE_FOUND)
-set(GUILE_DEFINITIONS ${PC_GUILE_CFLAGS_OTHER})
+if (NOT PC_GUILE_FOUND)
+ pkg_check_modules(PC_GUILE QUIET guile)
+ if (PC_GUILE_FOUND)
+ find_program(GUILE_SNARF NAMES guile-snarf)
+ find_path(GUILE_INCLUDE_DIR libguile.h
+ HINTS ${PC_GUILE_INCLUDEDIR} ${PC_GUILE_INCLUDE_DIRS}
+ PATH_SUFFIXES guile)
+ find_library(GUILE_LIBRARY NAMES guile
+ HINTS ${PC_GUILE_LIBDIR} ${PC_GUILE_LIBRARY_DIRS} )
+ endif(PC_GUILE_FOUND)
+endif(NOT PC_GUILE_FOUND)
-find_path(GUILE_INCLUDE_DIR libguile.h
- HINTS ${PC_GUILE_INCLUDEDIR} ${PC_GUILE_INCLUDE_DIRS}
- PATH_SUFFIXES guile guile/3.0 guile/2.2 guile/2.0)
+if (NOT PC_GUILE_FOUND)
+ find_program(GUILE_SNARF NAMES
+ guile-snarf3.0 guile-snarf2.2 guile-snarf2.0 guile-snarf)
+ find_path(GUILE_INCLUDE_DIR libguile.h
+ PATH_SUFFIXES guile/3.0 guile/2.2 guile/2.0 guile)
+ find_library(GUILE_LIBRARY NAMES guile-3.0 guile-2.2 guile-2.0 guile)
+endif(NOT PC_GUILE_FOUND)
-find_library(GUILE_LIBRARY NAMES guile guile-3.0 guile-2.2 guile-2.0
- HINTS ${PC_GUILE_LIBDIR} ${PC_GUILE_LIBRARY_DIRS} )
+set(GUILE_DEFINITIONS ${PC_GUILE_CFLAGS_OTHER})
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Guile REQUIRED_VARS
- GUILE_LIBRARY GUILE_INCLUDE_DIR
- VERSION_VAR PC_GUILE_VERSION)
+find_package_handle_standard_args(Guile
+ REQUIRED_VARS GUILE_LIBRARY GUILE_INCLUDE_DIR
+ VERSION_VAR PC_GUILE_VERSION)
set(GUILE_LIBRARIES ${GUILE_LIBRARY} )
set(GUILE_INCLUDE_DIRS ${GUILE_INCLUDE_DIR} )

View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Name=Trackballs
Comment=Guide a marble through a maze and avoid obstacles
Comment[de]=Führe eine Murmel durch ein Labyrinth und weiche Hindernissen aus
Exec=trackballs
Icon=trackballs
Type=Application
Categories=Game;ArcadeGame;
Keywords=marble;maze;obstacle;