commit:     56d8bafba4d7c3431ebcbd05492f0b16b5ce8001
Author:     band-a-prend <torokhov-s-a <AT> yandex <DOT> ru>
AuthorDate: Wed Oct 14 15:29:49 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Wed Oct 14 18:35:08 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56d8bafb

dev-util/codeblocks: fix gcc-11 compatibility

The GCC 11 now enforces that comparison objects be invocable as const.

Current patch to fix gcc-11 compatibility is proposed by
Sergei Trofimovich <slyfox <AT> gentoo.org>
and fix codeblocks "openfileslist" pligin compilation error.

Patch was sent to upstream :
https://sourceforge.net/p/codeblocks/tickets/1022/
so live-ebuild currently doesn't apply it.

Closes: https://bugs.gentoo.org/732818

Signed-off-by: Sergey Torokhov <torokhov-s-a <AT> yandex.ru>
Closes: https://github.com/gentoo/gentoo/pull/17928
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 dev-util/codeblocks/codeblocks-17.12-r304.ebuild   | 83 ++++++++++++++++++++++
 dev-util/codeblocks/codeblocks-20.03-r2.ebuild     | 77 ++++++++++++++++++++
 .../codeblocks-20.03_gcc11_compatibility.patch     | 12 ++++
 3 files changed, 172 insertions(+)

diff --git a/dev-util/codeblocks/codeblocks-17.12-r304.ebuild 
b/dev-util/codeblocks/codeblocks-17.12-r304.ebuild
new file mode 100644
index 00000000000..88841742c92
--- /dev/null
+++ b/dev-util/codeblocks/codeblocks-17.12-r304.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WX_GTK_VER="3.0-gtk3"
+
+inherit autotools wxwidgets xdg
+
+DESCRIPTION="The open source, cross platform, free C, C++ and Fortran IDE"
+HOMEPAGE="https://codeblocks.org/";
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+SRC_URI="mirror://sourceforge/${PN}/${P/-/_}.tar.xz
+https://dev.gentoo.org/~leio/distfiles/${P}-fortran.tar.xz
+https://dev.gentoo.org/~leio/distfiles/${P}_update_astyle_plugin_to_v3.1.patch.xz";
+
+# USE="fortran" enables FortranProject plugin (v1.5)
+# that is delivered with Code::Blocks 17.12 source code.
+# https://sourceforge.net/projects/fortranproject
+# https://cbfortran.sourceforge.io
+
+IUSE="contrib debug fortran pch"
+
+BDEPEND="virtual/pkgconfig"
+
+RDEPEND="app-arch/zip
+       >=dev-libs/tinyxml-2.6.2-r3
+       >=dev-util/astyle-3.0.1-r1:0=
+       x11-libs/wxGTK:${WX_GTK_VER}[X]
+       contrib? (
+               app-admin/gamin
+               app-text/hunspell
+               dev-libs/boost:=
+       )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-fix-crash-on-copypaste.patch
+       "${FILESDIR}"/${P}-nodebug.diff
+       "${FILESDIR}"/${PN}-20.03_gcc11_compatibility.patch
+       "${WORKDIR}"/patches/
+       )
+
+src_prepare() {
+       default
+       if has_version ">=dev-util/astyle-3.1" ; then
+               eapply 
"${WORKDIR}"/codeblocks-17.12_update_astyle_plugin_to_v3.1.patch
+       fi
+       sed -i "s:appdatadir = \$(datarootdir)/appdata:appdatadir = 
\$(datarootdir)/metainfo:" Makefile.am || die # bug 709450
+       sed -i "s:appdatadir = \$(datarootdir)/appdata:appdatadir = 
\$(datarootdir)/metainfo:" src/plugins/contrib/appdata/Makefile.am || die # bug 
709450
+       eautoreconf
+}
+
+src_configure() {
+       setup-wxwidgets
+
+       # USE="contrib -fortran" setup:
+       use fortran || CONF_WITH_LST=$(use_with contrib contrib-plugins 
all,-FortranProject)
+       # USE="contrib fortran" setup:
+       use fortran && CONF_WITH_LST=$(use_with contrib contrib-plugins all)
+       # USE="-contrib fortran" setup:
+       use contrib || CONF_WITH_LST=$(use_with fortran contrib-plugins 
FortranProject)
+
+       econf \
+               --disable-static \
+               $(use_enable debug) \
+               $(use_enable pch) \
+               ${CONF_WITH_LST}
+}
+
+pkg_postinst() {
+       elog "The Symbols Browser is disabled due to it causing crashes."
+       elog "For more information see 
https://sourceforge.net/p/codeblocks/tickets/225/";
+
+       xdg_pkg_postinst
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+}

diff --git a/dev-util/codeblocks/codeblocks-20.03-r2.ebuild 
b/dev-util/codeblocks/codeblocks-20.03-r2.ebuild
new file mode 100644
index 00000000000..16fbd94b772
--- /dev/null
+++ b/dev-util/codeblocks/codeblocks-20.03-r2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+WX_GTK_VER="3.0-gtk3"
+
+inherit autotools wxwidgets xdg
+
+DESCRIPTION="The open source, cross platform, free C, C++ and Fortran IDE"
+HOMEPAGE="https://codeblocks.org/";
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz
+https://dev.gentoo.org/~leio/distfiles/${P}-fortran.tar.xz
+https://dev.gentoo.org/~leio/distfiles/${P}-fortran-update-v1.7.tar.xz";
+
+# USE="fortran" enables FortranProject plugin (updated to v1.7 2020-06-07 
[r298])
+# that is delivered with Code::Blocks 20.03 source code.
+# https://sourceforge.net/projects/fortranproject
+# https://cbfortran.sourceforge.io
+
+IUSE="contrib debug fortran pch"
+
+BDEPEND="virtual/pkgconfig"
+
+RDEPEND="app-arch/zip
+       >=dev-libs/tinyxml-2.6.2-r3
+       >=dev-util/astyle-3.1-r2:0/3.1
+       x11-libs/wxGTK:${WX_GTK_VER}[X]
+       contrib? (
+               app-admin/gamin
+               app-text/hunspell
+               dev-libs/boost:=
+       )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-env.patch
+       "${FILESDIR}"/${P}_gcc11_compatibility.patch
+       "${WORKDIR}"/patches/
+       )
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       setup-wxwidgets
+
+       # USE="contrib -fortran" setup:
+       use fortran || CONF_WITH_LST=$(use_with contrib contrib-plugins 
all,-FortranProject)
+       # USE="contrib fortran" setup:
+       use fortran && CONF_WITH_LST=$(use_with contrib contrib-plugins all)
+       # USE="-contrib fortran" setup:
+       use contrib || CONF_WITH_LST=$(use_with fortran contrib-plugins 
FortranProject)
+
+       econf \
+               --disable-static \
+               $(use_enable debug) \
+               $(use_enable pch) \
+               ${CONF_WITH_LST}
+}
+
+pkg_postinst() {
+       elog "The Symbols Browser is disabled due to it causing crashes."
+       elog "For more information see 
https://sourceforge.net/p/codeblocks/tickets/225/";
+
+       xdg_pkg_postinst
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+}

diff --git 
a/dev-util/codeblocks/files/codeblocks-20.03_gcc11_compatibility.patch 
b/dev-util/codeblocks/files/codeblocks-20.03_gcc11_compatibility.patch
new file mode 100644
index 00000000000..46c8643e9c9
--- /dev/null
+++ b/dev-util/codeblocks/files/codeblocks-20.03_gcc11_compatibility.patch
@@ -0,0 +1,12 @@
+diff -Naur a/src/plugins/openfileslist/openfileslistplugin.h 
b/src/plugins/openfileslist/openfileslistplugin.h
+--- a/src/plugins/openfileslist/openfileslistplugin.h  2020-10-13 
20:35:57.000000000 +0300
++++ b/src/plugins/openfileslist/openfileslistplugin.h  2020-10-13 
20:37:37.000000000 +0300
+@@ -23,7 +23,7 @@
+     // Functor for the std::set predicate to sort the opened editor files 
according to their tab order
+     struct compareLess
+     {
+-        bool operator()(const ProjectFile* lhs, const ProjectFile* rhs) { 
return lhs->editorTabPos < rhs->editorTabPos; }
++        bool operator()(const ProjectFile* lhs, const ProjectFile* rhs) const 
{ return lhs->editorTabPos < rhs->editorTabPos; }
+     };
+     typedef std::set<ProjectFile*, compareLess> OpenFilesSet;
+     ProjectFile* activeFile;

Reply via email to