Compare commits

...

No commits in common. "c8" and "59f8b5a99f0b6bf309dceaae1fb3de506372c2a0" have entirely different histories.

9 changed files with 229 additions and 67 deletions

32
.gitignore vendored
View File

@ -1 +1,31 @@
SOURCES/sanlock-3.8.4.tar.gz
/sanlock-1.0.tar.gz
/sanlock-1.1.0.tar.bz2
/sanlock-1.2.0.tar.bz2
/sanlock-1.3.tar.gz
/sanlock-1.4.tar.gz
/sanlock-1.6.tar.gz
/sanlock-1.8.tar.gz
/sanlock-2.1.tar.gz
/sanlock-2.2.tar.gz
/sanlock-2.3.tar.gz
/sanlock-2.4.tar.gz
/sanlock-2.5.tar.gz
/sanlock-2.6.tar.gz
/sanlock-2.7.tar.gz
/sanlock-2.8.tar.gz
/sanlock-3.0.0.tar.gz
/sanlock-3.1.0.tar.gz
/sanlock-3.2.0.tar.gz
/sanlock-3.2.1.tar.gz
/sanlock-3.2.2.tar.gz
/sanlock-3.2.4.tar.gz
/sanlock-3.3.0.tar.gz
/sanlock-3.4.0.tar.gz
/sanlock-3.5.0.tar.gz
/sanlock-3.6.0.tar.gz
/sanlock-3.7.0.tar.gz
/sanlock-3.7.1.tar.gz
/sanlock-3.7.3.tar.gz
/sanlock-3.8.0.tar.gz
/sanlock-3.8.1.tar.gz
/sanlock-3.8.4.tar.gz

View File

@ -1 +1 @@
494d5efc260b643ed9a3ee6bbdb0d31ecb14c201 SOURCES/sanlock-3.8.4.tar.gz
494d5efc260b643ed9a3ee6bbdb0d31ecb14c201 sanlock-3.8.4.tar.gz

View File

@ -0,0 +1,108 @@
From 5044719a27cb41889ec08177cba977596b783e83 Mon Sep 17 00:00:00 2001
From: Nir Soffer <nsoffer@redhat.com>
Date: Sun, 2 Aug 2020 02:01:06 +0300
Subject: [PATCH] python: Remove extra link args
Fedora 33 builds fails now with:
/usr/bin/ld: /tmp/sanlock.cpython-39-x86_64-linux-gnu.so.mpvMfj.ltrans0.ltrans.o:
relocation R_X86_64_PC32 against undefined symbol `PyExc_ValueError' can
not be used when making a shared object; recompile with -fPIC
We use these extra link args:
extra_link_args=['-fPIE', '-Wl,-z,relro,-z,now'],
Looking the generated compiler command[1]:
gcc -pthread \
-shared \
-Wl,-z,relro \
-Wl,--as-needed \
-Wl,-z,now \
-g \
-Wl,-z,relro \
-Wl,--as-needed \
-Wl,-z,now \
-g \
-Wl,-z,relro \
-Wl,--as-needed \
-Wl,-z,now \
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld \
-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 build/temp.linux-x86_64-3.9/sanlock.o \
-L../src \
-L/usr/lib64 \
-lsanlock \
-o build/lib.linux-x86_64-3.9/sanlock.cpython-39-x86_64-linux-gnu.so \
-fPIE \
-Wl,-z,relro,-z,now
This looks like a complete mess. These arguments are repeated 3 times:
-Wl,-z,relro \
-Wl,--as-needed \
-Wl,-z,now \
And our extra compiler flags adds the forth copy.
gcc says this about -fPIE:
These options are similar to -fpic and -fPIC, but the generated
position-independent code can be only linked into executables
But our python extension is a shared object, so I don't think -fPIE
makes sense.
The extra arguments were added in:
commit a1929080a6ce51879139eb8d05a425ccd3d37082
Author: David Teigland <teigland@redhat.com>
Date: Wed Oct 14 13:21:04 2015 -0500
python: add compile flags
Without any justification. I assume the intent was good, but it looks
like this change was not needed, and somehow it worked until now.
If some hardening is needed, it should be done by python build
infrastructure, not in sanlock. And it seems that python do use some
hardening specs (e.g. -specs=/usr/lib/rpm/redhat/redhat-hardened-ld).
[1] https://kojipkgs.fedoraproject.org//work/tasks/8900/48358900/build.log
Signed-off-by: Nir Soffer <nsoffer@redhat.com>
---
python/setup.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/python/setup.py b/python/setup.py
index 0f3d683..b3bfaf1 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -12,7 +12,6 @@ sanlock = Extension(name='sanlock',
include_dirs=['../src'],
library_dirs=['../src'],
extra_compile_args=["-std=c99"],
- extra_link_args=['-fPIE', '-Wl,-z,relro,-z,now'],
libraries=sanlocklib)
version = None
--
2.25.4

View File

@ -3,7 +3,6 @@ Version: 3.8.4
Release: 4%{?dist}
Summary: A shared storage lock manager
Group: System Environment/Base
License: GPLv2 and GPLv2+ and LGPLv2+
URL: https://pagure.io/sanlock/
BuildRequires: gcc
@ -28,8 +27,6 @@ Patch1: 0002-sanlock-fix-pthread_create-error-check.patch
Patch2: 0003-Revert-sanlock-Shrink-thread-pool-when-there-is-no-w.patch
Patch3: 0004-sanlock-fix-pthread_create-error-paths.patch
%global python_package python3-%{name}
%description
The sanlock daemon manages leases for applications on hosts using shared storage.
@ -41,12 +38,12 @@ The sanlock daemon manages leases for applications on hosts using shared storage
%patch3 -p1 -b .backup3
%build
%set_build_flags
# upstream does not require configure
# upstream does not support _smp_mflags
CFLAGS=$RPM_OPT_FLAGS make -C wdmd
CFLAGS=$RPM_OPT_FLAGS make -C src
CFLAGS=$RPM_OPT_FLAGS make -C python PY_VERSION=3.6
CFLAGS=$RPM_OPT_FLAGS make -C reset
CFLAGS=$RPM_OPT_FLAGS make -C python PY_VERSION=3
%install
rm -rf $RPM_BUILD_ROOT
@ -59,16 +56,12 @@ make -C wdmd \
make -C python \
install LIBDIR=%{_libdir} \
DESTDIR=$RPM_BUILD_ROOT \
PY_VERSION=3.6
make -C reset \
install LIBDIR=%{_libdir} \
DESTDIR=$RPM_BUILD_ROOT
PY_VERSION=3
install -D -m 0644 init.d/sanlock.service.native $RPM_BUILD_ROOT/%{_unitdir}/sanlock.service
install -D -m 0755 init.d/wdmd $RPM_BUILD_ROOT/usr/lib/systemd/systemd-wdmd
install -D -m 0644 init.d/wdmd.service.native $RPM_BUILD_ROOT/%{_unitdir}/wdmd.service
install -D -m 0644 init.d/sanlk-resetd.service $RPM_BUILD_ROOT/%{_unitdir}/sanlk-resetd.service
install -D -m 0644 src/logrotate.sanlock \
$RPM_BUILD_ROOT/etc/logrotate.d/sanlock
@ -80,15 +73,14 @@ install -D -m 0644 init.d/wdmd.sysconfig \
$RPM_BUILD_ROOT/etc/sysconfig/wdmd
install -Dd -m 0755 $RPM_BUILD_ROOT/etc/wdmd.d
install -Dd -m 0775 $RPM_BUILD_ROOT/%{_rundir}/sanlock
install -Dd -m 0775 $RPM_BUILD_ROOT/%{_rundir}/sanlk-resetd
install -Dd -m 0775 $RPM_BUILD_ROOT/%{_localstatedir}/run/sanlock
%pre
getent group sanlock > /dev/null || /usr/sbin/groupadd \
-g 179 sanlock
getent passwd sanlock > /dev/null || /usr/sbin/useradd \
-u 179 -c "sanlock" -s /sbin/nologin -r \
-g 179 -d /run/sanlock sanlock
-g 179 -d /var/run/sanlock sanlock
/usr/sbin/usermod -a -G disk sanlock
%post
@ -98,7 +90,7 @@ getent passwd sanlock > /dev/null || /usr/sbin/useradd \
%systemd_preun wdmd.service sanlock.service
%postun
%systemd_postun
%systemd_postun wdmd.service sanlock.service
%files
/usr/lib/systemd/systemd-wdmd
@ -108,7 +100,7 @@ getent passwd sanlock > /dev/null || /usr/sbin/useradd \
%{_sbindir}/wdmd
%dir %{_sysconfdir}/wdmd.d
%dir %{_sysconfdir}/sanlock
%dir %attr(-,sanlock,sanlock) %{_rundir}/sanlock
%dir %attr(-,sanlock,sanlock) %{_localstatedir}/run/sanlock
%{_mandir}/man8/wdmd*
%{_mandir}/man8/sanlock*
%config(noreplace) %{_sysconfdir}/logrotate.d/sanlock
@ -120,7 +112,6 @@ getent passwd sanlock > /dev/null || /usr/sbin/useradd \
%package lib
Summary: A shared storage lock manager library
Group: System Environment/Libraries
%description lib
The %{name}-lib package contains the runtime libraries for sanlock,
@ -135,23 +126,22 @@ access to the shared disks.
%{_libdir}/libsanlock_client.so.*
%{_libdir}/libwdmd.so.*
%package -n %{python_package}
%package -n python3-sanlock
%{?python_provide:%python_provide python3-sanlock}
Summary: Python bindings for the sanlock library
Group: Development/Libraries
Requires: %{name}-lib = %{version}-%{release}
%description -n %{python_package}
The %{python_package} package contains a module that permits applications
%description -n python3-sanlock
The %{name}-python package contains a module that permits applications
written in the Python programming language to use the interface
supplied by the sanlock library.
%files -n %{python_package}
%files -n python3-sanlock
%{python3_sitearch}/sanlock_python-*.egg-info
%{python3_sitearch}/sanlock*.so
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name}-lib = %{version}-%{release}
%description devel
@ -171,62 +161,95 @@ developing applications that use %{name}.
%{_libdir}/pkgconfig/libsanlock.pc
%{_libdir}/pkgconfig/libsanlock_client.pc
%package -n sanlk-reset
Summary: Host reset daemon and client using sanlock
Group: System Environment/Base
Requires: sanlock = %{version}-%{release}
Requires: sanlock-lib = %{version}-%{release}
%description -n sanlk-reset
The sanlk-reset package contains the reset daemon and client.
A cooperating host running the daemon can be reset by a host
running the client, so long as both maintain access to a
common sanlock lockspace.
%files -n sanlk-reset
%{_sbindir}/sanlk-reset
%{_sbindir}/sanlk-resetd
%{_unitdir}/sanlk-resetd.service
%dir %attr(-,root,root) %{_rundir}/sanlk-resetd
%{_mandir}/man8/sanlk-reset*
%changelog
* Wed Jul 06 2022 David Teigland <teigland@redhat.com> - 3.8.4-4
- rebuild with larger release number
* Fri Apr 01 2022 David Teigland <teigland@redhat.com> - 3.8.4-4
- fixes for thread/memory leak
* Fri Mar 18 2022 David Teigland <teigland@redhat.com> - 3.8.4-2
- Resolves: rhbz#2058438
* Mon Aug 23 2021 David Teigland <teigland@redhat.com> - 3.8.4-1
- Update rhel9 beta version to match latest rhel8
* Tue Jun 01 2021 David Teigland <teigland@redhat.com> 3.8.4-1
- Update to sanlock-3.8.4
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 3.8.1-11
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu May 20 2021 David Teigland <teigland@redhat.com> 3.8.3-2
- Fix connection close and add python inquire api
* Mon Jun 28 2021 David Teigland <teigland@redhat.com> - 3.8.1-10
- fuck this process
* Tue Jan 19 2021 David Teigland <teigland@redhat.com> 3.8.3-1
- Update to sanlock-3.8.3
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.8.1-9
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Aug 10 2020 David Teigland <teigland@redhat.com> 3.8.2-1
- Update to sanlock-3.8.2
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Jul 09 2020 David Teigland <teigland@redhat.com> 3.8.1-1
* Sat Aug 08 2020 Nir Soffer <nsoffer@redhat.com> - 3.8.1-7
- Enable LTO
* Sun Aug 02 2020 Nir Soffer <nsoffer@redhat.com> - 3.8.1-6
- Removing extra linkeer args, hopefully fix python build
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.1-5
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 07 2020 Jeff Law <law@redhat.com> - 3.8.1-3
- Disable LTO
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 3.8.1-2
- Rebuilt for Python 3.9
* Sat May 2 2020 Nir Soffer <nsoffer@redhat.com> - 3.8.1-1
- Update to sanlock-3.8.1
* Wed Jun 12 2019 Nir Soffer <nsoffer@redhat.com> 3.8.0-2
- kick the gating tests to run
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jun 12 2019 Nir Soffer <nsoffer@redhat.com> 3.8.0-1
- Cleanup spec and convert to python3
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 3.8.0-3
- Rebuilt for Python 3.8
* Thu Dec 06 2018 David Teigland <teigland@redhat.com> - 3.6.0-5
- Fix selinux lockfile error
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Oct 04 2018 David Teigland <teigland@redhat.com> - 3.6.0-4
- makefile gcc flags
* Wed Jun 12 2019 Nir Soffer <nsoffer@redhat.com> - 3.8.0-1
- Update to sanlock-3.8.0
- Convert spec to python 3
* Tue Jun 12 2018 Charalampos Stratakis <cstratak@redhat.com> - 3.6.0-3
- Conditionalize the python2 subpackage
* Tue May 21 2019 Nir Soffer <nsoffer@redhat.com> - 3.7.3-1
- Update to sanlock-3.7.3
- Add missing BuildRequires and Requires
* Fri Apr 12 2019 Nir Soffer <nsoffer@redhat.com> - 3.7.1-2
- Cleanup up align and sector constants
* Mon Apr 8 2019 Nir Soffer <nsoffer@redhat.com> - 3.7.1-1
- Update to sanlock 3.7.1
- Fix read_resource_owners (414abfe)
* Wed Mar 20 2019 Nir Soffer <nsoffer@redhat.com> - 3.7.0-1
- remove unneeded with_systemd macro
- update to sanlock 3.7.0
* Sat Feb 2 2019 Nir Soffer <nsoffer@redhat.com> - 3.6.0-8
- fix build on Fedora rawhide
* Thu Jan 24 2019 David Teigland <teigland@redhat.com> - 3.6.0-7
- lockfile ownership
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Thu Apr 12 2018 Iryna Shcherbina <shcherbina.iryna@gmail.com> - 3.6.0-5
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Wed Mar 14 2018 David Teigland <teigland@redhat.com> - 3.6.0-4
- change makefile flags
* Wed Mar 14 2018 David Teigland <teigland@redhat.com> - 3.6.0-3
- rebuild with set_build_flags
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (sanlock-3.8.4.tar.gz) = 9fca2b18fd3bd504d5186de0b2626ea2c993997528de2384dc042afe52b2b68422a2e4bb79e2409c9e6eccbe5ea8d8939549eb25c5d16aa7fecf6c9a5798340c