Merge pull request #4096 from stapelberg/meson-fixes

meson fixes for unbreaking the Debian/Ubuntu package builds on Travis
This commit is contained in:
Michael Stapelberg
2020-05-19 19:59:42 +02:00
committed by GitHub
7 changed files with 87 additions and 58 deletions

View File

@ -34,7 +34,7 @@ script:
# # TODO(autotools-removal): autoconf build has to keep working until i3 4.19
# is released, so we keep building it in travis.
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} /bin/sh -c 'autoreconf -fi && mkdir -p build && cd build && (../configure || (cat config.log; false)) && make -j CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Werror -fno-common"'
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} /bin/sh -c 'rm -rf build; mkdir -p build && cd build && CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Werror -fno-common" meson .. -Ddocs=true -Dmans=true -Db_sanitize=address && ninja -v'
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} /bin/sh -c 'rm -rf build; mkdir -p build && cd build && CFLAGS="-Wformat -Wformat-security -Wextra -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Werror -fno-common" meson .. -Ddocs=true -Dmans=true -Db_sanitize=address && ninja -v && mkdir ../distbuild && cd ../distbuild && meson .. -Ddocs=true -Dmans=true && ninja -v dist'
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/check-spelling.pl
- docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 -e CC ${BASENAME} ./travis/run-tests.sh
- ./travis/skip-pkg.sh || docker run -v $PWD:/usr/src/i3/ -w /usr/src/i3 ${BASENAME} ./travis/debian-build.sh deb/debian-amd64/DIST

32
debian/i3-wm.docs vendored
View File

@ -1,32 +0,0 @@
docs/debugging.html
docs/hacking-howto.html
docs/i3bar-protocol.html
docs/userguide.html
docs/bigpicture.png
docs/single_terminal.png
docs/snapping.png
docs/two_columns.png
docs/two_terminals.png
docs/modes.png
docs/ipc.html
docs/multi-monitor.html
docs/wsbar.html
docs/wsbar.png
docs/keyboard-layer1.png
docs/keyboard-layer2.png
docs/testsuite.html
docs/i3-sync-working.png
docs/i3-sync.png
docs/tree-layout1.png
docs/tree-layout2.png
docs/tree-shot1.png
docs/tree-shot2.png
docs/tree-shot3.png
docs/tree-shot4.png
docs/refcard.html
docs/refcard_style.css
docs/logo-30.png
docs/lib-i3test.html
docs/lib-i3test-test.html
docs/layout-saving.html
docs/layout-saving-1.png

13
debian/i3-wm.manpages vendored
View File

@ -1,13 +0,0 @@
man/i3.1
man/i3-msg.1
man/i3-input.1
man/i3-nagbar.1
man/i3-config-wizard.1
man/i3-dump-log.1
man/i3-migrate-config-to-v4.1
man/i3-sensible-pager.1
man/i3-sensible-editor.1
man/i3-sensible-terminal.1
man/i3-dmenu-desktop.1
man/i3-save-tree.1
man/i3bar.1

11
debian/rules vendored
View File

@ -13,13 +13,18 @@ override_dh_strip:
override_dh_auto_test:
# TODO: enable tests
# TODO(autotools-removal): remove this override:
override_dh_autoreconf:
# Not needed with meson, but not a no-op either until we get rid of the
# autotools files.
override_dh_auto_configure:
# The default is /usr/share/doc/i3
dh_auto_configure -- --docdir=/usr/share/doc/i3-wm
# Set -Ddocdir; the default is /usr/share/doc/i3
dh_auto_configure -- -Ddocdir=/usr/share/doc/i3-wm
override_dh_builddeb:
# bintray does not support xz currently.
dh_builddeb -- -Zgzip
%:
dh $@ --buildsystem=meson+ninja
dh $@ --buildsystem=meson

View File

@ -71,6 +71,11 @@ config_h = declare_dependency(
# docs generation
################################################################################
docdir = get_option('docdir')
if docdir == ''
docdir = join_paths(get_option('datadir'), 'doc', 'i3')
endif
if get_option('docs')
asciidoc = find_program('asciidoc')
doc_toc_inputs = [
@ -96,7 +101,7 @@ if get_option('docs')
'@INPUT@',
],
install: true,
install_dir: join_paths(get_option('datadir'), 'doc', 'i3'),
install_dir: docdir,
)
endforeach
@ -115,11 +120,54 @@ if get_option('docs')
'@INPUT@',
],
install: true,
install_dir: join_paths(get_option('datadir'), 'doc', 'i3'),
install_dir: docdir,
)
endforeach
else
install_data(
[
'docs/hacking-howto.html',
'docs/userguide.html',
'docs/ipc.html',
'docs/multi-monitor.html',
'docs/wsbar.html',
'docs/testsuite.html',
'docs/i3bar-protocol.html',
'docs/layout-saving.html',
'docs/debugging.html',
],
install_dir: docdir,
)
endif
install_data(
[
'docs/bigpicture.png',
'docs/single_terminal.png',
'docs/snapping.png',
'docs/two_columns.png',
'docs/two_terminals.png',
'docs/modes.png',
'docs/wsbar.png',
'docs/keyboard-layer1.png',
'docs/keyboard-layer2.png',
'docs/i3-sync-working.png',
'docs/i3-sync.png',
'docs/tree-layout1.png',
'docs/tree-layout2.png',
'docs/tree-shot1.png',
'docs/tree-shot2.png',
'docs/tree-shot3.png',
'docs/tree-shot4.png',
'docs/refcard.html',
'docs/refcard_style.css',
'docs/logo-30.png',
'docs/layout-saving-1.png',
],
install_dir: docdir,
)
if meson.version().version_compare('>=0.53')
summary('build docs (-Ddocs)', get_option('docs'))
endif
@ -128,6 +176,8 @@ endif
# manpages
################################################################################
man1 = join_paths(get_option('mandir'), 'man1')
if get_option('mans')
asciidoc = find_program('asciidoc')
asciidoc_cdata = configuration_data()
@ -186,7 +236,7 @@ if get_option('mans')
# https://github.com/mesonbuild/meson/issues/4981#issuecomment-467084867
# https://github.com/mesonbuild/meson/issues/1550#issuecomment-370164307
install: true,
install_dir: join_paths(get_option('mandir'), 'man1'),
install_dir: man1,
)
endforeach
@ -209,9 +259,29 @@ if get_option('mans')
# https://github.com/mesonbuild/meson/issues/4981#issuecomment-467084867
# https://github.com/mesonbuild/meson/issues/1550#issuecomment-370164307
install: true,
install_dir: join_paths(get_option('mandir'), 'man1'),
install_dir: man1,
)
endforeach
else
install_data(
[
'man/i3.1',
'man/i3bar.1',
'man/i3-msg.1',
'man/i3-input.1',
'man/i3-nagbar.1',
'man/i3-config-wizard.1',
'man/i3-migrate-config-to-v4.1',
'man/i3-sensible-editor.1',
'man/i3-sensible-pager.1',
'man/i3-sensible-terminal.1',
'man/i3-dump-log.1',
'man/i3-dmenu-desktop.1',
'man/i3-save-tree.1',
],
install_dir: man1,
)
endif
if meson.version().version_compare('>=0.53')

View File

@ -5,3 +5,6 @@ option('docs', type: 'boolean', value: false,
option('mans', type: 'boolean', value: false,
description: 'Build manpages from source (release tarballs contain a generated copy)')
option('docdir', type: 'string', value: '',
description: 'documentation directory (default: $datadir/docs/i3)')

View File

@ -5,14 +5,10 @@ set -x
DEST=$1
mkdir -p build
cd build
../configure
make echo-version > ../I3_VERSION
make dist-bzip2
# unpack dist tarball
mkdir -p "${DEST}"
tar xf *.tar.bz2 -C "${DEST}" --strip-components=1
tar xf meson-dist/*.tar.xz -C "${DEST}" --strip-components=1
cp -r ../debian "${DEST}"
sed -i '/^\s*libxcb-xrm-dev/d' deb/ubuntu-*/DIST/debian/control || true
cd "${DEST}"