From f4066cd966b57780c8c964158e1fbeb386a63ea6 Mon Sep 17 00:00:00 2001 From: ghpzin Date: Thu, 3 Apr 2025 22:45:49 +0300 Subject: [PATCH 1/3] as31: fix build with gcc14 - add patch from debian: https://salsa.debian.org/debian/as31/-/blob/76735fbf1fb00ce70ffd98385137908b7bd9bd5c/debian/patches/update_sizebuf_types.patch fixing `incompatible-pointer-types` errors with gcc14: ``` run.c: In function 'run_as31': run.c:109:41: error: passing argument 2 of 'getline' from incompatible pointer type 109 | if (getline(&lineBuffer,&sizeBuf,finPre) == -1) | ^~~~~~~~ | | | int * In file included from /nix/store/kj8hbqx4ds9qm9mq7hyikxyfwwg13kzj-glibc-2.40-36-dev/include/stdio.h:966, from run.c:2: /nix/store/kj8hbqx4ds9qm9mq7hyikxyfwwg13kzj-glibc-2.40-36-dev/include/bits/stdio.h:118:36: note: expected 'size_t *' {aka 'long unsigned int *'} but argument is of type 'int *' 118 | getline (char **__lineptr, size_t *__n, FILE *__stream) | ~~~~~~~~^~~ run.c:135:68: error: passing argument 2 of 'getline' from incompatible pointer type 135 | if (getline(&incLineBuffer,&incSizeBuf,includeFile) == -1) | ^~~~~~~~~~~ | | | int * /nix/store/kj8hbqx4ds9qm9mq7hyikxyfwwg13kzj-glibc-2.40-36-dev/include/bits/stdio.h:118:36: note: expected 'size_t *' {aka 'long unsigned int *'} but argument is of type 'int *' 118 | getline (char **__lineptr, size_t *__n, FILE *__stream) | ~~~~~~~~^~~ ``` --- pkgs/by-name/as/as31/package.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/by-name/as/as31/package.nix b/pkgs/by-name/as/as31/package.nix index 2936f7a79958..d2ba3b530cd1 100644 --- a/pkgs/by-name/as/as31/package.nix +++ b/pkgs/by-name/as/as31/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + fetchpatch, bison, }: @@ -18,6 +19,12 @@ stdenv.mkDerivation rec { patches = [ # Check return value of getline in run.c ./0000-getline-break.patch + + # fix build with gcc14 + (fetchpatch { + url = "https://salsa.debian.org/debian/as31/-/raw/76735fbf1fb00ce70ffd98385137908b7bd9bd5c/debian/patches/update_sizebuf_types.patch"; + hash = "sha256-ERrPdY0afKwXmdSLoWmWR55nKfvmieGlz+nhwFWRnrM="; + }) ]; postPatch = '' From e023c0d0b8027cdd7857446f2a8ba8086af20d80 Mon Sep 17 00:00:00 2001 From: ghpzin Date: Thu, 3 Apr 2025 23:10:19 +0300 Subject: [PATCH 2/3] as31: fix src and meta.homepage - change `src` to debian mirror (hash did not change), because previous url requires auth now: ``` nix-build -A as31.src --check trying http://wiki.erazor-zone.de/_media/wiki:projects:linux:as31:as31-2.3.1.tar.gz ... curl: (22) The requested URL returned error: 401 error: cannot download as31-2.3.1.tar.gz from any mirror ``` - change `meta.homepage` because previous url requires auth now: ``` curl "http://wiki.erazor-zone.de/wiki:projects:linux:as31" -v ... < HTTP/1.1 401 Unauthorized ``` --- pkgs/by-name/as/as31/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/as/as31/package.nix b/pkgs/by-name/as/as31/package.nix index d2ba3b530cd1..765b1df7603e 100644 --- a/pkgs/by-name/as/as31/package.nix +++ b/pkgs/by-name/as/as31/package.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { version = "2.3.1"; src = fetchurl { - url = "http://wiki.erazor-zone.de/_media/wiki:projects:linux:as31:${pname}-${version}.tar.gz"; + url = "mirror://debian/pool/main/a/as31/${pname}_${version}.orig.tar.gz"; name = "${pname}-${version}.tar.gz"; hash = "sha256-zSEyWHFon5nyq717Mpmdv1XZ5Hz0e8ZABqsP8M83c1U="; }; @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { - homepage = "http://wiki.erazor-zone.de/wiki:projects:linux:as31"; + homepage = "https://www.pjrc.com/tech/8051/tools/as31-doc.html"; description = "8031/8051 assembler"; mainProgram = "as31"; license = licenses.gpl2Plus; From 19916d3068b24f64563ab846cebca4e375a6321a Mon Sep 17 00:00:00 2001 From: ghpzin Date: Thu, 3 Apr 2025 23:16:00 +0300 Subject: [PATCH 3/3] as31: modernize - replace `rec` with `finalAttrs` - remove `with lib;` from `meta` --- pkgs/by-name/as/as31/package.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/as/as31/package.nix b/pkgs/by-name/as/as31/package.nix index 765b1df7603e..5f3104b43907 100644 --- a/pkgs/by-name/as/as31/package.nix +++ b/pkgs/by-name/as/as31/package.nix @@ -6,13 +6,13 @@ bison, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "as31"; version = "2.3.1"; src = fetchurl { - url = "mirror://debian/pool/main/a/as31/${pname}_${version}.orig.tar.gz"; - name = "${pname}-${version}.tar.gz"; + url = "mirror://debian/pool/main/a/as31/${finalAttrs.pname}_${finalAttrs.version}.orig.tar.gz"; + name = "${finalAttrs.pname}-${finalAttrs.version}.tar.gz"; hash = "sha256-zSEyWHFon5nyq717Mpmdv1XZ5Hz0e8ZABqsP8M83c1U="; }; @@ -41,12 +41,12 @@ stdenv.mkDerivation rec { bison ]; - meta = with lib; { + meta = { homepage = "https://www.pjrc.com/tech/8051/tools/as31-doc.html"; description = "8031/8051 assembler"; mainProgram = "as31"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ ]; - platforms = platforms.unix; + license = lib.licenses.gpl2Plus; + maintainers = [ ]; + platforms = lib.platforms.unix; }; -} +})