##// END OF EJS Templates
packaging: allow choosing python version depending on centos version...
Mathias De Mare -
r43722:a69772d2 stable
parent child Browse files
Show More
@@ -1,134 +1,135 b''
1 $(eval HGROOT := $(shell cd ../..; pwd))
1 $(eval HGROOT := $(shell cd ../..; pwd))
2
2
3 DEBIAN_CODENAMES := \
3 DEBIAN_CODENAMES := \
4 stretch \
4 stretch \
5 buster \
5 buster \
6 bullseye
6 bullseye
7
7
8 UBUNTU_CODENAMES := \
8 UBUNTU_CODENAMES := \
9 xenial \
9 xenial \
10 bionic \
10 bionic \
11 cosmic \
11 cosmic \
12 disco
12 disco
13
13
14 FEDORA_RELEASE := 31
14 FEDORA_RELEASE := 31
15
15
16 CENTOS_RELEASES := \
16 CENTOS_RELEASES := \
17 5 \
17 5 \
18 6 \
18 6 \
19 7
19 7
20
20
21 # Build a Python for these CentOS releases.
21 # Build a Python for these CentOS releases.
22 CENTOS_WITH_PYTHON_RELEASES := 5 6
22 CENTOS_WITH_PYTHON_RELEASES := 5 6
23 CENTOS_WITH_NONVERSIONED_PYTHON := 5 6 7
23
24
24 help:
25 help:
25 @echo 'Packaging Make Targets'
26 @echo 'Packaging Make Targets'
26 @echo ''
27 @echo ''
27 @echo 'docker-centos{$(strip $(CENTOS_RELEASES))}'
28 @echo 'docker-centos{$(strip $(CENTOS_RELEASES))}'
28 @echo ' Build an RPM for a specific CentOS version using Docker.'
29 @echo ' Build an RPM for a specific CentOS version using Docker.'
29 @echo ''
30 @echo ''
30 @echo 'docker-debian-{$(strip $(DEBIAN_CODENAMES))}'
31 @echo 'docker-debian-{$(strip $(DEBIAN_CODENAMES))}'
31 @echo ' Build Debian packages specific to a Debian distro using Docker.'
32 @echo ' Build Debian packages specific to a Debian distro using Docker.'
32 @echo ''
33 @echo ''
33 @echo 'docker-fedora'
34 @echo 'docker-fedora'
34 @echo ' Build an RPM for a Fedora $(FEDORA_RELEASE) using Docker.'
35 @echo ' Build an RPM for a Fedora $(FEDORA_RELEASE) using Docker.'
35 @echo ''
36 @echo ''
36 @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}'
37 @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}'
37 @echo ' Build Debian package specific to an Ubuntu distro using Docker.'
38 @echo ' Build Debian package specific to an Ubuntu distro using Docker.'
38 @echo ''
39 @echo ''
39 @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}-ppa'
40 @echo 'docker-ubuntu-{$(strip $(UBUNTU_CODENAMES))}-ppa'
40 @echo ' Build a source-only Debian package specific to an Ubuntu distro'
41 @echo ' Build a source-only Debian package specific to an Ubuntu distro'
41 @echo ' using Docker.'
42 @echo ' using Docker.'
42 @echo ''
43 @echo ''
43 @echo 'linux-wheels'
44 @echo 'linux-wheels'
44 @echo ' Build Linux manylinux wheels using Docker.'
45 @echo ' Build Linux manylinux wheels using Docker.'
45 @echo ''
46 @echo ''
46 @echo 'linux-wheels-{x86_64, i686}'
47 @echo 'linux-wheels-{x86_64, i686}'
47 @echo ' Build Linux manylinux wheels for a specific architecture using Docker'
48 @echo ' Build Linux manylinux wheels for a specific architecture using Docker'
48 @echo ''
49 @echo ''
49 @echo 'deb'
50 @echo 'deb'
50 @echo ' Build a Debian package locally targeting the current system'
51 @echo ' Build a Debian package locally targeting the current system'
51 @echo ''
52 @echo ''
52 @echo 'ppa'
53 @echo 'ppa'
53 @echo ' Build a Debian source package locally targeting the current system'
54 @echo ' Build a Debian source package locally targeting the current system'
54 @echo ''
55 @echo ''
55 @echo 'centos{$(strip $(CENTOS_RELEASES))}'
56 @echo 'centos{$(strip $(CENTOS_RELEASES))}'
56 @echo ' Build an RPM for a specific CentOS version locally'
57 @echo ' Build an RPM for a specific CentOS version locally'
57 @echo ''
58 @echo ''
58 @echo 'fedora'
59 @echo 'fedora'
59 @echo ' Build an RPM for Fedora $(FEDORA_RELEASE) locally'
60 @echo ' Build an RPM for Fedora $(FEDORA_RELEASE) locally'
60
61
61 .PHONY: help
62 .PHONY: help
62
63
63 .PHONY: deb
64 .PHONY: deb
64 deb:
65 deb:
65 ./builddeb
66 ./builddeb
66
67
67 .PHONY: ppa
68 .PHONY: ppa
68 ppa:
69 ppa:
69 ./builddeb --source-only
70 ./builddeb --source-only
70
71
71 # Debian targets.
72 # Debian targets.
72 define debian_targets =
73 define debian_targets =
73 .PHONY: docker-debian-$(1)
74 .PHONY: docker-debian-$(1)
74 docker-debian-$(1):
75 docker-debian-$(1):
75 ./dockerdeb debian $(1)
76 ./dockerdeb debian $(1)
76
77
77 endef
78 endef
78
79
79 $(foreach codename,$(DEBIAN_CODENAMES),$(eval $(call debian_targets,$(codename))))
80 $(foreach codename,$(DEBIAN_CODENAMES),$(eval $(call debian_targets,$(codename))))
80
81
81 # Ubuntu targets.
82 # Ubuntu targets.
82 define ubuntu_targets =
83 define ubuntu_targets =
83 .PHONY: docker-ubuntu-$(1)
84 .PHONY: docker-ubuntu-$(1)
84 docker-ubuntu-$(1):
85 docker-ubuntu-$(1):
85 ./dockerdeb ubuntu $(1)
86 ./dockerdeb ubuntu $(1)
86
87
87 .PHONY: docker-ubuntu-$(1)-ppa
88 .PHONY: docker-ubuntu-$(1)-ppa
88 docker-ubuntu-$(1)-ppa:
89 docker-ubuntu-$(1)-ppa:
89 ./dockerdeb ubuntu $(1) --source-only
90 ./dockerdeb ubuntu $(1) --source-only
90
91
91 endef
92 endef
92
93
93 $(foreach codename,$(UBUNTU_CODENAMES),$(eval $(call ubuntu_targets,$(codename))))
94 $(foreach codename,$(UBUNTU_CODENAMES),$(eval $(call ubuntu_targets,$(codename))))
94
95
95 # Fedora targets.
96 # Fedora targets.
96 .PHONY: fedora
97 .PHONY: fedora
97 fedora:
98 fedora:
98 mkdir -p $(HGROOT)/packages/fedora$(FEDORA_RELEASE)
99 mkdir -p $(HGROOT)/packages/fedora$(FEDORA_RELEASE)
99 ./buildrpm
100 ./buildrpm
100 cp $(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora$(FEDORA_RELEASE)
101 cp $(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $(HGROOT)/packages/fedora$(FEDORA_RELEASE)
101 cp $(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora$(FEDORA_RELEASE)
102 cp $(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $(HGROOT)/packages/fedora$(FEDORA_RELEASE)
102 rm -rf $(HGROOT)/rpmbuild
103 rm -rf $(HGROOT)/rpmbuild
103
104
104 .PHONY: docker-fedora
105 .PHONY: docker-fedora
105 docker-fedora:
106 docker-fedora:
106 ./dockerrpm fedora$(FEDORA_RELEASE)
107 ./dockerrpm fedora$(FEDORA_RELEASE)
107
108
108 # CentOS targets.
109 # CentOS targets.
109 define centos_targets
110 define centos_targets
110 .PHONY: centos$(1)
111 .PHONY: centos$(1)
111 centos$(1):
112 centos$(1):
112 mkdir -p $$(HGROOT)/packages/centos$(1)
113 mkdir -p $$(HGROOT)/packages/centos$(1)
113 ./buildrpm $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython,--python python)
114 ./buildrpm $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython,$$(if $$(filter $(1),$$(CENTOS_WITH_NONVERSIONED_PYTHON)),--python python,))
114 cp $$(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $$(HGROOT)/packages/centos$(1)
115 cp $$(HGROOT)/contrib/packaging/rpmbuild/RPMS/*/* $$(HGROOT)/packages/centos$(1)
115 cp $$(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $$(HGROOT)/packages/centos$(1)
116 cp $$(HGROOT)/contrib/packaging/rpmbuild/SRPMS/* $$(HGROOT)/packages/centos$(1)
116
117
117 .PHONY: docker-centos$(1)
118 .PHONY: docker-centos$(1)
118 docker-centos$(1):
119 docker-centos$(1):
119 ./dockerrpm centos$(1) $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython,--python python)
120 ./dockerrpm centos$(1) $$(if $$(filter $(1),$$(CENTOS_WITH_PYTHON_RELEASES)),--withpython,$$(if $$(filter $(1),$$(CENTOS_WITH_NONVERSIONED_PYTHON)),--python python,))
120
121
121 endef
122 endef
122
123
123 $(foreach release,$(CENTOS_RELEASES),$(eval $(call centos_targets,$(release))))
124 $(foreach release,$(CENTOS_RELEASES),$(eval $(call centos_targets,$(release))))
124
125
125 .PHONY: linux-wheels
126 .PHONY: linux-wheels
126 linux-wheels: linux-wheels-x86_64 linux-wheels-i686
127 linux-wheels: linux-wheels-x86_64 linux-wheels-i686
127
128
128 .PHONY: linux-wheels-x86_64
129 .PHONY: linux-wheels-x86_64
129 linux-wheels-x86_64:
130 linux-wheels-x86_64:
130 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_x86_64 /src/contrib/packaging/build-linux-wheels.sh
131 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_x86_64 /src/contrib/packaging/build-linux-wheels.sh
131
132
132 .PHONY: linux-wheels-i686
133 .PHONY: linux-wheels-i686
133 linux-wheels-i686:
134 linux-wheels-i686:
134 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh
135 docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`/../..:/src quay.io/pypa/manylinux1_i686 linux32 /src/contrib/packaging/build-linux-wheels.sh
General Comments 0
You need to be logged in to leave comments. Login now