e31e50036d
pgit.sh: push doesn't understand --login
...
--login is not understood by pgit.sh push. Solve that by allowing all commands a --login option. This addresses our use case, but isn't ideal of course. Will be finally fixed by moving pgit.sh's functionality into Python code.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-26 20:55:35 +01:00
0d95ccc5a0
pgit.sh: clone --login configures broken remote
...
pgit.sh clone --login <username> fails to insert said username into a remotes url while adding it: Of ssh://<username>@git.janware.com/srv/git, only ssh://@git.janware.com/srv/git makes it into the config. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-26 20:00:51 +01:00
f9f0041790
pgit.sh: Support --login
...
In the move away from environment variables, replace JANWARE_USER support in pgit.sh by the --login option.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-24 10:35:07 +01:00
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
9283479489
make, scripts: Don't unconditionally clone with proactiveAuth=basic
...
Don't unconditionally add proactiveAuth=basic to Git's config during clone, but only if cloning happens after authentication.
This saves unauthenticated users funny password prompts. On the other hand, this makes a server setting persistent which could be changed on the server.
URL =~ /api/ (or so) => 401, followed by Basic Auth URL !=~ /api/ (or so) => Redirect or free access, depending on resource
Currently all resources, including API, are accessible by either basic auth or a Cookie, but basic auth needs to be present in the first request, which throws off some clients (notably Git without proactiveAuth=basic).
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 17:32:04 +01:00
c37f2aaca3
pgit.sh: Deprecate CentOS 7
...
CentOS 7's Git doesn\'t understand -C, consider that obsolete and don't cd into a directory any longer.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 16:15:26 +01:00
e46ab382e9
pgit.sh: Set http.proactiveAuth=basic
...
For git clone, use and persist the http.proactiveAuth=basic config option, because it's needed for janware.com servers.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-20 15:07:17 +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
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
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
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
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
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
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
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
31537a0bd6
build.cmds.CmdCreatePkgConfig: Add module
...
Implement the functionality of create-pkg-config.sh in a Python module CmdCreatePkgConfig.py. This allows to remove create-pkg-config.sh and jw-build-functions.sh.
Note that the translation was done pretty literally to play it safe. More code can and should be removed by taking advantage of the fact that jw-projects.py knows more about the project than the shell scripts.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-16 17:31:16 +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
7a315442d4
create-mkdebian.sh: Re-add create-mkdebian.sh
...
pkg.sh's operating system abstraction doesn't make much sense with the debian compatibilty script removed, so add it back.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-16 16:31:52 +01:00
3842e98e11
pkg-manager.sh: Re-add pkg-manager.sh
...
pkg-manager.sh is needed by rollout cronjob, so re-add it.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-15 11:04:13 +01:00
d7d4ffa640
py-run.mk, python-tools.sh: Re-add files necessary for jw-client-devops-web
...
jw-client-devops-web needs py-run.mk and python-tools.sh, add them.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-14 17:15:24 +01:00
bf16c6714b
make, scripts: Re-add files necessary for building ytools
...
Re-add everthing needed for building and packaging ytools. This is a big commit, 2002 lines of code. It mostly consists of C/C++ machinery, plus some documentation-related stuff.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-14 15:59:49 +01:00
5b758023ac
pgit.sh: Re-add scripts/pgit.sh
...
pgit.sh is not indispensable for building a projects directory, but it is necessary for some convenience targets in projects-dir.mk.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-14 15:38:54 +01:00
82eb80979d
bin, make, scripts: Re-add files necessary for packaging jw-build
...
Re-add all files necessary to package jw-build itself, i.e. sucessfully run make pkg-rebuild-reinstall. This adds 1892 lines of code.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-14 11:22:50 +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
c36c83c164
scripts/Makefile: Make jannet jcs jw-pkg optional
...
Make a few scripts optional which don't belong into a minimal jw-build, increasing compatibility with a branch which removes them.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-14 13:46:40 +01:00
069aa5bc1b
qemu-boot.sh: Boot from LAN by default
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-11-13 15:26:08 +01:00
f82988dcc0
projects.py: Fix exception in error message (missing -devel package)
...
Missing -devel packages during build often lead to this:
WARNING: No project directory for module "dw-pi-playlist: No project
path found for module "dw-pi-playlist"
but actually, the warning isn't correctly logged. Instead, an exception is thrown. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-10-19 10:30:47 +00:00
eb3949d085
jw-pkg: Support -c option (template file attribute definition pattern)
...
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>
2025-09-21 11:43:46 +00:00
9b546592e1
jw-pkg: Honour #conf: line at top of template
...
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>
2025-09-13 10:46:53 +00:00
a0842c6297
qemu-boot.sh: Replace deprecated brctl by iproute2 (ip)
...
/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>
2025-07-16 13:23:21 +00:00
8e7ceb6444
jw-pkg: Support command list-changed-files
...
list-changed-files does the obvious: List all files locally diverging from its packaged version.
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-07-05 13:44:59 +00:00
8b8f1cc306
projects.py: Allow projects with non-existing project directory
...
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>
2025-03-30 12:24:10 +00:00
144cb341b7
create-mkspec.sh: Remove -n $NAME from %prep
...
%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>
2025-03-26 16:58:07 +00:00
856dae7efa
collect-installed-pkg-changes.sh: Ddefault packages to jw-pkg list
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2025-02-19 16:49:36 +00:00
fd6607de15
projects.py: Os-cascade: Fix regex
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-12-03 12:26:35 +00:00
531e0eab19
scm.sh: Ls-files: Add --recurse-submodules for git
...
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>
2024-07-16 10:57:52 +00:00
531798ed0b
jw-pkg: Beautify logging
...
Remove superfluous comma from "saving backup".
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-16 10:57:51 +00:00
8702a63323
jw-pkg: Fix ignored target file metadata
...
During an invokation owner, group and mode definitions of one target file could leak into another.
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-07-05 11:20:55 +00:00
b87099bd3a
pkg-manager.sh: Remove eval from shell commands
...
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>
2024-06-30 16:55:44 +00:00
c2ad910e91
jw-pkg compile-templates: Beautify logging
...
Don't renew files with nothing to change, and be verbose about it.
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-28 05:40:12 +00:00
5e66868557
jw-pkg: Add command get-value-from-tables
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-25 11:19:23 +00:00
6109703ccb
projects.py: Warn about modules which were not found
...
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-06-04 08:56:21 +00:00
94e1c29ede
projects.py proj-dir: Fall back on /opt
...
Search in /opt, if a project is not found in projects-dir
Signed-off-by: Jan Lindemann <jan@janware.com>
2024-05-25 15:38:50 +00:00