recipes: x-libs/cairo*: Include some fixes from "Beyond Linux From Scratch"
[dragora.git] / recipes / x-libs / cairo / recipe
blob4f02aa8042ca2dccadea90d449390510b31f2f65
1 # Build recipe for cairo.
3 # Copyright (C) 2018, MMPG <mmpg@vp.pl>
4 # Copyright (C) 2018, 2021-2022 Matias Fonzo, <selk@dragora.org>.
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 #    http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 # Exit immediately on any error
19 set -e
21 program=cairo
22 version=1.17.6
23 release=2
25 # Define a category for the output of the package name
26 pkgcategory=x-libs
28 # The installation of this package replaces to
29 replace=cairo-pass1
31 tarname=${program}-${version}.tar.xz
33 # Remote source(s)
34 #fetch=https://www.cairographics.org/releases/$tarname
35 fetch=https://download.gnome.org/sources/cairo/1.17/$tarname
37 description="
38 A vector graphics library.
40 Cairo is designed to produce identical output on all output media while
41 taking advantage of display hardware acceleration when available.
44 homepage=https://www.cairographics.org/
45 license="LGPLv2.1 | MPLv1.1"
47 # Copy documentation
48 docs="AUTHORS BIBLIOGRAPHY BUGS CODING_STYLE COPYING* HACKING NEWS README"
49 docsdir="${docdir}/${program}-${version}"
51 build()
53     unpack "${tardir}/$tarname"
54     
55     cd "$srcdir"
57     # Adapt this package for binutils-2.39 or later (Thanks to BLFS!)
58     sed -e 's/PTR/void */' -i util/cairo-trace/lookup-symbol.c
60     # Fix a pkg-config file that may cause errors later (Thanks to BLFS!)
61     sed -e "/@prefix@/a exec_prefix=@exec_prefix@" \
62         -i util/cairo-script/cairo-script-interpreter.pc.in
64     # Set sane permissions
65     chmod -R u+w,go-w,a+rX-s .
66     
67     ./configure CPPFLAGS="$QICPPFLAGS" \
68     CFLAGS="$QICFLAGS" CXXFLAGS="$QICXXFLAGS" LDFLAGS="$QILDFLAGS" \
69      $configure_args \
70      --libdir=/usr/lib${libSuffix} \
71      --infodir=$infodir \
72      --mandir=$mandir \
73      --enable-static=no \
74      --enable-shared=yes \
75      --enable-tee \
76      --enable-xlib \
77      --enable-xcb \
78      --enable-ps \
79      --enable-ft \
80      --enable-gl \
81      --enable-svg \
82      --enable-xml \
83      --enable-gobject \
84      --disable-trace \
85      --disable-xcb-shm \
86      --disable-xlib-xcb \
87      --build="$(gcc -dumpmachine)"
89     make -j${jobs} V=1
90     make -j${jobs} DESTDIR="$destdir" install-strip
92     # Compress info documents deleting index file for the package
93     if test -d "${destdir}/$infodir"
94     then
95         rm -f "${destdir}/${infodir}/dir"
96         lzip -9 "${destdir}/${infodir}"/*
97     fi
99     # Compress and link man pages (if needed)
100     if test -d "${destdir}/$mandir"
101     then
102         (
103             cd "${destdir}/$mandir"
104             find . -type f -exec lzip -9 {} +
105             find . -type l | while read -r file
106             do
107                 ln -sf "$(readlink -- "$file").lz" "${file}.lz"
108                 rm -- "$file"
109             done
110         )
111     fi
113     # Copy documentation
114     mkdir -p "${destdir}/$docsdir"
115     cp -p $docs "${destdir}/$docsdir"