juhp / fbrnch

Tool to update fedora packages branches
https://hackage.haskell.org/package/fbrnch
GNU General Public License v2.0
23 stars 3 forks source link

Add support for `epel8-next` and `epel9-next` #29

Closed gotmax23 closed 2 years ago

gotmax23 commented 2 years ago

When I run fbrnch build epel8-next, the tool does not detect that epel8-next is a branch name and returns fbrnch: No such directory: epel8-next.

juhp commented 2 years ago

Ah right - I hear there is also epel9-next now, hmm this will be a bit tricky to handle.

juhp commented 2 years ago

I have actually done a local implementation of this now, but I haven't really tested since I don't really use epel-next much.

If you are able to build & test it from git before I make a release I can push it in a buildable form now I think.

gotmax23 commented 2 years ago

If you are able to build & test it from git before I make a release I can push it in a buildable form now I think.

Yeah, I can rebuild the Fedora RPM with a diffefent source tarball (I'm not familiar with the actual Haskell tools :)) and test it. If you prefer to submit it as a PR first, that works too.

juhp commented 2 years ago

Well the problem is I have yet to release the new fedora-dists - so you would only be able to build from git source at the moment. (I have been pondering to revive my copr since the release process is becoming rather slower than I wish...).

(You could more or less do: dnf builddep fbrnch and then cabal install in the source here (once I push the changes).)

Or maybe you can point me at some example package(s) with active epel-next branches that I can just try it on them (obviously I am not going actually to build anything, but I can try some commands or use --dryrun etc).

Anyway I hope the new release is only a few weeks away, but I can't promise.

gotmax23 commented 2 years ago

Well the problem is I have yet to release the new fedora-dists - so you would only be able to build from git source at the moment. (I have been pondering to revive my copr since the release process is becoming rather slower than I wish...).

(You could more or less do: dnf builddep fbrnch and then cabal install in the source here (once I push the changes).)

I'm trying this:

diff --git a/fbrnch.spec b/fbrnch.spec
index 292bec3..51b97b1 100644
--- a/fbrnch.spec
+++ b/fbrnch.spec
@@ -4,15 +4,19 @@
 %global bodhi bodhi-0.1.0
 %global cachedjsonfile cached-json-file-0.1.1
 %global coprapi copr-api-0.1.0
-%global fedoradists fedora-dists-2.0.0
+%global fedoradists fedora-dists-2.1.0
 %global pagure pagure-0.1.1
 %global pdc pdc-0.1.1
 %global subpkgs %{bodhi} %{coprapi} %{cachedjsonfile} %{pdc} %{fedoradists} %{pagure}

+%global commit   ecfd9c901449cc5c613be2d089dbcfbd2ab8003d
+%global forgeurl https://github.com/juhp/fbrnch
+%forgemeta
+
 Name:           fbrnch
 Version:        1.1
 # can only be reset when all subpkgs bumped
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Fedora packager tool to build package branches

 # bodhi-hs, pdc-hs: MIT
@@ -21,7 +25,8 @@ Summary:        Fedora packager tool to build package branches
 License:        GPLv2+ and MIT and GPLv3+
 Url:            https://hackage.haskell.org/package/%{name}
 # Begin cabal-rpm sources:
-Source0:        https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz
+# Source0:        https://hackage.haskell.org/package/%%{name}-%%{version}/%%{name}-%%{version}.tar.gz
+Source0:        %{forgesource}
 Source1:        https://hackage.haskell.org/package/%{bodhi}/%{bodhi}.tar.gz
 Source2:        https://hackage.haskell.org/package/%{cachedjsonfile}/%{cachedjsonfile}.tar.gz
 Source3:        https://hackage.haskell.org/package/%{coprapi}/%{coprapi}.tar.gz
@@ -119,7 +124,7 @@ and many more commands.

 %prep
 # Begin cabal-rpm setup:
-%setup -q -a1 -a2 -a3 -a4 -a5 -a6
+%setup -q %{forgesetupargs} -a1 -a2 -a3 -a4 -a5 -a6
 # End cabal-rpm setup

I would happily use a copr repo that builds from main. I think there's some way to configure copr to rebuild the package automatically each time you push to Github.

Or maybe you can point me at some example package(s) with active epel-next branches that I can just try it on them (obviously I am not going actually to build anything, but I can try some commands or use --dryrun etc).

ansible, which I co-maintain, has both an epel8-next and an epel9-next branch.

gotmax23 commented 2 years ago

I'm trying this:

Is there also a corresponding update in fbrnch that you haven't pushed yet?

gotmax23 commented 2 years ago

Right now, fbrnch scratch works on epel8-next, but I get

$ fbrnch build -n                                                                                                                                                              ±[●][epel8-next]
git fetching ansible... done
fbrnch: Unsupported branch: epel8-next
gotmax23 commented 2 years ago

PS: The Not a pkg git dir issue still isn't fixed.

[gotmax@ftop] ~/.../ansible.repos/ansible >>> fedpkg fork                                                                                                                                                                  ±[●][epel8-next]
Repo 'https://src.fedoraproject.org/fork/gotmax23/rpms/ansible' already exists.
Adding as remote 'gotmax23'.
[gotmax@ftop] ~/.../ansible.repos/ansible >>> fbrnch build -n                                                                                                                                                              ±[●][epel8-next]
fbrnch: Not a pkg git dir: ansible
[gotmax@ftop] ~/.../ansible.repos/ansible >>> git remote rm gotmax23                                                                                                                                                       ±[●][epel8-next]
[gotmax@ftop] ~/.../ansible.repos/ansible >>> fbrnch build -n                                                                                                                                                              ±[●][epel8-next]
git fetching ansible... done
fbrnch: Unsupported branch: epel8-next
juhp commented 2 years ago

Yeah just released fedora-dists, and I am still working on pushing fbrnch (but first newer simple-cmd, though it is not required here).

juhp commented 2 years ago

Okay, thanks for waiting, I just pushed now. I think you will need newer rpm-nvr though: but you can get that from updates-testing already.

Otherwise I think your local spec changes look good. :+1:

gotmax23 commented 2 years ago

I rebuilt the fbrnch RPM with 4b07f144e3db1486ce7675c5826b89e37a7a4786 and updates-testing enabled. I'm still getting

$ fbrnch build -n epel9-next
fbrnch: epel9-next is not an active branch
juhp commented 2 years ago

I see the problem - I think I have to do a new release of fedora-dists to address this. (Again this is due to PDC not listing epel-next - maybe I should look at Bodhi again.)

juhp commented 2 years ago

@gotmax23 maybe you can try applying this as a patch to fedora-dists?

With it fbrnch build -n seems to work for me now.

(I also updated my bodhi-client to list releases better.)

gotmax23 commented 2 years ago

@gotmax23 maybe you can try applying this as a patch to fedora-dists?

I rebuilt this with https://github.com/juhp/fedora-dists/commit/30ac460ff0730c139a8adbdb3a5870c0bffc2be1.patch applied to fedora-dists.

I am testing a real epel8-next build right now. I noticed that fbrnch nvr determines the wrong nvr on epel*-next branches.

$ fbrnch nvr epel8-next
ansible-5.8.0-1.el8
$ fedpkg verrel
ansible-5.8.0-1.el8.next
gotmax23 commented 2 years ago

%dist is .el8.next on epel8-next and .el9.next on epel9-next.

juhp commented 2 years ago

Okay thanks - that's easy to fix!

juhp commented 2 years ago

I may cut a new release for fedora-dists tomorrow or so, depending on how it looks. Thanks for testing it - let's see how your build finishes. :crossed_fingers:

gotmax23 commented 2 years ago

My build finished fine, but I ran it with -U, because I had to add it to an existing update. I don't think it would've worked, though, because fbrnch calculated the wrong nvr.

juhp commented 2 years ago

Right, it might work better now - anyway we can continue to fix issues incrementally as they come up.

(I have also been pondering to add a feature to make it easier to add builds to an existing update, but that will probably take some time. Maybe it could be a choice like Update, skip, or add [U/n/a]?.)

gotmax23 commented 2 years ago

(I have also been pondering to add a feature to make it easier to add builds to an existing update, but that will probably take some time. Maybe it could be a choice like Update, skip, or add [Una]?.)

That would be useful. I would also like to be able to create multi-line Bodhi update descriptions. Maybe launch the user's $EDITOR for that?

gotmax23 commented 2 years ago

Okay thanks - that's easy to fix!

This works after patching fedora-dists:


$ fbrnch nvr epel8-next epel9-next
ansible-5.8.0-1.el8.next
ansible-5.6.0-2.el9.next
juhp commented 2 years ago

Okay thanks, I think I will do a new minor release of fedora-dists then.

gotmax23 commented 2 years ago

Okay thanks, I think I will do a new minor release of fedora-dists then.

+1.

I don't have any more epel*-next updates to test right now, but I'll let you know if anything goes awry on the next one.

juhp commented 2 years ago

fedora-dists-2.1.1 is now on Hackage

gotmax23 commented 2 years ago

I don't have any more epel*-next updates to test right now, but I'll let you know if anything goes awry on the next one.

My latest epel9-next ansible update went flawlessly!