glamoroustoolkit: init at v0.7.2
Includes significant feedback from Anderson Torres to refactor derivation to meet guidelines. Co-authored-by: Anderson Torres <torres.anderson.85@protonmail.com>
This commit is contained in:
committed by
Anderson Torres
co-authored by
Anderson Torres
parent
0a4413e9fc
commit
4667f482ff
@@ -0,0 +1,25 @@
|
||||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash --packages curl
|
||||
#
|
||||
# Download the latest GlamorousToolkit image to the current directory, which must be empty
|
||||
#
|
||||
set -e
|
||||
|
||||
if [ ! -z "$(ls)" ]
|
||||
then
|
||||
echo "Warning: the directory is not empty, continuing may overwrite some files"
|
||||
read -p "Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
|
||||
fi
|
||||
|
||||
GTVERSION=$(curl -s https://api.github.com/repos/feenkcom/gtoolkit/releases/latest 2>/dev/null | grep tag_name | cut -d '"' -f 4)
|
||||
if [ -z "$GTVERSION" ]
|
||||
then
|
||||
echo "Failed to get Gt Version string, exiting..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
curl -L \
|
||||
-o gt-image.zip \
|
||||
https://github.com/feenkcom/gtoolkit/releases/download/${GTVERSION}/GlamorousToolkit-Linux-x86_64-${GTVERSION}.zip
|
||||
unzip gt-image.zip
|
||||
rm -rf bin lib
|
||||
@@ -0,0 +1,103 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchzip
|
||||
, cairo
|
||||
, dbus
|
||||
, fontconfig
|
||||
, freetype
|
||||
, glib
|
||||
, gtk3
|
||||
, libX11
|
||||
, libXcursor
|
||||
, libXext
|
||||
, libXi
|
||||
, libXrandr
|
||||
, libXrender
|
||||
, libglvnd
|
||||
, libuuid
|
||||
, libxcb
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "glamoroustoolkit";
|
||||
version = "0.7.2";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/feenkcom/gtoolkit-vm/releases/download/v${finalAttrs.version}/GlamorousToolkit-x86_64-unknown-linux-gnu.zip";
|
||||
stripRoot = false;
|
||||
hash = "sha256-Tahe/P0sxmuhSG5JxOkyQGLTOyVrjMEkxvzPc2CBV0Y=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontPatchELF = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -d $out/bin $out/lib
|
||||
cp -r $src/bin $src/lib $out/
|
||||
cp ${./GlamorousToolkit-GetImage} $out/bin/GlamorousToolkit-GetImage
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = let
|
||||
libPath = lib.makeLibraryPath [
|
||||
cairo
|
||||
dbus
|
||||
fontconfig
|
||||
freetype
|
||||
glib
|
||||
gtk3
|
||||
libX11
|
||||
libXcursor
|
||||
libXext
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libglvnd
|
||||
libuuid
|
||||
libxcb
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
in ''
|
||||
chmod +x $out/lib/*.so
|
||||
patchelf \
|
||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||
--set-rpath "${libPath}:$out/lib" \
|
||||
$out/bin/GlamorousToolkit $out/bin/GlamorousToolkit-cli
|
||||
patchelf --shrink-rpath \
|
||||
$out/bin/GlamorousToolkit $out/bin/GlamorousToolkit-cli
|
||||
patchelf \
|
||||
--set-rpath "${libPath}:$out/lib" \
|
||||
$out/lib/*.so
|
||||
patchelf --shrink-rpath $out/lib/*.so
|
||||
#
|
||||
# shrink-rpath gets it wrong for the following libraries,
|
||||
# restore the full rpath.
|
||||
#
|
||||
patchelf \
|
||||
--set-rpath "${libPath}:$out/lib" \
|
||||
$out/lib/libPharoVMCore.so \
|
||||
$out/lib/libWinit.so \
|
||||
$out/lib/libPixels.so
|
||||
patchelf --set-rpath $out/lib $out/lib/libssl.so
|
||||
|
||||
ln -s $out/lib/libcrypto.so $out/lib/libcrypto.so.1.1
|
||||
ln -s $out/lib/libcairo.so $out/lib/libcairo.so.2
|
||||
ln -s $out/lib/libgit2.so $out/lib/libgit2.so.1.1
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://gtoolkit.com";
|
||||
description = "The GlamorousToolkit Development Environment";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.akgrant43 ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
})
|
||||
@@ -682,6 +682,8 @@ with pkgs;
|
||||
|
||||
glade = callPackage ../development/tools/glade { };
|
||||
|
||||
glamoroustoolkit = callPackage ../development/tools/glamoroustoolkit { };
|
||||
|
||||
gobble = callPackage ../tools/X11/gobble { };
|
||||
|
||||
goda = callPackage ../development/tools/goda { };
|
||||
|
||||
Reference in New Issue
Block a user