Quote:
Originally Posted by bmarley83
Hi, this sounds very interesting! Could you elaborate on this specifically and some steps I might take to accomplish such a task. Just for fun of coarse
|
It depends on what you wish to run. Some of this is an exercise to see which projects are of the "old guard," i.e., those that want open source to run in as many places as possible. So it kinda goes like this:
Start with your `make world` steps and get everything set up decently. Back it up. Leave the built source code there, in case you have to replace a program here or there.
Some programs will build from a base FreeBSD system. ntpd, smartmontools, and a few others will build from the base, and I think smartmontools might even provide an rc script. Nice! Give those programs bonus points and keep them close to heart for the extra effort!
Many programs want something GNU in there. Some configure scripts will ask for gettext, some will ask for GNU libiconv, libunistring, libsigsegv, so while building up the GNU stuff, get to them early to keep from rebuilding them later. For programs that overwrite BSD stuff, think about installing them elsewhere (--prefix=/somewhere-else) or with an added prefix (--program-prefix=g, for instance, to change sed to gsed). Get bash in there fairly quickly as well.
If you want the normal Slackware pkgtools in there, the scripts might take some work and modification. If nothing else, they refuse to work correctly with anything other than GNU ls.
Otherwise, the bottom part of the system is a judicious use of variables to see what is what. You might have to do set MAKE to "gmake" for many projects but not some others. BSD's M4 and awk implementations hold up fairly well, but there's something about GNU sed's behavior that can make a big difference when compiling GNU projects.
Also, I'm also looking to see what Clang will and will not build. It gets better with each release. That adds to the fun, even if it means failing and rebuilding using gcc sometimes. I'm doing that on Slackware right now. Cool stuff.
Along the way, you might adjust your make.conf or src.conf files (forget which) and have `make world` not build replaced items next time.
Last time I tried it (9.1), it's clear that the build process isn't being checked with a fresh gcc out of ports. Should you be curious as to how well a new gcc does on the base system, get ready to adjust some Makefiles and fix some code. gcc's diagnostics have improved quite a bit since 4.2.
Other pitfalls...some projects (like RPM) have something for FreeBSD, but it's like FreeBSD 4 or 5, and it causes more harm than good when getting it going. It was straight-up evil to build Mesa as well. Also, if you install the wrong things to /usr, mixed-up include files will make life harder, should you need to rebuild the world. I think that flex or bison burned me fairly well some years ago.
In other words, it's all good fun! It's educating and entertaining, and it will give you a great perspective on how each part of the open-source community is doing. It will also give you a refreshed appreciation for those who put ports and packages together and get things to work on alien systems.