fedora-release-cloud-25-2$>Bk)h~mk>;7?7d  Z  %FLS,++ + +  +, + +++++,,,-E(-s8-|9-:0>5\?5bG5hH5tI5X5Y5\5]5^5b68d7:e7?f7Bl7Dt7\u7hv7t77Cfedora-release-cloud252Base package for Fedora Cloud-specific default configurationsProvides a base package for Fedora Cloud-specific configuration files to depend on.Ybuildvm-16.phx2.fedoraproject.orgaFedora ProjectFedora ProjectMITFedora ProjectSystem Environment/Basehttps://pagure.io/fedora-releaselinuxnoarch-- This is intended to be run as an RPM scriptlet. -- Keep this file in sync with the convert-to-edition -- shell script local VARIANT_FILE = "/usr/lib/variant" -- Read in /usr/lib/variant and determine the edition local function read_variant() local variant local f = io.open(VARIANT_FILE, "r") if f ~= nil then while true do local line = f:read() if line == nil then break end local m = line:match("^VARIANT_ID=([^\n]+)") if m ~= nil then variant = m end end f:close() end return variant end -- Atomically replace a file with new contents local function writefile(path, data) local tmp = path .. ".convert-to-edition" local f = io.open(tmp, "w+") if f == nil then return end f:write(data) f:close() if not os.rename(tmp, path) then os.remove(tmp) end end -- Forcibly replace a symlink local function symlink(from, to) os.remove(to) assert(posix.symlink(from, to)) end -- Run a subroutine in a child process local function execute(...) local pid = posix.fork() if pid == 0 then posix.exec(...) posix.exit(1) elseif pid ~= -1 then local status = posix.wait(pid) if status ~= 0 then local program = ... error(program .. " exited with status " .. status) end end end -- Remove preset files for other editions -- This should never be necessary, but it's best to be safe local function clear_presets() local path = "/usr/lib/systemd/system-preset" for file in posix.files(path) do if file:match("^80.*%.preset$") then os.remove(path .. "/" .. file) end end end -- Get a list of presets that need to be enabled or disabled -- as part of the installation of this edition local function read_presets(path) local result = {} local f = assert(io.open(path)) if f ~= nil then while true do local line = f:read() if line == nil then break end local cmd, arg = line:match("^([^ \t]+)[ \t]+([^\n \t]+)") if cmd == "enable" or cmd == "disable" then result[#result + 1] = arg end end f:close() end return result end local function set_variant(variant) writefile(VARIANT_FILE, "VARIANT_ID=" .. variant .. "\n") end local function set_release(release) symlink("./os.release.d/os-release-" .. release, "/usr/lib/os-release") end local function set_issue(release) symlink("./os.release.d/issue-" .. release, "/usr/lib/issue") end -- release: the VARIANT_ID for os-release -- issue: which /etc/issue file to install -- presets: whether this edition has extra presets beyond the -- defaults to enable or disable local variants = { atomichost = {release = "atomichost", issue = "fedora", presets = false}, cloud = {release = "cloud", issue = "fedora", presets = false}, nonproduct = {release = "fedora", issue = "fedora", presets = false}, server = {release = "server", issue = "server", presets = true}, workstation = {release = "workstation", issue = "fedora", presets = true}, } -- Call out to systemctl to enable or disable presets local function set_presets(edition, apply_presets) if variants[edition].presets then local target = "/usr/lib/systemd/system-preset/80-" .. edition .. ".preset" symlink("../../os.release.d/presets/80-" .. edition .. ".preset", target) if apply_presets then local presets = read_presets(target) local systemctl = "/usr/bin/systemctl" if posix.access(systemctl, "x") then --fork off a systemctl call local pid = assert(posix.fork()) if pid == 0 then -- Child posix.exec(systemctl, "preset", "-q", table.unpack(presets)) -- In case exec() fails os.exit(17) else -- RPM assert(posix.wait(pid)) end end end end end local function convert_to_edition(edition, apply_presets) local variant = variants[edition] if variant == nil then error("undefined edition: " .. edition) end set_release(variant.release) set_issue(variant.issue) clear_presets() set_presets(edition, apply_presets) end local function install_edition(edition) -- Create the variant file if it does not already exist. This needs -- to be done on both installation and upgrade, to ensure that we -- upgrade from F23 and earlier properly. if not posix.access(VARIANT_FILE, "f") then set_variant(edition) end if read_variant() == edition then -- (On initial installation only), fix up after %systemd_post -- in packages possibly installed before our preset file was -- added -- On upgrades, do not enable or disable presets to avoid -- surprising the user local initial_install = arg[2] == 1 convert_to_edition(edition, initial_install) end end local function uninstall_edition(edition) -- If we are uninstalling, we need to reset the variant file and -- force the os-release file back to os-release-fedora. We do this -- in %preun so that we don't have any time where the os-release -- symlink is dangling (since in %postun, the os-release-$EDITION -- file will have already been removed) if arg[2] == 0 then if read_variant() == edition then set_variant("nonproduct") convert_to_edition("nonproduct", false) end end end install_edition("cloud")-- This is intended to be run as an RPM scriptlet. -- Keep this file in sync with the convert-to-edition -- shell script local VARIANT_FILE = "/usr/lib/variant" -- Read in /usr/lib/variant and determine the edition local function read_variant() local variant local f = io.open(VARIANT_FILE, "r") if f ~= nil then while true do local line = f:read() if line == nil then break end local m = line:match("^VARIANT_ID=([^\n]+)") if m ~= nil then variant = m end end f:close() end return variant end -- Atomically replace a file with new contents local function writefile(path, data) local tmp = path .. ".convert-to-edition" local f = io.open(tmp, "w+") if f == nil then return end f:write(data) f:close() if not os.rename(tmp, path) then os.remove(tmp) end end -- Forcibly replace a symlink local function symlink(from, to) os.remove(to) assert(posix.symlink(from, to)) end -- Run a subroutine in a child process local function execute(...) local pid = posix.fork() if pid == 0 then posix.exec(...) posix.exit(1) elseif pid ~= -1 then local status = posix.wait(pid) if status ~= 0 then local program = ... error(program .. " exited with status " .. status) end end end -- Remove preset files for other editions -- This should never be necessary, but it's best to be safe local function clear_presets() local path = "/usr/lib/systemd/system-preset" for file in posix.files(path) do if file:match("^80.*%.preset$") then os.remove(path .. "/" .. file) end end end -- Get a list of presets that need to be enabled or disabled -- as part of the installation of this edition local function read_presets(path) local result = {} local f = assert(io.open(path)) if f ~= nil then while true do local line = f:read() if line == nil then break end local cmd, arg = line:match("^([^ \t]+)[ \t]+([^\n \t]+)") if cmd == "enable" or cmd == "disable" then result[#result + 1] = arg end end f:close() end return result end local function set_variant(variant) writefile(VARIANT_FILE, "VARIANT_ID=" .. variant .. "\n") end local function set_release(release) symlink("./os.release.d/os-release-" .. release, "/usr/lib/os-release") end local function set_issue(release) symlink("./os.release.d/issue-" .. release, "/usr/lib/issue") end -- release: the VARIANT_ID for os-release -- issue: which /etc/issue file to install -- presets: whether this edition has extra presets beyond the -- defaults to enable or disable local variants = { atomichost = {release = "atomichost", issue = "fedora", presets = false}, cloud = {release = "cloud", issue = "fedora", presets = false}, nonproduct = {release = "fedora", issue = "fedora", presets = false}, server = {release = "server", issue = "server", presets = true}, workstation = {release = "workstation", issue = "fedora", presets = true}, } -- Call out to systemctl to enable or disable presets local function set_presets(edition, apply_presets) if variants[edition].presets then local target = "/usr/lib/systemd/system-preset/80-" .. edition .. ".preset" symlink("../../os.release.d/presets/80-" .. edition .. ".preset", target) if apply_presets then local presets = read_presets(target) local systemctl = "/usr/bin/systemctl" if posix.access(systemctl, "x") then --fork off a systemctl call local pid = assert(posix.fork()) if pid == 0 then -- Child posix.exec(systemctl, "preset", "-q", table.unpack(presets)) -- In case exec() fails os.exit(17) else -- RPM assert(posix.wait(pid)) end end end end end local function convert_to_edition(edition, apply_presets) local variant = variants[edition] if variant == nil then error("undefined edition: " .. edition) end set_release(variant.release) set_issue(variant.issue) clear_presets() set_presets(edition, apply_presets) end local function install_edition(edition) -- Create the variant file if it does not already exist. This needs -- to be done on both installation and upgrade, to ensure that we -- upgrade from F23 and earlier properly. if not posix.access(VARIANT_FILE, "f") then set_variant(edition) end if read_variant() == edition then -- (On initial installation only), fix up after %systemd_post -- in packages possibly installed before our preset file was -- added -- On upgrades, do not enable or disable presets to avoid -- surprising the user local initial_install = arg[2] == 1 convert_to_edition(edition, initial_install) end end local function uninstall_edition(edition) -- If we are uninstalling, we need to reset the variant file and -- force the os-release file back to os-release-fedora. We do this -- in %preun so that we don't have any time where the os-release -- symlink is dangling (since in %postun, the os-release-$EDITION -- file will have already been removed) if arg[2] == 0 then if read_variant() == edition then set_variant("nonproduct") convert_to_edition("nonproduct", false) end end end uninstall_edition("cloud"):'A큤YYY6461fc8f6e39b9deea593a20f54c3ced8d82119181d78b30296422df5cd45c9be98708047560db5a5bcf7495c3108709760cbf6202df7b216cbd7918725e7d0frootrootrootrootrootrootfedora-release-25-2.src.rpmconfig(fedora-release-cloud)fedora-release-cloudsystem-release-cloudsystem-release-cloud(25)system-release-product     config(fedora-release-cloud)fedora-releaserpmlib(BuiltinLuaScripts)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)25-225-24.2.2-13.0.4-14.6.0-14.0-15.2-14.13.0.1Y;@X@X2@X2@X=W Wm W=WVV@V޾V'@V2V>@VIMohan Boddu - 25-2Mohan Boddu - 25-1Dennis Gilmore - 25-0.14Zbigniew Jędrzejewski-Szmek - 25-0.13Stephen Gallagher - 25-0.12Mohan Boddu - 25-0.11Dennis Gilmore - 25-0.10Stephen Gallagher - 25-0.9Dennis Gilmore - 25-0.8Dennis Gilmor - 25-0.7Dennis Gilmore - 25-0.6Stephen Gallagher - 25-0.5Stephen Gallagher - 25-0.4Stephen Gallagher - 25-0.3Stephen Gallagher - 25-0.2Dennis Gilmore - 25-0.1- Support for the DRBD link-cleaning service - Add SUPPORT_URL definition to os-release- Setup for f25 final - snapd timers are enabled by default- bump for needed rebuild - add note on how to contribute- Fix mangled Release tag- Move convert-to-edition to its own subpackage - Eliminate circular dependency on bash from the base package - Enable switcheroo-control.service- Setup for branching.- apply fix from adamw for lua globbing bug rhbz#1349664- Fix %posttrans to properly write /usr/lib/variant for nonproduct- enable virtlogd.socket- drop Requires(post): sed - Fork to execute systemctl calls- Properly handle systemd presets in Lua scripts - enable opal-prd.service - Remove call to grub2-mkconfig- Add a subpackage for Atomic Host to provide /usr/lib/os-release differences- Rewrite scriptlets in Lua to avoid a circular dependency on coreutils - Be more specific with fedora-release-server's Cockpit requirement (Do not pull in all of the optional Cockpit components as mandatory)- Only run grub2-mkconfig for platforms that support it - Remove erroneous RPM_BUILD_ROOT variables in convert-to-edition- Fix typo that breaks %post on upgrades of Workstation and Cloud- setup for rawhide being f2525-225-2os-release-cloudfedora-release-cloudLICENSE/usr/lib/os.release.d//usr/share/licenses//usr/share/licenses/fedora-release-cloud/-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tablesdrpmxz2noarch-redhat-linux-gnuASCII textdirectoryutf-8?P7zXZ !#,]"k%r&kxyIΞA(t{Dq)S~$=ZP 1;pb.8OuWpD3db[} ](·}ȏJV,>MuDPYGHbTc&.D2oQeM1:#Q*d]wꥂ0 坤K(Fb;KAV9دr}R!W`MN,gSS{fRhN <%J{ZG 1^ .>u$o@YMUb[U3;.A9Ŷӗ @n|OT%9HH ~mpѳx3S :?ͲRzU)w# B.\u`D>@'.nri4KO)jB̙@kl"ڝvp/j 6\lJKCrbS[!p3-:ې>'d"msQ"Ar[=n2iR:4?WSL[V7 q-877.e76k8&a"PAJ^* X-~ =wal( Q.e=b&FcթumYZ;1\ jA9t]<5ܕ;|2 Wr߶“?/lX}.陦WCZgՒԨzO8UNэϕ s0`5"!6d^KRzi,zZҀ8 7N _0.BVp+CT /Aa,*] !'[/fi (Ymb%OЌ)9ax~)Kpk YZ