-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Thoughts on the FreeBSD ports/package system #161
Comments
On your third point, this is exactly how quarterly branches work. Breakage is rare and high priority, though I know you were hit by an incident in the past. For the first point... yes, separation of base and ports is pretty much the number one interesting Thing about FreeBSD. Pkgbase is still very new. In short, we know about these issues and have been working on them for a while. |
Not sure what is going on here.
|
This also means that there should be a set of packages e.g., for 12.1 that do not suddenly stop working once 12.2 is released. I fell into the exact issue here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253452 Even if a FreeBSD minor version is no longer supported, the packages for it should not vanish. Some of us want to set up a system and freeze it in time, sometimes even for decades. |
So, in other words, what you're saying is that we should have different repositories for different versions, right? |
At least different versions of the packages for different FreeBSD versions for those packages that interact with the kernel directly or are otherwhise dependent on the exact FreeBSD version. |
Turns out that depending on the architecture, the package is now called differently: What gives?!? Suggestions:
Workaround: Use the |
Please see https://cgit.freebsd.org/ports/tree/UPDATING?id=210ee04dd3c3f2e82cd3130e412866a182066859#n8 |
Thanks @grahamperrin. It seems that things are more robust if we use the port names rather than the package names for specifying which packages shall be installed? E.g., |
Maybe a combination of issues with FreshPorts; see FreshPorts/freshports#287 (comment) https://www.freshports.org/devel/py-xdg/#add
|
Point in case today: TL;DR: Installed some applications, which upgraded some system libraries. As a result, was forced to upgrade Firefox. Cannot access meet.jit.si anymore as a result. No obvious way to downgrade. |
To which version, exactly? Latest repo, or quarterly? Which version of helloSystem? Which version of FreeBSD?
With recently upgraded firefox-92.0_2,2, the site is accessible: – and (after clicking Allow) https://www.freshports.org/www/firefox/#history there's no more recent version.
Don't forget the boot environment that you created before the upgrade. If you forgot, then try your cached packages. |
I have often posed the same questions in my head. It feels like there should maybe be an assertion that happens when performing an upgrade but how can the system be aware of where the modules in /boot/modules came from and whether it was a I am personally a huge fan of the pkg and ports system. I believe a lot of the problems with packages/ports getting ousted or breaking stems from lack of developers and maintainers if anything. My thoughts on sweeping changes... lots of recommendations have been made in the past to overhaul/reorganize the ports system. This would be a pretty complicated endeavor and would probably require a fork of the ports tree. Anything that further segments the BSDs I believe is a disservice to the community. I think there exists enough which can be gleaned from the ports tree to help us make assertions to assist in extending the freebsd-update system. From my perspective, helloSystem is a beautiful distribution of FreeBSD and I would like to see it stay that way. The less we change the more collaboration can exist across both teams on a common code base.
On the systems that I must support running linux, I have often seen what you are suggesting break in release systems when addition of a module requires updating the interpreter's package. The virtual-environments (as they use symlinks and aren't a copy of the binary) don't protect against this breakage either. My personal opinion is there is too much codependancy on minor versions of python between modules and the binary, especially when modules are backed by C/C++ based libaries. The same goes for perl and tcl/tk, but my guess would be most interpreters suffer the same plight if they allow modules to be backed by C/C++ binaries. My suggestion would be to try and leverage Meta-ports for this mechanism. Discussed below. So arguments aside, solutions:
Anyways just wanted to dig into my thoughts for a moment and get an idea on what others think. I've got a working install, and plan on contributing. What has been done thus far is beyond impressive. |
Thanks for your thoughtful comments @xk2600. As you may have guessed, I am still relatively new to FreeBSD, having spent many years on the Mac and in the Linux universe before. I do see clear advantages in using FreeBSD, and I fully agree that helloSystem should stay a "true FreeBSD", albeit one preconfigured in an opinionated way to work out-of-the-box as a "desktop appliance" (while providing raw FreeBSD power under the hood for those who know what they are doing). For this very reason, I'd like to see those issues to be solved on a FreeBSD level ("for everyone") rather than in helloSystem-specific ways.
We are currently not doing this, and I'd like to avoid this for multiple reasons:
So, right now helloSystem gets built by a shell script from the official FreeBSD binary ingredients plus official FreeBSD ports, at least for the core parts of the system (which for me includes the graphics stack and graphics drivers). On the subject of graphics drivers, it seems like FreeBSD leadership is aware of the problem and "absolutely need to solve this before FreeBSD 12.3 or 13.1". |
Maybe while we're trying to figure out a better long term updating option, run the install shell script after |
|
I would try using a |
Again, that gnumeric POC comes to mind, I think that's the way to go here. |
So basically there's a read-only directory containing a pristine helloSystem copy, that is mounted from an image file, then using unionfs mounts we could get the root filesystem used by the system, with /home, /var, /etc etc. mounted from separate ZFS subvolumes, /tmp mounted tmpfs, and use a similar overlay for apps. |
(Moving the bundle-related topics to #203) |
From Technology Roadmap | FreeBSD Foundation (2021-09-17):
Also from the Roadmap: – and:
|
Currently this ends up with dependencies like
We don't want Trying to specify |
py39 will never be there. |
Re: #161 (comment) https://www.freebsd.org/administration/ there's now a FreeBSD Packages Management Team. |
Here we go again. I just want to install something yet pkg wants to REMOVE something.
This has to be avoided at all cost. |
Why the heck does the system want to install Qt6 out of the blue now??? In the middle of the quarter...
|
This thread is my dumping ground for all gripes I have with pkg, and documentation why I don't think a package manager is a tool that should be given into the hands of unsuspecting non-technical end users ("mere mortals"). |
In their hands: |
|
Fair enough. Increasingly difficult to follow, GitHub issues don't lend themselves to this type of thing. Methinks, here's no longer the place to answer questions. |
helloSystem/ISO@8630218 (2022-10-15) referenced #161 (comment), but not in the commit message. |
@Cozmo007 which helloSystem are you on? This should (hopefully) be fixed in the recent 0.8.0 experimental builds thanks to |
Just a note here that it's occurred to me that Hello could mark all of the leaf packages it expects to keep as vital. This is a flag that makes pkg refuse to uninstall itself without forcing, and I think it might work to stop now missing packages from being deinstalled. I'll let you know how testing goes- going to have a go at the same time as the base package. |
Cannot build the ISO today because packages are again missing from one day to the next...
Root cause possibly is (https://portsfallout.com/port/26602/, source):
Similarly (source),
Any chance to get that still fixed in quarterly packages? For me, that the previous version of each package is not kept until a new build has succeeded (like Linux distributions seem to be doing it) is the number 1 annoyance in using FreeBSD nowadays (along with the issue that graphics drivers are not treated the same as base). |
It seems that you want a repository, or repositories, to always fulfil the requirements of helloSystem. From helloSystem/ISO#141 (comment) (2022-09-13):
I use poudriere to meet my requirements. I don't expect the FreeBSD Project to prioritise my requirements above those of other users (or projects). Again, please consider using poudriere. |
I strongly disagree that disappearing packages are acceptable on the Project's main and recommended package repositories. You don't see Debian doing this, and portmgr AFAIK agrees that this is an undesirable state of affairs. It's simply a matter of QA, which is incredibly difficult. |
That's a question for the maintainer. https://www.freshports.org/www/falkon/ PostscriptRe: #384 (comment)
|
This might be already amongst the https://lists.freebsd.org/subscription/freebsd-pkg The suggestion to use poudriere is to be realistic about the status quo.
That's for 12.4-RELEASE on a different platform. https://www.freebsd.org/platforms/i386/
Please see: |
Sorry, my bad. How can I find out why it is missing for 13.1 arm64? |
Seems to be qt6-webengine failing. https://pkg-status.freebsd.org/builds/default:default:131amd64:8dc4a71c010e:beefy16 I think the beefy machines that show the logs are IPv6 only, so you may have better luck than me following the links to the build logs. |
Thing is, helloSystem isn't even (trying to) use Qt 6. Why was everything working just 2 days ago when I was able to build hello-0.8.2_0H337-FreeBSD-13.2-amd64.iso just fine? Did some packages switch from Qt 5 to Qt 5 in quarterly packages (which I expect to change only once per quarter)? Said differently, I wish that all software that depends on Qt 5 should get a Understandable feature request? Realistic? |
No, changes (merges) may occur at any time: |
True.
Reminder: – NB the most recent answer under 382.
AMD64, not 64-bit ARMv8, for helloSystem at this time. |
6 was irrelevant. Please see the two most recent answers under: #384 (comment) (the first of the two) identifies:
|
Looks like there is at least some distant hope for the graphics drivers, as Zirias explained:
So the way I understand it, https://github.com/freebsd/drm-kmod/tree/master/linuxkpi has two directories: "bsd" and "gplv2". All "gplv2" code needs to be converted to "bsd", so that in the end there is no more "gplv2" directory. Then the graphics drivers might have a chance of being built, tested, and released alongside base.txz (again).
|
Point in case why a package manager should never be in the hands of an end user, or else he might end up with a broken system: https://youtu.be/DG7AHQhxBKY?feature=shared&t=640 He is using a helloSystem released years ago, and is now trying to use pkg (via our GUI wrappers, and via the command line), and it ends in a desaster. We should probably remove (This is not FreeBSD specific; a similar but worse thing happened to Linus Tech Tips: https://www.youtube.com/watch?v=0506yDSgU7M) |
Indeed, the latest version (hello-0.9.0_0I67-FreeBSD-14.0-amd64.iso) has
the same issue. I recently reinstalled it and when I install Firefox, it
breaks the system.
I don’t see this issue in GhostBSD. It looks like they have their own repo,
maybe they use poudriere?
…On Tue, Jul 9, 2024 at 12:42 PM probonopd ***@***.***> wrote:
Point in case why a package manager should never be in the hands of an end
user, or else he might end up with a broken system:
https://youtu.be/DG7AHQhxBKY?feature=shared&t=640
He is using a helloSystem released years ago, and is now trying to use pkg
(via our GUI wrappers, and via the command line), and it ends in a desaster.
We should probably remove pkg entirely from the system and only offer
application bundles. Like the classic Mac, macOS, iOS, and Android do.
—
Reply to this email directly, view it on GitHub
<#161 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJUE4S3DPLWRVYRLVNX67LZLQ4J7AVCNFSM6AAAAABKTQA4BCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJYGUYTOOJQGA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Bruce Davidson
|
GhostBSD
True. https://github.com/ghostbsd/ghostbsd-ports
It's normal to have just one repo enabled: for the base operating system and ports.
FreeBSDOfficial packages for base became available last year. There's separation between base and ports – the first two of the four repos in this example:
|
#161 (comment) (2021-09-23) it seems that:
From the same comment:
#161 (comment) last week:
FreeBSD ports collectionhttps://www.freebsd.org/status/report-2024-01-2024-03/#_ports_collection more than thirty thousand ports. https://docs.freebsd.org/en/books/handbook/ports/#ports-using describes using the collection. Less verbosely, with Firefox as an example, at https://www.freshports.org/www/firefox/#add the alternative to command line use of
Things such as In the absence of thousands of ports:
|
While we have been working with FreeBSD packages for a while, it seems like the structure of how packages get built and distributed leaves a few aspects to be deserved. This issue describes our gripes in the hope that someone can help us find solutions.
-RELEASE
the packages should be equally "slow-changing" (not rolling release!), whereas for-CURRENT
rolling release is acceptablequarterly
packages without the fear that from one day to the next a package disappears (it is ok if the old version of the package stays around until a new one is produced, but packages just going missing is not acceptable). In fact, isn't "quarterly" supposed to not change during the quarter? Users who want daily changing packages can uselatest
. This could be achieved by freezing a snapshot oflatest
at the begin of each quarter, and only allow new packages to be added after this point but not to change existing packages except for very urgent security patchesrelease_X
packages (which get frozen at the time when the FreeBSD images are built). But there is no way to get new packages intorelease_X
packages which effectively means that we can get new packages only after a quarter has passed (e.g.,falkon-qtonly
is not available in http://pkg.freebsd.org/FreeBSD:12:amd64/release_2/ but hopefully will be inrelease_3
)pkg
not to touch/overwrite certain files (example: files in/usr/local/share/dbus-1/services/
, details)The text was updated successfully, but these errors were encountered: