16:00:18 <geppetto> #startmeeting fpc 16:00:19 <zodbot> Meeting started Thu May 14 16:00:18 2020 UTC. 16:00:19 <zodbot> This meeting is logged and archived in a public location. 16:00:19 <zodbot> The chair is geppetto. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:19 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 16:00:19 <zodbot> The meeting name has been set to 'fpc' 16:00:19 <geppetto> #meetingname fpc 16:00:19 <zodbot> The meeting name has been set to 'fpc' 16:00:19 <geppetto> #topic Roll Call 16:00:38 <ignatenkobrain> .hello2 16:00:39 <zodbot> ignatenkobrain: ignatenkobrain 'Igor Raits' <igor.raits@gmail.com> 16:00:45 <mhroncok> hello 16:00:46 <geppetto> #chair ignatenkobrain 16:00:46 <zodbot> Current chairs: geppetto ignatenkobrain 16:00:46 <nils> siddharthvipul, imagine it's a Cantuccio, you can keep them for months if stored in a dry place :) 16:00:48 <geppetto> #chair mhroncok 16:00:48 <zodbot> Current chairs: geppetto ignatenkobrain mhroncok 16:00:57 <geppetto> ignatenkobrain: Hey, how's it going? 16:01:37 <ignatenkobrain> geppetto: not bad, just struggling to find time to work on Fedora things :) 16:02:07 <decathorpe> .hello2 16:02:08 <zodbot> decathorpe: decathorpe 'Fabio Valentini' <decathorpe@gmail.com> 16:02:55 <tibbs> Hey, folks. 16:03:07 <geppetto> #chair decathorpe 16:03:07 <zodbot> Current chairs: decathorpe geppetto ignatenkobrain mhroncok 16:03:10 <geppetto> #chair tibbs 16:03:10 <zodbot> Current chairs: decathorpe geppetto ignatenkobrain mhroncok tibbs 16:06:07 <geppetto> #topic Schedule 16:07:06 <geppetto> Eh, it's the same it has been for a couple of weeks … https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/message/SN5YY2W262ZOZRBGQFOHWFI27HOECFX5/ 16:07:43 <geppetto> #topic #pr-#954 Prohibit use of `rpm` command from specfile. 16:08:08 * Defolos is against that… 16:08:25 <decathorpe> .fpc 954 16:08:31 <zodbot> decathorpe: An error has occurred and has been logged. Please contact this bot's administrator for more information. 16:08:32 <ignatenkobrain> Defolos: did you see comment from pmatilai? :) 16:08:49 <ignatenkobrain> decathorpe: hey! don't break zodbot!! 16:08:57 <ignatenkobrain> I still want to receive my karma+ 16:08:57 <Defolos> ignatenkobrain: don't think I have 16:08:58 * decathorpe goes home 16:09:50 <ignatenkobrain> Basically calling `rpm` from the spec is dangerous and is not recommended by RPM upstream 16:10:34 <Defolos> ok 16:10:45 <mhroncok> I don't like us forbid something without a viable alternative 16:10:50 <decathorpe> I think especially with BDB → SQLite transition this would lead to all kinds of issues :( 16:10:52 * Defolos is no longer against that 16:11:05 <Defolos> still, I'd like an alternative 16:11:18 <Defolos> essentially %requires_eq, but without calling rpm 16:11:25 <ignatenkobrain> mhroncok: there IS alternative. you can ask maintainers of foo to add RPM macro which will encode version as a macro. problem solved. 16:11:29 <decathorpe> mhroncok: is this stuff only ever used for querying package versions? 16:12:18 <ignatenkobrain> if you need some specific build of some package, you are doing something wrong 16:12:33 <ignatenkobrain> so like if you build against llvm 10, you should not require llvm-libs = 10.0.0-1.fc33 16:12:49 <ignatenkobrain> instead you should require (llvm-libs >= 10.0.0 with llvm-libs < 11.0.0) or something similar 16:12:57 <Defolos> in my case I've needd that because upstream is kinda nuts in this regard 16:13:02 <geppetto> ignatenkobrain: Eh, requiring the specific version you built against is sometimes the easiest thing to do 16:13:06 <tibbs> I think I tried to get this type of usage banned in the guidelines well over a decade ago. 16:13:11 <decathorpe> ignatenkobrain: yeah that would be an obvious solution ... something like `%echo %{version} > /usr/lib/rpm/macros.d/macros.%{name}` in the "parent" package? 16:13:25 <mhroncok> right 16:13:28 <mhroncok> but.. :( 16:13:47 <ignatenkobrain> decathorpe: yes, as one option. 16:13:48 <Defolos> it doesn't really scale 16:14:01 <Defolos> and it requires you to convince someone else to add that to their spec 16:14:02 <decathorpe> how many packages need this in fedora? 2? 16:14:02 <tibbs> Definitely +1 to banning it now. Of course, they're just guidelines so.... 16:14:22 <ignatenkobrain> decathorpe: I think 1 or 2 16:14:37 <ignatenkobrain> actually 1 16:14:41 <ignatenkobrain> samba :) 16:14:46 <decathorpe> then ban it and use macros for the 1 (or 2) packages that really need it. problem solved :shrugs: 16:14:57 <Defolos> ccls for f30 and f31 16:15:18 <geppetto> Yeh, I'm 100% fine with the solution not scaling 16:15:22 <ignatenkobrain> well, I was querying rawhide set 16:15:29 <tibbs> I do think it reasonable that mock might populate a lua table with everything it installed into the chroot, in case something really needs to get at it. It's not that hard to drop a lua file in the right place in the chroot. 16:15:42 <ignatenkobrain> tibbs: +1 16:16:08 <ignatenkobrain> #action ignatenkobrain to open RFE for mock to populate lua table with package versions in chroot 16:16:20 <mhroncok> 19 packages in fedora call %(rpm... 16:16:26 <geppetto> That woul donly run lua at build time right? Not install time? 16:17:12 <mhroncok> %global rpm49 %(rpm --version | perl -p -e 's/^.* (\\d+)\\.(\\d+).*/sprintf("%d.%03d",$1,$2) ge 4.009 ? 1 : 0/e' 2>/dev/null || echo 0) 16:17:15 <mhroncok> oh my god 16:17:18 <ignatenkobrain> geppetto: yes, but you need it only for build time, because for install all macros are already expanded 16:17:21 <ignatenkobrain> mhroncok: lol, perl-RRD-Simple.spec 16:17:22 <ignatenkobrain> 2:%global rpm49 %(rpm --version | perl -p -e 's/^.* (\\d+)\\.(\\d+)\\.(\\d+).*/sprintf("%d.%03d%03d",$1,$2,$3) ge 4.009 ? 1 : 0/e' 2>/dev/null || echo 0) 16:17:49 <tibbs> Of course, if something wants to run rpm in %post or something, that would be a separate horror. 16:18:13 <mhroncok> https://src.fedoraproject.org/rpms/gdb-heap/blob/master/f/gdb-heap.spec#_30 16:18:55 * decathorpe will not look at those links because is already sad due to Java packages 16:19:08 <mhroncok> so the versions people query are: ppp, rpm, man-pages, glibc, mpich 16:19:11 <geppetto> decathorpe++ 16:19:11 <zodbot> geppetto: Karma for decathorpe changed to 7 (for the current release cycle): https://badges.fedoraproject.org/tags/cookie/any 16:19:32 <geppetto> I'm kind of surprised rpm doesn't have version macros already 16:19:38 <decathorpe> geppettoo: what was that for? 16:20:08 <geppetto> decathorpe: Too much Java needs a Karma boost 16:20:22 <decathorpe> mhroncok: so I guess storing versions for 5-6 packages in macros isn't too bad? 16:20:29 <decathorpe> geppetto: oh, thanks 16:20:34 <mhroncok> https://src.fedoraproject.org/rpms/perl-Math-Calc-Units/blob/master/f/perl-Math-Calc-Units.spec#_2 I want a drink 16:20:49 <mhroncok> decathorpe: let's do it first? ban it after? 16:21:15 <ignatenkobrain> people should not query RPM for version 16:21:19 <ignatenkobrain> simply should not, fullstop here 16:21:24 <ignatenkobrain> I mean RPM rpm ;) 16:22:19 <tibbs> libc will just tell you its version if you run it. But sadly %libdir/libc.so is a linker script and you have to actually find the version. 16:22:43 <ignatenkobrain> so we are down to ppp_version, glibc_version, man-pages, openssl, mpich... 16:22:46 <decathorpe> Proposal: Propose a standard alternative method of keeping track of versions, and ban querying rpm from inside .spec files because of crazy prevention 16:23:08 <ignatenkobrain> decathorpe: +1, also I already took action to open mock RFE 16:23:10 <geppetto> tibbs: In that page of output? 16:23:29 <geppetto> tibbs: Also doesn't tell you the release. 16:23:56 <geppetto> decathorpe: +1 16:24:34 <tibbs> geppetto: the glibc version is in the first line. The package release, though.... it's troubling if you would need it. 16:30:47 <geppetto> Ok, any more votes on decathorpe's proposal? 16:31:50 <mhroncok> +1 16:31:57 <tibbs> +1 in case if wasn't obvious. 16:32:15 <geppetto> Ok, I think that's it … 16:32:31 <decathorpe> yeah +5 with 5 people present is ... MVP? 16:32:55 <geppetto> #action Propose a standard alternative and ban querying rpm from inside .spec (+1:5, 0:0, -1:0) 16:33:19 <geppetto> #topic #pr-#942 Recommend storing changelog entries in separate file. 16:33:30 <geppetto> https://pagure.io/packaging-committee/pull-request/942 16:34:15 <ignatenkobrain> hmm, do we have that macro already? 16:34:21 <mhroncok> the rpmdev-bumpspec problem is a bummer 16:34:25 <mhroncok> %autorel is in stagging 16:34:29 <mhroncok> *staging 16:35:19 <tibbs> I think it's too early to recommend this. 16:35:31 <ignatenkobrain> anyway, I am against this. We should come up with some better way of generating changelog for packages, and for sure not having people to do this. 16:35:34 <ignatenkobrain> so -1 from me. 16:35:55 <decathorpe> tibbs: yeah I don't think this is ready / a good idea yet 16:39:49 <geppetto> Ok, moving on 16:39:51 <geppetto> #topic #pr-#947 Deprecate Old Style Dependency Generators 16:39:55 <geppetto> https://pagure.io/packaging-committee/pull-request/947 16:41:10 <decathorpe> sounds good to me 16:42:02 <ignatenkobrain> +1 16:42:09 <geppetto> I'm fine with the idea … but I don't want to just ban them and turn the old macros off 16:42:21 <geppetto> some kind of "here is how to migrate" kind of doc would be nice. 16:42:49 <tibbs> I don't remember when these were deprecated. 16:43:20 <mhroncok> I'm +1 on this. this is old cruft 16:43:30 <mhroncok> even if RPm doesn't deprecate them, we should 16:43:43 <tibbs> Because if EL6 still needs them then there might be pushback. 16:43:57 <mhroncok> if there is pushback, we kill this in November 16:44:48 <tibbs> At the least, it means you have to check for those macros being wrapped in old-distro-specific %if blocks instead of just grepping. 16:45:36 <tibbs> But certainly it's old stuff that needs to go away. I'd just like to know if there is any live release where it might still be needed. 16:46:04 <mhroncok> IIRC EPEL6 needs this 16:48:11 <mhroncok> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/K3NLDLK4XVARTSROC6XVKNVW72BMMHYE/ 16:49:20 <tibbs> So I wonder what would die if we just stopped defining %filter_setup and friends. 16:49:25 <geppetto> mhroncok: I assume that's still basically the same? 16:49:40 <geppetto> tibbs: You mean in Fedora? 16:49:41 <mhroncok> geppetto: I haven't checked, but I assume the same 16:51:38 <tibbs> redhat-rpm-config has a block of macros which reference an old draft guideline that, if you follow the link, gets you to the current guidelines which don't mention those macros at all. 16:52:11 <tibbs> "Generic auto req/prov filtering macros" 16:53:39 * geppetto nods 16:53:53 <geppetto> mhroncok: Any chance you could run the thing in that email on current Fedora? 16:54:29 <mhroncok> geppetto: for the old macros? 16:55:01 <tibbs> I assume that was just for python stuff, and the true problem is worse. 16:55:07 <geppetto> mhroncok: yeh 16:55:11 <mhroncok> tibbs: yes. 16:55:18 <mhroncok> 73 packages have %filter_setup 16:55:22 <mhroncok> not sure if conditionalized thou 16:55:42 <tibbs> But if we jut nil out %filter_setup, I wonder what actually breaks. 16:55:45 <mhroncok> sorry, just 69 16:55:52 <mhroncok> the other 4 was %% in changelog 16:57:03 <mhroncok> we could... 16:57:31 <mhroncok> change %filter_ macros to call the new macros 16:57:39 <mhroncok> and %filetr_setup to do nothing 16:58:35 <mhroncok> or wqe could just procide a way to convert it and ban it, but let it be until epel6 dies 16:58:52 <ignatenkobrain> I would prefer to just replace them with error 16:59:00 <mhroncok> or that 16:59:01 <mhroncok> heh 16:59:15 <ignatenkobrain> also, guidelines apply only to Fedora and EPEL can have their own thing 16:59:16 <decathorpe> ignatenkobrain: replace them with a lua script that prints "Igor removed this" 16:59:18 <mhroncok> we culd ban them now and replace them with error after epel6 dies 16:59:53 <tibbs> The problem is that if you call %filter_setup at all, you turn off the dependency generator completely. 16:59:58 <ignatenkobrain> decathorpe: please contact /dev/null if you want to use this macro :) 17:00:05 <decathorpe> exactly 17:00:45 <tibbs> There is a lot of potential for weird silent breakage, though. 17:01:22 <decathorpe> well, either way, maintainers will have to deal with those macros 17:01:30 <tibbs> So this is probably better done by making use of the macro an error and having everything coordinated via a change process. 17:01:44 <geppetto> Eh, I guess the same place I started ... I'm fine on voting for something that has a migration plan, but just turning it off seems like a bad idea. 17:01:44 <mhroncok> I agree 17:01:56 <decathorpe> yup, tibbs++ 17:02:06 <mhroncok> BTW why do we actually generate provides for .so files in nonstandard paths? 17:02:15 <tibbs> We don't these days, do we? 17:02:19 <mhroncok> most of the usage of thos macros could just die if we don't 17:02:22 <ignatenkobrain> we don't 17:02:28 <mhroncok> tibbs: we still do, but it has to eb called lib 17:02:45 <mhroncok> /usr/lib64/python3.8/site-packages/foo.so -> no provide 17:02:45 <geppetto> I thought even that got fixed for scls? 17:02:51 <mhroncok> /usr/lib64/python3.8/site-packages/libboo.so -> provide 17:02:55 <tibbs> Of course the problem is that "nonstandard path" is subject to change by anything you might put in /etc/ld.so.conf.d, so.... 17:03:01 <geppetto> Hmm, maybe scls turn it off? 17:03:15 <mhroncok> maybe it needs to start with /usr/lib(64)? 17:03:29 <mhroncok> tibbs: but does that justify automatic provides? 17:03:32 <decathorpe> I definitely needed to do this for wingpanel plugins: https://src.fedoraproject.org/rpms/wingpanel-indicator-datetime/blob/master/f/wingpanel-indicator-datetime.spec#_1 17:03:39 <decathorpe> those are named libPLUGIN_NAME.sp 17:03:57 <tibbs> mhroncok: I don't think so, but I suspect this is behavior that can't really be changed now. 17:04:19 <mhroncok> tibbs: well. ok :D 17:04:33 <tibbs> So many of these specfiles are just so old. 17:04:50 <mhroncok> I will persuit a way to exlude python dirs at least by default, so pyrthon packages can get rid of this for good 17:05:18 <geppetto> mhroncok++ 17:05:18 <zodbot> geppetto: Karma for churchyard changed to 7 (for the current release cycle): https://badges.fedoraproject.org/tags/cookie/any 17:05:30 <mhroncok> proposal: 17:05:44 <mhroncok> we turn the %filter macros to error to avoid silent failures, we ban them 17:05:46 <geppetto> #action mhroncok to look at how python can get fixed for automatic lib provides 17:05:51 <mhroncok> this is coordianted via a fedora change process 17:06:05 <decathorpe> proposal ++ 17:06:15 <tibbs> +1 to that. 17:06:33 <mhroncok> decathorpe: want to drive this together with me? 17:06:40 <geppetto> As long as someone is going to help people with the fallout who are like "wtf do I do now", I'm +1 17:06:59 <decathorpe> mhroncok: more work, yey 17:07:00 <tibbs> libxsmm uses filter_setup to remove dependencies generated by documentation. 17:07:05 <tibbs> I wonder how common that is. 17:07:09 <decathorpe> :D 17:07:15 <mhroncok> tibbs: shebang depndencies? 17:07:31 <decathorpe> shouldn't those not get generated anymore 17:07:32 <tibbs> %filter_from_requires /\/bin\/.*sh$/d 17:07:33 <geppetto> #action decathorpe will help mhroncok 17:07:58 <tibbs> These packages need to be built with and without %filter_setup defined to %nil, and their dependency lists compared. 17:08:43 <tibbs> I count 99 packages that contain %filter_setup. 17:09:16 <decathorpe> mhroncok: doing some test builds in COPR should do? 17:09:17 <tibbs> And several packages seem to expect that %filter_setup just won't be defined in newer releases. 17:10:19 <mhroncok> tibbs: %{?filter_setup} 17:10:23 <mhroncok> Ok, I count 99 17:10:25 <mhroncok> 93 17:11:01 <mhroncok> 97, omg, doesn'T matter ~100 17:11:06 <tibbs> There seems to be a block of code copied around that has "RPM 4.8 style" and "RPM 4.9 style" blocks, with the assumption that you tell which is which by whether %filter_setup is defined. 17:11:18 <mhroncok> :D 17:11:42 <decathorpe> tibbs: take torch with you when you decend into those depths, please 17:13:21 <tibbs> Anyway, it should be relatively obvious why this is bad (disabling the dependency generator should be enough) and it's only a hundred packages so fixing it should be doable with a bit of effort. 17:14:06 <geppetto> Ok 17:14:27 <geppetto> #action tibbs agrees to fix everything else :) 17:15:25 <geppetto> I kind of assume we are at +5 though 17:15:53 <ignatenkobrain> I think so 17:16:46 <tibbs> Making sure it's not needed for python should cut the numbers down a bit. A number of Perl things use it too, and apache modules. 17:16:56 <geppetto> Yeh 17:17:10 <tibbs> %filter_requires_in %{_docdir} 17:17:14 <tibbs> I see that a bit as well. 17:17:20 <geppetto> #action turn the %filter macros to error to avoid silent failures, we ban them (+1:5, 0:0, -1:0) 17:17:40 <tibbs> Seems smarter just to not install executable documentation at all. 17:18:00 <geppetto> yeh, like chmod -x -r docs 17:18:08 <decathorpe> wasn't there already a change to the macros to not generate dependencies for things in docdir? 17:18:23 <decathorpe> (seems to remember something from last year) 17:18:47 * mhroncok has to go now, sorry 17:19:12 <tibbs> I don't see anything like that, except that the perl macros add %_docdir to __*exclude_from. 17:19:23 <geppetto> mhroncok: yeh, we are almost 20 minutes over 17:19:28 <ignatenkobrain> decathorpe: rpm already does not do so IIRC, but I might be wrong 17:19:33 <decathorpe> huh ... I must misremember 17:19:52 <tibbs> But only if you call %perl_default_filter, of course. 17:20:07 * ignatenkobrain sent a long message: < https://matrix.org/_matrix/media/r0/download/matrix.org/ltzcnrjuoLnVHeTEdFjhiwkW > 17:20:09 <tibbs> ANyway, I'm just rambling. I think we've done enough. 17:20:26 <ignatenkobrain> been there since rpm-4.14.0-rc1 17:20:30 * geppetto nods … ok, I'm going to close 17:20:36 <decathorpe> oh so I do remember correctly 17:20:42 <decathorpe> thanks geppetto! 17:21:19 <geppetto> Thanks everyone … got a bunch done this week. Keep staying safe etc. 17:21:28 <geppetto> #endmeeting