Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 355915 - Hardened profiles inadvertently enable the unicode USE flag
Summary: Hardened profiles inadvertently enable the unicode USE flag
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Hardened (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: The Gentoo Linux Hardened Kernel Team (OBSOLETE)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-21 22:03 UTC by Francisco Blas Izquierdo Riera
Modified: 2011-06-28 21:41 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francisco Blas Izquierdo Riera (RETIRED) gentoo-dev 2011-02-21 22:03:46 UTC
The hardened profiles incorrectly enable the unicode USE flag although they should disable this. This was discovered after some recent changes.

The solution applied was reordering the parents of the profiles so the hardened profile had the last saying on which USE flags are enabled or disabled.

Reproducible: Always




(As of this writting this bug is resolved, but it is left just as an annotation on what was done and why).
Comment 1 Anthony Basile gentoo-dev 2011-02-21 22:08:37 UTC
This was resolved by moving the inheritance from hardened/linux to the bottom of the stack in the following files:

   hardened/linux/amd64/parent
   hardened/linux/ia64/parent
   hardened/linux/powerpc/parent
   hardened/linux/powerpc/ppc32/parent
   hardened/linux/powerpc/ppc64/parent
   hardened/linux/x86/parent

Comment 2 Gordon Malm (RETIRED) gentoo-dev 2011-02-22 18:46:46 UTC
We discussed this is a bit in IRC, but I will recap here.

Revision history of one of the parent files:  http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/profiles/hardened/linux/amd64/parent?view=log

As one can see, this is the same change that was made in bug #282800 that needed to be reverted.  In those days, this broke things (beyond just what was in that bug).  These days it appears the change is "ok", though I am still getting comfortable with the change.  I've pointed out before that inherit order is extremely important.  Robbat2 has done some interesting profile graphing in the past: http://dev.gentoo.org/~robbat2/profile-graph/.

Let's look at the previous inherit order briefly.  In profiles/harened/linux/amd64/parent we had:
../../../base
..
../../../arch/amd64
../../../releases/10.0 

base system -> apply base hardening on top -> arch bits/maskings, unmaskings -(temp & perm)/etc. -> release-specific bits -> hardened-specific amd64 dir (so place to unmask/remask amd64 bits that may not be hardened-compat).

Now we have:
../../../base
../../../arch/amd64
../../../releases/10.0 
..

base system -> arch bits/maskings, unmaskings -(temp & perm)/etc. -> release-specific bits -> apply base hardening on top -> hardened-specific amd64 dir.

Now there is a lot to discuss about how this can/does work in practice.  When you start poking around at the contents of .. vs. the two profiles its being re-ordered against and imagine developers adding temporary maskings/unmaskings, etc. you can get a good idea how it will interact.  One thing to keep in mind is that you have two very distinct "insertion points" in the previous model, where as now the two areas "under control of hardened" (.. and .) are serial.

After looking through it a bit, it does appear that at this time we could do/go either way.  A few things have been re-ordered/changed "upstream" (mainline gentoo profiles) and our own profile-house is in much better order than in the past.

Mull it over a bit.  If you do decide to stick with the "new" way, we should take the next steps and actually make good use of the new order by merging common/duplicated items in the hardened-arch subprofiles into the common hardened base profile (the nvidia maskings/USE masks for instance).  Also, there are some old bits in hardened/linux/use.mask that need to be removed:
emul-linux-x86

# tcc is x86-only
tcc

emul-linux-x86 is masked in based, unmasked in amd64 arch dir.  this is a stragler from the really old single-inheritance hardened/ profiles that was being negated in the previous inherit order, but now rears its head and is masking even on amd64 (upstream is handling the flag properly, so we should just remove/untouch it).  tcc should be a similar story.

Thank you for your time, consideration and hard work.
Comment 3 Anthony Basile gentoo-dev 2011-02-23 01:44:42 UTC
*** Bug 356149 has been marked as a duplicate of this bug. ***
Comment 4 Gordon Malm (RETIRED) gentoo-dev 2011-02-24 17:36:11 UTC
hardened/linux/amd64/package.use.mask:>=dev-util/kdevelop-3.9.98 cxx
hardened/linux/x86/package.use.mask:>=dev-util/kdevelop-3.9.98 cxx

<Zorry> we can remove the kdevelop cxx use mask we have newer gdb that works
<Zorry> gengor: we can remove all the kdevelop cxx use mask on the profile

Just noting it here with the others from the previous comment, we'll be doing a cleanup after the overall structure problem is resolved.
Comment 5 Gordon Malm (RETIRED) gentoo-dev 2011-02-24 17:36:47 UTC
<Zorry> sci-libs/acml-3.6  in package.mask can be removed to i think
<Zorry> dep was newer gcc-4.2
Comment 6 Magnus Granberg gentoo-dev 2011-02-24 17:44:43 UTC
package.use.mask app-emulation/wine    win64  dep gcc 4.4
some more cleaning
Comment 7 Pryka 2011-06-28 06:42:59 UTC
Sorry for opening I just migrate to Hardened profile on amd64 and don't understand why Unicode flag is (-) by default, can someone explain this to me?

I can safely change it to (+)?


And what about ipv6 and fortran? Why they are (-)? I can't find answers for those questions in documentation.

Best Regards

ps. Sorry for my English I'm from Poland.
Comment 8 Anthony Basile gentoo-dev 2011-06-28 15:04:10 UTC
(In reply to comment #7)
> Sorry for opening I just migrate to Hardened profile on amd64 and don't
> understand why Unicode flag is (-) by default, can someone explain this to me?
> 
> I can safely change it to (+)?
> 
> 
> And what about ipv6 and fortran? Why they are (-)? I can't find answers for
> those questions in documentation.
> 
> Best Regards
> 
> ps. Sorry for my English I'm from Poland.

It is safe to change +unicode, +ivp6 and +fortran.  There is no strong reason for the decisions.
Comment 9 Pryka 2011-06-28 15:31:13 UTC
(In reply to comment #8)
> It is safe to change +unicode, +ivp6 and +fortran.  There is no strong reason
> for the decisions.

Thank You for answer, I've got one more question.

The use flags:
-3dnow
-3dnowext
-mmx
-mmxext
-sse
-sse2
-sse3
-ssse3

are masked in /usr/portage/profiles/hardened/amd64/use.mask

But when I run emerge mplayer -pv i can see that none of this flags are currently masked, they are only "un-active" and some of them are even active at this moment, please look:

[ebuild   R    ] media-video/mplayer-1.0_rc4_p20110322  USE="X a52 alsa ass cdio dirac dts dv dvd dvdnav enca encode faac faad fbcon gif iconv jpeg live lzo mmx mp3 network opengl osdmenu png quicktime rar real rtc schroedinger shm speex sse sse2 theora toolame tremor truetype twolame vorbis x264 xscreensaver xv xvid -3dnow -3dnowext -aalib (-altivec) -amr (-aqua) -bidi -bindist -bl -bluray -bs2b -cddb -cdparanoia -cpudetection -custom-cpuopts -debug -dga -directfb -doc -dvb -dxr3 -esd -ftp -ggi -gsm -ipv6* -jack -joystick -jpeg2k -ladspa -libcaca -libmpeg2 -lirc -mad -md5sum -mmxext* -mng -mpg123 -nas -nut -openal -oss -pnm -pulseaudio -pvr -radio -rtmp -samba -sdl -ssse3* -tga -unicode* -v4l -v4l2 (-vdpau) (-vidix) -vpx (-win32codecs) -xanim -xinerama -xvmc -zoran" VIDEO_CARDS="-mga -s3virge -tdfx -vesa"

The only masked one are (-altivec), (-aqua), (-vdpau), (-vidix) and (-win32codecs)

Maybe I just don't understand the structure of /etc/portage/profiles but I've looked in every use.mask in /etc/portage/profiles/hardened and I can't see correlation between those files and what I actually see in emerge pretend use flags.
Comment 10 Anthony Basile gentoo-dev 2011-06-28 21:41:29 UTC
(In reply to comment #9)
> (In reply to comment #8)
> > It is safe to change +unicode, +ivp6 and +fortran.  There is no strong reason
> > for the decisions.
> 
> Thank You for answer, I've got one more question.
> 
> The use flags:
> -3dnow
> -3dnowext
> -mmx
> -mmxext
> -sse
> -sse2
> -sse3
> -ssse3
> 
> are masked in /usr/portage/profiles/hardened/amd64/use.mask
> 
> But when I run emerge mplayer -pv i can see that none of this flags are
> currently masked, they are only "un-active" and some of them are even active at
> this moment, please look:
> 
> [ebuild   R    ] media-video/mplayer-1.0_rc4_p20110322  USE="X a52 alsa ass
> cdio dirac dts dv dvd dvdnav enca encode faac faad fbcon gif iconv jpeg live
> lzo mmx mp3 network opengl osdmenu png quicktime rar real rtc schroedinger shm
> speex sse sse2 theora toolame tremor truetype twolame vorbis x264 xscreensaver
> xv xvid -3dnow -3dnowext -aalib (-altivec) -amr (-aqua) -bidi -bindist -bl
> -bluray -bs2b -cddb -cdparanoia -cpudetection -custom-cpuopts -debug -dga
> -directfb -doc -dvb -dxr3 -esd -ftp -ggi -gsm -ipv6* -jack -joystick -jpeg2k
> -ladspa -libcaca -libmpeg2 -lirc -mad -md5sum -mmxext* -mng -mpg123 -nas -nut
> -openal -oss -pnm -pulseaudio -pvr -radio -rtmp -samba -sdl -ssse3* -tga
> -unicode* -v4l -v4l2 (-vdpau) (-vidix) -vpx (-win32codecs) -xanim -xinerama
> -xvmc -zoran" VIDEO_CARDS="-mga -s3virge -tdfx -vesa"
> 
> The only masked one are (-altivec), (-aqua), (-vdpau), (-vidix) and
> (-win32codecs)
> 
> Maybe I just don't understand the structure of /etc/portage/profiles but I've
> looked in every use.mask in /etc/portage/profiles/hardened and I can't see
> correlation between those files and what I actually see in emerge pretend use
> flags.

We should not use bugzilla for support.  Use the forums for that.  This bug is about the unicode USE flag.  We use the forums for support.