Hi Colin,

On 11/19/11 10:00 PM, Colin Ellis wrote:
https://bitbucket.org/cellis_oidev/oi-build/changeset/d7b944645d37

Great stuff! You're going to hate me though... I have more work for you! :-D If you don't have time or would prefer me to do it just say and I'll do it.

In the Makefile, you've put multiple flags on the same configure line. Would you mind splitting them out so it's one configuration option per CONFIGURE_OPTION ? I tend to group into clusters, so you'd have:

CONFIGURE_OPTIONS       += --enable-shared
CONFIGURE_OPTIONS       += --disable-static
CONFIGURE_OPTIONS       += --enable-header-install

CONFIGURE_OPTIONS       += --sysconfdir=$(ETCDIR)
CONFIGURE_OPTIONS       += --localstatedir=/var
CONFIGURE_OPTIONS       += --with-rundir=/var/run/$(COMPONENT_NAME)

CONFIGURE_OPTIONS       += --with-solr
CONFIGURE_OPTIONS       += --with-gssapi
CONFIGURE_OPTIONS       += --with-sqlite
CONFIGURE_OPTIONS       += --with-mysql
CONFIGURE_OPTIONS       += --with-pgsql
CONFIGURE_OPTIONS       += --with-ldap=plugin
CONFIGURE_OPTIONS       += --with-sql=plugin

I was surprised to see /var hardcoded, thinking it would be in shared-macros.mk, but it appears it's missing! Do any other oi-builders think we should add a VARDIR= macro to shared-macros.mk?

You should change /usr/lib to $(USRLIBDIR) and /usr to $(USRDIR) - this includes inside the LDFLAGS definitions.

I'd also recommend refactoring the versioning, to:

COMPONENT_MAJOR_VER=      2.0
COMPONENT_MINOR_VER=      15
COMPONENT_VERSION=      $(COMPONENT_MAJOR_VER).$(COMPONENT_MINOR_VER)

So that you can have:

COMPONENT_ARCHIVE_URL= http://www.dovecot.org/releases/$(COMPONENT_MAJOR_VER)/$(COMPONENT_ARCHIVE)

(Perhaps I'm being too anal!)

For the SMF service, I'd recommend ditching the start method script and do the start/stop stuff in the manifest itself. I have no idea why so many services have one of these when they're often completely unnecessary.

The "if [ -f /etc/dovecot/dovecot.conf ]" check can be turned into an SMF dependency, a la:

                <dependency
                    name='configuration-file'
                    grouping='require_all'
                    restart_on='refresh'
                    type='path'>
                        <service_fmri

value='file://localhost/etc/dovecot/dovecot.conf' />
                </dependency>

(I think that's correct - I'm not 100% sure on the restart_on)

For the start method, you can just directly have "/usr/sbin/dovecot", for the refresh method you can use the lovely SMF macro, ":kill -HUP", and for stop you can use ":kill"

I'd also recommend changing "enabled='true'" to "enabled='false'" so it doesn't get automatically started when dovecot is installed.

You'll also want to add the Illumos CDDL header to the manifest file, along with your own copyright line. You can ditch the "ident" GPG line.

You also committed the removal of components/gcc46/gcc.p5m in that commit which you probably didn't want to do! Not an issue though we can work around it when we commit this to the main repo.

Last nitpick is the .la files are still there - I'd recommend dropping these by adding the following transform near the top:

<transform file path=.+/lib/.+\.la -> drop>

(This is better than removing them manually - it makes maintaining the .p5m file easier as someone else can do "make sample-manifest" and diff them).

Apart from these cosmetic changes, it's looking good! Great work Colin and thanks for your hard work :-) Looking forward to doing the full commit.

Cheers,

Alasdair


On Tue, Nov 15, 2011 at 12:43 AM, Josef 'Jeff' Sipek
<jef...@josefsipek.net <mailto:jef...@josefsipek.net>> wrote:

    On Sat, Nov 12, 2011 at 11:17:10PM +0000, Colin Ellis wrote:
     > bitbucket here:
     > https://bitbucket.org/cellis_oidev/oi-build/changeset/d7c2addf18b7

    Awesome, this one was on my todo list.  Less work for me :)

    1) no need to set --prefix & --sbindir yourself

    2) $(ETCDIR) instead of /etc

    3) did the `gmake publish` not complain about the missing
       info.classification?

    4) Do we really need to ship all those .a and .la files?  Solaris likes
       shared libs a lot - and handles them pretty well too.

    5) Do the files in usr/share/doc have the doc facet?  (They should;
    you can
       check the published manifest.)

    6) Is there an SMF manifest?

    Thanks!

    Jeff.

    --
    All parts should go together without forcing.  You must remember
    that the
    parts you are reassembling were disassembled by you.  Therefore, if you
    can’t get them together again, there must be a reason.  By all
    means, do not
    use a hammer.
                    — IBM Manual, 1925

    _______________________________________________
    oi-dev mailing list
    oi-dev@openindiana.org <mailto:oi-dev@openindiana.org>
    http://openindiana.org/mailman/listinfo/oi-dev




_______________________________________________
oi-dev mailing list
oi-dev@openindiana.org
http://openindiana.org/mailman/listinfo/oi-dev


_______________________________________________
oi-dev mailing list
oi-dev@openindiana.org
http://openindiana.org/mailman/listinfo/oi-dev

Reply via email to