about summary refs log tree commit diff
path: root/pkgs/by-name/as
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/as')
-rw-r--r--pkgs/by-name/as/asahi-bless/package.nix2
-rw-r--r--pkgs/by-name/as/asahi-btsync/package.nix2
-rw-r--r--pkgs/by-name/as/asahi-nvram/package.nix2
-rw-r--r--pkgs/by-name/as/asahi-wifisync/package.nix2
-rw-r--r--pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch38
-rw-r--r--pkgs/by-name/as/ascii-draw/package.nix12
-rw-r--r--pkgs/by-name/as/asciiquarium-transparent/package.nix2
-rw-r--r--pkgs/by-name/as/aseprite/package.nix171
-rw-r--r--pkgs/by-name/as/aseprite/shared-fmt.patch71
-rw-r--r--pkgs/by-name/as/aseprite/shared-libwebp.patch47
-rw-r--r--pkgs/by-name/as/aseprite/shared-skia-deps.patch21
-rw-r--r--pkgs/by-name/as/asm-lsp/package.nix11
-rw-r--r--pkgs/by-name/as/assemblyscript/package.nix25
-rw-r--r--pkgs/by-name/as/assetfinder/package.nix12
-rw-r--r--pkgs/by-name/as/ast-grep/package.nix8
-rw-r--r--pkgs/by-name/as/astartectl/package.nix10
-rw-r--r--pkgs/by-name/as/async-profiler/package.nix46
17 files changed, 417 insertions, 65 deletions
diff --git a/pkgs/by-name/as/asahi-bless/package.nix b/pkgs/by-name/as/asahi-bless/package.nix
index 96943722a3c52..d0bb7691e5100 100644
--- a/pkgs/by-name/as/asahi-bless/package.nix
+++ b/pkgs/by-name/as/asahi-bless/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to select active boot partition on ARM Macs";
+    description = "Tool to select active boot partition on ARM Macs";
     homepage = "https://crates.io/crates/asahi-bless";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/asahi-btsync/package.nix b/pkgs/by-name/as/asahi-btsync/package.nix
index 2b01e757086b8..f776f86a2fc21 100644
--- a/pkgs/by-name/as/asahi-btsync/package.nix
+++ b/pkgs/by-name/as/asahi-btsync/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to sync Bluetooth pairing keys with macos on ARM Macs";
+    description = "Tool to sync Bluetooth pairing keys with macos on ARM Macs";
     homepage = "https://crates.io/crates/asahi-btsync";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/asahi-nvram/package.nix b/pkgs/by-name/as/asahi-nvram/package.nix
index 05f37e9c5cce7..b8113475c8fce 100644
--- a/pkgs/by-name/as/asahi-nvram/package.nix
+++ b/pkgs/by-name/as/asahi-nvram/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to read and write nvram variables on ARM Macs";
+    description = "Tool to read and write nvram variables on ARM Macs";
     homepage = "https://crates.io/crates/asahi-nvram";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/asahi-wifisync/package.nix b/pkgs/by-name/as/asahi-wifisync/package.nix
index deeac6d4b17eb..5a0b9c87219da 100644
--- a/pkgs/by-name/as/asahi-wifisync/package.nix
+++ b/pkgs/by-name/as/asahi-wifisync/package.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   cargoDepsName = pname;
 
   meta = with lib; {
-    description = "A tool to sync Wifi passwords with macos on ARM Macs";
+    description = "Tool to sync Wifi passwords with macos on ARM Macs";
     homepage = "https://crates.io/crates/asahi-wifisync";
     license = licenses.mit;
     maintainers = with maintainers; [ lukaslihotzki ];
diff --git a/pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch b/pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch
deleted file mode 100644
index 64cf5af6d9b3b..0000000000000
--- a/pkgs/by-name/as/ascii-draw/fix_palette_data_dir.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/src/window.py b/src/window.py
-index adc6d6d..1cb6bec 100644
---- a/src/window.py
-+++ b/src/window.py
-@@ -34,6 +34,15 @@ import unicodedata
- import emoji
- import os
- 
-+def get_data_dir():
-+    xdg_data_home = os.environ.get('XDG_DATA_HOME')
-+    if xdg_data_home and xdg_data_home.strip():
-+        data_dir = os.path.join(xdg_data_home, 'ascii-draw', 'data')
-+    else:
-+        home = os.path.expanduser("~")
-+        data_dir = os.path.join(home, '.local', 'share', 'ascii-draw', 'data')
-+    return data_dir
-+
- @Gtk.Template(resource_path='/io/github/nokse22/asciidraw/ui/window.ui')
- class AsciiDrawWindow(Adw.ApplicationWindow):
-     __gtype_name__ = 'AsciiDrawWindow'
-@@ -266,7 +275,7 @@ class AsciiDrawWindow(Adw.ApplicationWindow):
- 
-         self.palettes = []
- 
--        directory_path = "/var/data/palettes"
-+        directory_path = f"{get_data_dir()}/palettes"
-         os.makedirs(directory_path, exist_ok=True)
- 
-         for filename in os.listdir(directory_path):
-@@ -316,7 +325,7 @@ class AsciiDrawWindow(Adw.ApplicationWindow):
-             self.char_carousel_go_next.set_sensitive(True)
- 
-     def save_new_palette(self, palette):
--        with open(f"/var/data/palettes/{palette.name}.txt", 'w') as file:
-+        with open(f"{get_data_dir()}/palettes/{palette.name}.txt", 'w') as file:
-             file.write(palette.chars)
- 
-     @Gtk.Template.Callback("char_pages_go_back")
diff --git a/pkgs/by-name/as/ascii-draw/package.nix b/pkgs/by-name/as/ascii-draw/package.nix
index 838eb01183718..f2895ebdcdb9b 100644
--- a/pkgs/by-name/as/ascii-draw/package.nix
+++ b/pkgs/by-name/as/ascii-draw/package.nix
@@ -12,20 +12,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ascii-draw";
-  version = "0.3.0";
+  version = "0.3.4";
   pyproject = false;
 
   src = fetchFromGitHub {
     owner = "Nokse22";
     repo = "ascii-draw";
-    rev = "v${version}";
-    hash = "sha256-vI+j8OuQ3b6La0+7wWeoUtBal24dazlN/T0Bng5TgMo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-S5tFK+mJeWtkdS2WjE+lZ2Gfg4N1S0a29AbbcGeKSD0=";
   };
 
-  # Temporary fix for autosaving to flatpak directory
-  # https://github.com/Nokse22/ascii-draw/issues/31
-  patches = [ ./fix_palette_data_dir.patch ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -52,7 +48,7 @@ python3Packages.buildPythonApplication rec {
   '';
 
   meta = {
-    description = "An app to draw diagrams or anything using only ASCII";
+    description = "App to draw diagrams or anything using only ASCII";
     homepage = "https://github.com/Nokse22/ascii-draw";
     license = lib.licenses.gpl3Plus;
     mainProgram = "ascii-draw";
diff --git a/pkgs/by-name/as/asciiquarium-transparent/package.nix b/pkgs/by-name/as/asciiquarium-transparent/package.nix
index b0b476e12bd98..e82c054b017a3 100644
--- a/pkgs/by-name/as/asciiquarium-transparent/package.nix
+++ b/pkgs/by-name/as/asciiquarium-transparent/package.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = {
-    description = "An aquarium/sea animation in ASCII art (with option of transparent background)";
+    description = "Aquarium/sea animation in ASCII art (with option of transparent background)";
     homepage = "https://github.com/nothub/asciiquarium";
     license = lib.licenses.gpl2Only;
     mainProgram = "asciiquarium";
diff --git a/pkgs/by-name/as/aseprite/package.nix b/pkgs/by-name/as/aseprite/package.nix
new file mode 100644
index 0000000000000..13cd6e6bb0ddb
--- /dev/null
+++ b/pkgs/by-name/as/aseprite/package.nix
@@ -0,0 +1,171 @@
+{
+  clangStdenv,
+  cmake,
+  cmark,
+  curl,
+  fetchFromGitHub,
+  fetchpatch,
+  fmt,
+  fontconfig,
+  freetype,
+  giflib,
+  gitUpdater,
+  glib,
+  harfbuzzFull,
+  lib,
+  libGL,
+  libjpeg,
+  libpng,
+  libwebp,
+  libX11,
+  libXcursor,
+  libXext,
+  libXi,
+  libXxf86vm,
+  ninja,
+  pcre2,
+  pixman,
+  pkg-config,
+  skia-aseprite,
+  tinyxml-2,
+  zlib,
+}:
+
+clangStdenv.mkDerivation (finalAttrs: {
+  pname = "aseprite";
+  version = "1.3.7";
+
+  src = fetchFromGitHub {
+    owner = "aseprite";
+    repo = "aseprite";
+    rev = "v" + finalAttrs.version;
+    fetchSubmodules = true;
+    hash = "sha256-75kYJXmyags0cW2D5Ksq1uUrFSCAkFOdmn7Ya/6jLXc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cmark
+    curl
+    fmt
+    fontconfig
+    freetype
+    giflib
+    glib
+    harfbuzzFull
+    libGL
+    libjpeg
+    libpng
+    libwebp
+    libX11
+    libXcursor
+    libXext
+    libXi
+    libXxf86vm
+    pcre2
+    pixman
+    skia-aseprite
+    tinyxml-2
+    zlib
+  ];
+
+  patches = [
+    # https://github.com/aseprite/aseprite/issues/4486
+    # FIXME: remove on next release.
+    (fetchpatch {
+      name = "ENABLE_UPDATER-fix.patch";
+      url = "https://github.com/aseprite/aseprite/commit/8fce589.patch";
+      hash = "sha256-DbL6kK//gQXbsXEn/t+KTuoM7E9ocPAsVqEO+lYrka4=";
+    })
+    ./shared-fmt.patch
+    ./shared-libwebp.patch
+    ./shared-skia-deps.patch
+  ];
+
+  postPatch =
+    let
+      # Translation strings
+      strings = fetchFromGitHub {
+        owner = "aseprite";
+        repo = "strings";
+        rev = "e18a09fefbb6cd904e506183d5fbe08558a52ed4";
+        hash = "sha256-GyCCxbhgf0vST20EH/+KkNLrF+U9Xzgpxlao8s925PQ=";
+      };
+    in
+    ''
+      sed -i src/ver/CMakeLists.txt -e "s-set(VERSION \".*\")-set(VERSION \"$version\")-"
+      rm -rf data/strings
+      cp -r ${strings} data/strings
+    '';
+
+  cmakeFlags = [
+    "-DENABLE_DESKTOP_INTEGRATION=ON"
+    "-DENABLE_UPDATER=OFF"
+    "-DUSE_SHARED_CMARK=ON"
+    "-DUSE_SHARED_CURL=ON"
+    "-DUSE_SHARED_FMT=ON"
+    "-DUSE_SHARED_FREETYPE=ON"
+    "-DUSE_SHARED_GIFLIB=ON"
+    "-DUSE_SHARED_HARFBUZZ=ON"
+    "-DUSE_SHARED_JPEGLIB=ON"
+    "-DUSE_SHARED_LIBPNG=ON"
+    "-DUSE_SHARED_LIBWEBP=ON"
+    "-DUSE_SHARED_PIXMAN=ON"
+    "-DUSE_SHARED_TINYXML=ON"
+    "-DUSE_SHARED_WEBP=ON"
+    "-DUSE_SHARED_ZLIB=ON"
+    # Disable libarchive programs.
+    "-DENABLE_CAT=OFF"
+    "-DENABLE_CPIO=OFF"
+    "-DENABLE_TAR=OFF"
+    # UI backend.
+    "-DLAF_OS_BACKEND=skia"
+    "-DLAF_WITH_EXAMPLES=OFF"
+    "-DSKIA_DIR=${skia-aseprite}"
+    "-DSKIA_LIBRARY_DIR=${skia-aseprite}/lib"
+  ];
+
+  postInstall = ''
+    # Install desktop icons.
+    src="$out/share/aseprite/data/icons"
+    for size in 16 32 48 64 128 256; do
+      dst="$out"/share/icons/hicolor/"$size"x"$size"
+      install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
+      install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/image-x-aseprite.png
+    done
+    # Delete unneeded artifacts of bundled libraries.
+    rm -rf "$out"/{include,lib,man}
+  '';
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    homepage = "https://www.aseprite.org/";
+    description = "Animated sprite editor & pixel art tool";
+    license = lib.licenses.unfree;
+    longDescription = ''
+      Aseprite is a program to create animated sprites. Its main features are:
+
+                - Sprites are composed by layers & frames (as separated concepts).
+                - Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
+                - Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
+                - Export/import animations to/from Sprite Sheets.
+                - Tiled drawing mode, useful to draw patterns and textures.
+                - Undo/Redo for every operation.
+                - Real-time animation preview.
+                - Multiple editors support.
+                - Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
+                - Onion skinning.
+    '';
+    maintainers = with lib.maintainers; [
+      orivej
+      vigress8
+    ];
+    platforms = lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/as/aseprite/shared-fmt.patch b/pkgs/by-name/as/aseprite/shared-fmt.patch
new file mode 100644
index 0000000000000..794d8a4adcc16
--- /dev/null
+++ b/pkgs/by-name/as/aseprite/shared-fmt.patch
@@ -0,0 +1,71 @@
+--- a/CMakeLists.txt	2022-01-08 00:37:08.165330523 +0100
++++ b/CMakeLists.txt	2022-01-08 00:52:41.163585173 +0100
+@@ -54,6 +54,7 @@
+ 
+ option(USE_SHARED_CMARK   "Use your installed copy of cmark" off)
+ option(USE_SHARED_CURL    "Use your installed copy of curl" off)
++option(USE_SHARED_FMT     "Use your installed copy of fmt" off)
+ option(USE_SHARED_GIFLIB  "Use your installed copy of giflib" off)
+ option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off)
+ option(USE_SHARED_ZLIB    "Use your installed copy of zlib" off)
+@@ -165,6 +165,7 @@
+ set(SOURCE_DATA_DIR     ${CMAKE_CURRENT_SOURCE_DIR}/data)
+ set(CMARK_DIR           ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cmark)
+ set(CURL_DIR            ${CMAKE_CURRENT_SOURCE_DIR}/third_party/curl)
++set(FMT_DIR             ${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmt)
+ set(GIFLIB_DIR          ${CMAKE_CURRENT_SOURCE_DIR}/third_party/giflib)
+ set(LIBJPEG_DIR         ${CMAKE_CURRENT_SOURCE_DIR}/third_party/jpeg)
+ set(LIBPNG_DIR          ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libpng)
+@@ -204,6 +205,15 @@
+   set(CURL_STATICLIB ON BOOL)
+ endif()
+ 
++if(USE_SHARED_FMT)
++  find_package(FMT REQUIRED)
++  set(FMT_LIBRARIES fmt::fmt)
++else()
++  set(FMT_FOUND)
++  set(FMT_LIBRARIES fmt)
++  # No need to include extra directories, actually
++endif()
++
+ # zlib
+ if(USE_SHARED_ZLIB)
+   find_package(ZLIB REQUIRED)
+--- a/src/app/CMakeLists.txt	2022-01-08 00:37:07.378671200 +0100
++++ b/src/app/CMakeLists.txt	2022-01-08 00:53:13.669969512 +0100
+@@ -741,7 +741,7 @@ target_link_libraries(app-lib
+   ${HARFBUZZ_LIBRARIES}
+   json11
+   archive_static
+-  fmt
++  ${FMT_LIBRARIES}
+   tinyexpr
+   qoi)
+ 
+ if(ENABLE_PSD)
+--- a/src/dio/CMakeLists.txt	2022-01-08 00:41:50.712726972 +0100
++++ b/src/dio/CMakeLists.txt	2022-01-08 00:53:39.936408022 +0100
+@@ -10,7 +10,7 @@
+ 
+ target_link_libraries(dio-lib
+   ${ZLIB_LIBRARIES}
+-  fmt
++  ${FMT_LIBRARIES}
+   flic-lib
+   laf-base
+   fixmath-lib
+--- a/third_party/CMakeLists.txt	2022-01-08 00:37:08.165330523 +0100
++++ b/third_party/CMakeLists.txt	2022-01-08 00:54:30.455969136 +0100
+@@ -106,7 +106,10 @@
+ endif()
+ 
+ add_subdirectory(simpleini)
+-add_subdirectory(fmt)
++
++if(NOT USE_SHARED_FMT)
++  add_subdirectory(fmt)
++endif()
+ 
+ # Add cmark without tests
+ if(NOT USE_SHARED_CMARK)
diff --git a/pkgs/by-name/as/aseprite/shared-libwebp.patch b/pkgs/by-name/as/aseprite/shared-libwebp.patch
new file mode 100644
index 0000000000000..20191f46b8b16
--- /dev/null
+++ b/pkgs/by-name/as/aseprite/shared-libwebp.patch
@@ -0,0 +1,47 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index af077f6..fed17ff 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,6 +58,7 @@ option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off)
+ option(USE_SHARED_PIXMAN  "Use your installed copy of pixman" off)
+ option(USE_SHARED_FREETYPE "Use shared FreeType library" off)
+ option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off)
++option(USE_SHARED_WEBP    "Use your installed copy of webp" off)
+ option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on)
+ option(ENABLE_MEMLEAK      "Enable memory-leaks detector (only for developers)" off)
+ option(ENABLE_NEWS         "Enable the news in Home tab" on)
+@@ -328,14 +351,17 @@ add_subdirectory(laf)
+ # libwebp
+ if(ENABLE_WEBP)
+   # Use libwebp from Skia
+-  if(LAF_BACKEND STREQUAL "skia")
++  if(USE_SHARED_WEBP)
++    find_library(WEBP_LIBRARY NAMES webp)
++    find_library(WEBPDEMUX_LIBRARY NAMES webpdemux)
++    find_library(WEBPMUX_LIBRARY NAMES webpmux)
++    set(WEBP_LIBRARIES ${WEBP_LIBRARY} ${WEBPDEMUX_LIBRARY} ${WEBPMUX_LIBRARY})
++    find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
++  else()
+     find_library(WEBP_LIBRARIES webp
+       NAMES libwebp # required for Windows
+       PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
+     set(WEBP_INCLUDE_DIR "${SKIA_DIR}/third_party/externals/libwebp/src")
+-  else()
+-    set(WEBP_LIBRARIES webp webpdemux libwebpmux)
+-    set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src)
+   endif()
+   include_directories(${WEBP_INCLUDE_DIR})
+ endif()
+diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
+index 4839d4097c..e8c3e83cbc 100644
+--- a/third_party/CMakeLists.txt
++++ b/third_party/CMakeLists.txt
+@@ -32,7 +32,7 @@ if(NOT USE_SHARED_GIFLIB)
+   add_subdirectory(giflib)
+ endif()
+ 
+-if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia")
++if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia" AND NOT USE_SHARED_WEBP)
+   set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
+   add_subdirectory(libwebp)
+ endif()
\ No newline at end of file
diff --git a/pkgs/by-name/as/aseprite/shared-skia-deps.patch b/pkgs/by-name/as/aseprite/shared-skia-deps.patch
new file mode 100644
index 0000000000000..a6ab472bbe95b
--- /dev/null
+++ b/pkgs/by-name/as/aseprite/shared-skia-deps.patch
@@ -0,0 +1,21 @@
+--- src/laf/cmake/FindSkia.cmake.orig	2022-01-08 02:15:13.417619266 +0100
++++ src/laf/cmake/FindSkia.cmake	2022-01-08 02:15:43.603960491 +0100
+@@ -32,14 +32,18 @@
+ # SkShaper module + freetype + harfbuzz
+ find_library(SKSHAPER_LIBRARY skshaper PATH "${SKIA_LIBRARY_DIR}")
+ 
++if(NOT USE_SHARED_FREETYPE)
+ set(FREETYPE_FOUND ON)
+ find_library(FREETYPE_LIBRARY freetype2 PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
+ set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
+ set(FREETYPE_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/freetype/include")
++endif()
+ 
++if(NOT USE_SHARED_HARFBUZZ)
+ find_library(HARFBUZZ_LIBRARY harfbuzz PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
+ set(HARFBUZZ_LIBRARIES ${HARFBUZZ_LIBRARY})
+ set(HARFBUZZ_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/harfbuzz/src")
++endif()
+ 
+ set(SKIA_LIBRARIES
+   ${SKIA_LIBRARY}
\ No newline at end of file
diff --git a/pkgs/by-name/as/asm-lsp/package.nix b/pkgs/by-name/as/asm-lsp/package.nix
index b68123dd42b16..9a44f68ca64f2 100644
--- a/pkgs/by-name/as/asm-lsp/package.nix
+++ b/pkgs/by-name/as/asm-lsp/package.nix
@@ -6,7 +6,7 @@
 }:
 let
   pname = "asm-lsp";
-  version = "0.4.2";
+  version = "0.6.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage {
     owner = "bergercookie";
     repo = "asm-lsp";
     rev = "v${version}";
-    hash = "sha256-EGgYOU6y23ULjnMGNjYhgF0JMPgvRuQ4UOWqwJxhBpU=";
+    hash = "sha256-vOkuTJFP2zme8S+u5j1TXt6BXnwtASRVH4Dre9g1dtk=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +26,12 @@ rustPlatform.buildRustPackage {
     openssl
   ];
 
-  cargoHash = "sha256-x8Cj39Wki+pdoNIO8QPGK29KFJrHtDMoZJIXFEldno0=";
+  cargoHash = "sha256-lmOnBcLWfTCuQcPiRmPoFD/QvagfkApFP6/h1ot7atU=";
+
+  # tests expect ~/.cache/asm-lsp to be writable
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
 
   meta = {
     description = "Language server for NASM/GAS/GO Assembly";
diff --git a/pkgs/by-name/as/assemblyscript/package.nix b/pkgs/by-name/as/assemblyscript/package.nix
new file mode 100644
index 0000000000000..fadd35ec2e8ed
--- /dev/null
+++ b/pkgs/by-name/as/assemblyscript/package.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "assemblyscript";
+  version = "0.27.23";
+
+  src = fetchFromGitHub {
+    owner = "AssemblyScript";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-pKb46AfL5MGKiH1AjyPeHw7ZeLnIiPYmf8b2bOkuRe0=";
+  };
+
+  npmDepsHash = "sha256-io/3T0LE1kupjtMg8rpQlRmIn048X0jqhKKj/W7Ilo0=";
+
+  meta = with lib; {
+    homepage = "https://github.com/AssemblyScript/${pname}";
+    description = "TypeScript-like language for WebAssembly";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lucperkins ];
+  };
+}
diff --git a/pkgs/by-name/as/assetfinder/package.nix b/pkgs/by-name/as/assetfinder/package.nix
index f307b5ec62ed5..46a2daa1723a1 100644
--- a/pkgs/by-name/as/assetfinder/package.nix
+++ b/pkgs/by-name/as/assetfinder/package.nix
@@ -1,14 +1,12 @@
 { lib
 , fetchFromGitHub
-, buildGoPackage
+, buildGoModule
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "assetfinder";
   version = "0.1.1";
 
-  goPackagePath = "github.com/tomnomnom/assetfinder";
-
   src = fetchFromGitHub {
     owner = "tomnomnom";
     repo = "assetfinder";
@@ -16,6 +14,12 @@ buildGoPackage rec {
     hash = "sha256-7+YF1VXBcFehKw9JzurmXNu8yeZPdqfQEuaqwtR4AuA=";
   };
 
+  postPatch = ''
+    go mod init github.com/tomnomnom/assetfinder
+  '';
+
+  vendorHash = null;
+
   meta = with lib; {
     homepage = "https://github.com/tomnomnom/assetfinder";
     description = "Find domains and subdomains related to a given domain";
diff --git a/pkgs/by-name/as/ast-grep/package.nix b/pkgs/by-name/as/ast-grep/package.nix
index 153c144629630..e5ffcc27b2ce1 100644
--- a/pkgs/by-name/as/ast-grep/package.nix
+++ b/pkgs/by-name/as/ast-grep/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.21.1";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-hR6DPkApHDlg91O040s+3FL2mEM3FH61pnyCBwwE6tw=";
+    hash = "sha256-QW3ZwALvfSTcvXuH/ploqUD1UJ5fGySIAc3N/TMlB4g=";
   };
 
-  cargoHash = "sha256-Iqq7F8PCrNhFGvrfbYQn3mdOwiokCmTKCaXjOHvD8V0=";
+  cargoHash = "sha256-MUdHDP+1KQBXy2itOhW6pDuOTwIwXHy4oDfifDRdM94=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     mainProgram = "sg";
-    description = "A fast and polyglot tool for code searching, linting, rewriting at large scale";
+    description = "Fast and polyglot tool for code searching, linting, rewriting at large scale";
     homepage = "https://ast-grep.github.io/";
     changelog = "https://github.com/ast-grep/ast-grep/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/by-name/as/astartectl/package.nix b/pkgs/by-name/as/astartectl/package.nix
index 3027c78984b2f..4dcd046570e97 100644
--- a/pkgs/by-name/as/astartectl/package.nix
+++ b/pkgs/by-name/as/astartectl/package.nix
@@ -5,16 +5,20 @@
 }:
 buildGoModule rec {
   pname = "astartectl";
-  version = "23.5.0";
+  version = "23.5.1";
+
+  # Workaround for go vendor failing
+  # https://github.com/astarte-platform/astartectl/pull/244
+  postPatch = "go mod edit -go=1.22";
 
   src = fetchFromGitHub {
     owner = "astarte-platform";
     repo = "astartectl";
     rev = "v${version}";
-    hash = "sha256-4NgDVuYEeJI5Arq+/+xdyUOBWdCLALM3EKVLSFimJlI=";
+    hash = "sha256-ntlLk7soiZq6Ql6k/RG9PdHawguRV6Wha8C+5FM+2og=";
   };
 
-  vendorHash = "sha256-Syod7SUsjiM3cdHPZgjH/3qdsiowa0enyV9DN8k13Ws=";
+  vendorHash = "sha256-3k/G7fLll19XG2RU8YsepWv8BtkCmiLg4/c7lSvx+9k=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/as/async-profiler/package.nix b/pkgs/by-name/as/async-profiler/package.nix
new file mode 100644
index 0000000000000..e82ebcd62f22d
--- /dev/null
+++ b/pkgs/by-name/as/async-profiler/package.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  jdk,
+  makeWrapper,
+}:
+stdenv.mkDerivation rec {
+  pname = "async-profiler";
+  version = "3.0";
+
+  src = fetchFromGitHub {
+    owner = "jvm-profiling-tools";
+    repo = "async-profiler";
+    rev = "v${version}";
+    hash = "sha256-0CCJoRjRLq4LpiRD0ibzK8So9qSQymePCTYUI60Oy2k=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ jdk ];
+
+  installPhase =
+    let
+      ext = stdenv.hostPlatform.extensions.sharedLibrary;
+    in
+    ''
+      runHook preInstall
+      install -D build/bin/asprof "$out/bin/async-profiler"
+      install -D build/lib/libasyncProfiler${ext} "$out/lib/libasyncProfiler${ext}"
+      runHook postInstall
+    '';
+
+  fixupPhase = ''
+    wrapProgram $out/bin/async-profiler --prefix PATH : ${lib.makeBinPath [ jdk ]}
+  '';
+
+  meta = with lib; {
+    description = "Low overhead sampling profiler for Java that does not suffer from Safepoint bias problem";
+    homepage = "https://github.com/jvm-profiling-tools/async-profiler";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mschuwalow ];
+    platforms = platforms.all;
+    mainProgram = "async-profiler";
+  };
+}