jw-pkg/make
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann de7984f63a
Some checks failed
CI / Packaging - Kali Linux (pull_request) Failing after 2m59s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m28s
CI / Packaging test (pull_request) Failing after 0s
scripts / make: Add Recommends support
The spec generator only supports Requires, Conflicts and Provides from
the [pkg.requires.*], [pkg.conflicts.*] and [pkg.provides.*] sections of
make/project.conf. A package that works without but is better with another
package, like jw-amavis-run without jw-clamav-run, must hard-require it, so
the dependency is pulled in on every install and cannot be removed without
dragging the depending package along.

This commit adds Recommends support to the spec generation chain:

- CmdPkgRecommends: new pkg-recommends command that reads the
  [pkg.recommends.<flavour>] sections, same base as pkg-requires
- pkg-dist.mk: compute PKG_RECOMMENDS_RUN and pass it to pkg.sh via a new
  -E option
- pkg.sh: accept -E and forward it to the mkspec wrapper
- mkspec-wrapper.sh: accept -E and export RECOMMENDS_RUN
- create-mkspec.sh: emit a Recommends: line when RECOMMENDS_<subpkg> is set
- create-mkdebian.sh: emit a Recommends: field in the debian control file

Projects without a [pkg.recommends.*] section generate unchanged specs:
every new line is guarded by a non-empty test. zypper follows Recommends by
default, so existing OpenSUSE installations are unaffected; a recommended
package can be removed without dragging the depending package along.

Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.85.1
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-09-19 17:48:31 +02:00
..
backup.mk make, scripts: Re-add files necessary for building ytools 2025-11-14 15:59:49 +01:00
bin.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
cache.mk cache.mk: Avoid recaching stale variable values 2026-08-11 14:25:34 +02:00
cleandirs.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
conf.mk make: Fix CONFIG_SUBDIR 2026-09-07 09:23:17 +02:00
cpp-extra-targets.mk make, scripts: Re-add files necessary for building ytools 2025-11-14 15:59:49 +01:00
cpp.mk cpp.mk, swig.mk: Re-add files necessary for building auth 2025-11-14 16:17:21 +01:00
debugger.mk defs.mk: Define Q and use it in *.mk 2026-01-26 17:58:23 +01:00
defs-cpp.mk make: Replace RPM -> PKG 2026-03-16 14:57:50 +01:00
defs-dev.mk make: Fix CONFIG_SUBDIR 2026-09-07 09:23:17 +02:00
defs-dirs.mk defs-dirs.mk: Filter out non-existing ordered subdirs 2026-09-05 13:39:51 +02:00
defs-dist.mk make: Fix CONFIG_SUBDIR 2026-09-07 09:23:17 +02:00
defs.mk scm.sh ls-files: Honor -f in Git repositories 2026-09-16 14:44:59 +02:00
depend.mk defs.mk: Define Q and use it in *.mk 2026-01-26 17:58:23 +01:00
dev-utils.mk dev-utils.mk: cat-makefiles: Fix typo 2026-06-17 20:01:42 +02:00
dirs.mk Fix: Failing $(PREREQ_DIRS_DONE) doesn\'t have sub-subdirectories rebuilt 2019-07-01 17:59:09 +00:00
disabled.mk make/disabled.mk: Re-add file for legacy projects 2026-09-19 17:34:36 +02:00
doc-rules.mk doc-rules.mk: Add empty target test 2026-08-19 20:51:11 +02:00
doc.mk Everywhere: Rename MODDIR -> JWBDIR 2019-06-29 21:34:18 +00:00
dummy-topdir.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
dummy.mk std-targets.mk: Add file 2026-01-26 17:17:23 +01:00
exe.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
gettext.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
git-cvs-bridge.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
git-submod.mk make / scripts: git.janware.com -> devgit.janware.com 2026-05-12 15:15:29 +02:00
htdocs.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
include.mk make: Support INSTALL_PREFIXDIR 2026-09-07 09:23:16 +02:00
install-files.mk install-files.mk: Add missing target "test" 2026-07-24 13:39:22 +02:00
js.mk js.mk: Don't minify without minifier 2025-12-11 17:23:22 +01:00
ldlibpath.mk ldlibpath.mk: Don't include py-path.mk anylonger 2026-07-24 13:25:09 +02:00
lib.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
list-files.mk scm.sh ls-files: Honor -f in Git repositories 2026-09-16 14:44:59 +02:00
lo.mk lo.mk: Fix warning that targets were not remade 2026-02-10 09:57:59 +01:00
make.mk make: Support INSTALL_PREFIXDIR 2026-09-07 09:23:16 +02:00
Makefile cache.mk: Include from topdir.mk, not make.mk 2026-07-22 14:38:24 +02:00
path-rules.mk defs.mk: Define Q and use it in *.mk 2026-01-26 17:58:23 +01:00
pkg-dist.mk scripts / make: Add Recommends support 2026-09-19 17:48:31 +02:00
platform.mk platform.mk: Remove --topdir-format from JW_PKG_PY 2026-08-11 16:45:14 +02:00
profile.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
profiler-defs.mk make, scripts: Re-add files necessary for building ytools 2025-11-14 15:59:49 +01:00
profiler-rules-run.mk make, scripts: Re-add files necessary for building ytools 2025-11-14 15:59:49 +01:00
profiler.mk make, scripts: Re-add files necessary for building ytools 2025-11-14 15:59:49 +01:00
proj.mk make: Replace RPM -> PKG 2026-03-16 14:57:50 +01:00
project.conf project.conf: pkg.requires.suse.release -= python3-pyright 2026-06-08 18:46:30 +02:00
projects+project.mk projects+project.mk: Add file 2026-02-18 01:20:26 +01:00
projects-dir-include.mk projects+project.mk: Add file 2026-02-18 01:20:26 +01:00
projects-dir-minimal.mk make / scripts: git.janware.com -> devgit.janware.com 2026-05-12 15:15:29 +02:00
projects-dir.mk rules.mk, projects-dir.mk: Add git-log targets 2026-09-16 18:16:17 +02:00
projects.mk projects.mk -> platform.mk: Move definitions up 2026-03-02 12:55:36 +00:00
py-check.mk py-check.mk: Run isort with "make format" 2026-08-11 16:45:14 +02:00
py-defs.mk py-defs.mk, py-mod.mk: Add PY_LOCAL_PY(C) 2026-08-24 18:14:16 +02:00
py-mod.mk py-mod.mk: Add TypeAlias to PY_SED_EXTRACT_EXPORT_DEF 2026-09-05 13:39:51 +02:00
py-mods.mk make: Re-add files necessary for building jw-python 2025-11-13 17:27:14 +01:00
py-ns-dir.mk py-ns-dir.mk: Support __init__.py generation 2026-09-05 13:39:51 +02:00
py-path.mk py-path.mk: Add target py-path 2026-07-24 13:32:51 +02:00
py-rules.mk py-rules.mk: py.clean: Honour PY_UPDATE_INIT_PY 2026-08-24 18:14:16 +02:00
py-run.mk run-success.mk: Record last successful run 2026-09-16 18:16:17 +02:00
py-test.mk py-xxx.mk: Clean more python tool caches 2026-07-22 14:41:38 +02:00
py-topdir.mk topdir.mk: Add JW_PKG_TMPL_XXX 2026-09-13 23:09:25 +02:00
py-version.mk projects.mk, py-defs.mk, py-version.mk: Add py-version.mk 2025-02-22 09:04:17 +00:00
rules.mk rules.mk, projects-dir.mk: Add git-log targets 2026-09-16 18:16:17 +02:00
run-success.mk run-success.mk: Record last successful run 2026-09-16 18:16:17 +02:00
run.mk run-success.mk: Record last successful run 2026-09-16 18:16:17 +02:00
scripts-targets.mk make: Support INSTALL_PREFIXDIR 2026-09-07 09:23:16 +02:00
scripts.mk Everywhere: Rename MODDIR -> JWBDIR 2019-06-29 21:34:18 +00:00
so.mk make: Support INSTALL_PREFIXDIR 2026-09-07 09:23:16 +02:00
srcdist.mk make: Replace RPM -> PKG 2026-03-16 14:57:50 +01:00
std-targets.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
std-tools.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
subdirs.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
svg-to-pixmap.mk Rename svg.mk to svg-to-pixmap.mk 2025-12-21 20:24:56 +01:00
swig.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
tag-defs.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
tag-rules.mk bin, make, scripts: Re-add files necessary for packaging jw-build 2025-11-14 11:22:50 +01:00
tailwind.mk tailwind.mk: Add file 2025-12-06 15:12:35 +01:00
targets-tools.mk make, scripts: Re-add files necessary for building ytools 2025-11-14 15:59:49 +01:00
test-exe.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
test-guard.mk test-guard.mk: Add file 2026-08-18 14:05:30 +02:00
test-jw-pkg.mk test-guard.mk: Add file 2026-08-18 14:05:30 +02:00
text.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
tmpl.mk make: Make target "test" depend on target "all" 2026-07-02 19:52:35 +02:00
tools.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
topdir.mk topdir.mk: Add target gitignore 2026-09-13 23:09:25 +02:00
upload-defs.mk upload-defs.mk: Add support for UPLOAD_PROTOCOL 2023-12-18 13:00:43 +00:00
upload-rules.mk bin, make, scripts: Re-add files necessary for packaging jw-build 2025-11-14 11:22:50 +01:00
vim.mk make: Align equal signs in *.mk to column 30 2026-03-16 14:57:50 +01:00
yapp.mk make: Support INSTALL_PREFIXDIR 2026-09-07 09:23:16 +02:00