Merge pull request #19973 from julienmalik/borg
borgbackup: initial commit
This commit is contained in:
commit
d115eec84f
10 changed files with 488 additions and 0 deletions
63
lang/python/borgbackup/Makefile
Normal file
63
lang/python/borgbackup/Makefile
Normal file
|
@ -0,0 +1,63 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=borgbackup
|
||||
PKG_VERSION:=1.2.2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=borgbackup
|
||||
PKG_HASH:=d730687443f1beb602b1d72bae36318f6f9654818fcdc50458540ec579e57260
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/borgbackup
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Deduplicated, encrypted, authenticated and compressed backups
|
||||
URL:=https://github.com/borgbackup/borg
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-msgpack \
|
||||
+python3-pyfuse3 \
|
||||
+libacl \
|
||||
+libopenssl \
|
||||
+liblz4 \
|
||||
+libzstd \
|
||||
+libxxhash
|
||||
endef
|
||||
|
||||
define Package/borgbackup/description
|
||||
BorgBackup (short: Borg) is a deduplicating backup program.
|
||||
Optionally, it supports compression and authenticated encryption.
|
||||
|
||||
The main goal of Borg is to provide an efficient and secure way to backup data.
|
||||
The data deduplication technique used makes Borg suitable for daily backups since only changes are stored. The authenticated encryption technique makes it suitable for backups to not fully trusted targets.
|
||||
endef
|
||||
|
||||
HOST_PYTHON3_PACKAGE_BUILD_DEPENDS:=Cython
|
||||
|
||||
# borg setup.py shall find these via pkg-config, but depends on python pkgconfig PyPi module
|
||||
# which quickly becomes a nightmare to build, since it build-depends on poetry which is not
|
||||
# available in the python package feed, and has a myriad of deps
|
||||
PYTHON3_PKG_SETUP_VARS:= \
|
||||
BORG_OPENSSL_PREFIX="/usr/lib" \
|
||||
BORG_LIBLZ4_PREFIX="/usr/lib" \
|
||||
BORG_LIBZSTD_PREFIX="/usr/lib" \
|
||||
BORG_LIBXXHASH_PREFIX="/usr/lib"
|
||||
|
||||
$(eval $(call Py3Package,borgbackup))
|
||||
$(eval $(call BuildPackage,borgbackup))
|
||||
$(eval $(call BuildPackage,borgbackup-src))
|
42
lang/python/python-async-generator/Makefile
Normal file
42
lang/python/python-async-generator/Makefile
Normal file
|
@ -0,0 +1,42 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-async-generator
|
||||
PKG_VERSION:=1.10
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=async_generator
|
||||
PKG_HASH:=6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144
|
||||
|
||||
PKG_LICENSE:=Apache-2.0|MIT
|
||||
PKG_LICENSE_FILES:=LICENSE.APACHE2|LICENSE.MIT
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-async-generator
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Async generators and context managers for Python 3.5+
|
||||
URL:=https://github.com/python-trio/async_generator
|
||||
DEPENDS:=+python3-light
|
||||
endef
|
||||
|
||||
define Package/python3-async-generator/description
|
||||
Python 3.6 added async generators. Python 3.7 adds some more tools to make them usable, like contextlib.asynccontextmanager.
|
||||
|
||||
This library gives you all that back to Python 3.5.
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-async-generator))
|
||||
$(eval $(call BuildPackage,python3-async-generator))
|
||||
$(eval $(call BuildPackage,python3-async-generator-src))
|
42
lang/python/python-exceptiongroup/Makefile
Normal file
42
lang/python/python-exceptiongroup/Makefile
Normal file
|
@ -0,0 +1,42 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-exceptiongroup
|
||||
PKG_VERSION:=1.0.4
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=exceptiongroup
|
||||
PKG_HASH:=bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec
|
||||
|
||||
PKG_LICENSE:=MIT,Python-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-exceptiongroup
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Backport of PEP 654 (exception groups)
|
||||
URL:=https://github.com/agronholm/exceptiongroup
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-attrs
|
||||
endef
|
||||
|
||||
define Package/python3-exceptiongroup/description
|
||||
This is a backport of the BaseExceptionGroup and ExceptionGroup classes from Python 3.11.
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-exceptiongroup))
|
||||
$(eval $(call BuildPackage,python3-exceptiongroup))
|
||||
$(eval $(call BuildPackage,python3-exceptiongroup-src))
|
|
@ -0,0 +1,31 @@
|
|||
From 99e590f2177148420f3556bbb0dc2e493e94e45f Mon Sep 17 00:00:00 2001
|
||||
From: Julien Malik <julien.malik@paraiso.me>
|
||||
Date: Sat, 26 Nov 2022 13:05:20 +0100
|
||||
Subject: [PATCH] add setup.py to avoid depending on flit for building
|
||||
|
||||
---
|
||||
setup.py | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
create mode 100644 setup.py
|
||||
|
||||
--- /dev/null
|
||||
+++ b/setup.py
|
||||
@@ -0,0 +1,18 @@
|
||||
+#!/usr/bin/env python
|
||||
+
|
||||
+import setuptools
|
||||
+
|
||||
+setuptools.setup(
|
||||
+ name='exceptiongroup',
|
||||
+ version='1.0.4',
|
||||
+ description='Backport of PEP 654 (exception groups)',
|
||||
+ author='Alex Grönholm',
|
||||
+ author_email='Alex Grönholm <alex.gronholm@nextday.fi>',
|
||||
+ url='https://github.com/agronholm/exceptiongroup',
|
||||
+ packages=['exceptiongroup'],
|
||||
+ package_data={'': ['*']},
|
||||
+ package_dir={'': 'src'},
|
||||
+ extras_require={'test': ['pytest >= 6']},
|
||||
+ python_requires='>=3.7',
|
||||
+)
|
||||
+
|
42
lang/python/python-outcome/Makefile
Normal file
42
lang/python/python-outcome/Makefile
Normal file
|
@ -0,0 +1,42 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-outcome
|
||||
PKG_VERSION:=1.2.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=outcome
|
||||
PKG_HASH:=6f82bd3de45da303cf1f771ecafa1633750a358436a8bb60e06a1ceb745d2672
|
||||
|
||||
PKG_LICENSE:=Apache-2.0|MIT
|
||||
PKG_LICENSE_FILES:=LICENSE.APACHE2|LICENSE.MIT
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-outcome
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Capture the outcome of Python function calls.
|
||||
URL:=https://outcome.readthedocs.io
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-attrs
|
||||
endef
|
||||
|
||||
define Package/python3-outcome/description
|
||||
Capture the outcome of Python function calls. Extracted from the Trio project.
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-outcome))
|
||||
$(eval $(call BuildPackage,python3-outcome))
|
||||
$(eval $(call BuildPackage,python3-outcome-src))
|
46
lang/python/python-pyfuse3/Makefile
Normal file
46
lang/python/python-pyfuse3/Makefile
Normal file
|
@ -0,0 +1,46 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-pyfuse3
|
||||
PKG_VERSION:=3.2.2
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=pyfuse3
|
||||
PKG_HASH:=aa4080913e6148bff1365d4aaacdc96767b87a1e178031fd9caeb5f0b9fc8cec
|
||||
|
||||
PKG_LICENSE:=LGPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-pyfuse3
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Python 3 bindings for libfuse 3 with async I/O support
|
||||
URL:=https://github.com/libfuse/pyfuse3
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-trio \
|
||||
+libfuse3
|
||||
endef
|
||||
|
||||
define Package/python3-pyfuse3/description
|
||||
pyfuse3 is a set of Python 3 bindings for libfuse 3.
|
||||
|
||||
It provides an asynchronous API compatible with Trio and asyncio,
|
||||
and enables you to easily write a full-featured Linux filesystem in Python.
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-pyfuse3))
|
||||
$(eval $(call BuildPackage,python3-pyfuse3))
|
||||
$(eval $(call BuildPackage,python3-pyfuse3-src))
|
40
lang/python/python-sniffio/Makefile
Normal file
40
lang/python/python-sniffio/Makefile
Normal file
|
@ -0,0 +1,40 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-sniffio
|
||||
PKG_VERSION:=1.3.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=sniffio
|
||||
PKG_HASH:=e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101
|
||||
|
||||
PKG_LICENSE:=Apache-2.0|MIT
|
||||
PKG_LICENSE_FILES:=LICENSE.APACHE2|LICENSE.MIT
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-sniffio
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Sniff out which async library your code is running under
|
||||
URL:=https://sniffio.readthedocs.io
|
||||
DEPENDS:=+python3-light
|
||||
endef
|
||||
|
||||
define Package/python3-sniffio/description
|
||||
This is a tiny package whose only purpose is to let you detect which async library your code is running under.
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-sniffio))
|
||||
$(eval $(call BuildPackage,python3-sniffio))
|
||||
$(eval $(call BuildPackage,python3-sniffio-src))
|
40
lang/python/python-sortedcontainers/Makefile
Normal file
40
lang/python/python-sortedcontainers/Makefile
Normal file
|
@ -0,0 +1,40 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-sortedcontainers
|
||||
PKG_VERSION:=2.4.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=sortedcontainers
|
||||
PKG_HASH:=25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-sortedcontainers
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=Sorted Containers -- Sorted List, Sorted Dict, Sorted Set
|
||||
URL:=https://grantjenks.com/docs/sortedcontainers
|
||||
DEPENDS:=+python3-light
|
||||
endef
|
||||
|
||||
define Package/python3-sortedcontainers/description
|
||||
Sorted Containers is an Apache2 licensed sorted collections library, written in pure-Python, and fast as C-extensions.
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-sortedcontainers))
|
||||
$(eval $(call BuildPackage,python3-sortedcontainers))
|
||||
$(eval $(call BuildPackage,python3-sortedcontainers-src))
|
49
lang/python/python-trio/Makefile
Normal file
49
lang/python/python-trio/Makefile
Normal file
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-trio
|
||||
PKG_VERSION:=0.22.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PYPI_NAME:=trio
|
||||
PKG_HASH:=ce68f1c5400a47b137c5a4de72c7c901bd4e7a24fbdebfe9b41de8c6c04eaacf
|
||||
|
||||
PKG_LICENSE:=Apache-2.0|MIT
|
||||
PKG_LICENSE_FILES:=LICENSE.APACHE2|LICENSE.MIT
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include ../pypi.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../python3-package.mk
|
||||
|
||||
define Package/python3-trio
|
||||
SECTION:=lang
|
||||
CATEGORY:=Languages
|
||||
SUBMENU:=Python
|
||||
TITLE:=A friendly Python library for async concurrency and I/O
|
||||
URL:=https://trio.readthedocs.io
|
||||
DEPENDS:= \
|
||||
+python3-light \
|
||||
+python3-attrs \
|
||||
+python3-async-generator \
|
||||
+python3-cffi \
|
||||
+python3-exceptiongroup \
|
||||
+python3-idna \
|
||||
+python3-outcome \
|
||||
+python3-sniffio \
|
||||
+python3-sortedcontainers
|
||||
endef
|
||||
|
||||
define Package/python3-trio/description
|
||||
The Trio project’s goal is to produce a production-quality, permissively licensed, async/await-native I/O library for Python
|
||||
endef
|
||||
|
||||
$(eval $(call Py3Package,python3-trio))
|
||||
$(eval $(call BuildPackage,python3-trio))
|
||||
$(eval $(call BuildPackage,python3-trio-src))
|
93
utils/xxhash/Makefile
Normal file
93
utils/xxhash/Makefile
Normal file
|
@ -0,0 +1,93 @@
|
|||
#
|
||||
# Copyright (C) 2022 Julien Malik <julien.malik@paraiso.me>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
# initial implementation kindly stolen from (and then updated) :
|
||||
# https://forum.openwrt.org/t/xxhash-makefile/118426
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=xxhash
|
||||
PKG_VERSION:=0.8.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/Cyan4973/xxHash/archive/v$(PKG_VERSION)
|
||||
PKG_HASH:=3bb6b7d6f30c591dd65aaaff1c8b7a5b94d81687998ca9400082c739a690436c
|
||||
|
||||
# The source for the library (xxhash.c and xxhash.h) is BSD
|
||||
# The source for the command line tool (xxhsum.c) is GPLv2+
|
||||
PKG_LICENSE:=BSD-2-Clause,GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE,cli/COPYING
|
||||
PKG_MAINTAINER:=Julien Malik <julien.malik@paraiso.me>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/xxhash/Default
|
||||
TITLE:=Extremely fast hash algorithm
|
||||
URL:=https://cyan4973.github.io/xxHash/
|
||||
endef
|
||||
|
||||
define Package/xxhash/Default/description
|
||||
xxHash is an Extremely fast Hash algorithm, running at RAM speed
|
||||
limits. It successfully completes the SMHasher test suite which
|
||||
evaluates collision, dispersion and randomness qualities of hash
|
||||
functions. Code is highly portable, and hashes are identical on all
|
||||
platforms (little / big endian).
|
||||
endef
|
||||
|
||||
define Package/libxxhash
|
||||
$(call Package/xxhash/Default)
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
endef
|
||||
|
||||
define Package/libxxhash/description
|
||||
$(call Package/xxhash/Default/description)
|
||||
|
||||
This package contains the shared library.
|
||||
endef
|
||||
|
||||
define Package/xxhash
|
||||
$(call Package/xxhash/Default)
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
DEPENDS:= +libxxhash
|
||||
endef
|
||||
|
||||
define Package/xxhash/description
|
||||
$(call Package/xxhash/Default/description)
|
||||
|
||||
This package contains the executables.
|
||||
endef
|
||||
|
||||
define Build/Prepare
|
||||
rm -rf $(PKG_BUILD_DIR)/
|
||||
mkdir -p $(PKG_BUILD_DIR)/
|
||||
$(TAR) -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip 1
|
||||
endef
|
||||
|
||||
define Build/InstallDev
|
||||
$(INSTALL_DIR) $(1)/usr/include
|
||||
$(CP) $(PKG_BUILD_DIR)/*.h $(1)/usr/include
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_BUILD_DIR)/libxxhash.so* $(1)/usr/lib
|
||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||
$(CP) $(PKG_BUILD_DIR)/libxxhash.pc.in $(1)/usr/lib/pkgconfig
|
||||
endef
|
||||
|
||||
define Package/libxxhash/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_BUILD_DIR)/libxxhash.so.* $(1)/usr/lib
|
||||
endef
|
||||
|
||||
define Package/xxhash/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/xxh*sum $(1)/usr/bin/
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,libxxhash))
|
||||
$(eval $(call BuildPackage,xxhash))
|
Loading…
Reference in a new issue