summaryrefslogtreecommitdiff
path: root/helper/install
blob: 39db69515e40c264c11dd16103bcc00ff1c0d356 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/sh
# invoke as /usr/lib/dh-elpa/helper/install flavor elpa_package elpa_version elpa_load_path

set -e

# Avoid writes to HOME.
# This should probably move into bin:emacsen-common.
EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION=t
export EMACS_INHIBIT_AUTOMATIC_NATIVE_COMPILATION

# safe values for important variables

unset HOME
PATH=/usr/sbin:/usr/bin:/sbin:/bin

# grab parameters

FLAVOR=$1
ELPA_PACKAGE=$2
ELPA_VERSION=$3
ELPA_LOAD_PATH=$4

ELPA_DIR=${ELPA_PACKAGE}-${ELPA_VERSION}

case $FLAVOR in
    emacs2[01234]*)
        echo "install/${ELPA_DIR}: Skipping obsolete emacs ${FLAVOR}"
        exit 0
        ;;
    xemacs*)
        echo "install/${ELPA_DIR}: Skipping unsupported emacs ${FLAVOR}"
        exit 0
        ;;
    *)
        echo "install/${ELPA_DIR}: Handling install of emacsen flavor ${FLAVOR}"
esac

src_dir=/usr/share/emacs/site-lisp/elpa-src
el_dir=$src_dir/${ELPA_DIR}/
elc_dir=/usr/share/${FLAVOR}/site-lisp/elpa/${ELPA_DIR}/

export EMACSLOADPATH
EMACSLOADPATH=${ELPA_LOAD_PATH}

echo "install/${ELPA_DIR}: byte-compiling for ${FLAVOR}"

[ -d "${elc_dir}" ] || mkdir -p "${elc_dir}"

# Create symlinks to the .el files (see section 6E in debian-emacs
# policy).  This makes complation easy, and also allows find-function
# and find-library to work properly.  Also link all other top level
# files and directories into the flavor directory
(cd "${elc_dir}" && ln -sf "${el_dir}"* .)

# Byte compile them
(cd "${elc_dir}"
 set +e
 ${FLAVOR} --quick --batch -l package \
           --eval "(setq package-user-dir \"/nonexistent\")" \
           --eval "(add-to-list 'package-directory-list \"$src_dir\")" \
           -f package-initialize -f batch-byte-compile ./*.el > Install.log 2>&1
 if test $? -ne 0
 then
   cat Install.log
   exit 1
 fi
 set -e
 gzip -9f Install.log)

exit 0;