Commit graph

677 commits

Author SHA1 Message Date
b77d92794e python-tools.sh: Fix __path__ type check in __init__.py
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>
2024-04-30 09:00:45 +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
ce7984e2e8 jw-build-create-project.sh: Add *tmp* to .gitignore by default
Signed-off-by: Jan Lindemann <jan@janware.com>
2023-12-18 13:00:44 +00:00
62abfc4c35 jw-pckg: Fix duplicates in compile-templates again
Signed-off-by: Jan Lindemann <jan@janware.com>
2023-03-21 16:26:30 +00:00
32450c47bf jw-pckg: Fix duplicates in compile-templates
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>
2023-03-19 14:28:10 +00:00
b633e9637c pkg.sh: Filter out system installation directories below /usr
System installation directories should not belong to jw-build-generated
packages, so exclude them via regex.

Signed-off-by: Jan Lindemann <jan@janware.com>
2021-09-26 19:14:58 +00:00
e3489d6222 purge-stale-projects.sh: Ignore untracked files
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>
2021-01-30 13:05:58 +00:00
b3c093fd94 pkg.sh: Don't exclude .in files from source package
Building with .in files should work just fine, so don't exclude them anylonger.

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-12-01 16:21:22 +00:00
c37f49a170 project.conf + pkg-manager.sh: Add support for raspbian
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-06-16 17:05:03 +00:00
5e9168480a project-dirs.mk / pgit.sh: Add support for offlining projects
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>
2020-05-10 08:07:22 +00:00
a404be15b9 make, scripts: Add support for static Python typechecking
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>
2020-04-10 12:13:12 +00:00
089aebeaec scm.sh clean: Make git clean ignore .gitignore
scm.sh clean doesn't remove files in .gitignore, which is kind of beside the
point. Fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-04-10 12:03:43 +00:00
5f3c4a6320 jw-build-create-project.sh: Add __init__.py and __pychache__ to .gitignore
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-04-06 07:03:32 +00:00
5f9258bdf8 jw-build-create-project.sh: Add *.swp to .gitignore
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-04-05 12:54:49 +00:00
7fb117a4c4 python-tools.sh: Make __init__py recognize multiple package modules
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>
2020-04-05 12:51:11 +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
17244e9a3f pgit.sh: Add support for target refspec to PGIT_CLONE_FROM_USER
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>
2020-02-24 14:35:26 +00:00
3a0d85ff89 git-srv-admin.sh: Fix group ownership
Fix group ownership of newly created git directories.

Signed-off-by: Jan Lindemann <jan@janware.com>
2020-01-21 15:35:06 +00:00
d4a9bad14e jw-pkg compile-templates: Fix slashes in passwords
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-27 18:27:12 +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
785b1929be cvs-admin.sh: Remove trailing empty lines
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-11-13 20:14:25 +00:00
86d95a97f6 create-mkdebian.sh: Fix staging path
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>
2019-11-13 12:49:28 +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
a935715036 python-tools.sh: Code beautification
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>
2019-10-28 12:20:52 +00:00
e3469d0ac0 pgit.sh: Rename clone remote user-xxx to jw-xxx
This looks more understandable for non-janware user cases

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-10-11 15:28:05 +00:00
db6bdc454e scm.sh + pgit.sh: Add on-demand to recurse-submodules
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>
2019-10-09 15:16:25 +00:00
0023d7fdfb qemu-boot.sh: Come code cleanup
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-09-15 10:05:03 +00:00
dc7962dde9 jw-build-create-project.sh: Add more patterns to .gitignore
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-07-06 14:53:51 +00:00
8522aa73fa purge-stale-projects.sh: Purge dspc/src/dspcd
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-07-05 12:44:22 +00:00
bdd66dbc26 Everywhere: Rename MOD_SCRIPT_DIR -> JWB_SCRIPT_DIR
Follow name change of MODDIR -> JWBDIR.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-29 21:45:24 +00:00
b2d6e6f554 Everywhere: Rename MODDIR -> JWBDIR
Rename the omnipresent MODDIR variable to JWBDIR, since that's more to the
point.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-29 21:34:18 +00:00
a7edaa4a01 jw-build-create-project.sh: Follow changes in variable names
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-29 19:08:20 +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
c84f7b3f84 create-mksspec.sh: Add support for OS-cascade
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-19 09:33:12 +00:00
005eafcf1b purge-stale-projects.sh: Handle btools and dspider shared
btools and dspider shared have been moved to git. This commit makes
purge-stale-projects.sh remove the CVS debris and links. Needs to be fetched
before it can work, so make pull will have to run twice in the projects dir. To
be removed after all work trees are in sync.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-19 07:39:08 +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
305cc0a1a7 pkg.sh: Remove some (not all) unnecessarily forked processes
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-16 11:19:31 +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
458fe33260 conf/profile, make, scripts: Search-and-replace cvs.jannet.de -> cvs.janware.com
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-15 08:15:28 +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