File petsc-fix-libdir.patch of Package petsc

From 4be95fa6ec208e7ffe3ca7adbec4e148238c19e1 Mon Sep 17 00:00:00 2001
From: Atri Bhattacharya <badshah400@gmail.org>
Date: Wed, 2 Apr 2025 00:51:53 +0530
Subject: [PATCH] libdir

---
 config/PETSc/Configure.py |  6 ++++--
 config/install.py         | 14 ++++++++------
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/config/PETSc/Configure.py b/config/PETSc/Configure.py
index b025144..251b8be 100644
--- a/config/PETSc/Configure.py
+++ b/config/PETSc/Configure.py
@@ -5,6 +5,8 @@ import sys
 import re
 import pickle
 
+LIB = sys.platlibdir
+
 class Configure(config.base.Configure):
   def __init__(self, framework):
     config.base.Configure.__init__(self, framework)
@@ -172,7 +174,7 @@ class Configure(config.base.Configure):
         cflags_inc.append('-I' + os.path.join(self.petscdir.dir, 'include'))
       fd.write('exec_prefix=${prefix}\n')
       fd.write('includedir=${prefix}/include\n')
-      fd.write('libdir=${prefix}/lib\n')
+      fd.write('libdir={:s}/{:s}\n'.format('${prefix}', LIB))
 
       with self.setCompilers.Language('C'):
         fd.write('ccompiler='+self.setCompilers.getCompiler()+'\n')
@@ -448,7 +450,7 @@ prepend-path PATH "%s"
       self.addMakeMacro('PETSC_FC_INCLUDES',self.headers.toStringNoDupes(allincludes,modinc(allincludes)))
       self.addMakeMacro('PETSC_FC_INCLUDES_INSTALL',self.headers.toStringNoDupes(allincludes_install,modinc(allincludes_install)))
 
-    LIB_DIR = os.path.join(self.installdir.dir,'lib')
+    LIB_DIR = os.path.join(self.installdir.dir,LIB)
     self.addDefine('LIB_DIR','"'+LIB_DIR+'"')
     # Use build dir here for 'make check' to work before 'make install'
     PREINSTALL_LIB_DIR = os.path.join(self.petscdir.dir,self.arch.arch,'lib')
diff --git a/config/install.py b/config/install.py
index e438f8f..94d2374 100755
--- a/config/install.py
+++ b/config/install.py
@@ -2,6 +2,8 @@
 from __future__ import print_function
 import os, re, shutil, sys
 
+LIB = sys.platlibdir
+
 if 'PETSC_DIR' in os.environ:
   PETSC_DIR = os.environ['PETSC_DIR']
 else:
@@ -77,12 +79,12 @@ class Installer(script.Script):
     self.archBinDir        = os.path.join(self.rootDir, self.arch, 'bin')
     self.archLibDir        = os.path.join(self.rootDir, self.arch, 'lib')
     self.destIncludeDir    = os.path.join(self.destDir, 'include')
-    self.destConfDir       = os.path.join(self.destDir, 'lib','petsc','conf')
-    self.destLibDir        = os.path.join(self.destDir, 'lib')
-    self.destBinDir        = os.path.join(self.destDir, 'lib','petsc','bin')
+    self.destConfDir       = os.path.join(self.destDir, LIB,'petsc','conf')
+    self.destLibDir        = os.path.join(self.destDir, LIB)
+    self.destBinDir        = os.path.join(self.destDir, LIB,'petsc','bin')
     self.installIncludeDir = os.path.join(self.installDir, 'include')
-    self.installLibDir     = os.path.join(self.installDir, 'lib')
-    self.installBinDir     = os.path.join(self.installDir, 'lib','petsc','bin')
+    self.installLibDir     = os.path.join(self.installDir, LIB)
+    self.installBinDir     = os.path.join(self.installDir, LIB,'petsc','bin')
     self.rootShareDir      = os.path.join(self.rootDir, 'share')
     self.destShareDir      = os.path.join(self.destDir, 'share')
     self.rootSrcDir        = os.path.join(self.rootDir, 'src')
@@ -344,7 +346,7 @@ class Installer(script.Script):
       return glob.glob(os.path.join(dirname, *patterns))
     def shell(*args):
       return self.executeShellCommand(' '.join(args))[0]
-    libdir = os.path.join(self.installDir, 'lib')
+    libdir = os.path.join(self.installDir, LIB)
     if sys.platform == 'linux':
       libraries = [
         lib for lib in lsdir(self.destLibDir, 'lib*.so*')
-- 
2.49.0

openSUSE Build Service is sponsored by