Bug#871156: pyfits: FTBFS: cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]

2017-08-27 Thread Steve Langasek
Package: pyfits
Version: 1:3.4-4
Followup-For: Bug #871156
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu artful ubuntu-patch

Hi Aurelien,

Attached is a simple fix for this build failure which I've uploaded to
Ubuntu.  There is no reason for this build system to explicitly disable
-Wformat on Debian, the code builds fine as-is.

Cheers,
-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org
diff -Nru pyfits-3.4/debian/patches/series pyfits-3.4/debian/patches/series
--- pyfits-3.4/debian/patches/series2016-12-19 15:41:17.0 -0800
+++ pyfits-3.4/debian/patches/series2017-08-27 22:40:43.0 -0700
@@ -2,3 +2,4 @@
 02-numpy-deprecation-warning.diff
 03-fix-for-cfitsio-3380.patch
 04-numpy-1.12.patch
+yes-Wformat.patch
diff -Nru pyfits-3.4/debian/patches/yes-Wformat.patch 
pyfits-3.4/debian/patches/yes-Wformat.patch
--- pyfits-3.4/debian/patches/yes-Wformat.patch 1969-12-31 16:00:00.0 
-0800
+++ pyfits-3.4/debian/patches/yes-Wformat.patch 2017-08-27 22:43:35.0 
-0700
@@ -0,0 +1,21 @@
+Description: don't disable format warnings, which breaks 
-Werror=format-security
+ By default we use hardening flags for package builds to detect certain common
+ security errors, but -Werror=format-security was being silently ignored
+ because of upstream's use of -Wformat.  GCC7 now detects this conflict and
+ requires manual resolution, which we resolve in favor of enforcing the
+ security check.
+Author: Steve Langasek 
+Bug-Debian: https://bugs.debian.org/871156
+
+Index: pyfits-3.4/setup.cfg
+===
+--- pyfits-3.4.orig/setup.cfg
 pyfits-3.4/setup.cfg
+@@ -120,7 +120,6 @@
+   -Wno-unused-variable
+   -Wno-parentheses
+   -Wno-uninitialized
+-  -Wno-format
+   -Wno-strict-prototypes
+   -Wno-unused
+   -Wno-comments


Bug#871156: pyfits: FTBFS: cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]

2017-08-06 Thread Aurelien Jarno
On 2017-08-06 17:33, Lucas Nussbaum wrote:
> Source: pyfits
> Version: 1:3.4-4
> Severity: serious
> Tags: buster sid
> User: debian...@lists.debian.org
> Usertags: qa-ftbfs-20170805 qa-ftbfs
> Justification: FTBFS on amd64
> 
> Hi,
> 
> During a rebuild of all packages in sid, your package failed to build on
> amd64.
> 

JFTR, I filled a package removal bug for this package (#869858).
Unfortunately it still has a reverse dependency. Anyway it's better to
spend time on updating this reverse dependency instead of fixing pyfits.

Aurelien

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#871156: pyfits: FTBFS: cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]

2017-08-06 Thread Lucas Nussbaum
Source: pyfits
Version: 1:3.4-4
Severity: serious
Tags: buster sid
User: debian...@lists.debian.org
Usertags: qa-ftbfs-20170805 qa-ftbfs
Justification: FTBFS on amd64

Hi,

During a rebuild of all packages in sid, your package failed to build on
amd64.

Relevant part (hopefully):
> x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall 
> -Wstrict-prototypes -fno-strict-aliasing -g -O2 
> -fdebug-prefix-map=/<>=. -fstack-protector-strong -Wformat 
> -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC 
> -I/usr/lib/python2.7/dist-packages/numpy/core/include 
> -I/usr/include/python2.7 -c src/compressionmodule.c -o 
> build/temp.linux-amd64-2.7/src/compressionmodule.o 
> -Wno-declaration-after-statement -Wno-unused-variable -Wno-parentheses 
> -Wno-uninitialized -Wno-format -Wno-strict-prototypes -Wno-unused 
> -Wno-comments -Wno-switch
> cc1: error: -Wformat-security ignored without -Wformat 
> [-Werror=format-security]
> In file included from 
> /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1788:0,
>  from 
> /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:18,
>  from 
> /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:4,
>  from src/compressionmodule.c:97:
> /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2:
>  warning: #warning "Using deprecated NumPy API, disable it by " "#defining 
> NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
>  #warning "Using deprecated NumPy API, disable it by " \
>   ^~~
> src/compressionmodule.c: In function 'get_header_string':
> src/compressionmodule.c:255:14: warning: assignment makes integer from 
> pointer without a cast [-Wint-conversion]
>  *val = def;
>   ^
> cc1: some warnings being treated as errors
> building optional extension "pyfits.compression" failed: command 
> 'x86_64-linux-gnu-gcc' failed with exit status 1
> 
> 
> Failed to build PyFITS tile compression support.  PyFITS will still
> function, but without the ability to read or write compressed images.
> Please seek support from h...@stsci.edu if you need this capability.
> !
> running build_scripts
> creating build/scripts-2.7
> copying and adjusting scripts/fitscheck -> build/scripts-2.7
> copying and adjusting scripts/fitsdiff -> build/scripts-2.7
> copying and adjusting scripts/fitshead -> build/scripts-2.7
> changing mode of build/scripts-2.7/fitscheck from 664 to 775
> changing mode of build/scripts-2.7/fitsdiff from 664 to 775
> changing mode of build/scripts-2.7/fitshead from 664 to 775
> I: pybuild base:184: /usr/bin/python3.6 setup.py build 
> running build
> running build_py
> creating /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/file.py -> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/card.py -> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/verify.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/_numpy_hacks.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/py3compat.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/header.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/core.py -> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/_release.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/__init__.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/column.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/util.py -> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/convenience.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/version.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/diff.py -> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> copying pyfits/fitsrec.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits
> creating /<>/.pybuild/pythonX.Y_3.6/build/pyfits/_compat
> copying pyfits/_compat/__init__.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/_compat
> copying pyfits/_compat/weakref.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/_compat
> copying pyfits/_compat/odict.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/_compat
> creating /<>/.pybuild/pythonX.Y_3.6/build/pyfits/extern
> copying pyfits/extern/six.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/extern
> copying pyfits/extern/__init__.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/extern
> creating /<>/.pybuild/pythonX.Y_3.6/build/pyfits/hdu
> copying pyfits/hdu/table.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/hdu
> copying pyfits/hdu/image.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/hdu
> copying pyfits/hdu/__init__.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/hdu
> copying pyfits/hdu/compressed.py -> 
> /<>/.pybuild/pythonX.Y_3.6/build/pyfits/hdu
> copying pyfits/hdu/hdulist.py -> 
>