cmd_log_install() defaults $c_logfile to "install.log", so every
invocation without -l appends to an install.log in the current
directory. That's semantical nonsense.
Default $c_logfile to empty instead. The existing empty-$c_logfile
early exit already skips logging, so no -l now means no log, and
callers that want a log pass -l explicitly, as the packaging flow
does through INSTALL_LOG.
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M (pi)
Signed-off-by: Jan Lindemann <jan@janware.com>
Fix shellcheck SC2068 (unquoted array expansions), SC2145 (mixed
string/array arguments), SC2328 (redirection in command
substitution), SC2173 (untrapable signals), and SC2148 (missing
shebang) errors across 14 script files.
Also configure scripts/Makefile with --severity=error so that only
errors (not warnings or notes) cause check failures. To be tightened
by follow-up commits.
Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL and pi.dev
Signed-off-by: Jan Lindemann <jan@janware.com>
After release, pkg.sh pushes the changes to VERSION and HASH
upstream. Failures are masked, though, propagate them.
Unclear what motivated masking the error. Tracking that down with git
blame leads to build-package.sh, which was inherited from ytools,
where the change was introduced 2014 with the trust-inspiring
comment:
attempted fix for error during commit of version files in
build-package.sh
Signed-off-by: Jan Lindemann <jan@janware.com>
Currently, completing a release works with a plain git push. It may
push to several repos, depending on how the client repo's origin's
pushurl is configured. Those repos may have different user names, and
if the ssh wrapper added -l via JW_PKG_SSH_EXTRA_OPTS, the push would
fail. Hence, disable JW_PKG_SSH_EXTRA_OPTS for that case.
Signed-off-by: Jan Lindemann <jan@janware.com>
Rename command "distro" to "pkg" together with "info", its last
remaining subcommand. "distro" is often used in the sense of "Linux
distribution", which would be too narrow for the targets jw-pkg could
theoretically support.
Signed-off-by: Jan Lindemann <jan@janware.com>
jw-pkg supports more than RPM-based package managers, but for
historic reasons, lots of its Makefile variables still have "RPM" in
their names. This is misleading. Replace "RPM" in variable names by
the more generic "PKG" where appropriate.
Signed-off-by: Jan Lindemann <jan@janware.com>
A compiled release package is currently uploaded to a fixed
directory, determine it dynamically for every distro seperately.
Signed-off-by: Jan Lindemann <jan@janware.com>
pkg.run is not evaluated on Debian, fix that. For now it's hacked
into pkg.sh, which is bound to be replaced by Python. The limited
hassle is still worth the detour.
Signed-off-by: Jan Lindemann <jan@janware.com>
dc945537 (pkg.sh log-install: Log %attr(0777, ...) for links) fixed
packaging symlink for Debian-based distros, but produces a warning on
RPM based distros: Links may not have explicit attributes, so go back
to not specifying them at all for RPM.
Signed-off-by: Jan Lindemann <jan@janware.com>
Among other atrocities, the Debian path filter contains some horrible
redundancies in an sed regular expression. Be a little less redundant
about it.
Signed-off-by: Jan Lindemann <jan@janware.com>
Not logging any attribute for links, as it's now, breaks Debian's
parser. So, log %attr(0777, $owner, $mode). This fixes the parser on
the Debian side and hopefully leaves the RPM side intact.
Signed-off-by: Jan Lindemann <jan@janware.com>
pkg.sh by default doesn't pack up version control metadata. Passing
-a or --include-vcs-files includes them in the source packages.
Signed-off-by: Jan Lindemann <jan@janware.com>
jw-build doesn't stop at building software, packaging it afterwards
is also a core feature, so this commit gives the package a better
name.
The commit replaces strings s/jw-build/jw-pkg/ in text files and file
names. Fallout to the functionality is fixed, variable names are left
as they are, though. To be adjusted by later commits.
Signed-off-by: Jan Lindemann <jan@janware.com>
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>
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>
System installation directories should not belong to jw-build-generated
packages, so exclude them via regex.
Signed-off-by: Jan Lindemann <jan@janware.com>
Shared libraries were detected as executables, which is true in a way, but
still the log-install target shouldn't wrap them into scripts.
Signed-off-by: Jan Lindemann <jan@janware.com>
filter_devel now identifies more intricate directory structures below /include/
as belonging into development packages. The filter is dynamically amended,
based on whether or not the directories contain .h or .hpp files.
Signed-off-by: Jan Lindemann <jan@janware.com>
Remove /inst-source from RPM installation sources, following
that same action within all repositories and mirrors
Signed-off-by: Jan Lindemann <jan@janware.com>
Generating the $(TOPDIR)/HASH file produced a warning for every
package file containing a whitespace character. Hopefully, this
build fixes the problem, by working on zero-delimited lists
of file names
Signed-off-by: Jan Lindemann <jan@janware.com>
- Links are installed with file attributes
- Sometimes links are wrongly logged as directories
Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
pkg.sh install-log now supports a -N option, meaning no-log-directories. This
installs directories, but doesn't log then in the install log, effectively
excluding them from being packaged. This is necessary for directories provided
by other packages. -N can be activated by adding LOG_INSTALL_EXTRA_OPTS += -N
to a Makefile, see changes in defs.mk.
pgk.sh install-log now also omits addition of %attr tags to symbolic links.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit makes pkg.sh and create-mkspec.sh check, if a -devel package is
specified, and if not, adds the contents of the -devel file list from the
install log to the -run file list.
This also involves adding a [-s subpackage] option to the
pkg.sh milk-install-log command.
Not implemented for debian packages.
Signed-off-by: Jan Lindemann <jan@janware.com>