Am Sun, 2 Mar 2025 14:14:59 +0000 schrieb Stuart Henderson <s...@spacehopper.org>:
> I do think we need to do _something_ with this, because as things > stand, if an i386 user has fish as their shell, they will be left > with old binaries which will stop working sometime. If not going for > this approach then we'll need something in current.html / release > notes so that people can change their user's shell in advance of > upgrading. I like the proposal splitting fish into v3 and v4. Within this week I'll prepare a diff and send it to ports@. Thanks again for the idea! > On 2025/03/01 09:43, Stuart Henderson wrote: > > On 2025/03/01 09:12, Theo Buehler wrote: > > > On Sat, Mar 01, 2025 at 08:42:48AM +0100, Sebastien Marie wrote: > > > > Stuart Henderson <s...@spacehopper.org> writes: > > > > > > > > > On 2025/02/27 19:03, Volker Schlecht wrote: > > > > >> MODULES = devel/cmake \ > > > > >> + devel/cargo \ > > > > > > > > > > any idea if there are users of this on !rust archs? > > > > > > > > > > > > > even if there are such users, upstream chooses this road so it > > > > is preferable to copte with it. I am unsure it worths the pain > > > > to maintaining both ports (like librsvg). > > > > > > I agree: shells/fish itself should follow upstream which has > > > switched to rust. > > > > > > However, since this is a leaf port, we could reimport the old > > > C++-based fish simply as shells/fish3 (there's perhaps a bit of > > > pain for removing the conflict between the two versions if we > > > want to do that). > > > > I don't think it's necessary to avoid a conflict, the main reason > > for doing that would be if other ports start to depend on fish (and > > even that would be ok as long as they don't mind which version they > > have). > > > > To handle updates nicely: > > > > - change the path on both versions, for example shells/fish/v3 and > > shells/fish/main > > > > - have both use fish as the stem (fish-3.xx, fish-4.xx), like done > > in Postfix > > > > - use "@option is-branch" in both plists > > > > - in v3, set a variable (e.g. RUST_COMMENT) to "@comment " on Rust > > archs, and leave it empty on non-Rust archs, add it to SUBST_VARS, > > and use "${RUST_COMMENT}@pkgpath shells/fish" in the plist > > > > That way the package produced on non-rust archs will have the > > annotation, and the v3 package on rust archs will have an @comment. > > > > - in main, just have "@pkgpath shells/fish" in the PLIST (no need > > for anything special there, as obviously it won't build on non-Rust > > archs anyway) > > > > This way, users with the existing package on a !rust arch will get > > seamlessly adjusted to the new pkgpath for v3, users on a rust arch > > will get moved to v4, and - importantly - there will only be one > > version on an arch that has "@pkgpath shells/fish", so users on a > > rust arch won't keep getting asked which version they want to > > update to when they run pkg_add -u. > > > > A user running "pkg_add fish" will be asked to choose which > > version, but then updates will happen automatically. And for > > scripted installs, "pkg_add fish%main" or "pkg_add fish%v3" will > > avoid it asking. > > > > > My understanding is most of the pain of librsvg comes from it > > > being an important dependency for graphics-based programs, so it > > > has to be supported in the same port. > > > > There is another way that could be done but would be messier in the > > ports using librsvg; the same-port method means that the librsvg > > port is a bit more complicated but other ports are simpler. > > -- greetings, Florian Viehweger