From 00e8fed0dda4b36623b9a95a5a4bca748c4c8679 Mon Sep 17 00:00:00 2001 From: Nicolas Mailhot Date: Nov 18 2018 14:35:49 +0000 Subject: rename templates so they are ordered sensibly --- diff --git a/spectemplate-forge-0-release.spec b/spectemplate-forge-0-release.spec new file mode 100644 index 0000000..0b38ed6 --- /dev/null +++ b/spectemplate-forge-0-release.spec @@ -0,0 +1,74 @@ +# Any software publishing website, permitting the download of source archives +# via normalized URLs, that can be deduced from a project root URL and version, +# commit, tag, scm, extension… values is a “forge” that can be supported by +# the forgemeta macro. Common examples are GitLab and GitHub. forgemeta +# centralizes and abstracts our knowledge about those forges, so packagers do +# not have to handle download quirks manually. +# +# forgemeta makes it easy to switch from release to tag to commit source +# archives. Using forgemeta, forge download URLs or guideline changes are +# propagated to spec files without manual refactoring. +# +# When those changes result in a different naming or structure of the source +# archive, the source file needs to be uploaded to the build system before +# rebuilding existing spec files. That is the main drawback of using +# forgemeta. +# +# This template shows how to package a release state using the forgemeta macro. +# That should be the default target use case. +# Other less common use cases are documented in separate templates. +# +# The project url on the forge, for example +# https://gitlab.gnome.org/GNOME/gtk/ +%global forgeurl +# +# Packaging a release requires setting Version before calling forgemeta. +# Because most forges follow the git model, and git made no provision for +# release objects, forgemeta will try to guess the customary way to write +# release tags on the selected forge. +# If it guesses wrong use the forge-tag template instead of this one. +Version: +# +# forgemeta converts the suppplied rpm variables to variables that can be used +# in the spec file. Most of those can be overriden before or after the +# forgemeta call. +# – use the “-i” flag to display the variables forgemeta reads and sets +# – use the “-v” flag if you want verbose processing +# – remove “-i” and “-v” before commit +%forgemeta + +# The following lines use variables computed by forgemeta as default values. +# You can replace them with manual definitions. For example, replace forgeurl +# with the project homepage if it exists separately from the repository URL. +# Only replace the variables when it adds value to the spec file and you +# understand the consequences. Release ordering is controlled by the packager +# with x%{?dist}/0.x%{?dist} number chains. +Name: +Release: 1%{?dist} +Summary: +URL: %{forgeurl} +Source: %{forgesource} +%description + + +%prep +# forgesetup calls setup with the correct flags for archives downloaded from +# the selected forge. A forgeautosetup autosetup wrapper is also provided. If +# you disagree with the computed setup/autosetup flags, just call +# setup/autosetup directly. +# – use the “-v” flag if you want verbose processing +%forgesetup +# +# After this point the archive extraction is done. forgemeta is no longer used. + +%build + +%install + +%check + +%files +%license +%doc + +%changelog diff --git a/spectemplate-forge-1-tag.spec b/spectemplate-forge-1-tag.spec new file mode 100644 index 0000000..6cde5ed --- /dev/null +++ b/spectemplate-forge-1-tag.spec @@ -0,0 +1,46 @@ +# This template shows how to package a tag state using the forgemeta macro. +# For more explanations on forgemeta, read the forgemeta-release template. +# +# The project url on the forge +%global forgeurl +# +# The tag being packaged +%global tag +# +# – use the “-i” flag to display the variables forgemeta reads and sets +# – use the “-v” flag if you want verbose processing +# – remove “-i” and “-v” before commit +%forgemeta + +# The following lines use variables computed by forgemeta as default values. +# You can replace them with manual definitions. +# forgemeta will prepend tag information to dist. Release ordering is +# controlled by the packager with x%{?dist}/0.x%{?dist} numbers chains. +Name: +Version: +Release: 1%{?dist} +Summary: +URL: %{forgeurl} +Source: %{forgesource} +%description + + +%prep +# – an autosetup wrapper, forgeautosetup, is also provided +# – use the “-v” flag if you want verbose processing; remove it before commit +# – call forgesetup/autosetup directly if you do not like the result +%forgesetup +# +# After this point the archive extraction is done. forgemeta is no longer used. + +%build + +%install + +%check + +%files +%license +%doc + +%changelog diff --git a/spectemplate-forge-2-commit.spec b/spectemplate-forge-2-commit.spec new file mode 100644 index 0000000..ac10f65 --- /dev/null +++ b/spectemplate-forge-2-commit.spec @@ -0,0 +1,46 @@ +# This template shows how to package a commit state using the forgemeta macro. +# For more explanations on forgemeta, read the forgemeta-release template. +# +# The project url on the forge +%global forgeurl +# +# The commit being packaged (when using git, a full hash) +%global commit +# +# – use the “-i” flag to display the variables forgemeta reads and sets +# – use the “-v” flag if you want verbose processing +# – remove “-i” and “-v” before commit +%forgemeta + +# The following lines use variables computed by forgemeta as default values. +# You can replace them with manual definitions. +# forgemeta will prepend commit information to dist. Release ordering is +# controlled by the packager with x%{?dist}/0.x%{?dist} numbers chains. +Name: +Version: +Release: 1%{?dist} +Summary: +URL: %{forgeurl} +Source: %{forgesource} +%description + + +%prep +# – an autosetup wrapper, forgeautosetup, is also provided +# – use the “-v” flag if you want verbose processing; remove it before commit +# – call forgesetup/autosetup directly if you do not like the result +%forgesetup +# +# After this point the archive extraction is done. forgemeta is no longer used. + +%build + +%install + +%check + +%files +%license +%doc + +%changelog diff --git a/spectemplate-forge-3-multi.spec b/spectemplate-forge-3-multi.spec new file mode 100644 index 0000000..eadb6b8 --- /dev/null +++ b/spectemplate-forge-3-multi.spec @@ -0,0 +1,81 @@ +# This template shows how to package multiple source archives using the +# forgemeta macro. +# +# PACKAGING MULTIPLE PROJECT ARCHIVES IN A SINGLE SPEC IS DISCOURAGED. IT OFTEN +# REQUIRES ERROR-INDUCING VERSIONNING DECISIONS. In rpm, versioning is not an +# administrative decoration. Versioning controls the upgrade logic. If upstream +# deemed necessary to release a project through multiple archives, mirror its +# decision using multiple spec files. That will be safer, simpler, and +# ultimately less work. +# +# For more explanations on forgemeta, read the forgemeta-release template. +# +# Start by declaring the characteristics of each source using a number-suffixed +# variable block: +# – no suffix and zero suffix blocks are aliases +# – they are “special” and identify the main source archive +# — they use Version: to identify a release +# – other blocks use a version variable for the same need +# – the syntax is otherwise identical to single archive mode; see the various +# forge templates for examples. +# +# Main archive. In this example we package a full release +%global forgeurl0 +Version: + +# Second archive. +%global forgeurl1 +%global version1 + +# Third archive. This time a tag. Continue as necessary. +%global forgeurl2 +%global tag2 + +# – use the “-a” flag to process all the source archives in a single pass +# – use “-z ” to process only the declaration block suffixed with +# +# — without “-a” of “-z ” only the main archive is processed +# – use the “-i” flag to display the variables forgemeta reads and sets +# – use the “-v” flag if you want verbose processing +# – remove “-i” and “-v” before commit +%forgemeta -a + +# The following lines use variables computed by forgemeta as default values. +# You can replace them with manual definitions. +# Release ordering is controlled by the packager with x%{?dist}/0.x%{?dist} +# numbers chains. +Name: +Release: 1%{?dist} +Summary: +URL: %{forgeurl0} +# https://github.com/rpm-software-management/rpm/issues/539 +Source0: %{forgesource0} +Source1: %{forgesource1} +Source2: %{forgesource2} +%description + + +%prep +# – use the “-a” flag to process all the source archives in a single pass +# – use “-z ” to process only the declaration block suffixed with +# +# — without “-a” of “-z ” only the main archive is processed +# – an autosetup wrapper, forgeautosetup, is also provided +# – forgeautosetup does not understand “-a” +# – use the “-v” flag if you want verbose processing; remove it before commit +# – call forgesetup/autosetup directly if you do not like the result +%forgesetup -a +# +# After this point the archive extraction is done. forgemeta is no longer used. + +%build + +%install + +%check + +%files +%license +%doc + +%changelog diff --git a/spectemplate-forge-4-branch.spec b/spectemplate-forge-4-branch.spec new file mode 100644 index 0000000..4034ecd --- /dev/null +++ b/spectemplate-forge-4-branch.spec @@ -0,0 +1,49 @@ +# This template shows how to package a branch state using the forgemeta macro. +# +# BRANCH STATES ARE NOT REPRODUCIBLE AND SHOULD NEVER BE SHARED WITH OTHERS. +# +# For more explanations on forgemeta, read the forgemeta-release template. +# +# The project url on the forge +%global forgeurl +# +# The branch being packaged +%global branch +# +# – use the “-i” flag to display the variables forgemeta reads and sets +# – use the “-v” flag if you want verbose processing +# – remove “-i” and “-v” before commit +%forgemeta + +# The following lines use variables computed by forgemeta as default values. +# You can replace them with manual definitions. +# forgemeta will prepend branch information to dist. Release ordering is +# controlled by the packager with x%{?dist}/0.x%{?dist} number chains. +Name: +Version: +Release: 1%{?dist} +Summary: +URL: %{forgeurl} +Source: %{forgesource} +%description + + +%prep +# – an autosetup wrapper, forgeautosetup, is also provided +# – use the “-v” flag if you want verbose processing; remove it before commit +# – call forgesetup/autosetup directly if you do not like the result +%forgesetup +# +# After this point the archive extraction is done. forgemeta is no longer used. + +%build + +%install + +%check + +%files +%license +%doc + +%changelog diff --git a/spectemplate-forge-branch.spec b/spectemplate-forge-branch.spec deleted file mode 100644 index 4034ecd..0000000 --- a/spectemplate-forge-branch.spec +++ /dev/null @@ -1,49 +0,0 @@ -# This template shows how to package a branch state using the forgemeta macro. -# -# BRANCH STATES ARE NOT REPRODUCIBLE AND SHOULD NEVER BE SHARED WITH OTHERS. -# -# For more explanations on forgemeta, read the forgemeta-release template. -# -# The project url on the forge -%global forgeurl -# -# The branch being packaged -%global branch -# -# – use the “-i” flag to display the variables forgemeta reads and sets -# – use the “-v” flag if you want verbose processing -# – remove “-i” and “-v” before commit -%forgemeta - -# The following lines use variables computed by forgemeta as default values. -# You can replace them with manual definitions. -# forgemeta will prepend branch information to dist. Release ordering is -# controlled by the packager with x%{?dist}/0.x%{?dist} number chains. -Name: -Version: -Release: 1%{?dist} -Summary: -URL: %{forgeurl} -Source: %{forgesource} -%description - - -%prep -# – an autosetup wrapper, forgeautosetup, is also provided -# – use the “-v” flag if you want verbose processing; remove it before commit -# – call forgesetup/autosetup directly if you do not like the result -%forgesetup -# -# After this point the archive extraction is done. forgemeta is no longer used. - -%build - -%install - -%check - -%files -%license -%doc - -%changelog diff --git a/spectemplate-forge-commit.spec b/spectemplate-forge-commit.spec deleted file mode 100644 index ac10f65..0000000 --- a/spectemplate-forge-commit.spec +++ /dev/null @@ -1,46 +0,0 @@ -# This template shows how to package a commit state using the forgemeta macro. -# For more explanations on forgemeta, read the forgemeta-release template. -# -# The project url on the forge -%global forgeurl -# -# The commit being packaged (when using git, a full hash) -%global commit -# -# – use the “-i” flag to display the variables forgemeta reads and sets -# – use the “-v” flag if you want verbose processing -# – remove “-i” and “-v” before commit -%forgemeta - -# The following lines use variables computed by forgemeta as default values. -# You can replace them with manual definitions. -# forgemeta will prepend commit information to dist. Release ordering is -# controlled by the packager with x%{?dist}/0.x%{?dist} numbers chains. -Name: -Version: -Release: 1%{?dist} -Summary: -URL: %{forgeurl} -Source: %{forgesource} -%description - - -%prep -# – an autosetup wrapper, forgeautosetup, is also provided -# – use the “-v” flag if you want verbose processing; remove it before commit -# – call forgesetup/autosetup directly if you do not like the result -%forgesetup -# -# After this point the archive extraction is done. forgemeta is no longer used. - -%build - -%install - -%check - -%files -%license -%doc - -%changelog diff --git a/spectemplate-forge-multi.spec b/spectemplate-forge-multi.spec deleted file mode 100644 index eadb6b8..0000000 --- a/spectemplate-forge-multi.spec +++ /dev/null @@ -1,81 +0,0 @@ -# This template shows how to package multiple source archives using the -# forgemeta macro. -# -# PACKAGING MULTIPLE PROJECT ARCHIVES IN A SINGLE SPEC IS DISCOURAGED. IT OFTEN -# REQUIRES ERROR-INDUCING VERSIONNING DECISIONS. In rpm, versioning is not an -# administrative decoration. Versioning controls the upgrade logic. If upstream -# deemed necessary to release a project through multiple archives, mirror its -# decision using multiple spec files. That will be safer, simpler, and -# ultimately less work. -# -# For more explanations on forgemeta, read the forgemeta-release template. -# -# Start by declaring the characteristics of each source using a number-suffixed -# variable block: -# – no suffix and zero suffix blocks are aliases -# – they are “special” and identify the main source archive -# — they use Version: to identify a release -# – other blocks use a version variable for the same need -# – the syntax is otherwise identical to single archive mode; see the various -# forge templates for examples. -# -# Main archive. In this example we package a full release -%global forgeurl0 -Version: - -# Second archive. -%global forgeurl1 -%global version1 - -# Third archive. This time a tag. Continue as necessary. -%global forgeurl2 -%global tag2 - -# – use the “-a” flag to process all the source archives in a single pass -# – use “-z ” to process only the declaration block suffixed with -# -# — without “-a” of “-z ” only the main archive is processed -# – use the “-i” flag to display the variables forgemeta reads and sets -# – use the “-v” flag if you want verbose processing -# – remove “-i” and “-v” before commit -%forgemeta -a - -# The following lines use variables computed by forgemeta as default values. -# You can replace them with manual definitions. -# Release ordering is controlled by the packager with x%{?dist}/0.x%{?dist} -# numbers chains. -Name: -Release: 1%{?dist} -Summary: -URL: %{forgeurl0} -# https://github.com/rpm-software-management/rpm/issues/539 -Source0: %{forgesource0} -Source1: %{forgesource1} -Source2: %{forgesource2} -%description - - -%prep -# – use the “-a” flag to process all the source archives in a single pass -# – use “-z ” to process only the declaration block suffixed with -# -# — without “-a” of “-z ” only the main archive is processed -# – an autosetup wrapper, forgeautosetup, is also provided -# – forgeautosetup does not understand “-a” -# – use the “-v” flag if you want verbose processing; remove it before commit -# – call forgesetup/autosetup directly if you do not like the result -%forgesetup -a -# -# After this point the archive extraction is done. forgemeta is no longer used. - -%build - -%install - -%check - -%files -%license -%doc - -%changelog diff --git a/spectemplate-forge-release.spec b/spectemplate-forge-release.spec deleted file mode 100644 index 0b38ed6..0000000 --- a/spectemplate-forge-release.spec +++ /dev/null @@ -1,74 +0,0 @@ -# Any software publishing website, permitting the download of source archives -# via normalized URLs, that can be deduced from a project root URL and version, -# commit, tag, scm, extension… values is a “forge” that can be supported by -# the forgemeta macro. Common examples are GitLab and GitHub. forgemeta -# centralizes and abstracts our knowledge about those forges, so packagers do -# not have to handle download quirks manually. -# -# forgemeta makes it easy to switch from release to tag to commit source -# archives. Using forgemeta, forge download URLs or guideline changes are -# propagated to spec files without manual refactoring. -# -# When those changes result in a different naming or structure of the source -# archive, the source file needs to be uploaded to the build system before -# rebuilding existing spec files. That is the main drawback of using -# forgemeta. -# -# This template shows how to package a release state using the forgemeta macro. -# That should be the default target use case. -# Other less common use cases are documented in separate templates. -# -# The project url on the forge, for example -# https://gitlab.gnome.org/GNOME/gtk/ -%global forgeurl -# -# Packaging a release requires setting Version before calling forgemeta. -# Because most forges follow the git model, and git made no provision for -# release objects, forgemeta will try to guess the customary way to write -# release tags on the selected forge. -# If it guesses wrong use the forge-tag template instead of this one. -Version: -# -# forgemeta converts the suppplied rpm variables to variables that can be used -# in the spec file. Most of those can be overriden before or after the -# forgemeta call. -# – use the “-i” flag to display the variables forgemeta reads and sets -# – use the “-v” flag if you want verbose processing -# – remove “-i” and “-v” before commit -%forgemeta - -# The following lines use variables computed by forgemeta as default values. -# You can replace them with manual definitions. For example, replace forgeurl -# with the project homepage if it exists separately from the repository URL. -# Only replace the variables when it adds value to the spec file and you -# understand the consequences. Release ordering is controlled by the packager -# with x%{?dist}/0.x%{?dist} number chains. -Name: -Release: 1%{?dist} -Summary: -URL: %{forgeurl} -Source: %{forgesource} -%description - - -%prep -# forgesetup calls setup with the correct flags for archives downloaded from -# the selected forge. A forgeautosetup autosetup wrapper is also provided. If -# you disagree with the computed setup/autosetup flags, just call -# setup/autosetup directly. -# – use the “-v” flag if you want verbose processing -%forgesetup -# -# After this point the archive extraction is done. forgemeta is no longer used. - -%build - -%install - -%check - -%files -%license -%doc - -%changelog diff --git a/spectemplate-forge-tag.spec b/spectemplate-forge-tag.spec deleted file mode 100644 index 6cde5ed..0000000 --- a/spectemplate-forge-tag.spec +++ /dev/null @@ -1,46 +0,0 @@ -# This template shows how to package a tag state using the forgemeta macro. -# For more explanations on forgemeta, read the forgemeta-release template. -# -# The project url on the forge -%global forgeurl -# -# The tag being packaged -%global tag -# -# – use the “-i” flag to display the variables forgemeta reads and sets -# – use the “-v” flag if you want verbose processing -# – remove “-i” and “-v” before commit -%forgemeta - -# The following lines use variables computed by forgemeta as default values. -# You can replace them with manual definitions. -# forgemeta will prepend tag information to dist. Release ordering is -# controlled by the packager with x%{?dist}/0.x%{?dist} numbers chains. -Name: -Version: -Release: 1%{?dist} -Summary: -URL: %{forgeurl} -Source: %{forgesource} -%description - - -%prep -# – an autosetup wrapper, forgeautosetup, is also provided -# – use the “-v” flag if you want verbose processing; remove it before commit -# – call forgesetup/autosetup directly if you do not like the result -%forgesetup -# -# After this point the archive extraction is done. forgemeta is no longer used. - -%build - -%install - -%check - -%files -%license -%doc - -%changelog