Re: Build failure with -Wl,--as-needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 27, 2018 at 8:33 PM Scott Talbert <swt@xxxxxxxxxx> wrote:
> I'm not the maintainer of this package (iaxclient), but I ran into this
> build failure while working on a pull request.  It seems to be fallout
> from the -Wl,--as-needed change.  Any idea why this is happening?
>
> https://koji.fedoraproject.org/koji/taskinfo?taskID=29342306

Who started this trend of ignoring the libtool script generated by
configure and using /usr/bin/libtool instead?  I've run across several
spec files in the last few days that do that.  It isn't right.  The
configure script tailors the generated libtool in various ways.  Try
the attached spec file, which works much better.

Also, this gcc warning is warning about a real bug:

BUILDSTDERR: md5.c: In function 'MD5Final':
BUILDSTDERR: md5.c:180:26: warning: argument to 'sizeof' in 'memset'
call is the same expression as the destination; did you mean to
dereference it? [-Wsizeof-pointer-memaccess]
BUILDSTDERR:      memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */

Yep, that should be memset(ctx, 0, sizeof(*ctx));

The attached spec file also fixes mixed use of tabs and spaces, and
uses %ldconfig_scriptlets in place of explicit ldconfig invocations.

Regards,
-- 
Jerry James
http://www.jamezone.org/
%global betaver beta3
%global tclver 0.2
%global mainver 2.1
%{!?tcl_version: %global tcl_version %(echo 'puts $tcl_version' | tclsh)}
%{!?tcl_sitearch: %global tcl_sitearch %{_libdir}/tcl%{tcl_version}}
%global tkphonearch %{_arch}

Name:		iaxclient
Version:	%{mainver}
Release:	0.31.%{betaver}%{?dist}
Summary:	Library for creating telephony solutions that interoperate with Asterisk
Group:		System Environment/Libraries
License:	LGPLv2+
URL:		http://iaxclient.wiki.sourceforge.net/
Source0:	http://downloads.sourceforge.net/iaxclient/%{name}-%{version}%{betaver}.tar.gz
Source1:	tkiaxphone.desktop
Source2:	wxiax.desktop
Source3:	phone.png
Source4:	run-tkiaxphone.sh
Patch0:		iaxclient-2.1beta3-wxGTK28.patch
Patch1:		iaxclient-2.1beta3-tkphone-cleanups.patch
Patch2:		iaxclient-2.1beta3-tcl-includedir.patch
Patch3:		iaxclient-2.1beta3-tcl-libdir.patch
Patch4:		iaxclient-2.1beta3-tcl-nodoc.patch
Patch5:		iaxclient-2.1beta3-theora-detection.patch
Patch6:		iaxclient-2.1beta3-implicit-DSO-libm.patch
Patch7:		iaxclient-2.1beta3-arm-barriers.patch
Patch8:		iaxclient-portable.patch
# Link against the locally build iax
Patch9:		iaxclient-link-local-iax.patch
# Use system ilbc
Patch10:	iaxclient-system-ilbc.patch
# Add missing -fPIC to configure.ac test
Patch11:	iaxclient-2.1beta3-fpic.patch
# Fix some makefile issues
Patch20:	iax-0.2.3_makefile.patch
# Fix format-security issue
Patch21:	iax-0.2.3_format-security.patch
# Add missing #include <sys/socket.h>
Patch22:	iax-0.2.3_socket.patch

BuildRequires:	gcc-c++
BuildRequires:	make
BuildRequires:	speex-devel, libtheora-devel, gsm-devel, portaudio-devel
BuildRequires:	tk-devel, gtk2-devel, SDL-devel, libogg-devel, liboggz-devel 
BuildRequires:	wxGTK-devel, libvidcap-devel, desktop-file-utils, libtool
BuildRequires:	spandsp-devel, ilbc-devel, speexdsp-devel

%description
Iaxclient is an open source, multiplatform library for creating telephony 
solutions that interoperate with Asterisk, the Open Source PBX.

Although asterisk supports other VOIP protocols (including SIP, and with 
patches, H.323), IAX's simple, lightweight nature gives it several advantages, 
particularly in that it can operate easily through NAT and packet firewalls, 
and it is easily extensible and simple to understand.
Iaxclient pulls together the wide array of open source technologies required 
for telephony applications.

%package libiax
Summary:	IAX library
Group:		System Environment/Libraries
Obsoletes:	iax < 0.2.3

%description libiax
The %{name}-libs package contains the IAX library version 0.2.3, an improved
version of the abandoned upstream IAX library.

%package libiax-devel
Summary:	IAX library development files
Group:		Development/Libraries
Requires:	%{name}-libiax%{?_isa} = %{version}-%{release}
Obsoletes:	iax-devel < 0.2.3

%description libiax-devel
The %{name}-libiax-devel package contains libraries and header files for
developing applications that use %{name}-libiax.


%package devel
Summary:	Development files for %{name}
Group:		Development/Libraries
Requires:	pkgconfig
Requires:	%{name} = %{mainver}-%{release}

%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.

%package -n tcl-iaxclient
Summary:	Tcl interface to iax2 client lib
Version:	%{tclver}
Group:		System Environment/Libraries
License:	BSD
Requires:	tcl(abi) = 8.6
Requires:	%{name} = %{mainver}-%{release}

%description -n tcl-iaxclient
Tcl extensions to iaxclient libraries.

%package -n tkiaxphone
Summary:	Tk IAX Phone Client
Version:	%{mainver}
Group:		Applications/Internet
License:	LGPLv2+
Requires:	tcl(abi) = 8.6
Requires:	%{name} = %{mainver}-%{release}

%description -n tkiaxphone
Tk IAX Phone Client.

%package -n wxiax
Summary:	wx IAX Phone Client
Version:	%{mainver}
Group:		Applications/Internet
License:	LGPLv2+
Requires:	%{name} = %{mainver}-%{release}

%description -n wxiax
wx IAX Phone Client.

%prep
%setup -q -n %{name}-%{mainver}%{betaver}
%patch0 -p1 -b .wxGTK28
%patch1 -p1 -b .tkphone
%patch2 -p1 -b .includedir
%patch3 -p1 -b .libdir
%patch4 -p1 -b .nodoc
%patch5 -p1 -b .theoradetect
%patch6 -p1 -b .DSO
%patch7 -p1 -b .arm
%patch8 -p1 -b .portable
%patch9 -p1 -b .linkiax
%patch10 -p1 -b .ilbc
%patch11 -p1 -b .fpic

# Delete bundled libraries (except libiax2) just to be sure
rm -rf lib/{gsm, portmixer, sox, spandsp}

autoreconf -vif

chmod -x contrib/tcl/README.txt

(
cd lib/libiax2
%patch20 -p1 -b .iaxmakefile
%patch21 -p1 -b .iaxfmtsecurity
%patch22 -p1 -b .iaxsocket

sed -i 's|${exec_prefix}/lib|${exec_prefix}/%{_lib}|g' iax-config.in
sed -i 's|/usr/lib|%{_libdir}|g' iax-config.in

autoreconf -vif
)

%build
(
cd lib/libiax2
%configure --disable-static
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
    -e 's|CC="\(g..\)"|CC="\1 -Wl,--as-needed"|' \
    -i libtool
make %{?_smp_mflags} UCFLAGS="%{optflags}"
)

%configure --disable-static
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
# -Wl,--as-needed after all the libraries.
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
    -e 's|CC="\(g..\)"|CC="\1 -Wl,--as-needed"|' \
    -i libtool
make %{?_smp_mflags}

(
cd contrib/tcl/
%configure
make %{?_smp_mflags}
)

%install
%make_install -C lib/libiax2

%make_install

find %{buildroot} -name '*.a' -exec rm -f {} ';'
find %{buildroot} -name '*.la' -exec rm -f {} ';'

install -d %{buildroot}%{tcl_sitearch}
mv %{buildroot}%{_libdir}/iaxclient %{buildroot}%{tcl_sitearch}/

%make_install -C contrib/tcl
mv %{buildroot}%{_libdir}/tcliaxclient0.2 %{buildroot}%{tcl_sitearch}/tcliaxclient0.2
chmod +x %{buildroot}%{tcl_sitearch}/iaxclient/tkphone/phone.ui.tcl
chmod +x %{buildroot}%{tcl_sitearch}/iaxclient/tkphone/pref.ui.tcl
install -p %{SOURCE4} %{buildroot}%{_bindir}

install -Dd %{buildroot}%{_datadir}/pixmaps/
install -p %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/tkiaxphone.png
install -p %{SOURCE3} %{buildroot}%{_datadir}/pixmaps/wxiax.png

install -Dd %{buildroot}%{_datadir}/applications/

desktop-file-install --vendor ""			\
	--dir $RPM_BUILD_ROOT%{_datadir}/applications	\
	%{SOURCE1}

desktop-file-install --vendor ""			\
	--dir $RPM_BUILD_ROOT%{_datadir}/applications	\
	%{SOURCE2}

cd %{buildroot}%{tcl_sitearch}/iaxclient/tkphone/
ln -s iaxcli iaxcli-Linux-%{tkphonearch}


%ldconfig_scriptlets
%ldconfig_scriptlets libiax

%files
%doc AUTHORS ChangeLog README
%license COPYING.LIB
%{_bindir}/iaxcomm
%{_bindir}/iaxphone
%{_datadir}/iaxcomm/
%{_libdir}/libiaxclient.so.*

%files libiax
%doc lib/libiax2/ChangeLog lib/libiax2/COPYING lib/libiax2/COPYING.LIB
%{_libdir}/libiax.so.*

%files libiax-devel
%{_bindir}/iax-config
%{_includedir}/iax/
%{_libdir}/libiax.so

%files devel
%{_bindir}/stresstest
%{_bindir}/testcall
%{_bindir}/vtestcall
%{_includedir}/iaxclient.h
%{_libdir}/libiaxclient.so
%{_libdir}/pkgconfig/iaxclient.pc

%files -n tcl-iaxclient
%doc contrib/tcl/README.txt
%{tcl_sitearch}/tcliaxclient0.2/

%files -n tkiaxphone
%{_bindir}/run-tkiaxphone.sh
%{_bindir}/tkiaxphone
%{tcl_sitearch}/iaxclient/
%{_datadir}/applications/tkiaxphone.desktop
%{_datadir}/pixmaps/tkiaxphone.png

%files -n wxiax
%{_bindir}/wxiax
%{_datadir}/applications/wxiax.desktop
%{_datadir}/pixmaps/wxiax.png

%changelog
* Fri Jul 13 2018 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.1-0.31.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Sun Feb 18 2018 Sandro Mani <manisandro@xxxxxxxxx> - 2.1-0.30.beta3
- Add missing BR: gcc-c++, make

* Wed Feb 07 2018 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.1-0.29.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.1-0.28.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.1-0.27.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.1-0.26.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Feb 04 2016 Fedora Release Engineering <releng@xxxxxxxxxxxxxxxxx> - 2.1-0.25.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Tue Jan 19 2016 Tom Callaway <spot@xxxxxxxxxxxxxxxxx> - 2.1-0.24.beta3
- spec file cleanups

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.23.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Mon May 04 2015 Sandro Mani <manisandro@xxxxxxxxx> - 2.1-0.22.beta3
- Rebuild (GCC5)

* Thu Jan 08 2015 Sandro Mani <manisandro@xxxxxxxxx> - 2.1-0.21.beta3
- Ship bundled libiax2 in -libiax
- Use system spandsp
- Use system ilbc

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.20.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Thu Jul  3 2014 Peter Robinson <pbrobinson@xxxxxxxxxxxxxxxxx> 2.1-0.19.beta3
- Add patch to fix build on aarch64

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.18.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Tue May 27 2014 Jaroslav Škarvada <jskarvad@xxxxxxxxxx> - 2.1-0.17.beta3
- Updated requires to require tcl-8.6

* Wed May 21 2014 Jaroslav Škarvada <jskarvad@xxxxxxxxxx> - 2.1-0.16.beta3
- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86

* Tue Dec 03 2013 Tom Callaway <spot@xxxxxxxxxxxxxxxxx> - 2.1-0.15.beta3
- Fix format-security issue (bz 1037126)

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.14.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Mon Jul 15 2013 Tom Callaway <spot@xxxxxxxxxxxxxxxxx> - 2.1-0.13.beta3
- add memory barriers for arm (bz 927443)

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.12.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.11.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.10.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Tue Dec 06 2011 Adam Jackson <ajax@xxxxxxxxxx> - 2.1-0.9.beta3
- Rebuild for new libpng

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.8.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Wed Jul 14 2010 Dan Horák <dan@xxxxxxxx> - 2.1-0.7.beta3
- rebuilt against wxGTK-2.8.11-2

* Wed Jun 02 2010 Rakesh Pandit <rakesh@xxxxxxxxxxxxxxxxx> - 2.1-0.6.beta3
- Bump for new liboggz lib

* Wed Feb 10 2010 Tom "spot" Callaway <tcallawa@xxxxxxxxxx> - 2.1-0.5.beta3
- fix implicit DSO linking issue with libm

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 2.1-0.4.beta3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Thu Mar 12 2009 Tom "spot" Callaway <tcallawa@xxxxxxxxxx> 2.1-0.3.beta3
- fix lib/libiax2/iax-config.in to not use wrong /usr/lib

* Mon Nov  3 2008 Tom "spot" Callaway <tcallawa@xxxxxxxxxx> 2.1-0.2.beta3
- fix theora detection

* Tue Jun 10 2008 Tom "spot" Callaway <tcallawa@xxxxxxxxxx> 2.1-0.1.beta3
- Initial package for Fedora

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux