This approach applies to _all_ RUN_TEMACS calls and successfully removes -dev paths from the closure and reduces the closure size from ~1.4G to just under ~464M.
It's also less brittle than having in-tree patches.
continuation of #109595
pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.
python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
This makes it much easier to create customisations around emacs via
the a new convenience passthru attr:
- `emacs.pkgs`: What used to be emacsPackages is now `emacs.pkgs`
The previous versioned names `emacs*Packages` have been moved to
aliases.nix and are now considered deprecated in favour of `emacs*.pkgs`.
If I'm running an Emacs executable from emacsWithPackages as my main
programming environment, and I'm hacking on Emacs, or the Emacs
packaging in Nixpkgs, or whatever, I don't want the Emacs packages
from the wrapper to show up in the load path of that child Emacs. It
results in differing behaviour depending on whether the child Emacs is
run from Emacs or from, for example, an external terminal emulator,
which is very surprising.
To avoid this, pass another environment variable containing the
wrapper site-lisp path, and use that value to remove the corresponding
entry in EMACSLOADPATH, so it won't be propagated to child Emacsen.
siteVersionDir isn't a full path, it's just the name of the version
directory entry in $out/share/emacs, e.g. "27.1", so since
d1b0eef9b5 ("emacs: Don't use interpolation for version"), we've been
trying to remove a non-existent directory. This would have been
caught if we hadn't been giving -f to rm unnecessarily, because -f
suppresses errors. As well as fixing the path, I've removed the -f
from rm. Doing this to the line above as well revealed that rm-ing
$out/var was no longer necessary, since nothing has been put there
since ac23a7c459 ("emacs: 25.3 → 26.1") -- it would now only be
created if we set the --with-gameuser configure option, which we
don't.
Emacs 27 doesn't use ImageMagick by default to display images [1]:
** Emacs no longer defaults to using ImageMagick to display images.
This is due to security and stability concerns with ImageMagick. To
override the default, use 'configure --with-imagemagick'.
[1] https://github.com/emacs-mirror/emacs/blob/emacs-27.1/etc/NEWS#L96-L98
The given paths gives rise to errors such as,
```
x86_64-unknown-linux-gnu-gcc-9.3.0: fatal error: cannot execute ‘as’: execvp: No such file or directory
compilation terminated.
```
in the `*Async-native-compile-log*` buffer.
Fixes <https://github.com/nix-community/emacs-overlay/issues/69>
The -B flag to gcc (and libgccjit) allows us to specify where it can
find things it needs to correctly compile code (both programs and
libraries) without adjusting any environmental flags: So, no need to
wrap the program for a PATH entry containing binutils, and no need to
explicitly pass a linker path anymore.
The -B flag to gcc (and libgccjit) allows us to specify where it can
find things it needs to correctly compile code (both programs and
libraries) without adjusting any environmental flags: So, no need to
wrap the program for a PATH entry containing binutils, and no need to
explicitly pass a linker path anymore.
This way, we don't have to drag clang or binutils/binutils-wrapped
into the emacs closure, and can instead rely on using the correct one
for the platform we're running on.
Co-authored-by: Matthew Bauer <mjbauer95@gmail.com>
Since Darwin's linker does not understand LIBRARY_PATH, we have to set
the library path as explicit linker flags: This requires a very recent
feature/native-comp emacs revision, but it runs on Darwin and
correctly compiles files at runtime.
The latter doesn't exist on Darwin (and, presumably, other targets as
well). This change allows emacsGcc from emacs-overlay to attempt to
build where previously, the derivation would error out.
These are required for emacs 27 and above and the nix-community emacs
overlay are adding these via overrides.
Add these already on emacs 26 to be forwards compatible and require
less overrides in the overlay.
@the-kenny did a good job in the past and is set as maintainer in many package,
however since 2017-2018 he stopped contributing. To create less confusion
in pull requests when people try to request his feedback, I removed him as
maintainer from all packages.
NixOS 19.03 has hunspell 1.7.0 which is incompatible with emacs 26.1.
This issue has been fixed in upstream and we should drop this patch
after emacs is updated too.
Tramp checks for a running `gvfsd-fuse` process to figure out whether to enable
gvfs-based. Its `tramp-compat-process-running-p` function uses
`/proc/<pid>/comm` to check for the name of running process(es). In Nix, the
gvfsd processes are launched via wrappers and the name of `gvfsd-fuse` in
`comm` in Linux is `.gvfsd-fuse-wra` (truncated to 15 characters) which
means the process is not detected and `tramp-gvfs-enabled` ends up with
`nil` even when gvfs is available.
This patch adds `.gvfsd-fuse-wrapped` to the list of process names to check when
determining the value of `tramp-gvfs-enabled`.
* pkgs/applications/editors/emacs/site-start.el (tramp-sh): Use
correct feature name
Tramp upstream recently dropped the autoload cookie from
tramp-remote-path. This makes Emacs error when trying to load tramp.
Using the correct feature name fixes this.
Also remove incorrect emacs25Macport alias.
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_mac_term_init in macterm.o
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetDistributedCenter", referenced from:
_mac_term_init in macterm.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFURLCopyResourcePropertyForKey", referenced from:
_Fmac_file_alias_p in mac.o
"_CFURLCreateBookmarkDataFromFile", referenced from:
_Fmac_file_alias_p in mac.o
"_CFURLCreateByResolvingBookmarkData", referenced from:
_Fmac_file_alias_p in mac.o
"_CFURLResourceIsReachable", referenced from:
_mac_update_title_bar in macfns.o
_mac_input_source_properties in macfns.o
"_NSDefaultRunLoopMode", referenced from:
-[NSApplication(Emacs) runTemporarilyWithBlock:] in macappkit.o
___57-[EmacsController handleQueuedNSEventsWithHoldingQuitIn:]_block_invoke in macappkit.o
_mac_run_loop_run_once in macappkit.o
___mac_run_loop_run_once_block_invoke in macappkit.o
___37-[EmacsController(Menu) trackMenuBar]_block_invoke in macappkit.o
___create_and_show_dialog_block_invoke.2445 in macappkit.o
___mac_select_block_invoke in macappkit.o
...
"_NSURLAttributeModificationDateKey", referenced from:
_mac_document_create_with_url in macappkit.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSData", referenced from:
l_OBJC_$_CATEGORY_NSData_$_Emacs in macappkit.o
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMethodSignature", referenced from:
l_OBJC_$_CATEGORY_NSMethodSignature_$_Emacs in macappkit.o
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
l_OBJC_$_CATEGORY_NSMutableArray_$_Emacs in macappkit.o
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableData", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSNull", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSSet", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in macappkit.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in macappkit.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table81 in macappkit.o
GCC_except_table810 in macappkit.o
"_kCFURLIsAliasFileKey", referenced from:
_Fmac_file_alias_p in mac.o
"_kCFURLIsSymbolicLinkKey", referenced from:
_Fmac_file_alias_p in mac.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_NSDefaultRunLoopMode", referenced from:
_ns_send_appdefined in nsterm.o
-[EmacsApp run] in nsterm.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in nsimage.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macfont.o
"_OBJC_CLASS_$_NSLocale", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table8 in nsterm.o
GCC_except_table1 in nsselect.o
ld: symbol(s) not found for architecture x86_64
Undefined symbols for architecture x86_64:
"_CFNotificationCenterAddObserver", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_CFNotificationCenterGetLocalCenter", referenced from:
_macfont_copy_available_families_cache in macfont.o
"_NSDefaultRunLoopMode", referenced from:
_ns_send_appdefined in nsterm.o
-[EmacsApp run] in nsterm.o
"_OBJC_CLASS_$_NSArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSData", referenced from:
objc-class-ref in nsimage.o
"_OBJC_CLASS_$_NSDate", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSDictionary", referenced from:
objc-class-ref in macfont.o
"_OBJC_CLASS_$_NSLocale", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSMutableArray", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSMutableDictionary", referenced from:
objc-class-ref in nsmenu.o
objc-class-ref in nsselect.o
"_OBJC_CLASS_$_NSMutableSet", referenced from:
objc-class-ref in nsterm.o
"_OBJC_CLASS_$_NSRunLoop", referenced from:
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSTimer", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsmenu.o
"_OBJC_CLASS_$_NSURL", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_CLASS_$_NSUserDefaults", referenced from:
objc-class-ref in nsterm.o
objc-class-ref in nsfns.o
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table8 in nsterm.o
GCC_except_table1 in nsselect.o
ld: symbol(s) not found for architecture x86_64
Fixes a critical issue with macOS
[NEWS](https://bitbucket.org/mituharu/emacs-mac/raw/master/NEWS-mac)
* emacs-26.1-mac-7.2 (2018-09-09)
** Fixed bugs
*** Buffer contents are not displayed on macOS 10.14.
This is mainly because now NSViews are backed by Core Animation Layer
(layer-backed) by default and non-deferred drawing into views no
longer works. Instead of switching to deferred drawing (i.e., draw
only inside -[NSView drawRect:]), we draw into our own backing bitmap
in a non-deferred way as before, and update the view contents with the
resulting image via -[NSView updateLayer]. This "application-side
double buffering" is also available on OS X 10.8 - macOS 10.13 if you
set the frame parameter `inhibit-double-buffering' to nil when
creating a frame. Just like on macOS 10.14, such a frame does not do
LCD smoothing.
*** Screenshot grabbed via Services is displayed in wrong size when we
have display mirroring between Retina and non-Retina displays.
*** Cursor movement just after frame resize sometimes leaves garbage.
*** Crash by the Fall_threads call from the GUI thread at the select
emulation when there are multiple Lisp threads.
*** Info title has ASCII underline unlike other window systems.
*** Vertical scroll bar is created as horizontal if frame font height
is short.
** Improvements
*** macOS 10.14 adds property :appearance to (mac-application-state).
The value may be "NSAppearanceNameAqua" or "NSAppearanceNameDarkAqua".
*** Add new color format "mac:COLOR-LIST-NAME:COLOR-NAME" and
"mac:COLOR-NAME" (shorthand for "mac:System:COLOR-NAME"). The actual
color may be different depending on the global appearance setting on
macOS 10.14. For example, "mac:textColor" is black on the Light Mode
but is white on the Dark Mode.
*** Default frame colors respect appearance setting on macOS 10.14.
Now the default frame foreground/background color is
"mac:textColor"/"mac:textBackgroundColor", respectively. Changes of
the system setting of the global appearance are dynamically reflected.
*** New function `mac-color-list-alist' to get the available
combinations of COLOR-LIST-NAMEs and COLOR-NAMEs. Note that this
value is dependent on user environment and OS version. Also, some
combinations may represent image patterns rather than colors. For the
former cases, `(color-values "mac:COLOR-LIST-NAME:COLOR-NAME")'
returns nil.
This adds subdirectories of `share/emacs/site-lisp/` in every path in
`NIX_PROFILES` to `load-path` to allow loading of more complex
libraries like `mu4e`.
Fixes#33412
`site-start.el` is the file loaded on startup, containing nix-specific
customizations like adding paths in `NIX_PROFILES` to the
emacs-specific search-path (`load-path`) or making man-pages in these
directories discoverable.
This reduces the closure size of Emacs from 575 to 279 MiB. Dumping
Emacs had a chance of leaking parts of the environment (such as $PATH)
into the dumped executable. This hopefully fixes it. (It's a bit hard
to tell since the effect is not deterministic.)
https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00211.html
> This is an emergency release to fix a security vulnerability in Emacs.
>
> Enriched Text mode has its support for decoding 'x-display' disabled.
> This feature allows saving 'display' properties as part of text.
> Emacs 'display' properties support evaluation of arbitrary Lisp forms
> as part of instantiating the property, so decoding 'x-display' is
> vulnerable to executing arbitrary malicious Lisp code included in the
> text (e.g., sent as part of an email message).
Previously, emacs-macport was giving the error:
- AppKit/AppKit.h: present but cannot be compiled
- Carbon/Carbon.h: present but cannot be compiled
This add "MAC_OS_X_VERSION_MIN_REQUIRED=1090" to CFLAGS to allow them
to compile with the new 10.10 headers.
Fixes#20682.
Install the source files, and the associated TAGS files. Use
.dir-locals.el to select the TAGS file automatically.
Turn the option on by default, to get a consistent behavior when using
xref-find-definitions (M-.), whether looking for an elisp (e.g. defun)
or a C (e.g. defalias) definition.
This commit removes all references to emacs24 with the exception of
emacs24-macports. The two folders in `pkgs/applications/editors` named
`emacs-24` and `emacs-24` are consolidated to a new `emacs` folder.
Various parts in nixpkgs also referenced `emacs24Packages` (pinned to
`emacs24`) explicitly where `emacsPackages` (non-pinned) is more
appropriate. These references get fixed by this commit too.
23.x), which GTK and Xft support. Add something like
(set-default-font "Bitstream Vera Sans Mono-8")
to ~/.emacs to get a TTF font.
svn path=/nixpkgs/trunk/; revision=7841
the new $NIX_GCC/nix-support/dynamic-linker file to locate the
dynamic linker directly (don't hardcode ld-linux.so.2).
svn path=/nixpkgs/trunk/; revision=6873
set `useOldXLibs' to `false' in all-packages-generic.nix to use
them.
* Added Xaw3d.
* Added Xaw3d support to Emacs.
svn path=/nixpkgs/trunk/; revision=4263
* Make builders unexecutable by removing the hash-bang line and
execute permission.
* Convert calls to `derivation' to `mkDerivation'.
* Remove `system' and `stdenv' attributes from calls to
`mkDerivation'. These transformations were all done automatically,
so it is quite possible I broke stuff.
* Put the `mkDerivation' function in stdenv/generic.
svn path=/nixpkgs/trunk/; revision=874