diff --git a/pkgs/applications/science/astronomy/gnuastro/default.nix b/pkgs/applications/science/astronomy/gnuastro/default.nix
new file mode 100644
index 000000000000..aed029f9d367
--- /dev/null
+++ b/pkgs/applications/science/astronomy/gnuastro/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchurl, libtool
+, cfitsio, curl, ghostscript, gsl, libgit2, libjpeg, libtiff, lzlib, wcslib }:
+
+stdenv.mkDerivation rec {
+  pname = "gnuastro";
+  version = "0.17";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnuastro/gnuastro-${version}.tar.gz";
+    sha256 = "sha256-xBvtM8wkDOqXg/Q2dNfPR0R0ZgRm4QiPJZoLDKivaPU=";
+  };
+
+  nativeBuildInputs = [ libtool ];
+
+  buildInputs = [
+    cfitsio
+    curl
+    ghostscript
+    gsl
+    libgit2
+    libjpeg
+    libtiff
+    lzlib
+    wcslib
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "GNU astronomy utilities and library";
+    homepage = "https://www.gnu.org/software/gnuastro/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4b400bd3bccb..6ada3aea4c07 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6254,6 +6254,8 @@ with pkgs;
 
   gpp = callPackage ../development/tools/gpp { };
 
+  gnuastro = callPackage ../applications/science/astronomy/gnuastro { };
+
   gpredict = callPackage ../applications/science/astronomy/gpredict {
     hamlib = hamlib_4;
   };