Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package poke for openSUSE:Factory checked in at 2022-09-20 19:23:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/poke (Old) and /work/SRC/openSUSE:Factory/.poke.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poke" Tue Sep 20 19:23:57 2022 rev:5 rq:1004909 version:2.4 Changes: -------- --- /work/SRC/openSUSE:Factory/poke/poke.changes 2021-12-05 22:46:43.753521300 +0100 +++ /work/SRC/openSUSE:Factory/.poke.new.2083/poke.changes 2022-09-20 19:24:03.378555379 +0200 @@ -1,0 +2,18 @@ +Wed Sep 7 18:53:40 UTC 2022 - Antoine Belvire <[email protected]> + +- Update to 2.4: + * Lot of changes since 1.4, see packaged NEWS for details. +- Add jitter-0.9.284-noexec-stack-arm-i586.patch: Make sure the stack + is defined as non-executable in jitter on arm and i586. +- Trim not strictly needed build requirements. +- Recommend a handler for opening app:// hyperlinks. +- Move Emacs support from poke to emacs-poke. +- Package new vim support in vim-poke. +- Enable tests. + +------------------------------------------------------------------- +Thu Aug 11 11:07:46 UTC 2022 - Dirk M??ller <[email protected]> + +- remove unused lua53 buildrequires + +------------------------------------------------------------------- Old: ---- poke-1.4.tar.gz poke-1.4.tar.gz.sig New: ---- jitter-0.9.284-noexec-stack-arm-i586.patch poke-2.4.tar.gz poke-2.4.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ poke.spec ++++++ --- /var/tmp/diff_new_pack.aP0ydm/_old 2022-09-20 19:24:04.006557180 +0200 +++ /var/tmp/diff_new_pack.aP0ydm/_new 2022-09-20 19:24:04.014557203 +0200 @@ -1,7 +1,7 @@ # # spec file for package poke # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,36 +18,30 @@ %define sover 0 Name: poke -Version: 1.4 +Version: 2.4 Release: 0 Summary: An interactive, extensible editor for binary data License: GPL-3.0-or-later URL: https://www.gnu.org/software/poke/ -Source: https://ftp.gnu.org/gnu/poke/%{name}-%{version}.tar.gz -Source2: https://ftp.gnu.org/gnu/poke/%{name}-%{version}.tar.gz.sig -Source3: https://savannah.gnu.org/people/viewgpg.php?user_id=829#/%{name}.keyring -BuildRequires: autoconf >= 2.62 -BuildRequires: automake >= 1.16 -BuildRequires: bison >= 3.6 +Source0: https://ftp.gnu.org/gnu/poke/%{name}-%{version}.tar.gz +Source1: https://ftp.gnu.org/gnu/poke/%{name}-%{version}.tar.gz.sig +Source2: https://savannah.gnu.org/people/viewgpg.php?user_id=829#/%{name}.keyring +# PATCH-FIX-UPSTREAM jitter-0.9.284-noexec-stack-arm-i586.patch -- Make sure stack is not executable on arm and i586 +Patch0: jitter-0.9.284-noexec-stack-arm-i586.patch +BuildRequires: automake BuildRequires: dejagnu -BuildRequires: flex >= 2.5.37 BuildRequires: gawk -BuildRequires: gettext >= 0.18.2 -BuildRequires: help2man -BuildRequires: libtool -BuildRequires: lua53 -BuildRequires: makeinfo >= 6.0 BuildRequires: pkgconfig BuildRequires: pkgconfig(bdw-gc) BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(libnbd) -# /SECTION %if 0%{?suse_version} > 1500 BuildRequires: libtextstyle-devel BuildRequires: pkgconfig(readline) %else BuildRequires: readline-devel %endif +Recommends: mimehandler(x-scheme-handler/app) %description GNU poke is an interactive, extensible editor for binary data. Not limited to @@ -68,43 +62,89 @@ %description -n lib%{name}%{sover} Contains support library for %{name}. +%package -n emacs-%{name} +Summary: Emacs support for %{name} +Requires: %{name} = %{version} +Requires: emacs +Supplements: (emacs and %{name}) +BuildArch: noarch + +%description -n emacs-%{name} +Provides Emacs support for %{name}. + +%package -n vim-%{name} +Summary: Vim support for %{name} +Requires: %{name} = %{version} +Requires: vim +Supplements: (vim and %{name}) +BuildArch: noarch + +%description -n vim-poke +Provides Vim support for %{name}. + %prep -%autosetup +%setup -q +%patch0 -p1 -d jitter %build +# run autoreconf in jitter as Patch0 modifies jitter/configure.ac +autoreconf jitter +# jitter fails to build with LTO, disable it for now +%define _lto_cflags %{nil} %configure \ --disable-static \ --enable-mi - %make_build %install %make_install find %{buildroot} -type f -name "*.la" -delete -print +%check +%make_build check + %post -n lib%{name}%{sover} -p /sbin/ldconfig %postun -n lib%{name}%{sover} -p /sbin/ldconfig %files %license COPYING -%doc README AUTHORS +%doc README AUTHORS NEWS %{_bindir}/%{name} +%{_bindir}/pk-bin2poke %{_bindir}/pk-elfextractor %{_bindir}/pk-strings %{_datadir}/%{name} -%{_datadir}/emacs/site-lisp/* %{_infodir}/%{name}.info%{?ext_info} %{_infodir}/%{name}.info-1%{?ext_info} %{_infodir}/%{name}.info-2%{?ext_info} +%{_infodir}/%{name}.info-3%{?ext_info} %{_mandir}/man1/%{name}.1%{?ext_man} %files devel %license COPYING %{_includedir}/libpoke.h %{_libdir}/lib%{name}.so +%{_libdir}/pkgconfig/poke.pc %files -n lib%{name}%{sover} %license COPYING %{_libdir}/lib%{name}.so.%{sover}* +%files -n emacs-%{name} +%license COPYING +%dir %{_datadir}/emacs +%dir %{_datadir}/emacs/site-lisp +%{_datadir}/emacs/site-lisp/poke-map-mode.el +%{_datadir}/emacs/site-lisp/poke-mode.el +%{_datadir}/emacs/site-lisp/poke-ras-mode.el + +%files -n vim-%{name} +%license COPYING +%dir %{_datadir}/vim +%dir %{_datadir}/vim/vimfiles +%dir %{_datadir}/vim/vimfiles/ftdetect +%{_datadir}/vim/vimfiles/ftdetect/poke.vim +%dir %{_datadir}/vim/vimfiles/syntax +%{_datadir}/vim/vimfiles/syntax/poke.vim + %changelog ++++++ jitter-0.9.284-noexec-stack-arm-i586.patch ++++++ >From 13afef630c7c1df244150d5828cd295f1363f380 Mon Sep 17 00:00:00 2001 From: Luca Saiu <[email protected]> Date: Wed, 7 Sep 2022 01:38:17 +0200 Subject: [PATCH] support non-executable stacks on more architectures Ensure that the stack is not unintentionally made executable in more cases by not relying on the architecture being known for .section .note.GNU-stack, "", @progbits . Also support the alternative ARM syntax. * jitter/jitter-machine-common.S (.section .note.GNU-stack, "", @progbits): Move code and comments out of the large CPP conditional. Add another equivalent line guarded by JITTER_HAVE_SECTION_NOTE_GNU_STACK_IN_ARM_SYNTAX for the alternative syntax. No longer depend on ELF, by switching from .previous to a more crude but portable .text * configure.ac: New check for .note-GNU-stack section support in ARM syntax. (ac_cv_have_section_note_gnu_stack_in_arm_syntax): New shell variable. (JITTER_HAVE_SECTION_NOTE_GNU_STACK_IN_ARM_SYNTAX): New CPP feature macro. * jitter/jitter-config.h.in (JITTER_HAVE_SECTION_NOTE_GNU_STACK_IN_ARM_SYNTAX): New feature macro. Thanks to Antoine Belvire for reporting the problem. My fix is a little different from what he suggested. --- configure.ac | 21 ++++++++++ jitter/jitter-config.h.in | 2 + jitter/jitter-machine-common.S | 71 ++++++++++++++++++++-------------- 3 files changed, 66 insertions(+), 28 deletions(-) diff --git a/configure.ac b/configure.ac index 24e8216..da2ead9 100644 --- a/configure.ac +++ b/configure.ac @@ -1421,6 +1421,27 @@ if test "x$ac_cv_have_section_note_gnu_stack" = "xyes"; then [Define if the platform supports a .note.GNU-stack section.]) fi +# Same in ARM syntax. Notice that we check this on every architecture, not +# only ARM: this is the Autoconf way, and may prevent future problems in case +# other architectures have the same quirk. +AC_CACHE_CHECK([for .note-GNU-stack section support in ARM syntax], + [ac_cv_have_section_note_gnu_stack_in_arm_syntax], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[]], + [[/* The section prefix character here is '%' instead of '@'. */ + asm volatile (".section .note.GNU-stack, \"\", %progbits\n" + ".previous"); + ]])], + [ac_cv_have_section_note_gnu_stack_in_arm_syntax=yes], + [ac_cv_have_section_note_gnu_stack_in_arm_syntax=no])]) +if test "x$ac_cv_have_section_note_gnu_stack_in_arm_syntax" = "xyes"; then + AC_DEFINE([JITTER_HAVE_SECTION_NOTE_GNU_STACK_IN_ARM_SYNTAX], [1], + [Define if the platform supports a .note.GNU-stack section using + ARM assembly syntax for section prefixes instead of the syntax + that works for most architectures.]) +fi + # Check for specific functions or "declarations" in the C library. ################################################################## diff --git a/jitter/jitter-config.h.in b/jitter/jitter-config.h.in index a8d01b8..0e6bfb4 100644 --- a/jitter/jitter-config.h.in +++ b/jitter/jitter-config.h.in @@ -2,6 +2,7 @@ Copyright (C) 2017, 2019, 2020, 2021 Luca Saiu Updated in 2021 by pEp foundation (JITTER_HOST_OS_IS_ANDROID) + Updated in 2022 by Luca Saiu Written by Luca Saiu This file is part of GNU Jitter. @@ -172,6 +173,7 @@ #undef JITTER_HOST_OS_IS_COFF #undef JITTER_HOST_OS_IS_MACHO #undef JITTER_HAVE_SECTION_NOTE_GNU_STACK +#undef JITTER_HAVE_SECTION_NOTE_GNU_STACK_IN_ARM_SYNTAX /* Assembler flavour. */ #undef JITTER_HOST_ASSEMBLER_IS_GNU diff --git a/jitter/jitter-machine-common.S b/jitter/jitter-machine-common.S index 87309db..a693c03 100644 --- a/jitter/jitter-machine-common.S +++ b/jitter/jitter-machine-common.S @@ -1,6 +1,6 @@ /* VM library: macros to be optionally included in architecture-specific asm. - Copyright (C) 2017, 2019 Luca Saiu + Copyright (C) 2017, 2019, 2022 Luca Saiu Updated in 2020 by Luca Saiu Written by Luca Saiu @@ -48,7 +48,7 @@ #include <jitter/jitter-cpp.h> -/* Expand to nothing if we have no assembly support. +/* Expand to nothing except stack executability if we have no assembly support. * ************************************************************************** */ /* If in this configuration the assembler is not Gas or we do not know its @@ -87,32 +87,6 @@ #endif // #if JITTER_SIZEOF_VOID_P == ... - - -/* Stack executability not required. - * ************************************************************************** */ - -/* Do not require an executable stack. Jitter, or a Jittery VM runtime, never - directly relies on that. - - Rationale: none of my assembly code relies on executable stacks, even if GCC - assumes, by default, that an assembly source file does. Since this file is - included in every assembly source this is a good place to put this. If some - other source linked to the Jitter runtime requires an executable stack then - the linked executable will have it, thanks to another - .section .note.GNU-stack, "x", @progbits - written somewhere else. - The Jitter runtime itself, along with every example in the distribution, - could easily be compiled and linked with - -Wa,--noexecstack -Wl,-z,noexecstack - , if there were nothing else. */ -#if defined (JITTER_HOST_OS_IS_ELF) \ - && defined (JITTER_HAVE_SECTION_NOTE_GNU_STACK) -.section .note.GNU-stack, "", @progbits -.previous -#endif // defined (JITTER_HOST_OS_IS_ELF) && ... - - /* Switching sections. @@ -294,4 +268,45 @@ jitter_asm_exit_section #endif // #if defined (JITTER_HAVE_ASSEMBLY) && defined (JITTER_HAVE_KNOWN_BINARY_FORMAT) +/* The large CPP conditional ends here: the rest is executed even on + ! defined (JITTER_HAVE_ASSEMBLY) \ + || ! defined (JITTER_HAVE_KNOWN_BINARY_FORMAT) + , becasue stack executability is in fact orthogonal to the rest. */ + + + + +/* Stack executability not required. + * ************************************************************************** */ + +/* See the previous comment: this is included in every architecture, even if + complely unsupported. */ + + +/* Do not require an executable stack. Jitter, or a Jittery VM runtime, never + directly relies on that. + + Rationale: none of my assembly code relies on executable stacks, even if GCC + assumes, by default, that an assembly source file does. Since this file is + included in every assembly source this is a good place to put this. If some + other source linked to the Jitter runtime requires an executable stack then + the linked executable will have it, thanks to another + .section .note.GNU-stack, "x", @progbits + written somewhere else. + The Jitter runtime itself, along with every example in the distribution, + could easily be compiled and linked with + -Wa,--noexecstack -Wl,-z,noexecstack + , if there were nothing else. */ +#if defined (JITTER_HAVE_SECTION_NOTE_GNU_STACK) +.section .note.GNU-stack, "", @progbits +.text /* back to the "previous" section. .previous would be better, but + in practice this works and is more portable, since this code is + only included from a global context. */ +#elif defined (JITTER_HAVE_SECTION_NOTE_GNU_STACK_IN_ARM_SYNTAX) +/* ARM uses % as the section-type prefix character, and '@' as a comment. */ +.section .note.GNU-stack, "", %progbits +.text /* See the comment about .text in the previous CPP conditional + branch. */ +#endif // defined (JITTER_HAVE_SECTION_NOTE_GNU_STACK) + #endif // #ifndef MACHINE_COMMON_S_ -- 2.37.2 ++++++ poke-1.4.tar.gz -> poke-2.4.tar.gz ++++++ /work/SRC/openSUSE:Factory/poke/poke-1.4.tar.gz /work/SRC/openSUSE:Factory/.poke.new.2083/poke-2.4.tar.gz differ: char 13, line 1
