memo.xight.org

日々のメモ

Windowsで展開した際に文字化けしないZipファイルをMacで作成する

Summary

Windowsで展開した際に文字化けしないZipファイルをMacで作成したい。

macOS Big Sur 11.3 Beta (20E5186d) で標準のzipのバージョンは3.0だが、
--unicode が利用できない。

% zip --unicode=UTF8 --to-crlf --recurse-paths ARCHIVE.zip DIR
zip error: Invalid command arguments (long option 'unicode' not supported)


解決方法

Homebrewでzipをインストールして、
${BREW_HOME}/opt/zip/bin にパスを通しておく。

% brew install zip
% which zip
/opt/homebrew/opt/zip/bin/zip
% zip --unicode=UTF8 --to-crlf --recurse-paths ARCHIVE.zip DIR

MacからBrother製プリンタでL版印刷する

Summary

用紙サイズを幅127mm, 高さ89mm で印刷しようとすると、プリンタにエラーが表示された。

用紙サイズが不一致です[多目的トレイ]
パソコン/携帯端末から受信したデータ:
                 A4
   受信したデータと多目的トレイに
 入っている用紙サイズと異なります
        印刷を続けますか?

MFC-J6997CDWのエラー表示

対策

用紙サイズを幅127mm, 高さ89mm ではなく、幅89mm, 高さ127mm にする。

NG: 幅127mm, 高さ89mm

幅127mm, 高さ89mm

OK: 幅89mm, 高さ127mm

幅89mm, 高さ127mm

Apple Silicon + MacTeX

Summary

$ wget http://www.tug.org/mactex/MacTeX-2020-Universal.pkg
$ pkgutil --expand MacTeX-2020-Universal.pkg mactex
$ pax -rz -f mactex/MacTeX-2020-Universal-Start.pkg/Payload
$ mv usr/local/texlive/2020/bin/custom /usr/local/texlive/2020/bin/


/usr/local/texlive/2020/bin/custom に PATH を通す

path=(
	$path
	/usr/local/texlive/2020/bin/custom(N-/)
)


確認

$ which tex
/usr/local/texlive/2020/bin/custom/tex
$ lipo -archs $(which tex)
x86_64 arm64


Reference

MacTeX - About ARM
http://www.tug.org/mactex/aboutarm.html

via

奥村 晴彦 先生 - macOS - M1 Mac
https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html

ruby build時に closure.c がコンパイルできない

Summary

GitHub Pages で利用する ruby 2.7.1 を arm64 でbuildしようとしたら、
closure.c のコンパイル時にエラーが発生。

compiling closure.c
closure.c:264:14: error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
	result = ffi_prep_closure(pcl, cif, callback, (void *)self);
			 ^
1 error generated.
make[2]: *** [closure.o] Error 1
make[1]: *** [ext/fiddle/all] Error 2
make: *** [build-ext] Error 2

インストール

$ git clone https://github.com/postmodern/ruby-install.git
$ cd ruby-install
$ ./bin/ruby-install ruby 2.7.1 -c -- --with-arch=arm64 --prefix=$(rbenv root)/versions/2.7.1-arm64 CFLAGS=-DUSE_FFI_CLOSURE_ALLOC=1


Reference

Andre.Arko.net - 2020-06-30 - Building Ruby on arm64 macOS
https://andre.arko.net/2020/06/30/building-ruby-on-arm64-macos/

Apple Silicon + Big Sur 11.3 Beta + anyenv + pyenv + python3.10.0a5

Summary

pyenv で python をインストールすると arm64-apple が認識できない。

checking build system type... Invalid configuration `arm64-apple-darwin20.4.0': machine `arm64-apple' not recognized
configure: error: /bin/sh ./config.sub arm64-apple-darwin20.4.0 failed

config.subにpatch をあててインストール ([2021-04-16] 追記)

% pyenv install --patch 3.10.0a5 <<(curl -sSL https://gist.githubusercontent.com/xight/74f84b8bde9ac6f539c3db20c2897d46/raw/cf2fd7ff5572afafb54d062f866e40d5e65cab43/config-sub.patch)


config.sub を入れ替えて configure (ad hoc)

$ cd /var/folders/PATH/TO/python-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/Python3.10.0a5
$ mv config.sub config.sub.bak
$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub
$ cd ..
$ ./configure --prefix=$(pyenv root)/versions/3.10.0a5 \
              --enable-unicode=ucs4 \
              --with-openssl=$(brew --prefix openssl) \
              --enable-optimizations
$ make
$ make install


symlinkを作成

$ cd $(pyenv prefix)/bin
$ ln -s python3.10 python
$ ln -s pydoc3.10 pydpc
$ ln -s idle3.10 idle
$ ln -s pip3.10 pip


確認

$ pyenv global 3.10.0a5
$ python --version
Python3.10.0a5
$ lipo -archs $(pyenv prefix)/bin/python3.10
arm64


課題: Universal binary でmakeできていない

PATH/TO/Python-3.x.x/Mac/README.rst を参照

$ ./configure --enable-universalsdk \
			  --with-universal-archs=universal2