summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--GETTING-STARTED-WITH-dh-debputy.md5
-rw-r--r--debputy.pod4
-rw-r--r--lib/Debian/Debhelper/Sequence/zz_debputy_rrr.pm1
-rw-r--r--src/debputy/deb_packaging_support.py12
-rw-r--r--src/debputy/dh_migration/migrators_impl.py1
5 files changed, 22 insertions, 1 deletions
diff --git a/GETTING-STARTED-WITH-dh-debputy.md b/GETTING-STARTED-WITH-dh-debputy.md
index d14e6e4..227f6d7 100644
--- a/GETTING-STARTED-WITH-dh-debputy.md
+++ b/GETTING-STARTED-WITH-dh-debputy.md
@@ -134,13 +134,16 @@ The following `debhelper` commands are replaced in the `dh-sequence-zz-debputy-r
`debputy migrate-from-dh` will warn you if there is anything to worry about in relation to these commands.
* `dh_fixperms`
+ * `dh_shlibdeps`
* `dh_gencontrol`
* `dh_md5sums`
* `dh_builddeb`
In case something is flagged, it is most likely a hook target, which either have to be converted to `debputy`'s
features or moved earlier. The most common cases are hook targets for `dh_fixperms` and `dh_gencontrol`, which
-have sections below advising how to approach those.
+have sections below advising how to approach those. The only potential problematic command would be `dh_shlibdeps`.
+The `debputy` toolchain replaces `dh_shlibdeps` with a similar behavior to that of debhelper compat 14. If
+you need selective promotion or demotion of parts of a substvar, then that is currently not supported.
### Affected debhelper command list for `dh-sequence-zz-debputy` integration mode
diff --git a/debputy.pod b/debputy.pod
index e01f5a5..a88a4f0 100644
--- a/debputy.pod
+++ b/debputy.pod
@@ -614,6 +614,10 @@ dh_fixperms
=item -
+dh_shlibdeps
+
+=item -
+
dh_gencontrol
=item -
diff --git a/lib/Debian/Debhelper/Sequence/zz_debputy_rrr.pm b/lib/Debian/Debhelper/Sequence/zz_debputy_rrr.pm
index 53971e8..22d61e3 100644
--- a/lib/Debian/Debhelper/Sequence/zz_debputy_rrr.pm
+++ b/lib/Debian/Debhelper/Sequence/zz_debputy_rrr.pm
@@ -7,6 +7,7 @@ if (exists($INC{"Debian/Debhelper/Sequence/debputy.pm"})) {
add_command_options('dh_debputy', '--integration-mode=rrr');
remove_command('dh_fixperms');
+remove_command('dh_shlibdeps');
remove_command('dh_gencontrol');
remove_command('dh_md5sums');
remove_command('dh_builddeb');
diff --git a/src/debputy/deb_packaging_support.py b/src/debputy/deb_packaging_support.py
index 79f5a38..bb5979a 100644
--- a/src/debputy/deb_packaging_support.py
+++ b/src/debputy/deb_packaging_support.py
@@ -1010,6 +1010,18 @@ def setup_control_files(
f" the manifest or file a bug if it is caused by a built-in rule."
)
+ shlibdeps_definition = [
+ d
+ for d in metadata_maintscript_detectors["debputy"]
+ if d.detector_id == "dpkg-shlibdeps"
+ ][0]
+
+ ctrl = binary_package_data.ctrl_creator.for_plugin(
+ shlibdeps_definition.plugin_metadata,
+ shlibdeps_definition.detector_id,
+ )
+ shlibdeps_definition.run_detector(fs_root, ctrl, package_metadata_context)
+
dh_staging_dir = os.path.join("debian", binary_package.name, "DEBIAN")
try:
with os.scandir(dh_staging_dir) as it:
diff --git a/src/debputy/dh_migration/migrators_impl.py b/src/debputy/dh_migration/migrators_impl.py
index 7856d27..cb05e50 100644
--- a/src/debputy/dh_migration/migrators_impl.py
+++ b/src/debputy/dh_migration/migrators_impl.py
@@ -64,6 +64,7 @@ DH_COMMANDS_REPLACED = {
MIGRATION_TARGET_DH_DEBPUTY_RRR: frozenset(
{
"dh_fixperms",
+ "dh_shlibdeps",
"dh_gencontrol",
"dh_md5sums",
"dh_builddeb",