diff -pruN 5.30-1/Changes 5.34-1/Changes
--- 5.30-1/Changes	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/Changes	2025-09-17 11:00:35.000000000 +0000
@@ -1,5 +1,19 @@
 Revision history for URI
 
+5.34      2025-09-17 11:00:27Z
+    - Add WebSocket (ws, wss) URI (GH#158) (david-dick)
+
+5.33      2025-09-17 03:23:13Z
+    - Add smtp scheme (GH#156) (SineSwiper)
+
+5.32      2025-05-10 21:26:50Z
+    - Add authority() to URI::otpauth (GH#152) (GH#153) (Lester Hightower)
+    - Implement URI::smb for Samba/CIFS (GH#149) (buralien)
+    - Silence warnings issued in t/otpauth.t (GH#154) (Olaf Alders)
+
+5.31      2024-11-06 03:38:29Z
+    - Re-releasing with corrected module permissions. No changes since 5.31
+
 5.30      2024-10-08 21:18:35Z
     - Add scp, ftps, ftpes, irc, ircs schemes (GH#16) (SineSwiper)
 
diff -pruN 5.30-1/MANIFEST 5.34-1/MANIFEST
--- 5.30-1/MANIFEST	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/MANIFEST	2025-09-17 11:00:35.000000000 +0000
@@ -17,6 +17,7 @@ lib/URI/QueryParam.pm
 lib/URI/Split.pm
 lib/URI/URL.pm
 lib/URI/WithBase.pm
+lib/URI/_emailauth.pm
 lib/URI/_foreign.pm
 lib/URI/_generic.pm
 lib/URI/_idna.pm
@@ -65,6 +66,8 @@ lib/URI/scp.pm
 lib/URI/sftp.pm
 lib/URI/sip.pm
 lib/URI/sips.pm
+lib/URI/smb.pm
+lib/URI/smtp.pm
 lib/URI/snews.pm
 lib/URI/ssh.pm
 lib/URI/telnet.pm
@@ -72,6 +75,8 @@ lib/URI/tn3270.pm
 lib/URI/urn.pm
 lib/URI/urn/isbn.pm
 lib/URI/urn/oid.pm
+lib/URI/ws.pm
+lib/URI/wss.pm
 perlimports.toml
 t/00-report-prereqs.dd
 t/00-report-prereqs.t
@@ -128,6 +133,8 @@ t/scheme-exceptions.t
 t/scp.t
 t/sftp.t
 t/sip.t
+t/smb.t
+t/smtp.t
 t/sort-hash-query-form.t
 t/split.t
 t/sq-brackets-legacy.t
@@ -140,6 +147,7 @@ t/urn-oid.t
 t/urn-scheme-exceptions.t
 t/userpass.t
 t/utf8.t
+t/ws.t
 uri-test
 xt/author/00-compile.t
 xt/author/distmeta.t
diff -pruN 5.30-1/META.json 5.34-1/META.json
--- 5.30-1/META.json	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/META.json	2025-09-17 11:00:35.000000000 +0000
@@ -47,7 +47,7 @@
             "Test::Pod" : "1.41",
             "Test::Pod::Coverage" : "1.08",
             "Test::Portability::Files" : "0",
-            "Test::Spelling" : "0.12",
+            "Test::Spelling" : "0.17",
             "Test::Version" : "1"
          }
       },
@@ -96,215 +96,231 @@
    "provides" : {
       "URI" : {
          "file" : "lib/URI.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::Escape" : {
          "file" : "lib/URI/Escape.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::Heuristic" : {
          "file" : "lib/URI/Heuristic.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::IRI" : {
          "file" : "lib/URI/IRI.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::QueryParam" : {
          "file" : "lib/URI/QueryParam.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::Split" : {
          "file" : "lib/URI/Split.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::URL" : {
          "file" : "lib/URI/URL.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::WithBase" : {
          "file" : "lib/URI/WithBase.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::data" : {
          "file" : "lib/URI/data.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file" : {
          "file" : "lib/URI/file.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::Base" : {
          "file" : "lib/URI/file/Base.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::FAT" : {
          "file" : "lib/URI/file/FAT.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::Mac" : {
          "file" : "lib/URI/file/Mac.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::OS2" : {
          "file" : "lib/URI/file/OS2.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::QNX" : {
          "file" : "lib/URI/file/QNX.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::Unix" : {
          "file" : "lib/URI/file/Unix.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::file::Win32" : {
          "file" : "lib/URI/file/Win32.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ftp" : {
          "file" : "lib/URI/ftp.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ftpes" : {
          "file" : "lib/URI/ftpes.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ftps" : {
          "file" : "lib/URI/ftps.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::geo" : {
          "file" : "lib/URI/geo.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::gopher" : {
          "file" : "lib/URI/gopher.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::http" : {
          "file" : "lib/URI/http.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::https" : {
          "file" : "lib/URI/https.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::icap" : {
          "file" : "lib/URI/icap.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::icaps" : {
          "file" : "lib/URI/icaps.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::irc" : {
          "file" : "lib/URI/irc.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ircs" : {
          "file" : "lib/URI/ircs.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ldap" : {
          "file" : "lib/URI/ldap.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ldapi" : {
          "file" : "lib/URI/ldapi.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ldaps" : {
          "file" : "lib/URI/ldaps.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::mailto" : {
          "file" : "lib/URI/mailto.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::mms" : {
          "file" : "lib/URI/mms.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::news" : {
          "file" : "lib/URI/news.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::nntp" : {
          "file" : "lib/URI/nntp.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::nntps" : {
          "file" : "lib/URI/nntps.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::otpauth" : {
          "file" : "lib/URI/otpauth.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::pop" : {
          "file" : "lib/URI/pop.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::rlogin" : {
          "file" : "lib/URI/rlogin.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::rsync" : {
          "file" : "lib/URI/rsync.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::rtsp" : {
          "file" : "lib/URI/rtsp.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::rtspu" : {
          "file" : "lib/URI/rtspu.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::scp" : {
          "file" : "lib/URI/scp.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::sftp" : {
          "file" : "lib/URI/sftp.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::sip" : {
          "file" : "lib/URI/sip.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::sips" : {
          "file" : "lib/URI/sips.pm",
-         "version" : "5.30"
+         "version" : "5.34"
+      },
+      "URI::smb" : {
+         "file" : "lib/URI/smb.pm",
+         "version" : "5.34"
+      },
+      "URI::smtp" : {
+         "file" : "lib/URI/smtp.pm",
+         "version" : "5.34"
       },
       "URI::snews" : {
          "file" : "lib/URI/snews.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::ssh" : {
          "file" : "lib/URI/ssh.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::telnet" : {
          "file" : "lib/URI/telnet.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::tn3270" : {
          "file" : "lib/URI/tn3270.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::urn" : {
          "file" : "lib/URI/urn.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::urn::isbn" : {
          "file" : "lib/URI/urn/isbn.pm",
-         "version" : "5.30"
+         "version" : "5.34"
       },
       "URI::urn::oid" : {
          "file" : "lib/URI/urn/oid.pm",
-         "version" : "5.30"
+         "version" : "5.34"
+      },
+      "URI::ws" : {
+         "file" : "lib/URI/ws.pm",
+         "version" : "5.34"
+      },
+      "URI::wss" : {
+         "file" : "lib/URI/wss.pm",
+         "version" : "5.34"
       }
    },
    "release_status" : "stable",
@@ -321,10 +337,10 @@
       "x_IRC" : "irc://irc.perl.org/#lwp",
       "x_MailingList" : "mailto:libwww@perl.org"
    },
-   "version" : "5.30",
+   "version" : "5.34",
    "x_Dist_Zilla" : {
       "perl" : {
-         "version" : "5.034000"
+         "version" : "5.040000"
       },
       "plugins" : [
          {
@@ -382,7 +398,7 @@
                   "meta_noindex" : 1
                },
                "Dist::Zilla::Role::ModuleMetadata" : {
-                  "Module::Metadata" : "1.000037",
+                  "Module::Metadata" : "1.000038",
                   "version" : "0.006"
                }
             },
@@ -413,7 +429,7 @@
             "class" : "Dist::Zilla::Plugin::Git::Contributors",
             "config" : {
                "Dist::Zilla::Plugin::Git::Contributors" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "include_authors" : 0,
                   "include_releaser" : 1,
                   "order_by" : "commits",
@@ -421,7 +437,7 @@
                }
             },
             "name" : "Git::Contributors",
-            "version" : "0.037"
+            "version" : "0.038"
          },
          {
             "class" : "Dist::Zilla::Plugin::GithubMeta",
@@ -514,7 +530,7 @@
                }
             },
             "name" : "Test::Portability",
-            "version" : "2.001001"
+            "version" : "2.001003"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaTests",
@@ -529,7 +545,7 @@
                }
             },
             "name" : "Test::MinimumVersion",
-            "version" : "2.000010"
+            "version" : "2.000011"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
@@ -570,13 +586,17 @@
                      "Tatsuhiko",
                      "UDP",
                      "UNC",
+                     "WebSocket",
+                     "authdomain",
                      "cryptographic",
+                     "earhart",
                      "etype",
                      "evalue",
                      "hotp",
                      "lon",
                      "lowercasing",
                      "relativize",
+                     "sharename",
                      "totp",
                      "unicode",
                      "uppercasing",
@@ -586,7 +606,7 @@
                }
             },
             "name" : "Test::PodSpelling",
-            "version" : "2.007005"
+            "version" : "2.007006"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckStrictVersion",
@@ -605,7 +625,7 @@
                   "changelog" : "Changes"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                }
             },
@@ -616,7 +636,7 @@
             "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
             "config" : {
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                }
             },
@@ -627,7 +647,7 @@
             "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch",
             "config" : {
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                }
             },
@@ -684,7 +704,7 @@
             "class" : "Dist::Zilla::Plugin::VersionFromMainModule",
             "config" : {
                "Dist::Zilla::Role::ModuleMetadata" : {
-                  "Module::Metadata" : "1.000037",
+                  "Module::Metadata" : "1.000038",
                   "version" : "0.006"
                }
             },
@@ -727,7 +747,7 @@
                   "changelog" : "Changes"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                },
                "Dist::Zilla::Role::Git::StringFormatter" : {
@@ -744,12 +764,12 @@
                   "branch" : null,
                   "changelog" : "Changes",
                   "signed" : 0,
-                  "tag" : "v5.30",
+                  "tag" : "v5.34",
                   "tag_format" : "v%V",
                   "tag_message" : "v%V"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                },
                "Dist::Zilla::Role::Git::StringFormatter" : {
@@ -799,7 +819,7 @@
                   "changelog" : "Changes"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                },
                "Dist::Zilla::Role::Git::StringFormatter" : {
@@ -819,7 +839,7 @@
                   "remotes_must_exist" : 1
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.34.1",
+                  "git_version" : "2.43.0",
                   "repo_root" : "."
                }
             },
@@ -897,19 +917,19 @@
    },
    "x_contributors" : [
       "Gisle Aas <gisle@aas.no>",
-      "Karen Etheridge <ether@cpan.org>",
       "Olaf Alders <olaf@wundersolutions.com>",
-      "Chase Whitener <capoeirab@cpan.org>",
+      "Karen Etheridge <ether@cpan.org>",
       "Julien Fiegehenn <simbabque@cpan.org>",
+      "Chase Whitener <capoeirab@cpan.org>",
       "Ville Skytt\u00e4 <ville.skytta@iki.fi>",
       "Brendan Byrd <Perl@ResonatorSoft.org>",
       "David Dick <ddick@cpan.org>",
       "Mark Stosberg <mark@stosberg.com>",
       "Graham Knop <haarg@haarg.org>",
+      "dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
       "Michael G. Schwern <schwern@pobox.com>",
       "Shoichi Kaji <skaji@cpan.org>",
       "Branislav Zahradn\u00edk <happy.barney@gmail.com>",
-      "dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
       "Perlbotics <perlbotix@cpan.org>",
       "Jacques Deguest <jack@deguest.jp>",
       "James Raspass <jraspass@gmail.com>",
@@ -924,6 +944,7 @@
       "Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>",
       "gregor herrmann <gregoa@debian.org>",
       "H\u00e5kon H\u00e6gland <hakon.hagland@gmail.com>",
+      "I. M. Bur <dev@lty.cz>",
       "Jan Dubois <jand@activestate.com>",
       "Joenio Costa <joenio@colivre.coop.br>",
       "John Karr <brainbuz@brainbuz.org>",
@@ -931,6 +952,7 @@
       "Kaitlyn Parkhurst <symkat@symkat.com>",
       "Kenichi Ishigaki <ishigaki@cpan.org>",
       "Kent Fredric <kentfredric@gmail.com>",
+      "Lester Hightower <lester.hightower@gmail.com>",
       "Masahiro Honma <hiratara@cpan.org>",
       "Matt Lawrence <matthewlawrence@venda.com>",
       "Peter Rabbitson <ribasushi@cpan.org>",
@@ -941,8 +963,8 @@
       "Tatsuhiko Miyagawa <miyagawa@bulknews.net>",
       "Torsten F\u00f6rtsch <torsten.foertsch@gmx.net>"
    ],
-   "x_generated_by_perl" : "v5.34.0",
-   "x_serialization_backend" : "Cpanel::JSON::XS version 4.38",
+   "x_generated_by_perl" : "v5.40.0",
+   "x_serialization_backend" : "Cpanel::JSON::XS version 4.39",
    "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
 }
 
diff -pruN 5.30-1/META.yml 5.34-1/META.yml
--- 5.30-1/META.yml	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/META.yml	2025-09-17 11:00:35.000000000 +0000
@@ -28,163 +28,175 @@ no_index:
 provides:
   URI:
     file: lib/URI.pm
-    version: '5.30'
+    version: '5.34'
   URI::Escape:
     file: lib/URI/Escape.pm
-    version: '5.30'
+    version: '5.34'
   URI::Heuristic:
     file: lib/URI/Heuristic.pm
-    version: '5.30'
+    version: '5.34'
   URI::IRI:
     file: lib/URI/IRI.pm
-    version: '5.30'
+    version: '5.34'
   URI::QueryParam:
     file: lib/URI/QueryParam.pm
-    version: '5.30'
+    version: '5.34'
   URI::Split:
     file: lib/URI/Split.pm
-    version: '5.30'
+    version: '5.34'
   URI::URL:
     file: lib/URI/URL.pm
-    version: '5.30'
+    version: '5.34'
   URI::WithBase:
     file: lib/URI/WithBase.pm
-    version: '5.30'
+    version: '5.34'
   URI::data:
     file: lib/URI/data.pm
-    version: '5.30'
+    version: '5.34'
   URI::file:
     file: lib/URI/file.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::Base:
     file: lib/URI/file/Base.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::FAT:
     file: lib/URI/file/FAT.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::Mac:
     file: lib/URI/file/Mac.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::OS2:
     file: lib/URI/file/OS2.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::QNX:
     file: lib/URI/file/QNX.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::Unix:
     file: lib/URI/file/Unix.pm
-    version: '5.30'
+    version: '5.34'
   URI::file::Win32:
     file: lib/URI/file/Win32.pm
-    version: '5.30'
+    version: '5.34'
   URI::ftp:
     file: lib/URI/ftp.pm
-    version: '5.30'
+    version: '5.34'
   URI::ftpes:
     file: lib/URI/ftpes.pm
-    version: '5.30'
+    version: '5.34'
   URI::ftps:
     file: lib/URI/ftps.pm
-    version: '5.30'
+    version: '5.34'
   URI::geo:
     file: lib/URI/geo.pm
-    version: '5.30'
+    version: '5.34'
   URI::gopher:
     file: lib/URI/gopher.pm
-    version: '5.30'
+    version: '5.34'
   URI::http:
     file: lib/URI/http.pm
-    version: '5.30'
+    version: '5.34'
   URI::https:
     file: lib/URI/https.pm
-    version: '5.30'
+    version: '5.34'
   URI::icap:
     file: lib/URI/icap.pm
-    version: '5.30'
+    version: '5.34'
   URI::icaps:
     file: lib/URI/icaps.pm
-    version: '5.30'
+    version: '5.34'
   URI::irc:
     file: lib/URI/irc.pm
-    version: '5.30'
+    version: '5.34'
   URI::ircs:
     file: lib/URI/ircs.pm
-    version: '5.30'
+    version: '5.34'
   URI::ldap:
     file: lib/URI/ldap.pm
-    version: '5.30'
+    version: '5.34'
   URI::ldapi:
     file: lib/URI/ldapi.pm
-    version: '5.30'
+    version: '5.34'
   URI::ldaps:
     file: lib/URI/ldaps.pm
-    version: '5.30'
+    version: '5.34'
   URI::mailto:
     file: lib/URI/mailto.pm
-    version: '5.30'
+    version: '5.34'
   URI::mms:
     file: lib/URI/mms.pm
-    version: '5.30'
+    version: '5.34'
   URI::news:
     file: lib/URI/news.pm
-    version: '5.30'
+    version: '5.34'
   URI::nntp:
     file: lib/URI/nntp.pm
-    version: '5.30'
+    version: '5.34'
   URI::nntps:
     file: lib/URI/nntps.pm
-    version: '5.30'
+    version: '5.34'
   URI::otpauth:
     file: lib/URI/otpauth.pm
-    version: '5.30'
+    version: '5.34'
   URI::pop:
     file: lib/URI/pop.pm
-    version: '5.30'
+    version: '5.34'
   URI::rlogin:
     file: lib/URI/rlogin.pm
-    version: '5.30'
+    version: '5.34'
   URI::rsync:
     file: lib/URI/rsync.pm
-    version: '5.30'
+    version: '5.34'
   URI::rtsp:
     file: lib/URI/rtsp.pm
-    version: '5.30'
+    version: '5.34'
   URI::rtspu:
     file: lib/URI/rtspu.pm
-    version: '5.30'
+    version: '5.34'
   URI::scp:
     file: lib/URI/scp.pm
-    version: '5.30'
+    version: '5.34'
   URI::sftp:
     file: lib/URI/sftp.pm
-    version: '5.30'
+    version: '5.34'
   URI::sip:
     file: lib/URI/sip.pm
-    version: '5.30'
+    version: '5.34'
   URI::sips:
     file: lib/URI/sips.pm
-    version: '5.30'
+    version: '5.34'
+  URI::smb:
+    file: lib/URI/smb.pm
+    version: '5.34'
+  URI::smtp:
+    file: lib/URI/smtp.pm
+    version: '5.34'
   URI::snews:
     file: lib/URI/snews.pm
-    version: '5.30'
+    version: '5.34'
   URI::ssh:
     file: lib/URI/ssh.pm
-    version: '5.30'
+    version: '5.34'
   URI::telnet:
     file: lib/URI/telnet.pm
-    version: '5.30'
+    version: '5.34'
   URI::tn3270:
     file: lib/URI/tn3270.pm
-    version: '5.30'
+    version: '5.34'
   URI::urn:
     file: lib/URI/urn.pm
-    version: '5.30'
+    version: '5.34'
   URI::urn::isbn:
     file: lib/URI/urn/isbn.pm
-    version: '5.30'
+    version: '5.34'
   URI::urn::oid:
     file: lib/URI/urn/oid.pm
-    version: '5.30'
+    version: '5.34'
+  URI::ws:
+    file: lib/URI/ws.pm
+    version: '5.34'
+  URI::wss:
+    file: lib/URI/wss.pm
+    version: '5.34'
 requires:
   Carp: '0'
   Cwd: '0'
@@ -209,10 +221,10 @@ resources:
   bugtracker: https://github.com/libwww-perl/URI/issues
   homepage: https://github.com/libwww-perl/URI
   repository: https://github.com/libwww-perl/URI.git
-version: '5.30'
+version: '5.34'
 x_Dist_Zilla:
   perl:
-    version: '5.034000'
+    version: '5.040000'
   plugins:
     -
       class: Dist::Zilla::Plugin::Git::GatherDir
@@ -256,9 +268,9 @@ x_Dist_Zilla:
           $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004'
           inherit_missing: '0'
           inherit_version: '0'
-          meta_noindex: '1'
+          meta_noindex: 1
         Dist::Zilla::Role::ModuleMetadata:
-          Module::Metadata: '1.000037'
+          Module::Metadata: '1.000038'
           version: '0.006'
       name: MetaProvides::Package
       version: '2.004003'
@@ -282,13 +294,13 @@ x_Dist_Zilla:
       class: Dist::Zilla::Plugin::Git::Contributors
       config:
         Dist::Zilla::Plugin::Git::Contributors:
-          git_version: 2.34.1
+          git_version: 2.43.0
           include_authors: 0
           include_releaser: 1
           order_by: commits
           paths: []
       name: Git::Contributors
-      version: '0.037'
+      version: '0.038'
     -
       class: Dist::Zilla::Plugin::GithubMeta
       name: GithubMeta
@@ -360,7 +372,7 @@ x_Dist_Zilla:
         Dist::Zilla::Plugin::Test::Portability:
           options: ''
       name: Test::Portability
-      version: '2.001001'
+      version: '2.001003'
     -
       class: Dist::Zilla::Plugin::MetaTests
       name: MetaTests
@@ -371,7 +383,7 @@ x_Dist_Zilla:
         Dist::Zilla::Plugin::Test::MinimumVersion:
           max_target_perl: ~
       name: Test::MinimumVersion
-      version: '2.000010'
+      version: '2.000011'
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: PodSyntaxTests
@@ -408,20 +420,24 @@ x_Dist_Zilla:
             - Tatsuhiko
             - UDP
             - UNC
+            - WebSocket
+            - authdomain
             - cryptographic
+            - earhart
             - etype
             - evalue
             - hotp
             - lon
             - lowercasing
             - relativize
+            - sharename
             - totp
             - unicode
             - uppercasing
             - xn
           wordlist: Pod::Wordlist
       name: Test::PodSpelling
-      version: '2.007005'
+      version: '2.007006'
     -
       class: Dist::Zilla::Plugin::CheckStrictVersion
       name: CheckStrictVersion
@@ -436,7 +452,7 @@ x_Dist_Zilla:
           allow_dirty_match: []
           changelog: Changes
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
       name: Git::Check
       version: '2.051'
@@ -444,7 +460,7 @@ x_Dist_Zilla:
       class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
       config:
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
       name: Git::CheckFor::MergeConflicts
       version: '0.014'
@@ -452,7 +468,7 @@ x_Dist_Zilla:
       class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch
       config:
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
       name: Git::CheckFor::CorrectBranch
       version: '0.014'
@@ -494,7 +510,7 @@ x_Dist_Zilla:
       class: Dist::Zilla::Plugin::VersionFromMainModule
       config:
         Dist::Zilla::Role::ModuleMetadata:
-          Module::Metadata: '1.000037'
+          Module::Metadata: '1.000038'
           version: '0.006'
       name: '@Git::VersionManager/VersionFromMainModule'
       version: '0.04'
@@ -517,7 +533,7 @@ x_Dist_Zilla:
         Dist::Zilla::Plugin::Git::Commit:
           add_files_in: []
           commit_msg: '%N-%v%t%n%n%c'
-          signoff: '0'
+          signoff: 0
         Dist::Zilla::Role::Git::DirtyFiles:
           allow_dirty:
             - Changes
@@ -526,7 +542,7 @@ x_Dist_Zilla:
           allow_dirty_match: []
           changelog: Changes
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
         Dist::Zilla::Role::Git::StringFormatter:
           time_zone: local
@@ -539,11 +555,11 @@ x_Dist_Zilla:
           branch: ~
           changelog: Changes
           signed: 0
-          tag: v5.30
+          tag: v5.34
           tag_format: v%V
           tag_message: v%V
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
         Dist::Zilla::Role::Git::StringFormatter:
           time_zone: local
@@ -570,7 +586,7 @@ x_Dist_Zilla:
         Dist::Zilla::Plugin::Git::Commit:
           add_files_in: []
           commit_msg: 'increment $VERSION after %v release'
-          signoff: '0'
+          signoff: 0
         Dist::Zilla::Role::Git::DirtyFiles:
           allow_dirty:
             - Build.PL
@@ -580,7 +596,7 @@ x_Dist_Zilla:
             - (?^:^lib/.*\.pm$)
           changelog: Changes
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
         Dist::Zilla::Role::Git::StringFormatter:
           time_zone: local
@@ -594,7 +610,7 @@ x_Dist_Zilla:
             - origin
           remotes_must_exist: 1
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.34.1
+          git_version: 2.43.0
           repo_root: .
       name: Git::Push
       version: '2.051'
@@ -649,23 +665,23 @@ x_Dist_Zilla:
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
-      is_trial: '0'
+      is_trial: 0
     version: '6.032'
 x_contributors:
   - 'Gisle Aas <gisle@aas.no>'
-  - 'Karen Etheridge <ether@cpan.org>'
   - 'Olaf Alders <olaf@wundersolutions.com>'
-  - 'Chase Whitener <capoeirab@cpan.org>'
+  - 'Karen Etheridge <ether@cpan.org>'
   - 'Julien Fiegehenn <simbabque@cpan.org>'
+  - 'Chase Whitener <capoeirab@cpan.org>'
   - 'Ville Skyttä <ville.skytta@iki.fi>'
   - 'Brendan Byrd <Perl@ResonatorSoft.org>'
   - 'David Dick <ddick@cpan.org>'
   - 'Mark Stosberg <mark@stosberg.com>'
   - 'Graham Knop <haarg@haarg.org>'
+  - 'dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>'
   - 'Michael G. Schwern <schwern@pobox.com>'
   - 'Shoichi Kaji <skaji@cpan.org>'
   - 'Branislav Zahradník <happy.barney@gmail.com>'
-  - 'dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>'
   - 'Perlbotics <perlbotix@cpan.org>'
   - 'Jacques Deguest <jack@deguest.jp>'
   - 'James Raspass <jraspass@gmail.com>'
@@ -680,6 +696,7 @@ x_contributors:
   - 'Gianni Ceccarelli <gianni.ceccarelli@broadbean.com>'
   - 'gregor herrmann <gregoa@debian.org>'
   - 'Håkon Hægland <hakon.hagland@gmail.com>'
+  - 'I. M. Bur <dev@lty.cz>'
   - 'Jan Dubois <jand@activestate.com>'
   - 'Joenio Costa <joenio@colivre.coop.br>'
   - 'John Karr <brainbuz@brainbuz.org>'
@@ -687,6 +704,7 @@ x_contributors:
   - 'Kaitlyn Parkhurst <symkat@symkat.com>'
   - 'Kenichi Ishigaki <ishigaki@cpan.org>'
   - 'Kent Fredric <kentfredric@gmail.com>'
+  - 'Lester Hightower <lester.hightower@gmail.com>'
   - 'Masahiro Honma <hiratara@cpan.org>'
   - 'Matt Lawrence <matthewlawrence@venda.com>'
   - 'Peter Rabbitson <ribasushi@cpan.org>'
@@ -696,6 +714,6 @@ x_contributors:
   - 'Sebastian Willing <sewi@cpan.org>'
   - 'Tatsuhiko Miyagawa <miyagawa@bulknews.net>'
   - 'Torsten Förtsch <torsten.foertsch@gmx.net>'
-x_generated_by_perl: v5.34.0
-x_serialization_backend: 'YAML::Tiny version 1.74'
+x_generated_by_perl: v5.40.0
+x_serialization_backend: 'YAML::Tiny version 1.76'
 x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
diff -pruN 5.30-1/Makefile.PL 5.34-1/Makefile.PL
--- 5.30-1/Makefile.PL	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/Makefile.PL	2025-09-17 11:00:35.000000000 +0000
@@ -45,7 +45,7 @@ my %WriteMakefileArgs = (
     "Test::Warnings" => 0,
     "utf8" => 0
   },
-  "VERSION" => "5.30",
+  "VERSION" => "5.34",
   "test" => {
     "TESTS" => "t/*.t"
   }
diff -pruN 5.30-1/README 5.34-1/README
--- 5.30-1/README	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/README	2025-09-17 11:00:35.000000000 +0000
@@ -1,5 +1,5 @@
 This archive contains the distribution URI,
-version 5.30:
+version 5.34:
 
   Uniform Resource Identifiers (absolute and relative)
 
diff -pruN 5.30-1/debian/changelog 5.34-1/debian/changelog
--- 5.30-1/debian/changelog	2024-10-09 16:03:44.000000000 +0000
+++ 5.34-1/debian/changelog	2025-09-28 18:35:36.000000000 +0000
@@ -1,3 +1,13 @@
+liburi-perl (5.34-1) unstable; urgency=medium
+
+  * Import upstream version 5.34.
+  * Update years of packaging copyright.
+  * Declare compliance with Debian Policy 4.7.2.
+  * Remove «Rules-Requires-Root: no», which is the current default.
+  * Remove «Priority: optional», which is the current default.
+
+ -- gregor herrmann <gregoa@debian.org>  Sun, 28 Sep 2025 20:35:36 +0200
+
 liburi-perl (5.30-1) unstable; urgency=medium
 
   * Import upstream version 5.30.
diff -pruN 5.30-1/debian/control 5.34-1/debian/control
--- 5.30-1/debian/control	2024-10-09 16:03:44.000000000 +0000
+++ 5.34-1/debian/control	2025-09-28 18:35:36.000000000 +0000
@@ -1,39 +1,43 @@
 Source: liburi-perl
+Standards-Version: 4.7.2
 Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
-Uploaders: gregor herrmann <gregoa@debian.org>,
-           Angel Abad <angel@debian.org>
+Uploaders:
+ gregor herrmann <gregoa@debian.org>,
+ Angel Abad <angel@debian.org>,
 Section: perl
 Testsuite: autopkgtest-pkg-perl
-Priority: optional
-Build-Depends: debhelper-compat (= 13)
-Build-Depends-Indep: libbusiness-isbn-perl <!nocheck>,
-                     libencode-perl <!nocheck>,
-                     libmime-base32-perl <!nocheck>,
-                     libregexp-ipv6-perl <!nocheck>,
-                     libscalar-list-utils-perl <!nocheck>,
-                     libtest-fatal-perl <!nocheck>,
-                     libtest-needs-perl <!nocheck>,
-                     libtest-simple-perl <!nocheck>,
-                     libtest-warnings-perl <!nocheck>,
-                     perl
-Standards-Version: 4.7.0
+Build-Depends:
+ debhelper-compat (= 13),
+Build-Depends-Indep:
+ libbusiness-isbn-perl <!nocheck>,
+ libencode-perl <!nocheck>,
+ libmime-base32-perl <!nocheck>,
+ libregexp-ipv6-perl <!nocheck>,
+ libscalar-list-utils-perl <!nocheck>,
+ libtest-fatal-perl <!nocheck>,
+ libtest-needs-perl <!nocheck>,
+ libtest-simple-perl <!nocheck>,
+ libtest-warnings-perl <!nocheck>,
+ perl,
 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/liburi-perl
 Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/liburi-perl.git
 Homepage: https://metacpan.org/release/URI
-Rules-Requires-Root: no
 
 Package: liburi-perl
 Architecture: all
 Multi-Arch: foreign
-Depends: ${misc:Depends},
-         ${perl:Depends},
-         libencode-perl,
-         libscalar-list-utils-perl
-Suggests: libbusiness-isbn-perl,
-          libmime-base32-perl,
-          libregexp-ipv6-perl,
-          libwww-perl
-Breaks: sqitch (<< 1.3.1-2~)
+Depends:
+ ${misc:Depends},
+ ${perl:Depends},
+ libencode-perl,
+ libscalar-list-utils-perl,
+Suggests:
+ libbusiness-isbn-perl,
+ libmime-base32-perl,
+ libregexp-ipv6-perl,
+ libwww-perl,
+Breaks:
+ sqitch (<< 1.3.1-2~),
 Description: module to manipulate and access URI strings
  URI is a collection of Perl modules that represent and manipulate Uniform
  Resource Identifier (URI) references as specified in RFC 2396.
diff -pruN 5.30-1/debian/copyright 5.34-1/debian/copyright
--- 5.30-1/debian/copyright	2024-10-09 16:03:44.000000000 +0000
+++ 5.34-1/debian/copyright	2025-09-28 18:35:36.000000000 +0000
@@ -19,7 +19,7 @@ Copyright: 1999-2001, John Goerzen <jgoe
  2008, Kees Cook <kees@outflux.net>
  2009-2010, Jonathan Yu <jawnsy@cpan.org>
  2010-2011, 2014, Angel Abad <angel@debian.org>
- 2010-2024, gregor herrmann <gregoa@debian.org>
+ 2010-2025, gregor herrmann <gregoa@debian.org>
  2011, Ansgar Burchardt <ansgar@debian.org>
 License: Artistic or GPL-1+
 
diff -pruN 5.30-1/dist.ini 5.34-1/dist.ini
--- 5.30-1/dist.ini	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/dist.ini	2025-09-17 11:00:35.000000000 +0000
@@ -86,6 +86,7 @@ xt_mode = 1
 
 [Test::Pod::Coverage::Configurable]
 skip = URI::IRI
+skip = URI::_emailauth
 skip = URI::_foreign
 skip = URI::_idna
 skip = URI::_login
@@ -120,7 +121,6 @@ trustme = URI::gopher => qr/^(?:gopher_t
 trustme = URI::ldapi => qr/^(?:un_path)$/
 trustme = URI::mailto => qr/^(?:headers|to)$/
 trustme = URI::news => qr/^(?:group|message)$/
-trustme = URI::pop => qr/^(?:auth|user)$/
 trustme = URI::sip => qr/^(?:params|params_form)$/
 trustme = URI::urn => qr/^(?:nid|nss)$/
 
@@ -129,6 +129,7 @@ wordlist = Pod::Wordlist
 spell_cmd = aspell list
 stopword = Berners
 stopword = CRS
+stopword = earhart
 stopword = etype
 stopword = evalue
 stopword = IDNA
@@ -142,6 +143,7 @@ stopword = Miyagawa
 stopword = OIDs
 stopword = OpenLDAP
 stopword = Punycode
+stopword = WebSocket
 stopword = relativize
 stopword = Tatsuhiko
 stopword = TCP
@@ -157,6 +159,8 @@ stopword = TOTP
 stopword = HOTP
 stopword = OTP
 stopword = cryptographic
+stopword = authdomain
+stopword = sharename
 
 ;;; pre-release actions
 
diff -pruN 5.30-1/lib/URI/Escape.pm 5.34-1/lib/URI/Escape.pm
--- 5.30-1/lib/URI/Escape.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/Escape.pm	2025-09-17 11:00:35.000000000 +0000
@@ -148,7 +148,7 @@ use Exporter 5.57 'import';
 our %escapes;
 our @EXPORT = qw(uri_escape uri_unescape uri_escape_utf8);
 our @EXPORT_OK = qw(%escapes);
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use Carp ();
 
diff -pruN 5.30-1/lib/URI/Heuristic.pm 5.34-1/lib/URI/Heuristic.pm
--- 5.30-1/lib/URI/Heuristic.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/Heuristic.pm	2025-09-17 11:00:35.000000000 +0000
@@ -91,7 +91,7 @@ use warnings;
 
 use Exporter 5.57 'import';
 our @EXPORT_OK = qw(uf_uri uf_uristr uf_url uf_urlstr);
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 our ($MY_COUNTRY, $DEBUG);
 
@@ -158,6 +158,11 @@ sub uf_uristr ($)
     } elsif (/^(ftp|gopher|news|wais|https|http)[a-z0-9-]*(?:\.|$)/i) {
 	$_ = lc($1) . "://$_";
 
+    } elsif (
+		m,^//, || m,^[\\][\\],) # UNC-like file name
+    {
+		s{[\\]}{/}g;
+		$_ = "smb:$_";
     } elsif ($^O ne "MacOS" && 
 	    (m,^/,      ||          # absolute file name
 	     m,^\.\.?/, ||          # relative file name
diff -pruN 5.30-1/lib/URI/IRI.pm 5.34-1/lib/URI/IRI.pm
--- 5.30-1/lib/URI/IRI.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/IRI.pm	2025-09-17 11:00:35.000000000 +0000
@@ -8,7 +8,7 @@ use URI ();
 
 use overload '""' => sub { shift->as_string };
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub new {
     my($class, $uri, $scheme) = @_;
diff -pruN 5.30-1/lib/URI/QueryParam.pm 5.34-1/lib/URI/QueryParam.pm
--- 5.30-1/lib/URI/QueryParam.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/QueryParam.pm	2025-09-17 11:00:35.000000000 +0000
@@ -2,7 +2,7 @@ package URI::QueryParam;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 1;
 
diff -pruN 5.30-1/lib/URI/Split.pm 5.34-1/lib/URI/Split.pm
--- 5.30-1/lib/URI/Split.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/Split.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::Split;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use Exporter 5.57 'import';
 our @EXPORT_OK = qw(uri_split uri_join);
diff -pruN 5.30-1/lib/URI/URL.pm 5.34-1/lib/URI/URL.pm
--- 5.30-1/lib/URI/URL.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/URL.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use parent 'URI::WithBase';
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 # Provide as much as possible of the old URI::URL interface for backwards
 # compatibility...
diff -pruN 5.30-1/lib/URI/WithBase.pm 5.34-1/lib/URI/WithBase.pm
--- 5.30-1/lib/URI/WithBase.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/WithBase.pm	2025-09-17 11:00:35.000000000 +0000
@@ -6,7 +6,7 @@ use warnings;
 use URI ();
 use Scalar::Util qw(blessed);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use overload '""' => "as_string", fallback => 1;
 
diff -pruN 5.30-1/lib/URI/_emailauth.pm 5.34-1/lib/URI/_emailauth.pm
--- 5.30-1/lib/URI/_emailauth.pm	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/lib/URI/_emailauth.pm	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,70 @@
+package URI::_emailauth;
+
+use strict;
+use warnings;
+
+our $VERSION = '5.34';
+
+use parent 'URI::_server';
+
+use URI::Escape qw(uri_unescape);
+
+# Common user/auth code used in email URL schemes, such as POP, SMTP, IMAP.
+# <scheme>://<user>;auth=<auth>@<host>:<port>
+
+sub user
+{
+    my $self = shift;
+    my $old = $self->userinfo;
+
+    if (@_) {
+	my $new_info = $old;
+	$new_info = "" unless defined $new_info;
+	$new_info =~ s/^[^;]*//;
+
+	my $new = shift;
+	if (!defined($new) && !length($new_info)) {
+	    $self->userinfo(undef);
+	} else {
+	    $new = "" unless defined $new;
+	    $new =~ s/%/%25/g;
+	    $new =~ s/;/%3B/g;
+	    $self->userinfo("$new$new_info");
+	}
+    }
+
+    return undef unless defined $old;
+    $old =~ s/;.*//;
+    return uri_unescape($old);
+}
+
+sub auth
+{
+    my $self = shift;
+    my $old = $self->userinfo;
+
+    if (@_) {
+	my $new = $old;
+	$new = "" unless defined $new;
+	$new =~ s/(^[^;]*)//;
+	my $user = $1;
+	$new =~ s/;auth=[^;]*//i;
+
+
+	my $auth = shift;
+	if (defined $auth) {
+	    $auth =~ s/%/%25/g;
+	    $auth =~ s/;/%3B/g;
+	    $new = ";AUTH=$auth$new";
+	}
+	$self->userinfo("$user$new");
+
+    }
+
+    return undef unless defined $old;
+    $old =~ s/^[^;]*//;
+    return uri_unescape($1) if $old =~ /;auth=(.*)/i;
+    return;
+}
+
+1;
diff -pruN 5.30-1/lib/URI/_foreign.pm 5.34-1/lib/URI/_foreign.pm
--- 5.30-1/lib/URI/_foreign.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_foreign.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,6 +5,6 @@ use warnings;
 
 use parent 'URI::_generic';
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 1;
diff -pruN 5.30-1/lib/URI/_generic.pm 5.34-1/lib/URI/_generic.pm
--- 5.30-1/lib/URI/_generic.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_generic.pm	2025-09-17 11:00:35.000000000 +0000
@@ -8,7 +8,7 @@ use parent qw(URI URI::_query);
 use URI::Escape qw(uri_unescape);
 use Carp ();
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 my $ACHAR = URI::HAS_RESERVED_SQUARE_BRACKETS ? $URI::uric : $URI::uric4host;  $ACHAR =~ s,\\[/?],,g;
 my $PCHAR = $URI::uric;                                                        $PCHAR =~ s,\\[?],,g;
diff -pruN 5.30-1/lib/URI/_idna.pm 5.34-1/lib/URI/_idna.pm
--- 5.30-1/lib/URI/_idna.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_idna.pm	2025-09-17 11:00:35.000000000 +0000
@@ -9,7 +9,7 @@ use warnings;
 use URI::_punycode qw(decode_punycode encode_punycode);
 use Carp qw(croak);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 BEGIN {
   *URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = "$]" < 5.008_003
diff -pruN 5.30-1/lib/URI/_ldap.pm 5.34-1/lib/URI/_ldap.pm
--- 5.30-1/lib/URI/_ldap.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_ldap.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ package URI::_ldap;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use URI::Escape qw(uri_unescape);
 
diff -pruN 5.30-1/lib/URI/_login.pm 5.34-1/lib/URI/_login.pm
--- 5.30-1/lib/URI/_login.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_login.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use parent qw(URI::_server URI::_userpass);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 # Generic terminal logins.  This is used as a base class for 'telnet',
 # 'tn3270', and 'rlogin' URL schemes.
diff -pruN 5.30-1/lib/URI/_punycode.pm 5.34-1/lib/URI/_punycode.pm
--- 5.30-1/lib/URI/_punycode.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_punycode.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::_punycode;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use Exporter 'import';
 our @EXPORT = qw(encode_punycode decode_punycode);
diff -pruN 5.30-1/lib/URI/_query.pm 5.34-1/lib/URI/_query.pm
--- 5.30-1/lib/URI/_query.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_query.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ use URI ();
 use URI::Escape qw(uri_unescape);
 use Scalar::Util ();
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub query
 {
diff -pruN 5.30-1/lib/URI/_segment.pm 5.34-1/lib/URI/_segment.pm
--- 5.30-1/lib/URI/_segment.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_segment.pm	2025-09-17 11:00:35.000000000 +0000
@@ -11,7 +11,7 @@ use URI::Escape qw(uri_unescape);
 use overload '""' => sub { $_[0]->[0] },
              fallback => 1;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub new
 {
diff -pruN 5.30-1/lib/URI/_server.pm 5.34-1/lib/URI/_server.pm
--- 5.30-1/lib/URI/_server.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_server.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ use parent 'URI::_generic';
 
 use URI::Escape qw(uri_unescape);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub _uric_escape {
     my($class, $str) = @_;
diff -pruN 5.30-1/lib/URI/_userpass.pm 5.34-1/lib/URI/_userpass.pm
--- 5.30-1/lib/URI/_userpass.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/_userpass.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use URI::Escape qw(uri_unescape);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub user
 {
diff -pruN 5.30-1/lib/URI/data.pm 5.34-1/lib/URI/data.pm
--- 5.30-1/lib/URI/data.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/data.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use parent 'URI';
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use MIME::Base64 qw(decode_base64 encode_base64);
 use URI::Escape qw(uri_unescape);
diff -pruN 5.30-1/lib/URI/file/Base.pm 5.34-1/lib/URI/file/Base.pm
--- 5.30-1/lib/URI/file/Base.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/Base.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use URI::Escape ();
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub new
 {
diff -pruN 5.30-1/lib/URI/file/FAT.pm 5.34-1/lib/URI/file/FAT.pm
--- 5.30-1/lib/URI/file/FAT.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/FAT.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use parent 'URI::file::Win32';
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub fix_path
 {
diff -pruN 5.30-1/lib/URI/file/Mac.pm 5.34-1/lib/URI/file/Mac.pm
--- 5.30-1/lib/URI/file/Mac.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/Mac.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
 
 use URI::Escape qw(uri_unescape);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub _file_extract_path
 {
diff -pruN 5.30-1/lib/URI/file/OS2.pm 5.34-1/lib/URI/file/OS2.pm
--- 5.30-1/lib/URI/file/OS2.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/OS2.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use parent 'URI::file::Win32';
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 # The Win32 version translates k:/foo to file://k:/foo  (?!)
 # We add an empty host
diff -pruN 5.30-1/lib/URI/file/QNX.pm 5.34-1/lib/URI/file/QNX.pm
--- 5.30-1/lib/URI/file/QNX.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/QNX.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ use warnings;
 
 use parent 'URI::file::Unix';
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub _file_extract_path
 {
diff -pruN 5.30-1/lib/URI/file/Unix.pm 5.34-1/lib/URI/file/Unix.pm
--- 5.30-1/lib/URI/file/Unix.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/Unix.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
 
 use URI::Escape qw(uri_unescape);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub _file_extract_path
 {
diff -pruN 5.30-1/lib/URI/file/Win32.pm 5.34-1/lib/URI/file/Win32.pm
--- 5.30-1/lib/URI/file/Win32.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file/Win32.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ use parent 'URI::file::Base';
 
 use URI::Escape qw(uri_unescape);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub _file_extract_authority
 {
diff -pruN 5.30-1/lib/URI/file.pm 5.34-1/lib/URI/file.pm
--- 5.30-1/lib/URI/file.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/file.pm	2025-09-17 11:00:35.000000000 +0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 
 use parent 'URI::_generic';
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use URI::Escape qw(uri_unescape);
 
diff -pruN 5.30-1/lib/URI/ftp.pm 5.34-1/lib/URI/ftp.pm
--- 5.30-1/lib/URI/ftp.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ftp.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ftp;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent qw(URI::_server URI::_userpass);
 
diff -pruN 5.30-1/lib/URI/ftpes.pm 5.34-1/lib/URI/ftpes.pm
--- 5.30-1/lib/URI/ftpes.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ftpes.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ftpes;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::ftp';
 
diff -pruN 5.30-1/lib/URI/ftps.pm 5.34-1/lib/URI/ftps.pm
--- 5.30-1/lib/URI/ftps.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ftps.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ftps;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::ftp';
 
diff -pruN 5.30-1/lib/URI/geo.pm 5.34-1/lib/URI/geo.pm
--- 5.30-1/lib/URI/geo.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/geo.pm	2025-09-17 11:00:35.000000000 +0000
@@ -8,7 +8,7 @@ use URI::Split qw( uri_split uri_join );
 
 use base qw( URI );
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub _MINIMUM_LATITUDE      { return -90 }
 sub _MAXIMUM_LATITUDE      { return 90 }
diff -pruN 5.30-1/lib/URI/gopher.pm 5.34-1/lib/URI/gopher.pm
--- 5.30-1/lib/URI/gopher.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/gopher.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::gopher;  # <draft-murali-ur
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_server';
 
diff -pruN 5.30-1/lib/URI/http.pm 5.34-1/lib/URI/http.pm
--- 5.30-1/lib/URI/http.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/http.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::http;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_server';
 
diff -pruN 5.30-1/lib/URI/https.pm 5.34-1/lib/URI/https.pm
--- 5.30-1/lib/URI/https.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/https.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::https;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::http';
 
diff -pruN 5.30-1/lib/URI/icap.pm 5.34-1/lib/URI/icap.pm
--- 5.30-1/lib/URI/icap.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/icap.pm	2025-09-17 11:00:35.000000000 +0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use base qw(URI::http);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub default_port { return 1344 }
 
diff -pruN 5.30-1/lib/URI/icaps.pm 5.34-1/lib/URI/icaps.pm
--- 5.30-1/lib/URI/icaps.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/icaps.pm	2025-09-17 11:00:35.000000000 +0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 use base qw(URI::icap);
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub secure { return 1 }
 
diff -pruN 5.30-1/lib/URI/irc.pm 5.34-1/lib/URI/irc.pm
--- 5.30-1/lib/URI/irc.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/irc.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::irc;  # draft-butcher-irc-u
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_login';
 
diff -pruN 5.30-1/lib/URI/ircs.pm 5.34-1/lib/URI/ircs.pm
--- 5.30-1/lib/URI/ircs.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ircs.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ircs;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::irc';
 
diff -pruN 5.30-1/lib/URI/ldap.pm 5.34-1/lib/URI/ldap.pm
--- 5.30-1/lib/URI/ldap.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ldap.pm	2025-09-17 11:00:35.000000000 +0000
@@ -7,7 +7,7 @@ package URI::ldap;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent qw(URI::_ldap URI::_server);
 
diff -pruN 5.30-1/lib/URI/ldapi.pm 5.34-1/lib/URI/ldapi.pm
--- 5.30-1/lib/URI/ldapi.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ldapi.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ldapi;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent qw(URI::_ldap URI::_generic);
 
diff -pruN 5.30-1/lib/URI/ldaps.pm 5.34-1/lib/URI/ldaps.pm
--- 5.30-1/lib/URI/ldaps.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ldaps.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ldaps;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::ldap';
 
diff -pruN 5.30-1/lib/URI/mailto.pm 5.34-1/lib/URI/mailto.pm
--- 5.30-1/lib/URI/mailto.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/mailto.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::mailto;  # RFC 2368
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent qw(URI URI::_query);
 
diff -pruN 5.30-1/lib/URI/mms.pm 5.34-1/lib/URI/mms.pm
--- 5.30-1/lib/URI/mms.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/mms.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::mms;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::http';
 
diff -pruN 5.30-1/lib/URI/news.pm 5.34-1/lib/URI/news.pm
--- 5.30-1/lib/URI/news.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/news.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::news;  # draft-gilman-news-
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_server';
 
diff -pruN 5.30-1/lib/URI/nntp.pm 5.34-1/lib/URI/nntp.pm
--- 5.30-1/lib/URI/nntp.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/nntp.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::nntp;  # draft-gilman-news-
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::news';
 
diff -pruN 5.30-1/lib/URI/nntps.pm 5.34-1/lib/URI/nntps.pm
--- 5.30-1/lib/URI/nntps.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/nntps.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::nntps;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::nntp';
 
diff -pruN 5.30-1/lib/URI/otpauth.pm 5.34-1/lib/URI/otpauth.pm
--- 5.30-1/lib/URI/otpauth.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/otpauth.pm	2025-09-17 11:00:35.000000000 +0000
@@ -8,7 +8,7 @@ use URI::Escape();
 
 use parent qw( URI URI::_query );
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub new {
     my ($class, @parameters) = @_;
@@ -128,6 +128,8 @@ sub type {
     return $self->_field('type', @parameters);
 }
 
+sub authority { return shift->type(@_); }
+
 sub label {
     my ($self, @parameters) = @_;
     return $self->_field('label', @parameters);
diff -pruN 5.30-1/lib/URI/pop.pm 5.34-1/lib/URI/pop.pm
--- 5.30-1/lib/URI/pop.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/pop.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,9 +3,9 @@ package URI::pop;   # RFC 2384
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
-use parent 'URI::_server';
+use parent 'URI::_emailauth';
 
 use URI::Escape qw(uri_unescape);
 
@@ -13,59 +13,4 @@ sub default_port { 110 }
 
 #pop://<user>;auth=<auth>@<host>:<port>
 
-sub user
-{
-    my $self = shift;
-    my $old = $self->userinfo;
-
-    if (@_) {
-	my $new_info = $old;
-	$new_info = "" unless defined $new_info;
-	$new_info =~ s/^[^;]*//;
-
-	my $new = shift;
-	if (!defined($new) && !length($new_info)) {
-	    $self->userinfo(undef);
-	} else {
-	    $new = "" unless defined $new;
-	    $new =~ s/%/%25/g;
-	    $new =~ s/;/%3B/g;
-	    $self->userinfo("$new$new_info");
-	}
-    }
-
-    return undef unless defined $old;
-    $old =~ s/;.*//;
-    return uri_unescape($old);
-}
-
-sub auth
-{
-    my $self = shift;
-    my $old = $self->userinfo;
-
-    if (@_) {
-	my $new = $old;
-	$new = "" unless defined $new;
-	$new =~ s/(^[^;]*)//;
-	my $user = $1;
-	$new =~ s/;auth=[^;]*//i;
-
-	
-	my $auth = shift;
-	if (defined $auth) {
-	    $auth =~ s/%/%25/g;
-	    $auth =~ s/;/%3B/g;
-	    $new = ";AUTH=$auth$new";
-	}
-	$self->userinfo("$user$new");
-	
-    }
-
-    return undef unless defined $old;
-    $old =~ s/^[^;]*//;
-    return uri_unescape($1) if $old =~ /;auth=(.*)/i;
-    return;
-}
-
 1;
diff -pruN 5.30-1/lib/URI/rlogin.pm 5.34-1/lib/URI/rlogin.pm
--- 5.30-1/lib/URI/rlogin.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/rlogin.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::rlogin;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_login';
 
diff -pruN 5.30-1/lib/URI/rsync.pm 5.34-1/lib/URI/rsync.pm
--- 5.30-1/lib/URI/rsync.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/rsync.pm	2025-09-17 11:00:35.000000000 +0000
@@ -5,7 +5,7 @@ package URI::rsync;  # http://rsync.samb
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent qw(URI::_server URI::_userpass);
 
diff -pruN 5.30-1/lib/URI/rtsp.pm 5.34-1/lib/URI/rtsp.pm
--- 5.30-1/lib/URI/rtsp.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/rtsp.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::rtsp;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::http';
 
diff -pruN 5.30-1/lib/URI/rtspu.pm 5.34-1/lib/URI/rtspu.pm
--- 5.30-1/lib/URI/rtspu.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/rtspu.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::rtspu;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::rtsp';
 
diff -pruN 5.30-1/lib/URI/scp.pm 5.34-1/lib/URI/scp.pm
--- 5.30-1/lib/URI/scp.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/scp.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::scp;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::ssh';
 
diff -pruN 5.30-1/lib/URI/sftp.pm 5.34-1/lib/URI/sftp.pm
--- 5.30-1/lib/URI/sftp.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/sftp.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::sftp;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::ssh';
 
diff -pruN 5.30-1/lib/URI/sip.pm 5.34-1/lib/URI/sip.pm
--- 5.30-1/lib/URI/sip.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/sip.pm	2025-09-17 11:00:35.000000000 +0000
@@ -14,7 +14,7 @@ use parent qw(URI::_server URI::_userpas
 
 use URI::Escape ();
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 sub default_port { 5060 }
 
diff -pruN 5.30-1/lib/URI/sips.pm 5.34-1/lib/URI/sips.pm
--- 5.30-1/lib/URI/sips.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/sips.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::sips;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::sip';
 
diff -pruN 5.30-1/lib/URI/smb.pm 5.34-1/lib/URI/smb.pm
--- 5.30-1/lib/URI/smb.pm	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/lib/URI/smb.pm	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,101 @@
+package URI::smb;
+
+use strict;
+use warnings;
+
+use parent 'URI::_login';
+
+our $VERSION = '5.34';
+
+sub default_port { 445 }
+
+sub user {
+    my $self = shift;
+    my $new = shift;
+    my ($user, $authdomain) = _parse_user($self->SUPER::user());
+    if ($new) {
+        $self->SUPER::user($authdomain ? "$authdomain;$new" : $new);
+        $user = $new;
+    }
+    return $user;
+}
+
+sub authdomain {
+    my $self = shift;
+    my $new = shift;
+    my ($user, $authdomain) = _parse_user($self->SUPER::user());
+
+    # it must not be possible to set authdomain without user
+    if ($user && $new) {
+        $self->SUPER::user("$new;$user");
+        $authdomain = $new;
+    }
+    return $authdomain;
+}
+
+sub sharename {
+    return (shift->path_segments)[1];
+}
+
+sub _parse_user {
+    my $input = shift or return;
+    my ($authdomain, $user) = split ';', $input, 2; 
+    return $user ? ($user, $authdomain) : $authdomain;
+}
+
+1;
+__END__
+
+=head1 NAME
+
+URI::smb - Samba/CIFS URI scheme
+
+=head1 SYNOPSIS
+
+    my $uri = URI->new('smb://authdomain;user:password@server/share/path');
+
+=head1 DESCRIPTION
+
+This module implements the (unofficial) C<smb:> URI scheme described in L<http://www.ubiqx.org/cifs/Appendix-D.html>.
+
+=head1 SUBROUTINES/METHODS
+
+=head2 default_port
+
+The default port for accessing Samba/Windows File Servers is 445
+
+=head2 user
+
+Get or set the user part of the URI (without the authdomain)
+
+=head2 authdomain
+
+Get or set the authentication authdomain part of the URI. This value is only available if the user is already set.
+
+=head2 sharename
+
+Helper method to get the share name from path
+
+=head1 DEPENDENCIES
+
+None
+
+=head1 BUGS AND LIMITATIONS
+
+See L<URI|URI#BUGS>
+
+=head1 SEE ALSO
+
+L<http://www.ubiqx.org/cifs/Appendix-D.html>
+
+=head1 AUTHOR
+
+I. M. Bur <github@lty.cz>
+
+=head1 LICENSE AND COPYRIGHT
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of either: the GNU General Public License as published
+by the Free Software Foundation; or the Artistic License.
+
+See L<http://dev.perl.org/licenses/> for more information.
diff -pruN 5.30-1/lib/URI/smtp.pm 5.34-1/lib/URI/smtp.pm
--- 5.30-1/lib/URI/smtp.pm	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/lib/URI/smtp.pm	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,16 @@
+package URI::smtp;   # draft-earhart-url-smtp-00
+
+use strict;
+use warnings;
+
+our $VERSION = '5.34';
+
+use parent 'URI::_emailauth';
+
+use URI::Escape qw(uri_unescape);
+
+sub default_port { 25 }
+
+#smtp://<user>;auth=<auth>@<host>:<port>
+
+1;
diff -pruN 5.30-1/lib/URI/snews.pm 5.34-1/lib/URI/snews.pm
--- 5.30-1/lib/URI/snews.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/snews.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::snews;  # draft-gilman-news
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::news';
 
diff -pruN 5.30-1/lib/URI/ssh.pm 5.34-1/lib/URI/ssh.pm
--- 5.30-1/lib/URI/ssh.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/ssh.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::ssh;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_login';
 
diff -pruN 5.30-1/lib/URI/telnet.pm 5.34-1/lib/URI/telnet.pm
--- 5.30-1/lib/URI/telnet.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/telnet.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::telnet;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_login';
 
diff -pruN 5.30-1/lib/URI/tn3270.pm 5.34-1/lib/URI/tn3270.pm
--- 5.30-1/lib/URI/tn3270.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/tn3270.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::tn3270;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::_login';
 
diff -pruN 5.30-1/lib/URI/urn/isbn.pm 5.34-1/lib/URI/urn/isbn.pm
--- 5.30-1/lib/URI/urn/isbn.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/urn/isbn.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::urn::isbn;  # RFC 3187
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::urn';
 
diff -pruN 5.30-1/lib/URI/urn/oid.pm 5.34-1/lib/URI/urn/oid.pm
--- 5.30-1/lib/URI/urn/oid.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/urn/oid.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::urn::oid;  # RFC 2061
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI::urn';
 
diff -pruN 5.30-1/lib/URI/urn.pm 5.34-1/lib/URI/urn.pm
--- 5.30-1/lib/URI/urn.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI/urn.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI::urn;  # RFC 2141
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 use parent 'URI';
 
diff -pruN 5.30-1/lib/URI/ws.pm 5.34-1/lib/URI/ws.pm
--- 5.30-1/lib/URI/ws.pm	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/lib/URI/ws.pm	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,67 @@
+package URI::ws;
+
+use strict;
+use warnings;
+
+our $VERSION = '5.34';
+
+use parent 'URI::http';
+
+1;
+__END__
+
+=head1 NAME
+
+URI::ws - URI scheme for WebSocket Identifiers
+
+=head1 SYNOPSIS
+
+    use URI::ws;
+
+    my $uri = URI->new('ws://example.com/');
+
+=head1 DESCRIPTION
+
+This module implements the C<ws:> URI scheme defined in L<RFC 6455|http://tools.ietf.org/html/rfc6455>.
+
+=head1 SUBROUTINES/METHODS
+
+This module inherits the behaviour of L<URI::http|URI::http>.
+
+=head1 DIAGNOSTICS
+
+See L<URI|URI>
+
+=head1 CONFIGURATION AND ENVIRONMENT
+
+See L<URI|URI#CONFIGURATION-VARIABLES> and L<URI|URI#ENVIRONMENT-VARIABLES>
+
+=head1 DEPENDENCIES
+
+None
+
+=head1 INCOMPATIBILITIES
+
+None reported
+
+=head1 BUGS AND LIMITATIONS
+
+See L<URI|URI#BUGS>
+
+=head1 SEE ALSO
+
+L<RFC 6455|http://tools.ietf.org/html/rfc6455>
+
+=head1 AUTHOR
+
+David Dick, C<< <ddick at cpan.org> >>
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright 2016 David Dick.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of either: the GNU General Public License as published
+by the Free Software Foundation; or the Artistic License.
+
+See L<http://dev.perl.org/licenses/> for more information.
diff -pruN 5.30-1/lib/URI/wss.pm 5.34-1/lib/URI/wss.pm
--- 5.30-1/lib/URI/wss.pm	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/lib/URI/wss.pm	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,71 @@
+package URI::wss;
+
+use strict;
+use warnings;
+
+our $VERSION = '5.34';
+
+use parent 'URI::https';
+
+1;
+__END__
+
+=head1 NAME
+
+URI::wss - URI scheme for WebSocket Identifiers
+
+=head1 VERSION
+
+Version 5.33
+
+=head1 SYNOPSIS
+
+    use URI::wss;
+
+    my $uri = URI->new('wss://example.com/');
+
+=head1 DESCRIPTION
+
+This module implements the C<wss:> URI scheme defined in L<RFC 6455|http://tools.ietf.org/html/rfc6455>.
+
+=head1 SUBROUTINES/METHODS
+
+This module inherits the behaviour of L<URI::https|URI::https>.
+
+=head1 DIAGNOSTICS
+
+See L<URI|URI>
+
+=head1 CONFIGURATION AND ENVIRONMENT
+
+See L<URI|URI#CONFIGURATION-VARIABLES> and L<URI|URI#ENVIRONMENT-VARIABLES>
+
+=head1 DEPENDENCIES
+
+None
+
+=head1 INCOMPATIBILITIES
+
+None reported
+
+=head1 BUGS AND LIMITATIONS
+
+See L<URI|URI#BUGS>
+
+=head1 SEE ALSO
+
+L<RFC 6455|http://tools.ietf.org/html/rfc6455>
+
+=head1 AUTHOR
+
+David Dick, C<< <ddick at cpan.org> >>
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright 2016 David Dick.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of either: the GNU General Public License as published
+by the Free Software Foundation; or the Artistic License.
+
+See L<http://dev.perl.org/licenses/> for more information.
diff -pruN 5.30-1/lib/URI.pm 5.34-1/lib/URI.pm
--- 5.30-1/lib/URI.pm	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/lib/URI.pm	2025-09-17 11:00:35.000000000 +0000
@@ -3,7 +3,7 @@ package URI;
 use strict;
 use warnings;
 
-our $VERSION = '5.30';
+our $VERSION = '5.34';
 
 # 1=version 5.10 and earlier; 0=version 5.11 and later
 use constant HAS_RESERVED_SQUARE_BRACKETS => $ENV{URI_HAS_RESERVED_SQUARE_BRACKETS} ? 1 : 0;
@@ -28,7 +28,7 @@ our $schemes_without_host_part_re = 'dat
 
 # These schemes can have an IPv6+ authority part:
 #     file, ftp, gopher, http, https, ldap, ldaps, mms, news, nntp, nntps, pop, rlogin, rtsp, rtspu, rsync, sip, sips, snews,
-#     telnet, tn3270, ssh, sftp
+#     smtp, telnet, tn3270, ssh, sftp
 #     (all DB URIs, i.e. cassandra, couch, couchdb, etc.), except 'sqlite:', 'sqlite3:'. Others?
 #MAINT: URI has no test coverage for DB schemes
 #MAINT: decoupling - perhaps let each class decide itself by defining a member function 'scheme_has_authority_part()'?
@@ -976,7 +976,7 @@ which has its own defaults for I<ftps> a
 =item B<gopher>:
 
 The I<gopher> URI scheme is specified in
-<draft-murali-url-gopher-1996-12-04> and will hopefully be available
+C<draft-murali-url-gopher-1996-12-04> and will hopefully be available
 as a RFC 2396 based specification.
 
 C<URI> objects belonging to the gopher scheme support the common,
@@ -1112,8 +1112,8 @@ The I<pop> URI scheme is specified in RF
 reference a POP3 mailbox.
 
 C<URI> objects belonging to the pop scheme support the common, generic
-and server methods.  In addition, they provide two methods to access the
-userinfo components: $uri->user and $uri->auth
+and server methods, as well as two email authorization methods:
+C<user> and C<auth>.
 
 =item B<rlogin>:
 
@@ -1153,6 +1153,22 @@ I<sip> parameters: $uri->params_form and
 See I<sip> scheme.  Its syntax is the same as sip, but the default
 port is different.
 
+=item B<smb>:
+
+C<URI> objects belonging to the smb scheme support the common,
+generic and server methods. In addition, they provide methods to
+access the userinfo sub-components ($uri->user and $uri->password)
+as well as $uri->authdomain and $uri->sharename methods.
+
+=item B<smtp>:
+
+The I<smtp> URI scheme is specified in L<draft-earhart-url-smtp-00|https://datatracker.ietf.org/doc/html/draft-earhart-url-smtp-00>.
+The scheme is used to reference a SMTP server.
+
+C<URI> objects belonging to the smtp scheme support the common, generic
+and server methods, as well as two email authorization methods:
+C<user> and C<auth>.
+
 =item B<snews>:
 
 See I<news> scheme.  Its syntax is the same as news, but the default
@@ -1216,6 +1232,18 @@ separated by dots.  A C<URI> object belo
 additional method called $uri->oid that can be used to get/set the oid
 value.  In a list context, oid numbers are returned as separate elements.
 
+=item B<ws>:
+
+The <ws> URI scheme is specified in L<RFC 6455|http://tools.ietf.org/html/rfc6455>.
+The C<WebSocket> Protocol enables two-way communication between a client
+running untrusted code in a controlled environment to a remote host
+that has opted-in to communications from that code.
+
+=item B<wss>:
+
+The I<wss> URI scheme is specified in L<RFC 6455|http://tools.ietf.org/html/rfc6455> as well.
+The scheme is used to reference C<WebSocket> servers through SSL connections.
+
 =back
 
 =head1 CONFIGURATION VARIABLES
diff -pruN 5.30-1/t/00-report-prereqs.dd 5.34-1/t/00-report-prereqs.dd
--- 5.30-1/t/00-report-prereqs.dd	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/t/00-report-prereqs.dd	2025-09-17 11:00:35.000000000 +0000
@@ -26,7 +26,7 @@ do { my $x = {
                                       'Test::Pod' => '1.41',
                                       'Test::Pod::Coverage' => '1.08',
                                       'Test::Portability::Files' => '0',
-                                      'Test::Spelling' => '0.12',
+                                      'Test::Spelling' => '0.17',
                                       'Test::Version' => '1'
                                     }
                     },
diff -pruN 5.30-1/t/heuristic.t 5.34-1/t/heuristic.t
--- 5.30-1/t/heuristic.t	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/t/heuristic.t	2025-09-17 11:00:35.000000000 +0000
@@ -13,7 +13,7 @@ BEGIN {
     };
 }
 
-use Test::More tests => 26;
+use Test::More tests => 28;
 
 use URI::Heuristic qw( uf_url uf_urlstr );
 if (shift) {
@@ -102,6 +102,10 @@ is(uf_urlstr("perl"), "http://www.perl.o
 
     is(uf_urlstr("123.3.3.3:21/foo"), "ftp://123.3.3.3:21/foo");
 
+    is(uf_urlstr("//server/share/dir"), "smb://server/share/dir");
+    
+    is(uf_urlstr(qq(\\\\server\\share\\dir)), "smb://server/share/dir");
+
     is(uf_url("FTP.example.com")->scheme, "ftp");
 
     is(uf_url("ftp2.example.com")->scheme, "ftp");
diff -pruN 5.30-1/t/otpauth.t 5.34-1/t/otpauth.t
--- 5.30-1/t/otpauth.t	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/t/otpauth.t	2025-09-17 11:00:35.000000000 +0000
@@ -4,7 +4,7 @@ use strict;
 use warnings;
 
 use URI;
-use Test::More tests => 86;
+use Test::More tests => 90;
 
 {
   my $uri = URI->new( 'otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example' );
@@ -61,7 +61,7 @@ use Test::More tests => 86;
   is $issuer_uri->digits(),  6,                                                            'digits';
   is $issuer_uri->period(),  30,                                                           'period';
   is $issuer_uri->fragment(),   undef,                                                     'fragment';
-  my $issuer2_uri = URI->new( 'otpauth://hotp/Example:alice@google.com?&issuer=Example2&counter=23&period=15' );
+  my $issuer2_uri = URI->new( 'otpauth://hotp/Example2:alice@google.com?&issuer=Example2&counter=23&period=15' );
   ok $issuer2_uri,                                                                          "created $issuer2_uri";
   isa_ok $issuer2_uri, 'URI::otpauth';
   is $issuer2_uri->type(),    'hotp',                                                       'type';
@@ -121,6 +121,7 @@ for my $case ( @case ) {
   ok $uri, "created $uri";
   is $uri->scheme(), 'otpauth', "$name: scheme";
   is $uri->type(),  $type, "$name: type";
+  is $uri->authority(),  $type, "$name: authority";
   is $uri->secret(), $secret, "$name: secret";
   is $uri->issuer(),  $issuer, "$name: issuer";
   if (defined $issuer) {
@@ -137,9 +138,6 @@ eval {
 like $@, qr/^secret is a mandatory parameter for URI::otpauth/,   "missing secret";
 my $doc1_uri = URI->new( 'otpauth://totp/Example:alice@google.com?secret=NFZS25DINFZV643VOAZXELLTGNRXEM3UH4&issuer=Example' );
 my $doc2_uri = URI::otpauth->new( type => 'totp', issuer => 'Example', account_name => 'alice@google.com', secret => 'is-this_sup3r-s3cr3t?' );
-diag "doc1_uri is $doc1_uri";
-diag "doc2_uri is $doc2_uri";
 is "$doc1_uri", "$doc2_uri", "$doc1_uri: matches";
 
-# vim:ts=2:sw=2:et:ft=perl
-
+is $doc1_uri->type(), $doc2_uri->authority(), "type and authority match";
diff -pruN 5.30-1/t/smb.t 5.34-1/t/smb.t
--- 5.30-1/t/smb.t	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/t/smb.t	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,35 @@
+use strict;
+use warnings;
+
+use Test::More tests => 15;
+
+use URI ();
+my $uri;
+
+$uri = URI->new('smb://domain;user:password@server/share$/path');
+
+is($uri->scheme, 'smb');
+is($uri->authdomain, 'domain');
+is($uri->user, 'user');
+is($uri->password, 'password');
+is($uri->host, 'server');
+is($uri->port, 445);
+is($uri->sharename, 'share$');
+is($uri->path, '/share$/path');
+
+$uri->userinfo(undef);
+
+is($uri->authdomain, undef);
+is($uri->user, undef);
+is($uri->password, undef);
+is($uri->as_string, 'smb://server/share$/path');
+
+# test that domain without user is not allowed
+$uri->authdomain('DOMAIN');
+is($uri->as_string, 'smb://server/share$/path');
+
+$uri->user('Administrator');
+is($uri->as_string, 'smb://Administrator@server/share$/path');
+
+$uri->authdomain('DOMAIN');
+is($uri->as_string, 'smb://DOMAIN;Administrator@server/share$/path');
diff -pruN 5.30-1/t/smtp.t 5.34-1/t/smtp.t
--- 5.30-1/t/smtp.t	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/t/smtp.t	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,42 @@
+use strict;
+use warnings;
+
+use Test::More tests => 8;
+
+use URI ();
+
+my $u = URI->new('smtp://foobar@smtp.example.com');
+
+ok($u->user eq "foobar" &&
+   !defined($u->auth) &&
+   $u->host eq "smtp.example.com" &&
+   $u->port == 25 &&
+   $u eq 'smtp://foobar@smtp.example.com');
+
+$u->auth("+XOAUTH2");
+ok($u->auth eq "+XOAUTH2" &&
+   $u eq 'smtp://foobar;AUTH=+XOAUTH2@smtp.example.com');
+
+$u->user("bizz");
+ok($u->user eq "bizz" &&
+   $u eq 'smtp://bizz;AUTH=+XOAUTH2@smtp.example.com');
+
+$u->port(4000);
+is($u, 'smtp://bizz;AUTH=+XOAUTH2@smtp.example.com:4000');
+
+$u = URI->new("smtp:");
+$u->host("smtp.example.com");
+$u->user("foobar");
+$u->auth("*");
+is($u, 'smtp://foobar;AUTH=*@smtp.example.com');
+
+$u->auth(undef);
+is($u, 'smtp://foobar@smtp.example.com');
+
+$u->user(undef);
+is($u, 'smtp://smtp.example.com');
+
+# Try some funny characters too
+$u->user('sn☃wm@n');
+ok($u->user eq 'sn☃wm@n' &&
+   $u eq 'smtp://sn%E2%98%83wm%40n@smtp.example.com');
diff -pruN 5.30-1/t/ws.t 5.34-1/t/ws.t
--- 5.30-1/t/ws.t	1970-01-01 00:00:00.000000000 +0000
+++ 5.34-1/t/ws.t	2025-09-17 11:00:35.000000000 +0000
@@ -0,0 +1,50 @@
+use strict;
+use warnings;
+
+use Test::More tests => 16;
+
+use URI ();
+
+my $u = URI->new("ws://www.example.com/path?q=f%F4o");
+
+#print "$u\n";
+is($u, "ws://www.example.com/path?q=f%F4o");
+
+is($u->port, 80);
+
+# play with port
+my $old = $u->port(8080);
+ok($old == 80 && $u eq "ws://www.example.com:8080/path?q=f%F4o");
+
+$u->port(80);
+is($u, "ws://www.example.com:80/path?q=f%F4o");
+
+$u->port("");
+ok($u eq "ws://www.example.com:/path?q=f%F4o" && $u->port == 80);
+
+$u->port(undef);
+is($u, "ws://www.example.com/path?q=f%F4o");
+
+my @q = $u->query_form;
+is_deeply(\@q, ["q", "f\xF4o"]);
+
+$u->query_form(foo => "bar", bar => "baz");
+is($u->query, "foo=bar&bar=baz");
+
+is($u->host, "www.example.com");
+
+is($u->path, "/path");
+
+ok(!$u->secure);
+
+$u->scheme("wss");
+is($u->port, 443);
+
+is($u, "wss://www.example.com/path?foo=bar&bar=baz");
+
+ok($u->secure);
+
+$u = URI->new("ws://%65%78%61%6d%70%6c%65%2e%63%6f%6d/%70%75%62/%61/%32%30%30%31/%30%38/%32%37/%62%6a%6f%72%6e%73%74%61%64%2e%68%74%6d%6c");
+is($u->canonical, "ws://example.com/pub/a/2001/08/27/bjornstad.html");
+
+ok($u->has_recognized_scheme);
diff -pruN 5.30-1/xt/author/00-compile.t 5.34-1/xt/author/00-compile.t
--- 5.30-1/xt/author/00-compile.t	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/xt/author/00-compile.t	2025-09-17 11:00:35.000000000 +0000
@@ -6,7 +6,7 @@ use warnings;
 
 use Test::More 0.94;
 
-plan tests => 64;
+plan tests => 69;
 
 my @module_files = (
     'URI.pm',
@@ -17,6 +17,7 @@ my @module_files = (
     'URI/Split.pm',
     'URI/URL.pm',
     'URI/WithBase.pm',
+    'URI/_emailauth.pm',
     'URI/_foreign.pm',
     'URI/_generic.pm',
     'URI/_idna.pm',
@@ -65,13 +66,17 @@ my @module_files = (
     'URI/sftp.pm',
     'URI/sip.pm',
     'URI/sips.pm',
+    'URI/smb.pm',
+    'URI/smtp.pm',
     'URI/snews.pm',
     'URI/ssh.pm',
     'URI/telnet.pm',
     'URI/tn3270.pm',
     'URI/urn.pm',
     'URI/urn/isbn.pm',
-    'URI/urn/oid.pm'
+    'URI/urn/oid.pm',
+    'URI/ws.pm',
+    'URI/wss.pm'
 );
 
 
diff -pruN 5.30-1/xt/author/pod-coverage.t 5.34-1/xt/author/pod-coverage.t
--- 5.30-1/xt/author/pod-coverage.t	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/xt/author/pod-coverage.t	2025-09-17 11:00:35.000000000 +0000
@@ -11,7 +11,7 @@ BEGIN {
 }
 use Pod::Coverage::TrustPod;
 
-my %skip = map { $_ => 1 } qw( URI::IRI URI::_foreign URI::_idna URI::_login URI::_ldap URI::file::QNX URI::ftpes URI::ftps URI::irc URI::nntp URI::urn::isbn URI::urn::oid URI::scp URI::sftp );
+my %skip = map { $_ => 1 } qw( URI::IRI URI::_emailauth URI::_foreign URI::_idna URI::_login URI::_ldap URI::file::QNX URI::ftpes URI::ftps URI::irc URI::nntp URI::urn::isbn URI::urn::oid URI::scp URI::sftp );
 
 my @modules;
 for my $module ( all_modules() ) {
@@ -87,9 +87,6 @@ my %trustme = (
              'URI::news' => [
                               qr/^(?:group|message)$/
                             ],
-             'URI::pop' => [
-                             qr/^(?:auth|user)$/
-                           ],
              'URI::sip' => [
                              qr/^(?:params|params_form)$/
                            ],
diff -pruN 5.30-1/xt/author/pod-spell.t 5.34-1/xt/author/pod-spell.t
--- 5.30-1/xt/author/pod-spell.t	2024-10-08 21:18:39.000000000 +0000
+++ 5.34-1/xt/author/pod-spell.t	2025-09-17 11:00:35.000000000 +0000
@@ -2,8 +2,8 @@ use strict;
 use warnings;
 use Test::More;
 
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007005
-use Test::Spelling 0.12;
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007006
+use Test::Spelling 0.17;
 use Pod::Wordlist;
 
 set_spell_cmd('aspell list');
@@ -20,6 +20,7 @@ Berners
 Bonaccorso
 Branislav
 Brendan
+Bur
 Byrd
 CRS
 Ceccarelli
@@ -43,6 +44,7 @@ Graham
 HOTP
 Herzog
 Heuristic
+Hightower
 Honma
 Håkon
 Hægland
@@ -67,6 +69,7 @@ Kereliuk
 Knop
 Koster
 Lawrence
+Lester
 Mac
 Mark
 Martijn
@@ -116,11 +119,13 @@ URI
 URL
 Unix
 Ville
+WebSocket
 Whitener
 Willing
 Win32
 WithBase
 Zahradník
+_emailauth
 _foreign
 _generic
 _idna
@@ -132,6 +137,7 @@ _segment
 _server
 _userpass
 adam
+authdomain
 brainbuz
 brian
 capoeirab
@@ -141,7 +147,9 @@ data
 davewood
 ddick
 dependabot
+dev
 dorian
+earhart
 ether
 etype
 evalue
@@ -181,6 +189,7 @@ kentfredric
 ldap
 ldapi
 ldaps
+lester
 lib
 lon
 lowercasing
@@ -210,11 +219,14 @@ schwern
 scp
 sewi
 sftp
+sharename
 simbabque
 sip
 sips
 skaji
 slaven
+smb
+smtp
 snews
 ssh
 symkat
@@ -226,4 +238,6 @@ unicode
 uppercasing
 urn
 ville
+ws
+wss
 xn
