Last active
March 21, 2026 02:04
-
-
Save rummik/6aac9ebde62a82d9ba9675566bfb5779 to your computer and use it in GitHub Desktop.
Picotron Nix package
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| lib, | |
| stdenv, | |
| requireFile, | |
| makeDesktopItem, | |
| makeWrapper, | |
| copyDesktopItems, | |
| autoPatchelfHook, | |
| unzip, | |
| xorg, | |
| libGL, | |
| SDL2, | |
| alsa-lib, | |
| udev, | |
| curl, | |
| }: | |
| let | |
| appName = "Picotron"; | |
| pname = "picotron"; | |
| version = "0.2.2"; | |
| hashes = import ./picotron_hashes.nix; | |
| fileName = archSuffix: "${pname}_${version}_${archSuffix}.zip"; | |
| platforms = rec { | |
| x86_64-linux = rec { | |
| name = fileName "amd64"; | |
| hash = if hashes ? ${name} then hashes.${name} else lib.fakeHash; | |
| }; | |
| x86_64-windows = rec { | |
| name = fileName "windows"; | |
| hash = if hashes ? ${name} then hashes.${name} else lib.fakeHash; | |
| }; | |
| aarch64-darwin = x86_64-darwin; | |
| x86_64-darwin = rec { | |
| name = fileName "osx"; | |
| hash = if hashes ? ${name} then hashes.${name} else lib.fakeHash; | |
| }; | |
| }; | |
| inherit (stdenv.hostPlatform) isLinux isDarwin isWindows; | |
| in | |
| stdenv.mkDerivation (finalAttrs: rec { | |
| inherit pname version; | |
| src = requireFile { | |
| inherit (platforms.${stdenv.hostPlatform.system}) name hash; | |
| url = meta.homepage; | |
| }; | |
| desktopItems = [ | |
| (makeDesktopItem { | |
| desktopName = appName; | |
| categories = [ "Development" "Game" ]; | |
| comment = meta.description; | |
| name = pname; | |
| exec = pname; | |
| icon = pname; | |
| }) | |
| ]; | |
| nativeBuildInputs = | |
| [ | |
| unzip | |
| ] | |
| ++ lib.optionals isLinux [ | |
| makeWrapper | |
| autoPatchelfHook | |
| copyDesktopItems | |
| ]; | |
| # libcurl doesn't get picked up otherwise | |
| appendRunpaths = lib.optionals isLinux (lib.makeLibraryPath [ | |
| curl | |
| ]); | |
| autoPatchelfLibs = lib.makeLibraryPath [ | |
| SDL2 | |
| ]; | |
| runtimeDependencies = lib.optionals isLinux [ | |
| xorg.libXrandr | |
| libGL | |
| SDL2 | |
| alsa-lib | |
| udev | |
| curl # required after 0.1.1f | |
| # wget # required prior to 0.1.1f | |
| ]; | |
| installPhase = lib.optionalString isLinux /* sh */ '' | |
| runHook preInstall | |
| install -Dm444 ./lexaloffle-picotron.png $out/share/icons/picotron.png | |
| install -Dm555 -t $out/share/picotron ./picotron ./picotron_dyn ./picotron.dat | |
| install -Dm444 -t $out/share/picotron ./*.txt | |
| mkdir -p $out/bin | |
| ln -s $out/share/picotron/picotron $out/bin/picotron | |
| runHook postInstall | |
| ''; | |
| meta = { | |
| description = "A fantasy workstation"; | |
| longDescription = '' | |
| Picotron is a Fantasy Workstation: a self-contained creative | |
| environment built for imaginary hardware. Create cute Lua apps that can | |
| be run inside Picotron as windowed userland processes, shared as | |
| cartridge files, or exported to stand-alone HTML apps. | |
| ''; | |
| homepage = "https://www.lexaloffle.com/picotron.php"; | |
| license = lib.licenses.unfree; | |
| platforms = lib.attrNames platforms; | |
| maintainers = []; | |
| sourceProvenance = [ lib.sourceTypes.binaryNativeCode ]; | |
| broken = isDarwin || isWindows; | |
| }; | |
| }) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "picotron_0.1.0_amd64.zip" = "sha256-/MhcxUSOQFxv/+JB59bEOaRqTtgQAbxpW7dlqtof7dg="; | |
| "picotron_0.1.0b_amd64.zip" = "sha256-5x1b6Jedavnw1ZlBMwRs48PCH8g3g2UI4tsDUf19zAU="; | |
| "picotron_0.1.0c_amd64.zip" = "sha256-1HvNPiItGvJ6h6B4sIF0eZcw4FCnXxoybZ89eeb2rJc="; | |
| "picotron_0.1.0d_amd64.zip" = "sha256-Wrx9FnhnqrJS5M7mTjD88NwLWvjuXNlLUlDLon+TZU8="; | |
| "picotron_0.1.0e_amd64.zip" = "sha256-1Jzc81Liin6kkruLIDXYjXaEaU/WkkBH2uaUnLmsTso="; | |
| "picotron_0.1.0f_amd64.zip" = "sha256-A36TuH4OYRPGqNz5vALfxB6t34QQg4M6fku57rMYR+M="; | |
| "picotron_0.1.0g_amd64.zip" = "sha256-s83x09TlMem6w9ii/hmkOSEQNywXgTi1m48kG3s3T5k="; | |
| "picotron_0.1.0h_amd64.zip" = "sha256-x3OWpffLCdOzZLqRobTpdFy/O3DAmTJjcOvASE1GcVI="; | |
| "picotron_0.1.1_amd64.zip" = "sha256-HjC6gwOHApW3oq5dLTaQY4W/o65QgJ4kCWA7wMEQ5FU="; | |
| "picotron_0.1.1b_amd64.zip" = "sha256-5akflBJzD08DYFxPiZNtxfAep87QqSPknPxquYdpGtg="; | |
| "picotron_0.1.1c_amd64.zip" = "sha256-+N2YvKf/cNpJ7zeKA6OC5cTrCa3hXGUhhkoT+7+aRA0="; | |
| "picotron_0.1.1d_amd64.zip" = "sha256-9Hl3m48s5NOvdBdqWDlRhnrpvCsy5JbAR0CWjvMxZ4U="; | |
| "picotron_0.1.1e_amd64.zip" = "sha256-AR9xrM9ocO8z29HVQRzzvHt+9OZ192a2tFVw+ByaDo8="; | |
| "picotron_0.1.1f_amd64.zip" = "sha256-GHhJQQ/p+/pH+5695d/V1CUQ2dTPFc3/qIudv5IGQOo="; | |
| "picotron_0.2.0_amd64.zip" = "sha256-Lq/JYb7XwC2p1F2TPDGteO4+cpM9onM39TlBPueBsBw="; | |
| "picotron_0.2.0b_amd64.zip" = "sha256-4/lpj6WM/ia2u8uRdNkFiLAe9Zq+HCDmll8MEviU7kc="; | |
| "picotron_0.2.0c_amd64.zip" = "sha256-bWyeW74xwZx6AwXziG6ITGa4B5K/x4CWuHoH1HkqtKU="; | |
| "picotron_0.2.0d_amd64.zip" = "sha256-sJmu+HrY+kI8jlytex0HLE+I0ULzSg3a8gcTkH945ds="; | |
| "picotron_0.2.0e_amd64.zip" = "sha256-rfhL3tBWF4SSDG4osg56jQjnPaSUnlD8aLCCkVq9aFA="; | |
| "picotron_0.2.0f_amd64.zip" = "sha256-LLWd0Q1rOIovpmNVzZ7XflHgMq0qwxG2F1XdM4zkNZ0="; | |
| "picotron_0.2.0g_amd64.zip" = "sha256-L0rHL9YB3GbccEL0lhpaSGX9aYH2I6dInrB6wFZepBA="; | |
| "picotron_0.2.0h_amd64.zip" = "sha256-9OqWUg9csuqxkEpwaUCGFmo1RydfbsDYivwGHmMbkyw="; | |
| "picotron_0.2.0h3_amd64.zip" = "sha256-TxGrLJJyVZZWS5Ox0xq0swtafT2FrZsnrpGWAv68ttk="; | |
| "picotron_0.2.1_amd64.zip" = "sha256-tEgcgQygqov4tuiVjVqowXmtIc78siVlVVmDQGUFTg4="; | |
| "picotron_0.2.1b_amd64.zip" = "sha256-fSg7KN+AX9v2u7/tOTvE29evF0dKPzS5aluHBlF0dpU="; | |
| "picotron_0.2.1c_amd64.zip" = "sha256-z+0wFolB49OpnZuFXN4eVs2qmN+43LUnJhuJYAvRD64="; | |
| "picotron_0.2.1d_amd64.zip" = "sha256-JmRNYVG6aWTS7c10gOVY0OBK26ybti5d8tgnadAO+oY="; | |
| "picotron_0.2.1e_amd64.zip" = "sha256-JpDGwVWOLvvSwJK6LMGCsxp60hjcWMcHb2aQdeenqpk="; | |
| "picotron_0.2.2_amd64.zip" = "sha256-ixrfWGaCfPGmHlph2Gfrpj1CtXg5QXHjU+UqirPjryY="; | |
| "picotron_0.2.2b_amd64.zip" = "sha256-QLdgym7C36NHoZVx7AbMn4pKZ67xcYNStJVi5g8m4Js="; | |
| "picotron_0.3.0_amd64.zip" = "sha256-2sNFioebw252eGbU9X0XsZGAPs9vYyCsFXnLXir9V0A="; | |
| "picotron_0.1.0_osx.zip" = "sha256-pyMeGpb0GzPe+DDu7oO6z+/+unh8VMC76RgMvfxy23k="; | |
| "picotron_0.1.0b_osx.zip" = "sha256-OgT222jjfPh3NuqXIzDhR3e6ef7flUgcJo0AZqXXnY8="; | |
| "picotron_0.1.0c_osx.zip" = "sha256-CKGpYC43D5PhuKUkBAlWqLcBLwcFVWovwA39gg0xSz0="; | |
| "picotron_0.1.0d_osx.zip" = "sha256-HT2ZaZDx1qlpV8jDlgavOfL1GYCt8MjtukNJv1y/NLo="; | |
| "picotron_0.1.0e_osx.zip" = "sha256-53H0zys3KofAEBnBAK6h/ZrZBsYf8dRdOeeI+V55C60="; | |
| "picotron_0.1.0f_osx.zip" = "sha256-rkACpDMdYpg2EBuU5TVgFxMEB2PnvdvbtRSWBDD+0u4="; | |
| "picotron_0.1.0g_osx.zip" = "sha256-GTbzR1nCNms+PBZdTWHoWJVrYqAbwMIMEg3eUiu3RRs="; | |
| "picotron_0.1.0h_osx.zip" = "sha256-uzqtQkTW9vvsNtr5V+i/ME0JLUErO+SfqMUBpuLs5Q0="; | |
| "picotron_0.1.1_osx.zip" = "sha256-imD21wX3GSROAvUUVMSsOrXqq3pmliafyFJRc4yK3aI="; | |
| "picotron_0.1.1b_osx.zip" = "sha256-YbX1AnHVAJ0+MmbVqZ3S2FcjgnUFByQ4Y2pUX6eM26o="; | |
| "picotron_0.1.1c_osx.zip" = "sha256-yuoWhnkbR8BPe97FI5kRDA4nXKnQ08r96IOtZybYBlk="; | |
| "picotron_0.1.1d_osx.zip" = "sha256-wzA9eWTGeZzI7vH2zirlpOsbQAPaT1GLvbptcJ1fDOQ="; | |
| "picotron_0.1.1e_osx.zip" = "sha256-iLNLAuWQTrJoDqR4TtlI1ab5MAAidyHrmcGtG2AyyHo="; | |
| "picotron_0.1.1f_osx.zip" = "sha256-td/bOKjrCXV+JLcavegmLe6xf+bnJB1JauejgeTM4KE="; | |
| "picotron_0.2.0_osx.zip" = "sha256-GpmO+Dj17rWzjg6FfnzQ6VVATO6zOHNT4EFVFavaNG0="; | |
| "picotron_0.2.0b_osx.zip" = "sha256-yMVbORN7sRlCwSXi4jQKzcPU98AR8PhxWlaLUiHBRrI="; | |
| "picotron_0.2.0c_osx.zip" = "sha256-3+xntRZVWmAjdWG/4E1R+HjX3jmDvOnG0bm5yy9LJG4="; | |
| "picotron_0.2.0d_osx.zip" = "sha256-wDItp3IDHlQuJRDOMu8EF/IknuWmONvlXmERQbM6z1c="; | |
| "picotron_0.2.0e_osx.zip" = "sha256-NYcxPKCvrKS0FYGmYdl49j6GdAONlzLe1BWiWBo23q8="; | |
| "picotron_0.2.0f_osx.zip" = "sha256-UO6FStHELNEYh0TVXNu9EN1S3AZ7xsHexWPVt5r6UFo="; | |
| "picotron_0.2.0g_osx.zip" = "sha256-F73Qv6srW6aIsU/p6L8J+KF2XZnBwlQEF0QMD/QArpw="; | |
| "picotron_0.2.0h_osx.zip" = "sha256-JuVW+snIJ+13VjkDGA/gNYcSZKz6VNtGDCZwvgT6p0o="; | |
| "picotron_0.2.0h3_osx.zip" = "sha256-cxzrKe9zv4rjI6M6XrH4/2YkKK+4kjgXFUBDpT7WTlc="; | |
| "picotron_0.2.1_osx.zip" = "sha256-F1ACaXnMdueOYshMU3rR79hNxQpVJa9w5orhJk6K3Q4="; | |
| "picotron_0.2.1b_osx.zip" = "sha256-PZMJOfI+MTKfu0suzvW1Tsn69FYVLuSTwzdbCd1RR6o="; | |
| "picotron_0.2.1c_osx.zip" = "sha256-f5tPNHaCfp10DOnc3NsA0kw1/8AuhBmjDjvyx4ysoCQ="; | |
| "picotron_0.2.1d_osx.zip" = "sha256-GTD3SbMicns6i5Ikv8qgNonpu4yg1Kypj4LdcLscqUs="; | |
| "picotron_0.2.1e_osx.zip" = "sha256-mS3uQl7J0Jh8QvNQBRLPp6a6jGKgVhJXjSoPnTt5yFQ="; | |
| "picotron_0.2.2_osx.zip" = "sha256-TEhYtiH6XZ/gHbMr8ycgRqe4vV8okJw+eKlNI8D0NRY="; | |
| "picotron_0.2.2b_osx.zip" = "sha256-wskY4Yde+hyEzu2ZI5HHb5zjHU5itYczAoCIUAOzDJg="; | |
| "picotron_0.3.0_osx.zip" = "sha256-bb7FLFbAnvMNfNKTQRjFY9p+Ea/2oj6YHgKsua6bqw0="; | |
| "picotron_0.1.0_windows.zip" = "sha256-PyuneEQIMRhbskay87OnCjGtG+XC3SF6dFjiGQva1F8="; | |
| "picotron_0.1.0b_windows.zip" = "sha256-ofry5ftHQCFT6tk7fVU8RKuxboy5RJa+2DQjXd+uvw0="; | |
| "picotron_0.1.0c_windows.zip" = "sha256-bzhtz3X/2XUnNwPFXQSZw4B1ncpqDDZZ8CgOSy+Uy+k="; | |
| "picotron_0.1.0d_windows.zip" = "sha256-orQtVIka5j7WfQ4Dpsg8n8v1SF4tpanXlNUOZnKh5uk="; | |
| "picotron_0.1.0e_windows.zip" = "sha256-RcpeU/x8b1BjUiU//TIlq66yO5sxbSkmg75VTpvjZgI="; | |
| "picotron_0.1.0f_windows.zip" = "sha256-RnRR3uWoK6FLrl9S/OBEH1/n1jp/PD/Mm8RzIHgmmK8="; | |
| "picotron_0.1.0g_windows.zip" = "sha256-5OE2C1MJBaCnkgxnGPNB4k/AC4gx4d9r9/FfSM62Qi0="; | |
| "picotron_0.1.0h_windows.zip" = "sha256-NZ5C5A74WDSsQDFECIw9uwx5E3a8IgSFjgM3egJkdaA="; | |
| "picotron_0.1.1_windows.zip" = "sha256-uoycXolFkw02L0xYhh8SZ3IVMs7fJOpdJEsXfIynQYY="; | |
| "picotron_0.1.1b_windows.zip" = "sha256-NU54idPNE1VLv8CIOnIr5b7N+aj0sLa8FU98jRRQVNA="; | |
| "picotron_0.1.1c_windows.zip" = "sha256-HqlAhFe7nPmVzasmfqAWmLoo91vpZwM+VMHS841s6OU="; | |
| "picotron_0.1.1d_windows.zip" = "sha256-Rp1F6iaM9f1hY3szY93QH3U1mWYEmJFs6wgodDi+7Tg="; | |
| "picotron_0.1.1e_windows.zip" = "sha256-5gmTZET9tZ+gk/Nl6fQtcDXN6Uqu2WGU374ywXW9qXA="; | |
| "picotron_0.1.1f_windows.zip" = "sha256-sDM+s2SYI0dyczf8VXLV8dBXYqGtQYn7n4zus1FCgxc="; | |
| "picotron_0.2.0_windows.zip" = "sha256-s/lEi+6//wZ88yt2dE1GkUI11G74iokuIuFBITQDMN0="; | |
| "picotron_0.2.0b_windows.zip" = "sha256-LG62PTY6nw2W5rzSZLqXv8LdB0nXqqobTPzuyFiZLSQ="; | |
| "picotron_0.2.0c_windows.zip" = "sha256-b/xb403CxUr8Sixcxmmzmnxd5n/Mq6Wbt0pfn7z009c="; | |
| "picotron_0.2.0d_windows.zip" = "sha256-gFXE2y/ter9YJ7Vruafea3z/FCUiMMqP75iw5TWYgTg="; | |
| "picotron_0.2.0e_windows.zip" = "sha256-ZQfXetN2W7yVag+wbuTW9pR8XH6xDVFTIF1zK4u2Yx8="; | |
| "picotron_0.2.0f_windows.zip" = "sha256-3p8xCp5qSga5MirhtSH9yJD3AYV4jKD7OAdXzh19FJI="; | |
| "picotron_0.2.0g_windows.zip" = "sha256-fCBzIqc42siu7p83x8xKfhX+SGe1X0CSmSiqlWxcpz0="; | |
| "picotron_0.2.0h_windows.zip" = "sha256-6f8cmewQlghm3kVAeZ9J3TnYNZXX3VCvCOi7cxqo6VM="; | |
| "picotron_0.2.0h3_windows.zip" = "sha256-fnfDglMXFrL93vNECTpxxrcfiEleU42zjub7AB9qa4k="; | |
| "picotron_0.2.1_windows.zip" = "sha256-7+GKMk/HlW3Arub9YflwAoDDn3NhdXxt+DCEMd7TQ6s="; | |
| "picotron_0.2.1b_windows.zip" = "sha256-m4ya/BUKG7lGy40yNkceV2iA2+Mwhzr8xwE/FOh8lwo="; | |
| "picotron_0.2.1c_windows.zip" = "sha256-5olfj+F98Eya/oSk9H5lLa4EKK2udRqaxCjqwANIlgs="; | |
| "picotron_0.2.1d_windows.zip" = "sha256-8Nl/bDsTIaTX97wULbcdpkj4HjpE2cdcmnW+R4XU9Ek="; | |
| "picotron_0.2.1e_windows.zip" = "sha256-4IlLX5j9pig1IHUZTWOfN/L6ot4fUpil3N3+8GVvaMY="; | |
| "picotron_0.2.2_windows.zip" = "sha256-9N4PpZoUvaykVeZWEjY01wrmE71rrbS6IFBeoT7A3XM="; | |
| "picotron_0.2.2b_windows.zip" = "sha256-qUKLjcQqNZvRGShSJ7Rt1Fbv1eRRF4nuNEqDehVYXs4="; | |
| "picotron_0.3.0_windows.zip" = "sha256-dR6eJp+94BSxvo/ZHF3VOD2jkR6mZQe28xp/qYntWVk="; | |
| "picotron_0.2.0e_raspi.zip" = "sha256-bcTyIQ4+uUrS8sNopsFD8Gc8O3msSkTWPd0LTUHdYv0="; | |
| "picotron_0.2.0f_raspi.zip" = "sha256-1VVxAoaRT0/+xSms4HAaRYYZZeliUeqB0Aob7l1gsMg="; | |
| "picotron_0.2.0g_raspi.zip" = "sha256-FWZ81CbLgr23v+BaN/nzLNalwyM0aNh+Csg7uUnYCrA="; | |
| "picotron_0.2.0h_raspi.zip" = "sha256-Xh8vysYTIYtOYtrYT4iP2BuBDlljgEdequkSB/OmpnI="; | |
| "picotron_0.2.0h3_raspi.zip" = "sha256-Z3Cf9f5FojSZ8lJRodtAPnjA/1rhsKd2/8TPWyr4fWs="; | |
| "picotron_0.2.1_raspi.zip" = "sha256-fwMyE094Zd8tW3ByL6uqoB3QrHZ71lwQvvw4JCcLmE0="; | |
| "picotron_0.2.1b_raspi.zip" = "sha256-tSrMispgd7/3uNIzaUP/gR0or3cJH0R1EyonLaqr7QI="; | |
| "picotron_0.2.1c_raspi.zip" = "sha256-j4YGo3y67u+H9KS7kAHScWroiDYM0vwOy2zg2cS/lw4="; | |
| "picotron_0.2.1d_raspi.zip" = "sha256-uUsHnZMYR49x6aajcKkcmSxhJ+0ft+8dwUT399PGVR4="; | |
| "picotron_0.2.1e_raspi.zip" = "sha256-ejy9SDPTzHSxFk+ScMcNy1F9poN2HqYfgX8dhxKWQa4="; | |
| "picotron_0.2.2_raspi.zip" = "sha256-InTRij0d8O+ngFwjAZTKpy+kKPzC4/GhsO9tN0//YFw="; | |
| "picotron_0.2.2b_raspi.zip" = "sha256-hxAB4l6huU/+IlXB9DDcp3FAYrttceNgoSW0lYptNpo="; | |
| "picotron_0.3.0_raspi.zip" = "sha256-9PV1gMzGhcan0CuKqLQ7ZClyMaGXj3yBUcqPMv8m3C0="; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment