This was a recently-install FreeBSD 10.0-RELEASE installation. ----- # portmaster net/samba41 ===>>> Port directory: /usr/ports/net/samba41 ===>>> Gathering distinfo list for installed ports ===>>> Launching 'make checksum' for net/samba41 in background ===>>> Gathering dependency list for net/samba41 from ports ===>>> Initial dependency check complete for net/samba41 ===>>> Starting build for net/samba41 <<<=== ===>>> All dependencies are up to date ===> Cleaning for samba41-4.1.11 ===> License GPLv3 accepted by the user ===> Found saved configuration for samba41-4.1.11 ===> samba41-4.1.11 depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by samba41-4.1.11 for building ===> Extracting for samba41-4.1.11 => SHA256 Checksum OK for samba-4.1.11.tar.gz. ===> Patching for samba41-4.1.11 ===> Applying FreeBSD patches for samba41-4.1.11 ===> samba41-4.1.11 depends on package: p5-Parse-Pidl>=4.0.0 - found ===> samba41-4.1.11 depends on package: talloc>=2.1.0 - found ===> samba41-4.1.11 depends on package: tevent>=0.9.18 - found ===> samba41-4.1.11 depends on package: tdb>=1.2.11 - found ===> samba41-4.1.11 depends on package: ntdb>=1.0 - found ===> samba41-4.1.11 depends on package: ldb>=1.1.17 - found ===> samba41-4.1.11 depends on executable: gdb771 - not found ===> Verifying install for gdb771 in /usr/ports/devel/gdb ===> Installing for gdb-7.8_2 ===> gdb-7.8_2 depends on shared library: libreadline.so.6 - found (/usr/local/lib/libreadline.so.6) ===> Checking if gdb already installed ===> gdb-7.8_2 is already installed You may wish to ``make deinstall'' and install this port again by ``make reinstall'' to upgrade it properly. If you really wish to overwrite the old port of gdb without deleting it first, set the variable "FORCE_PKG_REGISTER" in your environment or the "make install" command line. *** Error code 1 Stop. make[3]: stopped in /usr/ports/devel/gdb *** Error code 1 Stop. make[2]: stopped in /usr/ports/devel/gdb *** Error code 1 Stop. make[1]: stopped in /usr/ports/net/samba41 *** Error code 1 Stop. make: stopped in /usr/ports/net/samba41 ===>>> make build failed for net/samba41 ===>>> Aborting update ===>>> You can restart from the point of failure with this command line: portmaster <flags> net/samba41 # ----- I'm guessing it's looking for gdb 7.7 ("Verifying install for gdb771"), but gdb 7.8 is current version. I've deleted & rebuilt both Samba 4.1 and gdb. /usr/ports/devel has gdb 7.8 and gdb 6.6 (no 7.7.1). Samba 4.1 expects ">=" for all other libraries, but wants a very-specific gdb771 library. Is it supposed to do that?
I guess that the dependency line in net/samba41 was just not updated, when devel/gdb got itds update to 7.8. Assign to maintainer.
(In reply to Marcus von Appen from comment #1) > I guess that the dependency line in net/samba41 was just not updated, when > devel/gdb got itds update to 7.8. > > Assign to maintainer.
(In reply to Marcus von Appen from comment #1) > I guess that the dependency line in net/samba41 was just not updated, when > devel/gdb got itds update to 7.8. > > Assign to maintainer. Thanks for the notice! As you stated, I didn't know that gdb was upgraded to version 7.8, and, to be honest I don't know about any mechanism to get such a notification, except a note from the devel/gdb maintainer. I'll patch samba4* for now.
By default, devel/gdb installs a link named /usr/local/bin/gdb to allow external ports to check its presence without continuously fight against gdb version suffix. Do you think it could be viable also for samba41 developer option? the GDB_CMD should use the absolute path (with PREFIX and so on...)
(In reply to luca.pizzamiglio from comment #4) > By default, devel/gdb installs a link named /usr/local/bin/gdb to allow > external ports to check its presence without continuously fight against gdb > version suffix. The path isn't a problem by itself - there is a need for recent enough gdb cause somehow stock gdb gives different results. So I need a reliable way to check for the presence and place dependency on a devel/ddb in a port. If you have better idea how to do so - please, advice. Also, as a link is an option, it can be disabled in some installation and then things will break :(
in devel/gdb everything use the suffix with the version, because of the presence of the FreeBSD's gdb. This link was added exactly to solve the version suffix issue, providing a way to detect the gdb 7+ is installed. The link has the same name of the FreeBSD's gdb, it could generate some name conflict, path order issue or other problems, that's why it was introduced as option, but after years nobody noted any problem. In the future, we could install the link, without option.
I just tried a clean FreeBSD 10.1 install with Samba 4.1.16 (February 2015). Pretty much same issue, still. ---------- ===> Applying FreeBSD patches for samba41-4.1.16 ===> samba41-4.1.16 depends on package: p5-Parse-Pidl>=4.0.0 - found ===> samba41-4.1.16 depends on package: py27-dnspython>=1.9.4 - found ===> samba41-4.1.16 depends on package: talloc>=2.1.0 - found ===> samba41-4.1.16 depends on package: tevent>=0.9.18 - found ===> samba41-4.1.16 depends on package: tdb>=1.2.11 - found ===> samba41-4.1.16 depends on package: ntdb>=1.0 - found ===> samba41-4.1.16 depends on package: ldb>=1.1.17 - found ===> samba41-4.1.16 depends on executable: gdb78 - not found ... ... ... ===> Installing for gdb-7.8.2 ===> Checking if gdb already installed ===> gdb-7.8.2 is already installed You may wish to ``make deinstall'' and install this port again by ``make reinstall'' to upgrade it properly. If you really wish to overwrite the old port of gdb without deleting it first, set the variable "FORCE_PKG_REGISTER" in your environment or the "make install" command line. *** Error code 1 Stop. make[3]: stopped in /usr/ports/devel/gdb *** Error code 1 Stop. make[2]: stopped in /usr/ports/devel/gdb *** Error code 1 Stop. make[1]: stopped in /usr/ports/net/samba41 *** Error code 1 Stop. make: stopped in /usr/ports/net/samba41 ===>>> make build failed for net/samba41 ===>>> Aborting update ===>>> You can restart from the point of failure with this command line: portmaster <flags> net/samba41 ---------- It is at least looking for "gdb78" now (and not "gdb771" like before). Why would it not "work" with gdb-7.8.2? It still seems to be using an "=" (exact match) instead of the ">=" it uses for other prerequisites.
it's looking for gdb78, that's wrong. Every new version, the gdb's name is updated as well. The way to check the presence of devel/gdb is looking for ${LOCALBASE}/bin/gdb , a link to gdb782 or whatever will be the gdb's name. In this way, the last version of gdb is found. GDB_CMD?= ${LOCALBASE}/bin/gdb
(In reply to luca.pizzamiglio from comment #8) Although I'm not fully satisfied with it, I've set the GDB_CMD this way. I'd hope that you'll make creation of the link mandatory, without an option. Thanks in advance!