2018-02-07 :-)
_ [pkgsrc][NetBSD]pkgsrc Makefile の PKG_USERS
Makefile に PKG_USERS を書いておいたんだけど
PKG_USERS= hoge:hoge
make install したら最後に怒られた。
===========================================================================
The following users need to be created for hoge-package-0.1:
        hoge: hoge, /nonexistent, /sbin/nologin
===========================================================================
このメッセージは pkginstall/usergroup の CHECK-ADD で印字している。usergroup はシェルスクリプトであり、CHECK-ADD は
./usergroup CHECK-ADD
として呼び出されたときに通る処理である。
./usergroup CHECK-ADD を呼び出してるのは pkginstall/bsd.pkginstall.mk のここ。
.PHONY: su-create-usergroup
su-create-usergroup: ${_INSTALL_USERGROUP_UNPACKER}
	${RUN}								\
	cd ${_PKGINSTALL_DIR} &&					\
	${SH} ${_INSTALL_USERGROUP_UNPACKER};				\
	exitcode=1;							\
	if ${TEST} -f ./+USERGROUP &&					\
	   ./+USERGROUP ADD ${_PKG_DBDIR}/${PKGNAME} &&			\
	   ./+USERGROUP CHECK-ADD ${_PKG_DBDIR}/${PKGNAME}; then	\    ここを通過していないので exitcode が 0 とならない
		exitcode=0;						\
	fi;								\
	${RM} -f ${_INSTALL_USERGROUP_FILE:Q}				\
		${_INSTALL_USERGROUP_DATAFILE:Q}			\
		${_INSTALL_USERGROUP_UNPACKER:Q}			\
		./+USERGROUP;						\
	exit $$exitcode
CHECK-ADD で失敗しているということはその 1 行前の ADD が失敗しているということだろう。
ADD の処理を眺めると冒頭で GROUP を探している。
ADD)
	${SED} -n "/^\# GROUP: /{s/^\# GROUP: //;p;}" ${SELF} | ${SORT} -u |
	{ while read line; do
んだけど、Makefile に GROUP を書いてないのでたぶんこの while read line の line はカラッポだからすぐに while を抜ける。たぶん
その次の USER の処理。Makefile に USER は書いてあるのでこの while には入るんだろう。
	${SED} -n "/^\# USER: /{s/^\# USER: //;p;}" ${SELF} | ${SORT} -u |
	{ while read line; do
実際にユーザーを追加する処理がここか。
		case ${_PKG_CREATE_USERGROUP} in
		yes)
			group_exists $group || continue
			user_exists $user $userid
			case $? in
			0)	;;
			1)	adduser "$user" "$group" "$userid"	\
					"$descr" "$home" "$shell"
				;;
			esac
			;;
		esac
でも group に追加してないので group_exists $group || continue により、次の行の user_exists $user $userid を飛ばされる。と思う。
というわけで Makefile に GROUP を追加した。
PKG_GROUPS= hoge PKG_USERS= hoge:hoge
make install したら user も group も追加された。おk
% grep hoge /etc/passwd /etc/group /etc/passwd:hoge:*:1002:1001:hoge-package hoge user:/nonexistent:/sbin/nologin /etc/group:hoge:*:1001:
_ [艦これ][三越]「艦これ」×「三越」コラボ ─「艦これ」5周年祭─【前段作戦】 第四次作戦|三越オンラインストア
チョコレート全種類と酒種類を買いました。ジャケットも欲しいと思ったんだけどサイズを S か M (肩幅 45cm か 46cm か)で迷っているうちに完売してしまった。
ジャケットは手元に肩幅 45cm のと 46cm のがあって
- 45cm: ちょうどよい
- 46cm: 大きい
なので S サイズが最適だと思うんだが、えいやっと買うには値段がなかなか高い。
ところで「前段作戦」ということは後段もあるんですよね。







