From 1922afb088a7496804363bc47e63535202992f8a Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Fri, 21 May 2021 22:53:34 +0200
Subject: [PATCH 12/N] Remove ldconfig

---
 lib/libalpm/add.c                |  9 ++++++++-
 lib/libalpm/remove.c             |  4 ++++
 lib/libalpm/util.c               |  2 ++
 test/pacman/ldconfig.stub        |  4 ----
 test/pacman/meson.build          |  4 ----
 test/pacman/pactest.py           |  4 ----
 test/pacman/pmtest.py            |  8 +-------
 test/pacman/tests/TESTS          |  3 ---
 test/pacman/tests/ldconfig001.py |  9 ---------
 test/pacman/tests/ldconfig002.py | 13 -------------
 test/pacman/tests/ldconfig003.py |  9 ---------
 11 files changed, 15 insertions(+), 54 deletions(-)
 delete mode 100755 test/pacman/ldconfig.stub
 delete mode 100644 test/pacman/tests/ldconfig001.py
 delete mode 100644 test/pacman/tests/ldconfig002.py
 delete mode 100644 test/pacman/tests/ldconfig003.py

diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
index e08ff84..c21c884 100644
--- a/lib/libalpm/add.c
+++ b/lib/libalpm/add.c
@@ -657,7 +657,10 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
 int _alpm_upgrade_packages(alpm_handle_t *handle)
 {
 	size_t pkg_count, pkg_current;
-	int skip_ldconfig = 0, ret = 0;
+#ifndef __MSYS__
+	int skip_ldconfig = 0;
+#endif
+	int ret = 0;
 	alpm_list_t *targ;
 	alpm_trans_t *trans = handle->trans;
 
@@ -680,18 +683,22 @@ int _alpm_upgrade_packages(alpm_handle_t *handle)
 			/* something screwed up on the commit, abort the trans */
 			trans->state = STATE_INTERRUPTED;
 			handle->pm_errno = ALPM_ERR_TRANS_ABORT;
+#ifndef __MSYS__
 			/* running ldconfig at this point could possibly screw system */
 			skip_ldconfig = 1;
+#endif
 			ret = -1;
 		}
 
 		pkg_current++;
 	}
 
+#ifndef __MSYS__
 	if(!skip_ldconfig) {
 		/* run ldconfig if it exists */
 		_alpm_ldconfig(handle);
 	}
+#endif
 
 	return ret;
 }
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c
index f44eac7..48c6def 100644
--- a/lib/libalpm/remove.c
+++ b/lib/libalpm/remove.c
@@ -767,18 +767,22 @@ int _alpm_remove_packages(alpm_handle_t *handle, int run_ldconfig)
 		if(_alpm_remove_single_package(handle, pkg, NULL,
 					targ_count, pkg_count) == -1) {
 			handle->pm_errno = ALPM_ERR_TRANS_ABORT;
+#ifndef __MSYS__
 			/* running ldconfig at this point could possibly screw system */
 			run_ldconfig = 0;
+#endif
 			ret = -1;
 		}
 
 		targ_count++;
 	}
 
+#ifndef __MSYS__
 	if(run_ldconfig) {
 		/* run ldconfig if it exists */
 		_alpm_ldconfig(handle);
 	}
+#endif
 
 	return ret;
 }
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index 83160f0..95f30a4 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -794,6 +794,7 @@ cleanup:
 	return retval;
 }
 
+#ifndef __MSYS__
 /** Run ldconfig in a chroot.
  * @param handle the context handle
  * @return 0 on success, 1 on error
@@ -817,6 +818,7 @@ int _alpm_ldconfig(alpm_handle_t *handle)
 
 	return 0;
 }
+#endif
 
 /** Helper function for comparing strings using the alpm "compare func"
  * signature.
diff --git a/test/pacman/ldconfig.stub b/test/pacman/ldconfig.stub
deleted file mode 100755
index d261a04..0000000
--- a/test/pacman/ldconfig.stub
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-# A simple stub to copy into the chroot to fake ldconfig.
-# Simply appends a line to /etc/ld.so.cache if called.
-echo "ldconfig called" >> /etc/ld.so.cache
diff --git a/test/pacman/meson.build b/test/pacman/meson.build
index c26ce0f..5653b1c 100644
--- a/test/pacman/meson.build
+++ b/test/pacman/meson.build
@@ -80,9 +80,6 @@ pacman_tests = [
   'tests/ignore006.py',
   'tests/ignore007.py',
   'tests/ignore008.py',
-  'tests/ldconfig001.py',
-  'tests/ldconfig002.py',
-  'tests/ldconfig003.py',
   'tests/mode001.py',
   'tests/mode002.py',
   'tests/mode003.py',
@@ -359,7 +356,6 @@ foreach input : pacman_tests
     join_paths(meson.current_source_dir(), 'pactest.py'),
     '--scriptlet-shell', get_option('scriptlet-shell'),
     '--bindir', meson.project_build_root(),
-    '--ldconfig', LDCONFIG,
     '--verbose',
     join_paths(meson.current_source_dir(), input)
   ]
diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py
index c6add23..d9f0445 100755
--- a/test/pacman/pactest.py
+++ b/test/pacman/pactest.py
@@ -104,9 +104,6 @@ def create_parser():
     parser.add_option("--scriptlet-shell", type = "string",
                       dest = "scriptletshell", default = "/bin/sh",
                       help = "specify path to shell used for install scriptlets")
-    parser.add_option("--ldconfig", type = "string",
-                      dest = "ldconfig", default = "/sbin/ldconfig",
-                      help = "specify path to ldconfig")
     parser.add_option("--review", action = "store_true",
                       dest = "review", default = False,
                       help = "review test files, test output, and saved logs")
@@ -146,7 +143,6 @@ if __name__ == "__main__":
     env.pacman["valgrind"] = opts.valgrind
     env.pacman["manual-confirm"] = opts.manualconfirm
     env.pacman["scriptlet-shell"] = opts.scriptletshell
-    env.pacman["ldconfig"] = opts.ldconfig
     env.config["gpg"] = not opts.missing_gpg
     env.config["nls"] = not opts.missing_nls
     env.config["curl"] = not opts.missing_curl
diff --git a/test/pacman/pmtest.py b/test/pacman/pmtest.py
index 47a7cf4..742db1a 100644
--- a/test/pacman/pmtest.py
+++ b/test/pacman/pmtest.py
@@ -134,12 +134,10 @@ class pmtest(object):
         logdir = os.path.join(self.root, os.path.dirname(util.LOGFILE))
         etcdir = os.path.join(self.root, os.path.dirname(util.PACCONF))
         bindir = os.path.join(self.root, "bin")
-        ldconfig = os.path.basename(pacman["ldconfig"])
-        ldconfigdir = os.path.join(self.root, os.path.dirname(pacman["ldconfig"][1:]))
         shell = pacman["scriptlet-shell"][1:]
         shelldir = os.path.join(self.root, os.path.dirname(shell))
         sys_dirs = [dbdir, cachedir, syncdir, tmpdir, logdir, etcdir, bindir,
-                    ldconfigdir, shelldir]
+                    shelldir]
         for sys_dir in sys_dirs:
             if not os.path.isdir(sys_dir):
                 vprint("\t%s" % sys_dir[len(self.root)+1:])
@@ -148,10 +146,6 @@ class pmtest(object):
         shutil.copy("/bin/sh", bindir)
         if shell != "bin/sh":
             shutil.copy("/bin/sh", os.path.join(self.root, shell))
-        shutil.copy(os.path.join(util.SELFPATH, "ldconfig.stub"),
-            os.path.join(ldconfigdir, ldconfig))
-        ld_so_conf = open(os.path.join(etcdir, "ld.so.conf"), "w")
-        ld_so_conf.close()
 
         # Configuration file
         vprint("    Creating configuration file")
diff --git a/test/pacman/tests/TESTS b/test/pacman/tests/TESTS
index 74c8f67..b29181b 100644
--- a/test/pacman/tests/TESTS
+++ b/test/pacman/tests/TESTS
@@ -78,9 +78,6 @@ TESTS += test/pacman/tests/ignore005.py
 TESTS += test/pacman/tests/ignore006.py
 TESTS += test/pacman/tests/ignore007.py
 TESTS += test/pacman/tests/ignore008.py
-TESTS += test/pacman/tests/ldconfig001.py
-TESTS += test/pacman/tests/ldconfig002.py
-TESTS += test/pacman/tests/ldconfig003.py
 TESTS += test/pacman/tests/mode001.py
 TESTS += test/pacman/tests/mode002.py
 TESTS += test/pacman/tests/mode003.py
diff --git a/test/pacman/tests/ldconfig001.py b/test/pacman/tests/ldconfig001.py
deleted file mode 100644
index a97f28c..0000000
--- a/test/pacman/tests/ldconfig001.py
+++ /dev/null
@@ -1,9 +0,0 @@
-self.description = "Make sure ldconfig runs on an upgrade operation"
-
-p = pmpkg("dummy")
-self.addpkg(p)
-
-self.args = "-U %s" % p.filename()
-
-self.addrule("PACMAN_RETCODE=0")
-self.addrule("FILE_EXIST=etc/ld.so.cache")
diff --git a/test/pacman/tests/ldconfig002.py b/test/pacman/tests/ldconfig002.py
deleted file mode 100644
index 07f2ec6..0000000
--- a/test/pacman/tests/ldconfig002.py
+++ /dev/null
@@ -1,13 +0,0 @@
-self.description = "Make sure ldconfig runs on an upgrade operation"
-
-lp = pmpkg("dummy")
-self.addpkg2db("local", lp)
-
-p = pmpkg("dummy", "1.0-2")
-self.addpkg(p)
-
-self.args = "-U %s" % p.filename()
-
-self.addrule("PACMAN_RETCODE=0")
-self.addrule("PKG_VERSION=dummy|1.0-2")
-self.addrule("FILE_EXIST=etc/ld.so.cache")
diff --git a/test/pacman/tests/ldconfig003.py b/test/pacman/tests/ldconfig003.py
deleted file mode 100644
index 9b2967e..0000000
--- a/test/pacman/tests/ldconfig003.py
+++ /dev/null
@@ -1,9 +0,0 @@
-self.description = "Make sure ldconfig runs on a sync operation"
-
-sp = pmpkg("dummy")
-self.addpkg2db("sync", sp)
-
-self.args = "-S %s" % sp.name
-
-self.addrule("PACMAN_RETCODE=0")
-self.addrule("FILE_EXIST=etc/ld.so.cache")
