Files
perl-MIME-Base64/perl-MIME-Base64.spec
2025-08-12 18:15:26 +02:00

121 lines
4.0 KiB
RPMSpec

#
# spec file for package perl-MIME-Base64
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define cpan_name MIME-Base64
Name: perl-MIME-Base64
Version: 3.16
Release: 0
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Encoding and decoding of base64 strings
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
Source100: README.md
BuildRequires: perl
BuildRequires: perl-macros
%{perl_requires}
%description
This module provides functions to encode and decode strings into and from
the base64 encoding specified in RFC 2045 - _MIME (Multipurpose Internet
Mail Extensions)_. The base64 encoding is designed to represent arbitrary
sequences of octets in a form that need not be humanly readable. A
65-character subset ([A-Za-z0-9+/=]) of US-ASCII is used, enabling 6 bits
to be represented per printable character.
The following primary functions are provided:
* encode_base64( $bytes )
* encode_base64( $bytes, $eol );
Encode data by calling the encode_base64() function. The first argument is
the byte string to encode. The second argument is the line-ending sequence
to use. It is optional and defaults to "\n". The returned encoded string is
broken into lines of no more than 76 characters each and it will end with
$eol unless it is empty. Pass an empty string as second argument if you do
not want the encoded string to be broken into lines.
The function will croak with "Wide character in subroutine entry" if $bytes
contains characters with code above 255. The base64 encoding is only
defined for single-byte characters. Use the Encode module to select the
byte encoding you want.
* decode_base64( $str )
Decode a base64 string by calling the decode_base64() function. This
function takes a single argument which is the string to decode and returns
the decoded data.
Any character not part of the 65-character base64 subset is silently
ignored. Characters occurring after a '=' padding character are never
decoded.
If you prefer not to import these routines into your namespace, you can
call them as:
use MIME::Base64 ();
$encoded = MIME::Base64::encode($decoded);
$decoded = MIME::Base64::decode($encoded);
Additional functions not exported by default:
* encode_base64url( $bytes )
* decode_base64url( $str )
Encode and decode according to the base64 scheme for "URL applications"
[1]. This is a variant of the base64 encoding which does not use padding,
does not break the string into multiple lines and use the characters "-"
and "_" instead of "+" and "/" to avoid using reserved URL characters.
* encoded_base64_length( $bytes )
* encoded_base64_length( $bytes, $eol )
Returns the length that the encoded string would have without actually
encoding it. This will return the same value as
'length(encode_base64($bytes))', but should be more efficient.
* decoded_base64_length( $str )
Returns the length that the decoded string would have without actually
decoding it. This will return the same value as
'length(decode_base64($str))', but should be more efficient.
%prep
%autosetup -n %{cpan_name}-%{version}
%build
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
%make_build
%check
make test
%install
%perl_make_install
%perl_process_packlist
%perl_gen_filelist
%files -f %{name}.files
%doc benchmark benchmark-qp Changes README
%license LICENSE
%changelog