やるきなし

2023/09/18 11:20 / mmm-mode 0.5.9-1, Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

Debian GNU/Linux sid (unstable) で以下のように mmm-mode の問題で upgrade に失敗する.

Install mmm-mode for emacs
install/mmm-mode: Handling install of emacsen flavor emacs
install/mmm-mode: byte-compiling for emacs

In toplevel form:
mmm-auto.el:178:4: Error: Wrong number of arguments: (3 . 4), 2

In toplevel form:
mmm-class.el:36:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-cmds.el:36:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-cweb.el:35:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-defaults.el:37:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-erb.el:62:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-mason.el:36:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-mode.el:93:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-myghty.el:41:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-noweb.el:44:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-region.el:42:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-rpm.el:45:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-sample.el:38:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

In toplevel form:
mmm-univ.el:35:2: Error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)
ERROR: install script from mmm-mode package failed
dpkg: error processing package mmm-mode (--configure):
 installed mmm-mode package post-installation script subprocess returned error exit status 1

原因は /usr/share/emacs/site-lisp/mmm-mode/mmm-auto.el の以下の箇所で define-obsolete-function-alias もマクロ展開に失敗している(XEmacs だった場合の引数の少ない方).

(if (not (string-match "XEmacs" (emacs-version)))
    (define-obsolete-function-alias 'mmm-add-find-file-hooks 'mmm-add-find-file-hook
      "0.3.8"
      "Both `mmm-add-find-file-hooks' and `mmm-add-find-file-hook' are deprecated.")
  (define-obsolete-function-alias 'mmm-add-find-file-hooks 'mmm-add-find-file-hook))

本家 git で https://github.com/dgutov/mmm-mode/issues/137 のとおり報告されていて,https://github.com/dgutov/mmm-mode/commit/244f8c4794f20a6be5ebe1e405400a9c35ea6d2f のとおり修正されているが,そもそもこの XEmacs サポートは Debian package 化する際に patch されており,該当 patch は https://sources.debian.org/src/mmm-mode/0.5.9-1/debian/patches/01-xemacs/ のとおり.

結局の所,XEmacs は手元で使っていないので,git にある https://raw.githubusercontent.com/dgutov/mmm-mode/master/mmm-auto.el で置き換えてしまえば問題ない(上記ブロックと mmm-add-find-file-hook 自体が削除される).

追記(2023/9/19)

mmm-mode: post-install script failsのとおりバグ報告がされており mmm-mode 0.5.9-2 で本件修正された様子.Conflicts: xemacs21 となって,XEmacs サポートは削除された.XEmacs なんか誰も使っていないので順当...

Related articles

2023/06/22 16:04 / 運転免許証再交付@札幌運転免許試験場

財布を落としてしまい,身分を証明するものが何もなくなってしまったので,ひとまず免許証から復活させた,という話.とほほ.

https://www.police.pref.hokkaido.lg.jp/guide/menkyo/menkyo3.html に従って手続き.札幌運転免許試験場で即日発行可能(ただし平日のみ; 受付は 8:45–11:30,13:00–15:00; 受付から交付まで約3時間半とのこと).以下実際の流れ.

Related articles

2023/05/24 23:09 / お名前.com 共用サーバーSD (SDプラン)からRSプランに移行

共用サーバーSD (SD-11プラン; 年払い12,936円(税込))はいろいろ不便で,別プロジェクトでRSプラン(初回は若干割引あるけどコストは同じ)を利用したこともあったので,RSプランに移行.移行に関する説明はここにある.いろいろ便利になった.

Related articles

2023/03/28 19:42 / RTL-SDR で FM を聞く(ffmpeg と pulseaudio メモ)

手元に https://www.amazon.co.jp/dp/B00VDSFXDC/ の RTL-SDR があるので,ひとまず FM を聞いてみる.何故かリモート計算機に RTL-SDR を接続してあるので,リモートでごにょごにょするメモ.

リモートサーバ(hoge; 実際には手元)で起動している pulseaudio にデータを送って,それで聞く.

% export PULSE_SERVER=hoge
% sudo rtl_fm -f 80.4M -Mwbfm | ffplay - -f s16le -nodisp -ar 32000

環境変数 PULSE_SERVER については こちら 参照.なお,この場合 hoge 側で TCP/IP で受けられる設定が必要.

あるいは,nc で送って,ただし AAC で圧縮する.

@hoge
% nc -l -p 2000 | ffplay - -f aac
@RTL-SDR
% sudo rtl_fm -f 80.4M -Mwbfm | ffmpeg -f s16le -ar 32000 -i - -f adts -y /dev/stdout | nc hoge 2000

先に hoge 側で nc を起動しておく必要があるし,接続が途絶えると nc の process が終了する.

なお,-Mwbfm-M fm -s 170k -o 4 -A fast -r 32k -l 0 -E deemp と同じで,ffmpegffplay-ar 32000 はこれ由来のオーディオサンプリングレート.

2023/03/16 13:48 / Amazon からの注文確定のメールを MHonArc が Nested start tags で拒否る

Amazon からの注文確定のメールを MHonArc が Nested start tags で拒否る.以下.

Warning: Rejecting Invalid HTML: Nested start tags
         Message-Id: <xxxxxxxxxxxxxxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxx@us-west-x.amazonses.com>

この Warning を吐くコードは以下で,

[/usr/share/mhonarc/mhtxthtml.pl]
    # Bug-32013 (CVE-2010-4524): Invalid tags cause immediate rejection.
    # Bug-32014 (CVE-2010-1677): Prevents DoS if massively nested.
    my $allowcom = $args =~ /\ballowcomments\b/i;
    strip_comments($fields, $data)  unless $allowcom;
    if ($$data =~ /<[^>]*</) {
      # XXX: This will reject HTML that includes a '<' char in a
      #      comment declaration if allowcomments is enabled.
      return bad_html_reject($fields, "Nested start tags");
    }

/<[^>]*</ の正規表現で引っかかっている箇所は以下.確かに Amazon が悪い...

    <!-- This is called in a loop from the MAIN template
## #foreach($orderId in $orderIds)--> 
    <!--Images--> 
    <!--ROW 4--> 
    <tr <td="" style="font-family: Arial, sans-serif !important">   
    </tr> 
    <!--Checks if the buyerName and groupName is null or empty--> 
    <tr style="font-family: Arial, sans-serif !important"> 
     <td width="600" valign="top" style="font-family: Arial, sans-serif !important;border-collapse: collapse"> 
      <!--Order Details Table--> 
      <table style="border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;font-family: Arial, sans-serif !important"> 

CVE割当があって,

ちょっと嫌だけど,MHonArc に掛けるメールはフィルタ済み(特定の送信元; 発注情報共有目的)なので,bad_html_reject の行をコメントアウトすることにした.

Related articles