linux レシピのビルドが "fatal error: linux/compiler-gcc5.h: No such file or directory" で失敗する

環境
原因
  • コンパイラーに gcc 5 を使ったため
    • 現在のバージョンが gcc 5 をサポートしていないため
解決方法
  1. gcc 4 を使う

  2. Linux 3.18 以降を使う

参考文献

smtp.gmail.com から gmail-smtp-msa.l.google.com を調べる方法

host コマンド使えばいいらしい。

$ host smtp.gmail.com
smtp.gmail.com is an alias for gmail-smtp-msa.l.google.com.
gmail-smtp-msa.l.google.com has address 74.125.204.108
gmail-smtp-msa.l.google.com has address 74.125.204.109
gmail-smtp-msa.l.google.com has IPv6 address 2404:6800:4008:c00::6c

参考

仮想マシンに追加した SCSI デバイスが認識されない

すっかり忘れてた。

原因

  • "SCSI ポート 7" になっていたため
    • "SCSI ポート 7" は、システムに予約されている

対処

  • "SCSI ポート 7" 以外にする

INSANE_SKIP

Specifies the QA checks to skip for a specific package within a recipe. For example, to skip the check for symbolic link .so files in the main package of a recipe, add the following to the recipe. The package name override must be used, which in this example is ${PN}:

レシピ内の指定したパッケージの QA のチェックをスキップします。たとえば、レシピのメインパッケージ内のシンボリックリンク .so ファイルのチェックをスキップするには、レシピに次の行を追加します。 パッケージ名のオーバーライドを使う必要があります。この例では ${PN} です。

INSANE_SKIP_${PN} += "dev-so"

See the "insane.bbclass" section for a list of the valid QA checks you can specify using this variable.

この変数で指定できる QA のチェック項目は、"insane.bbclass" セクションを参照してください。

exim4 を restart すると "ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken" と表示される

paniclog に次のようなメッセージが記録されている。

2019-01-18 13:45:30 socket bind() to port 25 for address ::1 failed: Cannot assign requested address: daemon abandoned

環境

原因

IPv6 を無効にしているのに、dc_local_interfaces の値に "::1" (IPv6 アドレス)を書いていたため。

/etc/exim4/update-exim4.conf.conf

dc_local_interfaces='127.0.0.1 ; ::1'

解決方法

dc_local_interfaces の値から "::1" を消す。

/etc/exim4/update-exim4.conf.conf

dc_local_interfaces='127.0.0.1'

paniclog ファイルを削除する。

$ sudo rm /var/log/exim4/paniclog

Qwt 6.0.1 のビルドが失敗する

次のメッセージが表示される

qwt-6.0.1> mingw32-make
qwt_clipper.cpp: In instantiation of 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygon; Rect = QRect; Point = QPoint; T = int]':
qwt_clipper.cpp:449:55:   required from here
qwt_clipper.cpp:232:78: error: 'qMemCopy' was not declared in this scope
         qMemCopy( p.data(), points1.data(), points1.size() * sizeof( Point ) );
                                                                              ^
qwt_clipper.cpp: In instantiation of 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygonF; Rect = QRectF; Point = QPointF; T = double]':
qwt_clipper.cpp:465:55:   required from here
qwt_clipper.cpp:232:78: error: 'qMemCopy' was not declared in this scope
qwt_clipper.cpp: In instantiation of 'QwtClip::PointBuffer<Point>::~PointBuffer() [with Point = QPoint]':
qwt_clipper.cpp:220:28:   required from 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygon; Rect = QRect; Point = QPoint; T = int]'
qwt_clipper.cpp:449:55:   required from here
qwt_clipper.cpp:140:29: error: 'qFree' was not declared in this scope
             qFree( m_buffer );
                             ^
qwt_clipper.cpp: In instantiation of 'void QwtClip::PointBuffer<Point>::setPoints(int, const Point*) [with Point = QPoint]':
qwt_clipper.cpp:223:9:   required from 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygon; Rect = QRect; Point = QPoint; T = int]'
qwt_clipper.cpp:449:55:   required from here
qwt_clipper.cpp:148:62: error: 'qMemCopy' was not declared in this scope
         qMemCopy( m_buffer, points, m_size * sizeof( Point ) );
                                                              ^
qwt_clipper.cpp: In instantiation of 'QwtClip::PointBuffer<Point>::~PointBuffer() [with Point = QPointF]':
qwt_clipper.cpp:220:28:   required from 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygonF; Rect = QRectF; Point = QPointF; T = double]'
qwt_clipper.cpp:465:55:   required from here
qwt_clipper.cpp:140:29: error: 'qFree' was not declared in this scope
             qFree( m_buffer );
                             ^
qwt_clipper.cpp: In instantiation of 'void QwtClip::PointBuffer<Point>::setPoints(int, const Point*) [with Point = QPointF]':
qwt_clipper.cpp:223:9:   required from 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygonF; Rect = QRectF; Point = QPointF; T = double]'
qwt_clipper.cpp:465:55:   required from here
qwt_clipper.cpp:148:62: error: 'qMemCopy' was not declared in this scope
         qMemCopy( m_buffer, points, m_size * sizeof( Point ) );
                                                              ^
qwt_clipper.cpp: In instantiation of 'void QwtClip::PointBuffer<Point>::reserve(int) [with Point = QPoint]':
qwt_clipper.cpp:134:31:   required from 'QwtClip::PointBuffer<Point>::PointBuffer(int) [with Point = QPoint]'
qwt_clipper.cpp:220:28:   required from 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygon; Rect = QRect; Point = QPoint; T = int]'
qwt_clipper.cpp:449:55:   required from here
qwt_clipper.cpp:194:52: error: 'qRealloc' was not declared in this scope
             m_buffer, m_capacity * sizeof( Point ) );
                                                    ^
qwt_clipper.cpp: In instantiation of 'void QwtClip::PointBuffer<Point>::reserve(int) [with Point = QPointF]':
qwt_clipper.cpp:134:31:   required from 'QwtClip::PointBuffer<Point>::PointBuffer(int) [with Point = QPointF]'
qwt_clipper.cpp:220:28:   required from 'Polygon QwtPolygonClipper<Polygon, Rect, Point, T>::clipPolygon(const Polygon&, bool) const [with Polygon = QPolygonF; Rect = QRectF; Point = QPointF; T = double]'
qwt_clipper.cpp:465:55:   required from here
qwt_clipper.cpp:194:52: error: 'qRealloc' was not declared in this scope
mingw32-make[2]: *** [release/qwt_clipper.o] Error 1
mingw32-make[1]: *** [release-all] Error 2
mingw32-make: *** [sub-src-make_first-ordered] Error 2

環境

原因

Qwt 6.0 は Qt5 をサポートしていないため。

対処

Qwt 6.1 を使う。

参考文献