Giter Club home page Giter Club logo

libarib25's People

Contributors

eru avatar eternalharvest avatar kazuki0824 avatar kazuohagihara avatar mittyorz avatar noriy avatar pinterior avatar stz2012 avatar uru2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libarib25's Issues

進行状況のパーセント表示について

サイズが2GBを超えるファイルの変換時、進行状況のパーセント表示が正しくない件について、
td.cの282行目の
m = (int)(10000offset/total);
を、
m = (int)((uint64_t)10000
offset/total);
と修正すれば直るようです。
Linuxで確認しました。

ldconfig を実行すると libarib25.so.0 がデグレてしまう可能性がある問題

ldconfig を実行すると libarib25.so.0 がデグレてしまう問題

私が以前書いた CMake へのマイグレーションパッチがそもそもの原因です。大変ご迷惑をおかけて申し訳ありません。ごめんなさいm(_ _)m。症状としては、ldconfig コマンドを実行すると意図せずして古いライブラリにリンクされる可能性があという問題です。

以前取り込んでいただいたチェンジセット以降 libarib25.so の機能自体にはほとんど変更がなく、仮にデグレてしまったとしても現時点では実害はほぼないと思います。
また、前回の CMake マイグレーションパッチでは make install を実行しても ldconfig が自動で実行されることはありません。また、CMake の機能によりインストール時点では適切にシンボリックリンクが張られるため問題は発生しません。

問題が発生するのは、過去に libarib25 をインストールしたことがある環境で、新たに最新の libarib25 を
インストールした後 ldconfig を実行した場合のみです。ldconfig が実行されるまで問題が発覚しない恐れもあり、問題の発見が遅れる可能性があるので注意が必要です。

再現方法

以前に libarib25 をインストールしたことのある環境などで、すでに libarib25.so.0.2.5 ファイルが以下のように存在している状態を想定します。

ubuntu@localhost:~$ ls -l /usr/local/lib
lrwxrwxrwx 1 root root     14  6月  7 02:20 /usr/local/lib/libarib25.so -> libarib25.so.0
lrwxrwxrwx 1 root root     22  6月  7 02:30 /usr/local/lib/libarib25.so.0 -> libarib25.so.0.2.5
-rwxr-xr-x 1 root root 179392  6月  7 02:11 /usr/local/lib/libarib25.so.0.2.5

CMake に移行後のリビジョンを Git でチェックアウトしてビルドする。

ubuntu@localhost:~$ mkdir ~/work/
ubuntu@localhost:~/work$ git clone https://github.com/stz2012/libarib25.git
ubuntu@localhost:~/work$ cd libarib25
ubuntu@localhost:~/work/libarib25$ git checkout 741377f65a7ca1482e47d78cfecc8f3d5802b537

ubuntu@localhost:~/work/libarib25$ mkdir build
ubuntu@localhost:~/work/libarib25$ cd build
ubuntu@localhost:~/work/libarib25/build$ cmake ..
ubuntu@localhost:~/work/libarib25/build$ make
ubuntu@localhost:~/work/libarib25/build$ sudo make install

この時点で /usr/local/lib 配下は以下のようになっている。

ubuntu@localhost:~$ ls -l libarib*
-rw-r--r-- 1 root root  45176  6月  7 02:30 libarib25.a
lrwxrwxrwx 1 root root     14  6月  7 02:20 libarib25.so -> libarib25.so.0
lrwxrwxrwx 1 root root     22  6月  7 02:30 libarib25.so.0 -> libarib25.so.stz-0.2.5
-rwxr-xr-x 1 root root 179392  6月  7 02:11 libarib25.so.0.2.5
-rwxr-xr-x 1 root root  45424  6月  7 02:30 libarib25.so.stz-0.2.5

CMake の機能によってシンボリックリンクは今回インストールした libarib25.so.stz-0.2.5 に向けられている。これは正しい状態ですが、CMake の機能によって偶然にも正しい状態になっているだけです。
この状態で、以下のように ldconfig を実行する。

ubuntu@localhost:~$ sudo ldconfig

/usr/local/lib 配下のシンボリックリンクが ldconfig により更新され、旧バージョンに向いてしまう。依然として libarib25.so.0 にリンクされている b25 コマンドやその他のアプリケーションは現在のところ正常に動作し続けるが、このまま状態は将来的にあまり良くない結果を招くかもしれない。また、もとからあった libarib25.so.0.2.5 が著しく古い場合等では意図せずして古いバージョンを使用し続けることになるので注意が必要です。

ubuntu@localhost:~$ ls -l libarib*
-rw-r--r-- 1 root root  45176  6月  7 02:30 libarib25.a
lrwxrwxrwx 1 root root     14  6月  7 02:20 libarib25.so -> libarib25.so.0
lrwxrwxrwx 1 root root     18  6月  7 03:36 libarib25.so.0 -> libarib25.so.0.2.5
-rwxr-xr-x 1 root root 179392  6月  7 02:11 libarib25.so.0.2.5
-rwxr-xr-x 1 root root  45424  6月  7 02:30 libarib25.so.stz-0.2.5

原因

この問題の根本原因は、CMake マイグレーションパッチでバージョン情報を表示する部分でいわゆるバージョンを明確にするために、stz- プレフィックスをつけたことによる副作用で、共有ライブラリの名前にも stz- が付いてしまったことによります。
これによって ldconfig が解釈できないバージョン名となってしまったため、libarib25.so.0 のリンクが ldconfig の解釈できる最も最新のバージョンに向いてしまうこととなったということのようです。

進捗状況

現在、パッチを書いて検証中です。できるだけはやく修正をプルリク出したいと思います。

Tvheadend + libarib25について

お力を貸してください。
今 Docker (Alpine)で Tvheadend という録画サーバーを使用しています。
フルセグで見れないのでカードリーダー&B-CASカードを用意して、libarib25 をインストールしましたが、まだ見れないです。
pcsc_scan を実行してみたのですが、問題なくカードの読み込みができています。

コンテナに入って以下のコマンドでインストールしました。

git clone https://github.com/stz2012/libarib25.git
cd libarib25
cmake -DLDCONFIG_EXECUTABLE=IGNORE ./
make
make install

[ 55%] Built target arib25-objlib
[ 66%] Built target arib25-shared
[ 77%] Built target arib25-static
[100%] Built target b25
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /usr/local/bin/b25
-- Up-to-date: /usr/local/lib64/libarib25.a
-- Up-to-date: /usr/local/lib64/libarib25.so.0.2.5
-- Up-to-date: /usr/local/lib64/libarib25.so.0
-- Up-to-date: /usr/local/lib64/libarib25.so
-- Up-to-date: /usr/local/include/arib25/arib_std_b25.h
-- Up-to-date: /usr/local/include/arib25/b_cas_card.h
-- Up-to-date: /usr/local/include/arib25/multi2.h
-- Up-to-date: /usr/local/include/arib25/ts_section_parser.h
-- Up-to-date: /usr/local/include/arib25/portable.h
-- Up-to-date: /usr/local/include/arib25/arib25_api.h
-- Up-to-date: /usr/local/lib64/pkgconfig/libarib25.pc

libarib25 のインストール方法については参考になるサイトがいくつかあったのですが、上記のコマンド以外は特に皆何もしていないので、上記のコマンドと別で何か実行する必要がありますか?

x86_64とi386以外のアーキテクチャでビルド不可

Raspberry Pi 3にてビルドを試みましたが、version.c のアーキテクチャ確認処理で引っかかりビルドが出来ませんでした。

デバッグ情報を表示するように変更(デバッグビルド時のみ)時点ではビルドが可能ですが、ビルド時にバージョン情報を埋め込むように変更からx86_64とi386以外のアーキテクチャでビルドができなくなっています。

pi@raspberrypi:~/.builds/libarib25/cmake $ make
Scanning dependencies of target arib25-objlib
[ 11%] Building C object CMakeFiles/arib25-objlib.dir/src/arib_std_b25.c.o
[ 22%] Building C object CMakeFiles/arib25-objlib.dir/src/b_cas_card.c.o
[ 33%] Building C object CMakeFiles/arib25-objlib.dir/src/multi2.c.o
[ 44%] Building C object CMakeFiles/arib25-objlib.dir/src/ts_section_parser.c.o
[ 55%] Building C object CMakeFiles/arib25-objlib.dir/src/version.c.o
/home/pi/.builds/libarib25/src/version.c:10:6: error: #error architecture not supported!
 #    error architecture not supported!
      ^
CMakeFiles/arib25-objlib.dir/build.make:158: recipe for target 'CMakeFiles/arib25-objlib.dir/src/version.c.o' failed
make[2]: *** [CMakeFiles/arib25-objlib.dir/src/version.c.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/arib25-objlib.dir/all' failed
make[1]: *** [CMakeFiles/arib25-objlib.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

ライセンスについて

このソフトウェアのライセンスは独自のものですが一般的なライセンスへの変更予定などはないでしょうか?

b25コマンドに --version オプションを実装する

現在、引数なしで実行した際に表示される文言から

b25 - ARIB STD-B25 test program version stz-0.2.5 (v0.2.5-20180204)
built with GNU 10.2.1 on Linux-5.10.0-8-amd64

という部分を取り除き、代わりに--versionをつけて実行した際に表示することを提案します。
短い別名は、大文字の-Vでどうでしょうか。

ライブラリのインストール先について

現状のライブラリのインストール先はlibになっていますが, ディストリビューションによっては正しいlib32やlib64にインストールされないようなものが出てきました.
https://wiki.gentoo.org/wiki/Project:AMD64/Multilib_layout
そこでシンボリックリンクを介さずに適切なパスを指定するため, cmakeのGNUInstallDirsを使用したいのですが, cmakeのバージョンアップは可能でしょうか?

cmakeでのldconfigの実行について

度重なるissue申し訳ありません
どうしてもcmake内でのldconfigの実行が必要でしょうか?
もしそうならoptionでldconfigの実行を選択できるようにしていただけないでしょうか?
必要でない場合cmakeでのldconfigを削除し, build.sh, build.batを経由してビルドするようにしていただけないでしょうか?
ldconfigはユーザーが叩くかshで呼ぶものだと考えていましたが, マルチプラットフォームやライトユーザー向けの配慮, 歴史的経緯があるなど, 理由がある場合は教えていただけると幸いです.

READMEを更新する

現状、READMEでビルドの手順が説明されていません。
派生元のREADMEを残す意義は少ないと思いますので、ファイルをリネーム(例えばREADME_orig.md)した上で、新たなREADMEを作り、そこにビルドの手順を記述してはどうでしょうか。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.