Page MenuHome

Problems when running 'make update_po' in BASH shell on MacOS
Confirmed, NormalPublic

Description

System Information
Operating system: Darwin-19.3.0-x86_64-i386-64bit 64 Bits

Blender Version
Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-12-04 11:32, hash: rBf1aa4d18d49d

Short description of error

Ran the "make update_po" in 'blender_docs' directory on local machine and encountered several problems:

these errors resides in the file

blender_docs/tools_maintenance/update_po.sh

  1. The error in -printf '%h\n. This option in 'find' command is NOT available on Darwin. There are two occurrences in this file.
  2. export LANG="en_US.UTF8 should be export LANG="en_US.UTF-8", ie. with a hyphen between F-8. The locale -a will list out list of all available language codes.
  3. The block of code:
for SVNDIR in "$SVN_DIRS_ALL"; do
   svn cleanup "$SVNDIR"
   svn up "$SVNDIR"
 done
 unset SVNDIR

is causing the error message:

svn: Skipping argument: E200025: 'locale//vi/.svn' ends in a reserved name

Note there are two '//' in the path. This is caused by the extra forward slash in the 'find locale/..' Remove the slash so the command is only 'find locale ...' resulted to this line:

svn: Skipping argument: E200025: 'locale/vi/.svn' ends in a reserved name

Commented the above block out (svn cleanup and svn up) and the error message is GONE. If you go to the locale/<lang> and do the svn up . manually, there are no errors encountered.

Last, and the most severed is the creation of locale/locale/<lang_code> directory and files. This is wrong. (locale) is repeated twice.

Recreating problem

Run:

svn checkout https://svn.blender.org/svnroot/bf-manual/trunk/blender_docs

to get the documentation code down the local machine:

run:

cd blender_docs
sudo pip3 install -r requirements.txt

then install one language, say vi:

svn checkout https://svn.blender.org/svnroot/bf-manual-translations/trunk/blender_docs/locale/vi locale/vi

Now run the command:

make update_po

Note: The code appeared running OK on Linux Mint, about 1-2 months ago. Presently I do not have access to a Linux machine in order to compare results.

The funny thing is if you just run this from the command line, assuming the environment variable BLENDER_MAN_EN is pointing to your blender_docs directory:

cd $BLENDER_MAN_EN; rm -fr build/locale; make gettext; sphinx-intl --config=manual/conf.py update --pot-dir=build/locale --language="vi"; python3 tools_rst/rst_check_locale.py

and there are no errors

Event Timeline

Hi! please use code formatting to separate your comments and commands/output. use three backticks ` to start a code block, three to end it.

find is a standard bash command.

I was able to run just fine on linux, I do not have a mac to test but bash should work identically to linux.

Aaron Carlisle (Blendify) changed the task status from Needs Triage to Needs Information from User.Feb 26 2020, 10:26 PM

find is a standard bash command.

I was able to run just fine on Linux, I do not have a mac to test but bash should work identically to Linux.

Please verify your system or $path is not corrupt.

Aaron Carlisle (Blendify) closed this task as Resolved.Fri, Mar 6, 6:53 PM
Aaron Carlisle (Blendify) claimed this task.

No reply.

Sorry for coming back late. I think you'll need to obtain an access to Darwin, somehow, probably from developers who manages the build for MacOS. I ran the test using 'BASH' (did not change to Zsh for fearing the compatibility issues). I've recently updated the SVN source for $BLENDER_MAN_EN (blender_docs) and by mistake reran the

make update_po

again and the mistake is repeated. Please try to obtain a mac machine and try it out first before closing the LOG. I bet there are someone out there using MACOS to manage and build the translation from, not just me alone.

Ankit (ankitm) reopened this task as Needs Triage.Tue, Mar 10, 9:47 AM

@Ankit (ankitm) I am unable to test, maybe you can triage this and comment on what's going on from the mac side?

Will do. Albeit by this time tomorrow

Ankit (ankitm) added a comment.EditedMon, Mar 30, 10:40 AM

I did the steps as listed out here, (except installing requirements using conda (I'm not okay with sudo and pip))

make update_po
./tools_maintenance/update_po.sh
find: -printf: unknown primary or operator
  Error(1) on line 44, in command:
  SVN_DIRS_ALL="$(find locale/ -name '.svn' -printf '%h\n')"
make: [update_po] Error 1 (ignored)
Ankit (ankitm) changed the task status from Needs Triage to Confirmed.EditedMon, Mar 30, 10:42 AM