jw-pkg determines the file attributes of template compilation output via a line
matching the '^#\s*conf' regular expression. Allow that regex to be configured.
Signed-off-by: Jan Lindemann <jan@janware.com>
Up to now, jw-pkg only evaluates config lines at the top of secret-tables. Look
for config patterns at the top of templates, too.
Signed-off-by: Jan Lindemann <jan@janware.com>
/sbin/brctl is not part of openSUSE anymore, use ip link commands instead.
Also, remove the vlan option, now unsupported by qemu.
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
%prep is passed -n <name> option. This is considered an error by rpm
Release 4.20.1-1.1. It is superfluous anyway, because the name is communicated to rpm
via %setup -n <name> later in the %prep section. Remove the -n option.
Signed-off-by: Jan Lindemann <jan@janware.com>
Make scm.sh ls-files list all files belonging to submodules, too. The use case
is to have list-text-files return them.
Signed-off-by: Jan Lindemann <jan@janware.com>
Installing packages breaks with eval, because it removes quotes,
notably around perl(XYZ) capabilities. Works just as well without
eval, remove it
Signed-off-by: Jan Lindemann <jan@janware.com>
Don't check __path__ as Interable[str] anylonger, this somehow broke (Don't
remember how). Use type: ignore instead.
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
Files were listed twice in compile-templates, because apparently, during
postinstall, rpm -ql returns the list of a packages files twice.
Signed-off-by: Jan Lindemann <jan@janware.com>
System installation directories should not belong to jw-build-generated
packages, so exclude them via regex.
Signed-off-by: Jan Lindemann <jan@janware.com>
Untracked files flag a git repository as unfit for purging, don't do that. We
don't care for untracked files.
Signed-off-by: Jan Lindemann <jan@janware.com>
This adds support for the variable OFFLINE_PROJECTS in projects-dir.mk and the
PGIT_IGNORE environment variable. Both go hand in hand and do what their names
insinuate. OFFLINE_PROJECTS is initialized from EXCLUDE_FROM_BUILD, which in
turn is initialized from exclude.txt and friends.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit adds support for static typechecking with mypy.
Notable additions:
- A new target "check" which does the type checking
- Py-mods.mk, meant to be included from a directory containing python modules
in subdirectories, but not being a python module itself. It makes the all
target depend on check only if PY_RUN_CHECK_AFTER_BUILD is defined and
true. That's because pypy is under heavy development, and the Ubuntu 18.04
version is too old to work for lots of the code.
Signed-off-by: Jan Lindemann <jan@janware.com>
import my.mod.thing, my.mod.thang wouldn't work, if the modules where not in
the same directory hierarchy, e.g. in $(HOME)/blah/my/mod/thing.py and
$(HOME)/blub/my/mod/thang.py, not even with PYTHONPATH=$(HOME)/blah:$(HOME)/blub.
This commit fixes that.
See https://stackoverflow.com/questions/1675734
Signed-off-by: Jan Lindemann <jan@janware.com>
PGIT_CLONE_CLONE_FROM_USER now supports optional suffixes of the form
[:src-ref[:dst-ref]]. If present, src-ref specifies the remote branch pgit.sh
tries to fetch, and dst-ref the local branch it tries to fetch into. src-ref
defaults to "master" (as it was before) and dst-ref to nothing, i.e. no
head-update of any local branch.
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
Staging path by default is debian/tmp, and the packager (dh_install) looks
there and in . for staged files, e.g. ./dist/src/jw-build-1.0.0-93/debian/tmp.
This doesn't match the file system layout as created by jw-build's make
install, which installs to ./dist/src/jw-build-1.0.0-93/debian/tmp/inst-root.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit beautifies module import path deduction a little. It also adds
(disabled) code for importing submodules, which may or may not be enabled by a
command-line option in the future.
Signed-off-by: Jan Lindemann <jan@janware.com>
git pull, push, fetch use --recurse-submodules, which is non-optional for push.
Added --recurse-submodules=on-demand to all for consistency.
Signed-off-by: Jan Lindemann <jan@janware.com>