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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1
DEB_BUILD_MAINT_OPTIONS := hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
include /usr/share/dpkg/pkg-info.mk
package=emacspeak
debbase := $(shell pwd)/debian
backup := $(debbase)/backup
pkgtmp := $(debbase)/$(package)
eldir := usr/share/emacs/site-lisp/$(package)
deblsp := $(pkgtmp)/$(eldir)
tmpdir := $(debbase)/tmp/$(eldir)
%:
dh $@
override_dh_auto_build-arch:
dh_auto_build --sourcedirectory=servers/native-espeak -- TCL_VERSION=""
override_dh_auto_build-indep:
echo $(DEB_VERSION) > debian_version
# Upstream doesn't ship a changelog file but NEWS-* basically contain what is needed
# so cat that all together. Not 100% elegant, but it will do for now.
cat etc/NEWS-8.0 > changelog
cat etc/NEWS-9.0 >> changelog
cat etc/NEWS-[0-9][0-9]* >> changelog
cat etc/NEWS >> changelog
# The 3d auditory icon theme was generated using CSound, but it expects the
# reference files in the same directory.
ln -s /usr/share/csound/hrtf/*.dat sounds/3d/src/
cd sounds/3d/src ; \
for file in *.csd ; do \
if [ ! "$$file" = interactive.csd ] ; then \
csound -o ../$${file%csd}wav $$file ; \
fi ; \
done
$(MAKE) --directory=etc tips.html applications.html
# Do not put a default load file when require with no-error.
# Calling require with the second argument non nil could lead Emacs to load the
# file without an extension, but some other package could put in the load path
# a file with such a name. Using nil as second argument let Emacs search for
# file to load in the normal way.
# Rémi Vanicat <vanicat@debian.org>
# https://bugs.debian.org/913025
if [ ! -d $(backup) ] ; then \
mkdir $(backup) ; \
fi
for file in $$(rgrep -l "\" 'no-error" lisp/*) ; do \
cp $$file $(backup)/ ; \
sed -i "s/\"[^ ]*\" 'no-error/() 'no-error/" $$file ; \
done
override_dh_auto_clean:
debconf-updatepo
$(MAKE) clean
$(MAKE) --directory servers/native-espeak clean
# the following items should be done by the get-orig-source target, but
# leave them here just in case we might not need that target in the future
# the sources included some byte-compiled file by mistake
find . -name \*.elc -delete
find . -name \*.pyc -delete
find . -name \*.pyo -delete
# removed created symlinks
find sounds/3d/src -type l -name \*.dat -delete
# restore patched files
if [ -d $(backup) ] ; then \
for file in $(backup)/* ; do \
mv $$file lisp/ ; \
done ; \
fi
dh_clean
override_dh_auto_install-indep:
dh_auto_install
# Upstream stopped providing an install target. Instead it recommends to
# "copy the resulting emacspeak directory to the install location". So,
# let's do that, but prevent the debian sub dir to be copied, as I fear
# that would lead to some level of recursive copying.
#
# Also strip out personal tvr stuff.
#
# For now, also don't install the bash-utils, as it requires some thinking
# and tweaking for Debian to function properly.
#
# And, to avoid clutter from etc/, lets do that via emacspeak.install
mkdir -p $(tmpdir)
cp -pR $$(find . -maxdepth 1 -type d ! -name .\* ! -name bash-utils ! -name debian \
! -name etc ! -name tvr -o -type f) $(tmpdir)
# Obviously, now we need to remove the stuff we don't want here.
find $(tmpdir) -name \*~ -delete
find $(tmpdir) -name \*.elc -delete
find $(tmpdir) -depth -name .\* -exec rm -r {} \;
# Doesn't seem to make sense in a Debian package where we use emacspeak.sh
# instead
rm $(tmpdir)/run
rm $(tmpdir)/runq
# Already compiled and shipped in emacspeak-espeak-server
rm -r $(tmpdir)/servers/native-espeak
# Should be made into a proper package
rm -r $(tmpdir)/servers/linux-outloud
# Files for Mac, not for Debian
rm -r $(tmpdir)/servers/mac
rm -r $(tmpdir)/servers/log-mac
# Source files
rm -r $(tmpdir)/sounds/3d/src
# Original convertion script, but useless now
rm $(tmpdir)/sounds/pan-chimes/apply-pan.sh
# Let it generated at configuration
rm $(tmpdir)/lisp/emacspeak-loaddefs.el
override_dh_auto_install-arch:
override_dh_install-indep:
# Exclude the files that go into the documentation
dh_install -Xdtk/DTK -Xetc/NEWS -XREADME -X.html -Xremote.txt -Xstumpwm
# We will sed it at configuration
mv debian/emacspeak/$(eldir)/etc/emacspeak.sh debian/emacspeak/$(eldir)/etc/emacspeak.sh.in
override_dh_fixperms-indep:
# Only fix the following in the indep case
# scripts and speech servers should be executable
if [ -d $(deblsp) ] ; then \
chmod 644 `find $(deblsp) -type f`; \
chmod 755 $(deblsp)/etc/*.pl \
$(deblsp)/etc/*2text \
$(deblsp)/etc/emacspeak.sh.in \
$(deblsp)/servers/cloud* \
$(deblsp)/servers/dtk-exp \
$(deblsp)/servers/espeak \
$(deblsp)/servers/log-* \
$(deblsp)/servers/outloud \
$(deblsp)/servers/speech-server \
$(deblsp)/servers/ssh-dtk-exp \
$(deblsp)/servers/ssh-espeak \
$(deblsp)/servers/ssh-outloud ; \
fi
dh_fixperms
override_dh_compress:
# NEWS can be called from emacspeak command, don't compress
dh_compress -XNEWS
override_dh_auto_test-indep:
dh_auto_test
# To see if compiling the code works and we are not missing dependencies
# emacs now has native compilation, let's skip testing until it's fixed
# "it's not so much that native compilation is broken as it
# doesn't understand distros"
$(MAKE) || true
|