{ description = "OpenVPN with tunnelblick patches applied."; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; tunnelblick = { url = "github:/Tunnelblick/Tunnelblick?ref=v4.0.1"; flake = false; }; }; outputs = { self, nixpkgs, flake-utils, tunnelblick }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlays.${system}.default ]; }; in { packages.default = self.packages.${system}.openvpn-tunnelblick; packages.openvpn-tunnelblick = pkgs.openvpn-tunnelblick; overlays.default = self.overlays.${system}.openvpn-tunnelblick; overlays.openvpn-tunnelblick = (self: super: { openvpn-tunnelblick = super.openvpn.overrideAttrs (old: { patches = (old.patches or [ ]) ++ [ "${tunnelblick}/third_party/sources/openvpn/openvpn-2.6.9/patches/02-tunnelblick-openvpn_xorpatch-a.diff" "${tunnelblick}/third_party/sources/openvpn/openvpn-2.6.9/patches/03-tunnelblick-openvpn_xorpatch-b.diff" "${tunnelblick}/third_party/sources/openvpn/openvpn-2.6.9/patches/04-tunnelblick-openvpn_xorpatch-c.diff" "${tunnelblick}/third_party/sources/openvpn/openvpn-2.6.9/patches/05-tunnelblick-openvpn_xorpatch-d.diff" "${tunnelblick}/third_party/sources/openvpn/openvpn-2.6.9/patches/06-tunnelblick-openvpn_xorpatch-e.diff" ]; }); }); }); }