Unless you pass compile options, edit the Makefile or use a slightly newer version of ports you will compile exactly the same binary that you can download. The advantage of the precompiled binaries is that the developers tweak the ports until everything compiles and then upload the packages to the ftp servers. I suspect your version of ports has some issue that the OBSD maintainers will fix in a couple of days to a week. If you can sort out the compile problems the maintainers would not mind it if you submitted the compile logs that define the error and they would also appreciate knowing if and how you fixed the problem.

What you posted does not have enough information for anyone to help you unless they took time out of their day and installed current and began to compile the same ports using the same ports code.

My main suggestion would be for you to use the current binary packages to try new software. If you want to learn about compiling software and specifically compiling OpenBSD ports there is a section in the FAQ that would be worth reading

thanks for your reply Shep !
I am fully aware that prebuild packages are safer .. but going current has always been a tempting experience to me as a newb ..
I'd be thankful is you could paraphrase your helpful reply into examples :
practically How can I :
* edit a makefile ?
* submit a compile log ?
a how-to example would help much ..
I downloaded the latest snapshots and stricly did a {make install clean} for all ports ..
I am currently on 5.0 stable disk ..
tomorrow I'm changing disks and putting the error logs here ..
I remember all errors were related to gmake and gettext as both couldn't compile ..

There is no difference between a package you build from the ports tree and a pre-built package you obtain from your nearby mirror. They will have been built with the same toolchain on the same architecture.

Snapshot packages are built from time to time for the convenience of -current users. Because these will not always be in sync, -current users are expected to be able to resolve sync issues themselves.

------

We don't know enough about your problem to give you any specific "how to" help. You should realize, through careful reading of FAQ 15 (and especially FAQ 15.4.1) that dependent libraries must be kept in sync. Changes in /usr/lib and changes in /usr/local/lib for dependent ports WILL require rebuilding of the port of interest or ports from its dependency chain, from time to time.

It is your responsibility, if you wish to be a -current user to learn how to properly build ports. Along with careful reading of FAQ 15, ports(7), and bsd.port.mk(5), you will find the logging of console output very helpful to determine the root cause of any build failure. You will find the script(1) command helpful, along with the col(1) command's -b option.

@daemonfowl, since you are attempting to build the entire ports tree, along with whatever errors you might be having now .... you will have conflicts between installed packages and packages you are trying to build and install. There are any number of packages that intentionally have conflicts, and install files with the exact same file names -- and pkg_add(8) will not install where there are conflicts. As an example I'm familiar with, you cannot have both x11/xfce4/notification-daemon-xfce and x11/xfce4/xfce4-notifyd installed at the same time. You will find you cannot have two flavors of the same package installed at the same time, yet both might be needed as dependencies for different ports downstream.

This means that your attempt to "make install clean" from the ports top level directory will never succeed.

Now that I've provided you with some additional information -- can you determine, on your own, what make target you should use in order to bulk build the entire tree? And, are there any environment variables that might also be helpful to you?
I am attempting to teach you how to fish, rather than placing a plate of seafood in front of you.

Thanks Jgimmi ! Thanks Rocket357 !
I appreciate the help ..
before going on , I need to tell you that I didn't move from an installed stable OpenBSD to current .. but downloaded an OpenBSD.5.1 snapshot iso , installed it , and started compiling ports ..
well , I'll apply what you suggested and see ..

Hi Ocicat ! thanks for reminding ..
I did not mix ports , I downloaded and used ports from snapshots directory ..
luckily I installed links as dillo.firefox and opera could not compile ..
I tried Rocket365's suggestion which resulted in a successful update of some packages but ended up in this error message :
Error : Libraries in packing-lists in the ports tree and libraries from installed packages don't match

is there a way to copy the whole message from xterm to links page on here ?

is there a way to copy the whole message from xterm to links page on here ?

Here's a step-by-step "How to":

Use script(1), which I mentioned above. Run your build.

Exit script and filter the typescript output with col(1), which I mentioned above, to produce a readable and editable log.

Edit the log with your favorite $EDITOR. Show what working directory you were in and your make command. Be sure to show your applicable environment variables from mk.conf or from your shell if not used inline on your make command. Show only the first fatal error and its messages which appears in the log. You may delete what comes before and what comes after.

Builds produce lots and lots of output. We're interested in which port *first* failed to build, so your edited log should show which port was building. We are interested in the fatal error, which shows why it failed to build. And we are uninterested in anything after that, which may go on for hundreds of lines of output, depending on the depth of the dependency chain the build was in at the time of the first failure.

Last edited by jggimi; 1st February 2012 at 08:49 PM.
Reason: comments after step 3 added

Thank you for that excerpt, @daemonfowl. I believe this particular problem is a bad WORKOBJDIR structure for gmake. The fake target, used for package building, is shown as complete. But the directory structure containing the fake install is missing or damaged.

I assume that there was an earlier problem that went unnoticed and uncorrected by you.

Thanks Man ! I must admit I still can't successfully use col for the task .. so I just extend the xterm screen on fvwm andd select eveything -in two halves- then vi output and paste to output then copy all with y D and shift insert on

Hi Jgimmy , the apology is mine and I posted a chunk .. and I thank you for bearing my newb-woes and Qs ..
so how about this :

Code:

$ cd /usr/ports/devel/gmake
$ sudo make install
===> Looking for gmake-3.82.tgz in $PKG_PATH - not found
*** Error code 1
Stop in /usr/ports/devel/gmake (line 1663 of /usr/ports/infrastructure/mk/bsd.port.mk).
`/usr/ports/pobj/gmake-3.82/fake-i386/.fake_done' is up to date.
===> Building package for gmake-3.82
Create /usr/ports/packages/i386/all/gmake-3.82.tgz
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/be/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/da/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/de/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/es/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/fi/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/fr/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/ga/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/gl/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/he/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/hr/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/id/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/it/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/ja/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/ko/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/lt/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/nl/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/pl/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/pt_BR/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/ru/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/sv/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/tr/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/uk/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/vi/LC_MESSAGES/make.mo does not exist
Error: /usr/ports/pobj/gmake-3.82/fake-i386/usr/local/share/locale/zh_CN/LC_MESSAGES/make.mo does not exist
Fatal error: can't continue
at /usr/libdata/perl5/OpenBSD/PkgCreate.pm line 1248
*** Error code 1
Stop in /usr/ports/devel/gmake (line 1671 of /usr/ports/infrastructure/mk/bsd.port.mk).
*** Error code 1
Stop in /usr/ports/devel/gmake (line 1671 of /usr/ports/infrastructure/mk/bsd.port.mk).
*** Error code 1
Stop in /usr/ports/devel/gmake (line 2214 of /usr/ports/infrastructure/mk/bsd.port.mk).
*** Error code 1
Stop in /usr/ports/devel/gmake (line 1689 of /usr/ports/infrastructure/mk/bsd.port.mk).
*** Error code 1
Stop in /usr/ports/devel/gmake (line 2197 of /usr/ports/infrastructure/mk/bsd.port.mk).
$

This log does not show a "make clean" as I had recommended.
The "make clean install" I had recommended executes a "make clean" before it executes a "make install".

If you did not clean the WORKOBJDIR, you will continue to have errors. I think you need to do more reading, and more studying, and become comfortable with building individual ports and their dependencies before you attempt to build more than seven thousand ports at once. You need to learn to take steps before you run a marathon.

The "make clean install" I had recommended executes a "make clean" before it executes a "make install".

---

You are attempting to build gmake, which gets built very early in any bulk build sequence, since so many ports are built with the Gnu toolchain. How many packages did you build and successfully install, so far? 10? 20? 45? If 45, you have only 7300 more builds to go.

FAQ 15.1, Introduction says:

Quote:

IMPORTANT NOTE: The ports tree is meant for advanced users. Everyone is encouraged to use the pre-compiled binary packages. Do NOT ask beginner questions on the mailing lists like "How can I get the ports tree working?". If you have questions about the ports tree, it is assumed that you have read the manual pages and this FAQ, and that you are able to work with it....

FAQ 15.4.6, Packages or Ports, says:

Quote:

In general, you are highly advised to use packages over building an application from ports. The OpenBSD ports team considers packages to be the goal of their porting work, not the ports themselves.

Building a complex application from source is not trivial. Not only must the application be compiled, but the tools used to build it must be built as well. Unfortunately, OpenBSD, the tools, and the application are all evolving, and often, getting all the pieces working together is a challenge. Once everything works, a revision in any of the pieces the next day could render it broken. Every six months, as a new release of OpenBSD is made, an effort is made to test the building of every port on every platform, but during the development cycle it is likely that some ports will break.