Bug 1259347 - missing build requirements
Summary: missing build requirements
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: z88dk
Version: 23
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kevin Kofler
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1259340
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-09-02 12:33 UTC by Ralf Corsepius
Modified: 2015-09-03 11:17 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-09-03 11:12:10 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Ralf Corsepius 2015-09-02 12:33:11 UTC
Description of problem:

z88dk.spec should BuildRequire: these perl-dists:

perl(Capture::Tiny)
perl(Data::Dump)
perl(File::Basename)
perl(File::Spec)
perl(IO::File)
perl(Iterator::Simple)
perl(Iterator::Simple::Lookahead)
perl(Regexp::Common)
perl(integer)
perl(strict)
perl(warnings)

Version-Release number of selected component (if applicable):

Additional info:
- BR:'ing these, makes hidden run-time deps explicit at build-time and
  causes builds to abort early in case of changes to perl packaging.

  This helps avoiding packing mistakes like these:
  From https://lists.fedoraproject.org/pipermail/devel/2015-September/214042.html:

[z88dk]
	z88dk-1.10.1-8.20150709cvs.fc23.i686 requires perl(Iterator::Simple::Lookahead)
	z88dk-1.10.1-8.20150709cvs.fc23.i686 requires perl(Iterator::Simple)

Comment 1 Kevin Kofler 2015-09-02 20:55:56 UTC
BuildRequiring runtime-only requirements makes no sense whatsoever.

Comment 2 Ralf Corsepius 2015-09-03 02:39:33 UTC
(In reply to Kevin Kofler from comment #1)
> BuildRequiring runtime-only requirements makes no sense whatsoever.

With all due respect, I disagree. What I outlined above is Fedora perl packaging standard. What you do is careless and unsafe packaging.

Comment 3 Kevin Kofler 2015-09-03 03:06:25 UTC
This is MY package. I am NOT going to add BuildRequires that are completely unnecessary and would thus make builds slower for no good reason. Runtime requirements belong into Requires (or Recommends/Suggests), not BuildRequires.

Comment 4 Kevin Kofler 2015-09-03 03:12:02 UTC
I'll also add that the missing runtime dependency is caught just fine by the routine broken dependency checks, which is how you found out about it to begin with. I don't see what having the package also FTBFS would improve.

I also don't know how I would get the list of Perl modules to BuildRequire even if I wanted to. Do you think I should build the package, take the auto-Requires, then rebuild the package with the auto-Requires copied to BuildRequires? Sorry, but no.

Comment 5 Ralf Corsepius 2015-09-03 07:21:54 UTC
Then let me put it this way:

1. Your package's configuration is broken. Its configuration does not check all necessary requirements.

2. Due to 1 your have pushed broken builds to Fedora.

3. You apparent refuse to do your job.

Comment 6 Ralf Corsepius 2015-09-03 07:24:37 UTC
(In reply to Kevin Kofler from comment #4)

> I also don't know how I would get the list of Perl modules to BuildRequire
> even if I wanted to. Do you think I should build the package, take the
> auto-Requires, then rebuild the package with the auto-Requires copied to
> BuildRequires?
Exactly, that's one commona short-cut/heuristics to find these deps.

The actual way to do so would be to examine the source code, similar as you would do for #includes in c/c++.

Comment 7 Kevin Kofler 2015-09-03 11:12:10 UTC
> Then let me put it this way:
>
> 1. Your package's configuration is broken. Its configuration does not check
> all necessary requirements.

Nonsense. It's checking runtime requirements at build time that's broken (I always complain when upstreams do that, and the other KDE SIG packagers do, too), z88dk upstream is doing the right thing. And either way, it's an upstream issue.

> 2. Due to 1 your have pushed broken builds to Fedora.

I wasn't even aware that there are any Perl modules required at all. How was I supposed to add the (bogus) BuildRequires?

> 3. You apparent refuse to do your job.

I refuse to do a change that's obviously incorrect just because you ask for it.

> Exactly, that's one commona short-cut/heuristics to find these deps.

That means I have to do twice the work to maintain the package (just to add bogus dependencies).

Please quit reopening this bug. If you think you can do a better job than me at maintaining z88dk, then for all I care you can have the package, but then it's yours to deal with. Just be warned that the Perl piece is only a very small piece, it's mostly C code. If you don't want the responsibility, then please accept that it's my package, not yours.

Comment 8 Kevin Kofler 2015-09-03 11:17:46 UTC
And next time, I'll know to check the runtime requirements. I don't need them as bogus BuildRequires for that.

I'll also point out that z88dk was updated to a new snapshot in a rush because it was failing to build for months and we were given a notice of less than a week that longstanding FTBFS bugs need to be fixed lest the package be dropped, and also because of a licensing issue that I've been ignoring for way too long. (I had been waiting for a new upstream release with those 2 important fixes, but they haven't done one for years now, so I was forced to take a snapshot.) Documentation of the new dependencies was either not there or I didn't find it due to being in a hurry.


Note You need to log in before you can comment on or make changes to this bug.