Skip to content

Commit

Permalink
feat: add terra-obsolete
Browse files Browse the repository at this point in the history
  • Loading branch information
lleyton committed Mar 24, 2024
1 parent a8bab27 commit a0a349b
Show file tree
Hide file tree
Showing 2 changed files with 132 additions and 0 deletions.
6 changes: 6 additions & 0 deletions anda/terra/obsolete/anda.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "terra-obsolete.spec"
}
}
126 changes: 126 additions & 0 deletions anda/terra/obsolete/terra-obsolete.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
Name: terra-obsolete
# Please keep the version equal to the targeted Terra release
Version: 39
# The dist number is the version here, it is intentionally not repeated in the release
%global dist %nil

Release: %autorelease
Summary: A package to obsolete retired packages, based on Fedora's equivalent package

License: LicenseRef-Fedora-Public-Domain
BuildArch: noarch

# ===============================================================================
# Skip down below these convenience macros
%define obsolete_ticket() %{lua:
local ticket = rpm.expand('%1')

-- May need to declare the master structure
if type(obs) == 'nil' then
obs = {}
end

if ticket == '%1' then
rpm.expand('%{error:No ticket provided to obsolete_ticket}')
end

if ticket == 'Ishouldfileaticket' then
ticket = nil
end

-- Declare a new set of obsoletes
local index = #obs+1
obs[index] = {}
obs[index].ticket = ticket
obs[index].list = {}
}

%define obsolete() %{lua:
local pkg = rpm.expand('%1')
local ver = rpm.expand('%2')
local pkg_
local ver_
local i
local j

if pkg == '%1' then
rpm.expand('%{error:No package name provided to obsolete}')
end
if ver == '%2' then
rpm.expand('%{error:No version provided to obsolete}')
end

if not string.find(ver, '-') then
rpm.expand('%{error:You must provide a version-release, not just a version.}')
end

print('Obsoletes: ' .. pkg .. ' < ' .. ver)

-- Check if the package wasn't already obsoleted
for i = 1,#obs do
for j = 1,#obs[i].list do
pkg_, ver_ = table.unpack(obs[i].list[j])
if pkg == pkg_ then
rpm.expand('%{error:' .. pkg ..' obsoleted multiple times (' .. ver_ .. ' and ' .. ver ..').}')
end
end
end

-- Append this obsolete to the last set of obsoletes in the list
local list = obs[#obs].list
list[#list+1] = {pkg, ver}
}

%define list_obsoletes %{lua:
local i
local j
for i = 1,#obs do
for j = 1,#obs[i].list do
pkg, ver = table.unpack(obs[i].list[j])
print(' ' .. pkg .. ' < ' .. ver .. '\\n')
end
if obs[i].ticket == nil then
print(' (No ticket was provided!)\\n\\n')
else
print(' (See ' .. obs[i].ticket .. ')\\n\\n')
end
end
}

# ===============================================================================
# Add calls to the obsolete_ticket and obsolete macros below, along with a note
# indicating the Terra version in which the entries can be removed. This is
# generally three releases beyond whatever release Rawhide is currently. The
# macros make this easy, and will automatically update the package description.

# A link with information is important. Please don't add things here
# without having a link to a PR on GitHub, a link to a package
# retirement commit, or something similar. We generally recommend you
# put the GitHub PR in which the obsolete is being added.

# All Obsoletes: entries MUST be versioned (including the release),
# with the version being higher (!)
# than the last version-release of the obsoleted package.
# This allows the package to return to the distribution later.
# The best possible thing to do is to find the last version-release
# which was in the distribution, add one to the release,
# and add that version without using a dist tag.
# This allows a rebuild with a bumped Release: to be installed.

# Remove in 43
%obsolete_ticket tbd
%obsolete switchboard-plug-wallet 50582fc-3

%description

Currently obsoleted packages:

%list_obsoletes

%prep

%files

%changelog
%autochangelog

0 comments on commit a0a349b

Please sign in to comment.