commit
c3dedde930
@ -0,0 +1,84 @@ |
||||
{ config |
||||
, lib |
||||
, pkgs |
||||
, ... |
||||
}: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.routedns; |
||||
settingsFormat = pkgs.formats.toml { }; |
||||
in |
||||
{ |
||||
options.services.routedns = { |
||||
enable = mkEnableOption "RouteDNS - DNS stub resolver, proxy and router"; |
||||
|
||||
settings = mkOption { |
||||
type = settingsFormat.type; |
||||
example = literalExpression '' |
||||
{ |
||||
resolvers.cloudflare-dot = { |
||||
address = "1.1.1.1:853"; |
||||
protocol = "dot"; |
||||
}; |
||||
groups.cloudflare-cached = { |
||||
type = "cache"; |
||||
resolvers = ["cloudflare-dot"]; |
||||
}; |
||||
listeners.local-udp = { |
||||
address = "127.0.0.1:53"; |
||||
protocol = "udp"; |
||||
resolver = "cloudflare-cached"; |
||||
}; |
||||
listeners.local-tcp = { |
||||
address = "127.0.0.1:53"; |
||||
protocol = "tcp"; |
||||
resolver = "cloudflare-cached"; |
||||
}; |
||||
} |
||||
''; |
||||
description = '' |
||||
Configuration for RouteDNS, see <link xlink:href="https://github.com/folbricht/routedns/blob/master/doc/configuration.md"/> |
||||
for more information. |
||||
''; |
||||
}; |
||||
|
||||
configFile = mkOption { |
||||
default = settingsFormat.generate "routedns.toml" cfg.settings; |
||||
defaultText = "A RouteDNS configuration file automatically generated by values from services.routedns.*"; |
||||
type = types.path; |
||||
example = literalExpression ''"''${pkgs.routedns}/cmd/routedns/example-config/use-case-1.toml"''; |
||||
description = "Path to RouteDNS TOML configuration file."; |
||||
}; |
||||
|
||||
package = mkOption { |
||||
default = pkgs.routedns; |
||||
defaultText = literalExpression "pkgs.routedns"; |
||||
type = types.package; |
||||
description = "RouteDNS package to use."; |
||||
}; |
||||
}; |
||||
|
||||
config = mkIf cfg.enable { |
||||
systemd.services.routedns = { |
||||
description = "RouteDNS - DNS stub resolver, proxy and router"; |
||||
after = [ "network.target" ]; # in case a bootstrap resolver is used, this might fail a few times until the respective server is actually reachable |
||||
wantedBy = [ "multi-user.target" ]; |
||||
wants = [ "network.target" ]; |
||||
startLimitIntervalSec = 30; |
||||
startLimitBurst = 5; |
||||
serviceConfig = { |
||||
Restart = "on-failure"; |
||||
RestartSec = "5s"; |
||||
LimitNPROC = 512; |
||||
LimitNOFILE = 1048576; |
||||
DynamicUser = true; |
||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE"; |
||||
NoNewPrivileges = true; |
||||
ExecStart = "${getBin cfg.package}/bin/routedns -l 4 ${cfg.configFile}"; |
||||
}; |
||||
}; |
||||
}; |
||||
meta.maintainers = with maintainers; [ jsimonetti ]; |
||||
} |
@ -0,0 +1,119 @@ |
||||
{ lib |
||||
, stdenv |
||||
, fetchurl |
||||
, autoPatchelfHook |
||||
, dpkg |
||||
, makeWrapper |
||||
, alsa-lib |
||||
, at-spi2-atk |
||||
, at-spi2-core |
||||
, atk |
||||
, cairo |
||||
, cups |
||||
, dbus |
||||
, expat |
||||
, ffmpeg |
||||
, fontconfig |
||||
, freetype |
||||
, gdk-pixbuf |
||||
, glib |
||||
, gtk3 |
||||
, libappindicator-gtk3 |
||||
, libdbusmenu |
||||
, libdrm |
||||
, libnotify |
||||
, libpulseaudio |
||||
, libsecret |
||||
, libuuid |
||||
, libxkbcommon |
||||
, mesa |
||||
, nss |
||||
, pango |
||||
, systemd |
||||
, xdg-utils |
||||
, xorg |
||||
}: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "tidal-hifi"; |
||||
version = "4.0.0"; |
||||
|
||||
src = fetchurl { |
||||
url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${version}/tidal-hifi_${version}_amd64.deb"; |
||||
sha256 = "19gx9x3v5ywlvg5vyqgj6pghzwinby0i8isavfrix798pfr98j5z"; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ]; |
||||
|
||||
buildInputs = [ |
||||
alsa-lib |
||||
at-spi2-atk |
||||
at-spi2-core |
||||
atk |
||||
cairo |
||||
cups |
||||
dbus |
||||
expat |
||||
ffmpeg |
||||
fontconfig |
||||
freetype |
||||
gdk-pixbuf |
||||
glib |
||||
gtk3 |
||||
pango |
||||
systemd |
||||
mesa # for libgbm |
||||
nss |
||||
libuuid |
||||
libdrm |
||||
libnotify |
||||
libsecret |
||||
libpulseaudio |
||||
libxkbcommon |
||||
libappindicator-gtk3 |
||||
xorg.libX11 |
||||
xorg.libxcb |
||||
xorg.libXcomposite |
||||
xorg.libXcursor |
||||
xorg.libXdamage |
||||
xorg.libXext |
||||
xorg.libXfixes |
||||
xorg.libXi |
||||
xorg.libXrandr |
||||
xorg.libXrender |
||||
xorg.libXScrnSaver |
||||
xorg.libxshmfence |
||||
xorg.libXtst |
||||
]; |
||||
|
||||
runtimeDependencies = |
||||
[ (lib.getLib systemd) libnotify libdbusmenu xdg-utils ]; |
||||
|
||||
unpackPhase = "dpkg-deb -x $src ."; |
||||
|
||||
installPhase = '' |
||||
runHook preInstall |
||||
|
||||
mkdir -p "$out/bin" |
||||
cp -R "opt" "$out" |
||||
cp -R "usr/share" "$out/share" |
||||
chmod -R g-w "$out" |
||||
|
||||
runHook postInstall |
||||
''; |
||||
|
||||
postFixup = '' |
||||
makeWrapper $out/opt/tidal-hifi/tidal-hifi $out/bin/tidal-hifi \ |
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \ |
||||
"''${gappsWrapperArgs[@]}" |
||||
''; |
||||
|
||||
meta = with lib; { |
||||
description = "The web version of Tidal running in electron with hifi support thanks to widevine"; |
||||
homepage = "https://github.com/Mastermindzh/tidal-hifi"; |
||||
changelog = "https://github.com/Mastermindzh/tidal-hifi/releases/tag/${version}"; |
||||
license = licenses.mit; |
||||
maintainers = with maintainers; [ alternateved ]; |
||||
platforms = [ "x86_64-linux" ]; |
||||
}; |
||||
} |
@ -0,0 +1,69 @@ |
||||
diff --git a/CMake/Modules/Findhamlib.cmake b/CMake/Modules/Findhamlib.cmake
|
||||
index 1590f05..e797851 100644
|
||||
--- a/CMake/Modules/Findhamlib.cmake
|
||||
+++ b/CMake/Modules/Findhamlib.cmake
|
||||
@@ -47,7 +47,7 @@ if (NOT PC_HAMLIB_FOUND)
|
||||
|
||||
# libusb-1.0 has no pkg-config file on Windows so we have to find it
|
||||
# ourselves
|
||||
- find_library (LIBUSB NAMES usb-1.0 PATH_SUFFIXES MinGW32/dll)
|
||||
+ find_library (LIBUSB NAMES libusb-1.0 usb-1.0 PATH_SUFFIXES MinGW32/dll)
|
||||
if (LIBUSB)
|
||||
set (hamlib_EXTRA_LIBRARIES ${LIBUSB} ${hamlib_EXTRA_LIBRARIES})
|
||||
get_filename_component (hamlib_libusb_path ${LIBUSB} PATH)
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 75b80b3..7c04265 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -558,7 +558,6 @@ find_package (FFTW3 COMPONENTS double single threads REQUIRED)
|
||||
#
|
||||
# libhamlib setup
|
||||
#
|
||||
-set (hamlib_STATIC 1)
|
||||
find_package (hamlib 3 REQUIRED)
|
||||
find_program (RIGCTL_EXE rigctl)
|
||||
find_program (RIGCTLD_EXE rigctld)
|
||||
@@ -576,6 +576,7 @@ message (STATUS "hamlib_LIBRARY_DIRS: ${hamlib_LIBRARY_DIRS}")
|
||||
find_package (Qt5Widgets 5 REQUIRED)
|
||||
find_package (Qt5Multimedia 5 REQUIRED)
|
||||
find_package (Qt5PrintSupport 5 REQUIRED)
|
||||
+find_package (Qt5SerialPort 5 REQUIRED)
|
||||
|
||||
if (WIN32)
|
||||
add_definitions (-DQT_NEEDS_QTMAIN)
|
||||
@@ -849,7 +850,7 @@ target_link_libraries (qcp Qt5::Widgets Qt5::PrintSupport)
|
||||
add_library (wsjt_qt STATIC ${wsjt_qt_CXXSRCS} ${wsjt_qt_GENUISRCS} ${GENAXSRCS})
|
||||
# set wsjtx_udp exports to static variants
|
||||
target_compile_definitions (wsjt_qt PUBLIC UDP_STATIC_DEFINE)
|
||||
-target_link_libraries (wsjt_qt qcp Qt5::Widgets Qt5::Network)
|
||||
+target_link_libraries (wsjt_qt qcp Qt5::Widgets Qt5::Network Qt5::SerialPort)
|
||||
target_include_directories (wsjt_qt BEFORE PRIVATE ${hamlib_INCLUDE_DIRS})
|
||||
if (WIN32)
|
||||
target_link_libraries (wsjt_qt Qt5::AxContainer Qt5::AxBase)
|
||||
@@ -959,7 +960,6 @@ else ()
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
-qt5_use_modules (js8call SerialPort) # not sure why the interface link library syntax above doesn't work
|
||||
|
||||
# if (UNIX)
|
||||
# if (NOT WSJT_SKIP_MANPAGES)
|
||||
@@ -1292,3 +1292,5 @@ configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
|
||||
set (CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/CMakeCPackOptions.cmake")
|
||||
|
||||
include (CPack)
|
||||
+
|
||||
+add_definitions (-DJS8_USE_HAMLIB_THREE)
|
||||
diff --git a/Configuration.cpp b/Configuration.cpp
|
||||
index 8258f97..63a29bb 100644
|
||||
--- a/Configuration.cpp
|
||||
+++ b/Configuration.cpp
|
||||
@@ -160,7 +160,7 @@
|
||||
#include <QFont>
|
||||
#include <QFontDialog>
|
||||
#include <QColorDialog>
|
||||
-#include <QSerialPortInfo>
|
||||
+#include <QtSerialPort/QSerialPortInfo>
|
||||
#include <QScopedPointer>
|
||||
#include <QDateTimeEdit>
|
||||
#include <QProcess>
|
@ -0,0 +1,65 @@ |
||||
{ lib |
||||
, stdenv |
||||
, fetchFromBitbucket |
||||
, wrapQtAppsHook |
||||
, pkg-config |
||||
, hamlib |
||||
, libusb1 |
||||
, cmake |
||||
, gfortran |
||||
, fftw |
||||
, fftwFloat |
||||
, qtbase |
||||
, qtmultimedia |
||||
, qtserialport |
||||
}: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "js8call"; |
||||
version = "2.2.0"; |
||||
|
||||
src = fetchFromBitbucket { |
||||
owner = "widefido"; |
||||
repo = pname; |
||||
rev = "v${version}-ga"; |
||||
sha256 = "sha256-mFPhiAAibCiAkLrysAmIQalVCGd9ips2lqbAsowYprY="; |
||||
}; |
||||
|
||||
nativeBuildInputs = [ |
||||
wrapQtAppsHook |
||||
gfortran |
||||
pkg-config |
||||
cmake |
||||
]; |
||||
|
||||
buildInputs = [ |
||||
hamlib |
||||
libusb1 |
||||
fftw |
||||
fftwFloat |
||||
qtbase |
||||
qtmultimedia |
||||
qtserialport |
||||
]; |
||||
|
||||
prePatch = '' |
||||
substituteInPlace CMakeLists.txt \ |
||||
--replace "/usr/share/applications" "$out/share/applications" \ |
||||
--replace "/usr/share/pixmaps" "$out/share/pixmaps" \ |
||||
--replace "/usr/bin/" "$out/bin" |
||||
''; |
||||
|
||||
patches = [ ./cmake.patch ]; |
||||
|
||||
meta = with lib; { |
||||
description = "Weak-signal keyboard messaging for amateur radio"; |
||||
longDescription = '' |
||||
JS8Call is software using the JS8 Digital Mode providing weak signal |
||||
keyboard to keyboard messaging to Amateur Radio Operators. |
||||
''; |
||||
homepage = "http://js8call.com/"; |
||||
license = licenses.gpl3Plus; |
||||
platforms = platforms.linux; |
||||
maintainers = with maintainers; [ melling ]; |
||||
}; |
||||
} |
@ -0,0 +1,17 @@ |
||||
{ lib, buildGoModule, callPackage, fetchFromGitHub }: |
||||
let |
||||
common = callPackage ./common.nix { }; |
||||
in |
||||
buildGoModule { |
||||
pname = "woodpecker-agent"; |
||||
inherit (common) version src ldflags postBuild; |
||||
vendorSha256 = null; |
||||
|
||||
subPackages = "cmd/agent"; |
||||
|
||||
CGO_ENABLED = 0; |
||||
|
||||
meta = common.meta // { |
||||
description = "Woodpecker Continuous Integration agent"; |
||||
}; |
||||
} |
@ -0,0 +1,17 @@ |
||||
{ lib, buildGoModule, callPackage, fetchFromGitHub }: |
||||
let |
||||
common = callPackage ./common.nix { }; |
||||
in |
||||
buildGoModule { |
||||
pname = "woodpecker-cli"; |
||||
inherit (common) version src ldflags postBuild; |
||||
vendorSha256 = null; |
||||
|
||||
subPackages = "cmd/cli"; |
||||
|
||||
CGO_ENABLED = 0; |
||||
|
||||
meta = common.meta // { |
||||
description = "Command line client for the Woodpecker Continuous Integration server"; |
||||
}; |
||||
} |
@ -0,0 +1,36 @@ |
||||
{ lib, fetchFromGitHub }: |
||||
let |
||||
version = "0.15.3"; |
||||
srcSha256 = "sha256-HOOH3H2SXLcT2oW/xL80TO+ZSI+Haulnznpb4hlCQow="; |
||||
yarnSha256 = "sha256-x9g0vSoexfknqLejgcNIigmkFnqYsmhcQNTOStcj68o="; |
||||
in |
||||
{ |
||||
inherit version yarnSha256; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "woodpecker-ci"; |
||||
repo = "woodpecker"; |
||||
rev = "v${version}"; |
||||
sha256 = srcSha256; |
||||
}; |
||||
|
||||
postBuild = '' |
||||
cd $GOPATH/bin |
||||
for f in *; do |
||||
mv -- "$f" "woodpecker-$f" |
||||
done |
||||
cd - |
||||
''; |
||||
|
||||
ldflags = [ |
||||
"-s" |
||||
"-w" |
||||
"-X github.com/woodpecker-ci/woodpecker/version.Version=${version}" |
||||
]; |
||||
|
||||
meta = with lib; { |
||||
homepage = "https://woodpecker-ci.org/"; |
||||
license = licenses.asl20; |
||||
maintainers = with maintainers; [ ambroisie ]; |
||||
}; |
||||
} |
@ -0,0 +1,40 @@ |
||||
{ lib, callPackage, fetchFromGitHub, fetchYarnDeps, mkYarnPackage }: |
||||
let |
||||
common = callPackage ./common.nix { }; |
||||
in |
||||
mkYarnPackage { |
||||
pname = "woodpecker-frontend"; |
||||
inherit (common) version; |
||||
|
||||
src = "${common.src}/web"; |
||||
|
||||
packageJSON = ./woodpecker-package.json; |
||||
offlineCache = fetchYarnDeps { |
||||
yarnLock = "${common.src}/web/yarn.lock"; |
||||
sha256 = common.yarnSha256; |
||||
}; |
||||
|
||||
buildPhase = '' |
||||
runHook preBuild |
||||
|
||||
yarn build |
||||
|
||||
runHook postBuild |
||||
''; |
||||
|
||||
installPhase = '' |
||||
runHook preInstall |
||||
|
||||
cp -R deps/woodpecker-ci/dist $out |
||||
echo "${common.version}" > "$out/version" |
||||
|
||||
runHook postInstall |
||||
''; |
||||
|
||||
# Do not attempt generating a tarball for woodpecker-frontend again. |
||||
doDist = false; |
||||
|
||||
meta = common.meta // { |
||||
description = "Woodpecker Continuous Integration server frontend"; |
||||
}; |
||||
} |
@ -0,0 +1,27 @@ |
||||
{ lib, buildGoModule, callPackage, fetchFromGitHub, woodpecker-frontend }: |
||||
let |
||||
common = callPackage ./common.nix { }; |
||||
in |
||||
buildGoModule { |
||||
pname = "woodpecker-server"; |
||||
inherit (common) version src ldflags postBuild; |
||||
vendorSha256 = null; |
||||
|
||||
postPatch = '' |
||||
cp -r ${woodpecker-frontend} web/dist |
||||
''; |
||||
|
||||
subPackages = "cmd/server"; |
||||
|
||||
CGO_ENABLED = 1; |
||||
|
||||
passthru = { |
||||
inherit woodpecker-frontend; |
||||
|
||||
updateScript = ./update.sh; |
||||
}; |
||||
|
||||
meta = common.meta // { |
||||
description = "Woodpecker Continuous Integration server"; |
||||
}; |
||||
} |
@ -0,0 +1,50 @@ |
||||
#!/usr/bin/env nix-shell |
||||
#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq |
||||
|
||||
# shellcheck shell=bash |
||||
|
||||
if [ -n "$GITHUB_TOKEN" ]; then |
||||
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN") |
||||
fi |
||||
|
||||
if [[ $# -gt 1 || $1 == -* ]]; then |
||||
echo "Regenerates packaging data for the woodpecker packages." |
||||
echo "Usage: $0 [git release tag]" |
||||
exit 1 |
||||
fi |
||||
|
||||
set -x |
||||
|
||||
cd "$(dirname "$0")" |
||||
version="$1" |
||||
|
||||
set -euo pipefail |
||||
|
||||
if [ -z "$version" ]; then |
||||
version="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/woodpecker-ci/woodpecker/releases?per_page=1" | jq -r '.[0].tag_name')" |
||||
fi |
||||
|
||||
# strip leading "v" |
||||
version="${version#v}" |
||||
|
||||
# Woodpecker repository |
||||
src_hash=$(nix-prefetch-github woodpecker-ci woodpecker --rev "v${version}" | jq -r .sha256) |
||||
|
||||
# Front-end dependencies |
||||
woodpecker_src="https://raw.githubusercontent.com/woodpecker-ci/woodpecker/v$version" |
||||
wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/package.json" -O woodpecker-package.json |
||||
|
||||
web_tmpdir=$(mktemp -d) |
||||
trap 'rm -rf "$web_tmpdir"' EXIT |
||||
pushd "$web_tmpdir" |
||||
wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/yarn.lock" |
||||
yarn_hash=$(prefetch-yarn-deps yarn.lock) |
||||
popd |
||||
|
||||
# Use friendlier hashes |
||||
src_hash=$(nix hash to-sri --type sha256 "$src_hash") |
||||
yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash") |
||||
|
||||
sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix |
||||
sed -i -E -e "s#srcSha256 = \".*\"#srcSha256 = \"$src_hash\"#" common.nix |
||||
sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$yarn_hash\"#" common.nix |
@ -0,0 +1,63 @@ |
||||
{ |
||||
"name": "woodpecker-ci", |
||||
"author": "Woodpecker CI", |
||||
"version": "0.0.0", |
||||
"license": "Apache-2.0", |
||||
"engines": { |
||||
"node": ">=14" |
||||
}, |
||||
"scripts": { |
||||
"start": "vite", |
||||
"build": "vite build", |
||||
"serve": "vite preview", |
||||
"lint": "eslint --max-warnings 0 --ext .js,.ts,.vue,.json .", |
||||
"formatcheck": "prettier -c .", |
||||
"format:fix": "prettier --write .", |
||||
"typecheck": "vue-tsc --noEmit", |
||||
"test": "echo 'No tests configured' && exit 0" |
||||
}, |
||||
"dependencies": { |
||||
"@kyvg/vue3-notification": "2.3.4", |
||||
"@meforma/vue-toaster": "1.2.2", |
||||
"ansi-to-html": "0.7.2", |
||||
"dayjs": "1.10.7", |
||||
"floating-vue": "2.0.0-beta.5", |
||||
"fuse.js": "6.4.6", |
||||
"humanize-duration": "3.27.0", |
||||
"javascript-time-ago": "2.3.10", |
||||
"node-emoji": "1.11.0", |
||||
"pinia": "2.0.0", |
||||
"vue": "v3.2.20", |
||||
"vue-router": "4.0.10" |
||||
}, |
||||
"devDependencies": { |
||||
"@iconify/json": "1.1.421", |
||||
"@types/humanize-duration": "3.27.0", |
||||
"@types/javascript-time-ago": "2.0.3", |
||||
"@types/node": "16.11.6", |
||||
"@types/node-emoji": "1.8.1", |
||||
"@typescript-eslint/eslint-plugin": "5.6.0", |
||||
"@typescript-eslint/parser": "5.6.0", |
||||
"@vitejs/plugin-vue": "1.9.4", |
||||
"@vue/compiler-sfc": "3.2.20", |
||||
"eslint": "7.32.0", |
||||
"eslint-config-airbnb-base": "15.0.0", |
||||
"eslint-config-airbnb-typescript": "16.1.0", |
||||
"eslint-config-prettier": "8.3.0", |
||||
"eslint-plugin-import": "2.25.3", |
||||
"eslint-plugin-prettier": "4.0.0", |
||||
"eslint-plugin-promise": "5.1.1", |
||||
"eslint-plugin-simple-import-sort": "7.0.0", |
||||
"eslint-plugin-vue": "7.18.0", |
||||
"eslint-plugin-vue-scoped-css": "1.3.0", |
||||
"prettier": "2.4.1", |
||||
"typescript": "4.4.4", |
||||
"unplugin-icons": "0.12.17", |
||||
"unplugin-vue-components": "0.17.0", |
||||
"vite": "2.6.13", |
||||
"vite-plugin-windicss": "1.4.12", |
||||
"vite-svg-loader": "3.0.0", |
||||
"vue-tsc": "0.28.10", |
||||
"windicss": "3.2.0" |
||||
} |
||||
} |
@ -1,24 +0,0 @@ |
||||
{ lib, writeShellScriptBin, steam-run, fetchurl }: |
||||
let |
||||
|
||||
pname = "itch-setup"; |
||||
version = "1.26.0"; |
||||
|
||||
src = fetchurl { |
||||
url = "https://broth.itch.ovh/itch-setup/linux-amd64/${version}/unpacked/default"; |
||||
hash = "sha256-bcJKqhgZK42Irx12BIvbTDMb/DHEOEXljetlDokF7x8="; |
||||
executable = true; |
||||
}; |
||||
|
||||
in |
||||
(writeShellScriptBin pname ''exec ${steam-run}/bin/steam-run ${src} "$@"'') // { |
||||
|
||||
passthru = { inherit pname version src; }; |
||||
meta = with lib; { |
||||
description = "An installer for the itch.io desktop app"; |
||||
homepage = "https://github.com/itchio/itch-setup"; |
||||
license = licenses.mit; |
||||
platforms = platforms.linux; |
||||
maintainers = with maintainers; [ pasqui23 ]; |
||||
}; |
||||
} |
@ -0,0 +1,29 @@ |
||||
{ lib |
||||
, buildGoModule |
||||
, fetchFromGitHub |
||||
}: |
||||
|
||||
buildGoModule rec { |
||||
pname = "butler"; |
||||
version = "15.21.0"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "itchio"; |
||||
repo = pname; |
||||
rev = "v${version}"; |
||||
sha256 = "sha256-vciSmXR3wI3KcnC+Uz36AgI/WUfztA05MJv1InuOjJM="; |
||||
}; |
||||
|
||||
proxyVendor = true; |
||||
|
||||
vendorSha256 = "sha256-EIl0ZFDKbZopUR22hp5a2vRUu0O1h1O953NrtoNa2x8="; |
||||
|
||||
doCheck = false; |
||||
|
||||
meta = with lib; { |
||||
description = "Command-line itch.io helper"; |
||||
homepage = "https://github.com/itchio/butler"; |
||||
license = licenses.mit; |
||||
maintainers = with maintainers; [ martfont ]; |
||||
}; |
||||
} |
@ -0,0 +1,38 @@ |
||||
{ lib, stdenv, fetchurl, unzip, jre, makeWrapper }: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
pname = "geoserver"; |
||||
version = "2.21.0"; |
||||
|
||||
src = fetchurl { |
||||
url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip"; |
||||
sha256 = "sha256-UCr22Ffhnux6eA0w5qoaf5Hvuypsl/FGpK+emi8G0Mc="; |
||||
}; |
||||
|
||||
sourceRoot = "."; |
||||
nativeBuildInputs = [ unzip makeWrapper ]; |
||||
|
||||
installPhase = '' |
||||
runHook preInstall |
||||
mkdir -p $out/share/geoserver |
||||
cp -r . $out/share/geoserver |
||||
rm -fr $out/share/geoserver/bin/*.bat |
||||
|
||||
makeWrapper $out/share/geoserver/bin/startup.sh $out/bin/geoserver-startup \ |
||||
--set JAVA_HOME "${jre}" \ |
||||
--set GEOSERVER_HOME "$out/share/geoserver" |
||||
makeWrapper $out/share/geoserver/bin/shutdown.sh $out/bin/geoserver-shutdown \ |
||||
--set JAVA_HOME "${jre}" \ |
||||
--set GEOSERVER_HOME "$out/share/geoserver" |
||||
runHook postInstall |
||||
''; |
||||
|
||||
meta = with lib; { |
||||
description = "Open source server for sharing geospatial data"; |
||||
homepage = "https://geoserver.org/"; |
||||
sourceProvenance = with sourceTypes; [ binaryBytecode ]; |
||||
license = licenses.gpl2Plus; |
||||
maintainers = with maintainers; [ sikmir ]; |
||||
platforms = platforms.all; |
||||
}; |
||||
} |
@ -0,0 +1,29 @@ |
||||
{ lib |
||||
, buildGoModule |
||||
, fetchFromGitHub |
||||
}: |
||||
|
||||
buildGoModule rec { |
||||
pname = "routedns"; |
||||
version = "0.1.5"; |
||||
|
||||
src = fetchFromGitHub { |
||||
owner = "folbricht"; |
||||
repo = "routedns"; |
||||
# https://github.com/folbricht/routedns/issues/237 |
||||
rev = "02f14a567fee2a289810979446f5260b8a31bf73"; |
||||
sha256 = "sha256-oImimNBz1qizUPD6qHi73fGKNCu5cii99GIUo21e+bs="; |
||||
}; |
||||
|
||||
vendorSha256 = "sha256-T6adpxJgOPGy+UOOlGAAf1gjk1wJxwOc9enfv9X3LBE="; |
||||
|
||||
subPackages = [ "./cmd/routedns" ]; |
||||
|
||||
meta = with lib; { |
||||
homepage = "https://github.com/folbricht/routedns"; |
||||
description = "DNS stub resolver, proxy and router"; |
||||
license = licenses.bsd3; |
||||
maintainers = with maintainers; [ jsimonetti ]; |
||||
platforms = platforms.linux; |
||||
}; |
||||
} |
Loading…
Reference in new issue