From a062bf3d8e3f16b30c10e6ee499b24613408dacb Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Fri, 7 Jul 2023 00:23:47 -0300 Subject: [PATCH] emacs: factor meta Because metadata pertains to the source code variants, not to the build logic. --- pkgs/applications/editors/emacs/generic.nix | 40 +----------------- pkgs/applications/editors/emacs/sources.nix | 47 +++++++++++++++++++++ 2 files changed, 49 insertions(+), 38 deletions(-) diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix index 3d3b88e14c3d..1ae3d5c79252 100644 --- a/pkgs/applications/editors/emacs/generic.nix +++ b/pkgs/applications/editors/emacs/generic.nix @@ -3,6 +3,7 @@ , variant , src , patches ? _: [ ] +, meta }: { lib @@ -391,44 +392,7 @@ mkDerivation (finalAttrs: (lib.optionalAttrs withNativeCompilation { treeSitter = builtins.trace "emacs.passthru: treeSitter was renamed to withTreeSitter and will be removed in 23.11" withTreeSitter; }; - meta = { - homepage = if variant == "macport" - then "https://bitbucket.org/mituharu/emacs-mac/" - else "https://www.gnu.org/software/emacs/"; - description = "The extensible, customizable GNU text editor" - + lib.optionalString (variant == "macport") " - with macport patches"; - longDescription = '' - GNU Emacs is an extensible, customizable text editor—and more. At its - core is an interpreter for Emacs Lisp, a dialect of the Lisp programming - language with extensions to support text editing. - - The features of GNU Emacs include: content-sensitive editing modes, - including syntax coloring, for a wide variety of file types including - plain text, source code, and HTML; complete built-in documentation, - including a tutorial for new users; full Unicode support for nearly all - human languages and their scripts; highly customizable, using Emacs Lisp - code or a graphical interface; a large number of extensions that add other - functionality, including a project planner, mail and news reader, debugger - interface, calendar, and more. Many of these extensions are distributed - with GNU Emacs; others are available separately. - '' - + lib.optionalString (variant == "macport") '' - - This release is built from Mitsuharu Yamamoto's patched, MacOS X-specific - source code. - ''; - license = lib.licenses.gpl3Plus; - maintainers = with lib.maintainers; [ - AndersonTorres - adisbladis - atemu - jwiegley - lovek323 - matthewbauer - ]; - platforms = if variant == "macport" - then lib.platforms.darwin - else lib.platforms.all; + meta = meta // { broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform); }; })) diff --git a/pkgs/applications/editors/emacs/sources.nix b/pkgs/applications/editors/emacs/sources.nix index 995ba9c48ec9..9eaa4d119e53 100644 --- a/pkgs/applications/editors/emacs/sources.nix +++ b/pkgs/applications/editors/emacs/sources.nix @@ -3,6 +3,37 @@ , fetchFromSavannah }: +let + mainlineMeta = { + homepage = "https://www.gnu.org/software/emacs/"; + description = "The extensible, customizable GNU text editor"; + longDescription = '' + GNU Emacs is an extensible, customizable text editor—and more. At its core + is an interpreter for Emacs Lisp, a dialect of the Lisp programming + language with extensions to support text editing. + + The features of GNU Emacs include: content-sensitive editing modes, + including syntax coloring, for a wide variety of file types including + plain text, source code, and HTML; complete built-in documentation, + including a tutorial for new users; full Unicode support for nearly all + human languages and their scripts; highly customizable, using Emacs Lisp + code or a graphical interface; a large number of extensions that add other + functionality, including a project planner, mail and news reader, debugger + interface, calendar, and more. Many of these extensions are distributed + with GNU Emacs; others are available separately. + ''; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ + AndersonTorres + adisbladis + atemu + jwiegley + lovek323 + matthewbauer + ]; + platforms = lib.platforms.all; + }; +in { emacs28 = import ./generic.nix { pname = "emacs"; @@ -13,6 +44,8 @@ rev = "28.2"; hash = "sha256-4oSLcUDR0MOEt53QOiZSVU8kPJ67GwugmBxdX3F15Ag="; }; + + meta = mainlineMeta; }; emacs29 = import ./generic.nix { @@ -24,6 +57,8 @@ rev = "29.0.92"; hash = "sha256-Vkry+2zYejZVwZKQlmQiAJnbjsj87DiIZ1ungooYd8A="; }; + + meta = mainlineMeta; }; emacs-macport = import ./generic.nix { @@ -36,5 +71,17 @@ rev = "emacs-28.2-mac-9.1"; hash = "sha256-Ne2jQ2nVLNiQmnkkOXVc5AkLVkTpm8pFC7VNY2gQjPE="; }; + + meta = { + homepage = "https://bitbucket.org/mituharu/emacs-mac/"; + description = mainlineMeta.description + " - with macport patches"; + longDescription = mainlineMeta.longDescription + '' + + This release is built from Mitsuharu Yamamoto's patched source code + tailoired for MacOS X. + ''; + inherit (mainlineMeta) license maintainers; + platforms = lib.platforms.darwin; + }; }; }