diff --git a/PKG-INFO b/PKG-INFO deleted file mode 100644 index 39f6962..0000000 --- a/PKG-INFO +++ /dev/null @@ -1,17 +0,0 @@ -Metadata-Version: 2.1 -Name: ognibuild -Version: 0.0.5 -Summary: Detect and run any build system -Home-page: https://jelmer.uk/code/ognibuild -Maintainer: Jelmer Vernooij -Maintainer-email: jelmer@jelmer.uk -License: GNU GPLv2 or later -Description: UNKNOWN -Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta -Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) -Classifier: Programming Language :: Python :: 3.5 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Operating System :: POSIX -Provides-Extra: debian diff --git a/ognibuild.egg-info/PKG-INFO b/ognibuild.egg-info/PKG-INFO deleted file mode 100644 index 39f6962..0000000 --- a/ognibuild.egg-info/PKG-INFO +++ /dev/null @@ -1,17 +0,0 @@ -Metadata-Version: 2.1 -Name: ognibuild -Version: 0.0.5 -Summary: Detect and run any build system -Home-page: https://jelmer.uk/code/ognibuild -Maintainer: Jelmer Vernooij -Maintainer-email: jelmer@jelmer.uk -License: GNU GPLv2 or later -Description: UNKNOWN -Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta -Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) -Classifier: Programming Language :: Python :: 3.5 -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Operating System :: POSIX -Provides-Extra: debian diff --git a/ognibuild.egg-info/SOURCES.txt b/ognibuild.egg-info/SOURCES.txt deleted file mode 100644 index 2067e75..0000000 --- a/ognibuild.egg-info/SOURCES.txt +++ /dev/null @@ -1,52 +0,0 @@ -.flake8 -.gitignore -AUTHORS -CODE_OF_CONDUCT.md -LICENSE -README.md -SECURITY.md -TODO -releaser.conf -setup.cfg -setup.py -.github/workflows/pythonpackage.yml -notes/architecture.md -notes/concepts.md -notes/roadmap.md -ognibuild/__init__.py -ognibuild/__main__.py -ognibuild/build.py -ognibuild/buildlog.py -ognibuild/buildsystem.py -ognibuild/clean.py -ognibuild/dist.py -ognibuild/dist_catcher.py -ognibuild/fix_build.py -ognibuild/fixers.py -ognibuild/info.py -ognibuild/install.py -ognibuild/outputs.py -ognibuild/requirements.py -ognibuild/test.py -ognibuild/vcs.py -ognibuild.egg-info/PKG-INFO -ognibuild.egg-info/SOURCES.txt -ognibuild.egg-info/dependency_links.txt -ognibuild.egg-info/entry_points.txt -ognibuild.egg-info/requires.txt -ognibuild.egg-info/top_level.txt -ognibuild/debian/__init__.py -ognibuild/debian/apt.py -ognibuild/debian/build.py -ognibuild/debian/build_deps.py -ognibuild/debian/file_search.py -ognibuild/debian/fix_build.py -ognibuild/debian/udd.py -ognibuild/resolver/__init__.py -ognibuild/resolver/apt.py -ognibuild/session/__init__.py -ognibuild/session/plain.py -ognibuild/session/schroot.py -ognibuild/tests/__init__.py -ognibuild/tests/test_debian_build.py -ognibuild/tests/test_debian_fix_build.py \ No newline at end of file diff --git a/ognibuild.egg-info/dependency_links.txt b/ognibuild.egg-info/dependency_links.txt deleted file mode 100644 index 8b13789..0000000 --- a/ognibuild.egg-info/dependency_links.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/ognibuild.egg-info/entry_points.txt b/ognibuild.egg-info/entry_points.txt deleted file mode 100644 index dc61857..0000000 --- a/ognibuild.egg-info/entry_points.txt +++ /dev/null @@ -1,4 +0,0 @@ -[console_scripts] -deb-fix-build = ognibuild.debian.fix_build:main -ogni = ognibuild.__main__:main - diff --git a/ognibuild.egg-info/requires.txt b/ognibuild.egg-info/requires.txt deleted file mode 100644 index 6bafe7d..0000000 --- a/ognibuild.egg-info/requires.txt +++ /dev/null @@ -1,8 +0,0 @@ -breezy -buildlog-consultant>=0.0.4 -requirements-parser - -[debian] -debmutate -python_apt -python_debian diff --git a/ognibuild.egg-info/top_level.txt b/ognibuild.egg-info/top_level.txt deleted file mode 100644 index 7e9084f..0000000 --- a/ognibuild.egg-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -ognibuild diff --git a/ognibuild/__init__.py b/ognibuild/__init__.py index d5896e2..82408b8 100644 --- a/ognibuild/__init__.py +++ b/ognibuild/__init__.py @@ -20,7 +20,7 @@ import os import stat -__version__ = (0, 0, 5) +__version__ = (0, 0, 6) USER_AGENT = "Ognibuild" diff --git a/ognibuild/buildsystem.py b/ognibuild/buildsystem.py index 08ac13c..f3cd7a0 100644 --- a/ognibuild/buildsystem.py +++ b/ognibuild/buildsystem.py @@ -726,9 +726,11 @@ class R(BuildSystem): return dc.copy_single(target_directory) def install(self, session, resolver, fixers, install_target): - extra_args.append("--prefix=%s" % install_target.prefix) + extra_args = [] + if install_target.prefix: + extra_args.append("--prefix=%s" % install_target.prefix) r_path = guaranteed_which(session, resolver, "R") - run_with_build_fixers(session, [r_path, "CMD", "INSTALL", "."], fixers) + run_with_build_fixers(session, [r_path, "CMD", "INSTALL", "."] + extra_args, fixers) def test(self, session, resolver, fixers): r_path = guaranteed_which(session, resolver, "R") @@ -1126,7 +1128,8 @@ class Make(BuildSystem): run_with_build_fixers(session, ["qmake"], fixers) if not makefile_exists() and session.exists('CMakeLists.txt'): - session.mkdir('build') + if not session.exists("build"): + session.mkdir('build') run_with_build_fixers(session, ["cmake", '..'], fixers, cwd='build') def build(self, session, resolver, fixers): diff --git a/ognibuild/debian/file_search.py b/ognibuild/debian/file_search.py index 4f33ebf..5276835 100644 --- a/ognibuild/debian/file_search.py +++ b/ognibuild/debian/file_search.py @@ -156,7 +156,12 @@ def load_apt_cache_file(url, cache_dir): import lz4.frame return lz4.frame.open(p, mode="rb") - return _unwrap(open(p, "rb"), ext) + try: + f = open(p, "rb") + except PermissionError as e: + logging.warning('Unable to open %s: %s', p, e) + raise FileNotFoundError(url) + return _unwrap(f, ext) raise FileNotFoundError(url) diff --git a/ognibuild/tests/__init__.py b/ognibuild/tests/__init__.py index 42d25c4..075535d 100644 --- a/ognibuild/tests/__init__.py +++ b/ognibuild/tests/__init__.py @@ -17,14 +17,16 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. +import os import unittest def test_suite(): names = [ "debian_build", - "debian_fix_build", ] + if os.path.exists("/usr/bin/dpkg-architecture"): + names.append("debian_fix_build") module_names = ["ognibuild.tests.test_" + name for name in names] loader = unittest.TestLoader() return loader.loadTestsFromNames(module_names) diff --git a/ognibuild/tests/test_debian_fix_build.py b/ognibuild/tests/test_debian_fix_build.py index e3288b5..c0a5456 100644 --- a/ognibuild/tests/test_debian_fix_build.py +++ b/ognibuild/tests/test_debian_fix_build.py @@ -15,7 +15,6 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -import os import re from debian.deb822 import Deb822 @@ -65,8 +64,6 @@ class DummyAptSearcher(FileSearcher): class ResolveErrorTests(TestCaseWithTransport): def setUp(self): super(ResolveErrorTests, self).setUp() - if not os.path.exists("/usr/bin/dpkg-architecture"): - self.skipTest("not a debian system") self.tree = self.make_branch_and_tree(".") self.build_tree_contents( [ diff --git a/setup.cfg b/setup.cfg index 07ea45f..99a5d9d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -2,12 +2,8 @@ banned-modules = silver-platter = Should not use silver-platter [mypy] +# A number of ognibuilds' dependencies don't have type hints yet ignore_missing_imports = True [bdist_wheel] universal = 1 - -[egg_info] -tag_build = -tag_date = 0 - diff --git a/setup.py b/setup.py index 11a4d5c..0be4ae0 100755 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ from setuptools import setup setup(name="ognibuild", description="Detect and run any build system", - version="0.0.5", + version="0.0.6", maintainer="Jelmer Vernooij", maintainer_email="jelmer@jelmer.uk", license="GNU GPLv2 or later", @@ -29,7 +29,7 @@ setup(name="ognibuild", }, install_requires=[ 'breezy', - 'buildlog-consultant>=0.0.4', + 'buildlog-consultant>=0.0.10', 'requirements-parser', ], extras_require={