https://bugzilla.redhat.com/show_bug.cgi?id=1853888
--- Comment #8 from Robert-André Mauchin 🐧 <zebob.m(a)gmail.com> ---
gcc -shared -Wl,-soname,libLTK.so -o bin/libLTK.so bin/instance.o
bin/utils.o -lunwind
You didn't include the soname version here: ie -Wl,-soname,libLTK.so.X.Y.Z
gcc -Wall -c -fPIC -pedantic -o bin/utils.o src/utils.c
-D_XOPEN_SOURCE=700 -DLTKVER=\"1.6.2\" -Iinclude
36 gcc -Wall -c
-fPIC -pedantic -o bin/instance.o src/instance.c
-D_XOPEN_SOURCE=700 -DLTKVER=\"1.6.2\" -Iinclude
these commands should respect the Fedora builds flags, i.e. use the previously
defined CFLAGS
I don't understand anything about your build script, it's over engineered, why
don't you write your SPEC file by hand, nothing change that much.
Also why do you use rpmbuild, it's not reproducible. Use a mock chroot for
testing:
1. Generate SRPM:
fedpkg --release f33 srpm
2. Test in a mockbuild:
fedpkg --release f33 mockbuild --mock-config fedora-rawhide-x86_64 ---no-clean
--no-cleanup-after
Also the Makefile needs to be fixed.
=============================================================================
CC := gcc
IFLAGS := -Iinclude
CFLAGS += -Wall -c -fPIC -pedantic
AFLAGS := -shared -Wl,-soname,lib$(NAME).so.$(MAJOR)
LFLAGS := -lunwind
DFLAGS := -D_XOPEN_SOURCE=700 -D$(NAME)VER=\"$(VERSION)\"
all : bin bin/lib$(NAME).so
bin/lib$(NAME).so : $(patsubst src/%.c,bin/%.o, $(shell ls src/*.c))
$(CC) $(CFLAGS) $(AFLAGS) -o $@.$(MAJOR) $^ $(LFLAGS)
bin/%.o : src/%.c
$(CC) $(CFLAGS) -o $@ $< $(DFLAGS) $(IFLAGS)
bin :
mkdir -p $@
clean :
rm -rf bin
===============================================================================
%global major 1
Name: LTK
Version: 1.6.1
Release: 1%{?dist}
Summary: Ladspa v3 ToolKit
License: GPLv3
URL:
https://copr.fedorainfracloud.org/coprs/lewisanesa/CodeColla
# git clone
git://codecolla.com/libltk
# cd libtlk/PROJECT
# git archive --format tar.gz --prefix LTK-1.6.1/ v1.6.1 > LTK-1.6.1.tar.gz
Source0: %{name}-%{version}.tar.gz
BuildRequires: gcc
BuildRequires: make
BuildRequires: glibc-devel
BuildRequires: libunwind-devel
%description
Ladspa V3 ToolKit is a general purpose toolkit
enabling object oriented programming in c.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
%prep
%autosetup
%build
%set_build_flags
%make_build NAME=%{name} VERSION=%{version} MAJOR=%{major}
%install
install -pm 0755 -D bin/lib%{name}.so.%{major}
%{buildroot}%{_libdir}/lib%{name}.so.%{major}
ln -s %{_libdir}/lib%{name}.so.%{version}
%{buildroot}%{_libdir}/lib%{name}.so.%{major}
ln -s %{_libdir}/lib%{name}.so %{buildroot}%{_libdir}/lib%{name}.so.%{major}
mkdir -p %{buildroot}%{_includedir}/%{name}
install -pm 0644 -D include/* %{buildroot}%{_includedir}/%{name}/
mkdir -p %{buildroot}%{_mandir}/man3
install -pm 0644 -D man/*.3 %{buildroot}%{_mandir}/man3/
%files
%license LICENSE
%{_libdir}/lib%{name}.so.%{major}*
%files devel
%{_libdir}/lib%{name}.so
%{_includedir}/%{name}
%{_mandir}/man3/LTK*.3.*
%changelog
===============================================================================
Not tested if it works. At least the build fails due to a Fedora security flag:
gcc -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wall -c
-fPIC -pedantic -o bin/utils.o src/utils.c -D_XOPEN_SOURCE=700
-DLTKVER=\"1.6.1\" -Iinclude
src/utils.c: In function 'LTKBacktrace':
src/utils.c:208:2: error: format not a string literal and no format arguments
[-Werror=format-security]
208 | if(before_str) ptr += sprintf(ptr, before_str);
| ^~
src/utils.c:215:5: error: format not a string literal and no format arguments
[-Werror=format-security]
215 | if(indent_str) ptr += sprintf(ptr, indent_str);
| ^~
src/utils.c:218:5: error: format not a string literal and no format arguments
[-Werror=format-security]
218 | if(end_str) ptr += sprintf(ptr, end_str);
| ^~
src/utils.c:219:5: error: format not a string literal and no format arguments
[-Werror=format-security]
219 | else if(indent_str) ptr += sprintf(ptr, indent_str);
| ^~~~
src/utils.c:234:2: error: format not a string literal and no format arguments
[-Werror=format-security]
234 | if(after_str) ptr += sprintf(ptr, after_str);
| ^~
cc1: some warnings being treated as errors
make: *** [Makefile:14: bin/utils.o] Error 1
Please fix this so it can be compiled with Fedora's build flags.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component