app-office/scribus: added missing subversion inherit to version 9999
[gentoo.git] / app-office / scribus / scribus-1.5.0-r1.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=5
5
6 PYTHON_COMPAT=( python2_7 )
7 PYTHON_REQ_USE="tk?"
8
9 inherit cmake-utils fdo-mime flag-o-matic multilib python-single-r1
10
11 DESCRIPTION="Desktop publishing (DTP) and layout program"
12 HOMEPAGE="http://www.scribus.net/"
13 SRC_URI="mirror://sourceforge/project/${PN}/${PN}-devel/${PV}/${P}.tar.xz"
14
15 LICENSE="GPL-2"
16 SLOT="0"
17 KEYWORDS="~amd64 ~x86"
18 IUSE="+boost debug examples graphicsmagick hunspell +minimal osg +pdf scripts templates tk"
19
20 #a=$((ls resources/translations/scribus.*ts | sed -e 's:\.: :g' | awk '{print $2}'; ls resources/loremipsum/*xml | sed -e 's:\.: :g' -e 's:loremipsum\/: :g'| awk '{print $2}'; ls resources/dicts/hyph*dic | sed -e 's:\.: :g' -e 's:hyph_: :g' | awk '{print $2}'; ls resources/dicts/README_*txt | sed -e 's:_hyph::g' -e 's:\.: :g' -e 's:README_: :g' | awk '{print $2}') | sort | uniq); echo $a
21 IUSE_LINGUAS=" af ar bg br ca ca_ES cs cs_CZ cy cy_GB da da_DK de de@1901 de_CH de_DE el en_AU en_GB en_US eo es es_ES et eu fi fi_FI fr gl he hr hu hu_HU ia id id_ID is is_IS it ja ko ku la lt lt_LT nb_NO nl nn_NO pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sa sk sk_SK sl sl_SI sq sr sv sv_SE th_TH tr uk uk_UA zh_CN zh_TW"
22 IUSE+=" ${IUSE_LINGUAS// / linguas_}"
23
24 REQUIRED_USE="
25         ${PYTHON_REQUIRED_USE}
26         tk? ( scripts )"
27
28 # osg
29 # couple of third_party libs bundled
30 COMMON_DEPEND="
31         ${PYTHON_DEPS}
32         app-text/libmspub
33         >=app-text/poppler-0.19.0:=
34         dev-libs/boost
35         dev-libs/hyphen
36         dev-libs/librevenge
37         dev-libs/libxml2
38         dev-qt/qtcore:5
39         dev-qt/qtgui:5
40         dev-qt/qtnetwork:5
41         dev-qt/qtopengl:5
42         dev-qt/qtprintsupport:5
43         dev-qt/qtquickcontrols:5
44         dev-qt/qtwebkit:5
45         dev-qt/qtwidgets:5
46         dev-qt/qtxml:5
47         media-libs/fontconfig
48         media-libs/freetype:2
49         media-libs/lcms:2
50         media-libs/libcdr
51         media-libs/libpagemaker
52         media-libs/libpng:0
53         media-libs/libvisio
54         media-libs/tiff:0
55         net-print/cups
56         sys-libs/zlib[minizip]
57         virtual/jpeg:0=
58         >=x11-libs/cairo-1.10.0[X,svg]
59         boost? ( dev-libs/boost )
60         hunspell? ( app-text/hunspell )
61         graphicsmagick? ( media-gfx/graphicsmagick )
62         osg? ( dev-games/openscenegraph )
63         pdf? ( app-text/podofo:0= )
64         scripts? ( dev-python/pillow[tk?,${PYTHON_USEDEP}] )
65         tk? ( dev-python/pillow[tk?,${PYTHON_USEDEP}] )
66 "
67 RDEPEND="${COMMON_DEPEND}
68         app-text/ghostscript-gpl"
69 DEPEND="${COMMON_DEPEND}
70         dev-qt/linguist-tools:5
71         virtual/pkgconfig"
72
73 PATCHES=(
74         "${FILESDIR}"/${P}-docdir.patch
75         "${FILESDIR}"/${P}-fpic.patch
76         "${FILESDIR}"/${P}-QObject.patch
77         )
78
79 src_prepare() {
80         rm -r codegen/cheetah || die
81         cat > cmake/modules/FindZLIB.cmake <<- EOF
82         find_package(PkgConfig)
83         pkg_check_modules(ZLIB minizip zlib)
84         SET( ZLIB_LIBRARY \${ZLIB_LIBRARIES} )
85         SET( ZLIB_INCLUDE_DIR \${ZLIB_INCLUDE_DIRS} )
86         MARK_AS_ADVANCED( ZLIB_LIBRARY ZLIB_INCLUDE_DIR )
87         EOF
88
89         sed \
90                 -e "/^\s*unzip\.[ch]/d" \
91                 -e "/^\s*ioapi\.[ch]/d" \
92                 -i scribus/CMakeLists.txt Scribus.pro || die
93         rm scribus/ioapi.[ch] || die
94
95         sed \
96                 -e 's:\(${CMAKE_INSTALL_PREFIX}\):./\1:g' \
97                 -i resources/templates/CMakeLists.txt || die
98
99         if has_version ">=dev-qt/qtcore-5.7.0" ; then
100                 append-cxxflags "-std=c++11" #bug 591948
101         fi
102
103         cmake-utils_src_prepare
104 }
105
106 src_configure() {
107         local _lang lang langs
108         for lang in ${IUSE_LINGUAS}; do
109                 _lang=$(translate_lang ${lang})
110                 if use linguas_${lang} || [[ ${lang} == "en" ]]; then
111                         # From the CMakeLists.txt
112                         # "#Bit of a hack, preprocess all the filenames to generate our language string, needed for -DWANT_GUI_LANG=en_GB;de_DE , etc"
113                         langs+=";${_lang}"
114                 else
115                         # Don't install localized documentation
116                         sed -e "/${_lang}/d" -i doc/CMakeLists.txt || die
117                         safe_delete \
118                                 ./resources/dicts/README_${_lang}.txt \
119                                 ./resources/dicts/README_hyph_${_lang}.txt \
120                                 ./resources/dicts/hyph_${_lang}.dic \
121                                 ./resources/loremipsum/${_lang}.xml
122                 fi
123                 sed -e "/en_EN/d" -i doc/CMakeLists.txt || die
124                 safe_delete \
125                         ./resources/dicts/README_en_EN.txt \
126                         ./resources/dicts/README_hyph_en_EN.txt \
127                         ./resources/dicts/hyph_en_EN.dic \
128                         ./resources/loremipsum/en_EN.xml
129         done
130
131         local mycmakeargs=(
132                 -DHAVE_PYTHON=ON
133                 -DPYTHON_INCLUDE_PATH="$(python_get_includedir)"
134                 -DPYTHON_LIBRARY="$(python_get_library_path)"
135                 -DWANT_DISTROBUILD=ON
136                 -DDOCDIR="/usr/share/doc/${PF}/"
137                 -DWANT_GUI_LANG="${langs#;};en"
138                 $(cmake-utils_use_with pdf PODOFO)
139                 $(cmake-utils_use_with boost)
140                 $(cmake-utils_use_want graphicsmagick)
141                 $(cmake-utils_use !osg WANT_NOOSG)
142                 $(cmake-utils_use_want debug DEBUG)
143                 $(cmake-utils_use_want minimal NOHEADERINSTALL)
144                 $(cmake-utils_use_want hunspell HUNSPELL)
145                 $(cmake-utils_use_want !examples NOEXAMPLES)
146                 $(cmake-utils_use_want !templates NOTEMPLATES)
147                 )
148         cmake-utils_src_configure
149 }
150
151 src_install() {
152         cmake-utils_src_install
153
154         local lang _lang
155         # en_EN can be deleted always
156         for lang in ${IUSE_LINGUAS}; do
157                 if ! use linguas_${lang}; then
158                         _lang=$(translate_lang)
159                         safe_delete "${ED}"/usr/share/man/${_lang}
160                 fi
161         done
162
163         if ! use scripts; then
164                 rm "${ED}"/usr/share/scribus/scripts/*.py || die
165         elif ! use tk; then
166                 rm "${ED}"/usr/share/scribus/scripts/{FontSample,CalendarWizard}.py || die
167         fi
168
169         use scripts && \
170                 python_fix_shebang "${ED}"/usr/share/scribus/scripts && \
171                 python_optimize "${ED}"/usr/share/scribus/scripts
172
173         mv "${ED}"/usr/share/doc/${PF}/{en,html} || die
174         ln -sf html "${ED}"/usr/share/doc/${PF}/en || die
175         cat >> "${T}"/COPYING <<- EOF
176         ${PN} is licensed under the "${LICENSE}".
177         Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text.
178         EOF
179         dodoc "${T}"/COPYING
180         docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING}
181         doicon resources/icons/scribus.png
182         domenu scribus.desktop
183 }
184
185 pkg_postinst() {
186         fdo-mime_desktop_database_update
187         fdo-mime_mime_database_update
188 }
189
190 pkg_postrm() {
191         fdo-mime_desktop_database_update
192         fdo-mime_mime_database_update
193 }
194
195 safe_delete () {
196         local x
197         for x in ${@}; do
198                 if [[ -d "${x}" ]]; then
199                         ebegin "Deleting ${x} recursively"
200                         rm -r "${x}" || die
201                         eend $?
202                 elif [[ -f "${x}" ]]; then
203                         ebegin "Deleting ${x}"
204                         rm "${x}" || die
205                         eend $?
206                 else
207                         ewarn "${x} not found"
208                 fi
209         done
210 }
211
212 translate_lang() {
213         _lang=${1}
214         [[ ${1} == "ru_RU" ]] && _lang+=_0
215         [[ ${1} == "de@1901" ]] && _lang=de_1901
216         echo ${_lang}
217 }