Annotation of pkgsrc/pkgtools/pkg_install/Makefile, Revision 1.226
1.226 ! jperkin 1: # $NetBSD: Makefile,v 1.225 2019/04/10 08:24:03 adam Exp $
1.4 hubertf 2:
1.58 schmonz 3: # Notes to package maintainers:
1.57 hubertf 4: #
1.58 schmonz 5: # Updating this package does not automatically necessitate bumping
6: # PKGTOOLS_REQD in bsd.pkg.mk. Do so if and only if there is a critical
7: # change in the pkg_* tools that pkgsrc relies on for proper operation.
1.57 hubertf 8:
1.202 obache 9: PKGNAME= pkg_install-${VERSION}
1.226 ! jperkin 10: PKGREVISION= 1
1.1 agc 11: CATEGORIES= pkgtools
12:
1.182 agc 13: MAINTAINER= agc@NetBSD.org
1.82 reed 14: HOMEPAGE= http://www.pkgsrc.org/
1.90 grant 15: COMMENT= Package management and administration tools for pkgsrc
1.163 wiz 16: LICENSE= modified-bsd
1.60 schmonz 17:
1.223 rillig 18: BOOTSTRAP_PKG= yes
1.164 joerg 19: SKIP_LICENSE_CHECK= yes
1.133 joerg 20:
1.132 adrianp 21: CONFLICTS+= audit-packages-[0-9]*
22:
1.115 rillig 23: GNU_CONFIGURE= yes
1.205 adam 24: CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
25: CONFIGURE_ARGS+= --with-pkgdbdir=${PKG_DBDIR}
1.113 jlam 26:
1.142 jlam 27: USE_FEATURES= nbcompat
28:
1.159 joerg 29: NBCOMPAT_CONFIGURE_ARGS+= --enable-bsd-getopt --enable-db
1.148 joerg 30:
1.121 erh 31: SKIP_AUDIT_PACKAGES= yes
1.122 rillig 32: NO_PKGTOOLS_REQD_CHECK= yes
33: PKG_PRESERVE= yes
1.144 joerg 34: CHECK_PERMS= no
1.1 agc 35:
1.97 jlam 36: # These are needed to solve a chicken-and-egg problem where pkgsrc uses
1.96 jlam 37: # newer features of pkg_install, but older NetBSD installations won't
38: # support them. In this case, we explicitly use the native GCC
39: # compiler to avoid problems with depending on pkgsrc GCC for building
1.128 jlam 40: # pkg_install.
1.117 jlam 41: #
1.147 joerg 42: # We also use the newly built pkg_{add,create,delete} since upgrading
1.195 riastrad 43: # from an older pkg_install might required features of the new
44: # program, provided that we are not cross-compiling. (XXX If we are
45: # cross-compiling, we should maybe have a host build dependency on
46: # ourselves...)
1.159 joerg 47: #
1.156 joerg 48: # Note that the definitions are only overriden for the phases that are
49: # supposed to use them. pkg_admin pmatch might be used when looking for
50: # dependencies. If that is ever changed in a incompatible way, this has to
51: # be rethought.
1.96 jlam 52: USE_NATIVE_GCC= yes
1.156 joerg 53:
1.196 obache 54: .include "../../mk/bsd.prefs.mk"
55:
1.203 ryoon 56: .if ${OS_VARIANT} == "SCOOSR5"
57: # SCO OpenServer 5.0.7/3.2's strings.h defines strcasecmp with
58: # "unsigned size_t". We cannot use -Werror for net/libfetch.
59: MAKE_FLAGS+= NOGCCERROR=yes
60: .endif
61:
1.195 riastrad 62: .if defined(_PKGSRC_BARRIER) && empty(USE_CROSS_COMPILE:M[yY][eE][sS])
1.147 joerg 63: PKG_ADD_CMD= ${WRKSRC}/add/pkg_add
64: PKG_CREATE_CMD= ${WRKSRC}/create/pkg_create
65: PKG_DELETE_CMD= ${WRKSRC}/delete/pkg_delete
1.201 richard 66: #
67: # Special case for dependency checking in 'non-bootstrap' builds:
68: # don't redefine 'pkg_info' if it already exists.
69: #
70: . if defined(PKG_INFO_CMD) && !exists(${PKG_INFO_CMD})
1.149 jlam 71: PKG_INFO_CMD= ${WRKSRC}/info/pkg_info
1.201 richard 72: . endif
1.154 he 73: .endif
1.89 grant 74:
1.139 joerg 75: CPPFLAGS+= -D_LARGEFILE_SOURCE -D_LARGE_FILES
76: CPPFLAGS+= -D_FILE_OFFSET_BITS=64
77:
1.100 tv 78: CPPFLAGS+= -DDEF_UMASK=${DEF_UMASK}
79:
1.212 jperkin 80: MAKE_ENV+= PKGSRC_MACHINE_ARCH=${MACHINE_ARCH}
1.205 adam 81: MAKE_ENV+= OPSYS=${OPSYS}
1.199 jperkin 82: MAKE_ENV+= CATMAN_SECTION_SUFFIX=${CATMAN_SECTION_SUFFIX:Q}
1.185 joerg 83: MAKE_ENV+= MANINSTALL=${MANINSTALL:Q}
1.91 grant 84:
1.92 jlam 85: PKG_DBDIR?= /var/db/pkg
1.132 adrianp 86: EGDIR= ${PREFIX}/share/examples/pkg_install
1.92 jlam 87:
1.205 adam 88: PLIST_SUBST+= PKG_DBDIR=${PKG_DBDIR}
1.117 jlam 89:
1.125 jlam 90: DEINSTALL_SRC= # empty
1.124 jlam 91: INSTALL_SRC= ${PKGDIR}/INSTALL
1.205 adam 92: FILES_SUBST+= PKG_DBDIR=${PKG_DBDIR} \
93: PKG_TOOLS_BIN=${PKG_TOOLS_BIN:Q} \
1.124 jlam 94: MKDIR=${MKDIR:Q}
1.205 adam 95: MESSAGE_SUBST+= PKGVULNDIR=${PKG_DBDIR} \
96: EGDIR=${EGDIR}
1.124 jlam 97:
1.193 wiz 98: .include "../../mk/compiler.mk"
99:
100: .if !empty(CC_VERSION:Mclang*)
101: MAKE_FLAGS+= ACTIVE_CC=clang
102: .endif
103:
1.172 joerg 104: VERSION!= ${AWK} '/PKGTOOLS_VERSION/ {print $$3}' \
1.58 schmonz 105: ${FILESDIR}/lib/version.h
1.78 jlam 106:
1.220 joerg 107: # Requires 3.x filter API and bugfixes.
108: BUILDLINK_API_DEPENDS.libarchive+= libarchive>=3.3.1
1.152 joerg 109:
1.137 joerg 110: .include "../../archivers/bzip2/builtin.mk"
1.214 joerg 111: .include "../../archivers/xz/builtin.mk"
1.137 joerg 112: .include "../../archivers/libarchive/builtin.mk"
113: .include "../../devel/zlib/builtin.mk"
1.159 joerg 114: .include "../../security/openssl/builtin.mk"
115:
1.171 joerg 116: .include "options.mk"
117:
1.137 joerg 118: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS]) || \
119: empty(USE_BUILTIN.zlib:M[yY][eE][sS])
120: USE_BUILTIN.libarchive= no
121: .endif
122:
123: FILESDIR.bzip2?= ${.CURDIR}/../../archivers/bzip2/files
124: FILESDIR.libarchive?= ${.CURDIR}/../../archivers/libarchive/files
125: FILESDIR.zlib?= ${.CURDIR}/../../devel/zlib/files
1.150 joerg 126: FILESDIR.libfetch?= ${.CURDIR}/../../net/libfetch/files
1.209 jperkin 127: FILESDIR.netpgpverify?= ${.CURDIR}/../../security/netpgpverify/files
1.137 joerg 128:
129: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS])
130: CPPFLAGS+= -I${WRKDIR}/bzip2
131: LDFLAGS+= -L${WRKDIR}/bzip2
132: .endif
133: .if empty(USE_BUILTIN.zlib:M[yY][eE][sS])
134: CPPFLAGS+= -I${WRKDIR}/zlib
135: LDFLAGS+= -L${WRKDIR}/zlib
136: .endif
137: .if empty(USE_BUILTIN.libarchive:M[yY][eE][sS])
138: CPPFLAGS+= -I${WRKDIR}/libarchive/libarchive
139: LDFLAGS+= -L${WRKDIR}/libarchive/.libs
1.174 joerg 140:
1.214 joerg 141: # Only use XZ if we actually have builtin support for it. Some systems
142: # install the header, but without usable library or prefer to not use
143: # the system version, so give them some control.
144: . if empty(USE_BUILTIN.xz:M[Yy][Ee][Ss])
145: LIBARCHIVE_CONFIGURE_ARGS+= --without-lzma
1.215 tron 146: . endif
1.214 joerg 147:
1.205 adam 148: LIBARCHIVE_LIBS= ${SED} -n -e 's/^Libs.private://p' \
1.223 rillig 149: ${WRKDIR}/libarchive/build/pkgconfig/libarchive.pc 2>/dev/null || echo
150: LIBS+= ${LIBARCHIVE_LIBS:sh}
1.179 joerg 151:
1.208 joerg 152: CONFIG_GUESS_OVERRIDE+= ${WRKDIR}/libarchive/build/autoconf/config.guess \
153: ${WRKSRC}/config.guess
154: CONFIG_SUB_OVERRIDE+= ${WRKDIR}/libarchive/build/autoconf/config.sub \
155: ${WRKSRC}/config.sub
1.174 joerg 156:
1.216 jperkin 157: CPPFLAGS.Cygwin+= -DLIBARCHIVE_STATIC
1.191 obache 158:
1.178 tron 159: # Make sure that the linker used our static library instead of the
160: # (outdated) dynamic library "/usr/lib/libarchive.dylib".
1.216 jperkin 161: LDFLAGS.Darwin+= -Wl,-search_paths_first
1.178 tron 162:
1.184 cheusov 163: # workaround for pkg/45491
1.216 jperkin 164: CONFIGURE_ENV.SunOS+= ac_cv_header_ext2fs_ext2_fs_h=no
1.184 cheusov 165:
1.174 joerg 166: # Hack to make sure that the libarchive version is replaced
1.175 obache 167: pre-configure: config-guess-override config-sub-override
1.137 joerg 168: .endif
1.150 joerg 169: CPPFLAGS+= -I${WRKDIR}/libfetch
170: LDFLAGS+= -L${WRKDIR}/libfetch
1.209 jperkin 171: # Avoid duplicate and conflicting headers, pull in any we need
1.220 joerg 172: # directly with <netpgpg/*.h>
1.209 jperkin 173: CPPFLAGS+= -I${WRKDIR}
1.220 joerg 174: LDFLAGS+= -L${WRKDIR}/netpgp
1.137 joerg 175:
1.179 joerg 176: CONFIGURE_ENV+= LIBS=${LIBS:Q}
177:
1.58 schmonz 178: do-extract:
1.107 tv 179: @${CP} -R ${FILESDIR} ${WRKSRC}
1.137 joerg 180: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS])
181: @${CP} -R ${FILESDIR.bzip2} ${WRKDIR}/bzip2
182: .endif
183: .if empty(USE_BUILTIN.zlib:M[yY][eE][sS])
184: @${CP} -R ${FILESDIR.zlib} ${WRKDIR}/zlib
185: .endif
186: .if empty(USE_BUILTIN.libarchive:M[yY][eE][sS])
187: @${CP} -R ${FILESDIR.libarchive} ${WRKDIR}/libarchive
188: .endif
1.150 joerg 189: @${CP} -R ${FILESDIR.libfetch} ${WRKDIR}/libfetch
1.220 joerg 190: @${CP} -R ${FILESDIR.netpgpverify} ${WRKDIR}/netpgp
1.137 joerg 191:
192: pre-configure:
193: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS])
194: cd ${WRKDIR}/bzip2 && ${BUILD_MAKE_CMD} libbz2.a
195: .endif
196: .if empty(USE_BUILTIN.zlib:M[yY][eE][sS])
197: cd ${WRKDIR}/zlib && ${BUILD_MAKE_CMD} libz.a
198: .endif
199: .if empty(USE_BUILTIN.libarchive:M[yY][eE][sS])
1.205 adam 200: cd ${WRKDIR}/libarchive && ${SETENV} ${_CONFIGURE_SCRIPT_ENV} \
201: ${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS} ./configure \
202: --disable-bsdcpio --disable-bsdtar --disable-shared \
203: --disable-dependency-tracking --without-expat \
1.219 jperkin 204: --disable-maintainer-mode \
1.205 adam 205: --without-iconv --without-lzo2 --without-nettle \
1.225 adam 206: --without-xml2 --without-lz4 --without-zstd \
1.186 jperkin 207: ${LIBARCHIVE_CONFIGURE_ARGS}
1.137 joerg 208: cd ${WRKDIR}/libarchive && ${BUILD_MAKE_CMD}
209: .endif
1.207 jperkin 210: cd ${WRKDIR}/libfetch && ${TOUCH} fetch.cat3 && \
211: ${SETENV} ${MAKE_ENV} ${BSD_MAKE_ENV} \
1.151 joerg 212: ${MAKE_PROGRAM} ${MAKE_FLAGS} ${BUILD_MAKE_FLAGS} \
213: -f ${MAKE_FILE} depend all
1.220 joerg 214: cd ${WRKDIR}/netpgp && \
1.209 jperkin 215: ${SED} -e '/zlib/d' Makefile.lib.in >Makefile.in && \
1.211 jperkin 216: ${RM} -f bzlib.h zlib.h && \
1.210 jperkin 217: ${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS} ./configure && \
218: ${SETENV} ${MAKE_ENV} ${BSD_MAKE_ENV} ${MAKE_PROGRAM} \
219: ${MAKE_FLAGS} ${BUILD_MAKE_FLAGS} -f ${MAKE_FILE} all
1.12 hubertf 220:
1.106 erh 221: # XXX Reverse the order that update does things since
222: # XXX we need pkg_delete built before we can deinstall.
223: # XXX This should probably be the default order for all packages.
224: update:
225: ${MAKE}
1.127 jlam 226: ${MAKE} deinstall _UPDATE_RUNNING=YES
1.118 jlam 227: ${MAKE} ${UPDATE_TARGET}
1.108 jklos 228: ${MAKE} clean
1.106 erh 229:
1.170 joerg 230: update-catpages:
231: for f in lib/pkgsrc.7 add/pkg_add.1 admin/pkg_admin.1 \
232: create/pkg_create.1 delete/pkg_delete.1 info/pkg_info.1 \
233: lib/pkg_summary.5 lib/pkgsrc.7; do \
1.224 sevan 234: mandoc -I os=pkgsrc -Tascii ${FILESDIR}/$$f > \
1.170 joerg 235: ${FILESDIR}/$${f%%.[157]}.cat; \
236: done
1.224 sevan 237: mandoc -I os=pkgsrc -Tascii ${FILESDIR}/lib/pkg_install.conf.5.in > \
1.170 joerg 238: ${FILESDIR}/lib/pkg_install.conf.cat.in
239:
1.1 agc 240: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>