Opened 13 years ago

Closed 11 years ago

#29434 closed submission (fixed)

gtk-quartz-engine port

Reported by: tael67@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc:
Port: gtk-quartz-engine

Description

I have created a port for gtk-quartz-engine (a native OSX theme for GTK). This is my first port so it may not be perfect.

Attachments (5)

Portfile (1.4 KB) - added by tael67@… 13 years ago.
Portfile.2 (1.2 KB) - added by ryandesign (Ryan Carsten Schmidt) 13 years ago.
Ryan's revised portfile proposal
Portfile.3 (1.6 KB) - added by tael67@… 13 years ago.
Updated portfile
patch-autogen.sh.diff (1.1 KB) - added by tael67@… 13 years ago.
patch-autogen.sh.2.diff (1.1 KB) - added by rudloff@… 12 years ago.

Download all attachments as: .zip

Change History (13)

Changed 13 years ago by tael67@…

Attachment: Portfile added

comment:1 Changed 13 years ago by tael67@…

Cc: tael67@… added

Cc Me!

comment:2 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: tael67@… removed
Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

Thanks, I'll commit this and provide some feedback.

FYI, you don't need to be in Cc when you're the reporter.

comment:3 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

I thought I was going to commit it, but I cannot get it to build; I get this error:

Undefined symbols:
  "_gdk_quartz_drawable_get_context", referenced from:
      _get_context in quartz-style.o
      _quartz_draw_button in quartz-draw.o
  "_gdk_quartz_drawable_release_context", referenced from:
      _release_context in quartz-style.o
      _quartz_draw_button in quartz-draw.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [libquartz.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I thought this might've been because I was building x86_64 (I'm on Snow Leopard) and the port description mentioned Carbon and 32-bit, but adding the line "supported_archs i386 ppc" to force a 32-bit build did not change the build error.

I'm attaching a revised portfile with these changes:

  • fixed whitespace (tabs to spaces, removed trailing whitespace -- see "port lint --nitpick")
  • added blank lines to increase readability
  • tweaked descriptions
  • removed md5 checksums (we're gradually removing md5 from macports)
  • used a local patchfile instead of downloading it from some web site, thus no longer need to list its checksums or patchsites
  • removed post-install block which copied a template gtkrc file into the user's home directory (ports should not touch the home directory or usually anything outside of ${workpath} or ${destroot}). Instead the portfile should copy the template gtkrc file somewhere into destroot where the user can get to it later (if the makefile doesn't already do that), then use the notes feature to inform the user they should copy this file (I've included an example of this in the new portfile, though I haven't put the path to the template gtkrc file since I don't know where if anywhere it gets installed)

Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: Portfile.2 added

Ryan's revised portfile proposal

Changed 13 years ago by tael67@…

Attachment: Portfile.3 added

Updated portfile

Changed 13 years ago by tael67@…

Attachment: patch-autogen.sh.diff added

comment:4 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

I just noticed that you attached revised files. Please always add a comment when you attach a file, because Trac sends email notifications for comments, but not for file attachments.

comment:5 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)

Previously, your autogen.sh patch was removing this line:

srcdir/configure --enable-maintainer-mode "$@"

This seemed like the correct thing to do. Your new patch no longer removes this line. Why this change? There's no need for autogen.sh to call configure, since MacPorts will do so. And there's no need to enable maintainer mode. configure --help says this option "enable[s] make rules and dependencies not useful (and sometimes confusing) to the casual installer" so that doesn't sound like something we want.

comment:6 Changed 13 years ago by rudloff@…

Oops, that's an oversight.

Changed 12 years ago by rudloff@…

Attachment: patch-autogen.sh.2.diff added

comment:7 Changed 12 years ago by rudloff@…

Here is the correct patch.

comment:8 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

Sorry I forgot about this ticket. After some more fixes, it builds for me on Mountain Lion, so I committed it in r99388.

  • I had to update the autogen.sh patch for automake 1.12.
  • I had to add a patch for Makefile.am to disable -Werror since clang had a (very valid) complaint about a variable being used uninitialized.
  • I changed the checksums from sha1/rmd160 to rmd160/sha256.
  • I made the port use the github portgroup.
  • I added dependencies on libpng and libffi since when those get updated, which happens not infrequently, all ports using them need to be rebuilt, and listing the dependencies explicitly (despite the fact that they're already listed indirectly via gtk2) lets us find these ports easily.
  • I reworded the pre-configure error message slightly.
Note: See TracTickets for help on using tickets.