Bug 192228 - New port: databases/bucardo
Summary: New port: databases/bucardo
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-29 00:37 UTC by Michelle Sullivan
Modified: 2014-08-01 07:06 UTC (History)
3 users (show)

See Also:


Attachments
SHAR file for bucardo first port. (2.18 KB, application/x-shar)
2014-07-29 00:37 UTC, Michelle Sullivan
no flags Details
New Version of port. (2.89 KB, application/x-shar)
2014-07-29 23:02 UTC, Michelle Sullivan
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michelle Sullivan 2014-07-29 00:37:35 UTC
Created attachment 145109 [details]
SHAR file for bucardo first port.

New Port for Bucardo 5.1.1
Maintainer: michelle@sorbs.net (myself)
portlint options before submission: -cvtAC (1 warning, no backup dist location)

(Think I got it complete this time! ;-) )

I can create a mirror of the distfiles if a backup is required.
Comment 1 Vanilla I. Shu freebsd_committer freebsd_triage 2014-07-29 06:57:54 UTC
===>   Generating temporary packing list
Manifying blib/man1/bucardo.1pm
Installing /wrkdirs/usr/ports/databases/bucardo/work/stage/usr/local/lib/perl5/site_perl/5.16/Bucardo.pm
I got following errors, bucardo.schema not stage-ready.

---
Installing /wrkdirs/usr/ports/databases/bucardo/work/stage/usr/local/man/man1/bucardo.1pm
Installing /wrkdirs/usr/ports/databases/bucardo/work/stage/usr/local/lib/perl5/5.16/man/man3/Bucardo.3
Installing /wrkdirs/usr/ports/databases/bucardo/work/stage/usr/local/bin/bucardo
Installing /usr/local/share/bucardo/bucardo.schema
====> Compressing man pages (compress-man)
===========================================================================
====> Running Q/A tests (stage-qa)
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for directories owned by MTREEs
===> Checking for directories handled by dependencies
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
====>> Checking for staging violations... done
====>> Error: Filesystem touched during stage (files must install to ${STAGEDIR}):
extra: usr/local/share/bucardo
build of /usr/ports/databases/bucardo ended at Tue Jul 29 14:57:02 CST 2014
build time: 00:00:13
====>> Error: Build failed in phase: stage_fs_violation
====>> Cleaning up
====>> Umounting file systems
Comment 2 Michelle Sullivan 2014-07-29 15:06:30 UTC
Hmmm - wonder why it didn't show up on my system... I got no errors. :/  (10.x by any chance? - I tested on 9.2 and haven't had time to put it in my build servers)
Comment 3 Vanilla I. Shu freebsd_committer freebsd_triage 2014-07-29 15:11:23 UTC
How about testing via 'poudriere testport' ?

and yes, my box run with 10.x.
Comment 4 Michelle Sullivan 2014-07-29 15:29:40 UTC
I tested on 9.2 .. 

My process..  write, run the test commands with DEVELOPER=yes as per the Porters handbook.

Portlint it.

Fix, retry from the start.

Repeat on prod (ish) 9.2-amd64 box.

if I have time or think I need to, put it into my build environment which runs poudriere on 8.4, 9.0, 9.1, 9.2, 9.3 and 10.0 for both pkg and pkg_tools and both i368 and amd64.

shar and submit.

I skipped my build server this time because I thought everything was there this time ;-) (and taking out custom ports out of the build servers is not as easy as adding.) 

Michelle
Comment 5 John Marino freebsd_committer freebsd_triage 2014-07-29 16:32:52 UTC
Michelle, do those test commands include "make check-plist" and "make stage-qa" ?

The DEVELOPER=yes is fading from site.
Poudriere testport (and poudriere bulk -t) run these stage-qa checks and that's what generally fails, even for ports that passed on Redports.

Vanilla is right in saying poudriere is the gold standard, but if you don't use it, you should at least use "make check-plist" 

John
Comment 6 John Marino freebsd_committer freebsd_triage 2014-07-29 16:35:00 UTC
hmm, I just looked at the log.

In this case, my advice is moot.  Only poudriere can detect that error.

The moral of the story is: Confirm with poudriere before submitting a PR.

:)
Comment 7 Michelle Sullivan 2014-07-29 16:45:23 UTC
http://www.freebsd.org/doc/en/books/porters-handbook/porting-testing.html

then

http://www.freebsd.org/doc/en/books/porters-handbook/porting-portlint.html

This is what I do as a final before creating the shar:

$ make check-orphans
===> Fetching all distfiles required by bucardo-5.1.1 for building
===>  Extracting for bucardo-5.1.1
=> SHA256 Checksum OK for Bucardo-5.1.1.tar.gz.
===>  Patching for bucardo-5.1.1
===>   bucardo-5.1.1 depends on package: p5-DBD-Pg>=1.49 - found
===>   bucardo-5.1.1 depends on package: p5-DBI>=1.490 - found
===>   bucardo-5.1.1 depends on package: p5-DBIx-Safe>=1.2.5 - found
===>   bucardo-5.1.1 depends on file: /usr/local/bin/perl5.16.3 - found
===>  Configuring for bucardo-5.1.1
Checking if your kit is complete...
Looks good
Warning: prerequisite boolean 0 not found.
Generating a Unix-style Makefile
Writing Makefile for Bucardo
Writing MYMETA.yml and MYMETA.json
===>  Building for bucardo-5.1.1
cp bucardo blib/script/bucardo
/usr/local/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/bucardo
cp bucardo.schema blib/share/bucardo.schema
cp Bucardo.pm blib/lib/Bucardo.pm
Manifying blib/man1/bucardo.1pm
Manifying blib/man3/Bucardo.3
===>  Staging for bucardo-5.1.1
===>   bucardo-5.1.1 depends on package: p5-DBD-Pg>=1.49 - found
===>   bucardo-5.1.1 depends on package: p5-DBI>=1.490 - found
===>   bucardo-5.1.1 depends on package: p5-DBIx-Safe>=1.2.5 - found
===>   bucardo-5.1.1 depends on file: /usr/local/bin/perl5.16.3 - found
===>   Generating temporary packing list
Manifying blib/man1/bucardo.1pm
Manifying blib/man3/Bucardo.3
Installing /usr/ports/databases/bucardo/work/stage/usr/local/lib/perl5/site_perl/5.16/Bucardo.pm
Installing /usr/ports/databases/bucardo/work/stage/usr/local/man/man1/bucardo.1pm
Installing /usr/ports/databases/bucardo/work/stage/usr/local/lib/perl5/5.16/man/man3/Bucardo.3
Installing /usr/ports/databases/bucardo/work/stage/usr/local/bin/bucardo
====> Compressing man pages (compress-man)
====> Running Q/A tests (stage-qa)
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for directories owned by MTREEs
===> Checking for directories handled by dependencies
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
$ make package
===>  Building package for bucardo-5.1.1
Creating package /usr/ports/databases/bucardo/work/pkg/bucardo-5.1.1.tbz
Registering depends: p5-DBIx-Safe-1.2.5 p5-DBD-Pg-3.2.1 postgresql92-client-9.2.8_1 libxml2-2.9.1_1 libiconv-1.14_3 p5-DBI-1.631 perl5-5.16.3_10 gdbm-1.11.
Creating bzip'd tar ball in '/usr/ports/databases/bucardo/work/pkg/bucardo-5.1.1.tbz'
$ make clean
===>  Cleaning for bucardo-5.1.1
$ sudo -s
# portlint -cvtAC
OK: config: portsdir: "/usr/ports" rcsidstr: "FreeBSD" multiplist: 0 ldconfigwithtrue: 0 rcsidinplist: 0 mancompress: 1 manstrict: 0 localbase: /usr/local 
OK: makevar: PORTNAME = bucardo
OK: makevar: PORTVERSION = 5.1.1
OK: makevar: PORTREVISION = 0
OK: makevar: PORTEPOCH = 0
OK: makevar: PKGNAME = bucardo-5.1.1
OK: makevar: PKGNAMEPREFIX = 
OK: makevar: PKGNAMESUFFIX = 
OK: makevar: DISTVERSIONPREFIX = 
OK: makevar: DISTVERSION = 5.1.1
OK: makevar: DISTVERSIONSUFFIX = 
OK: makevar: DISTNAME = Bucardo-5.1.1
OK: makevar: DISTFILES = Bucardo-5.1.1.tar.gz
OK: makevar: CATEGORIES = databases perl5
OK: makevar: MASTERDIR = /usr/ports/databases/bucardo
OK: makevar: MAINTAINER = michelle@sorbs.net
OK: makevar: MASTER_SITES = http://bucardo.org/downloads/
OK: makevar: WRKDIR = /usr/ports/databases/bucardo/work
OK: makevar: WRKSRC = /usr/ports/databases/bucardo/work/Bucardo-5.1.1
OK: makevar: NO_WRKSUBDIR = 
OK: makevar: SCRIPTDIR = /usr/ports/databases/bucardo/scripts
OK: makevar: FILESDIR = /usr/ports/databases/bucardo/files
OK: makevar: PKGDIR = /usr/ports/databases/bucardo
OK: makevar: COMMENT = Multi-Master Async Postgres Replication system
OK: makevar: DESCR = /usr/ports/databases/bucardo/pkg-descr
OK: makevar: PLIST = /usr/ports/databases/bucardo/pkg-plist
OK: makevar: PKGCATEGORY = databases
OK: makevar: PKGINSTALL = /usr/ports/databases/bucardo/pkg-install
OK: makevar: PKGDEINSTALL = /usr/ports/databases/bucardo/pkg-deinstall
OK: makevar: PKGREQ = /usr/ports/databases/bucardo/pkg-req
OK: makevar: PKGMESSAGE = /usr/ports/databases/bucardo/pkg-message
OK: makevar: DISTINFO_FILE = /usr/ports/databases/bucardo/distinfo
OK: makevar: .CURDIR = /usr/ports/databases/bucardo
OK: makevar: USE_LDCONFIG = 
OK: makevar: USE_AUTOTOOLS = 
OK: makevar: USE_GNOME = 
OK: makevar: USE_PERL5 = configure
OK: makevar: INDEXFILE = INDEX-9
OK: makevar: PKGORIGIN = databases/bucardo
OK: makevar: CONFLICTS = 
OK: makevar: PKG_VERSION = /usr/sbin/pkg_version
OK: makevar: PKGINSTALLVER = 
OK: makevar: PLIST_FILES = share/licenses/bucardo-5.1.1/catalog.mk  share/licenses/bucardo-5.1.1/LICENSE share/licenses/bucardo-5.1.1/BSD
OK: makevar: PLIST_DIRS = 
OK: makevar: PORTDOCS = 
OK: makevar: PORTEXAMPLES = 
OK: makevar: OPTIONS_DEFINE = 
OK: makevar: OPTIONS_RADIO = 
OK: makevar: OPTIONS_SINGLE = 
OK: makevar: OPTIONS_MULTI = 
OK: makevar: OPTIONS_GROUP = 
OK: makevar: OPTIONS_SUB = 
OK: makevar: INSTALLS_OMF = 
OK: makevar: USE_RC_SUBR = 
OK: makevar: USES = perl5
OK: makevar: DIST_SUBDIR = 
OK: makevar: ALLFILES = Bucardo-5.1.1.tar.gz 
OK: makevar: IGNOREFILES = 
OK: makevar: CHECKSUM_ALGORITHMS = sha256
OK: makevar: INSTALLS_ICONS = 
OK: makevar: GNU_CONFIGURE = 
OK: makevar: CONFIGURE_ARGS = INSTALLDIRS="site" CC="cc" CCFLAGS="-O2 -pipe -fno-strict-aliasing" PREFIX="/usr/local"  INSTALLPRIVLIB="/usr/local/lib" INSTALLARCHLIB="/usr/local/lib"
OK: makevar: MASTER_SITE_SUBDIR = 
OK: makevar: LICENSE = BSD
OK: makevar: LICENSE_COMB = 
OK: makevar: NO_STAGE = 
OK: makevar: DEVELOPER = yes
OK: checking /usr/ports/databases/bucardo/pkg-plist.
OK: checking /usr/ports/databases/bucardo/pkg-descr.
OK: /usr/ports/databases/bucardo/pkg-descr: has 9 lines.
OK: checking Makefile.
OK: checking contiguous blank lines in Makefile.
OK: checking header in Makefile.
OK: checking for $(VARIABLE).
OK: checking for empty(${VARIABLE}).
OK: checking for use of !=.
OK: checking for use of .elseif.
OK: checking PLIST_FILES and PLIST_DIRS.
OK: checking OPTIONS.
OK: checking DESKTOP_ENTRIES for ${TRUE}/${FALSE}.
OK: checking for USE_* as a user-settable option.
OK: checking NO_CHECKSUM.
OK: checking USE_SIZE.
OK: checking MACHINE_ARCH.
OK: checking DEPRECATED.
OK: checking IGNORE.
OK: checking BROKEN.
OK: checking COMMENT.
OK: checking FORBIDDEN.
OK: checking MANUAL_PACKAGE_BUILD.
OK: checking NO_CDROM.
OK: checking NO_PACKAGE.
OK: checking RESTRICTED.
OK: checking PKGNAME.
OK: checking for MAKE_JOBS_UNSAFE in combination with NO_BUILD.
OK: checking for USE_GNOME=pkgconfig.
OK: checking for valid EXPIRATION_DATE.
OK: checking IS_INTERACTIVE.
OK: checking for use of PORT_OPTIONS:MDOCS.
OK: checking for use of NOPORTDOCS.
OK: checking for use of NOPORTDOCS.
OK: checking for USES=gettext without PORT_OPTIONS:MNLS.
OK: checking for deprecated macros.
OK: checking for DOS line ending removal.
OK: checking direct use of command names.
OK: checking for paths that have macro replacements.
OK: checking that ldconfig is properly checked.
OK: checking for compression arguments passed to ${GZIP_CMD}.
OK: checking for ${CHMOD}.
OK: checking for ${INSTALL} -o | -g.
OK: checking for ${MKDIR} -p.
OK: checking for instances of ${FIND} ... ${XARGS} ${RM}.
OK: checking for instances of ${MACHINE_ARCH} being test.
OK: checking direct use of full pathnames in Makefile.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking direct use of pathnames, phase 1.
OK: checking direct use of pathnames, phase 2.
OK: checking SITE_PERL.
OK: non-slave port detected, checking for anything after bsd.port(.post).mk.
OK: checking comment section of Makefile.
OK: $FreeBSD$ seen in Makefile.
OK: checking first section of Makefile (PORTNAME/...).
OK: checking the order of PORTNAME section.
OK: seen PORTNAME, in order.
OK: seen PORTVERSION, in order.
OK: seen CATEGORIES, in order.
OK: seen MASTER_SITES, in order.
OK: seen DISTNAME, in order.
OK: PORTNAME section is ordered properly.
OK: checking PORTNAME/PORTVERSION/DISTVERSION.
OK: checking for existence of PORTREVISION in new port.
OK: checking for existence of PORTEPOCH in new port.
OK: checking CATEGORIES.
WARN: Makefile: only one MASTER_SITE configured.  Consider adding additional mirrors.
OK: seen MASTER_SITES, sanity checking URLs.
OK: URL "http://bucardo.org/downloads/" ok.
OK: no EXTRACT_SUFX seen, using default value.
OK: sanity checking PORTNAME/PORTVERSION/DISTVERSIONPREFIX/DISTVERSION/DISTVERSIONSUFFIX.
OK: PORTVERSION "5.1.1" looks fine.
OK: checking if PORTVERSION is going backwards.
OK: checking second section of Makefile (PATCH*: optional).
OK: checking third section of Makefile (MAINTAINER).
OK: checking items that has to appear earlier.
OK: checking the order of MAINTAINER section.
OK: seen MAINTAINER, in order.
OK: seen COMMENT, in order.
OK: MAINTAINER section is ordered properly.
OK: checking fourth section of Makefile (LICENSE).
OK: checking the order of LICENSE section.
OK: seen LICENSE, in order.
OK: LICENSE section is ordered properly.
OK: checking fifth section of Makefile (*_DEPENDS).
OK: checking items that has to appear earlier.
OK: checking ports listed in BUILD_DEPENDS.
OK: checking dependency value for BUILD_DEPENDS.
OK: dep="p5-DBD-Pg>=1.49", dir="${PORTSDIR}/databases/p5-DBD-Pg", tgt=""
OK: port directory /usr/ports/databases/p5-DBD-Pg found.
OK: path for port directory /usr/ports/databases/p5-DBD-Pg is absolute.
OK: checking dependency value for BUILD_DEPENDS.
OK: dep="p5-DBI>=1.490", dir="${PORTSDIR}/databases/p5-DBI", tgt=""
OK: port directory /usr/ports/databases/p5-DBI found.
OK: path for port directory /usr/ports/databases/p5-DBI is absolute.
OK: checking dependency value for BUILD_DEPENDS.
OK: dep="p5-DBIx-Safe>=1.2.5", dir="${PORTSDIR}/databases/p5-DBIx-Safe", tgt=""
OK: port directory /usr/ports/databases/p5-DBIx-Safe found.
OK: path for port directory /usr/ports/databases/p5-DBIx-Safe is absolute.
OK: checking items that has to appear earlier.
OK: checking the rest of the Makefile.
OK: checking items that has to appear earlier.
OK: checking WRKSRC.
OK: WRKSRC seems to be ${WRKDIR}/Bucardo-${PORTVERSION}.
OK: no NO_WRKSUBDIR, checking value of WRKSRC.
OK: checking RESTRICTED/NO_CDROM/NO_PACKAGE.
OK: checking NO_CONFIGURE/NO_PATCH.
OK: checking INFO.
OK: checking /usr/ports/databases/bucardo/distinfo.
OK: checking /usr/ports/MOVED.
OK: checking /usr/ports/UIDs.
OK: checking /usr/ports/GIDs.
OK: checking the file name of pkg-plist.
OK: checking the file name of pkg-descr.
OK: checking the file name of distinfo.
OK: checking the file name of Makefile.
0 fatal errors and 1 warning found.
# make distclean
===>  Cleaning for bucardo-5.1.1
===>  Deleting distfiles for bucardo-5.1.1
# cd ..
# shar `find bucardo` > bucardo.shar
Comment 8 Michelle Sullivan 2014-07-29 16:48:00 UTC
Not a problem for me to test with poudriere for me - because I have a complete build setup - but others will not have poudriere available to them... perhaps the tools need to be updated for the additional checks...?
Comment 9 John Marino freebsd_committer freebsd_triage 2014-07-29 19:01:58 UTC
So this illustrates why the procedure outlined in section 3.4 is not foolproof.  You came up with no errors, but yet the port failed.

There's no "poudriere-equivalent" for poudriere in this case.  The two things section 3.4 cannout test are: missing dependencies and illegally touching the filesystem.

The real solution, eventually, is to have a poudriere-based check run automatically as part of the PR process.  It's on the long-term plans I understand, but we don't have it yet.  For now we need to look forward to a poudriere-based redports...
Comment 10 Michelle Sullivan 2014-07-29 19:06:30 UTC
+1 - perhaps something in the build system?

make 'final-checks' ...? :)
Comment 11 Michelle Sullivan 2014-07-29 23:02:42 UTC
Created attachment 145134 [details]
New Version of port.

New version with staging fix, and additional dependencies that I forgot in the original...
Comment 12 commit-hook freebsd_committer freebsd_triage 2014-08-01 07:06:12 UTC
A commit references this bug:

Author: vanilla
Date: Fri Aug  1 07:06:07 UTC 2014
New revision: 363688
URL: http://svnweb.freebsd.org/changeset/ports/363688

Log:
  Add bucardo 5.1.1, multi-Master Async Postgres Replication system.

  PR:		ports/192228
  Submitted by:	Michelle Sullivan <michelle@sorbs.net>

Changes:
  head/databases/Makefile
  head/databases/bucardo/
  head/databases/bucardo/Makefile
  head/databases/bucardo/distinfo
  head/databases/bucardo/pkg-descr
  head/databases/bucardo/pkg-plist