Accepting request 575264 from home:StefanBruens:branches:graphics

Make build reproducible

- Drop harmful modification of tclpkg/gv/gv_doc_langs.tcl, which
  changes the timestamp, although the file does not contain LIB_DIR.
  Graphviz ships prebuilt manpages in man and PDF format. Modifying
  the tcl script rebuilt the documentation, and replaced the PDFs
  with empty documents (due to missing groff). This also made the
  doc subpackage nonreproducible, causing rebuilds in all dependent
  packages.
- Disable guile 2.2 modifications temporarily
- Move lefty/dotty/lneato graph editor tools to x11 subpackage and
  build as part of addons package. Removes any X11 dependency from
  core package, both build and runtime.
- Drop unused libXaw6 build dependency
- move libpng, libjpeg, freetype and fontconfig build dependencies
  to addons, unused for core

OBS-URL: https://build.opensuse.org/request/show/575264
OBS-URL: https://build.opensuse.org/package/show/graphics/graphviz?expand=0&rev=127
This commit is contained in:
Marcus Meissner 2018-02-19 07:17:20 +00:00 committed by Git OBS Bridge
parent 13667de048
commit 8d59e14d73
4 changed files with 116 additions and 52 deletions

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Sat Feb 10 17:36:20 UTC 2018 - stefan.bruens@rwth-aachen.de
- Drop harmful modification of tclpkg/gv/gv_doc_langs.tcl, which
changes the timestamp, although the file does not contain LIB_DIR.
Graphviz ships prebuilt manpages in man and PDF format. Modifying
the tcl script rebuilt the documentation, and replaced the PDFs
with empty documents (due to missing groff). This also made the
doc subpackage nonreproducible, causing rebuilds in all dependent
packages.
-------------------------------------------------------------------
Thu Feb 8 18:22:25 UTC 2018 - stefan.bruens@rwth-aachen.de
- Disable guile 2.2 modifications temporarily
- Move lefty/dotty/lneato graph editor tools to x11 subpackage and
build as part of addons package. Removes any X11 dependency from
core package, both build and runtime.
- Drop unused libXaw6 build dependency
- move libpng, libjpeg, freetype and fontconfig build dependencies
to addons, unused for core
-------------------------------------------------------------------
Thu Jan 25 16:12:41 UTC 2018 - dimstar@opensuse.org

View File

@ -55,26 +55,17 @@ BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2) >= 2
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xaw6)
BuildRequires: pkgconfig(xaw7)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(zlib)
Requires: graphviz-plugins-core = %{version}
Recommends: graphviz-gd = %{version}
%if %{with extras}
BuildRequires: freeglut-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: perl
BuildRequires: php7-devel
BuildRequires: ruby-devel
@ -83,12 +74,20 @@ BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2) >= 2
BuildRequires: pkgconfig(gdlib)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gtkglext-1.0)
BuildRequires: pkgconfig(gts)
%if 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xaw7)
BuildRequires: pkgconfig(xext)
# Disabled until guile 2.2 lands
%if 0 && 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(guile-2.2)
%else
BuildRequires: pkgconfig(guile-2.0)
@ -169,6 +168,15 @@ Requires: java
A collection of tools and tcl packages for the manipulation and layout
of graphs (as in nodes and edges, not as in bar charts).
%package -n graphviz-x11
Summary: Graph editors based on X11
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz
%description -n graphviz-x11
The lefty/dotty/lneato X11 graph editors included with graphviz,
packaged separately to reduce build dependencies.
%package -n graphviz-lua
Summary: Lua extension for graphviz
Group: Productivity/Graphics/Visualization/Graph
@ -289,17 +297,12 @@ programs that use the graphviz libraries including man3 pages.
%patch6
%patch7
%patch8
%if 0%{?suse_version} >= 1500
sed "s/guile-2.0/guile-2.2/" configure.ac
%if 0 && 0%{?suse_version} >= 1500
sed "s/guile-2.0/guile-2.2/" -i configure.ac
%endif
rm -f contrib/gprof2dot.awk
# Fix path in generated man pages
sed -i \
-e 's$@LIB_DIR@$%{_libdir}$g' \
tclpkg/gv/gv_doc_langs.tcl
# Fix path for lua install
sed -i \
-e 's@LUA_INSTALL_DIR="/usr.*@LUA_INSTALL_DIR=%{lua_archdir}@' \
@ -317,7 +320,6 @@ export CFLAGS="$CFLAGS"
export CPPFLAGS="$CFLAGS"
export LDFLAGS="-pie"
%configure \
--with-x \
--disable-static \
--without-included-ltdl \
--disable-ltdl-install \
@ -325,6 +327,7 @@ export LDFLAGS="-pie"
--without-ming \
--disable-io \
%if %{with extras}
--with-x \
--with-qt \
--with-smyrna \
%else
@ -385,7 +388,6 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
rm -rf %{buildroot}%{_includedir}
rm -rf %{buildroot}%{_datadir}/graphviz/examples
rm -rf %{buildroot}%{_datadir}/graphviz/graphs
rm -rf %{buildroot}%{_datadir}/graphviz/lefty
rm -rf %{buildroot}%{_datadir}/graphviz/gvpr
rm -f %{buildroot}%{_mandir}/man3/*.3
rm -f %{buildroot}%{_mandir}/man7/*.7
@ -394,7 +396,7 @@ rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_core*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_dot_layout*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_neato_layout*
# binaries removal
for i in acyclic bcomps ccomps circo cluster dijkstra dot dot2gxl dot_builtins dotty edgepaint fdp gc gml2gv graphml2gv gv2gml gv2gxl gvcolor gvgen gvmap gvmap.sh gvpack gvpr gxl2dot gxl2gv lefty lneato mm2gv neato nop osage patchwork prune sccmap sfdp tred twopi unflatten vimdot; do
for i in acyclic bcomps ccomps circo cluster dijkstra dot dot2gxl dot_builtins edgepaint fdp gc gml2gv graphml2gv gv2gml gv2gxl gvcolor gvgen gvmap gvmap.sh gvpack gvpr gxl2dot gxl2gv mm2gv neato nop osage patchwork prune sccmap sfdp tred twopi unflatten vimdot; do
rm -f %{buildroot}%{_bindir}/$i
rm -f %{buildroot}%{_mandir}/man1/$i.1
done
@ -424,6 +426,8 @@ rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_pango*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_xlib*
# This is part of the gd subpkg only
rm -f %{buildroot}%{_mandir}/man1/diffimg.1
# This is part of the x11 subpkg only
rm -rf %{buildroot}%{_datadir}/graphviz/lefty
%endif
# Remove wrongly located docs
rm -rf %{buildroot}%{_datadir}/%{mname}/doc
@ -497,6 +501,16 @@ fi
%{lua_archdir}/gv.so
%{_mandir}/man3/gv.3lua%{ext_man}
%files -n graphviz-x11
%doc COPYING
%{_bindir}/dotty
%{_bindir}/lefty
%{_bindir}/lneato
%{_datadir}/%{mname}/lefty
%{_mandir}/man1/dotty.1%{ext_man}
%{_mandir}/man1/lefty.1%{ext_man}
%{_mandir}/man1/lneato.1%{ext_man}
%if %{with ocaml}
%files -n graphviz-ocaml
%{_libdir}/graphviz/ocaml
@ -549,7 +563,6 @@ fi
%{_bindir}/dot
%{_bindir}/dot2gxl
%{_bindir}/dot_builtins
%{_bindir}/dotty
%{_bindir}/edgepaint
%{_bindir}/fdp
%{_bindir}/gc
@ -565,8 +578,6 @@ fi
%{_bindir}/gvpr
%{_bindir}/gxl2dot
%{_bindir}/gxl2gv
%{_bindir}/lefty
%{_bindir}/lneato
%{_bindir}/mm2gv
%{_bindir}/neato
%{_bindir}/nop
@ -579,7 +590,6 @@ fi
%{_bindir}/twopi
%{_bindir}/unflatten
%dir %{_datadir}/%{mname}
%{_datadir}/%{mname}/lefty
%{_datadir}/%{mname}/graphs
%dir %{_datadir}/%{mname}/gvpr
%{_datadir}/%{mname}/gvpr/addranks

View File

@ -1,3 +1,25 @@
-------------------------------------------------------------------
Sat Feb 10 17:36:20 UTC 2018 - stefan.bruens@rwth-aachen.de
- Drop harmful modification of tclpkg/gv/gv_doc_langs.tcl, which
changes the timestamp, although the file does not contain LIB_DIR.
Graphviz ships prebuilt manpages in man and PDF format. Modifying
the tcl script rebuilt the documentation, and replaced the PDFs
with empty documents (due to missing groff). This also made the
doc subpackage nonreproducible, causing rebuilds in all dependent
packages.
-------------------------------------------------------------------
Thu Feb 8 18:22:25 UTC 2018 - stefan.bruens@rwth-aachen.de
- Disable guile 2.2 modifications temporarily
- Move lefty/dotty/lneato graph editor tools to x11 subpackage and
build as part of addons package. Removes any X11 dependency from
core package, both build and runtime.
- Drop unused libXaw6 build dependency
- move libpng, libjpeg, freetype and fontconfig build dependencies
to addons, unused for core
-------------------------------------------------------------------
Thu Jan 25 16:12:41 UTC 2018 - dimstar@opensuse.org

View File

@ -55,26 +55,17 @@ BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2) >= 2
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xaw6)
BuildRequires: pkgconfig(xaw7)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(zlib)
Requires: graphviz-plugins-core = %{version}
Recommends: graphviz-gd = %{version}
%if %{with extras}
BuildRequires: freeglut-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: perl
BuildRequires: php7-devel
BuildRequires: ruby-devel
@ -83,12 +74,20 @@ BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(freetype2) >= 2
BuildRequires: pkgconfig(gdlib)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gtkglext-1.0)
BuildRequires: pkgconfig(gts)
%if 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xaw7)
BuildRequires: pkgconfig(xext)
# Disabled until guile 2.2 lands
%if 0 && 0%{?suse_version} >= 1500
BuildRequires: pkgconfig(guile-2.2)
%else
BuildRequires: pkgconfig(guile-2.0)
@ -169,6 +168,15 @@ Requires: java
A collection of tools and tcl packages for the manipulation and layout
of graphs (as in nodes and edges, not as in bar charts).
%package -n graphviz-x11
Summary: Graph editors based on X11
Group: Productivity/Graphics/Visualization/Graph
Requires: graphviz
%description -n graphviz-x11
The lefty/dotty/lneato X11 graph editors included with graphviz,
packaged separately to reduce build dependencies.
%package -n graphviz-lua
Summary: Lua extension for graphviz
Group: Productivity/Graphics/Visualization/Graph
@ -289,17 +297,12 @@ programs that use the graphviz libraries including man3 pages.
%patch6
%patch7
%patch8
%if 0%{?suse_version} >= 1500
sed "s/guile-2.0/guile-2.2/" configure.ac
%if 0 && 0%{?suse_version} >= 1500
sed "s/guile-2.0/guile-2.2/" -i configure.ac
%endif
rm -f contrib/gprof2dot.awk
# Fix path in generated man pages
sed -i \
-e 's$@LIB_DIR@$%{_libdir}$g' \
tclpkg/gv/gv_doc_langs.tcl
# Fix path for lua install
sed -i \
-e 's@LUA_INSTALL_DIR="/usr.*@LUA_INSTALL_DIR=%{lua_archdir}@' \
@ -317,7 +320,6 @@ export CFLAGS="$CFLAGS"
export CPPFLAGS="$CFLAGS"
export LDFLAGS="-pie"
%configure \
--with-x \
--disable-static \
--without-included-ltdl \
--disable-ltdl-install \
@ -325,6 +327,7 @@ export LDFLAGS="-pie"
--without-ming \
--disable-io \
%if %{with extras}
--with-x \
--with-qt \
--with-smyrna \
%else
@ -385,7 +388,6 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig
rm -rf %{buildroot}%{_includedir}
rm -rf %{buildroot}%{_datadir}/graphviz/examples
rm -rf %{buildroot}%{_datadir}/graphviz/graphs
rm -rf %{buildroot}%{_datadir}/graphviz/lefty
rm -rf %{buildroot}%{_datadir}/graphviz/gvpr
rm -f %{buildroot}%{_mandir}/man3/*.3
rm -f %{buildroot}%{_mandir}/man7/*.7
@ -394,7 +396,7 @@ rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_core*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_dot_layout*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_neato_layout*
# binaries removal
for i in acyclic bcomps ccomps circo cluster dijkstra dot dot2gxl dot_builtins dotty edgepaint fdp gc gml2gv graphml2gv gv2gml gv2gxl gvcolor gvgen gvmap gvmap.sh gvpack gvpr gxl2dot gxl2gv lefty lneato mm2gv neato nop osage patchwork prune sccmap sfdp tred twopi unflatten vimdot; do
for i in acyclic bcomps ccomps circo cluster dijkstra dot dot2gxl dot_builtins edgepaint fdp gc gml2gv graphml2gv gv2gml gv2gxl gvcolor gvgen gvmap gvmap.sh gvpack gvpr gxl2dot gxl2gv mm2gv neato nop osage patchwork prune sccmap sfdp tred twopi unflatten vimdot; do
rm -f %{buildroot}%{_bindir}/$i
rm -f %{buildroot}%{_mandir}/man1/$i.1
done
@ -424,6 +426,8 @@ rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_pango*
rm -f %{buildroot}%{_libdir}/graphviz/libgvplugin_xlib*
# This is part of the gd subpkg only
rm -f %{buildroot}%{_mandir}/man1/diffimg.1
# This is part of the x11 subpkg only
rm -rf %{buildroot}%{_datadir}/graphviz/lefty
%endif
# Remove wrongly located docs
rm -rf %{buildroot}%{_datadir}/%{mname}/doc
@ -497,6 +501,16 @@ fi
%{lua_archdir}/gv.so
%{_mandir}/man3/gv.3lua%{ext_man}
%files -n graphviz-x11
%doc COPYING
%{_bindir}/dotty
%{_bindir}/lefty
%{_bindir}/lneato
%{_datadir}/%{mname}/lefty
%{_mandir}/man1/dotty.1%{ext_man}
%{_mandir}/man1/lefty.1%{ext_man}
%{_mandir}/man1/lneato.1%{ext_man}
%if %{with ocaml}
%files -n graphviz-ocaml
%{_libdir}/graphviz/ocaml
@ -549,7 +563,6 @@ fi
%{_bindir}/dot
%{_bindir}/dot2gxl
%{_bindir}/dot_builtins
%{_bindir}/dotty
%{_bindir}/edgepaint
%{_bindir}/fdp
%{_bindir}/gc
@ -565,8 +578,6 @@ fi
%{_bindir}/gvpr
%{_bindir}/gxl2dot
%{_bindir}/gxl2gv
%{_bindir}/lefty
%{_bindir}/lneato
%{_bindir}/mm2gv
%{_bindir}/neato
%{_bindir}/nop
@ -579,7 +590,6 @@ fi
%{_bindir}/twopi
%{_bindir}/unflatten
%dir %{_datadir}/%{mname}
%{_datadir}/%{mname}/lefty
%{_datadir}/%{mname}/graphs
%dir %{_datadir}/%{mname}/gvpr
%{_datadir}/%{mname}/gvpr/addranks