Make jw-projects.py list-repos support a local directory as base URL
of all git repositories, notably used by PROJECTS_DIR_REMOTE_BASE,
which can now point to a local directory.
Signed-off-by: Jan Lindemann <jan@janware.com>
Targets defined by projects-dir.mk are not available before it is
included, but make makes up its mind about what targets are available
after parsing the included makefiles, so remove that redundancy.
On the other hand, a dependency alone is not enough for make to
understand that an included makefile has been remade, it needs a
rule, so add a dummy-rule body. In this case only echoing that the
include file has been provided.
Signed-off-by: Jan Lindemann <jan@janware.com>
Kali Linux' default installation doesn't have /usr/bin/time which
brings out a but: $(TIME) doesn't expand to nothing but to -p, which
fails miserably, of course. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
PGIT_SH gets added --remote-base, but too late to make it into the
non-recursive variable PGIT_SH_CLONE. This leads to --remote-base
lacking from the clone invocation, and anonymous Git over HTTP
failing because it tries to clone via SSH. Fix that.
Signed-off-by: Jan Lindemann <jan@janware.com>
To avoid network errors while fetching tags, run
git submodule foreach --recursive 'git fetch --tags -f origin
i.e. only fetch tags from origin, which by convention points to
git.janware.com.
Signed-off-by: Jan Lindemann <jan@janware.com>
make git-show-pushable-master-branches output too litte for two
reasons: 1. grep -q returns zero also if no matches are found, and 2.
PROJECTS doesn't contain all relevant projects. BUILD_PROJECTS is
more meaningful.
Signed-off-by: Jan Lindemann <jan@janware.com>
HTMLOWNER wwwrun is not a good idea with file mode 0644. The web
server process should not be allowed to write its own executable
files.
Signed-off-by: Jan Lindemann <jan@janware.com>
On pull / clone operations, run
git submodule foreach --recursive 'git fetch --tags'
Notably the Bootstrap package needs the tags to check out different
Bootstrap versions.
Signed-off-by: Jan Lindemann <jan@janware.com>
For a project to supply templates, it needs to advertise their
location. For this, the tmpl_dir make variable is added to
projects.mk. If other-project wants to get hold of some-project's
templates, it can do, e.g.:
TEMPLATES = $(wilcard $(call tmpl_dir,some-project)/*.tmpl)
To achieve this, support for the tmpls-dir command is added to
jw-projects.py.
Signed-off-by: Jan Lindemann <jan@janware.com>
Templates (i.e. text files ending as .tmpl) are not part of jw-pkg
anylonger, but controlling the way they are installed is beneficial
to other packages, so add tmpl.mk back.
That said, the variable names will need some tweaking to avoid
collisions. Postponed.
Signed-off-by: Jan Lindemann <jan@janware.com>
To avoid name collisions, rename svg.mk to the more specialized
svg-to-pixmap.mk, because that's what it does. To the same end, rename $(SVG)
to $(PIXMAP_TO_SVG_SRC_SVG).
Signed-off-by: Jan Lindemann <jan@janware.com>
--create-remote-user-repos had been disabled in
4053451bfd on the grounds that it's
hard to test and possibly superflous. It actually is not superfluous,
as devops builds show, and that's a valid test-case, so re-enable it.
Signed-off-by: Jan Lindemann <jan@janware.com>
Running "make install" from an arbitrary source directory currently
by default either installs to a user-accessible ENV_PREFIX, or, if
DEVELOPMENT is set to false, tries to install into the system's root
filesystem, but fails over permission errors. This was by design: To
now, I considered trying the latter ill-conceived, because installing
without package manager control bears the risk of leaving unversioned
files in the system.
Actually, thinking again, during development this looks like a valid
use case: Having run pkg-rebuild-reinstall before, installing from a
source directory will leave a trace in the package manager's hash
check output, will be handled during the next clean install, and
might be a useful shortcut for trying things in the root file system.
So make this possible by:
$ DEVELOPMENT=false make install
Signed-off-by: Jan Lindemann <jan@janware.com>
JS_MINIFY_FILTER_IN can be defined to nothing, in which case
minifying breaks, so don't minify if there's no filter. As an
additional benifit, defining it to the empty string in local.mk
allows to use Vim's quickfix window for syntax errors, because
there's no intermediate file created.
Signed-off-by: Jan Lindemann <jan@janware.com>
tailwind.mk is meant to generate a CSS file with tailwind classes
from configuration files named *.css.tw or *.css.tw.tmpl. The latter
flavour understands some make-style variables, as of now only
$(TOPDIR).
Signed-off-by: Jan Lindemann <jan@janware.com>
Define DATA_DIR, the directory where read-only, non-executable and
non-configurable resources should be stored. And define JSON_DIR as
$(DATA_DIR)/json.
Signed-off-by: Jan Lindemann <jan@janware.com>
PACKAGE_VCS_FILES defaults to false. Defining it to true before
including rpmdist.mk includes the version-control metadata files in
the source packages.
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>
scm.sh ls-files by defaults does not list the VSC metadata files.
Passing -a includes them in the output.
Signed-off-by: Jan Lindemann <jan@janware.com>
"git fetch $remote $fromref:$toref" fails if the $fromref is behind
$toref.
Unrolling the syntax into "git fetch" followed by
"git merge --ff-only $remote/$fromref $toref" is accepted, though, and saves
some otherwise necessary case distinction code around it.
Signed-off-by: Jan Lindemann <jan@janware.com>
Support option --vcs. CVS is retired, but worked well as a test case
for mixing multiple version-control systems in one tree.
purge-stale-projects.sh is still pretty ugly and will have to go, but
its API might still serve as a working template.
Signed-off-by: Jan Lindemann <jan@janware.com>