Commit graph

103 commits

Author SHA1 Message Date
a4c3ca6f2b projects.py: Add some comments to dependency ordering code
Signed-off-by: Jan Lindemann <jan@janware.com>
2023-12-18 13:00:45 +00:00
1239fb9f34 projects.py: Support line continuation in project.conf
This commit makes lines with backslashes at the end behave as
if the next line was appended

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-03-19 17:36:58 +00:00
e71661425c projects.py: Fix integer comparison
Python 3.8 complains about integers compared with 'is not'
instead of '!=', fix that

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-03-19 17:34:35 +00:00
f8df5c6825 projects.py: Make dep flavour "build" a superset of "run"
If P1 build-needs P2, make it run-need P2, too, since with the current
dependency resolution algorithm, this also adds everything needed to _run_ P2.
Which is the only thing this commit is after. It actually does too much, and
enables P1 to run, too, at least WRT P2. But that's the easiest way to resolve
the problem for now.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-27 14:43:29 +00:00
3ce6eac53f projects.py: Add -dev as a possible package suffix
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-08 10:39:55 +00:00
8b965f16ac projects.py: Add missing import time
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-11-11 21:32:36 +00:00
a5306bfc80 projects.py: Fix broken error message on failed build
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-11-11 21:25:23 +00:00
6eee41ac08 projects.py: Add argument --ignore to pkg_relations()
Packages that should be ignored altogether with their dependencies can now be
specified with --ignore to various commands using pkg_relations().

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-21 12:52:53 +00:00
3a180033d4 projects.py fix: Read_value() does not return entire section
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-18 07:37:15 +00:00
405a61b9be projects.py: Add print_pkg_relations()
print_pkg_relations() does what pkg_relations() did before: print
the relations. pkg_relations() now only returns them, to be used
by a derived class, for instance

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-15 15:20:01 +00:00
d173f91eda projects.py: Fix ignored --prefix option
--prefix was ignored because the default was set after the commandline options
were evaluated. This commit fixes that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-15 10:01:33 +00:00
430a2173b2 projects.py: Ongoing code beautification
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-12 13:11:19 +00:00
fbf75b1220 projects.py: Ongoing code beautification
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-12 13:04:07 +00:00
298398af2b projects.py: Remove dead code
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-12 11:28:20 +00:00
a629faab93 projects.py: Dissolve class Build into class Projects
This commit is the next code cleanup step. Needs more testing and more fixing.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-12 11:26:15 +00:00
7d12ad7f8c projects.py: Introduce class Projects
The Projects class wraps all global variables. This is mostly a
text-replace job and results in horrible class design.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-11 19:03:43 +00:00
187a3343c3 projects.py/get_modules_from_project_txt(): Support multiple sections
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-11 15:42:20 +00:00
a85640e58c projects.py / pkg-relations(): Add option --recursive
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-11 11:45:20 +00:00
7abbf1d044 projects.py: Rename command requires-pkg to required-os-pkg
Rename command requires-pkg to required-os-pkg to avoid confusion with
pkg-reqires. The command could be merged into pkg-requires at a later time.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-11 10:46:23 +00:00
2e3f046477 projects.py: Add option --os
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-11 10:20:16 +00:00
263820370c projects.py: Allow import of projects.py
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-10 13:55:55 +00:00
13fa28e23f make, scripts: Flip some more switches from pathon 2 to 3 (untested!)
This commit flips some more switches from Python 2 to Python 3 in makefiles and
Python code. Build runs through, but it's still likely to break things.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-02 12:28:13 +00:00
367dfb90c2 Fix: Basestring missing from python 3
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-10 15:34:08 +00:00
1e3d0f2c60 projects.py: Fix python3 glitches
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-10 15:23:23 +00:00
6c0c3af50f projects.py: Remove reference to deprecated sets module
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-10 14:58:16 +00:00
e0adaa815d projects.py: Remove bogus tabs
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-10 14:53:32 +00:00
d7da4f1cb8 mkspec-wrapper.sh: Fix append() for special characters
The append() shell function was unable to cope with special
characters, notably with () in RPM provides libnnz12.so()(64bit),
this commit fixes that. And introduces some (disabled) debug code
into projects.py.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-30 16:23:03 +00:00
f28afc777c make, scripts: Add support for [pkg.provides.xxx]
Add Support for manually specifying arbitrary package capabilities in
project.conf.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-01-07 14:34:58 +00:00
82a3f4dc92 projects.py: Read /usr/share/doc/packages/<name>/VERSION, too
Add support for searching VERSION below the project root
_and_ below /usr/share/doc/packages/

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-11-18 12:32:31 +00:00
8f196287af projects.py: Fix bogus interpretation of os dep package version
requires.os.run = java-headless = 1.8.0 led to an attempt to
look up ../java-headless/VERSION

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-10-24 11:00:22 +00:00
4e6a237865 projects.py: Beautify logging ([] around iteration count)
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-10-23 13:09:58 +00:00
6224f48900 projects.py: Remove messages for build-order output
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-10-23 09:48:33 +00:00
83631eafc5 projects.py: Add support for --build-order
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-10-22 21:13:59 +00:00
f7db38275f projects.py: Protect against null-string dependencies
A dependency of the form run = a, b, (trailing comma) led to the attempt
to build an empty project and, hence, infinite recursion

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-10-22 20:02:48 +00:00
d8115e6b22 projects.py, pkg_relations(): Fix --no-subpackages, support multiple flavours
- --no-subpackages sometimes doesn\'t strip off -devel -run
- Flavours can now be comma-separated

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-15 10:13:17 +00:00
9d2e192256 projects.py: Add support for --skip-excluded to command requires-pkg
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 17:28:20 +00:00
8ef3c06234 projects.py: Optimize os_cascade()
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 16:58:32 +00:00
3b77b5ae55 projects.py: Fix and re-enable reading dependencies in-memory
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 15:59:36 +00:00
775795c8fa projects.py: Add support for [build.exclude]
Also disable recent switch to in-memory dependency detection, because
it is buggy and messes up the order

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 14:26:21 +00:00
fd2ca4f6ff projects.py: Disable superfluous invocations of projects.py
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 11:40:58 +00:00
4d016534d9 projects.py: Merge build.py
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 10:51:50 +00:00
dbe88a7bfa projects.py: Merge build.py
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 10:51:23 +00:00
f7db567bff build.py, projects.py: Streamline both scripts
Make build.py and projects.py even more similar in preparation for
merging them.

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 10:17:14 +00:00
f996726bae build.py: Eliminate another global variable
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-07 09:56:48 +00:00
6ec57849c3 projects.py: Make OS-cascade support distro version families
Now ubuntu-14.04 is also caught by ubuntu-14

Signed-off-by: Jan Lindemann <jan@janware.com>
2018-03-06 16:35:16 +00:00
e68d4eb83b make, scripts: Now excplicitly calling python2 executable instead of python
Signed-off-by: Jan Lindemann <jan@janware.com>
2018-01-02 13:12:00 +00:00
378feb60ec build.py and projects.py: Cache results queried from file system
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-08-31 18:57:13 +00:00
42e8e6522d projects.py: Fix cache_func(), evaluated one key short of what it should have
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-08-09 14:25:15 +00:00
da3089e5b7 projects.py: Add cache_func()
Add a generic cache for function calls, and use it on functions doing file I/O.
This speeds the build process up considerably.

Signed-off-by: Jan Lindemann <jan@janware.com>
2017-08-09 13:06:18 +00:00
55862e4bd7 projects.py ldflags: Also consider devel packages
Signed-off-by: Jan Lindemann <jan@janware.com>
2017-08-01 21:57:13 +00:00