diff --git a/scripts/Dpkg/Vendor/Trisquel.pm b/scripts/Dpkg/Vendor/Trisquel.pm index 383d5cc..8b65c43 100644 --- a/scripts/Dpkg/Vendor/Trisquel.pm +++ b/scripts/Dpkg/Vendor/Trisquel.pm @@ -3,6 +3,8 @@ # written by Colin Watson # Copyright © 2008 James Westby # Copyright © 2009 Raphaël Hertzog +# Copyright © 2022 Ruben Rodriguez +# Copyright © 2024 Luis Guzman # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -21,18 +23,18 @@ =head1 NAME -Dpkg::Vendor::Ubuntu - Ubuntu vendor class +Dpkg::Vendor::Trisquel - Trisquel vendor class =head1 DESCRIPTION -This vendor class customizes the behavior of dpkg scripts for Ubuntu +This vendor class customizes the behavior of dpkg scripts for Trisquel specific behavior and policies. B: This is a private module, its API can change at any time. =cut -package Dpkg::Vendor::Ubuntu 0.01; +package Dpkg::Vendor::Trisquel 0.01; use strict; use warnings; @@ -48,71 +50,20 @@ use parent qw(Dpkg::Vendor::Debian); sub run_hook { my ($self, $hook, @params) = @_; - if ($hook eq 'before-source-build') { - my $src = shift @params; - my $fields = $src->{fields}; - - # check that Maintainer/XSBC-Original-Maintainer comply to - # https://wiki.ubuntu.com/DebianMaintainerField - if (defined($fields->{'Version'}) and defined($fields->{'Maintainer'}) and - $fields->{'Version'} =~ /ubuntu/) { - if ($fields->{'Maintainer'} !~ /(?:ubuntu|canonical)/i) { - if (length $ENV{DEBEMAIL} and $ENV{DEBEMAIL} =~ /\@(?:ubuntu|canonical)\.com/) { - error(g_('Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address')); - } else { - warning(g_('Version number suggests Ubuntu changes, but Maintainer: does not have Ubuntu address')); - } - } - unless ($fields->{'Original-Maintainer'}) { - warning(g_('Version number suggests Ubuntu changes, but there is no XSBC-Original-Maintainer field')); - } - } - } elsif ($hook eq 'package-keyrings') { + if ($hook eq 'package-keyrings') { return ($self->SUPER::run_hook($hook), - '/usr/share/keyrings/ubuntu-archive-keyring.gpg'); + '/usr/share/keyrings/trisquel-archive-keyring.gpg'); } elsif ($hook eq 'archive-keyrings') { return ($self->SUPER::run_hook($hook), - '/usr/share/keyrings/ubuntu-archive-keyring.gpg'); + '/usr/share/keyrings/trisquel-archive-keyring.gpg'); } elsif ($hook eq 'archive-keyrings-historic') { return ($self->SUPER::run_hook($hook), - '/usr/share/keyrings/ubuntu-archive-removed-keys.gpg'); - } elsif ($hook eq 'register-custom-fields') { - my @field_ops = $self->SUPER::run_hook($hook); - push @field_ops, [ - 'register', 'Launchpad-Bugs-Fixed', - CTRL_FILE_CHANGES | CTRL_CHANGELOG, - ], [ - 'insert_after', CTRL_FILE_CHANGES, 'Closes', 'Launchpad-Bugs-Fixed', - ], [ - 'insert_after', CTRL_CHANGELOG, 'Closes', 'Launchpad-Bugs-Fixed', - ]; - return @field_ops; - } elsif ($hook eq 'post-process-changelog-entry') { - my $fields = shift @params; - - # Add Launchpad-Bugs-Fixed field - my $bugs = find_launchpad_closes($fields->{'Changes'} // ''); - if (scalar(@$bugs)) { - $fields->{'Launchpad-Bugs-Fixed'} = join(' ', @$bugs); - } - } elsif ($hook eq 'update-buildopts') { - my $build_opts = shift @params; - require Dpkg::Arch; - my $arch = Dpkg::Arch::get_host_arch(); - if (Dpkg::Arch::debarch_eq($arch, 'riscv64')) { - $build_opts->set('nocheck', 1, 'riscv64'); - } - } elsif ($hook eq 'update-buildprofiles') { - my $build_profiles_ref = shift @params; - unless(grep $_ =~ /^!?noudeb$/, @$build_profiles_ref) { - unshift(@$build_profiles_ref, 'noudeb'); - } else { - # Strip otherwise invalid profile name - @$build_profiles_ref = grep { $_ ne "!noudeb" } @$build_profiles_ref; - } + '/usr/share/keyrings/trisquel-archive-removed-keys.gpg'); } else { return $self->SUPER::run_hook($hook, @params); } + # Default return value for unknown/unimplemented hooks + return; } sub _lto_disabled { @@ -289,39 +240,11 @@ sub add_build_flags { return; } -=head1 PUBLIC FUNCTIONS - -=over - -=item $bugs = Dpkg::Vendor::Ubuntu::find_launchpad_closes($changes) - -Takes one string as argument and finds "LP: #123456, #654321" statements, -which are references to bugs on Launchpad. Returns all closed bug -numbers in an array reference. - -=cut - -sub find_launchpad_closes { - my $changes = shift; - my %closes; - - while ($changes && - ($changes =~ /lp:\s+\#\d+(?:,\s*\#\d+)*/pig)) { - $closes{$_} = 1 foreach (${^MATCH} =~ /\#?\s?(\d+)/g); - } - - my @closes = sort { $a <=> $b } keys %closes; - - return \@closes; -} - -=back - =head1 CHANGES =head2 Version 0.xx -This is a semi-private module. Only documented functions are public. +This is a private module. =cut