##// END OF EJS Templates
packaging: introduce Python3 support as buildrpm --python3...
Mads Kiilerich -
r43650:a6dcac64 stable
parent child Browse files
Show More
@@ -1,160 +1,166 b''
1 #!/bin/bash -e
1 #!/bin/bash -e
2 #
2 #
3 # Build a Mercurial RPM from the current repo
3 # Build a Mercurial RPM from the current repo
4 #
4 #
5 # Tested on
5 # Tested on
6 # - Fedora 20
6 # - Fedora 20
7 # - CentOS 5
7 # - CentOS 5
8 # - centOS 6
8 # - centOS 6
9
9
10 . $(dirname $0)/packagelib.sh
10 . $(dirname $0)/packagelib.sh
11
11
12 BUILD=1
12 BUILD=1
13 RPMBUILDDIR="$PWD/rpmbuild"
13 RPMBUILDDIR="$PWD/rpmbuild"
14 PYTHONEXE=python2
14
15
15 while [ "$1" ]; do
16 while [ "$1" ]; do
16 case "$1" in
17 case "$1" in
17 --prepare )
18 --prepare )
18 shift
19 shift
19 BUILD=
20 BUILD=
20 ;;
21 ;;
22 --python3)
23 shift
24 PYTHONEXE=python3
25 ;;
21 --withpython | --with-python)
26 --withpython | --with-python)
22 shift
27 shift
23 PYTHONVER=2.7.16
28 PYTHONVER=2.7.16
24 PYTHONMD5=f1a2ace631068444831d01485466ece0
29 PYTHONMD5=f1a2ace631068444831d01485466ece0
25 ;;
30 ;;
26 --rpmbuilddir )
31 --rpmbuilddir )
27 shift
32 shift
28 RPMBUILDDIR="$1"
33 RPMBUILDDIR="$1"
29 shift
34 shift
30 ;;
35 ;;
31 * )
36 * )
32 echo "Invalid parameter $1!" 1>&2
37 echo "Invalid parameter $1!" 1>&2
33 exit 1
38 exit 1
34 ;;
39 ;;
35 esac
40 esac
36 done
41 done
37
42
38 cd "`dirname $0`/../.."
43 cd "`dirname $0`/../.."
39
44
40 specfile=$PWD/contrib/packaging/mercurial.spec
45 specfile=$PWD/contrib/packaging/mercurial.spec
41 if [ ! -f $specfile ]; then
46 if [ ! -f $specfile ]; then
42 echo "Cannot find $specfile!" 1>&2
47 echo "Cannot find $specfile!" 1>&2
43 exit 1
48 exit 1
44 fi
49 fi
45
50
46 if [ ! -d .hg ]; then
51 if [ ! -d .hg ]; then
47 echo 'You are not inside a Mercurial repository!' 1>&2
52 echo 'You are not inside a Mercurial repository!' 1>&2
48 exit 1
53 exit 1
49 fi
54 fi
50
55
51 gethgversion
56 gethgversion
52
57
53 if [ -z "$type" ] ; then
58 if [ -z "$type" ] ; then
54 release=1
59 release=1
55 else
60 else
56 release=0.9_$type
61 release=0.9_$type
57 fi
62 fi
58
63
59 if [ -n "$distance" ] ; then
64 if [ -n "$distance" ] ; then
60 release=$release+${distance}_${node}
65 release=$release+${distance}_${node}
61 fi
66 fi
62
67
63 if [ "$PYTHONVER" ]; then
68 if [ "$PYTHONVER" ]; then
64 release=$release+$PYTHONVER
69 release=$release+$PYTHONVER
65 RPMPYTHONVER=$PYTHONVER
70 RPMPYTHONVER=$PYTHONVER
66 else
71 else
67 RPMPYTHONVER=%{nil}
72 RPMPYTHONVER=%{nil}
68 fi
73 fi
69
74
70 mkdir -p $RPMBUILDDIR/{SOURCES,BUILD,SRPMS,RPMS}
75 mkdir -p $RPMBUILDDIR/{SOURCES,BUILD,SRPMS,RPMS}
71 $HG archive -t tgz $RPMBUILDDIR/SOURCES/mercurial-$version-$release.tar.gz
76 $HG archive -t tgz $RPMBUILDDIR/SOURCES/mercurial-$version-$release.tar.gz
72 if [ "$PYTHONVER" ]; then
77 if [ "$PYTHONVER" ]; then
73 (
78 (
74 mkdir -p build
79 mkdir -p build
75 cd build
80 cd build
76 PYTHON_SRCFILE=Python-$PYTHONVER.tgz
81 PYTHON_SRCFILE=Python-$PYTHONVER.tgz
77 [ -f $PYTHON_SRCFILE ] || curl -Lo $PYTHON_SRCFILE http://www.python.org/ftp/python/$PYTHONVER/$PYTHON_SRCFILE
82 [ -f $PYTHON_SRCFILE ] || curl -Lo $PYTHON_SRCFILE http://www.python.org/ftp/python/$PYTHONVER/$PYTHON_SRCFILE
78 if [ "$PYTHONMD5" ]; then
83 if [ "$PYTHONMD5" ]; then
79 echo "$PYTHONMD5 $PYTHON_SRCFILE" | md5sum -w -c
84 echo "$PYTHONMD5 $PYTHON_SRCFILE" | md5sum -w -c
80 fi
85 fi
81 ln -f $PYTHON_SRCFILE $RPMBUILDDIR/SOURCES/$PYTHON_SRCFILE
86 ln -f $PYTHON_SRCFILE $RPMBUILDDIR/SOURCES/$PYTHON_SRCFILE
82
87
83 DOCUTILSVER=`sed -ne "s/^%global docutilsname docutils-//p" $specfile`
88 DOCUTILSVER=`sed -ne "s/^%global docutilsname docutils-//p" $specfile`
84 DOCUTILS_SRCFILE=docutils-$DOCUTILSVER.tar.gz
89 DOCUTILS_SRCFILE=docutils-$DOCUTILSVER.tar.gz
85 [ -f $DOCUTILS_SRCFILE ] || curl -Lo $DOCUTILS_SRCFILE http://downloads.sourceforge.net/project/docutils/docutils/$DOCUTILSVER/$DOCUTILS_SRCFILE
90 [ -f $DOCUTILS_SRCFILE ] || curl -Lo $DOCUTILS_SRCFILE http://downloads.sourceforge.net/project/docutils/docutils/$DOCUTILSVER/$DOCUTILS_SRCFILE
86 DOCUTILSMD5=`sed -ne "s/^%global docutilsmd5 //p" $specfile`
91 DOCUTILSMD5=`sed -ne "s/^%global docutilsmd5 //p" $specfile`
87 if [ "$DOCUTILSMD5" ]; then
92 if [ "$DOCUTILSMD5" ]; then
88 echo "$DOCUTILSMD5 $DOCUTILS_SRCFILE" | md5sum -w -c
93 echo "$DOCUTILSMD5 $DOCUTILS_SRCFILE" | md5sum -w -c
89 fi
94 fi
90 ln -f $DOCUTILS_SRCFILE $RPMBUILDDIR/SOURCES/$DOCUTILS_SRCFILE
95 ln -f $DOCUTILS_SRCFILE $RPMBUILDDIR/SOURCES/$DOCUTILS_SRCFILE
91 )
96 )
92 fi
97 fi
93
98
94 mkdir -p $RPMBUILDDIR/SPECS
99 mkdir -p $RPMBUILDDIR/SPECS
95 rpmspec=$RPMBUILDDIR/SPECS/mercurial.spec
100 rpmspec=$RPMBUILDDIR/SPECS/mercurial.spec
96
101
97 sed -e "s,^Version:.*,Version: $version," \
102 sed -e "s,^Version:.*,Version: $version," \
98 -e "s,^Release:.*,Release: $release," \
103 -e "s,^Release:.*,Release: $release," \
104 -e "s/^%global pythonexe .*/%global pythonexe $PYTHONEXE/" \
99 $specfile > $rpmspec
105 $specfile > $rpmspec
100
106
101 echo >> $rpmspec
107 echo >> $rpmspec
102 echo "%changelog" >> $rpmspec
108 echo "%changelog" >> $rpmspec
103
109
104 if echo $version | grep '+' > /dev/null 2>&1; then
110 if echo $version | grep '+' > /dev/null 2>&1; then
105 latesttag="`echo $version | sed -e 's/+.*//'`"
111 latesttag="`echo $version | sed -e 's/+.*//'`"
106 $HG log -r .:"$latesttag" -fM \
112 $HG log -r .:"$latesttag" -fM \
107 --template '{date|hgdate}\t{author}\t{desc|firstline}\n' | python -c '
113 --template '{date|hgdate}\t{author}\t{desc|firstline}\n' | python -c '
108 import sys, time
114 import sys, time
109
115
110 def datestr(date, format):
116 def datestr(date, format):
111 return time.strftime(format, time.gmtime(float(date[0]) - date[1]))
117 return time.strftime(format, time.gmtime(float(date[0]) - date[1]))
112
118
113 changelog = []
119 changelog = []
114 for l in sys.stdin.readlines():
120 for l in sys.stdin.readlines():
115 tok = l.split("\t")
121 tok = l.split("\t")
116 hgdate = tuple(int(v) for v in tok[0].split())
122 hgdate = tuple(int(v) for v in tok[0].split())
117 changelog.append((datestr(hgdate, "%F"), tok[1], hgdate, tok[2]))
123 changelog.append((datestr(hgdate, "%F"), tok[1], hgdate, tok[2]))
118 prevtitle = ""
124 prevtitle = ""
119 for l in sorted(changelog, reverse=True):
125 for l in sorted(changelog, reverse=True):
120 title = "* %s %s" % (datestr(l[2], "%a %b %d %Y"), l[1])
126 title = "* %s %s" % (datestr(l[2], "%a %b %d %Y"), l[1])
121 if prevtitle != title:
127 if prevtitle != title:
122 prevtitle = title
128 prevtitle = title
123 print
129 print
124 print(title)
130 print(title)
125 print("- %s" % l[3].strip())
131 print("- %s" % l[3].strip())
126 ' >> $rpmspec
132 ' >> $rpmspec
127
133
128 else
134 else
129
135
130 $HG log \
136 $HG log \
131 --template '{date|hgdate}\t{author}\t{desc|firstline}\n' \
137 --template '{date|hgdate}\t{author}\t{desc|firstline}\n' \
132 .hgtags | python -c '
138 .hgtags | python -c '
133 import sys, time
139 import sys, time
134
140
135 def datestr(date, format):
141 def datestr(date, format):
136 return time.strftime(format, time.gmtime(float(date[0]) - date[1]))
142 return time.strftime(format, time.gmtime(float(date[0]) - date[1]))
137
143
138 for l in sys.stdin.readlines():
144 for l in sys.stdin.readlines():
139 tok = l.split("\t")
145 tok = l.split("\t")
140 hgdate = tuple(int(v) for v in tok[0].split())
146 hgdate = tuple(int(v) for v in tok[0].split())
141 print("* %s %s\n- %s" % (datestr(hgdate, "%a %b %d %Y"), tok[1], tok[2]))
147 print("* %s %s\n- %s" % (datestr(hgdate, "%a %b %d %Y"), tok[1], tok[2]))
142 ' >> $rpmspec
148 ' >> $rpmspec
143
149
144 fi
150 fi
145
151
146 sed -i \
152 sed -i \
147 -e "s/^%define withpython.*$/%define withpython $RPMPYTHONVER/" \
153 -e "s/^%define withpython.*$/%define withpython $RPMPYTHONVER/" \
148 $rpmspec
154 $rpmspec
149
155
150 if [ "$BUILD" ]; then
156 if [ "$BUILD" ]; then
151 rpmbuild --define "_topdir $RPMBUILDDIR" -ba $rpmspec --clean
157 rpmbuild --define "_topdir $RPMBUILDDIR" -ba $rpmspec --clean
152 if [ $? = 0 ]; then
158 if [ $? = 0 ]; then
153 echo
159 echo
154 echo "Built packages for $version-$release:"
160 echo "Built packages for $version-$release:"
155 find $RPMBUILDDIR/*RPMS/ -type f -newer $rpmspec
161 find $RPMBUILDDIR/*RPMS/ -type f -newer $rpmspec
156 fi
162 fi
157 else
163 else
158 echo "Prepared sources for $version-$release $rpmspec are in $RPMBUILDDIR/SOURCES/ - use like:"
164 echo "Prepared sources for $version-$release $rpmspec are in $RPMBUILDDIR/SOURCES/ - use like:"
159 echo "rpmbuild --define '_topdir $RPMBUILDDIR' -ba $rpmspec --clean"
165 echo "rpmbuild --define '_topdir $RPMBUILDDIR' -ba $rpmspec --clean"
160 fi
166 fi
@@ -1,167 +1,171 b''
1 %global emacs_lispdir %{_datadir}/emacs/site-lisp
1 %global emacs_lispdir %{_datadir}/emacs/site-lisp
2
2
3 %define withpython %{nil}
3 %define withpython %{nil}
4
4
5 %if "%{?withpython}"
5 %if "%{?withpython}"
6
6
7 %global pythonver %{withpython}
7 %global pythonver %{withpython}
8 %global pythonname Python-%{withpython}
8 %global pythonname Python-%{withpython}
9 %global docutilsname docutils-0.14
9 %global docutilsname docutils-0.14
10 %global docutilsmd5 c53768d63db3873b7d452833553469de
10 %global docutilsmd5 c53768d63db3873b7d452833553469de
11 %global pythonhg python-hg
11 %global pythonhg python-hg
12 %global hgpyprefix /opt/%{pythonhg}
12 %global hgpyprefix /opt/%{pythonhg}
13 # byte compilation will fail on some some Python /test/ files
13 # byte compilation will fail on some some Python /test/ files
14 %global _python_bytecompile_errors_terminate_build 0
14 %global _python_bytecompile_errors_terminate_build 0
15
15
16 %else
16 %else
17
17
18 %global pythonexe python2
18 %global pythonexe python2
19 %global pythonver %(%{pythonexe} -c 'import sys;print(".".join(map(str, sys.version_info[:2])))')
19 %global pythonver %(%{pythonexe} -c 'import sys;print(".".join(map(str, sys.version_info[:2])))')
20
20
21 %endif
21 %endif
22
22
23 Summary: A fast, lightweight Source Control Management system
23 Summary: A fast, lightweight Source Control Management system
24 Name: mercurial
24 Name: mercurial
25 Version: snapshot
25 Version: snapshot
26 Release: 0
26 Release: 0
27 License: GPLv2+
27 License: GPLv2+
28 Group: Development/Tools
28 Group: Development/Tools
29 URL: https://mercurial-scm.org/
29 URL: https://mercurial-scm.org/
30 Source0: %{name}-%{version}-%{release}.tar.gz
30 Source0: %{name}-%{version}-%{release}.tar.gz
31 %if "%{?withpython}"
31 %if "%{?withpython}"
32 Source1: %{pythonname}.tgz
32 Source1: %{pythonname}.tgz
33 Source2: %{docutilsname}.tar.gz
33 Source2: %{docutilsname}.tar.gz
34 %endif
34 %endif
35 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
35 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
36
36
37 BuildRequires: make, gcc, gettext
37 BuildRequires: make, gcc, gettext
38 %if "%{?withpython}"
38 %if "%{?withpython}"
39 BuildRequires: readline-devel, openssl-devel, ncurses-devel, zlib-devel, bzip2-devel
39 BuildRequires: readline-devel, openssl-devel, ncurses-devel, zlib-devel, bzip2-devel
40 %else
40 %else
41 BuildRequires: python >= 2.7, python-devel, python-docutils >= 0.5
41 BuildRequires: python >= %{pythonver}, python-devel, python-docutils >= 0.5
42 Requires: python >= 2.7
42 Requires: python >= %{pythonver}
43 %endif
43 %endif
44 # The hgk extension uses the wish tcl interpreter, but we don't enforce it
44 # The hgk extension uses the wish tcl interpreter, but we don't enforce it
45 #Requires: tk
45 #Requires: tk
46
46
47 %description
47 %description
48 Mercurial is a fast, lightweight source control management system designed
48 Mercurial is a fast, lightweight source control management system designed
49 for efficient handling of very large distributed projects.
49 for efficient handling of very large distributed projects.
50
50
51 %prep
51 %prep
52
52
53 %if "%{?withpython}"
53 %if "%{?withpython}"
54 %setup -q -n mercurial-%{version}-%{release} -a1 -a2
54 %setup -q -n mercurial-%{version}-%{release} -a1 -a2
55 # despite the comments in cgi.py, we do this to prevent rpmdeps from picking /usr/local/bin/python up
55 # despite the comments in cgi.py, we do this to prevent rpmdeps from picking /usr/local/bin/python up
56 sed -i '1c#! /usr/bin/env %{pythonexe}' %{pythonname}/Lib/cgi.py
56 sed -i '1c#! /usr/bin/env %{pythonexe}' %{pythonname}/Lib/cgi.py
57 %else
57 %else
58 %setup -q -n mercurial-%{version}-%{release}
58 %setup -q -n mercurial-%{version}-%{release}
59 %endif
59 %endif
60
60
61 %build
61 %build
62
62
63 export HGPYTHON3=1
64
63 %if "%{?withpython}"
65 %if "%{?withpython}"
64
66
65 PYPATH=$PWD/%{pythonname}
67 PYPATH=$PWD/%{pythonname}
66 cd $PYPATH
68 cd $PYPATH
67 ./configure --prefix=%{hgpyprefix}
69 ./configure --prefix=%{hgpyprefix}
68 make all %{?_smp_mflags}
70 make all %{?_smp_mflags}
69 cd -
71 cd -
70
72
71 cd %{docutilsname}
73 cd %{docutilsname}
72 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build
74 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py build
73 cd -
75 cd -
74
76
75 # verify Python environment
77 # verify Python environment
76 LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline'
78 LD_LIBRARY_PATH=$PYPATH PYTHONPATH=$PWD/%{docutilsname} $PYPATH/python -c 'import sys, zlib, bz2, ssl, curses, readline'
77
79
78 # set environment for make
80 # set environment for make
79 export PATH=$PYPATH:$PATH
81 export PATH=$PYPATH:$PATH
80 export LD_LIBRARY_PATH=$PYPATH
82 export LD_LIBRARY_PATH=$PYPATH
81 export CFLAGS="-L $PYPATH"
83 export CFLAGS="-L $PYPATH"
82 export PYTHONPATH=$PWD/%{docutilsname}
84 export PYTHONPATH=$PWD/%{docutilsname}
83
85
84 %endif
86 %endif
85
87
86 make all PYTHON=%{pythonexe}
88 make all PYTHON=%{pythonexe}
87 make -C contrib/chg
89 make -C contrib/chg
88
90
89 sed -i -e '1s|#!/usr/bin/env python$|#!/usr/bin/env %{pythonexe}|' contrib/hg-ssh
91 sed -i -e '1s|#!/usr/bin/env python$|#!/usr/bin/env %{pythonexe}|' contrib/hg-ssh
90
92
91 %install
93 %install
92 rm -rf $RPM_BUILD_ROOT
94 rm -rf $RPM_BUILD_ROOT
93
95
96 export HGPYTHON3=1
97
94 %if "%{?withpython}"
98 %if "%{?withpython}"
95
99
96 PYPATH=$PWD/%{pythonname}
100 PYPATH=$PWD/%{pythonname}
97 cd $PYPATH
101 cd $PYPATH
98 make install DESTDIR=$RPM_BUILD_ROOT
102 make install DESTDIR=$RPM_BUILD_ROOT
99 # these .a are not necessary and they are readonly and strip fails - kill them!
103 # these .a are not necessary and they are readonly and strip fails - kill them!
100 rm -f %{buildroot}%{hgpyprefix}/lib/{,python2.*/config}/libpython2.*.a
104 rm -f %{buildroot}%{hgpyprefix}/lib/{,python2.*/config}/libpython2.*.a
101 cd -
105 cd -
102
106
103 cd %{docutilsname}
107 cd %{docutilsname}
104 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT"
108 LD_LIBRARY_PATH=$PYPATH $PYPATH/python setup.py install --root="$RPM_BUILD_ROOT"
105 cd -
109 cd -
106
110
107 PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir}
111 PATH=$PYPATH:$PATH LD_LIBRARY_PATH=$PYPATH make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{hgpyprefix} MANDIR=%{_mandir}
108 mkdir -p $RPM_BUILD_ROOT%{_bindir}
112 mkdir -p $RPM_BUILD_ROOT%{_bindir}
109 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . )
113 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/hg . )
110 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} )
114 ( cd $RPM_BUILD_ROOT%{_bindir}/ && ln -s ../..%{hgpyprefix}/bin/python2.? %{pythonhg} )
111
115
112 %else
116 %else
113
117
114 make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir}
118 make install PYTHON=%{pythonexe} DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} MANDIR=%{_mandir}
115
119
116 %endif
120 %endif
117
121
118 install -m 755 contrib/chg/chg $RPM_BUILD_ROOT%{_bindir}/
122 install -m 755 contrib/chg/chg $RPM_BUILD_ROOT%{_bindir}/
119 install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/
123 install -m 755 contrib/hgk $RPM_BUILD_ROOT%{_bindir}/
120 install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/
124 install -m 755 contrib/hg-ssh $RPM_BUILD_ROOT%{_bindir}/
121
125
122 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
126 bash_completion_dir=$RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
123 mkdir -p $bash_completion_dir
127 mkdir -p $bash_completion_dir
124 install -m 644 contrib/bash_completion $bash_completion_dir/mercurial.sh
128 install -m 644 contrib/bash_completion $bash_completion_dir/mercurial.sh
125
129
126 zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
130 zsh_completion_dir=$RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
127 mkdir -p $zsh_completion_dir
131 mkdir -p $zsh_completion_dir
128 install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
132 install -m 644 contrib/zsh_completion $zsh_completion_dir/_mercurial
129
133
130 mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
134 mkdir -p $RPM_BUILD_ROOT%{emacs_lispdir}
131 install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}/
135 install -m 644 contrib/mercurial.el $RPM_BUILD_ROOT%{emacs_lispdir}/
132 install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}/
136 install -m 644 contrib/mq.el $RPM_BUILD_ROOT%{emacs_lispdir}/
133
137
134 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
138 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/mercurial/hgrc.d
135
139
136 %clean
140 %clean
137 rm -rf $RPM_BUILD_ROOT
141 rm -rf $RPM_BUILD_ROOT
138
142
139 %files
143 %files
140 %defattr(-,root,root,-)
144 %defattr(-,root,root,-)
141 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi
145 %doc CONTRIBUTORS COPYING doc/README doc/hg*.txt doc/hg*.html *.cgi contrib/*.fcgi
142 %doc %attr(644,root,root) %{_mandir}/man?/hg*
146 %doc %attr(644,root,root) %{_mandir}/man?/hg*
143 %doc %attr(644,root,root) contrib/*.svg
147 %doc %attr(644,root,root) contrib/*.svg
144 %dir %{_datadir}/zsh/
148 %dir %{_datadir}/zsh/
145 %dir %{_datadir}/zsh/site-functions/
149 %dir %{_datadir}/zsh/site-functions/
146 %{_datadir}/zsh/site-functions/_mercurial
150 %{_datadir}/zsh/site-functions/_mercurial
147 %dir %{_datadir}/emacs/site-lisp/
151 %dir %{_datadir}/emacs/site-lisp/
148 %{_datadir}/emacs/site-lisp/mercurial.el
152 %{_datadir}/emacs/site-lisp/mercurial.el
149 %{_datadir}/emacs/site-lisp/mq.el
153 %{_datadir}/emacs/site-lisp/mq.el
150 %{_bindir}/hg
154 %{_bindir}/hg
151 %{_bindir}/chg
155 %{_bindir}/chg
152 %{_bindir}/hgk
156 %{_bindir}/hgk
153 %{_bindir}/hg-ssh
157 %{_bindir}/hg-ssh
154 %dir %{_sysconfdir}/bash_completion.d/
158 %dir %{_sysconfdir}/bash_completion.d/
155 %config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh
159 %config(noreplace) %{_sysconfdir}/bash_completion.d/mercurial.sh
156 %dir %{_sysconfdir}/mercurial
160 %dir %{_sysconfdir}/mercurial
157 %dir %{_sysconfdir}/mercurial/hgrc.d
161 %dir %{_sysconfdir}/mercurial/hgrc.d
158 %if "%{?withpython}"
162 %if "%{?withpython}"
159 %{_bindir}/%{pythonhg}
163 %{_bindir}/%{pythonhg}
160 %{hgpyprefix}
164 %{hgpyprefix}
161 %else
165 %else
162 %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
166 %{_libdir}/python%{pythonver}/site-packages/%{name}-*-py%{pythonver}.egg-info
163 %{_libdir}/python%{pythonver}/site-packages/%{name}
167 %{_libdir}/python%{pythonver}/site-packages/%{name}
164 %{_libdir}/python%{pythonver}/site-packages/hgext
168 %{_libdir}/python%{pythonver}/site-packages/hgext
165 %{_libdir}/python%{pythonver}/site-packages/hgext3rd
169 %{_libdir}/python%{pythonver}/site-packages/hgext3rd
166 %{_libdir}/python%{pythonver}/site-packages/hgdemandimport
170 %{_libdir}/python%{pythonver}/site-packages/hgdemandimport
167 %endif
171 %endif
General Comments 0
You need to be logged in to leave comments. Login now