Bug 1214412

Summary: mirror shows Old package separator "'" deprecated warnings after upgrade to perl 5.38 (patch included)
Product: [openSUSE] openSUSE Tumbleweed Reporter: Walter Haidinger <walter.haidinger>
Component: NetworkAssignee: David Anes <david.anes>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Tumbleweed   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: replace the obsolete package separator
patch for perl-5.38.2

Description Walter Haidinger 2023-08-19 12:28:25 UTC
Package mirror-2.9-910.23.noarch throws many warnings:
Old package separator "'" deprecated.

Found in /usr/bin/mirror and it's modules:
/usr/lib/perl5/vendor_perl/5.38.0/dateconv.pl
/usr/lib/perl5/vendor_perl/5.38.0/lchat.pl
/usr/lib/perl5/vendor_perl/5.38.0/lftp.pl
/usr/lib/perl5/vendor_perl/5.38.0/lsparse.pl
Comment 1 Walter Haidinger 2023-08-22 12:12:14 UTC
Upstream reference: https://github.com/perl/perl5/issues/16270

So replacing all occurrences of the ' package separator with '::' (e.g. ftp'debug with ftp::debug and similar) will silence _most_ of the warnings.

The tricky part is that that is some are apparently in eval'ed code.
Wasn't able to find those yet.
Comment 2 Walter Haidinger 2023-08-22 12:40:53 UTC
Created attachment 868936 [details]
replace the obsolete package separator

found the last instance. added patch to silence the warnings.
Comment 3 Walter Haidinger 2023-12-06 10:38:39 UTC
Issue still open. Re-patch required after perl upgrade to 5.38.2.
Comment 4 Walter Haidinger 2023-12-07 07:10:38 UTC
Created attachment 871190 [details]
patch for perl-5.38.2

patch vs. mirror-2.9-911.2.noarch and perl-5.38.2-1.1.x86_64
Comment 5 David Anes 2023-12-07 09:52:33 UTC
Hello Walter, thanks for keeping the patch up to date. Let me find the correct maintainer and see if we can move this one forward.
Comment 6 David Anes 2023-12-07 09:53:28 UTC
(In reply to Walter Haidinger from comment #4)
> Created attachment 871190 [details]
> patch for perl-5.38.2
> 
> patch vs. mirror-2.9-911.2.noarch and perl-5.38.2-1.1.x86_64

Would you like to send this one via OBS? This way I guess it will be handled faster.
Comment 7 Walter Haidinger 2023-12-07 13:09:50 UTC
How do I do this? Not even sure about the abbreviation of "OBS", to be honest. I'm not a dev.
Comment 8 David Anes 2023-12-07 13:26:49 UTC
(In reply to Walter Haidinger from comment #7)
> How do I do this? Not even sure about the abbreviation of "OBS", to be
> honest. I'm not a dev.

OBS as in openSUSE Build Service: https://build.opensuse.org/

You can create an account and send submit requests directly to our packages, then a developer/maintainer will pick it up faster than going via bugzilla.

- Quickstart on collaborating: https://vimeo.com/30845184
- All docs, if you need them: https://openbuildservice.org/help/

You can:

1. Fork openSUSE:Factory/perl (https://build.opensuse.org/package/show/openSUSE:Factory/perl):
  $ osc getpack perl (you will get the latest sources for the package)
2. Apply your fixes/patches and update the spec file accordingly:
  - Edit files with your editor of choice.
  - osc add FILE (or osc rm FILE) to add/remove files.
  - Update the .spec file to include your patch
3. When everything is done, then update the .changes, commit and test everything builds properly:
  - osc vc (to update the .changes file with some user-friendly update text).
  - osc commit: Commit the changes to your fork, and see if everything works.
4. Finally, send a request to include the patches in the distribution:
  $ osc sr (to submit everything to the development project (and, if accepted, it will be submitted to Factory and included in TW in a few days).

This will make sure:
1. Everything you do automatically built and tracked in our build service.
2. Your changes go via the maintainer, qa (openQA) and is properly released asap.
3. You get credited as a contributor!
Comment 9 Walter Haidinger 2023-12-07 13:30:12 UTC
Alright. Thanks for the pointers. Will try to do.
Comment 10 Walter Haidinger 2023-12-10 11:24:04 UTC
It's actually not about perl but the mirror package.
osc checkout and subsequent build works.

But unfortunately committing did not:
Sending    mirror.changes
Sending    mirror.spec
Sending    mirror-fix-perl-5.38-package-separator.patch
Server returned an error: HTTP Error 403: Forbidden
no permission to modify package mirror in project network:utilities

Requested the bugowner role. I hope that's the correct course of action.

In the mean time, I've created a branch under my user:
https://build.opensuse.org/package/rdiff/home:haidinger:branches:network:utilities/mirror?linkrev=base&rev=2
Comment 11 David Anes 2023-12-12 10:05:27 UTC
Thank you so much for your work!

Instead of committing directly to network:utilities, you have to submit a request from your home branch.

Therefore, in your branch, after the changes you did, you can do:

> osc sr -m "Message here"

# NOTE: "sr" stands for Submit Request.

And a submit request will be send to that package.

Then:
1. A submit request will be created, and you get an ID for that one.
2, That submit request will be handled by the maintainers of the package and/or the project (network:utilities) 
3. If everything is ok they will merge with current version and send to Factory.
4. After going through QA, it will appear as an update in Tumbleweed.

As you can see, there are a few safeguards as we try to keep Tumbleweed quite stable (even for a rolling release!).

Again, thanks a lot for your work, all contributions are very welcome!
Comment 12 Walter Haidinger 2023-12-12 11:36:32 UTC
Alright. That worked: created request id 1132635
Comment 13 David Anes 2023-12-13 17:37:25 UTC
Factory update being handled here: https://build.opensuse.org/request/show/1132931
Comment 14 Walter Haidinger 2024-01-31 21:24:00 UTC
Fixed with mirror-2.9-1815.1.noarch