あとはpkg/DESCRを書けば良いはず。
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
libtoolがOpenBSDかgnuかの違い…切り替えてみたけど、どっちもtools/のビルドには失敗してるのでlibtoolの問題ではなさそう。
このアカウントは、notestockで公開設定になっていません。
portsはとりあえずtools, pythonはdisableにしておくことにしよう。bindingsが作れる布石は打っておくけどそれ以上は面倒なのでやらないという方針で。
ごあいさつ代わりに、opendhtのPython bindingをビルドする際のちょっとした問題に対するPRでも投げてみる。こんなんでもちゃんとレビューに掛けてくれるのかな(余計な仕事増やすな💢とか言われそう)。 https://github.com/savoirfairelinux/opendht/pull/689
まあOpenBSD使ってると確かにいちいち/usr/local/{include,lib}追加しないとダメってケースが多いのでめんどくせえなあと思う場面は多いのですが、そういうもんなのであんまり気にしてません。
このアカウントは、notestockで公開設定になっていません。
(面倒ではあるんですが、なんでもかんでも/usr/includeや/usr/libに入れたれーという思想、自分はあんまり好きじゃないです)
-L/usr/local/libを入れてるのは、標準で見に行く/usr/libにはシステム標準のライブラリしか入れないことになっているからで…ports等のパッケージ化されたものは/usr/local/libを見に行くようわざわざお願いしないといけないという事情があります。
portsで使用するlibtoolはOpenBSD由来で、特段理由が無ければこれを使うようにという指示があります。もちろん、必要があればGNU libtoolの使用を認めてはいますが…何故GNUじゃないといけないのかという説明は求められますね。
/bin/sh ../libtool --tag=CXX --mode=link c++ -std=c++17 -I/usr/local/include -L/usr/local/lib -O3 -Wno-deprecated -pedantic-errors -fvisibility=hidden -DMSGPACK_NO_BOOST -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT -lopendht -lreadline -lfmt -L../src/.libs -L/usr/local/lib -lgnutls -lpthread -o dhtnode dhtnode.o
なぜこれでundefined symbolの嵐になるのか(OpenBSD上)。Slackwareの場合、OpenBSDと同じようにわざわざclang++使ってるけど全然問題無いっていうのが謎。
/bin/sh ../libtool --tag=CXX --mode=link clang++ -std=c++17 -O3 -Wno-deprecated -pedantic-errors -fvisibility=hidden -DMSGPACK_NO_BOOST -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT -lopendht -lreadline -lfmt -L../src/.libs -lgnutls -lpthread -o dhtnode dhtnode.o
これは何事もなくビルドできる(Slackware上)。
ld: error: undefined symbol: dht::DhtRunner::getStorageLog() const
>>> referenced by dhtnode.cpp
>>> dhtnode.o:(cmd_loop(std::__1::shared_ptr<dht::DhtRunner>&, dht_params&))
えーと、どっちがどっちを呼ぼうとしてundefinedうんたらなんだっけー?と混乱中。
ん?
sbopkgでインストールできるOpenDHTは1.7.4か。現状の最新版は3.1.7だから随分古くないか…?
あと、opendht.SlackBuildでのコンフィギュレーションはこんな感じか。
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DOPENDHT_TOOLS=OFF \
-DCMAKE_BUILD_TYPE=Release ..
ライブラリだけ、ツール類のビルドは無し。あと、slack-descでは"OpenDHT is a C++11 Kademlia distributed hash table implementation."ということで、C++17じゃなくC++11前提にしてる(古いから?)。
OpenDHTのビルド、configure時のMsgPack_CFLAGS, MsgPack_LIBSの指定で進められるかと思ったけど、むしろCFLAGS, CXXFLAGSを適切に設定した方が良さそう。
って思ってたんだけど、やっぱtoolsのビルドで死にましたかー