Opened 10 years ago

Closed 9 years ago

#7090 closed enhancement (fixed)

Updates for the rpm packaging scripts/spec

Reported by: jtwyford@… Owned by: Jarod Wilson
Priority: minor Milestone: unknown
Component: Packaging Version: head
Severity: medium Keywords: patch
Cc: rpm@…, jarod@… Ticket locked: no

Description

I've been working on updates to both build_myth.sh and mythtv.spec for some time to keep up with trunk and generally streamline things.

Primarily: -themes is now built as part of mythtv.spec and is not a package of all its own. Thus build_myth.sh has been streamlined too. However, installing via the script still makes a rather boneheaded assumption that is flat out wrong most of the time.

Also:

  • mythbackend now runs as the no-privilege user 'mythtv' that gets added during install instead of root.
  • I've also dropped the old themes from the distribution and base-themes temporarily from the spec.
  • Gone are all references to arts.
  • Various and sundry updates to the spec to get closer to passing rpmlint.

Some issues still exist that I have reservations about, more or less in order of priority:

  1. themes is huge (a 50MiB rpm on x86_64!), but which theme should we include by default so as to recreate base-themes?
  2. I'm not entirely sure this spec will build on systems other than my own. mock's failing at mythpainter_vdpau.cpp (libvdpau is not yet in updates-testing/updates, so no BuildRequire? / Require)
  3. Does the mythtv user/group still need to exist/be created? Why not some other already-defined non-privileged user?
  4. mytharchive is huge too (14MiB)
  5. rpmlint is complaining about a lot of 'unused-direct-shlib-dependency'ies in /usr/lib64/*myth* (which are bugs of their own)
  6. I've had to chmod some mythvideo/mythweb files in the spec to properly set/remove their execute bits. Can we get those fixed in the repo?

Current rpmlint output and svn diff from head are attached

Attachments (9)

rpmpatch.diff (22.6 KB) - added by jtwyford@… 10 years ago.
svn diff against head
rpmlint.out (10.6 KB) - added by jtwyford@… 10 years ago.
rpmlint output against the patched spec
rpmpatch.2.diff (22.6 KB) - added by jtwyford@… 10 years ago.
Fixed svn diff against head. >.<
rpmpatch.3.diff (23.2 KB) - added by jtwyford@… 10 years ago.
Readded oldthemes
rpmpatch.4.diff (19.5 KB) - added by jtwyford@… 10 years ago.
Backed out themes merge
rpmpatch.5.diff (18.1 KB) - added by jtwyford@… 10 years ago.
more updates based on jarod's comments.
rpmpatch.6.diff (9.0 KB) - added by jtwyford@… 10 years ago.
Updates based on -devel comments and new i18n bits, whitespace twitchery
mythnetvision2.2.diff (531 bytes) - added by robertm 10 years ago.
Diff to add MythNetvision? pre-reqs.
0.23rc2_mythtv.spec (396 bytes) - added by Stanley Merkx <stanley@…> 10 years ago.
patch against r24120

Download all attachments as: .zip

Change History (20)

Changed 10 years ago by jtwyford@…

Attachment: rpmpatch.diff added

svn diff against head

Changed 10 years ago by jtwyford@…

Attachment: rpmlint.out added

rpmlint output against the patched spec

Changed 10 years ago by jtwyford@…

Attachment: rpmpatch.2.diff added

Fixed svn diff against head. >.<

comment:1 in reply to:  description ; Changed 10 years ago by Jarod Wilson

Replying to jtwyford@gmail.com:

I've been working on updates to both build_myth.sh and mythtv.spec for some time to keep up with trunk and generally streamline things.

Um... I fail to understand what needed changing... I've been building weekly svn trunk packages in RPM Fusion...

Primarily: -themes is now built as part of mythtv.spec and is not a package of all its own. Thus build_myth.sh has been streamlined too. However, installing via the script still makes a rather boneheaded assumption that is flat out wrong most of the time.

Do Not Want. Very BAD for packaging. The themes should be a noarch package of its own. After release, the themes typically don't need to be updated, but the code does. Including the themes in the base package means that we'd be pushing out a new themes bundle every time we pushed an svn fixes update package, which is a huge waste of bandwidth. No thanks. :)

Also:

  • mythbackend now runs as the no-privilege user 'mythtv' that gets added during install instead of root.

Doesn't work cleanly. On startup, the backend starts before a user has logged in. The only user with read/write privs on tuner devices is root. Chowning devices in the initscript is not particularly cool either (haven't looked to see if you're doing this yet).

  • I've also dropped the old themes from the distribution and base-themes temporarily from the spec.

Dropping themes is not to be done lightly. A user that was using a theme you dropped gets hosed if they update to a newer package that doesn't include the theme they were using anymore.

  • Gone are all references to arts.

This part we definitely want if arts isn't a mythtv-supported audio option anymore...

  • Various and sundry updates to the spec to get closer to passing rpmlint.

Cool.

Some issues still exist that I have reservations about, more or less in order of priority:

  1. themes is huge (a 50MiB rpm on x86_64!), but which theme should we include by default so as to recreate base-themes?

The size is reason numero uno most of the themes have no business being built in the main package, per above.

  1. I'm not entirely sure this spec will build on systems other than my own. mock's failing at mythpainter_vdpau.cpp (libvdpau is not yet in updates-testing/updates, so no BuildRequire? / Require)

I'll ping Nicholas Chauvet about building it for F11 too.

  1. Does the mythtv user/group still need to exist/be created?

Probably not.

Why not some other already-defined non-privileged user?

Such as? (And what for?)

  1. rpmlint is complaining about a lot of 'unused-direct-shlib-dependency'ies in /usr/lib64/*myth* (which are bugs of their own)

Hrm. Yuk. There are also some selinux issues remaining, which might be related... But meh. Only so many hours in the day...

  1. I've had to chmod some mythvideo/mythweb files in the spec to properly set/remove their execute bits. Can we get those fixed in the repo?

Probably.

Current rpmlint output and svn diff from head are attached

Will look 'em over in a bit. Kids need to be put to bed first...

comment:2 in reply to:  1 ; Changed 10 years ago by jtwyford@…

Replying to jarod:

Replying to jtwyford@gmail.com:

I've been working on updates to both build_myth.sh and mythtv.spec for some time to keep up with trunk and generally streamline things.

Um... I fail to understand what needed changing... I've been building weekly svn trunk packages in RPM Fusion...

Maybe I haven't been looking in the right place...

Primarily: -themes is now built as part of mythtv.spec and is not a package of all its own. Thus build_myth.sh has been streamlined too. However, installing via the script still makes a rather boneheaded assumption that is flat out wrong most of the time.

Do Not Want. Very BAD for packaging. The themes should be a noarch package of its own. After release, the themes typically don't need to be updated, but the code does. Including the themes in the base package means that we'd be pushing out a new themes bundle every time we pushed an svn fixes update package, which is a huge waste of bandwidth. No thanks. :)

It's still in its own noarch mythtv-themes subpackage, just getting built via mythtv.spec, not via mythtv-themes.spec.

Also:

  • mythbackend now runs as the no-privilege user 'mythtv' that gets added during install instead of root.

Doesn't work cleanly. On startup, the backend starts before a user has logged in. The only user with read/write privs on tuner devices is root. Chowning devices in the initscript is not particularly cool either (haven't looked to see if you're doing this yet).

All I've done differently is add mythtv to the video group and the one-liner to the init script.

  • I've also dropped the old themes from the distribution and base-themes temporarily from the spec.

Dropping themes is not to be done lightly. A user that was using a theme you dropped gets hosed if they update to a newer package that doesn't include the theme they were using anymore.

/hastily does some readding

  • Gone are all references to arts.

This part we definitely want if arts isn't a mythtv-supported audio option anymore...

  • Various and sundry updates to the spec to get closer to passing rpmlint.

Cool.

Some issues still exist that I have reservations about, more or less in order of priority:

  1. themes is huge (a 50MiB rpm on x86_64!), but which theme should we include by default so as to recreate base-themes?

The size is reason numero uno most of the themes have no business being built in the main package, per above.

  1. I'm not entirely sure this spec will build on systems other than my own. mock's failing at mythpainter_vdpau.cpp (libvdpau is not yet in updates-testing/updates, so no BuildRequire? / Require)

I'll ping Nicholas Chauvet about building it for F11 too.

  1. Does the mythtv user/group still need to exist/be created?

Probably not.

Why not some other already-defined non-privileged user?

Such as? (And what for?)

That was supposed to be if instead of why... Mainly, one less network-facing process running as root.

  1. rpmlint is complaining about a lot of 'unused-direct-shlib-dependency'ies in /usr/lib64/*myth* (which are bugs of their own)

Hrm. Yuk. There are also some selinux issues remaining, which might be related... But meh. Only so many hours in the day...

  1. I've had to chmod some mythvideo/mythweb files in the spec to properly set/remove their execute bits. Can we get those fixed in the repo?

Probably.

Current rpmlint output and svn diff from head are attached

Will look 'em over in a bit. Kids need to be put to bed first...

Thanks for the pointers. Updates to the spec when I get back from dinner.

Changed 10 years ago by jtwyford@…

Attachment: rpmpatch.3.diff added

Readded oldthemes

comment:3 in reply to:  2 Changed 10 years ago by Jarod Wilson

Replying to jtwyford@gmail.com:

Replying to jarod:

Replying to jtwyford@gmail.com:

I've been working on updates to both build_myth.sh and mythtv.spec for some time to keep up with trunk and generally streamline things.

Um... I fail to understand what needed changing... I've been building weekly svn trunk packages in RPM Fusion...

Maybe I haven't been looking in the right place...

http://download1.rpmfusion.org/free/fedora/development/x86_64/os/ has svn rev 21778 built just 4 days ago, and I've got newer stuff I'll build tonight after testing some imon lcd icon patches...

Primarily: -themes is now built as part of mythtv.spec and is not a package of all its own. Thus build_myth.sh has been streamlined too. However, installing via the script still makes a rather boneheaded assumption that is flat out wrong most of the time.

Do Not Want. Very BAD for packaging. The themes should be a noarch package of its own. After release, the themes typically don't need to be updated, but the code does. Including the themes in the base package means that we'd be pushing out a new themes bundle every time we pushed an svn fixes update package, which is a huge waste of bandwidth. No thanks. :)

It's still in its own noarch mythtv-themes subpackage, just getting built via mythtv.spec, not via mythtv-themes.spec.

Being in its own noarch sub-package is irrelevant. Its still a sub-package of the main package. Update the main package and you get an "updated" themes sub-package. Gobs of rpm-newer package data that has to be pushed around to mirrors, gets downloaded by users for no good reason, etc. All but the base themes stay in a separate package.

Also:

  • mythbackend now runs as the no-privilege user 'mythtv' that gets added during install instead of root.

Doesn't work cleanly. On startup, the backend starts before a user has logged in. The only user with read/write privs on tuner devices is root. Chowning devices in the initscript is not particularly cool either (haven't looked to see if you're doing this yet).

All I've done differently is add mythtv to the video group and the one-liner to the init script.

Looks like that would work for analog v4l capture devices, but falls down for dvb devices, making it no-go. Fedora probably ought to create its dvb devices with the video group ownership too though, then this approach probably would work.

  1. Does the mythtv user/group still need to exist/be created?

Probably not.

Why not some other already-defined non-privileged user?

Such as? (And what for?)

That was supposed to be if instead of why... Mainly, one less network-facing process running as root.

Well, whatever user it is, for the scheme to work, if/when dvb devices have video group ownership, the user would need to be a member of the video group, which no users are by default, as far as I can see, so I think we probably need to keep creating the mythtv user.

Will look 'em over in a bit. Kids need to be put to bed first...

Thanks for the pointers. Updates to the spec when I get back from dinner.

Still haven't got the last kid in bed, they're being particularly... testing... tonight... So I haven't looked yet, but will in a few. :)

Changed 10 years ago by jtwyford@…

Attachment: rpmpatch.4.diff added

Backed out themes merge

comment:4 Changed 10 years ago by Jarod Wilson

Okay, so a quick run-through of the additional spec changes...

1) Could have sworn xvmc-vld support wouldn't build w/o the openchrome devel package BR'd, but then I haven't used any via video hardware in ages... Thought there was a good reason for the intel driver devel bits too, but maybe not.

2) I still see a 'disable arts' flag in configure's help output, implying its still possible to build arts support. If so, its also possible someone is using it, so removing the BR on the arts bits could be an issue.

3) The Requires: added to mythweb on mythtv-frontend-api is completely bogus. You can install mythweb on a machine with no other mythtv packages at *all* and it functions just fine, using a network connection to your master backend.

Does seem I've been slacking on getting a few things from the RPM Fusion spec back into mythtv svn though...

Changed 10 years ago by jtwyford@…

Attachment: rpmpatch.5.diff added

more updates based on jarod's comments.

comment:5 in reply to:  4 Changed 10 years ago by jtwyford@…

Replying to jarod:

Okay, so a quick run-through of the additional spec changes...

1) Could have sworn xvmc-vld support wouldn't build w/o the openchrome devel package BR'd, but then I haven't used any via video hardware in ages... Thought there was a good reason for the intel driver devel bits too, but maybe not.

I dunno. Running on nvidia hardware here and they don't seem needed, but unless there's good reason status quo works.

2) I still see a 'disable arts' flag in configure's help output, implying its still possible to build arts support. If so, its also possible someone is using it, so removing the BR on the arts bits could be an issue.

Bah. I was hoping arts could've died by now, but apparently not.

3) The Requires: added to mythweb on mythtv-frontend-api is completely bogus. You can install mythweb on a machine with no other mythtv packages at *all* and it functions just fine, using a network connection to your master backend.

And pulled. Just added it so a yum remove libmyth would catch everything.

Does seem I've been slacking on getting a few things from the RPM Fusion spec back into mythtv svn though...

.5's been posted covering these changes. Any other comments?

comment:6 Changed 10 years ago by Jarod Wilson

(In [21940]) * Fri Sep 18 2009 Jarod Wilson <jarod@…> 0.22-0.4.svn

  • Resync with build fixes from RPM Fusion
  • Remove BR: on xorg-x11-drv-nvidia-devel, just use XvMC wrapper
  • Rename option to build VDPAU support, since its not nVidia-specific
  • Add assorted cleanups from James Twyford (via trac ticket #7090)

Refs #7090

comment:7 Changed 10 years ago by Jarod Wilson

For the record, I hate WikiFormatting.

I've resync'd the RPM Fusion and svn mythtv.spec files, incorporating as much of your changes as I felt comfortable throwing in the day before I go on vacation for week. :)

comment:8 Changed 10 years ago by jtwyford@…

Awesome. Thanks for the patch and have a good trip.

Changed 10 years ago by jtwyford@…

Attachment: rpmpatch.6.diff added

Updates based on -devel comments and new i18n bits, whitespace twitchery

comment:9 Changed 10 years ago by sphery

Component: Contributed Scripts & AppsPackaging
Owner: changed from sphery to Jarod Wilson
Status: newassigned

Changed 10 years ago by robertm

Attachment: mythnetvision2.2.diff added

Diff to add MythNetvision? pre-reqs.

Changed 10 years ago by Stanley Merkx <stanley@…>

Attachment: 0.23rc2_mythtv.spec added

patch against r24120

comment:10 Changed 10 years ago by Jarod Wilson

Spec has both the latest two patches merged as of [24129], as well as a number of other things resync'd w/the rpm fusion spec.

comment:11 Changed 9 years ago by robertm

Resolution: fixed
Status: assignedclosed

Looks like we've taken all we're going to use from this ticket, current trunk spec is functional.

Note: See TracTickets for help on using tickets.