forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
app-editors/emacs-vcs: New pretest version.
Package-Manager: portage-2.3.0_rc1
- Loading branch information
Showing
2 changed files
with
388 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
DIST emacs-25.0.50_pre20151113.tar.xz 26904832 SHA256 dcfd575afa3123bd63eba12b2ae2c7d1390c8fbccc911e9a4a70028feb207240 SHA512 cc8e871e9bb236ffd99ea93750aabc55401cdfad171f56df81c3127fba41b223196d31a64baf597268805b39015df773587e239192870f70671d131d9c6fc9b8 WHIRLPOOL 9571b10e49c028e4f8a10a54fce10bea16ff9b726e8a266650af180a57a370d225ac3bdffc12828c6d170680e514c9fb1179b3676dd4d4de3e6794147dc935ab | ||
DIST emacs-25.0.93.tar.xz 42515636 SHA256 b39199a491ce53f8b8a5b74fe6f1f191257e424f3ba047b3098ff9218e1579f1 SHA512 a9d2ba7af5389a8f4f3db5579bd034dfd57039089181ab227c7f411fa47341b7533d0faa293c938dc45c58764644c01531bd28cdaf9e2e6b59dd5acaf4da33d2 WHIRLPOOL d45bf6a46d516bac74dbfebae272aa7f82983d9ef00b4020dbf80dc52476f577e4bfbb0b6adbb9733c74794d181825ff6b915f14a399c8f746cdd4cdb167e018 | ||
DIST emacs-25.0.94.tar.xz 42524080 SHA256 c9c45ea7e044585f5b35500edbb356c3a2f4547d441d0d23a5e76722794c6da6 SHA512 60329ae6f7d1769caa8a971793fa2da418537634453edd081ddc7b12f867c55b3a613f70e5cb3f79e10ab44d5deee9235f6a73de05e98ce9826f8d7985c338a3 WHIRLPOOL 13f7c62ceb48838eb65e1839929a9348d0ef73954100a633a0264915f7088250262f6d484ae1bb64520624711f72fb4af7e71565a7636e35eea31dce55e76e56 | ||
DIST emacs-25.0.95.tar.xz 42536908 SHA256 1438c51268250344739c31752d9292fc51cab0d8384b9f574ecaf1bcd879bb2e SHA512 11ed4bd3b7a6dd9f3c16469a2079dc1552eb49e1652f5b0f17a5c5fac26e4ba95d14ef5f401d8945dddd86d15bd863e7d138bdcc4acc2364e58ee61918a136cd WHIRLPOOL 1e48e151ecdddda01b8f96028cf3e38e886d121ecd0d58f64171a2b5b1ebe0beba2e5229e7eb3eb83cfbf794ea47af1297ec058f0db1f71a1e7e6f704dc8f775 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,387 @@ | ||
# Copyright 1999-2016 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=6 | ||
|
||
inherit autotools elisp-common flag-o-matic multilib readme.gentoo-r1 | ||
|
||
if [[ ${PV##*.} = 9999 ]]; then | ||
inherit git-r3 | ||
EGIT_REPO_URI="git://git.sv.gnu.org/emacs.git" | ||
EGIT_BRANCH="emacs-25" | ||
EGIT_CHECKOUT_DIR="${WORKDIR}/emacs" | ||
S="${EGIT_CHECKOUT_DIR}" | ||
else | ||
SRC_URI="https://dev.gentoo.org/~ulm/distfiles/emacs-${PV}.tar.xz | ||
mirror://gnu-alpha/emacs/pretest/emacs-${PV}.tar.xz" | ||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" | ||
# FULL_VERSION keeps the full version number, which is needed in | ||
# order to determine some path information correctly for copy/move | ||
# operations later on | ||
FULL_VERSION="${PV%%_*}" | ||
S="${WORKDIR}/emacs-${FULL_VERSION}" | ||
[[ ${FULL_VERSION} != ${PV} ]] && S="${WORKDIR}/emacs" | ||
fi | ||
|
||
DESCRIPTION="The extensible, customizable, self-documenting real-time display editor" | ||
HOMEPAGE="https://www.gnu.org/software/emacs/" | ||
|
||
LICENSE="GPL-3+ FDL-1.3+ BSD HPND MIT W3C unicode PSF-2" | ||
SLOT="25" | ||
IUSE="acl alsa aqua athena cairo dbus games gconf gfile gif gpm gsettings gtk +gtk3 gzip-el hesiod imagemagick +inotify jpeg kerberos libxml2 livecd m17n-lib motif pax_kernel png selinux sound source ssl svg tiff toolkit-scroll-bars wide-int X Xaw3d xft +xpm xwidgets zlib" | ||
REQUIRED_USE="?? ( aqua X )" | ||
|
||
RDEPEND="sys-libs/ncurses:0 | ||
>=app-eselect/eselect-emacs-1.16 | ||
>=app-emacs/emacs-common-gentoo-1.5[games?,X?] | ||
net-libs/liblockfile | ||
acl? ( virtual/acl ) | ||
alsa? ( media-libs/alsa-lib ) | ||
dbus? ( sys-apps/dbus ) | ||
gpm? ( sys-libs/gpm ) | ||
hesiod? ( net-dns/hesiod ) | ||
!inotify? ( gfile? ( >=dev-libs/glib-2.28.6 ) ) | ||
kerberos? ( virtual/krb5 ) | ||
libxml2? ( >=dev-libs/libxml2-2.2.0 ) | ||
selinux? ( sys-libs/libselinux ) | ||
ssl? ( net-libs/gnutls ) | ||
zlib? ( sys-libs/zlib ) | ||
X? ( | ||
x11-libs/libXmu | ||
x11-libs/libXt | ||
x11-misc/xbitmaps | ||
gconf? ( >=gnome-base/gconf-2.26.2 ) | ||
gsettings? ( >=dev-libs/glib-2.28.6 ) | ||
gif? ( media-libs/giflib:0= ) | ||
jpeg? ( virtual/jpeg:0= ) | ||
png? ( >=media-libs/libpng-1.4:0= ) | ||
svg? ( >=gnome-base/librsvg-2.0 ) | ||
tiff? ( media-libs/tiff:0 ) | ||
xpm? ( x11-libs/libXpm ) | ||
imagemagick? ( >=media-gfx/imagemagick-6.6.2 ) | ||
xft? ( | ||
media-libs/fontconfig | ||
media-libs/freetype | ||
x11-libs/libXft | ||
cairo? ( >=x11-libs/cairo-1.12.18 ) | ||
m17n-lib? ( | ||
>=dev-libs/libotf-0.9.4 | ||
>=dev-libs/m17n-lib-1.5.1 | ||
) | ||
) | ||
gtk? ( | ||
xwidgets? ( | ||
x11-libs/gtk+:3 | ||
net-libs/webkit-gtk:3= | ||
) | ||
!xwidgets? ( | ||
gtk3? ( x11-libs/gtk+:3 ) | ||
!gtk3? ( x11-libs/gtk+:2 ) | ||
) | ||
) | ||
!gtk? ( | ||
motif? ( >=x11-libs/motif-2.3:0 ) | ||
!motif? ( | ||
Xaw3d? ( x11-libs/libXaw3d ) | ||
!Xaw3d? ( athena? ( x11-libs/libXaw ) ) | ||
) | ||
) | ||
)" | ||
|
||
DEPEND="${RDEPEND} | ||
virtual/pkgconfig | ||
gzip-el? ( app-arch/gzip ) | ||
pax_kernel? ( | ||
sys-apps/attr | ||
sys-apps/paxctl | ||
)" | ||
|
||
if [[ ${PV##*.} = 9999 ]]; then | ||
DEPEND="${DEPEND} | ||
sys-apps/texinfo" | ||
fi | ||
|
||
EMACS_SUFFIX="${PN/emacs/emacs-${SLOT}}" | ||
SITEFILE="20${PN}-${SLOT}-gentoo.el" | ||
|
||
src_prepare() { | ||
if [[ ${PV##*.} = 9999 ]]; then | ||
FULL_VERSION=$(sed -n 's/^AC_INIT([^,]*,[ \t]*\([^ \t,)]*\).*/\1/p' \ | ||
configure.ac) | ||
[[ ${FULL_VERSION} ]] || die "Cannot determine current Emacs version" | ||
einfo "Emacs branch: ${EGIT_BRANCH}" | ||
einfo "Commit: ${EGIT_VERSION}" | ||
einfo "Emacs version number: ${FULL_VERSION}" | ||
[[ ${FULL_VERSION} =~ ^${PV%.*}(\..*)?$ ]] \ | ||
|| die "Upstream version number changed to ${FULL_VERSION}" | ||
fi | ||
|
||
eapply_user | ||
|
||
# Fix filename reference in redirected man page | ||
sed -i -e "/^\\.so/s/etags/&-${EMACS_SUFFIX}/" doc/man/ctags.1 \ | ||
|| die "unable to sed ctags.1" | ||
|
||
AT_M4DIR=m4 eautoreconf | ||
} | ||
|
||
src_configure() { | ||
strip-flags | ||
filter-flags -pie #526948 | ||
|
||
if use sh; then | ||
replace-flags "-O[1-9]" -O0 #262359 | ||
elif use ia64; then | ||
replace-flags "-O[2-9]" -O1 #325373 | ||
else | ||
replace-flags "-O[3-9]" -O2 | ||
fi | ||
|
||
local myconf | ||
|
||
if use alsa; then | ||
use sound || ewarn \ | ||
"USE flag \"alsa\" overrides \"-sound\"; enabling sound support." | ||
myconf+=" --with-sound=alsa" | ||
else | ||
myconf+=" --with-sound=$(usex sound oss)" | ||
fi | ||
|
||
if use X; then | ||
myconf+=" --with-x --without-ns" | ||
myconf+=" $(use_with gconf)" | ||
myconf+=" $(use_with gsettings)" | ||
myconf+=" $(use_with toolkit-scroll-bars)" | ||
myconf+=" $(use_with gif)" | ||
myconf+=" $(use_with jpeg)" | ||
myconf+=" $(use_with png)" | ||
myconf+=" $(use_with svg rsvg)" | ||
myconf+=" $(use_with tiff)" | ||
myconf+=" $(use_with xpm)" | ||
myconf+=" $(use_with imagemagick)" | ||
|
||
if use xft; then | ||
myconf+=" --with-xft" | ||
myconf+=" $(use_with cairo)" | ||
myconf+=" $(use_with m17n-lib libotf)" | ||
myconf+=" $(use_with m17n-lib m17n-flt)" | ||
else | ||
myconf+=" --without-xft" | ||
myconf+=" --without-cairo" | ||
myconf+=" --without-libotf --without-m17n-flt" | ||
use cairo && ewarn \ | ||
"USE flag \"cairo\" has no effect if \"xft\" is not set." | ||
use m17n-lib && ewarn \ | ||
"USE flag \"m17n-lib\" has no effect if \"xft\" is not set." | ||
fi | ||
|
||
local f | ||
if use gtk; then | ||
einfo "Configuring to build with GIMP Toolkit (GTK+)" | ||
while read line; do ewarn "${line}"; done <<-EOF | ||
Your version of GTK+ will have problems with closing open | ||
displays. This is no problem if you just use one display, but | ||
if you use more than one and close one of them Emacs may crash. | ||
See <https://bugzilla.gnome.org/show_bug.cgi?id=85715>. | ||
If you intend to use more than one display, then it is strongly | ||
recommended that you compile Emacs with the Athena/Lucid or the | ||
Motif toolkit instead. | ||
EOF | ||
if use xwidgets; then | ||
myconf+=" --with-x-toolkit=gtk3 --with-xwidgets" | ||
else | ||
myconf+=" --with-x-toolkit=$(usex gtk3 gtk3 gtk2)" | ||
myconf+=" --without-xwidgets" | ||
fi | ||
for f in motif Xaw3d athena; do | ||
use ${f} && ewarn \ | ||
"USE flag \"${f}\" has no effect if \"gtk\" is set." | ||
done | ||
elif use motif; then | ||
einfo "Configuring to build with Motif toolkit" | ||
myconf+=" --with-x-toolkit=motif" | ||
for f in Xaw3d athena; do | ||
use ${f} && ewarn \ | ||
"USE flag \"${f}\" has no effect if \"motif\" is set." | ||
done | ||
elif use athena || use Xaw3d; then | ||
einfo "Configuring to build with Athena/Lucid toolkit" | ||
myconf+=" --with-x-toolkit=lucid $(use_with Xaw3d xaw3d)" | ||
else | ||
einfo "Configuring to build with no toolkit" | ||
myconf+=" --with-x-toolkit=no" | ||
fi | ||
! use gtk && use xwidgets && ewarn \ | ||
"USE flag \"xwidgets\" has no effect if \"gtk\" is not set." | ||
elif use aqua; then | ||
einfo "Configuring to build with Nextstep (Cocoa) support" | ||
myconf+=" --with-ns --disable-ns-self-contained" | ||
myconf+=" --without-x" | ||
else | ||
myconf+=" --without-x --without-ns" | ||
fi | ||
|
||
# Save version information in the Emacs binary. It will be available | ||
# in variable "system-configuration-options". | ||
myconf+=" GENTOO_PACKAGE=${CATEGORY}/${PF}" | ||
|
||
econf \ | ||
--program-suffix="-${EMACS_SUFFIX}" \ | ||
--infodir="${EPREFIX}"/usr/share/info/${EMACS_SUFFIX} \ | ||
--localstatedir="${EPREFIX}"/var \ | ||
--enable-locallisppath="${EPREFIX}/etc/emacs:${EPREFIX}${SITELISP}" \ | ||
--with-gameuser=":gamestat" \ | ||
--without-compress-install \ | ||
--with-file-notification=$(usev inotify || usev gfile || echo no) \ | ||
$(use_enable acl) \ | ||
$(use_with dbus) \ | ||
$(use_with gpm) \ | ||
$(use_with hesiod) \ | ||
$(use_with kerberos) $(use_with kerberos kerberos5) \ | ||
$(use_with libxml2 xml2) \ | ||
$(use_with selinux) \ | ||
$(use_with ssl gnutls) \ | ||
$(use_with wide-int) \ | ||
$(use_with zlib) \ | ||
${myconf} | ||
} | ||
|
||
src_compile() { | ||
export SANDBOX_ON=0 # for the unbelievers, see Bug #131505 | ||
emake | ||
} | ||
|
||
src_install () { | ||
emake DESTDIR="${D}" NO_BIN_LINK=t install | ||
|
||
mv "${ED}"/usr/bin/{emacs-${FULL_VERSION}-,}${EMACS_SUFFIX} \ | ||
|| die "moving emacs executable failed" | ||
mv "${ED}"/usr/share/man/man1/{emacs-,}${EMACS_SUFFIX}.1 \ | ||
|| die "moving emacs man page failed" | ||
|
||
# move info dir to avoid collisions with the dir file generated by portage | ||
mv "${ED}"/usr/share/info/${EMACS_SUFFIX}/dir{,.orig} \ | ||
|| die "moving info dir failed" | ||
touch "${ED}"/usr/share/info/${EMACS_SUFFIX}/.keepinfodir | ||
docompress -x /usr/share/info/${EMACS_SUFFIX}/dir.orig | ||
|
||
# avoid collision between slots, see bug #169033 e.g. | ||
rm "${ED}"/usr/share/emacs/site-lisp/subdirs.el | ||
rm -rf "${ED}"/usr/share/{appdata,applications,icons} | ||
rm -rf "${ED}"/var | ||
|
||
# remove unused <version>/site-lisp dir | ||
rm -rf "${ED}"/usr/share/emacs/${FULL_VERSION}/site-lisp | ||
|
||
# remove COPYING file (except for etc/COPYING used by describe-copying) | ||
rm "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp/COPYING | ||
|
||
if use gzip-el; then | ||
# compress .el files when a corresponding .elc exists | ||
find "${ED}"/usr/share/emacs/${FULL_VERSION}/lisp -type f \ | ||
-name "*.elc" -print | sed 's/\.elc$/.el/' | xargs gzip -9n | ||
assert "gzip .el failed" | ||
fi | ||
|
||
local cdir | ||
if use source; then | ||
cdir="/usr/share/emacs/${FULL_VERSION}/src" | ||
insinto "${cdir}" | ||
# This is not meant to install all the source -- just the | ||
# C source you might find via find-function | ||
doins src/*.{c,h,m} | ||
elif has installsources ${FEATURES}; then | ||
cdir="/usr/src/debug/${CATEGORY}/${PF}/${S#"${WORKDIR}/"}/src" | ||
fi | ||
|
||
sed -e "${cdir:+#}/^Y/d" -e "s/^[XY]//" >"${T}/${SITEFILE}" <<-EOF | ||
X | ||
;;; ${PN}-${SLOT} site-lisp configuration | ||
X | ||
(when (string-match "\\\\\`${FULL_VERSION//./\\\\.}\\\\>" emacs-version) | ||
Y (setq find-function-C-source-directory | ||
Y "${EPREFIX}${cdir}") | ||
X (let ((path (getenv "INFOPATH")) | ||
X (dir "${EPREFIX}/usr/share/info/${EMACS_SUFFIX}") | ||
X (re "\\\\\`${EPREFIX}/usr/share/info\\\\>")) | ||
X (and path | ||
X ;; move Emacs Info dir before anything else in /usr/share/info | ||
X (let* ((p (cons nil (split-string path ":" t))) (q p)) | ||
X (while (and (cdr q) (not (string-match re (cadr q)))) | ||
X (setq q (cdr q))) | ||
X (setcdr q (cons dir (delete dir (cdr q)))) | ||
X (setq Info-directory-list (prune-directory-list (cdr p))))))) | ||
EOF | ||
elisp-site-file-install "${T}/${SITEFILE}" || die | ||
|
||
dodoc README BUGS CONTRIBUTE | ||
|
||
if use aqua; then | ||
dodir /Applications/Gentoo | ||
rm -rf "${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app | ||
mv nextstep/Emacs.app \ | ||
"${ED}"/Applications/Gentoo/Emacs${EMACS_SUFFIX#emacs}.app || die | ||
fi | ||
|
||
DOC_CONTENTS="You can set the version to be started by /usr/bin/emacs | ||
through the Emacs eselect module, which also redirects man and info | ||
pages. Therefore, several Emacs versions can be installed at the | ||
same time. \"man emacs.eselect\" for details. | ||
\\n\\nIf you upgrade from Emacs version 24.2 or earlier, then it is | ||
strongly recommended that you use app-admin/emacs-updater to rebuild | ||
all byte-compiled elisp files of the installed Emacs packages." | ||
use X && DOC_CONTENTS+="\\n\\nYou need to install some fonts for Emacs. | ||
Installing media-fonts/font-adobe-{75,100}dpi on the X server's | ||
machine would satisfy basic Emacs requirements under X11. | ||
See also https://wiki.gentoo.org/wiki/Xft_support_for_GNU_Emacs | ||
for how to enable anti-aliased fonts." | ||
use aqua && DOC_CONTENTS+="\\n\\nEmacs${EMACS_SUFFIX#emacs}.app is in | ||
\"${EPREFIX}/Applications/Gentoo\". You may want to copy or symlink | ||
it into /Applications by yourself." | ||
readme.gentoo_create_doc | ||
} | ||
|
||
pkg_preinst() { | ||
# move Info dir file to correct name | ||
local infodir=/usr/share/info/${EMACS_SUFFIX} f | ||
if [[ -f ${ED}${infodir}/dir.orig ]]; then | ||
mv "${ED}"${infodir}/dir{.orig,} || die "moving info dir failed" | ||
elif [[ -d "${ED}"${infodir} ]]; then | ||
# this should not happen in EAPI 4 | ||
ewarn "Regenerating Info directory index in ${infodir} ..." | ||
rm -f "${ED}"${infodir}/dir{,.*} | ||
for f in "${ED}"${infodir}/*; do | ||
if [[ ${f##*/} != *-[0-9]* && -e ${f} ]]; then | ||
install-info --info-dir="${ED}"${infodir} "${f}" \ | ||
|| die "install-info failed" | ||
fi | ||
done | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
elisp-site-regen | ||
|
||
local pvr | ||
for pvr in ${REPLACING_VERSIONS}; do | ||
[[ ${pvr%%[-_]*} = 24.[12] ]] && FORCE_PRINT_ELOG=1 | ||
done | ||
readme.gentoo_print_elog | ||
|
||
if use livecd; then | ||
# force an update of the emacs symlink for the livecd/dvd, | ||
# because some microemacs packages set it with USE=livecd | ||
eselect emacs update | ||
elif [[ $(readlink "${EROOT}"/usr/bin/emacs) = ${EMACS_SUFFIX} ]]; then | ||
# refresh symlinks in case any installed files have changed | ||
eselect emacs set ${EMACS_SUFFIX} | ||
else | ||
eselect emacs update ifunset | ||
fi | ||
} | ||
|
||
pkg_postrm() { | ||
elisp-site-regen | ||
eselect emacs update ifunset | ||
} |