Nils,

Here are a few more comments ...

1. usr/src/cmd/postgres/postgresql-8.3/METADATA
    Your need to add the following lines ..
     URL:            <web link to source site>
     SUPPORT:        ???
     BUGTRAQ:        solaris/utility/???

2. usr/src/cmd/postgres/postgresql-8.3/Makefile.sfw
    Typo (out -> our) ...
    41 # out package name is postgres

    Lines 303 + 304, combines these into a single rm line.

3. usr/src/cmd/postgres/postgresql-8.3/install-sfw
     & usr/src/cmd/postgres/postgresql-8.3/install-sfw-64
    The directories created in here should be in the
    Targetdirs file, then they don't need creating here.

4. usr/src/cmd/postgres/postgresql-8.3/libpqxx/Makefile.sfw
    Lines 161 + 162, combines these into a single rm line.

5. usr/src/cmd/postgres/postgresql-8.3/libpqxx/Makefile.sfw
    Do you need the "| tee make.out" bits?

6. usr/src/pkgdefs/SUNWpostgr-83-client-root/copyright
    Is this the correct content?

7. usr/src/pkgdefs/SUNWpostgr-83-client-root/depend
    This looks like the default depend file - if you have no
    other dependencies then delete this file and add 'depend'
    to the DATAFILES= line in
    SUNWpostgr-83-client-root/Makefile.

    If you keep it you should move the 'Copyright' lines to
    after the 'CDDL HEADER END' header.

8. usr/src/pkgdefs/SUNWpostgr-83-client-root/Makefile
    Are these 'i.rbac r.rbac' required on the DATAFILES= line?

Paul



Nils Goroll wrote:
> Hi Paul, Mayuresh and all,
> 
> what started as a little change to fix a specific requirement has now 
> evolved into a general overhaul of the SFW postgres Make- and install 
> files.
> 
> I did this because Paul suggested to use a METADATA file, and looking at 
> other Makefiles in the sfw consolidation, I realized that the postgres 
> build environment would profit from a general overhaul to improve 
> clarity and to reduce the amount of duplicate information.
> 
> The webrev is at 
> http://cr.opensolaris.org/~nigoroll/postgres_overhaul_and_defect3298_missing_pgxs_files-rd3/index.html
>  
> 
> 
> 
> I suggest to do the following:
> 
> * I will comment on all changes I made below, please let me know what 
> you think and review them.
> 
> * If necessary, additional bugs could be opened for the various changes 
> (e.g. "postgres makefiles need overhaul" or "64bit bin and lib should be 
> ${ARCH64}")
> 
> * So far I have neither tested the changes on sparcv9, nor have I built 
> packages and installed them (there should be an easy way to build 
> packages which I don't know - how?). Would anyone help with these?
> 
> * After we have agreed on what should be integrated and after changes 
> due to reviews have been made, we should have a final review phase.
> 
> I will first reply to Pauls and Mayureshs comments and then give a 
> general overview of all changes.
> 
> Paul Cunningham wrote:
> 
>  > Normally the developer would checkin their changes into their local ws
>  > before generating the webrev - thus they get changed. But I'm not sure
>  > how you are working outside the SWAN so you may not be able to do that.
> 
> Sun internal teamware repositories are not accessible from outside SWAN 
> and I don't see any sense in using another SCM just for myself, so I use 
> zfs snapshots as a rudimentary replacement for an SCM.
> 
> #ident tags will get updated when a sponsor checks in the changes, so I 
> don't understand why I should change them just for the webrev.
> 
>  >   Roland Mainz wrote:
>  >     > - use "env - ..." and not "env ..." in the Makefiles
>  >     > to make sure "configure" & "make" only see the env
>  >     > variables they should really get (and not pick-up
>  >     > any random env variable)
> 
> done
> 
>  >     > - use either $(SHELL) or /usr/bin/bash for "configure"
>  >     > calls (so we know which one is used and "configure"
>  >     > doesn't pick one itself)
> 
> done
> 
>  >     > Use the method define in Makefile.master
>  >     > since you have a standard METADATA file.
> 
> done, see below for more. And I still think we should have Metadata 
> files in Makefile format.
> 
> Mayuresh Nirhali wrote:
> 
>> 1. SFW consolidation also includes version 8.2 of postgres and the bug 
>> 3298 also applies to that version.
>> I think it makes sense to fix 8.2 as well with the fix for this bug. 
>> Let me know what you think.
> 
> Absolutely. I would very much like to get this done and integrated for 
> 8.3 fist and would then implement the same or similar changes for 8.2 as 
> well. At this point, maintaining two sets of almost identical changes 
> would just mean more work.
> 
>> 2. I see following files in the 32 bit pgxs directory, please check if 
>> they should be present in 64 bit directories as well.
>> d none usr/postgres/8.3/lib/pgxs/src/test 755 root bin
>> d none usr/postgres/8.3/lib/pgxs/src/test/regress 755 root bin
>> f none usr/postgres/8.3/lib/pgxs/src/test/regress/pg_regress 555 root bin
> 
> done
> 
>> 3. Another very minor comment, you should include following line in 
>> both platform specific proto files.
>> d none usr/postgres/8.3/lib/amd64/pgxs 755 root bin
> 
> oops, done
> 
> Comments on the other changes / overhaul:
> 
> === SYSCONFDIR ===
> 
>   (diff from Makefile.global)
> 
>   -sysconfdir := /usr/postgres/8.3/etc
>   +sysconfdir := /etc/pgsql/8.3
> 
> I don't think any config directory should be under /usr (will break with 
> diskless clients for instance, see filesystem(5)), so I changed the path 
> and introduced the new package SUNWpostgr-83-client-root, containing 
> only the sample pgsql rc-file.
> 
> I could come up with arguments for calling the directory both 
> /etc/postgres and /etc/pgsql. pgsql is what postgres.org calls it, 
> postgres is the name of the package. IMHO, we should stick to the names 
> the original authors have chosen, so I think pgsql is better, but please 
> let me know what you think.
> 
> === CFLAGS ===
> 
> (diff from Makefile.global)
> 
>  CC = /opt/SunStudioExpress/bin/cc -Xa
>  GCC =
> -CFLAGS = -xc99=none -xCC
> +CFLAGS = -xO3 -xarch=386 -xchip=pentium -xspace -Xa  -xildoff -xc99=all 
> -xc99=none -xCC
> 
> In the oritinal Makefile.sfw, the default cflags were used everywhere
> (also for the 64bit version), BUT for the target $(VER)/config.status
> 
> Thus it does look like an error that the (sensible) default CFLAGS are
> not used, but I might not be aware of a good reason for choosing the
> minimal CFLAGS.
> 
> === bindir, libdir ===
> 
> Originally, bindir and libdir were chosen as .../64. My understanding is 
> that those directories should be ../$(MACH64), either amd64 or sparcv9, 
> which is what I've made them to be now. These directories existed 
> already and .../64 was only a symlink, so the change is more making the 
> build environment more consistent with the path name scheme.
> 
> === Comments on changed files ===
> 
> * Makefile.master
>   - added some path definitions which seemed to be missing
>   - cleaned up CFGSFW definitions
>   - added mussing definitions to ROOTSFW* (plus one fix)
> 
> * usr/src/cmd/postgres/postgresql-8.3/Makefile.sfw
>   - general cleanup, use macros for all environment settings and 
> configure args
> 
> * usr/src/cmd/postgres/postgresql-8.3/install-sfw
> * usr/src/cmd/postgres/postgresql-8.3/install-sfw-64
> * usr/src/cmd/postgres/postgresql-8.3/libpqxx/install-sfw
> 
>   IMHO, all of the install scripts should really fail upon error, so I 
> have changed their invocation to $(SH) -e. Made script ignore all 
> uncritical errors. Fixed bogus error output for recreating symlinks by 
> using resymlink function
> 
> * usr/src/cmd/postgres/postgresql-8.3/libpqxx/Makefile.sfw
> 
>   - general cleanup
> 

-- 
----------------------------------------------------------------------
Paul Cunningham
Software Engineer
Tadpole Computer Products

Reply via email to