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.
===> 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
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)
How about testing via 'poudriere testport' ? and yes, my box run with 10.x.
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
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
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. :)
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
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...?
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...
+1 - perhaps something in the build system? make 'final-checks' ...? :)
Created attachment 145134 [details] New Version of port. New version with staging fix, and additional dependencies that I forgot in the original...
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