Call for Foundation-supported Project Ideas

… Don't let the door hit you on your way out.

Please, let's all show the kinder side of our nature.

Publicly dismissing people gets us no closer to technical discussion.

… not well documented:
  • how to get Internet access for jails, …

Yeah, there's a confusing mishmash of scattered information.

Defocusing from networking: this morning I made some minor improvements to <https://wiki.freebsd.org/Jails>, but still, it's categorically stale.
 
Unfortunately, there is no such thing as 100% security.
hbsd No body wrote such a thing.


drhowarddrfine
You list too many items this early in the morning. We tire of these repetitive lists posted by the occasional new user ad nauseam.
You can ignore me. For information, I joined the forum 13 years ago. Occasional user? Maybe, but what makes me a new user?
You can find one of anything if you search long enough. In the meantime, pkg works great for the rest of us and I use it every day.

Can you define what is “the rest of us”? What are your proofs? So those who suffers from slow mirrors have no say?

Beastie was first created in the 1970s and updated in the 1980s. That it is old and not to your liking is personal preference and has no meaning to the majority who find him entertaining. Your statement is no reason to change it.

What are your proofs? Did the FreeBSD Foundation ever made a survey? Does the Foundation have any information to share on this subject?

Thanks God, there are users that are open-minded here. Unfortunately, I can see that some of you are trapped in an “ideological” frame that keep you in a state of intellectual isolation. You only produce an echo chamber effect leading you to mental rigidity.

There is a call for ideas, and I found nothing preventing me to write down some of my thoughts. Maybe some of you share my ideas, other not, and it is perfectly fine, but know that there is a world outside your own world conception.

grahamperrin I just ignore this kind of troll.

kpedersen, maybe one day if I have time.

Anyway, these off topics are useless. As far as I'm concerned, the subject is closed.
 
… Maybe some of you share my ideas, other not, and it is perfectly fine, but know that there is a world outside your own world conception. …

👍

… As far as I'm concerned, the subject is closed.

It'll be smart to have a little more follow-up on some of your points, but there's no rush.

In the meantime, recently updated:

FreeBSD Google Summer of Code Ideas

… what makes me a new user? …

I once made the mistake of blindly trusting the New Member statement that's automatically generated by XenForo. Context, including a date, appears when pointing at a person's name or avatar:

1645981251417.png


There's probably discussion of the statement at <https://xenforo.com/community/>.
 
Better HID driver support
Better workstation experience
LibreOffice
Eclipse and other IDE
I remain of the (unpopular) opinion that GUI/DE use of FreeBSD is less important than the base system (CLI, server). If there isn't enough money and manpower for both, we need to focus on the latter.

Make INIT(8) faster
I insist, I write here MAKE INIT(8) FASTER (through parallelism?), not replace it.
On modern SSD-based machines, does it really matter? Can this be done without a major (incompatible) redesign of how services get controlled? Before we commit to this, let's measure how much we could save. And come up with a good design; parallelism is hard.

(Pkg) Provide a better mirror management
(behind a vpn, I can download faster with an US mirror than the EU one)
It seems to me that the root cause here is your VPN being configured strange. Let's fix that first, before throwing the baby out with the bathwater.

Add pkg new options: search -file
That seems like a good idea.

-no-recommended
Better “decoupling policy” in ports and packages
Part of the problem is that the user (you!) need to understand the difference between packages and meta-packages. The latter are intended to install a lot of stuff at once.
Another part of the problem is that package maintenance is done by volunteers, who may have different styles. Training and guidance might help here. As would ignoring problems in DE/GUI packages.

Try to get more “languages supported”
I18n and a11y take a massive amount of effort. Nearly all of it is used for GUI/DE efforts. This is in the "nice to have, but not vital" category.

Provide us unprivileged jail
What is the purpose of a jail? Privilege separation mostly. If you have just one non-privileged user, why would one want to do privilege separation? Please explain a clear use case for this.

Orchestration tools
The goal of these tools (whether it's docker, kubernetes, containers or lxd) is to make installation of complex software packages easy, by bundling prerequisites with the package. To some extent, they are a work-around for the balkanization of Linux distributions. To some extent, they are a work-around for continuous integration workflows, where you want to package a snapshot of the state of prerequisite libraries. None of these problems exist in FreeBSD, which has only one distribution, and uses a release workflow.

If your idea is to create ways to run existing Linux containerized packages on FreeBSD: Why? There is a perfectly good OS available to run them on (namely Linux).

Better documentation and Wiki
Where the handbook is outdated or incomplete, let's get it updated. It is an excellent form of documentation.

Host some ports inside FreeBSD
I agree that some packages are so commonly needed, and when needed so vital, that they need to be really well maintained. Examples include python, perl, apache, some databases (MySQL, BerkeleyDB, SQlite). But I have not seen problems with the maintenance of these crucial packages.

I consider Firefox mostly irrelevant. It is not a core function of an operating system.

The Power to Server", a failure?
I can summarize all your writing in this section as: FreeBSD has a very low market share. I don't see that as a problem. It is a very good operating system. It had a low market share 15 and 20 years ago, and hasn't died yet. A rush to popularity would be suicidal.
 
Well, I found on the forum at least one topic about pkg being too slow… Maybe you are in some area where pkg works fine, but seems not being the case for everyone.
If you actually pay attention to the topics and finish reading them - you will discover solutions. You kind of have to make it clear that you're making an offhand observation, otherwise it's hard to take you seriously.
Edit:
It's probably just me being anal, but spelling mistakes do drive me nuts. It's "power to serve", not "power to server". Just take a look at the very top of this page, where I took this snip:
1645985617897.png


I guess I'm like a compiler, where typos mean I refuse to compile the whole thing.
Edit 2: For updating the Beastie - Just look for FreeBSD -themed wallpapers. I can also point to someone on these forums who has undeniable skill with Gimp, and a sense for what makes good art - Trihex - he's the one who created quite a few cool-looking wallpapers. 😑
 
kpedersen, maybe one day if I have time.
That is fair and is pretty much the answer I was kind of baiting for. Basically the old designs and stuff from the 70's (not quite the 30's!) is "good enough". There is no point re-implementing it when there are plenty of new interesting problems to solve.

I think it is fair to say that no-one has time for that.
 
… find out which package …

ports-mgmt/pkg-provides

An example:

Code:
% pkg provides bin/sndio
Name    : sndio-1.8.1
Desc    : Small audio and MIDI framework from the OpenBSD project
Repo    : FreeBSD
Filename: usr/local/bin/sndiod
          usr/local/bin/sndioctl
% uname -KU
1400053 1400053
% pkg -vv | grep -e url -e enabled
    url             : "http://pkg0.bme.freebsd.org/FreeBSD:14:amd64/latest",
    enabled         : yes,
    url             : "https://alpha.pkgbase.live/current/FreeBSD:14:amd64/latest",
    enabled         : no,
    url             : "file:///usr/local/poudriere/data/packages/main-default",
    enabled         : yes,
%

… parallelism?), …

Code:
% sysrc rc_parallel_start ; uname -KU
rc_parallel_start: YES
1400053 1400053
%

I think of it as dormant.


… INIT(8) make any system start/reboot very slow. …


… mascot …

It's no longer seen unless the user requires it. I don't require it. From my loader.conf(5):

Code:
# <https://gist.github.com/priyadarshan/7e1a69f019150a0c9dbc3b881f584c18#file-freebsd_11_notebook_install-txt-L76-L77>
# loader_logo="beastie"
 
That is fair and is pretty much the answer I was kind of baiting for. Basically the old designs and stuff from the 70's (not quite the 30's!) is "good enough". There is no point re-implementing it when there are plenty of new interesting problems to solve.

I think it is fair to say that no-one has time for that.
Hey, right now, we're going into 20's anyway (Modern version of Roaring 20's :p ), 30's are not that far away, either. There are fans of old-school art out there, y'know. ;)
 
… some users experience some lags with their desktop computer, even with a descent machine.

Yeah, I read that a few days ago, but didn't follow up 'cause (a) troubleshooting there is off-topic (the poll ended, with a good number of voters); and moreover, (b), "I use FVWM2" is not nearly enough to form the basis of an investigation.

Maybe, somebody should really investigate on the causes of these issues.

Certain, people do investigate. There's plenty of evidence of this.

Where there's no knowledge of hardware, the version of FreeBSD is not known, and so on: expect investigation to be slow, or nonexistent ;-)

… FreeBSD is lagging even in server field. …

<https://forums.freebsd.org/profile-posts/3729/> – don't shoot the messenger 🌻
 
Provide us unprivileged jail

For now, we have to be root or in wheel group (via sudo) to create and to start a jail. Please provide us a way to do the same thing as unprivileged user. jailme allows to start a jail as unprivileged user, but not to create jail, like lxc-create.




Also: <https://cgit.freebsd.org/src/commit/?id=a40cf4175c90142442d0c6515f6c83956336699b>

Implement unprivileged chroot
 
Hopefully, impact on energy consumption does not turn this idea too much into a political one.

I started using FreeBSD mainly as server OS in 2007 (v7.x), now all my system are on 13. That time we were using GCC 4.2.1 which was replaced by Clang in FreeBSD 10. Ever since we happily built the kernel, world and the software from the ports with -O2 optimization.

I myself started programming on DOS and Macs in 1984, later MacOS X, Windows and finally FreeBSD in C, C++ and Objective-C. I always built and still do build my software, which all over the decades amounts to a few hundred thousand of lines, using the -O3 optimization for the Release builds and -O0 for the Debug builds. With one exception, I did not experience a singe issue, I mean difference in execution results between -O3 and -O0. The difference was a bug in the C++ compiler of MPW (Macintosh Programmer’s Workshop), and this became quickly fixed, after I submitted a bug report. Anyway this is ages ago, and no one does even remember MPW anymore, does one?

Talking about clang, The performance difference between -O0 and -O3 is upto 50 % and between -O2 and -O3 about 10 %. When compiling on Core iX processors we can get another boost by -O3 together with -march=native of in total 25 % compared to -O2.

All that said, I think it would be time to switch at least building the kernel and world from -O2 to -O3.

Considerable amounts of FreeBSD servers are running 24/7 all over the world, and I can imagine that the drop of energy consumption by going from -O2 to -O3 may perhaps not be of an earth shaking quantity but yet a significant one. Think about how the savings are doubled by reducing the cooling necessities.
Doing this in general for the ports as well, may have a negative effect, since -O3 built times would be higher and hence increase the energy consumption. Perhaps this would be useful for daemons (Apache, nginx, etc) and build & runtime environments (llvm/clang, python, openjdk, php, etc.), but not for utilities which are running for short period of times once in a while.

A suggestion, like everybody can do this as they like falls short the purpose, i.e. general energy saving of some significant amount. The impact would be of some significance if everybody would receive the prebuilt -O3 kernel & world compared to a few dozens of people building their k&w with -O3 by themselves.

PS: This could be a first step of a bigger optimization project. Think about LTO.
 
If it's better, it doesn't have to be about that particular reason. It should be better, when it can be. A lot of good comes out of things being better. I know these sound like empty words, but there's sometimes resistance to things being made better. A kernel's better use of energy has benefits that help with a better computer system, maybe slightly faster, and personal energy savings. Compiling times maybe, but how often is it compiled in a month? Anyone who criticizes it to be political, is making up excuses to be political and to perhaps have phony outrage.

Aside from that, if the kernel can be optimized to -O3 by default, the code has to be made consistently better so there won't be inherent crashes and vulnerabilities to crashing. That works. Maybe for the base system, it could also be done.

Airplane manufacturers and engine manufactures go for increases of 1%. Which would too extreme for these purposes, except reasons for testing, though they want competitive savings. Solar panel manufacturers also go for small increases, perhaps not for mass manufacturing, but for purposes of those small percentages tallying up over time to a significant percentage which then can be for manufacturing purposes.
Doing this in general for the ports as well, may have a negative effect, since -O3 built times would be higher and hence increase the energy consumption.
For ports, it would cause more problems than it solves. Much wouldn't be compiled, and it would take up too much time in both compiling and in effort that would never get achieved.
 
[...]
The difference was a bug in the C++ compiler of MPW (Macintosh Programmer’s Workshop), and this became quickly fixed, after I submitted a bug report. Anyway this is ages ago, and no one does even remember MPW anymore, does one?

Me, I was Think C then Codewarrior. Think C had a great IDE, much like Turbo C's suited DOS real well.

All that said, I think it would be time to switch at least building the kernel and world from -O2 to -O3.

I'm willing to bet there would be too many "optimized out" messages to make debugging anything but useless.
 
In no particular order:

- Ability to delete files from a tar file. Yes I know, GNU tar. I still prefer native tools.
- Ability for IPFW to keep state on related icmp packets, not just the connection itself.
- Clean up spilled messes in the base system (like local unbound since it's already in the ports)
- Make mergemaster compatible with Git so those of us who've used it over the last few decades can continue using it
 
- Ability to delete files from a tar file. Yes I know, GNU tar. I still prefer native tools.
Is there a common use case for this? It's certainly possible to implement (more on that below), but is it needed often enough?

Also, this is actually quite limited and inefficient. The way it has to be implemented is: seek to the point where the deleted file is stored (which requires reading the header for each file, since tar files don't contain a manifest, so lots of strided reads), then copy the remainder of the tar file over itself to re-use the space freed by the deleted file. For this reason it can only work if the tar file is stored uncompressed, and on a modifiable format (like in a file on disk); it doesn't work in a pipe or on tape. Efficiency: if you get unlucky and the deleted file is near the beginning, you'll read and write most of the tar file. It's still slightly better than manually extracting everything, deleting one file, and re-archiving, but not by much.

I even wonder whether the GNU implementation is safe against interruptions, because it needs to overwrite a file in place. Assuming an example implementation, I can easily construct a scenario where a badly placed Control C leaves the tar file permanently damaged. Someone should read the source code to check. Implementing this in a transactional fashion (safe against interrupts) is hard enough, I could use it as an interview problem for hiring computer scientists.
 
Is there a common use case for this? It's certainly possible to implement (more on that below), but is it needed often enough?

I create a lot of archives and frequently change what is in them. Like you said though, it's probably not needed often enough by users, so definitely should not be a priority. I have no problem recreating the files.
 
I'm not a mod, but even I can see that the last few replies are already a totally different conversation than the original topic of the thread. The only connection is that we seem to have latched onto somebody's wish list and used that as a conversation starter...

I have to admit, it is some effort to do it properly:
  1. Starting a new thread,
  2. linking to the original post in another thread,
  3. Typing out a coherent explanation that encourages conversation.
It's much easer to pretend that you're standing in line for beer, and make comments to pass the time. :beer:
 
Back
Top