Skip to content

[MIR reviewer's template] Clarity around the dh_makeshlibs -V rule #491

@pushkarnk

Description

@pushkarnk

I recently reviewed gpgmepp which has C++ bindings for GPGME. The package ships a libgpgmepp7 library but has no .symbols file - the documented reason is that C++ symbol mangling is not consistent across architectures.

The MIR reviewer's template on line 303 states:

RULE: - If it's a library, does it either have a symbols file or use an empty
RULE:   argument to dh_makeshlibs -V? (pass such a patch on to Debian, but
RULE:   don't block on it).

This means in the absence of a symbols file, we expect d/rules to have:

override_dh_makeshlibs:
     dh_makeshlibs -V

However, it turns out that -V with empty argument has the same effect as completely omitting -V. Both lead to the use of -VUpstream-Version for debhelper-compat >= 12.

See the dh_makeshlibs snippet here:

		if ($v_flag_set) {
			if ($shlibs_file) {
                            ...
			} else {
				# Set the default "-V" (with no value) is passed.
				$v_flag = 'Upstream-Version' if $v_flag eq '';  ### empty -V
			}
		} elsif ($v_flag eq '') {
			# Set the default if "-V" is omitted.   
			$v_flag = compat(11) ? 'None' : 'Upstream-Version';  ### omitted -V
		}

It looks like if no override_dh_makeshlibs already exists, no change is necessary. Can we simplify the rule or add this clarification?

Metadata

Metadata

Assignees

No one assigned

    Labels

    MIRFor the attention of the MIR team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions