I'd like to request the creation of a long-running side tag for porting Fedora to a C compiler that does not accept implicit function declarations by default. I would appreciate if you could set a custom dist tag (perhaps tc) and an RPM macro (toolchain_experiment works for me). This way, I can rebuild GCC into that side tag, without maintaining a branch. @jakub has agreed in principal to having a conditionally applied patch in the rawhide package.
tc
toolchain_experiment
Please exclude armhfp builds from the side tag. The architecture will likely be no longer in Fedora once the change happens.
devel thread: Long-running side tag for porting Fedora to C99 (no implicit decls)
2021-12-01
2023-04-01
Fedora may have trouble transitioning to GCC 13 (to be released in 2023).
@dmalcolm @mpolacek @codonell
Metadata Update from @mohanboddu: - Issue tagged with: medium-gain, medium-trouble, ops
So, I misread this as being near, but the proposal is for F40...
So, you still would like this side tag?
We can set a custom dist tag, yeah. You want 'tc' ? No numbers or based on existing dist?
When we branch next I assume you would want to close the side tag and open a new one against new rawhide?
Metadata Update from @kevin: - Issue assigned to kevin
I think it would be nice if I could get a side tag with an instrumented gcc and redhat-rpm-config. I've put something together using COPR and a special mock configuration, which sort-of works for now. But being able to just submit a scratch build against Koji would be nice, too. I think it's easier for Fedora developers to handle.
gcc
redhat-rpm-config
Regarding mechanics, the side tag should be against rawhide, and I somehow need to build the special gcc and redhat-rpm-config packages. I guess they could come off a branch in dist-git. I originally thought to use conditional patches, but that doesn't work that well for redhat-rpm-config because I need to maintain a function exception list there. :cry:
I just want to give developers a way to test package updates with minimal fuzz.
ok, done.
I made it 'f38-toolchain' but if thats bad for some reason we can redo it.
I set the dist tag on it to '.tc' and added a toolchain_experiment=1 rpm macro.
You should be able to build whatever you like in there and then have folks scratch build against it.
Let us know if you need anything else.
Metadata Update from @kevin: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)
@kevin Thanks!
Just tried:
94372145 build (f38-toolchain, gcc-12.2.1-3.implicits.3.fc38.src.rpm): open (buildvm-s390x-30.s390.fedoraproject.org) -> FAILED: ActionNotAllowed: policy violation (build_from_srpm)
Tried with an SRPM upload and by building off https://src.fedoraproject.org/forks/fweimer/rpms/gcc.git#origin/c99-port.
https://src.fedoraproject.org/forks/fweimer/rpms/gcc.git#origin/c99-port
I can also build on a branch from dist-git if that's supported, e.g. private-f38-toolchain would work for me. (I'm not using dist-git at this point because I was originally told not to.)
private-f38-toolchain
Metadata Update from @fweimer: - Issue status updated to: Open (was: Closed)
Yeah, src.rpm won't work. forks will perhaps work in a while, we need to add some policy for it, but thats not in place currently.
So, you are left with the dist-git branch I'm afraid. Thats not ideal, since you can't delete them and we only can delete them if we can confirm no official builds were ever made from them.
For this case tho, I think thats ok. I would suggest the dist-git branch.
Hmmm. Should I run fedpkg request-branch f38-toolchain in the gcc repository then?
fedpkg request-branch f38-toolchain
The help output doesn't really tell me what to do with the mandatory --sl argument, and I can't find further documentation for it. Or should I use private-f38-toolchain instead? I think I can push that branch directly from Git. Will it work for building packages? Thanks!
--sl
Yep. use private-f38-toolchain... you should indeed be able to build from there.
Right, works for me. Thanks again.
Metadata Update from @fweimer: - Issue close_status updated to: Fixed - Issue status updated to: Closed (was: Open)