Handling user input and package building

Paul Schmehl pauls at utdallas.edu
Tue May 20 20:15:42 UTC 2008


I'm trying to figure out how to handle user input in package building mode.

I've got statements like this in my Makefile, and they work fine to suppress 
user input from the pkg-install script:

pre-install:
.if !defined(PACKAGE_BUILDING)
        @${SETENV} ${SCRIPTS_ENV} PKG_PREFIX=${PREFIX} \
                ${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
.endif

However, the same syntax doesn't seem to work for the pkg-deinstall script, 
which also requires user input.

.if defined(PACKAGE_BUILDING)
deinstall:
        @${SETENV} ${SCRIPTS_ENV} PKG_PREFIX=${PREFIX} \
                ${SH} ${PKGDEINSTALL} ${PORTNAME} DEINSTALL
post-deinstall:
        @${SETENV} ${SCRIPTS_ENV} PKG_PREFIX=${PREFIX} \
                ${SH} ${PKGDEINSTALL} ${PORTNAME} POST-DEINSTALL
.endif

One other question.  The Porters Handbook says:
"If your port requires user input to build, configure, or install, you must set 
IS_INTERACTIVE in your Makefile. "

Yet portlint says:
"WARN: Makefile: [25]: use of IS_INTERACTIVE discouraged. provide batch mode by 
using BATCH and/or FOR_CDROM."

What's the correct way to do this?

-- 
Paul Schmehl (pauls at utdallas.edu)
Senior Information Security Analyst
The University of Texas at Dallas
http://www.utdallas.edu/ir/security/



More information about the freebsd-ports mailing list