-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issue getting new package to work with command #284
Comments
The symlinkJoin is missing a version, try setting that |
What do you mean about that, That's something from nixos? I don't control that. |
|
i assume you'd likely need to set |
hm I got the same error
|
which version? |
Line 154 in 7dd0e44
|
Let me send an updated package since I've made some of the suggested changes { lib
, stdenv
, fetchFromGitHub
, fetchzip
, premake5
, writeShellScriptBin
, runCommandLocal
, symlinkJoin
, imagemagick
, bzip2
, curl
, flac
, fmt_9
, freetype
, libevent
, libgit2
, libGL
, libGLU
, libjpeg
, libpng
, libvorbis
, libX11
, libxkbcommon
, libXxf86vm
, lua5_3
, mono
, nlohmann_json
, noto-fonts-cjk-sans
, openal
, SDL2
, sqlite
, wayland
, egl-wayland
, covers_url ? "https://pics.projectignis.org:2096/pics/cover/{}.jpg"
, fields_url ? "https://pics.projectignis.org:2096/pics/field/{}.png"
, font ? false
, # TODO
# While ygoprodeck has higher quality images, "spamming" of their api results in a ban.
# Thats why this link can change since it's compiled into the program, However it will
# download assets when needed so it is unlikely to get banned. Unless you search the
# card list with no filters of any kind. When testing use ProjectIgnis' website instead.
pics_url ? "https://images.ygoprodeck.com/images/cards/{}.jpg"
,
}:
let
edopro-version = "40.1.4";
assets = {
pname = "assets";
version = edopro-version;
src = fetchzip {
url = "https://github.com/ProjectIgnis/edopro-assets/releases/download/${edopro-version}/ProjectIgnis-EDOPro-${edopro-version}-linux.tar.gz";
sha256 = "sha256-vZhkWJ1ZoNEwdc5kM1S0hyXnWmupiTOanCi9DCuqw/k=";
};
};
irrlicht-edopro = stdenv.mkDerivation {
pname = "irrlicht-edopro";
version = "1.9-custom";
src = fetchFromGitHub {
owner = "edo9300";
repo = "irrlicht1-8-4";
# Found by getting the newest version before EDOPro's tagged release comes out.
rev = "7edde28d4f8c0c3589934c398a3a441286bb7c22";
hash = "sha256-Q2tNiYE/enZPqA5YhUe+Tkvmqtmmz2E0OqTRUDnt+UA=";
};
buildInputs = [
libGLU
libX11
libxkbcommon
libXxf86vm
wayland
];
enableParallelBuilding = true;
buildFlags = "NDEBUG=1";
makeFlags = "-C source/Irrlicht";
installPhase = ''
mkdir -p $out/{bin,include}
cp lib/Linux/libIrrlicht.a $out/bin
cp -r include/* $out/include
'';
};
ocgcore = stdenv.mkDerivation rec {
pname = "ygopro-core";
# Tied to the tagged version of EDOPro's git module.
version = "4a872ad7686e0d00ee4c1c051e90fc07c40613d4";
src = fetchFromGitHub {
owner = "edo9300";
repo = pname;
rev = version;
hash = "sha256-s3DOHrZilRUy6fbXObNiLRinxpdHY99vDOmS/ZfOI78=";
fetchSubmodules = true;
};
nativeBuildInputs = [ premake5 ];
buildInputs = [ lua5_3 ];
preBuild = ''
premake5 gmake2
'';
enableParallelBuilding = true;
buildFlags = "verbose=true config=release ocgcore";
makeFlags = "-C build";
installPhase = ''
mkdir -p $out/bin
cp bin/release/libocgcore.a $out/bin
'';
};
edopro = stdenv.mkDerivation rec {
pname = "edopro";
version = edopro-version;
src = fetchFromGitHub {
owner = "edo9300";
repo = pname;
rev = "c713e23491a1e55c9d8e91257e5f2b5873696b9b";
hash = "sha256-2E1cjG0FONu/fbr67/3qRCKQ1W/wPznClEWsMa1FAzo=";
fetchSubmodules = true;
};
nativeBuildInputs = [ premake5 ];
buildInputs = [
bzip2
curl
flac
fmt_9
freetype
irrlicht-edopro
libevent
libgit2
libjpeg
libpng
libvorbis
nlohmann_json
openal
SDL2
sqlite
];
# nixpkgs' gcc stack currently appears to not support LTO
postPatch = ''
sed -i '/LinkTimeOptimization/d' ./premake5.lua
'';
# ${lib.optionals font "--bundled-font=${font}"}
# ${lib.optionals font [ "--bundled-font=${noto-fonts-cjk-sans}/share/fonts/opentype/noto-cjk/NotoSansCJK-VF.otf.ttc" ] }
preBuild = ''
premake5 gmake2 \
--covers=\"${covers_url}\" \
--fields=\"${fields_url}\" \
--no-core \
--pics=\"${pics_url}\" \
--prebuilt-core="${ocgcore}/bin" \
--sound=sfml
'';
enableParallelBuilding = true;
CXXFLAGS = "-include cstdint";
LDFLAGS = "-I ${irrlicht-edopro}/include -L ${irrlicht-edopro}/bin";
buildFlags = "verbose=true config=release_x64 ygoprodll";
makeFlags = "-C build";
installPhase = ''
mkdir -p $out/bin
cp bin/x64/release/ygoprodll $out/bin
'';
};
edopro-script =
let
assetsToCopy = lib.concatStringsSep "," [
# Needed if we download files from ProjectIgnis' website or any https only website.
"cacert.pem"
"config"
"deck"
"COPYING.txt"
"expansions"
"lflists"
"notices"
"puzzles"
"fonts"
"script"
"skin"
"sound"
"textures"
"WindBot"
];
in
writeShellScriptBin "EDOPro" ''
set -eu
EDOPRO_DIR="''${XDG_DATA_HOME:-$HOME/.local/share}/edopro"
if [ ! -d $EDOPRO_DIR ]; then
mkdir -p $EDOPRO_DIR
cp -r ${assets.src}/{${assetsToCopy}} $EDOPRO_DIR
find $EDOPRO_DIR -type d -exec chmod u=rwx,go-rwx {} +
find $EDOPRO_DIR -type f -exec chmod u=rw,go-rwx {} +
rm $EDOPRO_DIR/config/io.github.edo9300.EDOPro.desktop.in
fi
export PATH=PATH:'${lib.makeBinPath [ mono ]}';
export LD_LIBRARY_PATH='${
lib.makeLibraryPath [
libGL
libX11
libxkbcommon
libXxf86vm
sqlite
wayland
egl-wayland
]
}';
exec ${edopro}/bin/ygoprodll -C $EDOPRO_DIR $@
'';
edopro-desktop = runCommandLocal "io.github.edo9300.EDOPro.desktop" { } ''
cp ${assets.src}/config/io.github.edo9300.EDOPro.desktop.in desktop-template
sed '/Path=/d' -i desktop-template
sed 's/Exec=.*/Exec=EDOPro/' -i desktop-template
sed 's/Icon=.*/Icon=EDOPro/' -i desktop-template
install -D desktop-template $out/share/applications/io.github.edo9300.EDOPro.desktop
'';
in
symlinkJoin {
name = "edopro-application-${edopro-version}";
version = edopro-version;
paths = [
edopro
edopro-script
edopro-desktop
];
postBuild = ''
mkdir -p $out/share/icons/hicolor/256x256/apps/
${imagemagick}/bin/magick \
${assets.src}/textures/AppIcon.png \
-resize 256x256 \
$out/share/icons/hicolor/256x256/apps/EDOPro.png
'';
meta = with lib; {
description = "The bleeding-edge automatic duel simulator, a fork of the YGOPro client.";
homepage = "https://projectignis.github.io";
changelog = "https://github.com/edo9300/edopro/releases";
license = licenses.agpl3Plus;
maintainers = with maintainers; [
redhawk
tlater
];
mainprogram = "edopro";
platforms = [ "x86_64-linux" ];
};
} |
Seems like Once that error is fixed, the next error will be |
I'm not the best with nix but what I used to run nix update was @TLATER was the person who wrote these scripts, I considered adding a custom script that was half finished but I learned about this project and rather use someone else's maintained project with backing than my own. |
They definitely could be, they're largely separate because it was easier to try stuff out during development without rebuilding the entire application every time I made a mistake in a shell script. Probably still preferable to keep them separate for maintenance/future improvements (that script will likely need them) if possible, though. |
This is my package below
I believe my problem is likely the git module called ocgcore, but I'm unsure. If theres a way I can interop with nix update to help it I'd like to know to.
The text was updated successfully, but these errors were encountered: