[Bug 1853888] Review Request: libLTK - Ladspa v3 ToolKit

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

 



https://bugzilla.redhat.com/show_bug.cgi?id=1853888



--- Comment #8 from Robert-André Mauchin 🐧 <zebob.m@xxxxxxxxx> ---
> 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
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux