summaryrefslogtreecommitdiff
blob: 47bf77b2c9f8e6667d975b2a3e4a4358fa136648 (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
130
131
132
133
134
135
136
# Author Matthew Turk <m-turk@nwu.edu>
# An ebuild calling this class can cd to the appropriate
# directory and call latex-package_src_doinstall all, or leave
# the src_install function as-is if the system is single-directory.

inherit base
ECLASS=latex-package
INHERITED="$INHERITED $ECLASS"

newdepend ">=app-text/tetex-1.0.7"

HOMEPAGE="http://www.tug.org/"
SRC_URI="ftp://tug.ctan.org/macros/latex/"
S=${WORKDIR}/${P}
TEXMF="/usr/share/texmf"
SUPPLIER="misc" # This refers to the font supplier; it should be overridden

latex-package_src_doinstall() {
    debug-print function $FUNCNAME $*
    # This actually follows the directions for a "single-user" system
    # at http://www.ctan.org/installationadvice/ modified for gentoo.
    [ -z "$1" ] && latex-package_src_install all
 
    while [ "$1" ]; do
        case $1 in
            "sh")
                for i in `find . -maxdepth 1 -name "*.${1}"`
                do
                    dobin $i
                done
                ;;
            "sty" | "cls" | "fd")
                for i in `find . -maxdepth 1 -name "*.${1}"`
                do
                    insinto ${TEXMF}/tex/latex/${PN}
                    doins $i
                done
                ;;
            "dvi" | "ps" | "pdf" | "tex")
                for i in `find . -maxdepth 1 -name "*.${1}"`
                do
                    insinto ${TEXMF}/doc/latex/${PN}
                    doins $i
                done
                ;;
            "tfm" | "vf" | "afm" | "pfb")
                for i in `find . -maxdepth 1 -name "*.${1}"`
                do
                    insinto ${TEXMF}/fonts/${1}/${SUPPLIER}/${PN}
                    doins $i
                done
                ;;
            "ttf")
                for i in `find . -maxdepth 1 -name "*.ttf"`
                do
                    insinto ${TEXMF}/fonts/truetype/${SUPPLIER}/${PN}
                    doins $i
                done
                ;;
            "styles")
                latex-package_src_doinstall sty cls fd
                ;;
            "doc")
                latex-package_src_doinstall dvi ps pdf tex
                ;;
            "fonts")
                latex-package_src_doinstall tfm vg afm pfb ttf
                ;;
            "bin")
                latex-package_src_doinstall sh
                ;;
            "all")
                latex-package_src_doinstall styles doc fonts bin
                ;;
        esac
    shift
    done
}

latex-package_src_compile() {
    debug-print function $FUNCNAME $*
    cd ${S}
    for i in `find \`pwd\` -maxdepth 1 -name "*.ins"`
    do
        echo "Extracting from $i"
        latex --interaction=batchmode $i > /dev/null
    done
    for i in `find \`pwd\` -maxdepth 1 -name "*.dtx"`
    do
        echo "Extracting from $i"
        latex --interaction=batchmode $i > /dev/null
    done
}

latex-package_src_install() {
    debug-print function $FUNCNAME $*
    cd ${S}
    latex-package_src_doinstall all
}

latex-package_pkg_postinst() {
    debug-print function $FUNCNAME $*
    latex-package_rehash
    if [ ! -e ${TEXMF}/doc/latex/${PN} ] ; then return ; fi
    cd ${TEXMF}/doc/latex/${PN}
    latex-package_make_documentation
}

latex-package_pkg_postrm() {
    debug-print function $FUNCNAME $*
    # This may be a bit harsh, so perhaps it should be overridden.
    latex-package_rehash
    if [ ! -e ${TEXMF}/doc/latex/${PN} ] ; then return ; fi
    echo "Removing stale documentation: ${TEXMF}/doc/latex/${PN}"
    rm -rf ${TEXMF}/doc/latex/${PN}
}

latex-package_rehash() {
    debug-print function $FUNCNAME $*
    texconfig rehash
}

latex-package_make_documentation() {
    debug-print function $FUNCNAME $*
    # This has to come after the installation of all our files.
    # All errors will be discarded.
    for i in `find \`pwd\` -maxdepth 1 -name "*.tex"`
    do
        # Note - we rerun twice to get references properly.
        echo "Making Documentation: $i"
        latex --interaction=batchmode $i > /dev/null
    done
    echo "Completed."
}

EXPORT_FUNCTIONS src_compile src_install pkg_postinst pkg_postrm