Skip to content

Commit 8eb78cb

Browse files
committed
shell.nix battle-tested
1 parent bfe6923 commit 8eb78cb

File tree

1 file changed

+50
-39
lines changed

1 file changed

+50
-39
lines changed

shell.nix

Lines changed: 50 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@ stdenv.mkDerivation {
1515
cmake
1616
pkg-config
1717
git
18-
rustc
19-
cargo
20-
autoPatchelfHook
18+
#rustc
19+
#cargo
20+
rust_1_91.packages.stable.rustc
21+
rust_1_91.packages.stable.cargo
2122
];
2223

2324
buildInputs = [
2425
python312
26+
#python314FreeThreading
27+
#python314
2528
nasm
2629
libxml2
2730
libxslt
@@ -35,51 +38,59 @@ stdenv.mkDerivation {
3538
jdk8
3639

3740
# pyside6 deps for binary patching
38-
speechd
39-
cups
40-
gdk-pixbuf
41-
cairo
42-
at-spi2-atk
43-
pango
44-
gtk3
45-
xcb-util-cursor
46-
libpq
47-
mysql80
48-
unixODBC
49-
pcsclite
50-
libpulseaudio
51-
alsa-lib
52-
nspr
53-
nss
54-
xorg.libXrandr
55-
xorg.libXdamage
56-
xorg.libxkbfile
57-
kdePackages.qtwayland
58-
kdePackages.qt3d
41+
# speechd
42+
# cups
43+
# gdk-pixbuf
44+
# cairo
45+
# at-spi2-atk
46+
# pango
47+
# gtk3
48+
# xcb-util-cursor
49+
# libpq
50+
# mysql80
51+
# unixODBC
52+
# pcsclite
53+
# libpulseaudio
54+
# alsa-lib
55+
# nspr
56+
# nss
57+
# xorg.libXrandr
58+
# xorg.libXdamage
59+
# xorg.libxkbfile
60+
# kdePackages.qtwayland
61+
# kdePackages.qt3d
5962

6063
# needed for pure environments
6164
which
6265
];
6366

64-
autoPatchelfIgnoreMissingDeps = [
65-
"libmimerapi.so"
66-
"libQt6EglFsKmsGbmSupport.so.6"
67-
];
67+
# autoPatchelfIgnoreMissingDeps = [
68+
# "libmimerapi.so"
69+
# "libQt6EglFsKmsGbmSupport.so.6"
70+
# ];
6871

6972
shellHook = ''
70-
export LD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.cc zstd glib libGL]}:$LD_LIBRARY_PATH"
73+
#export LD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.cc zstd glib libGL]}:$LD_LIBRARY_PATH"
7174
if ! [ -d ".venv" ]; then
7275
python -m venv .venv
73-
source .venv/bin/activate
74-
NIX_ENFORCE_PURITY= ./extremely-simple-setup.sh
75-
else
76-
source .venv/bin/activate
77-
fi
78-
if [ -e ".venv/fixed" ]; then
79-
echo "If you encounter issues related to shared object loading, remove the file '$VIRTUAL_ENV/fixed' and restart the shell."
80-
else
81-
autoPatchelf $VIRTUAL_ENV/lib
82-
touch .venv/fixed
76+
VIRTUAL_ENV="$(realpath .venv)"
77+
MY_NIX_LD="/${stdenv.hostPlatform.libDir}/${builtins.unsafeDiscardStringContext ( lib.last (lib.splitString "/" stdenv.cc.bintools.dynamicLinker) )}"
78+
SETUP_COMMAND=()
79+
if [[ -e "$NIX_LD" ]]; then
80+
mv "$VIRTUAL_ENV/bin/python" "$VIRTUAL_ENV/bin/.python-wrapped"
81+
echo "#!/bin/sh" >>"$VIRTUAL_ENV/bin/python"
82+
echo "exec \"$MY_NIX_LD\" --argv0 \"\$0\" \"$VIRTUAL_ENV/bin/.python-wrapped\" \"\$@\"" >>"$VIRTUAL_ENV/bin/python"
83+
chmod +x "$VIRTUAL_ENV/bin/python"
84+
else
85+
SETUP_COMMAND+=("NIX_ENFORCE_PURITY=")
86+
fi
87+
SETUP_COMMAND+=('./extremely-simple-setup.sh')
88+
echo '##'
89+
echo '##'
90+
echo '## Welcome!'" You may wish to run ''${SETUP_COMMAND[@]} in order to set up your new virtualenv."
91+
echo '##'
92+
echo '##'
8393
fi
94+
source .venv/bin/activate
8495
'';
8596
}

0 commit comments

Comments
 (0)