fedora-release-atomichost-25-2$>B򋖂Y\}zkm|h>;7?7d ! `  1RX_=+ +, +2 +8 +D + ++++,, ,,-v(-8-9-:0>5?5G5H5I5X5Y5\5]5^6 b6{d7}e7f7l7t7u7v777Cfedora-release-atomichost252Base package for Fedora Atomic-specific default configurationsProvides a base package for Fedora Atomic Host-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("atomichost")-- 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("atomichost"):'A큤YYYc21efe3819d96609801ad72b9bcf83ef004a5cab1a04bab212d82860f698e12de98708047560db5a5bcf7495c3108709760cbf6202df7b216cbd7918725e7d0frootrootrootrootrootrootfedora-release-25-2.src.rpmconfig(fedora-release-atomichost)fedora-release-atomichostsystem-release-atomichostsystem-release-atomichost(25)system-release-product     config(fedora-release-atomichost)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-atomichostfedora-release-atomichostLICENSE/usr/lib/os.release.d//usr/share/licenses//usr/share/licenses/fedora-release-atomichost/-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%Fkxy3WzQ:p|DGp6{OޟAyS ֌3x 2 ?z-J8gyE[z?}I7|$ځv MYFyșl^w< ub\H$+GX pL]ƺbI& ⻰A]0s1OLI\#+P}T-*U]ʮfÍoC_h^ V &9f%rxF{s^.V7._k¬ ok Rr&e٭5 `QHgV^jN4׀I`9%CEy}ׯ٤7tEV x5?{dVd_'e%? К:ӜU匜󏩒_z#PJ!rg&yM9^=Fу]dт^l8w#D8Kej |j-wvIt?fYRp p`Ne/IT5Js옼Y@/]"S&8'!zyeƈNpAjra l}w=5Sg6#Y p}bʋC" 5̀xx!l?XUofW=Z>ǖbtيQ*{s,,LZd*7Ƀ Mm¦j'^:$3}! @"l4\i  [!5l!/9ΰX^]bɯeP8":m1|NȳU)Aeh:^ n JX־b{nYQYIr j Ml78>ٟ\{ۯdMHZi|g2!`0LvQ0_i°ىOv4{iB}$gG 5~6w`W6JFC] 'vyP& ̿DiM(MYm X7O=<ʢ"R^A2[Ot2cC5*U{`{ѭ{֐M8I`I.oT[u0ki[wsXPߺutVQmRecEqו.o9"fz]2dp$˔Ez rڐt B>NnɳL :+P2ogf 1ILkiy~*fy{]@A,!X#lنTw sL,.؀eʚXAGe3j2$ze+鴛 ;kf:%aG ^@YuW9.xHIiNMպ_P'=F=Mܤ~>az F{Ԓd)M3G7Xvt *h(TiGf:csؚhVwa DLv6YBPB_ =+SzK;Ri[㸵ڹ4<ґeHJx~,-((_d ܙUɟ| DkxoMlB*[e0_|i25"-S<`cr\&>|W9} *=I(6[8}W+[ʑ_v)U  YZ