17:00:02 #startmeeting ELN SIG 2021-11-19 17:00:03 Meeting started Fri Nov 19 17:00:02 2021 UTC. 17:00:03 This meeting is logged and archived in a public location. 17:00:03 The chair is StephenGallagher. Information about MeetBot at https://fedoraproject.org/wiki/Zodbot#Meeting_Functions. 17:00:03 Useful Commands: #action #agreed #halp #info #idea #link #topic. 17:00:03 The meeting name has been set to 'eln_sig_2021-11-19' 17:00:03 #meetingname eln 17:00:03 #topic Init Process 17:00:03 .hello sgallagh 17:00:03 The meeting name has been set to 'eln' 17:00:04 StephenGallagher: Something blew up, please try again 17:00:06 StephenGallagher: An error has occurred and has been logged. Please contact this bot's administrator for more information. 17:00:29 .hello sgallagh 17:00:30 StephenGallagher: Something blew up, please try again 17:00:33 StephenGallagher: An error has occurred and has been logged. Please contact this bot's administrator for more information. 17:00:39 .hi 17:00:40 dcavalca: Something blew up, please try again 17:00:43 dcavalca: An error has occurred and has been logged. Please contact this bot's administrator for more information. 17:00:49 .hi 17:00:50 oh well 17:00:50 davdunc: Something blew up, please try again 17:00:52 * tdawson doesn't try anything fancy 17:00:53 davdunc: An error has occurred and has been logged. Please contact this bot's administrator for more information. 17:00:57 I guess zodbot is on strike again 17:01:04 But Hi to ya'll 17:01:07 .hello2 17:01:08 jforbes: Something blew up, please try again 17:01:11 jforbes: An error has occurred and has been logged. Please contact this bot's administrator for more information. 17:02:58 Oh, hmm. Guess I should have read backscroll first 17:02:58 .halp zodbot is unhappy 17:02:58 * nirik is fixing it. but it's only fas lookup, nothing else is wrong. 17:02:58 #topic Fedora Python and the Mysterious %{eln} variable 17:02:58 https://github.com/fedora-eln/eln/issues/73 17:03:46 A while back, we set a policy (now encoded in the docs, thanks tdawson ) that any usage of the `%eln` macro needed approval. 17:04:03 Mostly so we could avoid diverging from RHEL constantly. 17:04:08 .hi 17:04:09 MichelAlexandreS: Sorry, but user 'MichelAlexandreS' does not exist 17:04:18 .hello salimma 17:04:18 MichelAlexandreS: salimma 'Michel Alexandre Salim' 17:04:39 It turns out that Python is one such case where Fedora, ELN and RHEL/CentOS Stream all need to behave differently at this time 17:05:16 I don't want to recap the summary that Miro put into the ticket, since he did a much better job than I can at explaining the reasons. 17:06:01 I've read it, and I give their reasons a +1 and/or approve, whichever is needed. 17:06:29 Yeah, I propose that we approve (well, rubber-stamp) the current state 17:06:58 I'd like to revisit it down the road, because diverging Python like this will cause issues when we hit the RHEL 10 branch. 17:07:15 But I don't have any workable short-term solutions. 17:07:18 I'm not a fan but haven't spent lots of time considering it. 17:07:56 It's the best out of a lot of bad options for the moment, in my opinion. 17:08:00 I do understand the reasoning, and while Fedora and ELN could be changed to do something similar to what RHEL is doing, it doesn't seem to make too much sense 17:08:41 Largely because the lifecycle of RHEL makes it an interesting solution, but for Fedora/ELN it would just be more work without the benefit 17:08:49 Actually, I guess that *is* the real question. mhroncok if you happen to be around, is there a strong reason we can't do the same thing in Fedora? 17:09:09 Is it more work, or is it macro tweaks? I don't know. 17:09:16 ++ bringing the two closer 17:10:15 But I still think that should be an ongoing discussion and we should grant approval for the current approach, if only so we continue on unbroken for a while. 17:10:45 StephenGallagher: I am around 17:10:59 StephenGallagher: I even have this meeting in y calendar, but somehow missed it :/ 17:11:59 mhroncok: Thanks for joining us! 17:12:01 I would agree with approval for the current approach, even if only temporary 17:12:11 the strong reason is that it makes no sense in Fedora. the directory in Fedora is shared for all Pythons 17:13:03 we could technically make it not shared and build idfferent versions of setuptools and pip and wheel for all the different Pythons we ship, but we don't build parallel Python stacks for Fedora 17:13:30 and we keep pip setuptools wheel up to date, unlike rhel, where we keep them stable 17:13:46 Sure, but would it be so bad if we had them that way on disk? 17:14:02 to the problem rhel has is that when we introduce Python 3.24, pip from 1995 is no longer working with it 17:14:15 i.e. `/usr/share/wheels3.10` instead of `/usr/share/wheels`? 17:14:18 so we need a pip from this century 17:14:39 StephenGallagher: so we install the wheels to `/usr/share/wheels3.10`and tahn what 17:14:44 Even if we only ever have one installed at a time, can't we use the RHEL naming structure? 17:14:45 yeah, always using versioned directories seems to make sense. 17:14:55 python 3.12 uses wheels from `/usr/share/wheels3.10` as well? How does it know? 17:14:58 mhroncok: I'm asking, not telling. 17:15:06 symlinks? 17:15:14 don't we rebuild all Python packages when we upgrade Python anyway? 17:15:16 what package cretaes the symlinks? 17:15:28 salimma[m]: yes, but that is completely unrelated to this problem 17:15:34 Again, that just becomes more work without any real benefit 17:15:39 salimma[m]: we have python3.11 available today on fedora 17:16:02 salimma[m]: it uses the same wheels as python3.10 and python3.9, becasue it works 17:16:05 mhroncok: ah, got it, on Fedora you want the alternate versions to share the wheels 17:16:12 yes 17:16:22 it would make sense for the alternate Pythons to make that symlink then 17:16:27 So those alternate versions could just own their symlink. 17:16:28 becasue the life time of fedora release is shorter than python release 17:16:29 Yeah 17:16:30 and they could opt not to if they know it's incompatible 17:16:59 StephenGallagher: so all the laternate Python version would own symbolic links to one common location? 17:17:02 yes 17:17:11 mhroncok: That's what I'm suggesting, yeah 17:17:19 and what package owns the shared location? 17:17:35 Whichever is the system-python for the release 17:17:37 the system Python maybe 17:17:38 yeah 17:17:42 that's the one and only version of pip/setuptools/wheel package that puts stuff in there 17:17:52 This seems unnecessarily complex. 17:17:58 but on RHEL, there is no such package 17:17:58 Is that a question or a statement? 17:18:24 we could bend the Fedora solution around the RHEL problem 17:18:34 but for the sake of what exactly? 17:18:50 on Fedora, we only have one common location for wheels 17:19:07 Being able to rebuild the python packages for EPEL using the RHEL directory structure while still allowing Rawhide builds in the buildroot for ELN 17:19:16 and as long as we will only have one common wheel "repository" I see no reason to namespace the directory with Python versions 17:19:41 StephenGallagher: I do not nderatnd your last message 17:19:46 *understand 17:20:27 the builds in epel will use the rhel directory structure 17:20:32 mhroncok: The reason for your usage of the `%eln` macro is because we tag Rawhide builds into the ELN buildroot and use those to build ELN builds, correct? 17:20:45 yes 17:20:51 So if we tried to have ELN build in the RHEL style, they would be unable to locate the dependent packages for ELN. Do I have that right so far? 17:21:39 if the eln build of python tries to use the rhel-style directory and pulls the rawhide-built wheels into the buildroot, the build fails 17:22:03 mhroncok: OK, maybe I'm misunderstanding the *why* of it. 17:22:09 Why does it fail, exactly? 17:22:10 not to mention if some the rawhide builds bubble up to the eln compose, in that case, it fails for the users 17:22:51 StephenGallagher: becasue during the tests, it will try to load files form a directory that does not exist and it will end with FileNotFoundError and thta will fail the tests and thta will fail the %check and that will fail the build 17:22:58 (I feel like there's probably some crucial nugget that I'm just missing here and that you're so familiar with that you are talking past it) 17:23:28 OK, and how does adding a symlink not address that? 17:23:51 what symlink? where does it go from, where does it go to? what pakcage is this symlink in? 17:24:25 (I probably fail to understand what are you trying to acomplish here, sorry) 17:25:01 I'm trying to avoid the FileNotFoundError without needing ELN to diverge wildly from RHEL 17:25:28 So I'm asking if we can't just have a symlink for the root of the unversioned wheel directory to one that has the version. 17:25:55 So ELN's python package could locate things where RHEL would expect them 17:26:12 "symlink for the root of the unversioned wheel directory to one that has the version" 17:26:16 The simplified issue, is using eln works fine for now, but means when things branch for RHEL next, everything is broken until things are rebuilt 17:26:44 so /usr/share/python-wheels would be a symbolic link *to* /usr/share/python3.10-wheels? 17:26:45 mhroncok: What are the wheel directories called in RHEL and Fedora? 17:26:49 or the other way around? 17:27:10 that is listed in the ticket 17:27:17 fedora: /usr/share/python-wheels 17:27:43 If it's listed in the ticket, I'm not seeing it. 17:27:50 rhel: /usr/share/python3-wheels for "python3", /usr/share/python3.X-wheels for any additional Python 3 version 17:28:11 StephenGallagher: "The values of the macros are (for the prefix and for the dir):" 17:28:12 ok 17:28:51 OK... so why can't we have a symlink from `python3-wheels` to `python-wheels`? 17:29:18 ELN doesn't need to care about the `python3.10-wheels` as far as I can tell 17:30:10 Fedora doesn'T need to care about python3-wheels 17:30:51 But would having that symlink be harmful (or even much effort to maintain) if it made things easier for ELN? 17:31:09 I have no idea what package would even own that symolic link 17:31:40 Why couldn't it just be python3.X-libs (where X is whatever the "system" python is for this Fedora release) 17:32:01 Sorry, I mean python3-libs 17:32:04 it would mena that the package that creates the symbolic link and owns it would needs additional logic to know whether it should do that or not 17:32:09 I forgot the built RPMs don't include the .X 17:32:27 When shouldn't it? 17:32:37 when on rhel? 17:32:53 that symbolic link woudl conflcit with the actual directory created on rhel 17:33:35 ok, so we wouldn't entirely eliminate the need to have a %eln conditional, but the end result would still be much closer to what RHEL should eventually look like, yes? 17:33:57 let me try to wrop this up in my head first... 17:34:00 out loud 17:34:11 Sure. I'll go silent until you EOM 17:34:22 can't we just use python3-wheels in all cases? 17:35:20 the "main" Python interpreter in Fedora would require wheel packages that install wheels to /usr/share/python-wheels, it would load the wheels from /usr/share/python-wheels, but it will also own a symbolic link /usr/share/python3-wheels -> /usr/share/python-wheels 17:35:46 skip python-wheels entirely? (or ln -s python3-wheels python-wheels on Fedora) 17:36:19 the "main" Python interpreter in ELN as well as in RHEL would require wheel packages that install wheels to /usr/share/python3-wheels, it would load the wheels from /usr/share/python3-wheels, and it would add no symbolic link at all 17:36:21 cyberpear: Let him get his thoughts out first. Wait until his EOM, please. 17:37:20 so when you build Python on ELN but it installs wheels from rawhide, it loads the wheels from /usr/share/python3-wheels, shich is a link to /usr/share/python-wheels and there are the wheels and tadah, it works, everyhting s nice and... oh waiyt 17:37:34 if one of the wheel was build on rawhide 17:37:44 and another wheel was built on ELN 17:38:19 one of them is in /usr/share/python-wheels and the other one is in /usr/share/python3-wheels. but one fo those is a symbolic link to the other -- smells like RPM transaction error to me 17:39:12 also, if python3-libs owns that symbolic link, we would not be able to build Python without having python3-libs installed in the buildroot (which we already do as the default, but it is bconded for bootstrap situations) 17:39:57 as well as if we have the Python package built on rawhide and the wheels built on ELN, the wheels try to install to a directory which is a symbolic link 17:40:20 this cerates so much compexity and only solves one order of the builds. 17:40:38 EOM, but will answer cyberpear's questions 17:41:15 "can't we just use python3-wheels in all cases?" we can, except that in theory, some wheels for Python 2 are in that directory as well (or for PyPy) 17:41:59 oh, the second question seems just like a clarification of the first 17:42:24 Does it matter if py2 and PyPy retain the use of `python-wheels`? 17:42:30 Would that interact in any way? 17:42:53 right. doing the opposite symlink to match RHEL only works once python2.7 is gone 17:43:23 StephenGallagher: how do they reatin it if we install the wheels to a different place? 17:43:31 it is 1 directory to rule them all 17:43:56 it contains all wheels we need for all our Python interpreters (except the onces that we bundle in the Python interpreter pacakges when needed) 17:44:32 * StephenGallagher grasps at straws. 17:44:33 that's wh there is no version in the directory name what so ever 17:44:59 while on RHEL... 17:45:09 Ignore that last; I thought I had another idea, but I saw a flaw. 17:45:10 it contains wheels for 1 interpreter only 17:47:32 Ok, I think we've beaten this topic to death for now. Anyone opposed to signing off on the current strategy for now? I'll try to sit down with mhroncok sometime in the next few months and see if we can go anywhere with this, but I don't think we need to solve it here today. 17:47:51 mhroncok: Thank you very much for your input (and patience) 17:48:03 you have you hands full there. 17:48:13 I am fine with the current strategy at this time 17:48:25 +1 17:49:04 note 1 - we have already done this, so if you don't feel like rubber stamping this now before trying alternatives, that is fine, as long as you don't "order" us to delete that macro 17:49:05 +1 to avoid blocking stuff. 17:49:35 Right, I'm aware. But it looks like we have consensus to proceed as-is for now 17:49:52 i like just using python3-wheels possibly with a compatibility symlink. py2 uses built in 17:50:12 +1 17:50:18 not 2 - I will speak to StephenGallagher and see how the ELN > c10s rebuild bootstrap might work and if this difference between ELN and RHEL will cause toruble (I don't think it will, but I don't knwo the procedure) 17:50:21 #agree The python macros are permitted to use the %eln macro as described in https://github.com/fedora-eln/eln/issues/73 17:50:26 we ship only 3 wheels that I can see: pip, setuptools, wheel 17:50:37 cyberpear: correct, for now 17:51:11 #topic ELN Compose Issues: The Next Generation 17:51:28 cyberpear: some fundamentalists want to have setuptools-less venvs, so it might be just 1 in the future, but other disagree. setuptools maintainers OTOH want to have real deps, so it might be 8 in the future 17:51:44 *s/not 2 /note 2/ 17:51:54 I'll keep this brief: I've been trying to fight with a circular set of dependencies in the GCC/gdb stack for a week. 17:51:54 * mhroncok will shtut up already, you are on another topic 17:52:30 mhroncok: Once again, thank you very much 17:54:13 StephenGallagher: I am guessing this is what is holding up composes and making mock eln targets broken? 17:54:29 Essentially, there's a loop around gdb, gcc, doxygen and libstdc++ 17:54:42 jforbes: Yes, and it's driving me nuts. 17:55:04 At this point, I could really use some help tracking it down. 17:55:15 (Particularly since I'll be leaving for a week's vacation in four hours) 17:56:09 most of the USians here are probably in similar situations 17:56:13 So I am not sure why this is a problem in ELN, but the bootstrap to get around those circular dependencies involves 2 different special gcc builds (maybe we are far enough along that we could skip the first) 17:56:45 But that is based on my work bootstrapping a distro, and it has been 12 years or so since I last did it 17:56:46 jforbes: They shouldn't *need* the bootstraps, because the F36 final version is in buildroot 17:57:17 The double bootstraps are done to make sure that we're shipping a compiler that compiled itslef. 17:57:25 Right 17:57:43 But we can use the Fedora compiler to compile the ELN one without the bootstrapping steps 17:57:44 Since it's all there 17:59:34 Anyway, we're out of time. If anyone thinks they can help, please ping me over in #eln:fedoraproject.org 17:59:48 enjoy your vacation Stephen Gallagher 17:59:55 Thanks 17:59:58 #endmeeting