[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/tor-browser-build][main] Bug 41067: Use Capture::Tiny instead of IO::CaptureOutput



Title: GitLab

richard pushed to branch main at The Tor Project / Applications / tor-browser-build

Commits:

  • 0ed7a191
    by Nicolas Vigier at 2024-01-30T11:49:05+01:00
    Bug 41067: Use Capture::Tiny instead of IO::CaptureOutput
    
    The IO::CaptureOutput perl module is deprecated, so we switch to
    Capture::Tiny. We also remove some uses of IO::CaptureOutput where it
    was not needed.
    

8 changed files:

Changes:

  • README
    ... ... @@ -21,7 +21,7 @@ You also need a few perl modules installed:
    21 21
     - Getopt::Long
    
    22 22
     - Template
    
    23 23
     - IO::Handle
    
    24
    -- IO::CaptureOutput
    
    24
    +- Capture::Tiny
    
    25 25
     - JSON
    
    26 26
     - File::Temp
    
    27 27
     - Path::Tiny
    
    ... ... @@ -41,7 +41,7 @@ If you are running Debian or Ubuntu, you can install them with:
    41 41
     
    
    42 42
     # apt-get install libdata-dump-perl libdata-uuid-perl libdatetime-perl \
    
    43 43
                       libdigest-sha-perl libfile-copy-recursive-perl \
    
    44
    -                  libfile-slurp-perl libio-all-perl libio-captureoutput-perl \
    
    44
    +                  libfile-slurp-perl libio-all-perl libcapture-tiny-perl \
    
    45 45
                       libio-handle-util-perl libjson-perl \
    
    46 46
                       libparallel-forkmanager-perl libpath-tiny-perl \
    
    47 47
                       libsort-versions-perl libstring-shellquote-perl \
    
    ... ... @@ -51,7 +51,7 @@ If you are running Debian or Ubuntu, you can install them with:
    51 51
     If you are running Fedora, CentOS or RHEL, you can install them with:
    
    52 52
     
    
    53 53
     # dnf install "perl(YAML::XS)" "perl(File::Basename)" "perl(Getopt::Long)" \
    
    54
    -              "perl(Template)" "perl(IO::Handle)" "perl(IO::CaptureOutput)" \
    
    54
    +              "perl(Template)" "perl(IO::Handle)" "perl(Capture::Tiny)" \
    
    55 55
                   "perl(JSON)" "perl(File::Temp)" "perl(Path::Tiny)" \
    
    56 56
                   "perl(File::Path)" "perl(File::Slurp)" \
    
    57 57
                   "perl(File::Copy::Recursive)" "perl(String::ShellQuote)"
    
    ... ... @@ -62,7 +62,7 @@ If you are running Fedora, CentOS or RHEL, you can install them with:
    62 62
     If you are running an Arch based system, you should be able to install them with:
    
    63 63
     
    
    64 64
     # pacman -S perl-datetime perl-path-tiny perl-yaml perl-yaml-libyaml \
    
    65
    -            perl-yaml-tiny perl-template-toolkit perl-io-captureoutput \
    
    65
    +            perl-yaml-tiny perl-template-toolkit perl-capture-tiny \
    
    66 66
                 perl-file-copy-recursive perl-string-shellquote \
    
    67 67
                 perl-sort-versions perl-data-uuid perl-data-dump perl-json \
    
    68 68
                 perl-digest-sha1 perl-io-all perl-file-slurp perl-sys-syscall \
    

  • rbm.conf
    ... ... @@ -704,7 +704,6 @@ gpg_allow_expired_keys: 1
    704 704
     
    
    705 705
     --- |
    
    706 706
       # This part of the file contains options written in perl
    
    707
    -  use IO::CaptureOutput qw(capture_exec);
    
    708 707
       (
    
    709 708
         var_p => {
    
    710 709
           nightly_torbrowser_version => sub {
    

  • tools/clean-old
    1 1
     #!/usr/bin/perl -w
    
    2 2
     use strict;
    
    3
    -use IO::CaptureOutput qw(capture_exec);
    
    4 3
     use FindBin;
    
    5 4
     use lib "$FindBin::Bin/../rbm/lib";
    
    6 5
     use RBM;
    

  • tools/dmg2mar
    ... ... @@ -29,7 +29,7 @@
    29 29
     #  $ export "PATH=$p7zipdir/bin:$PATH"
    
    30 30
     
    
    31 31
     use strict;
    
    32
    -use IO::CaptureOutput qw(capture_exec);
    
    32
    +use Capture::Tiny qw(capture);
    
    33 33
     use File::Slurp;
    
    34 34
     use File::Find;
    
    35 35
     use Parallel::ForkManager;
    
    ... ... @@ -48,6 +48,15 @@ sub exit_error {
    48 48
         exit (exists $_[1] ? $_[1] : 1);
    
    49 49
     }
    
    50 50
     
    
    51
    +sub capture_exec {
    
    52
    +  my @cmd = @_;
    
    53
    +  my ($stdout, $stderr, $exit) = capture {
    
    54
    +    system(@cmd);
    
    55
    +  };
    
    56
    +  return ($stdout, $stderr, $exit == 0, $exit) if wantarray();
    
    57
    +  return $stdout;
    
    58
    +}
    
    59
    +
    
    51 60
     sub osname {
    
    52 61
         my ($osname) = capture_exec('uname', '-s');
    
    53 62
         my ($arch) = capture_exec('uname', '-m');
    

  • tools/download-torbrowser
    ... ... @@ -6,7 +6,6 @@
    6 6
     use strict;
    
    7 7
     use English;
    
    8 8
     use LWP::Simple;
    
    9
    -use IO::CaptureOutput qw(capture_exec);
    
    10 9
     use File::Temp;
    
    11 10
     use File::Basename qw(fileparse);
    
    12 11
     use FindBin;
    

  • tools/signing/machines-setup/setup-signing-machine
    ... ... @@ -100,7 +100,7 @@ authorized_keys richard richard.pub
    100 100
     # Install rbm deps
    
    101 101
     install_packages libyaml-libyaml-perl libtemplate-perl libdatetime-perl \
    
    102 102
                      libio-handle-util-perl libio-all-perl \
    
    103
    -                 libio-captureoutput-perl libjson-perl libpath-tiny-perl \
    
    103
    +                 libcapture-tiny-perl libjson-perl libpath-tiny-perl \
    
    104 104
                      libstring-shellquote-perl libsort-versions-perl \
    
    105 105
                      libdigest-sha-perl libdata-uuid-perl libdata-dump-perl \
    
    106 106
                      libfile-copy-recursive-perl libfile-slurp-perl
    

  • tools/update-responses/README.md
    ... ... @@ -13,14 +13,14 @@ Dependencies
    13 13
     
    
    14 14
     The following perl modules need to be installed to run the script:
    
    15 15
       FindBin YAML::XS File::Slurp Digest::SHA XML::Writer File::Temp
    
    16
    -  IO::CaptureOutput Parallel::ForkManager XML::LibXML LWP JSON
    
    16
    +  Capture::Tiny Parallel::ForkManager XML::LibXML LWP JSON
    
    17 17
     
    
    18 18
     On Debian / Ubuntu you can install them with:
    
    19 19
     
    
    20 20
     ```
    
    21 21
       # apt-get install libfindbin-libs-perl libyaml-libyaml-perl \
    
    22 22
                         libfile-slurp-perl libdigest-sha-perl libxml-writer-perl \
    
    23
    -                    libio-captureoutput-perl libparallel-forkmanager-perl \
    
    23
    +                    libcapture-tiny-perl libparallel-forkmanager-perl \
    
    24 24
                         libxml-libxml-perl libwww-perl libjson-perl
    
    25 25
     ```
    
    26 26
     
    
    ... ... @@ -28,7 +28,7 @@ On Red Hat / Fedora you can install them with:
    28 28
     
    
    29 29
     ```
    
    30 30
       # for module in FindBin YAML::XS File::Slurp Digest::SHA XML::Writer \
    
    31
    -                  File::Temp IO::CaptureOutput Parallel::ForkManager \
    
    31
    +                  File::Temp Capture::Tiny Parallel::ForkManager \
    
    32 32
                       XML::LibXML LWP JSON
    
    33 33
         do yum install "perl($module)"; done
    
    34 34
     ```
    

  • tools/update-responses/update_responses
    ... ... @@ -14,7 +14,7 @@ use File::Copy;
    14 14
     use File::Temp;
    
    15 15
     use File::Find;
    
    16 16
     use POSIX qw(setlocale LC_ALL);
    
    17
    -use IO::CaptureOutput qw(capture_exec);
    
    17
    +use Capture::Tiny qw(capture);
    
    18 18
     use Parallel::ForkManager;
    
    19 19
     use File::Basename;
    
    20 20
     use XML::LibXML '1.70';
    
    ... ... @@ -265,9 +265,11 @@ sub create_incremental_mar {
    265 265
         local $ENV{MOZ_PRODUCT_VERSION} = $new_version;
    
    266 266
         local $ENV{MAR_CHANNEL_ID} = get_config($config, $new_version, $os, 'mar_channel_id');
    
    267 267
         local $ENV{TMPDIR} = $tmpdir;
    
    268
    -    my ($out, $err, $success) = capture_exec('make_incremental_update.sh',
    
    269
    -                                   $mar_file_path, "$tmpdir/A", "$tmpdir/B");
    
    270
    -    if (!$success) {
    
    268
    +    my ($out, $err, $exit) = capture {
    
    269
    +      system('make_incremental_update.sh',
    
    270
    +        $mar_file_path, "$tmpdir/A", "$tmpdir/B");
    
    271
    +    };
    
    272
    +    if ($exit) {
    
    271 273
             unlink $mar_file_path if -f $mar_file_path;
    
    272 274
             exit_error "making incremental mar:\n" . $err;
    
    273 275
         }
    
    ... ... @@ -490,9 +492,11 @@ sub extract_martools {
    490 492
         $martools_tmpdir = get_tmpdir($config);
    
    491 493
         my $old_cwd = getcwd;
    
    492 494
         chdir $martools_tmpdir;
    
    493
    -    my (undef, undef, $success) = capture_exec('unzip', $marzip);
    
    495
    +    my (undef, undef, $exit) = capture {
    
    496
    +      system('unzip', $marzip);
    
    497
    +    };
    
    494 498
         chdir $old_cwd;
    
    495
    -    exit_error "Error extracting $marzip" unless $success;
    
    499
    +    exit_error "Error extracting $marzip" if $exit;
    
    496 500
         $ENV{PATH} = "$martools_tmpdir/mar-tools:$initPATH";
    
    497 501
         if ($initLD_LIBRARY_PATH) {
    
    498 502
             $ENV{LD_LIBRARY_PATH} = "$initLD_LIBRARY_PATH:$martools_tmpdir/mar-tools";
    

  • _______________________________________________
    tor-commits mailing list
    tor-commits@xxxxxxxxxxxxxxxxxxxx
    https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits