mquinson / po4a

Maintain the translations of your documentation with ease (PO for anything)
http://po4a.org/
GNU General Public License v2.0
121 stars 58 forks source link

Porting po4a to windows #370

Open mquinson opened 2 years ago

mquinson commented 2 years ago

Hello,

as a main maintainer of po4a, I'm a linux user. I would need help from the community to get po4a working on Windows. I just setup a build action on github to test the current status.

My understanding is that the most problematic part of po4a wrt portability is its test suite. It relies quite a bit on executing shell commands, which is obviously not a good idea if you target windows. I tried to reduce their amount, and I think that the main runner itself (TestHelper.pm) is more or less OK. I seem to understand that specific tests (the t/*.t files) are now the main source of system() calls that rely on the shell.

As I said, I'm by no mean a windows user myself (the last version of that OS that I used was Windows 98 :older_adult:), so I need help here. Please feel free to fork the project, play around, and comment back in this issue how we could further improve the portability. Of course, any working PR would be more than welcome :)

Poke @jowr who attempted such a fork a while ago.

Thanks all for your support. Remember that po4a is maintained by the community nowadays. I don't have the time and energy to do much more than reviewing and applying your patches ;)

Mt

benoitrolland commented 1 year ago

po4a works well under cygwin .

mquinson commented 1 year ago

Thanks for this precious feedback, @benoitrolland. Is there anything specific to know or to do when using po4a under cygwin? How did you install it?

silopolis commented 1 year ago

Of course an actual port would be great... But in the meantime, a dev container would certainly fit most of the bill.

benoitrolland commented 1 year ago

Thanks for this precious feedback, @benoitrolland. Is there anything specific to know or to do when using po4a under cygwin? How did you install it?

I used the github version (po4a version 0.69.) and as far as i remember, I had to install a tool after a strange error message was in fact meaning that a file was not found ...
The environment I am using is including:

export PERLLIB=/path/to/github/po4a/lib 
export PATH=$PATH:/path/to/github/po4a
benoitrolland commented 1 year ago

Thanks for this precious feedback, @benoitrolland. Is there anything specific to know or to do when using po4a under cygwin? How did you install it?

git clone ... cd po4a git checkout v0.69

I could rebuild po4a v0.69 from a fresh cygwin 3.4.6-1 installation using the following cygwin libraries:

perl 5.32.1-2 perl perl-Module* : perl-Module-Build 0.4232-1

The following commented-out libs were not explicitly required

perl-Module-Implementation 0.09-4

perl-Module-Install 1.19-3

perl-Module-Metadata 1.000037-3

perl-Module-Pluggable 5.2-4

perl-Module-Runtime 0.016-3

perl-Module-ScanDeps 1.31-1

perl-Module-Signature 1.31-1

perl-Pod-Parser 1.65.1 perl-SGMLSpm 1.1-2 perl-Unicode-LineBreak-2019.001-3 perl-gettext 1.07-4 perl-Text-WrapI18N 0.06-7 gettext-devel 0.21.1-2 gettext 0.21.1-2 libxslt 1.1.29-1 libxslt-devel 1.1.29-1

_At that point because of the following error I had to fuzzy search for the following libs that might not all be required. Convert blib/man/de/man1/po4a-display-man.1 (online docbook.xsl file). Can't exec "xsltproc": No such file or directory at Po4aBuilder.pm line 254. Undefined subroutine &PerlIO::F_UTF8 called at /usr/share/perl5/5.32/Pod/Man.pm line 799. ...propagated at Po4aBuilder.pm line 254.

perl-PerlIO-utf8_strict 0.010-1 perl-PerlIO-utf8_strict-debuginfo 0.010-1 docbook-xml45 4.5-1 docbook-xsl 1.77.1-1 docbook-xsl-ns 1.77.1-1 libxslt-debuginfo 1.1.29-1 perl-App-XML-DocBook-Builder 0.1100-1 perl-XML-LibXSLT 2.002001-1 perl-XML-LibXSLT-debuginfo 2.002001-1

Then following the official build instructions should work.

Freed-Wu commented 1 year ago

po4a can be gotten from https://packages.msys2.org/base/po4a for any windows users and it is good.