(editors/emacs27) New version of Emacs packaged. See TODO

This commit is contained in:
Makoto Fujiwara 2020-08-12 22:30:07 +09:00
parent 63d4bd225d
commit 0de37a788b
16 changed files with 4480 additions and 0 deletions

20
emacs27/DESCR Normal file
View File

@ -0,0 +1,20 @@
GNU Emacs is an extensible, customizable editor textand 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.
- Support for many languages and their scripts, including all scripts,
Russian, Greek, Japanese, Chinese, Korean, Thai, Vietnamese, Lao,
Ethiopian, and some Indian scripts.
- Highly customizable, using Emacs Lisp code or a graphical
customization 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 package contains Emacs version 27.

12
emacs27/Makefile Normal file
View File

@ -0,0 +1,12 @@
# $NetBSD: Makefile,v 1.21 2020/06/05 12:49:05 jperkin Exp $
CONFLICTS+= emacs27-nox11-[0-9]*
.include "../../wip/emacs27/Makefile.common"
.include "options.mk"
.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
.include "../../sysutils/desktop-file-utils/desktopdb.mk"
.include "../../mk/bsd.pkg.mk"

84
emacs27/Makefile.common Normal file
View File

@ -0,0 +1,84 @@
# $NetBSD: Makefile.common,v 1.3 2019/06/08 10:40:54 rillig Exp $
#
# used by editors/emacs27/Makefile
# used by editors/emacs27-nox11/Makefile
.include "../../mk/bsd.prefs.mk"
DISTNAME= emacs-${EMACS_VERSION}
PKGNAME?= ${DISTNAME:S/emacs/emacs27/}
CATEGORIES= editors
MASTER_SITES= ${MASTER_SITE_GNU:=emacs/}
EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.gnu.org/software/emacs/
COMMENT= GNU editing macros (editor)
LICENSE= gnu-gpl-v3
TEXINFO_REQD= 6.7
BUILD_DEPENDS+= gtexinfo-[0-9]*:../../devel/gtexinfo
WRKSRC= ${WRKDIR}/${DISTNAME:S/b$//}
GNU_CONFIGURE= yes
INFO_FILES= yes
USE_TOOLS+= autoconf automake gmake gzip makeinfo gm4 gsed
CONFIGURE_ARGS+= --srcdir=${WRKSRC}
CONFIGURE_ARGS+= --localstatedir=${VARBASE}
CONFIGURE_ARGS+= --disable-autodepend
CONFIGURE_ENV+= GAMEOWN=${GAMES_USER}
USE_GAMESGROUP= yes
BUILD_DEFS+= VARBASE
BUILD_DEFS+= GAMEDATAMODE
PLIST_SRC+= ../../wip/emacs27/PLIST
.include "../../wip/emacs27/version.mk"
BUILD_TARGET= bootstrap
EMACS_VERSION= ${_EMACS_VERSION_MAJOR}.${_EMACS_VERSION_MINOR}
PLIST_SUBST+= EMACS_VERSION=${EMACS_VERSION}
MAKE_DIRS_PERMS+= ${VARBASE}/games/emacs ${GAMES_USER} ${GAMES_GROUP} ${GAMEDIRMODE}
CONF_FILES_PERMS+= /dev/null ${VARBASE}/games/emacs/snake-scores \
${GAMES_USER} ${GAMES_GROUP} ${GAMEDATAMODE}
CONF_FILES_PERMS+= /dev/null ${VARBASE}/games/emacs/tetris-scores \
${GAMES_USER} ${GAMES_GROUP} ${GAMEDATAMODE}
SPECIAL_PERMS+= libexec/emacs/${EMACS_VERSION}/${MACHINE_GNU_PLATFORM}/update-game-score ${SETGID_GAMES_PERMS}
# build PATH in the dumped emacs is not a problem
CHECK_WRKREF_SKIP+= bin/emacs
CHECK_WRKREF_SKIP+= bin/emacs-${EMACS_VERSION}
CHECK_WRKREF_SKIP+= libexec/emacs/${EMACS_VERSION}/x86_64--netbsd/emacs.pdmp
PRINT_PLIST_AWK+= { gsub(/${MACHINE_GNU_PLATFORM}/, "$${MACHINE_GNU_PLATFORM}"); }
.if (${OPSYS} == "NetBSD") && \
!exists(/usr/lib/libgcc_s.so) && !exists(/usr/lib/libgcc.a)
# NetBSD with native Clang doesn't provide libgcc, everything is in libc.
pre-configure: fake-libgcc
.PHONY: fake-libgcc
fake-libgcc:
${AR} q ${BUILDLINK_DIR}/lib/libgcc.a
.endif
.if (${OPSYS} == "NetBSD") && exists(/usr/include/term.h)
CPPFLAGS+= -DTERMINFO
.elif ${OPSYS} == "FreeBSD" || ${OPSYS} == "Linux" || ${OPSYS} == "OpenBSD"
.include "../../mk/curses.buildlink3.mk"
.else
.include "../../mk/termcap.buildlink3.mk"
.endif
.include "../../mk/oss.buildlink3.mk"
post-extract:
cp ${.CURDIR}/../../wip/emacs27/files/site-init.el ${WRKSRC}/lisp
${CHMOD} -R go-w ${WRKSRC}
.include "../../devel/libgetopt/buildlink3.mk"

4005
emacs27/PLIST Normal file

File diff suppressed because it is too large Load Diff

8
emacs27/PLIST.cocoa Normal file
View File

@ -0,0 +1,8 @@
@comment $NetBSD: PLIST.cocoa,v 1.1 2018/06/20 11:04:19 mef Exp $
Applications/Emacs.app/Contents/Info.plist
Applications/Emacs.app/Contents/MacOS/Emacs
Applications/Emacs.app/Contents/PkgInfo
Applications/Emacs.app/Contents/Resources/Credits.html
Applications/Emacs.app/Contents/Resources/Emacs.icns
Applications/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings
Applications/Emacs.app/Contents/Resources/document.icns

6
emacs27/PLIST.gnustep Normal file
View File

@ -0,0 +1,6 @@
@comment $NetBSD: PLIST.gnustep,v 1.1 2018/06/20 11:04:19 mef Exp $
share/GNUstep/Local/Applications/Emacs.app/Emacs
share/GNUstep/Local/Applications/Emacs.app/Resources/Emacs.desktop
share/GNUstep/Local/Applications/Emacs.app/Resources/Info-gnustep.plist
share/GNUstep/Local/Applications/Emacs.app/Resources/emacstiff
share/GNUstep/Local/Applications/Emacs.app/library_paths.openapp

7
emacs27/TODO Normal file
View File

@ -0,0 +1,7 @@
- in Makefile.common, the hardcode exists
CHECK_WRKREF_SKIP+= libexec/emacs/${EMACS_VERSION}/x86_64--netbsd/emacs.pdmp
This should be adjusted
- nox11 version is not checked yet
- cocoa and gnustep are not checked

16
emacs27/buildlink3.mk Normal file
View File

@ -0,0 +1,16 @@
# $NetBSD: buildlink3.mk,v 1.1 2018/06/20 11:04:19 mef Exp $
#
BUILDLINK_TREE+= emacs
.if !defined(EMACS_BUILDLINK3_MK)
EMACS_BUILDLINK3_MK:=
.include "../../editors/emacs/modules.mk"
BUILDLINK_API_DEPENDS.emacs+= ${_EMACS_REQD}
BUILDLINK_PKGSRCDIR.emacs?= ${_EMACS_PKGDIR}
BUILDLINK_CONTENTS_FILTER.emacs= ${EGREP} '.*\.el$$|.*\.elc$$'
.endif # EMACS_BUILDLINK3_MK
BUILDLINK_TREE+= -emacs

9
emacs27/distinfo Normal file
View File

@ -0,0 +1,9 @@
$NetBSD: distinfo,v 1.5 2020/04/25 05:56:36 dsainty Exp $
SHA1 (emacs-27.1.tar.xz) = d1b6b9efa666614c5628dda9ea78628796a73f7f
RMD160 (emacs-27.1.tar.xz) = 9e07644a19b07391185c3636439759762d357602
SHA512 (emacs-27.1.tar.xz) = dfb26531d2c19cf9fb56505f03d799654b45e5f9528e777900e8280ed2c1d21e04c52f510528e31e015977c471ae63164cedee6174b7439ebcf479a21fc18064
Size (emacs-27.1.tar.xz) = 43752012 bytes
SHA1 (patch-configure) = 1a0124d134072b0e25f3ce023fe0922e23905ea1
SHA1 (patch-configure.ac) = e78ffd36abfa062dc92338b0cc7af1199bfc76c5
SHA1 (patch-src_inotify.c) = fb5a24cd1427b9b868ee6e8cdd17bd4d2d6f937e

View File

@ -0,0 +1,4 @@
;; $NetBSD: site-init.el,v 1.1 2018/06/20 11:04:19 mef Exp $
(autoload 'send-pr "/usr/share/gnats/send-pr.el"
"Command to create and send a problem report." t)

18
emacs27/hacks.mk Normal file
View File

@ -0,0 +1,18 @@
# $NetBSD: hacks.mk,v 1.1 2018/06/20 11:04:19 mef Exp $
.if !defined(EMACS_HACKS_MK)
EMACS_HACKS_MK= defined
.include "../../mk/compiler.mk"
### On NetBSD/amd64 7.99.26, gcc optimisation, at least for version 5.x,
### produces, a "temacs" binary which segfaults.
###
.if !empty(MACHINE_PLATFORM:MNetBSD-*)
. if !empty(CC_VERSION:Mgcc-5.*)
PKG_HACKS+= optimisation
CFLAGS+= -fno-optimize-strlen
. endif
.endif
.endif # EMACS_HACKS_MK

230
emacs27/options.mk Normal file
View File

@ -0,0 +1,230 @@
# $NetBSD: options.mk,v 1.12 2019/09/05 13:04:55 ryoon Exp $
### Set options
PKG_OPTIONS_VAR= PKG_OPTIONS.emacs
PKG_SUPPORTED_OPTIONS= dbus gconf gnutls imagemagick svg xaw3d xft2 xml
# xaw3d is only valid with tookit = xaw
PKG_OPTIONS_OPTIONAL_GROUPS+= window-system
PKG_OPTIONS_GROUP.window-system= x11 nextstep
# tempted to have 'nox11' :-)
PKG_OPTIONS_OPTIONAL_GROUPS+= toolkit
PKG_SUGGESTED_OPTIONS.Darwin= nextstep
# --with-x-toolkit=KIT use an X toolkit (KIT one of: yes or gtk2,
# gtk3, lucid or athena, motif, no)
# gtk in next line implies gtk2, xaw = athena = lucid
PKG_OPTIONS_GROUP.toolkit= gtk gtk2 gtk3 motif xaw lucid
# gtk2 and gtk has the same effect
# gtk3 is default in the logic below (even not included in SUGGESTED_=
# gconf, gtk* and xft2 will be ignored for nextstep even shown as selected.
# svg is omitted because it is rarely needed and either very
# heavyweight or unmaintained.
PKG_SUGGESTED_OPTIONS= dbus gconf gnutls gtk3 xaw3d xft2 xml x11
.include "../../mk/bsd.options.mk"
### --- Check window-system independent options first
###
### Support D-BUS
###
.if !empty(PKG_OPTIONS:Mdbus)
. include "../../sysutils/dbus/buildlink3.mk"
.else
CONFIGURE_ARGS+= --without-dbus
.endif
###
### Support XML2
###
.if !empty(PKG_OPTIONS:Mxml)
USE_TOOLS+= pkg-config
BUILDLINK_API_DEPENDS.libxml2+= libxml2>=2.6.17
.include "../../textproc/libxml2/buildlink3.mk"
.else
CONFIGURE_ARGS+= --without-xml2
.endif
###
### Support gnutls
###
.if !empty(PKG_OPTIONS:Mgnutls)
.include "../../security/gnutls/buildlink3.mk"
.include "../../security/p11-kit/buildlink3.mk"
.else
CONFIGURE_ARGS+= --without-gnutls
.endif
###
### Check non nextstep (implies x11) options ---------------------
###
### x11 is selected (as SUGGESTED above)
###
.if !empty(PKG_OPTIONS:Mx11)
###
### on OSX the configure script will select the "nextstep" window system
### unless you explicitly tell it not to. this should not impact other
### platforms.
###
CONFIGURE_ARGS+= --without-ns
###
### Support SVG
###
. if !empty(PKG_OPTIONS:Msvg)
.include "../../graphics/cairo/buildlink3.mk"
.include "../../graphics/librsvg/buildlink3.mk"
. else
CONFIGURE_ARGS+= --without-rsvg
. endif
###
### Support gconf
###
. if !empty(PKG_OPTIONS:Mgconf)
.include "../../devel/gconfmm/buildlink3.mk"
. else
CONFIGURE_ARGS+= --without-gconf
. endif
###
### Support ImageMagick (not recognized for now, sorry)
###
. if !empty(PKG_OPTIONS:Mimagemagick)
.include "../../graphics/ImageMagick/buildlink3.mk"
# DEPENDS+= py[0-9]*-wand-[0-9]*:../../graphics/py-wand
. else
CONFIGURE_ARGS+= --without-imagemagick
. endif
###
### Support Xaw3d (This is only valid with Lucid Toolkit)
###
. if !empty(PKG_OPTIONS:Mxaw3d)
.include "../../x11/libXaw3d/buildlink3.mk"
. else
CONFIGURE_ARGS+= --without-xaw3d
. endif
### Enable font backend
###
. if !empty(PKG_OPTIONS:Mxft2)
.include "../../fonts/fontconfig/buildlink3.mk"
.include "../../graphics/libotf/buildlink3.mk"
.include "../../graphics/freetype2/buildlink3.mk"
.include "../../x11/libXft/buildlink3.mk"
.include "../../devel/m17n-lib/buildlink3.mk"
. else
CONFIGURE_ARGS+= --without-xft --without-libotf --without-m17n-flt
. endif
###
### Toolkit selection
###
. if (empty(PKG_OPTIONS:Mxaw) && empty(PKG_OPTIONS:Mlucid) && \
empty(PKG_OPTIONS:Mgtk) && empty(PKG_OPTIONS:Mgtk2) && \
empty(PKG_OPTIONS:Mmotif))
# defaults to gtk3
USE_TOOLS+= pkg-config
.include "../../x11/gtk3/buildlink3.mk"
CONFIGURE_ARGS+= --with-x-toolkit=gtk3
. elif !empty(PKG_OPTIONS:Mgtk2) || !empty(PKG_OPTIONS:Mgtk)
USE_TOOLS+= pkg-config
.include "../../x11/gtk2/buildlink3.mk"
CONFIGURE_ARGS+= --with-x-toolkit=gtk2
. elif !empty(PKG_OPTIONS:Mxaw)
.include "../../mk/xaw.buildlink3.mk"
CONFIGURE_ARGS+= --with-x-toolkit=athena
. elif !empty(PKG_OPTIONS:Mlucid)
.include "../../mk/xaw.buildlink3.mk"
CONFIGURE_ARGS+= --with-x-toolkit=athena
. elif !empty(PKG_OPTIONS:Mmotif)
.include "../../mk/motif.buildlink3.mk"
CONFIGURE_ARGS+= --with-x-toolkit=motif
. endif
###
### End of Check non nextstep (implies x11) options ---------------------
.include "../../mk/jpeg.buildlink3.mk"
.include "../../graphics/tiff/buildlink3.mk"
.include "../../graphics/giflib/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../x11/libSM/buildlink3.mk"
.include "../../x11/libXaw/buildlink3.mk"
.include "../../x11/libXpm/buildlink3.mk"
.include "../../x11/libXrender/buildlink3.mk"
###
### Support using NextStep (Cocoa or GNUstep) windowing system
###
# If you check the variable system-configuration-options after Emacs is
# built, you may see many x11 related configurations. But if you have
# --without-x there, all other x11 related configurations were ignored.
#
.elif !empty(PKG_OPTIONS:Mnextstep)
. if exists(/System/Library/Frameworks/Cocoa.framework)
APPLICATIONS_DIR= Applications
PLIST_SRC+= PLIST.cocoa
CHECK_WRKREF_SKIP+= Applications/Emacs.app/Contents/MacOS/Emacs
. else
.include "../../x11/gnustep-gui/buildlink3.mk"
MAKE_FILE= Makefile
APPLICATIONS_DIR= share/GNUstep/Local/Applications
PLIST_SRC+= PLIST.gnustep
CHECK_WRKREF_SKIP+= share/GNUstep/Local/Applications/Emacs.app/Emacs
. endif
# more args for nextstep
CONFIGURE_ARGS+= --without-x
CONFIGURE_ARGS+= --with-ns
CONFIGURE_ARGS+= --disable-ns-self-contained
INSTALLATION_DIRS+= ${APPLICATIONS_DIR}
USE_TOOLS+= pax
post-install:
cd ${WRKSRC}/nextstep && \
pax -rw -pp -pm Emacs.app ${DESTDIR}${PREFIX}/${APPLICATIONS_DIR}
.else # no window system
#.if empty(PKG_OPTIONS:Mx11)
CONFIGURE_ARGS+= --without-x
CONFIGURE_ARGS+= --without-xpm
CONFIGURE_ARGS+= --without-jpeg
CONFIGURE_ARGS+= --without-tiff
CONFIGURE_ARGS+= --without-gif
CONFIGURE_ARGS+= --without-png
.endif
# Local Variables:
# mode: outline-minor
# outline-regexp: "\\(.[ \t]*\\(if\\|endif\\|else\\|elif\\|include.*options\\|PKG_SUGGES\\)\\)\\|### .\\|# Local"
# End:
### How To Test (or the possible combinations) -- watch the result of 'make configure'
# Set PKG_OPTIONS.emacs= result
# ---------- ----------------------------------------------------------
# (none) .. x11 gtk svg gconf xft2 dbus gnutls imagemagick
# xaw .. x11 lucid svg gconf xaw3d xft2 dbus gnutls imagemagick
# lucid .. x11 lucid svg gconf xaw3d xft2 dbus gnutls imagemagick
# motif .. x11 motif svg gconf xft2 dbus gnutls imagemagick
# -x11 nextstep .. nextstep
# -xft2 .. x11 gtk svg gconf dbus gnutls imagemagick
# -gnutls .. x11 gtk svg gconf xft2 dbus imagemagick
# -gnutls -imagemagick -dbus
# .. x11 gtk svg gconf xft2
# -x11 -svg -gconf -xaw3d -xft2
# .. nox11 dbus gnutls xml2
# -x11 .. nox11 dbus gnutls imagemagick
# .. nox11 but several x11 libraries built and not used
### Window system options and result matrix
# x11 | YES none NO
# nextstep |
# -------- +----- -------- -------
# YES | -- NextStep NextStep
# none | X11 X11 (no Window)
# NO | X11 X11 (no Window)

View File

@ -0,0 +1,20 @@
$NetBSD: patch-configure,v 1.1 2018/10/27 20:58:39 leot Exp $
Do not inject X11 LDFLAGS, pkgsrc handles that.
Fixes PR pkg/53688.
--- configure.orig 2020-08-04 19:43:32.000000000 +0000
+++ configure
@@ -9615,9 +9615,11 @@ ac_link="$ac_link $LD_SWITCH_SYSTEM"
## Compare with the gnu-linux case below, which added to the end
## of LD_SWITCH_SYSTEM, and so can instead go at the front of
## LD_SWITCH_SYSTEM_TEMACS.
+
case "$opsys" in
netbsd|openbsd)
- LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_RPATH) $LD_SWITCH_SYSTEM" ;;
+### This is handled by pkgsrc.
+### LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_RPATH) $LD_SWITCH_SYSTEM" ;;
esac
C_SWITCH_MACHINE=

View File

@ -0,0 +1,17 @@
$NetBSD: patch-configure.ac,v 1.1 2018/10/27 20:58:39 leot Exp $
Do not inject X11 LDFLAGS, pkgsrc handles that.
Fixes PR pkg/53688.
--- configure.ac.orig 2020-07-29 21:40:41.000000000 +0000
+++ configure.ac
@@ -1553,7 +1553,8 @@ ac_link="$ac_link $LD_SWITCH_SYSTEM"
## LD_SWITCH_SYSTEM_TEMACS.
case "$opsys" in
netbsd|openbsd)
- LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_RPATH) $LD_SWITCH_SYSTEM" ;;
+### This is handled by pkgsrc.
+### LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_RPATH) $LD_SWITCH_SYSTEM" ;;
esac
C_SWITCH_MACHINE=

View File

@ -0,0 +1,17 @@
$NetBSD$
need sys/filio.h for FIONREAD on SunOS
--- src/inotify.c.orig 2020-07-27 21:21:49.000000000 +0000
+++ src/inotify.c
@@ -25,6 +25,10 @@ along with GNU Emacs. If not, see <http
#include "keyboard.h"
#include "termhooks.h"
+#if defined(__sun)
+#include <sys/filio.h>
+#endif
+
#include <errno.h>
#include <sys/inotify.h>
#include <sys/ioctl.h>

7
emacs27/version.mk Normal file
View File

@ -0,0 +1,7 @@
# $NetBSD: version.mk,v 1.3 2019/08/30 15:46:11 ryoon Exp $
_EMACS_FLAVOR= emacs
_EMACS_REQD= emacs27>=27.1<28
_EMACS_VERSION_MAJOR= 27
_EMACS_VERSION_MINOR= 1