diff --git a/pkgs/default.nix b/pkgs/default.nix
index 446e1e026b2d9729a153774216569498c1fd178d..d88e0c8e46d69b8bceac1afe6acff1b08377342c 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -129,12 +129,16 @@
     ### GEMINI
 
     agunua = callPackage ./gemini/agunua { };
-    astronaut = callPackage ./gemini/astronaut { };
+    astronaut = callPackage ./gemini/astronaut {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     comitium = callPackage ./gemini/comitium { };
     gemcert = callPackage ./gemini/gemcert { };
     gemgen = callPackage ./gemini/gemgen { };
     gemget = callPackage ./gemini/gemget { };
-    gemini-ipfs-gateway = callPackage ./gemini/gemini-ipfs-gateway { };
+    gemini-ipfs-gateway = callPackage ./gemini/gemini-ipfs-gateway {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     geminid = callPackage ./gemini/geminid { };
     gemreader = callPackage ./gemini/gemreader { };
     gemserv = callPackage ./gemini/gemserv {
@@ -211,7 +215,9 @@     terracotta = callPackage ./geospatial/terracotta { };
     tile-stitch = callPackage ./geospatial/tile-stitch { };
     tilesets-cli = callPackage ./geospatial/tilesets-cli { };
     tpkutils = callPackage ./geospatial/tpkutils { };
-    vt2geojson = callPackage ./geospatial/vt2geojson { };
+    vt2geojson = callPackage ./geospatial/vt2geojson {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     titiler = callPackage ./geospatial/titiler { };
     tilecloud = callPackage ./geospatial/tilecloud { };
 
@@ -269,7 +275,9 @@     hfst = callPackage ./linguistics/hfst { };
     i18n-editor-bin = callPackage ./linguistics/i18n-editor { jre = pkgs.jdk11; };
     lsdreader = callPackage ./linguistics/lsdreader { };
     mikatools = callPackage ./linguistics/mikatools { };
-    odict = callPackage ./linguistics/odict { };
+    odict = callPackage ./linguistics/odict {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     python-hfst = callPackage ./linguistics/python-hfst { };
     pytorchtext = callPackage ./linguistics/pytorchtext { };
     redict = libsForQt5.callPackage ./linguistics/redict { };
@@ -298,7 +306,9 @@     docker-reg-tool = callPackage ./misc/docker-reg-tool { };
     docx2csv = callPackage ./misc/docx2csv { };
     finalcut = callPackage ./misc/finalcut { };
     gaiagpsclient = callPackage ./misc/gaiagpsclient { };
-    glauth = callPackage ./misc/glauth { };
+    glauth = callPackage ./misc/glauth {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     how-to-use-pvs-studio-free = callPackage ./misc/pvs-studio/how-to-use-pvs-studio-free.nix { };
     huami-token = callPackage ./misc/huami-token { };
     imsg-compat = callPackage ./misc/imsg-compat { };
@@ -308,7 +318,9 @@     libnbcompat = callPackage ./misc/libnbcompat { };
     md2html = callPackage ./misc/md2html { };
     miband4 = callPackage ./misc/miband4 { };
     morse-talk = callPackage ./misc/morse-talk { };
-    musig = callPackage ./misc/musig { };
+    musig = callPackage ./misc/musig {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     nanodns = callPackage ./misc/nanodns { };
     nmtree = callPackage ./misc/nmtree { };
     o = callPackage ./misc/o { };
@@ -323,7 +335,9 @@     repolocli = callPackage ./misc/repolocli { };
     sdorfehs = callPackage ./misc/sdorfehs { };
     taskcoach = callPackage ./misc/taskcoach { };
     tcvt = callPackage ./misc/tcvt { };
-    telegabber = callPackage ./misc/telegabber { };
+    telegabber = callPackage ./misc/telegabber {
+      buildGoModule = pkgs.buildGo117Module;
+    };
     tlstunnel = callPackage ./misc/tlstunnel { };
     wptools = callPackage ./misc/wptools { };
     xfractint = callPackage ./misc/xfractint { };
@@ -333,7 +347,9 @@     };
 
     ### NAKARTE
 
-    elevation_server = callPackage ./nakarte/elevation_server { };
+    elevation_server = callPackage ./nakarte/elevation_server {
+      buildGoPackage = pkgs.buildGo117Package;
+    };
     map-tiler = callPackage ./nakarte/map-tiler {
       python3Packages = pkgs.python39Packages;
     };
diff --git a/pkgs/gemini/gemini-ipfs-gateway/default.nix b/pkgs/gemini/gemini-ipfs-gateway/default.nix
index d32c785ff85b77c291dbfedf6802ef4acf186b26..84bf9c315830d33d8e42473346dc4f10f696d789 100644
--- a/pkgs/gemini/gemini-ipfs-gateway/default.nix
+++ b/pkgs/gemini/gemini-ipfs-gateway/default.nix
@@ -19,6 +19,5 @@     inherit (src.meta) homepage;
     license = licenses.agpl3Only;
     maintainers = [ maintainers.sikmir ];
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/misc/o/default.nix b/pkgs/misc/o/default.nix
index f5c24da5233a307e17373a016f1d66c94bc4720f..0a1d2a812f924035675f0ded4742c7518877196a 100644
--- a/pkgs/misc/o/default.nix
+++ b/pkgs/misc/o/default.nix
@@ -1,27 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, makeWrapper, pkg-config, vte }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles, makeWrapper, pkg-config
+, withGui ? stdenv.isLinux, vte # vte is broken on darwin
+}:
 
 buildGoModule rec {
   pname = "o";
-  version = "2.55.0";
+  version = "2.55.1";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "o";
     rev = "v${version}";
-    hash = "sha256-AWRR/plPgOV6MoZnZYpQpeG2WLrzZNckDtK6BrEehtc=";
+    hash = "sha256-owueLd6kR/bDFxKI9QOUgriH63XRsEEpIFfp5aRTSbI=";
   };
 
   vendorSha256 = null;
 
   nativeBuildInputs = [ installShellFiles makeWrapper pkg-config ];
 
-  buildInputs = [ vte ];
+  buildInputs = lib.optional withGui vte;
 
   preBuild = "cd v2";
 
   postInstall = ''
     cd ..
     installManPage o.1
+  '' + lib.optionalString withGui ''
     make install-gui PREFIX=$out
     wrapProgram $out/bin/ko --prefix PATH : $out/bin
   '';
diff --git a/pkgs/misc/telegabber/default.nix b/pkgs/misc/telegabber/default.nix
index 3148f1970baa19276af41b55295ff34e9ff5bc99..64d1e7ef4b9b54d23a7a422d61764a5430242317 100644
--- a/pkgs/misc/telegabber/default.nix
+++ b/pkgs/misc/telegabber/default.nix
@@ -2,22 +2,17 @@ { lib, buildGoModule, fetchFromGitea, openssl, tdlib, zlib }:
 
 buildGoModule rec {
   pname = "telegabber";
-  version = "1.1.3";
+  version = "1.3.0";
 
   src = fetchFromGitea {
     domain = "dev.narayana.im";
     owner = "narayana";
-    repo = pname;
+    repo = "telegabber";
     rev = "v${version}";
-    hash = "sha256-QGe3sUalYfh1tb2gUDkXw9O0khMg0g8LwGJssDaz5nk=";
+    hash = "sha256-zctfACwvjgSI5EgXEZIRKCM4Jsjj9RtwJMbAq4vWV1M=";
   };
 
-  vendorSha256 = "sha256-rRP3+HVc18VycJazJsmU1WOOo3m4fRLfouywTlXZVr8=";
-
-  postPatch = ''
-    substituteInPlace telegram/utils_test.go \
-      --replace "TestOnlineOfflineAway" "SkipOnlineOfflineAway"
-  '';
+  vendorSha256 = "sha256-bh/+zEfZuk7l0t2didxlCnTObY3ThqsUXI8cD1oVeNk=";
 
   buildInputs = [ openssl tdlib zlib ];
 
diff --git a/pkgs/nakarte/elevation_server/default.nix b/pkgs/nakarte/elevation_server/default.nix
index c99ee128750e849f27d275bc0b02409bd9da1096..f79f1c135b56aaeccc6a08529a71aba905cb276f 100644
--- a/pkgs/nakarte/elevation_server/default.nix
+++ b/pkgs/nakarte/elevation_server/default.nix
@@ -25,6 +25,5 @@     inherit (src.meta) homepage;
     license = licenses.free;
     maintainers = [ maintainers.sikmir ];
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
   };
 }
