Minimal skills

Polytropon freebsd at
Thu Jun 4 06:23:09 UTC 2020

On Wed, 3 Jun 2020 23:56:37 -0600, Brandon helsley wrote:
> Thank you, I'm minimally familiar with the port files but I know
> where and what they are, so I think it would be a great starting
> point.

I think so, too. The handbook sections about updating and using
the ports collection is a real treasure trove.

> So is this kind of contribution limited to submitting patches or
> is there some kind of other persistent communication with the
> "upstream", whatever that means.

Depends on the project / port. I would probably check the docs
that come with the port and see how they ("upstream" - those
who write and maintain the initial program) would like the
contributors to communicate. For FreeBSD (as the OS), patches
are the easiest way of adding something new; they can be
submitted with a bug report and request for inclusion.

> Could you tell me what this tool "diff" is.

A diff (the tool, the process, and its result) means "difference".
For example, if you find a manpage where the explanation for a
certain option is missing, you take the original file, make a
working copy of it, change that working copy, and create a file
that contains the difference (i. e., the diff, also often
called the patch) between the original and the updated version.
This diff can then be sent to the FreeBSD team, and they will
apply it; the next issue of FreeBSD will then contain the
updated manpage instead of the original one.

See "man diff" and "man patch" for details.

Persons who have proven to be trusted contributors will get
direct access to the source code repository: they can check in
their changes by themselves.

Here is a simplified outline of the process:

	# cd /usr/src/bin/ls
	# cp ls.1 ls.1.orig
	# vim ls.1
		... you make your changes ...
	# diff ls.1 ls.1.orig > ls.1.diff

Now ls.1.diff is what will be submitted. On the FreeBSD team's
side, something like this happens:

	# cd /usr/src/bin/ls
	# patch < ls.1.diff
	# svn commit

Yes, this is actually _very_ simplified. :-)

> I' bet I'll have to learn it myself but if you could give me
> an overview and familiarize me that would be great too.

You will definitely have to learn the required tools, but in
my opinion, that's worth doing it, and documentation contributors
are one of the most important people in a project. Never
undervalue good documentation.

> Right now I already have dedicated a PC to FreeBSD. I'm quite
> intimidated by the editing of configuration files but have
> managed to install and configure fluxbox and other simple
> GUI's.

That is an excellent starting point. So more or less, you
already have the foundation for further work. You can refine
such an environment by choosing what window manager or desktop
environment fits your needs best, what programs (web browsers,
editors, PDF viewers and so on) you like best, and tailor the
installation for optimal use.

> I'm currently working on making it a mail server but am stuck
> for now.

Why do you want to make a PC (I assume it is intended to be
used as a workstation) a mail _server_? Not that this is
impossible - don't get me wrong! -, but what is the reason?
I would even say it's probably better to install a MUA (a
mail user agent, an "email program", a mailer) so you can
use it to conveniently (!) read and write mails. There are
many GUI MUAs that you can use, or if you prefer, you can
use a TUI (text-mode based) mailer in an X terminal, if 
that is your choice. But there's absolutely nothing wrong
with installing and using Thunderbird, the de-facto standard
mailer nowadays.

> Other than simple configurations like firewalls or jails or
> virtualbox I find FreeBSD difficult too learn.

Everything worth learning might look hard at the beginning.
But always remember: If you feel learning is hard, that's just
a sign that your brain is _actually_ learning, i. e., it does
what you want it to do. The brain likes learning.

> I'll work on understanding port files and sources as my next step.

The Porter's Handbook provides a great overview. You can see
it in action with your installed ports tree. You should also
understand the purpose and basic use of Subversion (svn), as
version control is a significant aspect of working both with
the ports collection and the system sources, if you want to
do more than just using it to install stuff.

The answers to questions like "What do I have to do?" mostly
depend on _you_ answering the question "What do you want to
do?" ;-)

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list