このエントリーをはてなブックマークに追加

流行っているみたいなので便乗。

東京オリンピック

実数 a, r
a ← 200

gOpenWindow(600, 600)

gSetLineColor(255, 215, 0)
gSetFillColor(255, 215, 0)
gFillBox(0, 0, a, a)

gSetLineColor(128, 128, 0)
gSetFillColor(128, 128, 0)
gFillBox(2*a, 2*a, 3*a, 3*a)

r ← sqrt(1.5*1.5+0.5*0.5)*a

gSetLineColor(255, 255, 255)
gSetFillColor(255, 255, 255)
gFillCircle(1.5*a, 1.5*a, r)

gSetLineColor(0, 0, 0)
gSetFillColor(0, 0, 0)
gFillBox(a, 0, a, 3*a)

gSetLineColor(255, 0, 0)
gSetFillColor(255, 0, 0)
gFillCircle(2.5*a, 0.5*a, 0.5*a)

東京オリンピック・パラリンピック

実数 a, r
a ← 200

gOpenWindow(600, 600)

gSetLineColor(0, 0, 0)
gSetFillColor(0, 0, 0)
gFillBox(0, 0, 600, 600)

gSetLineColor(255, 215, 0)
gSetFillColor(255, 215, 0)
gFillBox(0, 0, a, a)

gSetLineColor(128, 128, 0)
gSetFillColor(128, 128, 0)
gFillBox(2*a, 2*a, 3*a, 3*a)

r ← sqrt(1.5*1.5+0.5*0.5)*a

gSetLineColor(0, 0, 0)
gSetFillColor(0, 0, 0)
gFillCircle(1.5*a, 1.5*a, r)

gSetLineColor(255, 255, 255)
gSetFillColor(255, 255, 255)
gFillBox(a, 0, a, 3*a)

gSetLineColor(255, 0, 0)
gSetFillColor(255, 0, 0)
gFillCircle(2.5*a, 0.5*a, 0.5*a)

このエントリーをはてなブックマークに追加

SASLのインストール

# portinstall security/cyrus-sasl2-saslauthd

/etc/make.conf に以下を追加

SENDMAIL_CFLAGS=-I/usr/local/include -DSASL=2
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2

sendmail のコンパイルとインストール

# cd /usr/src/lib/libsm
# make obj && make depend && make
# cd /usr/src/lib/libsmutil
# make obj && make depend && make
# cd /usr/src/usr.sbin/sendmail
# make obj && make depend && make && make install

(ソースコードの取得は「FreeBSDのソースコード取得」を参照)


sendmail の make で次のようなエラーが出る場合

cc1: warnings being treated as errors
/usr/src/usr.sbin/sendmail/../../contrib/sendmail/src/sasl.c: In function 'sm_sasl_init':
/usr/src/usr.sbin/sendmail/../../contrib/sendmail/src/sasl.c:141: warning: passing argument 1 of 'sasl_set_alloc' from incompatible pointer type
/usr/src/usr.sbin/sendmail/../../contrib/sendmail/src/sasl.c:141: warning: passing argument 2 of 'sasl_set_alloc' from incompatible pointer type
/usr/src/usr.sbin/sendmail/../../contrib/sendmail/src/sasl.c:141: warning: passing argument 3 of 'sasl_set_alloc' from incompatible pointer type
*** [sasl.o] Error code 1

/usr/src/contrib/sendmail/src/sasl.c を以下のように修正

--- /usr/src/contrib/sendmail/src/sasl.c	2014-09-23 10:16:56.000000000 +0900
+++ /usr/src/contrib/sendmail/src/sasl.c.new	2014-09-23 10:18:05.000000000 +0900
@@ -137,8 +137,8 @@
 void
 sm_sasl_init()
 {
-	sasl_set_alloc(sm_sasl_malloc, sm_sasl_calloc,
-		       sm_sasl_realloc, sm_sasl_free);
+	sasl_set_alloc((sasl_malloc_t *)sm_sasl_malloc, (sasl_calloc_t *)sm_sasl_calloc,
+			(sasl_realloc_t *)sm_sasl_realloc, (sasl_free_t *)sm_sasl_free);
 }
 /*
 **  INTERSECT -- create the intersection between two lists

このエントリーをはてなブックマークに追加

FreeBSD にセキュリティパッチを当てようとしたのだが、
/usr/src がまるっきり消えていた。

調べてみると FreeBSD のソースコード管理はかなり昔に cvs から subversion に変更になっていた。

cvsup, csup に替わる svnup というのがあるらしいのでインストール。

# portinstall net/svnup

インストールできたのでコマンドをとりあえず入力してみた。

# svnup 
Usage: svnup <section> [options]

  Please see /usr/local/etc/svnup.conf for the list of <section> options.

  Options:
    -4  Use IPv4 addresses only.
    -6  Use IPv6 addresses only.
    -b  Override the specified section's Subversion branch.
    -f  Display the local files that do not exist in the repository.
    -h  Override the specified section's hostname or IP address.
    -k  Override the location where known file lists are stored.
    -l  Override the specified section's destination directory.
    -n  Display the section's most recently downloaded revision number and exit.
    -o  Override the specified section's default port.
    -p  Override the specified section's protocol (svn, http, https).
    -r  The revision number to retreive (defaults to the branch's
          most recent revision if this option is not specified).
    -t  Remove all local files that are not found in the repository.
          Note: this will remove files in directories like /usr/ports/distfiles/
          and /usr/src/sys/amd64/conf/.  Proceed with caution.
    -v  How verbose the output should be (0 = no output, 1 = the default
          normal output, 2 = also show a progress indicator, 3 = also show
          command and response text plus command response parsing codes).
    -V  Display svnup's version number and exit.

どうやら /usr/local/etc/svnup.conf を見て引数に <section> を渡せと言っているみたい。
/usr/local/etc/svnup.conf のフィルの中身は以下の感じでした。

# $FreeBSD$
#
# Default configuration options for svnup.conf.

[defaults]
work_directory=/var/tmp/svnup
#host=svn.freebsd.org
#host=svn0.us-west.freebsd.org
#host=svn0.us-east.freebsd.org
#host=svn0.eu.freebsd.org
protocol=https
verbosity=1
trim_tree=0
extra_files=0

[release]
branch=base/releng/9.1
target=/usr/src

[ports]
branch=ports/head
target=/usr/ports

[stable]
branch=base/stable/9
target=/usr/src

[current]
branch=base/head
target=/usr/src

[defaults] セクションの host が全てコメントアウトされていたので、
1つをコメント外してあとは各セクションの branch の設定を修正。

修正後に以下のコマンドでソースコードを取得。

# svnup release