15:59:52 <spot> #startmeeting Fedora Packaging Committee
15:59:52 <zodbot> Meeting started Wed Feb  9 15:59:52 2011 UTC.  The chair is spot. Information about MeetBot at http://wiki.debian.org/MeetBot.
15:59:52 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
15:59:56 <spot> #meetingname fpc
15:59:56 <zodbot> The meeting name has been set to 'fpc'
16:00:02 <spot> #topic Roll Call
16:00:54 * spot is here
16:01:05 <tibbs|h> I'm here.
16:01:44 * limburgher here
16:03:35 <geppetto> here
16:04:04 * SmootherFrOgZ here
16:04:12 <spot> abadger1999, SmootherFrOgZ ?
16:04:30 <abadger1999> here
16:05:04 <abadger1999> I have a doctor's apt in an hour, though, so I'll be leaving in time to drive there.
16:05:15 <spot> so, i've spent the last 30 minutes trying to fix a bug in the systemd scriptlets
16:05:29 <spot> rpm really does not like "if /sbin/chkconfig ser2net ; then"
16:05:43 <spot> /var/tmp/rpm-tmp.QCAYWA: line 1: test: too many arguments
16:05:57 <tibbs|h> Needs brackets, doesn't it?
16:06:00 <tibbs|h> Or a call to test
16:06:07 <spot> i think it needs a call to test
16:06:11 <spot> but my bash is rusty
16:06:11 <limburgher> That's what I was thinking.
16:06:25 <tibbs|h> Or just call chkconfig and check $}
16:06:27 <tibbs|h> $?
16:06:39 <abadger1999> <nod>: $?
16:06:40 <limburgher> Becasue without them you're tryinf to evaluate two things as a boolean.
16:07:01 <spot> so, can anyone suggest the replacement?
16:08:32 <abadger1999> what tibbs said
16:08:45 <abadger1999> /sbin/chkconfig ser2net
16:08:49 <abadger1999> if $? ; then
16:09:01 <abadger1999> # failure case
16:09:23 <abadger1999> else # chkconfig succeeded; returned 0
16:09:29 * spot checks it quickly
16:09:58 <spot> did anyone else get a chance to test the systemd guidelines?
16:10:27 <tibbs|h> I ran into other questions, unfortunately.
16:10:29 <abadger1999> something really messed with services on my f15 guest.
16:10:40 <spot> btw, that approach didn't work
16:11:01 <abadger1999> sshd was turned off... ran down a rabbithole  trying to troubleshoot that.
16:11:07 <SmootherFrOgZ> spot: abadger1999's ?
16:11:11 <spot> SmootherFrOgZ: yes
16:11:34 <abadger1999> spot: Update the wiki page with the new scriptlet?
16:11:34 <tibbs|h> chkconfig foo > /dev/null etc
16:11:48 <tibbs|h> if [ $? -eq 0 ]; then whatever
16:12:01 <SmootherFrOgZ> tibbs|h: yeah, that one is better
16:12:25 <spot> /sbin/chkconfig ser2net > /dev/null 2>&1 || :
16:12:25 <spot> if [ $? -eq 0 ]; then
16:12:25 <spot> /bin/systemctl enable ser2net.service >/dev/null 2>&1 || :
16:12:25 <spot> fi
16:13:16 <spot> abadger1999: i want to make sure it works first.
16:13:28 <tibbs|h> Does that not work?  My understanding is that chkconfig will return 0 if the service exists and is enabled.
16:13:33 <spot> it still is throwing errors
16:13:39 <spot> /var/tmp/rpm-tmp.4xEhvN: line 1: test: too many arguments
16:14:07 <geppetto> You've looked at /var/tmp/rpm-tmp.4xEhvN … to make sure it's the same script?
16:14:15 <spot> geppetto: rpm nukes it immediately
16:14:28 * geppetto nods … because I'm pretty sure what you wrote first should work too
16:14:38 <spot> http://fpaste.org/b1je/
16:14:41 <geppetto> And what you just pasted really should work
16:14:42 <spot> those are my scriptlets
16:14:52 <tibbs|h> To be honest I'm not sure of the effect of ||:  on $?.
16:14:58 <tibbs|h> But that shouldn't make the test fail.
16:15:50 <tibbs|h> Maybe put $? in quotes for extra safety, although I'm not sure that bash would require it.
16:15:57 <geppetto> Ahh … you might want to use: [ "x$?" = "x0" ] … but again, the first thing should work AFAIK
16:16:00 <spot> hmm. maybe it is one of the old scriptlets that is failing
16:16:15 * geppetto nods … any remaining triggerun stuff?
16:16:25 <spot> yep. the old postun was broken.
16:16:30 <spot> thats the %postun failing
16:16:38 <spot> ugh. i hate scriptlets.
16:17:13 <tibbs|h> My confusion about systemd stuff is with ordering when the stuff you have to run before or after hasn't been converted to systemd yet.
16:17:35 <tibbs|h> I need to experiment more with that.
16:18:11 <spot> tibbs|h: it seems right to me
16:19:17 <spot> #topic SystemD - https://fedoraproject.org/wiki/TomCallaway/Systemd_Revised_Draft
16:19:32 <spot> Lennart asks me about this weekly, if not daily.
16:20:42 <tibbs|h> What's left to do?
16:20:50 <spot> tibbs|h: nothing that i can see.
16:21:17 <spot> i've confirmed that the guidelines work on my little test package (ser2net)
16:21:41 <abadger1999> The Bus Activation section needs to be clarified
16:22:02 <abadger1999> The more I look at it, the less I understand what's being done.
16:22:22 <spot> abadger1999: i'm not sure lennart is going to be able to do that for us
16:22:43 * abadger1999 just tried to translate it into something usable and once again ended up in a wtf moment.
16:23:00 <SmootherFrOgZ> abadger1999: +1
16:23:10 * spot doesn't really understand D-Bus, so i'm not qualified to rewrite it
16:23:18 <tibbs|h> Can we defer the entire bus activation stuff?
16:23:25 <abadger1999> spot: Can you or someone break this down into step-by-step:
16:23:29 <tibbs|h> Most people just want to know what to do with their initscripts.
16:23:29 <abadger1999> you can easily implement disabling by directing the D-Bus service to a symlinked alias name of the real service file which is controlled via systemctl enable/disable and which then points to the real service. Example: set SystemdService=dbus-org.freedesktop.Avahi.service instead of SystemdService=avahi-daemon.service, and then make /etc/systemd/system/dbus-org.freedesktop.Avahi.service a symlink → /lib/systemd/system/avahi-daemon.service. A
16:23:30 <abadger1999> full example for the Avahi case:
16:24:31 <SmootherFrOgZ> spot: make an action for me on this part
16:25:01 <spot> SmootherFrOgZ: you're going to rewrite the Bus Activation section?
16:25:37 <abadger1999> It looks like the dbus .service file is changed from referencing avahi-daemon.servic to referencing dbus-org.freedesktop.Avahi.service
16:26:01 <SmootherFrOgZ> spot: will make it more clear
16:26:25 <abadger1999> Then the systemd file that is being referenced by bus-org.freedesktop.Avahi.service is made into a symlink to the original  dbus-org.freedesktop.Avahi.service file
16:26:36 <abadger1999> That would seem like it wouldn't have any effect.
16:27:19 <spot> abadger1999: yeah, that doesn't seem to make any sense.
16:28:51 <spot> okay. i'll tell lennart that none of us understand how the Bus Activation section works
16:29:12 <spot> between him and SmootherFrOgZ, hopefully one of them will come up with something that makes sense. :)
16:29:33 <spot> do we want to break that out into a separate draft?
16:29:38 <abadger1999> Oh, maybe we aren't actually supposed to create the symlink -- maybe systemd creates the symlink...
16:29:46 * abadger1999 adds that as a quest on the page
16:30:48 <geppetto> abadger1999: I _think_ it doesn;'t have any effect, until you run the systemdctl disable command … at which point systemd removes the symlink and the service doesn't run
16:31:05 <geppetto> But … I'm happy if Lennart or someone else clarifies
16:31:19 <abadger1999> geppetto: Okay -- in which case, we want to make the sysadmin manually run systemctl enable in the normal case
16:31:27 <geppetto> yeh
16:32:09 <abadger1999> geppetto: And then the services that are allowed to autostart should have a conditionalized systemctl enable in their %post scripts
16:32:23 <spot> well, i don't hear anyone wanting to separate this out, so we'll table this until next week for the Bus Activation section to be cleaned up.
16:33:02 <spot> #topic Clarify how %global differs from %define - https://fedorahosted.org/fpc/ticket/50
16:33:29 <spot> specifically, this ticket asks that we add the following sentence:
16:33:31 <spot> Note that %define and %global differ in more ways than just scope: the body of a %define'd macro is lazily expanded (ie when used), but the body of %global is expanded at definition time. It's possible to use %%-escaping to force lazy expansion of %global.
16:33:46 <tibbs|h> Meh.
16:34:03 <tibbs|h> I mean, I guess, so, but the intent of the guidelines aren't to document every internal foible of RPM.
16:34:12 <abadger1999> I'm fine with adding.
16:34:17 * spot is fine with adding it
16:34:18 <spot> +1
16:34:39 <limburgher> I'm good with it.  I see no reason not to point out obscure gotchas.
16:34:40 <geppetto> dito. +1
16:34:42 <limburgher> +1
16:35:04 <abadger1999> +1
16:35:05 <SmootherFrOgZ> +1
16:35:13 <spot> tibbs|h: want to vote for the record?
16:35:16 <tibbs|h> Are we doing to actually document %-escaping and lazy expansion?
16:35:24 <spot> tibbs|h: the perl package does.
16:35:38 <spot> well, it doesn't document it, but it uses it.
16:36:06 <spot> we could just link to the rpm docs
16:36:10 <tibbs|h> So they use all this magic, but then go changing it "just because the guidelines said to" and then complained about breaking it?
16:36:21 <limburgher> The only reason not to link or document is if it's going away soon.
16:36:23 <racor> -1 We should not apply this change, but add the  footnotes from the ticket, only.
16:36:31 <tibbs|h> Aren't they supposed to understand the magic if they're going to use it?
16:37:13 <spot> #action Clarification passes (+1:5, 0:0, -1:1)
16:37:45 <abadger1999> Question for Open floor since I have to run -- are we against %trigger because the triggers can run against arbitrary future packages?  If so, does the use of a version in the sample systemd guidelines negate our concerns?
16:37:47 <limburgher> Oh, you mean like F11 font packaging changes?
16:37:50 <limburgher> ;)
16:37:58 * abadger1999 leaves for doctor
16:38:31 <spot> i'm against triggers because if you get it wrong, you deal with the fallout forever and ever.
16:38:40 <spot> if you get a scriptlet wrong, you can fix it in the next package
16:39:05 <abadger1999> does the version in the systemd sample mean you don't have to deal with it forever and ever?
16:39:09 <spot> not to mention the fact that they're notoriously fragile.
16:39:15 <spot> abadger1999: if the packager gets it right.
16:39:41 * spot would rather avoid them unless there is no other alternative
16:39:59 <abadger1999> okee dokee
16:40:25 <geppetto> Yeh, dito. … only use triggers if they are the _only_ option, IMO
16:40:55 <spot> #topic Path matching binaries with libraries - https://fedorahosted.org/fpc/ticket/53
16:41:08 <tibbs|h> This is a no-brainer, I think.
16:41:38 <spot> sure seems that way to me.
16:41:48 <limburgher> Yeah.
16:41:59 <tibbs|h> Is ldd not sufficient to determine almost all cases of this?
16:42:16 <spot> aside from wacky "look at what i dlopen" scenarios, yes.
16:42:18 <tibbs|h> I mean, it wouldn't catch dlopen stuff, but that should be vanishingly rare among things in /bin or /sbin.
16:42:41 <spot> honestly, this is really rpmlint test material
16:42:44 <tibbs|h> rpmlint could probably grow a test case pretty easily, couldn't it?
16:42:50 <tibbs|h> Ninja'd twice.  Damn.
16:42:52 <spot> tibbs|h: i see we're on the same page. :)
16:43:07 <spot> since i am the sucker who maintains rpmlint now, i'll add it to my todo list
16:44:05 <spot> okay, can we vote on this one?
16:44:12 <tibbs|h> Still needs a guidelines entry, doesn't it?
16:44:29 <spot> yeah. i'd add it below filesystem layout
16:44:48 <tibbs|h> +1
16:44:51 <limburgher> +1
16:44:53 <spot> +1
16:45:15 <SmootherFrOgZ> sound reasonable, +1
16:45:22 <racor> +1
16:45:39 <spot> geppetto: ?
16:46:03 <geppetto> +1
16:46:17 <spot> #action Approved, (+1:6, 0:0, -1:0)
16:47:48 <spot> #topic Fun with epoch - https://fedorahosted.org/fpc/ticket/54
16:48:06 <tibbs|h> ugh, Toshio left.
16:48:21 <spot> i like toshio's larification in comment 2
16:48:35 <spot> Second, if the package being depended upon has an Epoch then it must be listed when
16:48:36 <spot> adding a versioned dependency to achieve robust epoch-version-release comparison. A
16:48:36 <spot> quick way to check the Epoch of a package is to run:
16:48:36 <spot> rpm --query --qf "%{EPOCH}\n" packagename
16:48:36 <spot> If the output is "(none)" then no epoch is set.  Otherwise, the number printed is
16:48:38 <spot> the Epoch that needs to be added to the versioned dependency.
16:48:50 <tibbs|h> But it seems to not have satisfied the person who submitted the ticket.
16:49:09 <spot> well, we could probably just add a section on epoch
16:49:10 <rdieter_work> here, sorry, was busy/distracted a bit @ work.
16:49:27 <tibbs|h> I think in general we want to avoid stuffing epoch everywhere in all of the examples and such.
16:49:46 * rdieter_work agrees with toshio's simple clarification
16:49:47 <tibbs|h> But sure, a separate "crap to deal with when using epoch" section might not be bad.
16:49:58 <limburgher> tibbs|h: <nods>
16:50:38 <geppetto> Yeh, maybe we could get rpm/rpmbuild to add a special %{_evr} … which expanded to: %{?epoch:%{epoch}:}%{version}-%{release} ?
16:51:26 * skvidal twitches
16:51:32 <geppetto> On the other hand, I think it'll be pretty obvious that stuff doesn't work, if the packager writers: "%{name} = %{version}-%{release}" and the base package has an epoch
16:51:44 <SmootherFrOgZ> spot: i'm for adding a section on epoch
16:56:41 <spot> okay, i just wrote something
16:58:19 <spot> https://fedoraproject.org/wiki/PackagingDrafts/Epoch_New
16:59:40 <rdieter_work> nice
17:00:04 <tibbs|h> Should it include a general discouragement of epoch?
17:00:19 <spot> tibbs|h: i do have some text about that in the middle
17:00:29 <tibbs|h> Ah, there it is.
17:01:04 <geppetto> spot: +1 for adding that somewhere … but it might be nice to add the "%{?epoch:%{epoch}:}%{version}-%{release}" magic incantation
17:01:19 <limburgher> Me likey.
17:01:28 <tibbs|h> +1
17:01:29 <spot> geppetto: i thought of that, but i hate to add non-standard macros that would become so common in use
17:01:33 <spot> +1 from me on the draft
17:01:37 <limburgher> +1
17:01:40 <rdieter_work> +1
17:02:01 <SmootherFrOgZ> spot: could you make "a last resot" in bold
17:02:07 <SmootherFrOgZ> +1 anyways
17:02:10 <spot> SmootherFrOgZ: sure.
17:02:16 <tibbs|h> Blink tag.
17:02:28 <limburgher> SmootherFrOgZ: <nods vigorously>
17:02:28 <racor> +1, though I think the warning about adding epoch should be more verbose
17:02:34 <limburgher> LOL
17:03:20 <spot> #action Spot's Epoch draft approved (+1:6, 0:0, -1:0)
17:04:02 <tibbs|h> Does this actually solve the issue raised in the ticket?
17:04:34 <limburgher> I think so.
17:04:51 <spot> the only other change i would propose is in the Requires section
17:04:53 <tibbs|h> I think it does, but he resisted Toshio's clarification.
17:05:38 <spot> basically, changing "Second, the Epoch must be listed when adding a versioned dependency to achieve robust epoch-version-release comparison." to "Second, the Epoch (if used) must be listed when adding a versioned dependency to achieve robust epoch-version-release comparison. See #Epoch for details.""
17:05:53 <tibbs|h> Sure.
17:05:58 <rdieter_work> should cover it
17:06:05 <racor> spot: sounds good
17:07:17 <spot> okay, i think those are the tickets i was going to try to handle today
17:07:34 <spot> #topic Open Floor
17:08:27 <SmootherFrOgZ> spot: don't forget to add action on dbus section about systemd
17:08:39 * nirik has something just a FYI...
17:08:53 <spot> SmootherFrOgZ: i'm talking to lennart on gimpnet, and he's trying to rewrite it now
17:09:14 <spot> #action SmootherFrOgZ and Lennart will try to rewrite Bus Activation section for systemd draft
17:09:30 <spot> nirik: okay, whatcha got?
17:09:34 <nirik> fesco looked at the 'allow to start by default' thing... we are going to discuss it more today, but we have a sorted list in our ticket at: https://fedorahosted.org/fesco/ticket/544
17:09:43 <nirik> any feedback from FPC folks would be welcome there. ;)
17:09:56 <SmootherFrOgZ> spot: k
17:10:45 <spot> nirik: your list seems to be missing some items
17:10:52 <tibbs|h> quagga isn't network enabled?  Really?
17:10:55 <spot> nirik: unless that is intentional
17:11:01 <nirik> well, nottings list, but ok... humm.
17:11:18 <tibbs|h> I mean, it's a routing daemon; what purpose does it have other than to be network enabled?
17:11:23 <spot> nirik: for example, none of the services that start with "a" are listed.
17:11:48 <nirik> yeah, looks like a line was missed there.
17:12:23 * spot guesses the items before "firebird-superserver" aren't factored in
17:12:50 <nirik> yeah. will get fixed.
17:13:07 * nirik would also agree that quagga is network enabled. ;)
17:14:00 <nirik> anyhow, will discuss today... any more feedback welcome.
17:15:44 <spot> welp, i think we're done for today.
17:15:46 <spot> thanks everyone
17:15:49 <spot> #endmeeting