plymouth:moved into main for pisi 2.0
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Generate the list of files needed in initramfs for plymouth
|
||||
|
||||
exclude_list = (
|
||||
"/usr/bin/plymouth-log-viewer",
|
||||
"/usr/sbin/plymouth-set-default-theme",
|
||||
"/usr/lib/plymouth/renderers/x11.so",
|
||||
"/usr/lib/plymouth/label.so",
|
||||
)
|
||||
|
||||
paths = (
|
||||
"/usr/share/plymouth",
|
||||
"/usr/share/pixmaps",
|
||||
"/etc/plymouth",
|
||||
)
|
||||
|
||||
FILE_LIST = "lib/initramfs/plymouth.list"
|
||||
|
||||
def usage():
|
||||
print "%s <directory>" % sys.argv[0]
|
||||
return 1
|
||||
|
||||
def generate_needed_binary_list():
|
||||
binaries = set()
|
||||
executables = os.popen("find -type f -executable | cut -c2-").read().strip().split()
|
||||
executables = set(executables).difference(exclude_list)
|
||||
|
||||
for exe in executables:
|
||||
if exe.endswith(".la"):
|
||||
continue
|
||||
if ".so." in exe:
|
||||
# Add the libfoo.so.X symlink instead of libfoo.so.X.y.z
|
||||
symlink = exe.rsplit(".", 2)[0]
|
||||
if os.path.exists(symlink[1:]):
|
||||
binaries.add(symlink)
|
||||
continue
|
||||
|
||||
binaries.add(exe)
|
||||
|
||||
for exe in executables:
|
||||
for line in os.popen("ldd %s" % exe[1:]):
|
||||
if "=> /" in line:
|
||||
binaries.add(line.split()[2])
|
||||
elif line.strip().startswith("/"):
|
||||
binaries.add(line.strip().split()[0])
|
||||
|
||||
return binaries
|
||||
|
||||
def get_other_file_list():
|
||||
files = ["usr/share/pixmaps/plymouth-pisilinux.png", "usr/share/themes/charge/charge.plymouth"]
|
||||
for path in paths:
|
||||
files.extend(os.popen("find %s -type f" % path[1:]).read().strip().split())
|
||||
|
||||
return ["/%s" % f for f in files]
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
try:
|
||||
directory = sys.argv[1]
|
||||
except:
|
||||
sys.exit(usage())
|
||||
|
||||
os.chdir(directory)
|
||||
files = generate_needed_binary_list()
|
||||
files = files.union(get_other_file_list())
|
||||
|
||||
if not os.path.exists(os.path.dirname(FILE_LIST)):
|
||||
os.makedirs(os.path.dirname(FILE_LIST))
|
||||
open(FILE_LIST, "w").write("\n".join(sorted(files)))
|
||||
Reference in New Issue
Block a user