On Sun, Feb 14, 2010 at 4:37 PM, Xiaofan Chen <xiaof...@gmail.com> wrote:
> Yeah I think openocd-devel port is the way to go. I do not really
> like the port system very much due to the fact that many
> mirrors are dead. The binaries are also not often updated.
> Many ports are actually quite outdated.

Almost all port has its own binary representative that can be
installed with "pkg_add -r" ot better "portinstall -P" or "portinstall
-PP" utility (-P tries to fetch binary and build the binary otherwise,
-PP will only work on binaries and fail if none if found). If no
binary is found, you can always built the program from sources with
use of Port system - and all the patching and os-specific quirks are
done for you by port  maintaner.

In fact mirrors are not port-system related but package-related - if
package has some mirrors outdated port can provide alternative list of
sources for download. Port tree is centralized and hosted by a FreeBSD
project and it works fine if you can fetch it - if a package has
outdated mirrors, this is a package fault. The other situation is when
port is outdated itself - then maintainer can be informed and asked
for an update, or anyone update the port with maintaner permission.
For the moment when new binaries propagate after a port sources, user
can build the package himself or wait for the binary - like in case of
libftdi, it will take few days. If there is no port available for a
program, anyone can create it and add to the port tree.

I know this may look complicated, especially for Windows or even Linux
user, but this is very clear and logical structure. I call this "raw".
Nothing is done for the user unless the user use tools that automates
some tasks (ie. portinstall, portupgrade). This way the whole system
is consistent, and it really makes life easy especially in a long term
use :-)

In a simple words - if you want the binary of the OpenOCD you can
download it from a remote server, when you want to make your own
specific demands like interface change, you can build the port
yourself. But you dont have to patch the source files, edit them, or
do whatever its needed to build - you just simply go into a port
directory and type make config/install/deinstall/clean. Prepating the
automation is done by a maintainer, only once - when creating a port
(program) release, so noone is forced to patch or search for
dependencies himself later. But nothing more can be archeived than is
specified by a maintainer within in a port Makefile, or the maintainer
must be requested for an update... this way there is only one package
in the system, and it works always the same predictable way for all
users in the system.

> For that ARCH Linux seems to be much better since it
> provides updated binaries and at the same time provides
> the source packages.

Please remember that Gentoo portage and the Arch linux are both
somehow based on a FreeBSD philosophy - my friends use Arch Linux and
once I helped him even to edit /etc/rc.conf :-)
Also for about half a year I have noticed minimum two situations where
upgrading Arch system made it inconsistent or non-working state (and a
lot of uresolved dependencies or conflicts in distros like Fedora)...
this did not happen for me on FreeBSD :-)


> > Well, in FreeBSD you don't build the packages yourself from scratch -
> > this is the reason that Ports exists - to be able to build the package
> > from source with some options enabled/disabled, but the OS specific
> > quirks are done by the maintainer.
>
> I think this is plainly wrong. If FreeBSD needs some quirks, the
> patches should be submitted to the upstream and integrated
> into the main tree.

Now you see - this is the main difference between Linux and the BSD -
Linux is the operating system with its kernel and the upstream is the
kernel source where anyone can add the patches and do some quirks -
this often ends in changing the API and the API, so even the A.B.C.n
kernel can be incompatibile for different "n", and this makes this
system unreliable and its maintenance very hard to accomplish. With
FreeBSD or way different - there is a kernel and the base which is
somehow standarized - user can create whatever he/she likes in the
"/usr/local" area, also port tree resides in /usr/ports as a part of
the system, but the system can work without "/usr/local" and the
"/usr/ports", or even "/usr". What is more - a totally different
system can run the same "/usr" that would be a difficult task for
different Linux distribution. There are no problems in BSD like
"/etc/init.d" versus "/etc/rc.d" or even "/etc/rc.d.blahblah", there
is no problem with the parse of the config files or misleading device
names (ie. linux eth0+eth1 vs bsd nfe0+rl0). Because the "main tree"
here is a Port System, and it is separated from a system core, there
is no "intergrating into a main tree" that could make system
inconsistent, and I like this organization :-)

Best regards! :-)
Tomek Cedro


-- 
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to