From 516df1bb042e49afc8c84fa70b019ff3697cb663 Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Thu, 13 Mar 2025 12:50:25 +0000 Subject: [PATCH] build: Factor out the dist hook Signed-off-by: Simon McVittie <smcv@collabora.com> --- Makefile.am | 20 +++----------------- meson.build | 6 ++++++ tools/dist.sh | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 17 deletions(-) create mode 100755 tools/dist.sh diff --git a/Makefile.am b/Makefile.am index 52111ad..22a9386 100644 --- a/Makefile.am +++ b/Makefile.am @@ -53,6 +53,7 @@ EXTRA_DIST = \ tools/check-coding-style.mk \ tools/check-py-style.sh \ tools/check-whitespace.sh \ + tools/dist.sh \ tools/generate-pkginfo.py \ $(NULL) @@ -369,23 +370,8 @@ $(patsubst %,%.test,$(test_programs)): %.test: Makefile # === Documentation === dist-hook: - echo $(VERSION) > $(distdir)/.version - $(MKDIR_P) $(distdir)/dbus_python.egg-info - touch $(distdir)/MANIFEST - touch $(distdir)/MANIFEST.in - touch $(distdir)/dbus_python.egg-info/SOURCES.txt - $(PYTHON) $(distdir)/tools/generate-pkginfo.py $(VERSION) $(distdir)/PKG-INFO - echo > $(distdir)/dbus_python.egg-info/dependency_links.txt - echo _dbus_bindings > $(distdir)/dbus_python.egg-info/top_level.txt - echo _dbus_glib_bindings >> $(distdir)/dbus_python.egg-info/top_level.txt - echo dbus >> $(distdir)/dbus_python.egg-info/top_level.txt - cp $(distdir)/PKG-INFO $(distdir)/dbus_python.egg-info/PKG-INFO - ( cd $(distdir) && find -type d -o -print ) | \ - LC_ALL=C sort | \ - $(SED) -e 's|^\./||' \ - > $(distdir)/MANIFEST - sed -e 's/.*/include &/' < $(distdir)/MANIFEST > $(distdir)/MANIFEST.in - cp $(distdir)/MANIFEST $(distdir)/dbus_python.egg-info/SOURCES.txt + MESON_PROJECT_DIST_ROOT="${distdir}" \ + $(srcdir)/tools/dist.sh "${VERSION}" "${PYTHON}" maintainer-upload: rsync -tvpP --chmod=ugo=r $(DIST_ARCHIVES) $(DIST_ARCHIVES:%=%.asc) \ diff --git a/meson.build b/meson.build index 8251880..d5da6fb 100644 --- a/meson.build +++ b/meson.build @@ -238,3 +238,9 @@ gi_dep = py_mod.find_installation( if dbus_run_session.found() subdir('test') endif + +meson.add_dist_script( + 'tools/dist.sh', + meson.project_version(), + py.full_path(), +) diff --git a/tools/dist.sh b/tools/dist.sh new file mode 100755 index 0000000..5f62724 --- /dev/null +++ b/tools/dist.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# Copyright 2006-2025 Collabora Ltd. +# SPDX-License-Identifier: MIT + +set -eux + +distdir="${MESON_PROJECT_DIST_ROOT}" + +MKDIR_P="${MKDIR_P-mkdir -p}" +SED="${SED-sed}" + +VERSION="$1" +PYTHON="$2" + +umask 022 + +echo "${VERSION}" > "${distdir}/.version" +${MKDIR_P} "${distdir}/dbus_python.egg-info" +touch "${distdir}/MANIFEST" +touch "${distdir}/MANIFEST.in" +touch "${distdir}/dbus_python.egg-info/SOURCES.txt" +${PYTHON} "${distdir}/tools/generate-pkginfo.py" "${VERSION}" "${distdir}/PKG-INFO" +echo > "${distdir}/dbus_python.egg-info/dependency_links.txt" +echo _dbus_bindings > "${distdir}/dbus_python.egg-info/top_level.txt" +echo _dbus_glib_bindings >> "${distdir}/dbus_python.egg-info/top_level.txt" +echo dbus >> "${distdir}/dbus_python.egg-info/top_level.txt" +cp "${distdir}/PKG-INFO" "${distdir}/dbus_python.egg-info/PKG-INFO" + +( cd "${distdir}" && find . -type d -o -print ) | \ + LC_ALL=C sort | \ + ${SED} -e 's|^\./||' \ + > "${distdir}/MANIFEST" +${SED} -e 's/.*/include &/' < "${distdir}/MANIFEST" > "${distdir}/MANIFEST.in" +cp "${distdir}/MANIFEST" "${distdir}/dbus_python.egg-info/SOURCES.txt" -- GitLab