Projects
Eulaceura:Mainline:GA
kiwi
_service:obs_scm:openEuler-custom-make.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:openEuler-custom-make.patch of Package kiwi
diff --git a/kiwi/archive/cpio.py b/kiwi/archive/cpio.py index 27d596c..042f1cd 100644 --- a/kiwi/archive/cpio.py +++ b/kiwi/archive/cpio.py @@ -17,7 +17,11 @@ # # project from kiwi.command import Command +from kiwi.runtime_config import RuntimeConfig +import os +import logging +log = logging.getLogger('kiwi') class ArchiveCpio: """ @@ -27,6 +31,7 @@ class ArchiveCpio: """ def __init__(self, filename): self.filename = filename + self.runtime_config = RuntimeConfig() def create(self, source_dir, exclude=None): """ @@ -35,6 +40,62 @@ class ArchiveCpio: :param string source_dir: data source directory :param list exclude: list of excluded items """ + if self.runtime_config.get_custom_hw_systemflag(): + delete_list = ['vmlinuz*', 'initrd*', 'initramfs*', 'grub'] + for delete_file in delete_list: + rm_boot_cmd = 'rm -rf '+ source_dir + '/boot/' + delete_file + os.system(rm_boot_cmd) + sec_flag = "false" + pwd = os.getcwd() + secDir = pwd + '/kiwi/eulerlinuxiso/' + secfile = secDir + 'security_s.conf' + if os.path.isfile(secfile): + sec_flag = "true" + log.info('Starting to do security hardening...') + sec_com = pwd + '/security-tool/sysenhance.sh -s -c ' + pwd + '/security-tool/security.conf -u ' + secfile + ' -d ' + source_dir + sec_com = 'sh '+ sec_com + ' -l /tmp/sysenhance.log > /tmp/sysenhancelog 2>&1' + os.system(sec_com) + Command.run( + ['rm', '-f', secfile] + ) + log.info("Security hardening log file at /tmp/sysenhance.log") + else: + log.info("Skip security hardening...") + + if self.runtime_config.get_custom_hw_release_type() == 'TAR': + resolve_file = secDir + 'resolve.sh' + change_uid_files = source_dir + '/usr/openEuler/conf/change_uid_files' + change_gid_files = source_dir + '/usr/openEuler/conf/change_gid_files' + if os.path.isfile(resolve_file): + log.info('Starting to resolve none-owner problem...') + Command.run( + ['cp', resolve_file, source_dir + '/tmp'] + ) + Command.run( + ['chmod', 'u+x', source_dir + '/tmp/resolve.sh'] + ) + Command.run( + ['chroot', source_dir, '/tmp/resolve.sh'] + ) + Command.run( + ['rm', '-f', source_dir + '/tmp/resolve.sh'] + ) + if not os.path.isfile(change_uid_files) or not os.path.isfile(change_gid_files): + log.info('Failed to Resolve the non-owner problem...') + else: + log.info("Skip resolve none-owner...") + + if self.runtime_config.get_custom_hw_systemflag(): + find_command = ['cd', source_dir, '&&', 'find', '.'] + cpio_command = [ + 'cpio', '-H', 'newc', '--create', '--quiet', '|', 'pigz', '-9', '>', self.filename + ] + bash_command = find_command + ['|'] + cpio_command + ['&&'] + ['cd -'] + Command.run( + ['bash', '-c', ' '.join(bash_command)] + ) + return + find_excludes = [] find_command = ['cd', source_dir, '&&', 'find', '.'] cpio_command = [ diff --git a/kiwi/boot/image/builtin_kiwi.py b/kiwi/boot/image/builtin_kiwi.py index 5b26798..30d30bc 100644 --- a/kiwi/boot/image/builtin_kiwi.py +++ b/kiwi/boot/image/builtin_kiwi.py @@ -33,6 +33,7 @@ from kiwi.archive.cpio import ArchiveCpio from kiwi.utils.compress import Compress from kiwi.path import Path from kiwi.boot.image.base import BootImageBase +from kiwi.runtime_config import RuntimeConfig log = logging.getLogger('kiwi') @@ -99,6 +100,7 @@ class BootImageKiwi(BootImageBase): system.install_system( manager ) + self.runtime_config = RuntimeConfig() profile = Profile(self.boot_xml_state) profile.add('kiwi_initrdname', boot_image_name) @@ -121,16 +123,22 @@ class BootImageKiwi(BootImageBase): self.setup.import_overlay_files( follow_links=True ) + + if self.runtime_config.get_custom_hw_systemflag(): + self.setup.setup_groups() + self.setup.setup_users() self.setup.call_config_script() - system.pinch_system( - manager=manager, force=True - ) + if not self.runtime_config.get_custom_hw_systemflag(): + system.pinch_system( + manager=manager, force=True + ) # make sure system instance is cleaned up before setting up del system self.setup.call_image_script() - self.setup.create_init_link_from_linuxrc() + if not self.runtime_config.get_custom_hw_systemflag(): + self.setup.create_init_link_from_linuxrc() def create_initrd( self, mbrid: Optional[SystemIdentifier] = None, @@ -169,15 +177,16 @@ class BootImageKiwi(BootImageBase): data.sync_data( options=Defaults.get_sync_options() ) - boot_directory = temp_boot_root_directory + '/boot' - Path.wipe(boot_directory) - if mbrid: - log.info( - '--> Importing mbrid: %s', mbrid.get_id() - ) - Path.create(boot_directory) - image_identifier = boot_directory + '/mbrid' - mbrid.write(image_identifier) + + if not self.runtime_config.get_custom_hw_systemflag(): + Path.wipe(boot_directory) + if mbrid: + log.info( + '--> Importing mbrid: %s', mbrid.get_id() + ) + Path.create(boot_directory) + image_identifier = boot_directory + '/mbrid' + mbrid.write(image_identifier) cpio = ArchiveCpio( os.sep.join([self.target_dir, kiwi_initrd_basename]) @@ -185,19 +194,33 @@ class BootImageKiwi(BootImageBase): # the following is a list of directories which were needed # during the process of creating an image but not when the # image is actually booting with this initrd - exclude_from_archive = [ - '/' + Defaults.get_shared_cache_location(), - '/image', '/usr/lib/grub*' - ] + if self.runtime_config.get_custom_hw_systemflag(): + exclude_from_archive = [ + '/' + Defaults.get_shared_cache_location(), + '/image' + ] + else: + exclude_from_archive = [ + '/' + Defaults.get_shared_cache_location(), + '/image', '/usr/lib/grub*' + ] # the following is a list of directories to exclude which - # are not needed inside of the initrd - exclude_from_archive += [ - '/usr/share/doc', '/usr/share/man', '/home', '/media', '/srv' - ] + # + if self.runtime_config.get_custom_hw_systemflag(): + exclude_from_archive += [ + '/media' + ] + else: + exclude_from_archive += [ + '/usr/share/doc', '/usr/share/man', '/home', '/media', '/srv' + ] cpio.create( source_dir=temp_boot_root_directory, exclude=exclude_from_archive ) + if self.runtime_config.get_custom_hw_systemflag(): + self.initrd_filename = kiwi_initrd_basename + return log.info( '--> xz compressing archive' ) diff --git a/kiwi/builder/kis.py b/kiwi/builder/kis.py index 55da66f..271f46b 100644 --- a/kiwi/builder/kis.py +++ b/kiwi/builder/kis.py @@ -140,24 +140,27 @@ class KisBuilder: self.boot_image_task.boot_root_directory ) - # extract kernel from boot system - kernel = Kernel(self.boot_image_task.boot_root_directory) - kernel_data = kernel.get_kernel() - if kernel_data: - self.kernel_filename = ''.join( - [ - os.path.basename(self.image_name), '-', - kernel_data.version, '.kernel' - ] - ) - kernel.copy_kernel( - self.target_dir, self.kernel_filename - ) + if self.runtime_config.get_custom_hw_product_type() == 'DPROJ': + log.info('Skin copy kernel for DPROJ') else: - raise KiwiKisBootImageError( - 'No kernel in boot image tree %s found' % - self.boot_image_task.boot_root_directory - ) + # extract kernel from boot system + kernel = Kernel(self.boot_image_task.boot_root_directory) + kernel_data = kernel.get_kernel() + if kernel_data: + self.kernel_filename = ''.join( + [ + os.path.basename(self.image_name), '-', + kernel_data.version, '.kernel' + ] + ) + kernel.copy_kernel( + self.target_dir, self.kernel_filename + ) + else: + raise KiwiKisBootImageError( + 'No kernel in boot image tree %s found' % + self.boot_image_task.boot_root_directory + ) # extract hypervisor from boot(initrd) root system if self.xen_server: @@ -198,6 +201,8 @@ class KisBuilder: cmdline += ' {}'.format(self.custom_cmdline) with open(self.append_file, 'w') as append: append.write(cmdline) + if self.runtime_config.get_custom_hw_systemflag(): + return self.result # put results into a tarball if not self.xz_options: diff --git a/kiwi/config/functions.sh b/kiwi/config/functions.sh index 98915af..0a7afb3 100644 --- a/kiwi/config/functions.sh +++ b/kiwi/config/functions.sh @@ -173,10 +173,22 @@ function baseStripLocales { baseStripAndKeep "${keepLocales}" } +#====================================== +# baseStripGconv +#-------------------------------------- +function baseStripGconv { + local keepGconv="$@" + + find /usr/lib/gconv -mindepth 1 -maxdepth 1 -type f 2>/dev/null |\ + baseStripAndKeep ${keepGconv} + + find /usr/lib64/gconv -mindepth 1 -maxdepth 1 -type f 2>/dev/null |\ + baseStripAndKeep ${keepGconv} +} + function baseStripTranslations { - local keepMatching="$*" - find /usr/share/locale -name "*.mo" |\ - grep -v "${keepMatching}" | xargs rm -f + local keepMatching="$@" + find /usr/share/locale -name "*.mo" | baseStripAndKeep ${keepMatching} } function baseStripUnusedLibs { @@ -187,6 +199,8 @@ function baseStripUnusedLibs { local needlibs local found local dir + local lnk + local new local lib local lddref # /.../ @@ -194,33 +208,33 @@ function baseStripUnusedLibs { # on files in *bin* # --- ldconfig - rm -f /tmp/needlibs - for i in /usr/bin/* /bin/* /sbin/* /usr/sbin/* /lib/systemd/systemd-*;do - for n in $(ldd "$i" 2>/dev/null | cut -f2- -d "/" | cut -f1 -d " ");do - if [ ! -e "/$n" ];then + rm -f /opt/needlibs + for i in /usr/bin/* /bin/* /sbin/* /usr/sbin/*;do + for n in $(ldd $i 2>/dev/null | cut -f2- -d\/ | cut -f1 -d " ");do + if [ ! -e /$n ];then continue fi - lddref="/$n" + lddref=/$n while true;do - if lib=$(readlink "${lddref}"); then - lddref="${lib}" + lib=$(readlink $lddref) + if [ $? -eq 0 ];then + lddref=$lib continue fi break done - lddref=$(basename "${lddref}") - echo "${lddref}" >> /tmp/needlibs + lddref=$(basename $lddref) + echo $lddref >> /opt/needlibs done done count=0 - for i in $(sort /tmp/needlibs | uniq);do + for i in `cat /opt/needlibs | sort | uniq`;do for d in \ /lib /lib64 /usr/lib /usr/lib64 \ - /usr/X11R6/lib /usr/X11R6/lib64 \ - /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu + /usr/X11R6/lib /usr/X11R6/lib64 do if [ -e "$d/$i" ];then - needlibs[${count}]="$d/$i" + needlibs[$count]=$d/$i count=$((count + 1)) fi done @@ -228,47 +242,41 @@ function baseStripUnusedLibs { # /.../ # add exceptions # ---- - for libname in $1; do - for libfile in \ - /lib*/"$libname"* /usr/lib*/"$libname"* \ - /lib/x86_64-linux-gnu/"$libname"* \ - /usr/lib/x86_64-linux-gnu/"$libname"* \ - /usr/X11R6/lib*/"$libname"* - do - if [ -e "$libfile" ];then - needlibs[$count]=$libfile - count=$((count + 1)) + while [ ! -z $1 ];do + for i in /lib*/$1* /usr/lib*/$1* /usr/X11R6/lib*/$1*;do + if [ -e $i ];then + needlibs[$count]=$i + count=`expr $count + 1` fi done + shift done # /.../ # find unused libs and remove it, dl loaded libs # seems not to be that important within the initrd # ---- - rm -f /tmp/needlibs + rm -f /opt/needlibs for i in \ /lib/lib* /lib64/lib* /usr/lib/lib* \ - /usr/lib64/lib* /usr/X11R6/lib*/lib* \ - /lib/x86_64-linux-gnu/lib* /usr/lib/x86_64-linux-gnu/lib* + /usr/lib64/lib* /usr/X11R6/lib*/lib* do found=0 - if [ ! -e "$i" ];then + if [ ! -e $i ];then continue fi - if [ -d "$i" ];then + if [ -d $i ];then continue fi - if [ -L "$i" ];then + if [ -L $i ];then continue fi for n in ${needlibs[*]};do - if [ "$i" = "$n" ];then + if [ $i = $n ];then found=1; break fi done - if [ "${found}" -eq 0 ];then - echo "Removing library: $i" - rm "$i" + if [ $found -eq 0 ];then + rm_isnot_usrfile $i fi done } @@ -289,27 +297,160 @@ function baseUpdateSysConfig { fi } -function baseStripInitrd { - declare kiwi_initrd_system=${kiwi_initrd_system} - declare kiwi_strip_tools=${kiwi_strip_tools} - declare kiwi_strip_libs=${kiwi_strip_libs} + +#find all need tool which һ +function baseStripAllTools { + local needtools=$1 + local newneedtools= + local cmdfile + local count=0 + for need in $needtools;do + cmdfile=$(which $need) + if [ $? -eq 0 ];then + newneedtools[$count]=$(basename $cmdfile) + count=$((count + 1)) + while true;do + needtool=$(readlink $cmdfile) + if [ $? -eq 0 ];then + newneedtools[$count]=$(basename $needtool) + count=$((count + 1)) + cmdfile=$needtool + continue + fi + newneedtools[$count]=$(basename $cmdfile) + count=$((count + 1)) + break + done + + fi + done + + for path in /sbin /usr/sbin /usr/bin /bin;do + baseStripTools "$path" "${newneedtools[*]}" + done + +} + +# function baseStripInitrd { +# declare kiwi_initrd_system=${kiwi_initrd_system} +# declare kiwi_strip_tools=${kiwi_strip_tools} +# declare kiwi_strip_libs=${kiwi_strip_libs} +# #========================================== +# # Check for initrd system +# #------------------------------------------ +# if [ "${kiwi_initrd_system}" = "dracut" ]; then +# echo "dracut initrd system requested, initrd strip skipped" +# return +# fi +# #========================================== +# # remove unneeded tools +# #------------------------------------------ +# local tools="${kiwi_strip_tools}" +# tools="${tools} $*" +# for path in /sbin /usr/sbin /usr/bin /bin;do +# baseStripTools "${path}" "${tools}" +# done +# } + +#====================================== +# baseStripInvalidLink +#-------------------------------------- +function baseStripInvalidLink { + local path + local link_file + for path in /etc /lib /lib64 /usr /var;do + find $path -type l -follow -exec ls {} \; | while read link_file + do + ls -l $link_file | grep -E "/proc|fd/" 1>/dev/null 2>&1 + [ $? != 0 ] && rm -f $link_file + done + done +} + +#====================================== +# suseStripInitrd +#-------------------------------------- +function suseStripInitrd { #========================================== - # Check for initrd system + # Remove unneeded files #------------------------------------------ - if [ "${kiwi_initrd_system}" = "dracut" ]; then - echo "dracut initrd system requested, initrd strip skipped" - return - fi + echo $kiwi_strip_delete | xargs rm -rfv + local tools="$kiwi_strip_tools" + tools="$tools $@" + #for path in /sbin /usr/sbin /usr/bin /bin;do + # baseStripTools "$path" "$tools" + #done + baseStripAllTools "$tools" + + #create busybox cmd link + baseSetupBusyBox -f + #========================================== - # remove unneeded tools + # remove unused libs #------------------------------------------ - local tools="${kiwi_strip_tools}" - tools="${tools} $*" - for path in /sbin /usr/sbin /usr/bin /bin;do - baseStripTools "${path}" "${tools}" - done + baseStripUnusedLibs $kiwi_strip_libs + #========================================== + # remove images.sh + #------------------------------------------ + rm -f /image/images.sh + #========================================== + # remove unused root directories + #------------------------------------------ + #rm -rf /root + #rm -rf /home + #rm -rf /media + #rm -rf /srv + #========================================== + # remove unused doc directories + #------------------------------------------ + rm -rf /usr/share/doc + rm -rf /usr/share/man + #========================================== + find /sbin /usr/sbin /usr/bin /bin -maxdepth 1 -type f |xargs rpm -qf --qf '%{name}\n' |sort -u > /opt/need_rpmlst + find /sbin /usr/sbin /usr/bin /bin -maxdepth 1 -type l |xargs rpm -qf --qf '%{name}\n' |sort -u >> /opt/need_rpmlst + + find /lib /lib64 /usr/lib /usr/lib64 \ + /usr/X11R6/lib /usr/X11R6/lib64 \ + -maxdepth 1 -type f |grep so |xargs rpm -qf --qf '%{name}\n' |sort -u >> /opt/need_rpmlst + + find /lib/modules/ -type f -name "*.ko" |xargs rpm -qf --qf '%{name}\n' |sort -u >> /opt/need_rpmlst + for i in `baseGetPackagesForDeletion`;do + grep -q ^${i}$ /opt/need_rpmlst + if [ $? -ne 0 ];then + Rpm -e --nodeps --noscripts $i + else + echo ${i} | tee -a /var/log/cancel_uninstallrpm + chmod 640 /var/log/cancel_uninstallrpm + fi + done + + # remove invalid link file + #------------------------------------------ + baseStripInvalidLink } +function strip_rpm { + #========================================== + # remove rpm cmd, until get src rpm list + #------------------------------------------ + + if [ "$sys_cut" = "yes" ];then + + #zypper# + Rpm -e --nodeps zypper libzypp satsolver-tools + + #smart + Rpm -e --nodeps smart smart-gui + + Rpm -e --nodeps rpm + + for p in dpkg rpm smart zypp YaST2;do + rm -rf /var/lib/$p + done + fi +} + + function baseStripFirmware { # /.../ # check all kernel modules if they require a firmware and @@ -412,7 +553,7 @@ function baseStripModules { if [[ ${file} =~ ${mod} ]] && [[ ! ${file} =~ "updates" ]];then echo "baseStripModules: Update driver found for ${mod}" echo "baseStripModules: Removing old version: ${file}" - rm -f "${file}" + rm_isnot_usrfile $file fi done done @@ -478,10 +619,6 @@ function baseStripKernel { if [ "${kiwi_initrd_system}" = "dracut" ]; then echo "dracut initrd system requested, kernel strip skipped" else - for delete in ${kiwi_strip_delete};do - echo "Removing file/directory: ${delete}" - rm -rf "${delete}" - done baseCreateKernelTree baseStripKernelModules baseFixupKernelModuleDependencies @@ -594,14 +731,40 @@ function suseInsertService { baseInsertService "$@" } + + +#====================================== +# suseActivateAllServices ---- add +#-------------------------------------- +function suseRemoveAllServices { + # /.../ + # Check all services in /etc/init.d/ and activate them + # by calling insertService + # ----- + for i in /etc/init.d/*;do + if [ -x $i ] && [ -f $i ];then + echo $i | grep -q skel + if [ $? = 0 ];then + continue + fi + echo $i | grep -q halt + if [ $? = 0 ];then + continue + fi + echo $i | grep -q reboot + if [ $? = 0 ];then + continue + fi + suseRemoveService ${i##*/} + fi + done +} + function suseService { # function kept for compatibility baseService "$@" } -function suseStripInitrd { - baseStripInitrd "$@" -} function suseStripKernel { baseStripKernel @@ -677,6 +840,46 @@ function Debug { fi } + +#====================================== +# baseSetupBusyBox +#-------------------------------------- +function baseSetupBusyBox { + # /.../ + # activates busybox if installed for all links from + # the busybox/busybox.links file - you can choose custom apps to + # be forced into busybox with the "-f" option as first parameter + # --- + # example: baseSetupBusyBox -f /bin/zcat /bin/vi + # --- + local applets="" + local force=no + local busyboxlinks=/usr/share/busybox/busybox.links + if [ ! -f "/usr/sbin/busybox" ]; then + echo "Busybox not installed... skipped" + return 0 + fi + if [ $# -gt 0 ] && [ "$1" = "-f" ]; then + force=yes + shift + fi + if [ $# -gt 0 ]; then + for i in "$@"; do + if grep -q "^$i$" "$busyboxlinks"; then + applets="${applets} $i" + fi + done + else + applets=`cat "$busyboxlinks"` + fi + for applet in $applets; do + if [ ! -f "$applet" ] || [ "$force" = "yes" ]; then + echo "Busybox Link: ln -sf /usr/sbin/busybox $applet" + ln -sf /usr/sbin/busybox "$applet" + fi + done +} + function baseQuoteFile { # /.../ # Quote file to be shell sourceable @@ -715,6 +918,14 @@ function baseSyncKernelTree { rm -rf /lib/modules/* cp -a /kernel-tree/* /lib/modules/ rm -rf /kernel-tree + if [ -d /lib/modules/openEuler ]; then + kversion=($(ls /lib/modules/|grep -v 'openEuler')) + for((i=0;i<${#kversion[@]};i++)) + do + rm -rf /lib/modules/${kversion[i]}/openEuler + ln -sf /lib/modules/openEuler /lib/modules/${kversion[i]}/openEuler + done + fi } function baseFixupKernelModuleDependencies { @@ -797,7 +1008,7 @@ function baseStripAndKeep { fi done if [ "${found}" = 0 ]; then - Rm -rf "${file}" + rm_isnot_usrfile $file fi done } @@ -816,6 +1027,11 @@ function baseStripTools { while IFS= read -r -d $'\0' file; do found=0 base=$(/usr/bin/basename "${file}") + if [ "${base}" = "rpm" ]; then + # Keep the RPM command, and delete by sys_cut=yes + echo "sys_cut keep rpm cmd." + found=1 + fi for need in ${tools};do if [ "${base}" = "$need" ];then found=1 @@ -846,16 +1062,133 @@ function deprecated { exit 1 } +#====================================== +# baseStripcustomBep +#-------------------------------------- +function baseStripcustomBep { + # /.../ + # remove custom difference files + # ---- + local hookdir=$1 + local hookscript=$hookdir/S00bep + + [ ! -d "$hookdir" ] && return + [ ! -f "$hookscript" ] && return + chmod u+x $hookscript &>/dev/null + dos2unix $hookscript &>/dev/null + if [ -x "$hookscript" ]; then + /bin/bash $hookscript + fi + rm -rf $hookdir + rm -rf /usr/custom/usrfile/$hookdir + +} #====================================== -# Deprecated methods +# baseStripBep #-------------------------------------- +function baseStripBep { + # /.../ + # remove log,dnf, files + # ---- + local dbepfiles="" + local directories=" + /var/log/ + /var/lib/systemd/catalog + " + local dbephookdir="/usr/openEuler/hook/bep_delete_hook" + for dir in $directories; do + dbepfiles=$(find $dir -type f) + for file in $dbepfiles + do + echo -n > $file + done + done + rm -f /var/lib/dnf/history* + rm -f /var/lib/rpm/__db.00* + baseStripcustomBep $dbephookdir +} + +function rm_isnot_usrfile { + local rm_file=$1 + local usrrpm_filelst='/opt/usrrpm_filelst' + if [ -f $usrrpm_filelst ];then + grep -q ^${rm_file}$ $usrrpm_filelst + if [ $? -eq 0 ];then + return 0 + fi + fi + + echo "Removing file: $rm_file" + rm -rf ${rm_file} + + return 0 +} + +function rhelStripKernel { + suseStripKernel +} + +function rhelStripInitrd { + suseStripInitrd +} + +function baseStripDocs { + # /.../ + # remove all documentation, except + # copying license copyright + # ---- + local docfiles + local dir + local directories=" + /opt/gnome/share/doc/packages + /usr/share/doc/packages + /opt/kde3/share/doc/packages + " + for dir in ${directories}; do + docfiles=$(find "${dir}" -type f |\ + grep -iv "copying\|license\|copyright") + rm -f "${docfiles}" + done + rm -rf `rpm -qad` + rm -rf /usr/share/info + rm -rf /usr/share/man +} + function baseCleanMount { - deprecated "${FUNCNAME[0]}" <<- EOF - Cleanup operations are a responsibility of the kiwi code - EOF + for path in /proc/sys/fs/binfmt_misc /proc /dev/pts /sys;do + [ -d "${path}" ] && umount "${path}" &>/dev/null + done +} + +function suseConfig { + return +} + +#====================================== +# Rpm +#-------------------------------------- +function Rpm { + # /.../ + # all rpm function & anounce it to log + # ---- + Debug "rpm $*" + rpm "$@" } +#====================================== +# baseGetPackagesForDeletion +#-------------------------------------- +function baseGetPackagesForDeletion { + declare kiwi_delete=${kiwi_delete} + echo "${kiwi_delete}" +} + + +#====================================== +# Deprecated methods +#-------------------------------------- + function baseMount { deprecated "${FUNCNAME[0]}" <<- EOF Mounting of kernel and other base filesystems are a @@ -877,18 +1210,6 @@ function baseSetupUserPermissions { EOF } -function suseConfig { - deprecated "${FUNCNAME[0]}" <<- EOF - suse script no longer present - EOF -} - -function baseGetPackagesForDeletion { - deprecated "${FUNCNAME[0]}" <<- EOF - Provided by the kiwi_delete environment variable - EOF -} - function baseGetProfilesUsed { deprecated "${FUNCNAME[0]}" <<- EOF Provided by the kiwi_profiles environment variable @@ -902,13 +1223,6 @@ function baseStripMans { EOF } -function baseStripDocs { - deprecated "${FUNCNAME[0]}" <<- EOF - Documentation lives at different places and a method - to do this in a common way should not be a responsibility - of kiwi - EOF -} function baseStripInfos { deprecated "${FUNCNAME[0]}" <<- EOF @@ -917,18 +1231,6 @@ function baseStripInfos { EOF } -function Rpm { - deprecated "${FUNCNAME[0]}" <<- EOF - Please call rpm as it fits in the caller scope - EOF -} - -function rhelStripInitrd { - deprecated "${FUNCNAME[0]}" <<- EOF - Useful only in the context of a kiwi created initrd - This concept was never exposed to RHEL/Fedora - EOF -} function debianStripInitrd { deprecated "${FUNCNAME[0]}" <<- EOF @@ -937,12 +1239,6 @@ function debianStripInitrd { EOF } -function rhelStripKernel { - deprecated "${FUNCNAME[0]}" <<- EOF - Useful only in the context of a kiwi created initrd - This concept was never exposed to RHEL/Fedora - EOF -} function debianStripKernel { deprecated "${FUNCNAME[0]}" <<- EOF diff --git a/kiwi/path.py b/kiwi/path.py index b763211..b2ce909 100644 --- a/kiwi/path.py +++ b/kiwi/path.py @@ -150,7 +150,7 @@ class Path: ) path_elements = path.split(os.sep) protected_elements = [ - 'boot', 'dev', 'proc', 'run', 'sys', 'tmp', 'home', 'mnt' + 'boot', 'dev', 'proc', 'run', 'sys', 'tmp', 'home', 'mnt', 'opt', 'var', 'bin', 'sbin', 'etc', 'lib', 'root', 'tmp' ] for path_index in reversed(range(0, len(path_elements))): sub_path = os.sep.join(path_elements[0:path_index]) diff --git a/kiwi/runtime_config.py b/kiwi/runtime_config.py index 11863c3..5fb93dc 100644 --- a/kiwi/runtime_config.py +++ b/kiwi/runtime_config.py @@ -345,6 +345,56 @@ class RuntimeConfig: ) return disabled_checks or '' + def get_custom_hw_systemflag(self): + """ + Returns custom_hw SYSTEMFLAG + + """ + hw_systemflag = self._get_attribute( + element='custom_hw', attribute='SYSTEMFLAG' + ) + return hw_systemflag or None + + def get_custom_hw_product_type(self): + """ + Returns custom_hw PRODUCT_TYPE + + """ + hw_product_type = self._get_attribute( + element='custom_hw', attribute='PRODUCT_TYPE' + ) + return hw_product_type or None + + def get_custom_hw_release_type(self): + """ + Returns custom_hw RELEASE_TYPE + + """ + hw_release_type = self._get_attribute( + element='custom_hw', attribute='RELEASE_TYPE' + ) + return hw_release_type or None + + def get_custom_hw_relese_bootloader_type(self): + """ + Returns custom_hw RELEASE_BOOTLOADER_TYPE + + """ + hw_relese_bootloader_type = self._get_attribute( + element='custom_hw', attribute='RELEASE_BOOTLOADER_TYPE' + ) + return hw_relese_bootloader_type or None + + def get_custom_hw_release_iso_cmdline(self): + """ + Returns custom_hw RELEASE_ISO_CMDLINE + + """ + hw_relese_iso_cmdline = self._get_attribute( + element='custom_hw', attribute='RELEASE_ISO_CMDLINE' + ) + return hw_relese_iso_cmdline or None + def _get_attribute(self, element, attribute): if RUNTIME_CONFIG: try: diff --git a/kiwi/tasks/base.py b/kiwi/tasks/base.py index 68b7bd5..d714770 100644 --- a/kiwi/tasks/base.py +++ b/kiwi/tasks/base.py @@ -75,7 +75,6 @@ class CliTask: 'check_efi_mode_for_disk_overlay_correctly_setup': [], 'check_initrd_selection_required': [], 'check_boot_description_exists': [], - 'check_consistent_kernel_in_boot_and_system_image': [], 'check_container_tool_chain_installed': [], 'check_volume_setup_defines_reserved_labels': [], 'check_volume_setup_defines_multiple_fullsize_volumes': [], -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2