This is an automated email from the ASF dual-hosted git repository. okislal pushed a commit to branch madlib2-master in repository https://gitbox.apache.org/repos/asf/madlib.git
commit 70c548c102b1e5d9013294284affcde00a6412fb Author: Orhan Kislal <[email protected]> AuthorDate: Tue Sep 5 10:19:59 2023 +0300 Remove PyXB mentions from code, docs and licenses --- README.md | 3 +- ReadMe_Build.txt | 6 - deploy/PGXN/ReadMe.txt | 1 - licenses/third_party/PyXB_v1.2.6.txt | 268 ----------------------------------- src/CMakeLists.txt | 60 -------- src/patch/CMakeLists.txt | 2 - src/patch/PyXB.sh | 223 ----------------------------- 7 files changed, 1 insertion(+), 562 deletions(-) diff --git a/README.md b/README.md index a48a3b7c..1d988665 100644 --- a/README.md +++ b/README.md @@ -127,8 +127,7 @@ MADlib incorporates software from the following third-party components. Bundled Downloaded at build time (or supplied as build dependencies): 6. [`Boost 1.61.0 (or newer)`](http://www.boost.org/) "provides peer-reviewed portable C++ source libraries" -7. [`PyXB 1.2.6`](http://pyxb.sourceforge.net/) "Python library for XML Schema Bindings" -8. [`Eigen 3.2.2`](http://eigen.tuxfamily.org/index.php?title=Main_Page) "C++ template library for linear algebra" +7. [`Eigen 3.2.2`](http://eigen.tuxfamily.org/index.php?title=Main_Page) "C++ template library for linear algebra" Licensing ========== diff --git a/ReadMe_Build.txt b/ReadMe_Build.txt index 583bd400..592d3a41 100644 --- a/ReadMe_Build.txt +++ b/ReadMe_Build.txt @@ -167,12 +167,6 @@ root directory) for more options, after having run `cmake` the first time. with `-DEIGEN_TAR_SOURCE=/path/to/eigen_x.tar.gz`, in which case this tarball is used. -- `PYXB_TAR_SOURCE` (default: *empty*) - - PyXB is downloaded automatically, unless you call `./configure` - with `-DPYXB_TAR_SOURCE=/path/to/pyxb_x.tar.gz`, in which case - this tarball is used. - - `CREATE_RPM_FOR_UBUNTU` (default: *empty*) By default, we create a .deb madlib installer on Ubuntu. If this diff --git a/deploy/PGXN/ReadMe.txt b/deploy/PGXN/ReadMe.txt index 3b1db376..78462bf4 100644 --- a/deploy/PGXN/ReadMe.txt +++ b/deploy/PGXN/ReadMe.txt @@ -39,7 +39,6 @@ Downloaded at build time: http://www.boost.org/ - Eigen 3.2 "is a C++ template library for linear algebra" http://eigen.tuxfamily.org/index.php?title=Main_Page -- PyXB 1.2.4 "Python library for XML Schema Bindings" License information regarding MADlib and included third-party libraries can be found inside the 'licenses' directory. diff --git a/licenses/third_party/PyXB_v1.2.6.txt b/licenses/third_party/PyXB_v1.2.6.txt deleted file mode 100644 index 5c732c94..00000000 --- a/licenses/third_party/PyXB_v1.2.6.txt +++ /dev/null @@ -1,268 +0,0 @@ -From the PyXB licensing page -(http://pyxb.sourceforge.net/legal.html) - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, - reproduction, - and distribution as defined by Sections 1 through 9 of this - document. - - "Licensor" shall mean the copyright owner or entity authorized - by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under - common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of - the - outstanding shares, or (iii) beneficial ownership of such - entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making - modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or - Object - form, that is based on (or derived from) the Work and for which - the - editorial revisions, annotations, elaborations, or other - modifications - represent, as a whole, an original work of authorship. For the - purposes - of this License, Derivative Works shall not include works that - remain - separable from, or merely link (or bind by name) to the - interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or - additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright - owner - or by an individual or Legal Entity authorized to submit on - behalf of - the copyright owner. For the purposes of this definition, - "submitted" - means any form of electronic, verbal, or written communication - sent - to the Licensor or its representatives, including but not - limited to - communication on electronic mailing lists, source code control - systems, - and issue tracking systems that are managed by, or on behalf of, - the - Licensor for the purpose of discussing and improving the Work, - but - excluding communication that is conspicuously marked or - otherwise - designated in writing by the copyright owner as "Not a - Contribution." - - "Contributor" shall mean Licensor and any individual or Legal - Entity - on behalf of whom a Contribution has been received by Licensor - and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions - of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute - the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have - made, - use, offer to sell, sell, import, and otherwise transfer the - Work, - where such license applies only to those patent claims - licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If - You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes - direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute - must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file - distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; - or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The - contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, - alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications - and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies - with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state - otherwise, - any Contribution intentionally submitted for inclusion in the - Work - by You to the Licensor shall be under the terms and conditions - of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or - modify - the terms of any separate license agreement you may have - executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the - trade - names, trademarks, service marks, or product names of the - Licensor, - except as required for reasonable and customary use in - describing the - origin of the Work and reproducing the content of the NOTICE - file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or - conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining - the - appropriateness of using or redistributing the Work and assume - any - risks associated with Your exercise of permissions under this - License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and - grossly - negligent acts) or agreed to in writing, shall any Contributor - be - liable to You for damages, including any direct, indirect, - special, - incidental, or consequential damages of any character arising as - a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, - indemnity, - or other liability obligations and/or rights consistent with - this - License. However, in accepting such obligations, You may act - only - on Your own behalf and on Your sole responsibility, not on - behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by - reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 247f6899..df12d6bd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,30 +75,8 @@ if(NOT EIGEN_TAR_SOURCE) set(EIGEN_TAR_SOURCE ${EIGEN_URL}) endif (NOT EIGEN_TAR_SOURCE) -# We always download PyXB (unless it is already present in -# ${CMAKE_CURRENT_BINARY_DIR}/third_party/downloads). It is also possible to -# specify an alternative path to the PyXB tarball: -# -DPYXB_TAR_SOURCE=/path/to/PyXB-x.x.x.tar.gz - -# set(PYXB_VERSION "1.2.6") -# set(PYXB_TAR_MD5 5689c94a3c47419213b8872753a73c07) - -# set(PYXB_TAR "PyXB-${PYXB_VERSION}.tar.gz") -# set(PYXB_URL "https://github.com/renalreg/PyXB-X/archive/refs/tags/v1.2.6.1.tar.gz") - -# if(NOT PYXB_TAR_SOURCE) -# find_file(PYXB_TAR_SOURCE ${PYXB_TAR} -# PATHS ${MAD_THIRD_PARTY}/downloads) -# endif(NOT PYXB_TAR_SOURCE) - -# if(NOT PYXB_TAR_SOURCE) -# set(PYXB_TAR_SOURCE ${PYXB_URL}) -# endif (NOT PYXB_TAR_SOURCE) - # -- Local definitions (filenames, paths, etc.) -------------------------------- -set(MAD_PATCH_DIR ${CMAKE_CURRENT_BINARY_DIR}/patch) - set(MAD_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/modules) @@ -146,39 +124,6 @@ find_package(PythonInterp REQUIRED) set(BUILD_PYTHON_LIBDIR "${CMAKE_BINARY_DIR}/src/lib/python") - -# if(IS_UBUNTU) -# ExternalProject_Add(EP_pyxb -# PREFIX ${MAD_THIRD_PARTY} -# DOWNLOAD_DIR ${MAD_THIRD_PARTY}/downloads -# URL ${PYXB_TAR_SOURCE} -# URL_MD5 ${PYXB_TAR_MD5} -# # PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch/PyXB.sh" -# CONFIGURE_COMMAND "" -# SOURCE_DIR ${MAD_THIRD_PARTY}/src/EP_pyxb -# BUILD_COMMAND "" -# BUILD_IN_SOURCE 1 - -# INSTALL_COMMAND pip3 install . -# ) -# endif(IS_UBUNTU) - -# if((NOT IS_UBUNTU)) -# ExternalProject_Add(EP_pyxb -# PREFIX ${MAD_THIRD_PARTY} -# DOWNLOAD_DIR ${MAD_THIRD_PARTY}/downloads -# URL ${PYXB_TAR_SOURCE} -# URL_MD5 ${PYXB_TAR_MD5} -# # PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch/PyXB.sh" -# CONFIGURE_COMMAND "" -# SOURCE_DIR ${MAD_THIRD_PARTY}/src/EP_pyxb -# BUILD_COMMAND "" -# BUILD_IN_SOURCE 1 - -# INSTALL_COMMAND ${PYTHON_EXECUTABLE} setup.py install --install-lib ${BUILD_PYTHON_LIBDIR} > /dev/null -# ) -# endif((NOT IS_UBUNTU)) - install(DIRECTORY ${BUILD_PYTHON_LIBDIR} DESTINATION lib COMPONENT core @@ -379,14 +324,9 @@ add_sql_files( ) add_custom_target(sqlFiles ALL DEPENDS ${SQL_TARGET_FILES}) -# -- Use all necessary patches directory --------------------------------------- - -include_directories(BEFORE "${MAD_PATCH_DIR}") - # -- Add subdirectories -------------------------------------------------------- -add_subdirectory(patch) add_subdirectory(bin) add_subdirectory(config) add_subdirectory(madpack) diff --git a/src/patch/CMakeLists.txt b/src/patch/CMakeLists.txt deleted file mode 100644 index 12823887..00000000 --- a/src/patch/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -add_custom_target(madlibPatches ALL DEPENDS ${MADLIB_TARGET_PATCH_FILES}) -add_dependencies(madlibPatches EP_eigen) diff --git a/src/patch/PyXB.sh b/src/patch/PyXB.sh deleted file mode 100755 index 39466809..00000000 --- a/src/patch/PyXB.sh +++ /dev/null @@ -1,223 +0,0 @@ -#!/bin/sh - -# Patch directly in the source tree. Ignore if the patch has already been -# applied. (Probably there are situations where CMake isn't smart enough to -# prevent that.) - -# generated by "diff -Naur old/setup.py new/setup.py" -patch -N -p1 <<'EOF' ---- old/setup.py 2014-11-07 16:20:27.000000000 -0800 -+++ new/setup.py 2014-11-07 16:21:54.000000000 -0800 -@@ -21,152 +21,6 @@ - - from distutils.core import setup, Command - --# Stupid little command to automatically update the version number --# where it needs to be updated. --class update_version (Command): -- # Brief (40-50 characters) description of the command -- description = "Substitute @VERSION@ in relevant files" -- -- # List of option tuples: long name, short name (None if no short -- # name), and help string. -- user_options = [ ] -- boolean_options = [ ] -- -- # Files in the distribution that need to be rewritten when the -- # version number changes -- files = ( 'README.txt', 'pyxb/__init__.py', 'doc/conf.py' ) -- -- # The substitutions (key braced by @ signs) -- substitutions = { 'VERSION' : version, -- 'THIS_YEAR' : datetime.date.today().strftime('%Y'), -- 'SHORTVERSION' : '.'.join(version.split('.')[:2]) } -- -- def initialize_options (self): -- pass -- -- def finalize_options (self): -- pass -- -- def run (self): -- for f in self.files: -- text = open('%s.in' % (f,)).read() -- for (k, v) in self.substitutions.items(): -- text = text.replace('@%s@' % (k,), v) -- os.chmod(f, os.stat(f)[stat.ST_MODE] | stat.S_IWUSR | stat.S_IWGRP | stat.S_IWOTH) -- open(f,'w').write(text) -- os.chmod(f, os.stat(f)[stat.ST_MODE] & ~(stat.S_IWUSR | stat.S_IWGRP | stat.S_IWOTH)) -- --class test (Command): -- -- # Brief (40-50 characters) description of the command -- description = "Run all unit tests found in testdirs" -- -- # List of option tuples: long name, short name (None if no short -- # name), and help string. -- user_options = [ ( 'testdirs=', None, 'colon separated list of directories to search for tests' ), -- ( 'trace-tests', 'v', 'trace search for tests' ), -- ( 'inhibit-output', 'q', 'inhibit test output' ), -- ] -- boolean_options = [ 'trace-tests', 'inhibit-output' ] -- -- def initialize_options (self): -- self.trace_tests = None -- self.inhibit_output = None -- self.testdirs = 'tests' -- -- def finalize_options (self): -- pass -- -- # Regular expression that matches unittest sources -- __TestFile_re = re.compile('^test.*\.py$') -- -- def run (self): -- # Make sure log messages are supported -- logging.basicConfig() -- -- # Walk the tests hierarchy looking for tests -- dirs = self.testdirs.split(':') -- tests = [ ] -- while dirs: -- dir = dirs.pop(0) -- if self.trace_tests: -- print('Searching for tests in %s' % (dir,)) -- for f in os.listdir(dir): -- fn = os.path.join(dir, f) -- statb = os.stat(fn) -- if stat.S_ISDIR(statb[0]): -- dirs.append(fn) -- elif self.__TestFile_re.match(f): -- tests.append(fn) -- -- number = 0 -- import sys -- import traceback -- import unittest -- import types -- -- # Import each test into its own module, then add the test -- # cases in it to a complete suite. -- loader = unittest.defaultTestLoader -- suite = unittest.TestSuite() -- used_names = set() -- for fn in tests: -- stage = 'compile' -- try: -- # Assign a unique name for this test -- test_name = os.path.basename(fn).split('.')[0] -- test_name = test_name.replace('-', '_') -- number = 2 -- base_name = test_name -- while test_name in used_names: -- test_name = '%s%d' % (base_name, number) -- number += 1 -- -- # Read the test source in and compile it -- rv = compile(open(fn).read(), test_name, 'exec') -- state = 'evaluate' -- -- # Make a copy of the globals array so we don't -- # contaminate this environment. -- g = globals().copy() -- -- # The test cases use __file__ to determine the path to -- # the schemas -- g['__file__'] = fn -- -- # Create a module into which the test will be evaluated. -- module = types.ModuleType(test_name) -- -- # The generated code uses __name__ to look up the -- # containing module in sys.modules. -- g['__name__'] = test_name -- sys.modules[test_name] = module -- -- # Import the test into the module, making sure the created globals look like they're in the module. -- eval(rv, g) -- module.__dict__.update(g) -- -- # Find all subclasses of unittest.TestCase that were -- # in the test source and add them to the suite. -- for (nm, obj) in g.items(): -- if (type == type(obj)) and issubclass(obj, unittest.TestCase): -- suite.addTest(loader.loadTestsFromTestCase(obj)) -- if self.trace_tests: -- print('%s imported' % (fn,)) -- except Exception as e: -- print('%s failed in %s: %s' % (fn, stage, e)) -- raise -- -- # Run everything -- verbosity = 1 -- if self.trace_tests: -- verbosity = 2 -- elif self.inhibit_output: -- # Don't know how to do this for real -- verbosity = 0 -- runner = unittest.TextTestRunner(verbosity=verbosity) -- runner.run(suite) -- - import glob - import sys - import pyxb.utils.utility -@@ -177,44 +31,6 @@ - ] - package_data = {} - --init_re = re.compile('^__init__\.py$') --wxs_re = re.compile('^.*\.wxs$') -- --setup_path = os.path.dirname(__file__) --bundle_base = os.path.join(setup_path, 'pyxb', 'bundles') --possible_bundles = [] --try: -- possible_bundles.extend(os.listdir(bundle_base)) --except OSError as e: -- print("Directory %s bundle search failed: %s" % (bundle_base, e)) --for possible_bundle in possible_bundles: -- bundle_root = os.path.join(bundle_base, possible_bundle) -- if not os.path.isdir(bundle_root): -- continue -- b_packages = [] -- b_data = { } -- for fp in pyxb.utils.utility.GetMatchingFiles('%s//' % (bundle_root,), init_re): -- bundle_path = os.path.dirname(os.path.normpath(fp)) -- try: -- package_relpath = os.path.relpath(bundle_path, setup_path) -- except AttributeError as e: -- package_relpath = bundle_path -- if setup_path and '.' != setup_path: -- prefix_path = setup_path + os.path.sep -- if not package_relpath.startswith(prefix_path): -- print("Unable to determine relative path from %s to %s installation" % (setup_path, bundle_path)) -- sys.exit(1) -- package_relpath = package_relpath[len(prefix_path):] -- package = package_relpath.replace(os.path.sep, '.') -- b_packages.append(package) -- wxs_files = [os.path.basename(_f) for _f in pyxb.utils.utility.GetMatchingFiles(bundle_path, wxs_re) ] -- if wxs_files: -- b_data[package] = wxs_files -- if 0 < len(b_data): -- print('Found bundle in %s' % (bundle_root,)) -- packages.extend(b_packages) -- package_data.update(b_data) -- - setup(name='PyXB', - description = 'PyXB ("pixbee") is a pure Python package that generates Python source code for classes that correspond to data structures defined by XMLSchema.', - author='Peter A. Bigot', -@@ -254,13 +70,9 @@ - ''', - provides=[ 'PyXB' ], - packages=packages, -- package_data=package_data, - # I normally keep these in $purelib, but distutils won't tell me where that is. - # We don't need them in the installation anyway. - #data_files= [ ('pyxb/standard/schemas', glob.glob(os.path.join(*'pyxb/standard/schemas/*.xsd'.split('/'))) ) ], -- scripts=[ 'scripts/pyxbgen', 'scripts/pyxbwsdl', 'scripts/pyxbdump' ], -- cmdclass = { 'test' : test, -- 'update_version' : update_version }, - classifiers = [ 'Development Status :: 5 - Production/Stable' - , 'Intended Audience :: Developers' - , 'License :: OSI Approved :: Apache Software License' -EOF
