From 352acc99df036b039b81538878657356915f1eb3 Mon Sep 17 00:00:00 2001 From: Andrey Volk Date: Sat, 11 May 2024 12:37:32 +0300 Subject: [PATCH] [Build-System] Add ARM64 support, extend Debian helper scripts. Co-authored-by: s3rj1k --- debian/bootstrap.sh | 63 +++++++++++++++++---------------- debian/util.sh | 48 ++++++++++++++++++------- debian/version-omit_revision.pl | 22 ++++++++++++ 3 files changed, 91 insertions(+), 42 deletions(-) create mode 100755 debian/version-omit_revision.pl diff --git a/debian/bootstrap.sh b/debian/bootstrap.sh index aba9e38bf70..fa407029385 100755 --- a/debian/bootstrap.sh +++ b/debian/bootstrap.sh @@ -65,6 +65,9 @@ avoid_mods=( avoid_mods_armhf=( languages/mod_v8 ) +avoid_mods_arm64=( + languages/mod_v8 +) avoid_mods_sid=( directories/mod_ldap ) @@ -352,7 +355,7 @@ EOF print_core_control () { cat <= 1.13.17) Recommends: Suggests: libfreeswitch1-dbg @@ -385,7 +388,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch Package: python-esl Section: python -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${shlibs:Depends}, \${misc:Depends}, \${python:Depends} Description: Cross-Platform Scalable Multi-Protocol Soft Switch $(debian_wrap "${fs_description}") @@ -394,7 +397,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch Package: libesl-perl Section: perl -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${shlibs:Depends}, \${misc:Depends}, \${perl:Depends} Description: Cross-Platform Scalable Multi-Protocol Soft Switch $(debian_wrap "${fs_description}") @@ -402,7 +405,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch This package contains the Perl binding for FreeSWITCH Event Socket Library (ESL). Package: freeswitch-meta-bare -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}) Recommends: freeswitch-doc (= \${binary:Version}), @@ -420,7 +423,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch bare FreeSWITCH install. Package: freeswitch-meta-default -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-mod-commands (= \${binary:Version}), freeswitch-mod-conference (= \${binary:Version}), @@ -462,7 +465,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch reasonably basic FreeSWITCH install. Package: freeswitch-meta-vanilla -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-init, freeswitch-mod-console (= \${binary:Version}), @@ -511,7 +514,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch running the FreeSWITCH vanilla example configuration. Package: freeswitch-meta-sorbet -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), Recommends: freeswitch-init, @@ -594,7 +597,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch modules except a few which aren't recommended. Package: freeswitch-meta-all -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-init, freeswitch-lang (= \${binary:Version}), @@ -705,7 +708,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch FreeSWITCH modules. Package: freeswitch-meta-codecs -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-mod-amr (= \${binary:Version}), freeswitch-mod-amrwb (= \${binary:Version}), @@ -732,7 +735,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch most FreeSWITCH codecs. Package: freeswitch-meta-codecs-dbg -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-mod-amr-dbg (= \${binary:Version}), freeswitch-mod-amrwb-dbg (= \${binary:Version}), @@ -759,7 +762,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch most FreeSWITCH codecs. Package: freeswitch-meta-conf -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch-conf-curl (= \${binary:Version}), freeswitch-conf-insideout (= \${binary:Version}), @@ -773,7 +776,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch examples for FreeSWITCH. Package: freeswitch-meta-lang -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch-lang-de (= \${binary:Version}), freeswitch-lang-en (= \${binary:Version}), @@ -789,7 +792,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch FreeSWITCH. Package: freeswitch-meta-mod-say -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch-mod-say-de (= \${binary:Version}), freeswitch-mod-say-en (= \${binary:Version}), @@ -814,7 +817,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch FreeSWITCH. Package: freeswitch-meta-mod-say-dbg -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch-mod-say-de-dbg (= \${binary:Version}), freeswitch-mod-say-en-dbg (= \${binary:Version}), @@ -839,7 +842,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch FreeSWITCH. Package: freeswitch-meta-all-dbg -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}), freeswitch-meta-codecs-dbg (= \${binary:Version}), freeswitch-meta-mod-say (= \${binary:Version}), @@ -943,7 +946,7 @@ Description: Cross-Platform Scalable Multi-Protocol Soft Switch Package: freeswitch-all-dbg Section: debug Priority: optional -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch-meta-all (= \${binary:Version}), freeswitch-meta-all-dbg (= \${binary:Version}) Description: debugging symbols for FreeSWITCH $(debian_wrap "${fs_description}") @@ -953,7 +956,7 @@ Description: debugging symbols for FreeSWITCH Package: freeswitch-dbg Section: debug Priority: optional -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch (= \${binary:Version}) Description: debugging symbols for FreeSWITCH $(debian_wrap "${fs_description}") @@ -963,7 +966,7 @@ Description: debugging symbols for FreeSWITCH Package: libfreeswitch1-dbg Section: debug Priority: optional -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, libfreeswitch1 (= \${binary:Version}) Description: debugging symbols for FreeSWITCH $(debian_wrap "${fs_description}") @@ -972,7 +975,7 @@ Description: debugging symbols for FreeSWITCH Package: libfreeswitch-dev Section: libdevel -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch Description: development libraries and header files for FreeSWITCH $(debian_wrap "${fs_description}") @@ -981,7 +984,7 @@ Description: development libraries and header files for FreeSWITCH Package: freeswitch-doc Section: doc -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends} Description: documentation for FreeSWITCH $(debian_wrap "${fs_description}") @@ -994,7 +997,7 @@ Description: documentation for FreeSWITCH ## languages Package: freeswitch-lang -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends}, freeswitch-lang-en (= \${binary:Version}) Description: Language files for FreeSWITCH @@ -1006,7 +1009,7 @@ Description: Language files for FreeSWITCH ## timezones Package: freeswitch-timezones -Architecture: amd64 armhf +Architecture: amd64 armhf arm64 Depends: \${misc:Depends} Description: Timezone files for FreeSWITCH $(debian_wrap "${fs_description}") @@ -1020,7 +1023,7 @@ EOF if [ ${use_sysvinit} = "true" ]; then cat <= 3.0-6), sysvinit | sysvinit-utils Conflicts: freeswitch-init Provides: freeswitch-init @@ -1033,7 +1036,7 @@ EOF else cat <&2 echo $orig } @@ -292,9 +308,9 @@ create_dsc () { prep_create_dsc "$@" - local OPTIND OPTARG suite_postfix="" suite_postfix_p=false zl=9 + local OPTIND OPTARG suite_postfix="" suite_postfix_p=false soft_reset=false zl=9 - while getopts 'a:f:m:p:s:u:z:' o "$@"; do + while getopts 'a:f:m:p:s:u:xz:' o "$@"; do case "$o" in a) ;; f) ;; @@ -302,6 +318,7 @@ create_dsc () { p) ;; s) ;; u) suite_postfix="$OPTARG"; suite_postfix_p=true;; + x) soft_reset=true;; z) zl="$OPTARG";; esac done @@ -328,7 +345,11 @@ create_dsc () { local dsc="../$(dsc_base).dsc" - git reset --hard HEAD^ && git clean -fdx + if $soft_reset; then + git reset --soft HEAD^ + else + git reset --hard HEAD^ && git clean -fdx + fi } 1>&2 echo $dsc } @@ -686,6 +707,7 @@ commands: Set FS bootstrap/build -j flags -u Specify a custom suite postfix + -x Use git soft reset instead of hard reset -z Set compression level create-orig (same for 'prep_create_orig') @@ -694,6 +716,8 @@ commands: Choose custom list of modules to build -n Nightly build -v Set version + -V Set version (without replacing every '-' to '~') + -x Use git soft reset instead of hard reset -z Set compression level EOF diff --git a/debian/version-omit_revision.pl b/debian/version-omit_revision.pl new file mode 100755 index 00000000000..c6f5767a29a --- /dev/null +++ b/debian/version-omit_revision.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Dpkg::Version; + +my $version; + +open(my $fh, '-|', 'dpkg-parsechangelog -S version') or die "Failed to execute dpkg-parsechangelog: $!"; +{ + local $/; + $version = <$fh>; +} +close $fh; + +$version =~ s/\s+$//; + +die "No version found or empty output from dpkg-parsechangelog" unless defined $version and $version ne ''; + +my $v = Dpkg::Version->new($version); +my $vs = $v->as_string(omit_epoch => 1, omit_revision => 1); + +print "$vs\n";