Blob Blame History Raw
From 272024b9370380a538417004d478ef594bd0703c Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 1 Mar 2020 17:33:12 +0000
Subject: [PATCH 1/4] meson_vapi_link.py: Don't reset the cwd

We're exiting anyway so it's unnecessary.
---
 meson_vapi_link.py | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/meson_vapi_link.py b/meson_vapi_link.py
index eb64fd6..5b33063 100644
--- a/meson_vapi_link.py
+++ b/meson_vapi_link.py
@@ -5,18 +5,14 @@ import subprocess
 import sys
 
 vapidir = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], sys.argv[1], 'vala', 'vapi')
+os.chdir(vapidir)
 
 # FIXME: meson will not track the creation of these files
 #        https://github.com/mesonbuild/meson/blob/master/mesonbuild/scripts/uninstall.py#L39
 old = 'ggit-1.0'
 new = 'libgit2-glib-1.0'
 
-wd = os.getcwd()
-os.chdir(vapidir)
-
 for ext in ['vapi', 'deps']:
   src = os.path.join('{}.{}'.format(new, ext))
   dest = os.path.join('{}.{}'.format(old, ext))
   subprocess.call(['ln', '-s', '-f', src, dest])
-
-os.chdir(wd)
-- 
2.24.1


From f49f3f5a6cc20f54cdd9001f64912ca4d018ffec Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 1 Mar 2020 17:33:12 +0000
Subject: [PATCH 2/4] meson_vapi_link.py: Remove unnecessary os.path.join

We only have one argument, so it does nothing.
---
 meson_vapi_link.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meson_vapi_link.py b/meson_vapi_link.py
index 5b33063..58e0f6b 100644
--- a/meson_vapi_link.py
+++ b/meson_vapi_link.py
@@ -13,6 +13,6 @@ old = 'ggit-1.0'
 new = 'libgit2-glib-1.0'
 
 for ext in ['vapi', 'deps']:
-  src = os.path.join('{}.{}'.format(new, ext))
-  dest = os.path.join('{}.{}'.format(old, ext))
+  src = '{}.{}'.format(new, ext)
+  dest = '{}.{}'.format(old, ext)
   subprocess.call(['ln', '-s', '-f', src, dest])
-- 
2.24.1


From 170e1c31dad2208e3ce659628efdbf0623ebbda7 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 1 Mar 2020 17:33:12 +0000
Subject: [PATCH 3/4] meson_vapi_link.py: Improve calculation of vapidir

The script gets the *absolute* datadir passed as its argument. This
means os.path.join will throw away the MESON_INSTALL_DESTDIR_PREFIX,
breaking the symlinking when DESTDIR is set.

Also handle the case where the datadir is not inside the prefix by
prepending the destdir ourselves. We make the datadir relative to the
root by stripping the drive letter (if any) and the initial separator.
---
 meson.build        | 2 +-
 meson_vapi_link.py | 9 ++++++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/meson.build b/meson.build
index 3a423b3..6d314b5 100644
--- a/meson.build
+++ b/meson.build
@@ -135,7 +135,7 @@ if enable_vapi
   assert(enable_gir, 'vapi support was requested, but introspection support is mandatory.')
   assert(add_languages('vala', required: false), 'vapi support was requested, but vala not found.')
 
-  meson.add_install_script('meson_vapi_link.py', get_option('datadir'))
+  meson.add_install_script('meson_vapi_link.py', libgit2_glib_datadir)
 endif
 
 # Check for libgit2 ssh support
diff --git a/meson_vapi_link.py b/meson_vapi_link.py
index 58e0f6b..d7fc729 100644
--- a/meson_vapi_link.py
+++ b/meson_vapi_link.py
@@ -4,7 +4,14 @@ import os
 import subprocess
 import sys
 
-vapidir = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], sys.argv[1], 'vala', 'vapi')
+datadir = sys.argv[1]
+
+destdir = os.environ.get('DESTDIR')
+if destdir:
+    datadir = os.path.splitdrive(datadir)[1].lstrip(os.path.sep)
+    datadir = os.path.join(destdir, datadir)
+
+vapidir = os.path.join(datadir, 'vala', 'vapi')
 os.chdir(vapidir)
 
 # FIXME: meson will not track the creation of these files
-- 
2.24.1


From 29db98df0f65519bbcc9827253b0849ce7fb741c Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 1 Mar 2020 17:33:12 +0000
Subject: [PATCH 4/4] meson_vapi_link.py: Use python's own utils instead of
 calling 'ln'

Replace the use of 'ln' with os.symlink. Since subprocess.call does not
raise any exception when the called process fails, this script likely
silently did nothing on Windows. Instead, fall back to using shutil.copy
to copy instead of symlinking.
---
 meson_vapi_link.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/meson_vapi_link.py b/meson_vapi_link.py
index d7fc729..db1e4e8 100644
--- a/meson_vapi_link.py
+++ b/meson_vapi_link.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python3
 
 import os
-import subprocess
+import shutil
 import sys
 
 datadir = sys.argv[1]
@@ -22,4 +22,7 @@ new = 'libgit2-glib-1.0'
 for ext in ['vapi', 'deps']:
   src = '{}.{}'.format(new, ext)
   dest = '{}.{}'.format(old, ext)
-  subprocess.call(['ln', '-s', '-f', src, dest])
+  try:
+      os.symlink(src, dest)
+  except OSError:
+      shutil.copy(src, dest)
-- 
2.24.1