commit: 16a5784a51534af0453811caa81181309aa4bf81 Author: Tupone Alfredo <tupone <AT> gentoo <DOT> org> AuthorDate: Sat Sep 14 17:10:16 2019 +0000 Commit: Alfredo Tupone <tupone <AT> gentoo <DOT> org> CommitDate: Sat Sep 14 17:10:16 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=16a5784a
dev-ada/gnatcoll: simplify using ada eclass Package-Manager: Portage-2.3.69, Repoman-2.3.16 Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org> .../gnatcoll/files/gnatcoll-2017-r1-gentoo.patch | 186 +++++++++++++++++++++ dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild | 129 ++++++++++++++ 2 files changed, 315 insertions(+) diff --git a/dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch b/dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch new file mode 100644 index 00000000000..b8b92e4b737 --- /dev/null +++ b/dev-ada/gnatcoll/files/gnatcoll-2017-r1-gentoo.patch @@ -0,0 +1,186 @@ +--- a/Makefile 2017-01-20 19:39:07.131398270 +0100 ++++ b/Makefile 2017-01-20 19:42:30.088728844 +0100 +@@ -43,18 +43,18 @@ + + # Build either type of library. The argument (%) is the type of library to build + +-GPRBLD_OPTS=-p -m -j${PROCESSORS} -XLIBRARY_TYPE=$(@F) -XGnatcoll_Build=${Gnatcoll_Build} -XXMLADA_BUILD=$(@F) ++GPRBLD_OPTS=-p -m -j${PROCESSORS} -XGPR_BUILD=$(@F) -XLIBRARY_TYPE=$(@F) -XGnatcoll_Build=${Gnatcoll_Build} -XXMLADA_BUILD=$(@F) + + build_library_type/%: generate_sources + @${RM} src/gnatcoll-atomic.adb + + @echo "====== Building $(@F) libraries ======" +- ${GPRBUILD} ${GPRBLD_OPTS} -Pgnatcoll_full ++ ${GPRBUILD} ${GPRBLD_OPTS} -Pgnatcoll_full -v -cargs ${ADAFLAGS} + + @# Need to build libgnatcoll_gtk separately, because its project files + @# requires gtkada.gpr, which might not exist on the machine. + ifeq (${WITH_GTK},yes) +- ${GPRBUILD} ${GPRBLD_OPTS} -Psrc/gnatcoll_gtk ++ ${GPRBUILD} ${GPRBLD_OPTS} -Psrc/gnatcoll_gtk -v -cargs ${ADAFLAGS} + endif + + build_tools/%: build_library_type/% +@@ -63,13 +63,14 @@ + @# They are not build as part of the above because only the Main from + @# gnatcoll_full.gpr are build. We could use aggregate projects to + @# speed things up. +- ${GPRBUILD} ${GPRBLD_OPTS} -q -Psrc/gnatcoll_tools ++ ${GPRBUILD} ${GPRBLD_OPTS} -q -Psrc/gnatcoll_tools -v -cargs ${ADAFLAGS} + + ####################################################################### + # install + + GPRINST_OPTS=-p -f --prefix=${prefix} --install-name=gnatcoll \ + --exec-subdir=${bindir} --project-subdir=lib/gnat -XXMLADA_BUILD=$(@F) \ ++ -XGPR_BUILD=$(@F) \ + --build-var=LIBRARY_TYPE --build-name=$(@F) -XLIBRARY_TYPE=$(@F) + + install-clean: +--- a/gnatcoll_shared.gpr.in 2017-01-20 19:50:03.222808656 +0100 ++++ b/gnatcoll_shared.gpr.in 2017-01-20 19:50:28.200399274 +0100 +@@ -13,7 +13,7 @@ + + type Yes_No is ("yes", "no"); + Gtk : Yes_No := External ("GTK", "@WITH_GTK@"); +- Python : Yes_No := External ("PYTHON", "@WITH_PYTHON@"); ++ Python : Yes_No := "@WITH_PYTHON@"; + Syslog : Yes_No := External ("SYSLOG", "@WITH_SYSLOG@"); + Postgres : Yes_No := External ("POSTGRES", "@WITH_POSTGRES@"); + type Sqlite_Inclusion is ("yes", "no", "embedded"); +--- a/testsuite/json/__init__.py 2017-04-24 17:52:34.158513249 +0200 ++++ b/testsuite/json/__init__.py 2017-04-24 17:52:52.636207017 +0200 +@@ -21,7 +21,7 @@ + @requires_not_aix # Storage_Error on that machine + @chdir("MB28-001") + def test_MB28_001(self): +- self.runexec(["python", "make_json.py"]) ++ self.runexec(["python2.7", "make_json.py"]) + self.gprbuild() + self.runexec("json_stack_test", "test.out") + +--- a/testsuite/projects/__init__.py 2017-04-24 19:10:30.465246199 +0200 ++++ b/testsuite/projects/__init__.py 2017-04-24 19:10:42.768035080 +0200 +@@ -105,25 +105,6 @@ + self.gprbuild("default.gpr") + self.runexec("main", "") + +- @support.requires_not_windows +- @chdir("N918-040") +- def test_bareboard(self): +- self.create_fake_bb_compiler('install', 'arm-eabi', '6.1.0w', '3.4.6') +- +- # Make sure auto.cgpr is not deleted on exit +- try: +- os.unlink('auto.cgpr') +- except: +- pass +- self.gprbuild('main_prj', switches=['--autoconf=auto.cgpr']) +- m = re.search('for Target use "(.*?)"', open('auto.cgpr').read()) +- target = m.group(1) +- +- def customFilter(actual): +- return actual.replace(target, "<native>") +- +- self.runexec(['sh', 'test.sh'], 'test.out', customFilter=customFilter) +- + @chdir("NB12-045") + def test_NB12_045(self): + # Test registering attribute in unknown package +--- a/src/tools/gnatcoll_db2ada.adb 2017-04-24 21:36:09.193973179 +0200 ++++ b/src/tools/gnatcoll_db2ada.adb 2017-04-24 21:36:16.029858932 +0200 +@@ -211,7 +211,7 @@ + + declare + Output : constant String := Get_Command_Output +- (Command => "python", ++ (Command => "python2.7", + Arguments => Args, + Input => "", + Status => Status'Access, +--- a/src/gnatcoll-projects.ads 2017-11-25 14:50:06.919939453 +0100 ++++ b/src/gnatcoll-projects.ads 2017-11-25 14:50:38.932387204 +0100 +@@ -1917,7 +1917,8 @@ + Predefined_Source_Files : GNATCOLL.VFS.File_Array_Access; + -- The list of source files in Predefined_Source_Path + +- Default_Gnatls : GNAT.Strings.String_Access := new String'("gnatls"); ++ Default_Gnatls : GNAT.Strings.String_Access := ++ new String'("@GNATLS@"); + -- The default gnatls command to run. + + Xrefs_Subdir : GNAT.Strings.String_Access; +--- a/src/tools/gnatinspect.adb 2017-11-25 14:52:47.282170250 +0100 ++++ b/src/tools/gnatinspect.adb 2017-11-25 14:52:57.691990254 +0100 +@@ -642,7 +642,7 @@ + GNAT_Version : GNAT.Strings.String_Access; + begin + Env.Set_Path_From_Gnatls +- (Gnatls => "gnatls", ++ (Gnatls => "@GNATLS@", + GNAT_Version => GNAT_Version, + Errors => Local_On_Error'Unrestricted_Access); + Free (GNAT_Version); +--- a/src/gnatcoll-projects.adb 2018-11-14 18:47:27.760365233 +0100 ++++ b/src/gnatcoll-projects.adb 2018-11-14 19:10:43.961337201 +0100 +@@ -3273,9 +3273,9 @@ + Status : out Status_Type; + Result : out GNATCOLL.VFS.File_Array_Access) + is +- Mains_Str_List : String_List_Access; ++ Mains_Str_List : String_Vectors.Vector; + Closure_Status : GPR.Util.Status_Type; +- Closures_List : String_List_Access; ++ Closures_List : String_Vectors.Vector; + begin + Trace (Me, "Get_Closures"); + +@@ -3287,25 +3287,18 @@ + return; + end if; + +- Mains_Str_List := new String_List (Mains'First .. Mains'Last); + for I in Mains'Range loop +- Mains_Str_List (I) := new String'(Mains (I).Display_Base_Name); ++ Mains_Str_List.Append (Mains (I).Display_Base_Name); + end loop; + + GPR.Util.Get_Closures + (Project.Get_View, Project.Tree_View, +- Mains => Mains_Str_List.all, ++ Mains => Mains_Str_List, + All_Projects => All_Projects, + Include_Externally_Built => Include_Externally_Built, + Status => Closure_Status, + Result => Closures_List); + +- -- Freeing temporary list of mains. +- for I in Mains_Str_List'Range loop +- Free (Mains_Str_List (I)); +- end loop; +- Free (Mains_Str_List); +- + case Closure_Status is + when Success => + Status := Success; +@@ -3321,17 +3314,10 @@ + end case; + + if Closure_Status in Success | Incomplete_Closure then +- for I in Closures_List'Range loop +- Append (Result, Create (+Closures_List (I).all)); ++ for Closure of Closures_List loop ++ Append (Result, Create (+Closure)); + end loop; + end if; +- +- -- Freeing temporary list of closures. +- for I in Closures_List'Range loop +- Free (Closures_List (I)); +- end loop; +- Free (Closures_List); +- + end Get_Closures; + + ---------------- diff --git a/dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild b/dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild new file mode 100644 index 00000000000..ae3680e4ccc --- /dev/null +++ b/dev-ada/gnatcoll/gnatcoll-2017-r1.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python2_7 ) +ADA_COMPAT=( gnat_201{6,7} ) +inherit ada multilib multiprocessing autotools python-single-r1 + +MYP=${PN}-gpl-${PV} + +DESCRIPTION="GNAT Component Collection" +HOMEPAGE="http://libre.adacore.com" +SRC_URI="http://mirrors.cdn.adacore.com/art/591c45e2c7a447af2deed016 + -> ${MYP}-src.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="gmp gtk iconv postgres pygobject projects readline + +shared sqlite static-libs syslog tools" + +RDEPEND="${ADA_DEPS} + ${PYTHON_DEPS} + gmp? ( dev-libs/gmp:* ) + gtk? ( + dev-ada/gtkada[${ADA_USEDEP},shared?,static-libs?] + dev-libs/atk + dev-libs/glib + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/gtk+:3 + x11-libs/pango + ) + pygobject? ( dev-python/pygobject:3[${PYTHON_USEDEP}] ) + postgres? ( dev-db/postgresql:* ) + sqlite? ( dev-db/sqlite ) + projects? ( + >=dev-ada/libgpr-2018[${ADA_USEDEP},shared?,static-libs?] + dev-ada/xmlada[shared?,static-libs?] + ) + !dev-ada/gnatcoll-core + !dev-ada/gnatcoll-bindings + !dev-ada/gnatcoll-db" +DEPEND="${RDEPEND} + dev-ada/gprbuild[${ADA_USEDEP}]" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + tools? ( static-libs ) + pygobject? ( gtk ) + ${ADA_REQUIRED_USE}" + +S="${WORKDIR}"/${MYP}-src + +PATCHES=( "${FILESDIR}"/${P}-r1-gentoo.patch ) + +src_prepare() { + default + mv configure.{in,ac} || die + sed -i \ + -e "s:@GNATLS@:${GNATLS}:g" \ + src/gnatcoll-projects.ads \ + src/tools/gnatinspect.adb \ + || die + eautoreconf +} + +src_configure() { + if use sqlite; then + myConf="--with-sqlite=$(get_libdir)" + else + myConf="--without-sqlite" + fi + if use gtk ; then + myConf="$myConf --with-gtk=3.0" + else + myConf="$myConf --with-gtk=no" + fi + econf \ + --with-python \ + $(use_with gmp) \ + $(use_with iconv) \ + $(use_with postgres postgresql) \ + $(use_enable projects) \ + $(use_enable pygobject) \ + $(use_enable readline gpl) \ + $(use_enable readline) \ + $(use_enable syslog) \ + --with-python-exec=${EPYTHON} \ + --enable-shared-python \ + --disable-pygtk \ + $myConf +} + +src_compile() { + if use shared; then + emake PROCESSORS=$(makeopts_jobs) build_library_type/relocatable + fi + if use static-libs; then + emake PROCESSORS=$(makeopts_jobs) build_library_type/static + fi + if use tools; then + emake PROCESSORS=$(makeopts_jobs) build_tools/static + fi + python_fix_shebang . +} + +src_install() { + if use shared; then + emake prefix="${D}usr" install_library_type/relocatable + fi + if use static-libs; then + emake prefix="${D}usr" install_library_type/static + fi + if use tools; then + emake prefix="${D}usr" install_tools/static + fi + emake prefix="${D}usr" install_gps_plugin + einstalldocs +} + +src_test() { + # The test suite is in + # To run you need to have the ada compiler available as gcc + # Even in this case there are still some problems + # Going into the testsuite directory and running + # ./run.py -v -v + # run here (having enabled most USE flags) + true +}