• [gentoo-dev] [PATCH] elisp-common.eclass: Add lexbind cookie to site-in

    From =?UTF-8?q?Ulrich=20M=C3=BCller?=@21:1/5 to All on Mon Apr 21 19:00:02 2025
    This is needed for individual site-init files to be loaded, since Emacs
    from Git now complains about missing lexical-binding cookies.

    Drop any initial blank lines when installing site-init files in elisp-site-file-install. Instead, insert blank lines when concatenating
    the files in elisp-site-regen.

    Signed-off-by: Ulrich Müller <ulm@gentoo.org>
    ---
    eclass/elisp-common.eclass | 20 ++++++++++++--------
    1 file changed, 12 insertions(+), 8 deletions(-)

    diff --git a/eclass/elisp-common.eclass b/eclass/elisp-common.eclass
    index 117544e94b35..b0cbd36bb621 100644
    --- a/eclass/elisp-common.eclass
    +++ b/eclass/elisp-common.eclass
    @@ -1,4 +1,4 @@
    -# Copyright 1999-2024 Gentoo Authors
    +# Copyright 1999-2025 Gentoo Authors
    # Distributed under the terms of the GNU General Public License v2

    # @ECLASS: elisp-common.eclass
    @@ -627,11 +627,11 @@ elisp-modules-install() {
    elisp-site-file-install() {
    local sf="${1##*/}" my_pn="${2:-${PN}}" modules ret
    local add_header="1 {
    - # Find first non-empty line
    - :x; /^\$/ { n; bx; }
    + # Delete any leading blank lines
    + :x; /\S/! { N; s/.*\n//; bx; }
    # Insert a header, unless we already look at one
    - /^;.*${PN}/I! s/^/;;; ${PN} site-lisp configuration\n\n/
    - 1 s/^/\n/
    + /^;.*${PN}/I! \
    + s/^/;;; ${PN} site-lisp configuration -*-lexical-binding:t-*-\n\n/
    }"

    [[ ${sf} == [0