aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix120
1 files changed, 120 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix
new file mode 100644
index 000000000000..f991fe7ea666
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/editors/emacs/macport.nix
@@ -0,0 +1,120 @@
+{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake, jansson
+, AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
+, ImageCaptureCore, GSS, ImageIO # These may be optional
+}:
+
+stdenv.mkDerivation rec {
+ pname = "emacs";
+ version = "27.1";
+
+ emacsName = "emacs-${version}";
+ macportVersion = "8.0";
+ name = "emacs-mac-${version}-${macportVersion}";
+
+ src = fetchurl {
+ url = "mirror://gnu/emacs/${emacsName}.tar.xz";
+ sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+ };
+
+ macportSrc = fetchurl {
+ url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
+ sha256 = "0rjk82k9qp1g701pfd4f0q2myzvsnp9q8xzphlxwi5yzwbs91kjq";
+ };
+
+ hiresSrc = fetchurl {
+ url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-hires-icons-3.0.tar.gz";
+ sha256 = "0f2wzdw2a3ac581322b2y79rlj3c9f33ddrq9allj97r1si6v5xk";
+ };
+
+ patches = [ ./clean-env.patch ];
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ pkgconfig autoconf automake ];
+
+ buildInputs = [ ncurses libxml2 gnutls texinfo gettext jansson
+ AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
+ ImageCaptureCore GSS ImageIO # may be optional
+ ];
+
+ postUnpack = ''
+ mv $sourceRoot $name
+ tar xzf $macportSrc -C $name --strip-components=1
+ mv $name $sourceRoot
+
+ # extract retina image resources
+ tar xzfv $hiresSrc --strip 1 -C $sourceRoot
+ '';
+
+ postPatch = ''
+ patch -p1 < patch-mac
+ substituteInPlace lisp/international/mule-cmds.el \
+ --replace /usr/share/locale ${gettext}/share/locale
+
+ # use newer emacs icon
+ cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
+
+ # Fix sandbox impurities.
+ substituteInPlace Makefile.in --replace '/bin/pwd' 'pwd'
+ substituteInPlace lib-src/Makefile.in --replace '/bin/pwd' 'pwd'
+ '';
+
+ configureFlags = [
+ "LDFLAGS=-L${ncurses.out}/lib"
+ "--with-xml2=yes"
+ "--with-gnutls=yes"
+ "--with-mac"
+ "--with-modules"
+ "--enable-mac-app=$$out/Applications"
+ ];
+
+ CFLAGS = "-O3";
+ LDFLAGS = "-O3 -L${ncurses.out}/lib";
+
+ postInstall = ''
+ mkdir -p $out/share/emacs/site-lisp/
+ cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
+ '';
+
+ # fails with:
+
+ # Ran 3870 tests, 3759 results as expected, 6 unexpected, 105 skipped
+ # 5 files contained unexpected results:
+ # lisp/url/url-handlers-test.log
+ # lisp/simple-tests.log
+ # lisp/files-x-tests.log
+ # lisp/cedet/srecode-utest-template.log
+ # lisp/net/tramp-tests.log
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "The extensible, customizable text editor";
+ homepage = "https://www.gnu.org/software/emacs/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ jwiegley matthewbauer ];
+ platforms = platforms.darwin;
+
+ 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.
+
+ This is the "Mac port" addition to GNU Emacs 26. This provides a native
+ GUI support for Mac OS X 10.6 - 10.12. Note that Emacs 23 and later
+ already contain the official GUI support via the NS (Cocoa) port for
+ Mac OS X 10.4 and later. So if it is good enough for you, then you
+ don't need to try this.
+ '';
+ };
+}