Commit graph

108 commits

Author SHA1 Message Date
8b8f1cc306 projects.py: Allow projects with non-existing project directory
proj_dir() raises an exception for projects which don't have a dedicated
project directory, even though for some projects this is legal. php-cli, for
instance, only installs stuff below /srv/www/proj/php-cli.

This commit makes projects.py tolerate that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-03-30 12:24:10 +00:00
fd6607de15 projects.py: Os-cascade: Fix regex
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:26:35 +00:00
6109703ccb projects.py: Warn about modules which were not found
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-04 08:56:21 +00:00
94e1c29ede projects.py proj-dir: Fall back on /opt
Search in /opt, if a project is not found in projects-dir

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-05-25 15:38:50 +00:00
3f5a3d004a projects.py: Add command modules
projects.py modules shows either all modules, or modules which have one of the
key-value pairs requested for filtering via the -F option.

Signed-off-by: Jan Lindemann <jan@janware.com>
2024-04-30 08:00:39 +00:00
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