Skip to content

emacs-macport: 29.4 -> 30.1#393512

Closed
juuyokka wants to merge 5 commits intoNixOS:masterfrom
juuyokka:emacs-mac-macport-30.1
Closed

emacs-macport: 29.4 -> 30.1#393512
juuyokka wants to merge 5 commits intoNixOS:masterfrom
juuyokka:emacs-mac-macport-30.1

Conversation

@juuyokka
Copy link
Contributor

@juuyokka juuyokka commented Mar 26, 2025

Mitsuharu's Emacs fork hasn't been updated for the latest release yet, but there's an experimental fork that rebases his work off of Emacs 30.1. While it's not ready for packaging, I wanted to get started on it in preparation for a stable Mac port. https://github.com/jdtsmith/emacs-mac

On Linux, emacs28 and emacs29 have already been removed as of cd0ef8b. Updating emacs-macport to 30 would allow emacs28-macport and emacs29-macport to be removed as well on Darwin.

Since the addition of the new Darwin SDK framework (apple-sdk) in b904748, there are many extraneous inputs from apple_sdk.frameworks that are no longer needed.

Thank you @jasonjckn for bringing this fork to my attention and for your help.

Closes #392960
Closes #351042

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@github-actions github-actions bot added 6.topic: emacs Text editor 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. labels Mar 26, 2025
@juuyokka
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 393512


aarch64-darwin

⏩ 2 packages marked as broken and skipped:
  • emacs28-macport
  • emacs29-macport
✅ 1 package built:
  • emacs-macport (emacs30-macport)

Copy link
Member

@amadaluzia amadaluzia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diff LGTM. I will approve these changes once the port used is stable.

@juuyokka juuyokka force-pushed the emacs-mac-macport-30.1 branch from 3e7f57f to 0867c3b Compare March 27, 2025 02:18
@juuyokka
Copy link
Contributor Author

juuyokka commented Mar 27, 2025

Fixed the older packages so they can still build. meta.knownVulnerabilities will prevent them from being evaluated in CI though. Removing them entirely could be an option, seeing as they have already been removed on the Linux side in cd0ef8b.

@github-actions github-actions bot added 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. and removed 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. labels Mar 27, 2025
@amadaluzia
Copy link
Member

amadaluzia commented Mar 27, 2025

Little extra: would you mind adding this for #392960 to the PR? Cheers.

@juuyokka juuyokka force-pushed the emacs-mac-macport-30.1 branch from 8781db3 to d624c3c Compare March 27, 2025 21:51
@jasonjckn
Copy link

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 393512


aarch64-darwin

⏩ 2 packages marked as broken and skipped:
  • emacs28-macport
  • emacs29-macport
❌ 2 packages failed to build:
  • framac
  • vimacs
✅ 66 packages built:
  • aerc
  • afew
  • afew.dist
  • afew.doc
  • afew.man
  • agda (agdaPackages.agda)
  • agdaPackages._1lab
  • agdaPackages.agda-categories
  • agdaPackages.agda-prelude
  • agdaPackages.cubical
  • agdaPackages.cubical-mini
  • agdaPackages.functional-linear-algebra
  • agdaPackages.generics
  • agdaPackages.standard-library
  • auctex
  • auctex.tex
  • cflow
  • cscope
  • easycrypt
  • emacs (emacs30)
  • emacs-gtk (emacs30-gtk3)
  • emacs-lsp-booster
  • emacs-macport (emacs30-macport)
  • emacs-pgtk (emacs30-pgtk)
  • haskellPackages.Agda
  • haskellPackages.Agda.bin
  • haskellPackages.Agda.data
  • haskellPackages.Agda.doc
  • haskellPackages.notmuch
  • haskellPackages.notmuch.doc
  • lbdb
  • lieer
  • lieer.dist
  • mu
  • mu.mu4e
  • muchsync
  • mujmap
  • neomutt
  • notifymuch
  • notifymuch.dist
  • notmuch
  • notmuch-addrlookup
  • notmuch-mailmover
  • notmuch.bindingconfig
  • notmuch.emacs
  • notmuch.info
  • notmuch.man
  • notmuch.vim (vimPlugins.notmuch-vim, vimPlugins.notmuch-vim.bindingconfig, vimPlugins.notmuch-vim.emacs, vimPlugins.notmuch-vim.info, vimPlugins.notmuch-vim.man, vimPlugins.notmuch-vim.vim)
  • pycflow2dot (python312Packages.pycflow2dot)
  • pycflow2dot.dist (python312Packages.pycflow2dot.dist)
  • python312Packages.notmuch
  • python312Packages.notmuch.dist
  • python312Packages.notmuch2
  • python312Packages.notmuch2.dist
  • python313Packages.notmuch
  • python313Packages.notmuch.dist
  • python313Packages.notmuch2
  • python313Packages.notmuch2.dist
  • python313Packages.pycflow2dot
  • python313Packages.pycflow2dot.dist
  • rtags
  • trexio
  • trexio.dev
  • tuntox
  • why3
  • why3.dev

@juuyokka
Copy link
Contributor Author

❌ 2 packages failed to build:

  • framac
  • vimacs

Both of these package appear to be broken for aarch64-darwin on master. I was able to reproduce the build failure on 65eda81.

@ArkieSoft
Copy link

I was able to reproduce the failures on my machine using
nix build github:NixOS/nixpkgs/65eda81#framac
and
nix build github:NixOS/nixpkgs/65eda81#vimacs

@juuyokka juuyokka force-pushed the emacs-mac-macport-30.1 branch 2 times, most recently from 25dee4a to b019b72 Compare March 29, 2025 01:43
Copy link
Member

@amadaluzia amadaluzia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Diff looks once again OK to me, but I will still choose to wait for jdtsmith to bring his fork out of experimental for approval.

@juuyokka
Copy link
Contributor Author

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 393512 --extra-nixpkgs-config '{ withNativeCompilation = false; }'


aarch64-darwin

⏩ 1 package marked as broken and skipped:
  • mozart2
❌ 2 packages failed to build:
  • framac
  • vimacs
✅ 67 packages built:
  • aerc
  • afew
  • afew.dist
  • afew.doc
  • afew.man
  • agda (agdaPackages.agda)
  • agdaPackages._1lab
  • agdaPackages.agda-categories
  • agdaPackages.agda-prelude
  • agdaPackages.cubical
  • agdaPackages.cubical-mini
  • agdaPackages.functional-linear-algebra
  • agdaPackages.generics
  • agdaPackages.standard-library
  • auctex
  • auctex.tex
  • cflow
  • cscope
  • easycrypt
  • emacs (emacs30)
  • emacs-gtk (emacs30-gtk3)
  • emacs-lsp-booster
  • emacs-macport (emacs30-macport)
  • emacs-nox (emacs30-nox)
  • emacs-pgtk (emacs30-pgtk)
  • haskellPackages.Agda
  • haskellPackages.Agda.bin
  • haskellPackages.Agda.data
  • haskellPackages.Agda.doc
  • haskellPackages.notmuch
  • haskellPackages.notmuch.doc
  • lbdb
  • lieer
  • lieer.dist
  • mu
  • mu.mu4e
  • muchsync
  • mujmap
  • neomutt
  • notifymuch
  • notifymuch.dist
  • notmuch
  • notmuch-addrlookup
  • notmuch-mailmover
  • notmuch.bindingconfig
  • notmuch.emacs
  • notmuch.info
  • notmuch.man
  • notmuch.vim (vimPlugins.notmuch-vim, vimPlugins.notmuch-vim.bindingconfig, vimPlugins.notmuch-vim.emacs, vimPlugins.notmuch-vim.info, vimPlugins.notmuch-vim.man, vimPlugins.notmuch-vim.vim)
  • pycflow2dot (python312Packages.pycflow2dot)
  • pycflow2dot.dist (python312Packages.pycflow2dot.dist)
  • python312Packages.notmuch
  • python312Packages.notmuch.dist
  • python312Packages.notmuch2
  • python312Packages.notmuch2.dist
  • python313Packages.notmuch
  • python313Packages.notmuch.dist
  • python313Packages.notmuch2
  • python313Packages.notmuch2.dist
  • python313Packages.pycflow2dot
  • python313Packages.pycflow2dot.dist
  • rtags
  • trexio
  • trexio.dev
  • tuntox
  • why3
  • why3.dev

@juuyokka juuyokka changed the title emacs-mac: init at 30.1 emacs-macport: init at 30.1 Mar 29, 2025
@juuyokka juuyokka force-pushed the emacs-mac-macport-30.1 branch from 9044e6d to 549313d Compare March 29, 2025 17:44
@juuyokka juuyokka force-pushed the emacs-mac-macport-30.1 branch from 549313d to 62a0896 Compare March 30, 2025 17:16
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this abandoned, or it is just dormant?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To my knowledge, it is only dormant. There doesn't appear to be a branch for Emacs 30, so I swapped sources to a fork until something stable comes out of the woodwork.

@wegank wegank added the 2.status: merge conflict This PR has merge conflicts with the target branch label Apr 2, 2025
juuyokka added 3 commits April 2, 2025 13:24
Reflecting the removal of Linux packages in cd0ef8b
Packages in pkgs.darwin.apple_sdk.frameworks are not needed when using
pkgs.darwin.apple-sdk (note the dash).
juuyokka added 2 commits April 2, 2025 13:24
The macport has optional features up to macOS 14, but apple-sdk defaults to 11.3, so none of them will compile.
Upgrading the SDK will not impact functionality on older versions of macOS as there are also runtime checks.
@juuyokka juuyokka force-pushed the emacs-mac-macport-30.1 branch from 62a0896 to e69459d Compare April 2, 2025 20:24
@ofborg ofborg bot removed the 2.status: merge conflict This PR has merge conflicts with the target branch label Apr 2, 2025
@deejayem
Copy link
Member

deejayem commented Apr 5, 2025

For what it's worth, Mitsuharu Yamamoto did a release of 29.4 earlier this week (https://bitbucket.org/mituharu/emacs-mac/commits/55768fe4781855e8cd4af721c8bf0610ed952e97), so the project isn't dead yet. I don't know what that means for when 30.1 might come along though, as he hasn't merged that into his work branch yet.

@archer-65 archer-65 mentioned this pull request Apr 5, 2025
13 tasks
@folliehiyuki
Copy link
Contributor

If I'm not mistaken, emacs-macport package doesn't expose emacs and emacsclient to bin output. Can this be implemented in this PR as well? It's useful for setting up emacs-daemon on Darwin.

@infrequentcoder
Copy link

infrequentcoder commented Apr 14, 2025

If I'm not mistaken, emacs-macport package doesn't expose emacs and emacsclient to bin output. Can this be implemented in this PR as well? It's useful for setting up emacs-daemon on Darwin.

I don’t think this is entirely accurate. I use emacsclient on the command line all the time and debug my config with emacs as needed while using the emacs-macport package.

@wegank wegank added the 2.status: merge conflict This PR has merge conflicts with the target branch label Apr 17, 2025
@wolfgangwalther wolfgangwalther changed the title emacs-macport: init at 30.1 emacs-macport: 29.4 -> 30.1 Jul 9, 2025
@liaowang11
Copy link
Contributor

Can you kindly merge the latest nixpkgs so we can enable native compilation?

@archer-65
Copy link
Contributor

I think it would be better to keep both 29.4 and 30.1 until the latter is considered stable.

acl,
alsa-lib,
apple-sdk,
apple-sdk_14,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@juuyokka is apple-sdk_14 the minimum sdk version that is needed for this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It has additional functionality on newer SDKs. There is no harm in using a newer SDK for a correctly-written application that does runtime availability checks before using newer APIs, and this appears to do so. However, macOS 14 will be the baseline for 25.11 anyway, so it may not be worth explicitly specifying until they implement optional functionality for newer versions.

emacs30-macport = import ./make-emacs.nix (mkArgs {
pname = "emacs-mac";
version = "29.1";
version = "30.1.50";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@juuyokka I think latest version is now at "30.2.50". See jdtsmith/emacs-mac@34f3540

@jian-lin
Copy link
Contributor

jian-lin commented Sep 5, 2025

emacs-macport users, please review and/or test #440245.

@jwiegley
Copy link
Contributor

jwiegley commented Sep 5, 2025

Btw, I've been using a (slightly modified for unstable) variant of this patch for many weeks now, and all has been working well. I also keep it up to date with jdtsmith's latest Eamcs updates.

@what-the-functor
Copy link

It has been working well for me also.

@Sigmanificient
Copy link
Member

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.status: merge conflict This PR has merge conflicts with the target branch 6.topic: emacs Text editor 10.rebuild-darwin: 11-100 This PR causes between 11 and 100 packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[enhancement] Cleanup Darwin-related stuff from Emacs derivation Update Request: emacs-macport 29.4 → 30.1