public inbox for [email protected]
help / color / mirror / Atom feedFrom: Japin Li <[email protected]>
To: [email protected] <[email protected]>
Subject: Could not run generate_unaccent_rules.py script when update unicode
Date: Tue, 26 Sep 2023 10:43:40 +0800
Message-ID: <MEYP282MB1669F86C0DC7B4DC48489CB0B6C3A@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM> (raw)
Hi, hackers
When I try to update unicode mapping tables using make update-unicode [1],
I encountered an error about following:
generate_unaccent_rules.py --unicode-data-file ../../src/common/unicode/UnicodeData.txt --latin-ascii-file Latin-ASCII.xml >unaccent.rules
/bin/sh: 1: generate_unaccent_rules.py: not found
make: *** [Makefile:33: unaccent.rules] Error 127
make: *** Deleting file 'unaccent.rules'
The generate_unaccent_rules.py is in contrib/unaccent and the Makefile:
# Allow running this even without --with-python
PYTHON ?= python
$(srcdir)/unaccent.rules: generate_unaccent_rules.py ../../src/common/unicode/UnicodeData.txt Latin-ASCII.xml
$(PYTHON) $< --unicode-data-file $(word 2,$^) --latin-ascii-file $(word 3,$^) >$@
It use python to run generate_unaccent_rules.py, However, the ?= operator in
Makefile only check variable is defined or not, but do not check variable is
empty. Since the PYTHON is defined in src/Makefile.global, so here PYTHON
get empty when without --with-ptyhon.
Here are some examples:
japin@coltd-devel:~$ cat Makefile
PYTHON =
PYTHON ?= python
test:
echo '$(PYTHON)'
japin@coltd-devel:~$ make
echo ''
japin@coltd-devel:~$ cat Makefile
PYTHON = python3
PYTHON ?= python
test:
echo '$(PYTHON)'
japin@coltd-devel:~$ make
echo 'python3'
python3
japin@coltd-devel:~$ cat Makefile
PYTHON =
ifeq ($(PYTHON),)
PYTHON = python
endif
test:
echo '$(PYTHON)'
japin@coltd-devel:~$ make
echo 'python'
python
japin@coltd-devel:~$ cat Makefile
PYTHON = python3
ifeq ($(PYTHON),)
PYTHON = python
endif
test:
echo '$(PYTHON)'
japin@coltd-devel:~$ make
echo 'python3'
python3
Here is a patch to fix this, any thoughts?
diff --git a/contrib/unaccent/Makefile b/contrib/unaccent/Makefile
index 652a3e774c..3ff49ba1e9 100644
--- a/contrib/unaccent/Makefile
+++ b/contrib/unaccent/Makefile
@@ -26,7 +26,9 @@ endif
update-unicode: $(srcdir)/unaccent.rules
# Allow running this even without --with-python
-PYTHON ?= python
+ifeq ($(PYTHON),)
+PYTHON = python
+endif
$(srcdir)/unaccent.rules: generate_unaccent_rules.py ../../src/common/unicode/UnicodeData.txt Latin-ASCII.xml
$(PYTHON) $< --unicode-data-file $(word 2,$^) --latin-ascii-file $(word 3,$^) >$@
[1] https://www.postgresql.org/message-id/MEYP282MB1669AC78EE8374B3DE797A09B6FCA%40MEYP282MB1669.AUSP282...
--
Regrads,
Japin Li
ChengDu WenWu Information Technology Co., Ltd.
view thread (2+ messages)
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected]
Subject: Re: Could not run generate_unaccent_rules.py script when update unicode
In-Reply-To: <MEYP282MB1669F86C0DC7B4DC48489CB0B6C3A@MEYP282MB1669.AUSP282.PROD.OUTLOOK.COM>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox