diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/pufferpanel')
-rw-r--r-- | nixpkgs/pkgs/servers/pufferpanel/default.nix | 107 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/pufferpanel/deps.patch | 146 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/pufferpanel/disable-group-checks.patch | 34 | ||||
-rw-r--r-- | nixpkgs/pkgs/servers/pufferpanel/skip-network-tests.patch | 61 |
4 files changed, 348 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/pufferpanel/default.nix b/nixpkgs/pkgs/servers/pufferpanel/default.nix new file mode 100644 index 000000000000..eb5558bf1d47 --- /dev/null +++ b/nixpkgs/pkgs/servers/pufferpanel/default.nix @@ -0,0 +1,107 @@ +{ lib +, fetchFromGitHub +, buildGoModule +, buildNpmPackage +, makeWrapper +, go-swag +, nixosTests +, testers +, pufferpanel +}: + +buildGoModule rec { + pname = "pufferpanel"; + version = "2.6.9"; + + src = fetchFromGitHub { + owner = "PufferPanel"; + repo = "PufferPanel"; + rev = "v${version}"; + hash = "sha256-+ZZUoqCiSbrkaeYrm9X8SuX0INsGFegQNwa3WjBvgHQ="; + }; + + patches = [ + # Bump sha1cd package, otherwise i686-linux fails to build. + # Also bump github.com/swaggo/swag for PR 257790. + ./deps.patch + + # Seems to be an anti-feature. Startup is the only place where user/group is + # hardcoded and checked. + # + # There is no technical reason PufferPanel cannot run as a different user, + # especially for simple commands like `pufferpanel version`. + ./disable-group-checks.patch + + # Some tests do not have network requests stubbed :( + ./skip-network-tests.patch + ]; + + ldflags = [ + "-s" + "-w" + "-X=github.com/pufferpanel/pufferpanel/v2.Hash=none" + "-X=github.com/pufferpanel/pufferpanel/v2.Version=${version}-nixpkgs" + ]; + + frontend = buildNpmPackage { + pname = "pufferpanel-frontend"; + inherit version; + + src = "${src}/client"; + + npmDepsHash = "sha256-oWFXtV/dxzHv3sfIi01l1lHE5tcJgpVq87XgS6Iy62g="; + + NODE_OPTIONS = "--openssl-legacy-provider"; + npmBuildFlags = [ "--" "--dest=${placeholder "out"}" ]; + dontNpmInstall = true; + }; + + nativeBuildInputs = [ makeWrapper go-swag ]; + + vendorHash = "sha256-itiWROoIhnMbG9evH6X7kjClC4VdpX983d/SCwr4HbY="; + proxyVendor = true; + + # Generate code for Swagger documentation endpoints (see web/swagger/docs.go). + # Note that GOROOT embedded in go-swag is empty by default since it is built + # with -trimpath (see https://go.dev/cl/399214). It looks like go-swag skips + # file paths that start with $GOROOT, thus all files when it is empty. + preBuild = '' + GOROOT=''${GOROOT-$(go env GOROOT)} swag init --output web/swagger --generalInfo web/loader.go + ''; + + installPhase = '' + runHook preInstall + + # Set up directory structure similar to the official PufferPanel releases. + mkdir -p $out/share/pufferpanel + cp "$GOPATH"/bin/cmd $out/share/pufferpanel/pufferpanel + cp -r $frontend $out/share/pufferpanel/www + cp -r $src/assets/email $out/share/pufferpanel/email + cp web/swagger/swagger.{json,yaml} $out/share/pufferpanel + + # Wrap the binary with the path to the external files, but allow setting + # custom paths if needed. + makeWrapper $out/share/pufferpanel/pufferpanel $out/bin/pufferpanel \ + --set-default GIN_MODE release \ + --set-default PUFFER_PANEL_EMAIL_TEMPLATES $out/share/pufferpanel/email/emails.json \ + --set-default PUFFER_PANEL_WEB_FILES $out/share/pufferpanel/www + + runHook postInstall + ''; + + passthru.tests = { + inherit (nixosTests) pufferpanel; + version = testers.testVersion { + package = pufferpanel; + command = "${pname} version"; + }; + }; + + meta = with lib; { + description = "A free, open source game management panel"; + homepage = "https://www.pufferpanel.com/"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ ckie tie ]; + mainProgram = "pufferpanel"; + }; +} diff --git a/nixpkgs/pkgs/servers/pufferpanel/deps.patch b/nixpkgs/pkgs/servers/pufferpanel/deps.patch new file mode 100644 index 000000000000..c9d634609569 --- /dev/null +++ b/nixpkgs/pkgs/servers/pufferpanel/deps.patch @@ -0,0 +1,146 @@ +diff --git a/go.mod b/go.mod +index e7ed3367..6022e4cd 100644 +--- a/go.mod ++++ b/go.mod +@@ -36,9 +36,9 @@ require ( + github.com/stretchr/testify v1.8.3 + github.com/swaggo/files v0.0.0-20220728132757-551d4a08d97a + github.com/swaggo/gin-swagger v1.5.3 +- github.com/swaggo/swag v1.8.8 +- golang.org/x/crypto v0.9.0 +- golang.org/x/sys v0.8.0 ++ github.com/swaggo/swag v1.16.3 ++ golang.org/x/crypto v0.14.0 ++ golang.org/x/sys v0.13.0 + gopkg.in/go-playground/validator.v9 v9.31.0 + gorm.io/driver/mysql v1.4.4 + gorm.io/driver/postgres v1.4.5 +@@ -132,7 +132,7 @@ require ( + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pierrec/lz4/v4 v4.1.2 // indirect +- github.com/pjbgf/sha1cd v0.2.0 // indirect ++ github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/robfig/cron/v3 v3.0.1 // indirect + github.com/rogpeppe/go-internal v1.9.0 // indirect +@@ -151,12 +151,12 @@ require ( + github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect + github.com/yusufpapurcu/wmi v1.2.2 // indirect + golang.org/x/arch v0.3.0 // indirect +- golang.org/x/mod v0.8.0 // indirect +- golang.org/x/net v0.10.0 // indirect ++ golang.org/x/mod v0.9.0 // indirect ++ golang.org/x/net v0.17.0 // indirect + golang.org/x/sync v0.1.0 // indirect +- golang.org/x/term v0.8.0 // indirect +- golang.org/x/text v0.9.0 // indirect +- golang.org/x/tools v0.6.0 // indirect ++ golang.org/x/term v0.13.0 // indirect ++ golang.org/x/text v0.13.0 // indirect ++ golang.org/x/tools v0.7.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/go-playground/assert.v1 v1.2.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect +diff --git a/go.sum b/go.sum +index 5be69957..b70625d4 100644 +--- a/go.sum ++++ b/go.sum +@@ -497,8 +497,9 @@ github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZ + github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= + github.com/pierrec/lz4/v4 v4.1.2 h1:qvY3YFXRQE/XB8MlLzJH7mSzBs74eA2gg52YTk6jUPM= + github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +-github.com/pjbgf/sha1cd v0.2.0 h1:gIsJVwjbRviE4gydidGztxH1IlJQoYBcCrwG4Dz8wvM= + github.com/pjbgf/sha1cd v0.2.0/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= ++github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= ++github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= + github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= + github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +@@ -579,8 +580,8 @@ github.com/swaggo/files v0.0.0-20220728132757-551d4a08d97a/go.mod h1:lKJPbtWzJ9J + github.com/swaggo/gin-swagger v1.5.3 h1:8mWmHLolIbrhJJTflsaFoZzRBYVmEE7JZGIq08EiC0Q= + github.com/swaggo/gin-swagger v1.5.3/go.mod h1:3XJKSfHjDMB5dBo/0rrTXidPmgLeqsX89Yp4uA50HpI= + github.com/swaggo/swag v1.8.1/go.mod h1:ugemnJsPZm/kRwFUnzBlbHRd0JY9zE1M4F+uy2pAaPQ= +-github.com/swaggo/swag v1.8.8 h1:/GgJmrJ8/c0z4R4hoEPZ5UeEhVGdvsII4JbVDLbR7Xc= +-github.com/swaggo/swag v1.8.8/go.mod h1:ezQVUUhly8dludpVk+/PuwJWvLLanB13ygV5Pr9enSk= ++github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg= ++github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk= + github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= + github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= + github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= +@@ -651,8 +652,8 @@ golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0 + golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= + golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= + golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +-golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= +-golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= ++golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= ++golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= + golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +@@ -688,8 +689,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= + golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= + golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +-golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +-golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= ++golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= ++golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= + golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +@@ -733,8 +734,8 @@ golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su + golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= + golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= + golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +-golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= +-golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= ++golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= ++golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= + golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= + golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +@@ -828,16 +829,16 @@ golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBc + golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +-golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= ++golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= ++golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= + golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY= + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= + golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= + golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +-golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= +-golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= ++golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= ++golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= + golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +@@ -847,8 +848,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= + golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= + golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= + golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +-golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +-golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= ++golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= ++golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= + golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +@@ -912,8 +913,8 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f + golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= + golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= + golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +-golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +-golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= ++golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= ++golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= + golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/nixpkgs/pkgs/servers/pufferpanel/disable-group-checks.patch b/nixpkgs/pkgs/servers/pufferpanel/disable-group-checks.patch new file mode 100644 index 000000000000..a3f0aa074b60 --- /dev/null +++ b/nixpkgs/pkgs/servers/pufferpanel/disable-group-checks.patch @@ -0,0 +1,34 @@ +diff --git a/cmd/main.go b/cmd/main.go +index f9af7038..099ff2e2 100644 +--- a/cmd/main.go ++++ b/cmd/main.go +@@ -24,11 +24,6 @@ import ( + ) + + func main() { +- if !pufferpanel.UserInGroup("pufferpanel") { +- fmt.Println("You do not have permission to use this command") +- return +- } +- + defer logging.Close() + + defer func() { +diff --git a/cmd/user.go b/cmd/user.go +index d4a27aaf..9bf21910 100644 +--- a/cmd/user.go ++++ b/cmd/user.go +@@ -218,10 +218,9 @@ type userCreate struct { + } + + func editUser(cmd *cobra.Command, args []string) { +- if !pufferpanel.UserInGroup() { +- fmt.Printf("You do not have permission to use this command") +- return +- } ++ // Keeping import to avoid merge conflicts with future updates in case ++ // PufferPanel starts using this import elsewhere in this file. ++ _ = pufferpanel.UserInGroup + + db, err := database.GetConnection() + if err != nil { diff --git a/nixpkgs/pkgs/servers/pufferpanel/skip-network-tests.patch b/nixpkgs/pkgs/servers/pufferpanel/skip-network-tests.patch new file mode 100644 index 000000000000..b2bddd191d0b --- /dev/null +++ b/nixpkgs/pkgs/servers/pufferpanel/skip-network-tests.patch @@ -0,0 +1,61 @@ +diff --git a/operations/javadl/javadl_test.go b/operations/javadl/javadl_test.go +index 3938a58c..a51e2f4a 100644 +--- a/operations/javadl/javadl_test.go ++++ b/operations/javadl/javadl_test.go +@@ -22,6 +22,8 @@ import ( + ) + + func Test_downloadJava(t *testing.T) { ++ t.Skip("requires network access") ++ + tests := []struct { + name string + wantErr bool +diff --git a/operations/spongedl/spongedl_test.go b/operations/spongedl/spongedl_test.go +index efb1665c..1b93be8c 100644 +--- a/operations/spongedl/spongedl_test.go ++++ b/operations/spongedl/spongedl_test.go +@@ -5,6 +5,8 @@ import ( + ) + + func TestSpongeDl_Run(t *testing.T) { ++ t.Skip("requires network access") ++ + type fields struct { + Recommended bool + SpongeType string +diff --git a/operations/steamgamedl/dl_test.go b/operations/steamgamedl/dl_test.go +index f4df4bf3..f7cd9681 100644 +--- a/operations/steamgamedl/dl_test.go ++++ b/operations/steamgamedl/dl_test.go +@@ -19,6 +19,8 @@ import ( + ) + + func Test_downloadSteamcmd(t *testing.T) { ++ t.Skip("requires network access") ++ + tests := []struct { + name string + wantErr bool +diff --git a/services/templates_test.go b/services/templates_test.go +index 5305dbc0..127efc54 100644 +--- a/services/templates_test.go ++++ b/services/templates_test.go +@@ -9,6 +9,8 @@ import ( + ) + + func TestTemplate_GetImportableTemplates(t1 *testing.T) { ++ t1.Skip("requires network access") ++ + t1.Run("GetImportableTemplates", func(t1 *testing.T) { + t := &Template{} + +@@ -26,6 +28,8 @@ func TestTemplate_GetImportableTemplates(t1 *testing.T) { + } + + func TestTemplate_ImportTemplates(t1 *testing.T) { ++ t1.Skip("requires network access") ++ + t1.Run("GetImportableTemplates", func(t1 *testing.T) { + db := prepareDatabase(t1) + if t1.Failed() { |