Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-apps/portage: ChangeLog portage-2.1.4_rc1.ebuild
Date: Fri, 23 Nov 2007 03:32:22
Message-Id: E1IvPH6-0008PO-VZ@stork.gentoo.org
1 zmedico 07/11/23 03:32:16
2
3 Modified: ChangeLog
4 Added: portage-2.1.4_rc1.ebuild
5 Log:
6 2.1.4_rc1. This fixes bugs #46223, #190128, #198398, #198491, #198492,
7 and #199311. This release includes new environment processing support
8 which solves bugs #46223 and #190128. Now an ebuild and it's eclasses
9 are only sourced once, and the resulting bash environment is reused for
10 the entire lifecycle of the package. This allows eclasses to have
11 incompatible api changes or be completely removed from the tree without
12 causing problems for installed packages. It also allows environment
13 variables to persist through the entire lifecycle of a package. For
14 example, a binary package has access to the build time environment, and
15 a package being uninstalled has access to the build time and install
16 time environments. Bug #200044 tracks all bugs fixed since 2.1.3.x.
17 (Portage version: 2.1.4_rc1)
18
19 Revision Changes Path
20 1.472 sys-apps/portage/ChangeLog
21
22 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/ChangeLog?rev=1.472&view=markup
23 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/ChangeLog?rev=1.472&content-type=text/plain
24 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/ChangeLog?r1=1.471&r2=1.472
25
26 Index: ChangeLog
27 ===================================================================
28 RCS file: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v
29 retrieving revision 1.471
30 retrieving revision 1.472
31 diff -u -r1.471 -r1.472
32 --- ChangeLog 19 Nov 2007 06:08:00 -0000 1.471
33 +++ ChangeLog 23 Nov 2007 03:32:16 -0000 1.472
34 @@ -1,6 +1,21 @@
35 # ChangeLog for sys-apps/portage
36 # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
37 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.471 2007/11/19 06:08:00 kumba Exp $
38 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/ChangeLog,v 1.472 2007/11/23 03:32:16 zmedico Exp $
39 +
40 +*portage-2.1.4_rc1 (23 Nov 2007)
41 +
42 + 23 Nov 2007; Zac Medico <zmedico@g.o> +portage-2.1.4_rc1.ebuild:
43 + 2.1.4_rc1. This fixes bugs #46223, #190128, #198398, #198491, #198492,
44 + and #199311. This release includes new environment processing support
45 + which solves bugs #46223 and #190128. Now an ebuild and it's eclasses
46 + are only sourced once, and the resulting bash environment is reused for
47 + the entire lifecycle of the package. This allows eclasses to have
48 + incompatible api changes or be completely removed from the tree without
49 + causing problems for installed packages. It also allows environment
50 + variables to persist through the entire lifecycle of a package. For
51 + example, a binary package has access to the build time environment, and
52 + a package being uninstalled has access to the build time and install
53 + time environments. Bug #200044 tracks all bugs fixed since 2.1.3.x.
54
55 19 Nov 2007; Joshua Kinard <kumba@g.o> portage-2.1.3.19.ebuild:
56 Stable on mips, per #198471.
57
58
59
60 1.1 sys-apps/portage/portage-2.1.4_rc1.ebuild
61
62 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/portage-2.1.4_rc1.ebuild?rev=1.1&view=markup
63 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/portage-2.1.4_rc1.ebuild?rev=1.1&content-type=text/plain
64
65 Index: portage-2.1.4_rc1.ebuild
66 ===================================================================
67 # Copyright 1999-2007 Gentoo Foundation
68 # Distributed under the terms of the GNU General Public License v2
69 # $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1.4_rc1.ebuild,v 1.1 2007/11/23 03:32:16 zmedico Exp $
70
71 inherit toolchain-funcs eutils flag-o-matic multilib
72
73 DESCRIPTION="The Portage Package Management System. The primary package management and distribution system for Gentoo."
74 HOMEPAGE="http://www.gentoo.org/proj/en/portage/index.xml"
75 LICENSE="GPL-2"
76 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
77 PROVIDE="virtual/portage"
78 SLOT="0"
79 IUSE="build doc epydoc selinux linguas_pl"
80 DEPEND=">=dev-lang/python-2.4
81 !build? ( >=sys-apps/sed-4.0.5 )
82 doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
83 epydoc? ( >=dev-python/epydoc-2.0 )"
84 RDEPEND=">=dev-lang/python-2.4
85 !build? ( >=sys-apps/sed-4.0.5
86 >=app-shells/bash-3.2_p17 )
87 elibc_FreeBSD? ( sys-freebsd/freebsd-bin )
88 elibc_glibc? ( >=sys-apps/sandbox-1.2.17 )
89 elibc_uclibc? ( >=sys-apps/sandbox-1.2.17 )
90 >=app-misc/pax-utils-0.1.13
91 selinux? ( >=dev-python/python-selinux-2.16 )"
92 PDEPEND="
93 doc? (
94 || ( app-portage/eclass-manpages app-portage/portage-manpages )
95 )
96 !build? (
97 >=net-misc/rsync-2.6.4
98 userland_GNU? ( >=sys-apps/coreutils-6.4 )
99 || ( >=dev-lang/python-2.5 >=dev-python/pycrypto-2.0.1-r6 )
100 )"
101 # coreutils-6.4 rdep is for date format in emerge-webrsync #164532
102 # rsync-2.6.4 rdep is for the --filter option #167668
103 SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives"
104
105 PV_PL="2.1.2"
106 PATCHVER_PL=""
107 TARBALL_PV="2.1.3.16"
108 SRC_URI="mirror://gentoo/${PN}-${TARBALL_PV}.tar.bz2
109 ${SRC_ARCHIVES}/${PN}-${TARBALL_PV}.tar.bz2
110 linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}.tar.bz2
111 ${SRC_ARCHIVES}/${PN}-man-pl-${PV_PL}.tar.bz2 )"
112
113 PATCHVER=${PV}
114 if [ -n "${PATCHVER}" ]; then
115 SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
116 ${SRC_ARCHIVES}/${PN}-${PATCHVER}.patch.bz2"
117 fi
118
119 if [ -n "${PATCHVER_PL}" ]; then
120 SRC_URI="${SRC_URI} linguas_pl? ( mirror://gentoo/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch.bz2
121 ${SRC_ARCHIVES}/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch.bz2 )"
122 fi
123
124 S="${WORKDIR}"/${PN}-${TARBALL_PV}
125 S_PL="${WORKDIR}"/${PN}-${PV_PL}
126
127 portage_docs() {
128 elog ""
129 elog "For help with using portage please consult the Gentoo Handbook"
130 elog "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3"
131 elog ""
132 }
133
134 src_unpack() {
135 unpack ${A}
136 cd "${S}"
137 if [ -n "${PATCHVER}" ]; then
138 cd "${S}"
139 epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
140 fi
141 einfo "Setting portage.VERSION to ${PVR} ..."
142 sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage.py || \
143 die "Failed to patch portage.VERSION"
144 eend 0
145 if [ -n "${PATCHVER_PL}" ]; then
146 use linguas_pl && \
147 epatch "${WORKDIR}/${PN}-man-pl-${PV_PL}${PATCHVER_PL}.patch"
148 fi
149 }
150
151 src_compile() {
152 append-lfs-flags
153
154 cd "${S}"/src
155 $(tc-getCC) ${CFLAGS} ${LDFLAGS} -o tbz2tool tbz2tool.c || \
156 die "Failed to build tbz2tool"
157
158 if use doc; then
159 cd "${S}"/doc
160 touch fragment/date
161 sed -i "s/svn-trunk/${PVR}/" fragment/version
162 make xhtml-nochunks || die "failed to make docs"
163 fi
164
165 if use epydoc; then
166 einfo "Generating api docs"
167 mkdir "${WORKDIR}"/api
168 local my_modules
169 my_modules="$(find "${S}/pym" -name "*.py" \
170 | sed -e 's:/__init__.py$::' -e 's:\.py$::' -e "s:^${S}/pym/::" \
171 -e 's:/:.:g')" || die "error listing modules"
172 PYTHONPATH="${S}/pym:${PYTHONPATH}" epydoc -o "${WORKDIR}"/api \
173 -qqqqq --ignore-param-mismatch --no-frames --show-imports \
174 --name "${PN}" --url "${HOMEPAGE}" \
175 ${my_modules} || die "epydoc failed"
176 fi
177 }
178
179 src_test() {
180 ./tests/runTests || \
181 die "test(s) failed"
182 }
183
184 src_install() {
185 local libdir=$(get_libdir)
186 local portage_base="/usr/${libdir}/portage"
187 cd "${S}"/cnf
188 insinto /etc
189 doins etc-update.conf dispatch-conf.conf make.globals
190 if [ -f "make.conf.${ARCH}".diff ]; then
191 patch make.conf "make.conf.${ARCH}".diff || \
192 die "Failed to patch make.conf.example"
193 newins make.conf make.conf.example
194 else
195 eerror ""
196 eerror "Portage does not have an arch-specific configuration for this arch."
197 eerror "Please notify the arch maintainer about this issue. Using generic."
198 eerror ""
199 newins make.conf make.conf.example
200 fi
201
202 insinto /etc/logrotate.d
203 doins "${S}"/cnf/logrotate.d/elog-save-summary
204
205 dodir ${portage_base}/bin
206 exeinto ${portage_base}/bin
207 # BSD and OSX need a sed wrapper so that find/xargs work properly
208 if use userland_GNU; then
209 rm "${S}"/bin/sed || die "Failed to remove sed wrapper"
210 fi
211 cd "${S}"/bin
212 doexe *
213 doexe "${S}"/src/tbz2tool
214 dosym newins ${portage_base}/bin/donewins
215
216 local mydir
217 for mydir in pym pym/cache pym/elog_modules; do
218 dodir ${portage_base}/${mydir}
219 insinto ${portage_base}/${mydir}
220 cd "${S}"/${mydir}
221 doins *.py
222 done
223
224 doman "${S}"/man/*.[0-9]
225 if use linguas_pl; then
226 doman -i18n=pl "${S_PL}"/man/pl/*.[0-9]
227 doman -i18n=pl_PL.UTF-8 "${S_PL}"/man/pl_PL.UTF-8/*.[0-9]
228 fi
229 dodoc "${S}"/ChangeLog
230 dodoc "${S}"/NEWS
231 dodoc "${S}"/RELEASE-NOTES
232 use doc && dohtml "${S}"/doc/*.html
233 use epydoc && dohtml -r "${WORKDIR}"/api
234
235 dodir /usr/bin
236 local x
237 for x in ebuild emerge portageq repoman tbz2tool xpak; do
238 dosym ../${libdir}/portage/bin/${x} /usr/bin/${x}
239 done
240
241 dodir /usr/sbin
242 local my_syms="archive-conf
243 dispatch-conf
244 emaint
245 emerge-webrsync
246 env-update
247 etc-update
248 fixpackages
249 quickpkg
250 regenworld"
251 local x
252 for x in ${my_syms}; do
253 dosym ../${libdir}/portage/bin/${x} /usr/sbin/${x}
254 done
255 dosym env-update /usr/sbin/update-env
256 dosym etc-update /usr/sbin/update-etc
257
258 dodir /etc/portage
259 keepdir /etc/portage
260
261 echo PYTHONPATH=\"${portage_base}/pym\" > "${WORKDIR}"/05portage.envd
262 doenvd "${WORKDIR}"/05portage.envd
263 }
264
265 pkg_preinst() {
266 if ! use build && ! has_version dev-python/pycrypto && \
267 has_version '>=dev-lang/python-2.5' ; then
268 # Bug #198398 - Unless pycrypto is installed, we need
269 # python's ssl flag enabled for RMD160 support.
270 built_with_use '>=dev-lang/python-2.5' ssl
271 fi
272 local portage_base="/usr/$(get_libdir)/portage"
273 if has livecvsportage ${FEATURES} && [ "${ROOT}" = "/" ]; then
274 rm -rf "${D}"/${portage_base}/pym/*
275 mv "${D}"/${portage_base}/bin/tbz2tool "${T}"
276 rm -rf "${D}"/${portage_base}/bin/*
277 mv "${T}"/tbz2tool "${D}"/${portage_base}/bin/
278 fi
279 }
280
281 pkg_postinst() {
282 local x
283
284 if [ ! -f "${ROOT}/var/lib/portage/world" ] &&
285 [ -f "${ROOT}"/var/cache/edb/world ] &&
286 [ ! -h "${ROOT}"/var/cache/edb/world ]; then
287 mv "${ROOT}"/var/cache/edb/world "${ROOT}"/var/lib/portage/world
288 ln -s ../../lib/portage/world /var/cache/edb/world
289 fi
290
291 for x in "${ROOT}"/etc/._cfg????_make.globals; do
292 # Overwrite the globals file automatically.
293 [ -e "${x}" ] && mv -f "${x}" "${ROOT}etc/make.globals"
294 done
295
296 # Compile all source files recursively. Any orphans
297 # will be identified and removed in postrm.
298 compile_all_python_bytecodes "${ROOT}usr/$(get_libdir)/portage/pym"
299
300 portage_docs
301 }
302
303 pkg_postrm() {
304 remove_orphan_python_bytecodes "${ROOT}usr/$(get_libdir)/portage/pym"
305 }
306
307 compile_all_python_bytecodes() {
308 python -c "from compileall import compile_dir; compile_dir('${1}', quiet=True)"
309 python -O -c "from compileall import compile_dir; compile_dir('${1}', quiet=True)"
310 }
311
312 remove_orphan_python_bytecodes() {
313 [[ -d ${1} ]] || return
314 find "${1}" -name '*.py[co]' -print0 | \
315 while read -d $'\0' f ; do
316 src_py=${f%[co]}
317 [[ -f ${src_py} ]] && continue
318 rm -f "${src_py}"[co]
319 done
320 }
321
322
323
324 --
325 gentoo-commits@g.o mailing list