Add Nix support #62
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -8,3 +8,4 @@ out | ||||
| *.swo | ||||
| *.swp | ||||
| .zsign_cache/ | ||||
| result | ||||
|   | ||||
							
								
								
									
										68
									
								
								default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								default.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| # How to upgrade to a newer version | ||||
| # - Comment `src.hash` | ||||
| # - Change `version` | ||||
| # - Run `$ nix build` | ||||
| # This will fetch the source code | ||||
| # Since `hash` is not provided, nix will stop building and throw an error: | ||||
| # | ||||
| # error: hash mismatch in fixed-output derivation '/nix/store/fghi3ljs6fhz8pwm3dh73j5fwjpq5wbz-source.drv': | ||||
| #          specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= | ||||
| #             got:    sha256-+uthA1w8CmZfW+WOK9wYGl2fUl/k10ufOc8W+Pwa9iQ= | ||||
| # error: 1 dependencies of derivation '/nix/store/imcwsw5r74vkd8r0qa2k7cys2xfgraaz-tildefriends-0.0.18.drv' failed to build | ||||
| # | ||||
| # - Change `src.hash` to the new one, ie `sha256-+uthA1w8CmZfW+WOK9wYGl2fUl/k10ufOc8W+Pwa9iQ=` | ||||
| # - Uncomment `src.hash` | ||||
| # - Build again, this time it should work. | ||||
| # - Check the release notes, if there's a new dependency or a change to `GNUMakefile`, this file might need to be changed too. | ||||
| # For more details, contact tasiaiso @ https://tilde.club/~tasiaiso/ | ||||
| # | ||||
| # WARNING: currently it is pinned to `47838d5e482cb4aac40190fa0414f08b8cf94d40`. I couldn't get v0.0.18 to work for some reason. | ||||
| # I'll change this in the next release - tasiaiso | ||||
| { | ||||
|   pkgs ? import <nixpkgs> {}, | ||||
|   lib ? import <nixpkgs/lib>, | ||||
| }: | ||||
| pkgs.stdenv.mkDerivation rec { | ||||
|   pname = "tildefriends"; | ||||
|   version = "0.0.19"; | ||||
|  | ||||
|   src = pkgs.fetchFromGitea { | ||||
|     domain = "dev.tildefriends.net"; | ||||
|     owner = "cory"; | ||||
|     repo = "tildefriends"; | ||||
|     # rev = "v${version}"; | ||||
|     rev = "47838d5e482cb4aac40190fa0414f08b8cf94d40"; | ||||
|     hash = "sha256-mb5KYvWPIqgV64FOaXKHm2ownBJiiSRtdH8+YWiXwvE="; # 47838d5e482cb4aac40190fa0414f08b8cf94d40 | ||||
|     fetchSubmodules = true; | ||||
|   }; | ||||
|  | ||||
|   nativeBuildInputs = with pkgs; [ | ||||
|     gnumake | ||||
|     openssl | ||||
|     which | ||||
|   ]; | ||||
|  | ||||
|   buildInputs = with pkgs; [ | ||||
|     openssl | ||||
|     which | ||||
|   ]; | ||||
|  | ||||
|   buildPhase = '' | ||||
|     make -j $NIX_BUILD_CORES release | ||||
|   ''; | ||||
|  | ||||
|   installPhase = '' | ||||
|     mkdir -p $out/bin | ||||
|     cp -r out/release/tildefriends $out/bin | ||||
|   ''; | ||||
|  | ||||
|   doCheck = false; | ||||
|  | ||||
|   meta = with pkgs; { | ||||
|     homepage = "https://tildefriends.net"; | ||||
|     description = "Make apps and friends from the comfort of your web browser."; | ||||
|     mainProgram = "tildefriends"; | ||||
|     license = with lib.licenses; [mit]; | ||||
|     platforms = lib.platforms.all; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										61
									
								
								flake.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								flake.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| { | ||||
|   "nodes": { | ||||
|     "flake-utils": { | ||||
|       "inputs": { | ||||
|         "systems": "systems" | ||||
|       }, | ||||
|       "locked": { | ||||
|         "lastModified": 1710146030, | ||||
|         "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "numtide", | ||||
|         "repo": "flake-utils", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "nixpkgs": { | ||||
|       "locked": { | ||||
|         "lastModified": 1715395895, | ||||
|         "narHash": "sha256-DreMqi6+qa21ffLQqhMQL2XRUkAGt3N7iVB5FhJKie4=", | ||||
|         "owner": "NixOS", | ||||
|         "repo": "nixpkgs", | ||||
|         "rev": "71bae31b7dbc335528ca7e96f479ec93462323ff", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "NixOS", | ||||
|         "ref": "nixos-23.11", | ||||
|         "repo": "nixpkgs", | ||||
|         "type": "github" | ||||
|       } | ||||
|     }, | ||||
|     "root": { | ||||
|       "inputs": { | ||||
|         "flake-utils": "flake-utils", | ||||
|         "nixpkgs": "nixpkgs" | ||||
|       } | ||||
|     }, | ||||
|     "systems": { | ||||
|       "locked": { | ||||
|         "lastModified": 1681028828, | ||||
|         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||
|         "type": "github" | ||||
|       }, | ||||
|       "original": { | ||||
|         "owner": "nix-systems", | ||||
|         "repo": "default", | ||||
|         "type": "github" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "root": "root", | ||||
|   "version": 7 | ||||
| } | ||||
							
								
								
									
										37
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								flake.nix
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| { | ||||
|   description = "Tilde Friends is a platform for making, running, and sharing web applications."; | ||||
|  | ||||
|   inputs = { | ||||
|     nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; | ||||
|     flake-utils.url = "github:numtide/flake-utils"; | ||||
|   }; | ||||
|  | ||||
|   outputs = { | ||||
|     self, | ||||
|     nixpkgs, | ||||
|     flake-utils, | ||||
|   }: | ||||
|     flake-utils.lib.eachDefaultSystem (system: let | ||||
|         pkgs = import nixpkgs { | ||||
|           inherit system; | ||||
|         }; | ||||
|       in rec | ||||
|       { | ||||
|         # Nix formatter, run using `$ nix fmt` | ||||
|         formatter = pkgs.alejandra; | ||||
|  | ||||
|         # Exports the tildefriends package | ||||
|         # Build with `$ nix build` | ||||
|         packages.default = pkgs.callPackage ./default.nix {}; | ||||
|  | ||||
|         # Creates a shell with the necessary dependencies | ||||
|         # Enter using `$ nix develop` | ||||
|         devShell = pkgs.mkShell { | ||||
|           buildInputs = with pkgs; [ | ||||
|             openssl | ||||
|             llvmPackages_17.clang-unwrapped | ||||
|             unzip | ||||
|           ]; | ||||
|         }; | ||||
|       }); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user