Bug 1428035 - Review Request: fedora-modular-release - Fedora Modular release files
Summary: Review Request: fedora-modular-release - Fedora Modular release files
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Petr Šabata
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-03-01 18:22 UTC by Stephen Gallagher
Modified: 2017-03-08 15:08 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-03-08 15:08:36 UTC
Type: ---
Embargoed:
psabata: fedora-review+


Attachments (Terms of Use)

Description Stephen Gallagher 2017-03-01 18:22:23 UTC
Spec URL: https://sgallagh.fedorapeople.org/packagereview/modular-release/modular-release.spec
SRPM URL: https://sgallagh.fedorapeople.org/packagereview/modular-release/modular-release-26-0.2.fc26.src.rpm
Description: Fedora release files such as various %{_sysconfdir}/ files that define the modular release.
Fedora Account System Username: sgallagh

Comment 1 Stephen Gallagher 2017-03-02 14:14:00 UTC
Some additional data about this package:

 * It copies the license files from fedora-release verbatim.
 * The presets were generated by getting a list of the units provided by the base runtime package set ( https://github.com/fedora-modularity/whatpkgs/blob/master/sampledata/fedora/26/runtime-binary-dependency-packages-short.txt ) and filtering the 90-default.preset file from fedora-release down to just those referenced there.

Comment 2 Neal Gompa 2017-03-03 15:12:26 UTC
This should be prefixed with fedora- in its name. This is *not* generic.

Comment 3 Petr Šabata 2017-03-03 15:58:19 UTC
* modular-release.spec:1-3
  %global is generally preferred over %define; let's switch to that

* 90-default.preset:
  I'd remove the majority of the `enable' presets as nothing in the
  Base Runtime actually provides such functionality (or in some cases,
  unit files).  Perhaps your filter mentioned in comment #1 didn't quite
  work?  Or maybe I'm doing it wrong :)  The one I'd remove include:
  - bluetooth (we only have the grouping target)
  - avahi-daemon (we don't have avahi)
  - cups (we don't have cups)
  - rsyslog (we don't have rsyslog)
  - syslog-ng (we don't have syslog-ng)
  - sysklogd (nothing in Fedora provides this)
  - gpm (we don't have gpm)
  - mcelog (we don't have mcelog)

* modular-release.spec:44-48
  I assume the reason for creating fedora-release and system-release-cpe under
  %{_prefix} (which is not what fedora-release does today) is to unify where
  all the release files are kept, as issue, issue.net, os-release and
  os.release.d are already there.  Is that right?  Note fedora-release
  doesn't do this.

* The standard fedora-release package also installs
  %{_prefix}/lib/os.release.d, plus some files/links under it.
  Don't we want it too?

* Additionaly, it also installs %{_prefix}/lib/variant.  Should we have it too?

Comment 4 Petr Šabata 2017-03-03 17:08:06 UTC
(In reply to Neal Gompa from comment #2)
> This should be prefixed with fedora- in its name. This is *not* generic.

Note this package is only meant for the module-based compose and it is the only variant we're going to ship.  Putting "fedora" in the name feels redundant to me, even if its content in Fedora dist-git includes files specific to Fedora.

Also note this package won't be part of the traditional release -- it will be excluded from the compose.

Comment 5 Stephen Gallagher 2017-03-03 17:30:26 UTC
(In reply to Petr Šabata from comment #3)
> * modular-release.spec:1-3
>   %global is generally preferred over %define; let's switch to that
> 

Done.

> * 90-default.preset:
>   I'd remove the majority of the `enable' presets as nothing in the
>   Base Runtime actually provides such functionality (or in some cases,
>   unit files).  Perhaps your filter mentioned in comment #1 didn't quite
>   work?  Or maybe I'm doing it wrong :)  The one I'd remove include:
>   - bluetooth (we only have the grouping target)
>   - avahi-daemon (we don't have avahi)
>   - cups (we don't have cups)
>   - rsyslog (we don't have rsyslog)
>   - syslog-ng (we don't have syslog-ng)
>   - sysklogd (nothing in Fedora provides this)
>   - gpm (we don't have gpm)
>   - mcelog (we don't have mcelog)
> 

I think you're right that my filter may have been wrong. I've removed those.

> * modular-release.spec:44-48
>   I assume the reason for creating fedora-release and system-release-cpe
> under
>   %{_prefix} (which is not what fedora-release does today) is to unify where
>   all the release files are kept, as issue, issue.net, os-release and
>   os.release.d are already there.  Is that right?  Note fedora-release
>   doesn't do this.
> 

Yes, this is in preparation of the mythical future where empty /etc is possible. It's been requested of the fedora-release package, but no one has done the work yet. I figured it was okay for us to just do it.


> * The standard fedora-release package also installs
>   %{_prefix}/lib/os.release.d, plus some files/links under it.
>   Don't we want it too?
> 
> * Additionaly, it also installs %{_prefix}/lib/variant.  Should we have it
> too?

These are related. They exist specifically for dealing with the variants like Fedora Server Edition vs. Fedora Workstation Edition. We don't need these because we won't have variant versions of Base Runtime that need to coexist in the same repository.

(If you want an exhaustive explanation, read https://sgallagh.wordpress.com/2016/03/18/sausage-factory-multiple-edition-handling-in-fedora/ )

Comment 7 Neal Gompa 2017-03-03 17:45:01 UTC
(In reply to Petr Šabata from comment #4)
> (In reply to Neal Gompa from comment #2)
> > This should be prefixed with fedora- in its name. This is *not* generic.
> 
> Note this package is only meant for the module-based compose and it is the
> only variant we're going to ship.  Putting "fedora" in the name feels
> redundant to me, even if its content in Fedora dist-git includes files
> specific to Fedora.
> 
> Also note this package won't be part of the traditional release -- it will
> be excluded from the compose.

The name in the Summary indicates it's Fedora specific. All fedora branding packages are named fedora-*. This should be no different.

Comment 8 Petr Šabata 2017-03-03 19:16:08 UTC
(In reply to Stephen Gallagher from comment #5)
> (In reply to Petr Šabata from comment #3)
> > * modular-release.spec:1-3
> >   %global is generally preferred over %define; let's switch to that
> 
> Done.

Ack.

> > * 90-default.preset:
> >   I'd remove the majority of the `enable' presets as nothing in the
> >   Base Runtime actually provides such functionality (or in some cases,
> >   unit files).  Perhaps your filter mentioned in comment #1 didn't quite
> >   work?  Or maybe I'm doing it wrong :)  The one I'd remove include:
> >   - bluetooth (we only have the grouping target)
> >   - avahi-daemon (we don't have avahi)
> >   - cups (we don't have cups)
> >   - rsyslog (we don't have rsyslog)
> >   - syslog-ng (we don't have syslog-ng)
> >   - sysklogd (nothing in Fedora provides this)
> >   - gpm (we don't have gpm)
> >   - mcelog (we don't have mcelog)
> 
> I think you're right that my filter may have been wrong. I've removed those.

Ack.

> > * modular-release.spec:44-48
> >   I assume the reason for creating fedora-release and system-release-cpe
> > under
> >   %{_prefix} (which is not what fedora-release does today) is to unify where
> >   all the release files are kept, as issue, issue.net, os-release and
> >   os.release.d are already there.  Is that right?  Note fedora-release
> >   doesn't do this.
> 
> Yes, this is in preparation of the mythical future where empty /etc is
> possible. It's been requested of the fedora-release package, but no one has
> done the work yet. I figured it was okay for us to just do it.

Okay, sounds good.

> > * The standard fedora-release package also installs
> >   %{_prefix}/lib/os.release.d, plus some files/links under it.
> >   Don't we want it too?
> > 
> > * Additionaly, it also installs %{_prefix}/lib/variant.  Should we have it
> > too?
> 
> These are related. They exist specifically for dealing with the variants
> like Fedora Server Edition vs. Fedora Workstation Edition. We don't need
> these because we won't have variant versions of Base Runtime that need to
> coexist in the same repository.
> 
> (If you want an exhaustive explanation, read
> https://sgallagh.wordpress.com/2016/03/18/sausage-factory-multiple-edition-
> handling-in-fedora/ )

Alright.  If it breaks something, we'll fix it.

I've just noticed your %changelog entries are malformed; probably because your editor doesn't evaluate the macro when inserting the version.


(In reply to Neal Gompa from comment #7)
> (In reply to Petr Šabata from comment #4)
> > (In reply to Neal Gompa from comment #2)
> > > This should be prefixed with fedora- in its name. This is *not* generic.
> > 
> > Note this package is only meant for the module-based compose and it is the
> > only variant we're going to ship.  Putting "fedora" in the name feels
> > redundant to me, even if its content in Fedora dist-git includes files
> > specific to Fedora.
> > 
> > Also note this package won't be part of the traditional release -- it will
> > be excluded from the compose.
> 
> The name in the Summary indicates it's Fedora specific. All fedora branding
> packages are named fedora-*. This should be no different.

The idea here was that we wouldn't have to change the package name, bootstrap tags and installation & buildroot profiles when [re]building modules outside of Fedora.  Of course this isn't the only way to achieve that; we could rename it or package this differently, if you really insist on having Fedora in the package name.

Comment 10 Petr Šabata 2017-03-03 19:39:25 UTC
Changelog fixed.

Comment 11 Neal Gompa 2017-03-03 20:25:43 UTC
(In reply to Petr Šabata from comment #8)
> (In reply to Neal Gompa from comment #7)
> > (In reply to Petr Šabata from comment #4)
> > > (In reply to Neal Gompa from comment #2)
> > > > This should be prefixed with fedora- in its name. This is *not* generic.
> > > 
> > > Note this package is only meant for the module-based compose and it is the
> > > only variant we're going to ship.  Putting "fedora" in the name feels
> > > redundant to me, even if its content in Fedora dist-git includes files
> > > specific to Fedora.
> > > 
> > > Also note this package won't be part of the traditional release -- it will
> > > be excluded from the compose.
> > 
> > The name in the Summary indicates it's Fedora specific. All fedora branding
> > packages are named fedora-*. This should be no different.
> 
> The idea here was that we wouldn't have to change the package name,
> bootstrap tags and installation & buildroot profiles when [re]building
> modules outside of Fedora.  Of course this isn't the only way to achieve
> that; we could rename it or package this differently, if you really insist
> on having Fedora in the package name.

I do, especially since this conflicts with the regular "fedora-release" and calls itself "Fedora modular release".

I firmly believe it should be clear for Fedora branding so that downstream consumers of Fedora have a clear direction on what packages they need to replace, even when making their own "modular" distributions.

Please rename this package. If you want to also produce a "generic" version for people to use as a template for downstream use (which would be greatly appreciated), that would be excellent too.

Comment 12 Neal Gompa 2017-03-03 20:27:02 UTC
Oh, and since this package is using Fedora trademarks, it must be licensed in the same manner that "fedora-release" is, with the same notices.

Comment 13 Neal Gompa 2017-03-03 20:35:31 UTC
@Stephen:

A couple of other nitpicks:

* The ID should be "fedora-modular" rather than "fedoramodular". Likewise for the CPE name.
* "ID_LIKE=fedora" should be added

Comment 14 Stephen Gallagher 2017-03-06 16:39:42 UTC
Spec: https://sgallagh.fedorapeople.org/packagereview/modular-release/modular-release.spec
SRPM: https://sgallagh.fedorapeople.org/packagereview/modular-release/fedora-modular-release-26-0.5.fc26.src.rpm

(In reply to Neal Gompa from comment #12)
> Oh, and since this package is using Fedora trademarks, it must be licensed
> in the same manner that "fedora-release" is, with the same notices.

I think it already is; did I miss something?


(In reply to Neal Gompa from comment #13)
> @Stephen:
> 
> A couple of other nitpicks:
> 
> * The ID should be "fedora-modular" rather than "fedoramodular". Likewise
> for the CPE name.
> * "ID_LIKE=fedora" should be added

Done

Comment 15 Neal Gompa 2017-03-06 18:36:50 UTC
@Stephen:

* You've got the notice in place, so you're good there.

* The spec should be called fedora-modular-release.spec

* The package should be called fedora-modular-release

* It should provide "system-modular-release" and "system-modular-release(%{version})" in addition to standard ones (c.f. edition release packages).
 - This allows for rebranding and generic versions to replace it easily enough.

* The commented out "modular-repos(%{version})", if you decide to do that, should be "fedora-modular-repos(%{version})".

Also, I don't see an updated spec posted. The SRPM seems to be updated, so maybe the spec is out of sync with the SRPM one.

Comment 16 Stephen Gallagher 2017-03-06 19:13:01 UTC
Spec: https://sgallagh.fedorapeople.org/packagereview/modular-release/fedora-modular-release.spec
SRPM: https://sgallagh.fedorapeople.org/packagereview/modular-release/fedora-modular-release-26-0.6.fc26.src.rpm

(In reply to Neal Gompa from comment #15)
> @Stephen:
> 
> * You've got the notice in place, so you're good there.
> 
> * The spec should be called fedora-modular-release.spec
> 
> * The package should be called fedora-modular-release
> 

This was fixed in the spec included in the SRPM, but I posted the wrong spec link above.


> * It should provide "system-modular-release" and
> "system-modular-release(%{version})" in addition to standard ones (c.f.
> edition release packages).
>  - This allows for rebranding and generic versions to replace it easily
> enough.
> 

Done

> * The commented out "modular-repos(%{version})", if you decide to do that,
> should be "fedora-modular-repos(%{version})".
> 

Done

> Also, I don't see an updated spec posted. The SRPM seems to be updated, so
> maybe the spec is out of sync with the SRPM one.

Sorry, I pasted the wrong one into the comment. Fixed here.

Comment 17 Neal Gompa 2017-03-06 20:05:06 UTC
@Stephen: Thanks for fixing URL for spec.

Couple of remaining things I noticed:

* URL is invalid. I think you mean https://github.com/sgallagher/modularity-release ? Or do you intend to have a Pagure repo for this?

* NAME in os-release should be "Fedora Modular" rather than "Fedora". It should also be a quoted string (since it will have a space).

Comment 18 Stephen Gallagher 2017-03-06 23:25:16 UTC
Spec: https://sgallagh.fedorapeople.org/packagereview/modular-release/fedora-modular-release.spec

SRPM: https://sgallagh.fedorapeople.org/packagereview/modular-release/fedora-modular-release-26-0.7.fc26.src.rpm


(In reply to Neal Gompa from comment #17)
> @Stephen: Thanks for fixing URL for spec.
> 
> Couple of remaining things I noticed:
> 
> * URL is invalid. I think you mean
> https://github.com/sgallagher/modularity-release ? Or do you intend to have
> a Pagure repo for this?
> 

Once it gets created in dist-git, we'll probably use dist-git as the official upstream source for it, since there's no benefit at all to having a separate upstream. For now, I've just fixed the URL (and renamed my github repo to match the new name).

> * NAME in os-release should be "Fedora Modular" rather than "Fedora". It
> should also be a quoted string (since it will have a space).

Yes, thanks. I missed that. Good eye :)

Comment 19 Neal Gompa 2017-03-07 00:22:59 UTC
Well, I'm not the official reviewer, but I'm happy now. :)

Comment 20 Petr Šabata 2017-03-07 13:12:25 UTC
I reviwed the changes & am fine with them.  Approving.


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