source: spec/trunk/SPECS/os2-rpm/macros.scm@ 1163

Last change on this file since 1163 was 1163, checked in by dmik, 8 years ago

spec: os2-rpm: Move scm_souce/scm_setup macros from rpm.

File size: 3.1 KB
Line 
1#------------------------------------------------------------------------------
2# Macros to automatically take sources from SCM rather than from archives
3
4%__scm_pre_pack\
5[ -f RPMBUILD_SOURCE ] && mv RPMBUILD_SOURCE RPMBUILD_SOURCE.orig\
6echo "SCM: %{__source_scm}\
7URL: %{__source_url}\
8Rev: %{?__source_rev}" >RPMBUILD_SOURCE\
9%{nil}
10
11# SVN
12
13%__scm_source_svn\
14Source: %{?main_name}%{!?main_name:%{name}}-svn%{?__source_rev:-r%{__source_rev}}.zip\
15BuildRequires: subversion zip\
16%{nil}
17
18%__scm_setup_svn\
19%if %{?__source_rev:%(if test -f "%SOURCE0" ; then echo 1 ; else echo 0 ; fi)}%{!?__source_rev:0}\
20%setup -q\
21%else\
22%setup -n "%__source_dir" -Tc\
23svn export %{?__source_rev:-r %{__source_rev}} %{__source_url} . --force\
24%__scm_pre_pack\
25%if %{defined __source_rev}\
26(rm -f "%SOURCE0" && cd .. && zip %{-A:%{-A*}}%{!-A:-rX9} "%SOURCE0" "%__source_dir")\
27%endif\
28%endif\
29%{nil}
30
31# Git
32
33%__scm_source_git\
34Source: %{?main_name}%{!?main_name:%{name}}-git%{?__source_rev:-%{__source_rev}}.zip\
35BuildRequires: git zip unzip\
36%{nil}
37
38%__scm_setup_git\
39%if %{?__source_rev:%(if test -f "%SOURCE0" ; then echo 1 ; else echo 0 ; fi)}%{!?__source_rev:0}\
40%setup -q\
41%else\
42%setup -n "%__source_dir" -Tc\
43rm -f "%SOURCE0"\
44git archive --format zip --output "%SOURCE0" --prefix "%__source_dir/" --remote "%{__source_url}" "%{?__source_rev}"\
45unzip -qq "%SOURCE0" "%__source_dir"/RPMBUILD_SOURCE -d .. 2>/dev/null || :\
46%__scm_pre_pack\
47(cd .. && zip -mX "%SOURCE0" "%__source_dir"/RPMBUILD_SOURCE*)\
48unzip -qq "%SOURCE0" -d ..\
49%if %{undefined __source_rev}\
50rm -f "%SOURCE0"\
51%endif\
52%endif
53
54# GitHub
55
56%__scm_source_github\
57Source: %{?main_name}%{!?main_name:%{name}}-github%{?__source_rev:-%{__source_rev}}.zip\
58BuildRequires: wget zip unzip\
59%{nil}
60
61%__scm_setup_github\
62%{!?__source_rev:%{error:%0: Revision in %%scm_source is required for GitHub}exit 1}\
63%global __source_url_github_name %(URL="%{__source_url}" ; echo ${URL##*/})\
64%global __source_dir_github %{__source_url_github_name}-%{__source_rev}\
65%if %{?__source_rev:%(if test -f "%SOURCE0" ; then echo 1 ; else echo 0 ; fi)}%{!?__source_rev:0}\
66%setup -n "%__source_dir_github" -q\
67%else\
68%setup -n "%__source_dir_github" -Tc\
69rm -f "%SOURCE0"\
70wget -nv "%{__source_url}/archive/%{__source_rev}.zip" -O "%SOURCE0"\
71unzip -qq "%SOURCE0" "%__source_dir_github"/RPMBUILD_SOURCE -d .. 2>/dev/null || :\
72%__scm_pre_pack\
73(cd .. && zip -mX "%SOURCE0" "%__source_dir_github"/RPMBUILD_SOURCE*)\
74unzip -qq "%SOURCE0" -d ..\
75%endif
76
77# User-level macros
78
79%scm_source()\
80%{?SOURCE0:%{error:%0: Source tag is already set to '%SOURCE0'}%{quit}}\
81%{?1:%global __source_scm %1}\
82%{?2:%global __source_url %2}\
83%{?3:%global __source_rev %3}\
84%{expand:%%{!?__scm_source_%1:%%{error:%0: Invalid SCM type: %{?1}}%{quit}}}\
85%{expand:%%{?__scm_source_%1}}\
86%{nil}
87
88%scm_setup(A:)\
89%{!?__source_scm:%{error:%0: Missing %%scm_source specification}exit 1}\
90%{!?__source_url:%{?__source_scm:%{error:%0: Missing URL in %%scm_source}exit 1}}\
91%global __source_dir %{?main_name}%{!?main_name:%{name}}-%{?main_version}%{!?main_version:%{version}}\
92%{expand:%%{?__scm_setup_%{__source_scm}}}\
93%{nil}
Note: See TracBrowser for help on using the repository browser.