Commit graph

296 commits

Author SHA1 Message Date
d047ad650c pgit.sh: Support --refspec

In the attempt to move away from communicating options via environment variables from one part of jw-build software to another, replace PGIT_CLONE_FROM_USER with the clearer --refspec option. Which is also more versatile.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-24 10:04:47 +01:00
4053451bfd projects-dir.mk: Disable --create-remote-user-repos

Creating user repositories is hard to test. Not sure if the concept will survive the current workflow changes, disable it for now.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 18:10:55 +01:00
561905bab7 projects-dir.mk: Fix empty JANWARE_USER error

JW_BUILD_SSH_EXTRA_OPTS contains a -l $(JANWARE_USER), which make ssh break if $(JANWARE_USER) is empty. Fix that case.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 16:33:18 +01:00
99dca58e1d projects-dir.mk: Make GIT_ASKPASS absolute

The GIT_ASKPASS environment variable can point to a relative path, and since pgit.sh currently does a chdir, it needs to be made an absolute path.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 15:28:05 +01:00
7d436f1c76 projects-dir[-minimal].mk: Go from PROJECTS_DIR_REMOTE_BASE

Currently, the primary discriminating criterion on how to handle a set of remote repositories is whether or not JANWARE_USER is defined. The canonical way to do that is PROJECTS_DIR_REMOTE_BASE, though, so go from that definition.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 13:52:41 +01:00
e1a4746ad5 projects-dir-minimal.mk: Use get-auth-info for JANWARE_USER

Default JANWARE_USER to the user retrieved by jw-projects.py get-auth-info.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 08:37:07 +01:00
d740f30226 projects-dir[-minimal.mk]: Group PGIT_SH-related variables

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>
2025-11-18 21:14:19 +01:00
aac261d782 projects-dir[-minimal].mk: Change usage comment

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>
2025-11-18 15:56:21 +01:00
69132d9246 projects-dir[-minimal].mk: Support PROJECTS_DIR_REMOTE_BASE

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>
2025-11-18 15:55:20 +01:00
7d1ff5c6e6 projects-dir.mk: Default PGIT_CLONE_FROM_USER to janware

Clone from user janware if JANWARE_USER is not defined.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 15:56:02 +01:00
fe81bd209e projects-dir[-minimal].mk: Don't default JANWARE_USER

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>
2025-11-18 15:44:57 +01:00
370c7e499e projects-dir.mk: Conditionally pass --create-remote-user-repos

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>
2025-11-18 16:39:52 +01:00
0c9fd98009 projects-dir.mk, scripts/Makefile, jw-pkg: Move jw-pkg from jw-build to jw-base

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>
2025-11-17 13:05:43 +01:00
36092d6b1b projects-dir.mk: Make list-files ignore errors

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>
2025-11-17 12:34:14 +01:00
67fb954f3e projects-dir.mk: Remove CVS support

Now that CVS is finally retired for building multiple projects from VCS, remove support.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 10:22:35 +01:00
fbc9e3a001 make, scripts: Rename projects.py -> jw-projects.py

projects.py is too unspecific, rename it to jw-projects.py.

Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-15 12:06:38 +01:00
aa3e2efd84 projects.py: Move bulk of code into module

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>
2025-11-15 11:08:52 +01:00
df9a4e6a40 projects-dir-*.mk: Re-add files necessary for building projects directory

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>
2025-11-13 16:23:35 +01:00
bc883deed4 Everywhere: Remove everything non-essential for "make clean all"

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>
2025-11-14 15:02:56 +01:00
cea804eac4 projects-dir.mk: Remove Makefile from CVS/Entries

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>
2025-11-11 16:58:22 +01:00
9147a78f2e projects-dir.mk: Don't hardcode Makefile name

"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>
2025-11-06 16:51:10 +01:00
51c1a1508d projects-dir.mk: Support JWBDIR_NAME and JWBDIR_SEARCH_PATH

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>
2025-11-05 12:49:29 +01:00
349f1d2602 Makefile: Add target text-files-list-0

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>
2024-12-09 08:31:32 +00:00
2989cc87c8 Makefile: JWB_SCRIPT_DIR: Add support for /opt/jw-build/bin
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-16 15:21:15 +00:00
a343cf7806 pkg-install-%-deps: Protect projects from shell with quotes

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>
2024-06-30 17:01:18 +00:00
19bc4037c0 Makefile: Make list-files consider build dependencies, too
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-25 17:35:35 +00:00
4ebe82970f projects-dir.mk: Make INTERACTIVE=true default
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-11-30 13:32:30 +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
3e99fe51cd projects-dir.mk: Don't do git-pull.done before git-pull-%

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>
2020-03-23 08:13:14 +00:00
9370121c65 Fix: Tried to purge on first download without jw-build present
Signed-off-by: Jan Lindemann <jan@janware.com>
2020-01-20 09:21:35 +00:00
20e599c049 projects-dir.mk: Add python3 to BASE_PKGS
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-10 18:51:39 +00:00
2a57902480 projects-dir.mk: Mention help target in comment
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-09 09:57:16 +00:00
82f48a4630 projects-dir.mk: Add help target
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-09 09:52:31 +00:00
36bf04a4d2 projects-dir.mk: Do pull.done before git-pull-%

This might fix a situation where make git-pull-<user> fails, because jw-build isn't there, yet

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-07 19:22:53 +00:00
6bdb16878a make: Replace "pereq" in targets by "deps"

"prereq" is simply impossible to use in explanations with a straight face.

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-12-07 19:21:08 +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
7fc3e196e9 projects.mk: Minimal beautification
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-24 20:34:24 +00:00
48d1bd0256 projects-dir.mk: Comment beautification
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-24 12:34:42 +00:00
a627b1273e projects-dir.mk: Beautify header

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>
2019-06-19 08:10:35 +00:00
cbbd8011e3 projects-dir.mk: Remove links.done machinery

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>
2019-06-15 10:22:19 +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
0bf05a5959 projects-dir.mk: Add targets echo-projects and echo-target-projects
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-06-04 12:56:15 +00:00
ae48f6aab6 projects-dir.mk: Ditch auto-detection of interactive use

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>
2019-06-03 07:41:43 +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
0d2e255bff projects-dir.mk: Only clean projects which have .done files lying around
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-05-30 13:33:12 +00:00
fb22c800dc projects-dir.mk: Add xdg-utils to BASE_PKGS (for xdg-open)
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-05-25 07:35:32 +00:00
91d7ba8aa4 projects-dir.mk: Add time to BASE_PKGS
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-05-16 20:34:07 +00:00
17a080138c make: Prefix BUILD_ to a couple of makefile variables

Rename variables to avoid collision:

OBJ -> BUILD_OBJ INCLUDE -> BUILD_INCLUDE LIBFLAGS -> BUILD_LIBFLAGS LPPFLAGS -> BUILD_LPPFLAGS

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-04-08 18:26:45 +00:00
68f25261ba make: Clean-indented makefiles
Signed-off-by: Jan Lindemann <jan@janware.com>
2019-03-17 16:24:26 +00:00