Hello community, here is the log from the commit of package yast2-bootloader for openSUSE:Factory checked in at 2014-05-17 22:02:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-bootloader (Old) and /work/SRC/openSUSE:Factory/.yast2-bootloader.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "yast2-bootloader" Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-bootloader/yast2-bootloader.changes 2014-05-13 20:45:52.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-bootloader.new/yast2-bootloader.changes 2014-05-17 22:02:04.000000000 +0200 @@ -1,0 +2,14 @@ +Fri May 16 13:44:48 UTC 2014 - jreidinger@suse.com + +- fix progress report to not show 100% and waiting to write + bootloader (bnc#878007) +- 3.1.36 + +------------------------------------------------------------------- +Wed May 14 09:22:15 UTC 2014 - jreidinger@suse.com + +- add new API call to work nice with grub2 kernel parameter + configuration (bnc#869608) +- 3.1.35 + +------------------------------------------------------------------- Old: ---- yast2-bootloader-3.1.34.tar.bz2 New: ---- yast2-bootloader-3.1.36.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-bootloader.spec ++++++ --- /var/tmp/diff_new_pack.9R1LhP/_old 2014-05-17 22:02:05.000000000 +0200 +++ /var/tmp/diff_new_pack.9R1LhP/_new 2014-05-17 22:02:05.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 3.1.34 +Version: 3.1.36 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ yast2-bootloader-3.1.34.tar.bz2 -> yast2-bootloader-3.1.36.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.34/package/yast2-bootloader.changes new/yast2-bootloader-3.1.36/package/yast2-bootloader.changes --- old/yast2-bootloader-3.1.34/package/yast2-bootloader.changes 2014-05-12 14:58:45.000000000 +0200 +++ new/yast2-bootloader-3.1.36/package/yast2-bootloader.changes 2014-05-16 16:13:47.000000000 +0200 @@ -1,4 +1,18 @@ ------------------------------------------------------------------- +Fri May 16 13:44:48 UTC 2014 - jreidinger@suse.com + +- fix progress report to not show 100% and waiting to write + bootloader (bnc#878007) +- 3.1.36 + +------------------------------------------------------------------- +Wed May 14 09:22:15 UTC 2014 - jreidinger@suse.com + +- add new API call to work nice with grub2 kernel parameter + configuration (bnc#869608) +- 3.1.35 + +------------------------------------------------------------------- Mon May 12 12:35:51 UTC 2014 - jreidinger@suse.com - extended sysconfig options only for grub1 to prevent confusion diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.34/package/yast2-bootloader.spec new/yast2-bootloader-3.1.36/package/yast2-bootloader.spec --- old/yast2-bootloader-3.1.34/package/yast2-bootloader.spec 2014-05-12 14:58:45.000000000 +0200 +++ new/yast2-bootloader-3.1.36/package/yast2-bootloader.spec 2014-05-16 16:13:47.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-bootloader -Version: 3.1.34 +Version: 3.1.36 Release: 0 BuildRoot: %{_tmppath}/%{name}-%{version}-build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-bootloader-3.1.34/src/modules/Bootloader.rb new/yast2-bootloader-3.1.36/src/modules/Bootloader.rb --- old/yast2-bootloader-3.1.34/src/modules/Bootloader.rb 2014-05-12 14:58:45.000000000 +0200 +++ new/yast2-bootloader-3.1.36/src/modules/Bootloader.rb 2014-05-16 16:13:47.000000000 +0200 @@ -383,7 +383,7 @@ Progress.New( _("Saving Boot Loader Configuration"), " ", - 2, + stages.size, stages, titles, "" @@ -1001,6 +1001,7 @@ # @param [String] key string # @return [String] value, "false" if not present, # "true" if present key without value + # @deprecated Use kernel_param instead def getKernelParam(section, key) ReadOrProposeIfNeeded() if section == "DEFAULT" @@ -1026,8 +1027,113 @@ end end + FLAVOR_KERNEL_LINE_MAP = { + :common => "append", + :recovery => "append_failsafe", + :xen_guest => "xen_append", + :xen_host => "xen_kernel_append" + } + + # Gets value for given parameter in kernel parameters for given flavor. + # @note For grub1 it returns value for default section and its kernel parameter + # @param [Symbol] flavor flavor of kernel, for possible values see #modify_kernel_param + # @param [String] key of parameter on kernel command line + # @returns [String,:missing,:present] Returns string for parameters with value, + # `:missing` if key is not there and `:present` for parameters without value. + # + # @example get crashkernel parameter to common kernel + # Bootloader.kernel_param(:common, "crashkernel") + # => "256M@64B" + # + # @example get cio_ignore parameter for recovery kernel when missing + # Bootloader.kernel_param(:recovery, "cio_ignore") + # => :missing + # + # @example get verbose parameter for xen_guest which is there + # Bootloader.kernel_param(:xen_guest, "verbose") + # => :present + # + + def kernel_param(flavor, key) + bl = getLoaderType + if bl == "grub" + ret = getKernelParam("DEFAULT", key) + else + ReadOrProposeIfNeeded() # ensure we have some data + kernel_line_key = FLAVOR_KERNEL_LINE_MAP[flavor] + raise ArgumentError, "Unknown flavor #{flavor}" unless kernel_line_key + + line = BootCommon.globals[kernel_line_key] + ret = BootCommon.getKernelParamFromLine(line, key) + end + + # map old api response to new one + api_mapping = { "true" => :present, "false" => :missing } + return api_mapping[ret] || ret + end + + # Modify kernel parameters for installed kernels according to values + # For grub1 for backward compatibility modify default section + # @param [Array] args parameters to modify. Last parameter is hash with keys + # and its values, keys are strings and values are `:present`, `:missing` or + # string value. Other parameters specify which kernel flavors are affected. + # Known values are: + # - `:common` for non-specific flavor + # - `:recovery` for fallback boot entries + # - `:xen_guest` for xen guest kernels + # - `:xen_host` for xen host kernels + # + # @example add crashkernel parameter to common kernel, xen guest and also recovery + # Bootloader.modify_kernel_params(:common, :recovery, :xen_guest, "crashkernel" => "256M@64M") + # + # @example same as before just with array passing + # targets = [:common, :recovery, :xen_guest] + # Bootloader.modify_kernel_params(targets, "crashkernel" => "256M@64M") + # + # @example remove cio_ignore parameter for common kernel only + # Bootloader.modify_kernel_params("cio_ignore" => :missing) + # + # @example add feature_a parameter and remove feature_b from xen host kernel + # Bootloader.modify_kernel_params(:xen_host, "cio_ignore" => :present) + # + def modify_kernel_params(*args) + values = args.pop + if !values.is_a? Hash + raise ArgumentError, "Missing parameters to modify #{args.inspect}" + end + args = [:common] if args.empty? # by default change common kernels only + args = args.first if args.first.is_a? Array # support array like syntax + + bl = getLoaderType + if bl =="grub" #for backward compatibility for grub + ret = true + values.each do |key, value| + value = "true" if value == :present + value = "false" if value == :missing + ret &&= setKernelParam("DEFAULT", key, value) + end + return ret + end + values.each do |key, value| + next if key == "root" # grub2 do not support modify root + if key == "vga" + BootCommon.globals["vgamode"] = value == :remove ? "" : value + next + else + kernel_lines = args.map do |a| + FLAVOR_KERNEL_LINE_MAP[a] || + raise(ArgumentError, "Invalid argument #{a.inspect}") + end + kernel_lines.each do |line_key| + BootCommon.globals[line_key] = BootCommon.setKernelParamToLine(BootCommon.globals[line_key], key, value) + end + end + BootCommon.globals["__modified"] = "1" + BootCommon.changed = true + end + end # set kernel parameter to menu.lst # @param [String] section string section title, use DEFAULT for default section @@ -1035,6 +1141,7 @@ # @param [String] value string value, "false" to remove key, # "true" to add key without value # @return [Boolean] true on success + # @deprecated use modify_kernel_param instead def setKernelParam(section, key, value) if !Mode.config && key == "vga" && (Arch.s390 || Arch.ppc) Builtins.y2warning( -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org