Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 531638

Summary: sys-libs/libse{linux,manage} install .py files without installing .py[co] files
Product: Gentoo Linux Reporter: Jason Zaman <perfinion>
Component: SELinuxAssignee: Jason Zaman <perfinion>
Status: RESOLVED FIXED    
Severity: normal CC: selinux
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 411063    

Description Jason Zaman gentoo-dev 2014-12-04 10:26:00 UTC
packages installing python files need to call python_optimize (when using python-utils-r1.eclass) or python_byte-compile_modules (when using python.eclass)

Failing to do this causes them to be generated randomly later which causes left over files or sandbox violations.

Before adding python_optimize:
# equery f libselinux | grep site-packages
/usr/lib64/python2.7/site-packages
/usr/lib64/python2.7/site-packages/selinux
/usr/lib64/python2.7/site-packages/selinux/__init__.py
/usr/lib64/python2.7/site-packages/selinux/_selinux.so
/usr/lib64/python2.7/site-packages/selinux/audit2why.so
/usr/lib64/python3.4/site-packages
/usr/lib64/python3.4/site-packages/selinux
/usr/lib64/python3.4/site-packages/selinux/__init__.py
/usr/lib64/python3.4/site-packages/selinux/_selinux.so
/usr/lib64/python3.4/site-packages/selinux/audit2why.so


After adding python_optimize:
# equery f libselinux | grep site-packages
/usr/lib64/python2.7/site-packages
/usr/lib64/python2.7/site-packages/selinux
/usr/lib64/python2.7/site-packages/selinux/__init__.py
/usr/lib64/python2.7/site-packages/selinux/__init__.pyc
/usr/lib64/python2.7/site-packages/selinux/__init__.pyo
/usr/lib64/python2.7/site-packages/selinux/_selinux.so
/usr/lib64/python2.7/site-packages/selinux/audit2why.so
/usr/lib64/python3.4/site-packages
/usr/lib64/python3.4/site-packages/selinux
/usr/lib64/python3.4/site-packages/selinux/__init__.py
/usr/lib64/python3.4/site-packages/selinux/__pycache__
/usr/lib64/python3.4/site-packages/selinux/__pycache__/__init__.cpython-34.pyc
/usr/lib64/python3.4/site-packages/selinux/__pycache__/__init__.cpython-34.pyo
/usr/lib64/python3.4/site-packages/selinux/_selinux.so
/usr/lib64/python3.4/site-packages/selinux/audit2why.so
Comment 1 Jason Zaman gentoo-dev 2014-12-04 11:02:09 UTC
committed libse{manage,linux} 2.3 with a revbump and committing the 2.4-rc ones without a revbump since there will be a new RC any day now so we'll bump it then.


RCS file: /var/cvsroot/gentoo-x86/sys-libs/libselinux/libselinux-2.4_rc6.ebuild,v
retrieving revision 1.1
diff -u -B -r1.1 libselinux-2.4_rc6.ebuild
--- libselinux-2.4_rc6.ebuild	14 Nov 2014 19:17:27 -0000	1.1
+++ libselinux-2.4_rc6.ebuild	4 Dec 2014 10:45:15 -0000
@@ -102,6 +102,7 @@
 	if multilib_is_native_abi && use python; then
 		installation() {
 			LIBDIR="\$(PREFIX)/$(get_libdir)" emake DESTDIR="${D}" install-pywrap
+			python_optimize # bug 531638
 		}
 		python_foreach_impl installation
 	fi
Comment 2 Eric Gisse 2014-12-04 22:56:34 UTC
Manually unmasking the packages in the respective ebuilds, rengerating the portage snapshot, and rebuilding the stage 3 worked for me. 

real    296m43.447s
user    265m35.760s
sys     175m27.030s

Note: I did tell the stage3 build to purge, so it was starting from scratch.

Works for me!
Comment 3 Jason Zaman gentoo-dev 2014-12-06 12:46:12 UTC
There are a few other packages that install python but do not call python_optimize, reopening.
Comment 4 Jason Zaman gentoo-dev 2014-12-06 23:36:31 UTC
policycoreutils and sepolgen have been bumped and python_optimize has been added. that is all packages now.