diff --git a/sci-libs/scotch/additional-files/Makefile.inc.x86_64_pc_haiku.shlib b/sci-libs/scotch/additional-files/Makefile.inc.x86_64_pc_haiku.shlib new file mode 100644 index 000000000..e26568fce --- /dev/null +++ b/sci-libs/scotch/additional-files/Makefile.inc.x86_64_pc_haiku.shlib @@ -0,0 +1,21 @@ +EXE = +LIB = .so +OBJ = .o + +MAKE = make +AR = gcc +ARFLAGS = -shared -o +CAT = cat +CCS = gcc +CCP = mpicc +CCD = gcc +CFLAGS = -O3 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ -DCOMMON_FILE_COMPRESS_LZMA -DCOMMON_PTHREAD -DCOMMON_PTHREAD_FILE -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict -DIDXSIZE64 +CLIBFLAGS = -shared -fPIC +LDFLAGS = -lz -llzma -lbz2 -lm -Xlinker --no-as-needed +CP = cp +LEX = flex -Pscotchyy -olex.yy.c +LN = ln +MKDIR = mkdir -p +MV = mv +RANLIB = echo +YACC = bison -pscotchyy -y -b y diff --git a/sci-libs/scotch/additional-files/Makefile.inc.x86_pc_haiku.shlib b/sci-libs/scotch/additional-files/Makefile.inc.x86_pc_haiku.shlib new file mode 100644 index 000000000..182bd9a7e --- /dev/null +++ b/sci-libs/scotch/additional-files/Makefile.inc.x86_pc_haiku.shlib @@ -0,0 +1,21 @@ +EXE = +LIB = .so +OBJ = .o + +MAKE = make +AR = gcc +ARFLAGS = -shared -o +CAT = cat +CCS = gcc +CCP = mpicc +CCD = gcc +CFLAGS = -O3 -fPIC -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_FILE_COMPRESS_BZ -DCOMMON_FILE_COMPRESS_LZMA -DCOMMON_PTHREAD -DCOMMON_PTHREAD_FILE -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_RENAME -Drestrict=__restrict +CLIBFLAGS = -shared -fPIC +LDFLAGS = -lz -llzma -lbz2 -lm -Xlinker --no-as-needed +CP = cp +LEX = flex -Pscotchyy -olex.yy.c +LN = ln +MKDIR = mkdir -p +MV = mv +RANLIB = echo +YACC = bison -pscotchyy -y -b y diff --git a/sci-libs/scotch/licenses/CeCILL-C b/sci-libs/scotch/licenses/CeCILL-C new file mode 100644 index 000000000..7caa1ef9d --- /dev/null +++ b/sci-libs/scotch/licenses/CeCILL-C @@ -0,0 +1,517 @@ + +CeCILL-C FREE SOFTWARE LICENSE AGREEMENT + + + Notice + +This Agreement is a Free Software license agreement that is the result +of discussions between its authors in order to ensure compliance with +the two main principles guiding its drafting: + + * firstly, compliance with the principles governing the distribution + of Free Software: access to source code, broad rights granted to + users, + * secondly, the election of a governing law, French law, with which + it is conformant, both as regards the law of torts and + intellectual property law, and the protection that it offers to + both authors and holders of the economic rights over software. + +The authors of the CeCILL-C (for Ce[a] C[nrs] I[nria] L[ogiciel] L[ibre]) +license are: + +Commissariat ‡ l'Energie Atomique - CEA, a public scientific, technical +and industrial research establishment, having its principal place of +business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France. + +Centre National de la Recherche Scientifique - CNRS, a public scientific +and technological establishment, having its principal place of business +at 3 rue Michel-Ange, 75794 Paris cedex 16, France. + +Institut National de Recherche en Informatique et en Automatique - +INRIA, a public scientific and technological establishment, having its +principal place of business at Domaine de Voluceau, Rocquencourt, BP +105, 78153 Le Chesnay cedex, France. + + + Preamble + +The purpose of this Free Software license agreement is to grant users +the right to modify and re-use the software governed by this license. + +The exercising of this right is conditional upon the obligation to make +available to the community the modifications made to the source code of +the software so as to contribute to its evolution. + +In consideration of access to the source code and the rights to copy, +modify and redistribute granted by the license, users are provided only +with a limited warranty and the software's author, the holder of the +economic rights, and the successive licensors only have limited liability. + +In this respect, the risks associated with loading, using, modifying +and/or developing or reproducing the software by the user are brought to +the user's attention, given its Free Software status, which may make it +complicated to use, with the result that its use is reserved for +developers and experienced professionals having in-depth computer +knowledge. Users are therefore encouraged to load and test the +suitability of the software as regards their requirements in conditions +enabling the security of their systems and/or data to be ensured and, +more generally, to use and operate it in the same conditions of +security. This Agreement may be freely reproduced and published, +provided it is not altered, and that no provisions are either added or +removed herefrom. + +This Agreement may apply to any or all software for which the holder of +the economic rights decides to submit the use thereof to its provisions. + + + Article 1 - DEFINITIONS + +For the purpose of this Agreement, when the following expressions +commence with a capital letter, they shall have the following meaning: + +Agreement: means this license agreement, and its possible subsequent +versions and annexes. + +Software: means the software in its Object Code and/or Source Code form +and, where applicable, its documentation, "as is" when the Licensee +accepts the Agreement. + +Initial Software: means the Software in its Source Code and possibly its +Object Code form and, where applicable, its documentation, "as is" when +it is first distributed under the terms and conditions of the Agreement. + +Modified Software: means the Software modified by at least one +Integrated Contribution. + +Source Code: means all the Software's instructions and program lines to +which access is required so as to modify the Software. + +Object Code: means the binary files originating from the compilation of +the Source Code. + +Holder: means the holder(s) of the economic rights over the Initial +Software. + +Licensee: means the Software user(s) having accepted the Agreement. + +Contributor: means a Licensee having made at least one Integrated +Contribution. + +Licensor: means the Holder, or any other individual or legal entity, who +distributes the Software under the Agreement. + +Integrated Contribution: means any or all modifications, corrections, +translations, adaptations and/or new functions integrated into the +Source Code by any or all Contributors. + +Related Module: means a set of sources files including their +documentation that, without modification to the Source Code, enables +supplementary functions or services in addition to those offered by the +Software. + +Derivative Software: means any combination of the Software, modified or +not, and of a Related Module. + +Parties: mean both the Licensee and the Licensor. + +These expressions may be used both in singular and plural form. + + + Article 2 - PURPOSE + +The purpose of the Agreement is the grant by the Licensor to the +Licensee of a non-exclusive, transferable and worldwide license for the +Software as set forth in Article 5 hereinafter for the whole term of the +protection granted by the rights over said Software. + + + Article 3 - ACCEPTANCE + +3.1 The Licensee shall be deemed as having accepted the terms and +conditions of this Agreement upon the occurrence of the first of the +following events: + + * (i) loading the Software by any or all means, notably, by + downloading from a remote server, or by loading from a physical + medium; + * (ii) the first time the Licensee exercises any of the rights + granted hereunder. + +3.2 One copy of the Agreement, containing a notice relating to the +characteristics of the Software, to the limited warranty, and to the +fact that its use is restricted to experienced users has been provided +to the Licensee prior to its acceptance as set forth in Article 3.1 +hereinabove, and the Licensee hereby acknowledges that it has read and +understood it. + + + Article 4 - EFFECTIVE DATE AND TERM + + + 4.1 EFFECTIVE DATE + +The Agreement shall become effective on the date when it is accepted by +the Licensee as set forth in Article 3.1. + + + 4.2 TERM + +The Agreement shall remain in force for the entire legal term of +protection of the economic rights over the Software. + + + Article 5 - SCOPE OF RIGHTS GRANTED + +The Licensor hereby grants to the Licensee, who accepts, the following +rights over the Software for any or all use, and for the term of the +Agreement, on the basis of the terms and conditions set forth hereinafter. + +Besides, if the Licensor owns or comes to own one or more patents +protecting all or part of the functions of the Software or of its +components, the Licensor undertakes not to enforce the rights granted by +these patents against successive Licensees using, exploiting or +modifying the Software. If these patents are transferred, the Licensor +undertakes to have the transferees subscribe to the obligations set +forth in this paragraph. + + + 5.1 RIGHT OF USE + +The Licensee is authorized to use the Software, without any limitation +as to its fields of application, with it being hereinafter specified +that this comprises: + + 1. permanent or temporary reproduction of all or part of the Software + by any or all means and in any or all form. + + 2. loading, displaying, running, or storing the Software on any or + all medium. + + 3. entitlement to observe, study or test its operation so as to + determine the ideas and principles behind any or all constituent + elements of said Software. This shall apply when the Licensee + carries out any or all loading, displaying, running, transmission + or storage operation as regards the Software, that it is entitled + to carry out hereunder. + + + 5.2 RIGHT OF MODIFICATION + +The right of modification includes the right to translate, adapt, +arrange, or make any or all modifications to the Software, and the right +to reproduce the resulting software. It includes, in particular, the +right to create a Derivative Software. + +The Licensee is authorized to make any or all modification to the +Software provided that it includes an explicit notice that it is the +author of said modification and indicates the date of the creation thereof. + + + 5.3 RIGHT OF DISTRIBUTION + +In particular, the right of distribution includes the right to publish, +transmit and communicate the Software to the general public on any or +all medium, and by any or all means, and the right to market, either in +consideration of a fee, or free of charge, one or more copies of the +Software by any means. + +The Licensee is further authorized to distribute copies of the modified +or unmodified Software to third parties according to the terms and +conditions set forth hereinafter. + + + 5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION + +The Licensee is authorized to distribute true copies of the Software in +Source Code or Object Code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the Object Code of the Software is +redistributed, the Licensee allows effective access to the full Source +Code of the Software at a minimum during the entire period of its +distribution of the Software, it being understood that the additional +cost of acquiring the Source Code shall not exceed the cost of +transferring the data. + + + 5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE + +When the Licensee makes an Integrated Contribution to the Software, the +terms and conditions for the distribution of the resulting Modified +Software become subject to all the provisions of this Agreement. + +The Licensee is authorized to distribute the Modified Software, in +source code or object code form, provided that said distribution +complies with all the provisions of the Agreement and is accompanied by: + + 1. a copy of the Agreement, + + 2. a notice relating to the limitation of both the Licensor's + warranty and liability as set forth in Articles 8 and 9, + +and that, in the event that only the object code of the Modified +Software is redistributed, the Licensee allows effective access to the +full source code of the Modified Software at a minimum during the entire +period of its distribution of the Modified Software, it being understood +that the additional cost of acquiring the source code shall not exceed +the cost of transferring the data. + + + 5.3.3 DISTRIBUTION OF DERIVATIVE SOFTWARE + +When the Licensee creates Derivative Software, this Derivative Software +may be distributed under a license agreement other than this Agreement, +subject to compliance with the requirement to include a notice +concerning the rights over the Software as defined in Article 6.4. +In the event the creation of the Derivative Software required modification +of the Source Code, the Licensee undertakes that: + + 1. the resulting Modified Software will be governed by this Agreement, + 2. the Integrated Contributions in the resulting Modified Software + will be clearly identified and documented, + 3. the Licensee will allow effective access to the source code of the + Modified Software, at a minimum during the entire period of + distribution of the Derivative Software, such that such + modifications may be carried over in a subsequent version of the + Software; it being understood that the additional cost of + purchasing the source code of the Modified Software shall not + exceed the cost of transferring the data. + + + 5.3.4 COMPATIBILITY WITH THE CeCILL LICENSE + +When a Modified Software contains an Integrated Contribution subject to +the CeCILL license agreement, or when a Derivative Software contains a +Related Module subject to the CeCILL license agreement, the provisions +set forth in the third item of Article 6.4 are optional. + + + Article 6 - INTELLECTUAL PROPERTY + + + 6.1 OVER THE INITIAL SOFTWARE + +The Holder owns the economic rights over the Initial Software. Any or +all use of the Initial Software is subject to compliance with the terms +and conditions under which the Holder has elected to distribute its work +and no one shall be entitled to modify the terms and conditions for the +distribution of said Initial Software. + +The Holder undertakes that the Initial Software will remain ruled at +least by this Agreement, for the duration set forth in Article 4.2. + + + 6.2 OVER THE INTEGRATED CONTRIBUTIONS + +The Licensee who develops an Integrated Contribution is the owner of the +intellectual property rights over this Contribution as defined by +applicable law. + + + 6.3 OVER THE RELATED MODULES + +The Licensee who develops a Related Module is the owner of the +intellectual property rights over this Related Module as defined by +applicable law and is free to choose the type of agreement that shall +govern its distribution under the conditions defined in Article 5.3.3. + + + 6.4 NOTICE OF RIGHTS + +The Licensee expressly undertakes: + + 1. not to remove, or modify, in any manner, the intellectual property + notices attached to the Software; + + 2. to reproduce said notices, in an identical manner, in the copies + of the Software modified or not; + + 3. to ensure that use of the Software, its intellectual property + notices and the fact that it is governed by the Agreement is + indicated in a text that is easily accessible, specifically from + the interface of any Derivative Software. + +The Licensee undertakes not to directly or indirectly infringe the +intellectual property rights of the Holder and/or Contributors on the +Software and to take, where applicable, vis-‡-vis its staff, any and all +measures required to ensure respect of said intellectual property rights +of the Holder and/or Contributors. + + + Article 7 - RELATED SERVICES + +7.1 Under no circumstances shall the Agreement oblige the Licensor to +provide technical assistance or maintenance services for the Software. + +However, the Licensor is entitled to offer this type of services. The +terms and conditions of such technical assistance, and/or such +maintenance, shall be set forth in a separate instrument. Only the +Licensor offering said maintenance and/or technical assistance services +shall incur liability therefor. + +7.2 Similarly, any Licensor is entitled to offer to its licensees, under +its sole responsibility, a warranty, that shall only be binding upon +itself, for the redistribution of the Software and/or the Modified +Software, under terms and conditions that it is free to decide. Said +warranty, and the financial terms and conditions of its application, +shall be subject of a separate instrument executed between the Licensor +and the Licensee. + + + Article 8 - LIABILITY + +8.1 Subject to the provisions of Article 8.2, the Licensee shall be +entitled to claim compensation for any direct loss it may have suffered +from the Software as a result of a fault on the part of the relevant +Licensor, subject to providing evidence thereof. + +8.2 The Licensor's liability is limited to the commitments made under +this Agreement and shall not be incurred as a result of in particular: +(i) loss due the Licensee's total or partial failure to fulfill its +obligations, (ii) direct or consequential loss that is suffered by the +Licensee due to the use or performance of the Software, and (iii) more +generally, any consequential loss. In particular the Parties expressly +agree that any or all pecuniary or business loss (i.e. loss of data, +loss of profits, operating loss, loss of customers or orders, +opportunity cost, any disturbance to business activities) or any or all +legal proceedings instituted against the Licensee by a third party, +shall constitute consequential loss and shall not provide entitlement to +any or all compensation from the Licensor. + + + Article 9 - WARRANTY + +9.1 The Licensee acknowledges that the scientific and technical +state-of-the-art when the Software was distributed did not enable all +possible uses to be tested and verified, nor for the presence of +possible defects to be detected. In this respect, the Licensee's +attention has been drawn to the risks associated with loading, using, +modifying and/or developing and reproducing the Software which are +reserved for experienced users. + +The Licensee shall be responsible for verifying, by any or all means, +the suitability of the product for its requirements, its good working +order, and for ensuring that it shall not cause damage to either persons +or properties. + +9.2 The Licensor hereby represents, in good faith, that it is entitled +to grant all the rights over the Software (including in particular the +rights set forth in Article 5). + +9.3 The Licensee acknowledges that the Software is supplied "as is" by +the Licensor without any other express or tacit warranty, other than +that provided for in Article 9.2 and, in particular, without any warranty +as to its commercial value, its secured, safe, innovative or relevant +nature. + +Specifically, the Licensor does not warrant that the Software is free +from any error, that it will operate without interruption, that it will +be compatible with the Licensee's own equipment and software +configuration, nor that it will meet the Licensee's requirements. + +9.4 The Licensor does not either expressly or tacitly warrant that the +Software does not infringe any third party intellectual property right +relating to a patent, software or any other property right. Therefore, +the Licensor disclaims any and all liability towards the Licensee +arising out of any or all proceedings for infringement that may be +instituted in respect of the use, modification and redistribution of the +Software. Nevertheless, should such proceedings be instituted against +the Licensee, the Licensor shall provide it with technical and legal +assistance for its defense. Such technical and legal assistance shall be +decided on a case-by-case basis between the relevant Licensor and the +Licensee pursuant to a memorandum of understanding. The Licensor +disclaims any and all liability as regards the Licensee's use of the +name of the Software. No warranty is given as regards the existence of +prior rights over the name of the Software or as regards the existence +of a trademark. + + + Article 10 - TERMINATION + +10.1 In the event of a breach by the Licensee of its obligations +hereunder, the Licensor may automatically terminate this Agreement +thirty (30) days after notice has been sent to the Licensee and has +remained ineffective. + +10.2 A Licensee whose Agreement is terminated shall no longer be +authorized to use, modify or distribute the Software. However, any +licenses that it may have granted prior to termination of the Agreement +shall remain valid subject to their having been granted in compliance +with the terms and conditions hereof. + + + Article 11 - MISCELLANEOUS + + + 11.1 EXCUSABLE EVENTS + +Neither Party shall be liable for any or all delay, or failure to +perform the Agreement, that may be attributable to an event of force +majeure, an act of God or an outside cause, such as defective +functioning or interruptions of the electricity or telecommunications +networks, network paralysis following a virus attack, intervention by +government authorities, natural disasters, water damage, earthquakes, +fire, explosions, strikes and labor unrest, war, etc. + +11.2 Any failure by either Party, on one or more occasions, to invoke +one or more of the provisions hereof, shall under no circumstances be +interpreted as being a waiver by the interested Party of its right to +invoke said provision(s) subsequently. + +11.3 The Agreement cancels and replaces any or all previous agreements, +whether written or oral, between the Parties and having the same +purpose, and constitutes the entirety of the agreement between said +Parties concerning said purpose. No supplement or modification to the +terms and conditions hereof shall be effective as between the Parties +unless it is made in writing and signed by their duly authorized +representatives. + +11.4 In the event that one or more of the provisions hereof were to +conflict with a current or future applicable act or legislative text, +said act or legislative text shall prevail, and the Parties shall make +the necessary amendments so as to comply with said act or legislative +text. All other provisions shall remain effective. Similarly, invalidity +of a provision of the Agreement, for any reason whatsoever, shall not +cause the Agreement as a whole to be invalid. + + + 11.5 LANGUAGE + +The Agreement is drafted in both French and English and both versions +are deemed authentic. + + + Article 12 - NEW VERSIONS OF THE AGREEMENT + +12.1 Any person is authorized to duplicate and distribute copies of this +Agreement. + +12.2 So as to ensure coherence, the wording of this Agreement is +protected and may only be modified by the authors of the License, who +reserve the right to periodically publish updates or new versions of the +Agreement, each with a separate number. These subsequent versions may +address new issues encountered by Free Software. + +12.3 Any Software distributed under a given version of the Agreement may +only be subsequently distributed under the same version of the Agreement +or a subsequent version. + + + Article 13 - GOVERNING LAW AND JURISDICTION + +13.1 The Agreement is governed by French law. The Parties agree to +endeavor to seek an amicable solution to any disagreements or disputes +that may arise during the performance of the Agreement. + +13.2 Failing an amicable solution within two (2) months as from their +occurrence, and unless emergency proceedings are necessary, the +disagreements or disputes shall be referred to the Paris Courts having +jurisdiction, by the more diligent Party. + + +Version 1.0 dated 2006-09-05. diff --git a/sci-libs/scotch/patches/scotch-6.0.9.patchset b/sci-libs/scotch/patches/scotch-6.0.9.patchset new file mode 100644 index 000000000..4406ad2d2 --- /dev/null +++ b/sci-libs/scotch/patches/scotch-6.0.9.patchset @@ -0,0 +1,198 @@ +From 7a6ee74fe3be18e7fe09f19511e8fd00e129baa3 Mon Sep 17 00:00:00 2001 +From: Gabriele Baldassarre +Date: Sun, 17 May 2020 22:03:14 +0000 +Subject: Fix order of arguments in gcc + + +diff --git a/src/check/Makefile b/src/check/Makefile +index 171e94e..864b44c 100644 +--- a/src/check/Makefile ++++ b/src/check/Makefile +@@ -61,7 +61,7 @@ include ../Makefile.inc + $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(SCOTCHINCDIR) -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -I$(SCOTCHINCDIR) -L$(SCOTCHLIBDIR) $(<) -o $(@) $(SCOTCHLIBS) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) $(SCOTCHLIBS) $(LIBS) -o $(@) + + ## + ## Project rules. +diff --git a/src/esmumps/Makefile b/src/esmumps/Makefile +index cca7b51..d08571a 100644 +--- a/src/esmumps/Makefile ++++ b/src/esmumps/Makefile +@@ -44,7 +44,7 @@ include ../Makefile.inc + $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(includedir) -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -I$(includedir) $(<) -o $(@) -L. -lesmumps -L$(libdir) -lscotch -lscotcherrexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) $(<) -L$(libdir) -L. -l$(ESMUMPSLIB) -l$(SCOTCHLIB) -lscotch -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) + + ## + ## Project rules. +@@ -52,7 +52,7 @@ include ../Makefile.inc + + .PHONY : ptscotch scotch ptinstall install clean realclean + +-scotch : clean ++scotch : clean common.h + $(MAKE) CC="$(CCS)" CCD="$(CCS)" \ + libesmumps$(LIB) \ + main_esmumps$(EXE) +diff --git a/src/libscotch/Makefile b/src/libscotch/Makefile +index 3c32d69..bc9bcd5 100644 +--- a/src/libscotch/Makefile ++++ b/src/libscotch/Makefile +@@ -50,7 +50,7 @@ endif + $(CC) $(CFLAGS) $(CLIBFLAGS) -c $(<) -o $(@) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) $(LIBS) -o $(@) + + ## + ## Project rules. +@@ -3067,14 +3067,14 @@ dummysizes$(EXE) : dummysizes.c \ + mapping.h \ + order.h \ + parser.h +- $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CCD) $(CFLAGS) $(LDFLAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) $(LIBS) -o $(@) + + ptdummysizes$(EXE) : dummysizes.c \ + module.h \ + common.h \ + dgraph.h \ + dorder.h +- $(CCD) $(CCDFLAGS) -DSCOTCH_VERSION_NUM=$(VERSION) -DSCOTCH_RELEASE_NUM=$(RELEASE) -DSCOTCH_PATCHLEVEL_NUM=$(PATCHLEVEL) $(<) -o $(@) $(LDFLAGS) ++ $(CCD) $(CFLAGS) $(LDFLAGS) -DSCOTCH_VERSION=$(VERSION) -DSCOTCH_RELEASE=$(RELEASE) -DSCOTCH_PATCHLEVEL=$(PATCHLEVEL) $(<) $(LIBS) -o $(@) + + scotch.h : dummysizes$(EXE) \ + library.h +diff --git a/src/libscotch/parser_ll.l b/src/libscotch/parser_ll.l +index 82450f1..9a593d0 100644 +--- a/src/libscotch/parser_ll.l ++++ b/src/libscotch/parser_ll.l +@@ -86,16 +86,25 @@ + #ifdef FLEX_SCANNER + #define YY_ALWAYS_INTERACTIVE 1 /* Set the parser as interactive and read one char at a time */ + #define YY_INPUT(buf,result,max_size) { int c = stratParserInput (); result = (c == 0) ? YY_NULL : ((buf)[0] = c, 1); } ++ ++# if YY_FLEX_MAJOR_VERSION > 2 || \ ++ YY_FLEX_MAJOR_VERSION == 2 && YY_FLEX_MINOR_VERSION > 6 || \ ++ YY_FLEX_MAJOR_VERSION == 2 && YY_FLEX_MINOR_VERSION == 6 && YY_FLEX_SUBMINOR_VERSION >= 3 ++ int yywrap() { return 1; } ++# else ++# define yywrap() (1) /* Always return end-of-file on end-of-string */ ++# endif ++ + #else /* FLEX_SCANNER */ + #undef getc /* Redirect I/O functions */ + #define getc yygetc + #undef yygetc + #define yygetc(stream) stratParserInput () ++#define yywrap() (1) /* Always return end-of-file on end-of-string */ + #endif /* FLEX_SCANNER */ + + #define YY_NO_UNPUT /* No prototype for yyunput as not defined */ + #define YY_SKIP_YYWRAP /* No prototype for yywrap as defined as macro */ +-#define yywrap() (1) /* Always return end-of-file on end-of-string */ + + /* + ** The static variables. +diff --git a/src/scotch/Makefile b/src/scotch/Makefile +index 7bd0c5b..758db08 100644 +--- a/src/scotch/Makefile ++++ b/src/scotch/Makefile +@@ -41,13 +41,13 @@ libdir = ../../lib + include ../Makefile.inc + + %$(EXE) : %$(OBJ) +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -o $(@) -L$(libdir) -l$(SCOTCHLIB) -lscotch -l$(SCOTCHLIB)errexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -L$(libdir) -l$(SCOTCHLIB) -lscotch -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) + + %$(OBJ) : %.c + $(CC) $(CFLAGS) -I$(includedir) -I../libscotch -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -o $(@) -L$(libdir) -l$(SCOTCHLIB) -lscotch -l$(SCOTCHLIB)errexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -L$(libdir) -l$(SCOTCHLIB) -lscotch -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) + + ## + ## Project rules. +@@ -209,7 +209,7 @@ dgpart$(EXE) : dgmap.c \ + $(libdir)/libptscotch$(LIB) \ + $(libdir)/libptscotcherrexit$(LIB) \ + dgmap.h +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -DSCOTCH_COMPILE_PART -o $(@) -L$(libdir) -lptscotch -lscotch -lptscotcherrexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -DSCOTCH_COMPILE_PART -L$(libdir) -lptscotch -lscotch -lptscotcherrexit $(LIBS) -o $(@) + + dgscat$(EXE) : dgscat.c \ + ../libscotch/module.h \ +@@ -321,7 +321,7 @@ gout$(EXE) : gout_c.c \ + gout_o.c \ + $(includedir)/scotch.h \ + $(libdir)/libscotch$(LIB) +- $(CC) $(CFLAGS) -I../libscotch -I$(includedir) gout_c.c gout_o.c -o $(@) -L$(libdir) -lscotch -lscotcherrexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I../libscotch -I$(includedir) gout_c.c gout_o.c -L$(libdir) -lscotch -lscotcherrexit $(LIBS) -o $(@) + + gpart$(EXE) : gmap.c \ + ../libscotch/module.h \ +@@ -330,7 +330,7 @@ gpart$(EXE) : gmap.c \ + $(libdir)/libscotch$(LIB) \ + $(libdir)/libscotcherrexit$(LIB) \ + gmap.h +- $(CC) $(CFLAGS) -I$(includedir) -I../libscotch $(<) -DSCOTCH_COMPILE_PART -o $(@) -L$(libdir) -lscotch -lscotcherrexit $(LDFLAGS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) -I../libscotch $(<) -DSCOTCH_COMPILE_PART -L$(libdir) -lscotch -lscotcherrexit $(LIBS) -o $(@) + + gscat$(EXE) : gscat.c \ + ../libscotch/module.h \ +-- +2.26.0 + + +From f42d8fdfc0d14c5ef0abc86f1f249ce0d7835225 Mon Sep 17 00:00:00 2001 +From: Gabriele Baldassarre +Date: Mon, 18 May 2020 20:05:36 +0000 +Subject: Hardwrite lib names in esmumps + + +diff --git a/src/esmumps/Makefile b/src/esmumps/Makefile +index d08571a..2cfe2d5 100644 +--- a/src/esmumps/Makefile ++++ b/src/esmumps/Makefile +@@ -44,7 +44,7 @@ include ../Makefile.inc + $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(includedir) -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) $(<) -L$(libdir) -L. -l$(ESMUMPSLIB) -l$(SCOTCHLIB) -lscotch -l$(SCOTCHLIB)errexit $(LIBS) -o $(@) ++ $(CC) $(CFLAGS) $(LDFLAGS) -I$(includedir) $(<) -L$(libdir) -L. -lesmumps -lscotch -lscotcherrexit $(LIBS) -o $(@) + + ## + ## Project rules. +-- +2.26.0 + + +From 38d538d48bbdc4b728f325e7ea696646c562c220 Mon Sep 17 00:00:00 2001 +From: Gabriele Baldassarre +Date: Tue, 19 May 2020 23:12:30 +0000 +Subject: Fix includedir path + + +diff --git a/src/check/Makefile b/src/check/Makefile +index 864b44c..3d3ef0a 100644 +--- a/src/check/Makefile ++++ b/src/check/Makefile +@@ -61,7 +61,7 @@ include ../Makefile.inc + $(CC) $(CFLAGS) $(CLIBFLAGS) -I$(SCOTCHINCDIR) -c $(<) -o $(@) + + %$(EXE) : %.c +- $(CC) $(CFLAGS) $(LDFLAGS) -I$(SCOTCHINCLUDEDIR) -L$(SCOTCHLIBDIR) $(<) $(SCOTCHLIBS) $(LIBS) -o $(@) ++ $(CC) $(CFLAGS) $(SCOTCHLIBS) $(LDFLAGS) -I$(SCOTCHINCDIR) -L$(SCOTCHLIBDIR) $(<) $(LIBS) -o $(@) + + ## + ## Project rules. +-- +2.26.0 + diff --git a/sci-libs/scotch/scotch-6.0.9.recipe b/sci-libs/scotch/scotch-6.0.9.recipe new file mode 100644 index 000000000..aad3371f8 --- /dev/null +++ b/sci-libs/scotch/scotch-6.0.9.recipe @@ -0,0 +1,225 @@ +SUMMARY="Software for graph, mesh and hypergraph partitioning" +DESCRIPTION="SCOTCH is a software package and libraries for graph, mesh and \ +hypergraph partitioning, static mapping, and sparse matrix block ordering. +Its purpose is to apply graph theory, with a divide and \ +conquer approach, to scientific computing problems such as graph and \ +mesh partitioning, static mapping, and sparse matrix ordering, in \ +application domains ranging from structural mechanics to operating \ +systems or bio-chemistry. +The SCOTCH distribution is a set of programs and libraries which \ +implement the static mapping and sparse matrix reordering algorithms \ +developed within the SCOTCH project." +HOMEPAGE="http://www.labri.u-bordeaux.fr/perso/pelegrin/scotch/" +COPYRIGHT="2002-2020 Francois Pellegrini, LABRI" +LICENSE="CeCILL-C" +REVISION="1" +SOURCE_URI="https://gforge.inria.fr/frs/download.php/latestfile/298/scotch_$portVersion.tar.gz" +CHECKSUM_SHA256="622b4143cf01c480bb15708b3651b29c25e4aeb00c8c6447ff196aca2eca5c93" +PATCHES="scotch-$portVersion.patchset" +SOURCE_DIR="scotch_$portVersion" + +ADDITIONAL_FILES=" + Makefile.inc.x86_64_pc_haiku.shlib + Makefile.inc.x86_pc_haiku.shlib + " + +ARCHITECTURES="!x86_gcc2 x86_64 ?arm ?ppc ?sparc" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +portVersionCompat="$portVersion compat >= ${portVersion%%.*}" +libVersion=$portVersion +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + scotch$secondaryArchSuffix = $portVersionCompat + lib:libesmumps$secondaryArchSuffix = $libVersionCompat + lib:libscotch$secondaryArchSuffix = $libVersionCompat + lib:libscotcherr$secondaryArchSuffix = $libVersionCompat + lib:libscotcherrexit$secondaryArchSuffix = $libVersionCompat + lib:libscotchmetis$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:liblzma$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +PROVIDES_devel=" + scotch${secondaryArchSuffix}_devel = $portVersionCompat + devel:libesmumps$secondaryArchSuffix = $libVersionCompat + devel:libscotch$secondaryArchSuffix = $libVersionCompat + devel:libscotcherr$secondaryArchSuffix = $libVersionCompat + devel:libscotcherrexit$secondaryArchSuffix = $libVersionCompat + devel:libscotchmetis$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + scotch$secondaryArchSuffix == $portVersion base + " + +PROVIDES_tools=" + scotch${secondaryArchSuffix}_tools = $portVersionCompat + cmd:acpl$commandSuffix = $portVersionCompat + cmd:amk_ccc$commandSuffix = $portVersionCompat + cmd:amk_fft2$commandSuffix = $portVersionCompat + cmd:amk_grf$commandSuffix = $portVersionCompat + cmd:amk_hy$commandSuffix = $portVersionCompat + cmd:amk_m2$commandSuffix = $portVersionCompat + cmd:amk_p2$commandSuffix = $portVersionCompat + cmd:atst$commandSuffix = $portVersionCompat + cmd:gbase$commandSuffix = $portVersionCompat + cmd:gcv$commandSuffix = $portVersionCompat + cmd:gmap$commandSuffix = $portVersionCompat + cmd:gmk_hy$commandSuffix = $portVersionCompat + cmd:gmk_m2$commandSuffix = $portVersionCompat + cmd:gmk_m3$commandSuffix = $portVersionCompat + cmd:gmk_msh$commandSuffix = $portVersionCompat + cmd:gmk_ub2$commandSuffix = $portVersionCompat + cmd:gmtst$commandSuffix = $portVersionCompat + cmd:gord$commandSuffix = $portVersionCompat + cmd:gotst$commandSuffix = $portVersionCompat + cmd:gout$commandSuffix = $portVersionCompat + cmd:gpart$commandSuffix = $portVersionCompat + cmd:gscat$commandSuffix = $portVersionCompat + cmd:gtst$commandSuffix = $portVersionCompat + cmd:mcv$commandSuffix = $portVersionCompat + cmd:mmk_m2$commandSuffix = $portVersionCompat + cmd:mmk_m3$commandSuffix = $portVersionCompat + cmd:mord$commandSuffix = $portVersionCompat + cmd:mtst$commandSuffix = $portVersionCompat + " +REQUIRES_tools=" + scotch$secondaryArchSuffix == $portVersion base + haiku$secondaryArchSuffix + lib:liblzma$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:liblzma$secondaryArchSuffix + devel:libbz2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:bison + cmd:gcc$secondaryArchSuffix + cmd:flex + cmd:make + " + +TEST_REQUIRES=" + cmd:diff + " + +defineDebugInfoPackage scotch$secondaryArchSuffix \ + "$libDir"/libesmumps.so \ + "$libDir"/libscotch.so \ + "$libDir"/libscotcherr.so \ + "$libDir"/libscotcherrexit.so\ + "$libDir"/libscotchmetis.so + +PATCH() +{ + # make install will fail because these binaries are missing + # This could be caused by the ptscotch target which has been disabled on this release + # Thus, this is not going to be a permanent patch, hence it is not + # in the main patch set + sed -i 's|-\$(CP) -f \.\./bin/d\[agm\]\*\$(EXE) \$(bindir)||g' src/Makefile +} + +BUILD() +{ + cp "$portDir"/additional-files/Makefile.inc."${effectiveTargetArchitecture}"_pc_haiku.shlib src/Makefile.inc + + make -C src $jobArgs scotch esmumps +} + + +INSTALL() +{ + declare -a destdirs=("$commandBinDir" "$includeDir" "$includeDir" "$libDir" "$libDir"/pkgconfig "$dataDir" "$manDir") + for i in "${destdirs[@]}" + do + mkdir -p ${i} + done + + make -C src $jobArgs bindir=$commandBinDir includedir=$includeDir libdir=$libDir datarootdir=$dataDir mandir=$manDir install + + # create symlinks + declare -a libraries=("libesmumps" "libscotch" "libscotcherr" "libscotcherrexit" "libscotchmetis") + for soname in "${libraries[@]}" + do + ln -s ${libDir}/${soname}.so ${libDir}/${soname}.so.$libVersion + ln -s ${libDir}/${soname}.so ${libDir}/${soname}.so.${libVersion%%.*} + done + + cat <<-EOF > $libDir/pkgconfig/scotch.pc + prefix=${prefix} + exec_prefix=${prefix} + libdir=\${prefix}/develop/lib + includedir=\${prefix}/develop/headers + Name: scotch + Description: ${SUMMARY} + Version: ${portVersion} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -lscotcherr -lscotch + Private: -lz -llzma -lbz2 -lm + Cflags: -I\${includedir} + EOF + + cat <<-EOF > $libDir/pkgconfig/scotchmetis.pc + prefix=${prefix} + libdir=\${prefix}/develop/lib + includedir=\${prefix}/develop/headers + Name: scotchmetis + Description: ${SUMMARY} + Version: ${portVersion} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -lscotchmetis -lscotcherr -lscotch + Private: -lz -llzma -lbz2 -lm + Cflags: -I\${includedir} + EOF + + prepareInstalledDevelLibs `printf '%s\n' "$(IFS=' '; printf '%s' "${libraries[*]}")"` + fixPkgconfig + + # copy pdf documentation + mkdir -p $developDocDir + cp -rd doc/*.pdf $developDocDir + + # devel package + packageEntries devel $developDir + + # tools package + packageEntries tools $commandBinDir $manDir +} + +TEST() +{ + export LIBRARY_PATH=$LIBRARY_PATH:$sourceDir/lib + + # The (non-standard) Makefile used to perform the tests has some relative paths in it which + # won't work from HP (although they will from bare Terminal). + # Makefile is patched just to have these paths overridable by command line + sed -i 's|= \.\.\/\.\.\/|?= \.\.\/\.\.\/|g' src/check/Makefile + + # NOTE: + # Tests are commented out because for two reasons: + # 1. They don't work from HP (Makefile issue?) + # 2. Some of them will hang (bug in source code and/or incompatibilities with Haiku?) + + SCOTCHBINDIR="$sourceDir/bin" \ + SCOTCHLIBDIR="$sourceDir/lib" \ + SCOTCHINCDIR="$sourceDir/include" \ + SCOTCHTGTDIR="$sourceDir/tgt" \ + make -C src check $jobArgs +}