From 0f275c44af8352d289dbc2a9fb32eee8fb811755 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Fri, 27 Mar 2026 19:37:39 -0400 Subject: [PATCH] whitepaper: add html-cwe407 and html-minecraft targets; update clean --- whitepaper/Makefile | 109 ++++++++++++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 29 deletions(-) diff --git a/whitepaper/Makefile b/whitepaper/Makefile index 961f81f60..6b6fbf5ac 100644 --- a/whitepaper/Makefile +++ b/whitepaper/Makefile @@ -1,14 +1,16 @@ # whitepaper/Makefile -# Generates both undefect. white papers with slug-named output PDFs. +# Generates both undefect. white papers with slug-named output PDFs and HTML. # -# make pdf-cwe407 — full CWE-407 cross-ecosystem report -# make pdf-minecraft — gumyum: Minecraft + javac enterprise edition -# make all — both PDFs -# make clean — remove slug PDFs (leaves originals) +# make pdf-cwe407 — full CWE-407 cross-ecosystem report (PDF) +# make pdf-minecraft — gumyum: Minecraft + javac enterprise edition (PDF) +# make html-cwe407 — full CWE-407 report (HTML) +# make html-minecraft — gumyum report (HTML) +# make all — all PDFs and HTML +# make clean — remove slug PDFs and HTML (leaves originals) # # Output slugs: -# undefect-cwe407-$(DATE).pdf -# undefect-minecraft-enterprise-java-$(DATE).pdf +# undefect-cwe407-$(DATE).pdf / .html +# undefect-minecraft-enterprise-java-$(DATE).pdf / .html DATE := $(shell date +%Y-%m-%d) PANDOC := pandoc @@ -17,29 +19,54 @@ PYTHON := python3 SLUG_CWE407 := undefect-cwe407-$(DATE).pdf SLUG_MINECRAFT := undefect-minecraft-enterprise-java-$(DATE).pdf +HTML_CWE407 := undefect-cwe407-$(DATE).html +HTML_MINECRAFT := undefect-minecraft-enterprise-java-$(DATE).html # ── Outreach briefs ─────────────────────────────────────────────────────────── OUTREACH_DIR := outreach OUTREACH_CSS := $(OUTREACH_DIR)/outreach-style.css OUTREACH_HEADER := $(OUTREACH_DIR)/header-body.html -OUTREACH_BRIEFS := javac typescript ghc scala3 rustc erlang-otp swipl \ - postgresql mongodb frrouting tor solidity minecraft build-tools \ - hive spark kafka spring presto webpack \ - django rails pyramid bottle \ - hibernate mybatis exposed \ - efcore \ - sqlalchemy peewee \ - sequelize typeorm \ - doctrine \ - seaorm diesel \ - gorm \ - godot pygame sfml threejs angelscript dry tinkerpop \ - terraform ansible saltstack cfengine puppet \ - jenkins bazel \ - bird onos httpd \ - llvm gcc kotlin v8 spidermonkey \ - rubocop solargraph \ - networkx rabbitmq kicad buildkit luigi octave +OUTREACH_BRIEFS := \ + javac typescript ghc scala3 scala rustc erlang-otp swipl go kotlin swift \ + gcc llvm v8 spidermonkey crystal julia lua perl5 php ruby r elixir nim \ + postgresql mongodb mysql mariadb redis valkey cockroachdb tidb clickhouse \ + duckdb elasticsearch opensearch solr \ + scylladb yugabyte foundationdb rocksdb leveldb lmdb cassandra ceph memcached \ + frrouting bird onos odl httpd nginx haproxy openvpn zeek curl libgit2 vlc \ + traefik caddy varnish ovs \ + tor solidity minecraft geth substrate \ + build-tools hive spark kafka flink pulsar nats \ + storm zookeeper nifi artemis activemq camel \ + hudi iceberg druid pinot trino starrocks doris kylin \ + spring micronaut quarkus tomcat jetty \ + django rails pyramid bottle fastapi sinatra hanami phoenix gin fiber \ + hibernate mybatis efcore sqlalchemy peewee sequelize typeorm doctrine \ + seaorm diesel gorm exposed \ + godot pygame sfml threejs angelscript dry tinkerpop \ + neo4j janusgraph dgraph \ + ogre bullet bevy libgdx allegro5 sdl2 sdl3 panda3d box2d \ + raylib love2d \ + kubernetes nomad consul envoy istio cilium linkerd2 containerd moby \ + terraform ansible saltstack cfengine puppet jenkins bazel buildkit luigi \ + helm opentofu pulumi podman \ + prometheus otel-collector grafana victoria-metrics \ + synapse dendrite element-web \ + weechat unrealircd jvb ejabberd asterisk simplex-chat rocketchat \ + mattermost jami postfix opensmtpd dovecot linphone freeswitch \ + numpy pandas sklearn pytorch-geometric \ + celery ray prefect airflow argo metaflow kubeflow optuna \ + wasmtime wasmer \ + ninja mesa meson spirv-cross \ + linux hadoop keystone \ + grpc tokio actix-web nestjs \ + rubocop solargraph networkx rabbitmq kicad octave \ + presto webpack thrift gradle pip cmake \ + openssl mbedtls wolfssl \ + ros2 opencv open3d vtk graphhopper valhalla \ + ffmpeg gstreamer \ + igraph nova neutron \ + jsc wireshark nmap \ + hbase OUTREACH_PDFS := $(patsubst %,$(OUTREACH_DIR)/pdf/%.pdf,$(OUTREACH_BRIEFS)) OUTREACH_MD5 := $(OUTREACH_DIR)/MD5SUMS @@ -64,9 +91,9 @@ $(OUTREACH_MD5): $(OUTREACH_PDFS) pdf-outreach: $(OUTREACH_PDFS) $(OUTREACH_MD5) -.PHONY: all pdf-cwe407 pdf-minecraft pdf-outreach visuals clean +.PHONY: all pdf-cwe407 pdf-minecraft html-cwe407 html-minecraft pdf-outreach visuals clean -all: pdf-cwe407 pdf-minecraft pdf-outreach +all: html-cwe407 html-minecraft pdf-cwe407 pdf-minecraft pdf-outreach # ── Full CWE-407 white paper ────────────────────────────────────────────────── # Source: full-paper.md + pdf-style.css (ChunkFive embedded, no external deps) @@ -124,9 +151,33 @@ $(SLUG_MINECRAFT): $(GUMYUM_MD) $(GUMYUM_CSS) $(DOTS_SVG) $(DONUT_SVGS) pdf-minecraft: $(SLUG_MINECRAFT) +# ── HTML ────────────────────────────────────────────────────────────────────── + +$(HTML_CWE407): full-paper.md pdf-style.css + $(PANDOC) full-paper.md \ + --standalone \ + --css pdf-style.css \ + --resource-path=. \ + --metadata title="undefect. CWE-407: The Sedimentary Defect" \ + -o $(HTML_CWE407) + @echo "==> $(HTML_CWE407) ($$(du -h $(HTML_CWE407) | cut -f1))" + +html-cwe407: $(HTML_CWE407) + +$(HTML_MINECRAFT): $(GUMYUM_MD) $(GUMYUM_CSS) $(DOTS_SVG) $(DONUT_SVGS) + cd $(GUMYUM_DIR) && $(PANDOC) gumyum-minecraft-enterprize-java-edition.md \ + --standalone \ + --css gumyum-style.css \ + --resource-path=. \ + -o $(CURDIR)/$(HTML_MINECRAFT) + @echo "==> $(HTML_MINECRAFT) ($$(du -h $(HTML_MINECRAFT) | cut -f1))" + +html-minecraft: visuals $(HTML_MINECRAFT) + # ── Clean ───────────────────────────────────────────────────────────────────── clean: - rm -f undefect-cwe407-*.pdf undefect-minecraft-enterprise-java-*.pdf + rm -f undefect-cwe407-*.pdf undefect-cwe407-*.html + rm -f undefect-minecraft-enterprise-java-*.pdf undefect-minecraft-enterprise-java-*.html rm -f $(OUTREACH_DIR)/pdf/*.pdf $(OUTREACH_MD5) - @echo "Cleaned slug PDFs." + @echo "Cleaned slug PDFs and HTML."