Bug 204715 - sysutils/dar 2.5.1 introduces new dependencies which are enabled by default
Summary: sysutils/dar 2.5.1 introduces new dependencies which are enabled by default
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Muhammad Moinur Rahman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-11-21 11:11 UTC by neil
Modified: 2015-11-21 21:58 UTC (History)
0 users

See Also:
bofh: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description neil 2015-11-21 11:11:42 UTC
dar has been updated from 2.4.17 to 2.5.1 but the newer version introduces dependencies which are enabled by default in configure. This causes the build to fail due to unresolved references.

I won't list those dependencies here because it would be better for the maintainer to determine them and how they are to be handled e.g. disable them or provide user-selectable options on a case-by-case basis.
Comment 1 Muhammad Moinur Rahman freebsd_committer 2015-11-21 11:25:52 UTC
I need more details. As I can't see any errors. For your reference please check the following:
http://pdr.s.ubze.ro/data/latest-per-pkg/dar/2.5.1/

Before committing I always check it out.
Comment 2 neil 2015-11-21 12:06:18 UTC
I knew not providing explicit information would bite me:

Dar now supports (and enables by default in configure) the following:

libz
liblzma5
gpgme

The relevant new configuration controls are:

--disable-libz-linking
	Disable linking to libz, thus -zgzip:* option (gzip compression) will not be available
--disable-libxz-linking
	Disable linking to liblzma5 this -zxz:* option (xz compression) will not be available
--disable-gpgme-linking
	Disable linking with gpgme library. Asymetric strong encryption algorithms will not be available

I don't know how you build and test but a system with those dependencies installed would build without errors.

FWIW: I think that upstream has got his option implementation all wrong. If a feature is optional it should default to disabled and the user should enable it by some means.
Comment 3 commit-hook freebsd_committer 2015-11-21 20:32:34 UTC
A commit references this bug:

Author: bofh
Date: Sat Nov 21 20:31:37 UTC 2015
New revision: 402199
URL: https://svnweb.freebsd.org/changeset/ports/402199

Log:
  sysutils/dar: Add new OPTIONS

  - Add ZLIB, BZIP2, LZMA and GPGME support in the new version

  PR:		204715
  Submitted by:	neil@darlow.co.uk

Changes:
  head/sysutils/dar/Makefile
Comment 4 Muhammad Moinur Rahman freebsd_committer 2015-11-21 20:35:40 UTC
Unfortunately those dependencies are by default in base system. However I have added those options with disabled by default.
Comment 5 neil 2015-11-21 21:17:48 UTC
(In reply to Muhammad Moinur Rahman from comment #4)

I think that you will only have those dependencies installed automatically for a system with a GUI.

For my headless server systems built from a basic install I had to install libgcrypt and lzo2 myself. Only libbz2 was provided by the standard installation.
Comment 6 Muhammad Moinur Rahman freebsd_committer 2015-11-21 21:25:55 UTC
You can check my LOG file in Comment 1. Which mentions what functions were enabled and what were disabled. By the by all my ports are checked with Fresh systems all the time. And for version 9, 10 and HEAD and for ARCH i386 and amd64 before committing.
Comment 7 neil 2015-11-21 21:58:52 UTC
(In reply to Muhammad Moinur Rahman from comment #6)

Yes, I am sure you are right.

In fact, I think I am seeing an upstream bug here as a result of those dependencies being absent/disabled.

I think configure was determining those libraries weren't present anyway (although your change is appreciated and beneficial) but the code in dar is expecting the availability of a feature when it shouldn't.

I have posted to the dar-support mailing list for Denis' comments. If he can't fix the problem empirically he will probably use one of my systems to diagnose it anyway.

The error reported, by the way, is:
Making all in check
depbase=`echo all_features.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; c++ -DHAVE_CONFIG_H -I. -I../..   -I../libdar -DDAR_LOCALEDIR=\"/usr/local/share/locale\"  -DDAR_SYS_DIR=\"/usr/local/etc\"   -I/usr/local/include  -O2 -march=k8 -fstack-protector -fno-strict-aliasing  -std=c++11 -MT all_features.o -MD -MP -MF $depbase.Tpo -c -o all_features.o all_features.cpp && mv -f $depbase.Tpo $depbase.Po
/bin/sh ../../libtool --tag=CXX    --mode=link c++  -O2 -march=k8 -fstack-protector -fno-strict-aliasing  -std=c++11 -L/usr/local/lib -lintl -R/usr/local/lib  -L/usr/local/lib -fstack-protector -o all_features all_features.o -L../libdar -ldar  -lexecinfo -pthread -lgcrypt -lgpg-error -llzo2
libtool: link: c++ -O2 -march=k8 -fstack-protector -fno-strict-aliasing -std=c++11 -fstack-protector -o all_features all_features.o -pthread  -L/usr/local/lib -lintl -L../libdar -ldar -lexecinfo -lgcrypt -lgpg-error -llzo2 -pthread -Wl,-rpath -Wl,/usr/local/lib
all_features.o: In function `main':
all_features.cpp:(.text+0x23f): undefined reference to `libdar::compile_time::libxz()'
all_features.cpp:(.text+0x259): undefined reference to `libdar::compile_time::public_key_cipher()'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Stop.
make[5]: stopped in /usr/ports/sysutils/dar/work/dar-2.5.1/src/check
*** Error code 1