Bug 1647945

Summary: Review Source0 URL and git tag macros
Product: [Fedora] Fedora Reporter: Germano Massullo <germano.massullo>
Component: boinc-clientAssignee: Laurence Field <Laurence.Field>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: germano.massullo, Laurence.Field, mmahut, xjakub
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-12 16:23:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Germano Massullo 2018-11-08 15:29:21 UTC
This ticket is:
- a personal reminder
- an expanded comment referenced in the spec file

For 7.14.2 release I hardcoded Source0 URL.
Source0 must be reviewed because:

1) The spec file is no compliant to guidelines for Git tags [1]
2) Github returns various file names for the same file:

2-a) boinc-client_release-7-7.14.tar.gz
if you use
https://github.com/BOINC/boinc/archive/client_release/7/7.14/boinc-client-client_release/7/7.14.2.tar.gz
that is a "hardcoded" version of
https://github.com/BOINC/boinc/archive/%%{gitbranch}/%%{name}-%%{gittag}.tar.gz
of the spec file

2-b) boinc-client_release-7.14-7.14.2.tar.gz
if you use
https://github.com/BOINC/boinc/archive/client_release/7.14/7.14.2.tar.gz
that is from webpage
https://github.com/BOINC/boinc/tags


This causes spec file to be break at every BOINC client release.

[1]: https://fedoraproject.org/wiki/Packaging:SourceURL#Git_Tags

Comment 1 Germano Massullo 2018-11-12 16:23:38 UTC
- replaced hardcoded Source0
- replaced hardcoded %%setup
- adjusted macro tags for git
- added README section


# ========== README ==========
#
# BOINC client is not released with Github releases, it is released using
# Github tags.
# When a new BOINC client Github tag is released, replace
# 1) Version
# 2) Release (obviously)
# 3) commit, you can take it from the URL you get on Github when you pass the
# mousepointer on shortcommit (7 chars string)
# 
# BOINC release URLs are troublesome, to download the tar.gz use the following command
# spectool -g -s 0 boinc-client.spec
#
# Do not move the %%global foo block of code in the upper part of the spec
# file, otherwise it will not work because it will try to read macros not
# yet defined like %%{version}


========== Macros for git ==========

%global major_version %(v=%{version}; echo ${v:0:4})
%global commit 415b177a9a0f82a9bd2ed2a7e5dd3c2304e21014
%global gittag client_release/%{major_version}/%{version}
# gittag_custom is needed in %%setup process because tar.gz unpacks a folder
# named for example boinc-client_release-7.14-7.14.2
%global gittag_custom client_release-%{major_version}-%{version}
%global shortcommit %(c=%{commit}; echo ${c:0:7})


More infos at https://src.fedoraproject.org/rpms/boinc-client/blob/master/f/boinc-client.spec