以前、「複数バージョンの gcc, g++ を切り替える方法」に投稿した、 update-alternatives を用いて開発言語を切り替える話の続き。

まず、 gcc と clang の切り替えのための設定:

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 20

sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 10

sudo update-alternatives --config cc

cc を gcc または clang に切り替える動作をする。次に gcc のバージョンの切り替えの設定で gcc のバージョンを切り替える。つまり、上の設定で gcc が選択されているとき、下の設定で選択された gcc のバージョンが実行されるという形になる。

gcc のバージョンの切り替えの設定:

sudo update-alternatives

--install /usr/bin/gcc gcc /usr/bin/gcc-8 80

--slave /usr/bin/c++ c++ /usr/bin/g++-8

--slave /usr/bin/g++ g++ /usr/bin/g++-8

--slave /usr/bin/cpp cpp /usr/bin/g++-8

--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-8

--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-8

--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-8

--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-8

--slave /usr/bin/gcov gcov /usr/bin/gcov-8

--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-8

--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-8

--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld

sudo update-alternatives

--install /usr/bin/gcc gcc /usr/bin/gcc-9 90

--slave /usr/bin/c++ c++ /usr/bin/g++-9

--slave /usr/bin/g++ g++ /usr/bin/g++-9

--slave /usr/bin/cpp cpp /usr/bin/g++-9

--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-9

--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-9

--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9

--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9

--slave /usr/bin/gcov gcov /usr/bin/gcov-9

--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-9

--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-9

--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld

sudo update-alternatives

--install /usr/bin/gcc gcc /usr/bin/gcc-10 100

--slave /usr/bin/c++ c++ /usr/bin/g++-10

--slave /usr/bin/g++ g++ /usr/bin/g++-10

--slave /usr/bin/cpp cpp /usr/bin/g++-10

--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-10

--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-10

--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-10

--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-10

--slave /usr/bin/gcov gcov /usr/bin/gcov-10

--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-10

--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-10

--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld

gcc と同様に clang のバージョンの切り替え設定もしようと思っていたが、一部のファイルのインストールに失敗し用意できていないので、今回は見送り。ちなみに、現在インストール済みの clang は version 10 のみである。

この記事のリンク元 | 64 | 21 | 12 | 8 | 3 | 2 | 1 | 1 | 1 | 1 | 1 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20201201_023830765384.htm

キーワード: ubuntu update-alternatives


rNote-reのXMLRPCをsslに対応 2020-11-21 (土) 02:15:43+09:00

開発

rNote-re で使用している XMLRPC サーバ rn_xmlrpc.php を修正し、 ssl での転送に対応した。

fsockopen() に指定する url の先頭に ‘ssl://’ を追加したり、 http となっているところを https に変更したりしただけなので、これで本当に対応できているかはよく分からないが、とりあえずは動作しているようだ。

この記事のリンク元 | 9 | 8 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20201121_021542913146.htm

キーワード: rNote-re rn_xmlrpc XMLRPC ssl https


.Net は、これまでに、 Windows 限定の .Net Framework と、 Linux などのマルチプラットフォームに対応した .Net Core という2系統に枝分かれしていた。

.Net 5 の登場で、この2系統が1つに統合される。(ただし、 .Net Framework は今後もバグフィックス等のメンテナンスは継続される。)

その上で、 .Net Framework から Windows Forms が移植されるという話だ。とは言え、 Windows Forms は Windows 版限定で .Net Core 3.0 にも既に移植されている。

ともあれ、今回は、 .Net Framework と .Net Core が一つにまとめられるという話なので期待したのだが、 .Net 5 での Windows Forms の移植も Windows 版限定となるようだ。

つまり結局、これから先の未来においても、 .Net Framework で作成された Windows 用の GUI アプリケーションの Linux への移植では、 GUI 絡みの動作の部分が丸ごと「使えない」ままということだ。ほぼそのままでマルチプラットフォーラム化できるのは、コマンドアプリのみ、ということになる。

これでは、何のためのクロスプラットフォーム、マルチプラットフォーラム化なのか分からない。

なぜ、OSに強く依存していない部分だけでも、マルチプラットフォーム環境で Windows Forms を実装しないのか。少なくない部分がそうだと思う。フォームと、主に使われるコントロールだけでも実装すればいいのに・・・。

この記事のリンク元 | 12 | 8 | 2 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20201111_190549144725.htm

キーワード: .Net 5 Windows Forms


rNote に XSS 対策を施した 2020-03-14 (土) 00:37:57+09:00

開発

ご丁寧に、

http://red-souls.jp/ichounoki/rnote/software/?d="><script >alert(String.fromCharCode(88,83,83))</script>&p=3

と言う風にアクセスしてくださった方がおられたので、 XSS(クロスサイトスクリプティング)というものの存在に気づいた。

気づいたので対処した。 rNote-re に対処したのだが、 rNote の rnote.php がもっていた問題なので、題名は「 rNote に・・・」とした。

CVE Details に rNote の脆弱性についての記述があった。 GET で取得するパラメータ d と u に、スクリプトを埋め込まれると実行してしまう脆弱性があるとのことだったので、そのあたりを修正し、スクリプトを埋め込まれても実行されないようにした。

まあ、結果的に脆弱性を消すことができたのでよかったのだろうが、わざわざこんな人の来ないようなブログに来て XSS を埋め込んでくるとは、世の中には暇人もいたもんだと呆れた。

この記事のリンク元 | 9 | 8 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20200314_003757842956.htm

キーワード: rNote rNote-re XSS


rNote-re の HTML5 対応での修正点 2020-03-12 (木) 00:03:18+09:00

開発

table タグの属性 cellspacing="0" cellpadding="0" は、 HTML5 では廃止されているので、スタイルシートを使って、

style="border-collapse:collapse; border-spacing:0px; padding:0px;"

のように記述し代替する。

この記事のリンク元 | 9 | 8 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20200312_000318156359.htm