Bug 269670 - audio/cadence fails to build
Summary: audio/cadence fails to build
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-02-18 23:09 UTC by Luc
Modified: 2023-02-22 14:56 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (yuri)


Attachments
terminal output (151.09 KB, image/png)
2023-02-18 23:09 UTC, Luc
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luc 2023-02-18 23:09:26 UTC
Created attachment 240246 [details]
terminal output

py38-pigments conflicts with py39-pigments. More details in screenshot.
Comment 1 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 04:28:03 UTC
(In reply to Luc from comment #0)

Hi Luc,

I can't reproduce the problem.

py38-* packages aren't supposed to be mixed with py39-* packages.

Is your ports tree up-to-date?
Does 'make -V PYTHON_VERSION' print python3.9 as it should?

Please remove all py38-* packages and try again.


Yuri
Comment 2 Luc 2023-02-19 17:58:49 UTC
(In reply to Yuri Victorovich from comment #1)

'make -V PYTHON_VERSION' doesn't print anything.

I don't know how to remove all py38-* packages. I didn't install them in the first place. They came shipped with the system (installed two days ago) or maybe some pkg or port installed them.

I don't understand the platform. I just type 'pkg install package' or 'cd /usr/ports/whatever && make install clean. If something breaks, I have no idea of what to do.
Comment 3 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 18:47:57 UTC
(In reply to Luc from comment #2)


> I don't know how to remove all py38-* packages.

$ sudo pkg delete py39-*
Comment 4 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 18:48:21 UTC
* Correction:

> I don't know how to remove all py38-* packages.

$ sudo pkg delete py38-*
Comment 5 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 18:51:42 UTC
I am not sure how did you install the system and packages, but in all python-related ports like audio/cadence 'make -V PYTHON_VERSION' should print python3.9

Generally py38-* and py39-* can't coexist, except maybe in a few cases.
py38-* packages should be removed.
Comment 6 Luc 2023-02-19 18:57:46 UTC
(In reply to Yuri Victorovich from comment #5)

--------
root@fsd1:/usr/ports # pkg delete py38-*
pkg: No match.
root@fsd1:/usr/ports # make -V PYTHON_VERSION

root@fsd1:/usr/ports # 
--------
Comment 7 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 19:43:39 UTC
(In reply to Luc from comment #6)

> # cd /usr/ports/audio/cadence && make -V PYTHON_VERSION
Comment 8 Luc 2023-02-19 20:13:03 UTC
(In reply to Yuri Victorovich from comment #7)

Yes.

root@fsd1:/usr/ports # cd /usr/ports/audio/cadence
root@fsd1:/usr/ports/audio/cadence # make -V PYTHON_VERSION
python3.9
Comment 9 Luc 2023-02-19 20:14:34 UTC
Trying again...

byte-compiling /usr/ports/devel/py-qtbuilder/work-py39/stage/usr/local/lib/python3.9/site-packages/pyqtbuild/bundle/abstract_package.py to abstract_package.cpython-39.pyc
byte-compiling /usr/ports/devel/py-qtbuilder/work-py39/stage/usr/local/lib/python3.9/site-packages/pyqtbuild/bundle/verbose.py to verbose.cpython-39.pyc
writing byte-compilation script '/tmp/tmpfqnrieu0.py'
/usr/local/bin/python3.9 /tmp/tmpfqnrieu0.py
removing /tmp/tmpfqnrieu0.py
running install_egg_info
running egg_info
writing PyQt_builder.egg-info/PKG-INFO
writing dependency_links to PyQt_builder.egg-info/dependency_links.txt
writing entry points to PyQt_builder.egg-info/entry_points.txt
writing requirements to PyQt_builder.egg-info/requires.txt
writing top-level names to PyQt_builder.egg-info/top_level.txt
reading manifest file 'PyQt_builder.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
adding license file 'LICENSE-GPL2'
adding license file 'LICENSE-GPL3'
writing manifest file 'PyQt_builder.egg-info/SOURCES.txt'
Copying PyQt_builder.egg-info to /usr/ports/devel/py-qtbuilder/work-py39/stage/usr/local/lib/python3.9/site-packages/PyQt_builder-1.14.0-py3.9.egg-info
running install_scripts
Installing pyqt-bundle script to /usr/ports/devel/py-qtbuilder/work-py39/stage/usr/local/bin
Installing pyqt-qt-wheel script to /usr/ports/devel/py-qtbuilder/work-py39/stage/usr/local/bin
writing list of installed files to '/usr/ports/devel/py-qtbuilder/work-py39/.PLIST.pymodtmp'
===> Creating unique files: Move MAN files needing SUFFIX
===> Creating unique files: Move files needing SUFFIX
Move: bin/pyqt-bundle --> bin/pyqt-bundle-3.9
Link: @bin/pyqt-bundle --> bin/pyqt-bundle-3.9
Move: bin/pyqt-qt-wheel --> bin/pyqt-qt-wheel-3.9
Link: @bin/pyqt-qt-wheel --> bin/pyqt-qt-wheel-3.9
====> Compressing man pages (compress-man)
===>  Installing for py39-qtbuilder-1.14.0
===>  Checking if py39-qtbuilder is already installed
===>   Registering installation for py39-qtbuilder-1.14.0 as automatic
Installing py39-qtbuilder-1.14.0...
pkg-static: py39-qtbuilder-1.14.0 conflicts with py38-qtbuilder-1.12.2 (installs files into the same place).  Problematic file: /usr/local/bin/pyqt-bundle
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/devel/py-qtbuilder
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/py-qt5-pyqt
*** Error code 1

Stop.
make: stopped in /usr/ports/audio/cadence
root@fsd1:/usr/ports/audio/cadence #
Comment 10 Luc 2023-02-19 20:25:19 UTC
Trying again...

# pkg delete py38-qtbuilder-1.12.2
# make install clean


(blah blah blah)

adding license file 'LICENSE'
adding license file 'LICENSE-GPL2'
adding license file 'LICENSE-GPL3'
writing manifest file 'sip.egg-info/SOURCES.txt'
Copying sip.egg-info to /usr/ports/devel/py-sip/work-py39/stage/usr/local/lib/python3.9/site-packages/sip-6.7.2-py3.9.egg-info
running install_scripts
Installing sip-build script to /usr/ports/devel/py-sip/work-py39/stage/usr/local/bin
Installing sip-distinfo script to /usr/ports/devel/py-sip/work-py39/stage/usr/local/bin
Installing sip-install script to /usr/ports/devel/py-sip/work-py39/stage/usr/local/bin
Installing sip-module script to /usr/ports/devel/py-sip/work-py39/stage/usr/local/bin
Installing sip-sdist script to /usr/ports/devel/py-sip/work-py39/stage/usr/local/bin
Installing sip-wheel script to /usr/ports/devel/py-sip/work-py39/stage/usr/local/bin
writing list of installed files to '/usr/ports/devel/py-sip/work-py39/.PLIST.pymodtmp'
===> Creating unique files: Move MAN files needing SUFFIX
===> Creating unique files: Move files needing SUFFIX
Move: bin/sip-build --> bin/sip-build-3.9
Link: @bin/sip-build --> bin/sip-build-3.9
Move: bin/sip-distinfo --> bin/sip-distinfo-3.9
Link: @bin/sip-distinfo --> bin/sip-distinfo-3.9
Move: bin/sip-install --> bin/sip-install-3.9
Link: @bin/sip-install --> bin/sip-install-3.9
Move: bin/sip-module --> bin/sip-module-3.9
Link: @bin/sip-module --> bin/sip-module-3.9
Move: bin/sip-sdist --> bin/sip-sdist-3.9
Link: @bin/sip-sdist --> bin/sip-sdist-3.9
Move: bin/sip-wheel --> bin/sip-wheel-3.9
Link: @bin/sip-wheel --> bin/sip-wheel-3.9
====> Compressing man pages (compress-man)
===>  Installing for py39-sip-6.7.2,1
===>  Checking if py39-sip is already installed
===>   Registering installation for py39-sip-6.7.2,1 as automatic
Installing py39-sip-6.7.2,1...
pkg-static: py39-sip-6.7.2,1 conflicts with py38-sip-6.5.1,1 (installs files into the same place).  Problematic file: /usr/local/bin/sip-build
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/devel/py-sip
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/py-qt5-pyqt
*** Error code 1

Stop.
make: stopped in /usr/ports/audio/cadence


Sigh.
# pkg delete py38-sip-6.5.1,1

# make install clean


(blah blah blah)


===>  Staging for autoconf-2.71
===>   autoconf-2.71 depends on package: autoconf-switch>=0 - not found
===>  Installing for autoconf-switch-20220527
===>  Checking if autoconf-switch is already installed
===>   Registering installation for autoconf-switch-20220527 as automatic
Installing autoconf-switch-20220527...
pkg-static: autoconf-switch-20220527 conflicts with autoconf-wrapper-20131203 (installs files into the same place).  Problematic file: /usr/local/bin/autoconf
*** Error code 1

Stop.
make[9]: stopped in /usr/ports/devel/autoconf-switch
*** Error code 1

Stop.
make[8]: stopped in /usr/ports/devel/autoconf
*** Error code 1

Stop.
make[7]: stopped in /usr/ports/devel/autoconf
*** Error code 1

Stop.
make[6]: stopped in /usr/ports/devel/libuv
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/devel/cmake-core
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/devel/cmake-core
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/multimedia/assimp
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/x11-toolkits/qt5-quick3d
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/py-qt5-pyqt
*** Error code 1

Stop.
make: stopped in /usr/ports/audio/cadence



Guess what
# pkg delete autoconf-wrapper-20131203
# make install clean


(blah blah blah)


c++ -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -D__BSD_VISIBLE -isystem /usr/local/include        -DCMAKE_BOOTSTRAP    -DCMake_HAVE_CXX_MAKE_UNIQUE=1   -I/usr/ports/devel/cmake-core/work/cmake-3.25.1/Bootstrap.cmk   -I/usr/ports/devel/cmake-core/work/cmake-3.25.1/Source   -I/usr/ports/devel/cmake-core/work/cmake-3.25.1/Source/LexerParser   -I/usr/ports/devel/cmake-core/work/cmake-3.25.1/Utilities/std   -I/usr/ports/devel/cmake-core/work/cmake-3.25.1/Utilities  -c /usr/ports/devel/cmake-core/work/cmake-3.25.1/Source/cmFileCommand.cxx -o cmFileCommand.o
Killed
*** [cmFileCommand.o] Error code 137

make[6]: stopped in /usr/ports/devel/cmake-core/work/cmake-3.25.1/Bootstrap.cmk
1 error

make[6]: stopped in /usr/ports/devel/cmake-core/work/cmake-3.25.1/Bootstrap.cmk
---------------------------------------------
Error when bootstrapping CMake:
Problem while running make
---------------------------------------------
Log of errors: /usr/ports/devel/cmake-core/work/cmake-3.25.1/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------
===>  Script "configure" failed unexpectedly.
Please report the problem to kde@FreeBSD.org [maintainer] and attach the
"/usr/ports/devel/cmake-core/work/cmake-3.25.1/config.log" including the
output of the failure of your make command. Also, it might be a good idea to
provide an overview of all packages installed on your system (e.g. a
/usr/local/sbin/pkg-static info -g -Ea).
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/devel/cmake-core
*** Error code 1

Stop.
make[4]: stopped in /usr/ports/devel/cmake-core
*** Error code 1

Stop.
make[3]: stopped in /usr/ports/multimedia/assimp
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/x11-toolkits/qt5-quick3d
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/devel/py-qt5-pyqt
*** Error code 1

Stop.
make: stopped in /usr/ports/audio/cadence
Comment 11 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 21:20:14 UTC
(In reply to Luc from comment #10)

Run
# pkg delete py38-*

Then do make, save the log, and see why any py38-* packages are installed.
The log would show where does py38-* first appear.
Comment 12 Luc 2023-02-19 21:36:04 UTC
(In reply to Yuri Victorovich from comment #11)

"see why"
I can't see why. I don't understand any of this. I always hated Python anyway. Everything that involves Python is one hot mess and a half.
Comment 13 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-19 21:56:05 UTC
(In reply to Luc from comment #12)

> Everything that involves Python is one hot mess and a half.

I agree wholeheartedly.

But still, things that you describe shouldn't happen. Python is good for simple throw-away experimentation, like in a science lab when they need to run some workflow many times with varying parameters. It is very bad for larger projects. That's when people mess up their projects with Python.

But Python is not generally broken on FreeBSD.

You can first run 'pkg delete py38-*', then 'cd /usr/ports/audio/cadence && make clean && make > cadence.log 2>&1'.
e-mail me that log, and I can take a look.
Comment 14 Luc 2023-02-20 02:57:52 UTC
(In reply to Yuri Victorovich from comment #13)

Thank you for your attention to the problem.

I copypasta here:

https://0x0.st/Hscy.txt

also here just in case:

https://controlc.com/f6ccba54/fullscreen.php?hash=1983316d83ba452ce6c980de525fdff4&linenum=false
Comment 15 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-20 03:18:22 UTC
The log shows the failure in assimp, not in python ports.
You can just run 'pkg install -A assimp'.
Comment 16 Luc 2023-02-20 16:44:08 UTC
You said:
> You can just run 'pkg install -A assimp'.

I read:
People are expected to know those arcane things in order to use FreeBSD.
Quite disheartening.

And what does -A do? The pkg man page mentions it in the examples, but never explains what it does.

It's building again. I will be back in an hour or so. God knows how long the entire procedure takes when it doesn't break along the way.
Comment 17 Luc 2023-02-20 17:22:44 UTC
Here we go again:

https://0x0.st/HsaQ.txt
Comment 18 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-20 17:29:26 UTC
(In reply to Luc from comment #16)

Hi Luc,

The recommended way for users to install software is to install it from packages using the package manager 'pkg'. pkg installs pre-built binary packages. For example, you can install audio/cadence using the command 'pkg install cadence'. 'pkg search cadence' finds it in the repository.

pkg is the only command that users are expected to know in order to install software. The -A argument sets the 'automatic' flag on the package, making it easier to manage installed packages.

What you are doing is building ports from source. This involves a lot more and requires more knowledge. As you have experienced, source builds can fail due various reasons on your local system.

It requires a lot more expertise to build from source. But regular users don't have to. They just use 'pkg search xx' and 'pkg install xx'.

Hope this helps,

Best,
Yuri
Comment 19 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-20 17:36:14 UTC
(In reply to Luc from comment #17)

This log shows that the build was killed for some reason. Maybe it ran out of memory, or was killed by users.

I recommend to just use the 'pkg install {package}' command. Virtually every port builds successfully in a clean environment. There are ~32,000 ports, and only ~30-40 of them really fail to build for various reasons. All others succeed and have binary packages available.


Yuri
Comment 20 Luc 2023-02-20 17:48:22 UTC
I made a list of software I use on Linux and searched for each item in pkg form. If I am building a port it's because the pkg was not available. Or I thought it wasn't for some reason.

So I see cadence is available as a pkg, so it must have been my mistake, but lots of things are not available as pkg, only in ports (some are not even in ports). For example, virtualbox-ose is only available as a port. I dread the thought of building something so large and complicated from source, but I still tried and of course it failed. I have reported that too, no one has commented yet.

Cadence ran once but I couldn't really test it because I still don't understand how JACK works on FreeBSD. So I closed cadence and now it won't run again.

Very difficult.

But again, thank you.
Comment 21 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-20 20:35:07 UTC
(In reply to Luc from comment #20)

virtualbox-ose is available as a package:

> $ pkg search virtualbox-ose
> virtualbox-ose-6.1.36_1        General-purpose full virtualizer for x86 hardware

In fact, I used it yesterday.

Please make sure that your /etc/pkg/FreeBSD.conf is on the latest, and not quarterly:
FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

'latest' has more up-to-date packages. I only use latest.

> I still don't understand how JACK works on FreeBSD.

For Jack you need to:
(1) install the jackit package
(2) add jackd_enable="YES" to /etc/rc.conf
(3) add jackd_user="{your-user-name}" to /etc/rc.conf
(3) add the config line with your audio devices to /etc/rc.conf. I have this line: jackd_args="-R -doss -r48000 -p1024 -n3 -w16 --capture /dev/dsp7 --playback /dev/dsp3"
(4) run 'service jackd start'

Jack works fine on FreeBSD.

Please let me know what software you are looking for that is missing in the ports.


Yuri
Comment 22 Luc 2023-02-20 21:28:20 UTC
The most surprising absence for me is spacefm, which I have been using for longer than I can remember. No pkg and no port.

Also catia, a patchbay manager that belongs to the KXStudio collection, where cadence comes from.

Also no wineasio. That may be a problem with certain Windows/Wine audio applications.

Shuriken would be very nice although not critical.

I also use osdsh every day. Maybe there is something similar in FreeBSD?

How do you people burn CDs and DVDs? I always used cdw.

I believe that's it. I think I've found eveything else I could need.

Thank you.
Comment 23 Luc 2023-02-20 21:34:53 UTC
I just found I have catia installed. Weird, because 'pkg search catia' returns nothing. I don't even know how it was installed. A stowaway in some audio related package?
Comment 24 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-20 21:39:03 UTC
(In reply to Luc from comment #23)

audio/cadence installs bin/catia.
You can also see this from /usr/ports/audio/cadence/pkg-plist
Comment 25 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-20 21:50:37 UTC
(In reply to Yuri Victorovich from comment #24)

You can see what installs a particular file with this command:
> $ pkg which /usr/local/bin/catia 
> /usr/local/bin/catia was installed by package cadence-0.9.2_2
Comment 26 Luc 2023-02-20 22:22:48 UTC
Hi, Yuri.

I just noticed what may qualify as a bug in the cadence package. Like you said, it installs multiple binaries. In Openbox/LXDE, they are listed in the Sound/Video menu section. However, Catarina is put into the Accessories section. I don't think that is correct.

And as long as I am here, there is also a TrueOS Mixer Tray application in the Accessories section. I believe that one should be in the Sound/Video menu section too.

Thank you for your attention again.
Comment 27 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-21 10:06:12 UTC
(In reply to Luc from comment #22)

I just added the port deskutils/spacefm.
spacefm didn't have any updates for 5 years. Its author also had no GitHub activity in 5 years. So spacefm looks like an abandoned project.
I will port other packages that you mentioned.

> How do you people burn CDs and DVDs? I always used cdw.

I did't burn CDs/DVDs for 5+ years. But the script that I used before is:
# growisofs -dvd-compat -speed=4 -Z /dev/acd0=$1 # from sysutils/dvd+rw-tools


Yuri
Comment 28 Luc 2023-02-21 16:39:04 UTC
(In reply to Yuri Victorovich from comment #27)

> spacefm didn't have any updates for 5 years. Its author also had no GitHub 
> activity in 5 years. So spacefm looks like an abandoned project.

That warrants a rant.

5 years, so what? It works. It works and it's the best file manager I've ever had. Maybe it's not perfect, but it's great. It's not food we are talking about. It won't "go bad." Or are we talking about some athlete who grew too old and is no longer able to perform? What grand historical event occurred in these last 5 years that rendered a perfectly fine file manager useless? Have computers really changed that much or at all in the mere span of 5 years? Have you never heard of shops that still run Windows XP? I still do work for clients with Office 97. I have three other Windows applications from the 90s that I still use on Wine almost every day. Come on, man. I was expecting not to have that kind of problem with BSD people.

But you did provide a port. That is very generous and I really appreciate it. You're making me want to migrate with that kind of attitude. :-)

So let's go back to our usual programming.

I'm having this problem now and I don't know how to go ahead. Can you please advise?


(...)
Making install in src
 /bin/mkdir -p '/usr/ports/sysutils/fusefs-jmtpfs/work/stage/usr/local/bin'
  /bin/sh /usr/ports/sysutils/fusefs-jmtpfs/work/jmtpfs-af0b79bc555ee60088306fdd2b78b2d51b781da3/install-sh -c -s jmtpfs '/usr/ports/sysutils/fusefs-jmtpfs/work/stage/usr/local/bin'
(cd /usr/ports/sysutils/fusefs-jmtpfs/work/jmtpfs-af0b79bc555ee60088306fdd2b78b2d51b781da3 && /bin/sh -c '(/usr/bin/find -Ed $1 $3 | /usr/bin/cpio -dumpl $2 >/dev/null 2>&1) &&  /usr/bin/find -Ed $1 $3 \(   -type d -exec /bin/sh -c '\''cd '\''$2'\'' && chmod 755 "$@"'\'' . {} +  -o -type f -exec /bin/sh -c '\''cd '\''$2'\'' && chmod 0644 "$@"'\'' . {} + \)' COPYTREE_SHARE  "AUTHORS NEWS README.rst" /usr/ports/sysutils/fusefs-jmtpfs/work/stage/usr/local/share/doc/jmtpfs)
====> Compressing man pages (compress-man)
===>  Installing for fusefs-jmtpfs-g20190420
===>  Checking if fusefs-jmtpfs is already installed
===>   Registering installation for fusefs-jmtpfs-g20190420 as automatic
Installing fusefs-jmtpfs-g20190420...
===>   spacefm-1.0.6 depends on package: fusefs-jmtpfs>0 - not found
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/deskutils/spacefm
*** Error code 1

Stop.
make: stopped in /usr/ports/deskutils/spacefm

root@fsd1:/usr/ports/deskutils/spacefm # pkg search fusefs-jmtpfs
fusefs-jmtpfs-g20190420        MTP device filesystem
root@fsd1:/usr/ports/deskutils/spacefm # pkg install fusefs-jmtpfs
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Updating database digests format: 100%
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed

root@fsd1:/usr/ports/deskutils/spacefm # pkg install fusefs-jmtpfs-g20190420
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent versions of packages are already installed
Comment 29 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-22 14:03:38 UTC
I added audio/shuriken.

> I also use osdsh every day. Maybe there is something similar in FreeBSD?

This package is Debian-only. The same question can be asked for any non-Debian OS, like Arch or Fedora. I don't know that answer. Maybe it can be ported, I will take a look.
Comment 30 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-22 14:08:07 UTC
(In reply to Luc from comment #28)

> 5 years, so what?

I only wanted to say that abandoned packages tend to go into disrepair easily. For example, when/if Gtk3 would be EOLed - this package will likely break because it isn't Gtk4-compatible, and it is likely that nobody would fix it. This happened before during Python2->Python3, Qt3->Qt4 transitions, etc. Same happens when some dependency packages make incompatible changes, and there's no one to fix abandonware.
Comment 31 Luc 2023-02-22 14:37:50 UTC
(In reply to Yuri Victorovich from comment #30)

That is very, very important to me.

Can't we have Gtk2, Gtk3 and Gtk4 installed side by side to support all cases and keep the old software around? Same for Python2 & Python3, and Qt3 & Qt4?

That is the one thing that bothers me the most about Linux. I was seriously hoping to put that situation past me with FreeBSD. I was seriously hoping FreeBSD would have a different attitude about it. I read an article saying that you can (for example) install latest Firefox on old FreeBSD (often impossible on Linux). Did I misinterpret that? Am I making wrong assumptions?

Part of the reason I love Wine is that old Windows applications never "go into disrepair." Damn, they just work. They may be decades old and they work. I use a lot of Windows software for making music for that reason. I can rely on every instrument or effect to be there when I open a project because they just frigging work, unlike Linux music applications of which I have lost a few along the way.

It's not just music. I like habit and I love being able to keep using old software for the rest of my life unless something really better comes along (not happened with spacefm yet). I think it's even disrespectful to ditch software like it's worthless. It isn't. It's useful, someone put a lot of work into it and it still does the job it is supposed to do. The system is broken. Things shouldn't work that way.

Pray tell, am I jumping out of a fire to fall into the same one again? Could jails or some other FreeBSD mechanism do what I want?

Please don't say "use Windows." I loathe Windows.

Thank you for shuriken and all the guidance.
Comment 32 Yuri Victorovich freebsd_committer freebsd_triage 2023-02-22 14:56:36 UTC
(In reply to Luc from comment #31)

> Can't we have Gtk2, Gtk3 and Gtk4 installed side by side to support all cases and keep the old software around? Same for Python2 & Python3, and Qt3 & Qt4?

Older, EOLed generations of frameworks are removed after a long grace period because of (1) maintenance costs (2) very much reduced need. We don't have enough people to maintain them. Also mostly abandonware requires them, and maintained packages don't. FreeBSD tries to keep abandonware as long as possible, but eventually they have to remove it. Qt3 and Qt4 were removed a while ago. Now there are Qt5 and Qt6 side buy side. Python2 is still there, though it is discouraged. Various Python3 sub-versions can be installed side by side. All distros have to do the same due to increased costs and reduced benefits.

Running older Firefox is possible, as long as it compiles. You can easily roll back the www/firefox port to any point in time. It would compile for recent enough versions, but it would likely break for very old versions. This is because of incompatible changes that are made in dependencies, ports framework, compilers, etc.

> Please don't say "use Windows." I loathe Windows.

Same here.