diff options
Diffstat (limited to '')
-rw-r--r-- | pkgs/akkoma/default.nix | 211 | ||||
-rw-r--r-- | pkgs/akkoma/mix.nix | 1793 | ||||
-rwxr-xr-x | pkgs/apply-config/apply-config | 4 | ||||
-rw-r--r-- | pkgs/bookwyrm.nix | 138 | ||||
-rw-r--r-- | pkgs/bookwyrm/default.nix | 94 | ||||
-rw-r--r-- | pkgs/bookwyrm/unwrapped.nix | 80 | ||||
-rw-r--r-- | pkgs/default.nix | 2 | ||||
-rw-r--r-- | pkgs/hikari.nix | 6 | ||||
-rw-r--r-- | pkgs/mollysocket.nix | 6 | ||||
-rw-r--r-- | pkgs/nomsring/nomsring.cabal | 2 | ||||
-rw-r--r-- | pkgs/overlay.nix | 101 | ||||
-rw-r--r-- | pkgs/patches/akkoma-fe-toki-pona-2.patch | 13 | ||||
-rw-r--r-- | pkgs/patches/akkoma-fe-toki-pona.patch | 14 | ||||
-rw-r--r-- | pkgs/python/django-imagekit.nix | 4 | ||||
-rw-r--r-- | pkgs/python/django-pgtrigger.nix | 25 | ||||
-rw-r--r-- | pkgs/python/django-sass-processor.nix | 6 | ||||
-rw-r--r-- | pkgs/python/s3-tar.nix | 21 | ||||
-rw-r--r-- | pkgs/wlroots_0_15.nix | 121 |
18 files changed, 2453 insertions, 188 deletions
diff --git a/pkgs/akkoma/default.nix b/pkgs/akkoma/default.nix new file mode 100644 index 0000000..32d85a9 --- /dev/null +++ b/pkgs/akkoma/default.nix @@ -0,0 +1,211 @@ +{ lib +, beamPackages +, fetchgit +, fetchFromGitea +, fetchFromGitHub +, fetchFromGitLab +, cmake +, file +, nixosTests +, ... +}: +beamPackages.mixRelease rec { + pname = "akkoma"; + version = "3.15.2"; + + src = fetchgit { + url = "https://akkoma.dev/AkkomaGang/akkoma.git"; + rev = "refs/tags/v${version}"; + hash = "sha256-GW86OyO/XPIrCS+cPKQ8LG8PdhhfA2rNH1FXFiuL6vM="; + }; + + postPatch = '' + # Remove dependency on OS_Mon + sed -E -i 's/(^|\s):os_mon,//' \ + mix.exs + ''; + + postBuild = '' + # Digest and compress static files + rm -f priv/static/READ_THIS_BEFORE_TOUCHING_FILES_HERE + mix phx.digest --no-compile + ''; + + mixNixDeps = import ./mix.nix { + inherit beamPackages lib; + overrides = final: prev: + let + mimeTypePatchPhase = '' + mkdir -p config + cat >> config/config.exs <<EOF + Mix.Config.config :mime, :types, %{ + "application/xml" => ["xml"], + "application/xrd+xml" => ["xrd+xml"], + "application/jrd+json" => ["jrd+json"], + "application/activity+json" => ["activity+json"], + "application/ld+json" => ["activity+json"] + } + Mix.Config.config :mime, :extensions, %{ + "activity+json" => "text/plain", + "jrd+json" => "text/plain", + "xrd+xml" => "text/plain" + } + EOF + ''; + # Akkoma adds some things to the `mime` package's configuration, which requires it to be recompiled. + # However, we can't just recompile things like we would on other systems. + # Therefore, we need to add it to mime's compile-time config too, and also in every package that depends on mime, directly or indirectly. + # We take the lazy way out and just add it to every dependency - it won't make a difference in packages that don't depend on `mime`. + addMimeTypes = _: p: p.override { + patchPhase = mimeTypePatchPhase; + }; + in + (lib.attrsets.mapAttrs addMimeTypes prev) // { + # mix2nix does not support git dependencies yet, + # so we need to add them manually + captcha = beamPackages.buildMix rec { + name = "captcha"; + version = "0.1.0"; + + src = fetchFromGitLab { + domain = "git.pleroma.social"; + group = "pleroma"; + owner = "elixir-libraries"; + repo = "elixir-captcha"; + rev = "6630c42aaaab124e697b4e513190c89d8b64e410"; + hash = "sha256-KLsKBfCt6bUylSTTqRQi6ic0MyimanvIZRhU4Iv5Fmw="; + }; + + # the binary is not getting installed by default + postInstall = "mv priv/* $out/lib/erlang/lib/${name}-${version}/priv/"; + }; + concurrent_limiter = beamPackages.buildMix rec { + name = "concurrent_limiter"; + version = "0.1.1"; + + src = fetchFromGitea { + domain = "akkoma.dev"; + owner = "AkkomaGang"; + repo = "concurrent-limiter"; + rev = "a9e0b3d64574bdba761f429bb4fba0cf687b3338"; + hash = "sha256-A7ucZnXks4K+JDVY5vV2cT5KfEOUOo/OHO4rga5mGys="; + }; + }; + elasticsearch = beamPackages.buildMix rec { + name = "elasticsearch"; + version = "1.0.1"; + + src = fetchFromGitea { + domain = "akkoma.dev"; + owner = "AkkomaGang"; + repo = "elasticsearch-elixir"; + rev = "6cd946f75f6ab9042521a009d1d32d29a90113ca"; + hash = "sha256-CtmQHVl+VTpemne+nxbkYGcErrgCo+t3ZBPbkFSpyF0="; + }; + }; + mfm_parser = beamPackages.buildMix rec { + name = "mfm_parser"; + version = "0.2.0"; + + src = fetchgit { + url = "https://akkoma.dev/AkkomaGang/mfm-parser.git"; + rev = "360a30267a847810a63ab48f606ba227b2ca05f0"; + hash = "sha256-VJn9/i3peMhA+F/LyuPa3biZx0LXBPH+GbDsOWIxYE0="; + }; + + beamDeps = with final; [ phoenix_view temple ]; + patchPhase = mimeTypePatchPhase; + }; + search_parser = beamPackages.buildMix rec { + name = "search_parser"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "FloatingGhost"; + repo = "pleroma-contrib-search-parser"; + rev = "08971a81e68686f9ac465cfb6661d51c5e4e1e7f"; + hash = "sha256-sbo9Kcp2oT05o2GAF+IgziLPYmCkWgBfFMBCytmqg3Y="; + }; + + beamDeps = with final; [ nimble_parsec ]; + }; + temple = beamPackages.buildMix rec { + name = "temple"; + version = "0.9.0-rc.0"; + + src = fetchFromGitea { + domain = "akkoma.dev"; + owner = "AkkomaGang"; + repo = "temple"; + rev = "066a699ade472d8fa42a9d730b29a61af9bc8b59"; + hash = "sha256-qA0z8WTMjO2OixcZBARn/LbuV3s3LGtwZ9nSjj/tWBc="; + }; + + mixEnv = "dev"; + beamDeps = with final; [ earmark_parser ex_doc makeup makeup_elixir makeup_erlang nimble_parsec ]; + patchPhase = mimeTypePatchPhase; + }; + + # Some additional build inputs and build fixes + fast_html = prev.fast_html.override { + nativeBuildInputs = [ cmake ]; + dontUseCmakeConfigure = true; + }; + http_signatures = beamPackages.buildMix rec { + name = "http_signatures"; + version = "0.1.3"; + + src = fetchFromGitea { + domain = "akkoma.dev"; + owner = "AkkomaGang"; + repo = "http_signatures"; + rev = "d44c43d66758c6a73eaa4da9cffdbee0c5da44ae"; + hash = "sha256-o5xF++AIJLVMFuQwldNyWpYJGWFHZZTfGy1V80TZzR8="; + }; + + beamDeps = with final; [ credo ex_doc dialyxir temple ]; + patchPhase = '' + substituteInPlace mix.exs --replace ":logger" ":logger, :public_key" + ${mimeTypePatchPhase} + ''; + }; + majic = beamPackages.buildMix { + name = "majic"; + version = "1.0.0"; + + src = fetchFromGitea { + domain = "akkoma.dev"; + owner = "AkkomaGang"; + repo = "majic"; + rev = "80540b36939ec83f48e76c61e5000e0fd67706f0"; + hash = "sha256-OMM9aDRvbqCOBIE+iPySU8ONRn1BqHDql22rRSmdW08="; + }; + + buildInputs = [ file ]; + beamDeps = with final; [ nimble_pool mime plug credo dialyxir ex_doc elixir_make ]; + patchPhase = mimeTypePatchPhase; + }; + + syslog = prev.syslog.override { + buildPlugins = with beamPackages; [ pc ]; + }; + }; + }; + + passthru = { + tests = with nixosTests; { inherit akkoma akkoma-confined; }; + inherit mixNixDeps; + + # Used to make sure the service uses the same version of elixir as + # the package + elixirPackage = beamPackages.elixir; + }; + + meta = { + description = "ActivityPub microblogging server"; + homepage = "https://akkoma.social"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ mvs ]; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/akkoma/mix.nix b/pkgs/akkoma/mix.nix new file mode 100644 index 0000000..baee997 --- /dev/null +++ b/pkgs/akkoma/mix.nix @@ -0,0 +1,1793 @@ +{ lib, beamPackages, overrides ? (x: y: {}) }: + +let + buildRebar3 = lib.makeOverridable beamPackages.buildRebar3; + buildMix = lib.makeOverridable beamPackages.buildMix; + buildErlangMk = lib.makeOverridable beamPackages.buildErlangMk; + + self = packages // (overrides self packages); + + packages = with beamPackages; with self; { + argon2_elixir = buildMix rec { + name = "argon2_elixir"; + version = "3.2.1"; + + src = fetchHex { + pkg = "argon2_elixir"; + version = "${version}"; + sha256 = "a813b78217394530b5fcf4c8070feee43df03ffef938d044019169c766315690"; + }; + + beamDeps = [ comeonin elixir_make ]; + }; + + base62 = buildMix rec { + name = "base62"; + version = "1.2.2"; + + src = fetchHex { + pkg = "base62"; + version = "${version}"; + sha256 = "d41336bda8eaa5be197f1e4592400513ee60518e5b9f4dcf38f4b4dae6f377bb"; + }; + + beamDeps = [ custom_base ]; + }; + + bbcode_pleroma = buildMix rec { + name = "bbcode_pleroma"; + version = "0.2.0"; + + src = fetchHex { + pkg = "bbcode_pleroma"; + version = "${version}"; + sha256 = "19851074419a5fedb4ef49e1f01b30df504bb5dbb6d6adfc135238063bebd1c3"; + }; + + beamDeps = [ nimble_parsec ]; + }; + + bcrypt_elixir = buildMix rec { + name = "bcrypt_elixir"; + version = "3.0.1"; + + src = fetchHex { + pkg = "bcrypt_elixir"; + version = "${version}"; + sha256 = "486bb95efb645d1efc6794c1ddd776a186a9a713abf06f45708a6ce324fb96cf"; + }; + + beamDeps = [ comeonin elixir_make ]; + }; + + benchee = buildMix rec { + name = "benchee"; + version = "1.3.1"; + + src = fetchHex { + pkg = "benchee"; + version = "${version}"; + sha256 = "76224c58ea1d0391c8309a8ecbfe27d71062878f59bd41a390266bf4ac1cc56d"; + }; + + beamDeps = [ deep_merge statistex ]; + }; + + bunt = buildMix rec { + name = "bunt"; + version = "1.0.0"; + + src = fetchHex { + pkg = "bunt"; + version = "${version}"; + sha256 = "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"; + }; + + beamDeps = []; + }; + + cachex = buildMix rec { + name = "cachex"; + version = "3.6.0"; + + src = fetchHex { + pkg = "cachex"; + version = "${version}"; + sha256 = "ebf24e373883bc8e0c8d894a63bbe102ae13d918f790121f5cfe6e485cc8e2e2"; + }; + + beamDeps = [ eternal jumper sleeplocks unsafe ]; + }; + + calendar = buildMix rec { + name = "calendar"; + version = "1.0.0"; + + src = fetchHex { + pkg = "calendar"; + version = "${version}"; + sha256 = "990e9581920c82912a5ee50e62ff5ef96da6b15949a2ee4734f935fdef0f0a6f"; + }; + + beamDeps = [ tzdata ]; + }; + + castore = buildMix rec { + name = "castore"; + version = "1.0.11"; + + src = fetchHex { + pkg = "castore"; + version = "${version}"; + sha256 = "e03990b4db988df56262852f20de0f659871c35154691427a5047f4967a16a62"; + }; + + beamDeps = []; + }; + + certifi = buildRebar3 rec { + name = "certifi"; + version = "2.14.0"; + + src = fetchHex { + pkg = "certifi"; + version = "${version}"; + sha256 = "ea59d87ef89da429b8e905264fdec3419f84f2215bb3d81e07a18aac919026c3"; + }; + + beamDeps = []; + }; + + combine = buildMix rec { + name = "combine"; + version = "0.10.0"; + + src = fetchHex { + pkg = "combine"; + version = "${version}"; + sha256 = "1b1dbc1790073076580d0d1d64e42eae2366583e7aecd455d1215b0d16f2451b"; + }; + + beamDeps = []; + }; + + comeonin = buildMix rec { + name = "comeonin"; + version = "5.5.1"; + + src = fetchHex { + pkg = "comeonin"; + version = "${version}"; + sha256 = "65aac8f19938145377cee73973f192c5645873dcf550a8a6b18187d17c13ccdb"; + }; + + beamDeps = []; + }; + + connection = buildMix rec { + name = "connection"; + version = "1.1.0"; + + src = fetchHex { + pkg = "connection"; + version = "${version}"; + sha256 = "722c1eb0a418fbe91ba7bd59a47e28008a189d47e37e0e7bb85585a016b2869c"; + }; + + beamDeps = []; + }; + + cors_plug = buildMix rec { + name = "cors_plug"; + version = "3.0.3"; + + src = fetchHex { + pkg = "cors_plug"; + version = "${version}"; + sha256 = "3f2d759e8c272ed3835fab2ef11b46bddab8c1ab9528167bd463b6452edf830d"; + }; + + beamDeps = [ plug ]; + }; + + cowboy = buildErlangMk rec { + name = "cowboy"; + version = "2.13.0"; + + src = fetchHex { + pkg = "cowboy"; + version = "${version}"; + sha256 = "e724d3a70995025d654c1992c7b11dbfea95205c047d86ff9bf1cda92ddc5614"; + }; + + beamDeps = [ cowlib ranch ]; + }; + + cowboy_telemetry = buildRebar3 rec { + name = "cowboy_telemetry"; + version = "0.4.0"; + + src = fetchHex { + pkg = "cowboy_telemetry"; + version = "${version}"; + sha256 = "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"; + }; + + beamDeps = [ cowboy telemetry ]; + }; + + cowlib = buildRebar3 rec { + name = "cowlib"; + version = "2.14.0"; + + src = fetchHex { + pkg = "cowlib"; + version = "${version}"; + sha256 = "0af652d1550c8411c3b58eed7a035a7fb088c0b86aff6bc504b0bc3b7f791aa2"; + }; + + beamDeps = []; + }; + + credo = buildMix rec { + name = "credo"; + version = "1.7.11"; + + src = fetchHex { + pkg = "credo"; + version = "${version}"; + sha256 = "56826b4306843253a66e47ae45e98e7d284ee1f95d53d1612bb483f88a8cf219"; + }; + + beamDeps = [ bunt file_system jason ]; + }; + + custom_base = buildMix rec { + name = "custom_base"; + version = "0.2.1"; + + src = fetchHex { + pkg = "custom_base"; + version = "${version}"; + sha256 = "8df019facc5ec9603e94f7270f1ac73ddf339f56ade76a721eaa57c1493ba463"; + }; + + beamDeps = []; + }; + + db_connection = buildMix rec { + name = "db_connection"; + version = "2.7.0"; + + src = fetchHex { + pkg = "db_connection"; + version = "${version}"; + sha256 = "dcf08f31b2701f857dfc787fbad78223d61a32204f217f15e881dd93e4bdd3ff"; + }; + + beamDeps = [ telemetry ]; + }; + + decimal = buildMix rec { + name = "decimal"; + version = "2.3.0"; + + src = fetchHex { + pkg = "decimal"; + version = "${version}"; + sha256 = "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"; + }; + + beamDeps = []; + }; + + deep_merge = buildMix rec { + name = "deep_merge"; + version = "1.0.0"; + + src = fetchHex { + pkg = "deep_merge"; + version = "${version}"; + sha256 = "ce708e5f094b9cd4e8f2be4f00d2f4250c4095be93f8cd6d018c753894885430"; + }; + + beamDeps = []; + }; + + dialyxir = buildMix rec { + name = "dialyxir"; + version = "1.4.5"; + + src = fetchHex { + pkg = "dialyxir"; + version = "${version}"; + sha256 = "b0fb08bb8107c750db5c0b324fa2df5ceaa0f9307690ee3c1f6ba5b9eb5d35c3"; + }; + + beamDeps = [ erlex ]; + }; + + earmark = buildMix rec { + name = "earmark"; + version = "1.4.46"; + + src = fetchHex { + pkg = "earmark"; + version = "${version}"; + sha256 = "798d86db3d79964e759ddc0c077d5eb254968ed426399fbf5a62de2b5ff8910a"; + }; + + beamDeps = []; + }; + + earmark_parser = buildMix rec { + name = "earmark_parser"; + version = "1.4.43"; + + src = fetchHex { + pkg = "earmark_parser"; + version = "${version}"; + sha256 = "970a3cd19503f5e8e527a190662be2cee5d98eed1ff72ed9b3d1a3d466692de8"; + }; + + beamDeps = []; + }; + + eblurhash = buildRebar3 rec { + name = "eblurhash"; + version = "1.2.2"; + + src = fetchHex { + pkg = "eblurhash"; + version = "${version}"; + sha256 = "8c20ca00904de023a835a9dcb7b7762fed32264c85a80c3cafa85288e405044c"; + }; + + beamDeps = []; + }; + + ecto = buildMix rec { + name = "ecto"; + version = "3.12.5"; + + src = fetchHex { + pkg = "ecto"; + version = "${version}"; + sha256 = "6eb18e80bef8bb57e17f5a7f068a1719fbda384d40fc37acb8eb8aeca493b6ea"; + }; + + beamDeps = [ decimal jason telemetry ]; + }; + + ecto_enum = buildMix rec { + name = "ecto_enum"; + version = "1.4.0"; + + src = fetchHex { + pkg = "ecto_enum"; + version = "${version}"; + sha256 = "8fb55c087181c2b15eee406519dc22578fa60dd82c088be376d0010172764ee4"; + }; + + beamDeps = [ ecto ecto_sql postgrex ]; + }; + + ecto_psql_extras = buildMix rec { + name = "ecto_psql_extras"; + version = "0.8.7"; + + src = fetchHex { + pkg = "ecto_psql_extras"; + version = "${version}"; + sha256 = "ac0a0bce57ffe36b30fac2a2d0d427b04de016e6af5db6f4b41afa1241f39cda"; + }; + + beamDeps = [ ecto_sql postgrex table_rex ]; + }; + + ecto_sql = buildMix rec { + name = "ecto_sql"; + version = "3.12.1"; + + src = fetchHex { + pkg = "ecto_sql"; + version = "${version}"; + sha256 = "aff5b958a899762c5f09028c847569f7dfb9cc9d63bdb8133bff8a5546de6bf5"; + }; + + beamDeps = [ db_connection ecto postgrex telemetry ]; + }; + + elixir_make = buildMix rec { + name = "elixir_make"; + version = "0.9.0"; + + src = fetchHex { + pkg = "elixir_make"; + version = "${version}"; + sha256 = "db23d4fd8b757462ad02f8aa73431a426fe6671c80b200d9710caf3d1dd0ffdb"; + }; + + beamDeps = []; + }; + + elixir_xml_to_map = buildMix rec { + name = "elixir_xml_to_map"; + version = "3.1.0"; + + src = fetchHex { + pkg = "elixir_xml_to_map"; + version = "${version}"; + sha256 = "8fe5f2e75f90bab07ee2161120c2dc038ebcae8135554f5582990f1c8c21f911"; + }; + + beamDeps = [ erlsom ]; + }; + + erlex = buildMix rec { + name = "erlex"; + version = "0.2.7"; + + src = fetchHex { + pkg = "erlex"; + version = "${version}"; + sha256 = "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"; + }; + + beamDeps = []; + }; + + erlsom = buildRebar3 rec { + name = "erlsom"; + version = "1.5.2"; + + src = fetchHex { + pkg = "erlsom"; + version = "${version}"; + sha256 = "4e765cc677fb30509f7b628ff2914e124cf4dcc0fac1c0a62ee4dcee24215b5d"; + }; + + beamDeps = []; + }; + + eternal = buildMix rec { + name = "eternal"; + version = "1.2.2"; + + src = fetchHex { + pkg = "eternal"; + version = "${version}"; + sha256 = "2c9fe32b9c3726703ba5e1d43a1d255a4f3f2d8f8f9bc19f094c7cb1a7a9e782"; + }; + + beamDeps = []; + }; + + ex_aws = buildMix rec { + name = "ex_aws"; + version = "2.5.8"; + + src = fetchHex { + pkg = "ex_aws"; + version = "${version}"; + sha256 = "8f79777b7932168956c8cc3a6db41f5783aa816eb50de356aed3165a71e5f8c3"; + }; + + beamDeps = [ hackney jason mime req sweet_xml telemetry ]; + }; + + ex_aws_s3 = buildMix rec { + name = "ex_aws_s3"; + version = "2.5.6"; + + src = fetchHex { + pkg = "ex_aws_s3"; + version = "${version}"; + sha256 = "9874e12847e469ca2f13a5689be04e546c16f63caf6380870b7f25bf7cb98875"; + }; + + beamDeps = [ ex_aws sweet_xml ]; + }; + + ex_const = buildMix rec { + name = "ex_const"; + version = "0.3.0"; + + src = fetchHex { + pkg = "ex_const"; + version = "${version}"; + sha256 = "76546322abb9e40ee4a2f454cf1c8a5b25c3672fa79bed1ea52c31e0d2428ca9"; + }; + + beamDeps = []; + }; + + ex_doc = buildMix rec { + name = "ex_doc"; + version = "0.37.2"; + + src = fetchHex { + pkg = "ex_doc"; + version = "${version}"; + sha256 = "4dfa56075ce4887e4e8b1dcc121cd5fcb0f02b00391fd367ff5336d98fa49049"; + }; + + beamDeps = [ earmark_parser makeup_elixir makeup_erlang ]; + }; + + ex_machina = buildMix rec { + name = "ex_machina"; + version = "2.8.0"; + + src = fetchHex { + pkg = "ex_machina"; + version = "${version}"; + sha256 = "79fe1a9c64c0c1c1fab6c4fa5d871682cb90de5885320c187d117004627a7729"; + }; + + beamDeps = [ ecto ecto_sql ]; + }; + + ex_syslogger = buildMix rec { + name = "ex_syslogger"; + version = "2.0.0"; + + src = fetchHex { + pkg = "ex_syslogger"; + version = "${version}"; + sha256 = "a52b2fe71764e9e6ecd149ab66635812f68e39279cbeee27c52c0e35e8b8019e"; + }; + + beamDeps = [ jason syslog ]; + }; + + excoveralls = buildMix rec { + name = "excoveralls"; + version = "0.16.1"; + + src = fetchHex { + pkg = "excoveralls"; + version = "${version}"; + sha256 = "dae763468e2008cf7075a64cb1249c97cb4bc71e236c5c2b5e5cdf1cfa2bf138"; + }; + + beamDeps = [ hackney jason ]; + }; + + expo = buildMix rec { + name = "expo"; + version = "0.4.1"; + + src = fetchHex { + pkg = "expo"; + version = "${version}"; + sha256 = "2ff7ba7a798c8c543c12550fa0e2cbc81b95d4974c65855d8d15ba7b37a1ce47"; + }; + + beamDeps = []; + }; + + fast_html = buildMix rec { + name = "fast_html"; + version = "2.4.1"; + + src = fetchHex { + pkg = "fast_html"; + version = "${version}"; + sha256 = "767a63ecc941d3fc0e0e9609ded1a5e798398e5b1bf4d2f47bcb5992a86b32cf"; + }; + + beamDeps = [ elixir_make nimble_pool ]; + }; + + fast_sanitize = buildMix rec { + name = "fast_sanitize"; + version = "0.2.3"; + + src = fetchHex { + pkg = "fast_sanitize"; + version = "${version}"; + sha256 = "e8ad286d10d0386e15d67d0ee125245ebcfbc7d7290b08712ba9013c8c5e56e2"; + }; + + beamDeps = [ fast_html plug ]; + }; + + file_system = buildMix rec { + name = "file_system"; + version = "1.1.0"; + + src = fetchHex { + pkg = "file_system"; + version = "${version}"; + sha256 = "bfcf81244f416871f2a2e15c1b515287faa5db9c6bcf290222206d120b3d43f6"; + }; + + beamDeps = []; + }; + + finch = buildMix rec { + name = "finch"; + version = "0.18.0"; + + src = fetchHex { + pkg = "finch"; + version = "${version}"; + sha256 = "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"; + }; + + beamDeps = [ castore mime mint nimble_options nimble_pool telemetry ]; + }; + + flake_id = buildMix rec { + name = "flake_id"; + version = "0.1.0"; + + src = fetchHex { + pkg = "flake_id"; + version = "${version}"; + sha256 = "31fc8090fde1acd267c07c36ea7365b8604055f897d3a53dd967658c691bd827"; + }; + + beamDeps = [ base62 ecto ]; + }; + + floki = buildMix rec { + name = "floki"; + version = "0.37.0"; + + src = fetchHex { + pkg = "floki"; + version = "${version}"; + sha256 = "516a0c15a69f78c47dc8e0b9b3724b29608aa6619379f91b1ffa47109b5d0dd3"; + }; + + beamDeps = []; + }; + + gen_smtp = buildRebar3 rec { + name = "gen_smtp"; + version = "1.2.0"; + + src = fetchHex { + pkg = "gen_smtp"; + version = "${version}"; + sha256 = "5ee0375680bca8f20c4d85f58c2894441443a743355430ff33a783fe03296779"; + }; + + beamDeps = [ ranch ]; + }; + + gettext = buildMix rec { + name = "gettext"; + version = "0.22.3"; + + src = fetchHex { + pkg = "gettext"; + version = "${version}"; + sha256 = "935f23447713954a6866f1bb28c3a878c4c011e802bcd68a726f5e558e4b64bd"; + }; + + beamDeps = [ expo ]; + }; + + glob_ex = buildMix rec { + name = "glob_ex"; + version = "0.1.11"; + + src = fetchHex { + pkg = "glob_ex"; + version = "${version}"; + sha256 = "342729363056e3145e61766b416769984c329e4378f1d558b63e341020525de4"; + }; + + beamDeps = []; + }; + + hackney = buildRebar3 rec { + name = "hackney"; + version = "1.22.0"; + + src = fetchHex { + pkg = "hackney"; + version = "${version}"; + sha256 = "628569e451820950382be3d3e6481d7c59997e606c7823bddb4ce5d10812dfcb"; + }; + + beamDeps = [ certifi idna metrics mimerl parse_trans ssl_verify_fun unicode_util_compat ]; + }; + + hpax = buildMix rec { + name = "hpax"; + version = "0.1.2"; + + src = fetchHex { + pkg = "hpax"; + version = "${version}"; + sha256 = "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"; + }; + + beamDeps = []; + }; + + html_entities = buildMix rec { + name = "html_entities"; + version = "0.5.2"; + + src = fetchHex { + pkg = "html_entities"; + version = "${version}"; + sha256 = "c53ba390403485615623b9531e97696f076ed415e8d8058b1dbaa28181f4fdcc"; + }; + + beamDeps = []; + }; + + httpoison = buildMix rec { + name = "httpoison"; + version = "1.8.2"; + + src = fetchHex { + pkg = "httpoison"; + version = "${version}"; + sha256 = "2bb350d26972e30c96e2ca74a1aaf8293d61d0742ff17f01e0279fef11599921"; + }; + + beamDeps = [ hackney ]; + }; + + idna = buildRebar3 rec { + name = "idna"; + version = "6.1.1"; + + src = fetchHex { + pkg = "idna"; + version = "${version}"; + sha256 = "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"; + }; + + beamDeps = [ unicode_util_compat ]; + }; + + igniter = buildMix rec { + name = "igniter"; + version = "0.5.27"; + + src = fetchHex { + pkg = "igniter"; + version = "${version}"; + sha256 = "3042a71d4466e9c9b98a23d182eb02014a1c4802a35de0fa8233263d27c99550"; + }; + + beamDeps = [ glob_ex inflex jason owl req rewrite sourceror spitfire ]; + }; + + inet_cidr = buildMix rec { + name = "inet_cidr"; + version = "1.0.8"; + + src = fetchHex { + pkg = "inet_cidr"; + version = "${version}"; + sha256 = "d5b26da66603bb56c933c65214c72152f0de9a6ea53618b56d63302a68f6a90e"; + }; + + beamDeps = []; + }; + + inflex = buildMix rec { + name = "inflex"; + version = "2.1.0"; + + src = fetchHex { + pkg = "inflex"; + version = "${version}"; + sha256 = "14c17d05db4ee9b6d319b0bff1bdf22aa389a25398d1952c7a0b5f3d93162dd8"; + }; + + beamDeps = []; + }; + + jason = buildMix rec { + name = "jason"; + version = "1.4.4"; + + src = fetchHex { + pkg = "jason"; + version = "${version}"; + sha256 = "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"; + }; + + beamDeps = [ decimal ]; + }; + + joken = buildMix rec { + name = "joken"; + version = "2.6.2"; + + src = fetchHex { + pkg = "joken"; + version = "${version}"; + sha256 = "5134b5b0a6e37494e46dbf9e4dad53808e5e787904b7c73972651b51cce3d72b"; + }; + + beamDeps = [ jose ]; + }; + + jose = buildMix rec { + name = "jose"; + version = "1.11.10"; + + src = fetchHex { + pkg = "jose"; + version = "${version}"; + sha256 = "0d6cd36ff8ba174db29148fc112b5842186b68a90ce9fc2b3ec3afe76593e614"; + }; + + beamDeps = []; + }; + + jumper = buildMix rec { + name = "jumper"; + version = "1.0.2"; + + src = fetchHex { + pkg = "jumper"; + version = "${version}"; + sha256 = "9b7782409021e01ab3c08270e26f36eb62976a38c1aa64b2eaf6348422f165e1"; + }; + + beamDeps = []; + }; + + linkify = buildMix rec { + name = "linkify"; + version = "0.5.3"; + + src = fetchHex { + pkg = "linkify"; + version = "${version}"; + sha256 = "3ef35a1377d47c25506e07c1c005ea9d38d700699d92ee92825f024434258177"; + }; + + beamDeps = []; + }; + + mail = buildMix rec { + name = "mail"; + version = "0.4.3"; + + src = fetchHex { + pkg = "mail"; + version = "${version}"; + sha256 = "164975550b977e47cab431c403b0e90c8ce542036d32c7189b83839d8d7d391b"; + }; + + beamDeps = []; + }; + + makeup = buildMix rec { + name = "makeup"; + version = "1.2.1"; + + src = fetchHex { + pkg = "makeup"; + version = "${version}"; + sha256 = "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"; + }; + + beamDeps = [ nimble_parsec ]; + }; + + makeup_elixir = buildMix rec { + name = "makeup_elixir"; + version = "1.0.1"; + + src = fetchHex { + pkg = "makeup_elixir"; + version = "${version}"; + sha256 = "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"; + }; + + beamDeps = [ makeup nimble_parsec ]; + }; + + makeup_erlang = buildMix rec { + name = "makeup_erlang"; + version = "1.0.2"; + + src = fetchHex { + pkg = "makeup_erlang"; + version = "${version}"; + sha256 = "af33ff7ef368d5893e4a267933e7744e46ce3cf1f61e2dccf53a111ed3aa3727"; + }; + + beamDeps = [ makeup ]; + }; + + meck = buildRebar3 rec { + name = "meck"; + version = "0.9.2"; + + src = fetchHex { + pkg = "meck"; + version = "${version}"; + sha256 = "81344f561357dc40a8344afa53767c32669153355b626ea9fcbc8da6b3045826"; + }; + + beamDeps = []; + }; + + metrics = buildRebar3 rec { + name = "metrics"; + version = "1.0.1"; + + src = fetchHex { + pkg = "metrics"; + version = "${version}"; + sha256 = "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"; + }; + + beamDeps = []; + }; + + mime = buildMix rec { + name = "mime"; + version = "2.0.6"; + + src = fetchHex { + pkg = "mime"; + version = "${version}"; + sha256 = "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"; + }; + + beamDeps = []; + }; + + mimerl = buildRebar3 rec { + name = "mimerl"; + version = "1.3.0"; + + src = fetchHex { + pkg = "mimerl"; + version = "${version}"; + sha256 = "a1e15a50d1887217de95f0b9b0793e32853f7c258a5cd227650889b38839fe9d"; + }; + + beamDeps = []; + }; + + mint = buildMix rec { + name = "mint"; + version = "1.5.2"; + + src = fetchHex { + pkg = "mint"; + version = "${version}"; + sha256 = "d77d9e9ce4eb35941907f1d3df38d8f750c357865353e21d335bdcdf6d892a02"; + }; + + beamDeps = [ castore hpax ]; + }; + + mneme = buildMix rec { + name = "mneme"; + version = "0.10.2"; + + src = fetchHex { + pkg = "mneme"; + version = "${version}"; + sha256 = "3b9493fc114c4bb0f6232e021620ffd7944819b9b9105a5b286b6dc907f7720a"; + }; + + beamDeps = [ file_system igniter nimble_options owl rewrite sourceror text_diff ]; + }; + + mock = buildMix rec { + name = "mock"; + version = "0.3.9"; + + src = fetchHex { + pkg = "mock"; + version = "${version}"; + sha256 = "9e1b244c4ca2551bb17bb8415eed89e40ee1308e0fbaed0a4fdfe3ec8a4adbd3"; + }; + + beamDeps = [ meck ]; + }; + + mogrify = buildMix rec { + name = "mogrify"; + version = "0.9.3"; + + src = fetchHex { + pkg = "mogrify"; + version = "${version}"; + sha256 = "0189b1e1de27455f2b9ae8cf88239cefd23d38de9276eb5add7159aea51731e6"; + }; + + beamDeps = []; + }; + + mox = buildMix rec { + name = "mox"; + version = "1.2.0"; + + src = fetchHex { + pkg = "mox"; + version = "${version}"; + sha256 = "c7b92b3cc69ee24a7eeeaf944cd7be22013c52fcb580c1f33f50845ec821089a"; + }; + + beamDeps = [ nimble_ownership ]; + }; + + nimble_options = buildMix rec { + name = "nimble_options"; + version = "1.1.1"; + + src = fetchHex { + pkg = "nimble_options"; + version = "${version}"; + sha256 = "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"; + }; + + beamDeps = []; + }; + + nimble_ownership = buildMix rec { + name = "nimble_ownership"; + version = "1.0.1"; + + src = fetchHex { + pkg = "nimble_ownership"; + version = "${version}"; + sha256 = "3825e461025464f519f3f3e4a1f9b68c47dc151369611629ad08b636b73bb22d"; + }; + + beamDeps = []; + }; + + nimble_parsec = buildMix rec { + name = "nimble_parsec"; + version = "1.4.2"; + + src = fetchHex { + pkg = "nimble_parsec"; + version = "${version}"; + sha256 = "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"; + }; + + beamDeps = []; + }; + + nimble_pool = buildMix rec { + name = "nimble_pool"; + version = "1.1.0"; + + src = fetchHex { + pkg = "nimble_pool"; + version = "${version}"; + sha256 = "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"; + }; + + beamDeps = []; + }; + + oban = buildMix rec { + name = "oban"; + version = "2.19.2"; + + src = fetchHex { + pkg = "oban"; + version = "${version}"; + sha256 = "de8314b00b31d17f98fd2c76781f80c1cfc8621122b41830c0834486c44e1087"; + }; + + beamDeps = [ ecto_sql igniter jason postgrex telemetry ]; + }; + + oban_met = buildMix rec { + name = "oban_met"; + version = "1.0.1"; + + src = fetchHex { + pkg = "oban_met"; + version = "${version}"; + sha256 = "0492d841f880b76c5b73081bc70ebea20ebacc08e871345f72c2270513f09957"; + }; + + beamDeps = [ oban ]; + }; + + oban_web = buildMix rec { + name = "oban_web"; + version = "2.11.1"; + + src = fetchHex { + pkg = "oban_web"; + version = "${version}"; + sha256 = "d853c6af3f7c20d03a2bf7b1baad71835d50fbb98af05004e9b51da558b90b01"; + }; + + beamDeps = [ jason oban oban_met phoenix phoenix_html phoenix_live_view phoenix_pubsub ]; + }; + + open_api_spex = buildMix rec { + name = "open_api_spex"; + version = "3.21.2"; + + src = fetchHex { + pkg = "open_api_spex"; + version = "${version}"; + sha256 = "f42ae6ed668b895ebba3e02773cfb4b41050df26f803f2ef634c72a7687dc387"; + }; + + beamDeps = [ decimal jason plug poison ]; + }; + + owl = buildMix rec { + name = "owl"; + version = "0.12.2"; + + src = fetchHex { + pkg = "owl"; + version = "${version}"; + sha256 = "6398efa9e1fea70a04d24231e10dcd66c1ac1aa2da418d20ef5357ec61de2880"; + }; + + beamDeps = []; + }; + + parse_trans = buildRebar3 rec { + name = "parse_trans"; + version = "3.4.1"; + + src = fetchHex { + pkg = "parse_trans"; + version = "${version}"; + sha256 = "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"; + }; + + beamDeps = []; + }; + + phoenix = buildMix rec { + name = "phoenix"; + version = "1.7.20"; + + src = fetchHex { + pkg = "phoenix"; + version = "${version}"; + sha256 = "6be2ab98302e8784a31829e0d50d8bdfa81a23cd912c395bafd8b8bfb5a086c2"; + }; + + beamDeps = [ castore jason phoenix_pubsub phoenix_template phoenix_view plug plug_cowboy plug_crypto telemetry websock_adapter ]; + }; + + phoenix_ecto = buildMix rec { + name = "phoenix_ecto"; + version = "4.6.3"; + + src = fetchHex { + pkg = "phoenix_ecto"; + version = "${version}"; + sha256 = "909502956916a657a197f94cc1206d9a65247538de8a5e186f7537c895d95764"; + }; + + beamDeps = [ ecto phoenix_html plug postgrex ]; + }; + + phoenix_html = buildMix rec { + name = "phoenix_html"; + version = "3.3.4"; + + src = fetchHex { + pkg = "phoenix_html"; + version = "${version}"; + sha256 = "0249d3abec3714aff3415e7ee3d9786cb325be3151e6c4b3021502c585bf53fb"; + }; + + beamDeps = [ plug ]; + }; + + phoenix_live_dashboard = buildMix rec { + name = "phoenix_live_dashboard"; + version = "0.8.6"; + + src = fetchHex { + pkg = "phoenix_live_dashboard"; + version = "${version}"; + sha256 = "1681ab813ec26ca6915beb3414aa138f298e17721dc6a2bde9e6eb8a62360ff6"; + }; + + beamDeps = [ ecto ecto_psql_extras mime phoenix_live_view telemetry_metrics ]; + }; + + phoenix_live_view = buildMix rec { + name = "phoenix_live_view"; + version = "1.0.4"; + + src = fetchHex { + pkg = "phoenix_live_view"; + version = "${version}"; + sha256 = "a9865316ddf8d78f382d63af278d20436b52d262b60239956817a61279514366"; + }; + + beamDeps = [ floki jason phoenix phoenix_html phoenix_template phoenix_view plug telemetry ]; + }; + + phoenix_pubsub = buildMix rec { + name = "phoenix_pubsub"; + version = "2.1.3"; + + src = fetchHex { + pkg = "phoenix_pubsub"; + version = "${version}"; + sha256 = "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"; + }; + + beamDeps = []; + }; + + phoenix_swoosh = buildMix rec { + name = "phoenix_swoosh"; + version = "1.2.1"; + + src = fetchHex { + pkg = "phoenix_swoosh"; + version = "${version}"; + sha256 = "4000eeba3f9d7d1a6bf56d2bd56733d5cadf41a7f0d8ffe5bb67e7d667e204a2"; + }; + + beamDeps = [ finch hackney phoenix phoenix_html phoenix_view swoosh ]; + }; + + phoenix_template = buildMix rec { + name = "phoenix_template"; + version = "1.0.4"; + + src = fetchHex { + pkg = "phoenix_template"; + version = "${version}"; + sha256 = "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"; + }; + + beamDeps = [ phoenix_html ]; + }; + + phoenix_view = buildMix rec { + name = "phoenix_view"; + version = "2.0.4"; + + src = fetchHex { + pkg = "phoenix_view"; + version = "${version}"; + sha256 = "4e992022ce14f31fe57335db27a28154afcc94e9983266835bb3040243eb620b"; + }; + + beamDeps = [ phoenix_html phoenix_template ]; + }; + + plug = buildMix rec { + name = "plug"; + version = "1.16.1"; + + src = fetchHex { + pkg = "plug"; + version = "${version}"; + sha256 = "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"; + }; + + beamDeps = [ mime plug_crypto telemetry ]; + }; + + plug_cowboy = buildMix rec { + name = "plug_cowboy"; + version = "2.7.2"; + + src = fetchHex { + pkg = "plug_cowboy"; + version = "${version}"; + sha256 = "245d8a11ee2306094840c000e8816f0cbed69a23fc0ac2bcf8d7835ae019bb2f"; + }; + + beamDeps = [ cowboy cowboy_telemetry plug ]; + }; + + plug_crypto = buildMix rec { + name = "plug_crypto"; + version = "2.1.0"; + + src = fetchHex { + pkg = "plug_crypto"; + version = "${version}"; + sha256 = "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"; + }; + + beamDeps = []; + }; + + plug_static_index_html = buildMix rec { + name = "plug_static_index_html"; + version = "1.0.0"; + + src = fetchHex { + pkg = "plug_static_index_html"; + version = "${version}"; + sha256 = "79fd4fcf34d110605c26560cbae8f23c603ec4158c08298bd4360fdea90bb5cf"; + }; + + beamDeps = [ plug ]; + }; + + poison = buildMix rec { + name = "poison"; + version = "5.0.0"; + + src = fetchHex { + pkg = "poison"; + version = "${version}"; + sha256 = "11dc6117c501b80c62a7594f941d043982a1bd05a1184280c0d9166eb4d8d3fc"; + }; + + beamDeps = [ decimal ]; + }; + + poolboy = buildRebar3 rec { + name = "poolboy"; + version = "1.5.2"; + + src = fetchHex { + pkg = "poolboy"; + version = "${version}"; + sha256 = "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"; + }; + + beamDeps = []; + }; + + postgrex = buildMix rec { + name = "postgrex"; + version = "0.20.0"; + + src = fetchHex { + pkg = "postgrex"; + version = "${version}"; + sha256 = "d36ef8b36f323d29505314f704e21a1a038e2dc387c6409ee0cd24144e187c0f"; + }; + + beamDeps = [ db_connection decimal jason ]; + }; + + pot = buildRebar3 rec { + name = "pot"; + version = "1.0.2"; + + src = fetchHex { + pkg = "pot"; + version = "${version}"; + sha256 = "78fe127f5a4f5f919d6ea5a2a671827bd53eb9d37e5b4128c0ad3df99856c2e0"; + }; + + beamDeps = []; + }; + + ranch = buildRebar3 rec { + name = "ranch"; + version = "2.2.0"; + + src = fetchHex { + pkg = "ranch"; + version = "${version}"; + sha256 = "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"; + }; + + beamDeps = []; + }; + + recon = buildMix rec { + name = "recon"; + version = "2.5.6"; + + src = fetchHex { + pkg = "recon"; + version = "${version}"; + sha256 = "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0"; + }; + + beamDeps = []; + }; + + remote_ip = buildMix rec { + name = "remote_ip"; + version = "1.1.0"; + + src = fetchHex { + pkg = "remote_ip"; + version = "${version}"; + sha256 = "616ffdf66aaad6a72fc546dabf42eed87e2a99e97b09cbd92b10cc180d02ed74"; + }; + + beamDeps = [ combine plug ]; + }; + + req = buildMix rec { + name = "req"; + version = "0.5.8"; + + src = fetchHex { + pkg = "req"; + version = "${version}"; + sha256 = "d7fc5898a566477e174f26887821a3c5082b243885520ee4b45555f5d53f40ef"; + }; + + beamDeps = [ finch jason mime plug ]; + }; + + rewrite = buildMix rec { + name = "rewrite"; + version = "1.1.2"; + + src = fetchHex { + pkg = "rewrite"; + version = "${version}"; + sha256 = "7f8b94b1e3528d0a47b3e8b7bfeca559d2948a65fa7418a9ad7d7712703d39d4"; + }; + + beamDeps = [ glob_ex sourceror text_diff ]; + }; + + sleeplocks = buildRebar3 rec { + name = "sleeplocks"; + version = "1.1.3"; + + src = fetchHex { + pkg = "sleeplocks"; + version = "${version}"; + sha256 = "d3b3958552e6eb16f463921e70ae7c767519ef8f5be46d7696cc1ed649421321"; + }; + + beamDeps = []; + }; + + sourceror = buildMix rec { + name = "sourceror"; + version = "1.7.1"; + + src = fetchHex { + pkg = "sourceror"; + version = "${version}"; + sha256 = "cd6f268fe29fa00afbc535e215158680a0662b357dc784646d7dff28ac65a0fc"; + }; + + beamDeps = []; + }; + + spitfire = buildMix rec { + name = "spitfire"; + version = "0.1.5"; + + src = fetchHex { + pkg = "spitfire"; + version = "${version}"; + sha256 = "866a55d21fe827934ff38200111335c9dd311df13cbf2580ed71d84b0a783150"; + }; + + beamDeps = []; + }; + + ssl_verify_fun = buildRebar3 rec { + name = "ssl_verify_fun"; + version = "1.1.7"; + + src = fetchHex { + pkg = "ssl_verify_fun"; + version = "${version}"; + sha256 = "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"; + }; + + beamDeps = []; + }; + + statistex = buildMix rec { + name = "statistex"; + version = "1.0.0"; + + src = fetchHex { + pkg = "statistex"; + version = "${version}"; + sha256 = "ff9d8bee7035028ab4742ff52fc80a2aa35cece833cf5319009b52f1b5a86c27"; + }; + + beamDeps = []; + }; + + sweet_xml = buildMix rec { + name = "sweet_xml"; + version = "0.7.5"; + + src = fetchHex { + pkg = "sweet_xml"; + version = "${version}"; + sha256 = "193b28a9b12891cae351d81a0cead165ffe67df1b73fe5866d10629f4faefb12"; + }; + + beamDeps = []; + }; + + swoosh = buildMix rec { + name = "swoosh"; + version = "1.14.4"; + + src = fetchHex { + pkg = "swoosh"; + version = "${version}"; + sha256 = "081c5a590e4ba85cc89baddf7b2beecf6c13f7f84a958f1cd969290815f0f026"; + }; + + beamDeps = [ cowboy ex_aws finch gen_smtp hackney jason mail mime plug plug_cowboy req telemetry ]; + }; + + syslog = buildRebar3 rec { + name = "syslog"; + version = "1.1.0"; + + src = fetchHex { + pkg = "syslog"; + version = "${version}"; + sha256 = "4c6a41373c7e20587be33ef841d3de6f3beba08519809329ecc4d27b15b659e1"; + }; + + beamDeps = []; + }; + + table_rex = buildMix rec { + name = "table_rex"; + version = "4.1.0"; + + src = fetchHex { + pkg = "table_rex"; + version = "${version}"; + sha256 = "95932701df195d43bc2d1c6531178fc8338aa8f38c80f098504d529c43bc2601"; + }; + + beamDeps = []; + }; + + telemetry = buildRebar3 rec { + name = "telemetry"; + version = "1.3.0"; + + src = fetchHex { + pkg = "telemetry"; + version = "${version}"; + sha256 = "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"; + }; + + beamDeps = []; + }; + + telemetry_metrics = buildMix rec { + name = "telemetry_metrics"; + version = "0.6.2"; + + src = fetchHex { + pkg = "telemetry_metrics"; + version = "${version}"; + sha256 = "9b43db0dc33863930b9ef9d27137e78974756f5f198cae18409970ed6fa5b561"; + }; + + beamDeps = [ telemetry ]; + }; + + telemetry_metrics_prometheus = buildMix rec { + name = "telemetry_metrics_prometheus"; + version = "1.1.0"; + + src = fetchHex { + pkg = "telemetry_metrics_prometheus"; + version = "${version}"; + sha256 = "d43b3659b3244da44fe0275b717701542365d4519b79d9ce895b9719c1ce4d26"; + }; + + beamDeps = [ plug_cowboy telemetry_metrics_prometheus_core ]; + }; + + telemetry_metrics_prometheus_core = buildMix rec { + name = "telemetry_metrics_prometheus_core"; + version = "1.1.0"; + + src = fetchHex { + pkg = "telemetry_metrics_prometheus_core"; + version = "${version}"; + sha256 = "0dd10e7fe8070095df063798f82709b0a1224c31b8baf6278b423898d591a069"; + }; + + beamDeps = [ telemetry telemetry_metrics ]; + }; + + telemetry_poller = buildRebar3 rec { + name = "telemetry_poller"; + version = "1.1.0"; + + src = fetchHex { + pkg = "telemetry_poller"; + version = "${version}"; + sha256 = "9eb9d9cbfd81cbd7cdd24682f8711b6e2b691289a0de6826e58452f28c103c8f"; + }; + + beamDeps = [ telemetry ]; + }; + + tesla = buildMix rec { + name = "tesla"; + version = "1.14.1"; + + src = fetchHex { + pkg = "tesla"; + version = "${version}"; + sha256 = "c1dde8140a49a3bef5bb622356e77ac5a24ad0c8091f12c3b7fc1077ce797155"; + }; + + beamDeps = [ castore finch hackney jason mime mint mox poison telemetry ]; + }; + + text_diff = buildMix rec { + name = "text_diff"; + version = "0.1.0"; + + src = fetchHex { + pkg = "text_diff"; + version = "${version}"; + sha256 = "d1ffaaecab338e49357b6daa82e435f877e0649041ace7755583a0ea3362dbd7"; + }; + + beamDeps = []; + }; + + timex = buildMix rec { + name = "timex"; + version = "3.7.11"; + + src = fetchHex { + pkg = "timex"; + version = "${version}"; + sha256 = "8b9024f7efbabaf9bd7aa04f65cf8dcd7c9818ca5737677c7b76acbc6a94d1aa"; + }; + + beamDeps = [ combine gettext tzdata ]; + }; + + trailing_format_plug = buildMix rec { + name = "trailing_format_plug"; + version = "0.0.7"; + + src = fetchHex { + pkg = "trailing_format_plug"; + version = "${version}"; + sha256 = "bd4fde4c15f3e993a999e019d64347489b91b7a9096af68b2bdadd192afa693f"; + }; + + beamDeps = [ plug ]; + }; + + tzdata = buildMix rec { + name = "tzdata"; + version = "1.1.2"; + + src = fetchHex { + pkg = "tzdata"; + version = "${version}"; + sha256 = "cec7b286e608371602318c414f344941d5eb0375e14cfdab605cca2fe66cba8b"; + }; + + beamDeps = [ hackney ]; + }; + + ueberauth = buildMix rec { + name = "ueberauth"; + version = "0.10.5"; + + src = fetchHex { + pkg = "ueberauth"; + version = "${version}"; + sha256 = "3efd1f31d490a125c7ed453b926f7c31d78b97b8a854c755f5c40064bf3ac9e1"; + }; + + beamDeps = [ plug ]; + }; + + unicode_util_compat = buildRebar3 rec { + name = "unicode_util_compat"; + version = "0.7.0"; + + src = fetchHex { + pkg = "unicode_util_compat"; + version = "${version}"; + sha256 = "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"; + }; + + beamDeps = []; + }; + + unsafe = buildMix rec { + name = "unsafe"; + version = "1.0.2"; + + src = fetchHex { + pkg = "unsafe"; + version = "${version}"; + sha256 = "b485231683c3ab01a9cd44cb4a79f152c6f3bb87358439c6f68791b85c2df675"; + }; + + beamDeps = []; + }; + + vex = buildMix rec { + name = "vex"; + version = "0.9.2"; + + src = fetchHex { + pkg = "vex"; + version = "${version}"; + sha256 = "76e709a9762e98c6b462dfce92e9b5dfbf712839227f2da8add6dd11549b12cb"; + }; + + beamDeps = []; + }; + + web_push_encryption = buildMix rec { + name = "web_push_encryption"; + version = "0.3.1"; + + src = fetchHex { + pkg = "web_push_encryption"; + version = "${version}"; + sha256 = "4f82b2e57622fb9337559058e8797cb0df7e7c9790793bdc4e40bc895f70e2a2"; + }; + + beamDeps = [ httpoison jose ]; + }; + + websock = buildMix rec { + name = "websock"; + version = "0.5.3"; + + src = fetchHex { + pkg = "websock"; + version = "${version}"; + sha256 = "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"; + }; + + beamDeps = []; + }; + + websock_adapter = buildMix rec { + name = "websock_adapter"; + version = "0.5.8"; + + src = fetchHex { + pkg = "websock_adapter"; + version = "${version}"; + sha256 = "315b9a1865552212b5f35140ad194e67ce31af45bcee443d4ecb96b5fd3f3782"; + }; + + beamDeps = [ plug plug_cowboy websock ]; + }; + + websockex = buildMix rec { + name = "websockex"; + version = "0.4.3"; + + src = fetchHex { + pkg = "websockex"; + version = "${version}"; + sha256 = "95f2e7072b85a3a4cc385602d42115b73ce0b74a9121d0d6dbbf557645ac53e4"; + }; + + beamDeps = []; + }; + }; +in self + diff --git a/pkgs/apply-config/apply-config b/pkgs/apply-config/apply-config index c411ce1..4fea8ca 100755 --- a/pkgs/apply-config/apply-config +++ b/pkgs/apply-config/apply-config @@ -84,7 +84,9 @@ Options: (let ([built-config (build-config)]) (log-verbose (format "built config is ~a" built-config)) (install-in-env built-config) - (switch-to-configuration built-config)))) + (switch-to-configuration built-config)) + + 0)) (define (build-config) diff --git a/pkgs/bookwyrm.nix b/pkgs/bookwyrm.nix deleted file mode 100644 index 7a5daec..0000000 --- a/pkgs/bookwyrm.nix +++ /dev/null @@ -1,138 +0,0 @@ -{ lib -, fetchFromGitHub -, python -, writeShellScriptBin -, writeText -, settings ? { } -}: - -let - # set some dummy values to make the package build - settingsWithDefaults = { - DOMAIN = "localhost"; - DEBUG = false; - USE_HTTPS = false; - EMAIL = "your@email.here"; - PGPORT = 5432; - POSTGRES_USER = "bookwyrm"; - POSTGRES_DB = "bookwyrm"; - POSTGRES_HOST = "localhost"; - REDIS_ACTIVITY_HOST = "localhost"; - REDIS_ACTIVITY_PORT = 6379; - REDIS_BROKER_HOST = "localhost"; - REDIS_BROKER_PORT = 6379; - EMAIL_HOST = "smtp.example.com"; - EMAIL_PORT = 587; - EMAIL_HOST_USER = "mail@example.org"; - EMAIL_HOST_PASSWORD = "blub"; - MEDIA_ROOT = "/var/lib/bookwyrm/images"; - } // settings; - - # toShellVar produces "" for false, which bookwyrm rejects - toDjangoVar = name: value: lib.toShellVar name - (if value == false then "false" else - (if value == true then "true" else value)); - - envfile = writeText "bookwyrm.env" - (lib.strings.concatLines - (lib.mapAttrsToList toDjangoVar settingsWithDefaults)); - - bookwyrm = python.pkgs.buildPythonApplication rec { - pname = "bookwyrm"; - version = "0.7.2"; - - format = "other"; - - src = fetchFromGitHub { - owner = "bookwyrm-social"; - repo = "bookwyrm"; - rev = "refs/tags/v${version}"; - hash = "sha256-5QhIHpNUn65qTh7ARlnGfUESoxw8hqFaoS2D2z+OSlM="; - }; - - propagatedBuildInputs = with python.pkgs; [ - aiohttp - bleach - celery - colorthief - django - django-celery-beat - bw-file-resubmit - django-compressor - django-imagekit - django-model-utils - django-sass-processor - django-csp - environs - flower - gunicorn - libsass - markdown - packaging - pillow - psycopg2 - pycryptodome - dateutil - redis - requests - responses - pytz - boto3 - django-storages - django-redis - opentelemetry-api - opentelemetry-exporter-otlp-proto-grpc - # opentelemetry-instrumentation-celery - opentelemetry-instrumentation-django - # opentelemetry-instrumentation-pyscopg2 - opentelemetry-sdk - protobuf - pyotp - qrcode - grpcio - ]; - - postBuild = '' - ln -s ${envfile} .env - # needed for the python settings.py file to not fail, but not - # used during the commands executed below, so this is safe - export SECRET_KEY=fnord - - substituteInPlace contrib/systemd/* \ - --replace /opt/bookwyrm/venv/bin/gunicorn ${lib.getExe python.pkgs.gunicorn} \ - --replace /opt/bookwyrm/venv/bin/celery ${lib.getExe' python.pkgs.celery "celery"} \ - --replace /opt/bookwyrm $out - - sed -i /BindPath/d contrib/systemd/* - - python manage.py compile_themes - python manage.py collectstatic --no-input - ''; - - postInstall = '' - mkdir -p $out/lib/systemd/system - cp -r * .env $out - cp -r contrib/systemd/* $out/lib/systemd/system - ''; - - passthru = { - pythonPath = python.pkgs.makePythonPath propagatedBuildInputs; - gunicorn = python.pkgs.gunicorn; - celery = python.pkgs.celery; - manage = environmentFile: writeShellScriptBin "bookwyrm-manage.py" '' - set -a - ${if environmentFile != null - then "source ${environmentFile}" - else ""} - export PYTHONPATH=${passthru.pythonPath} - cd ${bookwyrm.outPath} - exec ${bookwyrm.outPath}/manage.py "$@" - ''; - }; - - # hacky hacky hack - shellHook = '' - export PYTHONPATH=${passthru.pythonPath} - ''; - }; -in bookwyrm diff --git a/pkgs/bookwyrm/default.nix b/pkgs/bookwyrm/default.nix new file mode 100644 index 0000000..e4c55bf --- /dev/null +++ b/pkgs/bookwyrm/default.nix @@ -0,0 +1,94 @@ +{ lib +, stdenvNoCC +, writeShellScriptBin +, writeText +, source-han-sans-vf-ttf +, bookwyrm-unwrapped +, settings ? { } +}: + +let + # set some dummy values to make the package build + settingsWithDefaults = { + DOMAIN = "localhost"; + DEBUG = false; + USE_HTTPS = false; + EMAIL = "your@email.here"; + PGPORT = 5432; + POSTGRES_USER = "bookwyrm"; + POSTGRES_DB = "bookwyrm"; + POSTGRES_HOST = "localhost"; + REDIS_ACTIVITY_HOST = "localhost"; + REDIS_ACTIVITY_PORT = 6379; + REDIS_BROKER_HOST = "localhost"; + REDIS_BROKER_PORT = 6379; + EMAIL_HOST = "smtp.example.com"; + EMAIL_PORT = 587; + EMAIL_HOST_USER = "mail@example.org"; + EMAIL_HOST_PASSWORD = "blub"; + MEDIA_ROOT = "/var/lib/bookwyrm/images"; + } // settings; + + # toShellVar produces "" for false, which bookwyrm rejects + toDjangoVar = name: value: lib.toShellVar name + (if value == false then "false" else + (if value == true then "true" else value)); + + envfile = writeText "bookwyrm.env" + (lib.strings.concatLines + (lib.mapAttrsToList toDjangoVar settingsWithDefaults)); + +in stdenvNoCC.mkDerivation (finalAttrs: { + pname = "bookwyrm"; + inherit (bookwyrm-unwrapped) version; + src = bookwyrm-unwrapped; + + dontConfigure = true; + + buildPhase = '' + runHook preBuild + + ln -s ${envfile} .env + # needed for the python settings.py file to not fail, but not + # used during the commands executed below, so this is safe + export SECRET_KEY=fnord + + export PYTHONPATH=${bookwyrm-unwrapped.pythonPath} + ./manage.py compile_themes + ./manage.py collectstatic --no-input + + ln -s ${source-han-sans-vf-ttf}/share/fonts/variable/SourceHanSans-VF.ttf.ttc static/fonts/source_han_sans/ + + substituteInPlace contrib/systemd/* \ + --replace /opt/bookwyrm/venv/bin/gunicorn ${lib.getExe bookwyrm-unwrapped.gunicorn} \ + --replace /opt/bookwyrm/venv/bin/celery ${lib.getExe' bookwyrm-unwrapped.celery "celery"} \ + --replace /opt/bookwyrm $out + + sed -i /BindPath/d contrib/systemd/* + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/systemd/system + cp -r * .env $out + cp -r contrib/systemd/* $out/lib/systemd/system + + runHook postInstall + ''; + + passthru = rec { + inherit (bookwyrm-unwrapped) celery gunicorn pythonPath; + manage = environmentFile: writeShellScriptBin "bookwyrm-manage.py" '' + set -a + ${if environmentFile != null + then "source ${environmentFile}" + else ""} + export PYTHONPATH=${pythonPath} + cd ${finalAttrs.finalPackage.outPath} + exec ${finalAttrs.finalPackage.outPath}/manage.py "$@" + ''; + }; +}) diff --git a/pkgs/bookwyrm/unwrapped.nix b/pkgs/bookwyrm/unwrapped.nix new file mode 100644 index 0000000..151a9b5 --- /dev/null +++ b/pkgs/bookwyrm/unwrapped.nix @@ -0,0 +1,80 @@ +{ lib +, fetchFromGitHub +, python +}: + +python.pkgs.buildPythonApplication rec { + pname = "bookwyrm-unwrapped"; + version = "0.7.5"; + + format = "other"; + + src = fetchFromGitHub { + owner = "bookwyrm-social"; + repo = "bookwyrm"; + rev = "refs/tags/v${version}"; + hash = "sha256-/oak9dEB2rR2z8b9oXVQ6+F2H7s0F5hVxmAlPdpaA0w="; + }; + + propagatedBuildInputs = with python.pkgs; [ + aiohttp + bleach + celery + colorthief + django + django-celery-beat + bw-file-resubmit + django-compressor + django-imagekit + django-model-utils + django-sass-processor + django-csp + django-oauth-toolkit + django-storages + django-pgtrigger + s3-tar + environs + flower + gunicorn + libsass + markdown + packaging + pillow + psycopg2 + pycryptodome + dateutil + redis + requests + responses + pytz + boto3 + django-storages + django-redis + opentelemetry-api + opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-instrumentation-celery + opentelemetry-instrumentation-django + # opentelemetry-instrumentation-pyscopg2 + opentelemetry-sdk + protobuf + pyotp + qrcode + grpcio + ]; + + postInstall = '' + mkdir $out + cp -r * $out + ''; + + passthru = { + pythonPath = python.pkgs.makePythonPath propagatedBuildInputs; + gunicorn = python.pkgs.gunicorn; + celery = python.pkgs.celery; + }; + + # hacky hacky hack + shellHook = '' + export PYTHONPATH=${passthru.pythonPath} + ''; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index f9d50c0..9e4b3b4 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -7,7 +7,7 @@ travelynx crs-tracker crs-php bahnhof-name matrix-to hikari_unstable heartwood radicle-interface radicle-tui inweb nomsring bookwyrm mollysocket git-annex-remote-remarkable2 - ntfy-matrix-bot transport_validator; + ntfy-matrix-bot transport_validator mergiraf git-who; pkgs = nixpkgs; } diff --git a/pkgs/hikari.nix b/pkgs/hikari.nix index 2adebe9..afbc335 100644 --- a/pkgs/hikari.nix +++ b/pkgs/hikari.nix @@ -1,7 +1,8 @@ { lib, stdenv, fetchzip , pkg-config, bmake , cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman -, libucl, wayland, wayland-protocols, wlroots, mesa +, libucl, wayland, wayland-protocols, wayland-scanner, wlroots, mesa +, libdrm, libgbm , features ? { gammacontrol = true; layershell = true; @@ -27,6 +28,8 @@ stdenv.mkDerivation rec { libevdev libinput libxkbcommon + libdrm + libgbm linux-pam pango pixman @@ -34,6 +37,7 @@ stdenv.mkDerivation rec { mesa # for libEGL wayland wayland-protocols + wayland-scanner wlroots ]; diff --git a/pkgs/mollysocket.nix b/pkgs/mollysocket.nix index 8ac434d..a58c1a0 100644 --- a/pkgs/mollysocket.nix +++ b/pkgs/mollysocket.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "mollysocket"; - version = "1.2.0"; + version = "1.5.3"; src = fetchFromGitHub { owner = "mollyim"; repo = "mollysocket"; rev = "${version}"; - hash = "sha256-9yXC64i5NeSjsLnjgNtA+qkhE7i+Ku1Cu8B9xDajD9Y="; + hash = "sha256-2OWkPTbrD4oXHoB+qszVjLr0e/AUuNnuaYXZ3kOyuxg="; }; - cargoHash = "sha256-vqi18y1Z9Fo1P6ihdN1LCK6Trr7fcfzCsQfPNt0MYNk="; + cargoHash = "sha256-fR87PUgb+F2Q4vRYUonmGi6JzJLvGWPEKhwHw+TAsyQ="; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/nomsring/nomsring.cabal b/pkgs/nomsring/nomsring.cabal index fca40c5..ea3625f 100644 --- a/pkgs/nomsring/nomsring.cabal +++ b/pkgs/nomsring/nomsring.cabal @@ -13,7 +13,7 @@ common warnings executable nomsring import: warnings main-is: Main.hs - build-depends: base ^>=4.18 + build-depends: base , cgi ^>=3001.5 , data-clist ^>= 0.2 default-language: GHC2021 diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix index 3a37b8f..687d5cf 100644 --- a/pkgs/overlay.nix +++ b/pkgs/overlay.nix @@ -12,7 +12,7 @@ let radicle = import ./radicle.nix; in { - beam = super.beam_nox; + beam = super.beam_minimal; git-annex-remote-remarkable2 = self.callPackage ({ rustPlatform, fetchgit, ... }: @@ -21,7 +21,7 @@ in src = fetchgit { url = "https://stuebinm.eu/git/git-annex-remote-remarkable2"; rev = "refs/heads/main"; - hash = "sha256-ZDoZFFADti3ZwLZqeP/F3BbW+Csuprw6+1LBBQIjnlo="; + hash = "sha256-Lgo+9FxJQ/ozBf79llYBu10JYMDvXn2vYkHbOZjRu/Y="; }; cargoLock.lockFile = "${src.outPath}/Cargo.lock"; }) { }; @@ -31,13 +31,16 @@ in galmon-core = self.callPackage ./galmon.nix {}; galmon-full = self.callPackage ./galmon.nix { buildAll = true; }; - akkoma-fe = super.akkoma-frontends.akkoma-fe.overrideAttrs (old: { - patches = [ ./patches/akkoma-fe-toki-pona.patch ]; + akkoma-fe = super.akkoma-fe.overrideAttrs (old: { + patches = [ + ./patches/akkoma-fe-toki-pona.patch + ./patches/akkoma-fe-toki-pona-2.patch + ]; }); - akkoma = super.akkoma.overrideAttrs (old: { + akkoma = (self.callPackage ./akkoma {}).overrideAttrs { patches = [ ./patches/akkoma-toki-pona.patch ]; - }); + }; cgit = super.cgit.overrideAttrs (old: { patches = [ ./patches/cgit-main-instead-of-master.patch ]; @@ -50,6 +53,39 @@ in cargoLock.lockFile = "${src}/Cargo.lock"; }; + mergiraf = self.rustPlatform.buildRustPackage rec { + pname = "mergiraf"; + version = "git"; + src = self.fetchgit { + url = "https://codeberg.org/mergiraf/mergiraf"; + rev = "v0.2.0"; + hash = "sha256-egtX2daCbPXi5rX2OxbEZA/VI9R4HMj5LRKbUEBFo+E="; + }; + # TODO: probably unnecessary once we are on nixpkgs 24.11; earlier version + # hardcode --frozen here, but cargo wants --offline. + # the postBuild hook is necessary to set up things for the install hook + buildPhase = '' + cargo build -j $NIX_BUILD_CORES \ + --target x86_64-unknown-linux-gnu \ + --release \ + --offline + + runHook postBuild + ''; + # no idea why this didn't work with either test or build inputs .. + preCheck = '' + export PATH=$PATH:${self.gitMinimal}/bin + ''; + cargoLock = { + lockFile = "${src}/Cargo.lock"; + outputHashes = { + "tree-sitter-go-0.23.1" = "sha256-elPqkvVYs0vADOuN/umDteWP5hqcXhQAoSkqYDtTxaU="; + "tree-sitter-xml-0.7.0" = "sha256-RTWvOUAs3Uql9DKsP1jf9FZZHaZORE40GXd+6g6RQZw="; + "tree-sitter-yaml-0.6.1" = "sha256-gS+SjOnGl/86U9VV/y1ca7naYIe7DAOvOv++jCRLTKo="; + }; + }; + }; + rustex = rustPlatform.buildRustPackage rec { pname = "rustex"; version = "git"; @@ -148,10 +184,10 @@ in }; in '' ln -sf ${TwemojiMozilla-colr} \ - node_modules/matrix-react-sdk/res/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2 + res/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2 ln -sf ${TwemojiMozilla-sbix} \ - node_modules/matrix-react-sdk/res/fonts/Twemoji_Mozilla/TwemojiMozilla-sbix.woff2 - substituteInPlace node_modules/matrix-react-sdk/src/stores/room-list/ListLayout.ts \ + res/fonts/Twemoji_Mozilla/TwemojiMozilla-sbix.woff2 + substituteInPlace src/stores/room-list/ListLayout.ts \ --replace "TILE_HEIGHT_PX = 44" "TILE_HEIGHT_PX = 32" ''; }; @@ -169,7 +205,7 @@ in , lib, stm, text, time, vector, wai, wai-extra, warp }: mkDerivation { - pname = "bahnhof.name"; + pname = "bahnhof-name"; version = "0.2.0.0"; src = inputs.bahnhof-name; isLibrary = false; @@ -179,6 +215,7 @@ in http-client-openssl http-types stm text time vector wai wai-extra warp ]; + jailbreak = true; mainProgram = "bahnhof-name"; license = lib.licenses.eupl12; postInstall = '' @@ -210,18 +247,33 @@ in }; }); + git-who = self.buildGoModule rec { + pname = "git-who"; + version = "1.1"; + + src = (self.fetchFromGitHub { + owner = "sinclairtarget"; + repo = "git-who"; + rev = "v${version}"; + hash = "sha256-H6RbmkM8/n0HDMI3auz6YyEn/vsfXWk5ig+pBhZG3nI="; + # submodules contain test data and have ssh urls, hence this absurdity + fetchSubmodules = true; + leaveDotGit = true; + }).overrideAttrs { + GIT_CONFIG_COUNT = 1; + GIT_CONFIG_KEY_0 = "url.https://github.com/.insteadOf"; + GIT_CONFIG_VALUE_0 = "git@github.com:"; + }; + + vendorHash = "sha256-e2P7szjtAn4EFTy+eGi/9cYf/Raw/7O+PbYEOD8i3Hs="; + + nativeCheckInputs = [ self.gitMinimal ]; + }; + + hikari = self.callPackage ./hikari.nix { wlroots = self.wlroots_0_15; }; - wlroots_0_15 = (self.wlroots_0_16.overrideAttrs rec { - version = "0.15.1"; - src = self.fetchFromGitLab { - domain = "gitlab.freedesktop.org"; - owner = "wlroots"; - repo = "wlroots"; - rev = version; - hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM="; - }; - }); + wlroots_0_15 = self.callPackage ./wlroots_0_15.nix {}; travelynx = self.callPackage ./travelynx.nix {}; @@ -229,13 +281,14 @@ in #### packaged mostly as shitpost / to play around with #### - bookwyrm = (self.callPackage ./bookwyrm.nix { - python = super.python311.override ({ + bookwyrm = self.callPackage ./bookwyrm {}; + bookwyrm-unwrapped = (self.callPackage ./bookwyrm/unwrapped.nix { + python = super.python312.override ({ packageOverrides = self: super: { - django = super.django_3; - python-crontab = super.python-crontab.overridePythonAttrs (_: { doCheck = false; }); django-sass-processor = self.callPackage ./python/django-sass-processor.nix {}; django-imagekit = self.callPackage ./python/django-imagekit.nix {}; + django-pgtrigger = self.callPackage ./python/django-pgtrigger.nix {}; + s3-tar = self.callPackage ./python/s3-tar.nix {}; bw-file-resubmit = self.callPackage ./python/bw-file-resubmit.nix {}; }; }); diff --git a/pkgs/patches/akkoma-fe-toki-pona-2.patch b/pkgs/patches/akkoma-fe-toki-pona-2.patch new file mode 100644 index 0000000..3dc549b --- /dev/null +++ b/pkgs/patches/akkoma-fe-toki-pona-2.patch @@ -0,0 +1,13 @@ +diff --git a/src/lib/post_language.js b/src/lib/post_language.js +index 7dcaebce..4d146773 100644 +--- a/src/lib/post_language.js ++++ b/src/lib/post_language.js +@@ -3,7 +3,7 @@ import { computed } from 'vue' + + export const usePostLanguageOptions = () => { + const postLanguageOptions = computed(() => { +- return iso6391.getAllCodes().map(lang => ({ ++ return iso6391.getAllCodes().concat(['tok']).map(lang => ({ + key: lang, + value: lang, + label: lang, diff --git a/pkgs/patches/akkoma-fe-toki-pona.patch b/pkgs/patches/akkoma-fe-toki-pona.patch index 281fdfc..b556fb6 100644 --- a/pkgs/patches/akkoma-fe-toki-pona.patch +++ b/pkgs/patches/akkoma-fe-toki-pona.patch @@ -4,23 +4,9 @@ Date: Fri, 23 Jun 2023 01:56:43 +0200 Subject: [PATCH] mi la, toki pona li pona a --- - src/components/post_status_form/post_status_form.js | 2 +- src/services/locale/locale.service.js | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) -diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js -index 5647a9eb..25180ba9 100644 ---- a/src/components/post_status_form/post_status_form.js -+++ b/src/components/post_status_form/post_status_form.js -@@ -303,7 +303,7 @@ const PostStatusForm = { - mobileLayout: state => state.interface.mobileLayout - }), - isoLanguages () { -- return iso6391.getAllCodes(); -+ return iso6391.getAllCodes().concat(['tok']); - } - }, - watch: { diff --git a/src/services/locale/locale.service.js b/src/services/locale/locale.service.js index 8cef2522..8bee6ad2 100644 --- a/src/services/locale/locale.service.js diff --git a/pkgs/python/django-imagekit.nix b/pkgs/python/django-imagekit.nix index 9a11a4f..f746db7 100644 --- a/pkgs/python/django-imagekit.nix +++ b/pkgs/python/django-imagekit.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "django-imagekit"; - version = "4.1.0"; + version = "5.0.0"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-5VmuquQ6M7NPh2Man6VpZFXkRR/6c4pCY1/eRC/trFw="; + hash = "sha256-qun3So6bbOtdFffY4mYwKQHnbZ9TLHi9UTXLD6IGprA="; }; propagatedBuildInputs = [ diff --git a/pkgs/python/django-pgtrigger.nix b/pkgs/python/django-pgtrigger.nix new file mode 100644 index 0000000..be266b4 --- /dev/null +++ b/pkgs/python/django-pgtrigger.nix @@ -0,0 +1,25 @@ +{ lib +, buildPythonPackage +, fetchPypi +, django +, python +, poetry-core +, s3-tar +}: + +buildPythonPackage rec { + pname = "django_pgtrigger"; + version = "4.13.2"; + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-9NkG3zpt3hq8QriLNRvZQsGA/ijftmT/TnZuvivY/YE="; + }; + + nativeCheckInputs = [ + django + poetry-core + s3-tar + ]; +} diff --git a/pkgs/python/django-sass-processor.nix b/pkgs/python/django-sass-processor.nix index 90bba5f..8566bea 100644 --- a/pkgs/python/django-sass-processor.nix +++ b/pkgs/python/django-sass-processor.nix @@ -8,13 +8,13 @@ }: buildPythonPackage rec { - pname = "django-sass-processor"; - version = "1.2.2"; + pname = "django_sass_processor"; + version = "1.4.1"; format = "setuptools"; src = fetchPypi { inherit pname version; - hash = "sha256-9gmMGBzJWiFZPfa7UCeR4yAVYVIigD3iFv3Mi7QsD3c="; + hash = "sha256-Hp0Edp922Ju/d7myebqD36ytnJjAPKiljs/CnZl+b88="; }; propagatedBuildInputs = [ diff --git a/pkgs/python/s3-tar.nix b/pkgs/python/s3-tar.nix new file mode 100644 index 0000000..8778bc7 --- /dev/null +++ b/pkgs/python/s3-tar.nix @@ -0,0 +1,21 @@ +{ lib +, buildPythonPackage +, fetchPypi +, python +, boto3 +}: + +buildPythonPackage rec { + pname = "s3-tar"; + version = "0.1.13"; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-0LPuK/NYp+mVFUlrlAdrbrsT8kM6WhVfg5Jb1LW9wgU="; + }; + + propagatedBuildInputs = [ + boto3 + ]; +} diff --git a/pkgs/wlroots_0_15.nix b/pkgs/wlroots_0_15.nix new file mode 100644 index 0000000..6b63e4c --- /dev/null +++ b/pkgs/wlroots_0_15.nix @@ -0,0 +1,121 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, ninja +, pkg-config +, wayland-scanner +, libGL +, wayland +, wayland-protocols +, libinput +, libxkbcommon +, pixman +, libcap +, mesa +, xorg +, libpng +, ffmpeg_4 +, ffmpeg +, hwdata +, seatd +, vulkan-loader +, glslang +, libliftoff +, libdisplay-info +, libdrm +, libgbm +, cmake +, nixosTests + +, enableXWayland ? true +, xwayland ? null +}: + +let + version = "0.15.2"; +in +stdenv.mkDerivation { + + pname = "wlroots"; + inherit version; + + inherit enableXWayland; + + src = fetchFromGitLab { + domain = "gitlab.freedesktop.org"; + owner = "wlroots"; + repo = "wlroots"; + rev = version; + hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM="; + }; + + CFLAGS = [ "-Wno-calloc-transposed-args" ]; + + postPatch = '' + substituteInPlace backend/drm/meson.build \ + --replace /usr/share/hwdata/ ${hwdata}/share/hwdata/ + ''; + + # $out for the library and $examples for the example programs (in examples): + outputs = [ "out" "examples" ]; + + strictDeps = true; + depsBuildBuild = [ pkg-config ]; + + nativeBuildInputs = [ meson ninja pkg-config wayland-scanner glslang cmake ]; + + buildInputs = [ + libGL + libdrm + libgbm + libcap + libinput + libpng + libxkbcommon + mesa + pixman + seatd + vulkan-loader + wayland + wayland-protocols + xorg.libX11 + xorg.xcbutilerrors + xorg.xcbutilimage + xorg.xcbutilrenderutil + xorg.xcbutilwm + ffmpeg_4 + ] + ++ lib.optional enableXWayland xwayland; + + mesonFlags = + lib.optional (!enableXWayland) "-Dxwayland=disabled" + ; + + postFixup = '' + # Install ALL example programs to $examples: + # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle + # screenshot output-layout multi-pointer rotation tablet touch pointer + # simple + mkdir -p $examples/bin + cd ./examples + for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do + cp "$binary" "$examples/bin/wlroots-$binary" + done + ''; + + # Test via TinyWL (the "minimum viable product" Wayland compositor based on wlroots): + passthru.tests.tinywl = nixosTests.tinywl; + + meta = { + description = "A modular Wayland compositor library"; + longDescription = '' + Pluggable, composable, unopinionated modules for building a Wayland + compositor; or about 50,000 lines of code you were going to write anyway. + ''; + changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ primeos synthetica rewine ]; + }; + } |