ed: a huge rewrite

- delete `edUnstable`
- migrate to `pkgs/by-name`
- strictDeps
- testVersion
- meta.mainProgram
This commit is contained in:
Anderson Torres 2024-07-01 01:37:33 -03:00
parent bb53e43ec0
commit 79866be383
5 changed files with 60 additions and 94 deletions

View File

@ -1,14 +0,0 @@
{ lib, pkgs }:
lib.makeScope pkgs.newScope (self:
let
inherit (self) callPackage;
in {
sources = import ./sources.nix {
inherit lib;
inherit (pkgs) fetchurl;
};
ed = callPackage (self.sources.ed) { };
edUnstable = callPackage (self.sources.edUnstable) { };
})

View File

@ -1,32 +0,0 @@
{ pname
, version
, src
, patches ? [ ]
, meta
}:
# Note: this package is used for bootstrapping fetchurl, and thus cannot use
# fetchpatch! All mutable patches (generated by GitHub or cgit) that are needed
# here should be included directly in Nixpkgs as files.
{ lib
, stdenv
, fetchurl
, lzip
, runtimeShellPackage
}:
stdenv.mkDerivation {
inherit pname version src patches;
nativeBuildInputs = [ lzip ];
buildInputs = [ runtimeShellPackage ];
configureFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
doCheck = true;
inherit meta;
}

View File

@ -1,45 +0,0 @@
{ lib
, fetchurl
}:
let
meta = {
description = "GNU implementation of the standard Unix editor";
longDescription = ''
GNU ed is a line-oriented text editor. It is used to create, display,
modify and otherwise manipulate text files, both interactively and via
shell scripts. A restricted version of ed, red, can only edit files in the
current directory and cannot execute shell commands. Ed is the 'standard'
text editor in the sense that it is the original editor for Unix, and thus
widely available. For most purposes, however, it is superseded by
full-screen editors such as GNU Emacs or GNU Moe.
'';
license = lib.licenses.gpl3Plus;
homepage = "https://www.gnu.org/software/ed/";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
};
in
{
ed = let
pname = "ed";
version = "1.20.2";
src = fetchurl {
url = "mirror://gnu/ed/ed-${version}.tar.lz";
hash = "sha256-Zf7HMY9IwsoX8zSsD0cD3v5iA3uxPMI5IN4He1+iRSM=";
};
in import ./generic.nix {
inherit pname version src meta;
};
edUnstable = let
pname = "ed";
version = "1.20-pre2";
src = fetchurl {
url = "http://download.savannah.gnu.org/releases/ed/ed-${version}.tar.lz";
hash = "sha256-bHTDeMhVNNo3qqDNoBNaBA+DHDa4WJpfQNcTvAUPgsY=";
};
in import ./generic.nix {
inherit pname version src meta;
};
}

View File

@ -0,0 +1,60 @@
{
lib,
fetchurl,
lzip,
runtimeShellPackage,
stdenv,
testers,
}:
# Note: this package is used for bootstrapping fetchurl, and thus cannot use
# fetchpatch! Any mutable patches (retrieved from GitHub, cgit or any other
# place) that are needed here should be directly included together as regular
# files.
stdenv.mkDerivation (finalAttrs: {
pname = "ed";
version = "1.20.2";
src = fetchurl {
url = "mirror://gnu/ed/ed-${finalAttrs.version}.tar.lz";
hash = "sha256-Zf7HMY9IwsoX8zSsD0cD3v5iA3uxPMI5IN4He1+iRSM=";
};
nativeBuildInputs = [ lzip ];
buildInputs = [ runtimeShellPackage ];
configureFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
strictDeps = true;
doCheck = true;
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "ed --version";
};
};
meta = {
homepage = "https://www.gnu.org/software/ed/";
description = "GNU implementation of the standard Unix editor";
longDescription = ''
GNU ed is a line-oriented text editor. It is used to create, display,
modify and otherwise manipulate text files, both interactively and via
shell scripts. A restricted version of ed, red, can only edit files in the
current directory and cannot execute shell commands. Ed is the 'standard'
text editor in the sense that it is the original editor for Unix, and thus
widely available. For most purposes, however, it is superseded by
full-screen editors such as GNU Emacs or GNU Moe.
'';
license = lib.licenses.gpl3Plus;
mainProgram = "ed";
maintainers = with lib.maintainers; [ AndersonTorres ];
platforms = lib.platforms.unix;
};
})

View File

@ -30125,9 +30125,6 @@ with pkgs;
ecs-agent = callPackage ../applications/virtualization/ecs-agent { };
inherit (recurseIntoAttrs (callPackage ../applications/editors/ed { }))
ed edUnstable;
edlin = callPackage ../applications/editors/edlin { };
oed = callPackage ../applications/editors/oed { };