mirror of https://github.com/borgbackup/borg.git
Make borg.platform a package
This commit is contained in:
parent
0333f91eb2
commit
0ca1a18b33
38
setup.py
38
setup.py
|
@ -45,10 +45,22 @@ compress_source = 'src/borg/compress.pyx'
|
|||
crypto_source = 'src/borg/crypto.pyx'
|
||||
chunker_source = 'src/borg/chunker.pyx'
|
||||
hashindex_source = 'src/borg/hashindex.pyx'
|
||||
platform_posix_source = 'src/borg/platform_posix.pyx'
|
||||
platform_linux_source = 'src/borg/platform_linux.pyx'
|
||||
platform_darwin_source = 'src/borg/platform_darwin.pyx'
|
||||
platform_freebsd_source = 'src/borg/platform_freebsd.pyx'
|
||||
platform_posix_source = 'src/borg/platform/posix.pyx'
|
||||
platform_linux_source = 'src/borg/platform/linux.pyx'
|
||||
platform_darwin_source = 'src/borg/platform/darwin.pyx'
|
||||
platform_freebsd_source = 'src/borg/platform/freebsd.pyx'
|
||||
|
||||
cython_sources = [
|
||||
compress_source,
|
||||
crypto_source,
|
||||
chunker_source,
|
||||
hashindex_source,
|
||||
|
||||
platform_posix_source,
|
||||
platform_linux_source,
|
||||
platform_freebsd_source,
|
||||
platform_darwin_source,
|
||||
]
|
||||
|
||||
try:
|
||||
from Cython.Distutils import build_ext
|
||||
|
@ -56,7 +68,7 @@ try:
|
|||
|
||||
class Sdist(sdist):
|
||||
def __init__(self, *args, **kwargs):
|
||||
for src in glob('src/borg/*.pyx'):
|
||||
for src in cython_sources:
|
||||
cython_compiler.compile(src, cython_compiler.default_options)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
|
@ -66,10 +78,10 @@ try:
|
|||
'src/borg/crypto.c',
|
||||
'src/borg/chunker.c', 'src/borg/_chunker.c',
|
||||
'src/borg/hashindex.c', 'src/borg/_hashindex.c',
|
||||
'src/borg/platform_posix.c',
|
||||
'src/borg/platform_linux.c',
|
||||
'src/borg/platform_freebsd.c',
|
||||
'src/borg/platform_darwin.c',
|
||||
'src/borg/platform/posix.c',
|
||||
'src/borg/platform/linux.c',
|
||||
'src/borg/platform/freebsd.c',
|
||||
'src/borg/platform/darwin.c',
|
||||
])
|
||||
super().make_distribution()
|
||||
|
||||
|
@ -295,14 +307,14 @@ if not on_rtd:
|
|||
Extension('borg.hashindex', [hashindex_source])
|
||||
]
|
||||
if sys.platform.startswith(('linux', 'freebsd', 'darwin')):
|
||||
ext_modules.append(Extension('borg.platform_posix', [platform_posix_source]))
|
||||
ext_modules.append(Extension('borg.platform.posix', [platform_posix_source]))
|
||||
|
||||
if sys.platform == 'linux':
|
||||
ext_modules.append(Extension('borg.platform_linux', [platform_linux_source], libraries=['acl']))
|
||||
ext_modules.append(Extension('borg.platform.linux', [platform_linux_source], libraries=['acl']))
|
||||
elif sys.platform.startswith('freebsd'):
|
||||
ext_modules.append(Extension('borg.platform_freebsd', [platform_freebsd_source]))
|
||||
ext_modules.append(Extension('borg.platform.freebsd', [platform_freebsd_source]))
|
||||
elif sys.platform == 'darwin':
|
||||
ext_modules.append(Extension('borg.platform_darwin', [platform_darwin_source]))
|
||||
ext_modules.append(Extension('borg.platform.darwin', [platform_darwin_source]))
|
||||
|
||||
setup(
|
||||
name='borgbackup',
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
import sys
|
||||
|
||||
"""
|
||||
Platform-specific APIs.
|
||||
|
||||
Public APIs are documented in platform_base.
|
||||
"""
|
||||
|
||||
from .platform_base import acl_get, acl_set
|
||||
from .platform_base import set_flags, get_flags
|
||||
from .platform_base import SyncFile, sync_dir, fdatasync
|
||||
from .platform_base import swidth, API_VERSION
|
||||
|
||||
if sys.platform.startswith('linux'): # pragma: linux only
|
||||
from .platform_linux import acl_get, acl_set
|
||||
from .platform_linux import set_flags, get_flags
|
||||
from .platform_linux import SyncFile
|
||||
from .platform_linux import swidth, API_VERSION
|
||||
elif sys.platform.startswith('freebsd'): # pragma: freebsd only
|
||||
from .platform_freebsd import acl_get, acl_set
|
||||
from .platform_freebsd import swidth, API_VERSION
|
||||
elif sys.platform == 'darwin': # pragma: darwin only
|
||||
from .platform_darwin import acl_get, acl_set
|
||||
from .platform_darwin import swidth, API_VERSION
|
|
@ -0,0 +1,24 @@
|
|||
import sys
|
||||
|
||||
"""
|
||||
Platform-specific APIs.
|
||||
|
||||
Public APIs are documented in platform.base.
|
||||
"""
|
||||
|
||||
from .base import acl_get, acl_set
|
||||
from .base import set_flags, get_flags
|
||||
from .base import SyncFile, sync_dir, fdatasync
|
||||
from .base import swidth, API_VERSION
|
||||
|
||||
if sys.platform.startswith('linux'): # pragma: linux only
|
||||
from .linux import acl_get, acl_set
|
||||
from .linux import set_flags, get_flags
|
||||
from .linux import SyncFile
|
||||
from .linux import swidth, API_VERSION
|
||||
elif sys.platform.startswith('freebsd'): # pragma: freebsd only
|
||||
from .freebsd import acl_get, acl_set
|
||||
from .freebsd import swidth, API_VERSION
|
||||
elif sys.platform == 'darwin': # pragma: darwin only
|
||||
from .darwin import acl_get, acl_set
|
||||
from .darwin import swidth, API_VERSION
|
|
@ -1,8 +1,8 @@
|
|||
import os
|
||||
|
||||
from .helpers import user2uid, group2gid
|
||||
from .helpers import safe_decode, safe_encode
|
||||
from .platform_posix import swidth
|
||||
from ..helpers import user2uid, group2gid
|
||||
from ..helpers import safe_decode, safe_encode
|
||||
from .posix import swidth
|
||||
|
||||
API_VERSION = 3
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
import os
|
||||
|
||||
from .helpers import posix_acl_use_stored_uid_gid
|
||||
from .helpers import safe_encode, safe_decode
|
||||
from .platform_posix import swidth
|
||||
from ..helpers import posix_acl_use_stored_uid_gid
|
||||
from ..helpers import safe_encode, safe_decode
|
||||
from .posix import swidth
|
||||
|
||||
API_VERSION = 3
|
||||
|
|
@ -3,11 +3,11 @@ import re
|
|||
import resource
|
||||
import stat
|
||||
|
||||
from .helpers import posix_acl_use_stored_uid_gid
|
||||
from .helpers import user2uid, group2gid
|
||||
from .helpers import safe_decode, safe_encode
|
||||
from .platform_base import SyncFile as BaseSyncFile
|
||||
from .platform_posix import swidth
|
||||
from ..helpers import posix_acl_use_stored_uid_gid
|
||||
from ..helpers import user2uid, group2gid
|
||||
from ..helpers import safe_decode, safe_encode
|
||||
from .base import SyncFile as BaseSyncFile
|
||||
from .posix import swidth
|
||||
|
||||
from libc cimport errno
|
||||
from libc.stdint cimport int64_t
|
|
@ -55,7 +55,7 @@ class Repository:
|
|||
established by a COMMIT.
|
||||
|
||||
Note that the COMMIT can't establish consistency by itself, but only manages to do so with proper support from
|
||||
the platform (including the hardware). See platform_base.SyncFile for details.
|
||||
the platform (including the hardware). See platform.base.SyncFile for details.
|
||||
|
||||
A PUT inserts a key-value pair. The value is stored in the log entry, hence the repository implements
|
||||
full data logging, meaning that all data is consistent, not just metadata (which is common in file systems).
|
||||
|
|
|
@ -102,7 +102,7 @@ class PlatformLinuxTestCase(BaseTestCase):
|
|||
self.assert_in(group_entry_numeric, acl_access_numeric)
|
||||
|
||||
def test_utils(self):
|
||||
from ..platform_linux import acl_use_local_uid_gid
|
||||
from ..platform.linux import acl_use_local_uid_gid
|
||||
self.assert_equal(acl_use_local_uid_gid(b'user:nonexistent1234:rw-:1234'), b'user:1234:rw-')
|
||||
self.assert_equal(acl_use_local_uid_gid(b'group:nonexistent1234:rw-:1234'), b'group:1234:rw-')
|
||||
self.assert_equal(acl_use_local_uid_gid(b'user:root:rw-:0'), b'user:0:rw-')
|
||||
|
|
Loading…
Reference in New Issue