2021-11-21 22:54:53 +00:00
{ stdenv
, lib
, fetchurl
2023-03-07 06:34:17 +00:00
, dpkg
2021-11-21 22:54:53 +00:00
, autoPatchelfHook
2022-11-07 00:49:20 +00:00
, wrapGAppsHook
2021-11-21 22:54:53 +00:00
, alsa-lib
, cups
2023-12-20 18:01:08 +00:00
, libGL
2021-11-21 22:54:53 +00:00
, libX11
, libXScrnSaver
, libXtst
, mesa
, nss
2022-11-07 00:49:20 +00:00
, gtk3
, libpulseaudio
2021-11-21 22:54:53 +00:00
, systemd
2024-03-26 06:50:40 +00:00
, withTetrioPlus ? false # For backwards compatibility. At the time of writing, the latest released tetrio plus version is not compatible with tetrio desktop.
, tetrio-plus ? false # For backwards compatibility. At the time of writing, the latest released tetrio plus version is not compatible with tetrio desktop.
2021-11-21 22:54:53 +00:00
} :
2024-03-26 06:50:40 +00:00
lib . warnIf ( withTetrioPlus != false ) " w i t h T e t r i o P l u s : C u r r e n t l y u n s u p p o r t e d w i t h t e t r i o - d e s k t o p 9 . 0 . 0 . P l e a s e r e m o v e t h i s a t t r i b u t e . "
lib . warnIf ( tetrio-plus != false ) " t e t r i o - p l u s : C u r r e n t l y u n s u p p o r t e d w i t h t e t r i o - d e s k t o p 9 . 0 . 0 . P l e a s e r e m o v e t h i s a t t r i b u t e . "
( let
libPath = lib . makeLibraryPath [
libGL
libpulseaudio
systemd
] ;
in
stdenv . mkDerivation ( finalAttrs : {
2021-11-21 22:54:53 +00:00
pname = " t e t r i o - d e s k t o p " ;
2024-03-16 15:31:03 +00:00
version = " 9 . 0 . 0 " ;
2021-11-21 22:54:53 +00:00
src = fetchurl {
2024-03-26 06:50:40 +00:00
url = " h t t p s : / / t e t r . i o / a b o u t / d e s k t o p / b u i l d s / ${ lib . versions . major finalAttrs . version } / T E T R . I O % 2 0 S e t u p . d e b " ;
hash = " s h a 2 5 6 - U r i L w M B 8 D + / T 3 2 H 4 r P b k J A y / F / F F h N p d + + 0 A R 1 l w E f s = " ;
2021-11-21 22:54:53 +00:00
} ;
nativeBuildInputs = [
2023-03-07 06:34:17 +00:00
dpkg
2021-11-21 22:54:53 +00:00
autoPatchelfHook
wrapGAppsHook
] ;
2023-03-07 06:34:17 +00:00
dontWrapGApps = true ;
2021-11-21 22:54:53 +00:00
buildInputs = [
alsa-lib
cups
libX11
libXScrnSaver
libXtst
mesa
nss
2022-11-07 00:49:20 +00:00
gtk3
2021-11-21 22:54:53 +00:00
] ;
2023-03-07 06:34:17 +00:00
unpackCmd = " d p k g - x $ c u r S r c s r c " ;
2021-11-21 22:54:53 +00:00
installPhase = ''
2022-11-07 00:49:20 +00:00
runHook preInstall
2021-11-21 22:54:53 +00:00
2024-03-26 06:50:40 +00:00
mkdir - p $ out/bin
2023-03-07 06:34:17 +00:00
cp - r opt / usr/share / $ out
2024-03-26 06:50:40 +00:00
ln - s $ out/opt/TETR.IO/TETR.IO $ out/bin/tetrio
2021-11-21 22:54:53 +00:00
2024-03-16 15:31:03 +00:00
substituteInPlace $ out/share/applications/TETR.IO.desktop \
2024-03-26 06:50:40 +00:00
- - replace-fail " E x e c = / o p t / T E T R . I O / T E T R . I O " " E x e c = $ o u t / b i n / t e t r i o "
2022-11-07 00:49:20 +00:00
runHook postInstall
'' ;
postFixup = ''
2024-03-16 15:31:03 +00:00
wrapProgram $ out/opt/TETR.IO/TETR.IO \
2022-11-07 00:49:20 +00:00
- - prefix LD_LIBRARY_PATH : $ { libPath }: $ out/opt/TETR.IO \
'' ${ gappsWrapperArgs [ @ ] }
2021-11-21 22:54:53 +00:00
'' ;
2024-03-26 06:50:40 +00:00
meta = {
2021-11-21 22:54:53 +00:00
description = " T E T R . I O d e s k t o p c l i e n t " ;
2024-03-26 06:50:40 +00:00
downloadPage = " h t t p s : / / t e t r . i o / a b o u t / d e s k t o p / " ;
homepage = " h t t p s : / / t e t r . i o " ;
license = lib . licenses . unfree ;
2021-11-21 22:54:53 +00:00
longDescription = ''
TETR . IO is a modern yet familiar online stacker .
Play against friends and foes all over the world , or claim a spot on the leaderboards - the stacker future is yours !
'' ;
2024-03-26 06:50:40 +00:00
mainProgram = " t e t r i o " ;
maintainers = with lib . maintainers ; [ wackbyte ] ;
2021-11-21 22:54:53 +00:00
platforms = [ " x 8 6 _ 6 4 - l i n u x " ] ;
} ;
2024-03-26 06:50:40 +00:00
} ) )