Some guys say: "FreeBSD's pkgng: A broken fork of Debian's a

YZMSQ said:
While surfing on the Google to learn more about our pkgng, I encountered this one:
FreeBSD's pkgng: A broken fork of Debian’s apt-get
Is the author telling the truth? Or just yet another anti-BSD thing?:)
Well, having used Debian quite some time myself I think the author is indeed telling the truth, but by doing so also immediately showing his own lack of experience when it comes to both FreeBSD and Debian (no kidding).

From the article it becomes quite clear that the author doesn't fully grasp the aspect of package management. I quote (about package management on Linux): "Package managers install software packages requested by the users by downloading them from a trusted repository then analyze what dependencies are required and then download those dependencies from the same trusted repositories."

Yet this isn't true. The package manager for RedHat (-based) Linux distributions is rpm, this stands for "Redhat Package Manager". However, the rpm command can't download packages from an online repository, it can only handle local packages (install, delete, query, etc.). One small exception: if you supply a protocol in the package name (http, ftp) then it will use that protocol to download that single package. But the moment this package has a dependency then you're out of luck because the installation will then fail. Redhat has solved this problem though, if you need access to software repositories you'd normally use the yum command.

The same story applies to Debian. dpkg is the used package manager here (for both Debian as well as derivative distributions) but it behaves nearly in the same manner as rpm does. If you need access to online repositories and the automatic resolve of dependencies then you need to use APT which provides the apt-get program.

So if we now take a closer look at the FreeBSD package manager (I'm not using pkgng yet but so far still resort to the 'traditional' ways) then you'll notice that its actually quite similar to both rpm and dpkg. If you need to then you can use the -r commandline parameter for the pkg_add() program which will use its remote fetching features. However, there is much more to it than that.

Remember how I mentioned that when using rpm you could specify a protocol after which the package would be automatically downloaded?

Well, with pkg_add() this works even more advanced than that. If I want to install the mysql-server package without compiling then I could use this command: # pkg_add -r mysql51-server and then this would happen:

Code:
root@smtp2:/usr/ports #pkg_add -n -r mysql51-server
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/mysql51-server.tbz... Done.
pkg_add: package 'mysql-server-5.1.66' or its older version already installed
(I used the -n command parameter to make sure that nothing would be changed on my box).

So basically all I needed to do was to supply the -r commandline parameter after which the program automatically knew from where and how it should grab the package I was after.

But there's more. Remember my comment above that both rpm and dpkg could grab a package from a remote location but couldn't satisfy any dependencies themselves? (for that they rely on yum and apt-get respectively).

pkg_add() can, according to its manual page. It'll use the @pkgdep directive to check for package dependencies and (I quote): "If any of these required packages is not currently installed, an attempt is made to find and install it; if the missing package cannot be found or installed, the installation is terminated.".

So basically pkg_add() is taking the whole package management into much more advanced directions than the "Linux package managers" currently support. Where both rpm and dpkg need to resort to external tools the FreeBSD package manager basically provides an "all in one" kind of solution.

Of course in the end its all comparing apples and oranges here. Because if you really need to resort to using pre-compiled packages then maybe FreeBSD simply isn't the right tool for the job at hand. The Ports collection is there for a reason; and one of those is providing full yet easy control over the way your software gets build and set up.

Sure; it takes a little longer to install Apache for the first time. But it also results in an Apache version which is fully tailor made to the way I need to have it setup. For example; getting suexec to have its base directory sitting on /home instead of /var/www/cgi-bin or some other obscure location. The only way to change that on Linux is to... Yups: manually compile the package yourself.

And that's not even mentioning other advantages; like making sure Apache doesn't provide support for things I don't want to have included. For example; on my servers I don't need user directories so support for those haven't been included at all.

Now I know what some people are going to say: "Apache has a modular setup, so you'd only need to make sure it doesn't load the modules.". And that's true. However, if the module simply isn't there in the first place then it also becomes a lot harder to abuse it. Now, I don't think there's much to abuse with mod_userdir but the fact remains that if you don't need it at all its even better not to have it around in the first place.

On FreeBSD I can set this up myself. On Linux you either risk package inconsistency (by removing such a module manually yourself) or.. Here we go again: you simply recompile and re-install the package yourself.

I don't really agree perse that this is a troll blog, though it sure looks like it. But from what I've read so far the author simply shows an incredible lack of experience.

What I personally consider to be extremely funny is that he included Slackware with his examples of Linux distributions which allegedly provides a full fledged package manager. Even though Slackware is often referred to as "A copy of Volkerding's hard drive" by Debian fanboys because they feel it lacks a decent package manager.

Edit: Null-edit & s/setup/set\ up/
 
A fork of something means that a new work is started using an existing code base as the starting point. With PKGNG this is not the case because it has been written completely from scratch. Therefore PKGNG is not a fork of anything.

PKGNG tools implement many of the functionalities of dpkg and apt in roughly the same way but that's only because they are so standard now that everyone expects them to be there.
 
I think the author is indeed telling the truth, but by doing so also immediately showing his own lack of experience
I've been seeing a few threads elsewhere just like that. On Reddit, a couple of days ago, one guy was upvoted 10 times on his complaint that you had to compile everything from ports and it took days to do so. When I questioned why he didn't use packages, he said he just found out about it even though he also claims he'd been using FreeBSD since version 2.1.
 
zspider said:
What happened?
It's just a theory, but maybe he finally discovered the true potential of FreeBSD. So now we can probably soon expect something like antilinux.wordpress.com (which would be just as stupid in my opinion).

Ha, that blog actually exists, seems to be dedicated to something completely different though (and it's not Monty Python).
 
swa said:
Maybe he found out wordpress.com might also be running FreeBSD, or might be doing someday :e

The realization may have overwhelmed him, causing him to have a heart attack. His next of kin had the site shut down.:)
 
drhowarddrfine said:
I've been seeing a few threads elsewhere just like that. On Reddit, a couple of days ago, one guy was upvoted 10 times on his complaint that you had to compile everything from ports and it took days to do so. When I questioned why he didn't use packages, he said he just found out about it even though he also claims he'd been using FreeBSD since version 2.1.

Some people just don't RTFM and blame their deficiencies on anything but themselves.

That said, I do think packages should be promoted/supported a bit more by the BSD project, as not everybody wants to deal with a compiler, allocate a dedicated build machine, or install a C compiler toolchain on their production gear.
 
IMO much of the criticism towards the old pkg_* tools and the packages has been well founded, who wants to spend their time fixing a broken dependency tree every time you do something out of the ordinary with the packages. Luckily we have PKGNG now that will solve many of the biggest problems of the old package format.
 
kpa said:
IMO much of the criticism towards the old pkg_* tools and the packages has been well founded, who wants to spend their time fixing a broken dependency tree every time you do something out of the ordinary with the packages.
Could you be a little more specific here? For example, what kind of actions are you referring to here?

Because well, so far I have ran into something weird myself one time where 2 versions of the same package got installed, but I can't help wonder if the package manager is really to blame there. Because in the end its your installation tools and such which use the package manager. And a package manager can always be overruled and enforced to do something. In my case it was me using an obsoleted tool.

Considering how pkg_info provides features which allow you to check the dependencies of a package in both "directions" (regular dependencies, but also which packages depend on the one you're querying) I can't help wonder if it's really the package manager or the stuff around it.

But. Keep in mind that at the time of writing I'm only 3 weeks into FreeBSD, even though I have worked with the Solaris package manager for years, and even there never really came across something extremely nasty.
 
The dependency information is stored at /var/db/pkg/pkgname/* as regular files and you can imagine how fragile such a database can be. No, there are not any kind of internal consistency checks implemented by the pkg_* tools, when something goes wrong you fix the errors with a text editor.

Tools like ports-mgmt/portmaster were in part developed to help with these problems and they do an admirable job but even then they can't fix the lack of a proper database like the SQLite database PKGNG now uses.

As an example of an operation that may corrupt your package database, try to replace a port like print/ghostscript9 with the non-X11 version print/ghostscript9-nox11 so that every port that depended on print/ghostscript9 would after the replacement depend on the newly installed print/ghostscript9-nox11.
 
kpa said:
The dependency information is stored at /var/db/pkg/pkgname/* as regular files and you can imagine how fragile such a database can be.
Thanks a lot for your comment, because this was indeed new to me. Indeed, I can well imagine how this could be an recipe for disaster. And that's not mentioning performance (even though that's most likely neglectable).

But yeah, looking a bit deeper into /var/db shows me that a lot of programs seem to be using this approach as well. I can understand where it comes from, but nowadays you'd really want some kind of database layer inserted for several reasons.

kpa said:
No, there are not any kind of internal consistency checks implemented by the pkg_* tools, when something goes wrong you fix the errors with a text editor.

Tools like ports-mgmt/portmaster were in part developed to help with these problems and they do an admirable job but even then they can't fix the lack of a proper database like the SQLite database PKGNG now uses.
Indeed. Yeah, this sheds a whole new light on the pkgng conversion for me, it sure makes it a lot more appealing to me, that's for sure.
 
throAU said:
That said, I do think packages should be promoted/supported a bit more by the BSD project, as not everybody wants to deal with a compiler, allocate a dedicated build machine, or install a C compiler toolchain on their production gear.

Maybe, we the users should set up a repository. PC-BSD now has a large pkgng package repository. It is fully compatible with FreeBSD 9.1. I think it might be missing a few packages. I don't think I found epdfwiew in there. But, for most using one of the other viewer should be fine. The downfall is looking for a package via search filter. I used to use bxpkg for searching, but never installing. Obviously it is not compatible with the pkgng database. I have had a little luck with sqliteman. However, google ends up being less cumbersome.
 
It appears the anti-bsd guy is scratching for a bit more credibility by renaming his site, [ troll link removed ]
 
It's pretty obvious this guy was somehow involved with FreeBSD and didn't fit in or was given the boot and he thinks he'll get revenge by writing all that. The reality is most people are thankfully unaware and couldn't care less. It is only he who sits in his own sweat and labors for no one but himself.
 
rusty said:
It appears the anti-bsd guy is scratching for a bit more credibility by renaming his site, [ troll link removed ]
I'd know that writing style anywhere! I believe our "friend" is Stallman himself! :)
 
rusty said:
It appears the anti-bsd guy is scratching for a bit more credibility by renaming his site, [ troll link removed ]

He returned from beyond the grave. Great.:\
 
With the amount of spelling and grammar errors, and the apparent inability to detect autocorrect mishaps, who would take any of this seriously?
 
DutchDaemon said:
With the amount of spelling and grammar errors, and the apparent inability to detect autocorrect mishaps, who would take any of this seriously?

Guess I'm in trouble too. :)
 
I have just read the author's blog. And, I now know that I'll never have to worry about looking that stupid, due to typos and misspellings.
 
KNOStic said:
I'd know that writing style anywhere! I believe our "friend" is Stallman himself! :)
Very unlikely. Although I often don't quite agree with Stallman (especially when it concerns opinions regarding Windows) one can't accuse him of contradicting his own statements or being plain out abusive (in an incoherent way). At least to my knowledge, I don't follow everything he does mind you.

But this blog is completely different. It even twists words and deliberately tries to apply different meanings to specific aspects. In a way I think some posts border plain out slander.

Take for example this blog post ("BSD and Stallman's Four Freedoms"), ironically enough I found it because of your comment ;-)

He quotes the BSD license, specifically this part: "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:".

Then he goes on to conclude the following: "The parts that are bolded shows that the licenses allows distribution without making the source code available which allows the distributor to add nasty DRMs to the software which in turn may prevent the users from using the software for certain things and it still can be licensed under the FreeBSD license.".

Of course hereby ignoring that the whole sentence is "...in source and binary forms" making it very clear that one can't go without the other. For anyone who actually understands legal talk that is, but considering that his whole post concerns policies one would assume that he does too. Once again his post shows the opposite.

I consider my point proven, because if the BSD license wouldn't enforce sharing of the source code then the license as a whole wouldn't have been compliant with the open source definition ("OSD") and as such wouldn't have been recognized as an "official" open source license.

EDIT:
I've been informed by @wblock@ that the license actually does allow for binaries to be distributed without the source code being present. So in that aspect it seems I stand corrected. I think there might be room for discussion but even so, that's a completely different subject while we we're talking about the troll blog. Let's not derail the thread.
/EDIT

Even if you keep in mind that my opinion is biased because I favour a BSD operating system for my Internet servers, one cannot ignore that there have been much more people involved when it comes to "O.S.D. acceptance".

And this is but one example...

In my opinion this blog is better ignored.

Negative opinions more than often provide very valuable comments but they must remain reasonable. And that is something this blog completely fails to do, in my opinion of course.
 
Last edited by a moderator:
DutchDaemon said:
With the amount of spelling and grammar errors, and the apparent inability to detect autocorrect mishaps, who would take any of this seriously?
Careful with that, because such comments can also be easily twisted around, and I can come up with something quite easily: "this only shows that his opinion is totally free of censorship".

When it comes to cheap shots like the ones this blog author takes the last thing you should do is focus on the way it looks, because then you're doing almost the same as he does: diverting the attention from that which really matters. In my opinion that only leads to a downwards spiral which eventually ends in one of those well known "flamefests".

Best is to either address its contents seriously, so stand above the level he's on, or even better: ignore the whole thing in its entirety.

Just my opinion here of course.
 
Back
Top