process-in-process: overhaul package recipe (#32347)
This commit is contained in:
		| @@ -9,14 +9,25 @@ | ||||
| class ProcessInProcess(Package): | ||||
|     """Process-in-Process""" | ||||
| 
 | ||||
|     homepage = "https://github.com/RIKEN-SysSoft/PiP" | ||||
|     git = "https://github.com/RIKEN-SysSoft/PiP.git" | ||||
|     # we cannot install pip-gdb (pip-aware gdb) | ||||
|     # since the ncureses package cannot be installed by using Spack | ||||
|     # --> https://github.com/spack/spack/issues/8675 | ||||
|     variant("pipgdb", default=False, sticky=True, description="PiP-gdb") | ||||
| 
 | ||||
|     homepage = "https://github.com/procinproc/procinproc.github.io" | ||||
|     git = "https://github.com/procinproc/PiP.git" | ||||
| 
 | ||||
|     maintainers = ["ahori"] | ||||
| 
 | ||||
|     conflicts("platform=darwin", msg="Darwin is not supported.") | ||||
|     conflicts("platform=windows", msg="Windows is not supported.") | ||||
| 
 | ||||
|     # PiP version 1 is obsolete | ||||
|     version("1", branch="pip-1", deprecated=True) | ||||
|     # PiP version 2 is stable one | ||||
|     version("2", branch="pip-2", preferred=True) | ||||
|     version("3", branch="pip-3")  # experimental | ||||
|     # PiP version 3 is experimental and unstable yet | ||||
|     version("3", branch="pip-3", deprecated=True) | ||||
| 
 | ||||
|     conflicts("%gcc@:3", when="os=centos7") | ||||
|     conflicts("%gcc@5:", when="os=centos7") | ||||
| @@ -28,22 +39,26 @@ class ProcessInProcess(Package): | ||||
|     conflicts("%gcc@9:", when="os=rhel8") | ||||
| 
 | ||||
|     # packages required for building PiP-gdb | ||||
|     depends_on("texinfo", type="build") | ||||
|     with when("+pipgdb"): | ||||
|         depends_on("ncurses") | ||||
|         depends_on("texinfo") | ||||
|         depends_on("systemtap") | ||||
|         depends_on("libxml2") | ||||
|         depends_on("pigz") | ||||
| 
 | ||||
|     # resources for PiP version 2 | ||||
|     #  PiP-glibc resource | ||||
|     #   for rhel/centos 7 | ||||
|     resource( | ||||
|         name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|         git="https://github.com/procinproc/PiP-glibc.git", | ||||
|         branch="centos/glibc-2.17-260.el7.pip.branch", | ||||
|         destination="PiP-glibc", | ||||
|         when="@2 os=centos7", | ||||
|     ) | ||||
|     resource( | ||||
|         name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|         git="https://github.com/procinproc/PiP-glibc.git", | ||||
|         branch="centos/glibc-2.17-260.el7.pip.branch", | ||||
|         destination="PiP-glibc", | ||||
|         when="@2 os=rhel7", | ||||
| @@ -51,31 +66,32 @@ class ProcessInProcess(Package): | ||||
|     #   for rhel/centos 8 | ||||
|     resource( | ||||
|         name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|         git="https://github.com/procinproc/PiP-glibc.git", | ||||
|         branch="centos/glibc-2.28-72.el8_1.1.pip.branch", | ||||
|         destination="PiP-glibc", | ||||
|         when="@2 os=centos8", | ||||
|     ) | ||||
|     resource( | ||||
|         name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|         git="https://github.com/procinproc/PiP-glibc.git", | ||||
|         branch="centos/glibc-2.28-72.el8_1.1.pip.branch", | ||||
|         destination="PiP-glibc", | ||||
|         when="@2 os=rhel8", | ||||
|     ) | ||||
| 
 | ||||
|     with when("+pipgdb"): | ||||
|         #  PiP-gdb resource | ||||
|         #   for rhel/centos 7 | ||||
|         resource( | ||||
|             name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|             git="https://github.com/procinproc/PiP-gdb.git", | ||||
|             branch="centos/gdb-7.6.1-94.el7.pip.branch", | ||||
|             destination="PiP-gdb", | ||||
|             when="@2 os=centos7", | ||||
|         ) | ||||
|         resource( | ||||
|             name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|             git="https://github.com/procinproc/PiP-gdb.git", | ||||
|             branch="centos/gdb-7.6.1-94.el7.pip.branch", | ||||
|             destination="PiP-gdb", | ||||
|             when="@2 os=rhel7", | ||||
| @@ -83,14 +99,14 @@ class ProcessInProcess(Package): | ||||
|         #   for rhel/centos 8 | ||||
|         resource( | ||||
|             name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|             git="https://github.com/procinproc/PiP-gdb.git", | ||||
|             branch="centos/gdb-8.2-12.el8.pip.branch", | ||||
|             destination="PiP-gdb", | ||||
|             when="@2 os=centos8", | ||||
|         ) | ||||
|         resource( | ||||
|             name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|             git="https://github.com/procinproc/PiP-gdb.git", | ||||
|             branch="centos/gdb-8.2-12.el8.pip.branch", | ||||
|             destination="PiP-gdb", | ||||
|             when="@2 os=rhel8", | ||||
| @@ -101,14 +117,14 @@ class ProcessInProcess(Package): | ||||
|         #   for rhel/centos 7 | ||||
|         resource( | ||||
|             name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|             git="https://github.com/procinproc/PiP-glibc.git", | ||||
|             branch="centos/glibc-2.17-260.el7.pip.branch", | ||||
|             destination="PiP-glibc", | ||||
|             when="@3 os=centos7", | ||||
|         ) | ||||
|         resource( | ||||
|             name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|             git="https://github.com/procinproc/PiP-glibc.git", | ||||
|             branch="centos/glibc-2.17-260.el7.pip.branch", | ||||
|             destination="PiP-glibc", | ||||
|             when="@3 os=rhel7", | ||||
| @@ -116,31 +132,32 @@ class ProcessInProcess(Package): | ||||
|         #   for rhel/centos 8 | ||||
|         resource( | ||||
|             name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|             git="https://github.com/procinproc/PiP-glibc.git", | ||||
|             branch="centos/glibc-2.28-72.el8_1.1.pip.branch", | ||||
|             destination="PiP-glibc", | ||||
|             when="@3 os=centos8", | ||||
|         ) | ||||
|         resource( | ||||
|             name="PiP-glibc", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-glibc.git", | ||||
|             git="https://github.com/procinproc/PiP-glibc.git", | ||||
|             branch="centos/glibc-2.28-72.el8_1.1.pip.branch", | ||||
|             destination="PiP-glibc", | ||||
|             when="@3 os=rhel8", | ||||
|         ) | ||||
| 
 | ||||
|         with when("+pipgdb"): | ||||
|             #  PiP-gdb resource | ||||
|             #   for rhel/centos 7 | ||||
|             resource( | ||||
|                 name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|                 git="https://github.com/procinproc/PiP-gdb.git", | ||||
|                 branch="centos/gdb-7.6.1-94.el7.pip.branch", | ||||
|                 destination="PiP-gdb", | ||||
|                 when="@3 os=centos7", | ||||
|             ) | ||||
|             resource( | ||||
|                 name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|                 git="https://github.com/procinproc/PiP-gdb.git", | ||||
|                 branch="centos/gdb-7.6.1-94.el7.pip.branch", | ||||
|                 destination="PiP-gdb", | ||||
|                 when="@3 os=rhel7", | ||||
| @@ -148,14 +165,14 @@ class ProcessInProcess(Package): | ||||
|             #   for rhel/centos 8 | ||||
|             resource( | ||||
|                 name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|                 git="https://github.com/procinproc/PiP-gdb.git", | ||||
|                 branch="centos/gdb-8.2-12.el8.pip.branch", | ||||
|                 destination="PiP-gdb", | ||||
|                 when="@3 os=centos8", | ||||
|             ) | ||||
|             resource( | ||||
|                 name="PiP-gdb", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-gdb.git", | ||||
|                 git="https://github.com/procinproc/PiP-gdb.git", | ||||
|                 branch="centos/gdb-8.2-12.el8.pip.branch", | ||||
|                 destination="PiP-gdb", | ||||
|                 when="@3 os=rhel8", | ||||
| @@ -164,20 +181,20 @@ class ProcessInProcess(Package): | ||||
|     # PiP testsuite (agnostic with PiP and OS versions) | ||||
|     resource( | ||||
|         name="PiP-Testsuite", | ||||
|         git="https://github.com/RIKEN-SysSoft/PiP-Testsuite.git", | ||||
|         git="https://github.com/procinproc/PiP-Testsuite.git", | ||||
|         destination="PiP-Testsuite", | ||||
|     ) | ||||
| 
 | ||||
|     def install(self, spec, prefix): | ||||
|         "Install Process-in-Process including PiP-glibc, PiP-gdb" | ||||
|         "Install Process-in-Process including PiP-glibc (, PiP-gdb)" | ||||
| 
 | ||||
|         # checking os and arch | ||||
|         arch = self.spec.architecture | ||||
|         target = self.spec.target | ||||
|         if arch.os not in ["centos7", "rhel7", "centos8", "rhel8"]: | ||||
|             raise InstallError("PIP only supports rhel/centos 7 and 8") | ||||
|             raise InstallError("PiP only supports rhel/centos 7 and 8") | ||||
|         if target.family not in ["x86_64", "aarch64"]: | ||||
|             raise InstallError("PIP only supports x86_64 and aarch64") | ||||
|             raise InstallError("PiP only supports x86_64 and aarch64") | ||||
| 
 | ||||
|         bash = which("bash") | ||||
| 
 | ||||
| @@ -194,14 +211,7 @@ def install(self, spec, prefix): | ||||
|         # installing already-doxygen-ed documents (man pages, html, ...) | ||||
|         make("doc") | ||||
| 
 | ||||
|         # testing PiP by using PiP-Testsuite (another repo), no need install | ||||
|         with working_dir(join_path("PiP-Testsuite", "PiP-Testsuite")): | ||||
|             bash("configure", "--with-pip=%s" % prefix) | ||||
|             # make test programs | ||||
|             make() | ||||
|             # and run the test programs | ||||
|             make("test10", parallel=False) | ||||
| 
 | ||||
|         with when("+pipgdb" in spec): | ||||
|             # installing PiP-gdb | ||||
|             with working_dir(join_path("PiP-gdb", "PiP-gdb")): | ||||
|                 # build.sh does build and install | ||||
| @@ -209,4 +219,10 @@ def install(self, spec, prefix): | ||||
|                 # testing PiP-gdb | ||||
|                 bash("test.sh", parallel=False) | ||||
| 
 | ||||
|     # all done !! | ||||
|         # testing PiP by using PiP-Testsuite (another repo), no need install | ||||
|         with working_dir(join_path("PiP-Testsuite", "PiP-Testsuite")): | ||||
|             bash("configure", "--with-pip=%s" % prefix) | ||||
|             # make test programs | ||||
|             make() | ||||
|             # and run the test programs | ||||
|             make("test10", parallel=False) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Atsushi Hori
					Atsushi Hori