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

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

spec: os2-rpm: Release version 0-5.

File size: 3.5 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"\
44_localfile="%__source_url"\
45_localfile="${_localfile#file://}"\
46if [ "$_localfile" != "%__source_url" ] ; then\
47git -C "$_localfile" archive --format zip --output "%SOURCE0" --prefix "%__source_dir/" "%{?__source_rev}"\
48else\
49git archive --format zip --output "%SOURCE0" --prefix "%__source_dir/" --remote "%__source_url" "%{?__source_rev}"\
50fi\
51(cd .. && unzip -qq "%SOURCE0" "%__source_dir"/RPMBUILD_SOURCE 2>/dev/null) || :\
52%__scm_pre_pack\
53(cd .. && zip -mX "%SOURCE0" "%__source_dir"/RPMBUILD_SOURCE*)\
54(cd .. && unzip -qq "%SOURCE0")\
55%if %{undefined __source_rev}\
56rm -f "%SOURCE0"\
57%endif\
58%endif
59
60# GitHub
61
62%__scm_source_github\
63Source: %{?main_name}%{!?main_name:%{name}}-github%{?__source_rev:-%{__source_rev}}.zip\
64BuildRequires: wget zip unzip\
65%{nil}
66
67%__scm_setup_github\
68%{!?__source_rev:%{error:%0: Revision in %%scm_source is required for GitHub}exit 1}\
69%global __source_url_github_name %(URL="%{__source_url}" ; echo ${URL##*/})\
70%global __source_dir_github %{__source_url_github_name}-%{__source_rev}\
71%if %{?__source_rev:%(if test -f "%SOURCE0" ; then echo 1 ; else echo 0 ; fi)}%{!?__source_rev:0}\
72%setup -n "%__source_dir_github" -q\
73%else\
74%setup -n "%__source_dir_github" -Tc\
75rm -f "%SOURCE0"\
76wget -nv "%{__source_url}/archive/%{__source_rev}.zip" -O "%SOURCE0"\
77(cd .. && unzip -qq "%SOURCE0" "%__source_dir_github"/RPMBUILD_SOURCE 2>/dev/null) || :\
78%__scm_pre_pack\
79(cd .. && zip -mX "%SOURCE0" "%__source_dir_github"/RPMBUILD_SOURCE*)\
80(cd .. && unzip -qq "%SOURCE0")\
81%endif
82
83# User-level macros
84
85%scm_source()\
86%{?SOURCE0:%{error:%0: Source tag is already set to '%SOURCE0'}%{quit}}\
87%{?1:%global __source_scm %1}\
88%{?2:%global __source_url %2}\
89%{?3:%global __source_rev %3}\
90%{expand:%%{!?__scm_source_%1:%%{error:%0: Invalid SCM type: %{?1}}%{quit}}}\
91%{expand:%%{?__scm_source_%1}}\
92%{nil}
93
94# -A Options for zip (-rx9 by default, currently used only for SVN SCM type)
95%scm_setup(A:)\
96%{!?__source_scm:%{error:%0: Missing %%scm_source specification}exit 1}\
97%{!?__source_url:%{?__source_scm:%{error:%0: Missing URL in %%scm_source}exit 1}}\
98%global __source_dir %{?main_name}%{!?main_name:%{name}}-%{?main_version}%{!?main_version:%{version}}\
99%{expand:%%{?__scm_setup_%{__source_scm}}}\
100%{nil}
Note: See TracBrowser for help on using the repository browser.