Opened 12 years ago

Closed 11 years ago

Last modified 11 years ago

#34805 closed update (fixed)

poedit: Update to 1.5.2

Reported by: mojca (Mojca Miklavec) Owned by: raimue (Rainer Müller)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: raimue (Rainer Müller), ruben+macports@…
Port: poedit

Description

I would like to request adding poedit-devel port. The reasons why poedit itself is not satisfactory for me:

  • requires wxWidgets and thus conflicts with, say, gnuplot +wxwidgets_devel
  • 1.4.6 messes up line breaks and keeps confusing version control

There are quite some Lion-specific fixes. On top of what's in Portfile, here are a few more variables from build.properties that might be worth fixing as well before configuring anything:

osx.xcoderoot=/Developer
poedit.osx.sdk=10.6
poedit.osx.deploy=10.5
poedit.osx.arch.native=i386
poedit.osx.sdk.path=${osx.xcoderoot}/SDKs/MacOSX${poedit.osx.sdk}.sdk
poedit.osx.cc=${osx.xcoderoot}/usr/bin/gcc
poedit.osx.cxx=${osx.xcoderoot}/usr/bin/g++
poedit.osx.cflags.sdk=-isysroot ${poedit.osx.sdk.path} -mmacosx-version-min=${poedit.osx.deploy}
poedit.osx.ldflags.sdk=${poedit.osx.cflags.sdk} -Wl,-syslibroot,${poedit.osx.sdk.path} -Wl,-macosx_version_min,${poedit.osx.deploy}
poedit.osx.cflags=-O2 -ggdb3 ${poedit.osx.cflags.sdk}
poedit.osx.ldflags=-ggdb3 ${poedit.osx.ldflags.sdk}

as well as some variables in build.xml. But I'm not sure which ones are actually used as I don't get i386 binary despite the quote above.

Attachments (3)

Portfile (3.2 KB) - added by mojca (Mojca Miklavec) 12 years ago.
Poedit 1.5 Portfile (development version)
patch-sparkle.diff (2.1 KB) - added by mojca (Mojca Miklavec) 12 years ago.
Sparkle-related patch for Poedit 1.5.2
poedit.Portfile (2.9 KB) - added by mojca (Mojca Miklavec) 12 years ago.
Portfile for Poedit 1.5.2

Download all attachments as: .zip

Change History (19)

Changed 12 years ago by mojca (Mojca Miklavec)

Attachment: Portfile added

Poedit 1.5 Portfile (development version)

comment:1 Changed 12 years ago by mf2k (Frank Schima)

Port: poedit-devel added; poedit removed
Version: 2.1.1

comment:3 Changed 12 years ago by raimue (Rainer Müller)

Replying to mojca.miklavec.lists@…:

  • requires wxWidgets and thus conflicts with, say, gnuplot +wxwidgets_devel

I already wanted to add a +wxwidgets_devel variant to poedit, or even just let the dependency be satisfied by either wxWidgets or wxWidgets-devel. However, poedit @1.4.6.1_0 does not build against wxWidgets-devel @2.9.3 (gexecute.cpp:40:10: fatal error: 'wx/mac/corefoundation/cfstring.h' file not found).

Some comments on the submitted Portfile:

  • Renaming to Poedit-devel.app is a good idea, but cannot be combined with wxWdigets-devel as default at the same time as that would defeat the purpose.
  • The variant should be named +wxwidgets_devel.
  • There should be no checksums when fetching from git.
  • Why llvm-gcc-4.2? What is the problem with clang? The Portfile should have a comment with an explanation, so it can be removed when it is fixed later.

comment:4 in reply to:  3 ; Changed 12 years ago by mojca (Mojca Miklavec)

Replying to raimue@…:

I already wanted to add a +wxwidgets_devel variant to poedit, or even just let the dependency be satisfied by either wxWidgets or wxWidgets-devel. However, poedit @1.4.6.1_0 does not build against wxWidgets-devel @2.9.3 (gexecute.cpp:40:10: fatal error: 'wx/mac/corefoundation/cfstring.h' file not found).

That one is easy. See https://github.com/vslavik/poedit/commit/08fcc8bf4c93f1ca0628663b76609166a62ab7f4. But I believe there are other problems as well and it might be easier to just take the latest version than to backport all patches from latest version to 1.4.6.

Some comments on the submitted Portfile:

  • Renaming to Poedit-devel.app is a good idea, but cannot be combined with wxWdigets-devel as default at the same time as that would defeat the purpose.

I don't understand.

  • The variant should be named +wxwidgets_devel.

OK.

  • There should be no checksums when fetching from git.

How do you do it without checksum to prevent complaints during installation?

  • Why llvm-gcc-4.2? What is the problem with clang? The Portfile should have a comment with an explanation, so it can be removed when it is fixed later.

wxWidgets 2.9.3 (and consequently any given port depending on them) cannot be compiled with clang. This has been solved in 2.9.4, but that version hasn't been released yet. I have a version with patches ready in case that it will take another few months for them to release 2.9.4 (but it is not compatible with Tiger any more).

Mojca

comment:5 in reply to:  4 ; Changed 12 years ago by raimue (Rainer Müller)

Replying to mojca.miklavec.lists@…:

That one is easy. See https://github.com/vslavik/poedit/commit/08fcc8bf4c93f1ca0628663b76609166a62ab7f4. But I believe there are other problems as well and it might be easier to just take the latest version than to backport all patches from latest version to 1.4.6.

Thanks for the link! However, I ran into further problems as you assumed correctly. So this is not enough yet. I will probably look into this later again, but don't have the time at the moment.

  • Renaming to Poedit-devel.app is a good idea, but cannot be combined with wxWdigets-devel as default at the same time as that would defeat the purpose.

I don't understand.

I see two options:

a) Renaming the provided application bundle to Poedit-devel.app removes the conflict with poedit.
b) Making wxWidgets-devel the default adds a conflict with poedit (which requires wxWidgets).

When implementing option b), option a) is not necessary anymore as poedit and poedit-devel would conflict anyway because of the dependency on wxWidgets and wxWidgets-devel, respectively.

How do you do it without checksum to prevent complaints during installation?

The key is using fetch.type git. However, the github port group should already take care of that, just remove the checksums line.

wxWidgets 2.9.3 (and consequently any given port depending on them) cannot be compiled with clang.

Does the problem only apply to wxWidgets compilation or is the error in the provided header files? Why is that a problem for dependents?

This has been solved in 2.9.4, but that version hasn't been released yet. I have a version with patches ready in case that it will take another few months for them to release 2.9.4 (but it is not compatible with Tiger any more).

Tiger is a legacy platform and if upstream software drops support for it, we do not have obligations to support it any longer.

comment:6 in reply to:  5 Changed 12 years ago by mojca (Mojca Miklavec)

Replying to raimue@…:

I see two options:

a) Renaming the provided application bundle to Poedit-devel.app removes the conflict with poedit.
b) Making wxWidgets-devel the default adds a conflict with poedit (which requires wxWidgets).

When implementing option b), option a) is not necessary anymore as poedit and poedit-devel would conflict anyway because of the dependency on wxWidgets and wxWidgets-devel, respectively.

Thank you, I didn't think of that. You are right of course (but then again, user could be free to use -wxWidgets_devel to use wxWidgets and still get a nonconflicting port).

How do you do it without checksum to prevent complaints during installation?

The key is using fetch.type git. However, the github port group should already take care of that, just remove the checksums line.

Thanks.

wxWidgets 2.9.3 (and consequently any given port depending on them) cannot be compiled with clang.

Does the problem only apply to wxWidgets compilation or is the error in the provided header files? Why is that a problem for dependents?

I don't know and, honestly, I don't care. As soon as 2.9.4 is out this won't be an issue any more anyway. (See http://trac.wxwidgets.org/ticket/13565 for the relevant ticket).

I figured out that I can build wxWidgets-devel (2.9.3) with the following patches:

and then gcc is not needed any more (neither for wxWidgets nor for dependencies). But I'm not sure what the release plan for 2.9.4 is. If they plan to postpone it for much longer, it might make sense to apply patches to 2.9.3. If they plan to release it soon, it might make more sense to simply wait.

Mojca

comment:7 Changed 12 years ago by ruben+macports@…

Cc: ruben+macports@… added

Cc Me!

comment:7 Changed 12 years ago by mojca (Mojca Miklavec)

Three days ago Poedit 1.5.2 has been released, which actually makes this ticket "update request" rather than "new port request". Most probably one only needs to replace SHA sum with version tag (and possibly remove -devel flag) and the same Portfile should still work.

comment:8 Changed 12 years ago by mojca (Mojca Miklavec)

It seems that the following problem is present since recently:

osx_helpers.m:36:9: fatal error: 'Sparkle/Sparkle.h' file not found
#import <Sparkle/Sparkle.h>

despite the --without-sparkle flag. I'll try to get it fixed upstream (or investigate otherwise).

comment:9 Changed 12 years ago by mojca (Mojca Miklavec)

Short of one non-fatal error:

/opt/local/bin/wxrc-2.9 -v -c -o compiled_xrc.cpp ./resources/menus.xrc ./resources/prefs.xrc ./resources/progress.xrc ./resources/properties.xrc ./resources/summary.xrc ./resources/toolbar.xrc ./resources/find.xrc ./resources/comment.xrc ./resources/manager.xrc ./resources/tm_update.xrc
Error: File '/opt/local/var/macports/build/_path_devel_poedit/poedit/work/poedit-1.5.2/src/compiled_xrc.cpp' couldn't be removed (error 2: No such file or directory)

I basically got it working after applying a trivial Sparkle-related patch.

However, I'm left with a question: where can I find ${prefix}/share/locale/<lang>/LC_MESSAGES/wxstd.mo in wxWidgets-devel?

Changed 12 years ago by mojca (Mojca Miklavec)

Attachment: patch-sparkle.diff added

Sparkle-related patch for Poedit 1.5.2

Changed 12 years ago by mojca (Mojca Miklavec)

Attachment: poedit.Portfile added

Portfile for Poedit 1.5.2

comment:10 Changed 12 years ago by raimue (Rainer Müller)

Owner: changed from macports-tickets@… to raimue@…
Port: poedit added; poedit-devel removed
Status: newassigned
Summary: poedit-develpoedit: Update to 1.5.2
Type: requestupdate

comment:11 Changed 12 years ago by mojca (Mojca Miklavec)

If the update has been waiting until now, I would suggest to wait for a couple more days for the author to publish some upstream patches to make the compilation work out-of-the-box on MacPorts. He said that the he already patched the sources, he only didn't make them public yet. This would probably be better than my ad-hoc patches for disabling Sparkle.

comment:12 Changed 12 years ago by raimue (Rainer Müller)

I am currently struggling with getting the dependencies of wxWidgets to build on my new machine with Mountain Lion (specifically, #35644). As I always want to test the software before committing, this will probably take a few days longer. If the new version of poedit removes the need for additional patches, that's another good reason to wait a little longer.

comment:13 Changed 12 years ago by mojca (Mojca Miklavec)

Patcehs are online now. It's now up to maintainer whether to fetch a specific commit or to include patches oven 1.5.2 separately. New commits also include a lot of translations that were missing in 1.5.2.

(There is still one non-fatal error and a couple of warnings though. Among other issues it would be nice to have wxWidgets' translations available.)

comment:14 Changed 12 years ago by raimue (Rainer Müller)

Sorry, I still couldn't come back to this since on my main machine libmikmod still does not build (#35644), which is in the recursive dependency chain of wxWidgets.

comment:15 Changed 11 years ago by raimue (Rainer Müller)

Resolution: fixed
Status: assignedclosed

Finally committed an update to 1.5.4 in r102159.

Mojca, thank you for your work with the patches and communicating with upstream for this!

comment:16 Changed 11 years ago by mojca (Mojca Miklavec)

Thank you.

Note: See TracTickets for help on using tickets.