karubabuの日記

タイトルに解決って付いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

DNS over Torする

やってみたかっただけDNSネタまたやった
公式がめちゃ丁寧に解説してくれるので特に困らず設定が出来てえらい
折角なので残しておくけれど本当に公式を読めばよいだけになっています
とは言っても本当に出来ているのか不安になる不死はあるので、出来てないやん!みたいなやつはおしえて…
特にDNS over HTTPS over Tor with dnsmasqあたりは本当に不安になっています

よくよむ

Introducing DNS Resolver for Tor
DNS over Tor - Cloudflare Resolver

とくによむ

DNS over Tor · pi-hole/pi-hole Wiki · GitHub

ここすき

Your personal anonymity, however, is not the only reason why you should use this service. The power of Tor in ensuring everyone’s anonymity rests on the number of people who use it. If only whistleblowers, for instance, were to use the Tor network, then anyone connecting to the Tor network would automatically be suspected of being a whistleblower. Therefore the more people use Tor to browse memes or to watch cat videos on the Internet, the easier it will be for those who truly need anonymity to blend in with the traffic.

続きを読む

floでopengappsがインストールできるAICPをビルドした

そのままビルドすると/systemの容量が足りなくてopengappsが追加で入らない
なのでAICPに標準で入っているアプリや機能をいくらか消して容量を減らすよというやつ
私は成功したけれど他の人が成功するのか全くわからないし、完全にその場凌ぎなので数ヶ月後にはまたopengappsが入らなくなりそう

なにをした

基本的に一つ前の記事の続きをやっています
GitHub - karubabu/IceManifests: floでAICPをopengapps付きで使うためのlocal_manifests
このレポジトリにあるxmlファイルをlocal_manifestsに追加してrepo syncする
local_manifestsとはなんぞやとなった時はAndroid ビルドで学ぶ git-repo 入門 | dev:mordifordを読む
✨ほたし本当にありがとう✨

後はビルドしてスマンホホにROM.zipとopengappsのpico.zipを焼く
ここでopengappsが焼けなかったら容量が足りないのでまた何か策を考えるしかない どうしようね

おわり

根本的な解決がしたいけれど、/systemパーティションを雑に拡大すると焼けなくなるんやでという話もフォーラムで見かけた気もしてわからないね
そんな石器時代のスマンホホを使うなといわれればそう🦆…

gentoo上でfloのandroidカスタムROMをビルドした

特に困ったこともなくgentoo公式レポジトリの範囲でパッケージを追加してrepo syncしてbrunchしておわった
ありがたいー🙏

どうした

よく読む

LineageOS 15.1 のビルド方法 | dev:mordiford
Android ビルドで学ぶ git-repo 入門 | dev:mordiford

追加したパッケージ

☝️の記事を参考にして同じようなパッケージを投入すればいける
頑張ってぐぐって
これらは私がビルドのために追加したパッケージだよ
つまりこれだけ入れれば良い訳ではなく、ましてやこれらが本当に必要かどうかも分からないよ

sudo emerge -av
=dev-libs/expat-2.2.5  
=dev-java/lzma-9.18  
=app-arch/lzma-9.20-r1  
=app-arch/lzop-1.04  
=sys-apps/texinfo-6.5  
=sys-fs/squashfs-tools-4.3-r2  
=sys-process/schedtool-1.3.0-r1  
=media-gfx/pngcrush-1.8.13  
=dev-java/maven-bin-3.3.9  
=dev-libs/libxml2-2.9.8  
=x11-libs/wxGTK-3.0.4-r300  
=media-libs/libsdl-2.0.8-r2  
=app-arch/lzip-1.20  
=media-gfx/imagemagick-7.0.7.35  

ncursesは5が必要かつtinfoのUSE flagを立てる必要があるよ

sudo flaggie --strict '=sys-libs/ncurses-5.9-r101:5' +tinfo
sudo emerge '=sys-libs/ncurses-5.9-r101:5'

その他の環境

$ gcc-config -l  
 [1] x86_64-pc-linux-gnu-5.4.0
 [2] x86_64-pc-linux-gnu-7.3.0 *
$ eselect java-vm list   
Available Java Virtual Machines:
  [1]   icedtea-bin-8  system-vm

repoはpython2系でないと動かないので,dev-python/virtualenvをインストールしてrepo initしたディレクトリでよしなに使う
virtualenvの使い方はarchwikiがえらいよ

. build/envsetup.shの様なコマンドを逐一source build/envsetup.shに読み替えたりするのが面倒なのでzshを使っている人はbashにした方がよさそう
わたしはしました

あとはぱっとbrunch flo 2>&1 | tee lineage_$(date '+%Y%m%d_%H-%M-%S').logして待つ
メモリがめがっさ持っていかれるので10Gくらいは余裕を持っていた方がよさげだった
私はswap無しのRAM12GBの環境でホイヤホクスで音楽を聞きながらデスコーヨでチャットしていたらピーク時にどちらもOOMKillerに殺されました…

おわりに

ほたしがえらい
無限に感謝しています

vimで最短マッチさせたい時の文わけわからん

$(DESTDIR)を${DESTDIR}に置換したかったのでぐぐりつつ書いていたらこうなった
s/\$(\(.\{-1,\}\))/\$\{\1\}/gc
多分また知りたくなるのでここにかいておきます

net-dns/https_dns_proxyのserviceファイルを書いた

[Unit]
Description=A lightweight DNS-over-HTTPS proxy. 
Documentation=https://github.com/aarond10/https_dns_proxy
After=network.target
Before=nss-lookup.target
Wants=nss-lookup.target

[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/https_dns_proxy -d -b 1.1.1.1,1.0.0.1 -r "https://1.1.1.1/dns-query?ct=application/dns-json&" -p 5353
LimitNOFILE=1048576
Restart=always
RestartSec=3
Type=forking
User=nobody
Group=nobody

[Install]
WantedBy=multi-user.target

/etc/systemd/system/あたりに置いて起動してね
待ち受けるポートが5353になっているのでdnsmasqとかを使わない人は53に戻さないのウンともスンとも言わないと思う
dnsmasqとの併用は前に書いた記事を参照してね
DNS over https + dnsmasqする - karubabuの日記

大体はここから拝借しています…
GitHub - m13253/dns-over-https: Client and server software to query DNS over HTTPS
AmbientCapabilitiesめちゃ便利ですごい

gentoo ebuildでzipをソースとする時は解凍ディレクトリに注意して

tar.xzとかと違うのか、ファイル群をworkディレクトリ直下に散乱させるので${S}の指定を間違えない様にしてねということです

なにがあった

適当にebuildを書いたぞ!と実行してみると、ファイルを解凍直後に
/var/tmp/portage/package_name/work/dirname が見付からなかった
的なメッセージと共に失敗する
'S=${WORKDIR}/${P}'
${S}は合っていそうに見える

どうした

SRC_URIで取得してくるファイルがzipだった場合unpack関数はunzipを使用する
通常のtar.xzやなんやらと違うせいなのか、冒頭の通りworkディレクトリ直下にファイル群がばらまかれる
なので'S=${WORKDIR}`に変更する必要がある

おわりに

ログも消えちゃったしねむいしでめちゃ適当になった
後で自分が困らなければ良いのでこれくらい書けば察してくれるでしょう

書ける!ebuild
☝️(´・ω・`)おまさのりさんの無限にえらい記事です 読んでね

gentoo overlayの準備が出来たはずなのに何もひっかかって来ない

laymanの準備とか万全だと思うんだけれどなー!なんでやー!みたいなのを4時間くらいやってしまった
もっと高いバージョンのパッケージが欲しいのだけれど!とかもこれだった

なにがあった

overlay を使用するためにレポジトリ回りの設定やlaymanの設定を終えてもemerge -s の検索に代わり映えがない
めっちゃ古いバージョン(stable)しかひっかかってこない

どうした

ACCEPT_KEYWORDSを変更していないため見えなくなっている
ACCEPT_KEYWORDS - Gentoo Wiki
ここの通りに/etc/portage/make.confを適当に弄る

おわりに

こんなん書いてないやん!ジャッジー!と思っていたら、
Project:Overlays/Old User Guide - Gentoo Wiki

If Portage isn't picking up the package from the overlay, that's normally because the package is marked ~arch, where "arch" is the architecture of your computer. You'll need to keyword the package as explained in the Gentoo Handbook.

と2行くらいでさらっと書いてあった