diff options
29 files changed, 660 insertions, 225 deletions
diff --git a/admin/sudo/Makefile b/admin/sudo/Makefile index ab130ec21..aaf4934f6 100644 --- a/admin/sudo/Makefile +++ b/admin/sudo/Makefile @@ -8,13 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sudo -PKG_VERSION:=1.8.26 +PKG_VERSION:=1.8.27 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.sudo.ws/dist -PKG_HASH:=40da219a6f0341ccb22d04a98988e27f09b831d2561b14c6154067a49ef3fee2 +PKG_HASH:=7beb68b94471ef56d8a1036dbcdc09a7b58a949a68ffce48b83f837dd33e2ec0 +PKG_MAINTAINER:=Gergely Kiss <mail.gery@gmail.com> PKG_LICENSE:=ISC PKG_LICENSE_FILES:=doc/LICENSE PKG_CPE_ID:=cpe:/a:todd_miller:sudo @@ -31,7 +32,6 @@ define Package/sudo CATEGORY:=Administration TITLE:=Delegate authority to run commands URL:=https://www.sudo.ws/ - MAINTAINER:=Gergely Kiss <mail.gery@gmail.com> endef define Package/sudo/description diff --git a/lang/perl-cgi/Makefile b/lang/perl-cgi/Makefile index 724374227..832e8b93f 100644 --- a/lang/perl-cgi/Makefile +++ b/lang/perl-cgi/Makefile @@ -8,14 +8,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=perl-cgi -PKG_VERSION:=4.40 +PKG_VERSION:=4.42 PKG_RELEASE:=1 -PKG_SOURCE_URL:=http://www.cpan.org/authors/id/L/LE/LEEJO +PKG_SOURCE_URL:=https://www.cpan.org/authors/id/L/LE/LEEJO PKG_SOURCE:=CGI-$(PKG_VERSION).tar.gz -PKG_HASH:=10efff3061b3c31a33b3cc59f955aef9c88d57d12dbac46389758cef92f24f56 +PKG_HASH:=11d308e7dad2312d65747a7fdec5d0c22024c28df5e882e829ca1553482024e7 -PKG_LICENSE:=GPL Artistic-2.0 +PKG_LICENSE:=Artistic-2.0 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>, \ Philip Prindeville <philipp@redfish-solutions.com> @@ -32,7 +32,7 @@ define Package/perl-cgi SECTION:=lang CATEGORY:=Languages TITLE:=Handle Common Gateway Interface requests and responses - URL:=http://search.cpan.org/dist/CGI/ + URL:=https://search.cpan.org/dist/CGI/ DEPENDS:=perl +perl-html-parser +perlbase-base +perlbase-config +perlbase-encode +perlbase-essential +perlbase-file +perlbase-if +perlbase-utf8 endef diff --git a/lang/python/README.md b/lang/python/README.md index 14d90c00c..fee9ee31a 100644 --- a/lang/python/README.md +++ b/lang/python/README.md @@ -209,13 +209,73 @@ The name `*-src` must be the Python package name; so for `python-lxml-src` a equ Some packages need custom build rules (because they do). -For building, if a user specifies a `PyBuild/Compile` & `Py3Build/Compile` rule, this will be used to build/compile the package, instead of the default one defined in `python[3]-package.mk`. +The default package build and install processes are defined in `python[3]-package.mk`. -For installing files on the target, 2 build rules are used: -* `PyPackage/$(1)/filespec` & `Py3Package/$(1)/filespec` which are Python library files relative to `/usr/lib/pythonX.Y` ; by default this is `/usr/lib/python$(PYTHON[3]_VERSION)/site-packages` ; most Python[3] packages generate files that get installed in this sub-folder -* `PyPackage/$(1)/install` & `Py3Package/$(1)/install` is similar to `Package/$(1)/install` ; these allow binary (or other files) to be installed on the target +#### Building -Both the 2 above rules generate a `Package/$(1)/install` build rule, which gets picked up by the build system. Both can be used together (they are not mutually exclusive), and provide a good enough flexibility for specifying Python[3] packages. +The default build process calls `setup.py install` inside the directory where the Python source package is extracted (`PKG_BUILD_DIR`). This "installs" the Python package to an intermediate location (`PKG_INSTALL_DIR`) where it is used by the default install process. + +There are several Makefile variables that can be used to customize this process (all optional): + +* `PYTHON_PKG_SETUP_DIR` / `PYTHON3_PKG_SETUP_DIR`: Path where `setup.py` can be found, relative to the package directory (`PKG_BUILD_DIR`). + Default: empty value (`setup.py` is in the package directory) +* `PYTHON_PKG_SETUP_VARS` / `PYTHON3_PKG_SETUP_VARS`: Additional environment variables to set for the call to `setup.py`. Should be in the form of `VARIABLE1=value VARIABLE2=value ...`. + Default: empty value +* `PYTHON_PKG_SETUP_GLOBAL_ARGS` / `PYTHON3_PKG_SETUP_GLOBAL_ARGS`: Additional command line arguments to pass to `setup.py`, before / in front of the `install` command. + Default: empty value +* `PYTHON_PKG_SETUP_ARGS` / `PYTHON3_PKG_SETUP_ARGS`: Additional command line arguments to pass to `setup.py`, after the `install` command. + Default: `--single-version-externally-managed` + +Conceptually, these variables are used in this way (using a Python 2 package as an example): + +``` +cd $(PKG_BUILD_DIR)/$(PYTHON_PKG_SETUP_DIR) +$(PYTHON_PKG_SETUP_VARS) python setup.py $(PYTHON_PKG_SETUP_GLOBAL_ARGS) install $(PYTHON_PKG_SETUP_ARGS) +``` + +The default build process can be completely overridden by defining custom `PyBuild/Compile` & `Py3Build/Compile` rules in the package Makefile. + +#### Installing + +The default install process copies some/all of the files from `PKG_INSTALL_DIR`, placed there by the build process, to a location passed to the install rule as the first argument (`$(1)`). The OpenWrt build system will then take those files and create the actual .ipk package archives. + +This default process uses 2 build rules: +* `PyPackage/<package>/filespec` & `Py3Package/<package>/filespec` which are Python library files relative to `/usr/lib/pythonX.Y` ; by default this is `/usr/lib/python$(PYTHON[3]_VERSION)/site-packages` (`PYTHON[3]_PKG_DIR`) ; most Python[3] packages generate files that get installed in this sub-folder +* `PyPackage/<package>/install` & `Py3Package/<package>/install` is similar to `Package/<package>/install` ; these allow binary (or other files) to be installed on the target + +Both the 2 above rules generate a `Package/<package>/install` build rule, which gets picked up by the build system. Both can be used together (they are not mutually exclusive), and provide a good enough flexibility for specifying Python[3] packages. + +The `PyPackage/<package>/filespec` & `Py3Package/<package>/filespec` rules contain one or more lines of the following format (whitespace added for clarity): + +``` +<one of: +-=> | <file/directory path> | <file permissions> +``` + +The initial character controls the action that will be taken: + +* `+`: Install the given path. If the path is a directory, all files and subdirectories inside are installed. + * If file permissions is specified (optional), then the file or directory (and all files and subdirectories) are assigned the given permissions; if omitted, then the file or directory retains its original permissions. +* `-`: Remove the given path. Useful when most of a directory should be installed except for a few files or subdirectories. + * File permissions is not used / ignored in this case. +* `=`: Assign the given file permissions to the given path. File permissions is required in this case. + +As mentioned, the default `PyPackage/<package>/filespec` & `Py3Package/<package>/filespec` install `PYTHON[3]_PKG_DIR`: + +``` +define PyPackage/python-example/filespec ++|$(PYTHON_PKG_DIR) +endef +``` + +If there is an `examples` directory and `test_*.py` files that can be omitted to save space, this can be specified as: + +``` +define PyPackage/python-example/filespec ++|$(PYTHON_PKG_DIR) +-|$(PYTHON_PKG_DIR)/examples +-|$(PYTHON_PKG_DIR)/test_*.py +endef +``` ### Host-side Python packages for build diff --git a/lang/python/python-cryptodome/Makefile b/lang/python/python-cryptodome/Makefile index 030fd9391..02e896662 100644 --- a/lang/python/python-cryptodome/Makefile +++ b/lang/python/python-cryptodome/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cryptodome -PKG_VERSION:=3.7.3 +PKG_VERSION:=3.8.1 PKG_RELEASE:=1 PKG_SOURCE:=pycryptodome-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/p/pycryptodome -PKG_HASH:=1a222250e43f3c659b4ebd5df3e11c2f112aab6aef58e38af55ef5678b9f0636 +PKG_HASH:=68ad0ce4a374577a26bb7f458575abe3c2a342818b5280de6e5738870b7761b3 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-cryptodome-$(PKG_VERSION) diff --git a/lang/python/python-cryptodome/patches/002-omit-tests.patch b/lang/python/python-cryptodome/patches/002-omit-tests.patch index 6f16b2175..cbaf70f25 100644 --- a/lang/python/python-cryptodome/patches/002-omit-tests.patch +++ b/lang/python/python-cryptodome/patches/002-omit-tests.patch @@ -1,50 +1,12 @@ --- a/setup.py +++ b/setup.py -@@ -245,16 +245,6 @@ - "Crypto.Signature", - "Crypto.Util", - "Crypto.Math", -- "Crypto.SelfTest", -- "Crypto.SelfTest.Cipher", -- "Crypto.SelfTest.Hash", -- "Crypto.SelfTest.IO", -- "Crypto.SelfTest.Protocol", -- "Crypto.SelfTest.PublicKey", -- "Crypto.SelfTest.Random", -- "Crypto.SelfTest.Signature", -- "Crypto.SelfTest.Util", -- "Crypto.SelfTest.Math", - ] - package_dir = {"Crypto": "lib/Crypto"} - package_data = { -@@ -268,30 +258,6 @@ - "Crypto.Signature" : [ "*.pyi" ], - "Crypto.IO" : [ "*.pyi" ], - "Crypto.Util" : [ "*.pyi" ], -- "Crypto.SelfTest.Cipher" : [ -- "test_vectors/AES/*.rsp", -- "test_vectors/TDES/*.rsp", -- "test_vectors/wycheproof/*.json", -- ], -- "Crypto.SelfTest.Hash" : [ -- "test_vectors/SHA1/*.rsp", -- "test_vectors/SHA2/*.rsp", -- "test_vectors/SHA3/*.txt", -- "test_vectors/keccak/*.txt", -- "test_vectors/BLAKE2s/*.txt", -- "test_vectors/BLAKE2b/*.txt", -- "test_vectors/wycheproof/*.json", -- ], -- "Crypto.SelfTest.Signature" : [ -- "test_vectors/DSA/*.*", -- "test_vectors/ECDSA/*.*", -- "test_vectors/PKCS1-v1.5/*.*", -- "test_vectors/PKCS1-PSS/*.*", -- "test_vectors/wycheproof/*.json", -- ], -- "Crypto.SelfTest.PublicKey" : [ -- "test_vectors/ECC/*.*", -- ], +@@ -293,6 +293,9 @@ package_data = { + ], } - system_bits = 8 * struct.calcsize("P") ++packages = [i for i in packages if not i.startswith('Crypto.SelfTest')] ++package_data = {k: v for k, v in package_data.items() if not k.startswith('Crypto.SelfTest')} ++ + ext_modules = [ + # Hash functions + Extension("Crypto.Hash._MD2", diff --git a/lang/python/python-cryptodomex/Makefile b/lang/python/python-cryptodomex/Makefile index 6691b7f04..ec7482043 100644 --- a/lang/python/python-cryptodomex/Makefile +++ b/lang/python/python-cryptodomex/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-cryptodomex -PKG_VERSION:=3.7.3 +PKG_VERSION:=3.8.1 PKG_RELEASE:=1 PKG_SOURCE:=pycryptodomex-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/p/pycryptodomex -PKG_HASH:=b70fe991564e178af02ccf89435a8f9e8d052707a7c4b95bf6027cb785da3175 +PKG_HASH:=9251b3f6254d4274caa21b79bd432bf07afa3567c6f02f11861659fb6245139a PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-cryptodomex-$(PKG_VERSION) diff --git a/lang/python/python-cryptodomex/patches/002-omit-tests.patch b/lang/python/python-cryptodomex/patches/002-omit-tests.patch index 23e264ae3..cbaf70f25 100644 --- a/lang/python/python-cryptodomex/patches/002-omit-tests.patch +++ b/lang/python/python-cryptodomex/patches/002-omit-tests.patch @@ -1,50 +1,12 @@ --- a/setup.py +++ b/setup.py -@@ -245,16 +245,6 @@ - "Crypto.Signature", - "Crypto.Util", - "Crypto.Math", -- "Crypto.SelfTest", -- "Crypto.SelfTest.Cipher", -- "Crypto.SelfTest.Hash", -- "Crypto.SelfTest.IO", -- "Crypto.SelfTest.Protocol", -- "Crypto.SelfTest.PublicKey", -- "Crypto.SelfTest.Random", -- "Crypto.SelfTest.Signature", -- "Crypto.SelfTest.Util", -- "Crypto.SelfTest.Math", - ] - package_dir = {"Crypto": "lib/Crypto"} - package_data = { -@@ -268,30 +258,6 @@ - "Crypto.Signature" : [ "*.pyi" ], - "Crypto.IO" : [ "*.pyi" ], - "Crypto.Util" : [ "*.pyi" ], -- "Crypto.SelfTest.Cipher" : [ -- "test_vectors/AES/*.*", -- "test_vectors/TDES/*.*", -- "test_vectors/wycheproof/*.*", -- ], -- "Crypto.SelfTest.Hash" : [ -- "test_vectors/SHA1/*.*", -- "test_vectors/SHA2/*.*", -- "test_vectors/SHA3/*.*", -- "test_vectors/keccak/*.*", -- "test_vectors/BLAKE2s/*.*", -- "test_vectors/BLAKE2b/*.*", -- "test_vectors/wycheproof/*.*", -- ], -- "Crypto.SelfTest.Signature" : [ -- "test_vectors/DSA/*.*", -- "test_vectors/ECDSA/*.*", -- "test_vectors/PKCS1-v1.5/*.*", -- "test_vectors/PKCS1-PSS/*.*", -- "test_vectors/wycheproof/*.*", -- ], -- "Crypto.SelfTest.PublicKey" : [ -- "test_vectors/ECC/*.*", -- ], +@@ -293,6 +293,9 @@ package_data = { + ], } - system_bits = 8 * struct.calcsize("P") ++packages = [i for i in packages if not i.startswith('Crypto.SelfTest')] ++package_data = {k: v for k, v in package_data.items() if not k.startswith('Crypto.SelfTest')} ++ + ext_modules = [ + # Hash functions + Extension("Crypto.Hash._MD2", diff --git a/lang/python/python-curl/Makefile b/lang/python/python-curl/Makefile index 3986b14ab..a5b4f54d4 100644 --- a/lang/python/python-curl/Makefile +++ b/lang/python/python-curl/Makefile @@ -6,40 +6,62 @@ include $(TOPDIR)/rules.mk PKG_NAME:=pycurl PKG_VERSION:=7.43.0.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 + +PKG_SOURCE:=pycurl-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/p/pycurl +PKG_HASH:=0f0cdfc7a92d4f2a5c44226162434e34f7d6967d3af416a6f1448649c09a25a4 + PKG_MAINTAINER:=Waldemar Konik <informatyk74@interia.pl> PKG_LICENSE:=LGPL-2.1 -PKG_LICENSE_FILE=COPYING-LGPL +PKG_LICENSE_FILES:=COPYING-LGPL -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://dl.bintray.com/pycurl/pycurl/ -PKG_HASH:=0f0cdfc7a92d4f2a5c44226162434e34f7d6967d3af416a6f1448649c09a25a4 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-curl-$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk include ../python-package.mk +include ../python3-package.mk -define Package/python-curl +PKG_UNPACK:=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE) + +define Package/python-curl/Default CATEGORY:=Languages SECTION:=lang SUBMENU:=Python TITLE:=Python module interface to the cURL library URL:=http://pycurl.io/ - DEPENDS:=+python +libcurl + DEPENDS:=+libcurl +endef + +define Package/python-curl +$(call Package/python-curl/Default) + DEPENDS+=+PACKAGE_python-curl:python + VARIANT:=python endef define Package/python-curl/description -Python module interface to the cURL library. +PycURL is a Python interface to libcurl, the multiprotocol file transfer library. endef -define Build/Compile - $(call Build/Compile/PyMod,,install --with-openssl --prefix=/usr --root=$(PKG_INSTALL_DIR)) +define Package/python3-curl +$(call Package/python-curl/Default) + DEPENDS+=+PACKAGE_python3-curl:python3 + VARIANT:=python3 endef -define Package/python-curl/install - $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR) - $(CP) \ - $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \ - $(1)$(PYTHON_PKG_DIR) +define Package/python3-curl/description +$(call Package/python-curl/description) +. +(Variant for Python3) endef +PYTHON_PKG_SETUP_ARGS:=--with-mbedtls +PYTHON3_PKG_SETUP_ARGS:=--with-mbedtls + +$(eval $(call PyPackage,python-curl)) $(eval $(call BuildPackage,python-curl)) +$(eval $(call BuildPackage,python-curl-src)) + +$(eval $(call Py3Package,python3-curl)) +$(eval $(call BuildPackage,python3-curl)) +$(eval $(call BuildPackage,python3-curl-src)) diff --git a/lang/python/python-curl/patches/0001-support-for-mbedTLS.patch b/lang/python/python-curl/patches/0001-support-for-mbedTLS.patch new file mode 100644 index 000000000..58112eeaf --- /dev/null +++ b/lang/python/python-curl/patches/0001-support-for-mbedTLS.patch @@ -0,0 +1,263 @@ +From bb7d7a803665005cc72ad68a388e9e937ff3d2f6 Mon Sep 17 00:00:00 2001 +From: Josef Schlehofer <pepe.schlehofer@gmail.com> +Date: Sat, 23 Mar 2019 21:02:17 +0100 +Subject: [PATCH] support for mbedTLS + +--- + INSTALL.rst | 4 ++-- + doc/thread-safety.rst | 2 +- + setup.py | 28 +++++++++++++++++++++------- + src/module.c | 6 ++++-- + src/pycurl.h | 7 ++++++- + src/threadsupport.c | 39 +++++++++++++++++++++++++++++++++++++++ + 6 files changed, 73 insertions(+), 13 deletions(-) + +diff --git a/INSTALL.rst b/INSTALL.rst +index 8ad8b4f..da70d25 100644 +--- a/INSTALL.rst ++++ b/INSTALL.rst +@@ -53,7 +53,7 @@ It will then fail at runtime as follows:: + + To fix this, you need to tell ``setup.py`` what SSL backend is used:: + +- python setup.py --with-[openssl|gnutls|nss] install ++ python setup.py --with-[openssl|gnutls|nss|mbedtls] install + + Note: as of PycURL 7.21.5, setup.py accepts ``--with-openssl`` option to + indicate that libcurl is built against OpenSSL. ``--with-ssl`` is an alias +@@ -85,7 +85,7 @@ environment variable:: + The same applies to the SSL backend, if you need to specify it (see the SSL + note above):: + +- export PYCURL_SSL_LIBRARY=[openssl|gnutls|nss] ++ export PYCURL_SSL_LIBRARY=[openssl|gnutls|nss|mbedtls] + easy_install pycurl + + +diff --git a/doc/thread-safety.rst b/doc/thread-safety.rst +index 5ba3f3e..ae2b9e5 100644 +--- a/doc/thread-safety.rst ++++ b/doc/thread-safety.rst +@@ -21,7 +21,7 @@ For Python programs using PycURL, this means: + Python code *outside of a libcurl callback for the PycURL object in question* + is unsafe. + +-PycURL handles the necessary SSL locks for OpenSSL/LibreSSL, GnuTLS and NSS. ++PycURL handles the necessary SSL locks for OpenSSL/LibreSSL, GnuTLS, NSS and mbedTLS. + + A special situation exists when libcurl uses the standard C library + name resolver (i.e., not threaded nor c-ares resolver). By default libcurl +diff --git a/setup.py b/setup.py +index e1e6925..5ab437f 100644 +--- a/setup.py ++++ b/setup.py +@@ -143,6 +143,7 @@ class ExtensionConfiguration(object): + '--with-ssl': self.using_openssl, + '--with-gnutls': self.using_gnutls, + '--with-nss': self.using_nss, ++ '--with-mbedtls': self.using_mbedtls, + } + + def detect_ssl_option(self): +@@ -152,20 +153,20 @@ class ExtensionConfiguration(object): + if option != other_option: + if scan_argv(self.argv, other_option) is not None: + raise ConfigurationError('Cannot give both %s and %s' % (option, other_option)) +- ++ + return option + + def detect_ssl_backend(self): + ssl_lib_detected = False +- ++ + if 'PYCURL_SSL_LIBRARY' in os.environ: + ssl_lib = os.environ['PYCURL_SSL_LIBRARY'] +- if ssl_lib in ['openssl', 'gnutls', 'nss']: ++ if ssl_lib in ['openssl', 'gnutls', 'nss', 'mbedtls']: + ssl_lib_detected = True + getattr(self, 'using_%s' % ssl_lib)() + else: + raise ConfigurationError('Invalid value "%s" for PYCURL_SSL_LIBRARY' % ssl_lib) +- ++ + option = self.detect_ssl_option() + if option: + ssl_lib_detected = True +@@ -194,6 +195,10 @@ class ExtensionConfiguration(object): + self.using_nss() + ssl_lib_detected = True + break ++ if arg[2:] == 'mbedtls': ++ self.using_nss() ++ ssl_lib_detected = True ++ break + + if not ssl_lib_detected and len(self.argv) == len(self.original_argv) \ + and not os.environ.get('PYCURL_CURL_CONFIG') \ +@@ -201,7 +206,7 @@ class ExtensionConfiguration(object): + # this path should only be taken when no options or + # configuration environment variables are given to setup.py + ssl_lib_detected = self.detect_ssl_lib_on_centos6() +- ++ + self.ssl_lib_detected = ssl_lib_detected + + def curl_config(self): +@@ -301,7 +306,7 @@ class ExtensionConfiguration(object): + if errtext: + msg += ":\n" + errtext + raise ConfigurationError(msg) +- ++ + # hack + self.sslhintbuf = sslhintbuf + +@@ -327,7 +332,7 @@ specify the SSL backend manually.''') + self.library_dirs.append(arg[2:]) + else: + self.extra_link_args.append(arg) +- ++ + if not self.libraries: + self.libraries.append("curl") + +@@ -354,6 +359,9 @@ specify the SSL backend manually.''') + elif ssl_version.startswith('NSS/'): + self.using_nss() + ssl_lib_detected = True ++ elif ssl_version.startswith('mbedTLS/'): ++ self.using_mbedtls() ++ ssl_lib_detected = 'mbedtls' + return ssl_lib_detected + + def detect_ssl_lib_on_centos6(self): +@@ -505,6 +513,11 @@ specify the SSL backend manually.''') + self.libraries.append('ssl3') + self.define_macros.append(('HAVE_CURL_SSL', 1)) + ++ def using_mbedtls(self): ++ self.define_macros.append(('HAVE_CURL_MBEDTLS', 1)) ++ self.libraries.append('mbedtls') ++ self.define_macros.append(('HAVE_CURL_SSL', 1)) ++ + def get_bdist_msi_version_hack(): + # workaround for distutils/msi version requirement per + # epydoc.sourceforge.net/stdlib/distutils.version.StrictVersion-class.html - +@@ -871,6 +884,7 @@ PycURL Unix options: + --with-ssl legacy alias for --with-openssl + --with-gnutls libcurl is linked against GnuTLS + --with-nss libcurl is linked against NSS ++ --with-mbedtls libcurl is linked against mbedTLS + ''' + + windows_help = '''\ +diff --git a/src/module.c b/src/module.c +index 2331ae8..7fdb25a 100644 +--- a/src/module.c ++++ b/src/module.c +@@ -328,7 +328,7 @@ initpycurl(void) + PyObject *collections_module = NULL; + PyObject *named_tuple = NULL; + PyObject *arglist = NULL; +- ++ + assert(Curl_Type.tp_weaklistoffset > 0); + assert(CurlMulti_Type.tp_weaklistoffset > 0); + assert(CurlShare_Type.tp_weaklistoffset > 0); +@@ -355,6 +355,8 @@ initpycurl(void) + runtime_ssl_lib = "gnutls"; + } else if (!strncmp(vi->ssl_version, "NSS/", 4)) { + runtime_ssl_lib = "nss"; ++ } else if (!strncmp(vi->ssl_version, "mbedTLS/", 2)) { ++ runtime_ssl_lib = "mbedtls"; + } else { + runtime_ssl_lib = "none/other"; + } +@@ -461,7 +463,7 @@ initpycurl(void) + /* constants for ioctl callback argument values */ + insint_c(d, "IOCMD_NOP", CURLIOCMD_NOP); + insint_c(d, "IOCMD_RESTARTREAD", CURLIOCMD_RESTARTREAD); +- ++ + /* opensocketfunction return value */ + insint_c(d, "SOCKET_BAD", CURL_SOCKET_BAD); + +diff --git a/src/pycurl.h b/src/pycurl.h +index 65290f7..2294cb8 100644 +--- a/src/pycurl.h ++++ b/src/pycurl.h +@@ -174,6 +174,11 @@ pycurl_inet_ntop (int family, void *addr, char *string, size_t string_size); + # define COMPILE_SSL_LIB "gnutls" + # elif defined(HAVE_CURL_NSS) + # define COMPILE_SSL_LIB "nss" ++# elif defined(HAVE_CURL_MBEDTLS) ++# include <mbedtls/ssl.h> ++# define PYCURL_NEED_SSL_TSL ++# define PYCURL_NEED_MBEDTLS_TSL ++# define COMPILE_SSL_LIB "mbedtls" + # else + # ifdef _MSC_VER + /* sigh */ +@@ -190,7 +195,7 @@ pycurl_inet_ntop (int family, void *addr, char *string, size_t string_size); + /* since we have no crypto callbacks for other ssl backends, + * no reason to require users match those */ + # define COMPILE_SSL_LIB "none/other" +-# endif /* HAVE_CURL_OPENSSL || HAVE_CURL_GNUTLS || HAVE_CURL_NSS */ ++# endif /* HAVE_CURL_OPENSSL || HAVE_CURL_GNUTLS || HAVE_CURL_NSS || HAVE_CURL_MBEDTLS */ + #else + # define COMPILE_SSL_LIB "none/other" + #endif /* HAVE_CURL_SSL */ +diff --git a/src/threadsupport.c b/src/threadsupport.c +index 6ca07f5..51abffd 100644 +--- a/src/threadsupport.c ++++ b/src/threadsupport.c +@@ -232,6 +232,45 @@ pycurl_ssl_cleanup(void) + } + #endif + ++/* mbedTLS */ ++ ++#ifdef PYCURL_NEED_MBEDTLS_TSL ++static int ++pycurl_ssl_mutex_create(void **m) ++{ ++ if ((*((PyThread_type_lock *) m) = PyThread_allocate_lock()) == NULL) { ++ return -1; ++ } else { ++ return 0; ++ } ++} ++ ++static int ++pycurl_ssl_mutex_destroy(void **m) ++{ ++ PyThread_free_lock(*((PyThread_type_lock *) m)); ++ return 0; ++} ++ ++static int ++pycurl_ssl_mutex_lock(void **m) ++{ ++ return !PyThread_acquire_lock(*((PyThread_type_lock *) m), 1); ++} ++ ++PYCURL_INTERNAL int ++pycurl_ssl_init(void) ++{ ++ return 0; ++} ++ ++PYCURL_INTERNAL void ++pycurl_ssl_cleanup(void) ++{ ++ return; ++} ++#endif ++ + /************************************************************************* + // CurlShareObject + **************************************************************************/ +-- +2.17.0.windows.1 + diff --git a/lang/python/python-voluptuous-serialize/Makefile b/lang/python/python-voluptuous-serialize/Makefile index 401ed25a3..d29db7e67 100644 --- a/lang/python/python-voluptuous-serialize/Makefile +++ b/lang/python/python-voluptuous-serialize/Makefile @@ -9,9 +9,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=voluptuous-serialize PKG_VERSION:=2.1.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 -PKG_SOURCE:=voluptuous-serialize-$(PKG_VERSION).tar.gz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/v/voluptuous-serialize/ PKG_HASH:=d30fef4f1aba251414ec0b315df81a06da7bf35201dcfb1f6db5253d738a154f @@ -28,7 +28,9 @@ define Package/python3-voluptuous-serialize SUBMENU:=Python TITLE:=Python Voluptuous Serialize URL:=https://github.com/balloob/voluptuous-serialize - DEPENDS:=+python3-light + DEPENDS:= \ + +python3-light \ + +python3-voluptuous VARIANT:=python3 endef diff --git a/lang/python/python-yaml/Makefile b/lang/python/python-yaml/Makefile index 4a4245bb2..ed568ca96 100644 --- a/lang/python/python-yaml/Makefile +++ b/lang/python/python-yaml/Makefile @@ -8,59 +8,68 @@ include $(TOPDIR)/rules.mk PKG_NAME:=PyYAML -PKG_VERSION:=3.13 +PKG_VERSION:=5.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://pypi.python.org/packages/source/P/PyYAML -PKG_HASH:=3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf +PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/P/PyYAML +PKG_HASH:=436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95 +PKG_MAINTAINER:=Josef Schlehofer <josef.schlehofer@nic.cz> PKG_LICENSE:=MIT -PKG_LICENSE_FILES:=COPYING -PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org> +PKG_LICENSE_FILES:=LICENSE +PKG_CPE_ID:=cpe:/a:pyyaml_project:pyyaml PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)-$(PKG_NAME)-$(PKG_VERSION) -PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE) include $(INCLUDE_DIR)/package.mk include ../python-package.mk include ../python3-package.mk +PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE) + define Package/python-yaml/Default - SUBMENU:=Python SECTION:=lang + SUBMENU:=Python CATEGORY:=Languages - URL:=https://pyyaml.org/wiki/PyYAML + TITLE:=YAML parser and emitter for Python + URL:=https://github.com/yaml/pyyaml DEPENDS:=+libyaml endef define Package/python-yaml $(call Package/python-yaml/Default) - TITLE:=YAML parser and emitter for Python - DEPENDS+=+PACKAGE_python-yaml:python-light +PACKAGE_python-yaml:python-codecs + DEPENDS+= \ + +PACKAGE_python-yaml:python-light \ + +PACKAGE_python-yaml:python-codecs VARIANT:=python endef define Package/python3-yaml $(call Package/python-yaml/Default) - TITLE:=YAML parser and emitter for Python3 DEPENDS+=+PACKAGE_python3-yaml:python3-light VARIANT:=python3 endef -define PyBuild/Compile - $(call Build/Compile/PyMod,,\ - --with-libyaml install --prefix="$(PKG_INSTALL_DIR)/usr" \ - ) +define Package/python-yaml/description +PyYAML is a YAML parser and emitter for the Python programming language. endef -define Py3Build/Compile - $(call Build/Compile/Py3Mod,,\ - --with-libyaml install --prefix="$(PKG_INSTALL_DIR)/usr" \ - ) +define Package/python3-yaml/description +$(call Package/python-yaml/description) +. +(Variant for Python3) endef +PYTHON_PKG_SETUP_GLOBAL_ARGS:=--with-libyaml +PYTHON_PKG_SETUP_ARGS:= +PYTHON3_PKG_SETUP_GLOBAL_ARGS:=--with-libyaml +PYTHON3_PKG_SETUP_ARGS:= + $(eval $(call PyPackage,python-yaml)) $(eval $(call BuildPackage,python-yaml)) +$(eval $(call BuildPackage,python-yaml-src)) + $(eval $(call Py3Package,python3-yaml)) $(eval $(call BuildPackage,python3-yaml)) +$(eval $(call BuildPackage,python3-yaml-src)) diff --git a/libs/libstrophe/Makefile b/libs/libstrophe/Makefile index 091835f33..ffb99d0b6 100644 --- a/libs/libstrophe/Makefile +++ b/libs/libstrophe/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libstrophe PKG_VERSION:=0.9.2 -PKG_RELEASE=1 +PKG_RELEASE=2 PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=COPYING @@ -56,7 +56,11 @@ define Build/InstallDev $(CP) $(PKG_INSTALL_DIR)/usr/include/ $(1)/usr/ $(INSTALL_DIR) $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(CP) $(PKG_INSTALL_DIR)/usr/lib/libstrophe.{la,a,so*} $(1)/usr/lib/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libstrophe.pc \ + $(1)/usr/lib/pkgconfig/ endef define Package/libstrophe/install diff --git a/mail/dovecot/Makefile b/mail/dovecot/Makefile index 1a0896244..71768f0ce 100644 --- a/mail/dovecot/Makefile +++ b/mail/dovecot/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dovecot -PKG_VERSION:=2.3.5 +PKG_VERSION:=2.3.5.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.dovecot.org/releases/2.3 -PKG_HASH:=bfe112ec6d11f7d6c6f7f0440e3b6e2c840c15cec1e99466b5495765d54aaaff +PKG_HASH:=d78f9d479e3b2caa808160f86bfec1c9c7b46344d8b14b88f5fa9bbbf8c7c33f PKG_LICENSE:=LGPL-2.1 MIT BSD-3-Clause Unique PKG_LICENSE_FILES:=COPYING COPYING.LGPL COPYING.MIT PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com> diff --git a/multimedia/youtube-dl/Makefile b/multimedia/youtube-dl/Makefile index 433c3b92f..05289b83d 100644 --- a/multimedia/youtube-dl/Makefile +++ b/multimedia/youtube-dl/Makefile @@ -8,46 +8,47 @@ include $(TOPDIR)/rules.mk PKG_NAME:=youtube-dl -PKG_VERSION:=2019.03.01 +PKG_VERSION:=2019.4.7 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/rg3/youtube-dl/tar.gz/$(PKG_VERSION)? -PKG_HASH:=65a4ed3588ff67c69b4b3a507acefb29225d5051ffe606688778cfaf8efd79a5 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=youtube_dl-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://files.pythonhosted.org/packages/source/y/youtube_dl/ +PKG_HASH:=d8250c9fedea3bcf5c2df62012e9814c96db53540a2842b8f8345885adfd0a85 + +PKG_BUILD_DIR:=$(BUILD_DIR)/youtube_dl-$(PKG_VERSION) PKG_LICENSE:=Unlicense PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Adrian Panella <ianchi74@outlook.com>, Josef Schlehofer <pepe.schlehofer@gmail.com> -PKG_BUILD_DEPENDS:=python/host zip/host - include $(INCLUDE_DIR)/package.mk +include ../../lang/python/python3-package.mk -define Package/youtube-dl +define Package/youtube-dl/Default SECTION:=multimedia CATEGORY:=Multimedia - TITLE:=utility to download videos from YouTube.com - DEPENDS:=+python-openssl +python-email +python-xml +python-codecs +python-ctypes +ca-certificates - URL:=https://youtube-dl.org + TITLE:=Utility to download videos from YouTube.com + DEPENDS:=+ca-certificates + URL:=https://yt-dl.org endef define Package/youtube-dl/description youtube-dl is a small command-line program to download videos - from YouTube.com and a few more sites. - It requires the Python interpreter. + from YouTube.com and other video sites. + It requires the Python3 interpreter. endef -define Package/youtube-dl/install - $(INSTALL_DIR) $(1)/usr/bin - - python -m compileall $(PKG_BUILD_DIR)/youtube_dl/ - cd $(PKG_BUILD_DIR) && zip --quiet youtube-dl-c.zip youtube_dl/*.pyc youtube_dl/*/*.pyc - cd $(PKG_BUILD_DIR) && zip --quiet --junk-paths youtube-dl-c.zip youtube_dl/__main__.pyc - echo '#!/usr/bin/env python' > $(PKG_BUILD_DIR)/youtube-dl-c - cat $(PKG_BUILD_DIR)/youtube-dl-c.zip >> $(PKG_BUILD_DIR)/youtube-dl-c - - $(INSTALL_BIN) -T $(PKG_BUILD_DIR)/youtube-dl-c $(1)/usr/bin/youtube-dl +define Package/youtube-dl +$(call Package/youtube-dl/Default) + DEPENDS+= \ + +PACKAGE_youtube-dl:python3 \ + +PACKAGE_youtube-dl:python3-email \ + +PACKAGE_youtube-dl:python3-xml \ + +PACKAGE_youtube-dl:python3-codecs \ + +PACKAGE_youtube-dl:python3-ctypes + VARIANT:=python3 endef +$(eval $(call Py3Package,youtube-dl)) $(eval $(call BuildPackage,youtube-dl)) +$(eval $(call BuildPackage,youtube-dl-src)) diff --git a/multimedia/youtube-dl/patches/dont-use-pandoc.patch b/multimedia/youtube-dl/patches/dont-use-pandoc.patch deleted file mode 100644 index 51b3dd588..000000000 --- a/multimedia/youtube-dl/patches/dont-use-pandoc.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/Makefile b/Makefile -index 4a62f44..fee93e8 100644 ---- a/Makefile -+++ b/Makefile -@@ -85,12 +85,12 @@ supportedsites: - $(PYTHON) devscripts/make_supportedsites.py docs/supportedsites.md - - README.txt: README.md -- pandoc -f $(MARKDOWN) -t plain README.md -o README.txt -+# pandoc -f $(MARKDOWN) -t plain README.md -o README.txt - - youtube-dl.1: README.md -- $(PYTHON) devscripts/prepare_manpage.py youtube-dl.1.temp.md -- pandoc -s -f $(MARKDOWN) -t man youtube-dl.1.temp.md -o youtube-dl.1 -- rm -f youtube-dl.1.temp.md -+# $(PYTHON) devscripts/prepare_manpage.py youtube-dl.1.temp.md -+# pandoc -s -f $(MARKDOWN) -t man youtube-dl.1.temp.md -o youtube-dl.1 -+# rm -f youtube-dl.1.temp.md - - youtube-dl.bash-completion: youtube_dl/*.py youtube_dl/*/*.py devscripts/bash-completion.in - $(PYTHON) devscripts/bash-completion.py diff --git a/net/clamav/Makefile b/net/clamav/Makefile index ba45fff84..b8d0625a9 100644 --- a/net/clamav/Makefile +++ b/net/clamav/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=clamav -PKG_VERSION:=0.101.1 -PKG_RELEASE:=2 +PKG_VERSION:=0.101.2 +PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr> \ @@ -18,7 +18,7 @@ PKG_CPE_ID:=cpe:/a:clamav:clamav PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.clamav.net/downloads/production/ -PKG_HASH:=fa368fa9b2f57638696150c7d108b06dec284e8d8e3b8e702c784947c01fb806 +PKG_HASH:=0a12ebdf6ff7a74c0bde2bdc2b55cae33449e6dd953ec90824a9e01291277634 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 diff --git a/net/fping/Makefile b/net/fping/Makefile index d3bdedde0..34bfdd3be 100644 --- a/net/fping/Makefile +++ b/net/fping/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fping -PKG_VERSION:=4.1 +PKG_VERSION:=4.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=http://fping.org/dist/ -PKG_HASH:=2733e2a18cc2b5b935c4e3b5b84ccf2080c38043f1864d7c43326e8048ddab73 +PKG_SOURCE_URL:=https://fping.org/dist/ +PKG_HASH:=7d339674b6a95aae1d8ad487ff5056fd95b474c3650938268f6a905c3771b64a PKG_MAINTAINER:=Nikil Mehta <nikil.mehta@gmail.com> PKG_LICENSE:=BSD-4-Clause @@ -27,7 +27,7 @@ define Package/fping SECTION:=net CATEGORY:=Network TITLE:=sends ICMP ECHO_REQUEST packets to network hosts - URL:=http://fping.org/ + URL:=https://fping.org/ endef diff --git a/net/kea/Makefile b/net/kea/Makefile index e66aedd62..36c035db9 100644 --- a/net/kea/Makefile +++ b/net/kea/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=kea PKG_VERSION:=1.5.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_MAINTAINER:=BangLang Huang<banglang.huang@foxmail.com>, Rosy Song<rosysong@rosinson.com> PKG_BUILD_DEPENDS:=boost log4cplus kea/host HOST_BUILD_DEPENDS:=boost boost/host log4cplus/host @@ -99,6 +99,7 @@ endef CONFIGURE_ARGS += \ --with-log4cplus="$(STAGING_DIR)/usr" \ + --with-openssl="$(STAGING_DIR)/usr" \ $(if $(CONFIG_PACKAGE_kea-perfdhcp),--enable-perfdhcp,) CONFIGURE_VARS += \ @@ -108,12 +109,14 @@ HOST_CONFIGURE_ARGS += \ --enable-static-link \ --enable-boost-headers-only \ --with-log4cplus="$(STAGING_DIR_HOSTPKG)" \ - --with-boost-include="$(STAGING_DIR)/usr/include" + --with-boost-include="$(STAGING_DIR)/usr/include" \ + --without-pic HOST_LDFLAGS += \ -Wl,--gc-sections,--as-needed TARGET_CXXFLAGS += \ + $(FPIC) \ -fdata-sections \ -ffunction-sections diff --git a/net/kea/patches/001-fix-cross-compile.patch b/net/kea/patches/001-fix-cross-compile.patch index 40a47501a..d3a1521a9 100644 --- a/net/kea/patches/001-fix-cross-compile.patch +++ b/net/kea/patches/001-fix-cross-compile.patch @@ -1,6 +1,6 @@ --- a/configure.ac +++ b/configure.ac -@@ -594,10 +594,10 @@ AC_TRY_COMPILE([ +@@ -580,10 +580,10 @@ AC_TRY_COMPILE([ AC_MSG_RESULT(no)) AC_MSG_CHECKING(for usuable C++11 regex) diff --git a/net/openssh/Makefile b/net/openssh/Makefile index d71cee690..39b02758f 100644 --- a/net/openssh/Makefile +++ b/net/openssh/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openssh PKG_VERSION:=7.9p1 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \ @@ -180,7 +180,7 @@ CONFIGURE_ARGS += \ --without-pam endif -ifeq ($(CONFIG_OPENSSL_ENGINE_CRYPTO),y) +ifeq ($(CONFIG_OPENSSL_ENGINE),y) CONFIGURE_ARGS+= \ --with-ssl-engine endif diff --git a/net/snort/files/snort.init b/net/snort/files/snort.init index c3d962902..7905c6ff3 100644 --- a/net/snort/files/snort.init +++ b/net/snort/files/snort.init @@ -8,26 +8,29 @@ USE_PROCD=1 PROG=/usr/bin/snort validate_snort_section() { - uci_validate_section snort snort "${1}" \ + uci_load_validate snort snort "$1" "$2" \ 'config_file:string' \ 'interface:string' } -start_service() { - local config_file interface - - validate_snort_section snort || { +start_snort_instance() { + [ "$2" = 0 ] || { echo "validation failed" return 1 } procd_open_instance procd_set_param command $PROG "-q" "--daq-dir" "/usr/lib/daq/" "-i" "$interface" "-c" "$config_file" "-s" "-N" - procd_set_param file $CONFIGFILE + procd_set_param file $config_file procd_set_param respawn procd_close_instance } +start_service() +{ + validate_snort_section snort start_snort_instance +} + stop_service() { service_stop ${PROG} diff --git a/net/snort3/Makefile b/net/snort3/Makefile index f5f3d8807..34efb7a9d 100644 --- a/net/snort3/Makefile +++ b/net/snort3/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=snort3 PKG_VERSION:=3.0.0-beta PKG_VERSION_SHORT:=3.0.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org> @@ -50,6 +50,7 @@ CMAKE_OPTIONS += \ -DMAKE_HTML_DOC:BOOL=NO \ -DMAKE_PDF_DOC:BOOL=NO \ -DMAKE_TEXT_DOC:BOOL=NO \ + -DHAVE_LZMA=OFF TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/tirpc TARGET_LDFLAGS += -ltirpc diff --git a/utils/powertop/Makefile b/utils/powertop/Makefile new file mode 100644 index 000000000..430ce693b --- /dev/null +++ b/utils/powertop/Makefile @@ -0,0 +1,46 @@ +# +# Copyright (C) 2019 Lucian Cristain <lucian.cristian@gmail.com> +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=powertop +PKG_VERSION:=2.10 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://01.org/sites/default/files/downloads/ +PKG_HASH:=d3b7459eaba7d01c8841dd33a3b4d369416c01e9bd8951b0d88234cf18fe4a75 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-v$(PKG_VERSION) +PKG_MAINTAINER:=Lucian Cristain <lucian.cristian@gmail.com> +PKG_LICENSE:=GPL-2.0 + +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/powertop + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+libpci +libncursesw +libnl-genl +libstdcpp + TITLE:=Power consumption monitor + URL:=https://01.org/powertop +endef + +define Package/powertop/description + PowerTOP is a Linux tool to diagnose issues with power consumption + and power management. +endef + +define Package/powertop/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/powertop \ + $(1)/usr/sbin/ +endef + +$(eval $(call BuildPackage,powertop)) diff --git a/utils/powertop/patches/001-musl-fix-headers.patch b/utils/powertop/patches/001-musl-fix-headers.patch new file mode 100644 index 000000000..9839d15bf --- /dev/null +++ b/utils/powertop/patches/001-musl-fix-headers.patch @@ -0,0 +1,22 @@ +--- ./src/devices/devfreq.h.orig ++++ ./src/devices/devfreq.h +@@ -25,6 +25,7 @@ + #ifndef _INCLUDE_GUARD_DEVFREQ_H + #define _INCLUDE_GUARD_DEVFREQ_H + ++#include <sys/time.h> + #include "device.h" + #include "../parameters/parameters.h" + +diff --git a/src/perf/perf.h b/src/perf/perf.h +index ee072ae06d24..932588a684f9 100644 +--- a/src/perf/perf.h ++++ b/src/perf/perf.h +@@ -26,6 +26,7 @@ + #define _INCLUDE_GUARD_PERF_H_ + + #include <iostream> ++#include <stdio.h> + + + extern "C" { diff --git a/utils/powertop/patches/002-strerror_r.patch b/utils/powertop/patches/002-strerror_r.patch new file mode 100644 index 000000000..cf8659e1e --- /dev/null +++ b/utils/powertop/patches/002-strerror_r.patch @@ -0,0 +1,20 @@ +--- traceevent/event-parse.c.orig ++++ ./traceevent/event-parse.c +@@ -5121,12 +5121,17 @@ + const char *msg; + + if (errnum >= 0) { ++#if defined(__GLIBC__) + msg = strerror_r(errnum, buf, buflen); + if (msg != buf) { + size_t len = strlen(msg); + memcpy(buf, msg, min(buflen - 1, len)); + *(buf + min(buflen - 1, len)) = '\0'; + } ++#else ++ if (strerror_r(errnum, buf, buflen)) ++ snprintf(buf, buflen, "errnum %i", errnum); ++#endif + return 0; + } + diff --git a/utils/powertop/patches/010-src-main-Add-missing-pthread-header.patch b/utils/powertop/patches/010-src-main-Add-missing-pthread-header.patch new file mode 100644 index 000000000..e01f0d540 --- /dev/null +++ b/utils/powertop/patches/010-src-main-Add-missing-pthread-header.patch @@ -0,0 +1,38 @@ +From 7235a786ea30ae5ca7c1b3458ef5b2388c08dfd9 Mon Sep 17 00:00:00 2001 +From: Rosen Penev <rosenp@gmail.com> +Date: Thu, 28 Mar 2019 18:44:27 -0700 +Subject: [PATCH] src/main: Add missing pthread header + +Otherwise compilation can fail with: + +main.cpp: In function 'void one_measurement(int, int, char*)': +main.cpp:226:3: error: 'pthread_t' was not declared in this scope + pthread_t thread = 0UL; + ^~~~~~~~~ +main.cpp:226:3: note: suggested alternative: 'pread' + pthread_t thread = 0UL; + ^~~~~~~~~ + pread + +et al. + +Signed-off-by: Rosen Penev <rosenp@gmail.com> +--- + src/main.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/main.cpp b/src/main.cpp +index cbb7a4e..75d4202 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -39,6 +39,7 @@ + #include <locale.h> + #include <sys/resource.h> + #include <limits.h> ++#include <pthread.h> + + #include "cpu/cpu.h" + #include "process/process.h" +-- +2.17.1 + diff --git a/utils/powertop/patches/020-intel_cpus.cpp-Change-open-parameter-to-const-char.patch b/utils/powertop/patches/020-intel_cpus.cpp-Change-open-parameter-to-const-char.patch new file mode 100644 index 000000000..46d01703f --- /dev/null +++ b/utils/powertop/patches/020-intel_cpus.cpp-Change-open-parameter-to-const-char.patch @@ -0,0 +1,30 @@ +From 8cdf846922ffb3e0d2a828be473fdf9c45a56e7c Mon Sep 17 00:00:00 2001 +From: Rosen Penev <rosenp@gmail.com> +Date: Sat, 30 Mar 2019 20:19:17 -0700 +Subject: [PATCH] intel_cpus.cpp: Change open parameter to const char * + +ifstream::open takes std::string starting with C++11, not before. + +This fixes compilation with uClibc++ and potentially other older libraries + +Signed-off-by: Rosen Penev <rosenp@gmail.com> +--- + src/cpu/intel_cpus.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cpu/intel_cpus.cpp b/src/cpu/intel_cpus.cpp +index 0030dba..4dffadc 100644 +--- a/src/cpu/intel_cpus.cpp ++++ b/src/cpu/intel_cpus.cpp +@@ -92,7 +92,7 @@ int is_supported_intel_cpu(int model, int cpu) + + int is_intel_pstate_driver_loaded() + { +- const string filename("/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver"); ++ const char *filename = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver"; + const string intel_pstate("intel_pstate"); + char line[32] = { '\0' }; + ifstream file; +-- +2.17.1 + diff --git a/utils/unrar/Makefile b/utils/unrar/Makefile index 1ae48ed4f..528a585f5 100644 --- a/utils/unrar/Makefile +++ b/utils/unrar/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=unrar -PKG_VERSION:=5.6.8 +PKG_VERSION:=5.7.3 PKG_RELEASE:=1 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://www.rarlab.com/rar -PKG_HASH:=a4cc0ac14a354827751912d2af4a0a09e2c2129df5766576fa7e151791dd3dff +PKG_HASH:=40e856b78374f258d8a1f5f02c02f828c5392a0118c9300fd169a300b520a444 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>, \ Ted Hess <thess@kitschensync.net> @@ -25,6 +25,12 @@ PKG_INSTALL:=1 include $(INCLUDE_DIR)/uclibc++.mk include $(INCLUDE_DIR)/package.mk +ifeq ($(CONFIG_USE_UCLIBCXX),y) +TARGET_LDFLAGS +=-nodefaultlibs +endif +TARGET_CXXFLAGS +=-fno-rtti -flto +TARGET_LDFLAGS +=$(FPIC) -Wl,--gc-sections + define Package/unrar/Default TITLE:=UnRAR SUBMENU:=Compression @@ -58,9 +64,6 @@ define Package/libunrar/description archives endef -MAKE_FLAGS += \ - LDFLAGS="$(TARGET_LDFLAGS) -lpthread" - ifeq ($(BUILD_VARIANT),lib) define Build/Compile $(call Build/Compile/Default,lib) diff --git a/utils/unrar/patches/100-makefile_fixes.patch b/utils/unrar/patches/100-makefile_fixes.patch index 972961220..65d06efc7 100644 --- a/utils/unrar/patches/100-makefile_fixes.patch +++ b/utils/unrar/patches/100-makefile_fixes.patch @@ -1,22 +1,27 @@ --- a/makefile +++ b/makefile -@@ -2,13 +2,13 @@ +@@ -2,14 +2,14 @@ # Makefile for UNIX - unrar # Linux using GCC -CXX=c++ -CXXFLAGS=-O2 -Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else -+#CXX=c++ -+#CXXFLAGS=-O2 -Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else - LIBFLAGS=-fPIC +-LIBFLAGS=-fPIC ++CXX?=c++ ++CXXFLAGS?=-O2 -Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else ++LIBFLAGS?=-fPIC DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP - STRIP=strip - AR=ar +-STRIP=strip +-AR=ar -LDFLAGS=-pthread -+LDFLAGS=-lpthread - DESTDIR=/usr +-DESTDIR=/usr ++STRIP?=strip ++AR?=ar ++LDFLAGS?=-lpthread ++DESTDIR?=/usr # Linux using LCC + #CXX=lcc @@ -166,7 +166,7 @@ uninstall-unrar: rm -f $(DESTDIR)/bin/unrar |