Group variables related with pgit.sh (PGIT_SH and PGIT_SH_CLONE)
closer together. Define CLONE_FROM_USER early on.
Signed-off-by: Jan Lindemann <jan@janware.com>
The usage comments heading projects-dir-minimal.mk and
projects-dir.mk state that for cloning all repositories, JANWARE_USER
needs to be defined. That restriction is now gone, so reflect that in
the comment.
Signed-off-by: Jan Lindemann <jan@janware.com>
Add the variable PROJECTS_DIR_REMOTE_BASE, defaulting to
ssh://git.janware.com/srv/git if REMOTE_USER is defined, and to
https://janware.com/code in case it isn't.
Signed-off-by: Jan Lindemann <jan@janware.com>
Do not set JANWARE_USER to $(id -un) in case it's undefined. Instead,
rely on it being set explicitly in the environment if so desired.
Signed-off-by: Jan Lindemann <jan@janware.com>
Pass --create-remote-user-repos to pgit.sh clone in case JANWARE_USER
is defined, restoring the original behaviour.
Signed-off-by: Jan Lindemann <jan@janware.com>
jw-pkg is related to, but strictly speaking not indispensible for building and
packaging software. So, in the attempt have a minimal jw-build, move jw-pkg to
jw-base, and fix all packages that use it.
Signed-off-by: Jan Lindemann <jan@janware.com>
Make list-files target ignore errors. This catches errors from
git ls-files | xargs realpath if git ls-files lists dead symbolic
links, as in my-project/blah/dev/fd -> ./proc/self/fd.
Implemented by passing -q (quiet) to realpath, not sure what else
this suppresses.
Signed-off-by: Jan Lindemann <jan@janware.com>
Move nearly all of projects.py into src/python/jw/build/App.py. The
plan is to split the script into parts and import them.
Signed-off-by: Jan Lindemann <jan@janware.com>
Re-add everything necessary for recursively building all repos in
a directory, e.g. as a build controlled by janware.com/Makefile or
any other installation.
This adds 489 lines of code which can (and should) be massively
reduced, notably removing code supporting CVS.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit removes everything not strictly necessary for running
"make clean all" inside jw-build.
packaging jw-devtest. This cuts the repo down from 24077 to 4725
lines of code.
The idea is to
1) Further remove bloat from the remaining bits
2) Re-add what's necessary to build and package other essential repos.
The decision should be based on whether or not jw-build can also be
useful in a non-janware context.
Signed-off-by: Jan Lindemann <jan@janware.com>
The projects toplevel Makefile is not maintained in CVS anylonger but
in Git, so don't update it from CVS any longer.
Signed-off-by: Jan Lindemann <jan@janware.com>
"Makefile" is used in dependency checks within projects-dir.mk. Since
it might be included from projects-dir-minimal.mk, which also works
with "GNUmakefile", make this fallback of a predefinable variable,
PROJECTS_MAKEFILE_NAME.
Signed-off-by: Jan Lindemann <jan@janware.com>
Adapt projects makefile to match the mechanism all proj.mk's are
supposed to find their JWBDIR. Namely make JWBDIR_NAME a
conditionally assigned variable to allow for some testing of
alternative jw-build trees.
Signed-off-by: Jan Lindemann <jan@janware.com>
text-files-list-0 returns a zero-delimited list of text files for further
processing, which allows to correctly handle spaces in file names
Signed-off-by: Jan Lindemann <jan@janware.com>
Project names passed to the package manager can contain characters
not well digested by the shell. Don't let it.
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>
Use cvs-update.done instead of git-pull.done as prerequisite
of git-pull-%, because otherwise broken remote own repos
might not be recoverable
Signed-off-by: Jan Lindemann <jan@janware.com>
Remove CVS macros, because that breaks using it as a symlink from projects-dir,
and add SPDX-License-Identifier GPL2.0+.
Signed-off-by: Jan Lindemann <jan@janware.com>
Remove legacy links.done, since dspider-shared and dspider-btools are now
converted to git projects below the toplevel directory.
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
PS1 isn't set if make is run interactively, which is why auto-detection of
interactive use doesn't work. Ditch that and introduce the INTERACTIVE
variable, which can be passed as INTERACTIVE=[y|n]. Default value als of now
is "n".
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
The clean target now doesn't remove meta files which enforce a new pull if
absent. distclean is the new clean.
Signed-off-by: Jan Lindemann <jan@janware.com>