Server: appserver-7f0f8755-nginx-15961cad18524ec5a9db05f2a6a7e440
Current directory: /usr/lib/rpm
Software: nginx/1.27.5
Shell Command
Create a new file
Upload file
File: brp-python-bytecompile
#!/bin/bash errors_terminate=$2 extra=$3 # If using normal root, avoid changing anything. if [ -z "$RPM_BUILD_ROOT" ] || [ "$RPM_BUILD_ROOT" = "/" ]; then exit 0 fi # Figure out how deep we need to descend. We could pick an insanely high # number and hope it's enough, but somewhere, somebody's sure to run into it. depth=`(find "$RPM_BUILD_ROOT" -type f -name "*.py" -print0 ; echo /) | \ xargs -0 -n 1 dirname | sed 's,[^/],,g' | sort -u | tail -n 1 | wc -c` if [ -z "$depth" ] || [ "$depth" -le "1" ]; then exit 0 fi function python_bytecompile() { local options=$1 local python_binary=$2 local exclude=$3 local python_libdir=$4 local depth=$5 local real_libdir=$6 cat << EOF | $python_binary $options import compileall, sys, os, re python_libdir = "$python_libdir" depth = $depth real_libdir = "$real_libdir" build_root = "$RPM_BUILD_ROOT" exclude = r"$exclude" class Filter: def search(self, path): ret = not os.path.realpath(path).startswith(build_root) if exclude: ret = ret or re.search(exclude, path) return ret sys.exit(not compileall.compile_dir(python_libdir, depth, real_libdir, force=1, rx=Filter(), quiet=1)) EOF } # .pyc/.pyo files embed a "magic" value, identifying the ABI version of Python # bytecode that they are for. # # The files below RPM_BUILD_ROOT could be targeting multiple versions of # python (e.g. a single build that emits several subpackages e.g. a # python26-foo subpackage, a python31-foo subpackage etc) # # Support this by assuming that below each /usr/lib/python$VERSION/, all # .pyc/.pyo files are to be compiled for /usr/bin/python$VERSION. # # For example, below /usr/lib/python2.6/, we're targeting /usr/bin/python2.6 # and below /usr/lib/python3.1/, we're targeting /usr/bin/python3.1 # Disable Python hash seed randomization # This helps to make byte-compilation more reproducible export PYTHONHASHSEED=0 shopt -s nullglob for python_libdir in `find "$RPM_BUILD_ROOT" -type d|grep -E "/usr/lib(64)?/python[0-9]\.[0-9]$"`; do python_binary=/usr/bin/$(basename $python_libdir) real_libdir=${python_libdir/$RPM_BUILD_ROOT/} echo "Bytecompiling .py files below $python_libdir using $python_binary" # Generate normal (.pyc) byte-compiled files. python_bytecompile "" "$python_binary" "" "$python_libdir" "$depth" "$real_libdir" if [ $? -ne 0 ] && [ 0$errors_terminate -ne 0 ]; then # One or more of the files had a syntax error exit 1 fi # Generate optimized (.pyo) byte-compiled files. python_bytecompile "-O" "$python_binary" "" "$python_libdir" "$depth" "$real_libdir" if [ $? -ne 0 ] && [ 0$errors_terminate -ne 0 ]; then # One or more of the files had a syntax error exit 1 fi done # Handle other locations in the filesystem using the default python implementation # if extra is set to 0, don't do this if [ 0$extra -eq 0 ]; then exit 0 fi # If we don't have a default python interpreter, we cannot proceed default_python=${1:-/usr/bin/python} if [ ! -x "$default_python" ]; then exit 0 fi # Figure out if there are files to be bytecompiled with the default_python at all # this prevents unnecessary default_python invocation find "$RPM_BUILD_ROOT" -type f -name "*.py" | grep -Ev "/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]|/usr/share/doc" || exit 0 # Generate normal (.pyc) byte-compiled files. python_bytecompile "" $default_python "/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]|/usr/share/doc" "$RPM_BUILD_ROOT" "$depth" "/" if [ $? -ne 0 ] && [ 0$errors_terminate -ne 0 ]; then # One or more of the files had a syntax error exit 1 fi # Generate optimized (.pyo) byte-compiled files. python_bytecompile "-O" $default_python "/bin/|/sbin/|/usr/lib(64)?/python[0-9]\.[0-9]|/usr/share/doc" "$RPM_BUILD_ROOT" "$depth" "/" if [ $? -ne 0 ] && [ 0$errors_terminate -ne 0 ]; then # One or more of the files had a syntax error exit 1 fi exit 0
.
40 Items
Change directory
Remove directory
Rename directory
..
72 Items
Change directory
Remove directory
Rename directory
brp-compress
1.77 KB
Edit
Delete
Copy
Move
Remame
brp-elfperms
0.42 KB
Edit
Delete
Copy
Move
Remame
brp-python-bytecompile
3.81 KB
Edit
Delete
Copy
Move
Remame
brp-python-hardlink
0.62 KB
Edit
Delete
Copy
Move
Remame
brp-remove-la-files
0.32 KB
Edit
Delete
Copy
Move
Remame
brp-strip
0.51 KB
Edit
Delete
Copy
Move
Remame
brp-strip-comment-note
0.79 KB
Edit
Delete
Copy
Move
Remame
brp-strip-static-archive
0.48 KB
Edit
Delete
Copy
Move
Remame
check-buildroot
1.29 KB
Edit
Delete
Copy
Move
Remame
check-files
1.03 KB
Edit
Delete
Copy
Move
Remame
check-prereqs
0.41 KB
Edit
Delete
Copy
Move
Remame
check-rpaths
1.06 KB
Edit
Delete
Copy
Move
Remame
check-rpaths-worker
5.19 KB
Edit
Delete
Copy
Move
Remame
elfdeps
22.23 KB
Edit
Delete
Copy
Move
Remame
fileattrs
13 Items
Change directory
Remove directory
Rename directory
find-lang.sh
8.84 KB
Edit
Delete
Copy
Move
Remame
find-provides
0.09 KB
Edit
Delete
Copy
Move
Remame
find-requires
0.09 KB
Edit
Delete
Copy
Move
Remame
fontconfig.prov
0.48 KB
Edit
Delete
Copy
Move
Remame
macros
41.63 KB
Edit
Delete
Copy
Move
Remame
macros.d
0 Items
Change directory
Remove directory
Rename directory
mkinstalldirs
3.46 KB
Edit
Delete
Copy
Move
Remame
ocamldeps.sh
6.8 KB
Edit
Delete
Copy
Move
Remame
perl.prov
6.28 KB
Edit
Delete
Copy
Move
Remame
perl.req
8.91 KB
Edit
Delete
Copy
Move
Remame
pkgconfigdeps.sh
1.34 KB
Edit
Delete
Copy
Move
Remame
platform
67 Items
Change directory
Remove directory
Rename directory
pythondistdeps.py
27.53 KB
Edit
Delete
Copy
Move
Remame
rpm.daily
0.3 KB
Edit
Delete
Copy
Move
Remame
rpm.supp
0.67 KB
Edit
Delete
Copy
Move
Remame
rpm2cpio.sh
1.56 KB
Edit
Delete
Copy
Move
Remame
rpm_macros_provides.sh
1.27 KB
Edit
Delete
Copy
Move
Remame
rpmdb_dump
0.04 KB
Edit
Delete
Copy
Move
Remame
rpmdb_load
0.04 KB
Edit
Delete
Copy
Move
Remame
rpmdeps
18.9 KB
Edit
Delete
Copy
Move
Remame
rpmpopt-4.18.0
10.54 KB
Edit
Delete
Copy
Move
Remame
rpmrc
17.45 KB
Edit
Delete
Copy
Move
Remame
rpmuncompress
14.9 KB
Edit
Delete
Copy
Move
Remame
script.req
0.31 KB
Edit
Delete
Copy
Move
Remame
tgpg
0.91 KB
Edit
Delete
Copy
Move
Remame