summaryrefslogtreecommitdiff
path: root/media-gfx/librecad/librecad-2.1.3-r7.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/librecad/librecad-2.1.3-r7.ebuild')
-rw-r--r--media-gfx/librecad/librecad-2.1.3-r7.ebuild99
1 files changed, 99 insertions, 0 deletions
diff --git a/media-gfx/librecad/librecad-2.1.3-r7.ebuild b/media-gfx/librecad/librecad-2.1.3-r7.ebuild
new file mode 100644
index 000000000000..3f3a914a5304
--- /dev/null
+++ b/media-gfx/librecad/librecad-2.1.3-r7.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PLOCALES="ar ca cs da de el en en_au es es_ar es_bo es_cl es_co es_cr es_do es_ec es_gt es_hn es_mx es_ni es_pa es_pe es_pr es_py es_sv es_us es_uy es_ve et eu fi fr gl hi hu id_ID it ja ko lv nl no pa pl pt_br pt_pt ro_ro ru sk sl sq_al sv ta tr uk zh_cn zh_tw"
+
+inherit desktop edo plocale qmake-utils
+
+DESCRIPTION="Generic 2D CAD program"
+HOMEPAGE="https://www.librecad.org/"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/LibreCAD/LibreCAD.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/LibreCAD/LibreCAD/archive/${PV/_/}.tar.gz -> ${P}.tar.gz
+ https://github.com/Fat-Zer/librecad-gentoo-CVE-patches/archive/v${PV/_/}.tar.gz -> librecad-gentoo-CVE-patches-${PV}.tar.gz
+ "
+ S="${WORKDIR}/LibreCAD-${PV}"
+ KEYWORDS="~amd64 ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug doc tools"
+
+RDEPEND="
+ dev-cpp/muParser
+ dev-libs/boost:=
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ media-libs/freetype:2
+"
+DEPEND="${RDEPEND}
+ dev-qt/qthelp:5
+ dev-qt/qtxml:5
+"
+BDEPEND="
+ dev-qt/linguist-tools:5
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-qt-5.11.patch"
+ "${FILESDIR}/${P}-gcc-9.patch"
+ "${FILESDIR}/${P}-qt-5.15.patch"
+ "${FILESDIR}/${P}-boost-1.76.patch" # bug 788706, upstream PR#1345
+)
+
+src_prepare() {
+ default
+
+ # Note: the CVE patches are borrowed from debian packaging; some of the
+ # patches are too big for the tree; move them to a separate repo/
+ # see bug #825362 and bug #832210
+ eapply "${WORKDIR}/librecad-gentoo-CVE-patches-${PV}"
+
+ # Stock script doesn't work correctly on gentoo (see bug #847394)
+ # and also it compiles all translations regardles of selected locales.
+ # To avoid this just comment out locale building and do it manually
+ sed -i -e '/LRELEASE/s!^!# !' scripts/postprocess-unix.sh || die
+
+ plocale_find_changes 'librecad/ts' 'librecad_' '.ts'
+}
+
+src_configure() {
+ eqmake5 -r
+}
+
+src_compile() {
+ default
+
+ build_locale() {
+ local lrelease="$(qt5_get_bindir)/lrelease"
+ edo "${lrelease}" "librecad/ts/librecad_${1}.ts" \
+ -qm "unix/resources/qm/librecad_${1}.qm"
+ edo "${lrelease}" "plugins/ts/plugins_${1}.ts" \
+ -qm "unix/resources/qm/plugins_${1}.qm"
+ }
+
+ plocale_for_each_locale build_locale
+ # We want the en locale to be always present. Otherwise it could
+ # be impossible to select the English command set which is quite crucial.
+ has en $(plocale_get_locales) || build_locale en
+}
+
+src_install() {
+ dobin unix/librecad
+ use tools && dobin unix/ttf2lff
+ insinto /usr/share/${PN}
+ doins -r unix/resources/*
+ use doc && docinto html && dodoc -r librecad/support/doc/*
+ insinto /usr/share/metainfo
+ doins unix/appdata/librecad.appdata.xml
+ doicon librecad/res/main/${PN}.png
+ make_desktop_entry ${PN} LibreCAD ${PN} Graphics
+}