Re: Cyrus IMAP 3.12.3, 3.10.3, and 3.8.7 released
"ellie timoney" <[email protected]> Fri, 17 Jul 2026 12:47:00 +1000
| Newsgroups | gmane.mail.imap.cyrus |
|---|---|
| Message-ID | <[email protected]> |
Hi, On Thu, 16 Jul 2026, at 4:37 AM, Jean Charles Del=C3=A9pine wrote: > I would like to backport my PR #6081 to the 3.8 branch (my production=20= =20 > installation is currently running Cyrus 3.8), but I am having trouble=20= =20 > reproducing the build/test environment used by the project. If you create a new PR containing the backported code, and set its target b= ranch to cyrus-imapd-3.8 instead of master, then it should run in the 3.8 C= I for you. So maybe you don't need to reproduce the environment locally. That said, I'll provide some details below in case they're helpful or inter= esting. > I am using the Cyrus Docker environment=20=20 > (ghcr.io/cyrusimap/cyrus-docker:bookworm) and the dar workflow, but I=20= =20 > have not been able to get a clean build, either for the 3.8 branch or=20= =20 > for 3.10. We don't expect dar to work for 3.8 or 3.10, they're too different from mas= ter. I think it should work for 3.12, but I don't know this for fact. I d= on't use it myself much yet, I already had my own tools. > Could you please let me know how the development team currently builds=20= =20 > and tests these branches? Sure. > In particular: > > Which Docker image/tag is used for CI and developer testing? Depends on the branch. You can find out which by checking out the branch, = and then look for "image:" in .github/workflows/main.yml. For 3.8 and 3.10= , it's: image: ghcr.io/cyrusimap/cyrus-docker:bookworm-libs42 If you already know docker, I assume you can work out what to do with this. > What is the expected dar workflow to build a release branch? There isn't one, yet. I expect this will change when the current master br= anch becomes a stable release, but the older branches will probably always = use the older process. I'll talk about this more shortly. > Are there any branch-specific configuration steps or dependencies=20= =20 > that are not obvious from the Docker image? If you mimic what that main.yml file does directly in your container, you s= hould be on the right track. In particular, notice that the step with the name "configure and build" run= s "./tools/build-with-cyruslibs.sh", it does not run cyd. So that script s= hould provide some guidance as to what you need to set up. If you build with -Werror like I do, then 3.8 and 3.10 will need -Wno-depre= cated and -Wno-discarded-qualifiers. The exact process I use to build 3.8, without docker, dar, or cyd, is this: git checkout cyrus-imapd-3.8 git clean -xfd use-cyruslibs 42 CFLAGS=3D'-Wno-deprecated -Wno-discarded-qualifiers' cyrus-cfg make check cyrus-instcass (I then run cassandane in a different terminal.) cyrus-cfg and cyrus-instcass are my convenience scripts, and use-cyruslibs = is a shell alias in my bashrc. These are all in https://github.com/elliefm= /cyrus-build-tools -- I do not recommend using my tools directly, but they = might be useful to refer to. The exact process I use to build a 3.8 release tarball is this: git checkout cyrus-imapd-3.8 git clean -xfd use-cyruslibs 42 autoreconf -is ./configure --enable-maintainer-mode distcheck Note that I don't use my cyrus-cfg script here, I run configure directly. = distcheck is another shell alias, it just runs `make distcheck` with PATH f= ixed for cyruslibs. > I am asking because I need to prepare a backport for a Cyrus 3.8=20=20 > installation in production, and the security fixes included in 3.8.7=20=20 > make it important for me to validate the backport quickly. > > I would like to make sure I am using the same environment as the=20=20 > project before preparing the patch. Hope this is helpful! Cheers, ellie ------------------------------------------ Cyrus: Info Permalink: https://cyrus.topicbox.com/groups/info/T78ae3d33b340593c-M2488c4= 43f4c5885c4193deb3 Delivery options: https://cyrus.topicbox.com/groups/info/subscription