From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 14DD01381F4 for ; Wed, 15 Aug 2012 20:54:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 60D59E0BF2; Wed, 15 Aug 2012 20:54:06 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 63595E0BDE; Wed, 15 Aug 2012 20:52:36 +0000 (UTC) Received: from sf (unknown [178.120.165.117]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: slyfox) by smtp.gentoo.org (Postfix) with ESMTPSA id A45441B4029; Wed, 15 Aug 2012 20:52:34 +0000 (UTC) Date: Wed, 15 Aug 2012 23:57:57 +0300 From: Sergei Trofimovich To: gentoo-dev@lists.gentoo.org Cc: gentoo-dev-announce@lists.gentoo.org Subject: [gentoo-dev] [RFC] new tmpfilesd.eclass Message-ID: <20120815235757.14b3053e@sf> X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.10; x86_64-pc-linux-gnu) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/GFi5uDpAt0jdfG3NZ9oTZ0F"; protocol="application/pgp-signature" X-Archives-Salt: 6ffe81a0-06b2-4f7c-bb86-1eb922b5acf7 X-Archives-Hash: 54279492048b07f1a9e0bc59f86a794b --Sig_/GFi5uDpAt0jdfG3NZ9oTZ0F Content-Type: multipart/mixed; boundary="MP_/wBeefd/zPgdkP+CNkdTbo3b" --MP_/wBeefd/zPgdkP+CNkdTbo3b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline As gentoo switched to /var/run/ -> /run in tmpfs recently people got into problems [1] of missing directories like: /var/run/screen/ /var/run/openfire/ /var/run/proftpd/ they did bite me personally. openrc-0.10 brought [2] basic support for systemd's tmpfiles'd: http://0pointer.de/public/systemd-man/tmpfiles.d.html But there is no simple way to install such helpers from ebuilds. The tmpfiles.d is aimed to help in such situations. I've picked proftpd as an example as it's situation is very similar to screen's situation. There is inetd mode (opposed to standalone mode) when you don't have any init.d code to create /var/run/ directories for you. Thus tmpfiles.d for the rescue. See attach for the whole eclass code. It's almost a copy of Micha=C5=82's bash-completion-r1.eclass which I find very easy to use. I'll show eclass usage example for proftpd: --- proftpd-1.3.4a-r1.ebuild 2012-05-29 20:16:51.000000000 +0300 +++ proftpd-1.3.4a-r2.ebuild 2012-08-15 23:10:49.000000000 +0300 @@ -3,7 +3,7 @@ # $Header: /var/cvsroot/gentoo-x86/net-ftp/proftpd/proftpd-1.3.4a-r1.ebuil= d,v 1.2 2012/05/13 10:49:47 swift Exp $ =20 EAPI=3D4 -inherit eutils +inherit eutils tmpfilesd =20 MOD_CASE=3D"0.7" MOD_CLAMAV=3D"0.11rc" @@ -216,6 +216,8 @@ docinto rfc dodoc doc/rfc/*.txt fi + + newtmpfilesd ${FILESDIR}/tmpfilesd.conf ${PN}.conf } =20 pkg_postinst() { The caveats: - files get created only if I run /lib/rc/sh/tmpfiles.sh manually - haven't tested with systemd, but i'd expect it to work Thanks! [1]: https://bugs.gentoo.org/show_bug.cgi?id=3D361349 [2]: https://bugs.gentoo.org/show_bug.cgi?id=3D396003 --=20 Sergei --MP_/wBeefd/zPgdkP+CNkdTbo3b Content-Type: application/octet-stream; name=tmpfilesd.eclass Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=tmpfilesd.eclass IyBDb3B5cmlnaHQgMTk5OS0yMDEyIEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk ZXI6ICAkCgojIEBFQ0xBU1M6IHRtcGZpbGVzZC5lY2xhc3MKIyBATUFJTlRBSU5FUjoKIyBzbHlm b3hAZ2VudG9vLm9yZwojIEBBVVRIT1I6CiMgQmFzZWQgb24gYmFzaC1jb21wbGV0aW9uLXIxLmVj bGFzcyBieSBNaWNoYcWCIEfDs3JueSA8bWdvcm55QGdlbnRvby5vcmc+LgojIEBCTFVSQjogSGVs cGVycyB0byBpbnN0YWxsIHRtcGZpbGVzLmQgZmlsZXMuCiMgQERFU0NSSVBUSU9OOgojIEFzIGRl c2NyaWJlZCBpbiBodHRwOi8vMHBvaW50ZXIuZGUvcHVibGljL3N5c3RlbWQtbWFuL3RtcGZpbGVz LmQuaHRtbAojIGhlbHBlcnMgYWxsb3cgaW5zdGFsbGluZyBwYWNrYWdlJ3MgdG1wZmlsZXMuZCBp bnRvIC91c3IvbGliL3RtcGZpbGVzLmQKIyBARVhBTVBMRToKIwojIEBDT0RFCiMgRUFQST00CiMK IyBzcmNfaW5zdGFsbCgpIHsKIyAJZGVmYXVsdAojCiMgCW5ld3RtcGZpbGVzZCAke0ZJTEVTRElS fS90bXBmaWxlc2QuY29uZiAke1BOfS5jb25mCiMgfQojIEBDT0RFCgpjYXNlICR7RUFQSTotMH0g aW4KCTB8MXwyfDN8NCkgOzsKCSopIGRpZSAiRUFQSSAke0VBUEl9IGlzIHVua25vd24uIgplc2Fj CgojIEBGVU5DVElPTjogZG90bXBmaWxlc2QKIyBAVVNBR0U6IGZpbGUgWy4uLl0KIyBAREVTQ1JJ UFRJT046CiMgSW5zdGFsbCB0bXBmaWxlcy5kIGZpbGVzIHBhc3NlZCBhcyBhcmdzLiBIYXMgRUFQ SS1kZXBlbmRhbnQgZmFpbHVyZQojIGJlaGF2aW9yIChsaWtlIGRvaW5zKS4KZG90bXBmaWxlc2Qo KSB7CglkZWJ1Zy1wcmludC1mdW5jdGlvbiAke0ZVTkNOQU1FfSAiJHtAfSIKCgkoCgkJaW5zaW50 byAvdXNyL2xpYi90bXBmaWxlcy5kCgkJZG9pbnMgIiR7QH0iCgkpCn0KCiMgQEZVTkNUSU9OOiBu ZXd0bXBmaWxlc2QKIyBAVVNBR0U6IGZpbGUgbmV3bmFtZQojIEBERVNDUklQVElPTjoKIyBJbnN0 YWxsIHRtcGZpbGVzLmQgZmlsZSB1bmRlciBhIG5ldyBuYW1lLiBIYXMgRUFQSS1kZXBlbmRhbnQg ZmFpbHVyZQojIGJlaGF2aW9yIChsaWtlIG5ld2lucykuCm5ld3RtcGZpbGVzZCgpIHsKCWRlYnVn LXByaW50LWZ1bmN0aW9uICR7RlVOQ05BTUV9ICIke0B9IgoKCSgKCQlpbnNpbnRvIC91c3IvbGli L3RtcGZpbGVzLmQKCQluZXdpbnMgIiR7QH0iCgkpCn0K --MP_/wBeefd/zPgdkP+CNkdTbo3b-- --Sig_/GFi5uDpAt0jdfG3NZ9oTZ0F Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iEYEARECAAYFAlAsDVgACgkQcaHudmEf86pIlwCfR3gjyxf+QKto5r5Q0JcLFzeS coEAn0kRcq1VKuAju4uYpq9dZDGnKc8C =RwIZ -----END PGP SIGNATURE----- --Sig_/GFi5uDpAt0jdfG3NZ9oTZ0F--