From 2fb2ef60de6b34919828e75f5a46324840b66608 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 5 May 2020 17:37:32 +0200 Subject: [PATCH 1/4] travis: Dockerfile: Add build-essential (#4065) Fixes the recent travis failures --- travis/travis-base-386.Dockerfile | 2 +- travis/travis-base-ubuntu-386.Dockerfile | 2 +- travis/travis-base-ubuntu.Dockerfile | 2 +- travis/travis-base.Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/travis/travis-base-386.Dockerfile b/travis/travis-base-386.Dockerfile index 355c2588f..4649b8b46 100644 --- a/travis/travis-base-386.Dockerfile +++ b/travis/travis-base-386.Dockerfile @@ -18,7 +18,7 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry RUN linux32 apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ dpkg-dev devscripts git equivs \ - clang clang-format-6.0 \ + build-essential clang clang-format-6.0 \ lintian && \ rm -rf /var/lib/apt/lists/* diff --git a/travis/travis-base-ubuntu-386.Dockerfile b/travis/travis-base-ubuntu-386.Dockerfile index d52df4b82..4aff0a8c6 100644 --- a/travis/travis-base-ubuntu-386.Dockerfile +++ b/travis/travis-base-ubuntu-386.Dockerfile @@ -18,7 +18,7 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry RUN linux32 apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ dpkg-dev devscripts git equivs \ - clang clang-format-6.0 \ + build-essential clang clang-format-6.0 \ lintian && \ rm -rf /var/lib/apt/lists/* diff --git a/travis/travis-base-ubuntu.Dockerfile b/travis/travis-base-ubuntu.Dockerfile index d1057a390..dd2877270 100644 --- a/travis/travis-base-ubuntu.Dockerfile +++ b/travis/travis-base-ubuntu.Dockerfile @@ -19,7 +19,7 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ dpkg-dev devscripts git equivs \ - clang clang-format-6.0 \ + build-essential clang clang-format-6.0 \ lintian && \ rm -rf /var/lib/apt/lists/* diff --git a/travis/travis-base.Dockerfile b/travis/travis-base.Dockerfile index def7598df..b85c31835 100644 --- a/travis/travis-base.Dockerfile +++ b/travis/travis-base.Dockerfile @@ -17,7 +17,7 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ dpkg-dev devscripts git equivs \ - clang clang-format-6.0 \ + build-essential clang clang-format-6.0 \ lintian \ libmodule-install-perl libanyevent-perl libextutils-pkgconfig-perl xcb-proto cpanminus xvfb xserver-xephyr xauth libinline-perl libinline-c-perl libxml-simple-perl libmouse-perl libmousex-nativetraits-perl libextutils-depends-perl perl libtest-deep-perl libtest-exception-perl libxml-parser-perl libtest-simple-perl libtest-fatal-perl libdata-dump-perl libtest-differences-perl libxml-tokeparser-perl libipc-run-perl libxcb-xtest0-dev libx11-xcb-perl libjson-xs-perl x11-xserver-utils && \ rm -rf /var/lib/apt/lists/* From 666906b517ef649dfefee5b54c24c2d330d4fe18 Mon Sep 17 00:00:00 2001 From: Konstantin Kharlamov Date: Tue, 5 May 2020 19:00:11 +0300 Subject: [PATCH 2/4] Makefile.am: make sure i3-config-wizard depends on libi3.a (#4069) i3-config-wizard uses libi3.a as part of its build process. When parallel build is enabled, build of i3-config-wizard may start before libi3.a finished building. Fix this by adding dependency on libi3.a Fixes: #4020 --- Makefile.am | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index d85167b01..f4d2631a6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -442,7 +442,8 @@ i3_config_wizard_i3_config_wizard_SOURCES = \ i3-config-wizard/xcb.h i3_config_wizard_i3_config_wizard_DEPENDENCIES = \ - $(config_parser_SOURCES) + $(config_parser_SOURCES) \ + $(top_builddir)/libi3.a test_inject_randr15_CPPFLAGS = \ $(AM_CPPFLAGS) From 6a37114af1edc03f1fb7b2da5204fa28130a9cd1 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 5 May 2020 18:13:19 +0200 Subject: [PATCH 3/4] Makefile.am: Use BUILT_SOURCES for GENERATED headers (#4068) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous fix when using _DEPENDENCIES was wrong because that dependency is only created for the final executable. However, the build fails when building the object file. The manual explicitly mentions that using _DEPENDENCIES is wrong for source files: > In rare cases you may need to add other kinds of files such as linker > scripts, but listing a source file in _DEPENDENCIES is wrong. If some > source file needs to be built before all the components of a program > are built, consider using the BUILT_SOURCES variable instead (see > Sources). https://www.gnu.org/software/automake/manual/automake.html#Linking Instead, using BUILT_SOURCES works, as mentioned in the manual. https://www.gnu.org/software/automake/manual/automake.html#Sources I have also removed the dependencies from i3_SOURCES since AFAIK dependencies to header files don't do anything. I have verified that modifying the header correctly re-triggers the build for i3 & i3-config-wizard. > Header files listed in a _SOURCES definition will be included in the > distribution but otherwise ignored. In case it isn’t obvious, you > should not include the header file generated by configure in a > _SOURCES variable; this file should not be distributed. Lex (.l) and > Yacc (.y) files can also be listed; see Yacc and Lex. https://www.gnu.org/software/automake/manual/automake.html#Program-Sources An alternative instead of BUILT_SOURCES that should also work in our case is found in this section: https://www.gnu.org/software/automake/manual/automake.html#Built-Sources-Example see "Recording Dependencies manually". The syntax would be: foo.$(OBJEXT): $(config_parser_SOURCES) $(command_parser_SOURCES) The benefit of this over BUILT_SOURCES is that it will work for targets other than 'all', 'check' and 'install'. However, since we don't really have such targets we don't need to do this right now. Tested extensively using this script: #!/bin/bash set -x autoreconf -fi while mkdir build && cd build && ../configure && make -j; do cd .. rm -rf build done Fixes #3670 --- Makefile.am | 5 ++--- RELEASE-NOTES-next | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.am b/Makefile.am index f4d2631a6..1a28c7fcc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -442,7 +442,6 @@ i3_config_wizard_i3_config_wizard_SOURCES = \ i3-config-wizard/xcb.h i3_config_wizard_i3_config_wizard_DEPENDENCIES = \ - $(config_parser_SOURCES) \ $(top_builddir)/libi3.a test_inject_randr15_CPPFLAGS = \ @@ -496,9 +495,9 @@ config_parser_SOURCES = \ parser/GENERATED_config_tokens.h \ parser/GENERATED_config_call.h +BUILT_SOURCES = $(command_parser_SOURCES) $(config_parser_SOURCES) + i3_SOURCES = \ - $(command_parser_SOURCES) \ - $(config_parser_SOURCES) \ include/all.h \ include/assignments.h \ include/atoms_NET_SUPPORTED.xmacro \ diff --git a/RELEASE-NOTES-next b/RELEASE-NOTES-next index e8a5dd861..c52a49ad9 100644 --- a/RELEASE-NOTES-next +++ b/RELEASE-NOTES-next @@ -32,3 +32,4 @@ strongly encouraged to upgrade. • do not focus floating windows changing workspace with ConfigureNotify • i3-dmenu-desktop: Support symlinks in search path • build: correctly provide auxiliary functions when needed + • build: fix issues with parallel build From b8f3c5b2841a5b5a0b97e2b513728e254f2b8a18 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Tue, 5 May 2020 19:14:04 +0200 Subject: [PATCH 4/4] Re-add v4.18.1 release notes (#4071) Fixes travis builds on next (non-PR) Closes #4040 --- RELEASE-NOTES-4.18.1 | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 RELEASE-NOTES-4.18.1 diff --git a/RELEASE-NOTES-4.18.1 b/RELEASE-NOTES-4.18.1 new file mode 100644 index 000000000..c05180f8d --- /dev/null +++ b/RELEASE-NOTES-4.18.1 @@ -0,0 +1,32 @@ + + ┌──────────────────────────────┐ + │ Release notes for i3 v4.18.1 │ + └──────────────────────────────┘ + +This is i3 v4.18.1. This version is considered stable. All users of i3 are +strongly encouraged to upgrade. + +This is a bugfix release for v4.18. + + ┌────────────────────────────┐ + │ Bugfixes │ + └────────────────────────────┘ + + • Move parent nodes in scratchpad correctly + • i3bar: Call cont_child() more liberally + • Fix load_layout crash when floating node doesn't have CT_FLOATING_CON parent + • Fix SEGFAULT when i3bar receives invalid input + • Revert "floating_reposition: avoid extra tree_render" + • Call tree_render if floating move changes workspace + • Update EWMH properties on workspace move + • cmd_focus_sibling: Fix crash on workspace level + + ┌────────────────────────────┐ + │ Thanks! │ + └────────────────────────────┘ + +Thanks for testing, bugfixes, discussions and everything I forgot go out to: + + Heman Gandhi, Orestis Floros + +-- Michael Stapelberg, 2020-04-22