xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.50.0.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Graph Visualization Tools"
2*4882a593SmuzhiyunHOMEPAGE = "http://www.graphviz.org"
3*4882a593SmuzhiyunLICENSE = "EPL-1.0"
4*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=9109f5fc16cf963fb3cdd32781b3ce04"
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunDEPENDS = " \
7*4882a593Smuzhiyun    intltool-native \
8*4882a593Smuzhiyun    bison-native \
9*4882a593Smuzhiyun    groff-native \
10*4882a593Smuzhiyun    libtool \
11*4882a593Smuzhiyun    gdk-pixbuf \
12*4882a593Smuzhiyun    cairo \
13*4882a593Smuzhiyun    pango \
14*4882a593Smuzhiyun    expat \
15*4882a593Smuzhiyun    freetype \
16*4882a593Smuzhiyun"
17*4882a593SmuzhiyunDEPENDS:append:class-target = " ${BPN}-native"
18*4882a593SmuzhiyunDEPENDS:append:class-nativesdk = " ${BPN}-native"
19*4882a593Smuzhiyun
20*4882a593Smuzhiyuninherit autotools-brokensep pkgconfig gettext qemu
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunSRC_URI = "https://gitlab.com/api/v4/projects/4207231/packages/generic/${BPN}-releases/${PV}/${BP}.tar.xz \
23*4882a593Smuzhiyun           "
24*4882a593Smuzhiyun# Use native mkdefs
25*4882a593SmuzhiyunSRC_URI:append:class-target = "\
26*4882a593Smuzhiyun           file://0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch \
27*4882a593Smuzhiyun"
28*4882a593SmuzhiyunSRC_URI:append:class-nativesdk = "\
29*4882a593Smuzhiyun           file://graphviz-setup.sh \
30*4882a593Smuzhiyun"
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunSRC_URI[sha256sum] = "6b16bf990df114195be669773a1dae975dbbffada45e1de2849ddeb5851bb9a8"
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunCVE_CHECK_IGNORE += "\
35*4882a593Smuzhiyun    CVE-2014-9157 \
36*4882a593Smuzhiyun"
37*4882a593Smuzhiyun
38*4882a593SmuzhiyunPACKAGECONFIG ??= "librsvg"
39*4882a593SmuzhiyunPACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg"
40*4882a593Smuzhiyun
41*4882a593SmuzhiyunEXTRA_OECONF:append = " PS2PDF=/bin/echo"
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunEXTRA_OECONF:class-target = "\
44*4882a593Smuzhiyun                --with-expatincludedir=${STAGING_INCDIR} \
45*4882a593Smuzhiyun                --with-expatlibdir=${STAGING_LIBDIR} \
46*4882a593Smuzhiyun                --without-included-ltdl \
47*4882a593Smuzhiyun                --disable-java \
48*4882a593Smuzhiyun                --disable-tcl \
49*4882a593Smuzhiyun                --disable-r \
50*4882a593Smuzhiyun                --disable-sharp \
51*4882a593Smuzhiyun                "
52*4882a593SmuzhiyunEXTRA_OECONF:class-nativesdk = "\
53*4882a593Smuzhiyun                --with-expatincludedir=${STAGING_INCDIR} \
54*4882a593Smuzhiyun                --with-expatlibdir=${STAGING_LIBDIR} \
55*4882a593Smuzhiyun                --without-included-ltdl \
56*4882a593Smuzhiyun                --disable-java \
57*4882a593Smuzhiyun                --disable-tcl \
58*4882a593Smuzhiyun                --disable-r \
59*4882a593Smuzhiyun                --disable-sharp \
60*4882a593Smuzhiyun                "
61*4882a593SmuzhiyunCFLAGS:append:class-target = " -D_typ_ssize_t=1 -D_long_double=1"
62*4882a593SmuzhiyunCFLAGS:append:class-nativesdk = " -D_typ_ssize_t=1 -D_long_double=1"
63*4882a593Smuzhiyundo_configure:prepend() {
64*4882a593Smuzhiyun    cd ${S}
65*4882a593Smuzhiyun    # create version.m4 and ignore libtoolize errors
66*4882a593Smuzhiyun    ./autogen.sh NOCONFIG || true
67*4882a593Smuzhiyun}
68*4882a593Smuzhiyun
69*4882a593Smuzhiyundo_install:append:class-nativesdk() {
70*4882a593Smuzhiyun    # graphviz-setup.sh must be executed at SDK installation
71*4882a593Smuzhiyun    install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d
72*4882a593Smuzhiyun    install -m 0755 ${WORKDIR}/graphviz-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d
73*4882a593Smuzhiyun}
74*4882a593SmuzhiyunFILES:${PN}:class-nativesdk += "${SDKPATHNATIVE}"
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun# create /usr/lib/graphviz/config6
77*4882a593Smuzhiyungraphviz_sstate_postinst() {
78*4882a593Smuzhiyun    mkdir -p ${SYSROOT_DESTDIR}${bindir}
79*4882a593Smuzhiyun    dest=${SYSROOT_DESTDIR}${bindir}/postinst-${PN}
80*4882a593Smuzhiyun    echo '#!/bin/sh' > $dest
81*4882a593Smuzhiyun    echo '' >> $dest
82*4882a593Smuzhiyun    echo 'dot -c' >> $dest
83*4882a593Smuzhiyun    chmod 0755 $dest
84*4882a593Smuzhiyun}
85*4882a593SmuzhiyunSYSROOT_PREPROCESS_FUNCS:append:class-native = " graphviz_sstate_postinst"
86*4882a593Smuzhiyun
87*4882a593Smuzhiyunpkg_postinst:${PN} () {
88*4882a593Smuzhiyun    if [ -n "$D" ]; then
89*4882a593Smuzhiyun        if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'true', 'false', d)}; then
90*4882a593Smuzhiyun            ${@qemu_run_binary(d, '$D', '${bindir}/dot')} -c
91*4882a593Smuzhiyun        fi
92*4882a593Smuzhiyun    else
93*4882a593Smuzhiyun        dot -c
94*4882a593Smuzhiyun    fi
95*4882a593Smuzhiyun}
96*4882a593Smuzhiyun
97*4882a593Smuzhiyunpkg_postrm:${PN} () {
98*4882a593Smuzhiyun    rm -f $D${libdir}/graphviz/config*
99*4882a593Smuzhiyun    rmdir --ignore-fail-on-non-empty $D${libdir}/graphviz
100*4882a593Smuzhiyun}
101*4882a593Smuzhiyun
102*4882a593SmuzhiyunPACKAGE_WRITE_DEPS += "qemu-native"
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunPACKAGES =+ "${PN}-python ${PN}-perl ${PN}-demo"
105*4882a593Smuzhiyun
106*4882a593SmuzhiyunFILES:${PN}-python += "${libdir}/python*/site-packages/ ${libdir}/graphviz/python/"
107*4882a593SmuzhiyunFILES:${PN}-perl += "${libdir}/perl5/*/vendor_perl/ ${libdir}/graphviz/perl/"
108*4882a593SmuzhiyunFILES:${PN}-demo += "${datadir}/graphviz/demo/"
109*4882a593Smuzhiyun
110*4882a593SmuzhiyunRDEPENDS:${PN}-perl += "perl"
111*4882a593SmuzhiyunRDEPENDS:${PN}-python += "python3"
112*4882a593SmuzhiyunRDEPENDS:${PN}-demo += "python3 perl"
113*4882a593Smuzhiyun
114*4882a593SmuzhiyunRRECOMMENDS:${PN} = "liberation-fonts"
115*4882a593Smuzhiyun
116*4882a593SmuzhiyunINSANE_SKIP:${PN}-perl = "dev-so"
117*4882a593SmuzhiyunINSANE_SKIP:${PN}-python = "dev-so"
118*4882a593Smuzhiyun
119*4882a593SmuzhiyunFILES_SOLIBSDEV:append = " ${libdir}/graphviz/lib*${SOLIBSDEV}"
120*4882a593Smuzhiyun
121*4882a593SmuzhiyunRRECOMMENDS:${PN} = "liberation-fonts"
122*4882a593Smuzhiyun
123*4882a593SmuzhiyunBBCLASSEXTEND = "native nativesdk"
124