Merge pull request #247357 from atorres1985-contrib/emacs-update

emacs: update to 29.1
This commit is contained in:
Atemu 2023-08-13 16:15:36 +02:00 committed by GitHub
commit 5f98e7c92b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 57 additions and 22 deletions

View File

@ -136,6 +136,10 @@
- `pharo` has been updated to latest stable (PharoVM 10.0.5), which is compatible with the latest stable and oldstable images (Pharo 10 and 11). The VM in question is the 64bit Spur. The 32bit version has been dropped due to lack of maintenance. The Cog VM has been deleted because it is severily outdated. Finally, the `pharo-launcher` package has been deleted because it was not compatible with the newer VM, and due to lack of maintenance. - `pharo` has been updated to latest stable (PharoVM 10.0.5), which is compatible with the latest stable and oldstable images (Pharo 10 and 11). The VM in question is the 64bit Spur. The 32bit version has been dropped due to lack of maintenance. The Cog VM has been deleted because it is severily outdated. Finally, the `pharo-launcher` package has been deleted because it was not compatible with the newer VM, and due to lack of maintenance.
- Emacs mainline version 29 was introduced. This new version includes many major additions, most notably `tree-sitter` support (enabled by default) and the pgtk variant (useful for Wayland users), which is available under the attribute `emacs29-pgtk`.
- Emacs macport version 29 was introduced.
## Other Notable Changes {#sec-release-23.11-notable-changes} ## Other Notable Changes {#sec-release-23.11-notable-changes}
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration. - The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.

View File

@ -54,7 +54,16 @@ lib.makeScope pkgs.newScope (self:
withPgtk = true; withPgtk = true;
}; };
emacs-macport = callPackage (self.sources.emacs-macport) { emacs28-macport = callPackage (self.sources.emacs28-macport) {
inherit gconf;
inherit (pkgs.darwin) sigtool;
inherit (pkgs.darwin.apple_sdk.frameworks)
AppKit Carbon Cocoa GSS ImageCaptureCore ImageIO IOKit OSAKit Quartz
QuartzCore WebKit;
};
emacs29-macport = callPackage (self.sources.emacs29-macport) {
inherit gconf; inherit gconf;
inherit (pkgs.darwin) sigtool; inherit (pkgs.darwin) sigtool;

View File

@ -4,9 +4,13 @@
}: }:
let let
mainlineMeta = { metaFor = variant: version: rev: {
homepage = "https://www.gnu.org/software/emacs/"; homepage = {
description = "The extensible, customizable GNU text editor"; "mainline" = "https://www.gnu.org/software/emacs/";
"macport" = "https://bitbucket.org/mituharu/emacs-mac/";
}.${variant};
description = "The extensible, customizable GNU text editor"
+ lib.optionalString (variant == "macport") " - macport variant";
longDescription = '' longDescription = ''
GNU Emacs is an extensible, customizable text editorand more. At its core GNU Emacs is an extensible, customizable text editorand more. At its core
is an interpreter for Emacs Lisp, a dialect of the Lisp programming is an interpreter for Emacs Lisp, a dialect of the Lisp programming
@ -21,7 +25,15 @@ let
functionality, including a project planner, mail and news reader, debugger functionality, including a project planner, mail and news reader, debugger
interface, calendar, and more. Many of these extensions are distributed interface, calendar, and more. Many of these extensions are distributed
with GNU Emacs; others are available separately. with GNU Emacs; others are available separately.
'' + lib.optionalString (variant == "macport") ''
This release is built from Mitsuharu Yamamoto's patched source code
tailored for macOS.
''; '';
changelog = {
"mainline" = "https://www.gnu.org/savannah-checkouts/gnu/emacs/news/NEWS.${version}";
"macport" = "https://bitbucket.org/mituharu/emacs-mac/raw/${rev}/NEWS-mac";
}.${variant};
license = lib.licenses.gpl3Plus; license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ maintainers = with lib.maintainers; [
AndersonTorres AndersonTorres
@ -31,7 +43,10 @@ let
lovek323 lovek323
matthewbauer matthewbauer
]; ];
platforms = lib.platforms.all; platforms = {
"mainline" = lib.platforms.all;
"macport" = lib.platforms.darwin;
}.${variant};
mainProgram = "emacs"; mainProgram = "emacs";
}; };
in in
@ -46,23 +61,23 @@ in
hash = "sha256-4oSLcUDR0MOEt53QOiZSVU8kPJ67GwugmBxdX3F15Ag="; hash = "sha256-4oSLcUDR0MOEt53QOiZSVU8kPJ67GwugmBxdX3F15Ag=";
}; };
meta = mainlineMeta; meta = metaFor "mainline" "28.2" "28.2";
}; };
emacs29 = import ./generic.nix { emacs29 = import ./generic.nix {
pname = "emacs"; pname = "emacs";
version = "29.1-rc1"; version = "29.1";
variant = "mainline"; variant = "mainline";
src = fetchFromSavannah { src = fetchFromSavannah {
repo = "emacs"; repo = "emacs";
rev = "29.1-rc1"; rev = "29.1";
hash = "sha256-p0lBSKsHrFwYTqO5UVIF/PgiqwdhYQE4oUVcPtd+gsU="; hash = "sha256-3HDCwtOKvkXwSULf3W7YgTz4GV8zvYnh2RrL28qzGKg=";
}; };
meta = mainlineMeta; meta = metaFor "mainline" "29.1" "29.1";
}; };
emacs-macport = import ./generic.nix { emacs28-macport = import ./generic.nix {
pname = "emacs-mac"; pname = "emacs-mac";
version = "28.2"; version = "28.2";
variant = "macport"; variant = "macport";
@ -73,16 +88,21 @@ in
hash = "sha256-Ne2jQ2nVLNiQmnkkOXVc5AkLVkTpm8pFC7VNY2gQjPE="; hash = "sha256-Ne2jQ2nVLNiQmnkkOXVc5AkLVkTpm8pFC7VNY2gQjPE=";
}; };
meta = { meta = metaFor "macport" "28.2" "emacs-28.2-mac-9.1";
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 emacs29-macport = import ./generic.nix {
tailoired for MacOS X. pname = "emacs-mac";
''; version = "29.1";
inherit (mainlineMeta) license maintainers; variant = "macport";
platforms = lib.platforms.darwin;
src = fetchFromBitbucket {
owner = "mituharu";
repo = "emacs-mac";
rev = "emacs-29.1-mac-10.0";
hash = "sha256-TE829qJdPjeOQ+kD0SfyO8d5YpJjBge/g+nScwj+XVU=";
}; };
meta = metaFor "macport" "29.1" "emacs-29.1-mac-10.0";
}; };
} }

View File

@ -460,6 +460,7 @@ mapAliases ({
emacs28NativeComp = emacs28; # Added 2022-06-08 emacs28NativeComp = emacs28; # Added 2022-06-08
emacs28Packages = emacs28.pkgs; # Added 2021-10-04 emacs28Packages = emacs28.pkgs; # Added 2021-10-04
emacs28WithPackages = emacs28.pkgs.withPackages; # Added 2021-10-04 emacs28WithPackages = emacs28.pkgs.withPackages; # Added 2021-10-04
emacsMacport = emacs-macport; # Added 2023-08-10
emacsNativeComp = emacs28NativeComp; # Added 2022-06-08 emacsNativeComp = emacs28NativeComp; # Added 2022-06-08
emacsPackagesGen = throw "'emacsPackagesGen' has been renamed to/replaced by 'emacsPackagesFor'"; # Converted to throw 2022-02-22 emacsPackagesGen = throw "'emacsPackagesGen' has been renamed to/replaced by 'emacsPackagesFor'"; # Converted to throw 2022-02-22
emacsPackagesNg = emacs.pkgs; # Added 2019-08-07 emacsPackagesNg = emacs.pkgs; # Added 2019-08-07

View File

@ -31153,10 +31153,11 @@ with pkgs;
emacs29-gtk3 emacs29-gtk3
emacs29-nox emacs29-nox
emacs29-pgtk emacs29-pgtk
emacs-macport emacs28-macport
emacs29-macport
; ;
emacsMacport = emacs-macport; emacs-macport = emacs28-macport;
emacs = emacs28; emacs = emacs28;
emacs-gtk = emacs28-gtk3; emacs-gtk = emacs28-gtk3;
emacs-nox = emacs28-nox; emacs-nox = emacs28-nox;