summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 5a3f88a471399d9b9e934aa8d2941c9a4b10e6bd (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
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
# Maintainer: Aditya Mahajan <adityam at umich dot edu>

pkgname=context-lmtx-bin
pkgver=2024.02.27
pkgrel=1
pkgdesc="ConTeXt LuaMetaTeX distribution"
url="http://www.contextgarden.net"
license=('GPL')
arch=('i686' 'x86_64')
optdepends=('ghostscript: support for PS and EPS images'
            'graphicsmagick: support for GIF and TIFF images'
            'inkscape: support for SVG images'
            'pstoedit: support for metapost outlines for fonts'
            'zint: support for barcodes'
            'curl: loading remote content')

makedepends=('rsync' 'curl')
conflicts=()
replaces=()
backup=()

install=context-lmtx-bin.install
options=(!strip)

# ConTeXt minimals uses a different naming convention for architectures

declare -A _platform_map

_platform_map['i686']='linux-32'
_platform_map['x86_64']='linux-64'
_platform=${_platform_map[$CARCH]}

_lmtxserver=lmtx.pragma-ade.nl
_lmtxserverlist=lmtx.contextgarden.net,lmtx.pragma-ade.com,lmtx.pragma-ade.nl
_zipfile=context-${_platform}.zip

source=("http://${_lmtxserver}/install-lmtx/${_zipfile}")
md5sums=('SKIP')

# List of _modules to be installed
# Can use '--all' to install all modules
_modules=('filter' 'visualcounter' 'vim' 'tikz' 'typescripts')

_dest=/opt/context-lmtx

# Font directories
_texlivefontdir="/usr/share/texmf-dist/fonts/"
_contextmodulesdir="/opt/context-minimals/texmf-modules"
_userfontdir="\$HOME/.fonts"
_osfontdir="/usr/share/fonts"

pkgver() {
  cd "$scrdir"
  grep -e '\\edef\\contextversion' tex/texmf-context/tex/context/base/mkxl/context.mkxl | sed -n 's/.*{\(.*\) .*}/\1/p'
}

prepare() {
  OLDPATH=$PATH
  PATH=$scrdir/bin:$scrdir/tex/texmf-${_platform}/bin:$PATH
  echo "Starting download or update of ConTeXt distribution"
  chmod +x $srcdir/bin/mtxrun
  $srcdir/bin/mtxrun --script $srcdir/bin/mtx-install.lua --update \
                     --server="${_lmtxserverlist}" \
                     --instance="install-lmtx" \
                     || return 1
  PATH=$OLDPATH
  # Make sure the binaries are executable
  chmod +x $srcdir/tex/texmf-${_platform}/bin/{context,luametatex,mtxrun}
 
  # Copy mtxrun for next install
  cp $srcdir/tex/texmf-${_platform}/bin/mtxrun $srcdir/bin
  cp $srcdir/tex/texmf-context/scripts/context/lua/{mtxrun.lua,mtx-install.lua} $srcdir/bin

# Install modules
OLDPATH=$PATH
PATH=$scrdir/tex/texmf-${_platform}/bin:$PATH
cd $srcdir/tex && texmf-${_platform}/bin/mtxrun --script texmf-context/scripts/context/lua/mtx-install-modules.lua --install ${_modules[@]}

# Erase cache, must be built by user:
$srcdir/tex/texmf-${_platform}/bin/mtxrun --script texmf-context/scripts/context/lua/mtx-cache --erase --all

PATH=$OLDPATH

 # Generate a setuptex file
 mkdir -p $srcdir/tex
 cat <<- _EOF_ > $srcdir/tex/setuptex
    _OLD_PATH=\$PATH
    _OLD_CONTEXTDIST=$CONTEXTDIST

    TEXMFOS=${_dest}/texmf-${_platform}
    export TEXMFOS

    TEXMFCACHE=\$HOME/.cache/context-lmtx
    export TEXMFCACHE

    # Set variable name to be used in terminal prompt
    CONTEXTDIST="lmtx"
    export CONTEXTDIST

    PATH=\$TEXMFOS/bin:\$PATH
    export PATH

    OSFONTDIR="$_userfontdir;$_osfontdir;"
    export OSFONTDIR

    resettex () {
        PATH=\$_OLD_PATH
        export PATH
        unset _OLD_PATH

        CONTEXTDIST=$_OLD_CONTEXTDIST
        export CONTEXTDIST
        unset _OLD_CONTEXTDIST

        unset -f resettex
    }
_EOF_
}


package()
{
 install -d $pkgdir/opt || return 1
 echo "Copying files"
 # cp -r does not delete old files that are present in texmf-cache from
 # previous installation
 # cp -r --preserve=links $srcdir/tex $pkgdir/$_dest || return 1
 rsync -az --links --delete --exclude='*.tma' --info=progress2 $srcdir/tex/ $pkgdir/$_dest || return 1
}