aboutsummaryrefslogtreecommitdiffstats
path: root/packaging/build
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/build')
-rwxr-xr-xpackaging/build/build-common.sh5
-rwxr-xr-xpackaging/build/build-packages.sh35
2 files changed, 40 insertions, 0 deletions
diff --git a/packaging/build/build-common.sh b/packaging/build/build-common.sh
index 3045689..5f119c6 100755
--- a/packaging/build/build-common.sh
+++ b/packaging/build/build-common.sh
@@ -44,6 +44,11 @@ echo " installing all packages + dependencies"
--find-links "$WHEEL_DIR" \
meshbay-common meshbay-hub meshbay-node 2>&1 | tail -3
+# --- Third-party notices: every package the venv ships, with its licence -------
+echo " writing THIRD-PARTY-NOTICES.txt"
+"$VENV_BUILD/bin/python" "$REPO/packaging/third_party_notices.py" \
+ -o "$ROOT/opt/meshbay-common/THIRD-PARTY-NOTICES.txt" meshbay-hub meshbay-node
+
# --- Strip build tools from the venv (not needed at runtime) ---------------
echo " stripping build tools"
"$VENV_BUILD/bin/pip" uninstall -y pip setuptools wheel 2>&1 | tail -1
diff --git a/packaging/build/build-packages.sh b/packaging/build/build-packages.sh
index ccacb81..8ca0e23 100755
--- a/packaging/build/build-packages.sh
+++ b/packaging/build/build-packages.sh
@@ -84,6 +84,38 @@ echo ""
echo "--- Packaging ($FORMAT) ---"
if [ "$FORMAT" = "deb" ]; then
+ # Debian policy: /usr/share/doc/<pkg>/copyright, machine-readable. The LGPL
+ # is in /usr/share/common-licenses and is referred to; the AGPL is not, so
+ # its full text goes in, as a DEP-5 licence paragraph (indented, "." for a
+ # blank line).
+ install_copyright() {
+ local pkg="$1" root="$2"
+ local doc="$root/usr/share/doc/$pkg"
+ mkdir -p "$doc"
+ {
+ echo "Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/"
+ echo "Upstream-Name: MeshBay"
+ echo "Source: https://git.meshbay.org/"
+ echo ""
+ echo "Files: *"
+ echo "Copyright: MeshBay contributors"
+ if [ "$pkg" = "meshbay-common" ]; then
+ echo "License: LGPL-3.0-or-later"
+ echo " On Debian systems, the full text of the GNU Lesser General Public"
+ echo " License version 3 is in /usr/share/common-licenses/LGPL-3, and the"
+ echo " GNU General Public License it builds on in /usr/share/common-licenses/GPL-3."
+ echo " ."
+ echo " The venv under /opt/meshbay-common carries the Python packages MeshBay"
+ echo " depends on, each under its own licence; they are listed, with their"
+ echo " licence texts, in /opt/meshbay-common/THIRD-PARTY-NOTICES.txt."
+ else
+ echo "License: AGPL-3.0-or-later"
+ sed -e 's/^$/./' -e 's/^/ /' "$REPO/LICENSE"
+ fi
+ } > "$doc/copyright"
+ chmod 644 "$doc/copyright"
+ }
+
build_deb() {
local pkg="$1"
local root="$STAGING/${pkg}-root"
@@ -102,6 +134,8 @@ if [ "$FORMAT" = "deb" ]; then
[ -f "$deb_dir/control" ] && chmod 644 "$deb_dir/control"
[ -f "$deb_dir/conffiles" ] && chmod 644 "$deb_dir/conffiles"
+ install_copyright "$pkg" "$root"
+
dpkg-deb --build --root-owner-group "$root" "$OUT/${pkg}_${VERSION}_${ARCH}.deb"
echo " -> $OUT/${pkg}_${VERSION}_${ARCH}.deb"
}
@@ -127,6 +161,7 @@ elif [ "$FORMAT" = "rpm" ]; then
rpmbuild \
--define "_topdir $RPMBUILD_DIR" \
--define "_staging_root $root" \
+ --define "_repo_root $REPO" \
-bb "$RPMBUILD_DIR/SPECS/${pkg}.spec" 2>&1 | tail -5
local rpm_file