mirror of
https://github.com/proxytunnel/proxytunnel.git
synced 2026-01-23 02:34:59 +00:00
Merge pull request #93 from zSuperx/nix-flake-basic-support
Nix flake basic support
This commit is contained in:
commit
cd358101fb
4 changed files with 174 additions and 0 deletions
49
INSTALL.md
49
INSTALL.md
|
|
@ -10,6 +10,55 @@ to build simply run `make` and optionally `make install`.
|
|||
If you manually want to install, copy proxytunnel to /usr/local/bin
|
||||
and optionally the manual-page from the debian-subdirectory to your manpath
|
||||
|
||||
# Nix Flakes
|
||||
|
||||
> NOTE: The Nix Flake installation currently only supports the `x86_64-linux` platform, and has not been tested on other architectures.
|
||||
|
||||
A simple Nix Flake is included to allow for use via flake inputs. To create a temporary Nix Shell with access to the `proxytunnel` binary, you can run the command:
|
||||
```console
|
||||
nix develop github:proxytunnel/proxytunnel
|
||||
```
|
||||
If you instead want to include it as a flake input, the following `flake.nix` shows how to do so:
|
||||
```nix
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
# Add proxytunnel as an input
|
||||
proxytunnel.url = "github:proxytunnel/proxytunnel";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
proxytunnel,
|
||||
...
|
||||
}: let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
system = "x86_64-linux";
|
||||
overlays = [
|
||||
# Add proxytunnel's default features to your nixpkgs
|
||||
proxytunnel = proxytunnel.overlays.default;
|
||||
|
||||
# For a full list of override options, see `nix/proxytunnel.nix`
|
||||
];
|
||||
};
|
||||
in {
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
packages = [
|
||||
# Make the `proxytunnel` binary available in a Nix Shell
|
||||
# The above overlay adds it to nixpkgs. Without the overlay, use proxytunnel.packages.${system}.default
|
||||
pkgs.proxytunnel
|
||||
|
||||
# And include any other packages as desired...
|
||||
pkgs.gcc
|
||||
# ...
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
# msys2
|
||||
|
||||
To install msys2 with [chocolatey](https://chocolatey.org/install):
|
||||
|
|
|
|||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1743583204,
|
||||
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1743296961,
|
||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
33
flake.nix
Normal file
33
flake.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
description = "Basic flake that provides proxytunnel as a package or as a binary in a nix shell";
|
||||
|
||||
inputs = {
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
};
|
||||
|
||||
outputs = inputs @ {flake-parts, ...}:
|
||||
flake-parts.lib.mkFlake {inherit inputs;} {
|
||||
# TODO: Add support for more systems once checked.
|
||||
systems = ["x86_64-linux"];
|
||||
|
||||
imports = [inputs.flake-parts.flakeModules.easyOverlay];
|
||||
|
||||
perSystem = {
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
overlayAttrs = {
|
||||
inherit (config.packages) proxytunnel;
|
||||
};
|
||||
|
||||
packages.proxytunnel = pkgs.callPackage ./nix/proxytunnel.nix {};
|
||||
packages.default = config.packages.proxytunnel;
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = [config.packages.default];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
31
nix/proxytunnel.nix
Normal file
31
nix/proxytunnel.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
gnu-system ? true,
|
||||
set-proc-title ? true,
|
||||
pkgs,
|
||||
}: let
|
||||
optflags = "-DUSE_SSL ${
|
||||
if gnu-system
|
||||
then "-DHAVE_GETOPT_LONG"
|
||||
else ""
|
||||
} ${
|
||||
if set-proc-title
|
||||
then "-DSETPROCTITLE -DSPT_TYPE=2"
|
||||
else ""
|
||||
}";
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "proxytunnel";
|
||||
version = "1.12.3";
|
||||
src = ./..;
|
||||
|
||||
buildInputs = [pkgs.openssl];
|
||||
|
||||
buildPhase = ''
|
||||
make OPTFLAGS="${optflags}"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp ./proxytunnel $out/bin
|
||||
'';
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue