public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] We need *you* for a USE="selinux" dependency
@ 2011-12-04 20:35 Sven Vermeulen
  2011-12-04 20:50 ` Petteri Räty
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Sven Vermeulen @ 2011-12-04 20:35 UTC (permalink / raw
  To: gentoo-dev

Hi guys 'n gals

obligatory tl;dr:
  Please check your package below this list and see if it (the package) has
  a proper DEPEND and RDEPEND on the listed sec-policy/selinux-<module> package(s)

Within the Gentoo Hardened project, we are working on getting the SELinux
support into shape. Recent evolutions are the stabilization of latest upstream
userspace utilities and policies as well as documentation improvements and even
some "human resource improvements" (read: fresh blood in our ranks).

Within SELinux, specific modules are used (called SELinux modules, because we
are not that creative in our naming) that contain the SELinux policy (what is
allowed) as well as labeling information for files (which we call file context
information). This labeling is very important in order for the policies to work
well - wrong labels will lead to applications running with wrong permissions
(which usually means "Application No Workie").

In Gentoo, unlike some other distributions, we try to keep the number of
loaded/installed modules to a minimum so that policy rebuilds as well as the
system overhead is limited. This results in a "base" policy (provided by
selinux-base-policy) and modules (provided by sec-policy/selinux-<modulename>). To make
sure that installations of a package pull in the right SELinux module, the
proper dependencies must be defined.

In the list below you will find "package dependency" information. This means
that the given package should have both DEPEND and RDEPEND on the dependency
(which is always of the form sec-policy/selinux-<modulename> since dependencies
on sec-policy/selinux-base-policy are always satisfied the moment a user has SELinux
enabled on his Gentoo system).

The dependency should be USE="selinux"-triggered (the selinux USE flag is masked
for non-SELinux profiles and mandatory on SELinux systems), like so:
	IUSE="selinux"
	DEPEND="selinux? ( sec-policy/selinux-<modulename> )"
	RDEPEND="selinux? ( sec-policy/selinux-<modulename> )"

The dependency must be on both levels, because the SELinux module must be
installed before the package is installed (and in theory, RDEPEND could
trigger an installation afterwards): during the installation phase, Portage
labels the files on the system (which would get wrong labels if the module
isn't installed yet[1]). Also, DEPEND isn't sufficient due to binary package
support requirements.

Since there are quite a few packages that would need updates, I thought about
first mailing gentoo-dev for feedback and perhaps a first chunk of work done. I
also wouldn't mind creating bugreports for each of them, but that would still be
best done after having mailed gentoo-dev ;-)

Wkr,
	Sven Vermeulen

[1] I am aware that Portage currently installs RDEPEND before the package
    itself, but that might change in the future and other package managers might
    exhibit different behavior.

games-board/aisleriot sec-policy/selinux-games
sys-apps/apmd sec-policy/selinux-apm
net-dns/bind sec-policy/selinux-bind
net-wireless/bluez sec-policy/selinux-bluetooth
app-i18n/canna sec-policy/selinux-canna
app-cdr/cdrkit sec-policy/selinux-cdrecord
app-cdr/cdrtools sec-policy/selinux-cdrecord
app-antivirus/clamav sec-policy/selinux-clamav
net-im/climm sec-policy/selinux-games
mail-mta/courier sec-policy/selinux-courier
net-print/cups sec-policy/selinux-lpd
dev-vcs/cvs sec-policy/selinux-cvs
sys-process/daemontools sec-policy/selinux-daemontools
sys-process/daemontools-encore sec-policy/selinux-daemontools
mail-filter/dcc sec-policy/selinux-dcc
app-admin/denyhosts sec-policy/selinux-denyhosts
sys-devel/distcc sec-policy/selinux-distcc
net-dns/djbdns sec-policy/selinux-djbdns
app-arch/dpkg sec-policy/selinux-dpkg
app-cdr/dvd+rw-tools sec-policy/selinux-cdrecord
www-client/epiphany sec-policy/selinux-mozilla
x11-misc/expocity sec-policy/selinux-wm
net-analyzer/fail2ban sec-policy/selinux-fail2ban
app-arch/fastjar sec-policy/selinux-java
net-mail/fetchmail sec-policy/selinux-fetchmail
www-client/firefox-bin sec-policy/selinux-mozilla
dev-java/gcj-jdk sec-policy/selinux-java
dev-vcs/gitolite sec-policy/selinux-gitosis
dev-vcs/gitolite-gentoo sec-policy/selinux-gitosis
dev-vcs/gitosis sec-policy/selinux-gitosis
dev-vcs/gitosis-gentoo sec-policy/selinux-gitosis
virtual/gnat sec-policy/selinux-ada
gnome-base/gnome-applets sec-policy/selinux-cpufreqselector
gnome-extra/gnome-games sec-policy/selinux-games
gnome-base/gnome-shell sec-policy/selinux-wm
app-crypt/gnupg sec-policy/selinux-gpg
www-servers/gorg sec-policy/selinux-gorg
gpe-base/gpe-dm sec-policy/selinux-xserver
net-print/hplip sec-policy/selinux-cups
x11-apps/iceauth sec-policy/selinux-xserver
net-misc/icecast sec-policy/selinux-icecast
net-nntp/inn sec-policy/selinux-inn
kde-base/katomic sec-policy/selinux-games
kde-base/kbattleship sec-policy/selinux-games
sys-apps/kbd sec-policy/selinux-loadkeys
kde-base/kblackbox sec-policy/selinux-games
kde-base/kbounce sec-policy/selinux-games
kde-base/kgoldrunner sec-policy/selinux-games
kde-base/kgpg sec-policy/selinux-gpg
net-wireless/kismet sec-policy/selinux-kismet
kde-base/kjumpingcube sec-policy/selinux-games
kde-base/klickety sec-policy/selinux-games
kde-base/klines sec-policy/selinux-games
kde-base/kmahjongg sec-policy/selinux-games
kde-base/kmines sec-policy/selinux-games
kde-base/kolf sec-policy/selinux-games
kde-base/konquest sec-policy/selinux-games
kde-base/kpat sec-policy/selinux-games
kde-base/kreversi sec-policy/selinux-games
kde-base/kshisen sec-policy/selinux-games
kde-base/kspaceduel sec-policy/selinux-games
kde-base/ktron sec-policy/selinux-games
kde-base/ktuberling sec-policy/selinux-games
app-emulation/libvirt sec-policy/selinux-xen
www-client/links sec-policy/selinux-links
kde-base/lskat sec-policy/selinux-games
dev-db/mariadb sec-policy/selinux-mysql
net-misc/memcached sec-policy/selinux-memcached
x11-wm/metacity sec-policy/selinux-wm
sys-apps/mlocate sec-policy/selinux-slocate
www-servers/mongrel sec-policy/selinux-apache
media-sound/mpd sec-policy/selinux-mpd
sys-cluster/mpich2 sec-policy/selinux-mpd
media-video/mplayer sec-policy/selinux-mplayer
media-video/mplayer2 sec-policy/selinux-mplayer
net-analyzer/mrtg sec-policy/selinux-mrtg
mail-client/mutt sec-policy/selinux-mutt
dev-db/mysql sec-policy/selinux-mysql
media-libs/nas sec-policy/selinux-soundserver
net-misc/netcf sec-policy/selinux-ncftool
net-ftp/netkit-ftpd sec-policy/selinux-publicfile
mail-mta/netqmail sec-policy/selinux-qmail
net-analyzer/ntop sec-policy/selinux-ntop
net-misc/nxserver-freeedition sec-policy/selinux-nx
net-misc/nxserver-freenx sec-policy/selinux-nx
x11-wm/openbox sec-policy/selinux-wm
net-misc/openconnect sec-policy/selinux-vpn
net-nntp/pan sec-policy/selinux-pan
sys-boot/plymouth sec-policy/selinux-plymouthd
app-admin/prelude-lml sec-policy/selinux-prelude
app-admin/prelude-manager sec-policy/selinux-prelude
mail-filter/procmail sec-policy/selinux-procmail
net-ftp/proftpd sec-policy/selinux-ftp
www-servers/publicfile sec-policy/selinux-publicfile
media-sound/pulseaudio sec-policy/selinux-pulseaudio
app-admin/puppet sec-policy/selinux-puppet
dev-python/pyzor sec-policy/selinux-pyzor
app-emulation/qemu sec-policy/selinux-qemu
app-emulation/qemu-kvm sec-policy/selinux-qemu
www-apps/roundup sec-policy/selinux-roundup
app-arch/rpm sec-policy/selinux-rpm
app-shells/rssh sec-policy/selinux-rssh
net-fs/samba sec-policy/selinux-samba
app-misc/screen sec-policy/selinux-screen
net-mail/serialmail sec-policy/selinux-daemontools
net-im/skype sec-policy/selinux-skype
net-nntp/slrn sec-policy/selinux-slrnpull
mail-filter/spamassassin sec-policy/selinux-spamassassin
net-misc/stunnel sec-policy/selinux-stunnel
net-nntp/suck sec-policy/selinux-inn
net-misc/taylor-uucp sec-policy/selinux-uucp
media-sound/timidity++ sec-policy/selinux-timidity
net-irc/tirc sec-policy/selinux-irc
net-misc/tor sec-policy/selinux-tor
media-tv/tvtime sec-policy/selinux-tvtime
x11-wm/twm sec-policy/selinux-wm
sys-apps/ucspi-tcp sec-policy/selinux-ucspitcp
sys-apps/usermode-utilities sec-policy/selinux-uml
www-servers/varnish sec-policy/selinux-varnishd
net-misc/vde sec-policy/selinux-vde
media-video/vlc sec-policy/selinux-mplayer
app-emulation/vmware-workstation sec-policy/selinux-vmware
net-analyzer/vnstat sec-policy/selinux-vnstatd
app-admin/webalizer sec-policy/selinux-webalizer
app-emulation/wine sec-policy/selinux-wine
net-analyzer/wireshark sec-policy/selinux-wireshark
net-wireless/wpa_supplicant sec-policy/selinux-networkmanager
x11-apps/xauth sec-policy/selinux-xserver
media-video/xine-ui sec-policy/selinux-mplayer
x11-base/xorg-server sec-policy/selinux-xprint
x11-base/xorg-server sec-policy/selinux-xprint
x11-misc/xscreensaver sec-policy/selinux-xscreensaver
sys-apps/yum sec-policy/selinux-rpm



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 20:35 [gentoo-dev] We need *you* for a USE="selinux" dependency Sven Vermeulen
@ 2011-12-04 20:50 ` Petteri Räty
  2011-12-04 22:10 ` Fabio Erculiani
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 13+ messages in thread
From: Petteri Räty @ 2011-12-04 20:50 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 412 bytes --]

On 04.12.2011 22:35, Sven Vermeulen wrote:
> Hi guys 'n gals
> 
> obligatory tl;dr:
>   Please check your package below this list and see if it (the package) has
>   a proper DEPEND and RDEPEND on the listed sec-policy/selinux-<module> package(s)
> 

The list would be easier to read if it was sorted. Also it should be
quite easy to check automatically that the atoms in place.

Regards,
Petteri


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 900 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 20:35 [gentoo-dev] We need *you* for a USE="selinux" dependency Sven Vermeulen
  2011-12-04 20:50 ` Petteri Räty
@ 2011-12-04 22:10 ` Fabio Erculiani
  2011-12-05  3:04   ` Brian Harring
  2011-12-05  3:10   ` Rich Freeman
  2011-12-04 22:53 ` Mike Frysinger
  2011-12-05  7:54 ` "Paweł Hajdan, Jr."
  3 siblings, 2 replies; 13+ messages in thread
From: Fabio Erculiani @ 2011-12-04 22:10 UTC (permalink / raw
  To: gentoo-dev

On Sun, Dec 4, 2011 at 9:35 PM, Sven Vermeulen <swift@gentoo.org> wrote:
> [...]
> The dependency must be on both levels, because the SELinux module must be
> installed before the package is installed (and in theory, RDEPEND could
> trigger an installation afterwards): during the installation phase, Portage
> labels the files on the system (which would get wrong labels if the module
> isn't installed yet[1]). Also, DEPEND isn't sufficient due to binary package
> support requirements.
>
>
> Wkr,
>        Sven Vermeulen
>
> [1] I am aware that Portage currently installs RDEPEND before the package
>    itself, but that might change in the future and other package managers might
>    exhibit different behavior.
>

I haven't really understood what you mean with RDEPENDs being scheduled "after".
RDEPEND must be always scheduled before the pkg requiring it, changing
this behaviour would have disruptive effects on all the PMS out there
(OTOH I think I haven't gotten the point actually?). I guess portage
may schedule it in arbitrary order if the RDEPEND dep itself is
satisfied already (this would mean that you explicitly pulled it in),
and this is the only case I can think of.
If you need to schedule a dep install at some point, you should rather
use PDEPEND, but if the same is required earlier in the schedule,
well, you're flooked.

-- 
Fabio Erculiani
http://lxnay.com



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 20:35 [gentoo-dev] We need *you* for a USE="selinux" dependency Sven Vermeulen
  2011-12-04 20:50 ` Petteri Räty
  2011-12-04 22:10 ` Fabio Erculiani
@ 2011-12-04 22:53 ` Mike Frysinger
  2011-12-05 11:19   ` Pacho Ramos
  2011-12-05  7:54 ` "Paweł Hajdan, Jr."
  3 siblings, 1 reply; 13+ messages in thread
From: Mike Frysinger @ 2011-12-04 22:53 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 1277 bytes --]

On Sunday 04 December 2011 15:35:50 Sven Vermeulen wrote:
> Since there are quite a few packages that would need updates, I thought
> about first mailing gentoo-dev for feedback and perhaps a first chunk of
> work done. I also wouldn't mind creating bugreports for each of them, but
> that would still be best done after having mailed gentoo-dev ;-)

i generally don't want to see bug reports that say "please add IUSE=selinux to 
XXX package and add 'selinux? ( sec-policy/selinux-XXX )' to *DEPEND".  if 
selinux wants policies pulled in by packages based on USE=selinux, and that's 
the only change needed, then feel free to commit the change yourself for any 
toolchain / base-system / vapier package.  probably easiest to skip the 
revbump and just commit to existing packages since selinux has been deadish 
for quite sometime :P.

> games-board/aisleriot sec-policy/selinux-games

i don't see why this game is singled out.  if you have a selinux policy for 
all games, then it sounds like we should add this logic to games.eclass.

> net-im/climm sec-policy/selinux-games

you sure about that one ?  this isn't a game (unless you count all forms of IM 
a "game" :p).

and yes, this list really really should have been sent through `sort`
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 22:10 ` Fabio Erculiani
@ 2011-12-05  3:04   ` Brian Harring
  2011-12-07 13:52     ` Fabio Erculiani
  2011-12-05  3:10   ` Rich Freeman
  1 sibling, 1 reply; 13+ messages in thread
From: Brian Harring @ 2011-12-05  3:04 UTC (permalink / raw
  To: lxnay; +Cc: gentoo-dev

On Sun, Dec 04, 2011 at 11:10:17PM +0100, Fabio Erculiani wrote:
> On Sun, Dec 4, 2011 at 9:35 PM, Sven Vermeulen <swift@gentoo.org> wrote:
> > [...]
> > The dependency must be on both levels, because the SELinux module must be
> > installed before the package is installed (and in theory, RDEPEND could
> > trigger an installation afterwards): during the installation phase, Portage
> > labels the files on the system (which would get wrong labels if the module
> > isn't installed yet[1]). Also, DEPEND isn't sufficient due to binary package
> > support requirements.
> >
> >
> > Wkr,
> > ?? ?? ?? ??Sven Vermeulen
> >
> > [1] I am aware that Portage currently installs RDEPEND before the package
> > ?? ??itself, but that might change in the future and other package managers might
> > ?? ??exhibit different behavior.
> >
> 
> I haven't really understood what you mean with RDEPENDs being scheduled "after".
> RDEPEND must be always scheduled before the pkg requiring it,

While it appears that way, it's not actually true; RDEPEND is what the 
pkg requires to be able to be usable, not what is required to merge 
it.

Key thing there is the 'run' part; the manager can merge a pkg that 
isn't yet usable (unsatisfied rdeps), as long as nothing in the graph 
currently requires the pkg to be working at that state in the build 
plan.

Assuming pkg x DEPENDs on a, and RDEPENDS on b for the context of this 
discussion, it's perfectly valid for the manager to sequentially build 
and merge (a, x, b).  At the point 'b' is merged, 'x' is considered 
satisfied/usable.

This is the long term rules; the reason it's not obvious is because 
it's rare for the graph to be flexed in such a fashion that a,x,b is 
forced rather than a,b,x.  Cycles, blockers, odd deps, etc, can 
force it however.


> If you need to schedule a dep install at some point, you should rather
> use PDEPEND, but if the same is required earlier in the schedule,
> well, you're flooked.

In the context of this discussion (apply selinux policies), PDEPEND 
isn't valid; PDEPEND should be used strictly for for deps that are 
RDEPEND required, but the pkg can function (degraded) without; this 
being done for cycle breaking reasons.  Well aware people don't always 
abide by those terms, but that's the actual rules.

Selinux wise, the policy needs to be available for applying at merge 
time, so PDEPEND doesn't fly.
~harring



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 22:10 ` Fabio Erculiani
  2011-12-05  3:04   ` Brian Harring
@ 2011-12-05  3:10   ` Rich Freeman
  2011-12-05  7:27     ` [gentoo-dev] " Duncan
  2011-12-05 12:22     ` [gentoo-dev] " Ciaran McCreesh
  1 sibling, 2 replies; 13+ messages in thread
From: Rich Freeman @ 2011-12-05  3:10 UTC (permalink / raw
  To: gentoo-dev

On Sun, Dec 4, 2011 at 5:10 PM, Fabio Erculiani <lxnay@gentoo.org> wrote:
> I haven't really understood what you mean with RDEPENDs being scheduled "after".
> RDEPEND must be always scheduled before the pkg requiring it, changing
> this behaviour would have disruptive effects on all the PMS out there

There is only one PMS out there, unless you're counting versions (they
are cumulative so the latest approved one should be the one you use -
correct me if I'm wrong there).  PMS != package manager.

In this particular case the approved PMS says "In the pkg phases, at
least one of the following conditions must be met: any command
provided by a packaged listed in DEPEND is available; any command
provided by a packaged listed in RDEPEND is available."  Perhaps
somebody with a more twisted sense of logic than I can make some sense
out of that - to me it suggests that an ebuild can safely assume that
either the packages listed in DEPEND are available, or the packages
listed in RDEPEND are available, but not necessarily both (though you
could count on RDEPEND if you have DEPEND=RDEPEND set or are using an
EAPI that has this behavior).

I suspect that the PMS team has already noticed that since the current
non-approved PMS is a bit more clear.  It says (in a table) that any
of the pkg phases can assume that the RDEPENDs are there "(unless the
particular dependency results in a circular dependency, in which case
it may be installed later)."  I guess that means that pkg phases can't
assume that RDEPENDs are there after all.  Additionally pkg_config can
assume that RDEPEND and PDEPEND are present (with no caveats).  None
of the pkg phases can assume that anything in DEPEND is present
(obviously unless it is also in RDEPEND).

My sense is that none of the PMS versions really say quite what we
want the behavior to be - as to be truly compliant ebuilds would have
to require nothing outside of the base system in the pkg phases (other
than pkg_config) - then again, maybe we can live with that.  It
doesn't seem to add much value to say that RDEPEND /might/ be
available - the necessary conditional logic to take advantage of a
command that might or might not be present seems like a QA nightmare.
We should probably specify that ebuilds either can safely count on
RDEPEND, or not, in each of the phases.

(Disclaimer - I claim no special knowledge of the mechanics of your
favorite package manager - I'm simply reading the specs.)

Rich



^ permalink raw reply	[flat|nested] 13+ messages in thread

* [gentoo-dev] Re: We need *you* for a USE="selinux" dependency
  2011-12-05  3:10   ` Rich Freeman
@ 2011-12-05  7:27     ` Duncan
  2011-12-05 12:22     ` [gentoo-dev] " Ciaran McCreesh
  1 sibling, 0 replies; 13+ messages in thread
From: Duncan @ 2011-12-05  7:27 UTC (permalink / raw
  To: gentoo-dev

Rich Freeman posted on Sun, 04 Dec 2011 22:10:19 -0500 as excerpted:

> My sense is that none of the PMS versions really say quite what we want
> the behavior to be - as to be truly compliant ebuilds would have to
> require nothing outside of the base system in the pkg phases (other than
> pkg_config) - then again, maybe we can live with that.  It doesn't seem
> to add much value to say that RDEPEND /might/ be available - the
> necessary conditional logic to take advantage of a command that might or
> might not be present seems like a QA nightmare. We should probably
> specify that ebuilds either can safely count on RDEPEND, or not, in each
> of the phases.

tl;dr folks can skip.  This is just an explanation for those who might 
need it, tho the usual disclaimers about not being a PM or PMS guru 
apply, so assuming I've got it straight, myself.

You are, I believe, correct as to the pkg phase requirements -- other 
than pkg_config, they actually require nothing other than @system.  The 
second-to-last paragraph has the solution already proposed by the PM/PMS 
folks, but there's some resistance, reasons explained there.

It helps to keep in mind the situation with 100% binpkg installations 
that do no building, along with RDEPEND's cycle-breaking role.  Obviously 
DEPEND can't be counted on there since such systems do no building.  
Equally obviously, RDEPEND must eventually be installed for full runtime 
functionality, but can't be depended on during the pkg phases so as to 
fill the circular dependency requirements.

The distinction between PDEPEND and RDEPEND, then, is that PDEPEND is 
more like a strong recommendation, it should be installed as well, but 
the package doesn't depend on it to actually run so installation can be 
put off more or less indefinitely, while RDEPEND is assumed to be there 
as soon as the package is installed, since at that point it's assumed to 
be runnable and RDEPEND is runtime dependencies.  So RDEPEND can't be 
depended upon during installation (both src and pkg phases, other than 
pkg_config but like PDEPEND, that can be put off indefinitely, from the 
PM's and thus PMS perspective), but IS depended upon IMMEDIATELY AFTER 
installation, as the package is then considered runnable and thus RDEPEND 
must be installed, while PDEPEND installation can be put off effectively 
indefinitely.

In practice, because a package is assumed to be runnable as soon as it is 
fully installed, RDEPEND is NORMALLY installed first and thus there for 
most or all phases, as that's the easiest way to ensure that the package 
is fully runnable after the PM is done with that package, but that's not 
REQUIRED to be the case, and in a circular dependency bind, a PM MAY have 
to wait until after all installation phases are complete, then pause 
before actually certifying it so and install the RDEPEND then.

As a paused install, the PM can then fudge the dependencies of the 
circularly dependent package since the paused install /is/ actually 
installed, all installation phases complete, it's just waiting on that 
circular dependency RDEPEND to take the installation off pause and 
certify it as fully installed.

For build-systems, putting a package in both DEPEND and RDEPEND thus in 
practice assures that it's installed during pkg_preinst and pkg_postinst, 
since the PM isn't likely to install it for building, then uninstall it, 
then ensure that it's installed after installation at runtime again, but 
that doesn't work on 100% binpkg installations either, since they don't 
have to consider DEPEND at all because the package isn't being built.

This corner-case is why Ciaran and others involved with the PMs and PMS 
have recommended adding additional dependency types, among them, one that 
would be required during the post-build install phases (pkg_preinst and 
pkg_postinst).  That recommendation hasn't gone anywhere, however, 
because in most cases the existing deps are "good enough", and at some 
point, there's simply too many *DEPEND types to effectively keep track 
of, such that the additional costs aren't considered worth the trouble of 
the corner-case solution.

I suppose that corner-case might be one reason I occasionally have 
installation failures on big updates such as kde, but with --keep-going, 
portage continues to install other packages, and at some point manually 
retrying the failed installation "just works".  The other reason (other 
than the occasional job token miscount, -j* issue when multiple merges 
are going on, or other apparently random build-system failure) is of 
course incompletely specified deps in the dependency thicket of upstream 
kde's monolithic tarball buildsystem, but I can't fault gentoo/kde for 
missing something there occasionally, particularly when it's not 
reproducible afterward because the ordering has been resolved!

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 20:35 [gentoo-dev] We need *you* for a USE="selinux" dependency Sven Vermeulen
                   ` (2 preceding siblings ...)
  2011-12-04 22:53 ` Mike Frysinger
@ 2011-12-05  7:54 ` "Paweł Hajdan, Jr."
  2011-12-05 20:42   ` Sven Vermeulen
  3 siblings, 1 reply; 13+ messages in thread
From: "Paweł Hajdan, Jr." @ 2011-12-05  7:54 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2096 bytes --]

On 12/4/11 9:35 PM, Sven Vermeulen wrote:
> Within the Gentoo Hardened project, we are working on getting the SELinux
> support into shape. Recent evolutions are the stabilization of latest upstream
> userspace utilities and policies as well as documentation improvements and even
> some "human resource improvements" (read: fresh blood in our ranks).

This is excellent progress! Kudos for working on this.

> In Gentoo, unlike some other distributions, we try to keep the number of
> loaded/installed modules to a minimum so that policy rebuilds as well as the
> system overhead is limited. This results in a "base" policy (provided by
> selinux-base-policy) and modules (provided by sec-policy/selinux-<modulename>). To make
> sure that installations of a package pull in the right SELinux module, the
> proper dependencies must be defined.

Are you sure this is right choice? It seems to me that it'd be better to
focus no making things work, and increasing the complexity of the deps
makes this harder (and increasing the number of packages you maintain
too). Unless you have _abundant_ resources to deal with that, I'd like
to discourage you from handling policies that way.

Furthermore, imagine I'm adding a new package "foo" that is covered by
the SELinux policy. Most developers don't use SELinux (hey, I suspect
most of them don't even use developer profile; bad, bad!). How do I know
whether it's sec-policy/selinux-foo that's not yet added or
sec-policy/selinux-games or something else... If the complete policy is
in one package, this should be obvious, and we don't even need deps for
that.

> Since there are quite a few packages that would need updates, I thought about
> first mailing gentoo-dev for feedback and perhaps a first chunk of work done. I
> also wouldn't mind creating bugreports for each of them, but that would still be
> best done after having mailed gentoo-dev ;-)

As said by other devs here, I also think it'd be more effective if you
just do the change yourself. USE="selinux" doesn't affect anything else
so it's safe.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 203 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-04 22:53 ` Mike Frysinger
@ 2011-12-05 11:19   ` Pacho Ramos
  0 siblings, 0 replies; 13+ messages in thread
From: Pacho Ramos @ 2011-12-05 11:19 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1509 bytes --]

El dom, 04-12-2011 a las 17:53 -0500, Mike Frysinger escribió:
> On Sunday 04 December 2011 15:35:50 Sven Vermeulen wrote:
> > Since there are quite a few packages that would need updates, I thought
> > about first mailing gentoo-dev for feedback and perhaps a first chunk of
> > work done. I also wouldn't mind creating bugreports for each of them, but
> > that would still be best done after having mailed gentoo-dev ;-)
> 
> i generally don't want to see bug reports that say "please add IUSE=selinux to 
> XXX package and add 'selinux? ( sec-policy/selinux-XXX )' to *DEPEND".  if 
> selinux wants policies pulled in by packages based on USE=selinux, and that's 
> the only change needed, then feel free to commit the change yourself for any 
> toolchain / base-system / vapier package.  probably easiest to skip the 
> revbump and just commit to existing packages since selinux has been deadish 
> for quite sometime :P.

I fully agree with Mike here, feel free to change it in packages
maintained by me (I have seen bluez ;))

> 
> > games-board/aisleriot sec-policy/selinux-games
> 
> i don't see why this game is singled out.  if you have a selinux policy for 
> all games, then it sounds like we should add this logic to games.eclass.
> 
> > net-im/climm sec-policy/selinux-games
> 
> you sure about that one ?  this isn't a game (unless you count all forms of IM 
> a "game" :p).
> 
> and yes, this list really really should have been sent through `sort`
> -mike



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-05  3:10   ` Rich Freeman
  2011-12-05  7:27     ` [gentoo-dev] " Duncan
@ 2011-12-05 12:22     ` Ciaran McCreesh
  1 sibling, 0 replies; 13+ messages in thread
From: Ciaran McCreesh @ 2011-12-05 12:22 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 668 bytes --]

On Sun, 4 Dec 2011 22:10:19 -0500
Rich Freeman <rich0@gentoo.org> wrote:
> In this particular case the approved PMS says "In the pkg phases, at
> least one of the following conditions must be met: any command
> provided by a packaged listed in DEPEND is available; any command
> provided by a packaged listed in RDEPEND is available."

Yeah, that's a screwup that's been discussed at length. It shouldn't be
giving you any guarantees at all for pkg_*, since RDEPEND-RDEPEND
cycles need to be breakable (there are lots of them in the tree).

The fix is likely going to be an IDEPEND or something along those lines
in the next EAPI.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-05  7:54 ` "Paweł Hajdan, Jr."
@ 2011-12-05 20:42   ` Sven Vermeulen
  2011-12-07 13:34     ` "Paweł Hajdan, Jr."
  0 siblings, 1 reply; 13+ messages in thread
From: Sven Vermeulen @ 2011-12-05 20:42 UTC (permalink / raw
  To: gentoo-dev

On Mon, Dec 05, 2011 at 08:54:13AM +0100, "Paweł Hajdan, Jr." wrote:
> > In Gentoo, unlike some other distributions, we try to keep the number of
> > loaded/installed modules to a minimum so that policy rebuilds as well as the
> > system overhead is limited. This results in a "base" policy (provided by
> > selinux-base-policy) and modules (provided by sec-policy/selinux-<modulename>). To make
> > sure that installations of a package pull in the right SELinux module, the
> > proper dependencies must be defined.
> 
> Are you sure this is right choice? It seems to me that it'd be better to
> focus no making things work, and increasing the complexity of the deps
> makes this harder (and increasing the number of packages you maintain
> too). Unless you have _abundant_ resources to deal with that, I'd like
> to discourage you from handling policies that way.

For end users, this is much more enjoyable. If we load up all policies, then
any interaction with the SELinux policies will take some time. Also, all
policies in memory do take up some space. Finally, for development purposes,
this is very much enjoyable as well, since it allows for much faster policy
development (rebuild policies in seconds to minutes rather than dozen of
minutes).

Maintenance is actually pretty easy. The eclass we use provides us with a
very easy interface to add modules, and because it is a module per ebuild,
we can push changes on individual modules without pushing full policy builds
again.

> Furthermore, imagine I'm adding a new package "foo" that is covered by
> the SELinux policy. Most developers don't use SELinux (hey, I suspect
> most of them don't even use developer profile; bad, bad!). How do I know
> whether it's sec-policy/selinux-foo that's not yet added or
> sec-policy/selinux-games or something else... If the complete policy is
> in one package, this should be obvious, and we don't even need deps for
> that.

I know. This is one major hurdle that we need to take on. Using dependencies
is the "easiest" approach, albeit the most resource intensive one
(initially, that is). I don't mind having the dependencies added as we go.
For our end users, we already documented that missing modules are to be
expected and how to resolve it.

> As said by other devs here, I also think it'd be more effective if you
> just do the change yourself. USE="selinux" doesn't affect anything else
> so it's safe.

Ok, no problem. I'll check on IRC regardless, if not just to give a "heads
up" on changes.

Also, my apologies for not sorting the list. Careful readers will notice it
is sorted, but by the package name, not category :/ 

Thanks you all for the feedback!

Wkr,
	Sven Vermeulen



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-05 20:42   ` Sven Vermeulen
@ 2011-12-07 13:34     ` "Paweł Hajdan, Jr."
  0 siblings, 0 replies; 13+ messages in thread
From: "Paweł Hajdan, Jr." @ 2011-12-07 13:34 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 614 bytes --]

On 12/5/11 9:42 PM, Sven Vermeulen wrote:
> For end users, this is much more enjoyable. If we load up all policies, then
> any interaction with the SELinux policies will take some time. Also, all
> policies in memory do take up some space. Finally, for development purposes,
> this is very much enjoyable as well, since it allows for much faster policy
> development (rebuild policies in seconds to minutes rather than dozen of
> minutes).

I wasn't aware that dealing with the policies is so slow.

Just how about providing a meta package pulling all policies just in
case someone wants to do that?


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 203 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [gentoo-dev] We need *you* for a USE="selinux" dependency
  2011-12-05  3:04   ` Brian Harring
@ 2011-12-07 13:52     ` Fabio Erculiani
  0 siblings, 0 replies; 13+ messages in thread
From: Fabio Erculiani @ 2011-12-07 13:52 UTC (permalink / raw
  To: Brian Harring; +Cc: gentoo-dev

On Mon, Dec 5, 2011 at 4:04 AM, Brian Harring <ferringb@gmail.com> wrote:
> [..]
>
> While it appears that way, it's not actually true; RDEPEND is what the
> pkg requires to be able to be usable, not what is required to merge
> it.
> [...]

Correct, I didn't want to be so picky on the explanation.

-- 
Fabio Erculiani



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2011-12-07 13:53 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-04 20:35 [gentoo-dev] We need *you* for a USE="selinux" dependency Sven Vermeulen
2011-12-04 20:50 ` Petteri Räty
2011-12-04 22:10 ` Fabio Erculiani
2011-12-05  3:04   ` Brian Harring
2011-12-07 13:52     ` Fabio Erculiani
2011-12-05  3:10   ` Rich Freeman
2011-12-05  7:27     ` [gentoo-dev] " Duncan
2011-12-05 12:22     ` [gentoo-dev] " Ciaran McCreesh
2011-12-04 22:53 ` Mike Frysinger
2011-12-05 11:19   ` Pacho Ramos
2011-12-05  7:54 ` "Paweł Hajdan, Jr."
2011-12-05 20:42   ` Sven Vermeulen
2011-12-07 13:34     ` "Paweł Hajdan, Jr."

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox