From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] python-modules-encodings
Date: Mon, 19 Mar 2007 21:24:04 +0300
Message-ID: <20070319182404.GJ5965@solemn.turbinal> (raw)
In-Reply-To: <45FECE14.5050805@neural.ru>
[-- Attachment #1: Type: text/plain, Size: 4826 bytes --]
On Tue, Mar 20, 2007 at 01:53:24AM +0800, Ivan Fedorov wrote:
> Alexey Tourbin пишет:
> > Наверное, нужно захачить питон, чтобы он не загружал encodings, если
> > запущен под buildreq'ом.
>
> Ну вот такого зверства не надо!!!
Хорошо.
Я придумал промежуточное решение на уровне rpm-build-python и buildreq.
commit 80cc60b7525cd1fcbb85df6f91a02e2e09ef0a6e
Author: Alexey Tourbin <at@altlinux>
Date: Mon Mar 19 21:12:54 2007 +0300
deal with build dependencies on python-modules-encodings
If you run buildreq and if you have python-modules-encodings installed,
buildreq will always yield python-modules-encodings. However, if
python-modules-encodings is missing, that's okay (most of the time).
$ packagereq -o /dev/stdout rpm --eval %__python_version
2.4
packagereq: building requires list: python-modules-encodings
python-modules-encodings
$
The problem is in the following code:
Python/Python/codecs.c
834 mod = PyImport_ImportModuleEx("encodings", NULL, NULL, NULL);
835 if (mod == NULL) {
836 if (PyErr_ExceptionMatches(PyExc_ImportError)) {
837 /* Ignore ImportErrors... this is done so that
838 distributions can disable the encodings package. Note
839 that other errors are not masked, e.g. SystemErrors
840 raised to inform the user of an error in the Python
841 configuration are still reported back to the user. */
842 PyErr_Clear();
843 return 0;
844 }
845 return -1;
846 }
And there's no switch like "assume no encodings available at startup".
Now I still don't want buildreq to yield python-modules-encodings
only because I evaluate %__python_version macro.
The solution is as follows:
1) everywhere from rpm-build-python run python with LC_ALL=C.
2) add encoding files loaded under LC_ALL=C to buildreq skiplist.
New behaviour:
$ packagereq -o /dev/stdout rpm --eval %__python_version
2.4
packagereq: building requires list: python-base
python-base
$
diff --git a/rpm-build-python.spec b/rpm-build-python.spec
index a3da4b1..cf5c5aa 100644
--- a/rpm-build-python.spec
+++ b/rpm-build-python.spec
@@ -39,6 +39,7 @@ subst 's/@PYTHON_VERSION@/%__python_version/g' python
%install
install -pD -m644 python %buildroot%_sysconfdir/rpm/macros.d/python
install -pD -m644 python.env %buildroot%_sysconfdir/rpm/macros.d/python.env
+install -pD -m644 python.buildreq %buildroot%_sysconfdir/buildreqs/files/ignore.d/%name
install -pD -m755 python.prov %buildroot%_target_libdir/rpm/python.prov
install -pD -m755 python.prov.py %buildroot%_target_libdir/rpm/python.prov.py
install -pD -m755 python.prov.files %buildroot%_target_libdir/rpm/python.prov.files
@@ -62,6 +63,7 @@ unset RPM_PYTHON
%files
%_sysconfdir/rpm/macros.d/python
%_sysconfdir/rpm/macros.d/python.env
+%_sysconfdir/buildreqs/files/ignore.d/%name
%_target_libdir/rpm/python.compileall.py
%_target_libdir/rpm/python.req
%_target_libdir/rpm/python.req.py
diff --git a/rpm-build-python/python b/rpm-build-python/python
index 8b49990..af9a622 100644
--- a/rpm-build-python/python
+++ b/rpm-build-python/python
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
# Override __python_version macro provided by rpm-build
-%__python_version %(%__python -c 'import sys; print "%%u.%%u" %% sys.version_info[0:2]' 2>/dev/null || echo @PYTHON_VERSION@)
+%__python_version %(LC_ALL=C %__python -c 'import sys; print "%%u.%%u" %% sys.version_info[0:2]' 2>/dev/null || echo @PYTHON_VERSION@)
%_python_lib_path ""
%_python_req_method slight
diff --git a/rpm-build-python/python.buildreq b/rpm-build-python/python.buildreq
new file mode 100644
index 0000000..4e323a7
--- /dev/null
+++ b/rpm-build-python/python.buildreq
@@ -0,0 +1,3 @@
+^/usr/.*/python.*/encodings/__init__\.py
+^/usr/.*/python.*/encodings/aliases\.py
+^/usr/.*/python.*/encodings/ascii\.py
diff --git a/rpm-build-python/python.prov b/rpm-build-python/python.prov
index cdca9e4..309a1fd 100755
--- a/rpm-build-python/python.prov
+++ b/rpm-build-python/python.prov
@@ -1,2 +1,2 @@
#!/bin/sh
-exec "${RPM_PYTHON:-python}" "$0".py ${1+"$@"}
+LC_ALL=C exec "${RPM_PYTHON:-python}" "$0".py ${1+"$@"}
diff --git a/rpm-build-python/python.req b/rpm-build-python/python.req
index cdca9e4..309a1fd 100755
--- a/rpm-build-python/python.req
+++ b/rpm-build-python/python.req
@@ -1,2 +1,2 @@
#!/bin/sh
-exec "${RPM_PYTHON:-python}" "$0".py ${1+"$@"}
+LC_ALL=C exec "${RPM_PYTHON:-python}" "$0".py ${1+"$@"}
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-03-19 18:24 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-15 5:56 [devel] [git update] packages/python: heads/master Alexey M. Tourbin
2007-03-15 9:12 ` Alexey I. Froloff
2007-03-15 9:14 ` Aleksey Avdeev
2007-03-15 9:36 ` Ivan Fedorov
2007-03-15 9:33 ` Aleksey Avdeev
2007-03-15 9:50 ` Ivan Fedorov
2007-03-15 9:57 ` Aleksey Avdeev
2007-03-15 10:15 ` Ivan Fedorov
2007-03-18 22:10 ` [devel] [JT] python policy и отношение к коллегам Michael Shigorin
2007-03-18 22:25 ` Dmitry V. Levin
2007-03-19 18:04 ` Ivan Fedorov
2007-03-19 18:03 ` Ivan Fedorov
2007-03-19 18:29 ` Alexey I. Froloff
2007-03-19 18:34 ` Ivan Fedorov
2007-03-19 18:52 ` Alexey I. Froloff
2007-03-19 19:08 ` Ivan Fedorov
2007-03-19 19:16 ` Alexey I. Froloff
2007-03-19 20:03 ` Ivan Fedorov
2007-03-19 20:30 ` Alexey I. Froloff
2007-03-19 21:26 ` Денис Смирнов
2007-03-19 22:20 ` Alexey I. Froloff
2007-03-19 22:23 ` Konstantin Pavlov
2007-03-19 22:40 ` Dmitry V. Levin
2007-03-19 23:23 ` Alexey I. Froloff
2007-03-20 9:08 ` Денис Смирнов
2007-03-20 9:16 ` Ivan Fedorov
2007-03-20 9:37 ` Денис Смирнов
2007-03-19 21:14 ` Денис Смирнов
2007-03-15 9:41 ` [devel] [git update] packages/python: heads/master Mikhail Gusarov
2007-03-15 9:43 ` Ivan Fedorov
2007-03-15 9:45 ` Mikhail Gusarov
2007-03-15 20:03 ` Konstantin A. Lepikhov
2007-03-15 9:38 ` Mikhail Gusarov
2007-03-18 15:37 ` [devel] python-modules-encodings Alexey Tourbin
2007-03-18 15:41 ` Mikhail Gusarov
2007-03-18 15:47 ` Alexey Tourbin
2007-03-18 15:52 ` Mikhail Gusarov
2007-03-18 15:59 ` Alexey Tourbin
2007-03-18 16:10 ` Mikhail Gusarov
2007-03-18 16:21 ` Alexey Tourbin
2007-03-18 16:29 ` Mikhail Gusarov
2007-03-18 17:00 ` Alexey I. Froloff
2007-03-18 18:28 ` Alexey Tourbin
2007-03-18 20:10 ` Mikhail Gusarov
2007-03-19 22:23 ` [devel] buildreq Dmitry V. Levin
2007-03-18 21:38 ` [devel] python-modules-encodings Alexey I. Froloff
2007-03-19 17:53 ` Ivan Fedorov
2007-03-19 18:24 ` Alexey Tourbin [this message]
2007-03-19 18:42 ` Ivan Fedorov
2007-03-19 18:51 ` Alexey Tourbin
2007-03-19 19:12 ` Ivan Fedorov
2007-03-19 19:36 ` Alexey Tourbin
2007-03-19 19:58 ` Ivan Fedorov
2007-03-18 17:02 ` Michael Shigorin
2007-03-19 17:54 ` Ivan Fedorov
2007-03-19 21:25 ` [devel] buildreq += autoignore Michael Shigorin
2007-03-19 21:36 ` Alexey Tourbin
2007-03-19 21:56 ` Alexey I. Froloff
2007-03-19 22:03 ` Alexey Tourbin
2007-03-19 22:13 ` Michael Shigorin
2007-03-19 22:21 ` Alexey Tourbin
2007-03-19 22:28 ` Dmitry V. Levin
2007-03-19 22:34 ` Michael Shigorin
2007-03-20 17:11 ` Igor Zubkov
2007-03-20 17:13 ` Alexey Tourbin
2007-03-20 17:16 ` Igor Zubkov
2007-03-19 22:43 ` Motsyo Gennadi aka Drool
2007-03-19 22:48 ` Dmitry V. Levin
2007-03-19 23:00 ` Motsyo Gennadi aka Drool
2007-03-19 23:08 ` Alexey Tourbin
2007-03-29 22:26 ` [devel] [FR] buildreq: non-pruned deps as a spec comment Michael Shigorin
2007-03-29 22:51 ` [devel] " Alexey Tourbin
2007-03-30 7:52 ` Michael Shigorin
2007-03-18 16:54 ` [devel] python-modules-encodings Michael Shigorin
2007-03-18 20:11 ` Mikhail Gusarov
2007-03-18 15:52 ` Alexey I. Froloff
2007-03-18 18:12 ` Alexey Tourbin
2007-03-19 16:35 ` Alexey Morsov
2007-03-19 16:39 ` Alexey Tourbin
2007-03-19 17:05 ` Alexey Morsov
2007-03-15 9:43 ` [devel] [git update] packages/python: heads/master Ivan Fedorov
2007-03-15 10:55 ` Alexey Tourbin
2007-03-15 11:37 ` Ivan Fedorov
2007-03-15 12:11 ` Alexey Tourbin
2007-03-15 12:47 ` Ivan Fedorov
2007-03-15 12:57 ` Alexey I. Froloff
2007-03-15 13:19 ` Alexey Tourbin
2007-03-15 13:32 ` Ivan Fedorov
2007-03-15 13:19 ` Dmitry V. Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070319182404.GJ5965@solemn.turbinal \
--to=at@altlinux.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git