push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "aaa";
version = "1.1.1";
src = fetchFromGitHub {
owner = "DomesticMoth";
repo = "aaa";
tag = "v${version}";
sha256 = "sha256-gIOlPjZOcmVLi9oOn4gBv6F+3Eq6t5b/3fKzoFqxclw=";
};
cargoHash = "sha256-CHX+Ugy4ND36cpxNEFpnqid6ALHMPXmfXi+D4aktPRk=";
meta = {
description = "Terminal viewer for 3a format";
homepage = "https://github.com/DomesticMoth/aaa";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ asciimoth ];
mainProgram = "aaa";
};
}

View File

@@ -0,0 +1,139 @@
{
lib,
fetchFromGitHub,
buildGoModule,
alsa-lib,
libGL,
libX11,
libXcursor,
libXext,
libXi,
libXinerama,
libXrandr,
libXxf86vm,
go-licenses,
pkg-config,
zip,
advancecomp,
makeWrapper,
nixosTests,
strip-nondeterminism,
}:
buildGoModule rec {
pname = "aaaaxy";
version = "1.6.288";
src = fetchFromGitHub {
owner = "divVerent";
repo = "aaaaxy";
tag = "v${version}";
hash = "sha256-8oWrQCj1B7o2kw0mbg9ynXpu/r85uqa+2UxRH44G8ZQ=";
fetchSubmodules = true;
};
vendorHash = "sha256-g37+5IquBaRMGw48V/pCsJaeKlGR5a2Hj3NFcrolQ7g=";
buildInputs = [
alsa-lib
libGL
libX11
libXcursor
libXext
libXi
libXinerama
libXrandr
libXxf86vm
];
nativeBuildInputs = [
go-licenses
pkg-config
zip
advancecomp
makeWrapper
strip-nondeterminism
];
outputs = [
"out"
"testing_infra"
];
postPatch = ''
# Without patching, "go run" fails with the error message:
# package github.com/google/go-licenses: no Go files in /build/source/vendor/github.com/google/go-licenses
substituteInPlace scripts/build-licenses.sh --replace-fail \
'$GO run ''${GO_FLAGS} github.com/google/go-licenses' 'go-licenses'
patchShebangs scripts/
substituteInPlace scripts/regression-test-demo.sh \
--replace-fail 'sh scripts/run-timedemo.sh' "$testing_infra/scripts/run-timedemo.sh"
substituteInPlace Makefile --replace-fail \
'CPPFLAGS ?= -DNDEBUG' \
'CPPFLAGS ?= -DNDEBUG -D_GLFW_GLX_LIBRARY=\"${lib.getLib libGL}/lib/libGL.so\" -D_GLFW_EGL_LIBRARY=\"${lib.getLib libGL}/lib/libEGL.so\"'
'';
overrideModAttrs = (
_: {
# We can't patch in the path to libGL directly because
# this is a fixed output derivation and when the path to libGL
# changes, the hash would change.
# To work around this, use environment variables.
postBuild = ''
substituteInPlace 'vendor/github.com/hajimehoshi/ebiten/v2/internal/graphicsdriver/opengl/gl/procaddr_linbsd.go' \
--replace-fail \
'import (' \
'import ("os"' \
--replace-fail \
'{"libGL.so", "libGL.so.2", "libGL.so.1", "libGL.so.0"}' \
'{os.Getenv("EBITENGINE_LIBGL")}' \
--replace-fail \
'{"libGLESv2.so", "libGLESv2.so.2", "libGLESv2.so.1", "libGLESv2.so.0"}' \
'{os.Getenv("EBITENGINE_LIBGLESv2")}'
'';
}
);
makeFlags = [
"BUILDTYPE=release"
];
buildPhase = ''
runHook preBuild
AAAAXY_BUILD_USE_VERSION_FILE=true make $makeFlags
runHook postBuild
'';
postInstall = ''
install -Dm755 'aaaaxy' -t "$out/bin/"
install -Dm444 'aaaaxy.svg' -t "$out/share/icons/hicolor/scalable/apps/"
install -Dm644 'aaaaxy.png' -t "$out/share/icons/hicolor/128x128/apps/"
install -Dm644 'aaaaxy.desktop' -t "$out/share/applications/"
install -Dm644 'io.github.divverent.aaaaxy.metainfo.xml' -t "$out/share/metainfo/"
wrapProgram $out/bin/aaaaxy \
--set EBITENGINE_LIBGL '${lib.getLib libGL}/lib/libGL.so' \
--set EBITENGINE_LIBGLESv2 '${lib.getLib libGL}/lib/libGLESv2.so'
install -Dm755 'scripts/run-timedemo.sh' -t "$testing_infra/scripts/"
install -Dm755 'scripts/regression-test-demo.sh' -t "$testing_infra/scripts/"
install -Dm644 'assets/demos/benchmark.dem' -t "$testing_infra/assets/demos/"
'';
passthru.tests = {
aaaaxy = nixosTests.aaaaxy;
};
strictDeps = true;
meta = {
description = "Nonlinear 2D puzzle platformer taking place in impossible spaces";
mainProgram = "aaaaxy";
homepage = "https://divverent.github.io/aaaaxy/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ Luflosi ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,124 @@
diff --git a/aab/builder.py b/aab/builder.py
index 5c3805c..7dfe595 100644
--- a/aab/builder.py
+++ b/aab/builder.py
@@ -77,7 +77,7 @@ class AddonBuilder:
self._config = Config()
self._path_dist_module = PATH_DIST / "src" / self._config["module_name"]
- def build(self, qt_versions: List[QtVersion], disttype="local", pyenv=None):
+ def build(self, qt_versions: List[QtVersion], disttype="local", pyenv=None, modtime=None):
logging.info(
"\n--- Building %s %s for %s ---\n",
self._config["display_name"],
@@ -86,7 +86,7 @@ class AddonBuilder:
)
self.create_dist()
- self.build_dist(qt_versions=qt_versions, disttype=disttype, pyenv=pyenv)
+ self.build_dist(qt_versions=qt_versions, disttype=disttype, pyenv=pyenv, modtime=modtime)
return self.package_dist(qt_versions=qt_versions, disttype=disttype)
@@ -102,7 +102,7 @@ class AddonBuilder:
PATH_DIST.mkdir(parents=True)
Git().archive(self._version, PATH_DIST)
- def build_dist(self, qt_versions: List[QtVersion], disttype="local", pyenv=None):
+ def build_dist(self, qt_versions: List[QtVersion], disttype="local", pyenv=None, modtime=None):
self._copy_licenses()
if self._path_changelog.exists():
self._copy_changelog()
@@ -111,7 +111,7 @@ class AddonBuilder:
if self._callback_archive:
self._callback_archive()
- self._write_manifest(disttype)
+ self._write_manifest(disttype, modtime=modtime)
ui_builder = UIBuilder(dist=PATH_DIST, config=self._config)
@@ -162,12 +162,13 @@ class AddonBuilder:
return out_path
- def _write_manifest(self, disttype):
+ def _write_manifest(self, disttype, modtime=None):
ManifestUtils.generate_and_write_manifest(
addon_properties=self._config,
version=self._version,
dist_type=disttype,
target_dir=self._path_dist_module,
+ modtime=modtime,
)
def _copy_licenses(self):
diff --git a/aab/cli.py b/aab/cli.py
index 2ce6425..0956e98 100644
--- a/aab/cli.py
+++ b/aab/cli.py
@@ -89,7 +89,7 @@ def build(args):
total = len(dists)
for dist in dists:
logging.info("\n=== Build task %s/%s ===", cnt, total)
- builder.build(qt_versions=qt_versions, disttype=dist)
+ builder.build(qt_versions=qt_versions, disttype=dist, modtime=args.modtime)
cnt += 1
@@ -146,7 +146,7 @@ def build_dist(args):
total = len(dists)
for dist in dists:
logging.info("\n=== Build task %s/%s ===", cnt, total)
- builder.build_dist(qt_versions=qt_versions, disttype=dist)
+ builder.build_dist(qt_versions=qt_versions, disttype=dist, modtime=args.modtime)
cnt += 1
@@ -204,6 +204,12 @@ def construct_parser():
default="local",
choices=["local", "ankiweb", "all"],
)
+ dist_parent.add_argument(
+ "--modtime",
+ help="Last modified timestamp",
+ type=int,
+ required=False,
+ )
build_parent = argparse.ArgumentParser(add_help=False)
build_parent.add_argument(
diff --git a/aab/manifest.py b/aab/manifest.py
index fc0038d..355e370 100644
--- a/aab/manifest.py
+++ b/aab/manifest.py
@@ -49,10 +49,11 @@ class ManifestUtils:
version: str,
dist_type: DistType,
target_dir: Path,
+ modtime=None,
):
logging.info("Writing manifest...")
manifest = cls.generate_manifest_from_properties(
- addon_properties=addon_properties, version=version, dist_type=dist_type
+ addon_properties=addon_properties, version=version, dist_type=dist_type, modtime=modtime
)
cls.write_manifest(manifest=manifest, target_dir=target_dir)
@@ -62,6 +63,7 @@ class ManifestUtils:
addon_properties: Config,
version: str,
dist_type: DistType,
+ modtime=None,
) -> Dict[str, Any]:
manifest = {
"name": addon_properties["display_name"],
@@ -71,7 +73,7 @@ class ManifestUtils:
"version": version,
"homepage": addon_properties.get("homepage", ""),
"conflicts": deepcopy(addon_properties["conflicts"]),
- "mod": Git().modtime(version),
+ "mod": modtime if modtime is not None else Git().modtime(version),
}
# Add version specifiers:

View File

@@ -0,0 +1,75 @@
diff --git a/tests/test_legacy.py b/tests/test_legacy.py
index 33790b9..0577262 100644
--- a/tests/test_legacy.py
+++ b/tests/test_legacy.py
@@ -101,8 +101,8 @@ gui/
sample-project/
icons/
coffee.svg
- heart.svg
email.svg
+ heart.svg
help.svg\
"""
diff --git a/tests/test_ui.py b/tests/test_ui.py
index 0774672..3764fda 100644
--- a/tests/test_ui.py
+++ b/tests/test_ui.py
@@ -60,22 +60,22 @@ def test_ui_builder(tmp_path: Path):
expected_file_structure = """\
gui/
+ forms/
+ __init__.py
+ qt5/
+ __init__.py
+ dialog.py
+ qt6/
+ __init__.py
+ dialog.py
resources/
__init__.py
sample-project/
icons/
coffee.svg
- heart.svg
email.svg
- help.svg
- forms/
- __init__.py
- qt6/
- __init__.py
- dialog.py
- qt5/
- __init__.py
- dialog.py\
+ heart.svg
+ help.svg\
"""
config = Config(test_project_root / "addon.json")
@@ -136,8 +136,8 @@ gui/
sample-project/
icons/
coffee.svg
- heart.svg
email.svg
+ heart.svg
help.svg\
"""
diff --git a/tests/util.py b/tests/util.py
index a682bcd..a4aa7de 100644
--- a/tests/util.py
+++ b/tests/util.py
@@ -40,6 +40,9 @@ def list_files(startpath: Path):
ret = []
for root, dirs, files in os.walk(path):
+ dirs.sort()
+ files.sort()
+
level = root.replace(path, "").count(os.sep)
indent = " " * 4 * (level)
ret.append("{}{}/".format(indent, os.path.basename(root)))

View File

@@ -0,0 +1,14 @@
diff --git a/aab/builder.py b/aab/builder.py
index 5c3805c..a181b27 100644
--- a/aab/builder.py
+++ b/aab/builder.py
@@ -67,8 +67,7 @@ class AddonBuilder:
self._version = Git().parse_version(version)
# git stash create comes up empty when no changes were made since the
# last commit. Don't use 'dev' as version in these cases.
- git_status = call_shell("git status --porcelain")
- if self._version == "dev" and git_status == "":
+ if self._version == "dev" and call_shell("git status --porcelain") == "":
self._version = Git().parse_version("current")
if not self._version:
logging.error("Error: Version could not be determined through Git")

View File

@@ -0,0 +1,48 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "aab";
version = "1.0.0-dev.5";
pyproject = true;
src = fetchFromGitHub {
owner = "glutanimate";
repo = "anki-addon-builder";
tag = "v${version}";
hash = "sha256-92Xqxgb9MLhSIa5EN3Rdk4aJlRfzEWqKmXFe604Q354=";
};
patches = [
./fix-flaky-tests.patch
./only-call-git-when-necessary.patch
./allow-manually-setting-modtime.patch
];
build-system = [ python3.pkgs.poetry-core ];
dependencies = with python3.pkgs; [
jsonschema
whichcraft
pyqt5
pyqt6
];
nativeCheckInputs = [
python3.pkgs.pytestCheckHook
python3.pkgs.pyqt5
python3.pkgs.pyqt6
];
pythonImportsCheck = [ "aab" ];
meta = {
description = "Build tool for Anki add-ons";
homepage = "https://github.com/glutanimate/anki-addon-builder";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ eljamm ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
autoconf,
automake,
libtool,
}:
stdenv.mkDerivation {
pname = "aacgain";
version = "2.0.0-unstable-2022-07-12";
src = fetchFromGitHub {
owner = "dgilman";
repo = "aacgain";
rev = "9f9ae95a20197d1072994dbd89672bba2904bdb5";
hash = "sha256-WqL9rKY4lQD7wQSZizoM3sHNzLIG0E9xZtjw8y7fgmE=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
autoconf
automake
libtool
];
env.NIX_CFLAGS_COMPILE = "-Wno-error=narrowing";
meta = {
description = "ReplayGain for AAC files";
homepage = "https://github.com/dgilman/aacgain";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ robbinch ];
mainProgram = "aacgain";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "aactivator";
version = "2.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Yelp";
repo = "aactivator";
tag = "v${version}";
hash = "sha256-vnBDtLEvU1jHbb5/MXAulXaBaugdCZdLQSP2b8P6SiQ=";
};
build-system = with python3Packages; [
setuptools
wheel
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
pexpect
];
disabledTestPaths = [
# presumably because of shell manipulations
"tests/integration_test.py"
];
meta = {
description = "Automatically activate Python virtualenvs (and other environments)";
homepage = "https://github.com/Yelp/aactivator";
license = lib.licenses.mit;
mainProgram = "aactivator";
maintainers = with lib.maintainers; [ keller00 ];
};
}

View File

@@ -0,0 +1,82 @@
diff -ur a/configure b/configure
--- a/configure 2001-04-26 10:44:54.000000000 -0400
+++ b/configure 2023-10-21 23:19:52.941161475 -0400
@@ -1005,7 +1005,7 @@
#line 1006 "configure"
#include "confdefs.h"
-main(){return(0);}
+int main(){return(0);}
EOF
if { (eval echo configure:1011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
diff -ur a/src/aafire.c b/src/aafire.c
--- a/src/aafire.c 2001-04-26 11:30:03.000000000 -0400
+++ b/src/aafire.c 2023-10-21 23:46:54.478750904 -0400
@@ -1,3 +1,4 @@
+#include <stdlib.h>
#include <stdio.h>
#include "aalib.h"
diff -ur a/src/aainfo.c b/src/aainfo.c
--- a/src/aainfo.c 2001-04-26 10:37:31.000000000 -0400
+++ b/src/aainfo.c 2023-10-21 23:31:54.141133353 -0400
@@ -1,4 +1,4 @@
-
+#include <stdlib.h>
#include "aalib.h"
#include "aaint.h"
int main(int argc, char **argv)
diff -ur a/src/aakbdreg.c b/src/aakbdreg.c
--- a/src/aakbdreg.c 2023-10-21 23:19:00.787207960 -0400
+++ b/src/aakbdreg.c 2023-10-21 23:23:49.667253541 -0400
@@ -1,4 +1,5 @@
#include <malloc.h>
+#include <string.h>
#include "config.h"
#include "aalib.h"
#include "aaint.h"
diff -ur a/src/aamoureg.c b/src/aamoureg.c
--- a/src/aamoureg.c 2023-10-21 23:19:00.787725591 -0400
+++ b/src/aamoureg.c 2023-10-21 23:26:51.821477807 -0400
@@ -1,4 +1,5 @@
#include <malloc.h>
+#include <string.h>
#include "config.h"
#include "aalib.h"
#include "aaint.h"
diff -ur a/src/aaregist.c b/src/aaregist.c
--- a/src/aaregist.c 2023-10-21 23:19:00.788130179 -0400
+++ b/src/aaregist.c 2023-10-21 23:19:38.929729034 -0400
@@ -1,4 +1,5 @@
#include <malloc.h>
+#include <string.h>
#include "config.h"
#include "aalib.h"
#include "aaint.h"
diff -ur a/src/aasavefont.c b/src/aasavefont.c
--- a/src/aasavefont.c 2001-04-26 10:37:31.000000000 -0400
+++ b/src/aasavefont.c 2023-10-21 23:51:09.216521714 -0400
@@ -1,3 +1,5 @@
+#include <stdlib.h>
+#include <stdio.h>
#include "aalib.h"
int main(int argc, char **argv)
{
diff -ur a/src/aatest.c b/src/aatest.c
--- a/src/aatest.c 2001-04-26 10:37:31.000000000 -0400
+++ b/src/aatest.c 2023-10-21 23:43:16.758422704 -0400
@@ -1,3 +1,5 @@
+#include <stdlib.h>
+#include <string.h>
#include "aalib.h"
int main(int argc, char **argv)
{
diff -ur a/src/aalib.c b/src/aalib.c
--- a/src/aalib.c 2001-04-26 10:37:31.000000000 -0400
+++ b/src/aalib.c 2025-06-02 00:52:04.119364652 -0400
@@ -1,3 +1,4 @@
+#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>

View File

@@ -0,0 +1,106 @@
diff --git a/src/aaedit.c b/src/aaedit.c
index 09534d2..2ea52f9 100644
--- a/src/aaedit.c
+++ b/src/aaedit.c
@@ -1,6 +1,6 @@
#include <string.h>
#include <ctype.h>
-#include <malloc.h>
+#include <stdlib.h>
#include "aalib.h"
#include "aaint.h"
static void aa_editdisplay(struct aa_edit *e)
diff --git a/src/aakbdreg.c b/src/aakbdreg.c
index def65fe..f4f8efb 100644
--- a/src/aakbdreg.c
+++ b/src/aakbdreg.c
@@ -1,4 +1,4 @@
-#include <malloc.h>
+#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "aalib.h"
diff --git a/src/aalib.c b/src/aalib.c
index 11fecc8..e3063b4 100644
--- a/src/aalib.c
+++ b/src/aalib.c
@@ -1,6 +1,6 @@
#include <stdio.h>
#include <string.h>
-#include <malloc.h>
+#include <stdlib.h>
#include "aalib.h"
#include "aaint.h"
diff --git a/src/aamoureg.c b/src/aamoureg.c
index 0380828..bb55fe3 100644
--- a/src/aamoureg.c
+++ b/src/aamoureg.c
@@ -1,4 +1,4 @@
-#include <malloc.h>
+#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "aalib.h"
diff --git a/src/aarec.c b/src/aarec.c
index 70f4ebc..ee43e8a 100644
--- a/src/aarec.c
+++ b/src/aarec.c
@@ -1,5 +1,5 @@
#include <string.h>
-#include <malloc.h>
+#include <stdlib.h>
#include "aalib.h"
#include "aaint.h"
aa_linkedlist *aa_kbdrecommended = NULL, *aa_mouserecommended = NULL,
diff --git a/src/aaregist.c b/src/aaregist.c
index 54abec0..765155e 100644
--- a/src/aaregist.c
+++ b/src/aaregist.c
@@ -1,4 +1,4 @@
-#include <malloc.h>
+#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "aalib.h"
diff --git a/src/aax.c b/src/aax.c
index adcbd82..36e3294 100644
--- a/src/aax.c
+++ b/src/aax.c
@@ -1,4 +1,3 @@
-#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
diff --git a/src/aaxkbd.c b/src/aaxkbd.c
index 30d5903..da2248d 100644
--- a/src/aaxkbd.c
+++ b/src/aaxkbd.c
@@ -1,4 +1,3 @@
-#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
diff --git a/src/aaxmouse.c b/src/aaxmouse.c
index 9935b03..7e725ad 100644
--- a/src/aaxmouse.c
+++ b/src/aaxmouse.c
@@ -1,4 +1,3 @@
-#include <malloc.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
diff --git a/aalib.m4 b/aalib.m4
index c40b8db..991fbda 100644
--- a/aalib.m4
+++ b/aalib.m4
@@ -9,7 +9,7 @@
dnl AM_PATH_AALIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for AALIB, and define AALIB_CFLAGS and AALIB_LIBS
dnl
-AC_DEFUN(AM_PATH_AALIB,
+AC_DEFUN([AM_PATH_AALIB],
[dnl
dnl Get the cflags and libraries from the aalib-config script
dnl

View File

@@ -0,0 +1,20 @@
Without the change build fails on ncurses-6.5 (enables opaque WINDOW by
default) as:
aacurses.c: In function 'curses_getsize':
aacurses.c:74:20: error: invalid use of incomplete typedef 'WINDOW' {aka 'struct _win_st'}
74 | *width = stdscr->_maxx + 1;
| ^~
--- a/src/aacurses.c
+++ b/src/aacurses.c
@@ -71,8 +71,8 @@ static void curses_getsize(aa_context * c, int *width, int *height)
{
if (__resized_curses)
curses_uninit(c), curses_init(&c->params, NULL,&c->driverparams, NULL), __resized_curses = 0;
- *width = stdscr->_maxx + 1;
- *height = stdscr->_maxy + 1;
+ *width = getmaxx(stdscr);
+ *height = getmaxy(stdscr);
#ifdef GPM_MOUSEDRIVER
gpm_mx = *width;
gpm_my = *height;

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchurl,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "aalib";
version = "1.4rc5";
src = fetchurl {
url = "mirror://sourceforge/aa-project/aalib-${version}.tar.gz";
sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv";
};
outputs = [
"bin"
"dev"
"out"
"man"
"info"
];
setOutputFlags = false; # Doesn't support all the flags
patches = [
# Fix implicit `int` on `main` error with newer versions of clang
./clang.patch
# Fix build against opaque aalib API
./ncurses-6.5.patch
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ ./darwin.patch ];
# The fuloong2f is not supported by aalib still
preConfigure = ''
configureFlagsArray+=(
"--bindir=$bin/bin"
"--includedir=$dev/include"
"--libdir=$out/lib"
)
'';
buildInputs = [ ncurses ];
configureFlags = [
"--without-x"
"--with-ncurses=${ncurses.dev}"
];
env = lib.optionalAttrs stdenv.cc.isGNU {
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
};
postInstall = ''
mkdir -p $dev/bin
mv $bin/bin/aalib-config $dev/bin/aalib-config
substituteInPlace $out/lib/libaa.la --replace "${ncurses.dev}/lib" "${ncurses.out}/lib"
'';
meta = {
description = "ASCII art graphics library";
platforms = lib.platforms.unix;
license = lib.licenses.lgpl2;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
jasper,
libpng,
libjpeg,
zlib,
llvmPackages,
}:
stdenv.mkDerivation {
pname = "aaphoto";
version = "0.45";
src = fetchFromGitHub {
owner = "log69";
repo = "aaphoto";
rev = "581b3fad60382bdd36356155112559f731e31be3";
hash = "sha256-PcvZ6v8vcZcrSn9EJ0CqxYz9gOJXlcVIkLLzFik0Pec=";
};
nativeBuildInputs = lib.optionals stdenv.cc.isClang [
llvmPackages.openmp
];
buildInputs = [
jasper
libpng
libjpeg
zlib
];
postInstall = ''
install -Dm644 NEWS README REMARKS TODO -t $out/share/doc/aaphoto
'';
meta = {
homepage = "https://github.com/log69/aaphoto";
description = "Free and open source automatic photo adjusting software";
longDescription = ''
Auto Adjust Photo tries to give a solution for the automatic color
correction of photos. This means setting the contrast, color balance,
saturation and gamma levels of the image by analization.
This can be a solution for those kind of users who are not able to manage
and correct images with complicated graphical softwares, or just simply
don't intend to spend a lot of time with manually correcting the images
one-by-one.
'';
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.unix;
mainProgram = "aaphoto";
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenvNoCC,
fetchzip,
autoPatchelfHook,
libcxx,
}:
stdenvNoCC.mkDerivation rec {
pname = "aapt";
version = "8.4.1-11315950";
src =
let
urlAndHash =
if stdenvNoCC.hostPlatform.isLinux then
{
url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-linux.jar";
hash = "sha256-eSQaZrRtb5aCG320hrXAL256fxa/oMhBC4hcTA1KRxs=";
}
else if stdenvNoCC.hostPlatform.isDarwin then
{
url = "https://dl.google.com/android/maven2/com/android/tools/build/aapt2/${version}/aapt2-${version}-osx.jar";
hash = "sha256-LUihNjase79JbUkHDb10A5d6pJ+VXDVfv7m09hkL8kY=";
}
else
throw "Unsupport platform: ${stdenvNoCC.system}";
in
fetchzip (
urlAndHash
// {
extension = "zip";
stripRoot = false;
}
);
nativeBuildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [ autoPatchelfHook ];
buildInputs = lib.optionals stdenvNoCC.hostPlatform.isLinux [ libcxx ];
installPhase = ''
runHook preInstall
install -D aapt2 $out/bin/aapt2
runHook postInstall
'';
meta = {
description = "Build tool that compiles and packages Android app's resources";
mainProgram = "aapt2";
homepage = "https://developer.android.com/tools/aapt2";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ linsui ];
teams = [ lib.teams.android ];
platforms = lib.platforms.unix;
badPlatforms = [
# The linux executable only supports x86_64
"aarch64-linux"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "aarch64-esr-decoder";
version = "0.2.4";
src = fetchFromGitHub {
owner = "google";
repo = "aarch64-esr-decoder";
tag = version;
hash = "sha256-ZpSrz7iwwzNrK+bFTMn5MPx4Zjceao9NKhjAyjuPLWY=";
};
cargoHash = "sha256-xOBJ8QYiWu5vmkRpttN2CXCXi4bNj+qph31hSkDadjI=";
meta = {
description = "Utility for decoding aarch64 ESR register values";
homepage = "https://github.com/google/aarch64-esr-decoder";
changelog = "https://github.com/google/aarch64-esr-decoder/blob/${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jmbaur ];
mainProgram = "aarch64-esr-decoder";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nixosTests,
}:
rustPlatform.buildRustPackage rec {
pname = "aardvark-dns";
version = "1.16.0";
src = fetchFromGitHub {
owner = "containers";
repo = "aardvark-dns";
tag = "v${version}";
hash = "sha256-mC+PP5sXt2O0CgxxyzS2WjtQe0RjuKNCamrjRY7qBP8=";
};
cargoHash = "sha256-e/VxQgpTOS4snM78BewvloWap9cU+Vzlahlr00BWmVY=";
passthru.tests = { inherit (nixosTests) podman; };
meta = {
changelog = "https://github.com/containers/aardvark-dns/releases/tag/${src.rev}";
description = "Authoritative dns server for A/AAAA container records";
homepage = "https://github.com/containers/aardvark-dns";
license = lib.licenses.asl20;
teams = with lib.teams; [ podman ];
platforms = lib.platforms.linux;
mainProgram = "aardvark-dns";
};
}

View File

@@ -0,0 +1,79 @@
{
bash,
bc,
coreutils,
fetchFromGitHub,
ffmpeg,
findutils,
gawk,
gnugrep,
gnused,
jq,
lame,
lib,
mediainfo,
mp4v2,
ncurses,
resholve,
}:
resholve.mkDerivation rec {
pname = "aaxtomp3";
version = "1.3";
src = fetchFromGitHub {
owner = "krumpetpirate";
repo = "aaxtomp3";
tag = "v${version}";
hash = "sha256-7a9ZVvobWH/gPxa3cFiPL+vlu8h1Dxtcq0trm3HzlQg=";
};
postPatch = ''
substituteInPlace AAXtoMP3 \
--replace 'AAXtoMP3' 'aaxtomp3'
substituteInPlace interactiveAAXtoMP3 \
--replace 'AAXtoMP3' 'aaxtomp3' \
--replace 'call="./aaxtomp3"' 'call="$AAXTOMP3"'
'';
installPhase = ''
install -Dm 755 AAXtoMP3 $out/bin/aaxtomp3
install -Dm 755 interactiveAAXtoMP3 $out/bin/interactiveaaxtomp3
'';
solutions.default = {
scripts = [
"bin/aaxtomp3"
"bin/interactiveaaxtomp3"
];
interpreter = "${bash}/bin/bash";
inputs = [
bc
coreutils
ffmpeg
findutils
gawk
gnugrep
gnused
jq
lame
mediainfo
mp4v2
ncurses
];
keep."$call" = true;
fix = {
"$AAXTOMP3" = [ "${placeholder "out"}/bin/aaxtomp3" ];
"$FIND" = [ "find" ];
"$GREP" = [ "grep" ];
"$SED" = [ "sed" ];
};
};
meta = {
description = "Convert Audible's .aax filetype to MP3, FLAC, M4A, or OPUS";
homepage = "https://krumpetpirate.github.io/AAXtoMP3";
license = lib.licenses.wtfpl;
maintainers = with lib.maintainers; [ urandom ];
};
}