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