27e9b23849
build.cmds.CmdListRepos: Support username/password authentication
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 11:29:50 +01:00
50744fc41e
build.cmds.CmdListRepos: Pass -f to curl
...
curl exits with 0 success status, even if the server returns HTTP 401. Passing -f fixes that and has curl error out with exit code 22. It doesn't show which error, though.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 10:56:47 +01:00
150bc97fc9
build.lib.util, build.App: Beautify exceptions
...
Make exceptions somewhat more readable.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 10:44:14 +01:00
9d06e0bf2e
CmdGetAuthInfo: Code beautification
...
Fix clumsy code printing auth info.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 10:26:16 +01:00
41cc712dee
projects-dir-minimal.mk: Clone jw-build with proactiveAuth=basic
...
Pass -c http.proactiveAuth=basic to the initial "git clone jw-build" invocation. This is necessary while jw-build is still behind authentication. The restriction will likely be lifted (for jw-build), but for testing now it's fine, and it doesn't do any harm, either. With the way janware.com currently operates, it will also necessary for push over HTTP, so make it persistent in jw-build's configuration.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 09:38:24 +01:00
4c35ceb27a
projects-dir-minimal.mk: Support JW_BUILD_BRANCH
...
Pass --branch $(JW_BUILD_BRANCH) to git clone invocations during the initial cloning of jw-build. Used for testing.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 09:46:47 +01:00
250ef17764
Release 1.0.0-140@suse-tumbleweed/x86_64
...
Signed-off-by: Janware DevOps <devops@janware.com>
2025-11-20 00:09:49 +00:00
7c3dc53ddc
Start version: 1.0.0-140
...
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-20 00:09:23 +00:00
e95f91aff8
CmdGetAuthInfo: Fix: Suppress user name "None"
...
Don't print username="None" if there's no such user
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 20:00:13 +01:00
ae01ad6bdf
Release 1.0.0-139@suse-tumbleweed/x86_64
...
Signed-off-by: Janware DevOps <devops@janware.com>
2025-11-19 08:33:24 +00:00
f01cbba53a
Start version: 1.0.0-139
...
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-19 08:32:58 +00:00
6d7d18d9bd
projects-dir-minimal.mk: Fix get-user-info infocation
...
jw-python is invoked with -t (topdir) instead of -p (prefix) for JANWARE_USER detection, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 09:16:24 +01:00
f750b2cf05
CmdGetAuthInfo: Don't use non-git jw-build
...
Don't try to use non-git jw-build repositories to retrieve auth info.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 09:15:13 +01:00
bf6a83ccac
build.cmds.CmdListRepos: Fix ssh://git.janware.com
...
A typo breaks enumeration of Git repos on git.janware.com, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 08:40:24 +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
1187c10c86
build.cmds.GetAuthInfo: Add module
...
Add command get-auth-info to jw-projects.py. It is meant to retrieve JANWARE_USER from an already cloned jw-build tree.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 08:14:43 +01:00
8de4a90796
projects-dir-minimal.mk: Fix linking after package build
...
Linking the projects-dir Makefile fails if make pkg-rebuild has been run on jw-build, because it leaves another projects-dir-minimal.mk below the dist directory. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-19 08:24:58 +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
b7833c928a
pgit.sh fix: --create-remote-user-repos parsed incorrectly
...
--create-remote-user-repos is not recognized because of is not recognized because of a typo, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 21:12:54 +01:00
d484749b79
cmds.CmdListRepos: Don't import from lib
...
Don't directly import from lib (i.e. from __init__.py), because that won't work until "make all" has not run through, i.e. during fresh checkout.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 20:09:23 +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
dc5515df09
pgit.sh clone: Use jw-projects.py instead of git-srv-admin.sh
...
Replace git-srv-admin.sh list-personal-projects by the more universal "jw-projects.py list-repos" for enumerating repo names. This is a step towards supporting Git servers other than janware.com.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 15:40:27 +01:00
1b21e33ded
pgit.sh: Support --remote-base
...
pgit.sh has ssh://$login@git.janware.com/srv/git/$fromuser/proj/$reponame hard-coded as the remote Git URLs of every cloned project.
This commit adds support for the global option --remote-base. Passing it changes the URL to <remote-base>/$fromuser/$reponame..
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 15:25:46 +01:00
3ed25d5654
scripts: Add symbolic link jw -> ../src/python/jw
...
Adding a symbolic link to src/python/jw allows jw-projects.py to run without pointing PYTHONPATH to that module.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 17:52:20 +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
aed14fd480
pgit.sh clone: Support --create-remote-user-repos
...
Add support for --create-user-repos to pgit.sh. It controls whether or not personal remote repositories on janware.com are created when cloning from another user.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 15:37:03 +01:00
9b85b3e8a6
build.cmds.CmdListRepos: Add module
...
Add the command list-repos to jw-projects.py. It is meant to do the same thing as "git-srv-adm.sh list-personal-projects", i.e. enumerate remote Git repositories, but also support additional servers and protocols. As of this commit, support for https://github.com and for forgejo installations over HTTPS is implemented.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 12:56:14 +01:00
b5ab0a3d26
build.lib.SSHClient: Add module
...
SSHClient(hostname) is an abstract class for SSH / SCP operations. It comes with two implementations, SSHClientInternal an SSHClientCmd. The former needs paramiko installed, which might be a reason to fail on unprepared systems, the latter is slower and more limited.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 12:11:31 +01:00
9f15868dd4
build.lib.utils: Add module
...
Add some utility functions, namely:
run_cmd(cmd: list[str], wd=None, throw=True, verbose=False) -> str|None run_curl(args: list[str], parse_json: bool=True) -> dict|str get_username(args: Namespace|None=None, url: str|None=None) -> str get_password(args: Namespace|None=None, url: str|None=None, askpass_env: list[str]=[]) -> str
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 12:07:02 +01:00
bc2033490f
jw.build.lib: Add module
...
Add jw.build.lib as a location for generic utility modules.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 12:05:58 +01:00
a863bb9747
jw.build.App: Unroll run_from_cmd_module()
...
run_from_cmd_module() is a helper function used to allow command selection alongside the legacy and now obsolete method. Unrolling it is a step towards adding proper argparse subparsers, so do that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 15:42:16 +01:00
75820eee7c
jw.build.App: Fix commands missing from help message
...
jw-projects.py --help doesn't list the commands, fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 15:41:28 +01:00
b7d88a6e22
py-defs.mk: Default PY_UPDATE_INIT_PY ?= true
...
Set PY_UPDATE_INIT_PY to true to match jw-build's default behaviour before the variable was introduced.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-18 12:04:29 +01:00
e6757727fa
purge-stale-projects.sh: Fix git-srv-admin.sh relies on PATH
...
git-srv-admin.sh is not necessarily in PATH, notably because jw-build doesn't add itself to it anylonger, so invoke it with itsits full path.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 13:15:02 +01:00
4074486735
purge-stale-projects.sh: Re-add purge-stale-projects.sh, needed for purging
...
Without purge-stale-projects.sh, projects not longer in the upstream directory don't get purged, so add it back.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 13:10:54 +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
3f8c1ad573
scm.sh: Be more explicit about where ls-files fails
...
scm.sh sometimes complains about "no VCS here" without detailing what "here" actually means. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 12:17:04 +01:00
9018eb7c30
projects-dir-minimal.mk: Run make after cloning jw-build
...
After initially cloning jw-build and including projects-dir-minimal.mk, new targets are not considered, so run make again.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 11:53:28 +01:00
b82d4249f9
pgit.sh: Remove CVS support
...
Don't identify projects directory by a the presence of a correct CVS subdirectory any longer.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 11:30:59 +01:00
4839f60cb8
jw-build-create-project.sh: Re-add jw-build-create-project.sh for toplevel git-init-%
...
Re-add jw-build-create-project.sh, because it's needed for the toplevel Makefile's git-init-% target.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 10:37:56 +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
e589caf73f
Re-add git-srv-admin.sh: Needed for enumerating repos via SSH
...
Since currently remote SSH git repos are identified via git-srv-admin.sh, we still need it to run make over a bare toplevel Makefile.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 08:52:12 +01:00
ab7140ccd4
Release 1.0.0-138@suse-tumbleweed/x86_64
...
Signed-off-by: Janware DevOps <devops@janware.com>
2025-11-17 01:30:27 +00:00
265354414e
Start version: 1.0.0-138
...
Signed-off-by: janware DevOps <devops@janware.com>
2025-11-17 00:08:47 +00:00
342030ee32
upload.sh: Re-add upload.sh, needed for release pipeline
...
upload.sh is needed for uploading a built package to the repo server, so re-add it.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-17 02:19:08 +01:00
0f3c45c1d3
Re-add jw-pkg: Use by many postinstall scripts
...
There's a certain logic that jw-pkg is part of jw-build, because it comes in handy to compile config file templates in a post-install stage. On the other hand, jw-base looks like a better place for that.
Re-adding for now, to not break too many packages.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-16 20:19:32 +01:00