瀏覽代碼

Temporary revert of 1.9.4.dev0 changeset so we can re-build 1.9.3 (which never actually got built).

revert Fix library error when running within a PyInstaller bundle (#926).
Dan Helfman 6 月之前
父節點
當前提交
bf40b01077
共有 4 個文件被更改,包括 21 次插入76 次删除
  1. 0 3
      NEWS
  2. 9 25
      borgmatic/hooks/command.py
  3. 1 1
      pyproject.toml
  4. 11 47
      tests/unit/hooks/test_command.py

+ 0 - 3
NEWS

@@ -1,6 +1,3 @@
-1.9.4.dev0
- * #926: Fix library error when running within a PyInstaller bundle.
-
 1.9.3
  * #261 (beta): Add a ZFS hook for snapshotting and backing up ZFS datasets. See the documentation
    for more information: https://torsion.org/borgmatic/docs/how-to/snapshot-your-filesystems/

+ 9 - 25
borgmatic/hooks/command.py

@@ -2,9 +2,8 @@ import logging
 import os
 import re
 import shlex
-import sys
 
-import borgmatic.execute
+from borgmatic import execute
 
 logger = logging.getLogger(__name__)
 
@@ -28,20 +27,6 @@ def interpolate_context(config_filename, hook_description, command, context):
     return command
 
 
-def make_environment(current_environment, sys_module=sys):
-    '''
-    Given the existing system environment as a map from environment variable name to value, return
-    (in the same form) any extra environment variables that should be used when running command
-    hooks.
-    '''
-    # Detect whether we're running within a PyInstaller bundle. If so, set or clear LD_LIBRARY_PATH
-    # based on the value of LD_LIBRARY_PATH_ORIG. This prevents library version information errors.
-    if getattr(sys_module, 'frozen', False) and hasattr(sys_module, '_MEIPASS'):
-        return {'LD_LIBRARY_PATH': current_environment.get('LD_LIBRARY_PATH_ORIG', '')}
-
-    return {}
-
-
 def execute_hook(commands, umask, config_filename, description, dry_run, **context):
     '''
     Given a list of hook commands to execute, a umask to execute with (or None), a config filename,
@@ -80,15 +65,14 @@ def execute_hook(commands, umask, config_filename, description, dry_run, **conte
 
     try:
         for command in commands:
-            if dry_run:
-                continue
-
-            borgmatic.execute.execute_command(
-                [command],
-                output_log_level=(logging.ERROR if description == 'on-error' else logging.WARNING),
-                shell=True,
-                extra_environment=make_environment(os.environ),
-            )
+            if not dry_run:
+                execute.execute_command(
+                    [command],
+                    output_log_level=(
+                        logging.ERROR if description == 'on-error' else logging.WARNING
+                    ),
+                    shell=True,
+                )
     finally:
         if original_umask:
             os.umask(original_umask)

+ 1 - 1
pyproject.toml

@@ -1,6 +1,6 @@
 [project]
 name = "borgmatic"
-version = "1.9.4.dev0"
+version = "1.9.3"
 authors = [
   { name="Dan Helfman", email="witten@torsion.org" },
 ]

+ 11 - 47
tests/unit/hooks/test_command.py

@@ -35,32 +35,12 @@ def test_interpolate_context_escapes_interpolated_variables():
     )
 
 
-def test_make_environment_without_pyinstaller_does_not_touch_environment():
-    assert module.make_environment({}, sys_module=flexmock()) == {}
-
-
-def test_make_environment_with_pyinstaller_clears_LD_LIBRARY_PATH():
-    assert module.make_environment({}, sys_module=flexmock(frozen=True, _MEIPASS='yup')) == {
-        'LD_LIBRARY_PATH': ''
-    }
-
-
-def test_make_environment_with_pyinstaller_and_LD_LIBRARY_PATH_ORIG_copies_it_into_LD_LIBRARY_PATH():
-    assert module.make_environment(
-        {'LD_LIBRARY_PATH_ORIG': '/lib/lib/lib'}, sys_module=flexmock(frozen=True, _MEIPASS='yup')
-    ) == {'LD_LIBRARY_PATH': '/lib/lib/lib'}
-
-
 def test_execute_hook_invokes_each_command():
     flexmock(module).should_receive('interpolate_context').replace_with(
         lambda config_file, hook_description, command, context: command
     )
-    flexmock(module).should_receive('make_environment').and_return({})
-    flexmock(module.borgmatic.execute).should_receive('execute_command').with_args(
-        [':'],
-        output_log_level=logging.WARNING,
-        shell=True,
-        extra_environment={},
+    flexmock(module.execute).should_receive('execute_command').with_args(
+        [':'], output_log_level=logging.WARNING, shell=True
     ).once()
 
     module.execute_hook([':'], None, 'config.yaml', 'pre-backup', dry_run=False)
@@ -70,18 +50,11 @@ def test_execute_hook_with_multiple_commands_invokes_each_command():
     flexmock(module).should_receive('interpolate_context').replace_with(
         lambda config_file, hook_description, command, context: command
     )
-    flexmock(module).should_receive('make_environment').and_return({})
-    flexmock(module.borgmatic.execute).should_receive('execute_command').with_args(
-        [':'],
-        output_log_level=logging.WARNING,
-        shell=True,
-        extra_environment={},
+    flexmock(module.execute).should_receive('execute_command').with_args(
+        [':'], output_log_level=logging.WARNING, shell=True
     ).once()
-    flexmock(module.borgmatic.execute).should_receive('execute_command').with_args(
-        ['true'],
-        output_log_level=logging.WARNING,
-        shell=True,
-        extra_environment={},
+    flexmock(module.execute).should_receive('execute_command').with_args(
+        ['true'], output_log_level=logging.WARNING, shell=True
     ).once()
 
     module.execute_hook([':', 'true'], None, 'config.yaml', 'pre-backup', dry_run=False)
@@ -93,12 +66,8 @@ def test_execute_hook_with_umask_sets_that_umask():
     )
     flexmock(module.os).should_receive('umask').with_args(0o77).and_return(0o22).once()
     flexmock(module.os).should_receive('umask').with_args(0o22).once()
-    flexmock(module).should_receive('make_environment').and_return({})
-    flexmock(module.borgmatic.execute).should_receive('execute_command').with_args(
-        [':'],
-        output_log_level=logging.WARNING,
-        shell=True,
-        extra_environment={},
+    flexmock(module.execute).should_receive('execute_command').with_args(
+        [':'], output_log_level=logging.WARNING, shell=True
     )
 
     module.execute_hook([':'], 77, 'config.yaml', 'pre-backup', dry_run=False)
@@ -108,8 +77,7 @@ def test_execute_hook_with_dry_run_skips_commands():
     flexmock(module).should_receive('interpolate_context').replace_with(
         lambda config_file, hook_description, command, context: command
     )
-    flexmock(module).should_receive('make_environment').and_return({})
-    flexmock(module.borgmatic.execute).should_receive('execute_command').never()
+    flexmock(module.execute).should_receive('execute_command').never()
 
     module.execute_hook([':', 'true'], None, 'config.yaml', 'pre-backup', dry_run=True)
 
@@ -122,12 +90,8 @@ def test_execute_hook_on_error_logs_as_error():
     flexmock(module).should_receive('interpolate_context').replace_with(
         lambda config_file, hook_description, command, context: command
     )
-    flexmock(module).should_receive('make_environment').and_return({})
-    flexmock(module.borgmatic.execute).should_receive('execute_command').with_args(
-        [':'],
-        output_log_level=logging.ERROR,
-        shell=True,
-        extra_environment={},
+    flexmock(module.execute).should_receive('execute_command').with_args(
+        [':'], output_log_level=logging.ERROR, shell=True
     ).once()
 
     module.execute_hook([':'], None, 'config.yaml', 'on-error', dry_run=False)