diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk index 1604a1c7fd3d..3eb70709fd8c 100644 --- a/Mk/bsd.port.mk +++ b/Mk/bsd.port.mk @@ -1,5621 +1,5621 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # bsd.port.mk - 940820 Jordan K. Hubbard. # This file is in the public domain. # # Please view me with 4 column tabs! # This is the master file for the most common elements to all port # Makefile in the ports system. For a more general overview of its # use and importance, see the Porter's Handbook. # There are two different types of "maintainers" in the ports framework. # The maintainer alias of the bsd.port.mk file is listed below in the # FreeBSD_MAINTAINER entry. You should consult them if you have any # questions/suggestions regarding this file. # # DO NOT COMMIT CHANGES TO THIS FILE BY YOURSELF, EVEN IF YOU DID NOT GET # A RESPONSE FROM THE MAINTAINER(S) WITHIN A REASONABLE TIMEFRAME! ALL # UNAUTHORISED CHANGES WILL BE UNCONDITIONALLY REVERTED! FreeBSD_MAINTAINER= portmgr@FreeBSD.org # For each port, the MAINTAINER variable is what you should consult for # contact information on the person(s) to contact if you have questions/ # suggestions about that specific port. By default (if no MAINTAINER # is listed), a port is maintained by the subscribers of the ports@FreeBSD.org # mailing list, and any correspondence should be directed there. # # MAINTAINER - The e-mail address of the contact person for this port. # Default: ports@FreeBSD.org # # These are meta-variables that are automatically set to the system # you are running on. These are provided in case you need to take # different actions for different values. # # ARCH - The architecture of the target machine, such as would be # returned by "uname -p". # OPSYS - Portability clause. This is the operating system the # makefile is being used on. Automatically set to # "FreeBSD," "NetBSD," or "OpenBSD" as appropriate. # OSREL - The release version of the operating system as a text # string (e.g., "12.4"). # OSVERSION - The operating system version as a comparable integer; -# the value of __FreeBSD_version (e.g., 1302000). +# the value of __FreeBSD_version (e.g., 1501000). # # This is the beginning of the list of all variables that need to be # defined in a port, listed in order that they should be included # to fit in with existing conventions. (Exception: MAINTAINER actually # should appear after EXTRACT_ONLY and before MASTER_SITE_BACKUP). # # These variables are used to identify your port. # # PORTNAME - Name of software. Mandatory. # PORTVERSION - Version of software. Mandatory when no DISTVERSION is given. # PORTREVISION - Version of port. Optional. Commonly used to indicate # that an update has happened that affects the port # framework itself, but not the distributed software # (e.g., local patches or Makefile changes). # PORTEPOCH - Optional. In certain odd cases, the PORTREVISION logic # can be fooled by ports that appear to go backwards # numerically (e.g. if port-0.3 is newer than port-1998). # In this case, incrementing PORTEPOCH forces the revision. # Default: 0 (no effect). # PKGNAME - Always defined as # ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION}. # Do not define this in your Makefile. # PKGNAMEPREFIX - Prefix to specify that port is language-specific, etc. # Optional. # PKGNAMESUFFIX - Suffix to specify compilation options or a version # designator (in case there are different versions of # one port as is the case for Tcl). # Optional. # PKGVERSION - Version of package. # Do not define this in your Makefile. # DISTVERSION - Vendor version of the distribution. # Default: ${PORTVERSION} # DISTNAME - Name of port or distribution used in generating # WRKSRC and DISTFILES below. # Default: # ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX} # CATEGORIES - A list of descriptive categories into which this port falls. # Mandatory. # # These variable describe how to fetch files required for building the port. # # DISTFILES - Name(s) of archive file(s) containing distribution. # Set this to an empty string if the port doesn't require it. # Default: ${DISTNAME}${EXTRACT_SUFX} # EXTRACT_SUFX - Suffix for archive names # You never have to set both DISTFILES and EXTRACT_SUFX. # Default: .tar.bz2 if USES=tar:bzip2 is set, .tar.xz if # USES=tar:xz USE_XZ is set, .tar.gz otherwise). # MASTER_SITES - Primary location(s) for distribution files if not found # locally. See bsd.sites.mk for common choices for # MASTER_SITES. # MASTER_SITE_SUBDIR # - Subdirectory of MASTER_SITES. Will sometimes need to be # set to ${PORTNAME} for (e.g.) MASTER_SITE_SOURCEFORGE. # Only guaranteed to work for choices of ${MASTER_SITES} # defined in bsd.sites.mk. # Default: not set. # PATCHFILES - Name(s) of additional files that contain distribution # patches. Make will look for them at PATCH_SITES (see below). # They will automatically be uncompressed before patching if # the names end with ".gz", ".bz2" or ".Z". # For each file you can optionally specify a strip # flag of patch(1) after a colon if it has a different # base directory, e.g. "file1 file2:-p1 file3". # You can also use a :group at the end for matching up to # dist file groups. See Porters Handbook for more information. # Syntax: PATCHFILES= patch[:-pX][:group] # Default: not set. # PATCH_SITES - Primary location(s) for distribution patch files # if not found locally. # DIST_SUBDIR - Suffix to ${DISTDIR}. If set, all ${DISTFILES} and # ${PATCHFILES} will be put in this subdirectory of # ${DISTDIR} (see below). Also they will be fetched in this # subdirectory from FreeBSD mirror sites. # ALLFILES - All of ${DISTFILES} and ${PATCHFILES}. # EXTRACT_ONLY - If set, a subset of ${DISTFILES} you want to # actually extract. # # (NOTE: by convention, the MAINTAINER entry (see above) should go here.) # # COMMENT - A short description of the package (less than 70 characters) # WWW - URL users can get more information on the provided package # was previously part of pkg-descr # # The following variables are typically set in /etc/make.conf to indicate # the user's preferred location to fetch files from. You should rarely # need to set these. # # MASTER_SITE_BACKUP # - Backup location(s) for distribution files and patch # files if not found locally and ${MASTER_SITES}/${PATCH_SITES}. # This should *not* be changed. # Default: # http://distcache.FreeBSD.org/ports-distfiles/${DIST_SUBDIR}/ # MASTER_SITE_OVERRIDE # - If set, prepend the MASTER_SITES setting with this value. # MASTER_SITE_FREEBSD # - If set, prepend ${MASTER_SITE_BACKUP} in MASTER_SITES. # # Set these if your port should not be built under certain circumstances. # These are string variables; you should set them to the reason why # they are necessary. # # RESTRICTED - Prevent the distribution of distfiles and packages to # the FTP sites or on CDROM (e.g. forbidden by license # considerations). # NO_CDROM - Packages and distfiles may not go on CDROM (e.g. must # not be re-sold) but can go on FTP sites. # NO_PACKAGE - Port should not be packaged for ftp sites or CDROMs, # but distfiles can be put on ftp sites and CDROMs. # FORBIDDEN - Package build should not be attempted because of # security vulnerabilities. # IGNORE - Package build should be skipped entirely (e.g. # because of serious unfixable problems in the build, # because it cannot be manually fetched, etc). Error # logs will not appear on pointyhat, so this should be # used sparingly. # IGNORE_${ARCH} - Port should be ignored on ${ARCH}. # IGNORE_${OPSYS} - Port should be ignored on ${OPSYS}. # IGNORE_${OPSYS}_${OSREL:R} - Port should be ignored on a single # release of ${OPSYS}, e.g IGNORE_FreeBSD_13 # would affect all point releases of FreeBSD 13. # IGNORE_${OPSYS}_${OSREL:R}_${ARCH} - Port should be ignored on a # single release of ${OPSYS} and specific architecture, # e.g IGNORE_FreeBSD_13_i386 would affect all point # releases of FreeBSD 13 in i386. # BROKEN - Port is believed to be broken. Package builds can # still be attempted using TRYBROKEN to test this # assumption. # BROKEN_${ARCH} - Port is believed to be broken on ${ARCH}. Package builds # can still be attempted using TRYBROKEN to # test this assumption. # BROKEN_${OPSYS} - Port is believed to be broken on ${OPSYS}. Package builds # can still be attempted using TRYBROKEN to # test this assumption. # BROKEN_${OPSYS}_${OSREL:R} - Port is believed to be broken on a single # release of ${OPSYS}, e.g BROKEN_FreeBSD_13 # would affect all point releases of FreeBSD 13 # unless TRYBROKEN is also set. # BROKEN_${OPSYS}_${OSREL:R}_${ARCH} - Port is believed to be broken on a # single release of ${OPSYS} and specific architecture, # e.g BROKEN_FreeBSD_13 would affect all point # releases of FreeBSD 13 in i386 # unless TRYBROKEN is also set. # DEPRECATED - Port is deprecated to install. Advisory only. # EXPIRATION_DATE # - If DEPRECATED is set, determines a date when # the port is planed to remove. The date format is # ISO 8601 (YYYY-MM-DD). # # DISABLE_VULNERABILITIES # - If set, do not check if the port is listed in the # vulnerabilities database. # # In addition to RESTRICTED or NO_CDROM, if only a subset of distfiles # or patchfiles have redistribution restrictions, set the following # to the list of such files. # # RESTRICTED_FILES # - List of files that cannot be redistributed. # Default: "${DISTFILES} ${PATCHFILES}" if RESTRICTED # or NO_CDROM is set, empty otherwise. # # These variables are booleans, so you don't need to set them to the reason. # # IS_INTERACTIVE # - Set this if your port needs to interact with the user # during any step in a package build. User can then decide # to skip this port by setting ${BATCH}, or compiling only # the interactive ports by setting ${INTERACTIVE}. # Default: not set. # USE_SUBMAKE - Set this if you want that each of the port's main 7 targets # (extract, patch, configure, build, stage, install and # package) to be executed in a separate make(1) process. # Useful when one of the stages needs to influence make(1) # variables of the later stages using ${WRKDIR}/Makefile.inc # generated on the fly. # Default: not set. # # NO_ARCH - Set this if port is architecture neutral. # # NO_ARCH_IGNORE - Set this to a list files to ignore when NO_ARCH is checked # in stage-qa (i.e. architecture specific files that are # 'bundled' with the port). # # Set these if your port only makes sense to certain architectures. # They are lists containing names for them (e.g., "amd64 i386"). # (Defaults: not set.) # # ONLY_FOR_ARCHS # - Only build ports if ${ARCH} matches one of these. # NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these. # ONLY_FOR_ARCHS_REASON # ONLY_FOR_ARCHS_REASON_${ARCH} # - Reason why it's only for ${ONLY_FOR_ARCHS}s # NOT_FOR_ARCHS_REASON # NOT_FOR_ARCHS_REASON_${ARCH} # - Reason why it's not for ${NOT_FOR_ARCHS}s # IA32_BINARY_PORT # - Set this instead of ONLY_FOR_ARCHS if the given port # fetches and installs compiled i386 binaries. # # Dependency checking. Use these if your port requires another port # not in the list below. (Default: empty.) # # EXTRACT_DEPENDS # - A list of "path:dir[:target]" tuples of other ports this # package depends on in the "extract" stage. "path" is # the name of a file if it starts with a slash (/), an # executable otherwise. make will test for the existence # (if it is a full pathname) or search for it in your # $PATH (if it is an executable) and go into "dir" to do # a "make all install" if it's not found. If the third # field ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # PATCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends on in the "patch" stage. "path" is the # name of a file if it starts with a slash (/), an # executable otherwise. make will test for the existence # (if it is a full pathname) or search for it in your # $PATH (if it is an executable) and go into "dir" to do # a "make all install" if it's not found. If the third # field ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends in the "fetch" stage. "path" is the # name of a file if it starts with a slash (/), an # executable otherwise. make will test for the # existence (if it is a full pathname) or search for # it in your $PATH (if it is an executable) and go # into "dir" to do a "make all install" if it's not # found. If the third field ("target") exists, it will # be used instead of ${DEPENDS_TARGET}. The first field # also supports a package name with a version range, in # the form package>=1.2 if a particular version is desired. # BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends to build (between the "extract" and # "build" stages, inclusive). The test done to # determine the existence of the dependency is the # same as FETCH_DEPENDS. If the third field ("target") # exists, it will be used instead of ${DEPENDS_TARGET}. # RUN_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends to run. The test done to determine # the existence of the dependency is the same as # FETCH_DEPENDS. This will be checked during the # "install" stage and the name of the dependency will # be put into the package as well. If the third field # ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # LIB_DEPENDS - A list of "lib:dir[:target]" tuples of other ports this # package depends on. "lib" is the name of a shared library. # TEST_DEPENDS - A list of "path:dir[:target]" tuples of other ports this # package depends on in the "test" stage. "path" is the # name of a file if it starts with a slash (/), an # executable otherwise. make will test for the existence # (if it is a full pathname) or search for it in your # $PATH (if it is an executable) and go into "dir" to do # a "make all install" if it's not found. If the third # field ("target") exists, it will be used instead of # ${DEPENDS_TARGET}. The first field also supports a # package name with a version range, in the form package>=1.2 # if a particular version is desired. # DEPENDS_TARGET # - The default target to execute when a port is calling a # dependency. # Default: install # # These variables control options about how a port gets built and/or # are shorthand notations for common sets of dependencies. # Use these if your port uses some of the common software packages. By # convention these should be set to 'yes', although they only need to be # defined. Defaults: not set, unless explicitly indicated below. # # Note: the distinction between the USE_* and WANT_* variables, and the # WITH_* and WITHOUT_* variables, are that the former are restricted to # usage inside the ports framework, and the latter are reserved for user- # settable options. (Setting USE_* in /etc/make.conf is always wrong). # # WITH_DEBUG_PORTS - A list of origins for which WITH_DEBUG will be set # # WITHOUT_SSP - Disable SSP. # # SSP_CFLAGS - Defaults to -fstack-protector. This value # is added to CFLAGS and the necessary flags # are added to LDFLAGS. Note that SSP_UNSAFE # can be used in Makefiles by port maintainers # if a port breaks with it (it should be # extremely rare). # PIE_CFLAGS - Defaults to -fPIE -fPIC. This value # is added to CFLAGS and the necessary flags # are added to LDFLAGS. Note that PIE_UNSAFE # can be used in Makefiles by port maintainers # if a port breaks with it. ## # USE_LOCALE - LANG and LC_ALL are set to the value of this variable in # CONFIGURE_ENV and MAKE_ENV. Example: USE_LOCALE=en_US.UTF-8 ## # USE_GCC - If set, this port requires this version of gcc, either in # the system or installed from a port. # USE_CSTD - Override the default C language standard (gnu89, gnu99) # USE_CXXSTD Override the default C++ language standard # USE_BINUTILS - Use binutils suite from port instead of the version in base. # CFLAGS_${ARCH} Append the cflags to CFLAGS only on the specified architecture # CXXFLAGS_${ARCH} # Append the cxxflags to CXXFLAGS only on the specified architecture ## # LDFLAGS_${ARCH} Append the ldflags to LDFLAGS only on the specified architecture ## # USE_OPENLDAP - If set, this port uses the OpenLDAP libraries. # Implies: WANT_OPENLDAP_VER?=24 # WANT_OPENLDAP_VER # - Legal values are: 24 # If set to an unknown value, the port is marked BROKEN. ## # USE_JAVA - If set, this port relies on the Java language. # Implies inclusion of bsd.java.mk. (Also see # that file for more information on USE_JAVA_*). # USE_OCAML - If set, this port relies on the OCaml language. # Implies inclusion of bsd.ocaml.mk. (Also see # that file for more information on USE_OCAML*). ## # USE_GECKO - If set, this port uses the Gecko/Mozilla product. # See bsd.gecko.mk for more details. ## # USE_WX - If set, this port uses the WxWidgets library and related # components. See bsd.wx.mk for more details. ## # USE_LINUX_PREFIX # - Controls the action of PREFIX (see above). Only use this # if the port is a Linux infrastructure port (e.g. contains libs # or a sound server which supports the FreeBSD native one), # use the default prefix if it's a leaf port (e.g. a game or # program). # Implies NO_LICENSES_INSTALL=yes, NO_MTREE=yes, and causes # Linux ldconfig to be used when USE_LDCONFIG is defined. ## # USE_TEX - A list of the TeX dependencies the port has. # ## # USE_RC_SUBR - If set, the ports startup/shutdown script uses the common # routines found in /etc/rc.subr. # If this is set to a list of files, these files will be # automatically added to ${SUB_FILES}, some %%VAR%%'s will # automatically be expanded, they will be installed in # ${PREFIX}/etc/rc.d if ${PREFIX} is not /usr, otherwise they # will be installed in /etc/rc.d/ and added to the packing list. ## # Conflict checking. Use if your port cannot be installed at the same time as # another package. # # CONFLICTS - A list of package name patterns that the port conflicts # with, separated by blanks. The names may include shell # pattern meta-characters "*", "?", "[", "]", and "!". # Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_* # # CONFLICTS_BUILD # - Check conflict prior to the build. # # CONFLICTS_INSTALL # - Check conflict prior to the installation stage. # # Various directory definitions and variables to control them. # You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR. # # LOCALBASE - Where ports install things. # Default: /usr/local # LINUXBASE - Where Linux ports install things. # Default: /compat/linux # PREFIX - Where *this* port installs its files. # Default: ${LINUXBASE} if USE_LINUX_PREFIX is set, # otherwise ${LOCALBASE} # # IGNORE_PATH_CHECKS # - There are some sanity checks against PREFIX. # You can disable these checks with defining # this variable, but this is not recommended! # Only do this if you really know what you are # doing. These sanity checks are the following: # - PREFIX has to be an absolute path. # - PREFIX can't have a trailing slash. # # BUNDLE_LIBS Teach pkg(8) to not automatically add all shared libraries # installed by a port as shared libraries "provided" for # other packages (i.e., do not expose them in the solver). # This has to be used for ports that bundle third party # libraries for internal usage. # MASTERDIR - Where the port finds patches, package files, etc. Define # this is you have two or more ports that share most of the # files. # Default: ${.CURDIR} # PORTSDIR - The root of the ports tree. # Default: /usr/ports # DISTDIR - Where to search for and store copies of original sources # Default: ${PORTSDIR}/distfiles # PACKAGES - A top level directory where all packages go (rather than # going locally to each port). # Default: ${PORTSDIR}/packages # WRKDIRPREFIX - The place to root the temporary working directory # hierarchy. This path must *not* end in '/'. # Default: none # WRKDIR - A temporary working directory that gets *clobbered* on clean # Default: ${WRKDIRPREFIX}${.CURDIR}/work # WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually # unpacks to. # Default: ${WRKDIR}/${DISTNAME} # WRKSRC_SUBDIR - A subdirectory of ${WRKSRC} where the distribution actually # builds in. # Default: not set # NO_WRKSUBDIR - Assume port unpacks without a subdirectory, and extract it in # ${WRKSRC} instead of ${WRKDIR}. # PATCHDIR - A directory containing any additional patches you made # to port this software to FreeBSD. # Default: ${MASTERDIR}/files # SCRIPTDIR - A directory containing any auxiliary scripts # Default: ${MASTERDIR}/scripts # FILESDIR - A directory containing any miscellaneous additional files. # Default: ${MASTERDIR}/files # PKGDIR - A directory containing any package creation files. # Default: ${MASTERDIR} # SRC_BASE - The root of the src tree. (Some ports require this to get # kernel sources). Default: /usr/src # UID_FILES - A list of files containing information about registered UIDs. # Note that files have decreasing priority. # GID_FILES - A list of files containing information about registered GIDs. # Note that files have decreasing priority. # # Variables that serve as convenient "aliases" for your *-install targets. # Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin". # # INSTALL_PROGRAM # - A command to install binary executables. (By # default, also strips them, unless ${STRIP} is # overridden to be the empty string). # INSTALL_KLD - As INSTALL_PROGRAM, but without the STRIP. # INSTALL_LIB - As INSTALL_DATA, but also strips the file. # INSTALL_SCRIPT # - A command to install executable scripts. # INSTALL_DATA - A command to install sharable data and static libs. # INSTALL_MAN - A command to install manpages and documentation. # COPYTREE_BIN # COPYTREE_SHARE # - Similiar to INSTALL_PROGRAM and INSTALL_DATA commands but # working on whole trees of directories, takes 3 arguments, # last one is find(1) arguments and optional. # Example use: # cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${DOCSDIR} "! -name *\.bak" # # Installs all directories and files from ${WRKSRC}/doc # to ${DOCSDIR} except sed(1) backup files. # # Set the following to specify all .info files your port installs. # # INFO - A list of .info files (omitting the trailing ".info"); # only one entry per document! These files are listed in # the path relative to ${INFO_PATH}. # INFO_PATH - Path, where all .info files will be installed by your # port, relative to ${PREFIX} # # Set the following to specify all documentation your port installs into # ${DOCSDIR} # # PORTDOCS - A list of files and directories relative to DOCSDIR. # Shell glob patterns can be used, directories include # the entire subtree of contained files and directories. # Should not be set when no documentation files are # installed. # Useful for dynamically generated documentation. # # Set the following to specify all documentation your port installs into # ${EXAMPLESDIR} # # PORTEXAMPLES - A list of files and directories relative to EXAMPLESDIR. # Shell glob patterns can be used, directories include # the entire subtree of contained files and directories. # Should not be set when no examples files are # installed. # Useful for dynamically generated examples. # # Set the following to specify all files and directories your port installs into # ${DATADIR} # # PORTDATA - A list of files and directories relative to DATADIR. # Shell glob patterns can be used, directories include # the entire subtree of contained files and directories. # Should not be set when no data files are # installed. # Useful for dynamically generated data files. # # Default targets and their behaviors: # # fetch - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this # port. # fetch-list - Show list of commands to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port. # fetch-recursive # - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this # port and dependencies. # fetch-recursive-list # - Show list of commands to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port and dependencies. # fetch-required # - Retrieves missing ${DISTFILES} and ${PATCHFILES} for this # port and dependencies. # fetch-required-list # - Show list of commands to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port and dependencies. # fetch-url-list # - Show list of URLS to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port. # fetch-url-recursive-list # - Show list of URLS to retrieve missing ${DISTFILES} and # ${PATCHFILES} for this port and dependencies. # fetch-urlall-list # - Show list of URLS to retrieve ${DISTFILES} and # ${PATCHFILES} for this port. # fetch-urlall-recursive-list # - Show list of URLS to retrieve ${DISTFILES} and # ${PATCHFILES} for this port and dependencies. # all-depends-list # - Show all directories which are dependencies # for this port. # build-depends-list # - Show all directories which are build-dependencies # for this port. # package-depends-list # - Show all directories which are package-dependencies # for this port. This is based upon the dependency # tree as recorded in the Makefiles of the ports # collection, not as recorded in the currently # installed ports. # actual-package-depends # - Like package-depends-list but with the difference # that the dependencies of the currently installed # ports are used instead of the dependencies as # recorded in the ports collection. # run-depends-list # - Show all directories which are run-dependencies # for this port. # test-depends-list # - Show all directories which are test-dependencies # for this port. # install-missing-packages # - Install missing dependencies from package and mark # them as automatically installed. # extract - Unpacks ${DISTFILES} into ${WRKDIR}. # patch - Apply any provided patches to the source. # configure - Runs either GNU configure, one or more local configure # scripts or nothing, depending on what's available. # build - Actually compile the sources. # install - Install the results of a build. # reinstall - Install the results of a build, deinstalling any previous # installation if needed. # deinstall - Remove the installation. # deinstall-all - Remove all installations with the same PKGORIGIN. # test - Run tests for the port. # package - Create a package from an _installed_ port. # package-recursive # - Create a package for a port and _all_ of its dependencies. # describe - Try to generate a one-line description for each port for # use in INDEX files and the like. # describe-json - Generate a JSON-compliant representation of each port. # check-plist - Checks for files missing from the plist, and files in the # plist that are not installed by the port. # check-sanity - Perform some basic checks of the port layout. # checkpatch - Do a "patch -C" instead of a "patch". Note that it may # give incorrect results if multiple patches deal with # the same file. # checksum - Use distinfo to ensure that your distfiles are valid. # checksum-recursive # - Run checksum in this port and all dependencies. # makesum - Generate distinfo (only do this for your own ports!). # clean - Remove ${WRKDIR} and other temporary files used for building. # clean-depends - Do a "make clean" for all dependencies. # config - Configure options for this port (using ${DIALOG}). # Automatically run prior to extract, patch, configure, build, # install, and package. # config-recursive # - Configure options for this port for a port and all its # dependencies. # showconfig - Display options config for this port. # showconfig-recursive # - Display options config for this port and all its # dependencies. # rmconfig - Remove the options config for this port. # rmconfig-recursive # - Remove the options config for this port and all its # dependencies. # # Default sequence for "all" is: # # check-sanity fetch checksum extract patch configure build # # Please read the comments in the targets section below; you # should be able to use the pre-* or post-* targets/scripts # (which are available for every stage except checksum) or # override the do-* targets to do pretty much anything you want. # # The TARGET_ORDER_OVERRIDE variable can be set to multiple : # to change the ordering of targets, have a look at the _SEQ variables at the # end of this file for the default order and priorities. # # NEVER override the "regular" targets unless you want to open # a major can of worms. # # Set these variables if your port doesn't need some of the steps. # Note that there are no NO_PATCH or NO_CONFIGURE variables because # those steps are empty by default. NO_EXTRACT is not allowed anymore # since we need to at least create ${WRKDIR}. Also, NO_CHECKSUM is a user # variable and is not to be set in a port's Makefile. See above for NO_PACKAGE. # # NO_BUILD - Use a dummy (do-nothing) build target. # NO_INSTALL - Use a dummy (do-nothing) install target. # NO_TEST - Use a dummy (do-nothing) test target. # # Here are some variables used in various stages. # # For options see bsd.options.mk # # WRK_ENV - Environment used when running the upstream build system. # Target-specific environment variables can be defined using # CONFIGURE_ENV, MAKE_ENV, TEST_ENV, and similar variables. # # For fetch: # # FETCH_BINARY - Path to ftp/http fetch command if not in $PATH. # Default: "/usr/bin/fetch" # FETCH_ARGS - Arguments to ftp/http fetch command. # Default: "-Fpr" # FETCH_CMD - ftp/http fetch command. # Default: ${FETCH_BINARY} ${FETCH_ARGS} # FETCH_BEFORE_ARGS # - Arguments to ${FETCH_CMD} before filename. # Default: none # FETCH_AFTER_ARGS # - Arguments to ${FETCH_CMD} following filename. # Default: none # FETCH_ENV - Environment to pass to ${FETCH_CMD}. # Default: none # FETCH_REGET - Times to retry fetching of files on checksum errors. # Default: 1 # CLEAN_FETCH_ENV # - Disable package dependency in fetch target for mass # fetching. User settable. # # For extract: # # EXTRACT_CMD - Command for extracting archive # Default: ${TAR} # EXTRACT_BEFORE_ARGS # - Arguments to ${EXTRACT_CMD} before filename. # Default: "-xf" # EXTRACT_AFTER_ARGS # - Arguments to ${EXTRACT_CMD} following filename. # Default: "--no-same-owner --no-same-permissions" # For patch: # # EXTRA_PATCHES - Define this variable if you have patches not in # ${PATCHDIR}. This usually happens when you need to # do some pre-processing before some distribution # patches can be applied. In that case, fetch them as # extra distfiles, put the processed results in # ${WRKDIR}, then point EXTRA_PATCHES to them. # The patches specified by this variable will be # applied after the normal distribution patches but # before those in ${PATCHDIR}. This can also contain # directories, all the files named patch-* in those directories # will be applied. # EXTRA_PATCH_TREE - where to find extra 'out-of-tree' patches # Points to a directory hierarchy with the same layout # as the ports tree, where local patches can be found. # This allows a third party to keep their patches in # some other source control system if needed. # PATCH_WRKSRC - Directory to apply patches in. # Default: ${WRKSRC} # # For configure: # # HAS_CONFIGURE - If set, this port has its own configure script. The # configure stage will not do anything if this is not set. # GNU_CONFIGURE - If set, you are using GNU configure (optional). Implies # HAS_CONFIGURE. # CONFIGURE_OUTSOURCE - If set, this port builds in an empty ${CONFIGURE_WRKSRC} # not being under ${WRKSRC}. # CONFIGURE_WRKSRC # - Directory to run configure in. # Default: ${WRKSRC} # CONFIGURE_SCRIPT # - Name of configure script, relative to ${CONFIGURE_WRKSRC}. # Default: "Makefile.PL" if USES=perl5 and USE_PERL5=configure # are set, "configure" otherwise. # CONFIGURE_TARGET # - The name of target to call when GNU_CONFIGURE is # defined. # Default: ${ARCH}-portbld-${OPSYS:tl}${OSREL} # GNU_CONFIGURE_PREFIX # - The directory passed as prefix to the configure script if # GNU_CONFIGURE is set. # Default: ${PREFIX} # CONFIGURE_ARGS # - Pass these args to configure if ${HAS_CONFIGURE} is set. # Default: "--prefix=${GNU_CONFIGURE_PREFIX} # --infodir=${PREFIX}/${INFO_PATH} --localstatedir=/var # --mandir=${PREFIX}/share/man --build=${CONFIGURE_TARGET}" if # GNU_CONFIGURE is set, "CC=${CC} CFLAGS=${CFLAGS} # PREFIX=${PREFIX} INSTALLPRIVLIB=${PREFIX}/lib # INSTALLARCHLIB=${PREFIX}/lib" if USES=perl5 and # USE_PERL5=configure are set, empty otherwise. # CONFIGURE_ENV - Pass these env (shell-like) to configure if # ${HAS_CONFIGURE} is set. # CONFIGURE_LOG - The name of configure log file. It will be printed to # the screen if configure fails. # Default: config.log # CONFIGURE_FAIL_MESSAGE # - A message displayed to users when configure # fails (note: this assumes the do-configure # target has not been overwritten). This message # will be passed through /usr/bin/fmt before # being shown to the user. # # WITHOUT_FBSD10_FIX Disable FreeBSD 10.0 autotools workaround. # # For build and install: # # MAKEFILE - Name of the makefile. # Default: Makefile # ALL_TARGET - Default target for sub-make in build stage. # Default: all # BUILD_WRKSRC - Directory to do build in (default: ${WRKSRC}). # MAKE_ENV - Additional environment vars passed to sub-make in build # and install stages. # Default: see below # MAKE_ARGS - Any extra arguments to sub-make in build and install stages. # Default: none ## # MAKE_JOBS_UNSAFE # - Disallow multiple jobs even when user set a global override. # To be used with known bad ports. # DISABLE_MAKE_JOBS # - Set to disable the multiple jobs feature. User settable. # MAKE_JOBS_NUMBER # - Override the number of make jobs to be used. User settable. # MAKE_JOBS_NUMBER_LIMIT # - Set a limit for maximum number of make jobs allowed to be # used. ## ccache # # WITH_CCACHE_BUILD # - Enable CCACHE support (devel/ccache). User settable. # CCACHE_DIR # - Which directory to use for ccache (default: $HOME/.ccache) # NO_CCACHE # - Disable CCACHE support for example for certain ports if # CCACHE is enabled. User settable. # # For test: # # TEST_TARGET - Target for sub-make in test stage. If not defined, # no default test target is provided. # Default: (none) # TEST_WRKSRC - Directory to do test in (default: ${WRKSRC}). # TEST_ENV - Additional environment vars passed to sub-make in test # stage # Default: ${MAKE_ENV} # TEST_ARGS - Any extra arguments to sub-make in test stage # Default: ${MAKE_ARGS} # # For install: # # INSTALL_TARGET # - Default target for sub-make in install stage. # Default: install # INSTALL_WRKSRC # - Directory to install from # Default: ${WRKSRC} # NO_MTREE - If set, will not invoke mtree from bsd.port.mk from # the "install" target. # MTREE_FILE - The name of the mtree file. # Default: ${PORTSDIR}/Templates/BSD.local.dist or # /etc/mtree/BSD.usr.dist if ${PREFIX} == "/usr". # PLIST_DIRS - Directories to be added to packing list # PLIST_FILES - Files and symbolic links to be added to packing list # # PLIST - Name of the `packing list' file. # Change this to ${WRKDIR}/PLIST or something if you # need to write to it. (It is not a good idea for a port # to write to any file outside ${WRKDIR} during a normal # build.) # Default: ${PKGDIR}/pkg-plist # TMPPLIST - Name of the `packing list' file after processing # Default: ${WRKDIR}/.PLIST.mktmp # PLIST_SUB - List of "variable=value" pair for substitution in ${PLIST} # Default: see below # # SUB_FILES - Files that should be passed through sed(1) and redirected to # ${WRKDIR}. # - For each file specified in SUB_FILES, there must be a # corresponding file in ${FILESDIR} whose suffix is ".in". For # instance, if the Makefile specifies "SUB_FILES= pkg-message" # then there must be a file called pkg-message.in in # ${FILESDIR}. # - The substitution process is the same as PLIST_FILES, as # described below except that any line beginning with @comment # is deleted. # SUB_LIST - List of "variable=value" pair for substitution in ${SUB_FILES} # Some pairs are added by default: e.g. PREFIX=${PREFIX} # # USE_LDCONFIG - If set to "yes", this adds ${PREFIX}/lib to the list of # directories to be searched for shared libraries. # Otherwise, this is a list of directories to be added to that # list. The directory names are written to # ${LOCALBASE}/libdata/ldconfig/${PKGBASE} which is then # used by the ldconfig startup script. # This mechanism replaces ldconfig scripts installed by some # ports, often under such names as 000.${UNQUENAME}.sh. # If USE_LINUX_PREFIX is defined, the Linux version of # ldconfig will be used instead of the native FreeBSD # version, and the directory list given will be ignored. # USE_LDCONFIG32 # - Same as USE_LDCONFIG but the target file is # ${LOCALBASE}/libdata/ldconfig32/${PKGBASE} instead. # Note: that should only be used on 64-bit architectures. # # DOCSDIR - Name of the directory to install the packages docs in. # Default: ${PREFIX}/share/doc/${PORTNAME} # DOCSDIR_REL - The DOCSDIR relative to ${PREFIX} # EXAMPLESDIR - Name of the directory to install the packages examples in. # Default: ${PREFIX}/share/examples/${PORTNAME} # EXAMPLESDIR_REL # - The EXAMPLESDIR relative to ${PREFIX} # DATADIR - Name of the directory to install the packages shared data in. # Default: ${PREFIX}/share/${PORTNAME} # DATADIR_REL - The DATADIR relative to ${PREFIX} # # WWWDIR - Name of the directory to install the packages www data in. # Default: ${PREFIX}/www/${PORTNAME} # WWWDIR_REL - The WWWDIR relative to ${PREFIX} # # USERS - List of users to create at install time. Each login must # have a corresponding entry in ${UID_FILES}. # GROUPS - List of groups to create at install time. Each group must # have a corresponding entry in ${GID_FILES}. # # DESKTOPDIR - Name of the directory to install ${DESKTOP_ENTRIES} in. # Default: ${PREFIX}/share/applications # DESKTOP_ENTRIES # - List of desktop entry files to generate and install in # ${DESKTOPDIR}. The format is # "Name" "Comment" "Icon" "Exec" "Categories" StartupNotify # Rules: # * Only add desktop entries for applications which do not # require a terminal (i.e. X11 applications). # * If the upstream distribution already installs .desktop # files, you do not need to use this. # * If you require a more elaborate .desktop file than this # variable permits, write it yourself and install it # in ${DESKTOPDIR}. # Notes: # * Comment, Icon and StartupNotify may be empty # strings (""). Categories may be an empty string in some # cases (see below). The other fields are mandatory. # * If Comment is an empty string, port ${COMMENT} will be # used. # * If set, Icon must be either absolute path (usually # ${PREFIX}/share/pixmaps/${PORTNAME}.png) or icon name # without extension if installed icons follow Icon Theme # Specification. # * If Categories is an empty string, bsd.port.mk will try # to deduce a default value using the CATEGORIES variable. # If the deduction fails, you will have to set Categories # manually. You should check the generated value using # "make desktop-categories", and override it if necessary. # * Exec will also be used to name the .desktop file. # * StartupNotify may be true, false or empty (see Desktop # Entry Specification for details). # * The files will be automatically added to ${PLIST}. # Example: # "X Window Information" \ # "Get information about X windows" \ # "${PREFIX}/share/pixmaps/wininfo.png" \ # "${PREFIX}/bin/wininfo" \ # "System;" \ # "" # See http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html # for an explanation of the fields. If you need to create more # than one file, just chain them into a single variable. # # Note that the install target will automatically add manpages (see # above) and also substitute special sequences of characters (delimited # by "%%") as defined in PLIST_SUB to generate ${TMPPLIST}. For # instance, "OSREL=${OSREL}" in PLIST_SUB causes all occurrences of # "%%OSREL%%" in ${PLIST} to be substituted by the value of OSREL. # ${TMPPLIST} is generated before the do-install stage. If you are # generating the packing list on-the-fly, make sure it's generated before # do-install is called! # # This is used in all stages: # # SCRIPTS_ENV - Additional environment vars passed to scripts in # ${SCRIPTDIR} executed by bsd.port.mk. # Default: see below # # Finally, variables to change if you want a special behavior. These # are for debugging purposes. Don't set them in your Makefile. # # ECHO_MSG - Used to print all the '===>' style prompts - override this # to turn them off. # Default: ${ECHO_CMD} # PATCH_DEBUG - If set, print out more information about the patches as # it attempts to apply them. # PKG_DBDIR - Where package installation is recorded; this directory # must not contain anything else. # Default: /var/db/pkg # PORT_DBDIR - Where port configuration options are recorded. # Default: /var/db/ports # NO_PKG_REGISTER # - Don't register a port installation as a package. # FORCE_PKG_REGISTER # - If set, it will overwrite any existing package # registration information in ${PKG_DBDIR}/${PKGNAME}. # NO_DEPENDS - Don't verify build of dependencies. # STRICT_DEPENDS # - Verify dependencies but consider missing dependencies as # fatal. # CHECKSUM_ALGORITHMS # - Different checksum algorithms to check for verifying the # integrity of the distfiles. The absence of the algorithm # in distinfo doesn't make it fail. # Default: sha256 # NO_CHECKSUM - Don't verify the checksum. Typically used when # when you noticed the distfile you just fetched has # a different checksum and you intend to verify if # the port still works with it. # USE_PACKAGE_DEPENDS # - Try to install dependencies from existing packages instead # of building the port from scratch. Fallback on source # if an existing package is not present. # USE_PACKAGE_DEPENDS_ONLY # - Like USE_PACKAGE_DEPENDS, but do not fallback on source. # INSTALL_AS_USER # - Define this to install as the current user, intended # for systems where you have no root access. # DISABLE_SIZE - Do not check the size of a distfile even if the SIZE field # has been specified in distinfo. This is useful # when using an alternate FETCH_CMD. # PKG_CREATE_VERBOSE # - If set, pass the -v option to pkg create which # ensures periodic output during packaging and # will help prevent timeouts by build monitors # PKG_COMPRESSION_FORMAT # - the compression format used when creating a package, see # pkg-create(8) for valid formats # PKG_COMPRESSION_LEVEL # - the compression level to use when creating a package, see # pkg-create(8) for valid values # # End of the list of all variables that need to be defined in a port. # Most port authors should not need to understand anything after this point. # LANG= C LC_ALL= C .export LANG LC_ALL # These need to be absolute since we don't know how deep in the ports # tree we are and thus can't go relative. They can, of course, be overridden # by individual Makefiles or local system make configuration. _LIST_OF_WITH_FEATURES= bind_now debug debuginfo lto pie relro sanitize ssp testing _DEFAULT_WITH_FEATURES= ssp PORTSDIR?= /usr/ports LOCALBASE?= /usr/local LINUXBASE?= /compat/linux DISTDIR?= ${PORTSDIR}/distfiles _DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} INDEXDIR?= ${PORTSDIR} SRC_BASE?= /usr/src USESDIR?= ${PORTSDIR}/Mk/Uses SCRIPTSDIR?= ${PORTSDIR}/Mk/Scripts LIB_DIRS?= /lib /usr/lib ${LOCALBASE}/lib STAGEDIR?= ${WRKDIR}/stage NOTPHONY?= FLAVORS?= FLAVOR?= OVERLAYS?= REWARNFILE= ${WRKDIR}/reinplace_warnings.txt # Disallow forced FLAVOR as make argument since we cannot change it to the # proper default. .if empty(FLAVOR) && !empty(.MAKEOVERRIDES:MFLAVOR) .error FLAVOR may not be passed empty as a make argument. .endif # Store env FLAVOR for later .if !defined(_FLAVOR) _FLAVOR:= ${FLAVOR} .endif .if !defined(PORTS_FEATURES) && empty(${PORTS_FEATURES:MFLAVORS}) PORTS_FEATURES+= FLAVORS .endif MINIMAL_PKG_VERSION= 1.17.2 _PORTS_DIRECTORIES+= ${PKG_DBDIR} ${PREFIX} ${WRKDIR} ${EXTRACT_WRKDIR} \ ${STAGEDIR}${PREFIX} ${WRKDIR}/pkg ${BINARY_LINKDIR} \ ${PKGCONFIG_LINKDIR} # Ensure .CURDIR contains an absolute path without a trailing slash. Failed # builds can occur when PORTSDIR is a symbolic link, or with something like # make -C /usr/ports/category/port/. .CURDIR:= ${.CURDIR:tA} # Ensure .CURDIR doesn't contain a colon, which breaks makefile targets .if ${.CURDIR:S/:/\:/g} != ${.CURDIR} .error The current directory path contains ':', this is not supported .endif # make sure bmake treats -V as expected .MAKE.EXPAND_VARIABLES= yes .include "${PORTSDIR}/Mk/bsd.commands.mk" # Do not leak flavors to childs make .MAKEOVERRIDES:= ${.MAKEOVERRIDES:NFLAVOR} .if defined(CROSS_TOOLCHAIN) . if !defined(CROSS_SYSROOT) IGNORE= CROSS_SYSROOT should be defined . endif .include "${LOCALBASE}/share/toolchains/${CROSS_TOOLCHAIN}.mk" # Do not define CPP on purpose . if !defined(HOSTCC) HOSTCC:= ${CC} HOSTCXX:= ${CXX} . endif . if !defined(CC_FOR_BUILD) CC_FOR_BUILD:= ${HOSTCC} CXX_FOR_BUILD:= ${HOSTCXX} . endif CONFIGURE_ENV+= HOSTCC="${HOSTCC}" HOSTCXX="${HOSTCXX}" CC_FOR_BUILD="${CC_FOR_BUILD}" CXX_FOR_BUILD="${CXX_FOR_BUILD}" CC= ${XCC} --sysroot=${CROSS_SYSROOT} CXX= ${XCXX} --sysroot=${CROSS_SYSROOT} CPP= ${XCPP} --sysroot=${CROSS_SYSROOT} . for _tool in AS AR LD NM OBJCOPY RANLIB SIZE STRINGS ${_tool}= ${CROSS_BINUTILS_PREFIX}${_tool:tl} . endfor LD+= --sysroot=${CROSS_SYSROOT} STRIP_CMD= ${CROSS_BINUTILS_PREFIX}strip # only bmake support the below STRIPBIN= ${STRIP_CMD} .export.env STRIPBIN .endif # # DESTDIR section to start a chrooted process if invoked with DESTDIR set # .if defined(DESTDIR) && !empty(DESTDIR) && !defined(CHROOTED) && \ !defined(BEFOREPORTMK) && !defined(INOPTIONSMK) .include "${PORTSDIR}/Mk/bsd.destdir.mk" .else . if !target(makepatch) makepatch: @${SETENV} WRKDIR=${WRKDIR} PATCHDIR=${PATCHDIR} \ PATCH_WRKSRC=${PATCH_WRKSRC} \ STRIP_COMPONENTS="${PATCH_STRIP:S/-p//}" \ ${SH} ${SCRIPTSDIR}/smart_makepatch.sh . endif # Start of options section . if defined(INOPTIONSMK) || ( !defined(USEOPTIONSMK) && !defined(AFTERPORTMK) ) # Get the default maintainer MAINTAINER?= ports@FreeBSD.org # Get the architecture . if !defined(ARCH) ARCH!= ${UNAME} -p . endif HOSTARCH:= ${ARCH} . if defined(CROSS_TOOLCHAIN) ARCH= ${CROSS_TOOLCHAIN:C,-.*$,,} . endif _EXPORTED_VARS+= ARCH . if ${ARCH} == powerpc64 . if !defined(PPC_ABI) PPC_ABI!= ${CC} -dM -E - < /dev/null | ${AWK} '/_CALL_ELF/{print "ELFv"$$3}' . if ${PPC_ABI} != ELFv2 PPC_ABI= ELFv1 . endif . endif _EXPORTED_VARS+= PPC_ABI . endif # Get operating system versions for a cross build . if defined(CROSS_SYSROOT) . if !exists(${CROSS_SYSROOT}/usr/include/sys/param.h) .error CROSS_SYSROOT does not include /usr/include/sys/param.h. . endif OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${CROSS_SYSROOT}/usr/include/sys/param.h _OSRELEASE!= ${AWK} -v version=${OSVERSION} 'END { printf("%d.%d-CROSS", version / 100000, version / 1000 % 100) }' < /dev/null . endif # Get the operating system type . if !defined(OPSYS) OPSYS!= ${UNAME} -s . endif _EXPORTED_VARS+= OPSYS . if !defined(_OSRELEASE) _OSRELEASE!= ${UNAME} -r . endif _EXPORTED_VARS+= _OSRELEASE # Get the operating system revision OSREL?= ${_OSRELEASE:C/-.*//} _EXPORTED_VARS+= OSREL # Get __FreeBSD_version . if !defined(OSVERSION) . if exists(/usr/include/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < /usr/include/sys/param.h . elif exists(${SRC_BASE}/sys/sys/param.h) OSVERSION!= ${AWK} '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${SRC_BASE}/sys/sys/param.h . else .error Unable to determine OS version. Either define OSVERSION, install /usr/include/sys/param.h or define SRC_BASE. . endif . endif _EXPORTED_VARS+= OSVERSION -. if ${OPSYS} == FreeBSD && (${OSVERSION} < 1302000 ) +. if ${OPSYS} == FreeBSD && (${OSVERSION} < 1303000 ) _UNSUPPORTED_SYSTEM_MESSAGE= Ports Collection support for your ${OPSYS} version has ended, and no ports\ are guaranteed to build on this system. Please upgrade to a supported release. . if defined(ALLOW_UNSUPPORTED_SYSTEM) WARNING+= "${_UNSUPPORTED_SYSTEM_MESSAGE}" . else show-unsupported-system-error: @${ECHO_MSG} "/!\\ ERROR: /!\\" @${ECHO_MSG} @${ECHO_MSG} "${_UNSUPPORTED_SYSTEM_MESSAGE}" | ${FMT_80} @${ECHO_MSG} @${ECHO_MSG} "No support will be provided if you silence this message by defining ALLOW_UNSUPPORTED_SYSTEM." | ${FMT_80} @${ECHO_MSG} @${FALSE} . endif . endif # Convert OSVERSION to major release number _OSVERSION_MAJOR= ${OSVERSION:C/([0-9]?[0-9])([0-9][0-9])[0-9]{3}/\1/} # Sanity checks for chroot/jail building. # Skip if OSVERSION specified on cmdline for testing. Only works for bmake. . if !defined(.MAKEOVERRIDES) || !${.MAKEOVERRIDES:MOSVERSION} . if ${_OSVERSION_MAJOR} != ${_OSRELEASE:R} . if !defined(I_DONT_CARE_IF_MY_BUILDS_TARGET_THE_WRONG_RELEASE) .error UNAME_r (${_OSRELEASE}) and OSVERSION (${OSVERSION}) do not agree on major version number. . endif . elif ${_OSVERSION_MAJOR} != ${OSREL:R} .error OSREL (${OSREL}) and OSVERSION (${OSVERSION}) do not agree on major version number. . endif . endif # Only define tools here (for transition period with between pkg tools) .include "${PORTSDIR}/Mk/bsd.commands.mk" . if !defined(_PKG_CHECKED) && !defined(PACKAGE_BUILDING) && exists(${PKG_BIN}) . if !defined(_PKG_VERSION) _PKG_VERSION!= ${PKG_BIN} -v . endif # XXX hack for smooth transition towards pkg 1.17 _PKG_BEFORE_PKGEXT!= ${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} 1.17.0 . if ${_PKG_BEFORE_PKGEXT} == "<" _PKG_TRANSITIONING_TO_NEW_EXT= yes _EXPORTED_VARS+= _PKG_TRANSITIONING_TO_NEW_EXT WARNING+= "It is strongly recommended to upgrade to a newer version of pkg first" . endif # XXX End of hack _PKG_STATUS!= ${PKG_BIN} version -t ${_PKG_VERSION:C/-.*//g} ${MINIMAL_PKG_VERSION} . if ${_PKG_STATUS} == "<" IGNORE= pkg(8) must be version ${MINIMAL_PKG_VERSION} or greater, but you have ${_PKG_VERSION}. You must upgrade the ${PKG_ORIGIN} port first . endif _PKG_CHECKED= 1 . endif _EXPORTED_VARS+= _PKG_CHECKED MASTERDIR?= ${.CURDIR} . if ${MASTERDIR} != ${.CURDIR} SLAVE_PORT?= yes MASTER_PORT?=${MASTERDIR:C/[^\/]+\/\.\.\///:C/[^\/]+\/\.\.\///:C/^.*\/([^\/]+\/[^\/]+)$/\\1/} . else SLAVE_PORT?= no MASTER_PORT?= . endif # If they exist, include Makefile.inc, then architecture/operating # system specific Makefiles, then local Makefile.local. . if ${MASTERDIR} != ${.CURDIR} && exists(${.CURDIR}/../Makefile.inc) .include "${.CURDIR}/../Makefile.inc" USE_SUBMAKE= yes . endif . if exists(${MASTERDIR}/../Makefile.inc) .include "${MASTERDIR}/../Makefile.inc" USE_SUBMAKE= yes . endif . if exists(${MASTERDIR}/Makefile.${ARCH}-${OPSYS}) .include "${MASTERDIR}/Makefile.${ARCH}-${OPSYS}" USE_SUBMAKE= yes . elif exists(${MASTERDIR}/Makefile.${OPSYS}) .include "${MASTERDIR}/Makefile.${OPSYS}" USE_SUBMAKE= yes . elif exists(${MASTERDIR}/Makefile.${ARCH}) .include "${MASTERDIR}/Makefile.${ARCH}" USE_SUBMAKE= yes . endif . if exists(${MASTERDIR}/Makefile.local) .include "${MASTERDIR}/Makefile.local" USE_SUBMAKE= yes . elif ${MASTERDIR} != ${.CURDIR} && exists(${.CURDIR}/Makefile.local) .include "${.CURDIR}/Makefile.local" USE_SUBMAKE= yes . endif . for _CATEGORY in ${CATEGORIES} PKGCATEGORY?= ${_CATEGORY} . endfor _PORTDIRNAME= ${.CURDIR:T} PORTDIRNAME?= ${_PORTDIRNAME} PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME} # Now that PKGORIGIN is set, look for origin-specific variables. # These are typically set in a make.conf, in the form: # # category_portname_VARS= varname=value othervar+=value novar@ # # e.g. devel_llvm10_VARS= MAKE_JOBS_NUMBER=2 . for var in ${${PKGORIGIN:S/\//_/}_VARS:C/=.*//:O:u} . if ${var:M*@} . undef ${var:C/.$//} . elif ${var:M*+} ${var:C/.$//}+= ${${PKGORIGIN:S/\//_/}_VARS:M${var}=*:C/[^+]*\+=//:C/^"(.*)"$$/\1/} . else ${var}= ${${PKGORIGIN:S/\//_/}_VARS:M${var}=*:C/[^=]*=//:C/^"(.*)"$$/\1/} . endif . endfor # where 'make config' records user configuration options PORT_DBDIR?= /var/db/ports UID_FILES?= ${PORTSDIR}/UIDs GID_FILES?= ${PORTSDIR}/GIDs UID_OFFSET?= 0 GID_OFFSET?= 0 # predefined accounts from src/etc/master.passwd # alpha numeric sort order USERS_BLACKLIST= _dhcp _pflogd _ypldap auditdistd bin bind daemon games hast kmem mailnull man news nobody operator pop proxy root smmsp sshd toor tty unbound uucp www # predefined accounts from src/etc/group # alpha numeric sort order GROUPS_BLACKLIST= _dhcp _pflogd _ypldap audit authpf bin bind daemon dialer ftp games guest hast kmem mail mailnull man network news nobody nogroup operator proxy smmsp sshd staff sys tty unbound uucp wheel www LDCONFIG_DIR= libdata/ldconfig LDCONFIG32_DIR= libdata/ldconfig32 # At least KDE needs TMPDIR for the package building, # so we're setting it to the known default value. . if defined(PACKAGE_BUILDING) TMPDIR?= /tmp . endif # defined(PACKAGE_BUILDING) # Enable default features unless they have been disabled by the user, and cleanup . for feature in ${_DEFAULT_WITH_FEATURES} . if !defined(WITHOUT_${feature:tu}) WITH_${feature:tu}= yes .undef WITHOUT_${feature:tu} . endif . endfor # For each Feature we support, process the # WITH_FEATURE_PORTS and WITHOUT_FEATURE_PORTS variables . for feature in ${_LIST_OF_WITH_FEATURES} . if defined(WITHOUT_${feature:tu}_PORTS) && ${WITHOUT_${feature:tu}_PORTS:M${PKGORIGIN}} # Feature disabled for this port, remove WITH_ .undef WITH_${feature:tu} . elif defined(WITH_${feature:tu}_PORTS) && ${WITH_${feature:tu}_PORTS:M${PKGORIGIN}} # Feature enabled for this port, set WITH_ WITH_${feature:tu}= yes . endif . endfor . if defined(USE_LTO) WITH_LTO= ${USE_LTO} WARNING+= USE_LTO is deprecated in favor of WITH_LTO . endif .include "${PORTSDIR}/Mk/bsd.default-versions.mk" .include "${PORTSDIR}/Mk/bsd.options.mk" . endif # End of options section. # Start of pre-makefile section. . if !defined(AFTERPORTMK) && !defined(INOPTIONSMK) . if defined(_PREMKINCLUDED) DEV_ERROR+= "you cannot include bsd.port[.pre].mk twice" . endif _PREMKINCLUDED= yes . if defined(PORTVERSION) . if ${PORTVERSION:M*[-_,]*}x != x IGNORE= PORTVERSION ${PORTVERSION} may not contain '-' '_' or ',' . endif . if defined(DISTVERSION) DEV_ERROR+= "Defining both PORTVERSION and DISTVERSION is wrong, only set one, if necessary, set DISTNAME" . endif DISTVERSION?= ${PORTVERSION:S/:/::/g} . elif defined(DISTVERSION) PORTVERSION= ${DISTVERSION:tl:C/([a-z])[a-z]+/\1/g:C/([0-9])([a-z])/\1.\2/g:C/:(.)/\1/g:C/[^a-z0-9+]+/./g} . endif PORTREVISION?= 0 . if ${PORTREVISION} != 0 _SUF1= _${PORTREVISION} . endif PORTEPOCH?= 0 . if ${PORTEPOCH} != 0 _SUF2= ,${PORTEPOCH} . endif PKGVERSION= ${PORTVERSION:C/[-_,]/./g}${_SUF1}${_SUF2} PKGNAME= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PKGVERSION} DISTVERSIONFULL= ${DISTVERSIONPREFIX}${DISTVERSION:C/:(.)/\1/g}${DISTVERSIONSUFFIX} DISTNAME?= ${PORTNAME}-${DISTVERSIONFULL} INDEXFILE?= INDEX-${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} PACKAGES?= ${PORTSDIR}/packages TEMPLATES?= ${PORTSDIR}/Templates KEYWORDS?= ${PORTSDIR}/Keywords WRAPPERSDIR?= ${PORTSDIR}/Mk/Wrappers/ PATCHDIR?= ${MASTERDIR}/files FILESDIR?= ${MASTERDIR}/files SCRIPTDIR?= ${MASTERDIR}/scripts PKGDIR?= ${MASTERDIR} PREFIX?= ${LOCALBASE} PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg . if defined(USE_LOCAL_MK) .include "${PORTSDIR}/Mk/bsd.local.mk" . endif . for odir in ${OVERLAYS} .sinclude "${odir}/Mk/bsd.overlay.mk" . endfor . if defined(USE_JAVA) .include "${PORTSDIR}/Mk/bsd.java.mk" . endif . if defined(USE_OCAML) .include "${PORTSDIR}/Mk/bsd.ocaml.mk" . endif . if defined(USE_APACHE_BUILD) USES+= apache:build,${USE_APACHE_BUILD:C/2([0-9])/2.\1/g} . elif defined(USE_APACHE_RUN) USES+= apache:run,${USE_APACHE_RUN:C/2([0-9])/2.\1/g} . elif defined(USE_APACHE) USE_APACHE:= ${USE_APACHE:S/common/server,/} USES+= apache:${USE_APACHE:C/2([0-9])/2.\1/g} . endif . if defined(USE_GECKO) .include "${PORTSDIR}/Mk/bsd.gecko.mk" . endif . if defined(USE_MYSQL) USE_MYSQL:= ${USE_MYSQL:N[yY][eE][sS]:Nclient} . if defined(WANT_MYSQL_VER) . if empty(USE_MYSQL) USE_MYSQL:=${WANT_MYSQL_VER} . else USE_MYSQL:=${USE_MYSQL},${WANT_MYSQL_VER} . endif . endif USES+=mysql:${USE_MYSQL} . endif . if defined(WANT_WX) || defined(USE_WX) || defined(USE_WX_NOT) .include "${PORTSDIR}/Mk/bsd.wx.mk" . endif UID?= ${.MAKE.UID} DESTDIRNAME?= DESTDIR # setup empty variables for USES targets . for target in sanity fetch extract patch configure build install test package stage _USES_${target}?= . endfor # Loading features . for f in ${USES} _f:= ${f:C/\:.*//} . if !defined(${_f}_ARGS) ${_f}_ARGS:= ${f:C/^[^\:]*(\:|\$)//:S/,/ /g} . endif . endfor . for f in ${USES} .undef _usefound . for udir in ${OVERLAYS:C,$,/Mk/Uses,} ${USESDIR} _usefile= ${udir}/${f:C/\:.*//}.mk . if exists(${_usefile}) && !defined(_usefound) _usefound= .include "${_usefile}" . endif . endfor . if !defined(_usefound) ERROR+= "Unknown USES=${f:C/\:.*//}" . endif . endfor . if !empty(FLAVORS) . if ${FLAVORS:Mall} DEV_ERROR+= "FLAVORS cannot contain 'all', it is a reserved value" . endif . for f in ${FLAVORS} . if ${f:C/[[:lower:][:digit:]_]//g} _BAD_FLAVOR_NAMES+= ${f} . endif . endfor . if !empty(_BAD_FLAVOR_NAMES) DEV_ERROR+= "FLAVORS contains flavors that are not all [a-z0-9_]: ${_BAD_FLAVOR_NAMES}" . endif . endif . if !empty(FLAVOR) . if empty(FLAVORS) IGNORE= FLAVOR is defined (to ${FLAVOR}) while this port does not have FLAVORS . elif ! ${FLAVORS:M${FLAVOR}} IGNORE= Unknown flavor '${FLAVOR}', possible flavors: ${FLAVORS} . endif . endif . if !empty(FLAVORS) && empty(FLAVOR) FLAVOR= ${FLAVORS:[1]} . endif # Reorder FLAVORS so the default is first if set by the port. . if empty(_FLAVOR) && !empty(FLAVORS) && !empty(FLAVOR) FLAVORS:= ${FLAVOR} ${FLAVORS:N${FLAVOR}} . endif . if !empty(FLAVOR) && !defined(_DID_FLAVORS_HELPERS) _DID_FLAVORS_HELPERS= yes _FLAVOR_HELPERS_OVERRIDE= DESCR PLIST PKGNAMEPREFIX PKGNAMESUFFIX _FLAVOR_HELPERS_APPEND= CONFLICTS CONFLICTS_BUILD CONFLICTS_INSTALL \ PKG_DEPENDS EXTRACT_DEPENDS PATCH_DEPENDS \ FETCH_DEPENDS BUILD_DEPENDS LIB_DEPENDS \ RUN_DEPENDS TEST_DEPENDS # These overwrite the current value . for v in ${_FLAVOR_HELPERS_OVERRIDE} . if defined(${FLAVOR}_${v}) ${v}= ${${FLAVOR}_${v}} . endif . endfor # These append to the current value . for v in ${_FLAVOR_HELPERS_APPEND} . if defined(${FLAVOR}_${v}) ${v}+= ${${FLAVOR}_${v}} . endif . endfor . for v in BROKEN IGNORE . if defined(${FLAVOR}_${v}) ${v}= flavor "${FLAVOR}" ${${FLAVOR}_${v}} . endif . endfor . if defined(FLAVORS_SUB) PLIST_SUB+= ${FLAVORS:N${FLAVOR}:@v@${v:tu}="\@comment " NO_${v:tu}=""@} PLIST_SUB+= ${FLAVOR:tu}="" NO_${FLAVOR:tu}="@comment " SUB_LIST+= ${FLAVORS:N${FLAVOR}:@v@${v:tu}="\@comment " NO_${v:tu}=""@} SUB_LIST+= ${FLAVOR:tu}="" NO_${FLAVOR:tu}="@comment " . endif . endif # defined(${FLAVOR}) EXTRACT_SUFX?= .tar.gz . if defined(USE_LINUX_PREFIX) PREFIX= ${LINUXBASE} DATADIR?= ${PREFIX}/usr/share/${PORTNAME} DOCSDIR?= ${PREFIX}/usr/share/doc/${PORTNAME}-${DISTVERSION} NO_LICENSES_INSTALL= yes NO_MTREE= yes . endif # You can force skipping these test by defining IGNORE_PATH_CHECKS . if !defined(IGNORE_PATH_CHECKS) . if ! ${PREFIX:M/*} .BEGIN: @${ECHO_MSG} "PREFIX must be defined as an absolute path so that when 'make'" @${ECHO_MSG} "is invoked in the work area PREFIX points to the right place." @${FALSE} . endif . endif DATADIR?= ${PREFIX}/share/${PORTNAME} DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} ETCDIR?= ${PREFIX}/etc/${PORTNAME} EXAMPLESDIR?= ${PREFIX}/share/examples/${PORTNAME} WWWDIR?= ${PREFIX}/www/${PORTNAME} # Owner and group of the WWW user WWWOWN?= www WWWGRP?= www # Keep PKGNG_ORIGIN/WITH_PKGNG for compat with scripts which are looking for it PKG_ORIGIN?= ports-mgmt/pkg PKGNG_ORIGIN= ${PKG_ORIGIN} WITH_PKGNG?= yes WITH_PKG?= ${WITH_PKGNG} . endif # End of pre-makefile section. # Start of post-makefile section. . if !defined(BEFOREPORTMK) && !defined(INOPTIONSMK) . if defined(_POSTMKINCLUDED) DEV_ERROR+= "${PKGNAME}: Makefile error: you cannot include bsd.port[.post].mk twice" @${FALSE} . endif _POSTMKINCLUDED= yes . if defined(BUNDLE_LIBS) PKG_NOTES+= no_provide_shlib PKG_NOTE_no_provide_shlib= yes . endif . if defined(DEPRECATED) PKG_NOTES+= deprecated PKG_NOTE_deprecated=${DEPRECATED} . endif . if defined(EXPIRATION_DATE) PKG_NOTES+= expiration_date PKG_NOTE_expiration_date= ${EXPIRATION_DATE} . endif . if !empty(FLAVOR) PKG_NOTES+= flavor PKG_NOTE_flavor= ${FLAVOR} . endif WRK_ENV+= HOME=${WRKDIR} \ PWD="$${PWD}" \ __MAKE_CONF=${NONEXISTENT} . for e in OSVERSION PATH TERM TMPDIR \ UNAME_b UNAME_i UNAME_K UNAME_m UNAME_n \ UNAME_p UNAME_r UNAME_s UNAME_U UNAME_v . ifdef ${e} WRK_ENV+= ${e}=${${e}:Q} . endif . endfor TEST_ARGS?= ${MAKE_ARGS} TEST_ENV?= ${MAKE_ENV} PKG_ENV+= PORTSDIR=${PORTSDIR} CONFIGURE_ENV+= XDG_DATA_HOME=${WRKDIR} \ XDG_CONFIG_HOME=${WRKDIR} \ XDG_CACHE_HOME=${WRKDIR}/.cache \ HOME=${WRKDIR} MAKE_ENV+= XDG_DATA_HOME=${WRKDIR} \ XDG_CONFIG_HOME=${WRKDIR} \ XDG_CACHE_HOME=${WRKDIR}/.cache \ HOME=${WRKDIR} # Respect TMPDIR passed via make.conf or similar and pass it down # to configure and make. . if defined(TMPDIR) MAKE_ENV+= TMPDIR="${TMPDIR}" CONFIGURE_ENV+= TMPDIR="${TMPDIR}" . endif # defined(TMPDIR) QA_ENV+= STAGEDIR=${STAGEDIR} \ PREFIX=${PREFIX} \ LINUXBASE=${LINUXBASE} \ LOCALBASE=${LOCALBASE} \ REWARNFILE=${REWARNFILE} \ "STRIP=${STRIP}" \ TMPPLIST=${TMPPLIST} \ CURDIR='${.CURDIR}' \ PKGMESSAGES='${_PKGMESSAGES}' \ FLAVOR=${FLAVOR} \ FLAVORS='${FLAVORS}' \ BUNDLE_LIBS=${BUNDLE_LIBS} \ LDCONFIG_DIR="${LDCONFIG_DIR}" \ PKGORIGIN=${PKGORIGIN} \ LIB_RUN_DEPENDS='${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}' \ UNIFIED_DEPENDS=${_UNIFIED_DEPENDS:C,([^:]*:[^:]*):?.*,\1,:O:u:Q} \ WANTED_LIBRARIES='${LIB_DEPENDS:C,([^:]*):([^:]*):?.*,\1,}' \ PKGBASE=${PKGBASE} \ LICENSE="${LICENSE}" \ LICENSE_PERMS="${_LICENSE_PERMS}" \ DISABLE_LICENSES="${DISABLE_LICENSES:Dyes}" \ PORTNAME=${PORTNAME} \ NO_ARCH=${NO_ARCH} \ "NO_ARCH_IGNORE=${NO_ARCH_IGNORE}" . if !empty(USES:Mssl) QA_ENV+= USESSSL=yes . endif . if !empty(USES:Mdesktop-file-utils) QA_ENV+= USESDESKTOPFILEUTILS=yes . endif . if !empty(USES:Mlibtool*) QA_ENV+= USESLIBTOOL=yes . endif . if !empty(USES:Mshared-mime-info) QA_ENV+= USESSHAREDMIMEINFO=yes . endif . if !empty(USES:Mterminfo) QA_ENV+= USESTERMINFO=yes . endif CO_ENV+= STAGEDIR=${STAGEDIR} \ PREFIX=${PREFIX} \ LOCALBASE=${LOCALBASE} \ WRKDIR=${WRKDIR} \ WRKSRC=${WRKSRC} \ MTREE_FILE=${MTREE_FILE} \ TMPPLIST=${TMPPLIST} \ SCRIPTSDIR=${SCRIPTSDIR} \ PLIST_SUB_SED="${PLIST_SUB_SED}" \ PORT_OPTIONS="${PORT_OPTIONS}" \ PORTSDIR="${PORTSDIR}" . if defined(CROSS_SYSROOT) PKG_ENV+= ABI_FILE=${CROSS_SYSROOT}/bin/sh MAKE_ENV+= NM=${NM} \ STRIPBIN=${STRIPBIN} \ PKG_CONFIG_SYSROOT_DIR="${CROSS_SYSROOT}" CONFIGURE_ENV+= PKG_CONFIG_SYSROOT_DIR="${CROSS_SYSROOT}" . endif . if empty(FLAVOR) _WRKDIR= work . else _WRKDIR= work-${FLAVOR} . endif WRKDIR?= ${WRKDIRPREFIX}${.CURDIR}/${_WRKDIR} BINARY_LINKDIR= ${WRKDIR}/.bin PATH:= ${BINARY_LINKDIR}:${PATH} . if !${MAKE_ENV:MPATH=*} && !${CONFIGURE_ENV:MPATH=*} MAKE_ENV+= PATH=${PATH} CONFIGURE_ENV+= PATH=${PATH} . endif PKGCONFIG_LINKDIR= ${WRKDIR}/.pkgconfig PKGCONFIG_BASEDIR= /usr/libdata/pkgconfig . if !${MAKE_ENV:MPKG_CONFIG_LIBDIR=*} && !${CONFIGURE_ENV:MPKG_CONFIG_LIBDIR=*} MAKE_ENV+= PKG_CONFIG_LIBDIR=${PKGCONFIG_LINKDIR}:${LOCALBASE}/libdata/pkgconfig:${LOCALBASE}/share/pkgconfig:${PKGCONFIG_BASEDIR} CONFIGURE_ENV+= PKG_CONFIG_LIBDIR=${PKGCONFIG_LINKDIR}:${LOCALBASE}/libdata/pkgconfig:${LOCALBASE}/share/pkgconfig:${PKGCONFIG_BASEDIR} . endif . if !defined(IGNORE_MASTER_SITE_GITHUB) && defined(USE_GITHUB) && empty(USE_GITHUB:Mnodefault) . if defined(WRKSRC) DEV_WARNING+= "You are using USE_GITHUB and WRKSRC is set which is wrong. Set GH_PROJECT correctly or set WRKSRC_SUBDIR and remove WRKSRC entirely." . endif WRKSRC?= ${WRKDIR}/${GH_PROJECT_DEFAULT}-${GH_TAGNAME_EXTRACT} . endif . if !default(IGNORE_MASTER_SITE_GITLAB) && defined(USE_GITLAB) && empty(USE_GITLAB:Mnodefault) . if defined(WRKSRC) DEV_WARNING+= "You are using USE_GITLAB and WRKSRC is set which is wrong. Set GL_PROJECT, GL_ACCOUNT correctly, and/or set WRKSRC_SUBDIR and remove WRKSRC entirely." . endif WRKSRC?= ${WRKDIR}/${GL_PROJECT}-${GL_TAGNAME} . endif # If the distname is not extracting into a specific subdirectory, have the # ports framework force extract into a subdirectory so that metadata files # do not get in the way of the build, and vice-versa. . if defined(NO_WRKSUBDIR) # Some ports have DISTNAME=PORTNAME, and USE_RC_SUBR=PORTNAME, in those case, # the rc file will conflict with WRKSRC, as WRKSRC is artificial, make it the # most unlikely to conflict as we can. WRKSRC?= ${WRKDIR}/${PKGNAME} EXTRACT_WRKDIR:= ${WRKSRC} . else WRKSRC?= ${WRKDIR}/${DISTNAME} EXTRACT_WRKDIR:= ${WRKDIR} . endif . if defined(WRKSRC_SUBDIR) WRKSRC:= ${WRKSRC}/${WRKSRC_SUBDIR} . endif . if defined(CONFIGURE_OUTSOURCE) CONFIGURE_CMD?= ${WRKSRC}/${CONFIGURE_SCRIPT} CONFIGURE_WRKSRC?= ${WRKDIR}/.build BUILD_WRKSRC?= ${CONFIGURE_WRKSRC} INSTALL_WRKSRC?= ${CONFIGURE_WRKSRC} TEST_WRKSRC?= ${CONFIGURE_WRKSRC} . endif PATCH_WRKSRC?= ${WRKSRC} CONFIGURE_WRKSRC?= ${WRKSRC} BUILD_WRKSRC?= ${WRKSRC} INSTALL_WRKSRC?=${WRKSRC} TEST_WRKSRC?= ${WRKSRC} PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE} \ RESETPREFIX=${PREFIX} SUB_LIST+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} \ DATADIR=${DATADIR} DOCSDIR=${DOCSDIR} EXAMPLESDIR=${EXAMPLESDIR} \ WWWDIR=${WWWDIR} ETCDIR=${ETCDIR} # This is used for check-stagedir.sh and check_leftover.sh to replace # directories/files with PLIST_SUB %%KEYS%%. # Remove VARS which values are PLIST_SUB_SED_MIN long or shorter PLIST_SUB_SED_MIN?= 2 PLIST_SUB_SED_tmp1= ${PLIST_SUB:C/.*=.{1,${PLIST_SUB_SED_MIN}}$//g} # Remove VARS that are too generic # Remove empty values # Remove @comment values PLIST_SUB_SED_tmp2= ${PLIST_SUB_SED_tmp1:NEXTRACT_SUFX=*:NOSREL=*:NLIB32DIR=*:NPREFIX=*:NLOCALBASE=*:NRESETPREFIX=*:N*="":N*="@comment*} # Handle VARS for which there is a _regex entry PLIST_SUB_SED_tmp3?= ${PLIST_SUB_SED_tmp2:C/(${PLIST_SUB:M*_regex=*:C/_regex=.*/=.*/:Q:S/\\ /|/g:S/\\//g})//:C/(.*)_regex=(.*)/\1=\2/} # Remove quotes # Replace . with \. for later sed(1) usage PLIST_SUB_SED?= ${PLIST_SUB_SED_tmp3:C/([^=]*)="?([^"]*)"?/s!\2!%%\1%%!g;/g:C/\./[.]/g} # kludge to strip trailing whitespace from CFLAGS; # sub-configure will not # survive double space CFLAGS:= ${CFLAGS:C/ $//} . if defined(WITHOUT_CPU_CFLAGS) . if defined(_CPUCFLAGS) . if !empty(_CPUCFLAGS) CFLAGS:= ${CFLAGS:C/${_CPUCFLAGS}//} . endif . endif . endif . for f in ${_LIST_OF_WITH_FEATURES} . if defined(WITH_${f:tu}) .include "${PORTSDIR}/Mk/Features/$f.mk" . endif . endfor # We will control debug files. Don't let builds that use /usr/share/mk # split out debug symbols since the plist won't know to expect it. MAKE_ENV+= MK_DEBUG_FILES=no MAKE_ENV+= MK_KERNEL_SYMBOLS=no CONFIGURE_SHELL?= ${SH} MAKE_SHELL?= ${SH} CONFIGURE_ENV+= SHELL=${CONFIGURE_SHELL} CONFIG_SHELL=${CONFIGURE_SHELL} MAKE_ENV+= SHELL=${MAKE_SHELL} NO_LINT=YES . if defined(PATCHFILES) && ${PATCHFILES:M*.zip} PATCH_DEPENDS+= ${LOCALBASE}/bin/unzip:archivers/unzip . endif # Check the compatibility layer for amd64 . if ${ARCH} == "amd64" . if exists(/usr/lib32) HAVE_COMPAT_IA32_LIBS?= YES . endif . if !defined(HAVE_COMPAT_IA32_KERN) HAVE_COMPAT_IA32_KERN!= if ${SYSCTL} -n compat.ia32.maxvmem >/dev/null 2>&1; then echo YES; fi; echo . if empty(HAVE_COMPAT_IA32_KERN) .undef HAVE_COMPAT_IA32_KERN . endif . endif . endif _EXPORTED_VARS+= HAVE_COMPAT_IA32_KERN . if defined(IA32_BINARY_PORT) && ${ARCH} != "i386" . if ${ARCH} == "amd64" . if !defined(HAVE_COMPAT_IA32_KERN) IGNORE= requires a kernel with compiled-in IA32 compatibility . elif !defined(HAVE_COMPAT_IA32_LIBS) IGNORE= requires 32-bit libraries installed under /usr/lib32 . endif _LDCONFIG_FLAGS=-32 LIB32DIR= lib32 . else IGNORE= requires i386 (or compatible) platform to run . endif . else LIB32DIR= lib . endif PLIST_SUB+= LIB32DIR=${LIB32DIR} . if ${WITH_PKG} == devel PKG_ORIGIN= ports-mgmt/pkg-devel . endif . if !defined(PKG_DEPENDS) && !defined(CLEAN_FETCH_ENV) PKG_DEPENDS+= ${LOCALBASE}/sbin/pkg:${PKG_ORIGIN} . endif . if defined(USE_GCC) .include "${PORTSDIR}/Mk/bsd.gcc.mk" . endif . if defined(LLD_UNSAFE) && ${/usr/bin/ld:L:tA} == /usr/bin/ld.lld LDFLAGS+= -fuse-ld=bfd BINARY_ALIAS+= ld=${LD} . if !defined(USE_BINUTILS) . if exists(/usr/bin/ld.bfd) LD= /usr/bin/ld.bfd CONFIGURE_ENV+= LD=${LD} MAKE_ENV+= LD=${LD} . else USE_BINUTILS= yes . endif . endif . endif . if defined(USE_BINUTILS) && !defined(DISABLE_BINUTILS) BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils BINUTILS?= ADDR2LINE AR AS CPPFILT GPROF LD NM OBJCOPY OBJDUMP RANLIB \ READELF SIZE STRINGS BINUTILS_NO_MAKE_ENV?= . for b in ${BINUTILS} ${b}= ${LOCALBASE}/bin/${b:C/PP/++/:tl} . if defined(GNU_CONFIGURE) || defined(BINUTILS_CONFIGURE) CONFIGURE_ENV+= ${b}="${${b}}" . endif . if ${BINUTILS_NO_MAKE_ENV:M${b}} == "" MAKE_ENV+= ${b}="${${b}}" . endif . endfor . endif . if defined(USE_RC_SUBR) SUB_FILES+= ${USE_RC_SUBR} . endif . if defined(USE_LDCONFIG) && ${USE_LDCONFIG:tl} == "yes" USE_LDCONFIG= ${PREFIX}/lib . endif . if defined(USE_LDCONFIG32) && ${USE_LDCONFIG32:tl} == "yes" IGNORE= has USE_LDCONFIG32 set to yes, which is not correct . endif . if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) . if defined(USE_LINUX_PREFIX) PLIST_FILES+= "@ldconfig-linux ${LINUXBASE}" . else PLIST_FILES+= "@ldconfig" . endif . endif PKG_IGNORE_DEPENDS?= 'this_port_does_not_exist' . if defined(_DESTDIR_VIA_ENV) MAKE_ENV+= ${DESTDIRNAME}=${STAGEDIR} . else MAKE_ARGS+= ${DESTDIRNAME}=${STAGEDIR} . endif . if defined(NO_PREFIX_RMDIR) CO_ENV+= NO_PREFIX_RMDIR=1 . else CO_ENV+= NO_PREFIX_RMDIR=0 . endif METADIR= ${WRKDIR}/.metadir PKGPREINSTALL?= ${PKGDIR}/pkg-pre-install PKGPOSTINSTALL?= ${PKGDIR}/pkg-post-install PKGPREDEINSTALL?= ${PKGDIR}/pkg-pre-deinstall PKGPOSTDEINSTALL?= ${PKGDIR}/pkg-post-deinstall . if defined(USE_LOCAL_MK) .include "${PORTSDIR}/Mk/bsd.local.mk" . endif . for odir in ${OVERLAYS} .sinclude "${odir}/Mk/bsd.overlay.mk" . endfor . if defined(USE_JAVA) .include "${PORTSDIR}/Mk/bsd.java.mk" . endif . if defined(USE_OCAML) .include "${PORTSDIR}/Mk/bsd.ocaml.mk" . endif . if defined(USE_WX) || defined(USE_WX_NOT) .include "${PORTSDIR}/Mk/bsd.wx.mk" . endif . if defined(USE_GECKO) .include "${PORTSDIR}/Mk/bsd.gecko.mk" . endif . if exists(${PORTSDIR}/Makefile.inc) .include "${PORTSDIR}/Makefile.inc" USE_SUBMAKE= yes . endif # Loading features . for f in ${_USES_POST} _f:= ${f:C/\:.*//} . if !defined(${_f}_ARGS) ${_f}_ARGS:= ${f:C/^[^\:]*(\:|\$)//:S/,/ /g} . endif . endfor . for f in ${_USES_POST} .undef _usefound . for udir in ${OVERLAYS:C,$,/Mk/Uses,} ${USESDIR} _usefile= ${udir}/${f:C/\:.*//}.mk . if exists(${_usefile}) && !defined(_usefound) _usefound= .include "${_usefile}" . endif . endfor . if !defined(_usefound) ERROR+= "Unknown USES=${f:C/\:.*//}" . endif . endfor . if defined(PORTNAME) . if !defined(PACKAGE_BUILDING) || empty(.TARGETS) || make(all) || \ make(check-sanity) || make(show*-errors) || make(show*-warnings) .include "${PORTSDIR}/Mk/bsd.sanity.mk" . endif . endif . if defined(USE_LOCALE) WRK_ENV+= LANG=${USE_LOCALE} LC_ALL=${USE_LOCALE} . endif # Macro for doing in-place file editing using regexps. REINPLACE_ARGS may only # be used to set or override the -i argument. Any other use is considered # invalid. REINPLACE_ARGS?= -i.bak . if defined(DEVELOPER) REINPLACE_CMD?= ${SETENV} WRKSRC=${WRKSRC} REWARNFILE=${REWARNFILE} ${SH} ${SCRIPTSDIR}/sed_checked.sh . else REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} . endif FRAMEWORK_REINPLACE_CMD?= ${SED} -i.bak # Names of cookies used to skip already completed stages EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PORTNAME}.${PREFIX:S/\//_/g} CONFIGURE_COOKIE?= ${WRKDIR}/.configure_done.${PORTNAME}.${PREFIX:S/\//_/g} INSTALL_COOKIE?= ${WRKDIR}/.install_done.${PORTNAME}.${PREFIX:S/\//_/g} BUILD_COOKIE?= ${WRKDIR}/.build_done.${PORTNAME}.${PREFIX:S/\//_/g} PATCH_COOKIE?= ${WRKDIR}/.patch_done.${PORTNAME}.${PREFIX:S/\//_/g} PACKAGE_COOKIE?= ${WRKDIR}/.package_done.${PORTNAME}.${PREFIX:S/\//_/g} STAGE_COOKIE?= ${WRKDIR}/.stage_done.${PORTNAME}.${PREFIX:S/\//_/g} # How to do nothing. Override if you, for some strange reason, would rather # do something. # In general, however, DO_NADA is a relic of the past in the ports # infrastructure, and most of its usage has been removed. If you need to define # a target with DO_NADA, then there is a high chance that the ports # infrastructure should be fixed instead. DO_NADA?= ${TRUE} # Use this as the first operand to always build dependency. NONEXISTENT?= /nonexistent CHECKSUM_ALGORITHMS?= sha256 DISTINFO_FILE?= ${MASTERDIR}/distinfo MAKE_FLAGS?= -f MAKEFILE?= Makefile MAKE_CMD?= ${BSDMAKE} MAKE_ENV+= PREFIX=${PREFIX} \ LOCALBASE=${LOCALBASE} \ CC="${CC}" CFLAGS="${CFLAGS}" \ CPP="${CPP}" CPPFLAGS="${CPPFLAGS}" \ LDFLAGS="${LDFLAGS}" LIBS="${LIBS}" \ CXX="${CXX}" CXXFLAGS="${CXXFLAGS}" # Add -fno-strict-aliasing to CFLAGS with optimization level -O2 or higher. # gcc 4.x enable strict aliasing optimization with -O2 which is known to break # a lot of ports. . if !defined(WITHOUT_NO_STRICT_ALIASING) . if ${CC} != "icc" . if empty(CFLAGS:M-fno-strict-aliasing) CFLAGS+= -fno-strict-aliasing . endif . endif . endif . for lang in C CXX . if defined(USE_${lang}STD) ${lang}FLAGS:= ${${lang}FLAGS:N-std=*} -std=${USE_${lang}STD} . endif ${lang}FLAGS+= ${${lang}FLAGS_${ARCH}} . endfor LDFLAGS+= ${LDFLAGS_${ARCH}} # Multiple make jobs support . if defined(DISABLE_MAKE_JOBS) || defined(MAKE_JOBS_UNSAFE) _MAKE_JOBS?= # MAKE_JOBS_NUMBER= 1 . else . if defined(MAKE_JOBS_NUMBER) _MAKE_JOBS_NUMBER:= ${MAKE_JOBS_NUMBER} . else . if !defined(_SMP_CPUS) _SMP_CPUS!= ${NPROC} 2>/dev/null || ${SYSCTL} -n kern.smp.cpus . endif _EXPORTED_VARS+= _SMP_CPUS _MAKE_JOBS_NUMBER= ${_SMP_CPUS} . endif . if defined(MAKE_JOBS_NUMBER_LIMIT) && ( ${MAKE_JOBS_NUMBER_LIMIT} < ${_MAKE_JOBS_NUMBER} ) MAKE_JOBS_NUMBER= ${MAKE_JOBS_NUMBER_LIMIT} . else MAKE_JOBS_NUMBER= ${_MAKE_JOBS_NUMBER} . endif _MAKE_JOBS?= -j${MAKE_JOBS_NUMBER} BUILD_FAIL_MESSAGE+= Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. . endif .include "${PORTSDIR}/Mk/bsd.ccache.mk" . if !make(makesum) FETCH_ENV?= SSL_NO_VERIFY_PEER=1 SSL_NO_VERIFY_HOSTNAME=1 . endif FETCH_BINARY?= /usr/bin/fetch FETCH_ARGS?= -Fpr FETCH_REGET?= 1 FETCH_CMD?= ${FETCH_BINARY} ${FETCH_ARGS} . if defined(RANDOMIZE_MASTER_SITES) . if exists(/usr/games/random) RANDOM_CMD?= /usr/games/random . elif exists(/usr/bin/random) RANDOM_CMD?= /usr/bin/random . endif . if defined(RANDOM_CMD) && !empty(RANDOM_CMD) RANDOM_ARGS?= -w -f - _RANDOMIZE_SITES= ${RANDOM_CMD} ${RANDOM_ARGS} . endif . endif TOUCH?= /usr/bin/touch TOUCH_FLAGS?= -f DISTORIG?= .bak.orig PATCH?= /usr/bin/patch PATCH_STRIP?= -p0 PATCH_DIST_STRIP?= -p0 . if defined(PATCH_DEBUG) PATCH_DEBUG_TMP= yes PATCH_ARGS?= --forward -E ${PATCH_STRIP} PATCH_DIST_ARGS?= --suffix ${DISTORIG} --forward -E ${PATCH_DIST_STRIP} . else PATCH_ARGS?= --forward --quiet -E ${PATCH_STRIP} PATCH_DIST_ARGS?= --suffix ${DISTORIG} --forward --quiet -E ${PATCH_DIST_STRIP} . endif . if !defined(QUIET) PATCH_SILENT= PATCH_SILENT=yes . endif . if defined(BATCH) PATCH_ARGS+= --batch PATCH_DIST_ARGS+= --batch . endif # Prevent breakage with VERSION_CONTROL=numbered PATCH_ARGS+= -V simple PATCH_DIST_ARGS+= -V simple . if defined(PATCH_CHECK_ONLY) PATCH_ARGS+= -C PATCH_DIST_ARGS+= -C . endif . if ${PATCH} == "/usr/bin/patch" PATCH_ARGS+= --suffix .orig PATCH_DIST_ARGS+= --suffix .orig . endif TAR?= /usr/bin/tar # EXTRACT_SUFX is defined in .pre.mk section EXTRACT_CMD?= ${TAR} EXTRACT_BEFORE_ARGS?= -xf EXTRACT_AFTER_ARGS?= --no-same-owner --no-same-permissions # Figure out where the local mtree file is . if !defined(MTREE_FILE) && !defined(NO_MTREE) . if ${PREFIX} == /usr MTREE_FILE= /etc/mtree/BSD.usr.dist . else MTREE_FILE= ${PORTSDIR}/Templates/BSD.local.dist . endif . endif MTREE_CMD?= /usr/sbin/mtree MTREE_ARGS?= -U ${MTREE_FOLLOWS_SYMLINKS} -f ${MTREE_FILE} -d -e -p _SHAREMODE?= 0644 # A few aliases for *-install targets INSTALL_PROGRAM= ${INSTALL} ${COPY} ${STRIP} -m ${BINMODE} INSTALL_KLD= ${INSTALL} ${COPY} -m ${BINMODE} INSTALL_LIB= ${INSTALL} ${COPY} ${STRIP} -m ${_SHAREMODE} INSTALL_SCRIPT= ${INSTALL} ${COPY} -m ${BINMODE} INSTALL_DATA= ${INSTALL} ${COPY} -m ${_SHAREMODE} INSTALL_MAN= ${INSTALL} ${COPY} -m ${MANMODE} INSTALL_MACROS= BSD_INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ BSD_INSTALL_LIB="${INSTALL_LIB}" \ BSD_INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ BSD_INSTALL_DATA="${INSTALL_DATA}" \ BSD_INSTALL_MAN="${INSTALL_MAN}" MAKE_ENV+= ${INSTALL_MACROS} SCRIPTS_ENV+= ${INSTALL_MACROS} # Macro for copying entire directory tree with correct permissions # In the -exec shell commands, we add add a . as the first argument, it would # end up being $0 aka the script name, which is not part of $@, so we force it # to be able to use $@ directly. COPYTREE_BIN= ${SH} -c '(${FIND} -Ed $$1 $$3 | ${CPIO} -dumpl $$2 >/dev/null 2>&1) && \ ${FIND} -Ed $$1 $$3 \( -type d -exec ${SH} -c '\''cd '\''$$2'\'' && chmod 755 "$$@"'\'' . {} + \ -o -type f -exec ${SH} -c '\''cd '\''$$2'\'' && chmod ${BINMODE} "$$@"'\'' . {} + \)' COPYTREE_BIN COPYTREE_SHARE= ${SH} -c '(${FIND} -Ed $$1 $$3 | ${CPIO} -dumpl $$2 >/dev/null 2>&1) && \ ${FIND} -Ed $$1 $$3 \( -type d -exec ${SH} -c '\''cd '\''$$2'\'' && chmod 755 "$$@"'\'' . {} + \ -o -type f -exec ${SH} -c '\''cd '\''$$2'\'' && chmod ${_SHAREMODE} "$$@"'\'' . {} + \)' COPYTREE_SHARE # The user can override the NO_PACKAGE by specifying this from # the make command line . if defined(FORCE_PACKAGE) .undef NO_PACKAGE . endif DESCR?= ${PKGDIR}/pkg-descr PLIST?= ${PKGDIR}/pkg-plist PKGHELP?= ${PKGDIR}/pkg-help PKGINSTALL?= ${PKGDIR}/pkg-install PKGDEINSTALL?= ${PKGDIR}/pkg-deinstall PKGMESSAGE?= ${PKGDIR}/pkg-message _PKGMESSAGES+= ${PKGMESSAGE} TMPPLIST?= ${WRKDIR}/.PLIST.mktmp _PLIST?= ${WRKDIR}/.PLIST # backward compatibility for users . if defined(_PKG_TRANSITIONING_TO_NEW_EXT) . if defined(PKG_NOCOMPRESS) PKG_SUFX?= .tar . else PKG_SUFX?= .txz . endif PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//} . else . if defined(PKG_SUFX) PKG_COMPRESSION_FORMAT?= ${PKG_SUFX:S/.//} WARNING+= "PKG_SUFX is defined, it should be replaced with PKG_COMPRESSION_FORMAT" . endif PKG_SUFX= .pkg . endif . if defined(PKG_NOCOMPRESS) PKG_COMPRESSION_FORMAT?= tar . else . if ${OSVERSION} > 1400000 PKG_COMPRESSION_FORMAT?= tzst . else PKG_COMPRESSION_FORMAT?= txz . endif . endif # where pkg(8) stores its data PKG_DBDIR?= /var/db/pkg ALL_TARGET?= all INSTALL_TARGET?= install INSTALL_TARGET+= ${LATE_INSTALL_ARGS} # Popular master sites .include "${PORTSDIR}/Mk/bsd.sites.mk" # Empty declaration to avoid "variable MASTER_SITES recursive" error MASTER_SITES?= PATCH_SITES?= _MASTER_SITES_DEFAULT?= _PATCH_SITES_DEFAULT?= # Feed internal _{MASTER,PATCH}_SITES_n where n is a group designation # as per grouping rules (:something) # Organize _{MASTER,PATCH}_SITES_{DEFAULT,[^/:]+} according to grouping # rules (:something) . for _S in ${MASTER_SITES} _S_TEMP= ${_S:S/^${_S:C@/?:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP:C/[a-zA-Z0-9_]//g} check-makevars:: @${ECHO_MSG} "The ${_S} MASTER_SITES line has" @${ECHO_MSG} "a group with invalid characters, only use [a-zA-Z0-9_]" @${FALSE} . endif . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your MASTER_SITES" @${FALSE} . endif _MASTER_SITES_${_group}+= ${_S:C@^(.*/):[^/:]+$@\1@} . endfor . else _MASTER_SITES_DEFAULT+= ${_S:C@^(.*/):[^/:]+$@\1@} . endif . endfor . for _S in ${PATCH_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP:C/[a-zA-Z0-9_]//g} check-makevars:: @${ECHO_MSG} "The ${_S} PATCH_SITES line has" @${ECHO_MSG} "a group with invalid characters, only use [a-zA-Z0-9_]" @${FALSE} . endif . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "The words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your PATCH_SITES" @${FALSE} . endif _PATCH_SITES_${_group}+= ${_S:C@^(.*/):[^/:]+$@\1@} . endfor . else _PATCH_SITES_DEFAULT+= ${_S:C@^(.*/):[^/:]+$@\1@} . endif . endfor # Feed internal _{MASTER,PATCH}_SITE_SUBDIR_n where n is a group designation # as per grouping rules (:something) # Organize _{MASTER,PATCH}_SITE_SUBDIR_{DEFAULT,[^/:]+} according to grouping # rules (:something) . for _S in ${MASTER_SITE_SUBDIR} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your MASTER_SITE_SUBDIR" @${FALSE} . endif . if defined(_MASTER_SITES_${_group}) _MASTER_SITE_SUBDIR_${_group}+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endfor . else . if defined(_MASTER_SITES_DEFAULT) _MASTER_SITE_SUBDIR_DEFAULT+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endif . endfor . for _S in ${PATCH_SITE_SUBDIR} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} _G_TEMP= ${_group} . if ${_G_TEMP} == all || ${_G_TEMP} == ALL || ${_G_TEMP} == default check-makevars:: @${ECHO_MSG} "Makefile error: the words all, ALL and default are reserved and cannot be" @${ECHO_MSG} "used in group definitions. Please fix your PATCH_SITE_SUBDIR" @${FALSE} . endif . if defined(_PATCH_SITES_${_group}) _PATCH_SITE_SUBDIR_${_group}+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endfor . else . if defined(_PATCH_SITES_DEFAULT) _PATCH_SITE_SUBDIR_DEFAULT+= ${_S:C@^(.*)/:[^/:]+$@\1@} . endif . endif . endfor # Substitute subdirectory names # XXX simpler/faster solution but not the best space wise, suggestions please . for _S in ${MASTER_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} . if !defined(_MASTER_SITE_SUBDIR_${_group}) MASTER_SITES_TMP= ${_MASTER_SITES_${_group}:S^%SUBDIR%/^^} . else _S_TEMP_TEMP= ${_MASTER_SITES_${_group}:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) MASTER_SITES_TMP= ${_MASTER_SITES_${_group}} . else MASTER_SITES_TMP= . for site in ${_MASTER_SITES_${_group}} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) MASTER_SITES_TMP+= ${site} . else . for dir in ${_MASTER_SITE_SUBDIR_${_group}} MASTER_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif . endif _MASTER_SITES_${_group}:= ${MASTER_SITES_TMP} . endfor . endif . endfor . if defined(_MASTER_SITE_SUBDIR_DEFAULT) _S_TEMP= ${_MASTER_SITES_DEFAULT:M*%SUBDIR%/*} . if empty(_S_TEMP) MASTER_SITES_TMP= ${_MASTER_SITES_DEFAULT} . else MASTER_SITES_TMP= . for site in ${_MASTER_SITES_DEFAULT} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) MASTER_SITES_TMP+= ${site} . else . for dir in ${_MASTER_SITE_SUBDIR_DEFAULT} MASTER_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif . else MASTER_SITES_TMP= ${_MASTER_SITES_DEFAULT:S^%SUBDIR%/^^} . endif _MASTER_SITES_DEFAULT:= ${MASTER_SITES_TMP} MASTER_SITES_TMP= . for _S in ${PATCH_SITES} _S_TEMP= ${_S:S/^${_S:C@/:[^/:]+$@/@}//:S/^://} . if !empty(_S_TEMP) . for _group in ${_S_TEMP:S/,/ /g} . if !defined(_PATCH_SITE_SUBDIR_${_group}) PATCH_SITES_TMP= ${_PATCH_SITES_${_group}:S^%SUBDIR%/^^} . else _S_TEMP_TEMP= ${_PATCH_SITES_${_group}:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) PATCH_SITES_TMP= ${_PATCH_SITES_${_group}} . else PATCH_SITES_TMP= . for site in ${_PATCH_SITES_${_group}} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) PATCH_SITES_TMP+= ${site} . else . for dir in ${_PATCH_SITE_SUBDIR_${_group}} PATCH_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif . endif _PATCH_SITES_${_group}:= ${PATCH_SITES_TMP} . endfor . endif . endfor . if defined(_PATCH_SITE_SUBDIR_DEFAULT) _S_TEMP= ${_PATCH_SITES_DEFAULT:M*%SUBDIR%/*} . if empty(_S_TEMP) PATCH_SITES_TMP= ${_PATCH_SITES_DEFAULT} . else PATCH_SITES_TMP= . for site in ${_PATCH_SITES_DEFAULT} _S_TEMP_TEMP= ${site:M*%SUBDIR%/*} . if empty(_S_TEMP_TEMP) PATCH_SITES_TMP+= ${site} . else . for dir in ${_PATCH_SITE_SUBDIR_DEFAULT} PATCH_SITES_TMP+= ${site:S^%SUBDIR%^\${dir}^} . endfor . endif . endfor . endif . else PATCH_SITES_TMP= ${_PATCH_SITES_DEFAULT:S^%SUBDIR%/^^} . endif _PATCH_SITES_DEFAULT:= ${PATCH_SITES_TMP} PATCH_SITES_TMP= # The primary backup site. MASTER_SITE_BACKUP?= \ http://distcache.FreeBSD.org/ports-distfiles/${DIST_SUBDIR}/ MASTER_SITE_BACKUP:= ${MASTER_SITE_BACKUP:S^\${DIST_SUBDIR}/^^} # If the user has MASTER_SITE_FREEBSD set, go to the FreeBSD repository # for everything, but don't search it twice by appending it to the end. . if defined(MASTER_SITE_FREEBSD) _MASTER_SITE_OVERRIDE:= ${MASTER_SITE_BACKUP} _MASTER_SITE_BACKUP:= # empty . else _MASTER_SITE_OVERRIDE= ${MASTER_SITE_OVERRIDE} _MASTER_SITE_BACKUP= ${MASTER_SITE_BACKUP} . endif # Organize DISTFILES, PATCHFILES, _MASTER_SITES_ALL, _PATCH_SITES_ALL # according to grouping rules (:something) DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} _MASTER_SITES_ALL= ${_MASTER_SITES_DEFAULT} _PATCH_SITES_ALL= ${_PATCH_SITES_DEFAULT} _G_TEMP= DEFAULT . for _D in ${DISTFILES} _D_TEMP= ${_D:S/^${_D:C/:[^:]+$//}//} . if !empty(_D_TEMP) . for _group in ${_D_TEMP:S/^://:S/,/ /g} . if !defined(_MASTER_SITES_${_group}) _G_TEMP_TEMP= ${_G_TEMP:M/${_group}/} . if empty(_G_TEMP_TEMP) _G_TEMP+= ${_group} _MASTER_SITES_ALL+= ${_MASTER_SITES_${_group}} . endif . endif . endfor _DISTFILES+= ${_D:C/:[^:]+$//} . else _DISTFILES+= ${_D} . endif . endfor _G_TEMP= DEFAULT . for _P in ${PATCHFILES} _P_TEMP= ${_P:C/:[^-:][^:]*$//} _P_groups= ${_P:S/^${_P:C/:[^:]+$//}//:S/^://} _P_file= ${_P_TEMP:C/:-[^:]+$//} _P_strip= ${_P_TEMP:S/^${_P_TEMP:C/:-[^:]*$//}//:S/^://} . if !empty(_P_groups) . for _group in ${_P_groups:S/,/ /g} . if !defined(_PATCH_SITES_${_group}) _G_TEMP_TEMP= ${_G_TEMP:M/${_group}/} . if empty(_G_TEMP_TEMP) _G_TEMP+= ${_group} _PATCH_SITES_ALL+= ${_PATCH_SITES_${_group}} . endif . endif . endfor . endif _PATCHFILES:= ${_PATCHFILES} ${_P_file} . if empty(_P_strip) _PATCHFILES2:= ${_PATCHFILES2} ${_P_file} . else _PATCHFILES2:= ${_PATCHFILES2} ${_P_file}:${_P_strip} . endif . endfor _P_groups= _P_file= _P_strip= _G_TEMP= _G_TEMP_TEMP= ALLFILES?= ${_DISTFILES} ${_PATCHFILES} # # Sort the master site list according to the patterns in MASTER_SORT # MASTER_SORT?= MASTER_SORT_REGEX?= MASTER_SORT_REGEX+= ${MASTER_SORT:S|.|\\.|g:S|^|://[^/]*|:S|$|/|} MASTER_SORT_AWK= BEGIN { RS = " "; ORS = " "; IGNORECASE = 1 ; gl = "${MASTER_SORT_REGEX:S|\\|\\\\|g}"; } . for srt in ${MASTER_SORT_REGEX} MASTER_SORT_AWK+= /${srt:S|/|\\/|g}/ { good["${srt:S|\\|\\\\|g}"] = good["${srt:S|\\|\\\\|g}"] " " $$0 ; next; } . endfor MASTER_SORT_AWK+= { rest = rest " " $$0; } END { n=split(gl, gla); for(i=1;i<=n;i++) { print good[gla[i]]; } print rest; } # # Hackery to enable simple fetch targets with several dynamic MASTER_SITES # _MASTER_SITES_ENV= _MASTER_SITES_DEFAULT=${_MASTER_SITES_DEFAULT:Q} . for _F in ${DISTFILES} _F_TEMP= ${_F:S/^${_F:C/:[^:]+$//}//:S/^://} . if !empty(_F_TEMP) . for _group in ${_F_TEMP:S/,/ /g} . if defined(_MASTER_SITES_${_group}) _MASTER_SITES_ENV+= _MASTER_SITES_${_group}=${_MASTER_SITES_${_group}:Q} . endif . endfor . endif . endfor _PATCH_SITES_ENV= _PATCH_SITES_DEFAULT=${_PATCH_SITES_DEFAULT:Q} . for _F in ${PATCHFILES} _F_TEMP= ${_F:S/^${_F:C/:[^-:][^:]*$//}//:S/^://} . if !empty(_F_TEMP) . for _group in ${_F_TEMP:S/,/ /g} . if defined(_PATCH_SITES_${_group}) _PATCH_SITES_ENV+= _PATCH_SITES_${_group}=${_PATCH_SITES_${_group}:Q} . endif . endfor . endif . endfor CKSUMFILES= ${ALLFILES} # List of all files, with ${DIST_SUBDIR} in front. Used for checksum. . if defined(DIST_SUBDIR) . if defined(CKSUMFILES) && ${CKSUMFILES}!="" _CKSUMFILES?= ${CKSUMFILES:S/^/${DIST_SUBDIR}\//} . endif . else _CKSUMFILES?= ${CKSUMFILES} . endif # This is what is actually going to be extracted, and is overridable # by user. EXTRACT_ONLY?= ${_DISTFILES} . if !target(maintainer) maintainer: @${ECHO_CMD} "${MAINTAINER}" . endif . if !defined(CATEGORIES) check-categories: @${ECHO_MSG} "${PKGNAME}: Makefile error: CATEGORIES is mandatory." @${FALSE} . else VALID_CATEGORIES+= accessibility afterstep arabic archivers astro audio \ benchmarks biology budgie cad chinese comms converters \ databases deskutils devel dns docs \ editors education elisp emulators enlightenment finance french ftp \ games geography german gnome gnustep graphics \ hamradio haskell hebrew hungarian irc japanese java \ kde ${_KDE_CATEGORIES_SUPPORTED} kld korean \ lang linux lisp \ mail mate math mbone misc multimedia \ net net-im net-mgmt net-p2p net-vpn news \ parallel pear perl5 plan9 polish ports-mgmt portuguese \ print python ruby rubygems russian \ scheme science security shells spanish sysutils \ tcl textproc tk \ ukrainian vietnamese wayland windowmaker www \ x11 x11-clocks x11-drivers x11-fm x11-fonts x11-servers x11-themes \ x11-toolkits x11-wm xfce zope base check-categories: . for cat in ${CATEGORIES} . if empty(VALID_CATEGORIES:M${cat}) @${ECHO_MSG} "${PKGNAME}: Makefile error: category ${cat} not in list of valid categories."; \ ${FALSE}; . endif . endfor . endif PKGREPOSITORYSUBDIR?= All PKGREPOSITORY?= ${PACKAGES}/${PKGREPOSITORYSUBDIR} # The "latest version" link -- ${PKGNAME} minus everthing after the last '-' PKGLATESTREPOSITORY?= ${PACKAGES}/Latest PKGBASE?= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}${PKG_SUFX} . if ${PKG_COMPRESSION_FORMAT} == txz PKGOLDLATESTFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT} # Temporary workaround to be deleted once every supported version of FreeBSD # have a bootstrap which handles the pkg extension. PKGOLDSIGFILE= ${PKGLATESTREPOSITORY}/${PKGBASE}.${PKG_COMPRESSION_FORMAT}.sig . endif _PKGS= ${PKGBASE} PORTS_FEATURES+= SUBPACKAGES . if defined(SUBPACKAGES) . if ${SUBPACKAGES:Mmain} DEV_ERROR+= "SUBPACKAGES cannot contain 'main', it is a reserved value" . endif . for sp in ${SUBPACKAGES} . if ${sp:C/[[:lower:][:digit:]_]//g} _BAD_SUBPACKAGES_NAMES+= ${sp} . endif . endfor . if !empty(_BAD_SUBPACKAGES_NAMES) DEV_ERROR+= "SUBPACKAGES cannot subpackages that are not all [a-z0-9_]: ${_BAD_SUBPACKAGES_NAMES}" . endif . endif . for sp in ${SUBPACKAGES} # If a FRAMEWORK generated package needs to override its subpackage package name # it can do it with this mechanism . if !defined(_PKGS.${sp}) _PKGS.${sp}= ${PKGBASE}-${sp} . endif _PKGS+= ${_PKGS.${sp}} PKGBASE.${sp}= ${_PKGS.${sp}} _SP.${_PKGS.${sp}}=.${sp} . endfor . if !defined(_DID_SUBPACKAGES_HELPERS) _DID_SUBPACKAGES_HELPERS= yes _SUBPACKAGE_HELPERS_FILE= DESCR PKGINSTALL PKGDEINSTALL PKGMESSAGE \ PKGPREINSTALL PKGPOSTINSTALL PKGPREDEINSTALL PKGPOSTDEINSTALL \ PKGPREUPGRADE PKGPOSTUPGRADE PKGUPGRADE . for sp in ${SUBPACKAGES} # These overwrite the current value . for v in ${_SUBPACKAGE_HELPERS_FILE} ${v}.${sp}?= ${$v}.${sp} . endfor _PKGMESSAGES.${sp}= ${PKGMESSAGE}.${sp} . if !exists(${DESCR.${sp}}) && ${sp} != debuginfo DESCR.${sp}= ${DESCR} DEV_WARNING+= "DESCR.${sp} needs to point to an existing file." . endif COMMENT.${sp}?= ${COMMENT} (subpkg: ${sp}) . endfor . endif . if exists(${PACKAGES}) PACKAGES:= ${PACKAGES:S/:/\:/g} _HAVE_PACKAGES= yes _PKGDIR= ${PKGREPOSITORY} . else _PKGDIR= ${.CURDIR} . endif . for sp in ${_PKGS} PKGNAME${_SP.${sp}}= ${sp}-${PKGVERSION} PKGNAMES+= ${PKGNAME${_SP.${sp}}} PKGFILE${_SP.${sp}}= ${_PKGDIR}/${PKGNAME${_SP.${sp}}}${PKG_SUFX} . endfor _EXTRA_PACKAGE_TARGET_DEP+= ${_PKGDIR} . for sp in ${_PKGS} WRKDIR_PKGFILE${_SP.${sp}}= ${WRKDIR}/pkg/${PKGNAME${_SP.${sp}}}${PKG_SUFX} . endfor # Integrate with the license auditing framework . if !defined (DISABLE_LICENSES) .include "${PORTSDIR}/Mk/bsd.licenses.mk" . endif CONFIGURE_SCRIPT?= configure CONFIGURE_CMD?= ./${CONFIGURE_SCRIPT} CONFIGURE_TARGET?= ${HOSTARCH}-portbld-${OPSYS:tl}${OSREL} CONFIGURE_TARGET:= ${CONFIGURE_TARGET:S/--build=//} CONFIGURE_LOG?= config.log # A default message to print if do-configure fails. CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer] and attach the \"${CONFIGURE_WRKSRC}/${CONFIGURE_LOG}\" including the output of the failure of your make command. Also, it might be a good idea to provide an overview of all packages installed on your system (e.g. a ${PKG_INFO} -Ea)." CONFIG_SITE?= ${PORTSDIR}/Templates/config.site . if defined(GNU_CONFIGURE) # Maximum command line length . if !defined(CONFIGURE_MAX_CMD_LEN) CONFIGURE_MAX_CMD_LEN!= ${SYSCTL} -n kern.argmax . endif _EXPORTED_VARS+= CONFIGURE_MAX_CMD_LEN GNU_CONFIGURE_PREFIX?= ${PREFIX} GNU_CONFIGURE_MANPREFIX?= ${PREFIX}/share CONFIGURE_ARGS+= --prefix=${GNU_CONFIGURE_PREFIX} $${_LATE_CONFIGURE_ARGS} . if defined(CROSS_TOOLCHAIN) CROSS_HOST= ${ARCH:S/amd64/x86_64/}-unknown-${OPSYS:tl}${OSREL} CONFIGURE_ARGS+= --host=${CROSS_HOST} . endif CONFIGURE_ENV+= CONFIG_SITE=${CONFIG_SITE} lt_cv_sys_max_cmd_len=${CONFIGURE_MAX_CMD_LEN} HAS_CONFIGURE= yes SET_LATE_CONFIGURE_ARGS= \ _LATE_CONFIGURE_ARGS="" ; \ if [ -z "${CONFIGURE_ARGS:M--localstatedir=*:Q}" ] && \ ${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- --localstatedir > /dev/null; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --localstatedir=/var" ; \ fi ; \ if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--mandir'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --mandir=${GNU_CONFIGURE_MANPREFIX}/man" ; \ fi ; \ if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--disable-silent-rules'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --disable-silent-rules" ; \ fi ; \ if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--enable-jobserver\[.*\#\]'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --enable-jobserver=${MAKE_JOBS_NUMBER}" ; \ fi ; \ if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--infodir'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --infodir=${GNU_CONFIGURE_PREFIX}/${INFO_PATH}/${INFO_SUBDIR}" ; \ fi ; \ if [ -z "`${CONFIGURE_CMD} --version 2>&1 | ${EGREP} -i '(autoconf.*2\.13|Unrecognized option)'`" ]; then \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --build=${CONFIGURE_TARGET}" ; \ else \ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} ${CONFIGURE_TARGET}" ; \ fi ; . endif # Passed to most of script invocations SCRIPTS_ENV+= CURDIR=${MASTERDIR} DISTDIR=${DISTDIR} \ WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} . if defined(BATCH) SCRIPTS_ENV+= BATCH=yes . endif MANDIRS+= ${PREFIX}/share/man INFO_PATH?= share/info . if defined(INFO) RUN_DEPENDS+= indexinfo:print/indexinfo . for D in ${INFO:H} RD:= ${D} . if ${RD} != "." . if !defined(INFO_SUBDIR) INFO_SUBDIR:= ${RD} . elif ${INFO_SUBDIR} != ${RD} BROKEN= only one subdirectory in INFO is allowed . endif . endif .undef RD . endfor . endif DOCSDIR_REL?= ${DOCSDIR:S,^${PREFIX}/,,} EXAMPLESDIR_REL?= ${EXAMPLESDIR:S,^${PREFIX}/,,} DATADIR_REL?= ${DATADIR:S,^${PREFIX}/,,} WWWDIR_REL?= ${WWWDIR:S,^${PREFIX}/,,} ETCDIR_REL?= ${ETCDIR:S,^${PREFIX}/,,} PLIST_SUB+= DOCSDIR="${DOCSDIR_REL}" \ EXAMPLESDIR="${EXAMPLESDIR_REL}" \ DATADIR="${DATADIR_REL}" \ WWWDIR="${WWWDIR_REL}" \ ETCDIR="${ETCDIR_REL}" DESKTOPDIR?= ${PREFIX}/share/applications .MAIN: all ################################################################ # Many ways to disable a port. # # If we're in BATCH mode and the port is interactive, or we're # in interactive mode and the port is non-interactive, skip all # the important targets. The reason we have two modes is that # one might want to leave a build in BATCH mode running # overnight, then come back in the morning and do _only_ the # interactive ones that required your intervention. # # Ignore ports that can't be resold if building for a CDROM. # # Don't build a port if it's restricted and we don't want to get # into that. # # Don't build a port if it's broken, unless we're running a parallel # build (in case it's fixed). # # Don't build a port if it's forbidden for whatever reason. # # Don't build a port if the system is too old. ################################################################ # Check the machine architectures . if defined(ONLY_FOR_ARCHS) . for __ARCH in ${ONLY_FOR_ARCHS} . if ${ARCH:M${__ARCH}} != "" __ARCH_OK?= 1 . endif . endfor . else __ARCH_OK?= 1 . endif . if defined(NOT_FOR_ARCHS) . for __NARCH in ${NOT_FOR_ARCHS} . if ${ARCH:M${__NARCH}} != "" .undef __ARCH_OK . endif . endfor . endif . if !defined(__ARCH_OK) . if defined(ONLY_FOR_ARCHS) IGNORE= is only for ${ONLY_FOR_ARCHS:O}, . else # defined(NOT_FOR_ARCHS) IGNORE= does not run on ${NOT_FOR_ARCHS:O}, . endif IGNORE+= while you are running ${ARCH} . if defined(ONLY_FOR_ARCHS_REASON_${ARCH}) IGNORE+= (reason: ${ONLY_FOR_ARCHS_REASON_${ARCH}}) . elif defined(ONLY_FOR_ARCHS_REASON) IGNORE+= (reason: ${ONLY_FOR_ARCHS_REASON}) . endif . if defined(NOT_FOR_ARCHS_REASON_${ARCH}) IGNORE+= (reason: ${NOT_FOR_ARCHS_REASON_${ARCH}}) . elif defined(NOT_FOR_ARCHS_REASON) IGNORE+= (reason: ${NOT_FOR_ARCHS_REASON}) . endif . endif # Check the user interaction and legal issues . if !defined(NO_IGNORE) . for v in ${OSREL} ${OSREL:R} . for f in ${FLAVOR} . if defined($f_IGNORE_${OPSYS}_${v}) IGNORE+= "${${f}_IGNORE_${OPSYS}_${v}}" . endif . endfor . endfor . if (defined(IS_INTERACTIVE) && defined(BATCH)) IGNORE= is an interactive port . elif (!defined(IS_INTERACTIVE) && defined(INTERACTIVE)) IGNORE= is not an interactive port . elif (defined(NO_CDROM) && defined(FOR_CDROM)) IGNORE= may not be placed on a CDROM: ${NO_CDROM} . elif (defined(RESTRICTED) && defined(NO_RESTRICTED)) IGNORE= is restricted: ${RESTRICTED} . elif (defined(NO_PACKAGE) && defined(PACKAGE_BUILDING)) IGNORE= may not be packaged: ${NO_PACKAGE} . elif defined(IGNORE_${ARCH}) IGNORE= ${IGNORE_${ARCH}} . elif defined(IGNORE_${OPSYS}_${OSREL:R}_${ARCH}) IGNORE= ${IGNORE_${OPSYS}_${OSREL:R}_${ARCH}} . elif defined(IGNORE_${OPSYS}_${OSREL:R}) IGNORE= ${IGNORE_${OPSYS}_${OSREL:R}} . elif defined(IGNORE_${OPSYS}) IGNORE= ${IGNORE_${OPSYS}} . elif defined(BROKEN) . if !defined(TRYBROKEN) IGNORE= is marked as broken: ${BROKEN} . endif . elif defined(BROKEN_${ARCH}) . if !defined(TRYBROKEN) IGNORE= is marked as broken on ${ARCH}: ${BROKEN_${ARCH}} . endif . elif defined(BROKEN_${OPSYS}_${OSREL:R}_${ARCH}) . if !defined(TRYBROKEN) IGNORE= is marked as broken on ${OPSYS} ${OSREL} ${ARCH}: ${BROKEN_${OPSYS}_${OSREL:R}_${ARCH}} . endif . elif defined(BROKEN_${OPSYS}_${OSREL:R}) . if !defined(TRYBROKEN) IGNORE= is marked as broken on ${OPSYS} ${OSREL}: ${BROKEN_${OPSYS}_${OSREL:R}} . endif . elif defined(BROKEN_${OPSYS}) . if !defined(TRYBROKEN) IGNORE= is marked as broken on ${OPSYS}: ${BROKEN_${OPSYS}} . endif . elif defined(FORBIDDEN) IGNORE= is forbidden: ${FORBIDDEN} . endif . if (defined(MANUAL_PACKAGE_BUILD) && defined(PACKAGE_BUILDING)) IGNORE= has to be built manually: ${MANUAL_PACKAGE_BUILD} clean: @${IGNORECMD} . endif . if defined(IGNORE) . if defined(IGNORE_SILENT) IGNORECMD= ${DO_NADA} . else IGNORECMD= ${ECHO_MSG} "===> ${PKGNAME} "${IGNORE:Q}. | ${FMT_80} ; exit 1 . endif _TARGETS= check-sanity fetch checksum extract patch configure all build \ install reinstall test package stage restage . for target in ${_TARGETS} . if !target(${target}) ${target}: @${IGNORECMD} . if defined(INSTALLS_DEPENDS) @${FALSE} . endif . endif . endfor . endif . endif # !defined(NO_IGNORE) ignorelist: . if defined(IGNORE) || defined(NO_PACKAGE) ignorelist: package-name . endif ignorelist-verbose: . if defined(IGNORE) @${ECHO_CMD} "${PKGNAME}|IGNORE: "${IGNORE:Q} . elif defined(NO_PACKAGE) @${ECHO_CMD} "${PKGNAME}|NO_PACKAGE: "${NO_PACKAGE:Q} . endif ################################################################ # Clean directories for ftp or CDROM. ################################################################ . if !defined(LICENSE) . if defined(RESTRICTED) clean-restricted: delete-distfiles delete-package clean-restricted-list: delete-distfiles-list delete-package-list RESTRICTED_FILES?= ${_DISTFILES} ${_PATCHFILES} . else clean-restricted: clean-restricted-list: . endif . if defined(NO_CDROM) clean-for-cdrom: delete-distfiles delete-package clean-for-cdrom-list: delete-distfiles-list delete-package-list RESTRICTED_FILES?= ${_DISTFILES} ${_PATCHFILES} . else clean-for-cdrom: clean-for-cdrom-list: . endif . endif # !defined(LICENSE) . if defined(ALL_HOOK) all: @cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTNAME=${DISTNAME} \ DISTDIR=${DISTDIR} WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} \ PATCHDIR=${PATCHDIR} SCRIPTDIR=${SCRIPTDIR} \ FILESDIR=${FILESDIR} PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} \ BUILD_DEPENDS="${BUILD_DEPENDS}" RUN_DEPENDS="${RUN_DEPENDS}" \ CONFLICTS="${CONFLICTS}" \ ${ALL_HOOK} . endif . if !target(all) all: stage . endif . if !defined(DEPENDS_TARGET) . if defined(DEPENDS_PRECLEAN) DEPENDS_TARGET= clean DEPENDS_ARGS= NOCLEANDEPENDS=yes . endif . if make(reinstall) DEPENDS_TARGET+= reinstall . else DEPENDS_TARGET+= install . endif . if defined(DEPENDS_CLEAN) DEPENDS_TARGET+= clean DEPENDS_ARGS+= NOCLEANDEPENDS=yes . endif . endif ################################################################ # # Do preliminary work to detect if we need to run the config # target or not. # ################################################################ . if ((!defined(OPTIONS_DEFINE) && !defined(OPTIONS_SINGLE) && !defined(OPTIONS_MULTI)) \ && !defined(OPTIONS_GROUP) && !defined(OPTIONS_RADIO) \ || defined(CONFIG_DONE_${PKGBASE:tu}) || \ defined(PACKAGE_BUILDING) || defined(BATCH)) _OPTIONS_OK=yes . endif ################################################################ # The following are used to create easy dummy targets for # disabling some bit of default target behavior you don't want. # They still check to see if the target exists, and if so don't # do anything, since you might want to set this globally for a # group of ports in a Makefile.inc, but still be able to # override from an individual Makefile. ################################################################ # Disable build . if defined(NO_BUILD) && !target(build) build: configure @${TOUCH} ${TOUCH_FLAGS} ${BUILD_COOKIE} . endif # Disable package . if defined(NO_PACKAGE) && !target(package) package: . if !defined(IGNORE_SILENT) @${ECHO_MSG} "===> ${PKGNAME} may not be packaged: "${NO_PACKAGE:Q}. . endif . endif ################################################################ # More standard targets start here. # # These are the body of the build/install framework. If you are # not happy with the default actions, and you can't solve it by # adding pre-* or post-* targets/scripts, override these. ################################################################ . if defined(TRYBROKEN) && defined(BROKEN) buildanyway-message: @${ECHO_MSG} "Trying build of ${PKGNAME} even though it is marked BROKEN." . endif # Warn user about deprecated packages. Advisory only. . if !target(check-deprecated) # Try and keep these messages in sync with the ones in Mk/Scripts/create-manifest.sh check-deprecated: . if ${MAINTAINER} == "ports@FreeBSD.org" @${ECHO_MSG} "===> NOTICE:" @${ECHO_MSG} @${ECHO_MSG} "The ${PORTNAME} port currently does not have a maintainer. As a result, it is" @${ECHO_MSG} "more likely to have unresolved issues, not be up-to-date, or even be removed in" @${ECHO_MSG} "the future. To volunteer to maintain this port, please create an issue at:" @${ECHO_MSG} @${ECHO_MSG} "https://bugs.freebsd.org/bugzilla" @${ECHO_MSG} @${ECHO_MSG} "More information about port maintainership is available at:" @${ECHO_MSG} @${ECHO_MSG} "https://docs.freebsd.org/en/articles/contributing/#ports-contributing" @${ECHO_MSG} . endif . if defined(DEPRECATED) @${ECHO_MSG} "===> NOTICE:" @${ECHO_MSG} @${ECHO_MSG} "This port is deprecated; you may wish to reconsider installing it:" @${ECHO_MSG} @${ECHO_MSG} ${DEPRECATED:Q}. @${ECHO_MSG} . if defined(EXPIRATION_DATE) @${ECHO_MSG} "It is scheduled to be removed on or after ${EXPIRATION_DATE}." @${ECHO_MSG} . endif . endif . endif # Check if the port is listed in the vulnerability database AUDITFILE?= ${PKG_DBDIR}/vuln.xml check-vulnerable: . if !defined(DISABLE_VULNERABILITIES) && !defined(PACKAGE_BUILDING) \ && exists(${AUDITFILE}) @${SETENV} \ dp_ECHO_MSG="${ECHO_MSG}" \ dp_PKG_BIN="${PKG_BIN}" \ dp_PORTNAME="${PORTNAME}" \ dp_PKGNAME="${PKGNAME}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ ${SH} ${SCRIPTSDIR}/check-vulnerable.sh . endif # Quote all variables except FETCH_ENV. Because some ports are creative, # quoting twice is necessary to pass through the echo/eval in do-fetch. _DO_FETCH_ENV= \ dp_DISABLE_SIZE='${DISABLE_SIZE}' \ dp_DISTDIR='${_DISTDIR}' \ dp_DISTINFO_FILE='${DISTINFO_FILE}' \ dp_DIST_SUBDIR='${DIST_SUBDIR}' \ dp_ECHO_MSG='${ECHO_MSG}' \ dp_FETCH_AFTER_ARGS='${FETCH_AFTER_ARGS}' \ dp_FETCH_BEFORE_ARGS='${FETCH_BEFORE_ARGS}' \ dp_FETCH_CMD='${FETCH_CMD}' \ dp_FETCH_ENV=${FETCH_ENV:Q} \ dp_FORCE_FETCH_ALL='${FORCE_FETCH_ALL}' \ dp_FORCE_FETCH_LIST='${FORCE_FETCH_LIST}' \ dp_MASTER_SITE_BACKUP='${_MASTER_SITE_BACKUP}' \ dp_MASTER_SITE_OVERRIDE='${_MASTER_SITE_OVERRIDE}' \ dp_MASTER_SORT_AWK='${MASTER_SORT_AWK}' \ dp_NO_CHECKSUM='${NO_CHECKSUM}' \ dp_RANDOMIZE_SITES='${_RANDOMIZE_SITES}' \ dp_SCRIPTSDIR='${SCRIPTSDIR}' \ dp_TARGET='${.TARGET}' . if defined(DEVELOPER) _DO_FETCH_ENV+= dp_DEVELOPER=yes . else _DO_FETCH_ENV+= dp_DEVELOPER= . endif # Fetch . if !target(do-fetch) do-fetch: . if !empty(DISTFILES) @${SETENV} \ ${_DO_FETCH_ENV} ${_MASTER_SITES_ENV} \ dp_SITE_FLAVOR=MASTER \ ${SH} ${SCRIPTSDIR}/do-fetch.sh ${DISTFILES:C/.*/'&'/} . endif . if defined(PATCHFILES) && !empty(PATCHFILES) @${SETENV} \ ${_DO_FETCH_ENV} ${_PATCH_SITES_ENV} \ dp_SITE_FLAVOR=PATCH \ ${SH} ${SCRIPTSDIR}/do-fetch.sh ${PATCHFILES:C/:-p[0-9]//:C/.*/'&'/} . endif . endif # # Prints out a list of files to fetch (useful to do a batch fetch) . if !target(fetch-list) fetch-list: . if !empty(DISTFILES) @${SETENV} \ ${_DO_FETCH_ENV} ${_MASTER_SITES_ENV} \ dp_SITE_FLAVOR=MASTER \ ${SH} ${SCRIPTSDIR}/do-fetch.sh ${DISTFILES:C/.*/'&'/} . endif . if defined(PATCHFILES) && !empty(PATCHFILES) @${SETENV} \ ${_DO_FETCH_ENV} ${_PATCH_SITES_ENV} \ dp_SITE_FLAVOR=PATCH \ ${SH} ${SCRIPTSDIR}/do-fetch.sh ${PATCHFILES:C/:-p[0-9]//:C/.*/'&'/} . endif . endif # Used by fetch-urlall-list and fetch-url-list . if !target(fetch-url-list-int) fetch-url-list-int: . if !empty(DISTFILES) @${SETENV} \ ${_DO_FETCH_ENV} ${_MASTER_SITES_ENV} \ dp_SITE_FLAVOR=MASTER \ ${SH} ${SCRIPTSDIR}/do-fetch.sh ${DISTFILES:C/.*/'&'/} . endif . if defined(PATCHFILES) && !empty(PATCHFILES) @${SETENV} \ ${_DO_FETCH_ENV} ${_PATCH_SITES_ENV} \ dp_SITE_FLAVOR=PATCH \ ${SH} ${SCRIPTSDIR}/do-fetch.sh ${PATCHFILES:C/:-p[0-9]//:C/.*/'&'/} . endif . endif . if !target(fetch-url-recursive-list-int) fetch-url-recursive-list-int: fetch-url-list-int @recursive_cmd="fetch-url-list-int"; \ recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # Prints out all the URL for all the DISTFILES and PATCHFILES. . if !target(fetch-urlall-list) fetch-urlall-list: @cd ${.CURDIR} && ${SETENV} FORCE_FETCH_ALL=yes ${MAKE} fetch-url-list-int . endif . if !target(fetch-urlall-recursive-list) fetch-urlall-recursive-list: fetch-urlall-list @recursive_cmd="fetch-urlall-list"; \ recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # Prints the URL for all the DISTFILES and PATCHFILES that are not here . if !target(fetch-url-list) fetch-url-list: fetch-url-list-int . endif . if !target(fetch-url-recursive-list) fetch-url-recursive-list: fetch-url-list @recursive_cmd="fetch-url-list"; \ recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # Extract clean-wrkdir: @${RM} -r ${WRKDIR} . if !target(do-extract) do-extract: ${EXTRACT_WRKDIR} @for file in ${EXTRACT_ONLY}; do \ if ! (cd ${EXTRACT_WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/$$file ${EXTRACT_AFTER_ARGS});\ then \ ${ECHO_MSG} "===> Failed to extract \"${_DISTDIR}/$$file\"."; \ exit 1; \ fi; \ done @if [ ${UID} = 0 ]; then \ ${CHMOD} -R ug-s ${WRKDIR}; \ ${CHOWN} -R 0:0 ${WRKDIR}; \ fi . endif # Patch . if !target(do-patch) do-patch: @${SETENV} \ dp_BZCAT="${BZCAT}" \ dp_CAT="${CAT}" \ dp_DISTDIR="${_DISTDIR}" \ dp_ECHO_MSG="${ECHO_MSG}" \ dp_EXTRA_PATCHES="${EXTRA_PATCHES}" \ dp_EXTRA_PATCH_TREE="${EXTRA_PATCH_TREE}" \ dp_GZCAT="${GZCAT}" \ dp_OPSYS="${OPSYS}" \ dp_PATCH="${PATCH}" \ dp_PATCHDIR="${PATCHDIR}" \ dp_PATCHFILES="${_PATCHFILES2}" \ dp_PATCH_ARGS=${PATCH_ARGS:Q} \ dp_PATCH_DEBUG_TMP="${PATCH_DEBUG_TMP}" \ dp_PATCH_DIST_ARGS="${PATCH_DIST_ARGS}" \ dp_PATCH_CONTINUE_ON_FAIL=${PATCH_CONTINUE_ON_FAIL:Dyes} \ dp_PATCH_SILENT="${PATCH_SILENT}" \ dp_PATCH_WRKSRC=${PATCH_WRKSRC} \ dp_PKGNAME="${PKGNAME}" \ dp_PKGORIGIN="${PKGORIGIN}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ dp_UNZIP_NATIVE_CMD="${UNZIP_NATIVE_CMD}" \ dp_XZCAT="${XZCAT}" \ ${SH} ${SCRIPTSDIR}/do-patch.sh . endif . if !target(run-autotools-fixup) run-autotools-fixup: # Work around an issue where FreeBSD 10.0 is detected as FreeBSD 1.x. . if !defined(WITHOUT_FBSD10_FIX) -@for f in `${FIND} ${WRKDIR} -type f \( -name config.libpath -o \ -name config.rpath -o -name configure -o -name libtool.m4 -o \ -name ltconfig -o -name libtool -o -name aclocal.m4 -o \ -name acinclude.m4 \)` ; do \ ${SED} -i.fbsd10bak \ -e 's|freebsd1\*)|freebsd1.\*)|g' \ -e 's|freebsd\[12\]\*)|freebsd[12].*)|g' \ -e 's|freebsd\[123\]\*)|freebsd[123].*)|g' \ -e 's|freebsd\[\[12\]\]\*)|freebsd[[12]].*)|g' \ -e 's|freebsd\[\[123\]\]\*)|freebsd[[123]].*)|g' \ $${f} ; \ cmp -s $${f}.fbsd10bak $${f} || \ ${ECHO_MSG} "===> FreeBSD 10 autotools fix applied to $${f}"; \ ${TOUCH} ${TOUCH_FLAGS} -mr $${f}.fbsd10bak $${f} ; \ ${RM} $${f}.fbsd10bak ; \ done . endif . endif # Configure . if !target(do-configure) do-configure: @if [ -f ${SCRIPTDIR}/configure ]; then \ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/configure; \ fi . if defined(GNU_CONFIGURE) @CONFIG_GUESS_DIRS=$$(${FIND} ${WRKDIR} -name config.guess -o -name config.sub \ | ${XARGS} -n 1 ${DIRNAME}); \ for _D in $${CONFIG_GUESS_DIRS}; do \ ${RM} $${_D}/config.guess; \ ${CP} ${TEMPLATES}/config.guess $${_D}/config.guess; \ ${CHMOD} a+rx $${_D}/config.guess; \ ${RM} $${_D}/config.sub; \ ${CP} ${TEMPLATES}/config.sub $${_D}/config.sub; \ ${CHMOD} a+rx $${_D}/config.sub; \ done . endif . if defined(HAS_CONFIGURE) @${MKDIR} ${CONFIGURE_WRKSRC} @(cd ${CONFIGURE_WRKSRC} && \ ${SET_LATE_CONFIGURE_ARGS} \ if ! ${SETENVI} ${WRK_ENV} CC="${CC}" CPP="${CPP}" CXX="${CXX}" \ CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" CXXFLAGS="${CXXFLAGS}" \ LDFLAGS="${LDFLAGS}" LIBS="${LIBS}" \ INSTALL="/usr/bin/install -c" \ INSTALL_DATA="${INSTALL_DATA}" \ INSTALL_LIB="${INSTALL_LIB}" \ INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ ${CONFIGURE_ENV} ${CONFIGURE_CMD} ${CONFIGURE_ARGS}; then \ ${ECHO_MSG} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \ (${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT_80} ; \ ${FALSE}; \ fi) . endif . endif # Build DO_MAKE_BUILD?= ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \ ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS:N${DESTDIRNAME}=*} . if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; if ! ${DO_MAKE_BUILD} ${ALL_TARGET}; then \ if [ -n "${BUILD_FAIL_MESSAGE}" ] ; then \ ${ECHO_MSG} "===> Compilation failed unexpectedly."; \ (${ECHO_CMD} "${BUILD_FAIL_MESSAGE}") | ${FMT_80} ; \ fi; \ ${FALSE}; \ fi) . endif # Check conflicts . if !target(check-conflicts) check-conflicts: check-build-conflicts check-install-conflicts . endif . if !target(check-build-conflicts) check-build-conflicts: . if ( defined(CONFLICTS) || defined(CONFLICTS_BUILD) ) && !defined(DISABLE_CONFLICTS) && !defined(DEFER_CONFLICTS_CHECK) @conflicts_with=$$(${PKG_QUERY} -ge "%n != ${PKGBASE}" "%n-%v" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} 2>/dev/null || : ; ) ; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " They will not build together."; \ ${ECHO_MSG} " Please remove them first with pkg delete."; \ exit 1;\ fi . endif . endif . if !target(identify-install-conflicts) CONFLICT_WARNING_WAIT?= 10 identify-install-conflicts: . if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) ) && !defined(DISABLE_CONFLICTS) @conflicts_with=$$(${PKG_QUERY} -ge "%n != ${PKGBASE}" "%n-%v" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : ; ) ; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " They install files into the same place."; \ ${ECHO_MSG} " You may want to stop build with Ctrl + C."; \ sleep ${CONFLICT_WARNING_WAIT}; \ fi . endif . endif . if !target(check-install-conflicts) check-install-conflicts: . if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) || ( defined(CONFLICTS_BUILD) && defined(DEFER_CONFLICTS_CHECK) ) ) && !defined(DISABLE_CONFLICTS) . if defined(DEFER_CONFLICTS_CHECK) @conflicts_with=$$(${PKG_QUERY} -ge "%n != ${PKGBASE}" "%n-%v" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : ; ) ; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " Please remove them first with pkg delete."; \ exit 1; \ fi . else @conflicts_with=$$(${PKG_QUERY} -ge "%n != ${PKGBASE}" "%n-%v" ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null || : ; ) ; \ if [ -n "$${conflicts_with}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ for entry in $${conflicts_with}; do \ ${ECHO_MSG} " $${entry}"; \ done; \ ${ECHO_MSG}; \ ${ECHO_MSG} " They install files into the same place."; \ ${ECHO_MSG} " Please remove them first with pkg delete."; \ exit 1; \ fi . endif # defined(DEFER_CONFLICTS_CHECK) . endif . endif # Install . if !target(do-install) && !defined(NO_INSTALL) do-install: @(cd ${INSTALL_WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${FAKEROOT} \ ${MAKE_CMD} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}) . endif # Test . if !target(do-test) && defined(TEST_TARGET) DO_MAKE_TEST?= ${SETENVI} ${WRK_ENV} ${TEST_ENV} ${MAKE_CMD} ${MAKE_FLAGS} \ ${MAKEFILE} ${TEST_ARGS:N${DESTDIRNAME}=*} do-test: @(cd ${TEST_WRKSRC}; if ! ${DO_MAKE_TEST} ${TEST_TARGET}; then \ if [ -n "${TEST_FAIL_MESSAGE}" ] ; then \ ${ECHO_MSG} "===> Tests failed unexpectedly."; \ (${ECHO_CMD} "${TEST_FAIL_MESSAGE}") | ${FMT_80} ; \ fi; \ ${FALSE}; \ fi) . endif # Package . if defined(_HAVE_PACKAGES) _EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE} _PORTS_DIRECTORIES+= ${PKGREPOSITORY} . if ${PKGORIGIN} == "ports-mgmt/pkg" || ${PKGORIGIN} == "ports-mgmt/pkg-devel" _EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTREPOSITORY} _PORTS_DIRECTORIES+= ${PKGLATESTREPOSITORY} _EXTRA_PACKAGE_TARGET_DEP+= ${PKGLATESTFILE} ${PKGLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} ${INSTALL} -l rs ${PKGFILE} ${PKGLATESTFILE} . if !defined(_PKG_TRANSITIONING_TO_NEW_EXT) && ${PKG_COMPRESSION_FORMAT} == txz _EXTRA_PACKAGE_TARGET_DEP+= ${PKGOLDLATESTFILE} ${PKGOLDSIGFILE} ${PKGOLDLATESTFILE}: ${PKGFILE} ${PKGLATESTREPOSITORY} ${INSTALL} -l rs ${PKGFILE} ${PKGOLDLATESTFILE} # Temporary workaround to be deleted once every supported version of FreeBSD # have a bootstrap which handles the pkg extension. ${PKGOLDSIGFILE}: ${PKGLATESTREPOSITORY} ${INSTALL} -l rs pkg.pkg.sig ${PKGOLDSIGFILE} . endif . endif . endif # from here this will become a loop for subpackages . for sp in ${_PKGS} ${_PLIST}.${sp}: ${TMPPLIST} @if [ "${PKGBASE}" = "${sp}" ]; then \ ${SED} "/^@comment /d; /@@/d" ${TMPPLIST} > ${.TARGET} ; \ else \ ${SED} -n "s/@@${sp:S/${PKGBASE}-//}@@//p" ${TMPPLIST} > ${.TARGET} ; \ fi ${WRKDIR_PKGFILE${_SP.${sp}}}: ${_PLIST}.${sp} create-manifest ${WRKDIR}/pkg @echo "===> Building ${PKGNAME${_SP.${sp}}}" @if ! ${SETENV} ${PKG_ENV} ${PKG_CREATE} ${PKG_CREATE_ARGS} -m ${METADIR}.${sp} -p ${_PLIST}.${sp} -o ${WRKDIR}/pkg ${PKGNAME}; then \ cd ${.CURDIR} && eval ${MAKE} delete-package >/dev/null; \ exit 1; \ fi _EXTRA_PACKAGE_TARGET_DEP+= ${WRKDIR_PKGFILE${_SP.${sp}}} . if defined(_HAVE_PACKAGES) ${PKGFILE${_SP.${sp}}}: ${WRKDIR_PKGFILE${_SP.${sp}}} @${LN} -f ${WRKDIR_PKGFILE${_SP.${sp}}} ${PKGFILE${_SP.${sp}}} 2>/dev/null \ || ${CP} -f ${WRKDIR_PKGFILE${_SP.${sp}}} ${PKGFILE${_SP.${sp}}} _EXTRA_PACKAGE_TARGET_DEP+= ${PKGFILE${_SP.${sp}}} . endif . endfor # This will be the end of the loop . if !target(do-package) PKG_CREATE_ARGS+= -f ${PKG_COMPRESSION_FORMAT} . if defined(PKG_COMPRESSION_LEVEL) PKG_CREATE_ARGS+= -l ${PKG_COMPRESSION_LEVEL} . endif PKG_CREATE_ARGS+= -r ${STAGEDIR} . if defined(PKG_CREATE_VERBOSE) PKG_CREATE_ARGS+= -v . endif do-package: ${_EXTRA_PACKAGE_TARGET_DEP} ${WRKDIR}/pkg . endif . if !target(delete-package) delete-package: . for sp in ${_PKGS} @${ECHO_MSG} "===> Deleting package for ${sp}" # When staging, the package may only be in the workdir if not root @${RM} ${PKGFILE${_SP.${sp}}} ${WRKDIR_PKGFILE${_SP.${sp}}} 2>/dev/null || : . endfor . endif . if !target(delete-package-list) delete-package-list: . for sp in ${_PKGS} @${ECHO_CMD} "[ -f ${PKGFILE${_SP.${sp}}} ] && (${ECHO_CMD} deleting ${PKGFILE${_SP.${sp}}}; ${RM} ${PKGFILE${_SP.${sp}}})" . endfor . endif # Used by scripts and users to install a package from local repository. # Poudriere -i uses this, please keep. . if !target(install-package) . if defined(FORCE_PKG_REGISTER) _INSTALL_PKG_ARGS= -f . endif . if defined(INSTALLS_DEPENDS) _INSTALL_PKG_ARGS+= -A . endif . for sp in ${_PKGS} install-package: install-package.${sp} install-package.${sp}: @if [ -f "${WRKDIR_PKGFILE${_SP.${sp}}}" ]; then \ _pkgfile="${WRKDIR_PKGFILE${_SP.${sp}}}"; \ else \ _pkgfile="${PKGFILE${_SP.${sp}}}"; \ fi; \ ${PKG_ADD} ${_INSTALL_PKG_ARGS} $${_pkgfile} . endfor . endif # Utility targets follow . if !target(check-already-installed) . if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER) check-already-installed: @${ECHO_MSG} "===> Checking if ${PKGBASE} is already installed"; \ pkgname=`${PKG_INFO} -q -O ${PKGBASE}`; \ if [ -n "$${pkgname}" ]; then \ v=`${PKG_VERSION} -t $${pkgname} ${PKGNAME}`; \ if [ "$${v}" = "<" ]; then \ ${ECHO_CMD} "===> An older version of ${PKGBASE} is already installed ($${pkgname})"; \ else \ ${ECHO_CMD} "===> ${PKGNAME} is already installed"; \ fi; \ ${ECHO_MSG} " You may wish to \`\`make deinstall'' and install this port again"; \ ${ECHO_MSG} " by \`\`make reinstall'' to upgrade it properly."; \ ${ECHO_MSG} " If you really wish to overwrite the old port of ${PKGBASE}"; \ ${ECHO_MSG} " without deleting it first, set the variable \"FORCE_PKG_REGISTER\""; \ ${ECHO_MSG} " in your environment or the \"make install\" command line."; \ exit 1; \ fi . endif . endif . if !target(check-umask) check-umask: @if [ `${SH} -c umask` != 0022 ]; then \ ${ECHO_MSG} "===> Warning: your umask is \"`${SH} -c umask`"\".; \ ${ECHO_MSG} " If this is not desired, set it to an appropriate value"; \ ${ECHO_MSG} " and install this port again by \`\`make reinstall''."; \ fi . endif # Needed for poudriere wait for at least a year before removing # XXX 2017-04-09 . if !target(install-mtree) install-mtree: . endif . if !target(install-ldconfig-file) install-ldconfig-file: . if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) . if defined(USE_LDCONFIG) . if !defined(USE_LINUX_PREFIX) . if ${USE_LDCONFIG} != "${LOCALBASE}/lib" && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Installing ldconfig configuration file" . if defined(NO_MTREE) || ${PREFIX} != ${LOCALBASE} @${MKDIR} ${STAGEDIR}${LOCALBASE}/${LDCONFIG_DIR} . endif @${ECHO_CMD} ${USE_LDCONFIG} | ${TR} ' ' '\n' \ > ${STAGEDIR}${LOCALBASE}/${LDCONFIG_DIR}/${PKGBASE} @${ECHO_CMD} ${LOCALBASE}/${LDCONFIG_DIR}/${PKGBASE} >> ${TMPPLIST} . if ${PREFIX} != ${LOCALBASE} @${ECHO_CMD} "@dir ${LOCALBASE}/${LDCONFIG_DIR}" >> ${TMPPLIST} . endif . endif . endif . endif . if defined(USE_LDCONFIG32) . if !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Installing 32-bit ldconfig configuration file" . if defined(NO_MTREE) || ${PREFIX} != ${LOCALBASE} @${MKDIR} ${STAGEDIR}${LOCALBASE}/${LDCONFIG32_DIR} . endif @${ECHO_CMD} ${USE_LDCONFIG32} | ${TR} ' ' '\n' \ > ${STAGEDIR}${LOCALBASE}/${LDCONFIG32_DIR}/${PKGBASE} @${ECHO_CMD} ${LOCALBASE}/${LDCONFIG32_DIR}/${PKGBASE} >> ${TMPPLIST} . if ${PREFIX} != ${LOCALBASE} @${ECHO_CMD} "@dir ${LOCALBASE}/${LDCONFIG32_DIR}" >> ${TMPPLIST} . endif . endif . endif . endif . endif . if !defined(USE_LINUX_PREFIX) . if !target(fixup-lib-pkgconfig) fixup-lib-pkgconfig: @if [ -d ${STAGEDIR}${PREFIX}/lib/pkgconfig ]; then \ if [ -z "$$(${FIND} ${STAGEDIR}${PREFIX}/lib/pkgconfig -maxdepth 0 -empty)" ]; then \ if [ -n "${DEVELOPER:Dyes}" ]; then \ ${ECHO_MSG} "===> File(s) found in lib/pkgconfig while correct path is libdata/pkgconfig"; \ ${ECHO_MSG} " Applying fix but consider using USES= pathfix or adjust install path"; \ fi; \ ${MKDIR} ${STAGEDIR}${PREFIX}/libdata/pkgconfig; \ ${MV} ${STAGEDIR}${PREFIX}/lib/pkgconfig/* ${STAGEDIR}${PREFIX}/libdata/pkgconfig; \ fi; \ ${RMDIR} ${STAGEDIR}${PREFIX}/lib/pkgconfig; \ fi . endif . endif . if !target(create-users-groups) . if defined(GROUPS) || defined(USERS) _UG_INSTALL= ${WRKDIR}/users-groups-install.sh _UG_DEINSTALL= ${WRKDIR}/users-groups-deinstall.sh PKGPREINSTALL+= ${_UG_INSTALL} PKGPOSTDEINSTALL+= ${_UG_DEINSTALL} create-users-groups: @${SETENV} \ dp_ECHO_MSG="${ECHO_MSG}" \ dp_GID_FILES="${GID_FILES}" \ dp_GID_OFFSET="${GID_OFFSET}" \ dp_GROUPS_BLACKLIST="${GROUPS_BLACKLIST}" \ dp_INSTALL="${INSTALL}" \ dp_OPSYS="${OPSYS}" \ dp_OSVERSION="${OSVERSION}" \ dp_PREFIX="${PREFIX}" \ dp_PW="${PW}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ dp_UG_DEINSTALL="${_UG_DEINSTALL}" \ dp_UG_INSTALL="${_UG_INSTALL}" \ dp_UID_FILES="${UID_FILES}" \ dp_UID_OFFSET="${UID_OFFSET}" \ dp_USERS_BLACKLIST="${USERS_BLACKLIST}" \ ${SH} ${SCRIPTSDIR}/do-users-groups.sh "${USERS}" "${GROUPS}" . endif . endif _WWW= ${WWW:[1]} . if !defined(DISABLE_SECURITY_CHECK) . if !target(security-check) security-check: ${TMPPLIST} # Scan PLIST for: # 1. setugid files # 2. accept()/recvfrom() which indicates network listening capability # 3. insecure functions (gets/mktemp/tempnam/[XXX]) # 4. startup scripts, in conjunction with 2. # 5. world-writable files/dirs # # The ${NONEXISTENT} argument of ${READELF} is there so that there are always # at least two file arguments, and forces it to always output the "File: foo" # header lines. # -@${RM} ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable ${WRKDIR}/.PLIST.readelf; \ ${AWK} -v prefix='${PREFIX}' ' \ match($$0, /^@cwd /) { prefix = substr($$0, RSTART + RLENGTH); if (prefix == "/") prefix=""; next; } \ /^@/ { next; } \ /^\// { print; next; } \ { print prefix "/" $$0; } \ ' ${TMPPLIST} > ${WRKDIR}/.PLIST.flattened; \ ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f \( -perm -4000 -o -perm -2000 \) \( -perm -0010 -o -perm -0001 \) 2> /dev/null > ${WRKDIR}/.PLIST.setuid; \ ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ | ${XARGS} -0 -J % ${FIND} % -prune -perm -0002 \! -type l 2> /dev/null > ${WRKDIR}/.PLIST.writable; \ ${TR} '\n' '\0' < ${WRKDIR}/.PLIST.flattened \ | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f -print0 2> /dev/null \ | ${XARGS} -0 ${READELF} -r ${NONEXISTENT} 2> /dev/null > ${WRKDIR}/.PLIST.readelf; \ if \ ! ${AWK} -v audit="$${PORTS_AUDIT}" -f ${SCRIPTSDIR}/security-check.awk \ ${WRKDIR}/.PLIST.flattened ${WRKDIR}/.PLIST.readelf ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable; \ then \ if [ ! -z "${_WWW}" ]; then \ ${ECHO_MSG}; \ ${ECHO_MSG} " For more information, and contact details about the security"; \ ${ECHO_MSG} " status of this software, see the following webpage: "; \ ${ECHO_MSG} "${_WWW}"; \ fi; \ fi . endif . else # i.e. defined(DISABLE_SECURITY_CHECK) security-check: @${ECHO_MSG} " WARNING: Security check has been disabled." . endif # !defined(DISABLE_SECURITY_CHECK) ################################################################ # Skeleton targets start here # # You shouldn't have to change these. Either add the pre-* or # post-* targets/scripts or redefine the do-* targets. These # targets don't do anything other than checking for cookies and # call the necessary targets/scripts. ################################################################ extract-message: @${ECHO_MSG} "===> Extracting for ${PKGNAME}" patch-message: @${ECHO_MSG} "===> Patching for ${PKGNAME}" configure-message: @${ECHO_MSG} "===> Configuring for ${PKGNAME}" build-message: @${ECHO_MSG} "===> Building for ${PKGNAME}" stage-message: @${ECHO_MSG} "===> Staging for ${PKGNAME}" install-message: @${ECHO_MSG} "===> Installing for ${PKGNAME}" test-message: @${ECHO_MSG} "===> Testing for ${PKGNAME}" package-message: @${ECHO_MSG} "===> Building packages for ${PKGNAME}" # Empty pre-* and post-* targets . if exists(${SCRIPTDIR}) . for stage in pre post . for name in pkg check-sanity fetch extract patch configure build stage install package . if !target(${stage}-${name}-script) . if exists(${SCRIPTDIR}/${stage}-${name}) ${stage}-${name}-script: @ cd ${.CURDIR} && ${SETENV} ${SCRIPTS_ENV} ${SH} \ ${SCRIPTDIR}/${.TARGET:S/-script$//} . endif . endif . endfor . endfor . endif . if !target(pretty-print-www-site) pretty-print-www-site: @if [ -n "${_WWW}" ]; then \ ${ECHO_MSG} -n " and/or visit the "; \ ${ECHO_MSG} -n "web site"; \ ${ECHO_MSG} " for further information"; \ fi . endif ################################################################ # Some more targets supplied for users' convenience ################################################################ # Checkpatch # # Special target to verify patches . if !target(checkpatch) checkpatch: @cd ${.CURDIR} && ${MAKE} ${PATCH_SILENT} PATCH_CHECK_ONLY=yes ${_PATCH_DEP} ${_PATCH_REAL_SEQ} . endif # Reinstall # # Special target to re-run install . if !target(reinstall) reinstall: @${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE} @cd ${.CURDIR} && DEPENDS_TARGET="${DEPENDS_TARGET}" ${MAKE} deinstall install . endif . if !target(restage) restage: @${RM} -r ${STAGEDIR} ${STAGE_COOKIE} ${INSTALL_COOKIE} ${PACKAGE_COOKIE} @cd ${.CURDIR} && ${MAKE} stage . endif # Deinstall # # Special target to remove installation . if !target(deinstall) deinstall: . if defined(UID) && ${UID} != 0 && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" @cd ${.CURDIR} && \ ${SU_CMD} "${MAKE} ${.TARGET}" @${ECHO_MSG} "===> Returning to user credentials" . else . for _sp in ${_PKGS} @${ECHO_MSG} "===> Deinstalling for ${_sp}" @if ${PKG_INFO} -e ${_sp}; then \ p=`${PKG_INFO} -q -O ${_sp}`; \ ${ECHO_MSG} "===> Deinstalling $${p}"; \ ${PKG_DELETE} -f ${_sp} ; \ else \ ${ECHO_MSG} "===> ${_sp} not installed, skipping"; \ fi . endfor @${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE} . endif . endif # Deinstall-all # # Special target to remove installation of all ports of the same origin . if !target(deinstall-all) deinstall-all: . if ${UID} != 0 && !defined(INSTALL_AS_USER) @${ECHO_MSG} "===> Switching to root credentials for '${.TARGET}' target" @cd ${.CURDIR} && \ ${SU_CMD} "${MAKE} ${.TARGET}" @${ECHO_MSG} "===> Returning to user credentials" . else @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" @deinstall_names=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ for oldpkgorigin in $$(${GREP} "|${PKGORIGIN}|" ${PORTSDIR}/MOVED | ${CUT} -f 1 -d '|' | ${SORT} -u); do \ deinstall_names="$${deinstall_names} $$(${PKG_INFO} -q -O $${oldpkgorigin})"; \ done; \ if [ -n "$${deinstall_names}" ]; then \ for d in $${deinstall_names}; do \ ${ECHO_MSG} "===> Deinstalling $${d}"; \ ${PKG_DELETE} -f $${d}; \ done; \ else \ ${ECHO_MSG} "===> ${PKGORIGIN} not installed, skipping"; \ fi; \ ${RM} ${INSTALL_COOKIE} ${PACKAGE_COOKIE} . endif . endif # Cleaning up . if !target(do-clean) do-clean: @if [ -d ${WRKDIR} ]; then \ if [ -w ${WRKDIR} ]; then \ ${RM} -r ${WRKDIR}; \ else \ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \ fi; \ fi . endif . if !target(clean) pre-clean: clean-msg clean-msg: @${ECHO_MSG} "===> Cleaning for ${PKGNAME}" . if empty(FLAVORS) CLEAN_DEPENDENCIES= . if !defined(NOCLEANDEPENDS) CLEAN_DEPENDENCIES+= limited-clean-depends-noflavor limited-clean-depends-noflavor: @cd ${.CURDIR} && ${MAKE} limited-clean-depends . endif . if target(pre-clean) CLEAN_DEPENDENCIES+= pre-clean-noflavor pre-clean-noflavor: @cd ${.CURDIR} && ${SETENV} ${MAKE} pre-clean . endif CLEAN_DEPENDENCIES+= do-clean-noflavor do-clean-noflavor: @cd ${.CURDIR} && ${SETENV} ${MAKE} do-clean . if target(post-clean) CLEAN_DEPENDENCIES+= post-clean-noflavor post-clean-noflavor: @cd ${.CURDIR} && ${SETENV} ${MAKE} post-clean . endif .ORDER: ${CLEAN_DEPENDENCIES} clean: ${CLEAN_DEPENDENCIES} . endif . if !empty(_FLAVOR) _CLEANFLAVORS= ${_FLAVOR} . else _CLEANFLAVORS= ${FLAVORS} . endif . for _f in ${_CLEANFLAVORS} CLEAN_DEPENDENCIES= . if !defined(NOCLEANDEPENDS) CLEAN_DEPENDENCIES+= limited-clean-depends-${_f} limited-clean-depends-${_f}: @cd ${.CURDIR} && ${SETENV} FLAVOR=${_f} ${MAKE} limited-clean-depends . endif . if target(pre-clean) CLEAN_DEPENDENCIES+= pre-clean-${_f} pre-clean-${_f}: @cd ${.CURDIR} && ${SETENV} FLAVOR=${_f} ${MAKE} pre-clean . endif CLEAN_DEPENDENCIES+= do-clean-${_f} do-clean-${_f}: @cd ${.CURDIR} && ${SETENV} FLAVOR=${_f} ${MAKE} do-clean . if target(post-clean) CLEAN_DEPENDENCIES+= post-clean-${_f} post-clean-${_f}: @cd ${.CURDIR} && ${SETENV} FLAVOR=${_f} ${MAKE} post-clean . endif .ORDER: ${CLEAN_DEPENDENCIES} clean: ${CLEAN_DEPENDENCIES} . endfor . endif . if !target(distclean) distclean: clean @cd ${.CURDIR} && ${MAKE} delete-distfiles RESTRICTED_FILES="${_DISTFILES:Q} ${_PATCHFILES:Q}" . endif . if !target(delete-distfiles) delete-distfiles: @${ECHO_MSG} "===> Deleting distfiles for ${PKGNAME}" @(if [ "X${RESTRICTED_FILES}" != "X" -a -d ${_DISTDIR} ]; then \ cd ${_DISTDIR}; \ for file in ${RESTRICTED_FILES}; do \ ${RM} $${file}; \ dir=$${file%/*}; \ if [ "$${dir}" != "$${file}" ]; then \ ${RMDIR} -p $${dir} >/dev/null 2>&1 || :; \ fi; \ done; \ fi) . if defined(DIST_SUBDIR) -@${RMDIR} ${_DISTDIR} >/dev/null 2>&1 || ${TRUE} . endif . endif . if !target(delete-distfiles-list) delete-distfiles-list: @${ECHO_CMD} "# ${PKGNAME}" @if [ "X${RESTRICTED_FILES}" != "X" ]; then \ for file in ${RESTRICTED_FILES}; do \ ${ECHO_CMD} "[ -f ${_DISTDIR}/$$file ] && (${ECHO_CMD} deleting ${_DISTDIR}/$$file; ${RM} ${_DISTDIR}/$$file)"; \ dir=$${file%/*}; \ if [ "$${dir}" != "$${file}" ]; then \ ${ECHO_CMD} "(cd ${_DISTDIR} && ${RMDIR} -p $${dir} 2>/dev/null)"; \ fi; \ done; \ fi . if defined(DIST_SUBDIR) @${ECHO_CMD} "${RMDIR} ${_DISTDIR} 2>/dev/null || ${TRUE}" . endif . endif # Checksumming utilities # List all algorithms here, all the variables name must begin with dp_ _CHECKSUM_INIT_ENV= \ dp_SHA256=${SHA256} . if !target(makesum) # Some port change the options with OPTIONS_*_FORCE when make(makesum) to be # able to add all distfiles in one go. # For this to work, we need to call the do-fetch script directly here so that # the options consistent when fetching and when makesum'ing. # As we're fetching new distfiles, that are not in the distinfo file, disable # checksum and sizes checks. makesum: check-sanity @cd ${.CURDIR} && ${MAKE} fetch NO_CHECKSUM=yes \ DISABLE_SIZE=yes DISTFILES="${DISTFILES}" \ MASTER_SITES="${MASTER_SITES}" \ MASTER_SITE_SUBDIR="${MASTER_SITE_SUBDIR}" \ PATCH_SITES="${PATCH_SITES}" @${SETENV} \ ${_CHECKSUM_INIT_ENV} \ dp_CHECKSUM_ALGORITHMS='${CHECKSUM_ALGORITHMS:tu}' \ dp_CKSUMFILES='${_CKSUMFILES}' \ dp_DISTDIR='${DISTDIR}' \ dp_DISTINFO_FILE='${DISTINFO_FILE}' \ dp_ECHO_MSG='${ECHO_MSG}' \ dp_SCRIPTSDIR='${SCRIPTSDIR}' \ ${SH} ${SCRIPTSDIR}/makesum.sh ${DISTFILES:C/.*/'&'/} . endif . if !target(checksum) checksum: fetch . if !empty(_CKSUMFILES) && !defined(NO_CHECKSUM) @${SETENV} \ ${_CHECKSUM_INIT_ENV} \ dp_CHECKSUM_ALGORITHMS='${CHECKSUM_ALGORITHMS:tu}' \ dp_CURDIR='${.CURDIR}' \ dp_DISTDIR='${DISTDIR}' \ dp_DISTINFO_FILE='${DISTINFO_FILE}' \ dp_DIST_SUBDIR='${DIST_SUBDIR}' \ dp_ECHO_MSG='${ECHO_MSG}' \ dp_FETCH_REGET='${FETCH_REGET}' \ dp_MAKE='${MAKE}' \ dp_MAKEFLAGS='${.MAKEFLAGS}' \ dp_SCRIPTSDIR='${SCRIPTSDIR}' \ dp_DISABLE_SIZE='${DISABLE_SIZE}' \ dp_NO_CHECKSUM='${NO_CHECKSUM}' \ ${SH} ${SCRIPTSDIR}/checksum.sh ${_CKSUMFILES:C/.*/'&'/} . endif . endif # Some port's archives contains files modes that are a bit too restrictive for # some usage. For example: # BUILD_DEPENDS= ${NONEXISTENT}:foo/bar:configure # When building as a regular user, dependencies are installed/built as root, so # if the archive contains files that have a mode of, say, 600, they will not be # readable by the port requesting the dependency. # This will also fix broken distribution files where directories don't have the # executable bit on. extract-fixup-modes: @${CHMOD} -R u+w,a+rX ${WRKDIR} ################################################################ # The special package-building targets # You probably won't need to touch these ################################################################ # Nobody should want to override this unless PKGNAME is simply bogus. . if !target(package-name) package-name: @${ECHO_CMD} ${PKGNAME} . endif # Build a package but don't check the package cookie . if !target(repackage) repackage: pre-repackage package pre-repackage: @${RM} ${PACKAGE_COOKIE} ${TMPPLIST}* . endif # Build a package but don't check the cookie for installation, also don't # install package cookie . if !target(package-noinstall) package-noinstall: package . endif ################################################################ # Dependency checking ################################################################ . if !target(depends) depends: pkg-depends extract-depends patch-depends lib-depends fetch-depends build-depends run-depends . for deptype in PKG EXTRACT PATCH FETCH BUILD LIB RUN TEST . for sp in ${_PKGS} ${deptype}_DEPENDS_ALL+= ${${deptype}_DEPENDS${_SP.${sp}}} . endfor ${deptype:tl}-depends: . if !empty(${deptype}_DEPENDS_ALL) && !defined(NO_DEPENDS) @${SETENV} \ dp_RAWDEPENDS="${${deptype}_DEPENDS_ALL}" \ dp_DEPTYPE="${deptype}_DEPENDS" \ dp_DEPENDS_TARGET="${DEPENDS_TARGET}" \ dp_DEPENDS_PRECLEAN="${DEPENDS_PRECLEAN}" \ dp_DEPENDS_CLEAN="${DEPENDS_CLEAN}" \ dp_DEPENDS_ARGS="${DEPENDS_ARGS}" \ dp_USE_PACKAGE_DEPENDS="${USE_PACKAGE_DEPENDS}" \ dp_USE_PACKAGE_DEPENDS_ONLY="${USE_PACKAGE_DEPENDS_ONLY}" \ dp_PKG_ADD="${PKG_ADD}" \ dp_PKG_INFO="${PKG_INFO}" \ dp_WRKDIR="${WRKDIR}" \ dp_PKGNAME="${PKGNAME}" \ dp_STRICT_DEPENDS="${STRICT_DEPENDS}" \ dp_LOCALBASE="${LOCALBASE}" \ dp_LIB_DIRS="${LIB_DIRS}" \ dp_SH="${SH}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ PORTSDIR="${PORTSDIR}" \ dp_OVERLAYS="${OVERLAYS}" \ dp_MAKE="${MAKE}" \ dp_MAKEFLAGS='${.MAKEFLAGS}' \ ${SH} ${SCRIPTSDIR}/do-depends.sh . endif . endfor . endif # Dependency lists: both build and runtime, recursive. Print out directory names. _UNIFIED_DEPENDS=${PKG_DEPENDS_ALL} ${EXTRACT_DEPENDS_ALL} ${PATCH_DEPENDS_ALL} ${FETCH_DEPENDS_ALL} ${BUILD_DEPENDS_ALL} ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL} ${TEST_DEPENDS_ALL} _DEPEND_SPECIALS= ${_UNIFIED_DEPENDS:M*\:*\:*:C,^[^:]*:([^:]*):.*$,\1,} . for d in ${_UNIFIED_DEPENDS:M*\:/*} _PORTSDIR_STR= $${PORTSDIR}/ DEV_WARNING+= "It looks like the ${d} depends line has an absolute port origin, make sure to remove \$${_PORTSDIR_STR} from it." . endfor all-depends-list: @${ALL-DEPENDS-LIST} _FLAVOR_RECURSIVE_SH= \ if [ -z "$${recursive_cmd}" ]; then \ ${ECHO_MSG} "_FLAVOR_RECURSIVE_SH requires recursive_cmd to be set to the recursive make target to run." >&2; \ ${FALSE}; \ fi; \ if [ "$${recursive_dirs-null}" = "null" ]; then \ ${ECHO_MSG} "_FLAVOR_RECURSIVE_SH requires recursive_dirs to be set to the directories to recurse." >&2; \ ${FALSE}; \ fi; \ for dir in $${recursive_dirs}; do \ unset flavor FLAVOR; \ case $${dir} in \ *@*/*) ;; \ *@*) \ flavor=$${dir\#*@}; \ dir=$${dir%@*}; \ ;; \ esac; \ case $$dir in \ /*) ;; \ *) dir=${PORTSDIR}/$$dir ;; \ esac; \ (cd $$dir; ${SETENV} $${flavor:+FLAVOR=$${flavor}} ${MAKE} $${recursive_cmd}); \ done # This script is shared among several dependency list variables. See file for # usage. DEPENDS-LIST= \ ${SETENV} \ PORTSDIR="${PORTSDIR}" \ dp_MAKE="${MAKE}" \ dp_PKGNAME="${PKGNAME}" \ dp_PKG_INFO="${PKG_INFO}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ dp_OVERLAYS="${OVERLAYS}" \ ${SH} ${SCRIPTSDIR}/depends-list.sh \ ${DEPENDS_SHOW_FLAVOR:D-f} ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q} ALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:Q} DEINSTALL-DEPENDS-FLAVORS-LIST= ${DEPENDS-LIST} -f -r ${_UNIFIED_DEPENDS:N${PKG_DEPENDS}:Q} MISSING-DEPENDS-LIST= ${DEPENDS-LIST} -m ${_UNIFIED_DEPENDS:Q} BUILD-DEPENDS-LIST= ${DEPENDS-LIST} "${PKG_DEPENDS_ALL} ${EXTRACT_DEPENDS_ALL} ${PATCH_DEPENDS_ALL} ${FETCH_DEPENDS_ALL} ${BUILD_DEPENDS_ALL} ${LIB_DEPENDS_ALL}" RUN-DEPENDS-LIST= ${DEPENDS-LIST} "${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL}" TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS_ALL:Q} CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q} CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q} . if !target(clean-depends) clean-depends: @for dir in $$(${CLEAN-DEPENDS-LIST}); do \ (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ done . endif . if !target(limited-clean-depends) limited-clean-depends: @for dir in $$(${CLEAN-DEPENDS-LIMITED-LIST}); do \ (cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \ done . endif . if !target(deinstall-depends) deinstall-depends: @recursive_cmd="deinstall"; \ recursive_dirs="$$(${DEINSTALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif . if !target(fetch-specials) fetch-specials: @${ECHO_MSG} "===> Fetching all distfiles required by ${PKGNAME} for building" @recursive_cmd="fetch"; \ recursive_dirs="${_DEPEND_SPECIALS}"; \ ${_FLAVOR_RECURSIVE_SH} . endif . if !target(fetch-recursive) fetch-recursive: @${ECHO_MSG} "===> Fetching all distfiles for ${PKGNAME} and dependencies" @recursive_cmd="fetch"; \ recursive_dirs="${.CURDIR}${FLAVOR:D@${FLAVOR}} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif . if !target(fetch-recursive-list) fetch-recursive-list: @recursive_cmd="fetch-list"; \ recursive_dirs="${.CURDIR}${FLAVOR:D@${FLAVOR}} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # Used by fetch-required and fetch-required list, this script looks # at each of the dependencies. If 3 items are specified in the tuple, # such as foo:graphics/foo:extract, the first item (foo) # is examined. Only if it begins with a / and does not exist on the # file-system will ``make targ'' proceed. # For more usual (dual-item) dependency tuples, the ``make targ'' # proceeds, if the exact package, which the directory WOULD'VE installed, # is not yet installed. # This is the exact behaviour of the old code, and it may need # revisiting. For example, the entire first case seems dubious, and in # the second case we, probably, should be satisfied with _any_ (earlier) # package, with the same origin as that of the dir. # # -mi FETCH_LIST?= for i in $$deps; do \ prog=$${i%%:*}; dir=$${i\#*:}; \ case $$dir in \ /*) ;; \ *) dir=${PORTSDIR}/$$dir ;; \ esac; \ case $$dir in \ *:*) if [ $$prog != $${prog\#/} -o ! -e $$prog ]; then \ dir=$${dir%%:*}; \ else \ continue; \ fi;; \ *) if [ -d ${PKG_DBDIR}/$$(cd $$dir; ${MAKE} -V PKGNAME) ]; then \ continue; \ fi;; \ esac; \ echo cd $$dir; cd $$dir; ${MAKE} $$targ; \ done . if !target(fetch-required) fetch-required: fetch . if defined(NO_DEPENDS) @${ECHO_MSG} "===> NO_DEPENDS is set, not fetching any other distfiles for ${PKGNAME}" . else @${ECHO_MSG} "===> Fetching all required distfiles for ${PKGNAME} and dependencies" . for deptype in PKG EXTRACT PATCH FETCH BUILD RUN . if defined(${deptype}_DEPENDS) @targ=fetch; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST} . endif . endfor . endif . endif . if !target(fetch-required-list) fetch-required-list: fetch-list . if !defined(NO_DEPENDS) . for deptype in PKG EXTRACT PATCH FETCH BUILD RUN . if defined(${deptype}_DEPENDS) @targ=fetch-list; deps="${${deptype}_DEPENDS_ALL}"; ${FETCH_LIST} . endif . endfor . endif . endif . if !target(checksum-recursive) checksum-recursive: @${ECHO_MSG} "===> Fetching and checking checksums for ${PKGNAME} and dependencies" @recursive_cmd="checksum"; \ recursive_dirs="${.CURDIR}${FLAVOR:D@${FLAVOR}} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # Dependency lists: build and runtime. Print out directory names. build-depends-list: . if defined(PKG_DEPENDS) || defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) @${BUILD-DEPENDS-LIST} . endif run-depends-list: . if defined(LIB_DEPENDS) || defined(RUN_DEPENDS) @${RUN-DEPENDS-LIST} . endif test-depends-list: . if defined(TEST_DEPENDS) @${TEST-DEPENDS-LIST} . endif # Package (recursive runtime) dependency list. Print out both directory names # and package names. package-depends-list: . if defined(CHILD_DEPENDS) || defined(LIB_DEPENDS) || defined(RUN_DEPENDS) @${PACKAGE-DEPENDS-LIST} . endif _LIB_RUN_DEPENDS= ${LIB_DEPENDS_ALL} ${RUN_DEPENDS_ALL} PACKAGE-DEPENDS-LIST?= \ if [ "${CHILD_DEPENDS}" ]; then \ installed=$$(${PKG_INFO} -qO ${PKGORIGIN} 2>/dev/null || \ ${TRUE}); \ if [ "$$installed" ]; then \ break; \ fi; \ if [ -z "$$installed" ]; then \ installed="${PKGNAME}"; \ fi; \ for pkgname in $$installed; do \ ${ECHO_CMD} "$$pkgname ${.CURDIR} ${PKGORIGIN}"; \ done; \ fi; \ checked="${PARENT_CHECKED}"; \ for dir in ${_LIB_RUN_DEPENDS:C,[^:]*:([^:]*):?.*,\1,}; do \ unset flavor; \ case $${dir} in \ *~*) \ dir=$${dir%~*}; \ ;; \ esac; \ case $${dir} in \ *@*) \ flavor=$${dir\#*@}; \ dir=$${dir%@*}; \ ;; \ esac; \ case "$$dir" in \ /*) ;; \ *) dir=${PORTSDIR}/$$dir ;; \ esac ; \ dir=$$(${REALPATH} $$dir); \ if [ -d $$dir ]; then \ case $$checked in \ $$dir|$$dir\ *|*\ $$dir|*\ $$dir\ *) continue;; \ esac; \ childout=$$(cd $$dir; ${SETENV} FLAVOR=$${flavor} ${MAKE} CHILD_DEPENDS=yes PARENT_CHECKED="$$checked" package-depends-list); \ set -- $$childout; \ childdir=""; \ while [ $$\# != 0 ]; do \ childdir="$$childdir $$2"; \ ${ECHO_CMD} "$$1 $$2 $$3"; \ shift 3; \ done; \ checked="$$dir $$childdir $$checked"; \ else \ ${ECHO_MSG} "${PKGNAME}: \"$$dir\" non-existent -- dependency list incomplete" >&2; \ fi; \ done # FIXME: SELF_DEPENDS can only be used to depend on sub packages whose # package name has not been overrided by the framework, otherwize the # assumption made below that the package name is "PKGBASE-$$self" is broken. . for sp in ${_PKGS} ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}?= \ depfiles="" ; \ for lib in ${LIB_DEPENDS${_SP.${sp}}:C/\:.*//}; do \ depfiles="$$depfiles `${SETENV} LIB_DIRS="${LIB_DIRS}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/find-lib.sh $${lib}`" ; \ done ; \ for self in ${SELF_DEPENDS${_SP.${sp}}}; do \ if [ "$$self" = "main" ]; then \ printf "\"%s\": {origin: \"%s\", version: \"%s\"}\n" ${PKGBASE} ${PKGORIGIN} ${PKGVERSION}; \ else \ printf "\"%s-%s\": {origin: \"%s\", version: \"%s\"}\n" ${PKGBASE} $$self ${PKGORIGIN} ${PKGVERSION}; \ fi ; \ done ; \ ${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS${_SP.${sp}}:C/(.*)\:.*/"\1"/} . endfor PKG_NOTES_ENV?= . for note in ${PKG_NOTES} PKG_NOTES_ENV+= dp_PKG_NOTE_${note}=${PKG_NOTE_${note}:Q} . endfor . for sp in ${_PKGS} PKG_NOTES.${sp}= ${PKG_NOTES} PKG_NOTES_ENV.${sp}= ${PKG_NOTES_ENV} . if ${sp} != ${PKGBASE} PKG_NOTES.${sp}+= subpackage PKG_NOTES_ENV.${sp}+= dp_PKG_NOTE_subpackage=${_SP.${sp}:S/^.//1} . endif create-manifest: create-manifest.${sp} create-manifest.${sp}: @${SETENV} \ dp_SCRIPTSDIR='${SCRIPTSDIR}' \ dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}}' \ dp_CATEGORIES='${CATEGORIES:u:S/$/,/}' \ dp_COMMENT=${COMMENT${_SP.${sp}}:Q} \ dp_COMPLETE_OPTIONS_LIST='${COMPLETE_OPTIONS_LIST}' \ dp_DEPRECATED=${DEPRECATED:Q} \ dp_DESCR='${DESCR${_SP.${sp}}}' \ dp_EXPIRATION_DATE='${EXPIRATION_DATE}' \ dp_GROUPS='${GROUPS:u:S/$/,/}' \ dp_LICENSE='${LICENSE:u:S/$/,/}' \ dp_LICENSE_COMB='${LICENSE_COMB}' \ dp_MAINTAINER='${MAINTAINER}' \ dp_METADIR='${METADIR}.${sp}' \ dp_NO_ARCH='${NO_ARCH}' \ dp_PKGBASE='${sp}' \ dp_PKGDEINSTALL='${PKGDEINSTALL${_SP.${sp}}}' \ dp_PKGINSTALL='${PKGINSTALL${_SP.${sp}}}' \ dp_PKGMESSAGES='${_PKGMESSAGES${_SP.${sp}}}' \ dp_PKGORIGIN='${PKGORIGIN}' \ dp_PKGPOSTDEINSTALL='${PKGPOSTDEINSTALL${_SP.${sp}}}' \ dp_PKGPOSTINSTALL='${PKGPOSTINSTALL${_SP.${sp}}}' \ dp_PKGPREDEINSTALL='${PKGPREDEINSTALL${_SP.${sp}}}' \ dp_PKGPREINSTALL='${PKGPREINSTALL${_SP.${sp}}}' \ dp_PKGVERSION='${PKGVERSION}' \ dp_PKG_BIN='${PKG_BIN}' \ dp_PKG_IGNORE_DEPENDS='${PKG_IGNORE_DEPENDS}' \ dp_PKG_NOTES='${PKG_NOTES.${sp}}' \ dp_PORT_OPTIONS='${PORT_OPTIONS}' \ dp_PREFIX='${PREFIX}' \ dp_USERS='${USERS:u:S/$/,/}' \ dp_WWW='${WWW}' \ ${PKG_NOTES_ENV.${sp}} \ ${SH} ${SCRIPTSDIR}/create-manifest.sh . endfor # Print out package names. package-depends: @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' . for sp in ${_PKGS} actual-package-depends: actual-package-depends.${sp} actual-package-depends.${sp}: @${ACTUAL-PACKAGE-DEPENDS${_SP.${sp}}} . endfor # Build packages for port and dependencies package-recursive: package @recursive_cmd="package-noinstall"; \ recursive_dirs="$$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} # Show missing dependencies missing: @for dir in $$(${MISSING-DEPENDS-LIST}); do \ echo $${dir#${PORTSDIR}/}; \ done # Show missing dependencies by name missing-packages: @_packages=$$(${PKG_INFO} -aq); \ for dir in $$(${ALL-DEPENDS-LIST}); do \ _p=$$(cd $$dir; ${MAKE} -VPKGNAME); \ if ! $$(${ECHO_CMD} $${_packages} | ${GREP} -q $${_p}); then \ ${ECHO_CMD} $${_p}; \ fi; \ done # Install missing dependencies from package install-missing-packages: @_dirs=$$(${MISSING-DEPENDS-LIST}); \ ${ECHO_CMD} "$${_dirs}" | ${SED} "s%${PORTSDIR}/%%g" | \ ${SU_CMD} "${XARGS} -o ${PKG_BIN} install -A" ################################################################ # Everything after here are internal targets and really # shouldn't be touched by anybody but the release engineers. ################################################################ # This target generates an index entry suitable for aggregation into # a large index. Format is: # # distribution-name|port-path|installation-prefix|comment| \ # description-file|maintainer|categories|extract-depends| \ # patch-depends|fetch-depends|build-depends|run-depends|www site # # If this ever changes, portmgr should contact the portsnap maintainer # first to avoid gratuitous breakage. . if !target(describe) _EXTRACT_DEPENDS=${EXTRACT_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} _PATCH_DEPENDS=${PATCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} _FETCH_DEPENDS=${FETCH_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} _LIB_DEPENDS=${LIB_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} _BUILD_DEPENDS=${BUILD_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS} _RUN_DEPENDS=${RUN_DEPENDS_ALL:C/^[^ :]+:([^ :@]+)(@[^ :]+)?(:[^ :]+)?/\1/:O:u:C,(^[^/]),${PORTSDIR}/\1,} ${_LIB_DEPENDS} . if exists(${DESCR}) _DESCR=${DESCR} . else _DESCR=/dev/null . endif . if defined(BUILDING_INDEX) && defined(INDEX_PORTS) INDEX_OUT=${INDEX_TMPDIR}/${INDEXFILE}.desc.aggr . else INDEX_OUT=/dev/stdout . endif . if empty(FLAVORS) || defined(_DESCRIBE_WITH_FLAVOR) describe: @(${ECHO_CMD} "${PKGNAME}|${.CURDIR}|${PREFIX}|"${COMMENT:Q}"|${_DESCR}|${MAINTAINER}|${CATEGORIES}|${_EXTRACT_DEPENDS}|${_PATCH_DEPENDS}|${_FETCH_DEPENDS}|${_BUILD_DEPENDS:O:u}|${_RUN_DEPENDS:O:u}|${_WWW}" >> ${INDEX_OUT}) . else # empty(FLAVORS) describe: ${FLAVORS:S/^/describe-/} . for f in ${FLAVORS} describe-${f}: @cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -D_DESCRIBE_WITH_FLAVOR describe . endfor . endif # empty(FLAVORS) . endif . if empty(FLAVORS) || defined(_DESCRIBE_WITH_FLAVOR) . if defined(_DESCRIBE_WITH_FLAVOR) _JSON_OBJ_NAME="\"${FLAVOR}-${.CURDIR:T}\":" . endif describe-json: @(${ECHO_CMD} "${_JSON_OBJ_NAME} { ";\ ${ECHO_CMD} \"uses\":[\"${USES:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"flavors\":[\"${FLAVORS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"options_default\":[\"${OPTIONS_DEFAULT:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"fetch_depends\":[\"${FETCH_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"extract_depends\":[\"${EXTRACT_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"patch_depends\":[\"${PATCH_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"build_depends\":[\"${BUILD_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"lib_depends\":[\"${LIB_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"run_depends\":[\"${RUN_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"test_depends\":[\"${TEST_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"pkg_depends\":[\"${PKG_DEPENDS:ts,:Q:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"complete_options_list\":[\"${COMPLETE_OPTIONS_LIST:ts,:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"categories\":[\"${CATEGORIES:ts,:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"license\":[\"${LICENSE:ts,:S/,/\",\"/g}\"], ;\ ${ECHO_CMD} \"deprecated\":\""${DEPRECATED:S/"/\\\"/g:S/\\\\*/*/g:S/\\\'/'/g}" \", ;\ ${ECHO_CMD} \"broken\":\"${BROKEN:Q:S/"/\\\"/g:S/\\\\*/*/g:S/\\\'/'/g}\", ;\ ${ECHO_CMD} \"distversion\":\"${DISTVERSION}\", ;\ ${ECHO_CMD} \"distversionprefix\":\"${DISTVERSIONPREFIX}\", ;\ ${ECHO_CMD} \"distversionsuffix\":\"${DISTVERSIONSUFFIX}\", ;\ ${ECHO_CMD} \"expiration_date\":\"${EXPIRATION_DATE}\", ;\ ${ECHO_CMD} \"flavor\":\"${FLAVOR}\", ;\ ${ECHO_CMD} \"gh_account\":\"${GH_ACCOUNT}\", ;\ ${ECHO_CMD} \"gh_project\":\"${GH_PROJECT}\", ;\ ${ECHO_CMD} \"gh_tagname\":\"${GH_TAGNAME}\", ;\ ${ECHO_CMD} \"gl_account\":\"${GL_ACCOUNT}\", ;\ ${ECHO_CMD} \"gl_commit\":\"${GL_COMMIT}\", ;\ ${ECHO_CMD} \"gl_project\":\"${GL_PROJECT}\", ;\ ${ECHO_CMD} \"gl_site\":\"${GL_SITE}\", ;\ ${ECHO_CMD} \"maintainer\":\"${MAINTAINER}\", ;\ ${ECHO_CMD} \"makefiles\":\"${MAKEFILES}\", ;\ ${ECHO_CMD} \"pkgbase\":\"${PKGBASE}\", ;\ ${ECHO_CMD} \"pkgname\":\"${PKGNAME}\", ;\ ${ECHO_CMD} \"pkgnamesuffix\":\"${PKGNAMESUFFIX}\", ;\ ${ECHO_CMD} \"pkgorigin\":\"${PKGORIGIN}\", ;\ ${ECHO_CMD} \"comment\":\"${COMMENT:Q:S/"/\\\"/g:S/\\\\*/*/g:S/\\\'/'/g}\", ;\ ${ECHO_CMD} \"portepoch\":\"${PORTEPOCH}\", ;\ ${ECHO_CMD} \"portname\":\"${PORTNAME}\", ;\ ${ECHO_CMD} \"portrevision\":\"${PORTREVISION}\", ;\ ${ECHO_CMD} \"portversion\":\"${PORTVERSION}\", ;\ ${ECHO_CMD} \"use_github\":\"${USE_GITHUB}\", ;\ ${ECHO_CMD} \"use_gitlab\":\"${USE_GITLAB}\", ;\ ${ECHO_CMD} \"www\":\"${WWW:Q}\" ;\ ${ECHO_CMD} "}" >> ${INDEX_OUT}) . else # empty(FLAVORS) describe-json: ${FLAVORS:S/^/describe-json-/} _LAST_FLAVOR = ${FLAVORS:[-1]} . for f in ${FLAVORS} describe-json-${f}: @if [ "${f}" == "${FLAVORS:[1]}" ]; then \ ${ECHO_CMD} "{" ;\ fi; @cd ${.CURDIR} && ${SETENV} FLAVOR=${f} ${MAKE} -B -D_DESCRIBE_WITH_FLAVOR describe-json @if [ "${f}" != "${_LAST_FLAVOR}" ]; then \ ${ECHO_MSG} "," ;\ else \ ${ECHO_CMD} "}" ;\ fi; \ . endfor . endif # empty(FLAVORS) www-site: @${ECHO_CMD} ${_WWW} . if !target(readmes) readmes: readme . endif . if !target(readme) readme: @${RM} ${.CURDIR}/README.html @cd ${.CURDIR} && ${MAKE} ${.CURDIR}/README.html . endif ${.CURDIR}/README.html: @${ECHO_MSG} "===> Creating README.html for ${PKGNAME}" @${SED} -e 's|%%PORT%%|'$$(${ECHO_CMD} ${.CURDIR} | \ ${SED} -e 's|.*/\([^/]*/[^/]*\)$$|\1|')'|g' \ -e 's|%%PKG%%|${PKGNAME}|g' \ -e 's|%%COMMENT%%|'"$$(${ECHO_CMD} ${COMMENT:Q})"'|' \ -e '/%%COMMENT%%/d' \ -e 's|%%DESCR%%|'"$$(${ECHO_CMD} ${DESCR} | \ ${SED} -e 's|${.CURDIR}/||')"'|' \ -e 's|%%EMAIL%%|'"$$(${ECHO_CMD} "${MAINTAINER}" | \ ${SED} -e 's/([^)]*)//;s/.*.*//')"'|g' \ -e 's|%%MAINTAINER%%|${MAINTAINER}|g' \ -e 's|%%WEBSITE%%|'"$$(cd ${.CURDIR} && eval ${MAKE} pretty-print-www-site)"'|' \ -e 's|%%BUILD_DEPENDS%%|'"$$(cd ${.CURDIR} && eval ${MAKE} pretty-print-build-depends-list)"'|' \ -e 's|%%RUN_DEPENDS%%|'"$$(cd ${.CURDIR} && eval ${MAKE} pretty-print-run-depends-list)"'|' \ -e 's|%%TOP%%|'"$$(${ECHO_CMD} ${CATEGORIES} | \ ${SED} -e 's| .*||' -e 's|[^/]*|..|g')"'/..|' \ ${TEMPLATES}/README.port >> ${.TARGET} # The following two targets require an up-to-date INDEX in ${PORTSDIR} _PRETTY_PRINT_DEPENDS_LIST=\ if [ ! -r ${INDEXDIR}/${INDEXFILE} ] ; then \ ${ECHO_MSG} "${.TARGET} requires an INDEX file (${INDEXFILE}). Please run make index or make fetchindex."; \ else \ target=${.TARGET:C/pretty-print-(.*)-depends-list/\1/} ; \ if [ "$$target" = "build" ] ; then fldnum=8 ; else fldnum=9 ; fi; \ ${ECHO_MSG} -n 'This port requires package(s) "' ; \ ${ECHO_MSG} -n `${AWK} -F\| "\\$$1 ~ /^${PKGNAME}/ {print \\$$$${fldnum};}" ${INDEXDIR}/${INDEXFILE}` ; \ ${ECHO_MSG} "\" to $$target."; \ fi; . if !target(pretty-print-build-depends-list) pretty-print-build-depends-list: . if defined(PKG_DEPENDS) || defined(EXTRACT_DEPENDS) || defined(PATCH_DEPENDS) || \ defined(FETCH_DEPENDS) || defined(BUILD_DEPENDS) || defined(LIB_DEPENDS) @${_PRETTY_PRINT_DEPENDS_LIST} . endif . endif . if !target(pretty-print-run-depends-list) pretty-print-run-depends-list: . if defined(RUN_DEPENDS) || defined(LIB_DEPENDS) @${_PRETTY_PRINT_DEPENDS_LIST} . endif . endif _SUB_LIST_TEMP= ${SUB_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} . if !target(apply-slist) && defined(SUB_FILES) apply-slist: . for file in ${SUB_FILES} . if !exists(${FILESDIR}/${file}.in) @${ECHO_MSG} "** Missing ${FILESDIR}/${file}.in for ${PKGNAME}."; exit 1 . else @${SED} ${_SUB_LIST_TEMP} -e '/^@comment /d' ${FILESDIR}/${file}.in > ${WRKDIR}/${file} . endif . endfor . for i in pkg-message pkg-install pkg-deinstall pkg-req . if ${SUB_FILES:M${i}*}!="" ${i:S/-//:tu}= ${WRKDIR}/${SUB_FILES:M${i}*} . endif . endfor . endif # Generate packing list. Also tests to make sure all required package # files exist. PLIST_SUB_SANITIZED= ${PLIST_SUB:N*_regex=*} . if !target(generate-plist) generate-plist: ${WRKDIR} @${ECHO_MSG} "===> Generating temporary packing list" @${MKDIR} ${TMPPLIST:H} @if [ ! -f ${DESCR} ]; then ${ECHO_MSG} "** Missing pkg-descr for ${PKGNAME}."; exit 1; fi @>${TMPPLIST} @for file in ${PLIST_FILES}; do \ ${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} >> ${TMPPLIST}; \ done . for sp in ${_PKGS} . if ${sp} != ${PKGBASE} @for file in ${PLIST_FILES${_SP.${sp}}}; do \ ${ECHO_CMD} $${file} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's/^/@@${_SP.${sp}:S/^.//}@@/' >> ${TMPPLIST}; \ done . endif . endfor . if !empty(PLIST) . for f in ${PLIST} @if [ -f "${f}" ]; then \ ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} ${f} >> ${TMPPLIST}; \ for i in owner group mode; do ${ECHO_CMD} "@$$i"; done >> ${TMPPLIST}; \ fi . endfor . endif . for dir in ${PLIST_DIRS} @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@dir ,' >> ${TMPPLIST} . endfor . for sp in ${_PKGS} . if ${sp} != ${PKGBASE} . for dir in ${PLIST_DIRS${_SP.${sp}}} @${ECHO_CMD} ${dir} | ${SED} ${PLIST_SUB_SANITIZED:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} -e 's,^,@@${_SP.${sp}:S/^.//}@@@dir ,' >> ${TMPPLIST} . endfor . endif . endfor . endif ${TMPPLIST}: @cd ${.CURDIR} && ${MAKE} generate-plist . for _type in EXAMPLES DOCS . if !empty(_REALLY_ALL_POSSIBLE_OPTIONS:M${_type}) . if !target(add-plist-${_type:tl}) . if defined(PORT${_type}) && !empty(PORT_OPTIONS:M${_type}) add-plist-${_type:tl}: . for x in ${PORT${_type}} @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ if [ ! -e ${STAGEDIR}${${_type}DIR}/${x} ]; then \ ${ECHO_CMD} ${${_type}DIR}/${x} >> ${TMPPLIST}; \ fi;fi . endfor @${FIND} -P ${PORT${_type}:S/^/${STAGEDIR}${${_type}DIR}\//} ! -type d 2>/dev/null | \ ${SED} -ne 's,^${STAGEDIR},,p' >> ${TMPPLIST} . endif . endif . endif . endfor . if !target(add-plist-data) . if defined(PORTDATA) add-plist-data: . for x in ${PORTDATA} @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ if [ ! -e ${STAGEDIR}${DATADIR}/${x} ]; then \ ${ECHO_CMD} ${DATADIR}/${x} >> ${TMPPLIST}; \ fi;fi . endfor @${FIND} -P ${PORTDATA:S/^/${STAGEDIR}${DATADIR}\//} ! -type d 2>/dev/null | \ ${SED} -ne 's,^${STAGEDIR},,p' >> ${TMPPLIST} . endif . endif . if !target(add-plist-info) . if defined(INFO) add-plist-info: . for i in ${INFO} @${LS} ${STAGEDIR}${PREFIX}/${INFO_PATH}/$i.info* | ${SED} -e s:${STAGEDIR}:@info\ :g >> ${TMPPLIST} . endfor . endif . endif # If we're installing into a non-standard PREFIX, we need to remove that directory at # deinstall-time . if !target(add-plist-post) . if (${PREFIX} != ${LOCALBASE} && ${PREFIX} != ${LINUXBASE} && \ ${PREFIX} != "/usr" && ${PREFIX} != "/" && !defined(NO_PREFIX_RMDIR)) add-plist-post: @${ECHO_CMD} "@dir ${PREFIX}" >> ${TMPPLIST} . endif . endif . if !target(install-rc-script) . if defined(USE_RC_SUBR) install-rc-script: @${ECHO_MSG} "===> Staging rc.d startup script(s)" @for i in ${USE_RC_SUBR}; do \ _prefix=${PREFIX}; \ [ "${PREFIX}" = "/usr" ] && _prefix="" ; \ ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${STAGEDIR}$${_prefix}/etc/rc.d/$${i%.sh}; \ ${ECHO_CMD} "@(root,wheel,0755) $${_prefix}/etc/rc.d/$${i%.sh}" >> ${TMPPLIST}; \ done . endif . endif . if !target(check-man) check-man: stage @${ECHO_MSG} "====> Checking man pages (check-man)" @mdirs= ; \ for dir in ${MANDIRS:S/^/${STAGEDIR}/} ; do \ [ -d $$dir ] && mdirs="$$mdirs $$dir" ;\ done ; \ err=0 ; \ for dir in $$mdirs; do \ for f in $$(find $$dir -name "*.gz"); do \ ${ECHO_CMD} "===> Checking $${f##*/}" ; \ gunzip -c $$f | mandoc -Tlint -Werror && continue ; \ err=1 ; \ done ; \ done ; \ exit $$err . endif # Compress all manpage not already compressed which are not hardlinks # Find all manpages which are not compressed and are hardlinks, and only get the list of inodes concerned, for each of them compress the first one found and recreate the hardlinks for the others # Fixes all dead symlinks left by the previous round . if !target(compress-man) compress-man: @${ECHO_MSG} "====> Compressing man pages (compress-man)" @mdirs= ; \ for dir in ${MANDIRS:S/^/${STAGEDIR}/} ; do \ [ -d $$dir ] && mdirs="$$mdirs $$dir" ;\ done ; \ for dir in $$mdirs; do \ ${FIND} $$dir -type f \! -name "*.gz" -links 1 -exec ${GZIP_CMD} {} \; ; \ ${FIND} $$dir -type f \! -name "*.gz" \! -links 1 -exec ${STAT} -f '%i' {} \; | \ ${SORT} -u | while read inode ; do \ unset ref ; \ for f in $$(${FIND} $$dir -type f -inum $${inode} -print); do \ if [ -z $$ref ]; then \ ref=$${f}.gz ; \ ${GZIP_CMD} $${f} ; \ continue ; \ fi ; \ ${RM} $${f} ; \ (cd $${f%/*}; ${LN} -f $${ref##*/} $${f##*/}.gz) ; \ done ; \ done ; \ ${FIND} $$dir -type l \! -name "*.gz" | while read link ; do \ ${LN} -sf $$(readlink $$link).gz $$link.gz ;\ ${RM} $$link ; \ done; \ done . endif . if !target(stage-dir) stage-dir: ${STAGEDIR}${PREFIX} . if !defined(NO_MTREE) @${MTREE_CMD} ${MTREE_ARGS} ${STAGEDIR}${PREFIX} > /dev/null . endif . endif . if !target(makeplist) makeplist: stage @${SETENV} ${CO_ENV} ${SH} ${SCRIPTSDIR}/check-stagedir.sh makeplist . endif . if !target(check-plist) check-plist: stage @${ECHO_MSG} "====> Checking for pkg-plist issues (check-plist)" @${SETENV} ${CO_ENV} ${SH} ${SCRIPTSDIR}/check-stagedir.sh checkplist @${ECHO_MSG} "===> No pkg-plist issues found (check-plist)" . endif . if !target(check-orphans) check-orphans: check-plist . endif . if !target(stage-qa) stage-qa: @${ECHO_MSG} "====> Running Q/A tests (stage-qa)" @${SETENV} ${QA_ENV} ${SH} ${SCRIPTSDIR}/qa.sh . if !defined(DEVELOPER) @${ECHO_MSG} "/!\\ To run stage-qa automatically add DEVELOPER=yes to your environment /!\\" . endif . endif pretty-flavors-package-names: .PHONY . if empty(FLAVORS) @${ECHO_CMD} "no flavor: ${PKGNAMES}" . else . for f in ${FLAVORS} @${ECHO_CMD} -n "${f}: " @cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V PKGNAMES . endfor . endif flavors-package-names: .PHONY . if empty(FLAVORS) @${ECHO_CMD} "${PKGNAMES}" | ${XARGS} -n 1 . else . for f in ${FLAVORS} @cd ${.CURDIR} && ${SETENV} -i FLAVOR=${f} ${MAKE} -B -V PKGNAMES | ${XARGS} -n 1 . endfor . endif # Fake installation of package so that user can pkg delete it later. . if !target(fake-pkg) STAGE_ARGS= -i ${STAGEDIR} . if defined(NO_PKG_REGISTER) STAGE_ARGS= -N . endif . for sp in ${_PKGS} fake-pkg: fake-pkg.${sp} fake-pkg.${sp}: ${_PLIST}.${sp} . if defined(INSTALLS_DEPENDS) . if !defined(NO_PKG_REGISTER) @${ECHO_MSG} "===> Registering installation for ${PKGNAME} as automatic" . endif @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} -d ${STAGE_ARGS} -m ${METADIR}.${sp} -f ${_PLIST}.${sp} . else . if !defined(NO_PKG_REGISTER) @${ECHO_MSG} "===> Registering installation for ${PKGNAME}" . endif @${SETENV} ${PKG_ENV} FORCE_POST="${_FORCE_POST_PATTERNS}" ${PKG_REGISTER} ${STAGE_ARGS} -m ${METADIR}.${sp} -f ${_PLIST}.${sp} . endif @${RM} -r ${METADIR}.${sp} . endfor . endif # Depend is generally meaningless for arbitrary ports, but if someone wants # one they can override this. This is just to catch people who've gotten into # the habit of typing `make depend all install' as a matter of course. # Same goes for tags . for _t in depend tags . if !target(${_t}) ${_t}: . endif . endfor . if !defined(NOPRECIOUSMAKEVARS) # These won't change, so we can pass them through the environment . for var in ${_EXPORTED_VARS} . if empty(.MAKEFLAGS:M${var}=*) && !empty(${var}) .MAKEFLAGS: ${var}=${${var}:Q} . endif . endfor . endif PORTS_ENV_VARS+= ${_EXPORTED_VARS} . if !target(pre-check-config) pre-check-config: _CHECK_OPTIONS_NAMES= OPTIONS_DEFINE OPTIONS_GROUP OPTIONS_MULTI \ OPTIONS_RADIO OPTIONS_SINGLE _CHECK_OPTIONS_NAMES+= ${OPTIONS_GROUP:S/^/OPTIONS_GROUP_/} _CHECK_OPTIONS_NAMES+= ${OPTIONS_MULTI:S/^/OPTIONS_MULTI_/} _CHECK_OPTIONS_NAMES+= ${OPTIONS_RADIO:S/^/OPTIONS_RADIO_/} _CHECK_OPTIONS_NAMES+= ${OPTIONS_SINGLE:S/^/OPTIONS_SINGLE_/} . for var in ${_CHECK_OPTIONS_NAMES} . if defined(${var}) . for o in ${${var}} . if ${o:C/[-_[:upper:][:digit:]]//g} OPTIONS_BAD_NAMES+= ${o} . endif . endfor . endif . endfor . if defined(OPTIONS_BAD_NAMES) && !empty(OPTIONS_BAD_NAMES) DEV_WARNING+= "These options name have characters outside of [-_A-Z0-9]:" DEV_WARNING+= "${OPTIONS_BAD_NAMES:O:u}" . endif . for single in ${OPTIONS_SINGLE} . for opt in ${OPTIONS_SINGLE_${single}} . if empty(ALL_OPTIONS:M${single}) || !empty(PORT_OPTIONS:M${single}) . if !empty(PORT_OPTIONS:M${opt}) OPTIONS_WRONG_SINGLE_${single}+= ${opt} . if defined(OPTFOUND) OPTIONS_WRONG_SINGLE+= ${single} . else OPTFOUND= true . endif . endif . else # if conditional and if the condition is unchecked, remove opt from the list of # set options PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}} OPTNOCHECK= true . endif . endfor . if !defined(OPTFOUND) && !defined(OPTNOCHECK) OPTIONS_WRONG_SINGLE+= ${single} . endif . undef OPTFOUND . undef OPTNOCHECK . endfor .undef single . for radio in ${OPTIONS_RADIO} . for opt in ${OPTIONS_RADIO_${radio}} . if !empty(PORT_OPTIONS:M${opt}) OPTIONS_WRONG_RADIO_${radio}+= ${opt} . if defined(OPTFOUND) OPTIONS_WRONG_RADIO+= ${radio} . else OPTFOUND= true . endif . endif . endfor . undef OPTFOUND . endfor . for multi in ${OPTIONS_MULTI} . for opt in ${OPTIONS_MULTI_${multi}} . if empty(ALL_OPTIONS:M${multi}) || !empty(PORT_OPTIONS:M${multi}) . if !empty(PORT_OPTIONS:M${opt}) OPTFOUND= true . endif . else # if conditional and if the condition is unchecked, remove opt from the list of # set options PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}} OPTNOCHECK= true . endif . endfor . if !defined(OPTFOUND) && !defined(OPTNOCHECK) OPTIONS_WRONG_MULTI+= ${multi} . endif . undef OPTFOUND . undef OPTNOCHECK . endfor .undef multi . for opt in ${PORT_OPTIONS} . for conflict in ${${opt}_PREVENTS} . if ${PORT_OPTIONS:M${conflict}} . if empty(OPTIONS_WRONG_PREVENTS:M${opt}) OPTIONS_WRONG_PREVENTS+= ${opt} . endif OPTIONS_WRONG_PREVENTS_${opt}+= ${conflict} . endif . endfor . endfor .undef conflict .undef opt . endif #pre-check-config . if !target(_check-config) _check-config: pre-check-config . for multi in ${OPTIONS_WRONG_MULTI} @${ECHO_MSG} "====> You must check at least one option in the ${multi} multi" . endfor . for single in ${OPTIONS_WRONG_SINGLE} @${ECHO_MSG} "====> You must select one and only one option from the ${single} single" . if defined(OPTIONS_WRONG_SINGLE_${single}) @${ECHO_MSG} "=====> Only one of these must be defined: ${OPTIONS_WRONG_SINGLE_${single}}" . else @${ECHO_MSG} "=====> No option was selected (and one must be)" . endif . endfor . for radio in ${OPTIONS_WRONG_RADIO} @${ECHO_MSG} "====> You cannot select multiple options from the ${radio} radio" @${ECHO_MSG} "=====> Only one of these must be defined: ${OPTIONS_WRONG_RADIO_${radio}}" . endfor . if defined(OPTIONS_WRONG_PREVENTS) @${ECHO_MSG} "====> Two or more enabled options conflict with each other" . for prevents in ${OPTIONS_WRONG_PREVENTS} @${ECHO_MSG} "=====> Option ${prevents} conflicts with ${OPTIONS_WRONG_PREVENTS_${prevents}} (select only one)" . if defined(${prevents}_PREVENTS_MSG) @${ECHO_MSG} "======> ${${prevents}_PREVENTS_MSG}" . endif . endfor . endif . if !empty(OPTIONS_WRONG_MULTI) || !empty(OPTIONS_WRONG_SINGLE) || !empty(OPTIONS_WRONG_RADIO) || !empty(OPTIONS_WRONG_PREVENTS) _CHECK_CONFIG_ERROR= true . endif . endif # _check-config . if !target(check-config) check-config: _check-config . if !empty(_CHECK_CONFIG_ERROR) @${FALSE} . endif . endif # check-config . if !target(sanity-config) sanity-config: _check-config . if !empty(_CHECK_CONFIG_ERROR) @echo -n "Config is invalid. Re-edit? [Y/n] "; \ read answer; \ case $$answer in \ [Nn]|[Nn][Oo]) \ exit 0; \ esac; \ cd ${.CURDIR} && ${MAKE} config . endif . endif # sanity-config . if !target(pre-config) pre-config: D4P_ENV= PKGNAME="${PKGNAME}" \ PORT_OPTIONS="${PORT_OPTIONS}" \ ALL_OPTIONS="${ALL_OPTIONS}" \ OPTIONS_MULTI="${OPTIONS_MULTI}" \ OPTIONS_SINGLE="${OPTIONS_SINGLE}" \ OPTIONS_RADIO="${OPTIONS_RADIO}" \ OPTIONS_GROUP="${OPTIONS_GROUP}" \ NEW_OPTIONS="${NEW_OPTIONS}" \ DIALOG4PORTS="${DIALOG4PORTS}" \ PREFIX="${PREFIX}" \ LOCALBASE="${LOCALBASE}" \ PORTSDIR="${PORTSDIR}" \ MAKE="${MAKE}" \ D4PHEIGHT="${D4PHEIGHT}" \ D4PMINHEIGHT="${D4PMINHEIGHT}" \ D4PWIDTH="${D4PWIDTH}" \ D4PFULLSCREEN="${D4PFULLSCREEN}" \ D4PALIGNCENTER="${D4PALIGNCENTER}" \ D4PASCIILINES="${D4PASCIILINES}" . if exists(${PKGHELP}) D4P_ENV+= PKGHELP="${PKGHELP}" . endif . for opt in ${ALL_OPTIONS} D4P_ENV+= ${opt}_DESC=""${${opt}_DESC:Q}"" . endfor . for otype in MULTI GROUP SINGLE RADIO . for m in ${OPTIONS_${otype}} D4P_ENV+= OPTIONS_${otype}_${m}="${OPTIONS_${otype}_${m}}" \ ${m}_DESC=""${${m}_DESC:Q}"" . for opt in ${OPTIONS_${otype}_${m}} D4P_ENV+= ${opt}_DESC=""${${opt}_DESC:Q}"" . endfor . endfor . endfor .undef m .undef otype .undef opt . endif # pre-config . if !target(do-config) do-config: . if empty(ALL_OPTIONS) && empty(OPTIONS_SINGLE) && empty(OPTIONS_MULTI) && empty(OPTIONS_RADIO) && empty(OPTIONS_GROUP) @${ECHO_MSG} "===> No options to configure" . else @optionsdir=${OPTIONS_FILE:H}; \ if [ ! -w "${PORT_DBDIR}" -a "`stat -f %u ${PORT_DBDIR:H}`" = 0 ]; \ then \ ${ECHO_MSG} "===> Switching to root credentials to create $${optionsdir}"; \ (${SU_CMD} "${SH} -c \"${MKDIR} $${optionsdir} 2> /dev/null\"") || \ (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1); \ ${ECHO_MSG} "===> Returning to user credentials" ; \ else \ ${MKDIR} $${optionsdir} 2> /dev/null || \ (${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1) ; \ fi @TMPOPTIONSFILE=$$(mktemp -t portoptions); \ trap "${RM} $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ ${SETENV} ${D4P_ENV} ${SH} ${SCRIPTSDIR}/dialog4ports.sh $${TMPOPTIONSFILE} || { \ ${RM} $${TMPOPTIONSFILE}; \ ${ECHO_CMD}; \ ${ECHO_MSG} "===> Options unchanged"; \ exit 0; \ }; \ ${ECHO_CMD}; \ if [ ! -e $${TMPOPTIONSFILE} ]; then \ ${ECHO_MSG} "===> No user-specified options to save for ${PKGNAME}"; \ exit 0; \ fi; \ SELOPTIONS=$$(${CAT} $${TMPOPTIONSFILE}); \ ${RM} $${TMPOPTIONSFILE}; \ TMPOPTIONSFILE=$$(mktemp -t portoptions); \ trap "${RM} $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \ ${ECHO_CMD} "# This file is auto-generated by 'make config'." > $${TMPOPTIONSFILE}; \ ${ECHO_CMD} "# Options for ${PKGNAME}" >> $${TMPOPTIONSFILE}; \ ${ECHO_CMD} "_OPTIONS_READ=${PKGNAME}" >> $${TMPOPTIONSFILE}; \ ${ECHO_CMD} "_FILE_COMPLETE_OPTIONS_LIST=${COMPLETE_OPTIONS_LIST}" >> $${TMPOPTIONSFILE}; \ for i in ${COMPLETE_OPTIONS_LIST}; do \ if ${ECHO_CMD} $${SELOPTIONS} | ${GREP} -qw $${i}; then \ ${ECHO_CMD} "OPTIONS_FILE_SET+=$${i}" >> $${TMPOPTIONSFILE}; \ else \ ${ECHO_CMD} "OPTIONS_FILE_UNSET+=$${i}" >> $${TMPOPTIONSFILE}; \ fi; \ done; \ if [ ! -w "${OPTIONS_FILE:H}" -a "`stat -f %u ${OPTIONS_FILE:H}`" != ${UID} ]; \ then \ ${ECHO_MSG} "===> Switching to root credentials to write ${OPTIONS_FILE}"; \ ${SU_CMD} "${CAT} $${TMPOPTIONSFILE} > ${OPTIONS_FILE}"; \ ${ECHO_MSG} "===> Returning to user credentials"; \ else \ ${CAT} $${TMPOPTIONSFILE} > ${OPTIONS_FILE}; \ fi; \ ${RM} $${TMPOPTIONSFILE} @cd ${.CURDIR} && ${MAKE} sanity-config . endif . endif # do-config . if !target(config) . if !defined(NO_DIALOG) config: pre-config do-config . else config: @${ECHO_MSG} "===> Skipping 'config' as NO_DIALOG is defined" . endif . endif # config . if !target(config-recursive) config-recursive: @${ECHO_MSG} "===> Setting user-specified options for ${PKGNAME} and dependencies"; @recursive_cmd="config-conditional"; \ recursive_dirs="${.CURDIR}${FLAVOR:D@${FLAVOR}} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # config-recursive . if !target(config-conditional) config-conditional: . if !empty(NEW_OPTIONS) @cd ${.CURDIR} && ${MAKE} config; . endif . endif # config-conditional . if !target(showconfig) && (make(*config*) || (!empty(.MAKEFLAGS:M-V) && !empty(.MAKEFLAGS:M*_DESC))) .include "${PORTSDIR}/Mk/bsd.options.desc.mk" MULTI_EOL= : you have to choose at least one of them SINGLE_EOL= : you have to select exactly one of them RADIO_EOL= : you can only select none or one of them showconfig: check-config . if !empty(COMPLETE_OPTIONS_LIST) @${ECHO_MSG} "===> The following configuration options are available for ${PKGNAME}": . for opt in ${ALL_OPTIONS} @[ -z "${PORT_OPTIONS:M${opt}}" ] || match="on" ; ${ECHO_MSG} -n " ${opt}=$${match:-off}" . if !empty(${opt}_DESC) @${ECHO_MSG} -n ": "${${opt}_DESC:Q} . endif @${ECHO_MSG} "" . endfor #multi and conditional multis . for otype in MULTI GROUP SINGLE RADIO . for m in ${OPTIONS_${otype}} . if empty(${m}_DESC) @${ECHO_MSG} "====> Options available for the ${otype:tl} ${m}${${otype}_EOL}" . else @${ECHO_MSG} "====> ${${m}_DESC}${${otype}_EOL}" . endif . for opt in ${OPTIONS_${otype}_${m}} @[ -z "${PORT_OPTIONS:M${opt}}" ] || match="on" ; ${ECHO_MSG} -n " ${opt}=$${match:-off}" . if !empty(${opt}_DESC) @${ECHO_MSG} -n ": "${${opt}_DESC:Q} . endif @${ECHO_MSG} "" . endfor . endfor . endfor .undef otype .undef m .undef opt @${ECHO_MSG} "===> Use 'make config' to modify these settings" . endif . endif # showconfig . if !target(showconfig-recursive) showconfig-recursive: @${ECHO_MSG} "===> The following configuration options are available for ${PKGNAME} and its dependencies"; @recursive_cmd="showconfig"; \ recursive_dirs="${.CURDIR}${FLAVOR:D@${FLAVOR}} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # showconfig-recursive . if !target(rmconfig) rmconfig: . if exists(${OPTIONS_FILE}) -@${ECHO_MSG} "===> Removing user-configured options for ${PKGNAME}"; \ optionsdir=${OPTIONS_FILE:H}; \ if [ ${UID} != 0 -a "x${INSTALL_AS_USER}" = "x" -a ! -w "${OPTIONS_FILE}" ]; then \ ${ECHO_MSG} "===> Switching to root credentials to remove ${OPTIONS_FILE} and $${optionsdir}"; \ ${SU_CMD} "${RM} ${OPTIONS_FILE} ; \ ${RMDIR} $${optionsdir}"; \ ${ECHO_MSG} "===> Returning to user credentials"; \ else \ ${RM} ${OPTIONS_FILE}; \ ${RMDIR} $${optionsdir} 2>/dev/null || return 0; \ fi . else @${ECHO_MSG} "===> No user-specified options configured for ${PKGNAME}" . endif . endif # rmconfig . if !target(rmconfig-recursive) rmconfig-recursive: @${ECHO_MSG} "===> Removing user-specified options for ${PKGNAME} and its dependencies"; @recursive_cmd="rmconfig"; \ recursive_dirs="${.CURDIR}${FLAVOR:D@${FLAVOR}} $$(${ALL-DEPENDS-FLAVORS-LIST})"; \ ${_FLAVOR_RECURSIVE_SH} . endif # rmconfig-recursive . if !target(pretty-print-config) MULTI_START= [ MULTI_END= ] GROUP_START= [ GROUP_END= ] SINGLE_START= ( SINGLE_END= ) RADIO_START= ( RADIO_END= ) pretty-print-config: . for opt in ${ALL_OPTIONS} @[ -z "${PORT_OPTIONS:M${opt}}" ] || match="+" ; ${ECHO_MSG} -n "$${match:--}${opt} " . endfor . for otype in MULTI GROUP SINGLE RADIO . for m in ${OPTIONS_${otype}} @${ECHO_MSG} -n "${m}${${otype}_START} " . for opt in ${OPTIONS_${otype}_${m}} @[ -z "${PORT_OPTIONS:M${opt}}" ] || match="+" ; ${ECHO_MSG} -n "$${match:--}${opt} " . endfor @${ECHO_MSG} -n "${${otype}_END} " . endfor . endfor .undef otype .undef m .undef opt @${ECHO_MSG} "" . endif # pretty-print-config desktop-categories: @${SETENV} \ dp_CATEGORIES="${CATEGORIES}" \ dp_ECHO_CMD=${ECHO_CMD} \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ dp_SORT="${SORT}" \ dp_TR="${TR}" \ ${SH} ${SCRIPTSDIR}/desktop-categories.sh . if defined(DESKTOP_ENTRIES) check-desktop-entries: @${SETENV} \ dp_CURDIR="${.CURDIR}" \ dp_ECHO_CMD=${ECHO_CMD} \ dp_ECHO_MSG=${ECHO_MSG} \ dp_EXPR="${EXPR}" \ dp_GREP="${GREP}" \ dp_MAKE="${MAKE}" \ dp_PKGNAME="${PKGNAME}" \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ dp_SED="${SED}" \ dp_VALID_DESKTOP_CATEGORIES="${VALID_DESKTOP_CATEGORIES}" \ dp_TR="${TR}" \ ${SH} ${SCRIPTSDIR}/check-desktop-entries.sh ${DESKTOP_ENTRIES} . endif . if !target(install-desktop-entries) . if defined(DESKTOP_ENTRIES) install-desktop-entries: @${SETENV} \ dp_CURDIR="${.CURDIR}" \ dp_ECHO_CMD=${ECHO_CMD} \ dp_SCRIPTSDIR="${SCRIPTSDIR}" \ dp_STAGEDIR="${STAGEDIR}" \ dp_DESKTOPDIR="${DESKTOPDIR}" \ dp_TMPPLIST="${TMPPLIST}" \ dp_MAKE="${MAKE}" \ dp_SED="${SED}" \ ${SH} ${SCRIPTSDIR}/install-desktop-entries.sh ${DESKTOP_ENTRIES} . endif . endif . if !empty(BINARY_ALIAS) . if !target(create-binary-alias) create-binary-alias: ${BINARY_LINKDIR} . for target src in ${BINARY_ALIAS:C/=/ /} @if srcpath=`which -- ${src}`; then \ ${RLN} $${srcpath} ${BINARY_LINKDIR}/${target}; \ else \ ${ECHO_MSG} "===> Missing \"${src}\" to create a binary alias at \"${BINARY_LINKDIR}/${target}\""; \ ${FALSE}; \ fi . endfor . endif . endif . if !empty(PKGCONFIG_BASE) . if !target(create-base-pkgconfig) create-base-pkgconfig: ${PKGCONFIG_LINKDIR} . for pcfile in ${PKGCONFIG_BASE:S/$/.pc/} @if `test -f ${PKGCONFIG_BASEDIR}/${pcfile}`; then \ ${RLN} ${PKGCONFIG_BASEDIR}/${pcfile} ${PKGCONFIG_LINKDIR}/${pcfile}; \ else \ ${ECHO_MSG} "===> Missing \"${pcfile}\" to create a link at \"${PKGCONFIG_LINKDIR}/${pcfile}\" "; \ ${FALSE}; \ fi . endfor . endif . endif . if !empty(BINARY_WRAPPERS) . if !target(create-binary-wrappers) create-binary-wrappers: ${BINARY_LINKDIR} . for bin in ${BINARY_WRAPPERS} @${INSTALL_SCRIPT} ${WRAPPERSDIR}/${bin} ${BINARY_LINKDIR} . endfor . endif . endif . if defined(WARNING) WARNING_WAIT?= 10 show-warnings: @${ECHO_MSG} "/!\\ WARNING /!\\" @${ECHO_MSG} . for m in ${WARNING} @${ECHO_MSG} "${m}" | ${FMT_80} @${ECHO_MSG} . endfor @sleep ${WARNING_WAIT} . endif . if defined(ERROR) show-errors: @${ECHO_MSG} "/!\\ ERRORS /!\\" @${ECHO_MSG} . for m in ${ERROR} @${ECHO_MSG} "${m}" | ${FMT_80} @${ECHO_MSG} . endfor @${FALSE} . endif . if defined(DEVELOPER) . if defined(DEV_WARNING) DEV_WARNING_WAIT?= 10 show-dev-warnings: @${ECHO_MSG} "/!\\ ${PKGNAME}: Makefile warnings, please consider fixing /!\\" @${ECHO_MSG} . for m in ${DEV_WARNING} @${ECHO_MSG} ${m} | ${FMT_80} @${ECHO_MSG} . endfor . if defined(DEV_WARNING_FATAL) @${FALSE} . else @sleep ${DEV_WARNING_WAIT} . endif . endif . if defined(DEV_ERROR) show-dev-errors: @${ECHO_MSG} "/!\\ ${PKGNAME}: Makefile errors /!\\" @${ECHO_MSG} . for m in ${DEV_ERROR} @${ECHO_MSG} "${m}" | ${FMT_80} @${ECHO_MSG} . endfor @${FALSE} . endif . endif #DEVELOPER ${_PORTS_DIRECTORIES}: @${MKDIR} ${.TARGET} # Please note that the order of the following targets is important, and # should not be modified. _TARGETS_STAGES= SANITY PKG FETCH EXTRACT PATCH CONFIGURE BUILD INSTALL TEST PACKAGE STAGE # Define the SEQ of actions to take when each target is ran, and which targets # it depends on before running its SEQ. # # Main target has a priority of 500, pre-target 300, post-target 700, # target-depends 150. Other targets are spaced in between those # # If you change the pre-foo and post-foo values here, go and keep them in sync # in _OPTIONS_TARGETS in bsd.options.mk _SANITY_SEQ= 050:post-chroot 100:pre-everything \ 125:show-unsupported-system-error 150:check-makefile \ 190:show-errors 200:show-warnings \ 210:show-dev-errors 220:show-dev-warnings \ 250:check-categories 300:check-makevars \ 350:check-desktop-entries 400:check-depends \ 500:check-deprecated \ 550:check-vulnerable 600:check-license 650:check-config \ 700:buildanyway-message 750:options-message ${_USES_sanity} _PKG_DEP= check-sanity _PKG_SEQ= 500:pkg-depends _FETCH_DEP= pkg _FETCH_SEQ= 150:fetch-depends 300:pre-fetch 450:pre-fetch-script \ 500:do-fetch 550:fetch-specials 700:post-fetch \ 850:post-fetch-script \ ${_OPTIONS_fetch} ${_USES_fetch} _EXTRACT_DEP= fetch _EXTRACT_SEQ= 010:check-build-conflicts 050:extract-message 100:checksum \ 150:extract-depends 190:clean-wrkdir 200:${EXTRACT_WRKDIR} \ 300:pre-extract 450:pre-extract-script 500:do-extract \ 700:post-extract 850:post-extract-script \ 999:extract-fixup-modes \ ${_OPTIONS_extract} ${_USES_extract} ${_SITES_extract} _PATCH_DEP= extract _PATCH_SEQ= 050:ask-license 100:patch-message 150:patch-depends \ 300:pre-patch 450:pre-patch-script 500:do-patch \ 700:post-patch 850:post-patch-script \ ${_OPTIONS_patch} ${_USES_patch} _CONFIGURE_DEP= patch _CONFIGURE_SEQ= 150:build-depends 151:lib-depends 160:create-binary-alias \ 161:create-binary-wrappers 170:create-base-pkgconfig \ 200:configure-message 210:apply-slist \ 300:pre-configure 450:pre-configure-script \ 490:run-autotools-fixup 500:do-configure 700:post-configure \ 850:post-configure-script \ ${_OPTIONS_configure} ${_USES_configure} _BUILD_DEP= configure _BUILD_SEQ= 100:build-message 300:pre-build 450:pre-build-script \ 500:do-build 700:post-build 850:post-build-script \ ${_OPTIONS_build} ${_USES_build} _STAGE_DEP= build # STAGE is special in its numbering as it has install and stage, so install is # the main, and stage goes after. _STAGE_SEQ= 050:stage-message 100:stage-dir 150:run-depends \ 300:pre-install \ 400:generate-plist 450:pre-su-install 475:create-users-groups \ 500:do-install 550:kmod-post-install 600:fixup-lib-pkgconfig 700:post-install \ 750:post-install-script 800:post-stage 850:compress-man \ 860:install-rc-script 870:install-ldconfig-file \ 880:install-license 890:install-desktop-entries \ 900:add-plist-info 910:add-plist-docs 920:add-plist-examples \ 930:add-plist-data 940:add-plist-post ${POST_PLIST:C/^/990:/} \ ${_OPTIONS_install} ${_USES_install} \ ${_OPTIONS_stage} ${_USES_stage} ${_FEATURES_stage} . if defined(DEVELOPER) _STAGE_SEQ+= 995:stage-qa . else stage-qa: stage . endif _TEST_DEP= stage _TEST_SEQ= 100:test-message 150:test-depends 300:pre-test 500:do-test \ 800:post-test \ ${_OPTIONS_test} ${_USES_test} _INSTALL_DEP= stage _INSTALL_SEQ= 100:install-message \ 150:identify-install-conflicts \ 200:check-already-installed \ 300:create-manifest _INSTALL_SUSEQ= 400:fake-pkg 500:security-check _PACKAGE_DEP= stage ${_TESTING_PACKAGE_DEP} _PACKAGE_SEQ= 100:package-message 300:pre-package 450:pre-package-script \ 500:do-package 850:post-package-script \ ${_OPTIONS_package} ${_USES_package} # Enforce order for -jN builds . for _t in ${_TARGETS_STAGES} # Check if the port need to change the default order of some targets... . if defined(TARGET_ORDER_OVERRIDE) _tmp_seq:= . for _entry in ${_${_t}_SEQ} # for _target because :M${_target} does not work with fmake . for _target in ${_entry:C/^[0-9]+://} . if ${TARGET_ORDER_OVERRIDE:M*\:${_target}} _tmp_seq:= ${_tmp_seq} ${TARGET_ORDER_OVERRIDE:M*\:${_target}} . else _tmp_seq:= ${_tmp_seq} ${_entry} . endif . endfor . endfor _${_t}_SEQ:= ${_tmp_seq} . endif . for s in ${_${_t}_SEQ:O:C/^[0-9]+://} . if target(${s}) . if ! ${NOTPHONY:M${s}} _PHONY_TARGETS+= ${s} . endif _${_t}_REAL_SEQ+= ${s} . endif . endfor . for s in ${_${_t}_SUSEQ:O:C/^[0-9]+://} . if target(${s}) . if ! ${NOTPHONY:M${s}} _PHONY_TARGETS+= ${s} . endif _${_t}_REAL_SUSEQ+= ${s} . endif . endfor .ORDER: ${_${_t}_DEP} ${_${_t}_REAL_SEQ} . endfor # Define all of the main targets which depend on a sequence of other targets. # See above *_SEQ and *_DEP. The _DEP will run before this defined target is # ran. The _SEQ will run as this target once _DEP is satisfied. . for target in extract patch configure build stage install package # Check if config dialog needs to show and execute it if needed. If is it not # needed (_OPTIONS_OK), then just depend on the cookie which is defined later # to depend on the *_DEP and execute the *_SEQ. # If options are required, execute config-conditional and then re-execute the # target noting that config is no longer needed. . if !target(${target}) && defined(_OPTIONS_OK) _PHONY_TARGETS+= ${target} ${target}: ${${target:tu}_COOKIE} . elif !target(${target}) ${target}: config-conditional @cd ${.CURDIR} && ${MAKE} CONFIG_DONE_${PKGBASE:tu}=1 ${${target:tu}_COOKIE} . elif target(${target}) && defined(IGNORE) . endif . if !exists(${${target:tu}_COOKIE}) # Define the real target behavior. Depend on the target's *_DEP. Execute # the target's *_SEQ. Also handle su and USE_SUBMAKE needs. . if ${UID} != 0 && defined(_${target:tu}_REAL_SUSEQ) && !defined(INSTALL_AS_USER) . if defined(USE_SUBMAKE) ${${target:tu}_COOKIE}: ${_${target:tu}_DEP} @cd ${.CURDIR} && ${MAKE} ${_${target:tu}_REAL_SEQ} . else # !USE_SUBMAKE ${${target:tu}_COOKIE}: ${_${target:tu}_DEP} ${_${target:tu}_REAL_SEQ} . endif # USE_SUBMAKE @${ECHO_MSG} "===> Switching to root credentials for '${target}' target" @cd ${.CURDIR} && \ ${SU_CMD} "${MAKE} ${_${target:tu}_REAL_SUSEQ}" @${ECHO_MSG} "===> Returning to user credentials" @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} . else # No SU needed . if defined(USE_SUBMAKE) ${${target:tu}_COOKIE}: ${_${target:tu}_DEP} @cd ${.CURDIR} && \ ${MAKE} ${_${target:tu}_REAL_SEQ} ${_${target:tu}_REAL_SUSEQ} @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} . else # !USE_SUBMAKE ${${target:tu}_COOKIE}: ${_${target:tu}_DEP} ${_${target:tu}_REAL_SEQ} ${_${target:tu}_REAL_SUSEQ} @${TOUCH} ${TOUCH_FLAGS} ${.TARGET} . endif # USE_SUBMAKE . endif # SU needed . else # exists(cookie) ${${target:tu}_COOKIE}:: @if [ ! -e ${.TARGET} ]; then \ cd ${.CURDIR} && ${MAKE} ${.TARGET}; \ fi . endif # !exists(cookie) . endfor # foreach(targets) .PHONY: ${_PHONY_TARGETS} check-sanity fetch pkg . if !target(check-sanity) check-sanity: ${_SANITY_REAL_SEQ} . endif . if !target(fetch) fetch: ${_FETCH_DEP} ${_FETCH_REAL_SEQ} . endif . if !target(pkg) pkg: ${_PKG_DEP} ${_PKG_REAL_SEQ} . endif . if !target(test) test: ${_TEST_DEP} . if !defined(NO_TEST) test: ${_TEST_REAL_SEQ} . endif . endif . endif # End of post-makefile section. .endif # End of the DESTDIR if statement diff --git a/audio/audacity/Makefile b/audio/audacity/Makefile index 848085220584..48348b2aaa5f 100644 --- a/audio/audacity/Makefile +++ b/audio/audacity/Makefile @@ -1,165 +1,158 @@ PORTNAME= audacity DISTVERSIONPREFIX= Audacity- DISTVERSION= 3.5.1 CATEGORIES= audio MAINTAINER= xxjack12xx@gmail.com COMMENT= GUI editor for digital audio waveforms WWW= https://www.audacityteam.org/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/LICENSE.txt BUILD_DEPENDS= conan:sysutils/conan \ rapidjson>0:devel/rapidjson LIB_DEPENDS= libexpat.so:textproc/expat2 \ libharfbuzz.so:print/harfbuzz \ liblilv-0.so:audio/lilv \ libmp3lame.so:audio/lame \ libmpg123.so:audio/mpg123 \ libopus.so:audio/opus \ libopusfile.so:audio/opusfile \ libportaudio.so:audio/portaudio \ libportmidi.so:audio/portmidi \ libserd-0.so:devel/serd \ libsndfile.so:audio/libsndfile \ libsord-0.so:devel/sord \ libsoxr.so:audio/libsoxr \ libsratom-0.so:audio/sratom \ libsqlite3.so:databases/sqlite3 \ libsuil-0.so:audio/suil \ libuuid.so:misc/e2fsprogs-libuuid \ libwavpack.so:audio/wavpack USES= cmake compiler:c++20-lang cpe desktop-file-utils gettext \ gnome python:build pkgconfig shared-mime-info CPE_VENDOR= audacityteam USE_GITHUB= yes USE_GNOME= cairo gdkpixbuf2 gtk30 USE_WX= 3.2+ WX_COMPS= wx CMAKE_ARGS= -DAUDACITY_BUILD_LEVEL=2 \ -Daudacity_lib_preference:STRING=system \ -Daudacity_use_curl:STRING=system \ -Daudacity_use_expat:STRING=system \ -Daudacity_use_jpeg:STRING=system \ -Daudacity_use_libmp3lame:STRING=system \ -Daudacity_use_libmpg123:STRING=system \ -Daudacity_use_libopus:STRING=system \ -Daudacity_use_libsndfile:STRING=system \ -Daudacity_use_lv2:STRING=system \ -Daudacity_use_midi:STRING=system \ -Daudacity_use_nyquist:STRING=local \ -Daudacity_use_portaudio:STRING=system \ -Daudacity_use_portmixer:STRING=local \ -Daudacity_use_portsmf:STRING=local \ -Daudacity_use_png:STRING=system \ -Daudacity_use_rapidjson:STRING=system \ -Daudacity_use_soxr:STRING=system \ -Daudacity_use_sqlite:STRING=system \ -Daudacity_use_wavpack=system \ -Daudacity_use_wxwidgets:STRING=system \ -Daudacity_use_zlib:STRING=system CMAKE_ON= audacity_bundle_gplv3 audacity_conan_allow_prebuilt_binaries audacity_obey_system_dependencies CMAKE_OFF= audacity_has_audiocom_upload audacity_conan_enabled audacity_conan_force_build_dependencies \ audacity_has_crashreports audacity_has_networking audacity_has_updates_check audacity_has_url_schemes_support \ audacity_has_tests audacity_has_vst3 audacity_perform_codesign audacity_use_pch # TODO: fix NLS support properly PLIST_SUB+= NLS="" PORTDOCS= README.md OPTIONS_DEFINE= DEBUG DOCS FFMPEG FLAC ID3TAG LADSPA MANUAL \ OGG SBSMS SOUNDTOUCH TWOLAME VAMP VORBIS VST OPTIONS_DEFAULT= FFMPEG FLAC ID3TAG LADSPA OGG SBSMS \ SOUNDTOUCH TWOLAME VAMP VORBIS VST OPTIONS_EXCLUDE_i386= SBSMS OPTIONS_SUB= yes MANUAL_DESC= Include manual SBSMS_DESC= Use libsbsms for pitch and tempo changing SOUNDTOUCH_DESC= Use libSoundTouch for pitch and tempo changing TWOLAME_DESC= Use libtwolame for MP2 export support VAMP_DESC= Vamp plug-in support VST_DESC= VST plug-in support DEBUG_CMAKE_ON= wxWidgets_USE_DEBUG DOCS_BUILD_DEPENDS= docbook-to-man:textproc/docbook-to-man \ docbook2man:textproc/docbook-utils FFMPEG_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/libavcodec.pc:multimedia/ffmpeg FFMPEG_RUN_DEPENDS= ${LOCALBASE}/lib/libavformat.so:multimedia/ffmpeg FFMPEG_CMAKE_ON= -Daudacity_use_ffmpeg:STRING=loaded FFMPEG_CMAKE_OFF= -Daudacity_use_ffmpeg:STRING=off FLAC_LIB_DEPENDS= libFLAC.so:audio/flac FLAC_CMAKE_ON= -Daudacity_use_libflac:STRING=system FLAC_CMAKE_OFF= -Daudacity_use_libflac:STRING=off ID3TAG_LIB_DEPENDS= libid3tag.so:audio/libid3tag ID3TAG_CMAKE_ON= -Daudacity_use_libid3tag:STRING=system ID3TAG_CMAKE_OFF= -Daudacity_use_libid3tag:STRING=off LADSPA_RUN_DEPENDS= listplugins:audio/ladspa LADSPA_CMAKE_BOOL= audacity_use_ladspa MANUAL_CMAKE_BOOL= audacity_package_manual OGG_LIB_DEPENDS= libogg.so:audio/libogg OGG_CMAKE_ON= -Daudacity_use_libogg:STRING=system OGG_CMAKE_OFF= -Daudacity_use_libogg:STRING=off SBSMS_CMAKE_ON= -Daudacity_use_sbsms:STRING=local SBSMS_CMAKE_OFF= -Daudacity_use_sbsms:STRING=off SOUNDTOUCH_LIB_DEPENDS= libSoundTouch.so:audio/soundtouch SOUNDTOUCH_CMAKE_ON= -Daudacity_use_soundtouch:STRING=system SOUNDTOUCH_CMAKE_OFF= -Daudacity_use_soundtouch:STRING=off TWOLAME_LIB_DEPENDS= libtwolame.so:audio/twolame TWOLAME_CMAKE_ON= -Daudacity_use_twolame:STRING=system TWOLAME_CMAKE_OFF= -Daudacity_use_twolame:STRING=off VAMP_LIB_DEPENDS= libvamp-hostsdk.so:audio/vamp-plugin-sdk VAMP_CMAKE_ON= -Daudacity_use_vamp:STRING=system VAMP_CMAKE_OFF= -Daudacity_use_vamp:STRING=off VORBIS_LIB_DEPENDS= libogg.so:audio/libogg \ libvorbis.so:audio/libvorbis VORBIS_CMAKE_ON= -Daudacity_use_libvorbis:STRING=system VORBIS_CMAKE_OFF= -Daudacity_use_libvorbis:STRING=off VST_CMAKE_BOOL= audacity_use_vst .include .if ${ARCH} != amd64 && ${ARCH} != i386 CMAKE_ARGS+= -DHAVE_MMX:BOOL=OFF \ -DHAVE_SSE:BOOL=OFF \ -DHAVE_SSE2:BOOL=OFF .endif -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302508 -# Workarounds for buggy libc++ std::conjunction -EXTRA_PATCHES= ${PATCHDIR}/extra-libraries_lib-utility_TypeList.cpp \ - ${PATCHDIR}/extra-libraries_lib-utility_TypeList.h \ - ${PATCHDIR}/extra-libraries_lib-utility_TypeSwitch.h -.endif - post-install: @${RM} ${STAGEDIR}${DOCSDIR}/LICENSE.txt #delete empty directories: https://github.com/audacity/audacity/issues/808 @${FIND} ${STAGEDIR} -type d -empty -delete post-install-DEBUG-off: @${FIND} ${STAGEDIR}${PREFIX}/lib/audacity -name '*.so*' -exec ${STRIP_CMD} {} + post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} .include diff --git a/audio/audacity/files/extra-libraries_lib-utility_TypeList.cpp b/audio/audacity/files/extra-libraries_lib-utility_TypeList.cpp deleted file mode 100644 index 2575d8f5f745..000000000000 --- a/audio/audacity/files/extra-libraries_lib-utility_TypeList.cpp +++ /dev/null @@ -1,23 +0,0 @@ ---- libraries/lib-utility/TypeList.cpp.orig 2023-11-16 11:58:21 UTC -+++ libraries/lib-utility/TypeList.cpp -@@ -118,16 +118,16 @@ static_assert(Is_v); - static_assert(Is_v); - - static_assert(Every_v, Example>); --static_assert(is_base_of_v, Example>>); -+static_assert(TypeList::is_base_of_v, Example>>); - static_assert(!Every_v, Example>); --static_assert(is_base_of_v, -+static_assert(TypeList::is_base_of_v, - Every, Example>>); - - static_assert(Some_v, Example>); --static_assert(is_base_of_v, -+static_assert(TypeList::is_base_of_v, - Some, Example>>); - static_assert(!Some_v, Example>); --static_assert(is_base_of_v, Example>>); -+static_assert(TypeList::is_base_of_v, Example>>); - - static_assert(NotEvery_v, Example>); - static_assert(NotAny_v, Example>); diff --git a/audio/audacity/files/extra-libraries_lib-utility_TypeList.h b/audio/audacity/files/extra-libraries_lib-utility_TypeList.h deleted file mode 100644 index dfc77dc2be3d..000000000000 --- a/audio/audacity/files/extra-libraries_lib-utility_TypeList.h +++ /dev/null @@ -1,39 +0,0 @@ ---- libraries/lib-utility/TypeList.h.orig 2023-11-16 11:58:21 UTC -+++ libraries/lib-utility/TypeList.h -@@ -54,6 +54,18 @@ namespace TypeList { - can make compound predicates out of simpler ones. - */ - -+template -+struct conjunction : std::true_type {}; -+ -+template -+struct conjunction<_Arg> : _Arg {}; -+ -+template -+struct conjunction<_Arg, _Args...> : std::conditional_t> {}; -+ -+template -+inline constexpr bool is_base_of_v = __is_base_of(_Bp, _Dp); -+ - //! standard in C++20; add a level of indirection to a type - template struct type_identity { using type = T; }; - -@@ -429,7 +441,7 @@ struct And { (private) - static constexpr bool value = Is_v, T>; - }; - public: -- template using typemap = typename std::conjunction< -+ template using typemap = typename TypeList::conjunction< - typename Predicate::template typemap, Rest - >; - }; -@@ -437,7 +449,7 @@ struct And { (private) - //! Derived from the Predicate, applied to the first of the types (often boolean - //! constant types), for which the value is false; or std::true_type - template struct Every -- : Apply_t> {}; -+ : Apply_t> {}; - //! The constant value in the corresponding type - template constexpr auto Every_v = - Every::value; diff --git a/audio/audacity/files/extra-libraries_lib-utility_TypeSwitch.h b/audio/audacity/files/extra-libraries_lib-utility_TypeSwitch.h deleted file mode 100644 index f0291a0356a8..000000000000 --- a/audio/audacity/files/extra-libraries_lib-utility_TypeSwitch.h +++ /dev/null @@ -1,20 +0,0 @@ ---- libraries/lib-utility/TypeSwitch.h.orig 2023-11-16 11:58:21 UTC -+++ libraries/lib-utility/TypeSwitch.h -@@ -127,7 +127,7 @@ struct Executor { - // Case 1: Compatible, and invocable on the next function, giving - // another function, that accepts BaseClass: - struct Case1_; -- using Case1 = std::conjunction; -+ using Case1 = TypeList::conjunction; - struct Case1_ { - static constexpr bool value = std::is_invocable_v< - std::invoke_result_t, BaseClass&, Args&&...>; -@@ -135,7 +135,7 @@ struct Executor { - }; - - // Case 2: Invocable directly on the object -- struct Case2 : std::conjunction< -+ struct Case2 : TypeList::conjunction< - Compatible, std::negation, - std::is_invocable - > { diff --git a/audio/denemo/Makefile b/audio/denemo/Makefile index 48d34d2a90bc..ebb3c35205a9 100644 --- a/audio/denemo/Makefile +++ b/audio/denemo/Makefile @@ -1,113 +1,113 @@ PORTNAME= denemo PORTVERSION= 2.0.6 PORTREVISION= 18 CATEGORIES= audio MASTER_SITES= GNU MAINTAINER= multimedia@FreeBSD.org COMMENT= Graphical score editor WWW= http://www.denemo.org/ LICENSE= GPLv3+ BROKEN_mips= fails to package: tar: Pathname cannot be converted from UTF-8 to current locale LIB_DEPENDS= libaubio.so:audio/aubio \ libfluidsynth.so:audio/fluidsynth \ libjack.so:audio/jack \ libsmf.so:audio/libsmf \ libsndfile.so:audio/libsndfile \ libportaudio.so:audio/portaudio \ librubberband.so:audio/rubberband \ libharfbuzz.so:print/harfbuzz \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libsamplerate.so:audio/libsamplerate \ libfftw3.so:math/fftw3 RUN_DEPENDS= xdg-open:devel/xdg-utils EXTRACT_BEFORE_ARGS=\ -s '!\(/Clarinet in B\).*\(\.denemo\)$$!\1b\2!p' -xf USES= bison:alias compiler:c++11-lang desktop-file-utils gettext gmake \ gnome guile:1.8 localbase:ldflags pkgconfig USE_GNOME= cairo intltool librsvg2 libxml2 GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-jack \ --disable-alsa \ --disable-portmidi \ --disable-gtk-doc \ --disable-gtk-doc-html \ --disable-gtk-doc-pdf \ --enable-guile_1_8 CFLAGS+= -Wno-error=return-type OPTIONS_DEFINE= DOCS EXAMPLES LILYPOND PDF OPTIONS_SINGLE= TOOLKIT OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3 OPTIONS_DEFAULT= GTK3 GTK2_USE= gnome=gtk20,gtksourceview2 GTK2_CONFIGURE_ON= --enable-gtk2 GTK3_USE= gnome=gtk30,gtksourceview3 LILYPOND_DESC= Install LilyPond (Printing) LILYPOND_RUN_DEPENDS= lilypond:print/lilypond PDF_CONFIGURE_OFF= --disable-evince TOOLKIT_DESC= GTK toolkit .include .if ${PORT_OPTIONS:MGTK3} && ${PORT_OPTIONS:MPDF} LIB_DEPENDS+= libevview3.so:graphics/evince .endif .if ${PORT_OPTIONS:MGTK2} && ${PORT_OPTIONS:MPDF} LIB_DEPENDS+= libatrilview.so:graphics/atril .endif .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif post-patch: @${REINPLACE_CMD} -e \ 's|-lpthread|-pthread| ; \ /^CFLAGS=/s|_LIBS|_CFLAGS| ; \ s|evince-view-2.30 >= 2.|atril-view-1.5.|' ${WRKSRC}/configure @${REINPLACE_CMD} -e \ '/) install-data-hook/s|^|#|' ${WRKSRC}/Makefile.in @${REINPLACE_CMD} -e \ '/^docdir/s|$$(datadir)/$${PACKAGE}|@docdir@|' \ ${WRKSRC}/docs/Makefile.in @${REINPLACE_CMD} -e \ '/^imagedir/s|$$(datadir)/$${PACKAGE}|@docdir@|' \ ${WRKSRC}/docs/images/Makefile.in @${REINPLACE_CMD} -e \ 's|"firefox"|"xdg-open"|' ${WRKSRC}/src/core/prefops.c .if ${PORT_OPTIONS:MGTK2} && ${PORT_OPTIONS:MPDF} @${FIND} ${WRKSRC}/src -name "*.c" | ${XARGS} ${REINPLACE_CMD} -e \ '/^#include/s|evince|atril|' .endif post-install: @(cd ${WRKSRC} && ${COPYTREE_SHARE} "actions templates" \ ${STAGEDIR}${DATADIR}) post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} .for i in AUTHORS ChangeLog NEWS (cd ${WRKSRC} && ${INSTALL_DATA} ${i} ${STAGEDIR}${DOCSDIR}) .endfor .for i in DESIGN DESIGN.lilypond GOALS TODO (cd ${WRKSRC}/docs && ${INSTALL_DATA} ${i} ${STAGEDIR}${DOCSDIR}) .endfor post-install-EXAMPLES-on: @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} (cd ${WRKSRC}/examples && ${INSTALL_DATA} *.denemo \ ${STAGEDIR}${EXAMPLESDIR}) .include diff --git a/audio/ncmpc/Makefile b/audio/ncmpc/Makefile index a0671fa1f081..d89eecc7f7a3 100644 --- a/audio/ncmpc/Makefile +++ b/audio/ncmpc/Makefile @@ -1,56 +1,56 @@ PORTNAME= ncmpc PORTVERSION= 0.48 PORTREVISION= 1 CATEGORIES= audio MASTER_SITES= https://www.musicpd.org/download/ncmpc/0/ MAINTAINER= laurent@nilio.ca COMMENT= Ncurses client for the musicpd WWW= https://www.musicpd.org/clients/ncmpc/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libmpdclient.so:audio/libmpdclient \ libpcre2-8.so:devel/pcre2 USES= compiler:c++17-lang cpe iconv localbase:ldflags meson ncurses \ pkgconfig tar:xz shebangfix MESON_ARGS= -Dlirc=disabled SHEBANG_GLOB= *.py CPE_VENDOR= ncmpc_project OPTIONS_DEFINE= COLORS DOCS LYRICS MANPAGES NLS OPTIONS_DEFAULT= COLORS LYRICS MANPAGES OPTIONS_SUB= yes COLORS_DESC= Compile with color support LYRICS_DESC= Compile with lyrics screen COLORS_MESON_TRUE= colors DOCS_IMPLIES= MANPAGES DOCS_MESON_TRUE= html_manual LYRICS_MESON_TRUE= lyrics_screen MANPAGES_BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sphinx>=0,1:textproc/py-sphinx@${PY_FLAVOR} MANPAGES_MAKE_ENV= PYTHON=${PYTHON_CMD} \ SPHINX=sphinx-build-${PYTHON_VER} MANPAGES_MESON_TRUE= manual MANPAGES_USES= python:build NLS_LDFLAGS= -lintl NLS_MESON_ENABLED= nls NLS_USES= gettext PORTDOCS= * .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CPPFLAGS+= -Wno-error=enum-constexpr-conversion .endif .include diff --git a/audio/ocp/Makefile b/audio/ocp/Makefile index e51bcdc97f67..cf1d7964d852 100644 --- a/audio/ocp/Makefile +++ b/audio/ocp/Makefile @@ -1,107 +1,107 @@ PORTNAME= ocp PORTVERSION= 0.2.109 PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= audio MASTER_SITES= https://stian.cubic.org/ocp/ MAINTAINER= ehaupt@FreeBSD.org COMMENT= Legendary Open Cubic Player WWW= https://stian.cubic.org/project-ocp.php LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64le BUILD_DEPENDS= xa65:devel/xa65 LIB_DEPENDS= libancient.so:archivers/ancient \ libcjson.so:devel/libcjson \ libdiscid.so:audio/libdiscid \ libid3tag.so:audio/libid3tag \ libmad.so:audio/libmad \ libogg.so:audio/libogg \ libpng.so:graphics/png \ libvorbis.so:audio/libvorbis USES= compiler:c11 dos2unix gmake gnome iconv jpeg localbase:ldflags \ makeinfo ncurses pkgconfig shared-mime-info tar:xz GNU_CONFIGURE= yes CONFIGURE_ARGS= --libdir=${PREFIX}/lib \ --with-dir-suffix="" \ --without-sdl \ --without-update-desktop-database CONFIGURE_ENV= SHARED_FLAGS="${LDFLAGS} -shared" \ XA=${PREFIX}/bin/xa65 MAKE_JOBS_UNSAFE= yes LDFLAGS_i386= -Wl,-z,notext CONFLICTS_INSTALL= alliance # man/man1/ocp.1.gz INFO= ocp OPTIONS_DEFINE= ADPLUG ALSA DOCS FLAC GME MIDI OSS SDL X11 OPTIONS_DEFAULT= ADPLUG ALSA FLAC GME MIDI OSS SDL X11 OPTIONS_SUB= yes ADPLUG_DESC= adplug support GME_DESC= libgme support for additional video game music support MIDI_DESC= timidity support ADPLUG_LIB_DEPENDS= libadplug.so:audio/libadplug \ libbinio.so:devel/libbinio ADPLUG_CONFIGURE_WITH= adplug ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CONFIGURE_WITH= alsa FLAC_LIB_DEPENDS= libFLAC.so:audio/flac FLAC_CONFIGURE_WITH= flac GME_LIB_DEPENDS= libgme.so:audio/libgme GME_CONFIGURE_WITH= libgme MIDI_RUN_DEPENDS= eawpats>0:audio/eawpats OSS_CONFIGURE_WITH= oss SDL_IMPLIES= X11 SDL_BUILD_DEPENDS= ${LOCALBASE}/share/fonts/gnu-unifont-otf/unifont.otf:x11-fonts/gnu-unifont-otf SDL_LIB_DEPENDS= libfreetype.so:print/freetype2 SDL_RUN_DEPENDS= ${LOCALBASE}/share/fonts/gnu-unifont-otf/unifont.otf:x11-fonts/gnu-unifont-otf SDL_USES= desktop-file-utils sdl SDL_USE= SDL=sdl2 SDL_CONFIGURE_WITH= sdl2 \ unifontdir=${LOCALBASE}/share/fonts/gnu-unifont-otf SDL_PLIST_SUB= DESKTOP='' SDL_PLIST_SUB_OFF= DESKTOP='@comment ' X11_BUILD_DEPENDS= ${LOCALBASE}/share/fonts/gnu-unifont-otf/unifont.otf:x11-fonts/gnu-unifont-otf X11_LIB_DEPENDS= libfreetype.so:print/freetype2 X11_RUN_DEPENDS= ${LOCALBASE}/share/fonts/gnu-unifont-otf/unifont.otf:x11-fonts/gnu-unifont-otf X11_USES= desktop-file-utils xorg X11_USE= XORG=x11,xext,xpm,xxf86dga,xxf86vm X11_CONFIGURE_WITH= unifontdir-otf=${LOCALBASE}/share/fonts/gnu-unifont-otf \ x11 X11_PLIST_SUB= DESKTOP='' \ XORG='' X11_PLIST_SUB_OFF= DESKTOP='@comment ' \ XORG='@comment ' TIMIDITY_CFG= ${LOCALBASE}/share/timidity/timidity.cfg .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif post-install: @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/ocp @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ocp/*.so @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ocp/autoload/*.so .include diff --git a/audio/openal-soft/Makefile b/audio/openal-soft/Makefile index bff0cc015271..bbb89eb7b112 100644 --- a/audio/openal-soft/Makefile +++ b/audio/openal-soft/Makefile @@ -1,80 +1,80 @@ PORTNAME= openal-soft PORTVERSION= 1.21.1 PORTREVISION= 4 CATEGORIES= audio MASTER_SITES= https://openal-soft.org/openal-releases/ MAINTAINER= multimedia@FreeBSD.org COMMENT= Software implementation of the OpenAL specification WWW= https://openal-soft.org/ LICENSE= LGPL20+ LICENSE_FILE= ${WRKSRC}/COPYING USES= cmake compiler:c++14-lang tar:bzip2 USE_LDCONFIG= yes CMAKE_ARGS= -DCMAKE_INSTALL_DATADIR:STRING="${PREFIX}/etc" CMAKE_OFF= ALSOFT_BACKEND_ALSA ALSOFT_DLOPEN ALSOFT_EXAMPLES \ ALSOFT_REQUIRE_QSA ALSOFT_REQUIRE_SOLARIS CMAKE_ON= ALSOFT_BACKEND_WAVE # do not link with librt and libdl. LDFLAGS+= -Wl,--as-needed LDFLAGS_i386= -Wl,-z,notext PLIST_SUB= SOVERSION=${PORTVERSION} OPTIONS_DEFINE= CONFIG EXAMPLES JACK OSS PORTAUDIO PULSEAUDIO \ SDL SNDIO UTILS OPTIONS_DEFAULT= OSS UTILS OPTIONS_SUB= yes CONFIG_DESC= Install configuration utility (needs Qt 5) UTILS_DESC= Build and install utility programs CONFIG_USES= qt:5 CONFIG_USE= QT=core,gui,widgets,buildtools:build,qmake:build CONFIG_CMAKE_BOOL_OFF= ALSOFT_NO_CONFIG_UTIL CONFIG_CMAKE_ON= -DALSOFT_NO_QT5:BOOL=OFF JACK_LIB_DEPENDS= libjack.so:audio/jack JACK_CMAKE_BOOL= ALSOFT_BACKEND_JACK ALSOFT_REQUIRE_JACK OSS_CMAKE_BOOL= ALSOFT_BACKEND_OSS ALSOFT_REQUIRE_OSS PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio PORTAUDIO_CMAKE_BOOL= ALSOFT_BACKEND_PORTAUDIO ALSOFT_REQUIRE_PORTAUDIO PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= ALSOFT_BACKEND_PULSEAUDIO ALSOFT_REQUIRE_PULSEAUDIO SDL_USES= localbase sdl SDL_USE= SDL=sdl2 SDL_CMAKE_BOOL= ALSOFT_BACKEND_SDL2 ALSOFT_REQUIRE_SDL2 SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_CMAKE_BOOL= ALSOFT_BACKEND_SNDIO ALSOFT_REQUIRE_SNDIO UTILS_LIB_DEPENDS= libmysofa.so:audio/libmysofa UTILS_CMAKE_BOOL= ALSOFT_UTILS .include # The following is actually meant for lld 15.0 and later, but the ports # framework does not support LINKER_TYPE and LINKER_VERSION yet. -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" # Turn off checking of dynamic relocations, to avoid lld diagnostics about # possibly incorrect addend values. LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif post-patch: @${REINPLACE_CMD} 's|/etc/openal|${ETCDIR}|' \ ${WRKSRC}/alc/alconfig.cpp post-install-EXAMPLES-on: (cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . \ ${STAGEDIR}${EXAMPLESDIR}) .include diff --git a/biology/py-macs3/Makefile b/biology/py-macs3/Makefile index 7e903866af04..56f6bdc9c904 100644 --- a/biology/py-macs3/Makefile +++ b/biology/py-macs3/Makefile @@ -1,53 +1,47 @@ PORTNAME= MACS3 DISTVERSIONPREFIX= v DISTVERSION= 3.0.1 CATEGORIES= biology python PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= jwb@FreeBSD.org COMMENT= Peak caller aimed at transcription factor binding sites WWW= https://github.com/taoliu/MACS LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= i386 NOT_FOR_ARCHS_REASON_i386=Requires _Float16 BUILD_DEPENDS= ${PY_SETUPTOOLS} \ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ ${PYNUMPY} \ simde>0:devel/simde \ ${PYTHON_PKGNAMEPREFIX}cykhash>0:devel/py-cykhash@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hmmlearn>0:math/py-hmmlearn@${PY_FLAVOR} RUN_DEPENDS= ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}cykhash>0:devel/py-cykhash@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hmmlearn>0:math/py-hmmlearn@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest>0:devel/py-pytest@${PY_FLAVOR} \ bash:shells/bash USES= localbase perl5 python shebangfix USE_GITHUB= yes USE_PERL5= test USE_PYTHON= autoplist concurrent cython pep517 GH_ACCOUNT= macs3-project GH_PROJECT= MACS SHEBANG_FILES= test/cmdlinetest* test/prockreport test/*.py test/pyprofile* -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302509 -IGNORE= does not run properly on FreeBSD 13.2 and earlier due to use of dynamically loaded libc by py-threadpoolctl. Please upgrade to a newer FreeBSD or use py-macs2 instead. See PR 276231 -.endif - post-stage: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/MACS3/*/*.so # FIXME: Some tests fail due to a py-threadpoolctl issue # https://github.com/joblib/threadpoolctl/pull/148 do-test: deinstall reinstall @${RM} -rf ${WRKSRC}/temp @cd ${WRKSRC}/test && ./cmdlinetest tag .include diff --git a/chinese/libime/Makefile b/chinese/libime/Makefile index 25f82cb63d47..73f7281fc0a9 100644 --- a/chinese/libime/Makefile +++ b/chinese/libime/Makefile @@ -1,54 +1,54 @@ PORTNAME= libime DISTVERSION= 1.1.7 CATEGORIES= chinese textproc MASTER_SITES= https://download.fcitx-im.org/fcitx5/${PORTNAME}/ \ https://download.fcitx-im.org/data/:opengram_lm,opengram_dict,table_dict DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ ${OPENGRAM_LM_TAR}:opengram_lm \ ${OPENGRAM_DICT_TAR}:opengram_dict \ ${TABLE_DICT_TAR}:table_dict DIST_SUBDIR= ${PORTNAME} MAINTAINER= khng@FreeBSD.org COMMENT= Library to support generic input method implementation WWW= https://github.com/fcitx/libime LICENSE= LGPL21 LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs \ libFcitx5Utils.so:textproc/fcitx5 USES= cmake compiler:c++17-lang kde:5 pkgconfig tar:zst PLIST_SUB= VER=${PORTVERSION} \ VER_MAJOR=${PORTVERSION:R:R} USE_LDCONFIG= yes USE_KDE= ecm CMAKE_OFF= ENABLE_TEST MAKE_ENV= FCITX5_DOWNLOAD_DISALLOWED=TRUE # These must follow data/CMakeLists.txt OPENGRAM_LM_TAR= lm_sc.arpa-20230712.tar.xz OPENGRAM_DICT_TAR= dict-20240416.tar.zst TABLE_DICT_TAR= table-20240108.tar.gz .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::binary_function|std::__binary_function|' \ ${WRKSRC}/src/libime/core/kenlm/lm/trie_sort.hh \ ${WRKSRC}/src/libime/core/kenlm/util/joint_sort.hh \ ${WRKSRC}/src/libime/core/kenlm/util/sized_iterator.hh .endif post-extract: ${CP} ${DISTDIR}/${DIST_SUBDIR}/${OPENGRAM_LM_TAR} ${WRKSRC}/data ${CP} ${DISTDIR}/${DIST_SUBDIR}/${OPENGRAM_DICT_TAR} ${WRKSRC}/data ${CP} ${DISTDIR}/${DIST_SUBDIR}/${TABLE_DICT_TAR} ${WRKSRC}/data .include diff --git a/databases/arrow/Makefile b/databases/arrow/Makefile index 72d6ebf2c4a7..29d8c3dac089 100644 --- a/databases/arrow/Makefile +++ b/databases/arrow/Makefile @@ -1,235 +1,228 @@ PORTNAME= arrow DISTVERSION= 15.0.2 PORTREVISION= 1 CATEGORIES= databases MASTER_SITES= APACHE/${PORTNAME}/${PORTNAME}-${DISTVERSION} \ https://github.com/apache/orc/archive/rel/:orc DISTNAME= apache-${PORTNAME}-${DISTVERSION} DISTFILES= apache-${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} release-1.6.6${EXTRACT_SUFX}:orc EXTRACT_ONLY= apache-${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} MAINTAINER= yuri@FreeBSD.org COMMENT= Columnar in-memory analytics layer for big data WWW= https://arrow.apache.org/ LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/../LICENSE.txt LIB_DEPENDS= libboost_system.so:devel/boost-libs USES= cmake compiler:c++17-lang localbase pkgconfig python:build USE_LDCONFIG= yes USE_GITHUB= nodefault GH_ACCOUNT= apache WRKSRC_SUBDIR= cpp CMAKE_ARGS= -DCMAKE_CXX_STANDARD=17 -DARROW_SIMD_LEVEL=NONE -DARROW_RUNTIME_SIMD_LEVEL=NONE \ -DPython3_EXECUTABLE=${PYTHON_CMD} CMAKE_OFF= ARROW_BUILD_STATIC ARROW_WITH_BACKTRACE ARROW_BUILD_TESTS ARROW_BUILD_BENCHMARKS OPTIONS_GROUP= COMPRESSION COMPONENTS # components are listed in cpp/cmake_modules/DefineOptions.cmake OPTIONS_GROUP_COMPRESSION= BROTLI BZ2 LZ4 SNAPPY ZLIB ZSTD OPTIONS_GROUP_COMPONENTS= ACERO COMPUTE CSV DATASET FILESYSTEM FLIGHT GANDIVA HDFS IPC JSON MIMALLOC PARQUET ORC S3 SKYHOOK SUBSTRAIT BUILD_UTILITIES TENSORFLOW TESTING OPTIONS_SUB= yes ## DESCs COMPRESSION_DESC= Compression support: COMPONENTS_DESC= Build components: ## Compression options BROTLI_CMAKE_BOOL= ARROW_WITH_BROTLI BROTLI_LIB_DEPENDS= libbrotlicommon.so:archivers/brotli BZ2_DESC= bz2 compression support BZ2_CMAKE_BOOL= ARROW_WITH_BZ2 LZ4_CMAKE_BOOL= ARROW_WITH_LZ4 LZ4_LIB_DEPENDS= liblz4.so:archivers/liblz4 SNAPPY_CMAKE_BOOL= ARROW_WITH_SNAPPY SNAPPY_LIB_DEPENDS= libsnappy.so:archivers/snappy ZLIB_CMAKE_BOOL= ARROW_WITH_ZLIB ZSTD_DESC= zstd compression support ZSTD_CMAKE_BOOL= ARROW_WITH_ZSTD ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd ## Component options ACERO_DESC= Arrow Acero Engine Module ACERO_CMAKE_BOOL= ARROW_ACERO ACERO_IMPLIES= COMPUTE IPC COMPUTE_DESC= Arrow Compute Modules COMPUTE_CMAKE_BOOL= ARROW_COMPUTE COMPUTE_CMAKE_ON= -DARROW_WITH_UTF8PROC=ON COMPUTE_LIB_DEPENDS= libre2.so:devel/re2 \ libutf8proc.so:textproc/utf8proc CSV_DESC= Arrow CSV Parser Module CSV_CMAKE_BOOL= ARROW_CSV DATASET_DESC= Arrow Dataset Modules DATASET_CMAKE_BOOL= ARROW_DATASET DATASET_IMPLIES= ACERO FILESYSTEM FILESYSTEM_DESC= Arrow Filesystem Layer FILESYSTEM_CMAKE_BOOL= ARROW_FILESYSTEM FLIGHT_DESC= Arrow Flight RPC System FLIGHT_USES= ssl FLIGHT_CMAKE_BOOL= ARROW_FLIGHT FLIGHT_LIB_DEPENDS= libgflags.so:devel/gflags \ libprotobuf.so:devel/protobuf \ libabsl_base.so:devel/abseil \ libcares.so:dns/c-ares \ libgrpc.so:devel/grpc \ libre2.so:devel/re2 FLIGHT_IMPLIES= IPC COMPUTE # see https://github.com/apache/arrow/issues/40766 FLIGHT_BROKEN= configure breaks: Could not find a package configuration file provided by "re2" GANDIVA_DESC= Gandiva libraries GANDIVA_USES= llvm:17,lib ssl GANDIVA_CMAKE_BOOL= ARROW_GANDIVA GANDIVA_CMAKE_ON= -DARROW_WITH_UTF8PROC=ON GANDIVA_LIB_DEPENDS= libgrpc.so:devel/grpc \ libprotobuf.so:devel/protobuf \ libre2.so:devel/re2 \ libutf8proc.so:textproc/utf8proc HDFS_DESC= Arrow HDFS bridge HDFS_CMAKE_BOOL= ARROW_HDFS IPC_DESC= Arrow IPC extensions IPC_CMAKE_BOOL= ARROW_IPC JSON_DESC= JSON support JSON_CMAKE_BOOL= ARROW_JSON JSON_BUILD_DEPENDS= ${LOCALBASE}/include/rapidjson/rapidjson.h:devel/rapidjson MIMALLOC_DESC= Arrow mimalloc-based allocato MIMALLOC_CMAKE_BOOL= ARROW_MIMALLOC MIMALLOC_LIB_DEPENDS= libmimalloc.so:devel/mimalloc MIMALLOC_BROKEN= Pending paths fix in bug#255537 PARQUET_DESC= Parquet libraries PARQUET_CMAKE_BOOL= ARROW_PARQUET PARQUET_REQUIRE_ENCRYPTION PARQUET_USES= ssl PARQUET_LIB_DEPENDS= libthrift.so:devel/thrift-cpp PARQUET_IMPLIES= IPC ORC_DESC= Arrow ORC adapter ORC_CMAKE_BOOL= ARROW_ORC ORC_LIB_DEPENDS= libprotobuf.so:devel/protobuf ORC_CONFIGURE_ENV= ARROW_ORC_URL=file://${DISTDIR}/${DIST_SUBDIR}/release-1.6.6${EXTRACT_SUFX} ORC_IMPLIES= LZ4 SNAPPY ZLIB ZSTD # cpp/CMakeLists.txt ORC_BROKEN= fatal error: 'orc/OrcFile.hh' file not found: https://issues.apache.org/jira/browse/ARROW-12624 BUILD_UTILITIES_DESC= build Arrow commandline utilities BUILD_UTILITIES_CMAKE_BOOL= ARROW_BUILD_UTILITIES #PYTHON_DESC= Build python extension support #PYTHON_CMAKE_BOOL= ARROW_PYTHON #PYTHON_USES= python #PYTHON_BUILD_DEPENDS= ${PYNUMPY} # see https://issues.apache.org/jira/browse/ARROW-16820 #PYTHON_CMAKE_ON= -DPython3_EXECUTABLE=${PYTHON_CMD} #PYTHON_RUN_DEPENDS= ${PYNUMPY} #PYTHON_IMPLIES= COMPUTE CSV DATASET FILESYSTEM HDFS JSON #PYTHON_VARS= PLIST_SUB+=PYTHON_SUFFIX=${PYTHON_SUFFIX} S3_DESC= S3 support S3_CMAKE_BOOL= ARROW_S3 S3_USES= ssl S3_LIB_DEPENDS= \ libaws-c-auth.so:security/aws-c-auth \ libaws-c-cal.so:security/aws-c-cal \ libaws-c-common.so:devel/aws-c-common \ libaws-c-compression.so:devel/aws-c-compression \ libaws-c-event-stream.so:devel/aws-c-event-stream \ libaws-c-http.so:devel/aws-c-http \ libaws-c-io.so:devel/aws-c-io \ libaws-c-mqtt.so:devel/aws-c-mqtt \ libaws-c-s3.so:devel/aws-c-s3 \ libaws-c-sdkutils.so:devel/aws-c-sdkutils \ libaws-checksums.so:devel/aws-checksums \ libaws-crt-cpp.so:devel/aws-crt-cpp \ libaws-cpp-sdk-s3.so:devel/aws-sdk-cpp \ libs2n.so:security/s2n-tls SKYHOOK_DESC= Build the Skyhook libraries SKYHOOK_CMAKE_BOOL= ARROW_SKYHOOK SKYHOOK_IMPLIES= DATASET PARQUET SKYHOOK_BROKEN= could NOT find librados SUBSTRAIT_DESC= Build the Arrow Substrait Consumer Module SUBSTRAIT_CMAKE_BOOL= ARROW_SUBSTRAIT SUBSTRAIT_IMPLIES= DATASET IPC PARQUET SUBSTRAIT_BROKEN= needs investigation TENSORFLOW_DESC= TensorFlow support TENSORFLOW_CMAKE_BOOL= ARROW_TENSORFLOW TENSORFLOW_BROKEN= needs testing TESTING_DESC= Arrow testing libraries TESTING_CMAKE_BOOL= ARROW_TESTING TESTING_LIB_DEPENDS= libgtest.so:devel/googletest -# workaround for https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277953 -OPSYS!= uname -s # HACK: OPSYS is defined in bsd.port.options.mk which has to be later -OSVERSION!= awk '/^\#define[[:blank:]]__FreeBSD_version/ {print $$3}' < ${CROSS_SYSROOT}/usr/include/sys/param.h # HACK: same as above -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1303000 -TESTING_BROKEN= configure fails because GTest built with C++ level <17 isn't compatible with C++17 used in arrow -.endif - # form OPTIONS_DEFAULT .for opt in ${OPTIONS_GROUP_COMPONENTS} . if "${${opt}_BROKEN}" == "" OPTIONS_DEFAULT+= ${opt} . endif .endfor .include .if ${PORT_OPTIONS:MCOMPUTE} || ${PORT_OPTIONS:MFLIGHT} || ${PORT_OPTIONS:MGANDIVA} PLIST_FILES+= lib/cmake/Arrow/Findre2Alt.cmake .endif .if ${PORT_OPTIONS:MIPC} && ${PORT_OPTIONS:MBUILD_UTILITIES} PLIST_FILES+= bin/arrow-file-to-stream \ bin/arrow-stream-to-file .endif .if ${PORT_OPTIONS:MGANDIVA} || ${PORT_OPTIONS:MCOMPUTE} PLIST_FILES+= lib/cmake/Arrow/Findutf8proc.cmake .endif .if ${PORT_OPTIONS:MPYTHON} == "PYTHON" && ${PORT_OPTIONS:MFLIGHT} == "FLIGHT" PLIST_SUB+= PYTHONFLIGHT="" .else PLIST_SUB+= PYTHONFLIGHT="@comment " .endif .if ${PORT_OPTIONS:MTESTING} && ${PORT_OPTIONS:MFLIGHT} == "FLIGHT" PLIST_SUB+= TESTINGFLIGHT="" .else PLIST_SUB+= TESTINGFLIGHT="@comment " .endif post-install: # based on the user's report on 2024-04-12, the R extension expects only "ON" and "OFF" values in lib/cmake/Arrow/ArrowOptions.cmake # other values confuse the R extension build, so we adjust these values to "ON" and "OFF" as a workaround ${REINPLACE_CMD} -i '' \ -e 's|"true"|"ON"|; s|"false"|"OFF"|' \ ${STAGEDIR}${PREFIX}/lib/cmake/Arrow/ArrowOptions.cmake do-test: # tests fail to compile: https://issues.apache.org/jira/browse/ARROW-12625 @cd ${BUILD_WRKSRC} && \ ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} -DARROW_BUILD_TESTS:BOOL=ON ${CMAKE_SOURCE_PATH} && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET} && \ ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} test .include diff --git a/databases/xtrabackup80/Makefile b/databases/xtrabackup80/Makefile index 47be5e87e030..6a88ca1bac51 100644 --- a/databases/xtrabackup80/Makefile +++ b/databases/xtrabackup80/Makefile @@ -1,116 +1,116 @@ PORTNAME= xtrabackup80 PORTVERSION= 8.0.35 DISTVERSIONSUFFIX= -30 CATEGORIES= databases MASTER_SITES= https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-30/source/tarball/:percona \ SF/boost/boost/${BOOST_VERSION}:boost DISTFILES= ${PPORTNAME}-${DVERSION}${EXTRACT_SUFX}:percona \ boost_${BOOST_VERSION_UNDER}${EXTRACT_SUFX}:boost MAINTAINER= eugene@zhegan.in COMMENT= Open-source backup tool for InnoDB and XtraDB WWW= https://docs.percona.com/percona-xtrabackup/8.0/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE ONLY_FOR_ARCHS= amd64 i386 RUN_DEPENDS= qpress:archivers/qpress USES= bison cmake compiler:c++14-lang cpe pkgconfig ssl CPE_VENDOR= percona CMAKE_ARGS= -DBUILD_CONFIG:STRING=xtrabackup_release \ -DWITHOUT_COMPONENT_KEYRING_KMIP:STRING=yes \ -DWITH_VERSION_CHECK=false CONFLICTS_INSTALL= ${PORTNAME:C/.$//}* # Bundle last supported Boost release BOOST_VERSION= 1.77.0 BOOST_VERSION_UNDER= ${BOOST_VERSION:C/\./_/g} CMAKE_ARGS+= -DWITH_BOOST=${WRKDIR}/boost_${BOOST_VERSION_UNDER} # Build fails without NDEBUG, so force it CFLAGS+= -DNDEBUG CXXFLAGS+= -DNDEBUG DVERSION= ${PORTVERSION}${DISTVERSIONSUFFIX} PPORTNAME= percona-xtrabackup WRKSRC= ${WRKDIR}/${PPORTNAME}-${DVERSION} .include # Since MySQL 8.0.20 InnoDB engine uses new memory alligned allocator # which is broken on i386 with Clang due to different size of types # and causes a 'static_assert(alignof(T) <= alignof(std::max_align_t))' error .if ${ARCH} == i386 GCCVER= 13 CC= ${PREFIX}/bin/gcc${GCCVER} CXX= ${PREFIX}/bin/g++${GCCVER} CPP= ${PREFIX}/bin/cpp${GCCVER} CXXFLAGS+= --std=c++17 -march=i586 LDFLAGS_i386= -latomic -Wl,-rpath=${PREFIX}/lib/gcc${GCCVER} -Wl,-rpath=${PREFIX}/lib/private PLIST= ${PKGDIR}/pkg-plist.i386 USE_LDCONFIG= ${PREFIX}/lib/private BUILD_DEPENDS+= c++${GCCVER}:lang/gcc${GCCVER} LIB_DEPENDS+= libcurl.so:ftp/curl \ libev.so:devel/libev \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error \ libunwind.so:devel/libunwind RUN_DEPENDS+= ${PREFIX}/lib/gcc${GCCVER}/libatomic.so.1:lang/gcc${GCCVER} .for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD CMAKE_ARGS+= -DWITH_${component}:STRING=bundled .endfor .else BUILD_DEPENDS+= protobuf>=3.0:devel/protobuf \ rapidjson>=1.1.0:devel/rapidjson \ libevent>=2.1:devel/libevent LIB_DEPENDS+= libcurl.so:ftp/curl \ libev.so:devel/libev \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error \ libicudata.so:devel/icu \ libprotobuf-lite.so:devel/protobuf \ libunwind.so:devel/libunwind \ libzstd.so:archivers/zstd .if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 180 CXXFLAGS+= -Wno-enum-constexpr-conversion .endif .for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD CMAKE_ARGS+= -DWITH_${component}:STRING=system .endfor KEEP_EXTRA= lz4 robin-hood-hashing zlib pre-configure: .for dir in ${KEEP_EXTRA} @${MV} ${WRKSRC}/extra/${dir} ${WRKDIR} .endfor @${RM} -r ${WRKSRC}/extra/* .for dir in ${KEEP_EXTRA} @${MV} ${WRKDIR}/${dir} ${WRKSRC}/extra .endfor .endif post-patch: .for d in storage/innobase/xtrabackup/src sql/protobuf ${REINPLACE_CMD} 's,%%PREFIX%%,${PREFIX},' ${WRKSRC}/${d}/CMakeLists.txt .endfor -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/../boost_${BOOST_VERSION_UNDER}/boost/container_hash/hash.hpp .endif post-stage: @${RM} -r ${STAGEDIR}${PREFIX}/docs ${STAGEDIR}${PREFIX}/man @${RMDIR} ${STAGEDIR}${PREFIX}/lib/plugin/debug .include diff --git a/databases/xtrabackup81/Makefile b/databases/xtrabackup81/Makefile index 75165fccc89c..ef69c294aab9 100644 --- a/databases/xtrabackup81/Makefile +++ b/databases/xtrabackup81/Makefile @@ -1,89 +1,89 @@ PORTNAME= xtrabackup81 PORTVERSION= 8.1.0 DISTVERSIONSUFFIX= -1 CATEGORIES= databases MASTER_SITES= https://downloads.percona.com/downloads/Percona-XtraBackup-innovative-release/Percona-XtraBackup-8.1.0-1/source/tarball/:percona \ SF/boost/boost/${BOOST_VERSION}:boost DISTFILES= ${PPORTNAME}-${DVERSION}${EXTRACT_SUFX}:percona \ boost_${BOOST_VERSION_UNDER}${EXTRACT_SUFX}:boost MAINTAINER= eugene@zhegan.in COMMENT= Open-source backup tool for InnoDB and XtraDB WWW= https://www.percona.com/doc/percona-xtrabackup/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= protobuf>=3.0:devel/protobuf \ rapidjson>=1.1.0:devel/rapidjson \ libevent>=2.1:devel/libevent LIB_DEPENDS= libcurl.so:ftp/curl \ libev.so:devel/libev \ libgcrypt.so:security/libgcrypt \ libgpg-error.so:security/libgpg-error \ libicudata.so:devel/icu \ libprotobuf-lite.so:devel/protobuf \ libunwind.so:devel/libunwind \ libzstd.so:archivers/zstd RUN_DEPENDS= qpress:archivers/qpress USES= bison cmake compiler:c++14-lang cpe pkgconfig ssl CPE_VENDOR= percona CMAKE_ARGS= -DBUILD_CONFIG:STRING=xtrabackup_release \ -DWITHOUT_COMPONENT_KEYRING_KMIP:STRING=yes \ -DWITH_VERSION_CHECK=false .for component in EDITLINE ICU LIBEVENT PROTOBUF RAPIDJSON ZSTD CMAKE_ARGS+= -DWITH_${component}:STRING=system .endfor CONFLICTS_INSTALL= ${PORTNAME:C/.$//}* # Bundle last supported Boost release BOOST_VERSION= 1.77.0 BOOST_VERSION_UNDER= ${BOOST_VERSION:C/\./_/g} CMAKE_ARGS+= -DWITH_BOOST=${WRKDIR}/boost_${BOOST_VERSION_UNDER} # Build fails without NDEBUG, so force it CFLAGS+= -DNDEBUG CXXFLAGS+= -DNDEBUG DVERSION= ${PORTVERSION}${DISTVERSIONSUFFIX} PPORTNAME= percona-xtrabackup WRKSRC= ${WRKDIR}/${PPORTNAME}-${DVERSION} .include # Since MySQL 8.0.20 InnoDB engine uses new memory alligned allocator # which is broken on i386 due to different size of types and causes a # 'static_assert(alignof(T) <= alignof(std::max_align_t))' error .if ${ARCH} == i386 CXXFLAGS+= -malign-double .endif KEEP_EXTRA= lz4 robin-hood-hashing zlib post-patch: .for d in storage/innobase/xtrabackup/src sql/protobuf ${REINPLACE_CMD} 's,%%PREFIX%%,${PREFIX},' ${WRKSRC}/${d}/CMakeLists.txt .endfor -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/../boost_${BOOST_VERSION_UNDER}/boost/container_hash/hash.hpp .endif pre-configure: .for dir in ${KEEP_EXTRA} @${MV} ${WRKSRC}/extra/${dir} ${WRKDIR} .endfor @${RM} -r ${WRKSRC}/extra/* .for dir in ${KEEP_EXTRA} @${MV} ${WRKDIR}/${dir} ${WRKSRC}/extra .endfor post-stage: @${RM} -r ${STAGEDIR}${PREFIX}/docs ${STAGEDIR}${PREFIX}/man @${RMDIR} ${STAGEDIR}${PREFIX}/lib/plugin/debug .include diff --git a/deskutils/kdepim-runtime/Makefile b/deskutils/kdepim-runtime/Makefile index 6df40d40d09e..d282025f69f5 100644 --- a/deskutils/kdepim-runtime/Makefile +++ b/deskutils/kdepim-runtime/Makefile @@ -1,51 +1,51 @@ PORTNAME= kdepim-runtime DISTVERSION= ${KDE_APPLICATIONS_VERSION} PORTREVISION= 1 CATEGORIES= deskutils kde kde-applications MAINTAINER= kde@FreeBSD.org COMMENT= KDE PIM tools and services WWW= https://www.kde.org/ LICENSE= LGPL21 LIB_DEPENDS= libboost_date_time.so:devel/boost-libs \ libcurl.so:ftp/curl \ libkolabxml.so:textproc/libkolabxml \ libsasl2.so:security/cyrus-sasl2 \ libxerces-c-3.2.so:textproc/xerces-c3 \ libqt5keychain.so:security/qtkeychain@qt5 USES= cmake:noninja compiler:c++11-lib gettext grantlee:5 kde:5 qca \ qt:5 shared-mime-info tar:xz xorg USE_KDE= auth bookmarks codecs completion config configwidgets \ coreaddons crash dbusaddons guiaddons holidays i18n iconthemes \ itemmodels itemviews jobwidgets kcmutils kdav kdelibs4support \ kio kross notifications notifyconfig parts service solid \ sonnet textwidgets unitconversion wallet widgetsaddons \ windowsystem xmlgui \ ecm:build # pim components USE_KDE+= akonadi akonadicalendar akonadicontacts akonadimime \ akonadinotes akonadisearch calendarcore calendarutils contacts \ gapi grantleetheme identitymanagement imap kontactinterface \ ldap libkdepim mailtransport mbox mime pimcommon pimtextedit \ syndication USE_QT= concurrent core dbus declarative gui location network \ networkauth printsupport script speech webchannel webengine \ widgets xml xmlpatterns \ buildtools:build qmake:build USE_XORG= x11 USE_LDCONFIG= yes DESCR= ${.CURDIR:H:H}/deskutils/kdepim/pkg-descr OPTIONS_DEFINE= DOCS .include -.if ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${CHOSEN_COMPILER_TYPE} == clang CXXFLAGS+= -Wno-error=enum-constexpr-conversion .endif .include diff --git a/deskutils/plasma6-xdg-desktop-portal-kde/files/patch-src_session.h b/deskutils/plasma6-xdg-desktop-portal-kde/files/patch-src_session.h deleted file mode 100644 index cf5796fc5bcc..000000000000 --- a/deskutils/plasma6-xdg-desktop-portal-kde/files/patch-src_session.h +++ /dev/null @@ -1,19 +0,0 @@ -Fix build on FreeBSD 13.2 - -In file included from /wrkdirs/usr/ports/deskutils/plasma6-xdg-desktop-portal-kde/work/.build/src/xdg-desktop-portal-kde_autogen/mocs_compilation.cpp:29: -In file included from /wrkdirs/usr/ports/deskutils/plasma6-xdg-desktop-portal-kde/work/.build/src/xdg-desktop-portal-kde_autogen/EWIEGA46WW/moc_session.cpp:9: -/wrkdirs/usr/ports/deskutils/plasma6-xdg-desktop-portal-kde/work/.build/src/xdg-desktop-portal-kde_autogen/EWIEGA46WW/../../../../xdg-desktop-portal-kde-6.0.4/src/session.h:186:10: error: no template named 'unordered_map' in namespace 'std' - std::unordered_map> m_shortcuts; - ~~~~~^ - ---- src/session.h.orig 2024-04-16 10:39:21 UTC -+++ src/session.h -@@ -9,6 +9,8 @@ - #ifndef XDG_DESKTOP_PORTAL_KDE_SESSION_H - #define XDG_DESKTOP_PORTAL_KDE_SESSION_H - -+#include -+ - #include - #include - #include diff --git a/devel/cjose/Makefile b/devel/cjose/Makefile index c1a52369bcaf..0d651156e019 100644 --- a/devel/cjose/Makefile +++ b/devel/cjose/Makefile @@ -1,36 +1,36 @@ PORTNAME= cjose PORTVERSION= 0.6.1 PORTREVISION= 2 CATEGORIES= devel MAINTAINER= jamie@chair6.net COMMENT= C library implementing JavaScript Object Signing and Encryption (JOSE) WWW= https://github.com/cisco/cjose LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libjansson.so:devel/jansson USES= compiler:c++11-lang libtool pathfix pkgconfig ssl USE_LDCONFIG= yes INSTALL_TARGET= install-strip USE_GITHUB= yes GH_ACCOUNT= cisco GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-jansson=${PREFIX} --with-openssl=${OPENSSLBASE} .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=strict-prototypes .endif .if ( ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400092 && ${SSL_DEFAULT} == base ) || ${SSL_DEFAULT:Mopenssl3*} CFLAGS+= -Wno-error=deprecated-declarations .endif .include diff --git a/devel/corrade/Makefile b/devel/corrade/Makefile index 1f03632a7afc..63fd1de88131 100644 --- a/devel/corrade/Makefile +++ b/devel/corrade/Makefile @@ -1,39 +1,39 @@ PORTNAME= corrade DISTVERSIONPREFIX= v DISTVERSION= 2020.06-1214 DISTVERSIONSUFFIX= -g3bf6057d PORTREVISION= 1 CATEGORIES= devel MAINTAINER= yuri@FreeBSD.org COMMENT= C++11/C++14 multiplatform utility library WWW= https://magnum.graphics/corrade/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING BROKEN_FreeBSD_13_armv7= compilation fails: error: use of undeclared identifier 'vshrn_high_n_u16' BROKEN_FreeBSD_14_armv7= compilation fails: error: use of undeclared identifier 'vshrn_high_n_u16' USES= cmake:testing compiler:c++14-lang USE_LDCONFIG= yes USE_GITHUB= yes GH_ACCOUNT= mosra GH_TUPLE= mosra:toolchains:65568a9:toolchains/toolchains CMAKE_ARGS= -DLIB_SUFFIX:STRING="" OPTIONS_DEFINE= TEST TEST_CMAKE_BOOL= CORRADE_BUILD_TESTS .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|#include <__tuple>|#include |g' \ ${WRKSRC}/src/Corrade/Utility/StlForwardArray.h \ ${WRKSRC}/src/Corrade/Utility/StlForwardTuple.h .endif .include diff --git a/devel/electron27/Makefile b/devel/electron27/Makefile index fc4d263e7fe4..8ecd2cd9a490 100644 --- a/devel/electron27/Makefile +++ b/devel/electron27/Makefile @@ -1,446 +1,435 @@ PORTNAME= electron DISTVERSIONPREFIX= v DISTVERSION= ${ELECTRON_VER:S/-beta./.b/} CATEGORIES= devel MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v27.1.3/:chromium \ https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \ https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \ ${CHROMIUM_NODE_MODULES_HASH}:chromium_node \ ${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts \ electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS WWW= https://electronjs.org/ LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT LICENSE_COMB= multi LICENSE_FILE= ${WRKSRC}/electron/LICENSE DEPRECATED= EOLed upstream, switch to newer version EXPIRATION_DATE= 2024-05-31 ONLY_FOR_ARCHS= aarch64 amd64 i386 FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} PATCH_DEPENDS= git:devel/git \ jq:textproc/jq BUILD_DEPENDS= gperf:devel/gperf \ yasm:devel/yasm \ ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libsnappy.so:archivers/snappy \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libdbus-1.so:devel/dbus \ libicuuc.so:devel/icu \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libva.so:multimedia/libva \ libopenh264.so:multimedia/openh264 \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils TEST_DEPENDS= git:devel/git \ ${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} USES= bison compiler:c++17-lang cpe gettext-tools gl gmake gnome \ iconv:wchar_t jpeg localbase:ldflags ninja nodejs:18,build \ pkgconfig python:build,test shebangfix tar:xz xorg CPE_VENDOR= electronjs USE_GITHUB= yes GH_TAGNAME= ${DISTVERSIONPREFIX}${ELECTRON_VER} GH_TUPLE= nodejs:node:v${NODE_VER}:node \ nodejs:nan:${NAN_VER}:nan \ Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \ ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \ Mantle:Mantle:${MANTLE_VER}:mantle USE_GL= gbm gl glesv2 USE_GNOME= atk cairo gdkpixbuf2 gtk30 libxml2 libxslt pango USE_LDCONFIG= ${DATADIR} USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \ xrender xscrnsaver xtst SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format MAKE_ARGS= -C out/${BUILDTYPE} MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include ALL_TARGET= electron third_party/electron_node:headers POST_BUILD_TARGETS= licenses version POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \ electron_mksnapshot_zip DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} BINARY_ALIAS= python3=${PYTHON_CMD} NO_WRKSUBDIR= yes WRKSRC_SUBDIR= src GN_ARGS+= clang_use_chrome_plugins=false \ enable_backup_ref_ptr_support=false \ enable_hangout_services_extension=true \ enable_nacl=false \ enable_remoting=false \ enable_rust=false \ fatal_linker_warnings=false \ icu_use_data_file=false \ is_clang=true \ optimize_webui=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator_shim=false \ use_aura=true \ use_custom_libcxx=false \ use_lld=true \ use_partition_alloc=true \ use_partition_alloc_as_malloc=false \ use_sysroot=false \ use_system_freetype=false \ use_system_harfbuzz=true \ use_system_libffi=true \ use_system_libjpeg=true \ use_udev=false \ chrome_pgo_phase=0 \ extra_cflags="${CFLAGS}" \ extra_cxxflags="${CXXFLAGS}" \ extra_ldflags="${LDFLAGS}" \ ffmpeg_branding="${FFMPEG_BRAND}" \ override_electron_version="${ELECTRON_VER}" # TODO: investigate building with these options: # use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \ ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR} OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE SNDIO OPTIONS_EXCLUDE_aarch64=LTO OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO OPTIONS_RADIO= KERBEROS OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT OPTIONS_SUB= yes CODECS_DESC= Compile and enable patented codecs like H.264 DIST_DESC= Build distribution zip files DRIVER_DESC= Install chromedriver HEIMDAL_BASE_DESC= Heimdal Kerberos (base) HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) MIT_DESC= MIT Kerberos (security/krb5) PIPEWIRE_DESC= Screen capture via PipeWire ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ alsa-lib>=1.1.1_1:audio/alsa-lib ALSA_VARS= GN_ARGS+=use_alsa=true ALSA_VARS_OFF= GN_ARGS+=use_alsa=false CODECS_VARS= GN_ARGS+=proprietary_codecs=true \ FFMPEG_BRAND="Chrome" CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \ FFMPEG_BRAND="Chromium" CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_VARS= GN_ARGS+=use_cups=true CUPS_VARS_OFF= GN_ARGS+=use_cups=false DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild DEBUG_VARS= BUILDTYPE=Debug \ GN_FILE=testing.gn \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_ARGS+=symbol_level=1 \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="21 GB" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_FILE=release.gn \ GN_ARGS+=blink_symbol_level=0 \ GN_ARGS+=is_debug=false \ GN_ARGS+=is_official_build=true \ GN_ARGS+=symbol_level=0 \ WANTSPACE="14 GB" DIST_IMPLIES= DRIVER DRIVER_MAKE_ARGS= chromedriver HEIMDAL_LIB_DEPENDS= libkrb5.so.26:security/heimdal KERBEROS_VARS= GN_ARGS+=use_kerberos=true KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false LTO_VARS= GN_ARGS+=use_thin_lto=true \ GN_ARGS+=thin_lto_enable_optimizations=true \ WANTSPACE="14 GB" LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \ GN_ARGS+=rtc_link_pipewire=true PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \ GN_ARGS+=rtc_link_pipewire=false PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false # With SNDIO=on we exclude audio_manager_linux from the build (see # media/audio/BUILD.gn) and use audio_manager_openbsd which does not # support falling back to ALSA or PulseAudio. SNDIO_PREVENTS= ALSA PULSEAUDIO SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER CHROMIUM_VER= 118.0.5993.159 # See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH CHROMIUM_NODE_MODULES_HASH= 937cea04689b7b8dcf3cb9adbb12c79d1d6c38bb # See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH CHROMIUM_TEST_FONTS_HASH= 336e775eec536b2d785cc80eff6ac39051931286 # See ${WRKSRC}/electron/DEPS for NODE_VER NODE_VER= 18.17.1 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= 16fa32231e2ccd89d2804b3f765319128b20c4ac # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38 # See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76 # See ${WRKSRC}/electron/DEPS for MANTLE_VER MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948 YARN_TIMESTAMP= 61171200 .include "Makefile.version" .include .if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so) IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base .endif -.if ${COMPILER_VERSION} < 160 -LLVM_DEFAULT= 16 -BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ - cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \ - c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \ - ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \ - nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \ - ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} -.else BINARY_ALIAS+= ar=/usr/bin/llvm-ar \ nm=/usr/bin/llvm-nm -.endif CFLAGS+= -Wno-error=implicit-function-declaration .if ${ARCH} == "aarch64" PLIST_SUB+= AARCH64="" \ AMD64="@comment " \ I386="@comment " \ NOT_AARCH64="@comment " FFMPEG_TARGET= arm64 .elif ${ARCH} == "amd64" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="" \ I386="@comment " \ NOT_AARCH64="" FFMPEG_TARGET= x64 .elif ${ARCH} == "i386" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="@comment " \ I386="" \ NOT_AARCH64="" FFMPEG_TARGET= ia32 .endif FFMPEG_BDIR= ${WRKSRC}/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND} FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET} # Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-znotext # TODO: -isystem, would be just as ugly as this approach, but more reliably # build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build electron, you should have around 2GB of memory" @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." @${ECHO_MSG} pre-fetch: @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \ then ${MKDIR} ${WRKDIR}; \ ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \ ${WRKDIR}/.yarnrc; \ ${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \ cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \ yarn --frozen-lockfile --ignore-scripts; \ ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \ -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \ -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ -e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \ -e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \ -e 's:flags=.*:flags=none:' \ -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \ ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \ @yarn-offline-cache.mtree; \ ${RM} -r ${WRKDIR}; \ fi post-extract: # Move extracted sources to appropriate locations ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC} ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_nan}-${NAN_VER} \ ${WRKSRC}/third_party/nan ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \ ${WRKSRC}/third_party/electron_node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ ${WRKSRC}/third_party/squirrel.mac ${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts # Install node modules for electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR} ${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc ${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak ${CP} ${FILESDIR}/package.json ${WRKSRC}/electron cd ${WRKSRC}/electron && \ ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline pre-patch: ${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC} # ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete # ${FIND} ${WRKSRC} -type f -name '*~' -print -delete pre-configure: # We used to remove bundled libraries to be sure that chromium uses # system libraries and not shipped ones. # cd ${WRKSRC} && ${PYTHON_CMD} \ #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ ./build/linux/unbundle/replace_gn_files.py --system-libraries \ dav1d flac fontconfig freetype harfbuzz-ng icu libdrm libevent \ libpng libusb libwebp libxml libxslt openh264 opus snappy || ${FALSE} # Chromium uses an unreleased version of FFmpeg, so configure it cd ${WRKSRC}/third_party/ffmpeg && \ ${PYTHON_CMD} chromium/scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \ --config-only --branding=${FFMPEG_BRAND} cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h ${MKDIR} ${FFMPEG_CDIR} .for _e in config.h config.asm config_components.h libavcodec libavformat libavutil -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} .endfor do-configure: # GN generator bootstrapping and generating ninja files cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \ --args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}' # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node # Setup buildtools/freebsd @${MKDIR} ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd ${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip post-build: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS} post-build-DIST-on: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt do-install: ${MKDIR} ${STAGEDIR}${DATADIR} .for f in electron mksnapshot v8_context_snapshot_generator ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so .for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${MKDIR} ${STAGEDIR}${DATADIR}/locales ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales ${MKDIR} ${STAGEDIR}${DATADIR}/resources .for f in default_app.asar ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources .endfor cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR} ${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX} post-install-DIST-on: ${MKDIR} ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \ ${STAGEDIR}${DATADIR}/chromedriver do-test: # Note 1: "npm install" will run before actual tests are executed # Note 2: Xvfb or something similar is necessary for headless testing cd ${WRKSRC}/electron && \ ${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} LOCAL_GIT_DIRECTORY=${LOCALBASE} \ npm run test -- --ci .include diff --git a/devel/electron28/Makefile b/devel/electron28/Makefile index 5dfdd1230b47..7d3b58eff732 100644 --- a/devel/electron28/Makefile +++ b/devel/electron28/Makefile @@ -1,450 +1,432 @@ PORTNAME= electron DISTVERSIONPREFIX= v DISTVERSION= ${ELECTRON_VER:S/-beta./.b/} CATEGORIES= devel MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v28.2.4/:chromium \ https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \ https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \ ${CHROMIUM_NODE_MODULES_HASH}:chromium_node \ ${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts \ electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS WWW= https://electronjs.org/ LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT LICENSE_COMB= multi LICENSE_FILE= ${WRKSRC}/electron/LICENSE ONLY_FOR_ARCHS= aarch64 amd64 i386 FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} PATCH_DEPENDS= git:devel/git \ jq:textproc/jq BUILD_DEPENDS= gperf:devel/gperf \ yasm:devel/yasm \ ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libsnappy.so:archivers/snappy \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libdbus-1.so:devel/dbus \ libicuuc.so:devel/icu \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libva.so:multimedia/libva \ libopenh264.so:multimedia/openh264 \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils TEST_DEPENDS= git:devel/git \ ${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} USES= bison compiler:c++17-lang cpe gettext-tools gl gmake gnome \ iconv:wchar_t jpeg localbase:ldflags ninja nodejs:18,build \ pkgconfig python:build,test shebangfix tar:xz xorg CPE_VENDOR= electronjs USE_GITHUB= yes GH_TAGNAME= ${DISTVERSIONPREFIX}${ELECTRON_VER} GH_TUPLE= nodejs:node:v${NODE_VER}:node \ nodejs:nan:${NAN_VER}:nan \ Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \ ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \ Mantle:Mantle:${MANTLE_VER}:mantle USE_GL= gbm gl glesv2 USE_GNOME= atk cairo gdkpixbuf2 gtk30 libxml2 libxslt pango USE_LDCONFIG= ${DATADIR} USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \ xrender xscrnsaver xtst SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format MAKE_ARGS= -C out/${BUILDTYPE} MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include ALL_TARGET= electron electron:node_headers POST_BUILD_TARGETS= licenses version POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \ electron_mksnapshot_zip DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} BINARY_ALIAS= python3=${PYTHON_CMD} NO_WRKSUBDIR= yes WRKSRC_SUBDIR= src GN_ARGS+= clang_use_chrome_plugins=false \ enable_backup_ref_ptr_support=false \ enable_hangout_services_extension=true \ enable_nacl=false \ enable_remoting=false \ enable_rust=false \ fatal_linker_warnings=false \ icu_use_data_file=false \ is_clang=true \ optimize_webui=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator_shim=false \ use_aura=true \ use_custom_libcxx=false \ use_lld=true \ use_partition_alloc=true \ use_partition_alloc_as_malloc=false \ use_sysroot=false \ use_system_freetype=false \ use_system_harfbuzz=true \ use_system_libffi=true \ use_system_libjpeg=true \ use_udev=false \ chrome_pgo_phase=0 \ extra_cflags="${CFLAGS}" \ extra_cxxflags="${CXXFLAGS}" \ extra_ldflags="${LDFLAGS}" \ ffmpeg_branding="${FFMPEG_BRAND}" \ override_electron_version="${ELECTRON_VER}" # TODO: investigate building with these options: # use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \ ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR} OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE SNDIO OPTIONS_EXCLUDE_aarch64=LTO OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO OPTIONS_RADIO= KERBEROS OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT OPTIONS_SUB= yes CODECS_DESC= Compile and enable patented codecs like H.264 DIST_DESC= Build distribution zip files DRIVER_DESC= Install chromedriver HEIMDAL_BASE_DESC= Heimdal Kerberos (base) HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) MIT_DESC= MIT Kerberos (security/krb5) PIPEWIRE_DESC= Screen capture via PipeWire ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ alsa-lib>=1.1.1_1:audio/alsa-lib ALSA_VARS= GN_ARGS+=use_alsa=true ALSA_VARS_OFF= GN_ARGS+=use_alsa=false CODECS_VARS= GN_ARGS+=proprietary_codecs=true \ FFMPEG_BRAND="Chrome" CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \ FFMPEG_BRAND="Chromium" CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_VARS= GN_ARGS+=use_cups=true CUPS_VARS_OFF= GN_ARGS+=use_cups=false DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild DEBUG_VARS= BUILDTYPE=Debug \ GN_FILE=testing.gn \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_ARGS+=symbol_level=1 \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="21 GB" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_FILE=release.gn \ GN_ARGS+=blink_symbol_level=0 \ GN_ARGS+=is_debug=false \ GN_ARGS+=is_official_build=true \ GN_ARGS+=symbol_level=0 \ WANTSPACE="14 GB" DIST_IMPLIES= DRIVER DRIVER_MAKE_ARGS= chromedriver HEIMDAL_LIB_DEPENDS= libkrb5.so.26:security/heimdal KERBEROS_VARS= GN_ARGS+=use_kerberos=true KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false LTO_VARS= GN_ARGS+=use_thin_lto=true \ GN_ARGS+=thin_lto_enable_optimizations=true \ WANTSPACE="14 GB" LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \ GN_ARGS+=rtc_link_pipewire=true PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \ GN_ARGS+=rtc_link_pipewire=false PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false # With SNDIO=on we exclude audio_manager_linux from the build (see # media/audio/BUILD.gn) and use audio_manager_openbsd which does not # support falling back to ALSA or PulseAudio. SNDIO_PREVENTS= ALSA PULSEAUDIO SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER CHROMIUM_VER= 120.0.6099.291 # See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH CHROMIUM_NODE_MODULES_HASH= bb991b26ccca36a9b3912b51dec5b70e5dea9aea # See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH CHROMIUM_TEST_FONTS_HASH= 336e775eec536b2d785cc80eff6ac39051931286 # See ${WRKSRC}/electron/DEPS for NODE_VER NODE_VER= 18.18.2 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38 # See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76 # See ${WRKSRC}/electron/DEPS for MANTLE_VER MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948 YARN_TIMESTAMP= 61171200 .include "Makefile.version" .include -# libc++ < 16 needs these extra patches -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302507 -EXTRA_PATCHES= ${PATCHDIR}/extra-patch-electron_shell_browser_electron__browser__context.h \ - ${PATCHDIR}/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h \ - ${PATCHDIR}/extra-patch-electron_shell_browser_ui_status__icon__gtk.h -.endif - .if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so) IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base .endif -.if ${COMPILER_VERSION} < 160 -LLVM_DEFAULT= 16 -BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ - cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \ - c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \ - ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \ - nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \ - ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} -.else BINARY_ALIAS+= ar=/usr/bin/llvm-ar \ nm=/usr/bin/llvm-nm -.endif CFLAGS+= -Wno-error=implicit-function-declaration .if ${ARCH} == "aarch64" PLIST_SUB+= AARCH64="" \ AMD64="@comment " \ I386="@comment " \ NOT_AARCH64="@comment " FFMPEG_TARGET= arm64 .elif ${ARCH} == "amd64" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="" \ I386="@comment " \ NOT_AARCH64="" FFMPEG_TARGET= x64 .elif ${ARCH} == "i386" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="@comment " \ I386="" \ NOT_AARCH64="" FFMPEG_TARGET= ia32 .endif FFMPEG_BDIR= ${WRKSRC}/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND} FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET} # Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-znotext # TODO: -isystem, would be just as ugly as this approach, but more reliably # build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build electron, you should have around 2GB of memory" @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." @${ECHO_MSG} pre-fetch: @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \ then ${MKDIR} ${WRKDIR}; \ ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \ ${WRKDIR}/.yarnrc; \ ${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \ cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \ yarn --frozen-lockfile --ignore-scripts; \ ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \ -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \ -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ -e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \ -e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \ -e 's:flags=.*:flags=none:' \ -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \ ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \ @yarn-offline-cache.mtree; \ ${RM} -r ${WRKDIR}; \ fi post-extract: # Move extracted sources to appropriate locations ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC} ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_nan}-${NAN_VER} \ ${WRKSRC}/third_party/nan ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \ ${WRKSRC}/third_party/electron_node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ ${WRKSRC}/third_party/squirrel.mac ${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts # Install node modules for electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR} ${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc ${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak ${CP} ${FILESDIR}/package.json ${WRKSRC}/electron cd ${WRKSRC}/electron && \ ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline pre-patch: ${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC} # ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete # ${FIND} ${WRKSRC} -type f -name '*~' -print -delete pre-configure: # We used to remove bundled libraries to be sure that chromium uses # system libraries and not shipped ones. # cd ${WRKSRC} && ${PYTHON_CMD} \ #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ ./build/linux/unbundle/replace_gn_files.py --system-libraries \ dav1d flac fontconfig freetype harfbuzz-ng icu libdrm libevent \ libpng libusb libwebp libxml libxslt openh264 opus snappy || ${FALSE} # Chromium uses an unreleased version of FFmpeg, so configure it cd ${WRKSRC}/third_party/ffmpeg && \ ${PYTHON_CMD} chromium/scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \ --config-only --branding=${FFMPEG_BRAND} cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h ${MKDIR} ${FFMPEG_CDIR} .for _e in config.h config.asm config_components.h libavcodec libavformat libavutil -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} .endfor do-configure: # GN generator bootstrapping and generating ninja files cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \ --args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}' # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node # Setup buildtools/freebsd @${MKDIR} ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd ${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip post-build: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS} post-build-DIST-on: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt do-install: ${MKDIR} ${STAGEDIR}${DATADIR} .for f in electron mksnapshot v8_context_snapshot_generator ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so .for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${MKDIR} ${STAGEDIR}${DATADIR}/locales ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales ${MKDIR} ${STAGEDIR}${DATADIR}/resources .for f in default_app.asar ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources .endfor cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR} ${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX} post-install-DIST-on: ${MKDIR} ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \ ${STAGEDIR}${DATADIR}/chromedriver do-test: # Note 1: "npm install" will run before actual tests are executed # Note 2: Xvfb or something similar is necessary for headless testing cd ${WRKSRC}/electron && \ ${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} LOCAL_GIT_DIRECTORY=${LOCALBASE} \ npm run test -- --ci .include diff --git a/devel/electron28/files/extra-patch-electron_shell_browser_electron__browser__context.h b/devel/electron28/files/extra-patch-electron_shell_browser_electron__browser__context.h deleted file mode 100644 index 945fd33f12a9..000000000000 --- a/devel/electron28/files/extra-patch-electron_shell_browser_electron__browser__context.h +++ /dev/null @@ -1,64 +0,0 @@ ---- electron/shell/browser/electron_browser_context.h.orig 2024-01-23 19:02:02 UTC -+++ electron/shell/browser/electron_browser_context.h -@@ -8,7 +8,6 @@ - #include - #include - #include --#include - #include - #include - #include "base/memory/raw_ptr.h" -@@ -79,22 +78,41 @@ class ElectronBrowserContext : public content::Browser - - // partition_id => browser_context - struct PartitionKey { -- PartitionKey(const std::string_view partition, bool in_memory) -- : type_{Type::Partition}, location_{partition}, in_memory_{in_memory} {} -+ enum class KeyType { Partition, FilePath }; -+ std::string location; -+ bool in_memory; -+ KeyType partition_type; - -+ PartitionKey(const std::string& partition, bool in_memory) -+ : location(partition), -+ in_memory(in_memory), -+ partition_type(KeyType::Partition) {} - explicit PartitionKey(const base::FilePath& file_path) -- : type_{Type::Path}, -- location_{file_path.AsUTF8Unsafe()}, -- in_memory_{false} {} -+ : location(file_path.AsUTF8Unsafe()), -+ in_memory(false), -+ partition_type(KeyType::FilePath) {} - -- friend auto operator<=>(const PartitionKey&, const PartitionKey&) = default; -+ bool operator<(const PartitionKey& other) const { -+ if (partition_type == KeyType::Partition) { -+ if (location == other.location) -+ return in_memory < other.in_memory; -+ return location < other.location; -+ } else { -+ if (location == other.location) -+ return false; -+ return location < other.location; -+ } -+ } - -- private: -- enum class Type { Partition, Path }; -- -- Type type_; -- std::string location_; -- bool in_memory_; -+ bool operator==(const PartitionKey& other) const { -+ if (partition_type == KeyType::Partition) { -+ return (location == other.location) && (in_memory < other.in_memory); -+ } else { -+ if (location == other.location) -+ return true; -+ return false; -+ } -+ } - }; - - using BrowserContextMap = diff --git a/devel/electron28/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h b/devel/electron28/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h deleted file mode 100644 index 2ae6219150ae..000000000000 --- a/devel/electron28/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h +++ /dev/null @@ -1,11 +0,0 @@ ---- electron/shell/browser/ui/gtk/menu_gtk.h.orig 2023-12-20 13:32:58 UTC -+++ electron/shell/browser/ui/gtk/menu_gtk.h -@@ -5,6 +5,8 @@ - #ifndef ELECTRON_SHELL_BROWSER_UI_GTK_MENU_GTK_H_ - #define ELECTRON_SHELL_BROWSER_UI_GTK_MENU_GTK_H_ - -+#include -+ - #include "base/functional/callback.h" - #include "base/memory/raw_ptr.h" - #include "ui/base/glib/scoped_gobject.h" diff --git a/devel/electron28/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h b/devel/electron28/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h deleted file mode 100644 index 21acde5bb351..000000000000 --- a/devel/electron28/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h +++ /dev/null @@ -1,10 +0,0 @@ ---- electron/shell/browser/ui/status_icon_gtk.h.orig 2023-12-20 13:31:04 UTC -+++ electron/shell/browser/ui/status_icon_gtk.h -@@ -6,6 +6,7 @@ - #define ELECTRON_SHELL_BROWSER_UI_STATUS_ICON_GTK_H_ - - #include -+#include - - #include "ui/base/glib/glib_integers.h" - #include "ui/base/glib/scoped_gobject.h" diff --git a/devel/electron29/Makefile b/devel/electron29/Makefile index fbf19f573a10..ebfb7911b4db 100644 --- a/devel/electron29/Makefile +++ b/devel/electron29/Makefile @@ -1,456 +1,449 @@ PORTNAME= electron DISTVERSIONPREFIX= v DISTVERSION= ${ELECTRON_VER:S/-beta./.b/} CATEGORIES= devel MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v29.2.0/:chromium \ https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \ https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \ ${CHROMIUM_NODE_MODULES_HASH}:chromium_node \ ${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts \ electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS WWW= https://electronjs.org/ LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT LICENSE_COMB= multi LICENSE_FILE= ${WRKSRC}/electron/LICENSE ONLY_FOR_ARCHS= aarch64 amd64 i386 FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} PATCH_DEPENDS= git:devel/git \ jq:textproc/jq BUILD_DEPENDS= gperf:devel/gperf \ yasm:devel/yasm \ ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libdbus-1.so:devel/dbus \ libicuuc.so:devel/icu \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libva.so:multimedia/libva \ libopenh264.so:multimedia/openh264 \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils TEST_DEPENDS= git:devel/git \ ${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} USES= bison compiler:c++17-lang cpe gettext-tools gl gmake gnome \ iconv:wchar_t jpeg localbase:ldflags ninja nodejs:20,build \ pkgconfig python:build,test shebangfix tar:xz xorg CPE_VENDOR= electronjs USE_GITHUB= yes GH_TAGNAME= ${DISTVERSIONPREFIX}${ELECTRON_VER} GH_TUPLE= nodejs:node:v${NODE_VER}:node \ nodejs:nan:${NAN_VER}:nan \ Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \ ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \ Mantle:Mantle:${MANTLE_VER}:mantle \ EngFlow:reclient-configs:${ENGFLOW_RECLIENT_CONFIGS_VER}:reclient_configs USE_GL= gbm gl glesv2 USE_GNOME= atk cairo gdkpixbuf2 gtk30 libxml2 libxslt pango USE_LDCONFIG= ${DATADIR} USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \ xrender xscrnsaver xtst SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format MAKE_ARGS= -C out/${BUILDTYPE} MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include ALL_TARGET= electron electron:node_headers POST_BUILD_TARGETS= licenses version POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \ electron_mksnapshot_zip DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} BINARY_ALIAS= python3=${PYTHON_CMD} NO_WRKSUBDIR= yes WRKSRC_SUBDIR= src GN_ARGS+= clang_use_chrome_plugins=false \ enable_backup_ref_ptr_support=false \ enable_hangout_services_extension=true \ enable_log_error_not_reached=true \ enable_nacl=false \ enable_remoting=false \ enable_rust=false \ fatal_linker_warnings=false \ icu_use_data_file=false \ is_clang=true \ optimize_webui=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator_shim=false \ use_aura=true \ use_custom_libcxx=true \ use_custom_libunwind=true \ use_lld=true \ use_partition_alloc=true \ use_partition_alloc_as_malloc=false \ use_sysroot=false \ use_system_freetype=false \ use_system_harfbuzz=true \ use_system_libffi=true \ use_system_libjpeg=true \ use_udev=false \ chrome_pgo_phase=0 \ extra_cflags="${CFLAGS}" \ extra_cxxflags="${CXXFLAGS}" \ extra_ldflags="${LDFLAGS}" \ ffmpeg_branding="${FFMPEG_BRAND}" \ override_electron_version="${ELECTRON_VER}" # TODO: investigate building with these options: # use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \ ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR} OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE SNDIO OPTIONS_EXCLUDE_aarch64=LTO OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO OPTIONS_RADIO= KERBEROS OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT OPTIONS_SUB= yes CODECS_DESC= Compile and enable patented codecs like H.264 DIST_DESC= Build distribution zip files DRIVER_DESC= Install chromedriver HEIMDAL_BASE_DESC= Heimdal Kerberos (base) HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) MIT_DESC= MIT Kerberos (security/krb5) PIPEWIRE_DESC= Screen capture via PipeWire ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ alsa-lib>=1.1.1_1:audio/alsa-lib ALSA_VARS= GN_ARGS+=use_alsa=true ALSA_VARS_OFF= GN_ARGS+=use_alsa=false CODECS_VARS= GN_ARGS+=proprietary_codecs=true \ FFMPEG_BRAND="Chrome" CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \ FFMPEG_BRAND="Chromium" CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_VARS= GN_ARGS+=use_cups=true CUPS_VARS_OFF= GN_ARGS+=use_cups=false DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild DEBUG_VARS= BUILDTYPE=Debug \ GN_FILE=testing.gn \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_ARGS+=symbol_level=1 \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="21 GB" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_FILE=release.gn \ GN_ARGS+=blink_symbol_level=0 \ GN_ARGS+=is_debug=false \ GN_ARGS+=is_official_build=true \ GN_ARGS+=symbol_level=0 \ WANTSPACE="14 GB" DIST_IMPLIES= DRIVER DRIVER_MAKE_ARGS= chromedriver HEIMDAL_LIB_DEPENDS= libkrb5.so.26:security/heimdal KERBEROS_VARS= GN_ARGS+=use_kerberos=true KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false LTO_VARS= GN_ARGS+=use_thin_lto=true \ GN_ARGS+=thin_lto_enable_optimizations=true \ WANTSPACE="14 GB" LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \ GN_ARGS+=rtc_link_pipewire=true PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \ GN_ARGS+=rtc_link_pipewire=false PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false # With SNDIO=on we exclude audio_manager_linux from the build (see # media/audio/BUILD.gn) and use audio_manager_openbsd which does not # support falling back to ALSA or PulseAudio. SNDIO_PREVENTS= ALSA PULSEAUDIO SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER CHROMIUM_VER= 122.0.6261.156 # See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH CHROMIUM_NODE_MODULES_HASH= e0b8a95aed06c02287872a2d15c28509b9808446 # See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH CHROMIUM_TEST_FONTS_HASH= 336e775eec536b2d785cc80eff6ac39051931286 # See ${WRKSRC}/electron/DEPS for NODE_VER NODE_VER= 20.9.0 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38 # See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76 # See ${WRKSRC}/electron/DEPS for MANTLE_VER MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948 # See ${WRKSRC}/electron/DEPS for ENGFLOW_RECLIENT_CONFIGS_VER ENGFLOW_RECLIENT_CONFIGS_VER= 955335c30a752e9ef7bff375baab5e0819b6c00d YARN_TIMESTAMP= 61171200 .include "Makefile.version" .include -# libc++ < 16 needs these extra patches -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302507 -EXTRA_PATCHES= ${PATCHDIR}/extra-patch-electron_shell_browser_electron__browser__context.h \ - ${PATCHDIR}/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h \ - ${PATCHDIR}/extra-patch-electron_shell_browser_ui_status__icon__gtk.h -.endif - .if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so) IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base .endif .if ${COMPILER_VERSION} < 170 LLVM_DEFAULT= 17 BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \ c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \ ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \ nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \ ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} .else BINARY_ALIAS+= ar=/usr/bin/llvm-ar \ nm=/usr/bin/llvm-nm .endif CFLAGS+= -Wno-error=implicit-function-declaration .if ${ARCH} == "aarch64" PLIST_SUB+= AARCH64="" \ AMD64="@comment " \ I386="@comment " \ NOT_AARCH64="@comment " FFMPEG_TARGET= arm64 .elif ${ARCH} == "amd64" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="" \ I386="@comment " \ NOT_AARCH64="" FFMPEG_TARGET= x64 .elif ${ARCH} == "i386" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="@comment " \ I386="" \ NOT_AARCH64="" FFMPEG_TARGET= ia32 .endif FFMPEG_BDIR= ${WRKSRC}/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND} FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET} # Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-znotext # TODO: -isystem, would be just as ugly as this approach, but more reliably # build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build electron, you should have around 2GB of memory" @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." @${ECHO_MSG} pre-fetch: @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \ then ${MKDIR} ${WRKDIR}; \ ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \ ${WRKDIR}/.yarnrc; \ ${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \ cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \ yarn --frozen-lockfile --ignore-scripts; \ ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \ -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \ -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ -e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \ -e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \ -e 's:flags=.*:flags=none:' \ -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \ ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \ @yarn-offline-cache.mtree; \ ${RM} -r ${WRKDIR}; \ fi post-extract: # Move extracted sources to appropriate locations ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC} ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_nan}-${NAN_VER} \ ${WRKSRC}/third_party/nan ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \ ${WRKSRC}/third_party/electron_node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ ${WRKSRC}/third_party/squirrel.mac ${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reclient_configs}-${ENGFLOW_RECLIENT_CONFIGS_VER} \ ${WRKSRC}/third_party/engflow-reclient-configs ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts # Install node modules for electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR} ${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc ${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak ${CP} ${FILESDIR}/package.json ${WRKSRC}/electron cd ${WRKSRC}/electron && \ ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline pre-patch: ${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC} # ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete # ${FIND} ${WRKSRC} -type f -name '*~' -print -delete pre-configure: # We used to remove bundled libraries to be sure that chromium uses # system libraries and not shipped ones. # cd ${WRKSRC} && ${PYTHON_CMD} \ #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ ./build/linux/unbundle/replace_gn_files.py --system-libraries \ dav1d flac fontconfig freetype harfbuzz-ng icu libdrm libevent \ libpng libusb libwebp libxml libxslt openh264 opus || ${FALSE} # Chromium uses an unreleased version of FFmpeg, so configure it cd ${WRKSRC}/third_party/ffmpeg && \ ${PYTHON_CMD} chromium/scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \ --config-only --branding=${FFMPEG_BRAND} cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h ${MKDIR} ${FFMPEG_CDIR} .for _e in config.h config.asm config_components.h libavcodec libavformat libavutil -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} .endfor do-configure: # GN generator bootstrapping and generating ninja files cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \ --args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}' # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node # Setup buildtools/freebsd @${MKDIR} ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd ${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip post-build: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS} post-build-DIST-on: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt do-install: ${MKDIR} ${STAGEDIR}${DATADIR} .for f in electron mksnapshot v8_context_snapshot_generator ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so .for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${MKDIR} ${STAGEDIR}${DATADIR}/locales ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales ${MKDIR} ${STAGEDIR}${DATADIR}/resources .for f in default_app.asar ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources .endfor cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR} ${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX} post-install-DIST-on: ${MKDIR} ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \ ${STAGEDIR}${DATADIR}/chromedriver do-test: # Note 1: "npm install" will run before actual tests are executed # Note 2: Xvfb or something similar is necessary for headless testing cd ${WRKSRC}/electron && \ ${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} LOCAL_GIT_DIRECTORY=${LOCALBASE} \ npm run test -- --ci .include diff --git a/devel/electron29/files/extra-patch-electron_shell_browser_electron__browser__context.h b/devel/electron29/files/extra-patch-electron_shell_browser_electron__browser__context.h deleted file mode 100644 index 945fd33f12a9..000000000000 --- a/devel/electron29/files/extra-patch-electron_shell_browser_electron__browser__context.h +++ /dev/null @@ -1,64 +0,0 @@ ---- electron/shell/browser/electron_browser_context.h.orig 2024-01-23 19:02:02 UTC -+++ electron/shell/browser/electron_browser_context.h -@@ -8,7 +8,6 @@ - #include - #include - #include --#include - #include - #include - #include "base/memory/raw_ptr.h" -@@ -79,22 +78,41 @@ class ElectronBrowserContext : public content::Browser - - // partition_id => browser_context - struct PartitionKey { -- PartitionKey(const std::string_view partition, bool in_memory) -- : type_{Type::Partition}, location_{partition}, in_memory_{in_memory} {} -+ enum class KeyType { Partition, FilePath }; -+ std::string location; -+ bool in_memory; -+ KeyType partition_type; - -+ PartitionKey(const std::string& partition, bool in_memory) -+ : location(partition), -+ in_memory(in_memory), -+ partition_type(KeyType::Partition) {} - explicit PartitionKey(const base::FilePath& file_path) -- : type_{Type::Path}, -- location_{file_path.AsUTF8Unsafe()}, -- in_memory_{false} {} -+ : location(file_path.AsUTF8Unsafe()), -+ in_memory(false), -+ partition_type(KeyType::FilePath) {} - -- friend auto operator<=>(const PartitionKey&, const PartitionKey&) = default; -+ bool operator<(const PartitionKey& other) const { -+ if (partition_type == KeyType::Partition) { -+ if (location == other.location) -+ return in_memory < other.in_memory; -+ return location < other.location; -+ } else { -+ if (location == other.location) -+ return false; -+ return location < other.location; -+ } -+ } - -- private: -- enum class Type { Partition, Path }; -- -- Type type_; -- std::string location_; -- bool in_memory_; -+ bool operator==(const PartitionKey& other) const { -+ if (partition_type == KeyType::Partition) { -+ return (location == other.location) && (in_memory < other.in_memory); -+ } else { -+ if (location == other.location) -+ return true; -+ return false; -+ } -+ } - }; - - using BrowserContextMap = diff --git a/devel/electron29/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h b/devel/electron29/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h deleted file mode 100644 index 2ae6219150ae..000000000000 --- a/devel/electron29/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h +++ /dev/null @@ -1,11 +0,0 @@ ---- electron/shell/browser/ui/gtk/menu_gtk.h.orig 2023-12-20 13:32:58 UTC -+++ electron/shell/browser/ui/gtk/menu_gtk.h -@@ -5,6 +5,8 @@ - #ifndef ELECTRON_SHELL_BROWSER_UI_GTK_MENU_GTK_H_ - #define ELECTRON_SHELL_BROWSER_UI_GTK_MENU_GTK_H_ - -+#include -+ - #include "base/functional/callback.h" - #include "base/memory/raw_ptr.h" - #include "ui/base/glib/scoped_gobject.h" diff --git a/devel/electron29/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h b/devel/electron29/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h deleted file mode 100644 index 21acde5bb351..000000000000 --- a/devel/electron29/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h +++ /dev/null @@ -1,10 +0,0 @@ ---- electron/shell/browser/ui/status_icon_gtk.h.orig 2023-12-20 13:31:04 UTC -+++ electron/shell/browser/ui/status_icon_gtk.h -@@ -6,6 +6,7 @@ - #define ELECTRON_SHELL_BROWSER_UI_STATUS_ICON_GTK_H_ - - #include -+#include - - #include "ui/base/glib/glib_integers.h" - #include "ui/base/glib/scoped_gobject.h" diff --git a/devel/electron30/Makefile b/devel/electron30/Makefile index f2cc8a789c57..4783af68861c 100644 --- a/devel/electron30/Makefile +++ b/devel/electron30/Makefile @@ -1,463 +1,456 @@ PORTNAME= electron DISTVERSIONPREFIX= v DISTVERSION= ${ELECTRON_VER:S/-beta./.b/} CATEGORIES= devel MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v30.1.1/:chromium \ https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \ https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts PKGNAMESUFFIX= ${ELECTRON_VER_MAJOR} DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \ ${CHROMIUM_NODE_MODULES_HASH}:chromium_node \ ${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts \ electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS WWW= https://electronjs.org/ LICENSE= BSD3CLAUSE LGPL21 MPL11 MIT LICENSE_COMB= multi LICENSE_FILE= ${WRKSRC}/electron/LICENSE ONLY_FOR_ARCHS= aarch64 amd64 i386 FETCH_DEPENDS= yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} EXTRACT_DEPENDS=yarn${NODEJS_SUFFIX}>0:www/yarn${NODEJS_SUFFIX} PATCH_DEPENDS= git:devel/git \ jq:textproc/jq BUILD_DEPENDS= gperf:devel/gperf \ yasm:devel/yasm \ ${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \ rustc:lang/rust \ ${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libdbus-1.so:devel/dbus \ libicuuc.so:devel/icu \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libre2.so:devel/re2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libva.so:multimedia/libva \ libopenh264.so:multimedia/openh264 \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils TEST_DEPENDS= git:devel/git \ ${PYTHON_PKGNAMEPREFIX}python-dbusmock>0:devel/py-python-dbusmock@${PY_FLAVOR} \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} USES= bison compiler:c++17-lang cpe gettext-tools gl gmake gnome \ iconv:wchar_t jpeg localbase:ldflags ninja nodejs:20,build \ pkgconfig python:build,test shebangfix tar:xz xorg CPE_VENDOR= electronjs USE_GITHUB= yes GH_TAGNAME= ${DISTVERSIONPREFIX}${ELECTRON_VER} GH_TUPLE= nodejs:node:v${NODE_VER}:node \ nodejs:nan:${NAN_VER}:nan \ Squirrel:Squirrel.Mac:${SQUIRREL_MAC_VER}:squirrel_mac \ ReactiveCocoa:ReactiveObjC:${REACTIVEOBJC_VER}:reactiveobjc \ Mantle:Mantle:${MANTLE_VER}:mantle \ EngFlow:reclient-configs:${ENGFLOW_RECLIENT_CONFIGS_VER}:reclient_configs USE_GL= gbm gl glesv2 USE_GNOME= atk cairo gdkpixbuf2 gtk30 libxml2 libxslt pango USE_LDCONFIG= ${DATADIR} USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \ xrender xscrnsaver xtst SHEBANG_FILES= chrome/tools/build/linux/chrome-wrapper buildtools/linux64/clang-format MAKE_ARGS= -C out/${BUILDTYPE} MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include ALL_TARGET= electron electron:node_headers POST_BUILD_TARGETS= licenses version POST_BUILD_DIST_TARGETS=electron_dist_zip electron_chromedriver_zip \ electron_mksnapshot_zip DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} BINARY_ALIAS= python3=${PYTHON_CMD} NO_WRKSUBDIR= yes WRKSRC_SUBDIR= src GN_ARGS+= clang_use_chrome_plugins=false \ enable_backup_ref_ptr_support=false \ enable_hangout_services_extension=true \ enable_log_error_not_reached=true \ enable_nacl=false \ enable_remoting=false \ fatal_linker_warnings=false \ icu_use_data_file=false \ is_clang=true \ optimize_webui=true \ toolkit_views=true \ treat_warnings_as_errors=false \ use_allocator_shim=false \ use_aura=true \ use_custom_libcxx=true \ use_custom_libunwind=true \ use_lld=true \ use_partition_alloc=true \ use_partition_alloc_as_malloc=false \ use_sysroot=false \ use_system_freetype=false \ use_system_harfbuzz=true \ use_system_libffi=true \ use_system_libjpeg=true \ use_udev=false \ chrome_pgo_phase=0 \ extra_cflags="${CFLAGS}" \ extra_cxxflags="${CXXFLAGS}" \ extra_ldflags="${LDFLAGS}" \ ffmpeg_branding="${FFMPEG_BRAND}" \ override_electron_version="${ELECTRON_VER}" # TODO: investigate building with these options: # use_system_minigbm GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles PLIST_SUB= ELECTRON_VER=${ELECTRON_VER} \ ELECTRON_VER_MAJOR=${ELECTRON_VER_MAJOR} OPTIONS_DEFINE= CODECS CUPS DEBUG DIST DRIVER KERBEROS LTO PIPEWIRE OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE SNDIO OPTIONS_EXCLUDE_aarch64=LTO OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO SNDIO OPTIONS_RADIO= KERBEROS OPTIONS_RADIO_KERBEROS= HEIMDAL HEIMDAL_BASE MIT OPTIONS_SUB= yes CODECS_DESC= Compile and enable patented codecs like H.264 DIST_DESC= Build distribution zip files DRIVER_DESC= Install chromedriver HEIMDAL_BASE_DESC= Heimdal Kerberos (base) HEIMDAL_DESC= Heimdal Kerberos (security/heimdal) MIT_DESC= MIT Kerberos (security/krb5) PIPEWIRE_DESC= Screen capture via PipeWire ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins \ alsa-lib>=1.1.1_1:audio/alsa-lib ALSA_VARS= GN_ARGS+=use_alsa=true ALSA_VARS_OFF= GN_ARGS+=use_alsa=false CODECS_VARS= GN_ARGS+=proprietary_codecs=true \ FFMPEG_BRAND="Chrome" CODECS_VARS_OFF= GN_ARGS+=proprietary_codecs=false \ FFMPEG_BRAND="Chromium" CUPS_LIB_DEPENDS= libcups.so:print/cups CUPS_VARS= GN_ARGS+=use_cups=true CUPS_VARS_OFF= GN_ARGS+=use_cups=false DEBUG_BUILD_DEPENDS= esbuild:devel/esbuild DEBUG_VARS= BUILDTYPE=Debug \ GN_FILE=testing.gn \ GN_ARGS+=is_debug=true \ GN_ARGS+=is_component_build=false \ GN_ARGS+=symbol_level=1 \ GN_BOOTSTRAP_FLAGS+=--debug \ WANTSPACE="21 GB" DEBUG_VARS_OFF= BUILDTYPE=Release \ GN_FILE=release.gn \ GN_ARGS+=blink_symbol_level=0 \ GN_ARGS+=is_debug=false \ GN_ARGS+=is_official_build=true \ GN_ARGS+=symbol_level=0 \ WANTSPACE="14 GB" DIST_IMPLIES= DRIVER DRIVER_MAKE_ARGS= chromedriver HEIMDAL_LIB_DEPENDS= libkrb5.so.26:security/heimdal KERBEROS_VARS= GN_ARGS+=use_kerberos=true KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false LTO_VARS= GN_ARGS+=use_thin_lto=true \ GN_ARGS+=thin_lto_enable_optimizations=true \ WANTSPACE="14 GB" LTO_VARS_OFF= GN_ARGS+=use_thin_lto=false MIT_LIB_DEPENDS= libkrb5.so.3:security/krb5 PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_VARS= GN_ARGS+=rtc_use_pipewire=true \ GN_ARGS+=rtc_link_pipewire=true PIPEWIRE_VARS_OFF= GN_ARGS+=rtc_use_pipewire=false \ GN_ARGS+=rtc_link_pipewire=false PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false # With SNDIO=on we exclude audio_manager_linux from the build (see # media/audio/BUILD.gn) and use audio_manager_openbsd which does not # support falling back to ALSA or PulseAudio. SNDIO_PREVENTS= ALSA PULSEAUDIO SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_VARS= GN_ARGS+=use_sndio=true SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER CHROMIUM_VER= 124.0.6367.243 # See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH CHROMIUM_NODE_MODULES_HASH= 97a0b3c4c39cf05de1eafb6ffdec0fddd643f0a2 # See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH CHROMIUM_TEST_FONTS_HASH= 336e775eec536b2d785cc80eff6ac39051931286 # See ${WRKSRC}/electron/DEPS for NODE_VER NODE_VER= 20.14.0 # See ${WRKSRC}/electron/DEPS for NAN_VER NAN_VER= e14bdcd1f72d62bca1d541b66da43130384ec213 # See ${WRKSRC}/electron/DEPS for SQUIRREL_MAC_VER SQUIRREL_MAC_VER= 0e5d146ba13101a1302d59ea6e6e0b3cace4ae38 # See ${WRKSRC}/electron/DEPS for REACTIVEOBJC_VER REACTIVEOBJC_VER= 74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76 # See ${WRKSRC}/electron/DEPS for MANTLE_VER MANTLE_VER= 78d3966b3c331292ea29ec38661b25df0a245948 # See ${WRKSRC}/electron/DEPS for ENGFLOW_RECLIENT_CONFIGS_VER ENGFLOW_RECLIENT_CONFIGS_VER= 955335c30a752e9ef7bff375baab5e0819b6c00d YARN_TIMESTAMP= 61171200 .include "Makefile.version" .include -# libc++ < 16 needs these extra patches -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302507 -EXTRA_PATCHES= ${PATCHDIR}/extra-patch-electron_shell_browser_electron__browser__context.h \ - ${PATCHDIR}/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h \ - ${PATCHDIR}/extra-patch-electron_shell_browser_ui_status__icon__gtk.h -.endif - .if ${PORT_OPTIONS:MHEIMDAL_BASE} && !exists(/usr/lib/libkrb5.so) IGNORE= you have selected HEIMDAL_BASE but do not have Heimdal installed in base .endif .if ${COMPILER_VERSION} < 170 LLVM_DEFAULT= 17 BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} BINARY_ALIAS+= cpp=${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} \ cc=${LOCALBASE}/bin/clang${LLVM_DEFAULT} \ c++=${LOCALBASE}/bin/clang++${LLVM_DEFAULT} \ ar=${LOCALBASE}/bin/llvm-ar${LLVM_DEFAULT} \ nm=${LOCALBASE}/bin/llvm-nm${LLVM_DEFAULT} \ ld=${LOCALBASE}/bin/ld.lld${LLVM_DEFAULT} .else BINARY_ALIAS+= ar=/usr/bin/llvm-ar \ nm=/usr/bin/llvm-nm .endif CFLAGS+= -Wno-error=implicit-function-declaration .if ${ARCH} == "aarch64" PLIST_SUB+= AARCH64="" \ AMD64="@comment " \ I386="@comment " \ NOT_AARCH64="@comment " FFMPEG_TARGET= arm64 .elif ${ARCH} == "amd64" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="" \ I386="@comment " \ NOT_AARCH64="" FFMPEG_TARGET= x64 .elif ${ARCH} == "i386" BUILD_DEPENDS+= nasm:devel/nasm PLIST_SUB+= AARCH64="@comment " \ AMD64="@comment " \ I386="" \ NOT_AARCH64="" FFMPEG_TARGET= ia32 .endif FFMPEG_BDIR= ${WRKSRC}/build.${FFMPEG_TARGET}.freebsd/${FFMPEG_BRAND} FFMPEG_CDIR= ${WRKSRC}/third_party/ffmpeg/chromium/config/${FFMPEG_BRAND}/freebsd/${FFMPEG_TARGET} # Allow relocations against read-only segments (override lld default) LDFLAGS_i386= -Wl,-znotext # TODO: -isystem, would be just as ugly as this approach, but more reliably # build would fail without C_INCLUDE_PATH/CPLUS_INCLUDE_PATH env var set. MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \ CPLUS_INCLUDE_PATH=${LOCALBASE}/include # rust RUSTC_VERSION!= rustc -V 2>/dev/null || true MAKE_ENV+= RUSTC_BOOTSTRAP=1 GN_ARGS+= enable_rust=true \ rust_sysroot_absolute="${LOCALBASE}" \ rustc_version="${RUSTC_VERSION}" pre-everything:: @${ECHO_MSG} @${ECHO_MSG} "To build electron, you should have around 2GB of memory" @${ECHO_MSG} "and around ${WANTSPACE} of free disk space." @${ECHO_MSG} pre-fetch: @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \ then ${MKDIR} ${WRKDIR}; \ ${ECHO_CMD} 'yarn-offline-mirror "./yarn-offline-cache"' >> \ ${WRKDIR}/.yarnrc; \ ${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \ cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \ yarn --frozen-lockfile --ignore-scripts; \ ${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \ -e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \ -e 's:\([gu]id\)=[0-9]*:\1=0:g' \ -e 's:mode=\([0-9]\)7[0-9][0-9]:mode=\1755:' \ -e 's:mode=\([0-9]\)6[0-9][0-9]:mode=\1644:' \ -e 's:flags=.*:flags=none:' \ -e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \ ${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \ @yarn-offline-cache.mtree; \ ${RM} -r ${WRKDIR}; \ fi post-extract: # Move extracted sources to appropriate locations ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC} ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_nan}-${NAN_VER} \ ${WRKSRC}/third_party/nan ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \ ${WRKSRC}/third_party/electron_node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_squirrel_mac}-${SQUIRREL_MAC_VER} \ ${WRKSRC}/third_party/squirrel.mac ${MKDIR} ${WRKSRC}/third_party/squirrel.mac/vendor ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reactiveobjc}-${REACTIVEOBJC_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \ ${WRKSRC}/third_party/squirrel.mac/vendor/Mantle ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_reclient_configs}-${ENGFLOW_RECLIENT_CONFIGS_VER} \ ${WRKSRC}/third_party/engflow-reclient-configs ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts # Install node modules for electron ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR} ${ECHO_CMD} 'yarn-offline-mirror "../../../yarn-offline-cache"' >> ${WRKSRC}/electron/.yarnrc ${MV} ${WRKSRC}/electron/package.json ${WRKSRC}/electron/package.json.bak ${CP} ${FILESDIR}/package.json ${WRKSRC}/electron cd ${WRKSRC}/electron && \ ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline pre-patch: ${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC} # ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete # ${FIND} ${WRKSRC} -type f -name '*~' -print -delete pre-configure: # We used to remove bundled libraries to be sure that chromium uses # system libraries and not shipped ones. # cd ${WRKSRC} && ${PYTHON_CMD} \ #./build/linux/unbundle/remove_bundled_libraries.py [list of preserved] cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \ ./build/linux/unbundle/replace_gn_files.py --system-libraries \ dav1d flac fontconfig freetype harfbuzz-ng icu libdrm libevent \ libpng libusb libwebp libxml libxslt openh264 opus || ${FALSE} # Chromium uses an unreleased version of FFmpeg, so configure it cd ${WRKSRC}/third_party/ffmpeg && \ ${PYTHON_CMD} chromium/scripts/build_ffmpeg.py freebsd ${FFMPEG_TARGET} \ --config-only --branding=${FFMPEG_BRAND} cd ${FFMPEG_BDIR} && ${GMAKE} ffversion.h ${MKDIR} ${FFMPEG_CDIR} .for _e in config.h config.asm config_components.h libavcodec libavformat libavutil -${CP} -pR ${FFMPEG_BDIR}/${_e} ${FFMPEG_CDIR} .endfor do-configure: # GN generator bootstrapping and generating ninja files cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \ READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \ ./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS} cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \ --args='import("//electron/build/args/${GN_FILE}") ${GN_ARGS}' # Setup nodejs dependency @${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin ${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd/bin/node # Setup buildtools/freebsd @${MKDIR} ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/buildtools/linux64/clang-format ${WRKSRC}/buildtools/freebsd ${LN} -sf ${WRKSRC}/out/${BUILDTYPE}/gn ${WRKSRC}/buildtools/freebsd ${LN} -sf /usr/bin/strip ${WRKSRC}/buildtools/freebsd/strip post-build: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS} post-build-DIST-on: cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ ${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS} cd ${WRKSRC}/out/${BUILDTYPE} && \ ${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \ ${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt do-install: ${MKDIR} ${STAGEDIR}${DATADIR} .for f in electron mksnapshot v8_context_snapshot_generator ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in libEGL.so libGLESv2.so libffmpeg.so libvk_swiftshader.so ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/libvulkan.so.1 ${STAGEDIR}${DATADIR}/libvulkan.so .for f in LICENSE LICENSES.chromium.html snapshot_blob.bin v8_context_snapshot.bin version vk_swiftshader_icd.json ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor .for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR} .endfor ${MKDIR} ${STAGEDIR}${DATADIR}/locales ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales ${MKDIR} ${STAGEDIR}${DATADIR}/resources .for f in default_app.asar ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources .endfor cd ${WRKSRC}/out/${BUILDTYPE}/gen && ${COPYTREE_SHARE} node_headers ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/electron/buildflags ${STAGEDIR}${DATADIR} cd ${WRKSRC}/out/${BUILDTYPE} && ${COPYTREE_SHARE} gen/v8/embedded.S ${STAGEDIR}${DATADIR} ${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin/electron${PKGNAMESUFFIX} post-install-DIST-on: ${MKDIR} ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases ${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases post-install-DRIVER-on: ${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver.unstripped \ ${STAGEDIR}${DATADIR}/chromedriver do-test: # Note 1: "npm install" will run before actual tests are executed # Note 2: Xvfb or something similar is necessary for headless testing cd ${WRKSRC}/electron && \ ${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} LOCAL_GIT_DIRECTORY=${LOCALBASE} \ npm run test -- --ci .include diff --git a/devel/electron30/files/extra-patch-electron_shell_browser_electron__browser__context.h b/devel/electron30/files/extra-patch-electron_shell_browser_electron__browser__context.h deleted file mode 100644 index 945fd33f12a9..000000000000 --- a/devel/electron30/files/extra-patch-electron_shell_browser_electron__browser__context.h +++ /dev/null @@ -1,64 +0,0 @@ ---- electron/shell/browser/electron_browser_context.h.orig 2024-01-23 19:02:02 UTC -+++ electron/shell/browser/electron_browser_context.h -@@ -8,7 +8,6 @@ - #include - #include - #include --#include - #include - #include - #include "base/memory/raw_ptr.h" -@@ -79,22 +78,41 @@ class ElectronBrowserContext : public content::Browser - - // partition_id => browser_context - struct PartitionKey { -- PartitionKey(const std::string_view partition, bool in_memory) -- : type_{Type::Partition}, location_{partition}, in_memory_{in_memory} {} -+ enum class KeyType { Partition, FilePath }; -+ std::string location; -+ bool in_memory; -+ KeyType partition_type; - -+ PartitionKey(const std::string& partition, bool in_memory) -+ : location(partition), -+ in_memory(in_memory), -+ partition_type(KeyType::Partition) {} - explicit PartitionKey(const base::FilePath& file_path) -- : type_{Type::Path}, -- location_{file_path.AsUTF8Unsafe()}, -- in_memory_{false} {} -+ : location(file_path.AsUTF8Unsafe()), -+ in_memory(false), -+ partition_type(KeyType::FilePath) {} - -- friend auto operator<=>(const PartitionKey&, const PartitionKey&) = default; -+ bool operator<(const PartitionKey& other) const { -+ if (partition_type == KeyType::Partition) { -+ if (location == other.location) -+ return in_memory < other.in_memory; -+ return location < other.location; -+ } else { -+ if (location == other.location) -+ return false; -+ return location < other.location; -+ } -+ } - -- private: -- enum class Type { Partition, Path }; -- -- Type type_; -- std::string location_; -- bool in_memory_; -+ bool operator==(const PartitionKey& other) const { -+ if (partition_type == KeyType::Partition) { -+ return (location == other.location) && (in_memory < other.in_memory); -+ } else { -+ if (location == other.location) -+ return true; -+ return false; -+ } -+ } - }; - - using BrowserContextMap = diff --git a/devel/electron30/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h b/devel/electron30/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h deleted file mode 100644 index 2ae6219150ae..000000000000 --- a/devel/electron30/files/extra-patch-electron_shell_browser_ui_gtk_menu__gtk.h +++ /dev/null @@ -1,11 +0,0 @@ ---- electron/shell/browser/ui/gtk/menu_gtk.h.orig 2023-12-20 13:32:58 UTC -+++ electron/shell/browser/ui/gtk/menu_gtk.h -@@ -5,6 +5,8 @@ - #ifndef ELECTRON_SHELL_BROWSER_UI_GTK_MENU_GTK_H_ - #define ELECTRON_SHELL_BROWSER_UI_GTK_MENU_GTK_H_ - -+#include -+ - #include "base/functional/callback.h" - #include "base/memory/raw_ptr.h" - #include "ui/base/glib/scoped_gobject.h" diff --git a/devel/electron30/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h b/devel/electron30/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h deleted file mode 100644 index 21acde5bb351..000000000000 --- a/devel/electron30/files/extra-patch-electron_shell_browser_ui_status__icon__gtk.h +++ /dev/null @@ -1,10 +0,0 @@ ---- electron/shell/browser/ui/status_icon_gtk.h.orig 2023-12-20 13:31:04 UTC -+++ electron/shell/browser/ui/status_icon_gtk.h -@@ -6,6 +6,7 @@ - #define ELECTRON_SHELL_BROWSER_UI_STATUS_ICON_GTK_H_ - - #include -+#include - - #include "ui/base/glib/glib_integers.h" - #include "ui/base/glib/scoped_gobject.h" diff --git a/devel/hyprlang/Makefile b/devel/hyprlang/Makefile index 8c7cc69a4bcb..1c5ba4dc7cae 100644 --- a/devel/hyprlang/Makefile +++ b/devel/hyprlang/Makefile @@ -1,51 +1,28 @@ PORTNAME= hyprlang DISTVERSIONPREFIX= v DISTVERSION= 0.5.2 CATEGORIES= devel MAINTAINER= jbeich@FreeBSD.org COMMENT= Library to parse hypr config files WWW= https://hyprland.org/hyprlang LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/LICENSE USES= cmake:testing compiler:c++11-lib USE_GITHUB= yes USE_LDCONFIG= yes GH_ACCOUNT= hyprwm PLIST_FILES= include/${PORTNAME}.hpp \ lib/lib${PORTNAME}.so \ lib/lib${PORTNAME}.so.2 \ lib/lib${PORTNAME}.so.${PORTVERSION} \ libdata/pkgconfig/${PORTNAME}.pc # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/expected) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/devel/hyprlang/distinfo b/devel/hyprlang/distinfo index bc5e5b63a339..23a75e91f0a1 100644 --- a/devel/hyprlang/distinfo +++ b/devel/hyprlang/distinfo @@ -1,5 +1,3 @@ TIMESTAMP = 1716458409 SHA256 (hyprwm-hyprlang-v0.5.2_GH0.tar.gz) = 66a1f87634c8ecdeb67d7ccc499a3fc1c19b064a098b103be042751e7430b5cc SIZE (hyprwm-hyprlang-v0.5.2_GH0.tar.gz) = 56383 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/devel/hyprutils/Makefile b/devel/hyprutils/Makefile index 13df8f71d25d..44c42ba0021b 100644 --- a/devel/hyprutils/Makefile +++ b/devel/hyprutils/Makefile @@ -1,48 +1,25 @@ PORTNAME= hyprutils DISTVERSIONPREFIX= v DISTVERSION= 0.1.5 CATEGORIES= devel MAINTAINER= jbeich@FreeBSD.org COMMENT= Hyprland utilities library used across the ecosystem WWW= https://github.com/hyprwm/hyprutils LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE USES= compiler:c++11-lib cmake:testing pkgconfig xorg USE_GITHUB= yes USE_LDCONFIG= yes USE_XORG= pixman GH_ACCOUNT= hyprwm PLIST_SUB= VERSION=${DISTVERSION:C/-.*//} # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/expected) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/devel/hyprutils/distinfo b/devel/hyprutils/distinfo index ad3ff245bc92..0195be77819e 100644 --- a/devel/hyprutils/distinfo +++ b/devel/hyprutils/distinfo @@ -1,5 +1,3 @@ TIMESTAMP = 1719316102 SHA256 (hyprwm-hyprutils-v0.1.5_GH0.tar.gz) = 60cce1b4160a4e5383fa0ff665c6bf49b54cfb387dc8a52229abfc367000b0be SIZE (hyprwm-hyprutils-v0.1.5_GH0.tar.gz) = 17974 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/devel/ptlib/Makefile b/devel/ptlib/Makefile index 994d0db9beb8..06c436a44bcd 100644 --- a/devel/ptlib/Makefile +++ b/devel/ptlib/Makefile @@ -1,150 +1,150 @@ PORTNAME= ptlib PORTVERSION= 2.10.11 PORTREVISION= 6 CATEGORIES= devel MASTER_SITES= GNOME MAINTAINER= gnome@FreeBSD.org COMMENT= Cross platform C++ library, used by OPAL WWW= http://www.opalvoip.org LICENSE= MPL10 LIB_DEPENDS= libexpat.so:textproc/expat2 USES= autoreconf:build bison:wrapper compiler:c11 gmake localbase:ldflags \ pathfix pkgconfig ssl tar:xz BROKEN_SSL= openssl openssl31 BROKEN_SSL_REASON= Uses OpenSSL 3.0.0 deprecated BIO_s_file_internal USE_LDCONFIG= yes GNU_CONFIGURE= yes CONFIGURE_ARGS=--disable-lua \ --disable-sasl \ --enable-audio \ --enable-ipv6 \ --enable-exceptions \ --enable-oss \ --enable-plugins # --with-expat-dir="${LOCALBASE}" CONFIGURE_ENV= OPENSSL_CFLAGS="-I${OPENSSLINC}" \ OPENSSL_LIBS="-L${OPENSSLLIB} -lssl" ALL_TARGET= optshared CPPFLAGS+= -I${OPENSSLINC} LDFLAGS+= -L${OPENSSLLIB} CONFLICTS= pwlib-1.* PLIST_SUB+= PORTVERSION=${PORTVERSION} \ PVERSION_MAJOR=${PVERSION_MAJOR} \ PVERSION_MINOR=${PVERSION_MINOR} OPTIONS_DEFINE= DEBUG BSDVIDEO ODBC ALSA JABBER V4L SDL LDAP PULSEAUDIO OPTIONS_DEFAULT=BSDVIDEO SDL V4L JABBER OPTIONS_EXCLUDE_FreeBSD_13= BSDVIDEO OPTIONS_EXCLUDE_FreeBSD_14= BSDVIDEO OPTIONS_SUB= yes BSDVIDEO_DESC= BSD video support ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib ALSA_CONFIGURE_ENABLE=alsa BSDVIDEO_CONFIGURE_ENABLE=bsdvideo BSDVIDEO_VARS= PTLIB_VIDEO=1 DEBUG_ALL_TARGET= debugshared JABBER_CONFIGURE_ON=--enable-jabber JABBER_VARS= PTLIB_VIDEO=1 LDAP_USES= ldap LDAP_CONFIGURE_ENABLE=openldap ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_CONFIGURE_ENABLE= odbc PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CONFIGURE_ENABLE=pulse SDL_USES= sdl SDL_USE= SDL=sdl SDL_CONFIGURE_ENABLE=sdl V4L_BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat V4L_LIB_DEPENDS= libv4l2.so:multimedia/libv4l V4L_CONFIGURE_ENABLE= v4l v4l2 V4L_VARS= PTLIB_VIDEO=1 PVERSION_MAJOR= ${PORTVERSION:C/.[0-9]+.[0-9]+.//} PVERSION_MINOR= ${PORTVERSION:C/.[0-9]+$//g} .include .if (${OPSYS} == FreeBSD && ${SSL_DEFAULT} == base) || ${SSL_DEFAULT} == openssl EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_ptclib_pssl.cxx-openssl111 .else EXTRA_PATCHES+= ${FILESDIR}/extra-patch-src_ptclib_pssl.cxx .endif .if defined(PTLIB_VIDEO) CONFIGURE_ARGS+=--enable-video --enable-vidfile PLIST_SUB+= VIDEODIR="" .else CONFIGURE_ARGS+=--disable-video --disable-vidfile PLIST_SUB+= VIDEODIR="@comment " .endif # ONLY FOR THE BRAVE! # If someone owns a firewire(4) video device and wants to use it for # video-conferencing purposes, please download the files: # libraw1394.shar.gz, libavc1394.shar.gz and libdc1394.shar.gz from # ftp://ftp.frm2.tum.de/pub/jpulz/FreeBSD/ports/ # Extract the files in ${PORTSDIR}/devel and uncomment the following lines. # ##enable libavc1394 #.if defined(WITH_AVC1394) #LIB_DEPENDS+= avc1394.2:devel/libavc1394 \ # dv.4:multimedia/libdv #CONFIGURE_ARGS+= --enable-avc #PLIST_SUB+= AVC1394="" #.else CONFIGURE_ARGS+= --disable-avc PLIST_SUB+= AVC1394="@comment " #.endif # ##enable libdc1394 #.if defined(WITH_DC1394) #LIB_DEPENDS+= dc1394.2[0-9]:multimedia/libdc1394 #CONFIGURE_ARGS+= --enable-dc #PLIST_SUB+= DC1394="" #.else CONFIGURE_ARGS+= --disable-dc #PLIST_SUB+= DC1394="@comment " #.endif .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CPPFLAGS+= -Dregister= -Wno-error=dynamic-exception-spec .endif post-patch: @${REINPLACE_CMD} -e 's/RTF_WASCLONED/0x20000/' ${WRKSRC}/src/ptlib/unix/socket.cxx -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|auto_ptr|unique_ptr|' \ ${WRKSRC}/include/ptlib/psharedptr.h @${REINPLACE_CMD} -e 's|public binary_function|public __binary_function|' \ ${WRKSRC}/include/ptlib/pprocess.h .endif pre-configure: (cd ${WRKSRC}/plugins/ && ${AUTORECONF} -fi) post-install: ${LN} -sf libpt.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libpt.so.${PVERSION_MAJOR} ${LN} -sf libpt.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libpt.so.${PVERSION_MINOR} @${CHMOD} 0755 ${STAGEDIR}${PREFIX}/lib/libpt.so.${PORTVERSION} \ ${STAGEDIR}${PREFIX}/lib/ptlib-${PORTVERSION}/devices/*/*.so @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpt.so.${PORTVERSION} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ptlib-${PORTVERSION}/devices/*/*.so post-install-DEBUG-on: ${LN} -sf libpt_d.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libpt_d.so.${PVERSION_MAJOR} ${LN} -sf libpt_d.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libpt_d.so.${PVERSION_MINOR} .include diff --git a/devel/py-threadpoolctl/Makefile b/devel/py-threadpoolctl/Makefile index a2cf3606055f..9c53ae9fd3b3 100644 --- a/devel/py-threadpoolctl/Makefile +++ b/devel/py-threadpoolctl/Makefile @@ -1,27 +1,21 @@ PORTNAME= threadpoolctl PORTVERSION= 3.5.0 CATEGORIES= devel python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Thread-pool controls WWW= https://github.com/joblib/threadpoolctl LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}flit-core>=2<4:devel/py-flit-core@${PY_FLAVOR} USES= python USE_PYTHON= autoplist concurrent pep517 pytest NO_ARCH= yes -.include - -.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1302509 -IGNORE= does not run on FreeBSD 13.2 or earlier due to handling of dynamically loaded libc -.endif - .include diff --git a/devel/qjson/Makefile b/devel/qjson/Makefile index 71b26c925542..028afa81d9d5 100644 --- a/devel/qjson/Makefile +++ b/devel/qjson/Makefile @@ -1,47 +1,47 @@ PORTNAME= qjson DISTVERSION= 0.9.0 PORTREVISION= 7 CATEGORIES= devel PKGNAMESUFFIX= -qt5 MAINTAINER= kde@FreeBSD.org COMMENT= Library to manage JSON objects with Qt WWW= https://qjson.sourceforge.net/ LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING.lib USES= cmake compiler:c++11-lang pathfix qt:5 USE_GITHUB= yes GH_ACCOUNT= flavio USE_LDCONFIG= yes USE_QT= core buildtools:build qmake:build CMAKE_OFF= QT4_BUILD QT_SUFFIX= -qt5 _DOCSDIR= ${DOCSDIR}${QT_SUFFIX} DOCSDIR_REL= ${_DOCSDIR:S,^${PREFIX}/,,} PLIST_SUB+= QT_SUFFIX="${QT_SUFFIX}" \ PORTVERSION="${PORTVERSION}" OPTIONS_DEFINE= DOXYGEN OPTIONS_SUB= yes DOXYGEN_BUILD_DEPENDS= doxygen:devel/doxygen post-build-DOXYGEN-on: cd ${WRKSRC}/doc && doxygen post-install-DOXYGEN-on: ${MKDIR} ${STAGEDIR}${_DOCSDIR} cd ${WRKSRC}/doc/html && ${COPYTREE_SHARE} . ${STAGEDIR}${_DOCSDIR} .include # Clang 16 defaults to building in C++17, and throws an error when the # `register' keyword is used. Make clang just ignore the keyword instead. -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CXXFLAGS+= -Wno-register .endif .include diff --git a/devel/spirv-llvm-translator/Makefile b/devel/spirv-llvm-translator/Makefile index 1c34bc354ecb..17adef65c074 100644 --- a/devel/spirv-llvm-translator/Makefile +++ b/devel/spirv-llvm-translator/Makefile @@ -1,59 +1,59 @@ PORTNAME= spirv-llvm-translator DISTVERSIONPREFIX= v DISTVERSION= ${DISTVERSION_${FLAVOR}} DISTVERSION_llvm18= 18.1.2 DISTVERSION_llvm17= 17.0.2 DISTVERSION_llvm16= 16.0.2 DISTVERSION_llvm15= 15.0.2 DISTVERSION_llvm14= 14.0.2 DISTVERSION_llvm13= 13.0.1 DISTVERSION_llvm12= 12.0.1 DISTVERSION_llvm11= 11.0.1 CATEGORIES= devel PKGNAMESUFFIX= -${FLAVOR} MAINTAINER= jbeich@FreeBSD.org COMMENT= Bi-directional translation between SPIR-V and LLVM IR WWW= https://github.com/KhronosGroup/SPIRV-LLVM-Translator LICENSE= NCSA LICENSE_FILE= ${WRKSRC}/LICENSE.TXT LIB_DEPENDS= libLLVM-${FLAVOR:S/llvm//}.so:devel/${FLAVOR} FLAVORS= ${18 17 16 15 14 13 12 11:L:S/^/llvm/} USES= cmake compiler:c++11-lib USE_GITHUB= yes USE_LDCONFIG= ${PREFIX}/${FLAVOR}/lib GH_ACCOUNT= KhronosGroup GH_PROJECT= SPIRV-LLVM-Translator GH_TUPLE= ${${FLAVOR:S/llvm//}<13:?:KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-332-g1c6bb27:headers/projects/SPIRV-Headers} DISTINFO_FILE= ${.CURDIR}/distinfo.${FLAVOR} -CXXFLAGS+= ${${FLAVOR:S/llvm//} < 16 && ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160:?-Wno-enum-constexpr-conversion:} +CXXFLAGS+= ${${FLAVOR:S/llvm//} < 16 && ${COMPILER_TYPE} == clang:?-Wno-enum-constexpr-conversion:} CMAKE_ON= BUILD_SHARED_LIBS LLVM_BUILD_TOOLS LLVM_TOOL_SPIRV_HEADERS_BUILD CMAKE_ARGS= -DLLVM_DIR:PATH="${LOCALBASE}/${FLAVOR}" CMAKE_ARGS+= ${${FLAVOR:S/llvm//}==11:?-DBASE_LLVM_VERSION=11.0:} CMAKE_INSTALL_PREFIX= ${PREFIX}/${FLAVOR} _PLIST_FILES= bin/llvm-spirv \ include/LLVMSPIRVLib/LLVMSPIRVExtensions.inc \ include/LLVMSPIRVLib/LLVMSPIRVLib.h \ include/LLVMSPIRVLib/LLVMSPIRVOpts.h \ lib/libLLVMSPIRVLib.so \ lib/libLLVMSPIRVLib.so.${SOVERSION} \ libdata/pkgconfig/LLVMSPIRVLib.pc PLIST_FILES= ${_PLIST_FILES:S,^,${FLAVOR}/,} SOVERSION= ${${FLAVOR:S/llvm//}<18:?${DISTVERSION:R:R}:${DISTVERSION:R}} post-patch: @${REINPLACE_CMD} -e '/pkgconfig/s/lib/&data/' \ ${WRKSRC}/CMakeLists.txt .if !defined(DEFAULT_MAKESUM) makesum: . for f in ${FLAVORS} ${MAKE} -C${.CURDIR} FLAVOR=$f DEFAULT_MAKESUM=1 ${.TARGET} . endfor .endif .include diff --git a/devel/tcl-trf/Makefile b/devel/tcl-trf/Makefile index 41d0aedd7b87..a96cf4aec12a 100644 --- a/devel/tcl-trf/Makefile +++ b/devel/tcl-trf/Makefile @@ -1,55 +1,55 @@ PORTNAME= Trf PORTVERSION= 2.1.4 PORTREVISION= 6 CATEGORIES= devel tcl MASTER_SITES= SF/tcltrf/tcltrf/${PORTVERSION} PKGNAMEPREFIX= tcl- DISTNAME= trf${PORTVERSION} MAINTAINER= ports@virtual-estates.net COMMENT= Data conversion, digests, compression, error-correction for Tcl WWW= https://wiki.tcl-lang.org/479 LICENSE= Tcl_Trf_License LICENSE_NAME= Tcl Trf License LICENSE_FILE= ${WRKSRC}/doc/license.terms LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept TEST_DEPENDS= ${LOCALBASE}/lib/Memchan2.3/libMemchan.so.1:devel/tcl-memchan USES+= tcl:tea tar:bzip2 compiler USE_LDCONFIG= ${PREFIX}/lib/Trf DDIR= ${PREFIX}/lib/tcl${TCL_VER}/Trf CFLAGS+= -Wall -Werror MAKE_ENV+= INSTALL_DATA="${INSTALL_DATA}" REINPLACE_ARGS= -i "" CONFIGURE_ARGS+=--enable-static-zlib --enable-static-bzlib \ --enable-static-md5 CONFIGURE_ENV+= CC=${CC} do-install: ${MKDIR} ${STAGEDIR}${PREFIX}/lib/Trf ${INSTALL_DATA} ${WRKSRC}/libTrf${PORTVERSION}.so \ ${WRKSRC}/pkgIndex.tcl ${STAGEDIR}${PREFIX}/lib/Trf/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/man/mann/ for m in ${WRKSRC}/doc/man/*.n ; \ do \ ${INSTALL_MAN} $$m ${STAGEDIR}${PREFIX}/share/man/mann/ ;\ done ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/Trf/libTrf${PORTVERSION}.so do-test: cd ${WRKSRC} && ${SETENV} TCLLIBPATH="${WRKSRC}" ${TCLSH} \ ${FILESDIR}/alltests.tcl PLIST_SUB+= TCL_DVER=${TCL_VER:C/\.//} VER=${PORTVERSION} .include -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" CFLAGS+= -Wno-deprecated-non-prototype .endif .include diff --git a/devel/tex-libtexluajit/Makefile b/devel/tex-libtexluajit/Makefile index d3b28d3abd3f..2bd7b1a2b8b5 100644 --- a/devel/tex-libtexluajit/Makefile +++ b/devel/tex-libtexluajit/Makefile @@ -1,39 +1,32 @@ PORTNAME= libtexluajit DISTVERSION= 2.1.0 PORTREVISION= 3 CATEGORIES= devel MASTER_SITES= TEX_CTAN/systems/texlive/${TEXLIVE_YEAR} PKGNAMEPREFIX= tex- DISTNAME= texlive-${TEXLIVE_VERSION}-source DIST_SUBDIR= TeX MAINTAINER= tex@FreeBSD.org COMMENT= LuaJIT library for TeXLive LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LuaJIT-src/COPYRIGHT BROKEN_mips= Does not configure: error: Sorry, cannot preprocess lj_arch.h BROKEN_mips64= Does not configure: error: Sorry, cannot preprocess lj_arch.h BROKEN_powerpc64= Does not build: uninitialized constant Config (NameError) BROKEN_riscv64= Does not configure: error: Sorry, cannot preprocess lj_arch.h USES= compiler libtool pathfix pkgconfig tar:xz tex USE_LDCONFIG= yes GNU_CONFIGURE= yes INSTALL_TARGET= install-strip EXTRACT_AFTER_ARGS= ${EXTRACT_FILES:S,^,${DISTNAME}/,} EXTRACT_FILES= build-aux libs/luajit WRKSRC= ${WRKDIR}/${DISTNAME}/libs/luajit -.include - -.if ${ARCH:Mpowerpc*} && ${COMPILER_VERSION} < 140 -BUILD_DEPENDS+= as:devel/binutils -CFLAGS+= -fno-integrated-as -.endif - -.include +.include diff --git a/devel/ucommon/Makefile b/devel/ucommon/Makefile index b86b69db4292..93bdfd5943db 100644 --- a/devel/ucommon/Makefile +++ b/devel/ucommon/Makefile @@ -1,29 +1,29 @@ PORTNAME= ucommon PORTVERSION= 7.0.0 PORTREVISION= 6 CATEGORIES= devel MASTER_SITES= GNU/commoncpp MAINTAINER= ports@FreeBSD.org COMMENT= Very lightweight C++ design pattern library WWW= https://www.gnu.org/software/commoncpp/ LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/COPYING.LESSER USES= compiler:c++11-lib cmake pathfix pkgconfig ssl CMAKE_ARGS= -DBUILD_TESTING:BOOL=ON \ -DCMAKE_INSTALL_BINDIR:STRING=bin/${PORTNAME} USE_LDCONFIG= yes TEST_TARGET= test .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang USE_CXXSTD= c++11 .endif post-install: ${INSTALL_DATA} ${BUILD_WRKSRC}/ucommon-config.h ${STAGEDIR}${PREFIX}/include/ucommon .include diff --git a/dns/getdns/Makefile b/dns/getdns/Makefile index a922a60570d8..02f29474c02c 100644 --- a/dns/getdns/Makefile +++ b/dns/getdns/Makefile @@ -1,74 +1,74 @@ PORTNAME= getdns PORTVERSION= 1.5.2 PORTREVISION= 7 CATEGORIES= dns MASTER_SITES= https://getdnsapi.net/dist/ \ ZI \ http://getdnsapi.net/dist/ MAINTAINER= zi@FreeBSD.org COMMENT= Modern asynchronous DNS API WWW= https://getdnsapi.net/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libexpat.so:textproc/expat2 \ libidn.so:dns/libidn \ libldns.so:dns/ldns \ libunbound.so:dns/unbound USES= compiler:c11 libtool pathfix ssl USE_LDCONFIG= yes GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share CONFIGURE_ARGS= --with-libidn=${LOCALBASE} --docdir=${DOCSDIR} \ --with-trust-anchor=${LOCALBASE}/etc/unbound/root.key SOMAJVER= 10 SOVERSION= ${SOMAJVER}.1.${PORTVERSION:C/[0-9].[0-9].([0-9])/\1/1} MAKE_JOBS_UNSAFE=yes PLIST_SUB+= SOVERSION="${SOVERSION}" SOMAJVER="${SOMAJVER}" SUB_FILES+= pkg-message OPTIONS_SUB= yes OPTIONS_DEFINE= DOCS LIBEV LIBEVENT LIBUV STUBBY OPTIONS_DEFAULT=STUBBY LIBEV_DESC= Build with libev extension LIBEVENT_DESC= Build with libevent extension LIBUV_DESC= Build with libuv extension STUBBY_DESC= Build with Stubby DNS/TLS resolver LIBEV_LIB_DEPENDS= libev.so:devel/libev LIBEV_CONFIGURE_WITH= libev LIBEVENT_LIB_DEPENDS= libevent_core.so:devel/libevent LIBEVENT_CONFIGURE_WITH=libevent LIBUV_LIB_DEPENDS= libuv.so:devel/libuv LIBUV_CONFIGURE_WITH= libuv STUBBY_LIB_DEPENDS= libyaml.so:textproc/libyaml STUBBY_CONFIGURE_WITH= stubby STUBBY_VARS= USE_RC_SUBR="stubby" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif post-patch: ${REINPLACE_CMD} -Ee 's,^(sharedoc = ).*,\1${WRKDIR}/doc,' \ -e '/echo .\*\*\*/d' ${WRKSRC}/Makefile.in post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libgetdns*.so.* ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/getdns_* post-stage-STUBBY-on: ${MV} ${STAGEDIR}${PREFIX}/etc/stubby/stubby.yml \ ${STAGEDIR}${PREFIX}/etc/stubby/stubby.yml.sample post-install-STUBBY-on: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/stubby .include diff --git a/editors/calligra/Makefile b/editors/calligra/Makefile index 3d5285e799c9..8e4c5462c7e2 100644 --- a/editors/calligra/Makefile +++ b/editors/calligra/Makefile @@ -1,88 +1,88 @@ PORTNAME= calligra DISTVERSION= 3.2.1 PORTREVISION= 62 CATEGORIES= editors kde MASTER_SITES= KDE/stable/${PORTNAME}/${PORTVERSION} DIST_SUBDIR= KDE/${PORTNAME} PATCH_SITES= https://invent.kde.org/office/calligra/-/commit/ # Poppler 22.03 PATCHFILES= 236bacbe13739414e919de868283b0caf2df5d8a.diff:-p1 \ 6b75bec784c9835c78993349845d8c2ef22ec3de.diff:-p1 MAINTAINER= kde@FreeBSD.org COMMENT= KDE office suite WWW= https://calligra.org/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= pstoedit:graphics/pstoedit LIB_DEPENDS= libImath.so:math/Imath \ libKPropertyCore3.so:x11-toolkits/kproperty \ libKReport3.so:textproc/kreport \ libboost_thread.so:devel/boost-libs \ libetonyek-0.1.so:graphics/libetonyek01 \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgsl.so:math/gsl \ liblcms2.so:graphics/lcms2 \ libKGantt.so:graphics/kdiagram \ libodfgen-0.1.so:textproc/libodfgen01 \ libpng.so:graphics/png \ libpoppler-qt5.so:graphics/poppler-qt5 \ libpoppler.so:graphics/poppler \ librevenge-0.0.so:textproc/librevenge \ libtiff.so:graphics/tiff \ libvisio-0.1.so:textproc/libvisio01 \ libwpd-0.10.so:textproc/libwpd010 \ libwpg-0.3.so:graphics/libwpg03 \ libwps-0.4.so:textproc/libwps RUN_DEPENDS= pstoedit:graphics/pstoedit USES= cmake compiler:c++17-lang cpe desktop-file-utils eigen:3 \ gettext iconv:translit jpeg kde:5 localbase:ldflags perl5 \ pkgconfig qca qt:5 shared-mime-info sqlite tar:xz xorg USE_LDCONFIG= yes USE_KDE= activities akonadicontacts archive auth bookmarks calendarcore \ codecs completion config configwidgets contacts coreaddons \ crash dbusaddons doctools emoticons guiaddons holidays i18n \ iconthemes init itemmodels itemviews jobwidgets js kcmutils \ kdelibs4support khtml kio kross notifications notifyconfig \ okular parts phonon service solid sonnet texteditor textwidgets \ threadweaver unitconversion wallet widgetsaddons windowsystem \ xmlgui \ ecm:build USE_QT= concurrent core dbus declarative gui network opengl \ printsupport script sql svg testlib widgets x11extras \ xml \ buildtools:build qmake:build USE_XORG= ice sm x11 xext OPTIONS_DEFINE= OPENEXR OPTIONS_DEFAULT= OPENEXR OPENEXR_LIB_DEPENDS= libOpenEXR.so:graphics/openexr OPENEXR_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_OpenEXR CMAKE_ARGS= -DCMAKE_INCLUDE_PATH:STRING="${QT_INCDIR} ${LOCALBASE}/include" \ -DPRODUCTSET:STRING="DESKTOP" # Requested by upstream, to not include unfinished modules CMAKE_ON= RELEASE_BUILD # Performance increase according to README.PACKAGERS CMAKE_ARGS+= -DCMAKE_CXX_FLAGS="-DKDE_NO_DEBUG_OUTPUT" PLIST_SUB+= SHLIB_VER=17.0.0 .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::binary_function|std::__binary_function|g' \ ${WRKSRC}/filters/words/msword-odf/wv2/src/word97_helper.cpp @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/filters/words/msword-odf/wv2/src/utilities.h .endif .include diff --git a/editors/e93/Makefile b/editors/e93/Makefile index 43a60b90a1ea..b7c79e54153c 100644 --- a/editors/e93/Makefile +++ b/editors/e93/Makefile @@ -1,42 +1,42 @@ PORTNAME= e93 PORTVERSION= 1.4.3 CATEGORIES= editors tcl MASTER_SITES= http://www.sqrt.com/downloads/ DISTNAME= ${PORTNAME} MAINTAINER= ports@FreeBSD.org COMMENT= Tcl-based, programmer-oriented text editor WWW= http://www.e93.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE.TXT USES= compiler:c11 tar:tgz tcl xorg USE_XORG= x11 xinerama xmu MAKE_ENV= TCL_INCLUDEDIR=${TCL_INCLUDEDIR} TCL_VERSION=${TCL_SHLIB_VER} PORTDOCS= README* TODO OPTIONS_DEFINE= DOCS .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif post-patch: @${REINPLACE_CMD} -e 's|CFLAGS=|CFLAGS\+=|g' \ ${WRKSRC}/xgui/Makefile do-install: ${INSTALL_PROGRAM} ${WRKSRC}/e93 ${STAGEDIR}${PREFIX}/bin @${MKDIR} ${STAGEDIR}${PREFIX}/lib/e93lib cd ${WRKSRC}/e93lib && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/e93lib do-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR} .include diff --git a/editors/imhex-current/Makefile b/editors/imhex-current/Makefile index 8e6fa10714f5..dd5dc2444891 100644 --- a/editors/imhex-current/Makefile +++ b/editors/imhex-current/Makefile @@ -1,155 +1,154 @@ PORTNAME= imhex PORTVERSION= 1.35.3 DISTVERSIONPREFIX= v CATEGORIES= editors MASTER_SITES= https://git.sr.ht/~danyspin97/xdgpp/blob/f01f810714443d0f10c333d4d1d9c0383be41375/:xdg \ https://gitlab.com/EvelynTSMG/imhex-bastion-pats/-/archive/${GL_TAG_IMHEX_BASTION_PATS}/:bastion \ https://gitlab.com/EvelynTSMG/imhex-ffx-pats/-/archive/${GL_TAG_IMHEX_FFX_PATS}/:ffx PKGNAMESUFFIX= -current DISTFILES= xdg.hpp:xdg \ imhex-bastion-pats-${GL_TAG_IMHEX_BASTION_PATS}.tar.bz2:bastion \ imhex-ffx-pats-${GL_TAG_IMHEX_FFX_PATS}.tar.bz2:ffx DIST_SUBDIR= imhex MAINTAINER= nobutaka@FreeBSD.org COMMENT= Hex editor for reverse engineers and programmers (current version) WWW= https://github.com/WerWolv/ImHex LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE NOT_FOR_ARCHS= i386 powerpc NOT_FOR_ARCHS_REASON= __uint128_t and __int128_t are not supported EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \ btzy-nativefiledialog-extended-${GH_TAG_NATIVEFILEDIALOG}_GH0${EXTRACT_SUFX} \ capstone-engine-capstone-${GH_TAG_CAPSTONE}_GH0${EXTRACT_SUFX} \ CLIUtils-CLI11-${GH_TAG_CLI11}_GH0${EXTRACT_SUFX} \ Martinsos-edlib-${GH_TAG_EDLIB}_GH0${EXTRACT_SUFX} \ fmtlib-fmt-${GH_TAG_FMT}_GH0${EXTRACT_SUFX} \ josuttis-jthread-${GH_TAG_JTHREAD}_GH0${EXTRACT_SUFX} \ rockdreamer-throwing_ptr-${GH_TAG_THROWING_PTR}_GH0${EXTRACT_SUFX} \ sammycage-lunasvg-${GH_TAG_LUNASVG}_GH0${EXTRACT_SUFX} \ VirusTotal-yara-${GH_TAG_YARA}_GH0${EXTRACT_SUFX} \ WerWolv-HashLibPlus-${GH_TAG_HASHLIBPLUS}_GH0${EXTRACT_SUFX} \ WerWolv-ImHex-Patterns-${GH_TAG_IMHEX_PATTERNS}_GH0${EXTRACT_SUFX} \ WerWolv-PatternLanguage-${GH_TAG_PATTERN_LANGUAGE}_GH0${EXTRACT_SUFX} \ WerWolv-libromfs-${GH_TAG_LIBROMFS}_GH0${EXTRACT_SUFX} \ WerWolv-libwolv-${GH_TAG_LIBWOLV}_GH0${EXTRACT_SUFX} \ imhex-bastion-pats-${GL_TAG_IMHEX_BASTION_PATS}.tar.bz2 \ imhex-ffx-pats-${GL_TAG_IMHEX_FFX_PATS}.tar.bz2 BUILD_DEPENDS= glm>0:math/glm LIB_DEPENDS= libcurl.so:ftp/curl \ libglfw.so:graphics/glfw \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libinotify.so:devel/libinotify \ libmbedtls.so:security/mbedtls \ libzstd.so:archivers/zstd USES= cmake desktop-file-utils gl gnome pkgconfig python xorg USE_GL= gl glu opengl USE_GNOME= cairo gdkpixbuf2 gtk30 USE_XORG= x11 xcb xau xdmcp USE_GITHUB= yes CONFLICTS_INSTALL= imhex-1.30.* GH_ACCOUNT= WerWolv GH_PROJECT= ImHex GH_TUPLE= btzy:nativefiledialog-extended:${GH_TAG_NATIVEFILEDIALOG}:nativefiledialog \ capstone-engine:capstone:${GH_TAG_CAPSTONE}:capstone \ CLIUtils:CLI11:${GH_TAG_CLI11}:cli11 \ Martinsos:edlib:${GH_TAG_EDLIB}:edlib \ fmtlib:fmt:${GH_TAG_FMT}:fmt \ josuttis:jthread:${GH_TAG_JTHREAD}:jthread \ rockdreamer:throwing_ptr:${GH_TAG_THROWING_PTR}:throwing_ptr \ sammycage:lunasvg:${GH_TAG_LUNASVG}:lunasvg \ VirusTotal:yara:${GH_TAG_YARA}:yara \ WerWolv:HashLibPlus:${GH_TAG_HASHLIBPLUS}:hashlibplus \ WerWolv:ImHex-Patterns:${GH_TAG_IMHEX_PATTERNS}:imhex_patterns \ WerWolv:PatternLanguage:${GH_TAG_PATTERN_LANGUAGE}:pattern_language \ WerWolv:libromfs:${GH_TAG_LIBROMFS}:libromfs \ WerWolv:libwolv:${GH_TAG_LIBWOLV}:libwolv \ GH_TAG_CAPSTONE= 097c04d GH_TAG_CLI11= 6c7b07a GH_TAG_EDLIB= 931be2b GH_TAG_FMT= 67c0c0c GH_TAG_HASHLIBPLUS= 1823dd1 GH_TAG_IMHEX_PATTERNS= ImHex-v1.35.1 GH_TAG_JTHREAD= 0fa8d39 GH_TAG_LIBROMFS= 03adcfd GH_TAG_LIBWOLV= 0e3ba3a GH_TAG_LUNASVG= 17b595a GH_TAG_NATIVEFILEDIALOG= 5786fab GH_TAG_PATTERN_LANGUAGE= ImHex-v1.35.1 GH_TAG_THROWING_PTR= cd28490 GH_TAG_YARA= 8fa55cd GL_TAG_IMHEX_BASTION_PATS= e6deed4 GL_TAG_IMHEX_FFX_PATS= 199879e CFLAGS+= -I${LOCALBASE}/include CXXFLAGS+= -I${LOCALBASE}/include CMAKE_ARGS= -DUSE_SYSTEM_CURL=ON -DUSE_SYSTEM_NLOHMANN_JSON=OFF \ -DIMHEX_STRIP_RELEASE=OFF -DIMHEX_PLUGINS_IN_SHARE=ON \ -DIMHEX_OFFLINE_BUILD=ON -DIMHEX_USE_GTK_FILE_PICKER=ON \ -DIMHEX_IGNORE_BAD_CLONE=ON -DIMHEX_IGNORE_BAD_COMPILER=ON PORTDOCS= README.md OPTIONS_DEFINE= DOCS NLS NLS_USES= gettext .include # Before LLVM 17 import into the base system -.if (${OSVERSION} < 1302510 \ - || (${OSREL:R} == 14 && ${OSVERSION} < 1400504) \ +.if ((${OSREL:R} == 14 && ${OSVERSION} < 1400504) \ || (${OSREL:R} == 15 && ${OSVERSION} < 1500006)) IGNORE= requires libc++ of LLVM 17 on the base system .endif # After LLVM 18 import into the base system .if ((${OSREL:R} == 15 && ${OSVERSION} >= 1500018) \ || (${OSREL:R} == 14 && ${OSVERSION} >= 1400511) \ || (${OSREL:R} == 13 && ${OSVERSION} >= 1303503)) CXXFLAGS+= -fexperimental-library -D_LIBCPP_ENABLE_EXPERIMENTAL .endif post-extract: ${CP} -R ${WRKSRC_libromfs}/* ${WRKSRC}/lib/external/libromfs ${CP} -R ${WRKSRC_libwolv}/* ${WRKSRC}/lib/external/libwolv ${CP} -R ${WRKSRC_pattern_language}/* ${WRKSRC}/lib/external/pattern_language ${CP} -R ${WRKSRC_cli11}/* ${WRKSRC}/lib/external/pattern_language/external/cli11 ${CP} -R ${WRKSRC_fmt}/* ${WRKSRC}/lib/external/pattern_language/external/fmt ${CP} -R ${WRKSRC_throwing_ptr}/* ${WRKSRC}/lib/external/pattern_language/external/throwing_ptr ${CP} ${DISTDIR}/${DIST_SUBDIR}/xdg.hpp ${WRKSRC}/lib/third_party/xdgpp ${CP} -R ${WRKSRC_capstone}/* ${WRKSRC}/lib/third_party/capstone ${CP} -R ${WRKSRC_edlib}/* ${WRKSRC}/lib/third_party/edlib ${CP} -R ${WRKSRC_fmt}/* ${WRKSRC}/lib/third_party/fmt ${CP} -R ${WRKSRC_hashlibplus}/* ${WRKSRC}/lib/third_party/HashLibPlus ${CP} -R ${WRKSRC_lunasvg}/* ${WRKSRC}/lib/third_party/lunasvg ${CP} -R ${WRKSRC_nativefiledialog}/* ${WRKSRC}/lib/third_party/nativefiledialog ${CP} -R ${WRKSRC_yara}/* ${WRKSRC}/lib/third_party/yara/yara ${MKDIR} ${WRKDIR}/.build/_deps/imhex_patterns_src ${CP} -R ${WRKSRC_imhex_patterns}/* ${WRKDIR}/.build/_deps/imhex_patterns_src ${CP} -R ${WRKDIR}/imhex-bastion-pats-${GL_TAG_IMHEX_BASTION_PATS}/* ${WRKDIR}/.build/_deps/imhex_patterns_src/patterns/bastion ${CP} -R ${WRKDIR}/imhex-ffx-pats-${GL_TAG_IMHEX_FFX_PATS}/* ${WRKDIR}/.build/_deps/imhex_patterns_src/patterns/ffx # Before LLVM 18 import into the base system .if ((${OSREL:R} == 15 && ${OSVERSION} < 1500018) \ || (${OSREL:R} == 14 && ${OSVERSION} < 1400511) \ || (${OSREL:R} == 13 && ${OSVERSION} < 1303503)) ${CP} -R ${WRKSRC_jthread}/* ${WRKSRC}/lib/third_party/jthread .endif post-patch: ${CP} -R ${WRKSRC}/lib/external/libwolv/* ${WRKSRC}/lib/external/pattern_language/external/libwolv post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} .include diff --git a/editors/libreoffice/Makefile b/editors/libreoffice/Makefile index 2bd0510f7f6a..876c7688215d 100644 --- a/editors/libreoffice/Makefile +++ b/editors/libreoffice/Makefile @@ -1,429 +1,420 @@ PORTREVISION= 0 .include "${.CURDIR}/Makefile.common" MASTER_SITES= https://download.documentfoundation.org/libreoffice/src/${LOVERSION}/ \ https://dev-www.libreoffice.org/src/:src \ https://dev-www.libreoffice.org/extern/:ext DISTFILES= ${PORTNAME}-${DISTVERSION}${EXTRACT_SUFX} \ ${PORTNAME}-help-${DISTVERSION}${EXTRACT_SUFX} DIST_SUBDIR= libreoffice EXTRACT_ONLY:= ${DISTFILES} COMMENT= Full integrated office productivity suite WWW?= https://www.libreoffice.org/ BUILD_DEPENDS= p5-Archive-Zip>=0:archivers/p5-Archive-Zip \ zip:archivers/zip \ pigz:archivers/pigz \ ${LOCALBASE}/include/sqlext.h:databases/unixODBC \ cppunit-config:devel/cppunit \ dmake:devel/dmake \ gperf>=3.1:devel/gperf \ ${LOCALBASE}/include/libcuckoo/cuckoohash_map.hh:devel/libcuckoo \ mdds>=2.1:devel/mdds \ ucpp:devel/ucpp \ ${LOCALBASE}/include/sane/sane.h:graphics/sane-backends \ vigra-config:graphics/vigra \ ${LOCALBASE}/include/glm/glm.hpp:math/glm \ bash:shells/bash \ gsed:textproc/gsed \ ${PYTHON_PKGNAMEPREFIX}lxml>0:devel/py-lxml@${PY_FLAVOR} \ coreutils>=8.23:sysutils/coreutils \ flex>=0.26:textproc/flex LIB_DEPENDS= libapr-1.so:devel/apr1 \ libboost_date_time.so:devel/boost-libs \ libbox2d.so:misc/box2d \ libicutu.so:devel/icu \ liblangtag.so:devel/liblangtag \ libltdl.so:devel/libltdl \ liborcus-0.18.so:devel/liborcus \ libplds4.so:devel/nspr \ libcurl.so:ftp/curl \ libgraphite2.so:graphics/graphite2 \ liblcms2.so:graphics/lcms2 \ libcdr-0.1.so:graphics/libcdr01 \ libepoxy.so:graphics/libepoxy \ libetonyek-0.1.so:graphics/libetonyek01 \ libfreehand-0.1.so:graphics/libfreehand \ libwpg-0.3.so:graphics/libwpg03 \ libzmf-0.0.so:graphics/libzmf \ libpng.so:graphics/png \ libpoppler.so:graphics/poppler \ libtiff.so:graphics/tiff \ libwebp.so:graphics/webp \ liblpsolve55.so:math/lp_solve \ libcmis-0.6.so:net/libcmis \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libharfbuzz-icu.so:print/harfbuzz-icu \ libmspub-0.1.so:print/libmspub01 \ libpagemaker-0.0.so:print/libpagemaker \ libassuan.so:security/libassuan \ libgpgme.so:security/gpgme \ libgpgmepp.so:security/gpgme-cpp \ libargon2.so:security/libargon2 \ libgpg-error.so:security/libgpg-error \ libnss3.so:security/nss \ libxmlsec1-nss.so:security/xmlsec1 \ libclucene-core.so:textproc/clucene \ libexpat.so:textproc/expat2 \ libhunspell-1.7.so:textproc/hunspell \ libhyphen.so:textproc/hyphen \ libabw-0.1.so:textproc/libabw \ libe-book-0.1.so:textproc/libe-book \ libepubgen-0.1.so:textproc/libepubgen \ libexttextcat-2.0.so:textproc/libexttextcat \ libmwaw-0.3.so:textproc/libmwaw03 \ libnumbertext-1.0.so:textproc/libnumbertext \ libodfgen-0.1.so:textproc/libodfgen01 \ libqxp-0.0.so:textproc/libqxp \ librevenge-0.0.so:textproc/librevenge \ libstaroffice-0.0.so:textproc/libstaroffice \ libvisio-0.1.so:textproc/libvisio01 \ libwpd-0.10.so:textproc/libwpd010 \ libwps-0.4.so:textproc/libwps \ libmythes-1.2.so:textproc/mythes \ libraptor2.so:textproc/raptor2 \ librdf.so:textproc/redland \ libZXing.so:textproc/zxing-cpp \ libfontconfig.so:x11-fonts/fontconfig \ libxcb-icccm.so:x11/xcb-util-wm \ libserf-1.so:www/serf LIB_DEPENDS+= ${LIB_DEPENDS_${ARCH}} LIB_DEPENDS_aarch64= libunwind.so:devel/libunwind LIB_DEPENDS_amd64= libunwind.so:devel/libunwind LIB_DEPENDS_i386= libunwind.so:devel/libunwind LIB_DEPENDS_powerpc64= libunwind.so:devel/libunwind LIB_DEPENDS_powerpc64le= libunwind.so:devel/libunwind RUN_DEPENDS= xdg-open:devel/xdg-utils \ ${LOCALBASE}/share/fonts/Caladea/Caladea-Bold.ttf:x11-fonts/crosextrafonts-caladea-ttf \ ${LOCALBASE}/share/fonts/Carlito/Carlito-Bold.ttf:x11-fonts/crosextrafonts-carlito-ttf \ ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu \ ${LOCALBASE}/share/fonts/twemoji-color-font-ttf/TwitterColorEmoji-SVGinOT.ttf:x11-fonts/twemoji-color-font-ttf \ ${LOCALBASE}/share/fonts/GentiumBasic/GenBasI.ttf:x11-fonts/gentium-basic \ ${LOCALBASE}/share/fonts/Liberation/LiberationMono-Bold.ttf:x11-fonts/liberation-fonts-ttf \ ${LOCALBASE}/share/fonts/LinLibertineG/LinLibertine_DR_G.ttf:x11-fonts/linuxlibertine-g DISTFILES+= f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf:ext DISTFILES+= dtoa-20180411.tgz:src DISTFILES+= dragonbox-1.1.3.tar.gz:src DISTFILES+= frozen-1.1.1.tar.gz:src DISTFILES+= skia-m116-2ddcf183eb260f63698aa74d1bb380f247ad7ccd.tar.xz:src DISTFILES+= zxcvbn-c-2.5.tar.gz:src NOT_FOR_ARCHS= armv6 armv7 NOT_FOR_ARCHS_REASON= Unsupported host_cpu .if defined(PRERELEASE) MASTER_SITES+= https://dev-builds.libreoffice.org/pre-releases/src/ .endif CONFLICTS_INSTALL= libreoffice6 INSTALL_TARGET= distro-pack-install SHEBANG_GLOB= *.py GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share USES= autoreconf:build bison compiler:c++17-lang cpe desktop-file-utils \ gettext gl gmake gnome jpeg ldap localbase:ldflags perl5 pkgconfig \ python shebangfix shared-mime-info ssl tar:xz xorg USE_GL= gl glew glu USE_GNOME= cairo glib20 libxml2 libxslt USE_PERL5= build USE_XORG= ice sm x11 xaw xcb xext xinerama xrandr xrender USES+= elfctl ELF_FEATURES= +wxneeded:instdir/program/soffice.bin OPTIONS_DEFINE= COINMP CUPS DOCS GNOME GTK3 GTK4 JAVA LTO MMEDIA PDFIUM PGSQL MARIADB SDK TEST WEBDAV OPTIONS_RADIO= QT KDE OPTIONS_RADIO_QT= QT5 QT6 OPTIONS_RADIO_KDE= KF5 KF6 OPTIONS_DEFAULT= CUPS DOCS JAVA MMEDIA PDFIUM QT5 #OPTIONS_EXCLUDE= GTK4 COINMP_DESC= Enable CoinMP (deprecated) math solver GTK4_DESC= GTK+ 4 GUI toolkit support (experimental, broken) JAVA_DESC= Add Java support (XML filters, macros, DB connections) KF5_DESC= KF5/Qt5 GUI toolkit support (implies QT5) KF6_DESC= KF6/Qt6 GUI toolkit support (implies QT6) MMEDIA_DESC= Enable multimedia backend for Impress PDFIUM_DESC= Enable PDFium secure engine PGSQL_DESC= Build with PostgreSQL-SDBC driver MARIADB_DESC= Build with MariaDB/MySQL-SDBC driver QT_DESC= Select Qt GUI engine version KDE_DESC= Select KDE GUI engine version QT5_DESC= Qt5 GUI toolkit support (default visual style) QT6_DESC= Qt6 GUI toolkit support (experimental visual style) SDK_DESC= Build with SDK TEST_DESC= Run all regression tests WEBDAV_DESC= Enable WebDAV protocol COINMP_CONFIGURE_ENABLE= coinmp COINMP_CONFIGURE_ON= --with-system-coinmp COINMP_LIB_DEPENDS= libCoinMP.so:math/coinmp CUPS_CONFIGURE_ENABLE= cups CUPS_LIB_DEPENDS= libcups.so:print/cups DOCS_CONFIGURE_ON= --with-help=html GNOME_CONFIGURE_ENABLE= dbus dconf GNOME_IMPLIES= GTK3 GNOME_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libdbus-glib-1.so:devel/dbus-glib GNOME_USE= GNOME=dconf GTK3_CONFIGURE_ENABLE= gtk3 GTK3_USE= GNOME=gtk30 GTK4_CONFIGURE_ENABLE= gtk4 GTK4_USE= GNOME=gtk40 JAVA_BUILD_DEPENDS= ant:devel/apache-ant \ ${JAVAJARDIR}/commons-codec.jar:java/apache-commons-codec \ ${JAVAJARDIR}/commons-httpclient.jar:java/apache-commons-httpclient \ ${JAVAJARDIR}/commons-lang3.jar:java/apache-commons-lang3 \ ${JAVAJARDIR}/commons-logging.jar:java/apache-commons-logging \ ${JAVAJARDIR}/junit.jar:java/junit JAVA_CATEGORIES= java JAVA_CONFIGURE_ON= --with-ant-home=${LOCALBASE}/share/java/apache-ant \ --with-commons-codec-jar=${JAVAJARDIR}/commons-codec.jar \ --with-commons-httpclient-jar=${JAVAJARDIR}/commons-httpclient.jar \ --with-commons-lang-jar=${JAVAJARDIR}/commons-lang3.jar \ --with-commons-logging-jar=${JAVAJARDIR}/commons-logging.jar \ --with-jdk-home="${JAVA_HOME}" \ --with-junit=${JAVAJARDIR}/junit.jar \ --with-hamcrest=${JAVAJARDIR}/hamcrest.jar \ --with-system-jars \ --without-system-beanshell \ --without-system-jfreereport JAVA_CONFIGURE_WITH= java # XXX jni.h from GNU classpath causes ABI conflicts. JAVA_CONFLICTS_BUILD= classpath-[0-9]* JAVA_DISTFILES= 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip:src \ 3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip:src \ 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip:src \ 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip:src \ 3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip:src \ 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip:src \ 8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar:ext \ 8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip:src \ 97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip:src \ a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar:ext \ ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip:src \ ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip:src \ beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip:src \ d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip:src \ db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip:src \ eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip:src \ f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip:src \ Java-WebSocket-1.5.4.tar.gz:src JAVA_USE= JAVA=yes JAVA_VARS= JAVA_BUILD=yes JAVA_RUN=yes JAVA_VERSION=17+ KF5_CONFIGURE_ENABLE= kf5 KF5_USE= kde=config,coreaddons,i18n,kio,windowsystem KF5_USES= kde:5 KF5_IMPLIES= QT5 KF5_PREVENTS= KF6 KF5_PREVENTS_MSG= KF5 cannot coexist with KF6 KF6_CONFIGURE_ENABLE= kf6 KF6_USE= kde=config,coreaddons,i18n,kio,windowsystem KF6_USES= kde:6 KF6_IMPLIES= QT6 KF6_PREVENTS= KF5 KF6_PREVENTS_MSG= KF6 cannot coexist with KF5 LTO_CONFIGURE_ENABLE= lto MMEDIA_USES= gstreamer MMEDIA_CONFIGURE_ENABLE= gstreamer-1-0 PDFIUM_CONFIGURE_ENABLE= pdfium PDFIUM_DISTFILES= pdfium-6179.tar.bz2:src PDFIUM_LIB_DEPENDS= libabsl_strings.so:devel/abseil \ libopenjp2.so:graphics/openjpeg PGSQL_CONFIGURE_ENABLE= postgresql-sdbc PGSQL_CONFIGURE_WITH= gssapi krb5 PGSQL_USES= pgsql MARIADB_CONFIGURE_ENABLE= mariadb-sdbc MARIADB_USES= mysql:client QT5_CONFIGURE_ENABLE= qt5 QT5_PREVENTS= KF6 QT5_PREVENTS_MSG= KF6 support require Qt6 engine QT5_USE= qt=buildtools:build,core,gui,network,qmake:build,widgets,x11extras QT5_USES= qt:5 QT6_CONFIGURE_ENABLE= qt6 QT6_CONFIGURE_ENV= QMAKE6=${QMAKE} MOC6=${MOC} PATH="${QT_TOOLDIR}:${PATH}" QT6_PREVENTS= KF5 QT6_PREVENTS_MSG= KF5 support require Qt5 engine QT6_USE= qt=base,declarative:build,tools:build QT6_USES= qt:6 SDK_BUILD_DEPENDS= doxygen:devel/doxygen SDK_CONFIGURE_ENABLE= odk SDK_CONFIGURE_OFF= --without-doxygen SDK_CONFIGURE_ON= --with-doxygen=${LOCALBASE}/bin/doxygen SDK_DISTFILES= 185d60944ea767075d27247c3162b3bc-unowinreg.dll:ext TEST_ALL_TARGET= build TEST_ALL_TARGET_OFF= build TEST_CONFIGURE_ENABLE= cve-tests WEBDAV_CONFIGURE_ON= --with-webdav=neon WEBDAV_CONFIGURE_OFF= --with-webdav=no WEBDAV_LIB_DEPENDS= libneon.so:www/neon CONFIGURE_ARGS= --disable-dependency-tracking \ --disable-epm \ --disable-fetch-external \ --disable-firebird-sdbc \ --disable-mergelibs \ --disable-online-update \ --enable-cairo-canvas \ --enable-python=system \ --enable-release-build \ --enable-extension-integration \ --disable-mpl-subset \ --disable-report-builder \ --exec-prefix=${PREFIX} \ --with-boost=${LOCALBASE} \ --with-build-version="FreeBSD ports ${PKGVERSION}" \ --with-external-dict-dir=${LOCALBASE}/share/hunspell \ --with-external-hyph-dir=${LOCALBASE}/share/hyphen \ --with-external-tar=${DISTDIR}/${DIST_SUBDIR} \ --with-external-thes-dir=${LOCALBASE}/share/mythes \ --with-os-version=${OSVERSION} \ --with-parallelism=${MAKE_JOBS_NUMBER} \ --with-system-abseil \ --with-system-argon2 \ --with-system-cppunit \ --with-system-cuckoo \ --with-system-curl \ --with-system-dicts \ --with-system-dragonbox=no \ --with-system-frozen=no \ --with-system-gpgmepp \ --with-system-libfixmath=no \ --with-system-libs \ --with-system-libtiff \ --with-system-libxml \ --with-system-mdds \ --with-system-nss \ --with-system-openjpeg \ --with-system-orcus \ --with-system-ucpp \ --with-system-zlib \ --with-system-zxcvbn=no \ --with-system-zxing \ --with-tls=nss \ --with-vendor="FreeBSD ports" \ --without-fonts \ --without-myspell-dicts CONFIGURE_ENV= DMAKE=${LOCALBASE}/bin/dmake \ FLEX=${LOCALBASE}/bin/flex \ CONFIG_SHELL=${LOCALBASE}/bin/bash \ GNUTAR="${TAR}" \ GPERF=${LOCALBASE}/bin/gperf \ ICU_CFLAGS="`icu-config --cflags`" \ ICU_LIBS="`icu-config --ldflags`" \ PYTHON_CFLAGS="`${PYTHON_VERSION}-config --cflags`" \ PYTHON_LIBS="`${PYTHON_VERSION}-config --libs`" \ ZXING_CFLAGS="-I${LOCALBASE}/include/ZXing \ CPLUS_INCLUDE_PATH="-I${LOCALBASE}/include \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_SHELL= ${LOCALBASE}/bin/bash MAKE_SHELL= ${LOCALBASE}/bin/bash MAKE_ARGS+= TMPDIR=${WRKDIR} MAKE_ENV+= CXXFLAGS_WARN="${CXXFLAGS_WARN}" MAKE_ENV+= GNUSED=${LOCALBASE}/bin/gsed MAKE_ENV+= DISPLAY= MAKE_ENV+= verbose=1 BINARY_ALIAS= sed=gsed #MAKE_JOBS_UNSAFE= yes .include .include .if ${OPSYS} == FreeBSD && ( \ (${OSVERSION} >= 1400051 && ${OSVERSION} < 1400057)) BROKEN= please update FreeBSD base system first to fix an ABI incompatibility .endif .if ${ARCH} == powerpc || ${ARCH} == powerpcspe || ${ARCH} == powerpc64 CONFIGURE_ARGS+= --disable-skia .endif .if ${PORT_OPTIONS:MGTK3} && ${PORT_OPTIONS:MKF5} CONFIGURE_ARGS+= --enable-gtk3-kde5 .endif -.if ${PORT_OPTIONS:MLTO} && ${CHOSEN_COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 130 -LLVM_DEFAULT= 13 -CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} -CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} -CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} -LLD_UNSAFE= yes -.endif - .if ${CHOSEN_COMPILER_TYPE} == clang CXXFLAGS_WARN= -Woverloaded-virtual -Wno-c++11-narrowing \ -Wno-unused-parameter -Wno-unused-local-typedefs .else CXXFLAGS_WARN= -Wshadow -Woverloaded-virtual .endif LDFLAGS+= -Wl,--undefined-version post-patch: .if ${COMPILER_FEATURES:Mlibstdc++} ${REINPLACE_CMD} -e 's/gb_CC/gb_CXX/' ${WRKSRC}/solenv/gbuild/platform/unxgcc.mk .endif ${CP} ${FILESDIR}/powerpc64le-skia.patch.0 ${WRKSRC}/external/skia/ pre-configure: @${TOUCH} ${WRKSRC}/autogen.lastrun post-configure: @${TOUCH} ${WRKSRC}/src.downloaded post-install: @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s lib/libreoffice -type d -empty \ -exec ${ECHO_CMD} "@dir {}" \; >> ${TMPPLIST} @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s bin lib -not -type d >> ${TMPPLIST} .for subdir in applications bash-completion icons man metainfo mime @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s share/${subdir} -not -type d >> ${TMPPLIST} .endfor post-install-SDK-on: .for subdir in share share/doc @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s ${subdir}/libreoffice -type d -empty \ -exec ${ECHO_CMD} "@dir {}" \; >> ${TMPPLIST} .endfor .for subdir in include share share/doc @cd ${STAGEDIR}${PREFIX} && \ ${FIND} -s ${subdir}/libreoffice -not -type d >> ${TMPPLIST} .endfor .include diff --git a/editors/zile/Makefile b/editors/zile/Makefile index a501f06b84ff..f2187b729fed 100644 --- a/editors/zile/Makefile +++ b/editors/zile/Makefile @@ -1,48 +1,48 @@ PORTNAME= zile PORTVERSION= 2.6.2 PORTREVISION= 1 CATEGORIES= editors MASTER_SITES= GNU MAINTAINER= ports@FreeBSD.org COMMENT= Small emacs-like text editor WWW= https://www.gnu.org/software/zile/ LICENSE= GPLv3 BUILD_DEPENDS= ${LOCALBASE}/bin/help2man:misc/help2man LIB_DEPENDS= libgc.so:devel/boehm-gc \ libgee-0.8.so:devel/libgee \ libgnuregex.so.6:devel/libgnuregex USES= compiler:c++11-lang gmake gnome localbase:ldflags \ ncurses perl5 pkgconfig USE_GNOME= glib20 USE_PERL5= build GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --without-included-regex LDFLAGS+= -lgnuregex PLIST_FILES= bin/${PORTNAME} \ share/man/man1/${PORTNAME}.1.gz \ %%DOCSDIR%%/AUTHORS \ %%DOCSDIR%%/dotzile.sample \ %%DOCSDIR%%/FAQ \ %%DOCSDIR%%/NEWS .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif post-patch: @${REINPLACE_CMD} -e \ '/need_charset_alias=/s|true|false|g' ${WRKSRC}/lib/Makefile.in @${REINPLACE_CMD} -e \ 's|@pkgdatadir@|${DOCSDIR}|' ${WRKSRC}/doc/man-extras .include diff --git a/emulators/citra/Makefile b/emulators/citra/Makefile index e0e2ed02cc2c..5065ec3d4ad6 100644 --- a/emulators/citra/Makefile +++ b/emulators/citra/Makefile @@ -1,112 +1,112 @@ PORTNAME= citra PORTVERSION= s20220902 PORTREVISION?= 3 CATEGORIES= emulators .if make(makesum) MASTER_SITES= https://api.citra-emu.org/gamedb/?dummy=/:gamedb .else MASTER_SITES= LOCAL/jbeich:gamedb .endif DISTFILES= ${PORTNAME}-${DISTVERSIONFULL}/compatibility_list.json:gamedb EXTRACT_ONLY= ${DISTFILES:N*\:gamedb:C/\:.*//} MAINTAINER= ports@FreeBSD.org COMMENT= Nintendo 3DS emulator/debugger WWW= https://citra-emu.org LICENSE= BSD2CLAUSE BSD3CLAUSE BSL GPLv2+ ISCL LGPL21+ MIT OpenSSL UNLICENSE LICENSE_COMB= multi LICENSE_FILE_BSD2CLAUSE=${WRKSRC}/externals/fmt/LICENSE.rst LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/externals/inih/inih/LICENSE.txt LICENSE_FILE_BSL= ${WRKSRC}/externals/catch/LICENSE.txt LICENSE_FILE_GPLv2+ = ${WRKSRC}/license.txt LICENSE_FILE_ISCL= ${WRKSRC}/externals/cubeb/LICENSE LICENSE_FILE_LGPL21+ = ${_LICENSE_STORE}/LGPL21 # soundtouch LICENSE_FILE_MIT= ${WRKSRC}/externals/enet/LICENSE LICENSE_FILE_OpenSSL= ${WRKSRC}/externals/libressl/COPYING BROKEN_aarch64= https://github.com/citra-emu/citra/issues/5921 BUILD_DEPENDS= boost-libs>0:devel/boost-libs USE_GITHUB= yes GH_ACCOUNT= citra-emu GH_TAGNAME= 746609f35 GH_TUPLE= citra-emu:ext-boost:36603a1:boost/externals/boost \ citra-emu:ext-libressl-portable:8929f81:libressl/externals/libressl \ citra-emu:ext-soundtouch:060181e:soundtouch/externals/soundtouch \ MerryMage:dynarmic:r3-223-g9f88f234:dynarmic/externals/dynarmic \ arsenm:sanitizers-cmake:aab6948:sanitizers_cmake/externals/cubeb/cmake/sanitizers-cmake \ arun11299:cpp-jwt:v1.4-14-ge12ef06:cpp_jwt/externals/cpp-jwt \ benhoyt:inih:r52:inih/externals/inih/inih \ catchorg:Catch2:v2.13.7:catch/externals/catch \ facebook:zstd:v1.4.8:zstd/externals/zstd \ fmtlib:fmt:7.1.2:fmt/externals/fmt \ herumi:xbyak:v5.96:xbyak/externals/xbyak \ kinetiknz:cubeb:cubeb-0.2-1350-gf79e0cf:cubeb/externals/cubeb \ lsalzman:enet:v1.3.17-8-g498b9e3:enet/externals/enet \ lvandeve:lodepng:31d9704:lodepng/externals/lodepng/lodepng \ neobrain:nihstro:fd69de1:nihstro/externals/nihstro \ weidai11:cryptopp:CRYPTOPP_8_5_0:cryptopp/externals/cryptopp/cryptopp \ wwylele:teakra:01db7cd:teakra/externals/teakra USES= cmake:testing compiler:c++17-lang localbase:ldflags sdl USE_SDL= sdl2 CMAKE_ON= USE_SYSTEM_BOOST Boost_USE_STATIC_LIBS LDFLAGS+= -Wl,--as-needed # Qt5Network OPTIONS_DEFINE= ALSA FFMPEG PULSEAUDIO JACK SNDIO OPTIONS_DEFAULT=FFMPEG PULSEAUDIO JACK SNDIO OPTIONS_MULTI= GUI OPTIONS_MULTI_GUI= QT5 SDL OPTIONS_SLAVE?= SDL OPTIONS_EXCLUDE:= ${OPTIONS_MULTI_GUI} ALSA_BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib ALSA_CMAKE_BOOL= USE_ALSA FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg FFMPEG_CMAKE_BOOL= ENABLE_FFMPEG_AUDIO_DECODER ENABLE_FFMPEG_VIDEO_DUMPER JACK_BUILD_DEPENDS= jackit>0:audio/jack JACK_CMAKE_BOOL= USE_JACK PULSEAUDIO_BUILD_DEPENDS=pulseaudio>0:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE SNDIO_BUILD_DEPENDS= sndio>0:audio/sndio SNDIO_CMAKE_BOOL= USE_SNDIO SDL_CMAKE_BOOL= ENABLE_SDL2 SDL_PLIST_FILES=bin/${PORTNAME} \ bin/${PORTNAME}-room \ share/man/man6/${PORTNAME}.6.gz QT5_USES= desktop-file-utils qt:5 shared-mime-info QT5_USE= QT=qmake:build,buildtools:build,linguisttools:build,concurrent:build,core,gui,multimedia,widgets QT5_CMAKE_BOOL= ENABLE_QT ENABLE_QT_TRANSLATION QT5_PLIST_FILES=bin/${PORTNAME}-qt \ "@comment bin/${PORTNAME}-room" \ share/applications/${PORTNAME}.desktop \ share/icons/hicolor/scalable/apps/${PORTNAME}.svg \ share/man/man6/${PORTNAME}-qt.6.gz \ share/mime/packages/${PORTNAME}.xml .include post-patch: @${REINPLACE_CMD} -e '/check_submodules_present()/d' \ ${WRKSRC}/CMakeLists.txt @${REINPLACE_CMD} -e 's/@GIT_BRANCH@/master/' \ -e 's/@GIT_DESC@/${GH_TAGNAME}/' \ ${WRKSRC}/src/common/scm_rev.cpp.in -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/externals/boost/boost/container_hash/hash.hpp .endif post-configure: @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${_DISTDIR},} \ ${BUILD_WRKSRC}/dist/compatibility_list/ .include diff --git a/emulators/fs-uae/Makefile b/emulators/fs-uae/Makefile index 0d5ca8efe1b1..bcd215a3f984 100644 --- a/emulators/fs-uae/Makefile +++ b/emulators/fs-uae/Makefile @@ -1,60 +1,60 @@ PORTNAME= fs-uae PORTVERSION= 3.1.66 CATEGORIES= emulators MASTER_SITES= https://fs-uae.net/files/FS-UAE/Stable/${PORTVERSION}/ MAINTAINER= sirdice@gmail.com COMMENT= Amiga emulator WWW= https://fs-uae.net/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= zip:archivers/zip LIB_DEPENDS= libmpeg2.so:multimedia/libmpeg2 \ libopenal.so:audio/openal-soft \ libpng.so:graphics/png USES= compiler:c11 desktop-file-utils gettext gl gmake gnome \ localbase pkgconfig sdl shared-mime-info tar:xz xorg USE_SDL= sdl2 USE_GL= gl USE_GNOME= glib20 USE_XORG= x11 GNU_CONFIGURE= yes CFLAGS+= -Wno-c++11-narrowing LDFLAGS_i386= -Wl,-znotext USE_CXXSTD= gnu++98 OPTIONS_DEFINE= DOCS DEBUG OPTIONS_DEFINE_i386= JIT OPTIONS_DEFINE_amd64= JIT JIT_DESC= Enable JIT compiler (experimental) JIT_CONFIGURE_ENABLE= jit .include # The following is actually meant for lld 15.0 and later, but the ports # framework does not support LINKER_TYPE and LINKER_VERSION yet. -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" # Turn off checking of dynamic relocations, to avoid lld diagnostics about # possibly incorrect addend values. LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif # JIT is not supported on non-x86 make sure it's off .if ${ARCH} != amd64 && ${ARCH} != i386 CONFIGURE_ARGS+= --disable-jit .endif post-patch: @${REINPLACE_CMD} -e 's|= bind|= ::bind|' \ ${WRKSRC}/src/od-fs/bsdsocket_posix.cpp \ ${WRKSRC}/src/support/socket.cpp @${REINPLACE_CMD} -e 's|return NULL|return 0|' \ ${WRKSRC}/src/memory.cpp .include diff --git a/emulators/rpcs3/Makefile b/emulators/rpcs3/Makefile index a7154b7a3523..85dfba9e48ad 100644 --- a/emulators/rpcs3/Makefile +++ b/emulators/rpcs3/Makefile @@ -1,123 +1,100 @@ PORTNAME= rpcs3 DISTVERSIONPREFIX= v DISTVERSION= 0.0.32-16634 # git rev-list --count HEAD DISTVERSIONSUFFIX= -g363a4dbdef CATEGORIES= emulators wayland MAINTAINER= jbeich@FreeBSD.org COMMENT= PS3 emulator/debugger WWW= https://rpcs3.net/ LICENSE= APACHE20 ISCL GPLv2 MIT ZLIB LICENSE_COMB= multi LICENSE_FILE_ISCL= ${WRKSRC_cubeb}/LICENSE LICENSE_FILE_ZLIB= ${WRKSRC_asmjit}/LICENSE.md BUILD_DEPENDS= flatc:devel/flatbuffers LIB_DEPENDS= libxxhash.so:devel/xxhash \ libcurl.so:ftp/curl \ libpng.so:graphics/png \ libavcodec.so:multimedia/ffmpeg \ libpugixml.so:textproc/pugixml ONLY_FOR_ARCHS= aarch64 amd64 ONLY_FOR_ARCHS_REASON= requires int128 and SSE2 USE_GITHUB= yes GH_ACCOUNT= RPCS3 GH_TUPLE= RPCS3:hidapi:hidapi-0.14.0-2-g8b43a97:hidapi/3rdparty/hidapi/hidapi \ RPCS3:soundtouch:2.3.1-68-g394e1f5:soundtouch/3rdparty/SoundTouch/soundtouch \ asmjit:asmjit:416f735:asmjit/3rdparty/asmjit/asmjit \ facebook:zstd:v1.4.7-2181-g97291fc5:zstd/3rdparty/zstd/zstd \ jbeder:yaml-cpp:0.8.0-11-g456c68f:yamlcpp/3rdparty/yaml-cpp/yaml-cpp \ KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-323-ge867c06:spirv_headers/3rdparty/SPIRV/SPIRV-Headers \ KhronosGroup:SPIRV-Tools:v2023.5.rc1:spirv_tools/3rdparty/SPIRV/SPIRV-Tools \ KhronosGroup:glslang:13.1.1:glslang/3rdparty/glslang/glslang \ kcat:openal-soft:1.23.1:openal_soft/3rdparty/OpenAL/openal-soft \ kinetiknz:cubeb:cubeb-0.2-1425-g88585b6:cubeb/3rdparty/cubeb/cubeb \ miniupnp:miniupnp:miniupnpd_2_3_6:miniupnp/3rdparty/miniupnp/miniupnp \ nothings:stb:013ac3b:stb/3rdparty/stblib/stb \ wolfSSL:wolfssl:v5.7.0-stable:wolfssl/3rdparty/wolfssl/wolfssl USES= cmake elfctl gl iconv:wchar_t llvm:min=16,lib localbase:ldflags \ openal:soft pkgconfig python:build qt:6 xorg USE_GL= gl glew USE_QT= base multimedia svg USE_XORG= x11 CMAKE_ON= CMAKE_SKIP_RPATH ${CURL FFMPEG FLATBUFFERS LIBPNG PUGIXML XXHASH:L:S/^/USE_SYSTEM_/} CMAKE_ON+= BUNDLE_SPEEX # only used by cubeb tests CMAKE_OFF= USE_NATIVE_INSTRUCTIONS USE_PRECOMPILED_HEADERS LDFLAGS+= -Wl,--as-needed # GLU ELF_FEATURES= +wxneeded:bin/${PORTNAME} OPTIONS_DEFINE= ALSA EVDEV FAUDIO PULSEAUDIO JACK SDL SNDIO VULKAN OPTIONS_DEFAULT=EVDEV FAUDIO PULSEAUDIO JACK SDL SNDIO VULKAN ALSA_BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib ALSA_CMAKE_BOOL= USE_ALSA EVDEV_DESC= libevdev-based joystick support EVDEV_CMAKE_BOOL= USE_LIBEVDEV EVDEV_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto EVDEV_LIB_DEPENDS= libevdev.so:devel/libevdev \ libudev.so:devel/libudev-devd FAUDIO_DESC= FAudio audio support FAUDIO_LIB_DEPENDS= libFAudio.so:audio/faudio FAUDIO_CMAKE_BOOL= USE_FAUDIO USE_SYSTEM_FAUDIO JACK_BUILD_DEPENDS= jackit>0:audio/jack JACK_CMAKE_BOOL= USE_JACK PULSEAUDIO_BUILD_DEPENDS=pulseaudio>0:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE SDL_USES= sdl SDL_USE= SDL=sdl2 SDL_CMAKE_BOOL= USE_SDL USE_SYSTEM_SDL SNDIO_BUILD_DEPENDS= sndio>0:audio/sndio SNDIO_CMAKE_BOOL= USE_SNDIO VULKAN_DESC= Vulkan renderer VULKAN_BUILD_DEPENDS= ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers VULKAN_LIB_DEPENDS= libvulkan.so:graphics/vulkan-loader VULKAN_CMAKE_BOOL= USE_VULKAN # XXX Unbundle audio/rtmidi GH_TUPLE+= thestk:rtmidi:6.0.0:rtmidi/3rdparty/rtmidi/rtmidi ALSA_LIB_DEPENDS+= libasound.so:audio/alsa-lib ALSA_CMAKE_BOOL+= RTMIDI_API_ALSA JACK_LIB_DEPENDS+= libjack.so:audio/jack JACK_CMAKE_BOOL+= RTMIDI_API_JACK post-patch: @${REINPLACE_CMD} -e '/GIT_BRANCH/s/local_build/master/' \ -e '/GIT_FULL_BRANCH/s/local_build/${GH_ACCOUNT}\/${GH_PROJECT}\/master/' \ -e '/GIT_VERSION/s/local_build/${GH_TAGNAME:C/[^-]*-//}/' \ ${WRKSRC}/${PORTNAME}/git-version.cmake -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/emulators/virtualbox-ose-legacy/Makefile b/emulators/virtualbox-ose-legacy/Makefile index 2bcb4488401e..6fbc761566a2 100644 --- a/emulators/virtualbox-ose-legacy/Makefile +++ b/emulators/virtualbox-ose-legacy/Makefile @@ -1,421 +1,421 @@ PORTNAME= virtualbox-ose PORTVERSION= 5.2.44 PORTREVISION?= 19 CATEGORIES= emulators MASTER_SITES= https://download.oracle.com/virtualbox/${PORTVERSION}/:src \ LOCAL/bofh/emulators/virtualbox-ose-legacy:docs PKGNAMESUFFIX?= -legacy DISTFILES= VirtualBox-${PORTVERSION}${EXTRACT_SUFX}:src \ VirtualBox-docs-${PORTVERSION}${EXTRACT_SUFX}:docs EXTRACT_ONLY= VirtualBox-${PORTVERSION}${EXTRACT_SUFX} \ VirtualBox-docs-${PORTVERSION}${EXTRACT_SUFX} MAINTAINER= vbox@FreeBSD.org COMMENT= General-purpose full virtualizer for x86 hardware WWW= https://www.virtualbox.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING ONLY_FOR_ARCHS= amd64 i386 PATCH_DEPENDS+= ${LOCALBASE}/share/kBuild/tools/GXX3.kmk:devel/kBuild BUILD_DEPENDS= gtar:archivers/gtar \ kmk:devel/kBuild \ libIDL-config-2:devel/libIDL \ yasm:devel/yasm \ xsltproc:textproc/libxslt LIB_DEPENDS= libpng.so:graphics/png \ libcurl.so:ftp/curl RUN_DEPENDS= ${LOCALBASE}/etc/rc.d/vboxnet:emulators/virtualbox-ose-kmod-legacy USES= compiler:c++14-lang cpe gnome iconv pkgconfig ssl tar:bzip2 USE_GNOME= libxml2 CPE_VENDOR= oracle CPE_PRODUCT= vm_virtualbox HAS_CONFIGURE= yes CONFIGURE_ARGS= --disable-java --passive-mesa --disable-docs CONFIGURE_ARGS+= --with-gcc="${CC}" --with-g++="${CXX}" CONFLICTS_INSTALL= virtualbox-ose-additions-* \ virtualbox-ose-devel \ virtualbox-ose \ virtualbox-ose-lite WRKSRC= ${WRKDIR}/VirtualBox-${PORTVERSION} PORTSCOUT= limit:^5\. VBOXUSER?= vboxusers VBOXWSUSER?= vboxusers VBOXGROUP?= vboxusers USERS= ${VBOXUSER} GROUPS= ${VBOXGROUP} VBOX_DIR= ${PREFIX}/${VBOX_DIR_REL} VBOX_DIR_REL= lib/virtualbox VBOX_ETC= ${PREFIX}/etc/vbox VBOX_LINKS= VBoxVRDP VBOX_PROGS= VBoxAutostart VBoxBalloonCtrl VBoxBugReport VBoxHeadless \ VBoxManage VBOX_UTILS= VBoxExtPackHelperApp VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT \ VBoxSVC VBoxXPCOMIPCD OPTIONS_DEFINE= ALSA DBUS DEBUG DOCS GUESTADDITIONS NLS PULSEAUDIO \ PYTHON QT5 R0LOGGING UDPTUNNEL VDE VNC WEBSERVICE VPX X11 OPTIONS_DEFAULT= DBUS QT5 UDPTUNNEL VNC WEBSERVICE X11 OPTIONS_SUB= yes DEBUG_DESC= Debug symbols, additional logs and assertions GUESTADDITIONS_DESC= Build with Guest Additions NLS_DESC= Native language support (requires QT5) QT5_DESC= Build with QT5 frontend (requires X11) R0LOGGING_DESC= Enable R0 logging (requires DEBUG) UDPTUNNEL_DESC= Build with UDP tunnel support VDE_DESC= Build with VDE support VNC_DESC= Build with VNC support VPX_DESC= Use libvpx for video recording WEBSERVICE_DESC= Build Webservice ALSA_CONFIGURE_OFF= --disable-alsa ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib DBUS_CONFIGURE_OFF= --disable-dbus DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus DEBUG_CONFIGURE_ON= --build-debug NLS_IMPLIES= QT5 PULSEAUDIO_CONFIGURE_OFF= --disable-pulse PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PYTHON_USES= python PYTHON_USES_OFF= python:build PYTHON_USE= PYTHON=distutils,noegginfo,noflavors PYTHON_CONFIGURE_OFF= --disable-python PYTHON_VARS= pydistutils_pkgname=vboxapi pydistutils_pkgversion=1.0 QT5_USES= gl qmake:no_env qt:5 xorg QT5_USE= QT=buildtools:build,core,dbus,gui,linguisttools:build,opengl \ QT=printsupport,widgets,x11extras XORG=xcb GL=gl QT5_CONFIGURE_ON= --enable-qt5 QT5_CONFIGURE_OFF= --disable-qt QT5_IMPLIES= X11 R0LOGGING_IMPLIES= DEBUG UDPTUNNEL_CONFIGURE_OFF= --disable-udptunnel VDE_CONFIGURE_ON= --enable-vde VDE_RUN_DEPENDS= vde_switch:net/vde2 VNC_CONFIGURE_ON= --enable-vnc VNC_LIB_DEPENDS= libvncserver.so:net/libvncserver VPX_CONFIGURE_OFF= --disable-libvpx VPX_LIB_DEPENDS= libvpx.so:multimedia/libvpx WEBSERVICE_BUILD_DEPENDS= soapcpp2:devel/gsoap X11_USES= sdl xorg X11_USE= SDL=sdl XORG=x11,xcursor,xext,xinerama,xmu,xorgproto,xt X11_CONFIGURE_OFF= --build-headless PLIST_SUB= GUEST_VER=${PORTVERSION} \ PYTHON_VERU=${PYTHON_VER:S/./_/}${PYTHON_ABIVER} \ VBOXGROUP=${VBOXGROUP} SUB_LIST= VBOXDIR=${VBOX_DIR} \ VBOXGROUP=${VBOXGROUP} \ VBOXUSER=${VBOXUSER} \ VBOXWSUSER=${VBOXWSUSER} USE_RC_SUBR= vboxheadless vboxwatchdog .include .if ${SLAVE_PORT} == no CONFLICTS_INSTALL+= virtualbox-ose-nox11 OPTIONS_DEFAULT+= PYTHON .else CONFLICTS_INSTALL+= virtualbox-ose .endif .if ${ARCH} == "amd64" _ELF32!= kldstat -q -m elf32 && ${ECHO_CMD} yes || ${ECHO_CMD} no .endif .if ${PORT_OPTIONS:MDEBUG} KMK_BUILDTYPE= debug KMK_FLAGS+= BUILD_TYPE=debug .else KMK_BUILDTYPE= release .endif .if ${PORT_OPTIONS:MGUESTADDITIONS} GUESTADDITIONS= VBoxGuestAdditions_${PORTVERSION}.iso DISTFILES+= ${GUESTADDITIONS}:src LICENSE+= Additions LICENSE_COMB= multi LICENSE_NAME_Additions= Guest Additions LICENSE_PERMS_Additions= auto-accept LICENSE_DISTFILES_Additions= ${GUESTADDITIONS} .endif .if ${PORT_OPTIONS:MQT5} PLIST_SUB+= QT="" VBOX_PROGS+= VirtualBox VBOX_UTILS+= VBoxTestOGL VBOX_WITH_QT= 1 .else PLIST_SUB+= QT="@comment " .endif .if ${PORT_OPTIONS:MWEBSERVICE} USE_RC_SUBR+= vboxwebsrv VBOX_LINKS+= vboxwebsrv VBOX_UTILS+= vboxwebsrv webtest .endif .if ${PORT_OPTIONS:MX11} VBOX_PROGS+= VBoxSDL .endif .if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} PLIST_SUB+= SDK="" .else PLIST_SUB+= SDK="@comment " .endif .if ${ARCH} == i386 KMK_ARCH= freebsd.x86 PLIST_SUB+= I386="" .else KMK_ARCH= freebsd.${ARCH} PLIST_SUB+= I386="@comment " .endif PLIST_SUB+= ARCH="${KMK_ARCH}" KMK_BUILDDIR= ${WRKSRC}/out/${KMK_ARCH}/${KMK_BUILDTYPE} KMK_CONFIG= VBOX_LIBPATH_X11=${LOCALBASE} VBOX_FREEBSD_SRC=${SRC_BASE}/sys KMK_FLAGS+= -j${MAKE_JOBS_NUMBER} .include .if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD && \ - (${OSVERSION} < 1302505 || (${OSVERSION} >= 1400000 && ${OSVERSION} < 1400079)) + ${OSVERSION} >= 1400000 && ${OSVERSION} < 1400079 # llvm before 15 included in old versions of the FreeBSD 13 and 14 fails to compile # this legacy version of virtualbox-ose, force llvm 15 on those versions of the # FreeBSD: PR#265539, 279257. # Keep possibility to define different llvm via VBOX_LLVM_VER in make.conf. BUILD_DEPENDS+= clang${VBOX_LLVM_VER}:devel/llvm${VBOX_LLVM_VER} CC= clang${VBOX_LLVM_VER} CXX= clang++${VBOX_LLVM_VER} VBOX_LLVM_VER?= 15 .endif .if ${PYTHON_MAJOR_VER} >= 3 PLIST_SUB+= PYTHON_PYCDIR=/__pycache__/ \ PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc .else PLIST_SUB+= PYTHON_PYCDIR=/ \ PYTHON_PYCEXT=.pyc .endif .if ${SSL_DEFAULT} != base CONFIGURE_ARGS+= --with-openssl-dir="${OPENSSLBASE}" .endif pre-everything:: .if ${ARCH} == "amd64" .if ${_ELF32} != yes @${ECHO_MSG} 'Requires 32-bit runtime support in kernel.' @${ECHO_MSG} 'Rebuild kernel with "options COMPAT_FREEBSD32" and reboot.' @${FALSE} .elif !exists(/usr/lib32/libc.so) @${ECHO_MSG} 'Requires 32-bit libraries installed under /usr/lib32.' @${ECHO_MSG} 'Do: cd /usr/src; make build32 install32; service ldconfig restart' @${FALSE} .endif .endif post-patch: @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE_ARCH = ${VBOX_DIR}' > \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_DOCBOOK = ${DBKXSLDIR}' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_DOCBOOK_DTD = ${DBKXMLDIR}' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_SHARED_LIBS = ${VBOX_DIR}' >> \ ${WRKSRC}/LocalConfig.kmk # Please keep this even if using Clang to avoid repeated regressions. # PR 245048 @${ECHO_CMD} "VBOX_WITH_RUNPATH = ${_GCC_RUNTIME:D${_GCC_RUNTIME}\:}${VBOX_DIR}" >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE = ${DATADIR}' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_APP_DOCS = ${DOCSDIR}' >> ${WRKSRC}/LocalConfig.kmk .if ${SSL_DEFAULT} != base @${ECHO_CMD} 'VBOX_WITH_ALT_HASH_CODE = 1' >> ${WRKSRC}/LocalConfig.kmk .endif @${ECHO_CMD} 'VBOX_WITH_EXTPACK_VBOXDTRACE =' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_INSTALLER = 1' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_VBOXDRV =' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_TESTCASES =' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'SDK_VBOX_LIBPNG_INCS = ${PREFIX}/include/libpng' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'SDK_VBOX_LIBPNG_LIBS = png' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP = ${VBOX_WITH_QT}' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_DRAG_AND_DROP_GH = ${VBOX_WITH_QT}' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_VALIDATIONKIT =' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_WITH_X11_ADDITIONS =' >> ${WRKSRC}/LocalConfig.kmk .if ${PORT_OPTIONS:MR0LOGGING} @${ECHO_CMD} 'VBOX_WITH_R0_LOGGING = 1' >> ${WRKSRC}/LocalConfig.kmk .endif .if ${PORT_OPTIONS:MWEBSERVICE} @${ECHO_CMD} 'VBOX_WITH_WEBSERVICES = 1' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_GSOAP_INSTALLED = 1' >> ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_GSOAP = ${PREFIX}/lib/gsoap' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_GSOAP_BIN = ${PREFIX}/bin' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_PATH_GSOAP_IMPORT = ${PREFIX}/share/gsoap/import' >> \ ${WRKSRC}/LocalConfig.kmk @${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wshadow $$(VBOX_GCC_WARN) -Wno-long-long \ -Wno-dynamic-exception-spec -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION' >> \ ${WRKSRC}/LocalConfig.kmk @${REINPLACE_CMD} -E -e '/soap_socket_errno\(/s/(soap_socket_errno)(\([^)]+\))/\1/' \ ${WRKSRC}/src/VBox/Main/webservice/vboxweb.cpp .else @${ECHO_CMD} 'VBOX_GCC_PEDANTIC_CXX = -Wno-dynamic-exception-spec \ -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION' >> \ ${WRKSRC}/LocalConfig.kmk .endif @${REINPLACE_CMD} -e 's| -finline-limit=8000||' \ -e 's| -mpreferred-stack-boundary=2||' \ -e 's|%%PYTHON_VERSION%%|${PYTHON_VERSION}|' \ ${WRKSRC}/Config.kmk @${REINPLACE_CMD} -e 's| -fpermissive||' ${WRKSRC}/Config.kmk \ ${WRKSRC}/src/VBox/Main/webservice/Makefile.kmk @${ECHO_CMD} 'TOOL_VBoxGccFreeBSD_LD = ${CXX}' >> ${WRKSRC}/LocalConfig.kmk @${SED} -e 's|GXX3|VBoxGccFreeBSD|g' \ ${LOCALBASE}/share/kBuild/tools/GXX3.kmk > \ ${WRKSRC}/tools/kBuildTools/VBoxGccFreeBSD.kmk @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ ${WRKSRC}/Config.kmk ${WRKSRC}/configure \ ${WRKSRC}/kBuild/header.kmk ${WRKSRC}/kBuild/units/qt4.kmk \ ${WRKSRC}/kBuild/units/qt5.kmk ${WRKSRC}/kBuild/sdks/LIBSDL.kmk \ ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py @${REINPLACE_CMD} \ -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \ -e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \ ${WRKSRC}/configure .if empty(ICONV_LIB) @${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \ ${WRKSRC}/src/VBox/Runtime/Makefile.kmk @${ECHO_CMD} 'VBOX_ICONV_DEFS = LIBICONV_PLUG' >> ${WRKSRC}/LocalConfig.kmk .endif .if ${CHOSEN_COMPILER_TYPE} == clang && ${OPSYS} == FreeBSD && ${ARCH} == i386 @${ECHO_CMD} 'VBOX_FREEBSD = -fPIC' >> ${WRKSRC}/LocalConfig.kmk .endif @${REINPLACE_CMD} -e 's|%%VBOX_DIR%%|${VBOX_DIR}|g' \ -e 's|%%VBOX_ETC%%|${VBOX_ETC}|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh @${REINPLACE_CMD} \ -e 's|^versions =.*|versions = ["${PYTHON_VER}${PYTHON_ABIVER}"]|' \ ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py .if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400093 @${REINPLACE_CMD} -e 's|enum vtype|enum enum_vtype_uint8|g' \ ${WRKSRC}/src/VBox/Additions/freebsd/vboxvfs/vboxvfs*.[ch] .endif do-build: cd ${WRKSRC} && ${SH} -c '. ${WRKSRC}/env.sh && \ ${SETENV} ${MAKE_ENV} ${KMK_CONFIG} ${LOCALBASE}/bin/kmk ${KMK_FLAGS}' .if ${PORT_OPTIONS:MPYTHON} ${PYTHON_CMD} -mcompileall \ ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom .endif do-install: .if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} ${MKDIR} ${STAGEDIR}${DATADIR}/sdk .endif cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom && \ ${COPYTREE_SHARE} "idl samples" ${STAGEDIR}${DATADIR} ${MKDIR} ${STAGEDIR}${PREFIX}/include/virtualbox cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/include && \ ${COPYTREE_SHARE} "*" ${STAGEDIR}${PREFIX}/include/virtualbox ${MKDIR} ${STAGEDIR}${VBOX_DIR} cd ${KMK_BUILDDIR}/bin && ${COPYTREE_SHARE} \ "*.fd *.r0 *.rc *.so components" ${STAGEDIR}${VBOX_DIR} .if ${PORT_OPTIONS:MPYTHON} || ${PORT_OPTIONS:MWEBSERVICE} ${RLN} ${STAGEDIR}${DATADIR}/sdk ${STAGEDIR}${VBOX_DIR} .endif ${INSTALL_SCRIPT} ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh \ ${STAGEDIR}${VBOX_DIR} .for f in ${VBOX_PROGS} ${VBOX_UTILS} ${INSTALL_PROGRAM} ${KMK_BUILDDIR}/bin/${f} ${STAGEDIR}${VBOX_DIR} .endfor .for f in ${VBOX_PROGS} ${VBOX_LINKS} ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f} .endfor .for f in ${VBOX_PROGS} ${LN} -fs ../${VBOX_DIR_REL}/VBox.sh ${STAGEDIR}${PREFIX}/bin/${f:tl} .endfor .if ${PORT_OPTIONS:MGUESTADDITIONS} ${MKDIR} ${STAGEDIR}${VBOX_DIR}/additions ${INSTALL_DATA} ${DISTDIR}/${GUESTADDITIONS} \ ${STAGEDIR}${VBOX_DIR}/additions/ ${RLN} ${STAGEDIR}${VBOX_DIR}/additions/${GUESTADDITIONS} \ ${STAGEDIR}${VBOX_DIR}/additions/VBoxGuestAdditions.iso .endif .if ${PORT_OPTIONS:MDOCS} ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKDIR}/VirtualBox-docs-${PORTVERSION}/UserManual.pdf \ ${STAGEDIR}${DOCSDIR} .endif .if ${PORT_OPTIONS:MNLS} cd ${KMK_BUILDDIR}/obj/VirtualBox/qtnls && \ ${COPYTREE_SHARE} "*.qm" ${STAGEDIR}${DATADIR}/nls .endif .if ${PORT_OPTIONS:MPYTHON} cd ${KMK_BUILDDIR}/bin/sdk/installer && \ ${SETENV} VBOX_INSTALL_PATH="${VBOX_DIR}" \ ${PYTHON_CMD} vboxapisetup.py install --root=${STAGEDIR} @${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom cd ${KMK_BUILDDIR}/bin/sdk/bindings/xpcom/python/xpcom && \ ${COPYTREE_SHARE} "*" ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom @${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python ${RLN} ${STAGEDIR}${PYTHON_SITELIBDIR}/xpcom \ ${STAGEDIR}${DATADIR}/sdk/bindings/xpcom/python .endif .if ${PORT_OPTIONS:MQT5} ${INSTALL_DATA} \ ${WRKSRC}/src/VBox/Frontends/VirtualBox/images/OSE/VirtualBox_48px.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/VBox.png ${INSTALL_DATA} \ ${WRKSRC}/src/VBox/Installer/freebsd/virtualbox.desktop \ ${STAGEDIR}${PREFIX}/share/applications/virtualbox.desktop .endif .if ${PORT_OPTIONS:MVNC} ${MKDIR} ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH} ${INSTALL_DATA} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/ExtPack* \ ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/ ${INSTALL_LIB} ${KMK_BUILDDIR}/bin/ExtensionPacks/VNC/${KMK_ARCH}/* \ ${STAGEDIR}${VBOX_DIR}/ExtensionPacks/VNC/${KMK_ARCH}/ .endif .if ${PORT_OPTIONS:MWEBSERVICE} ${MKDIR} ${STAGEDIR}${DATADIR}/sdk/bindings/webservice ${INSTALL_DATA} ${KMK_BUILDDIR}/obj/webservice/vboxweb.wsdl \ ${STAGEDIR}${DATADIR}/sdk/bindings/webservice/ .endif post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/virtualbox/*.so \ ${STAGEDIR}${PREFIX}/lib/virtualbox/components/*.so .include diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile index c7fa47dd6319..48da3f999321 100644 --- a/emulators/yuzu/Makefile +++ b/emulators/yuzu/Makefile @@ -1,180 +1,163 @@ PORTNAME= yuzu PORTVERSION= s20240301 PORTREVISION= 2 CATEGORIES= emulators wayland .if make(makesum) MASTER_SITES= https://api.yuzu-emu.org/gamedb/?dummy=/:gamedb .else MASTER_SITES= LOCAL/jbeich:gamedb .endif MASTER_SITES+= https://codeberg.org/TxzK/${PORTNAME}/archive/${GH_TAGNAME}${EXTRACT_SUFX}?dummy=/ DISTFILES= ${PORTNAME}-s20230424/compatibility_list.json:gamedb DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} EXTRACT_ONLY= ${DISTFILES:N*\:gamedb:C/\:.*//} MAINTAINER= jbeich@FreeBSD.org COMMENT= Nintendo Switch emulator/debugger WWW= https://yuzu-emu.org/ LICENSE= APACHE20 BSD3CLAUSE GPLv3+ ISCL MIT UNLICENSE LICENSE_COMB= multi LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/externals/sirit/LICENSE.txt LICENSE_FILE_GPLv3+ = ${WRKSRC}/LICENSE.txt LICENSE_FILE_ISCL= ${WRKSRC}/externals/cubeb/LICENSE LICENSE_FILE_MIT= ${WRKSRC}/externals/sirit/externals/SPIRV-Headers/LICENSE ONLY_FOR_ARCHS= aarch64 amd64 ONLY_FOR_ARCHS_REASON= requires int128 and dynarmic backend # XXX Need Ryujinx or a Yuzu fork that regularly improves game compatibility DEPRECATED= Project discontinued BUILD_DEPENDS= boost-libs>0:devel/boost-libs \ nlohmann-json>0:devel/nlohmann-json \ simpleini>0:devel/simpleini \ xbyak>0:devel/xbyak \ glslangValidator:graphics/glslang \ vulkan-headers>0:graphics/vulkan-headers \ vulkan-utility-libraries>0:graphics/vulkan-utility-libraries LIB_DEPENDS= liblz4.so:archivers/liblz4 \ libzstd.so:archivers/zstd \ libopus.so:audio/opus \ libfmt.so:devel/libfmt \ libavcodec.so:multimedia/ffmpeg \ libenet.so:net/enet TEST_DEPENDS= catch2>0:devel/catch2 FLAVORS= qt6 qt5 qt5_PKGNAMESUFFIX= -qt5 qt5_CONFLICTS_INSTALL= ${PORTNAME} qt5_OPTIONS_SLAVE= QT5 qt5_OPTIONS_EXCLUDE= QT6 qt6_CONFLICTS_INSTALL= ${PORTNAME}-qt5 USE_GITHUB= nodefault GH_ACCOUNT= yuzu-mirror GH_TAGNAME= 15e6e48bef GH_TUPLE= yuzu-mirror:mbedtls:v2.16.9-115-g8c88150ca:mbedtls/externals/mbedtls \ yuzu-mirror:sirit:ab75463:sirit/externals/sirit \ GPUOpen-LibrariesAndSDKs:VulkanMemoryAllocator:v3.0.1-114-g2f382df:VulkanMemoryAllocator/externals/VulkanMemoryAllocator \ KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-201-gc214f6f:SPIRV_Headers/externals/sirit/externals/SPIRV-Headers \ yuzu-mirror:dynarmic:6.6.2-15-gba8192d8:dynarmic/externals/dynarmic \ merryhime:oaknut:2.0.1:oaknut/externals/oaknut \ arun11299:cpp-jwt:v1.4-18-g10ef573:cpp_jwt/externals/cpp-jwt \ arsenm:sanitizers-cmake:aab6948:sanitizers_cmake/externals/cubeb/cmake/sanitizers-cmake \ eggert:tz:2022g-11-g16ce126a:tz/externals/nx_tzdb/tzdb_to_nx/externals/tz/tz \ kinetiknz:cubeb:cubeb-0.2-1452-g48689ae:cubeb/externals/cubeb \ lat9nq:tzdb_to_nx:221202-15-g9792969:tzdb_to_nx/externals/nx_tzdb/tzdb_to_nx \ yhirose:cpp-httplib:v0.14.1:cpp_httplib/externals/cpp-httplib USES= cmake:testing elfctl localbase:ldflags pkgconfig sdl ssl USE_SDL= sdl2 WRKSRC= ${WRKDIR}/${PORTNAME} CMAKE_ON= Boost_USE_STATIC_LIBS CMAKE_ON+= BUNDLE_SPEEX # only used by cubeb tests CMAKE_ON+= CMAKE_DISABLE_FIND_PACKAGE_LLVM # only need Demangle but llvm* is huge CMAKE_OFF= YUZU_CHECK_SUBMODULES YUZU_USE_EXTERNAL_SDL2 CMAKE_OFF+= YUZU_USE_EXTERNAL_VULKAN_HEADERS YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES CMAKE_OFF+= HTTPLIB_USE_BROTLI_IF_AVAILABLE # unused by ENABLE_WEB_SERVICE CMAKE_OFF+= ${ARCH:Maarch64:C/.+/YUZU_USE_PRECOMPILED_HEADERS DYNARMIC_USE_PRECOMPILED_HEADERS/} CMAKE_OFF+= ${CMAKE_TESTING_ON} CMAKE_TESTING_ON= YUZU_TESTS LDFLAGS+= -Wl,--as-needed # Qt5Network ELF_FEATURES= ${PLIST_FILES:Mbin/*:S/^/+wxneeded:/} PLIST_FILES= bin/${PORTNAME}-cmd \ bin/${PORTNAME}-room OPTIONS_DEFINE= ALSA GUI PULSEAUDIO JACK LTO NLS SNDIO VAAPI VULKAN WEBENGINE OPTIONS_DEFAULT=PULSEAUDIO JACK LTO QT6 SNDIO VAAPI VULKAN WEBENGINE OPTIONS_SINGLE= GUI OPTIONS_SINGLE_GUI= QT5 QT6 OPTIONS_SLAVE= ${${FLAVOR}_OPTIONS_SLAVE} OPTIONS_EXCLUDE= ${${FLAVOR}_OPTIONS_EXCLUDE} ALSA_BUILD_DEPENDS= alsa-lib>0:audio/alsa-lib ALSA_CMAKE_BOOL= USE_ALSA GUI_USES= desktop-file-utils shared-mime-info GUI_CMAKE_BOOL= ENABLE_QT GUI_PLIST_FILES= bin/${PORTNAME} \ share/applications/org.yuzu_emu.yuzu.desktop \ share/icons/hicolor/scalable/apps/org.yuzu_emu.yuzu.svg \ share/metainfo/org.yuzu_emu.yuzu.metainfo.xml \ share/mime/packages/org.yuzu_emu.yuzu.xml JACK_BUILD_DEPENDS= jackit>0:audio/jack JACK_CMAKE_BOOL= USE_JACK LTO_CMAKE_BOOL= YUZU_ENABLE_LTO NLS_DESC= UI translations (implies ${NLS_IMPLIES}) NLS_USE= QT=${"${PORT_OPTIONS:MQT5}":?linguist:}tools:build NLS_CMAKE_BOOL= ENABLE_QT_TRANSLATION NLS_IMPLIES= GUI PULSEAUDIO_BUILD_DEPENDS=pulseaudio>0:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= USE_PULSE QT5_USES= qt:5 QT5_USE= QT=qmake:build,buildtools:build,concurrent:build,core,dbus,gui,multimedia,widgets QT5_IMPLIES= GUI QT6_USES= qt:6 QT6_USE= QT=base QT6_CMAKE_BOOL= ENABLE_QT6 QT6_IMPLIES= GUI SNDIO_BUILD_DEPENDS= sndio>0:audio/sndio SNDIO_CMAKE_BOOL= USE_SNDIO VAAPI_LIB_DEPENDS= libva.so:multimedia/libva VULKAN_DESC= Vulkan renderer VULKAN_RUN_DEPENDS= ${LOCALBASE}/lib/libvulkan.so:graphics/vulkan-loader WEBENGINE_DESC= Web applet support (implies ${WEBENGINE_IMPLIES}) WEBENGINE_USE= QT=webengine WEBENGINE_CMAKE_BOOL= YUZU_USE_QT_WEB_ENGINE WEBENGINE_IMPLIES= GUI post-extract: @${CP} ${DISTFILES:M*\:gamedb:C/\:.*//:S,^,${_DISTDIR},} \ ${WRKSRC}/dist/compatibility_list/ post-patch: @${REINPLACE_CMD} -e 's/@GIT_BRANCH@/master/' \ -e 's/@GIT_DESC@/${GH_TAGNAME}/' \ ${WRKSRC}/src/common/scm_rev.cpp.in # https://github.com/ConsoleKit2/ConsoleKit2/issues/150 @${REINPLACE_CMD} -e 's,/login1,/ConsoleKit/Manager,' \ -e 's,login1,ConsoleKit,' \ ${WRKSRC}/src/${PORTNAME}/main.cpp .ifdef DEPRECATED @${GREP} -Flr 'yuzu-emu' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \ -e 's,${WWW:S,/$,,},https://web.archive.org/web/20240304190805/&,g' \ -e 's,https://api.yuzu-emu.org,,g' \ -e 's,https://profile.yuzu-emu.org/,,g' \ -e 's,\(https://github.com\)/\(yuzu-emu\),\1/${GH_ACCOUNT},g' .endif post-patch-VAAPI-off: @${REINPLACE_CMD} -i .nova '/pkg_check.*libva/d' \ ${WRKSRC}/CMakeLists.txt -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ to avoid ABI mismatch in Qt -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS:M*Ninja*} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif - .include diff --git a/emulators/yuzu/distinfo b/emulators/yuzu/distinfo index 396114682318..426abfe00019 100644 --- a/emulators/yuzu/distinfo +++ b/emulators/yuzu/distinfo @@ -1,31 +1,29 @@ -TIMESTAMP = 1709737254 +TIMESTAMP = 1715283358 SHA256 (yuzu-s20230424/compatibility_list.json) = 382db629d6b060af722a27dfa9cd6bb60ac16a7544c58322f63aa1be4c0c0fac SIZE (yuzu-s20230424/compatibility_list.json) = 1801327 SHA256 (yuzu-s20240301.tar.gz) = 1f343ccf09bf53513655be968749ec5aca72d33e1825b6c262979e405a06d2a1 SIZE (yuzu-s20240301.tar.gz) = 7124470 SHA256 (yuzu-mirror-mbedtls-v2.16.9-115-g8c88150ca_GH0.tar.gz) = 8cd6d075b4da0ad5fb995eb37390e2e6088be8d41ab1cdfc7e7e4256bd991450 SIZE (yuzu-mirror-mbedtls-v2.16.9-115-g8c88150ca_GH0.tar.gz) = 2679189 SHA256 (yuzu-mirror-sirit-ab75463_GH0.tar.gz) = 6b61e265be182b7a78075fc1b98ccf80fd33008343205dd0e22a10a439c45319 SIZE (yuzu-mirror-sirit-ab75463_GH0.tar.gz) = 23818 SHA256 (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-v3.0.1-114-g2f382df_GH0.tar.gz) = 20ac76f32dd3236f9b66d1b4583393c35853b7ba2d77ea7f0cab753610415f9b SIZE (GPUOpen-LibrariesAndSDKs-VulkanMemoryAllocator-v3.0.1-114-g2f382df_GH0.tar.gz) = 877938 SHA256 (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-201-gc214f6f_GH0.tar.gz) = 5e32aefc599e6d26c2373b7296a37980b9c6c7ff6f636d5eee49f79b437e5a51 SIZE (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-201-gc214f6f_GH0.tar.gz) = 445472 SHA256 (yuzu-mirror-dynarmic-6.6.2-15-gba8192d8_GH0.tar.gz) = b44837dcb53e32afdccff1a82b24c952baf169b1726c54586946fdf23611680c SIZE (yuzu-mirror-dynarmic-6.6.2-15-gba8192d8_GH0.tar.gz) = 3744710 SHA256 (merryhime-oaknut-2.0.1_GH0.tar.gz) = f41fefd949f75c7cad43fc7ca1363a2a1b5b1a5a0f1e1cdebd5769bc5c0482c7 SIZE (merryhime-oaknut-2.0.1_GH0.tar.gz) = 86226 SHA256 (arun11299-cpp-jwt-v1.4-18-g10ef573_GH0.tar.gz) = f88855ae7e94954a8c34688f49eb63542c69496ec8138006a2cc8fc7a51eb8df SIZE (arun11299-cpp-jwt-v1.4-18-g10ef573_GH0.tar.gz) = 1246202 SHA256 (arsenm-sanitizers-cmake-aab6948_GH0.tar.gz) = d9009e17948aff769a6f6e16b52d4d8752c5cc2cab1e9c381d3a31fd1a680b58 SIZE (arsenm-sanitizers-cmake-aab6948_GH0.tar.gz) = 7240 SHA256 (eggert-tz-2022g-11-g16ce126a_GH0.tar.gz) = 1d1a5d867053ea55f526cb76f18c8fb8ae710188e9db2732fd85f8a557110e46 SIZE (eggert-tz-2022g-11-g16ce126a_GH0.tar.gz) = 594209 SHA256 (kinetiknz-cubeb-cubeb-0.2-1452-g48689ae_GH0.tar.gz) = c0f83a493f1d54a92e16baf56f27813ff294ce78bc42fbcc3935580852a624de SIZE (kinetiknz-cubeb-cubeb-0.2-1452-g48689ae_GH0.tar.gz) = 228346 SHA256 (lat9nq-tzdb_to_nx-221202-15-g9792969_GH0.tar.gz) = b661401eda279d0a3d43c3df87efe6f408694d9710b031e98efb732999599eed SIZE (lat9nq-tzdb_to_nx-221202-15-g9792969_GH0.tar.gz) = 8413 SHA256 (yhirose-cpp-httplib-v0.14.1_GH0.tar.gz) = 2d4fb5544da643e5d0a82585555d8b7502b4137eb321a4abbb075e21d2f00e96 SIZE (yhirose-cpp-httplib-v0.14.1_GH0.tar.gz) = 1148935 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/games/alienarena/Makefile b/games/alienarena/Makefile index 118cb2c7f6f7..09408e37b424 100644 --- a/games/alienarena/Makefile +++ b/games/alienarena/Makefile @@ -1,95 +1,95 @@ PORTNAME= alienarena DISTVERSION= 7.71.6 PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= games MAINTAINER= acm@FreeBSD.org COMMENT= Alien Arena (native version) WWW= https://alienarena.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/../docs/license.txt RUN_DEPENDS= ${LOCALBASE}/${DATADIR_REL}/arena/default.cfg:games/alienarena-data USES= compiler:c++11-lib desktop-file-utils dos2unix gmake localbase pkgconfig USE_CXXSTD= c++11 USE_GITHUB= yes GNU_CONFIGURE= yes CONFIGURE_ARGS+=--with-xf86vm \ --with-xf86dga \ --with-system-libode MAKE_ENV= WITH_DATADIR=yes WITH_LIBDIR=yes \ DATADIR="${DATADIR}" LIBDIR="${LIBDIR}" # Fix build with clang11 CFLAGS+= -fcommon -Wno-error=int-conversion EXTRACT_AFTER_ARGS= --exclude "data1" SUB_FILES= pkg-message CONFIGURE_WRKSRC=${WRKDIR}/${PORTNAME}-${DISTVERSION} WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}/source PLIST_SUB+= LIBDIR=${LIBDIR:S|^${PREFIX}/||} OPTIONS_DEFAULT= CLIENT DEDICATED OPTIONS_MULTI= FLAVOR OPTIONS_MULTI_FLAVOR= CLIENT DEDICATED OPTIONS_SUB= yes CLIENT_DESC= Build client DEDICATED_DESC= Build dedicated server CLIENT_LIB_DEPENDS= libcurl.so:ftp/curl \ libfreetype.so:print/freetype2 \ libogg.so:audio/libogg \ libpng.so:graphics/png \ libvorbis.so:audio/libvorbis \ libode.so:devel/ode CLIENT_USES= gl jpeg openal:soft,alut minizip xorg CLIENT_USE= GL=glu XORG=x11,xxf86dga,xxf86vm LIBDIR= ${PREFIX}/lib/${PORTNAME} .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .if ! ${PORT_OPTIONS:MCLIENT} && ${PORT_OPTIONS:MDEDICATED} CONFIGURE_ARGS+=--disable-client .endif post-patch: @${REINPLACE_CMD} -e "s|(CCLD)|(CXX)|g" ${WRKSRC}/Makefile.in @${REINPLACE_CMD} -e "s|malloc.h|stdlib.h|g" ${WRKSRC}/client/snd_openal.c @${REINPLACE_CMD} -e "s|.codered|.config/alienarena|g" ${WRKSRC}/qcommon/qcommon.h @${REINPLACE_CMD} -e "s|/usr/games/alien-arena|${PORTNAME}|g" ${WRKSRC}/../unix_dist/alien-arena.desktop # Resolve name collision with jpeg-8 ${REINPLACE_CMD} -e 's|jpeg_mem_src|local_jpeg_mem_src|' \ ${WRKSRC}/ref_gl/r_image.c ${REINPLACE_CMD} -e 's|inline void IQM_DrawVBO|void IQM_DrawVBO|' \ ${WRKSRC}/ref_gl/r_iqm.c do-install: ${MKDIR} ${STAGEDIR}${LIBDIR}/arena ${STAGEDIR}${LIBDIR}/data1 ${LN} -sf ${DATADIR}/arena/* ${STAGEDIR}${LIBDIR}/arena ${LN} -sf ${DATADIR}/data1/* ${STAGEDIR}${LIBDIR}/data1 do-install-CLIENT-on: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME} ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps/ ${INSTALL_DATA} ${WRKSRC}/../unix_dist/alien-arena.desktop ${STAGEDIR}${DESKTOPDIR}/${PORTNAME}.desktop ${INSTALL_DATA} ${WRKSRC}/../unix_dist/alien-arena.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/256x256/apps/ do-install-DEDICATED-on: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-ded \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME}-ded .include diff --git a/games/assaultcube/Makefile b/games/assaultcube/Makefile index 6a48b1ece42e..4cf7d35c0548 100644 --- a/games/assaultcube/Makefile +++ b/games/assaultcube/Makefile @@ -1,90 +1,90 @@ PORTNAME= assaultcube PORTVERSION= 1.3.0.2 CATEGORIES= games MAINTAINER= kevinz5000@gmail.com COMMENT= Free, multiplayer, first-person shooter game based on the CUBE engine WWW= https://assault.cubers.net/ LICENSE= ACUBE CUBE MIT OTHER LICENSE_COMB= multi LICENSE_NAME_ACUBE= AssaultCube ZLIB-like license with additions LICENSE_NAME_CUBE= Cube game engine ZLIB-like license with additions LICENSE_NAME_OTHER= various package licences LICENSE_FILE_ACUBE= ${WRKSRC}/source/README.txt LICENSE_FILE_CUBE= ${WRKSRC}/source/README_CUBEENGINE.txt LICENSE_FILE_OTHER= ${WRKSRC}/docs/package_copyrights.txt LICENSE_PERMS_ACUBE= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept LICENSE_PERMS_CUBE= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept LICENSE_PERMS_OTHER= dist-mirror pkg-mirror auto-accept USES= compiler:c++11-lang gmake tar:bzip2 USE_GITHUB= yes GH_ACCOUNT= assaultcube GH_PROJECT= AC GH_TAGNAME= v1.3.0.2 LDFLAGS_i386= -Wl,-znotext SUB_FILES= ${PLIST_FILES:Mbin/*:T} BUILD_WRKSRC= ${WRKSRC}/source/src PLIST_DIRS= ${DATADIR}/packages/maps/servermaps/incoming PORTDATA= config packages OPTIONS_DEFAULT= CLIENT DEDICATED OPTIONS_MULTI= BUILD OPTIONS_MULTI_BUILD= CLIENT DEDICATED #MASTER is currently broken CLIENT_DESC= Build client DEDICATED_DESC= Build dedicated server CLIENT_LIB_DEPENDS= libvorbisfile.so:audio/libvorbis \ libcurl.so:ftp/curl CLIENT_USES= desktop-file-utils gettext-runtime gl openal:al sdl \ xorg CLIENT_USE= GL=gl SDL=sdl2,image2 XORG=x11 CLIENT_ALL_TARGET= client CLIENT_DESKTOP_ENTRIES= "AssaultCube" "${COMMENT}" \ "${PORTNAME}" "${PORTNAME}_client" \ "Game;" false CLIENT_PLIST_FILES= bin/${PORTNAME}_client libexec/${PORTNAME}_client \ share/pixmaps/${PORTNAME}.png DEDICATED_ALL_TARGET= server DEDICATED_PLIST_FILES= bin/${PORTNAME}_server libexec/${PORTNAME}_server #MASTER_DESC= Build master server #MASTER_ALL_TARGET= master #MASTER_PLIST_FILES= bin/${PORTNAME}_master libexec/${PORTNAME}_master .include -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" LDFLAGS_i386+=--no-check-dynamic-relocations .endif post-patch: .SILENT ${REINPLACE_CMD} -e '/^CXXFLAGS=/d ; /^CXX=/d ; /^CLIENT_PCH/d ; \ /^INCLUDES=/s|$$| -I$$(LOCALBASE)/include| ; \ s|-I/usr/include || ; \ s|sdl-config|$$(SDL_CONFIG)| ; \ s|$$(USRLIB)|$$(LOCALBASE)/lib| ; \ /^CLIENT_LIBS=/s|$$| $$(LDFLAGS) -lintl| ; \ /^SERVER_LIBS=/s|$$| $$(LDFLAGS) -L$$(LOCALBASE)/lib|' \ ${BUILD_WRKSRC}/Makefile do-install: (cd ${WRKSRC} && ${COPYTREE_SHARE} "${PORTDATA}" ${STAGEDIR}${DATADIR}) do-install-CLIENT-on: ${INSTALL_DATA} ${WRKSRC}/packages/misc/icon.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.png .for f in client master server post-install-${f:S|server|DEDICATED|:tu}-on: ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}_${f} ${STAGEDIR}${PREFIX}/bin ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/ac_${f} \ ${STAGEDIR}${PREFIX}/libexec/${PORTNAME}_${f} .endfor .include diff --git a/games/chessx/Makefile b/games/chessx/Makefile index 9b92171f53eb..308ef96c7679 100644 --- a/games/chessx/Makefile +++ b/games/chessx/Makefile @@ -1,45 +1,45 @@ PORTNAME= chessx DISTVERSION= 1.6.0 CATEGORIES= games MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${DISTVERSION} MAINTAINER= alexey@pentode.fi COMMENT= Qt 5 chess database application WWW= https://chessx.sourceforge.io/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING.md USES= compiler:c++11-lang desktop-file-utils gl gmake qmake qt:5 tar:tgz USE_GL= gl USE_QT= concurrent core gui multimedia network opengl printsupport svg \ widgets xml buildtools:build linguisttools:build speech PLIST_FILES= bin/chessx \ share/applications/chessx.desktop \ share/pixmaps/chessx.png \ share/metainfo/io.sourceforge.ChessX.metainfo.xml \ share/icons/hicolor/128x128/apps/chessx.png \ share/icons/hicolor/32x32/apps/chessx-32.png \ share/icons/hicolor/64x64/apps/chessx-64.png OPTIONS_DEFINE= CRAFTY STOCKFISH CRAFTY_DESC= Install Crafty Chess Application STOCKFISH_DESC= Install Stockfish Chess Engine CRAFTY_RUN_DEPENDS= crafty:games/crafty STOCKFISH_RUN_DEPENDS= stockfish:games/stockfish .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::binary_function|std::__binary_function|' \ ${WRKSRC}/src/database/polyglotdatabase.cpp .endif post-configure: ( cd ${BUILD_WRKSRC} && ${LRELEASE} ${WRKSRC}/${PORTNAME}.pro ) .include diff --git a/games/flightgear/Makefile b/games/flightgear/Makefile index 4cff605d4637..9c8924ba3f82 100644 --- a/games/flightgear/Makefile +++ b/games/flightgear/Makefile @@ -1,66 +1,66 @@ PORTNAME= flightgear PORTVERSION= 2020.3.19 PORTREVISION= 1 CATEGORIES= games MASTER_SITES= SF/flightgear/release-${PORTVERSION:R} MAINTAINER= martymac@FreeBSD.org COMMENT= FlightGear flight simulator WWW= https://www.flightgear.org/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libpng.so:graphics/png \ libboost_thread.so:devel/boost-libs \ libfltk.so:x11-toolkits/fltk \ libfreetype.so:print/freetype2 \ libosg.so:graphics/osg \ libspeex.so:audio/speex \ libspeexdsp.so:audio/speexdsp \ libcurl.so:ftp/curl \ libudev.so:devel/libudev-devd \ libexpat.so:textproc/expat2 \ libSimGearCore.so:devel/simgear BUILD_DEPENDS= ${LOCALBASE}/lib/libplibsl.a:x11-toolkits/plib \ ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \ ${LOCALBASE}/share/flightgear/version:games/flightgear-data RUN_DEPENDS= ${LOCALBASE}/lib/libplibsl.a:x11-toolkits/plib \ ${LOCALBASE}/share/flightgear/version:games/flightgear-data # Disable ninja, see https://sourceforge.net/p/flightgear/codetickets/2118/ USES= alias cmake:noninja compiler:c++11-lang cpe dos2unix gl jpeg \ openal:al,alut sqlite tar:bzip2 xorg USE_XORG= ice sm x11 xext xft xi xinerama xmu xt USE_GL= gl glew glu glut DOS2UNIX_REGEX= .*\.(c|h|cxx|cpp|hxx|hpp) CMAKE_ARGS+= -DSYSTEM_SQLITE:BOOL=ON \ -DENABLE_HID_INPUT:BOOL=OFF \ -DFG_DATA_DIR:PATH=${LOCALBASE}/share/${PORTNAME} \ -DFGCOM_DATA_PATH:PATH=${DATADIR} LDFLAGS+= -L${LOCALBASE}/lib LDFLAGS_i386= -Wl,-znotext OPTIONS_DEFINE= DBUS QT5 OPTIONS_DEFAULT= DBUS QT5 DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus DBUS_USES= pkgconfig DBUS_CMAKE_ON= -DUSE_DBUS:BOOL=ON DBUS_CMAKE_OFF= -DUSE_DBUS:BOOL=OFF QT5_CMAKE_ON= -DENABLE_QT:BOOL=ON QT5_CMAKE_OFF= -DENABLE_QT:BOOL=OFF QT5_USES= qt:5 QT5_USE= QT=core,buildtools,linguisttools,gui,declarative,network,qmake,widgets,svg post-patch: # Avoid conflict with C++20 - used version file is flightgear-version @${RM} ${WRKSRC}/version .include -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif .include diff --git a/games/libretro-bluemsx/Makefile b/games/libretro-bluemsx/Makefile index 7398a2673529..954bb2c0b08e 100644 --- a/games/libretro-bluemsx/Makefile +++ b/games/libretro-bluemsx/Makefile @@ -1,33 +1,31 @@ PORTNAME= libretro-bluemsx DISTVERSION= 0.20230417 CATEGORIES= games MAINTAINER= bofh@FreeBSD.org COMMENT= Port of blueMSX to the libretro API WWW= https://github.com/libretro/blueMSX-libretro LICENSE= GPLv3 USES= compiler:c++11-lib gmake USE_GITHUB= yes GH_ACCOUNT= libretro GH_PROJECT= blueMSX-libretro GH_TAGNAME= e21bf74bddb79ad1bbe20b4d964e7515269c669b USE_LDCONFIG= yes PLIST_FILES= lib/libretro/bluemsx_libretro.so .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=int-conversion -.if ${COMPILER_VERSION} >= 160 CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif -.endif do-install: ${MKDIR} ${STAGEDIR}/${PREFIX}/lib/libretro ${INSTALL_LIB} ${WRKSRC}/bluemsx_libretro.so ${STAGEDIR}/${PREFIX}/lib/libretro .include diff --git a/games/libretro-pcsx_rearmed/Makefile b/games/libretro-pcsx_rearmed/Makefile index f8d4e798e26c..e8369a662c9a 100644 --- a/games/libretro-pcsx_rearmed/Makefile +++ b/games/libretro-pcsx_rearmed/Makefile @@ -1,37 +1,37 @@ PORTNAME= libretro-pcsx_rearmed DISTVERSION= 0.20231025 CATEGORIES= games MAINTAINER= ports@FreeBSD.org COMMENT= Fork of PCSX with ARM optimizations WWW= https://github.com/libretro/pcsx_rearmed LICENSE= GPLv2 USES= compiler:c++11-lib gmake gl USE_LDCONFIG= yes USE_GL= gl USE_GITHUB= yes GH_ACCOUNT= libretro GH_PROJECT= pcsx_rearmed GH_TAGNAME= 2636d7c22592b7e926af67144ab2feee18ecd53d PLIST_FILES= lib/libretro/pcsx_rearmed_libretro.so MAKEFILE= Makefile.libretro .include .if ${ARCH:Marmv?} MAKE_ARGS+= DYNAREC=ari64 ARCH=arm .endif -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif do-install: ${MKDIR} ${STAGEDIR}/${PREFIX}/lib/libretro ${INSTALL_LIB} ${WRKSRC}/pcsx_rearmed_libretro.so ${STAGEDIR}/${PREFIX}/lib/libretro .include diff --git a/games/megaglest/Makefile b/games/megaglest/Makefile index 7076d7f6fe27..608b8ad3d993 100644 --- a/games/megaglest/Makefile +++ b/games/megaglest/Makefile @@ -1,91 +1,91 @@ PORTNAME= megaglest PORTVERSION= 3.13.0 PORTREVISION= 11 CATEGORIES= games MAINTAINER= monwarez@mailoo.org COMMENT= Open source 3D real-time strategy game WWW= https://megaglest.org/ LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/docs/gnu_gpl_3.0.txt LIB_DEPENDS= libcurl.so:ftp/curl \ libpng.so:graphics/png \ libftgl.so:graphics/ftgl \ libircclient.so:irc/libircclient \ libvorbis.so:audio/libvorbis \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libminiupnpc.so:net/miniupnpc BUILD_DEPENDS= ${LOCALBASE}/include/miniupnpc/miniupnpc.h:net/miniupnpc RUN_DEPENDS= ${LOCALBASE}/${DATADIR_REL}/tutorials/2_basic_tutorial/2_basic_tutorial.xml:games/megaglest-data USE_GITHUB= yes GH_ACCOUNT= MegaGlest GH_PROJECT= megaglest-source SUB_FILES= pkg-message USES= cmake:insource compiler:c++11-lib display:build dos2unix jpeg lua \ openal:al,alut pkgconfig ssl localbase:ldflags sdl gl xorg USE_GL= glew gl glu USE_SDL= sdl2 USE_XORG= sm ice x11 xext USE_CXXSTD= c++11 LDFLAGS+= -lssl -lcrypto LDFLAGS_i386= -Wl,-znotext OPTIONS_DEFINE= EDITOR DOCS VIEWER OPTIONS_SUB= yes EDITOR_DESC= Install MegaGlest Editor VIEWER_DESC= Install Megaglest G3D viewer EDITOR_CMAKE_BOOL= BUILD_MEGAGLEST_MAP_EDITOR EDITOR_USE= WX=3.0 VIEWER_CMAKE_BOOL= BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS \ BUILD_MEGAGLEST_MODEL_VIEWER VIEWER_USE= WX=3.0 .include # The following is actually meant for lld 15.0 and later, but the ports # framework does not support LINKER_TYPE and LINKER_VERSION yet. -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" # Turn off checking of dynamic relocations, to avoid lld diagnostics about # possibly incorrect addend values. LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif post-patch: @${REINPLACE_CMD} -e 's,/usr/local/include/lua51,${LUA_INCDIR},g ; \ s,/usr/local/lib/lua51,${LUA_LIBDIR},g ; \ s,lua5.2,lua-${LUA_VER},g' \ ${WRKSRC}/mk/cmake/Modules/FindLUA.cmake do-install: @${MKDIR} ${STAGEDIR}${DATADIR} @${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${INSTALL_DATA} ${WRKSRC}/mk/shared/megaglest.ico ${STAGEDIR}${PREFIX}/share/pixmaps/ ${INSTALL_PROGRAM} ${WRKSRC}/source/glest_game/megaglest ${STAGEDIR}${PREFIX}/bin/${PORTNAME} .for f in mk/linux/glest.ini mk/shared/glestkeys.ini mk/shared/servers.ini ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DATADIR} .endfor do-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} .for f in docs/AUTHORS.source_code.txt docs/CHANGELOG.txt docs/README.txt docs/COPYRIGHT.source_code.txt ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}${DOCSDIR} .endfor do-install-EDITOR-on: ${INSTALL_PROGRAM} ${WRKSRC}/source/glest_map_editor/megaglest_editor ${STAGEDIR}${PREFIX}/bin/megaglest_editor ${INSTALL_DATA} ${WRKSRC}/mk/shared/editor.ico ${STAGEDIR}${PREFIX}/share/pixmaps/ do-install-VIEWER-on: ${INSTALL_PROGRAM} ${WRKSRC}/source/g3d_viewer/megaglest_g3dviewer ${STAGEDIR}${PREFIX}/bin/megaglest_g3dviewer ${INSTALL_DATA} ${WRKSRC}/mk/shared/g3dviewer.ico ${STAGEDIR}${PREFIX}/share/pixmaps/ .include diff --git a/games/openclonk/Makefile b/games/openclonk/Makefile index ea14d9336a88..400eb9628af3 100644 --- a/games/openclonk/Makefile +++ b/games/openclonk/Makefile @@ -1,49 +1,49 @@ PORTNAME= openclonk DISTVERSION= 8.1 PORTREVISION= 4 DISTVERSIONSUFFIX= -src CATEGORIES= games MASTER_SITES= http://www.openclonk.org/builds/release/${DISTVERSION}/ MAINTAINER= kevinz5000@gmail.com COMMENT= Multiplayer action game involving small and nimble humanoids WWW= https://www.openclonk.org/ LICENSE= ISCL CC0-1.0 LICENSE_COMB= multi LICENSE_FILE_ISCL= ${WRKSRC}/COPYING BROKEN_aarch64= fails to compile: mmintrin.h:50:12: invalid conversion between vector type '__m64' (vector of 1 'long long' value) and integer type 'int' of different size BROKEN_powerpc64= fails to compile: C4Texture.cpp:260:13: error: 'stoul' is not a member of 'std' LIB_DEPENDS= libalut.so:audio/freealut \ libfreetype.so:print/freetype2 \ libminiupnpc.so:net/miniupnpc \ libogg.so:audio/libogg \ libpng.so:graphics/png \ libtinyxml.so:textproc/tinyxml \ libvorbis.so:audio/libvorbis WRKSRC= ${WRKDIR}/openclonk-release-${PORTVERSION}-src # make install has parallel issues with ninja USES= cmake:noninja compiler:c++14-lang desktop-file-utils gl gnome jpeg openal \ pkgconfig sdl tar:bzip2 xorg USE_GL= gl glew glu USE_SDL= sdl2 USE_XORG= x11 xpm CMAKE_ARGS= -DAudio_TK:STRING="OpenAL" CFLAGS_powerpc64le= -DNO_WARN_X86_INTRINSICS LDFLAGS_i386= -Wl,-znotext .include -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif post-patch: @${REINPLACE_CMD} -e 's|DESTINATION games|DESTINATION bin|' \ -e 's|share/games|share|' ${WRKSRC}/CMakeLists.txt .include diff --git a/games/trigger-rally/Makefile b/games/trigger-rally/Makefile index 0e59cb1b850d..47121c329ba4 100644 --- a/games/trigger-rally/Makefile +++ b/games/trigger-rally/Makefile @@ -1,66 +1,66 @@ PORTNAME= trigger-rally PORTVERSION= 0.6.6.1 PORTREVISION= 6 CATEGORIES= games MASTER_SITES= SF/trigger-rally/trigger-${PORTVERSION} MAINTAINER= alfix86@gmail.com COMMENT= Rally car racing game WWW= http://trigger-rally.sourceforge.net LICENSE= GPLv2 LICENSE_FILE= ${WORKINGSRC}/doc/COPYING.txt LIB_DEPENDS= libphysfs.so:devel/physfs LIB_DEPENDS+= libalut.so:audio/freealut LIB_DEPENDS+= libtinyxml2.so:textproc/tinyxml2 USES= compiler:c++11-lang gmake openal:al,alut sdl gl gnome USE_SDL= image2 USE_GL= glu glew MAKEFILE= GNUmakefile ALL_TARGET= build LDFLAGS_i386= -Wl,-znotext WRKSRC_SUBDIR= src WORKINGSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION} DATADIR= ${PREFIX}/share/games/trigger-rally DESKTOP_ENTRIES="Trigger" "" "trigger" \ "trigger-rally" "" false PORTDOCS= README-stereo.txt README.txt DATA_AUTHORS.txt OPTIONS_DEFINE= DOCS .include # The following is actually meant for lld 15.0 and later, but the ports # framework does not support LINKER_TYPE and LINKER_VERSION yet. -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" # Turn off checking of dynamic relocations, to avoid lld diagnostics about # possibly incorrect addend values. LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif post-patch: @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/Trigger/main.cpp do-install: ${INSTALL_PROGRAM} ${WORKINGSRC}/bin/trigger-rally ${STAGEDIR}${PREFIX}/bin ${MKDIR} ${STAGEDIR}${DATADIR} cd ${WORKINGSRC}/bin && ${CP} trigger-rally.config.defs ${STAGEDIR}${DATADIR} ${MKDIR} ${STAGEDIR}${DOCSDIR} cd ${WORKINGSRC}/doc && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} cd ${WORKINGSRC}/data && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} .for i in 16 22 24 32 36 48 64 72 96 128 192 256 @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/ && \ ${MV} ${STAGEDIR}${DATADIR}/icon/trigger-${i}.png \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/${i}x${i}/apps/trigger.png .endfor ${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/ && \ ${MV} ${STAGEDIR}${DATADIR}/icon/trigger-rally-icons.svg \ ${STAGEDIR}${PREFIX}/share/icons/hicolor/scalable/apps/trigger-rally-icons.svg .include diff --git a/graphics/nvidia-drm-510-kmod/Makefile b/graphics/nvidia-drm-510-kmod/Makefile index f63043644036..8bbc929b997e 100644 --- a/graphics/nvidia-drm-510-kmod/Makefile +++ b/graphics/nvidia-drm-510-kmod/Makefile @@ -1,18 +1,13 @@ PORTNAME= nvidia-drm-510-kmod PORTREVISION= 1 CATEGORIES= graphics BUILD_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-510-kmod RUN_DEPENDS+= ${KMODDIR}/drm.ko:graphics/drm-510-kmod CONFLICTS_INSTALL= nvidia-drm-515-kmod nvidia-drm-61-kmod .include "${.CURDIR}/../drm-510-kmod/Makefile.version" .include "${.CURDIR}/../nvidia-drm-kmod/Makefile.common" .include -# handle incorrect get_user_pages definitions in 13.2 -.if ${OSVERSION} < 1303000 -EXTRA_PATCHES= ${PATCHDIR}/extra-patch-conftest.sh -.endif - .include diff --git a/graphics/nvidia-drm-510-kmod/files/extra-patch-conftest.sh b/graphics/nvidia-drm-510-kmod/files/extra-patch-conftest.sh deleted file mode 100644 index 794b0a6647ae..000000000000 --- a/graphics/nvidia-drm-510-kmod/files/extra-patch-conftest.sh +++ /dev/null @@ -1,83 +0,0 @@ ---- conftest.sh.orig 2024-03-14 18:29:50 UTC -+++ conftest.sh -@@ -2627,7 +2627,7 @@ compile_test() { - #include - long get_user_pages(unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas) { - return 0; -@@ -2655,7 +2655,7 @@ compile_test() { - struct mm_struct *mm, - unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas) { - return 0; -@@ -2679,7 +2679,7 @@ compile_test() { - #include - long get_user_pages(unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages) { - return 0; - }" > conftest$$.c -@@ -2852,7 +2852,7 @@ compile_test() { - struct mm_struct *mm, - unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas, - int *locked) { -@@ -2877,7 +2877,7 @@ compile_test() { - long get_user_pages_remote(struct mm_struct *mm, - unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas, - int *locked) { -@@ -2901,7 +2901,7 @@ compile_test() { - long get_user_pages_remote(struct mm_struct *mm, - unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - int *locked) { - return 0; -@@ -2969,7 +2969,7 @@ compile_test() { - #include - long pin_user_pages(unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas) { - return 0; -@@ -3055,7 +3055,7 @@ compile_test() { - struct mm_struct *mm, - unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas, - int *locked) { -@@ -3077,7 +3077,7 @@ compile_test() { - long pin_user_pages_remote(struct mm_struct *mm, - unsigned long start, - unsigned long nr_pages, -- unsigned int gup_flags, -+ int gup_flags, - struct page **pages, - struct vm_area_struct **vmas, - int *locked) { diff --git a/graphics/wrapland/Makefile b/graphics/wrapland/Makefile index cf6427b44fa4..16e6ac9523fb 100644 --- a/graphics/wrapland/Makefile +++ b/graphics/wrapland/Makefile @@ -1,52 +1,29 @@ PORTNAME= wrapland DISTVERSIONPREFIX= v DISTVERSION= 0.601.0 CATEGORIES= graphics MAINTAINER= jbeich@FreeBSD.org COMMENT= Qt/C++ library wrapping libwayland WWW= https://github.com/winft/wrapland LICENSE= LGPL21+ LICENSE_FILE= ${WRKSRC}/COPYING.LIB BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ microsoft-gsl>0:devel/microsoft-gsl \ wayland-protocols>=1.27:graphics/wayland-protocols LIB_DEPENDS= libwayland-client.so:graphics/wayland RUN_DEPENDS= microsoft-gsl>0:devel/microsoft-gsl USES= cmake:testing gl kde:6 pkgconfig qt:6 USE_GITHUB= yes USE_GL= egl USE_KDE= ecm:build USE_LDCONFIG= yes USE_QT= base GH_ACCOUNT= winft LDFLAGS+= -Wl,--as-needed # GL, xkbcommon PLIST_SUB= VERSION=${PORTVERSION} -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/graphics/wrapland/distinfo b/graphics/wrapland/distinfo index 540bd657e871..3e44cb9c73c7 100644 --- a/graphics/wrapland/distinfo +++ b/graphics/wrapland/distinfo @@ -1,5 +1,3 @@ TIMESTAMP = 1718810495 SHA256 (winft-wrapland-v0.601.0_GH0.tar.gz) = 46b39f09c3fb8f3effb21955d75f26ea6f79d50f516f7116453c3bc4a3a5eb8b SIZE (winft-wrapland-v0.601.0_GH0.tar.gz) = 562166 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/java/eclipse/Makefile b/java/eclipse/Makefile index fd276415a85e..2f314aaf89ab 100644 --- a/java/eclipse/Makefile +++ b/java/eclipse/Makefile @@ -1,95 +1,95 @@ PORTNAME= eclipse PORTVERSION= 4.24 PORTREVISION= 2 CATEGORIES= java devel # Tag's Timestamp on eclipse-platform/eclipse.platform.releng.aggregator github.com ECLIPSE_TAG= R4_24 ECLIPSE_TSTAMP= 20220616-0004 DIST_SUBDIR= ${PORTNAME} MAINTAINER= ports@FreeBSD.org COMMENT= Eclipse IDE 2022-06 WWW= https://www.eclipse.org/ LICENSE= EPL ONLY_FOR_ARCHS= aarch64 amd64 powerpc64 powerpc64le BUILD_DEPENDS= git:devel/git@lite \ maven>0:devel/maven \ zip:archivers/zip LIB_DEPENDS= libsecret-1.so:security/libsecret \ libwebkit2gtk-4.0.so:www/webkit2-gtk3 PORTSCOUT= ignore:1 USES= compiler:c++11-lang gmake pkgconfig gnome USE_GNOME= gtk30 USE_GITHUB= yes GH_TUPLE= eclipse-platform:eclipse.platform.releng.aggregator:${ECLIPSE_TAG} \ eclipse-jdt:eclipse.jdt:${ECLIPSE_TAG}:a/eclipse.jdt \ eclipse-jdt:eclipse.jdt.core:${ECLIPSE_TAG}:b/eclipse.jdt.core \ eclipse-jdt:eclipse.jdt.core.binaries:${ECLIPSE_TAG}:c/eclipse.jdt.core.binaries \ eclipse-jdt:eclipse.jdt.debug:${ECLIPSE_TAG}:d/eclipse.jdt.debug \ eclipse-jdt:eclipse.jdt.ui:${ECLIPSE_TAG}:e/eclipse.jdt.ui \ eclipse-pde:eclipse.pde:${ECLIPSE_TAG}:f/eclipse.pde \ eclipse-platform:eclipse.platform:${ECLIPSE_TAG}:g/eclipse.platform \ eclipse-platform:eclipse.platform.common:${ECLIPSE_TAG}:h/eclipse.platform.common \ eclipse-platform:eclipse.platform.debug:${ECLIPSE_TAG}:i/eclipse.platform.debug \ eclipse-platform:eclipse.platform.releng:${ECLIPSE_TAG}:j/eclipse.platform.releng \ eclipse-platform:eclipse.platform.resources:${ECLIPSE_TAG}:k/eclipse.platform.resources \ eclipse-platform:eclipse.platform.runtime:fd42b6e331:l/eclipse.platform.runtime \ eclipse-platform:eclipse.platform.swt:${ECLIPSE_TAG}:m/eclipse.platform.swt \ eclipse-platform:eclipse.platform.swt.binaries:${ECLIPSE_TAG}:n/eclipse.platform.swt.binaries \ eclipse-platform:eclipse.platform.team:${ECLIPSE_TAG}:o/eclipse.platform.team \ eclipse-platform:eclipse.platform.text:${ECLIPSE_TAG}:p/eclipse.platform.text \ eclipse-platform:eclipse.platform.ua:${ECLIPSE_TAG}:q/eclipse.platform.ua \ eclipse-platform:eclipse.platform.ui:${ECLIPSE_TAG}:r/eclipse.platform.ui \ eclipse-platform:eclipse.platform.ui.tools:${ECLIPSE_TAG}:s/eclipse.platform.ui.tools \ eclipse-equinox:equinox.binaries:${ECLIPSE_TAG}:t/rt.equinox.binaries \ eclipse-equinox:equinox.bundles:${ECLIPSE_TAG}:u/rt.equinox.bundles \ eclipse-equinox:equinox.framework:${ECLIPSE_TAG}:v/rt.equinox.framework \ eclipse-equinox:p2:${ECLIPSE_TAG}:w/rt.equinox.p2 \ daemonblade:eclipse-maven-repo:${PORTVERSION}:x USE_JAVA= 11+ DESKTOP_ENTRIES="Eclipse" \ "${COMMENT}" \ "${PORTNAME}" \ "${PORTNAME}" \ "Development;IDE;Java;" \ "false" SUB_FILES= ${PORTNAME} MAVEN_ENV= MAVEN_OPTS=-Xmx1024m CC=${CC} CFLAGS="${CFLAGS}" JAVA_HOME=${JAVA_HOME} HOME=${WRKDIR}/githome MAVEN_ECLIPSE= -Dmaven.repo.local=${WRKDIR}/eclipse-maven-repo-${PORTVERSION} \ -Dnative=gtk.freebsd.${ARCH} \ -DforceContextQualifier=v${ECLIPSE_TSTAMP} ECLIPSE_RESULT= eclipse.platform.releng.tychoeclipsebuilder/eclipse.platform.repository/target/products/org.eclipse.sdk.ide-freebsd.gtk.${ARCH}.tar.gz .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-deprecated-non-prototype .endif do-build: cd ${WRKSRC} && ${SETENV} ${MAVEN_ENV} mvn --offline ${MAVEN_ECLIPSE} -DskipTests clean verify do-install: ${MKDIR} ${STAGEDIR}${DATADIR} ${TAR} -x --directory ${STAGEDIR}${DATADIR}/.. --file ${WRKSRC}/${ECLIPSE_RESULT} ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin # generate dynamic plist, to cater for different ARCHS post-install: cd ${STAGEDIR}${PREFIX} && ${FIND} -s bin/${PORTNAME} share/${PORTNAME} -not -type d >> ${TMPPLIST} cd ${STAGEDIR}${PREFIX} && ${FIND} -ds share/${PORTNAME} -type d | ${SED} -e 's,^,@dir ,' >> ${TMPPLIST} .include diff --git a/java/openjdk11/Makefile b/java/openjdk11/Makefile index f436494cfb4e..a891d0f62d90 100644 --- a/java/openjdk11/Makefile +++ b/java/openjdk11/Makefile @@ -1,211 +1,209 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk11u NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:C/armv.*/arm/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-normal-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 11 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 23 JDK_BUILD_NUMBER= 9 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 OPTIONS_DEFINE= CUPS OPTIONS_DEFAULT= CUPS CUPS_CONFIGURE_ON= --with-cups=${LOCALBASE} CUPS_CONFIGURE_OFF= --with-cups-include=${WRKDIR}/cups-${CUPS_INC_VER} CUPS_BUILD_DEPENDS= ${LOCALBASE}/include/cups/cups.h:print/cups CUPS_INC_VER= 2.4.2 CUPS_DISTFILES_OFF= OpenPrinting-cups-v${CUPS_INC_VER}_GH0.tar.gz:cups GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --disable-hotspot-gtest \ --with-jvm-features=shenandoahgc \ --with-alsa=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include .if !${PORT_OPTIONS:MCUPS} MASTER_SITES+= https://codeload.github.com/OpenPrinting/cups/tar.gz/v${CUPS_INC_VER}?dummy=/:cups .endif BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk11 \ ${LOCALBASE}/bootstrap-openjdk11 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/bootstrap-openjdk11 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/bootstrap-openjdk11 .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 LLVM_VER= 12 BUILD_DEPENDS+= clang${LLVM_VER}:devel/llvm${LLVM_VER} CC= ${LOCALBASE}/bin/clang${LLVM_VER} CXX= ${LOCALBASE}/bin/clang++${LLVM_VER} .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Marmv*} || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 || ${ARCH:Marmv*} CONFIGURE_ARGS+= --disable-dtrace .endif .if ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-precompiled-headers .endif .if ${ARCH} != amd64 CONFIGURE_ARGS+= --enable-aot=no .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 post-build: .if defined(OPENJDK_SYMLINK_CACERTS) @${RM} ${JDK_IMAGEDIR}/lib/security/cacerts @${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JDK_IMAGEDIR}/lib/security/cacerts .endif do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk17/Makefile b/java/openjdk17/Makefile index 4d1c91d25526..e7039439f653 100644 --- a/java/openjdk17/Makefile +++ b/java/openjdk17/Makefile @@ -1,198 +1,192 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/projects/jdk/17/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ libharfbuzz.so:print/harfbuzz \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk17u NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 17 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 11 JDK_BUILD_NUMBER= 9 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --disable-hotspot-gtest \ --with-alsa=${LOCALBASE} \ --with-cups=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-harfbuzz=system \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk17 ${LOCALBASE}/bootstrap-openjdk17 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/bootstrap-openjdk17 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/bootstrap-openjdk17 .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 EXTRA_CFLAGS+= -Wno-unused-but-set-parameter -.if ${COMPILER_VERSION} >= 140 EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical -.endif -.if ${COMPILER_VERSION} >= 150 EXTRA_CFLAGS+= -Wno-deprecated-non-prototype -.endif CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}" CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}" .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=-XX:-UseCompressedClassPointers --disable-dtrace MAKE_ENV+= JAVA_TOOL_OPTIONS="-XX:-UseCompressedClassPointers" .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 post-build: .if defined(OPENJDK_SYMLINK_CACERTS) @${RM} ${JDK_IMAGEDIR}/lib/security/cacerts @${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JDK_IMAGEDIR}/lib/security/cacerts .endif do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk18/Makefile b/java/openjdk18/Makefile index ce47e54f0dc2..cf09ffb96ab2 100644 --- a/java/openjdk18/Makefile +++ b/java/openjdk18/Makefile @@ -1,203 +1,197 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} PORTREVISION= 2 CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/projects/jdk/18/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ libharfbuzz.so:print/harfbuzz \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk18u NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 18 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 2 JDK_BUILD_NUMBER= 9 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --disable-hotspot-gtest \ --with-alsa=${LOCALBASE} \ --with-cups=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-harfbuzz=system \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk18 .if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH:Mpowerpc64*} BOOTSTRAP_JDKS+= ${LOCALBASE}/bootstrap-openjdk17 .endif BOOTSTRAP_JDKS+= ${LOCALBASE}/openjdk17 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) . if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH:Mpowerpc64*} BOOTSTRAPJDKDIR?= ${LOCALBASE}/bootstrap-openjdk17 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/bootstrap-openjdk17 . else BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk17 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk17 . endif .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 EXTRA_CFLAGS+= -Wno-unused-but-set-parameter -.if ${COMPILER_VERSION} >= 140 EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical -.endif -.if ${COMPILER_VERSION} >= 150 EXTRA_CFLAGS+= -Wno-deprecated-non-prototype -.endif CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}" CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}" .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=-XX:-UseCompressedClassPointers --disable-dtrace MAKE_ENV+= JAVA_TOOL_OPTIONS="-XX:-UseCompressedClassPointers" EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src_hotspot_share_runtime_arguments.cpp .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk19/Makefile b/java/openjdk19/Makefile index 4f7b75442cb0..7ec6e96b497f 100644 --- a/java/openjdk19/Makefile +++ b/java/openjdk19/Makefile @@ -1,193 +1,187 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} PORTREVISION= 1 CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/projects/jdk/19/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ libharfbuzz.so:print/harfbuzz \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk19u NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 19 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 2 JDK_BUILD_NUMBER= 7 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --with-alsa=${LOCALBASE} \ --with-cups=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-harfbuzz=system \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk19 ${LOCALBASE}/openjdk18 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk18 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk18 .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 EXTRA_CFLAGS+= -Wno-unused-but-set-parameter -.if ${COMPILER_VERSION} >= 140 EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical -.endif -.if ${COMPILER_VERSION} >= 160 EXTRA_CFLAGS+= -Wno-error=deprecated-non-prototype -.endif CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}" CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}" .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=-XX:-UseCompressedClassPointers --disable-dtrace MAKE_ENV+= JAVA_TOOL_OPTIONS="-XX:-UseCompressedClassPointers" EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src_hotspot_share_runtime_arguments.cpp .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk20/Makefile b/java/openjdk20/Makefile index 3ad5fd920106..2bb0748cff22 100644 --- a/java/openjdk20/Makefile +++ b/java/openjdk20/Makefile @@ -1,192 +1,186 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/projects/jdk/20/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ libharfbuzz.so:print/harfbuzz \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk20u NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 20 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 2 JDK_BUILD_NUMBER= 9 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --with-alsa=${LOCALBASE} \ --with-cups=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-harfbuzz=system \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk20 ${LOCALBASE}/openjdk19 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk19 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk19 .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 EXTRA_CFLAGS+= -Wno-unused-but-set-parameter -.if ${COMPILER_VERSION} >= 140 EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical -.endif -.if ${COMPILER_VERSION} >= 160 EXTRA_CFLAGS+= -Wno-error=deprecated-non-prototype -.endif CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}" CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}" .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=-XX:-UseCompressedClassPointers --disable-dtrace MAKE_ENV+= JAVA_TOOL_OPTIONS="-XX:-UseCompressedClassPointers" .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${RM} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.cpp @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk21/Makefile b/java/openjdk21/Makefile index de00430e481d..307fa54abf1b 100644 --- a/java/openjdk21/Makefile +++ b/java/openjdk21/Makefile @@ -1,201 +1,195 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/projects/jdk/21/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ libharfbuzz.so:print/harfbuzz \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk21u NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 21 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 3 JDK_BUILD_NUMBER= 9 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --with-alsa=${LOCALBASE} \ --with-cups=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-harfbuzz=system \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk21 ${LOCALBASE}/openjdk20 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk20 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk20 .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 EXTRA_CFLAGS+= -Wno-unused-but-set-parameter -.if ${COMPILER_VERSION} >= 140 EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical -.endif -.if ${COMPILER_VERSION} >= 160 EXTRA_CFLAGS+= -Wno-error=deprecated-non-prototype -.endif CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}" CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}" .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=-XX:-UseCompressedClassPointers --disable-dtrace MAKE_ENV+= JAVA_TOOL_OPTIONS="-XX:-UseCompressedClassPointers" .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${RM} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.cpp @${MV} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.hpp \ ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/javaThread_bsd_ppc.hpp @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 post-build: .if defined(OPENJDK_SYMLINK_CACERTS) @${RM} ${JDK_IMAGEDIR}/lib/security/cacerts @${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JDK_IMAGEDIR}/lib/security/cacerts .endif do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk22/Makefile b/java/openjdk22/Makefile index dbe4098c1b48..cd6505fee645 100644 --- a/java/openjdk22/Makefile +++ b/java/openjdk22/Makefile @@ -1,201 +1,195 @@ PORTNAME= openjdk DISTVERSIONPREFIX= jdk- DISTVERSION= ${JDK_MAJOR_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} CATEGORIES= java devel PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/projects/jdk/22/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 i386 powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash \ gsed:textproc/gsed LIB_DEPENDS= libasound.so:audio/alsa-lib \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgif.so:graphics/giflib \ libharfbuzz.so:print/harfbuzz \ liblcms2.so:graphics/lcms2 \ libpng.so:graphics/png RUN_DEPENDS= javavm:java/javavmwrapper \ xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype USES= compiler:features cpe gmake iconv jpeg pkgconfig xorg USE_XORG= x11 xext xi xrandr xrender xt xtst CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk22 NO_CCACHE= yes _MAKE_JOBS= # MAKE_ENV= LANG="C" \ LC_ALL="C" \ CLASSPATH="" \ JAVA_HOME="" \ LD_LIBRARY_PATH="" \ CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ MAKEFLAGS="" JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:S/i386/x86/:S/powerpc64/ppc64/} JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jre .else JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/jdk .endif INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 22 JDK_MINOR_VERSION= 0 JDK_PATCH_VERSION= 0 JDK_BUILD_NUMBER= 36 BSD_JDK_VERSION= 1 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ENV= CC=${CC} \ CXX=${CXX} \ CPP=${CPP} \ ac_cv_path_SED=${LOCALBASE}/bin/gsed CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} \ --disable-ccache \ --disable-javac-server \ --with-alsa=${LOCALBASE} \ --with-cups=${LOCALBASE} \ --with-fontconfig=${LOCALBASE} \ --with-freetype=system \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-freetype-lib=${LOCALBASE}/lib \ --with-libjpeg=system \ --with-giflib=system \ --with-giflib-include=${LOCALBASE}/include \ --with-giflib-lib=${LOCALBASE}/lib \ --with-harfbuzz=system \ --with-libpng=system \ --with-zlib=system \ --with-lcms=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib \ --with-version-string=${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_PATCH_VERSION}+${JDK_BUILD_NUMBER}-${BSD_JDK_VERSION} \ --with-native-debug-symbols=none \ --with-debug-level=release \ --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if defined(BUILD_JRE) ALL_TARGET= legacy-images .else ALL_TARGET= images .endif JDK_BUILD_TYPE= release .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk22 ${LOCALBASE}/openjdk21 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/openjdk21 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/openjdk21 .endif JDK_BUILD_JVM= server MAKE_ENV+= --with-toolchain-type=${COMPILER_TYPE} CONFIGURE_ARGS+= --with-toolchain-type=${COMPILER_TYPE} .if ${COMPILER_TYPE} == gcc USE_GCC= yes CONFIGURE_ARGS+= --with-extra-ldflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT} -L${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" \ --with-extra-cxxflags="-Wl,-rpath=${LOCALBASE}/lib/gcc${GCC_DEFAULT}" .else MAKE_ENV+= USE_CLANG=true -.if ${COMPILER_VERSION} >= 130 EXTRA_CFLAGS+= -Wno-unused-but-set-parameter -.if ${COMPILER_VERSION} >= 140 EXTRA_CFLAGS+= -Wno-bitwise-instead-of-logical -.endif -.if ${COMPILER_VERSION} >= 160 EXTRA_CFLAGS+= -Wno-error=deprecated-non-prototype -.endif CONFIGURE_ARGS+= --with-extra-cflags="${EXTRA_CFLAGS}" CONFIGURE_ARGS+= --with-extra-cxxflags="${EXTRA_CFLAGS}" .endif -.endif .if ${ARCH} == aarch64 || ${ARCH:Mpowerpc64*} CONFIGURE_ARGS+= --disable-warnings-as-errors .endif .if ${ARCH} == aarch64 CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=-XX:-UseCompressedClassPointers --disable-dtrace MAKE_ENV+= JAVA_TOOL_OPTIONS="-XX:-UseCompressedClassPointers" .endif .if empty(ICONV_LIB) ICONV_CFLAGS= -DLIBICONV_PLUG .else ICONV_CFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ICONV_LIBS= ${ICONV_LIB} .endif post-patch: @${RM} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.cpp @${MV} ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/thread_bsd_ppc.hpp \ ${WRKSRC}/src/hotspot/os_cpu/bsd_ppc/javaThread_bsd_ppc.hpp @${FIND} ${WRKSRC} -name '*.orig' -delete @${CHMOD} 755 ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${WRKSRC}/configure \ ${WRKSRC}/src/hotspot/os/bsd/os_bsd.cpp @${REINPLACE_CMD} -e 's|%%ICONV_CFLAGS%%|${ICONV_CFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ -e 's|%%ICONV_LIBS%%|${ICONV_LIBS}|' \ ${WRKSRC}/make/autoconf/libraries.m4 post-build: .if defined(OPENJDK_SYMLINK_CACERTS) @${RM} ${JDK_IMAGEDIR}/lib/security/cacerts @${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JDK_IMAGEDIR}/lib/security/cacerts .endif do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; @${CHMOD} ${BINMODE} ${STAGEDIR}${INSTALLDIR}/lib/jspawnhelper @${ECHO} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile index 13b7e8881df5..77d3862aa569 100644 --- a/java/openjdk8/Makefile +++ b/java/openjdk8/Makefile @@ -1,320 +1,318 @@ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER}.${BSD_JDK_VERSION} CATEGORIES= java devel MASTER_SITES= LOCAL/jkim:jtreg PKGNAMESUFFIX?= ${JDK_MAJOR_VERSION} MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} WWW= https://openjdk.java.net/ LICENSE= GPLv2 ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc powerpc64 powerpc64le BUILD_DEPENDS= zip:archivers/zip \ autoconf>0:devel/autoconf \ ${LOCALBASE}/include/cups/cups.h:print/cups \ bash:shells/bash LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libinotify.so:devel/libinotify RUN_DEPENDS= javavm:java/javavmwrapper \ dejavu>0:x11-fonts/dejavu USES= compiler:features cpe gmake iconv pkgconfig CPE_VENDOR= oracle USE_GITHUB= yes GH_ACCOUNT= battleblow GH_PROJECT= jdk8u GH_TAGNAME= jdk${JDK_MAJOR_VERSION}u${JDK_UPDATE_VERSION}-b${JDK_BUILD_NUMBER}.${BSD_JDK_VERSION} _MAKE_JOBS= # CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib MAKE_ENV= CLASSPATH="" JAVA_HOME="" LD_LIBRARY_PATH="" MAKE_ENV+= IGNORE_OLD_CONFIG=true MAKE_ENV+= COMPILER_WARNINGS_FATAL="false" JDK_BUILDDIR= ${WRKSRC}/build/${JDK_OSARCH}-normal-${JDK_BUILD_JVM}-${JDK_BUILD_TYPE} .if !defined(BUILD_JRE) JDK_IMAGEDIR= ${JDK_BUILDDIR}/images/j2sdk-image JRE_IMAGEDIR= ${JDK_BUILDDIR}/images/j2sdk-image/jre .else JRE_IMAGEDIR= ${JDK_BUILDDIR}/images/j2re-image .endif JDK_JVMDIR= lib/${ARCH:C/armv.*/arm/:S/powerpc64/ppc64/} JDK_OSARCH= bsd-${ARCH:S/amd64/x86_64/:C/armv.*/arm/:S/i386/x86/:S/powerpc64/ppc64/} INSTALLDIR= ${PREFIX}/${PKGBASE} NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 8 JDK_UPDATE_VERSION= 412 JDK_BUILD_NUMBER= 08 BSD_JDK_VERSION= 1 JTREG_VERSION= 4.1 JTREG_BUILD_NUMBER= b08 JDK_BUG_URL= https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Ports%20%26%20Packages&component=Individual%20Port(s)&short_desc=java/${PORTNAME}${JDK_MAJOR_VERSION}%3A%20 GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-boot-jdk=${BOOTSTRAPJDKDIR} CONFIGURE_ARGS+= --with-build-number="b${JDK_BUILD_NUMBER}" .if ${JDK_UPDATE_VERSION} > 0 CONFIGURE_ARGS+= --with-update-version=${JDK_UPDATE_VERSION} .endif CONFIGURE_ARGS+= --with-vendor-name="OpenJDK BSD Porting Team" \ --with-vendor-url="https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/" \ --with-vendor-bug-url="${JDK_BUG_URL}" \ --with-vendor-vm-bug-url="${JDK_BUG_URL}" .if defined(NO_CCACHE) CONFIGURE_ARGS+= --disable-ccache .endif CONFIGURE_ARGS+= --disable-freetype-bundling \ --disable-zip-debug-info \ --with-cups=${LOCALBASE} \ --with-debug-level=${JDK_BUILD_TYPE} \ --with-freetype=${LOCALBASE} \ --with-freetype-include=${LOCALBASE}/include/freetype2 \ --with-jobs=${MAKE_JOBS_NUMBER} \ --with-jvm-variants=${JDK_BUILD_JVM} \ --with-milestone=fcs \ --with-package-path=${LOCALBASE} \ --with-zlib=system \ --with-extra-ldflags="-Wl,--undefined-version" CONFIGURE_SCRIPT= ../../configure CONFIGURE_WRKSRC= ${WRKSRC}/common/autoconf OPTIONS_DEFINE= ALSA POLICY TZUPDATE X11 FONTCONFIG OPTIONS_DEFINE_armv6= FPUHACK OPTIONS_DEFINE_armv7= FPUHACK OPTIONS_DEFAULT= ALSA POLICY TZUPDATE X11 OPTIONS_DEFAULT_armv6= FPUHACK OPTIONS_DEFAULT_armv7= FPUHACK FPUHACK_DESC= Hack denormalized numbers in flush-to-zero mode POLICY_DESC= Install the Unlimited Strength Policy Files TZUPDATE_DESC= Update the time zone data ALSA_CONFIGURE_ENV_OFF= ALSA_NOT_NEEDED=yes ALSA_CONFIGURE_ON= --with-alsa=${LOCALBASE} ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib FPUHACK_EXTRA_PATCHES= ${PATCHDIR}/fpuhack.patch POLICY_CONFIGURE_ENABLE= unlimited-crypto TZUPDATE_RUN_DEPENDS= java-zoneinfo>0:java/java-zoneinfo X11_BUILD_DEPENDS_OFF= ${LOCALBASE}/include/X11/Xlib.h:x11/libX11 \ ${LOCALBASE}/include/X11/extensions/Xdbe.h:x11/libXext \ ${LOCALBASE}/include/X11/extensions/Xrender.h:x11/libXrender \ ${LOCALBASE}/include/X11/Intrinsic.h:x11-toolkits/libXt X11_CONFIGURE_OFF= --disable-headful X11_CONFIGURE_ON= --with-giflib=system \ --x-includes=${LOCALBASE}/include \ --x-libraries=${LOCALBASE}/lib X11_LIB_DEPENDS= libgif.so:graphics/giflib X11_MAKE_ENV_OFF= BUILD_HEADLESS_ONLY=1 \ MAKEFLAGS=X_CFLAGS="-I${LOCALBASE}/include" X11_USES= xorg X11_USE= XORG=x11,xext,xi,xrender,xt,xtst FONTCONFIG_EXTRA_PATCHES= ${PATCHDIR}/fontconfig.patch FONTCONFIG_IMPLIES= X11 JAVAVMS_COMMENT= OpenJDK${JDK_MAJOR_VERSION} .if !defined(BUILD_JRE) OPTIONS_DEFINE+= TEST OPTIONS_DEFAULT+= RELEASE OPTIONS_SINGLE= BUILD OPTIONS_SINGLE_BUILD= DEBUG DEBUGFAST RELEASE BUILD_DESC= Select OpenJDK build type DEBUG_DESC= Build for debugging (without optimizations) DEBUGFAST_DESC= Build for debugging (with optimizations) RELEASE_DESC= Build for release (default) TEST_DESC= Run regression tests DEBUG_VARS= JDK_BUILD_TYPE=slowdebug DEBUGFAST_VARS= JDK_BUILD_TYPE=fastdebug RELEASE_BUILD_DEPENDS_OFF= ${LOCALBASE}/bin/objcopy:devel/binutils RELEASE_CONFIGURE_ON= --disable-debug-symbols RELEASE_VARS= JDK_BUILD_TYPE=release RELEASE_VARS_OFF= OBJCOPY=${LOCALBASE}/bin/objcopy TEST_ALL_TARGET= test TEST_ALL_TARGET_OFF= images TEST_CONFIGURE_ON= --with-jtreg=${WRKDIR}/jtreg TEST_DISTFILES= jtreg${JTREG_VERSION}-${JTREG_BUILD_NUMBER}${EXTRACT_SUFX}:jtreg .else ALL_TARGET= images CONFIGURE_ARGS+= --disable-debug-symbols JAVAVMS_COMMENT+= JRE JDK_BUILD_TYPE= release .endif # XXX configure script rejects CC/CPP/CXX with absolute paths. .for t in CC CPP CXX .if defined(${t}) && ${${t}:M/*} BUILD_${t}= ${${t}:C|.*/||g} CONFIGURE_ENV+= ${t}="${BUILD_${t}}" TOOLS_DIR+= ${${t}:S|/${BUILD_${t}}$||} .endif .endfor .if defined(TOOLS_DIR) CONFIGURE_ARGS+= --with-tools-dir="${TOOLS_DIR:u:S/ /:/g}" .endif .include BOOTSTRAP_JDKS= ${LOCALBASE}/openjdk8 \ ${LOCALBASE}/openjdk7 \ ${LOCALBASE}/bootstrap-openjdk8 # do we have valid native jdk installed? .for BJDK in ${BOOTSTRAP_JDKS} . if !defined(BOOTSTRAPJDKDIR) && exists(${BJDK}/bin/javac) BOOTSTRAPJDKDIR= ${BJDK} . endif .endfor # if no valid jdk found, set dependency .if !defined(BOOTSTRAPJDKDIR) BOOTSTRAPJDKDIR?= ${LOCALBASE}/bootstrap-openjdk8 BUILD_DEPENDS+= ${BOOTSTRAPJDKDIR}/bin/javac:java/bootstrap-openjdk8 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 || ${ARCH} == i386 # XXX We must limit max heap size for 32-bit targets. CONFIGURE_ARGS+= --with-boot-jdk-jvmargs="-Xmx768m" MAKE_ENV+= JAVADOC_CMD_MEM="-Xmx768m" .endif .if ${ARCH} == i386 CONFIGURE_ARGS+= --disable-jfr # Fix the build for i386 when WITH_LLD_IS_LD is set # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225741 MAKE_ENV+= LFLAGS="-Wl,-z,notext" .endif .if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH:Mpowerpc64*} JDK_BUILD_JVM= server .else JDK_BUILD_JVM= zero LIB_DEPENDS+= libffi.so:devel/libffi .endif .if ${COMPILER_TYPE} == clang MAKE_ENV+= COMPILER_WARNINGS_FATAL=false USE_CLANG=true CONFIGURE_ENV+= LIBCXX="-lc++" -.if ${COMPILER_VERSION} >= 130 && ${ARCH} == aarch64 +.if ${ARCH} == aarch64 # PR258954: see . Even though the # upstream fix has been applied to this version of the JDK, users still report # the assertion "guarantee(val < (1U << nbits)) failed: Field too big for insn" # occurring, when it is built with recent versions of clang. LLVM_VER= 12 BUILD_DEPENDS+= clang${LLVM_VER}:devel/llvm${LLVM_VER} CC= ${LOCALBASE}/bin/clang${LLVM_VER} CXX= ${LOCALBASE}/bin/clang++${LLVM_VER} .endif -.if ${COMPILER_VERSION} >= 160 # clang 16 defaults to C++17, which no longer allows the 'register' keyword. # There is an upstream commit that removes all the individual 'register' # keywords, but it has not yet been backported to OpenJDK 8. # NOTE: passing this option via --with-extra-cflags does not work. CFLAGS+= -Dregister= .endif -.endif # GCC is broken with PCH: https://lists.freebsd.org/pipermail/svn-src-all/2015-March/101722.html .if ${COMPILER_TYPE} == gcc CONFIGURE_ARGS+= --with-toolchain-type=gcc .if ${ARCH} == "powerpc64" MAKE_ARGS+= USE_PRECOMPILED_HEADER=1 .else MAKE_ARGS+= USE_PRECOMPILED_HEADER=0 .endif .endif .if ${ARCH:Mpowerpc64*} MAKE_ARGS+= USE_PRECOMPILED_HEADER=0 .endif .if empty(ICONV_LIB) ICONV_CPPFLAGS= -DLIBICONV_PLUG .else ICONV_CPPFLAGS= -I${LOCALBASE}/include ICONV_LDFLAGS= -L${LOCALBASE}/lib ${ICONV_LIB} .endif post-extract-TEST-on: @${LN} -sf ${WRKDIR}/jtreg/linux/bin ${WRKDIR}/jtreg/ post-patch: @${FIND} ${WRKSRC} -name '*.orig' -delete @${SED} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ ${FILESDIR}/bsd.fontconfig.properties.in > \ ${WRKSRC}/jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' \ -e 's|%%OBJCOPY%%|${OBJCOPY}|' \ ${WRKSRC}/configure \ ${WRKSRC}/common/autoconf/toolchain.m4 \ ${WRKSRC}/jdk/make/lib/Awt2dLibraries.gmk \ ${WRKSRC}/jdk/make/lib/NioLibraries.gmk \ ${WRKSRC}/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java \ ${WRKSRC}/jdk/src/share/classes/sun/print/PSPrinterJob.java \ ${WRKSRC}/jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java @${REINPLACE_CMD} -e 's|%%ICONV_CPPFLAGS%%|${ICONV_CPPFLAGS}|' \ -e 's|%%ICONV_LDFLAGS%%|${ICONV_LDFLAGS}|' \ ${WRKSRC}/jdk/make/lib/Awt2dLibraries.gmk \ ${WRKSRC}/jdk/make/lib/CoreLibraries.gmk \ ${WRKSRC}/jdk/make/lib/ServiceabilityLibraries.gmk .if defined(BUILD_JRE) @${REINPLACE_CMD} -e 's|-f Images.gmk$$|& jre-image|' \ -e 's|-f Images.gmk overlay-images$$|-f Images.gmk jre-overlay-image|' \ ${WRKSRC}/jdk/make/BuildJdk.gmk .endif @${CHMOD} 755 ${WRKSRC}/configure post-patch-ALSA-off: @${REINPLACE_CMD} '/EXTRA_SOUND_JNI_LIBS += jsoundalsa/d' \ ${WRKSRC}/jdk/make/lib/SoundLibraries.gmk post-build: .if !defined(BUILD_JRE) @${BOOTSTRAPJDKDIR}/bin/jar cfe \ ${JRE_IMAGEDIR}/lib/compilefontconfig.jar \ build.tools.compilefontconfig.CompileFontConfig \ -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/compilefontconfig @${BOOTSTRAPJDKDIR}/bin/jar cfe \ ${JRE_IMAGEDIR}/lib/javazic.jar \ build.tools.tzdb.TzdbZoneRulesCompiler \ -C ${JDK_BUILDDIR}/jdk/btclasses build/tools/tzdb .endif .if defined(OPENJDK_SYMLINK_CACERTS) @${RM} ${JRE_IMAGEDIR}/lib/security/cacerts @${LN} -sf ${OPENJDK_SYMLINK_CACERTS} ${JRE_IMAGEDIR}/lib/security/cacerts .endif post-build-TZUPDATE-on: @${RM} -r ${JRE_IMAGEDIR}/lib/zi @${LN} -sf ${LOCALBASE}/share/java/zi ${JRE_IMAGEDIR}/lib do-install: @${MKDIR} ${STAGEDIR}${INSTALLDIR} .if !defined(BUILD_JRE) @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin jre/bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \ ${CHMOD} ${BINMODE} jre/${JDK_JVMDIR}/jexec \ jre/${JDK_JVMDIR}/jspawnhelper ${JDK_JVMDIR}/jexec @${ECHO_CMD} "@dir ${INSTALLDIR}/jre/lib/applet" >> ${TMPPLIST} .else @cd ${JRE_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR} @cd ${STAGEDIR}${INSTALLDIR} && \ ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \ ${CHMOD} ${BINMODE} ${JDK_JVMDIR}/jexec ${JDK_JVMDIR}/jspawnhelper @${ECHO_CMD} "@dir ${INSTALLDIR}/lib/applet" >> ${TMPPLIST} .endif @${ECHO_CMD} "@javavm ${INSTALLDIR}/bin/java" >> ${TMPPLIST} @${FIND} ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \ ${SED} -e 's|^${STAGEDIR}${PREFIX}/||' >> ${TMPPLIST} .include diff --git a/lang/erlang-runtime21/Makefile b/lang/erlang-runtime21/Makefile index c593e84b235e..44b445694fa5 100644 --- a/lang/erlang-runtime21/Makefile +++ b/lang/erlang-runtime21/Makefile @@ -1,170 +1,170 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 21.3.8.24 PORTREVISION= 4 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime21 DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= autoreconf:build,2.69 compiler cpe gmake ncurses perl5 CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 4.5.2:corba USE_PERL5= build GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-smp-support MAKE_JOBS_UNSAFE= yes DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} SUB_FILES= pkg-message SUB_LIST= ERLANG_LIB=${ERLANG_LIB} WRKSRC= ${WRKSRC_otp} ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//} OPTIONS_DEFINE= CORBA DIRTY DTRACE HIPE JAVA KQUEUE NATIVE ODBC OPENSSL \ SCTP THREADS WX OPTIONS_DEFAULT= CORBA DIRTY DTRACE HIPE KQUEUE OPENSSL SCTP THREADS .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= HIPE NATIVE SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE HIPE NATIVE OPTIONS_EXCLUDE_powerpc64= HIPE OPTIONS_EXCLUDE_powerpc64le= HIPE OPTIONS_EXCLUDE_riscv64= DTRACE CORBA_DESC= Enable Corba support DIRTY_DESC= Enable Dirty schedulers HIPE_DESC= Build native HiPE compiler KQUEUE_DESC= Enable Kernel Poll (kqueue) support NATIVE_DESC= Enable native libraries SCTP_DESC= Enable SCTP support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. DIRTY_CONFIGURE_ENABLE= dirty-schedulers DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" HIPE_CONFIGURE_ENABLE= hipe JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll NATIVE_IMPLIES= HIPE NATIVE_CONFIGURE_ENABLE= native-libs ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} SCTP_CONFIGURE_ENABLE= sctp THREADS_CONFIGURE_ENABLE= threads WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif pre-configure: @cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./otp_build autoconf pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP pre-build-NATIVE-on: @cd ${WRKSRC} && ${MAKE_CMD} clean post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} .include diff --git a/lang/erlang-runtime22/Makefile b/lang/erlang-runtime22/Makefile index 387c36a1c1ef..e6a4b0982271 100644 --- a/lang/erlang-runtime22/Makefile +++ b/lang/erlang-runtime22/Makefile @@ -1,174 +1,174 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 22.3.4.27 # NB when bumping OTP versions also bump PORTREVISION in databases/couchdb3 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime22 DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= autoreconf:build compiler cpe gmake ncurses perl5 USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 4.5.2:corba USE_PERL5= build CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-smp-support MAKE_JOBS_UNSAFE= yes DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} SUB_FILES= pkg-message SUB_LIST= ERLANG_LIB=${ERLANG_LIB} WRKSRC= ${WRKSRC_otp} ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//} OPTIONS_DEFINE= CORBA DIRTY DTRACE HIPE JAVA KQUEUE NATIVE ODBC OPENSSL \ SCTP THREADS WX OPTIONS_DEFAULT= CORBA DIRTY DTRACE KQUEUE OPENSSL SCTP THREADS .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= HIPE NATIVE SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE HIPE NATIVE OPTIONS_EXCLUDE_riscv64= DTRACE CORBA_DESC= Enable Corba support DIRTY_DESC= Enable Dirty schedulers HIPE_DESC= Build native HiPE compiler KQUEUE_DESC= Enable Kernel Poll (kqueue) support NATIVE_DESC= Enable native libraries SCTP_DESC= Enable SCTP support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. DIRTY_CONFIGURE_ENABLE= dirty-schedulers DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" HIPE_CONFIGURE_ENABLE= hipe JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll NATIVE_IMPLIES= HIPE NATIVE_CONFIGURE_ENABLE= native-libs ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} SCTP_CONFIGURE_ENABLE= sctp THREADS_CONFIGURE_ENABLE= threads WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif .if ( ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400092 && ${SSL_DEFAULT} == base ) || ${SSL_DEFAULT:Mopenssl3*} CFLAGS+= -Wno-error=implicit-function-declaration OPTIONS_EXCLUDE= OPENSSL .endif pre-configure: @cd ${WRKSRC} && ./otp_build autoconf pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP pre-build-NATIVE-on: @cd ${WRKSRC} && ${MAKE_CMD} clean post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} .include diff --git a/lang/erlang-runtime23/Makefile b/lang/erlang-runtime23/Makefile index b196ba517bfa..bbf46741d9d0 100644 --- a/lang/erlang-runtime23/Makefile +++ b/lang/erlang-runtime23/Makefile @@ -1,173 +1,173 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 23.3.4.20 PORTREVISION= 2 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime23 DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= autoreconf:build compiler cpe gmake ncurses perl5 CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 5.2.1:corba USE_PERL5= build GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-smp-support MAKE_JOBS_UNSAFE= yes DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} SUB_FILES= pkg-message SUB_LIST= ERLANG_LIB=${ERLANG_LIB} WRKSRC= ${WRKSRC_otp} ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//} OPTIONS_DEFINE= CORBA DIRTY DTRACE HIPE JAVA KQUEUE NATIVE ODBC OPENSSL \ SCTP THREADS WX OPTIONS_DEFAULT= CORBA DIRTY DTRACE KQUEUE OPENSSL SCTP THREADS .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= HIPE NATIVE SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE HIPE NATIVE OPTIONS_EXCLUDE_riscv64= DTRACE CORBA_DESC= Enable Corba support DIRTY_DESC= Enable Dirty schedulers HIPE_DESC= Build native HiPE compiler KQUEUE_DESC= Enable Kernel Poll (kqueue) support NATIVE_DESC= Enable native libraries SCTP_DESC= Enable SCTP support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. DIRTY_CONFIGURE_ENABLE= dirty-schedulers DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" HIPE_CONFIGURE_ENABLE= hipe JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll NATIVE_IMPLIES= HIPE NATIVE_CONFIGURE_ENABLE= native-libs ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} SCTP_CONFIGURE_ENABLE= sctp THREADS_CONFIGURE_ENABLE= threads WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif .if ( ${OPSYS} == FreeBSD && ${OSVERSION} >= 1400092 && ${SSL_DEFAULT} == base ) || ${SSL_DEFAULT:Mopenssl3*} CFLAGS+= -Wno-error=implicit-function-declaration OPTIONS_EXCLUDE= OPENSSL .endif pre-configure: @cd ${WRKSRC} && ./otp_build autoconf pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP pre-build-NATIVE-on: @cd ${WRKSRC} && ${MAKE_CMD} clean post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} .include diff --git a/lang/erlang-runtime24/Makefile b/lang/erlang-runtime24/Makefile index 35bf7094eda1..3cb8e2aa0dc9 100644 --- a/lang/erlang-runtime24/Makefile +++ b/lang/erlang-runtime24/Makefile @@ -1,161 +1,161 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 24.3.4.17 PORTREVISION= 2 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime24 DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= compiler cpe gmake ncurses perl5 CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 5.2.1:corba USE_PERL5= build GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-dirty-schedulers \ --enable-kernel-poll \ --enable-smp-support \ --enable-threads MAKE_ARGS= all DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} SUB_FILES= pkg-message SUB_LIST= ERLANG_LIB=${ERLANG_LIB} WRKSRC= ${WRKSRC_otp} ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//} OPTIONS_DEFINE= CHUNKS CORBA DTRACE JAVA KQUEUE ODBC OPENSSL SCTP \ SHARING WX OPTIONS_DEFAULT= CHUNKS CORBA DTRACE KQUEUE OPENSSL SCTP SHARING .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols # see also https://reviews.freebsd.org/D22360 OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE OPTIONS_EXCLUDE_riscv64= DTRACE CHUNKS_DESC= Enable in-line documentation in Erlang console CORBA_DESC= Enable Corba support KQUEUE_DESC= Enable Kernel Poll (kqueue) support SCTP_DESC= Enable SCTP support SHARING_DESC= Enable term copy-and-share support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. CHUNKS_MAKE_ARGS+= docs DOC_TARGETS=chunks DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} SCTP_CONFIGURE_ENABLE= sctp SHARING_CONFIGURE_ENABLE= sharing-preserving WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} .include diff --git a/lang/erlang-runtime25/Makefile b/lang/erlang-runtime25/Makefile index 5f7352c7a694..8953869b6266 100644 --- a/lang/erlang-runtime25/Makefile +++ b/lang/erlang-runtime25/Makefile @@ -1,161 +1,161 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 25.3.2.12 PORTREVISION= 1 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime25 DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= compiler cpe gmake ncurses perl5 CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 5.2.1:corba USE_PERL5= build GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-dirty-schedulers \ --enable-kernel-poll \ --enable-smp-support \ --enable-threads MAKE_ARGS= all DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} SUB_FILES= pkg-message SUB_LIST= ERLANG_LIB=${ERLANG_LIB} WRKSRC= ${WRKSRC_otp} ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//} OPTIONS_DEFINE= CHUNKS CORBA DTRACE JAVA KQUEUE ODBC OPENSSL SCTP \ SHARING WX OPTIONS_DEFAULT= CHUNKS CORBA DTRACE KQUEUE OPENSSL SCTP SHARING .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols # see also https://reviews.freebsd.org/D22360 OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE OPTIONS_EXCLUDE_riscv64= DTRACE CHUNKS_DESC= Enable in-line documentation in Erlang console CORBA_DESC= Enable Corba support KQUEUE_DESC= Enable Kernel Poll (kqueue) support SCTP_DESC= Enable SCTP support SHARING_DESC= Enable term copy-and-share support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. CHUNKS_MAKE_ARGS+= docs DOC_TARGETS=chunks DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} SCTP_CONFIGURE_ENABLE= sctp SHARING_CONFIGURE_ENABLE= sharing-preserving WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} .include diff --git a/lang/erlang-runtime26/Makefile b/lang/erlang-runtime26/Makefile index 5c0b7fc22f67..5d46b17a33b3 100644 --- a/lang/erlang-runtime26/Makefile +++ b/lang/erlang-runtime26/Makefile @@ -1,164 +1,164 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 26.2.5.1 CATEGORIES= lang parallel java PKGNAMESUFFIX= -runtime26 DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= compiler cpe gmake ncurses perl5 CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 5.2.1:corba USE_PERL5= build GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-dirty-schedulers \ --enable-kernel-poll \ --enable-smp-support \ --enable-threads _ERLANG_LIB= ${PORTNAME}${PORTVERSION:C/\..*//} DATADIR= ${PREFIX}/share/${PORTNAME}${PKGNAMESUFFIX} SUB_FILES= pkg-message SUB_LIST= _ERLANG_LIB=${_ERLANG_LIB} WRKSRC= ${WRKSRC_otp} OPTIONS_DEFINE= CHUNKS CORBA DTRACE JAVA KQUEUE ODBC OPENSSL SCTP \ SHARING WX OPTIONS_DEFAULT= CHUNKS CORBA DTRACE KQUEUE OPENSSL SCTP SHARING .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols # see also https://reviews.freebsd.org/D22360 OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE OPTIONS_EXCLUDE_riscv64= DTRACE CHUNKS_DESC= Enable in-line documentation in Erlang console CORBA_DESC= Enable Corba support KQUEUE_DESC= Enable Kernel Poll (kqueue) support SCTP_DESC= Enable SCTP support SHARING_DESC= Enable term copy-and-share support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} SCTP_CONFIGURE_ENABLE= sctp SHARING_CONFIGURE_ENABLE= sharing-preserving WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP post-install-CHUNKS-on: cd ${WRKSRC_otp} && \ ${SETENV} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release_docs DOC_TARGETS=chunks \ RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${_ERLANG_LIB} post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${_ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${_ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${_ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} .include diff --git a/lang/erlang/Makefile b/lang/erlang/Makefile index dbb8c1b88957..af7ed5751b8f 100644 --- a/lang/erlang/Makefile +++ b/lang/erlang/Makefile @@ -1,236 +1,236 @@ PORTNAME= erlang DISTVERSIONPREFIX= OTP- DISTVERSION= 25.3.2.12 PORTREVISION= 1 PORTEPOCH= 4 CATEGORIES= lang parallel java DIST_SUBDIR= erlang MAINTAINER= erlang@FreeBSD.org COMMENT= Functional programming language from Ericsson WWW= https://www.erlang.org/ LICENSE= APACHE20 USES= compiler cpe gmake ncurses perl5 CPE_VENDOR= erlang CPE_PRODUCT= erlang/otp USE_GITHUB= nodefault GH_ACCOUNT= erlang:otp,corba GH_PROJECT= otp:otp corba:corba GH_TAGNAME= 5.2.1:corba USE_PERL5= build USE_RC_SUBR= epmd GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-dirty-schedulers \ --enable-kernel-poll \ --enable-smp-support \ --enable-threads MAKE_ARGS= all SUB_FILES= pkg-message SUB_LIST= TOOLS_VSN=${TOOLS_VSN} WRKSRC= ${WRKSRC_otp} ERLANG_LIB= ${PORTNAME} EI_VSN= 5.3.2.1 SNMP_VSN= 5.13.5 TOOLS_VSN= 3.5.3 OPTIONS_DEFINE= CHUNKS CORBA DIRTY DTRACE FOP JAVA KQUEUE MANPAGES ODBC \ OPENSSL PDF SCTP SHARING WX OPTIONS_DEFAULT= CHUNKS CORBA DIRTY DTRACE KQUEUE MANPAGES OPENSSL SCTP .if !exists(/usr/sbin/dtrace) OPTIONS_EXCLUDE+= DTRACE .endif OPTIONS_EXCLUDE_DragonFly= SCTP # ld(1) fails to link probes: missing __dtrace_erlang___* symbols # see also https://reviews.freebsd.org/D22360 OPTIONS_EXCLUDE_aarch64= DTRACE OPTIONS_EXCLUDE_armv6= DTRACE OPTIONS_EXCLUDE_armv7= DTRACE OPTIONS_EXCLUDE_i386= DTRACE OPTIONS_EXCLUDE_riscv64= DTRACE OPTIONS_SUB= yes CHUNKS_DESC= Enable in-line documentation in Erlang console CORBA_DESC= Enable Corba support DIRTY_DESC= Enable dirty schedulers FOP_DESC= Build full documentation with Apache FOP KQUEUE_DESC= Enable Kernel Poll (kqueue) support PDF_DESC= Build PDF documentation SCTP_DESC= Enable SCTP support SHARING_DESC= Enable term copy-and-share support WX_DESC= Enable WX application # If you run Erlang and get a message resembling "WARNING: number of # probes fixed does not match the number of defined probes (54 != 132, # respectively)" you probably misconfigured DTrace in some way. CHUNKS_MAKE_ARGS+= DOC_TARGETS=chunks \ docs DIRTY_CONFIGURE_WITH= dirty-schedulers DTRACE_CONFIGURE_WITH= dynamic-trace=dtrace DTRACE_CFLAGS= -fno-omit-frame-pointer DTRACE_VARS= STRIP="" FOP_PREVENTS= MANPAGES FOP_BUILD_DEPENDS= fop:textproc/fop \ xsltproc:textproc/libxslt JAVA_CONFIGURE_WITH= javac JAVA_CONFIGURE_ENV= ac_cv_prog_JAVAC="${JAVAC}" JAVA_VARS= USE_JAVA=yes KQUEUE_CONFIGURE_ENABLE= kernel-poll MANPAGES_RUN_DEPENDS= ${LOCALBASE}/etc/man.d/erlang.conf:lang/erlang-man ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_USES= localbase:ldflags ODBC_CONFIGURE_WITH= odbc OPENSSL_USES= ssl OPENSSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} PDF_IMPLIES= FOP SCTP_CONFIGURE_ENABLE= sctp SHARING_CONFIGURE_ENABLE= sharing-preserving WX_USES= gl WX_CONFIGURE_WITH= wx-config=${WX_CONFIG} WX_VARS= USE_GL="gl glu" \ USE_WX=3.2+ \ WX_COMPS="wx" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang # PR 258494 CONFIGURE_ARGS+= --disable-pgo .endif .if ${OPSYS} == FreeBSD CFLAGS+= -DMAP_NORESERVE=0 .endif .if ${ARCH} == i386 MAKE_ARGS+= ARCH=x86 .endif .if ${ARCH} == armv6 || ${ARCH} == armv7 MAKE_ARGS+= ARCH=arm .endif pre-configure: @if [ ! $$(${CAT} ${WRKSRC}/lib/erl_interface/vsn.mk | ${GREP} "EI_VSN *=" | ${CUT} -w -f3) = ${EI_VSN} ]; then \ ${ECHO_MSG} "===> EI_VSN (${EI_VSN}) in Makefile does not match value in lib/erl_interface/vsn.mk"; exit 1; \ fi @if [ ! $$(${CAT} ${WRKSRC}/lib/tools/vsn.mk | ${GREP} "TOOLS_VSN *=" | ${CUT} -w -f3) = ${TOOLS_VSN} ]; then \ ${ECHO_MSG} "===> TOOLS_VSN (${TOOLS_VSN}) in Makefile does not match value in lib/tools/vsn.mk"; exit 1; \ fi @if [ ! $$(${CAT} ${WRKSRC}/lib/snmp/vsn.mk | ${GREP} -E "SNMP_VSN *=" | ${CUT} -w -f3) = ${SNMP_VSN} ]; then \ ${ECHO_MSG} "===> SNMP_VSN (${SNMP_VSN}) in Makefile does not match value in lib/snmp/vsn.mk"; exit 1; \ fi pre-configure-WX-off: echo "disabled by port options" > ${WRKSRC}/lib/debugger/SKIP echo "disabled by port options" > ${WRKSRC}/lib/et/SKIP echo "disabled by port options" > ${WRKSRC}/lib/observer/SKIP echo "disabled by port options" > ${WRKSRC}/lib/wx/SKIP post-configure-ODBC-on: ${RM} ${WRKSRC}/lib/odbc/SKIP post-configure-ODBC-off: echo "disabled by port options" > ${WRKSRC}/lib/odbc/SKIP post-build-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} # The man-pages are put (in spite of FreeBSD's port convention) in a private # subdir. This is to avoid cluttering up the man page name space. Also the # Erlang man pages are more of internal documentation using the man format than # actual system man pages. (erl.1 and epmd.1 perhaps being the exception). post-build-FOP-on: @cd ${WRKSRC} && \ ${MAKE_CMD} docs .if ${PORT_OPTIONS:MCORBA} cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} docs .endif post-install: ${LN} -sf ../lib/${ERLANG_LIB}/lib/erl_interface-${EI_VSN}/bin/erl_call \ ${STAGEDIR}${PREFIX}/bin/erl_call ${LN} -sf ../lib/${ERLANG_LIB}/lib/snmp-${SNMP_VSN}/bin/snmpc \ ${STAGEDIR}${PREFIX}/bin/snmpc post-install-CORBA-on: cd ${WRKSRC_corba} && \ ${SETENV} OVERRIDE_TARGET=${CONFIGURE_TARGET} ERL_TOP=${WRKSRC_otp} \ ${MAKE_CMD} release RELEASE_ROOT=${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB} post-install-DTRACE-on: ${MKDIR} ${STAGEDIR}${DATADIR}/dtrace ${INSTALL_DATA} ${WRKSRC}/erts/emulator/beam/*.d \ ${WRKSRC}/lib/runtime_tools/c_src/*.d \ ${WRKSRC}/lib/runtime_tools/examples/*.d \ ${STAGEDIR}${DATADIR}/dtrace post-install-FOP-on: @${ECHO_CMD} "MANPATH ${PREFIX}/lib/erlang/man" > ${WRKDIR}/erlang.conf ${INSTALL_DATA} ${WRKDIR}/erlang.conf \ ${STAGEDIR}${PREFIX}/etc/man.d/erlang.conf for SECTION in 1 3 4 6 7; \ do ${MKDIR} ${STAGEDIR}${PREFIX}/lib/erlang/man/man$${SECTION}; \ ${FIND} ${WRKSRC}/erts ${WRKSRC}/lib -type f | \ ${GREP} doc/man$${SECTION} | \ ${XARGS} -J % ${CP} -v % ${STAGEDIR}${PREFIX}/lib/erlang/man/man$${SECTION}; \ done .if ${PORT_OPTIONS:MCORBA} ${FIND} ${WRKSRC_corba}/lib -type f | \ ${GREP} doc/man3 | \ ${XARGS} -J % ${CP} -v % ${STAGEDIR}${PREFIX}/lib/erlang/man/man3 .endif post-install-JAVA-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/jinterface-* post-install-ODBC-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/odbc-* post-install-OPENSSL-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/crypto-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssh-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/ssl-* post-install-PDF-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${FIND} ${WRKSRC} -name \*.pdf | \ ${XARGS} -J % ${CP} -v % ${STAGEDIR}${DOCSDIR} .if ${PORT_OPTIONS:MCORBA} ${FIND} ${WRKSRC_corba} -name \*.pdf | \ ${XARGS} -J % ${CP} -v % ${STAGEDIR}${DOCSDIR} .endif post-install-WX-off: ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/debugger-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/et-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/observer-* ${RM} -r ${STAGEDIR}${PREFIX}/lib/erlang/lib/wx-* post-stage: ${FIND} ${STAGEDIR}${PREFIX}/lib/${ERLANG_LIB}/* -type d -empty \ -delete @cd ${STAGEDIR}${PREFIX}; \ ${FIND} lib/${ERLANG_LIB}/* ${DATADIR_REL}/* -type f -o \ -type l | \ ${SORT} >> ${TMPPLIST} @if [ -d ${STAGEDIR}/${DOCSDIR} ]; then \ cd ${STAGEDIR}${PREFIX}; \ ${FIND} ${DOCSDIR_REL}/* -name \*.pdf | \ ${SORT} >> ${TMPPLIST}; \ fi .include diff --git a/lang/smlnj/Makefile b/lang/smlnj/Makefile index ef1e40993cff..ab657d1e1cfc 100644 --- a/lang/smlnj/Makefile +++ b/lang/smlnj/Makefile @@ -1,388 +1,387 @@ PORTNAME= smlnj PORTVERSION= 110.98 PORTREVISION= 1 CATEGORIES= lang MASTER_SITES= http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \ ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ DISTFILES= config.tgz runtime.tgz DIST_SUBDIR= smlnj/${PORTVERSION} EXTRACT_ONLY= config.tgz MAINTAINER= joemann@beefree.free.de COMMENT= Compiler and tools for Standard ML (SML '97) WWW= https://www.smlnj.org/ LICENSE= SMLNJ LICENSE_NAME= Standard ML of New Jersey License LICENSE_TEXT= The text of the license can be obtained from the following URL:\ http://www.smlnj.org/license.html LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept ONLY_FOR_ARCHS= amd64 i386 USES= compiler SUB_FILES= pkg-install SUB_LIST= EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}" NO_WRKSUBDIR= yes PKGDEINSTALL= ${PKGINSTALL} OPTIONS_DEFINE= EVERYTHING RECOMPILE EVERYTHING_DESC= install everything from the SML/NJ distribution RECOMPILE_DESC= recompile the SML compiler - implies EVERYTHING RECOMPILE_IMPLIES= EVERYTHING .include -# XXX see FreeBSD PR 247421 -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 100 +.if ${COMPILER_TYPE} == "clang" RUNTIME_SO= PLIST_SUB+= RUNTIME_SO="@comment " .else RUNTIME_SO= "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}.so" PLIST_SUB+= RUNTIME_SO= .endif -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .if (${ARCH} == "i386") MLARCH= x86 MLSIZE= 32 PLIST_SUB+= MLSIZE32="" .elif (${ARCH} == "amd64") MLARCH= amd64 MLSIZE= 64 PLIST_SUB+= MLSIZE32="@comment " .endif PLIST_SUB+= MLARCH=${MLARCH} # -fPIC is required for building runtime.so CFLAGS+= -fPIC AS= ${CC} -x assembler -c ASFLAGS+= -fPIC DISTFILES+= boot.${MLARCH}-unix.tgz DISTFILES+= MLRISC.tgz asdl.tgz ckit.tgz cml.tgz doc.tgz heap2asm.tgz \ ml-burg.tgz ml-lex.tgz ml-lpt.tgz ml-yacc.tgz nlffi.tgz \ old-basis.tgz smlnj-lib.tgz trace-debug-profile.tgz # Useful for tuning recompilation. CMB_COMMAND= .if ${PORT_OPTIONS:MEVERYTHING} DISTFILES+= cm.tgz compiler.tgz eXene.tgz \ pgraph.tgz smlnj-c.tgz system.tgz PLIST_SUB+= EVERYTHING="" .else PLIST_SUB+= EVERYTHING="@comment " .endif MLROOTRELATIVE= smlnj MLROOT= ${PREFIX}/${MLROOTRELATIVE} MLBINRELATIVE= ${MLROOTRELATIVE}/bin MLBIN= ${MLROOT}/bin MLLIB= ${MLROOT}/lib MLSTDSRCDIRS= asdl cml doc heap2asm ml-burg ml-lex ml-lpt ml-yacc \ nlffi smlnj-lib MLSRCDIRS= base ${MLSTDSRCDIRS} \ ckit eXene pgraph smlnj-c MLSRCS= .for srcdir in ${MLSRCDIRS} MLSRCS+= ${MLROOT}/${srcdir} .endfor MLTARGETS= heap2asm MLEXE= asdlgen heap2exec ml-antlr ml-build ml-burg ml-lex \ ml-makedepend ml-ulex ml-yacc sml .if defined(MLSIZE) && ${MLSIZE} == 32 MLEXE+= ml-nlffigen .endif .if ${PORT_OPTIONS:MEVERYTHING} MLSTDSRCDIRS+= eXene pgraph smlnj-c MLTARGETS+= eXene mlrisc-tools nowhere pgraph-util src-smlnj MLEXE+= nowhere PLIST= ${WRKDIR}/.PLIST MLRUNTIMEPLIST= ${WRKDIR}/.PLIST-runtime MLSRCPLIST= ${WRKDIR}/.PLIST-src MLPLISTFILES= ${.CURDIR}/pkg-plist ${MLRUNTIMEPLIST} ${MLSRCPLIST} .endif pre-fetch: @${ECHO} .if ! ${PORT_OPTIONS:MEVERYTHING} @${ECHO} 'Use port option EVERYTHING to also build/install' @${ECHO} ' eXene (X Windows toolkit),' @${ECHO} ' nowhere (preprocessor for conditional patterns),' @${ECHO} ' various libraries, and all the sources.' .endif .if ! ${PORT_OPTIONS:MRECOMPILE} @${ECHO} 'Use port option RECOMPILE to recompile the compiler.' @${ECHO} ' This implies EVERYTHING.' .endif @${ECHO} # make symlinks to the dist files post-extract: cd ${WRKSRC} && ${LN} -sf ${_DISTDIR}/* . # Configuring is done by uncommenting the appropriate #request # lines of config/targets. Dependency details are handled by # base/system/smlnj/installer using config/dependencies and # config/actions. do-configure: .if defined(MLTARGETS) ${ECHO_CMD} -n > "${WRKDIR}/.tmp.sed" .for t in ${MLTARGETS} ${ECHO_CMD} '/^#[ ]*request[ ]+${t}$$/s/^#//' >> "${WRKDIR}/.tmp.sed" .endfor ${SED} -i .default -E -f "${WRKDIR}/.tmp.sed" "${WRKSRC}/config/targets" .endif # Recompilation requires ml-lex and ml-yacc. All requested targets # will be built later using the recompiled core system after # removing targets.customized. See "do-build" below. .if ${PORT_OPTIONS:MRECOMPILE} ( ${ECHO_CMD} "request ml-yacc" && \ ${ECHO_CMD} "request ml-lex" && \ ${ECHO_CMD} "request ml-lex-mllex-tool" && \ ${ECHO_CMD} "request src-smlnj" ) \ > "${WRKSRC}/config/targets.customized" .endif # The build target patches, builds, and installs the system within WRKDIR. # base/runtime is not cleaned afterwards to avoid its recompilation during # a subsequent make install. # See base/system/README for information on recompiling the compiler. .if ${PORT_OPTIONS:MRECOMPILE} RECOMPILEDIR= base/system .else RECOMPILEDIR= .endif MLRUNTIMEPATCHES_CMD= cd ${FILESDIR} && \ ( ${LS} do-patch-base_runtime_* 2>&- || \ ${TRUE} ) MLSTANDARDPATCHES_CMD= cd ${FILESDIR} && \ ( for srcdir in ${MLSTDSRCDIRS} ; \ do ${LS} do-patch-$${srcdir}_* 2>&- ; \ done ) || ${TRUE} MLSTANDARDPATCHDIRS_CMD= cd ${FILESDIR} && \ ( for srcdir in ${MLSTDSRCDIRS} ; \ do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \ then ${ECHO_CMD} -n $${srcdir} " " ; fi ; \ done ) || ${TRUE} .if ${PORT_OPTIONS:MEVERYTHING} MLSOURCEPATCHES_CMD= cd ${FILESDIR} && \ ( ${LS} do-patch-* 2>&- || \ ${TRUE} ) .else MLSOURCEPATCHES_CMD= ${TRUE} .endif do-build: cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ MLNORUNTIMECLEAN=yes \ MLRUNTIMEPATCHES=`${MLRUNTIMEPATCHES_CMD}` \ MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \ MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \ MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} .if ${PORT_OPTIONS:MRECOMPILE} -${RM} ${WRKSRC}/config/targets.customized @${ECHO} '(* Recompiling the core system: *)' cd ${WRKSRC}/${RECOMPILEDIR} && ( \ ${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \ ${ECHO_CMD} ${CMB_COMMAND} ; \ ${ECHO_CMD} 'CMB.make ();' ) | \ ../../bin/sml -${MLSIZE} @${ECHO} '(* Building the recompiled heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./makeml -${MLSIZE} @${ECHO} '(* Removing old libs and heaps: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ${RM} -r ../../lib && ${MKDIR} ../../lib && \ ${FIND} ../../bin/.heap -name '*.${MLARCH}-bsd' \ \! -name 'sml.${MLARCH}-bsd' -delete -print @${ECHO} '(* Installing the recompiled libs and heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./installml -${MLSIZE} @${ECHO} '(* Building requested targets: *)' cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" \ PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} .endif .if ${PORT_OPTIONS:MEVERYTHING} post-build: ${CHMOD} a-x ${WRKSRC}/eXene/examples/basicwin/test.sh \ ${WRKSRC}/smlnj-lib/HTML4/helper.py @${ECHO} '(* Cleaning asdl: *)' ${FIND} ${WRKSRC}/asdl -type f \ -exec ${GREP} -F -l "${WRKDIR}" {} \; -delete .endif # Nowadays PLIST has to be computed before installation. We do it in # "pre-install" because source extraction happens during "build". .if ${PORT_OPTIONS:MEVERYTHING} MLNOINSTALL= .cm .if ${PORT_OPTIONS:MRECOMPILE} MLNOINSTALL+= sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \ sml.lib sml.${MLARCH}-bsd .endif .for excl in ${MLNOINSTALL} MLSRCEXCLUDEREGEX+= -e '/${excl}$$' -e '/${excl}/' .endfor MLPATCHPATHREGEX= -E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \ -e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \ -e 's%(^|[^_])___([^_]|$$)%\1/_\2%g' .endif pre-install: .if ${PORT_OPTIONS:MEVERYTHING} @${ECHO} -n '(* Computing package list ...' @${TAR} -tzf ${WRKSRC}/runtime.tgz | \ ${SED} -E -n -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%p' \ > ${MLRUNTIMEPLIST} @${MLRUNTIMEPATCHES_CMD} | \ ${SED} ${MLPATCHPATHREGEX} | \ ${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2%' \ > ${MLRUNTIMEPLIST}.patched -@${GREP} -F -v -f ${MLRUNTIMEPLIST} ${MLRUNTIMEPLIST}.patched \ > ${MLRUNTIMEPLIST}.patchednew @${CAT} ${MLRUNTIMEPLIST}.patchednew >> ${MLRUNTIMEPLIST} @${MLRUNTIMEPATCHES_CMD} | \ ${SED} ${MLPATCHPATHREGEX} | \ ${SED} -E -e 's%^(do|extra)-patch-(base/.*)%${MLROOTRELATIVE}/\2.orig%' \ >> ${MLRUNTIMEPLIST} @cd "${WRKSRC}" && ( \ ( ${FIND} -s -d ${MLSRCDIRS} \! -type d | \ ${AWK} '{ print "${MLROOTRELATIVE}/" $$0 }' ) ; \ ( ${FIND} -s -d ${MLSRCDIRS} -type d -empty | \ ${AWK} '{ print "@dir ${MLROOTRELATIVE}/" $$0 }' ) ) | \ ${EGREP} -v "^${MLROOTRELATIVE}/base/runtime" | \ ${EGREP} -v ${MLSRCEXCLUDEREGEX} > ${MLSRCPLIST} @${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \ ${GREP} -h -v "^@dir" | ${SORT} -u > ${PLIST} @${SED} -e 's/^%%EVERYTHING%%//' ${MLPLISTFILES} | \ ${GREP} -h "^@dir" | ${SORT} -r -u >> ${PLIST} @${ECHO} ' done. *)' .endif # ${PKGINSTALL} contains multiexec-wrapper, which is used to select # between executables of the same name that have been installed by # different packages (like smlnj and smlnj-devel). The source of # multiexec-wrapper is extracted from ${PKGINSTALL}, and inserted # into ${PKGINSTALL} in compressed and encoded form. So it is still # available when being installed from a binary package, even if # ${PKGINSTALL} is no file at that time (but only input to a shell). @${SED} -e '/^#%%PKG-INSTALL-START%%$$/,/^#%%PKG-INSTALL-END%%$$/d' \ ${PKGINSTALL} > ${PKGINSTALL}.script @${GZIP_CMD} ${PKGINSTALL}.script @b64encode ${PKGINSTALL}.script.gz script.gz > ${PKGINSTALL}.script.gz.b64 @${SED} -n -e '1,/~EOF~.$$/p' ${PKGINSTALL} > ${PKGINSTALL}.pre @${SED} -n -e '/^~EOF~$$/,$$p' ${PKGINSTALL} > ${PKGINSTALL}.post @${CAT} ${PKGINSTALL}.pre ${PKGINSTALL}.script.gz.b64 ${PKGINSTALL}.post > ${PKGINSTALL}.full @${DIFF} -q ${PKGINSTALL} ${PKGINSTALL}.full >/dev/null || ${CP} ${PKGINSTALL}.full ${PKGINSTALL} # The install target installs the heaps and libraries to their final # location in ${MLBIN} and ${MLLIB}. # In case of recompilation, installml installs the sml heap and the # libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}. # When staging CM_PATHCONFIG has to point to the final # ${MLLIB}/pathconfig (in ${PREFIX}) while building the compiler. .if ${PORT_OPTIONS:MEVERYTHING} MLSRCEXCLUDES= .for excl in ${MLNOINSTALL} MLSRCEXCLUDES+= --exclude "${excl}" .endfor .endif do-install: ${MKDIR} "${STAGEDIR}${MLROOT}" .if ! ${PORT_OPTIONS:MRECOMPILE} cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \ INSTALLDIR="${STAGEDIR}${MLROOT}" \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} .else @${ECHO} '(* Rebuilding the recompiled libs: *)' cd ${WRKSRC}/${RECOMPILEDIR} && ( \ ${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \ ${ECHO_CMD} ${CMB_COMMAND} ; \ ${ECHO_CMD} 'CMB.make ();' ) | \ ../../bin/sml -${MLSIZE} @${ECHO} '(* Rebuilding the recompiled heap: *)' cd ${WRKSRC}/${RECOMPILEDIR} && \ ./makeml -${MLSIZE} @${ECHO} '(* Installing into ${STAGEDIR}${MLROOT}: *)' cd ${WRKSRC} && unset PWD && \ FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="-d ${PATCH_WRKSRC} ${PATCH_ARGS}" \ STAGEDIR="${STAGEDIR}" MLLIB="${MLLIB}" \ INSTALLDIR="${STAGEDIR}${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \ CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' \ AS='${AS}' ASFLAGS='${ASFLAGS}' EXTRA_DEFS='${EXTRA_DEFS}' \ ./config/install.sh -default ${MLSIZE} .endif @${ECHO} '(* Installing man pages. *)' .for mansect in 1 2 3 4 5 6 7 8 9 @[ ! -d ${WRKSRC}/doc/man/man${mansect} ] || \ { cd ${WRKSRC}/doc/man/man${mansect} && ls *.${mansect} | \ ${XARGS} -J % \ ${INSTALL_MAN} % ${STAGEDIR}${PREFIX}/share/man/man${mansect} ; } .endfor @${ECHO} '(* Stripping runtime executable: *)' MLARCHOPSYS=`${STAGEDIR}${MLBIN}/.arch-n-opsys` && \ ( eval $${MLARCHOPSYS} ; \ ${STRIP_CMD} "${STAGEDIR}${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" \ ${RUNTIME_SO} ) .if ${PORT_OPTIONS:MEVERYTHING} @${ECHO} '(* Cleaning base/runtime: *)' cd ${WRKSRC}/base/runtime/objs && ${MAKE_CMD} clean @${ECHO} '(* Cleaning asdl: *)' ${FIND} ${WRKSRC}/asdl -type f \ -exec ${GREP} -F -l "${WRKDIR}" {} \; -delete @${ECHO} -n '(* Installing sources into ${STAGEDIR}${MLROOT} ...' @cd ${WRKSRC} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCDIRS} | \ ${TAR} -xf - -C "${STAGEDIR}${MLROOT}" @${ECHO} ' done. *)' .endif # Only execute ${PKGINSTALL} when installing to ${PREFIX}, # but not when staging. .ifmake install${CALM_PORTLINT} PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL .endif .ifndef MULTIEXEC_WRAPPER_VERBOSE deinstall: export MULTIEXEC_WRAPPER_VERBOSE=yes && \ cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} deinstall .endif # This target may be used by dependent ports to set SMLNJ_VERSION # either to the currently installed smlnj package's version # or else to this port's version. SMLNJ_VERSION is an environment # variable used by multiexec-wrapper to select the executable # from that smlnj-* package matching SMLNJ_VERSION. smlnj-version: @{ ${PKG_INFO} -e smlnj && \ ${EXPR} `${PKG_INFO} -E smlnj` : '.*-\(.*\)' 2>/dev/null ; } || \ ${ECHO_CMD} ${PKGVERSION} .include diff --git a/lang/spidermonkey102/Makefile b/lang/spidermonkey102/Makefile index aa167e10c03a..3ca6eb71ddda 100644 --- a/lang/spidermonkey102/Makefile +++ b/lang/spidermonkey102/Makefile @@ -1,91 +1,81 @@ PORTNAME= spidermonkey DISTVERSION= 102.4.0 PORTREVISION= 19 CATEGORIES= lang MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source PKGNAMESUFFIX= ${SP_VER} DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER= nc@FreeBSD.org COMMENT= Standalone JavaScript based from Mozilla 102-esr WWW= https://spidermonkey.dev/ LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${RUST_DEFAULT}>=1.35:lang/${RUST_DEFAULT} \ autoconf2.13:devel/autoconf2.13 \ rust-cbindgen>=0.8.7:devel/rust-cbindgen LIB_DEPENDS= libffi.so:devel/libffi \ libicudata.so:devel/icu \ libnspr4.so:devel/nspr USES= compiler:c++17-lang gmake localbase pathfix pkgconfig \ python:build readline tar:xz USE_LDCONFIG= yes SP_VER= 102 HAS_CONFIGURE= yes WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ PATCH_WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ CONFIGURE_OUTSOURCE= yes CONFIGURE_ARGS= --enable-application=js \ --disable-debug \ --disable-debug-symbols \ --disable-jemalloc \ --disable-tests \ --enable-optimize \ --enable-readline \ --enable-shared-js \ --prefix=${PREFIX:Q} \ --target=${CONFIGURE_TARGET} \ --with-intl-api \ --with-system-icu \ --with-system-nspr \ --with-system-zlib CONFIGURE_ENV= HOST_CC=${CC} \ HOST_CXX=${CXX} BINARY_ALIAS= python3=${PYTHON_CMD} PLIST_SUB= SP_VER=${SP_VER} .include .if ${ARCH} == amd64 CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL} .endif -# Require newer Clang than what's in base system unless user opted out -# or the base system is new enough. .if ${CHOSEN_COMPILER_TYPE} == gcc CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} BUILD_DEPENDS+= ${LOCALBASE}/bin/llvm-objdump${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} USE_GCC= yes -.elif ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) && \ - ${COMPILER_VERSION} < 80 -CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} -CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} -CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} -CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ - LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} .endif post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/js/moz.configure @${FIND} ${WRKSRC}/python/mozbuild -name *.py -exec \ ${REINPLACE_CMD} 's|"rU"|"r"|g' {} \; pre-configure: (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf2.13) (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf2.13) post-install: ${RM} ${STAGEDIR}${PREFIX}/lib/libjs_static.ajs ${LN} -fs libmozjs-${SP_VER}.so ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.so.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.* .include diff --git a/lang/spidermonkey78/Makefile b/lang/spidermonkey78/Makefile index 959cf4b0aee6..3dc15c8a3342 100644 --- a/lang/spidermonkey78/Makefile +++ b/lang/spidermonkey78/Makefile @@ -1,89 +1,79 @@ PORTNAME= spidermonkey DISTVERSION= 78.15.0 PORTREVISION= 25 CATEGORIES= lang MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source PKGNAMESUFFIX= ${SP_VER} DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER= bofh@FreeBSD.org COMMENT= Standalone JavaScript based from Mozilla 78-esr WWW= https://spidermonkey.dev/ LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${RUST_DEFAULT}>=1.35:lang/${RUST_DEFAULT} \ autoconf2.13:devel/autoconf2.13 \ rust-cbindgen>=0.8.7:devel/rust-cbindgen LIB_DEPENDS= libffi.so:devel/libffi \ libicudata.so:devel/icu \ libnspr4.so:devel/nspr USES= compiler:c++17-lang gmake localbase pathfix pkgconfig python:build \ readline tar:xz USE_LDCONFIG= yes SP_VER= 78 HAS_CONFIGURE= yes WRKSRC= ${WRKDIR}/firefox-${DISTVERSION} PATCH_WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ CONFIGURE_OUTSOURCE= yes CONFIGURE_ARGS= --enable-application=js \ --disable-debug \ --disable-debug-symbols \ --disable-gold \ --disable-jemalloc \ --disable-tests \ --enable-optimize \ --enable-readline \ --enable-shared-js \ --prefix=${PREFIX:Q} \ --target=${CONFIGURE_TARGET} \ --with-intl-api \ --with-system-icu \ --with-system-nspr \ --with-system-zlib CONFIGURE_ENV= HOST_CC=${CC} \ HOST_CXX=${CXX} BINARY_ALIAS= python3=${PYTHON_CMD} PLIST_SUB= SP_VER=${SP_VER} .include .if ${ARCH} == amd64 CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL} .endif -# Require newer Clang than what's in base system unless user opted out -# or the base system is new enough. .if ${CHOSEN_COMPILER_TYPE} == gcc CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} BUILD_DEPENDS+= ${LOCALBASE}/bin/llvm-objdump${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} USE_GCC= yes -.elif ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) && \ - ${COMPILER_VERSION} < 80 -CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} -CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} -CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} -CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ - LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} .endif post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/js/moz.configure @${FIND} ${WRKSRC}/build/pymake ${WRKSRC}/python/mozbuild -name *.py -exec \ ${REINPLACE_CMD} "s|'rU'|'r'|g" {} \; post-install: ${RM} ${STAGEDIR}${PREFIX}/lib/libjs_static.ajs ${LN} -fs libmozjs-${SP_VER}.so ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.so.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/js${SP_VER} ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.* .include diff --git a/lang/spidermonkey91/Makefile b/lang/spidermonkey91/Makefile index 74619b60707f..ff3709c13a54 100644 --- a/lang/spidermonkey91/Makefile +++ b/lang/spidermonkey91/Makefile @@ -1,100 +1,90 @@ PORTNAME= spidermonkey DISTVERSION= 91.13.0 PORTREVISION= 21 CATEGORIES= lang MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source PKGNAMESUFFIX= ${SP_VER} DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER= nc@FreeBSD.org COMMENT= Standalone JavaScript based from Mozilla 91-esr WWW= https://spidermonkey.dev/ LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${RUST_DEFAULT}>=1.35:lang/${RUST_DEFAULT} \ autoconf2.13:devel/autoconf2.13 \ rust-cbindgen>=0.8.7:devel/rust-cbindgen LIB_DEPENDS= libffi.so:devel/libffi \ libicudata.so:devel/icu \ libnspr4.so:devel/nspr USES= compiler:c++17-lang gmake localbase pathfix pkgconfig \ python:build readline tar:xz USE_LDCONFIG= yes SP_VER= 91 HAS_CONFIGURE= yes WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ PATCH_WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ CONFIGURE_OUTSOURCE= yes CONFIGURE_ARGS= --enable-application=js \ --disable-debug \ --disable-debug-symbols \ --disable-gold \ --disable-jemalloc \ --disable-tests \ --enable-optimize \ --enable-readline \ --enable-shared-js \ --prefix=${PREFIX:Q} \ --target=${CONFIGURE_TARGET} \ --with-intl-api \ --with-system-icu \ --with-system-nspr \ --with-system-zlib CONFIGURE_ENV= HOST_CC=${CC} \ HOST_CXX=${CXX} BINARY_ALIAS= python3=${PYTHON_CMD} PLIST_SUB= SP_VER=${SP_VER} .include .if ${OPSYS} == FreeBSD && ( ${OSVERSION} >= 1400091 || ( ${OSVERSION} >= 1302505 && ${OSVERSION} < 1400000 )) USES+= llvm:max=15 CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_VERSION} \ LLVM_OBJDUMP=llvm-objdump${LLVM_VERSION} .endif .include .if ${ARCH} == amd64 CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL} .endif -# Require newer Clang than what's in base system unless user opted out -# or the base system is new enough. .if ${CHOSEN_COMPILER_TYPE} == gcc CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} BUILD_DEPENDS+= ${LOCALBASE}/bin/llvm-objdump${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} USE_GCC= yes -.elif ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) && \ - ${COMPILER_VERSION} < 80 -CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} -CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} -CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} -CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ - LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} -BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} .endif post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/js/moz.configure @${FIND} ${WRKSRC}/python/mozbuild -name *.py -exec \ ${REINPLACE_CMD} 's|"rU"|"r"|g' {} \; pre-configure: (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf2.13) (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf2.13) post-install: ${RM} ${STAGEDIR}${PREFIX}/lib/libjs_static.ajs ${LN} -fs libmozjs-${SP_VER}.so ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.so.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.* .include diff --git a/lang/yap/Makefile b/lang/yap/Makefile index ae35fc256d16..790ddbc079db 100644 --- a/lang/yap/Makefile +++ b/lang/yap/Makefile @@ -1,74 +1,74 @@ PORTNAME= yap PORTVERSION= 6.2.2 PORTREVISION= 11 CATEGORIES= lang MASTER_SITES= https://mirrors.dotsrc.org/mirrors/exherbo/ \ http://ftp.lyx.org/pub/minix/distfiles/backup/ \ http://tenampak.izt.uam.mx/programas/ MAINTAINER= eugen@FreeBSD.org COMMENT= High-performance Prolog compiler WWW= http://www.dcc.fc.up.pt/~vsc/Yap/ LICENSE= ART20 LGPL20 LICENSE_COMB= dual LICENSE_FILE_ART20= ${WRKSRC}/Artistic LICENSE_FILE_LGPL20= ${WRKSRC}/COPYING #BROKEN_riscv64= fails to build: procedure chr_translate/2 is undefined, called from context prolog:once/1 LIB_DEPENDS= libgmp.so:math/gmp USES= compiler:features gmake localbase readline GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-max-performance \ --disable-myddas DATADIR= ${PREFIX}/share/Yap DOCSDIR= ${PREFIX}/share/doc/Yap PORTSCOUT= limit:^6\.2\. OPTIONS_DEFINE= DOCS BUILDDOCS BUILDDOCS_DESC= Rebuild documentation (requires TeX) DOCS_DESC= Install documentation BUILDDOCS_BROKEN= Fatal error occurred, no output PDF file produced BUILDDOCS_BUILD_DEPENDS=${LOCALBASE}/bin/texi2html:textproc/texi2html \ ${LOCALBASE}/bin/texi2pdf:print/texinfo BUILDDOCS_USES= tex BUILDDOCS_USE= TEX=formats:build,dvipsk:build DOCS_INSTALL_TARGET= install install_docs DOCS_PACKAGE= yap-doc-${PORTVERSION} post-build-DOCS-off: # prevent the instalation of three docs files ${REINPLACE_CMD} -e '559,562d' ${WRKSRC}/Makefile .include -.if ${OPSYS} == FreeBSD && ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${OPSYS} == FreeBSD && ${COMPILER_TYPE} == clang CFLAGS+= -Wno-incompatible-function-pointer-types CONFIGURE_ENV+= CFLAGS="${CFLAGS}" .endif .if ${OPSYS} == FreeBSD && ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 180 pre-configure: ${REINPLACE_CMD} 's/ -export-dynamic/ -Wl,--export-dynamic/' \ ${WRKSRC}/configure ${WRKSRC}/packages/cplint/slipcase/Makefile.in .endif .if ${ARCH:Mpowerpc*} USES+= compiler:gcc-c++11-lib .endif .if ${PORT_OPTIONS:MDOCS} && !${PORT_OPTIONS:MBUILDDOCS} MASTER_SITES+= http://www.grosbein.net/freebsd/distfiles/:docs \ LOCAL/eugen:docs DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DOCS_PACKAGE}${EXTRACT_SUFX}:docs .endif .include diff --git a/mail/milter-manager/Makefile b/mail/milter-manager/Makefile index 81deccbe64cd..94cb968a6772 100644 --- a/mail/milter-manager/Makefile +++ b/mail/milter-manager/Makefile @@ -1,52 +1,52 @@ PORTNAME= milter-manager DISTVERSION= 2.1.6 PORTREVISION= 2 CATEGORIES= mail ruby MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/${DISTVERSION}/ MAINTAINER= ports@FreeBSD.org COMMENT= Super milter that can invoke several milters selectively WWW= https://milter-manager.osdn.jp/ LICENSE= AGPLv3 GFDL GPLv3 LGPL3 LICENSE_COMB= multi BUILD_DEPENDS= rubygem-gio2>0:devel/rubygem-gio2 LIB_DEPENDS= libev.so:devel/libev RUN_DEPENDS= rubygem-gio2>0:devel/rubygem-gio2 \ rubygem-rexml>0:textproc/rubygem-rexml USES= compiler:c++11-lang gettext gmake gnome libtool localbase \ pathfix pkgconfig ruby USE_GNOME= glib20 intltool USE_LDCONFIG= yes USE_RC_SUBR= milter-manager GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --with-html-dir=${DOCSDIR} \ --with-libev \ --with-package-platform=freebsd INSTALL_TARGET= install-strip CFLAGS+= -fdeclspec PORTDOCS= * PORTEXAMPLES= * OPTIONS_DEFINE= DOCS EXAMPLES .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif post-patch: @${FIND} ${WRKSRC} -type f -name Makefile.in -exec \ ${REINPLACE_CMD} -e "s#\$$(datadir)/@PACKAGE@#${DATADIR}#" \ -e "s#\$$(datarootdir)/\$$(PACKAGE)#${DATADIR}#" {} + @${REINPLACE_CMD} -e "s#\\\\\$$(pkgdatadir)/sample#${EXAMPLESDIR}#" ${WRKSRC}/configure .include diff --git a/mail/qpopper/Makefile b/mail/qpopper/Makefile index d099acb19e61..f944ccfbfd0c 100644 --- a/mail/qpopper/Makefile +++ b/mail/qpopper/Makefile @@ -1,180 +1,180 @@ PORTNAME= qpopper PORTVERSION= 4.1.0 PORTREVISION= 7 CATEGORIES= mail MASTER_SITES= http://core.ring.gr.jp/archives/net/mail/qpopper/ \ http://ftp.osuosl.org/.1/blfs/7.7/q/ \ LOCAL/eugen DISTNAME= ${PORTNAME}${PORTVERSION} MAINTAINER= eugen@FreeBSD.org COMMENT= Berkeley POP 3 server (now maintained by Qualcomm) WWW= https://www.eudora.com/products/unsupported/qpopper/ # BSD-style license LICENSE= QUALCOMM LICENSE_NAME= Qualcomm BSD-style license LICENSE_FILE= ${WRKSRC}/License.txt LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept USES= compiler:features cpe CPE_VENDOR= qualcomm GNU_CONFIGURE= yes CONFIGURE_ENV= OS_DEFS="-DSETPROCTITLE ${OS_DEFS}" CONFIGURE_ARGS= --enable-nonauth-file=${POPUSERS_FILE} \ --without-gdbm ac_cv_header_gdbm_h=no \ --enable-keep-temp-drop LIBS+= -L${LOCALBASE}/lib -lcrypt -lmd -lutil PLIST_SUB= EPOPPASSD=${EPOPPASSD} \ USERS=${USERS} \ GROUPS=${GROUPS} \ POP_MODE_DIR=${POP_MODE_DIR} \ POP_MODE_CONF=${POP_MODE_CONF} \ QPOPAUTH=${QPOPAUTH} SUB_FILES= pkg-message # internal configuration USERS?= pop GROUPS?= daemon POP_MODE_DIR= 0711 POP_MODE_CONF= 0444 POPUSERS_FILE= ${ETCDIR}/popusers SAMPLE_EXT= .sample PKGDEINSTALL= ${PKGINSTALL} OPTIONS_DEFINE= APOP_ONLY APOP DOCUMENTATION FULL_POPD_DEBUG PAM \ POPPASSD SAMPLE_POPUSERS SHY_ENABLED \ OPENSSL STANDALONE_MODE U_OPTION APOP_ONLY_DESC= build with APOP authentication only APOP_DESC= build with APOP DOCUMENTATION_DESC= install pdf documentation FULL_POPD_DEBUG_DESC= build with more verbose debugging PAM_DESC= build with PAM authentication POPPASSD_DESC= build the poppassd daemon SAMPLE_POPUSERS_DESC= build a default reject file SHY_ENABLED_DESC= hide qpopper version in POP3 banner STANDALONE_MODE_DESC= build qpopper to be run without inetd U_OPTION_DESC= include support for user .qpopper-options OPTIONS_DEFAULT= APOP OPENSSL U_OPTION OPTIONS_SUB= yes OPENSSL_USES= ssl .include .if empty(PORT_OPTIONS:MAPOP) QPOPAUTH= "@comment " .else CONFIGURE_ARGS+= --enable-apop=${ETCDIR}/pop.auth \ --with-popuid=${USERS} QPOPAUTH= "" # If WITH_APOP_ONLY variable present in the environment, qpopper builds # with APOP authentication only. .if ${PORT_OPTIONS:MAPOP_ONLY} OS_DEFS+= -DAPOP_ONLY .endif .endif # If WITH_FULL_POPD_DEBUG variable present in the environment, qpopper builds # with more verbose debugging. See also -d option to qpopper. .if ${PORT_OPTIONS:MFULL_POPD_DEBUG} CONFIGURE_ARGS+= --enable-debugging .endif # If WITH_PAM variable present qpopper builds with PAM authentication .if ${PORT_OPTIONS:MPAM} CONFIGURE_ARGS+= --with-pam=pop3 .endif # If WITH_POPPASSD variable present in the environment, qpopper builds # with poppassd support. .if ${PORT_OPTIONS:MPOPPASSD} CONFIGURE_ARGS+= --enable-poppassd EXTRA_PATCHES+= ${FILESDIR}/extra-patch-password__poppassd.c \ ${FILESDIR}/extra-patch-password__auth_user.c EPOPPASSD= "" .else EPOPPASSD= "@comment " .endif # If WITH_SHY_ENABLED variable present, qpopper does not present # its version number within the POP3 session. .if ${PORT_OPTIONS:MSHY_ENABLED} CONFIGURE_ARGS+= --enable-shy .endif # If WITH STANDALONE_MODE variable present qpopper is built so it runs # without inetd. .if ${PORT_OPTIONS:MSTANDALONE_MODE} CONFIGURE_ARGS+= --enable-standalone USE_RC_SUBR= ${PORTNAME} .endif # The default is to build without SSL/TLS support. .if ${PORT_OPTIONS:MOPENSSL} CONFIGURE_ARGS+= --with-openssl=${OPENSSLBASE} .endif # openssl-1.1.1 no longer has SSLv2 support .if ${OPSYS} == FreeBSD CFLAGS+= -DOPENSSL_NO_SSL2 -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-incompatible-function-pointer-types .endif .endif CONFIGURE_ENV+= CFLAGS="${CFLAGS}" post-patch: .if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|-freg-struct-return||' ${WRKSRC}/configure .endif @${RM} ${WRKSRC}/popper/md5.h @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/man/* @${REINPLACE_CMD} -e \ 's|\$${sbindir}/sendmail|${LOCALBASE}/sbin/sendmail|g' \ ${WRKSRC}/configure .if ${PORT_OPTIONS:MPOPPASSD} @${REINPLACE_CMD} -e 's|/usr/bin/smbpasswd|${LOCALBASE}/bin/smbpasswd|' \ ${WRKSRC}/password/poppassd.c .endif .if empty(PORT_OPTIONS:MU_OPTION) @${REINPLACE_CMD} -E -e 's|(getopt \(.+)u|\1|' \ ${WRKSRC}/popper/main.c .endif do-install: .if ${PORT_OPTIONS:MAPOP} ${INSTALL_PROGRAM} ${WRKSRC}/popper/popauth ${STAGEDIR}${PREFIX}/bin/qpopauth ${INSTALL_MAN} ${WRKSRC}/man/popauth.8 ${STAGEDIR}${PREFIX}/share/man/man8/qpopauth.8 ${LN} -sf qpopauth ${STAGEDIR}${PREFIX}/bin/qapopauth .endif ${INSTALL_PROGRAM} ${WRKSRC}/popper/popper ${STAGEDIR}${PREFIX}/libexec/qpopper ${INSTALL_MAN} ${WRKSRC}/man/popper.8 ${STAGEDIR}${PREFIX}/share/man/man8/qpopper.8 .if ${PORT_OPTIONS:MPOPPASSD} ${INSTALL_PROGRAM} ${WRKSRC}/password/poppassd ${STAGEDIR}${PREFIX}/libexec/qpoppassd .endif .if ${PORT_OPTIONS:MDOCUMENTATION} @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/GUIDE.pdf ${STAGEDIR}${DOCSDIR} .endif # based on original from op port, written by Cyrille Lefevre # . @if [ ! -f ${CONF_DIR}/${CONF_FILE}${SAMP_SUFX} ]; then \ ${MKDIR} ${STAGEDIR}${ETCDIR} ; \ if [ -f /etc/ftpusers ] && [ -n "${PORT_OPTIONS:MSAMPLE_POPUSERS}" ]; then \ ${INSTALL} -c /etc/ftpusers ${STAGEDIR}${POPUSERS_FILE}${SAMPLE_EXT} ; \ else \ ${CP} /dev/null ${STAGEDIR}${POPUSERS_FILE}${SAMPLE_EXT} ; \ fi ; \ fi .include diff --git a/math/py-fastcluster/Makefile b/math/py-fastcluster/Makefile index e19eaa145ae9..f22686d913b8 100644 --- a/math/py-fastcluster/Makefile +++ b/math/py-fastcluster/Makefile @@ -1,36 +1,27 @@ PORTNAME= fastcluster PORTVERSION= 1.2.6 PORTREVISION= 2 CATEGORIES= math python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= sunpoet@FreeBSD.org COMMENT= Fast hierarchical clustering routines for R and Python WWW= http://danifold.net/fastcluster.html \ https://github.com/dmuellner/fastcluster LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/COPYING.txt BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.9,1:math/py-numpy@${PY_FLAVOR} USES= compiler python USE_PYTHON= autoplist concurrent pep517 -.include - -.if ${ARCH:Mpowerpc*} && ${COMPILER_VERSION} == 140 -BUILD_DEPENDS+= clang15:devel/llvm15 -CPP= clang-cpp15 -CC= clang15 -CXX= clang++15 -.endif - post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + -.include +.include diff --git a/math/scilab/Makefile b/math/scilab/Makefile index 750a08a2ff41..e0b85e20534b 100644 --- a/math/scilab/Makefile +++ b/math/scilab/Makefile @@ -1,191 +1,188 @@ PORTNAME= scilab PORTVERSION= 6.1.1 PORTREVISION= 18 CATEGORIES= math cad java MASTER_SITES= https://www.scilab.org/download/${PORTVERSION}/ DISTFILES= ${DISTNAME}-src${EXTRACT_SUFX} MAINTAINER= ports@FreeBSD.org COMMENT= Scientific software package for numerical computations WWW= https://www.scilab.org LICENSE= GPLv2 BSD3CLAUSE LICENSE_COMB= dual LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING LICENSE_FILE_BSD3CLAUSE= ${WRKSRC}/COPYING-BSD LIB_DEPENDS= libxml2.so:textproc/libxml2 \ libpcre.so:devel/pcre \ libcurl.so:ftp/curl \ libhdf5.so:science/hdf5 \ libarpack.so:math/arpack-ng \ libfftw3.so:math/fftw3 \ libmatio.so:math/matio \ libamd.so:math/suitesparse-amd \ libumfpack.so:math/suitesparse-umfpack RUN_DEPENDS= xdg-open:devel/xdg-utils USES= compiler:c++17-lang cpe desktop-file-utils eigen:3,build \ fortran gettext gmake gnome iconv:wchar_t libtool \ localbase ncurses pathfix pkgconfig shared-mime-info USE_LOCALE= en_US.UTF-8 GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-gfortran \ --without-emf \ --with-eigen-include=${LOCALBASE}/include/eigen3 \ ${ICONV_CONFIGURE_ARG} LDFLAGS+= ${ICONV_LIB} CONFIGURE_ENV= BLAS_LIBS="${BLASLIB}" LAPACK_LIBS="${LAPACKLIB}" INSTALL_TARGET= install-strip PLIST_SUB= SHLIB_VER=${PORTVERSION} OPTIONS_DEFINE= GUI OCAML TK OPTIONS_RADIO= BLAS OPTIONS_RADIO_BLAS= ATLAS NETLIB OPENBLAS OPTIONS_DEFAULT= GUI NETLIB OCAML TK OPTIONS_EXCLUDE_powerpc64= GUI OPTIONS_EXCLUDE_powerpc64le= GUI OPTIONS_SUB= yes ATLAS_USES= blaslapack:atlas NETLIB_USES= blaslapack:netlib OPENBLAS_USES= blaslapack:openblas GUI_DESC= Java-based Graphical User Interface OCAML_DESC= Scicos - dynamical system simulator (requires GUI) # Java dependencies: _GUI_DEPENDS+= ${JAVALIBDIR}/flexdock.jar:devel/flexdock \ ${JAVALIBDIR}/jogl2.jar:graphics/jogamp-jogl \ foprep:math/jeuclid \ ${JAVALIBDIR}/jhall.jar:java/javahelp \ ${JAVALIBDIR}/jrosetta-api.jar:java/jrosetta \ ${JAVALIBDIR}/commons-logging.jar:java/apache-commons-logging \ ${JAVALIBDIR}/jgraphx.jar:java/jgraphx \ ${JAVALIBDIR}/jlatexmath.jar:math/jlatexmath \ ${JAVALIBDIR}/ecj-4.4.2.jar:java/eclipse-ecj \ ${JAVALIBDIR}/lucene-core-5.5.5.jar:textproc/lucene5 # Documentation, graphic export: _GUI_DEPENDS+= ${LOCALBASE}/share/java/fop/build/fop.jar:textproc/fop \ ${JAVALIBDIR}/jlatexmath-fop.jar:math/jlatexmath \ ${LOCALBASE}/share/java/batik/lib/batik-all.jar:graphics/batik \ ${JAVALIBDIR}/avalon-framework.jar:devel/avalon-framework \ ${JAVALIBDIR}/commons-io.jar:devel/apache-commons-io \ ${JAVALIBDIR}/xmlgraphics-commons.jar:graphics/xmlgraphics-commons # Code quality: _GUI_DEPENDS+= ${JAVALIBDIR}/commons-beanutils.jar:java/apache-commons-beanutils \ ${JAVALIBDIR}/antlr.jar:devel/antlr \ ${JAVALIBDIR}/junit4.jar:java/junit \ ${LOCALBASE}/bin/splint:devel/splint # Documentation building: _GUI_DEPENDS+= ${LOCALBASE}/share/xsl/docbook/javahelp/javahelp.xsl:textproc/docbook-xsl \ ${JAVALIBDIR}/saxon-he-10.6.jar:textproc/saxon-he \ ${JAVALIBDIR}/xml-apis-ext.jar:textproc/xml-commons \ xsltproc:textproc/libxslt # Other gui deps: _GUI_DEPENDS+= ${JAVALIBDIR}/looks.jar:devel/jgoodies-looks \ ${JAVALIBDIR}/skinlf.jar:x11-toolkits/skinlf # Can't use USE_ANT because it overrides do-build target GUI_BUILD_DEPENDS= ${_GUI_DEPENDS} \ ant:devel/apache-ant GUI_RUN_DEPENDS= ${_GUI_DEPENDS} GUI_ALL_TARGET= all doc GUI_USES= gl GUI_USE= GL=gl JAVA=yes GUI_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-bin-JAVA_HOME GUI_CONFIGURE_ON= --with-jdk=${JAVA_HOME} \ --with-docbook=${LOCALBASE}/share/xsl/docbook \ --enable-build-help GUI_CONFIGURE_OFF= --without-gui \ --without-javasci \ --without-xcos \ --disable-build-help OCAML_IMPLIES= GUI OCAML_CONFIGURE_WITH= modelica OCAML_BUILD_DEPENDS= ocaml:lang/ocaml \ ${LOCALBASE}/lib/ocaml/site-lib/num/META:math/ocaml-num OCAML_RUN_DEPENDS= ocaml:lang/ocaml TK_CONFIGURE_OFF= --without-tk TK_CONFIGURE_ON= --with-tk-library=${LOCALBASE}/lib \ --with-tk-include=${TK_INCLUDEDIR} \ --with-tcl-library=${LOCALBASE}/lib \ --with-tcl-include=${TCL_INCLUDEDIR} TK_USES= tk xorg TK_USE= XORG=x11 TK_RUN_DEPENDS= ${LOCALBASE}/lib/bwidget/init.tcl:x11-toolkits/bwidget .if !exists(/usr/include/omp.h) CONFIGURE_ARGS+= --without-openmp .endif .if defined(WITH_DEBUG) CONFIGURE_ARGS+= --enable-debug .endif .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=int-conversion -.endif - -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .if ${GCC_DEFAULT} >= 10 # workaround for Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar) FFLAGS+= -fallow-argument-mismatch .endif post-patch: @${REINPLACE_CMD} 's,/usr/local,${LOCALBASE},' ${WRKSRC}/etc/librarypath.xml @${REINPLACE_CMD} -e 's, gfortran, ${FC},' ${WRKSRC}/modules/dynamic_link/src/scripts/configure -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::filesystem|std::__fs::filesystem|g' \ ${WRKSRC}/modules/fileio/src/cpp/fullpath.cpp \ ${WRKSRC}/modules/fileio/sci_gateway/cpp/sci_get_absolute_file_path.cpp @${REINPLACE_CMD} -e 's|std::binary_function|std::__binary_function|' \ ${WRKSRC}/modules/ast/includes/types/sparseOp.hxx @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/modules/ast/src/cpp/types/sparse.cpp .endif post-patch-GUI-on: # scilab segfaults on FreeBSD with C locale @${REINPLACE_CMD} 's,LC_ALL=C,,' ${WRKSRC}/Makefile.in @${REINPLACE_CMD} '/ac_java_jvm_jni_lib_flags/s,\(ljvm\),\1 -pthread,' ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|/usr/lib/java|${JAVALIBDIR}|g' ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|/usr/lib64/jni|${LOCALBASE}/lib/|g' ${WRKSRC}/configure @${REINPLACE_CMD} 's,\(DEFAULT_JAR_DIR="\),\1 \ ${LOCALBASE}/share/java/classes \ ${LOCALBASE}/share/java/fop/build \ ${LOCALBASE}/share/java/batik/lib \ ${LOCALBASE}/share/java/jeuclid/repo ,' ${WRKSRC}/configure # Prefer non-versioned files to avoid excessive rebuilds. This also fixes detection of fop. @${REINPLACE_CMD} 's|batik-all\*\.jar|batik-all.jar|g; \ s|commons-io\*\.jar|commons-io.jar|g; \ s|commons-logging\*\.jar|commons-logging.jar|g; \ s|fop\*\.jar|fop.jar|g; \ s|jlatexmath\*\.jar|jlatexmath.jar|g; \ s|xmlgraphics-commons\*\.jar|xmlgraphics-commons.jar|g' \ ${WRKSRC}/configure # Part of the jogamp-jogl-2.3 patch: @${REINPLACE_CMD} -e 's|javax.media.opengl.glu.GLUnurbs|com.jogamp.opengl.glu.GLUnurbs|' ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|jogamp.common.os.MachineDescriptionRuntime|jogamp.common.os.MachineDataInfoRuntime|' ${WRKSRC}/configure @${REINPLACE_CMD} -e 's|%%JAVA_HOME%%|${JAVA_HOME}|' ${WRKSRC}/bin/scilab pre-install: ${MKDIR} ${STAGEDIR}${DATADIR}/.atoms post-install: @${FIND} ${STAGEDIR}${DATADIR}/modules -type d -empty -delete .include diff --git a/misc/ecflow/Makefile b/misc/ecflow/Makefile index 06213cac698e..796d91d42ae5 100644 --- a/misc/ecflow/Makefile +++ b/misc/ecflow/Makefile @@ -1,41 +1,41 @@ PORTNAME= ecflow DISTVERSION= 5.13.0 CATEGORIES= misc MASTER_SITES= https://confluence.ecmwf.int/download/attachments/8650755/ DISTNAME= ecFlow-${DISTVERSION}-Source MAINTAINER= yuri@FreeBSD.org COMMENT= Workflow package that enables users to run a large number of programs WWW= https://confluence.ecmwf.int/display/ECFLOW/ecflow+home LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boost-libs>0:devel/boost-python-libs@${PY_FLAVOR} BUILD_DEPENDS= bash:shells/bash \ ${PY_DEPENDS} LIB_DEPENDS= libboost_program_options.so:devel/boost-libs RUN_DEPENDS= ${PY_DEPENDS} USES= cmake compiler:c++17-lang gl localbase perl5 pkgconfig python qt:6 shebangfix ssl USE_QT= 5compat base charts svg tools:build USE_GL= gl opengl SHEBANG_GLOB= *.sh *.in *.py CMAKE_OFF= ENABLE_STATIC_BOOST_LIBS ENABLE_TESTS ENABLE_ALL_TESTS CXXFLAGS_armv7= -fPIC # attempt to work around compilation failure, see https://jira.ecmwf.int/browse/SUP-3688 CXXFLAGS_i386= -fPIC # attempt to work around compilation failure, see https://jira.ecmwf.int/browse/SUP-3688 CONFLICTS_BUILD= python27 # build attempts to find python-2.7 and use it .include #post-patch: -#.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +#.if ${COMPILER_TYPE} == clang # @${REINPLACE_CMD} -e 's|std::binary_function|std::__binary_function|' \ # ${WRKSRC}/ACore/src/Str.cpp #.endif .include diff --git a/misc/rump/Makefile b/misc/rump/Makefile index b2e2b8ae95b3..ffd65363bba7 100644 --- a/misc/rump/Makefile +++ b/misc/rump/Makefile @@ -1,46 +1,46 @@ PORTNAME= rump PORTVERSION= 20170822 PORTREVISION= 3 CATEGORIES= misc MAINTAINER= vanilla@FreeBSD.org COMMENT= Virtualized NetBSD kernel components in userspace WWW= https://www.rumpkernel.org LICENSE= BSD2CLAUSE ONLY_FOR_ARCHS= aarch64 amd64 i386 ONLY_FOR_ARCHS_REASON= only supports FreeBSD on this architecture USE_GITHUB= yes GH_ACCOUNT= rumpkernel GH_PROJECT= buildrump.sh GH_TAGNAME= b914579 GH_TUPLE= rumpkernel:src-netbsd:82f3a69:netbsd/src USE_LDCONFIG= yes USES= compiler .include .if ${OPSYS} == FreeBSD && ( ${OSVERSION} >= 1400079 || ( ${OSVERSION} >= 1302505 && ${OSVERSION} < 1400000 )) CFLAGS+= -Wno-error=strict-prototypes -Wno-error=array-parameter .endif .if ${ARCH} == amd64 || ${ARCH} == i386 PLIST_SUB+= X8664="" .else PLIST_SUB+= X8664="@comment " .endif CWARNFLAGS+= -Wno-address-of-packed-member -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 130 +.if ${COMPILER_TYPE} == clang CWARNFLAGS+= -Wno-unused-but-set-variable .endif do-build: cd ${WRKSRC}; ${SETENV} CC=${CC} AR=${AR} NM=${NM} OBJCOPY=${OBJCOPY} ./buildrump.sh -F CFLAGS="${CFLAGS}" -F CWARNFLAGS="${CWARNFLAGS}" -r fullbuild do-install: cd ${WRKSRC}/rump; ${PAX} -wr lib include ${STAGEDIR}${PREFIX}/ .include diff --git a/multimedia/bcmatroska2/Makefile b/multimedia/bcmatroska2/Makefile index 6a8972aa1b7a..11e6c8bbfada 100644 --- a/multimedia/bcmatroska2/Makefile +++ b/multimedia/bcmatroska2/Makefile @@ -1,29 +1,29 @@ PORTNAME= bcmatroska2 PORTVERSION= 5.2.1 PORTREVISION= 1 CATEGORIES= multimedia MAINTAINER= bofh@FreeBSD.org COMMENT= Belledonne Communications Matroska media container support WWW= https://www.linphone.org/ LICENSE= BSD3CLAUSE LIB_DEPENDS= libbctoolbox.so:net/bctoolbox USES= cmake compiler:c++17-lang USE_GITLAB= yes GL_SITE= https://gitlab.linphone.org/BC GL_ACCOUNT= public USE_LDCONFIG= yes CMAKE_ARGS= -DCMAKE_PREFIX_PATH=${LOCALBASE} \ -DENABLE_STATIC=NO .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .include diff --git a/multimedia/x264/Makefile b/multimedia/x264/Makefile index 1545c7d6af76..97a5a4643de4 100644 --- a/multimedia/x264/Makefile +++ b/multimedia/x264/Makefile @@ -1,133 +1,133 @@ # # NOTES FOR UPDATING PORT: # # We use tarballs from the *stable* branch of the upstream git repository. # # X264_BUILD is the "core" number, and can be found in x264.h. # # X264_REV requires a checkout the git revision for the version the port # is being updated to. Then run version.sh against it. # # Bumping PORTREVISION for dependent ports? This is useful: # fgrep -lr --include='*/Makefile*' :multimedia/libx264 $PORTSDIR | # sed 's,/Makefile.*,,' | xargs $PORTSDIR/Tools/scripts/bump-revision.sh # or # rg -l :multimedia/libx264 $PORTSDIR | xargs -n1 portedit bump-revision -i PORTNAME= x264 PORTVERSION= 0.${X264_BUILD}.${X264_REV} PORTREVISION?= 2 CATEGORIES= multimedia MASTER_SITES= https://samples.mplayerhq.hu/yuv4mpeg2/:pgo DIST_SUBDIR= x264 EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= bofh@FreeBSD.org COMMENT?= H.264/MPEG-4 AVC Video Encoding (Front End CLI) WWW= https://www.videolan.org/x264.html LICENSE= GPLv2 LICENSE_NAME_PGO= PGO LICENSE_FILE= ${WRKSRC}/COPYING LICENSE_PERMS_PGO= auto-accept # ${Y4M_VIDEO_DISTFILE} file may not be mirrored LICENSE_DISTFILES_PGO= ${Y4M_VIDEO_DISTFILE} BUILD_DEPENDS= bash:shells/bash LIB_DEPENDS?= libx264.so:multimedia/libx264 X264_BUILD= 164 X264_REV= 3095 X264_GITVER= ${GL_TAGNAME:C/^(.{7}).*/\1/} USES?= pkgconfig USES+= compiler:c11 gmake localbase shebangfix USE_GITLAB= yes GL_SITE= https://code.videolan.org GL_ACCOUNT= videolan GL_TAGNAME= baee400fa9ced6f5481a728138fed6e867b0ff7f USE_LDCONFIG= yes SHEBANG_FILES= configure HAS_CONFIGURE= yes CONFIGURE_ARGS?= --system-libx264 CONFIGURE_ARGS+= --prefix="${PREFIX}" \ --extra-cflags="${CPPFLAGS} ${CFLAGS}" \ --extra-ldflags="${LDFLAGS}" PLIST_FILES?= bin/x264 OPTIONS_DEFINE+= BASH DEBUG FFMS LAVF PGO SWSCALE OPTIONS_DEFAULT+= BASH FFMS LAVF LSMASH SWSCALE OPTIONS_RADIO+= MP4 OPTIONS_RADIO_MP4+= GPAC LSMASH .if make(makesum) # for optional distfiles .MAKEFLAGS: WITH="${OPTIONS_DEFINE}" .endif FFMS_DESC= FFmpeg Source input support GPAC_DESC= GPAC library support LAVF_DESC= libav* format input support (requires FFmpeg) LSMASH_DESC= L-SMASH library support MP4_DESC= MPEG-4 output SWSCALE_DESC= Resize video filter BASH_BUILD_DEPENDS= bash-completion>0:shells/bash-completion BASH_RUN_DEPENDS= bash-completion>0:shells/bash-completion BASH_CONFIGURE_ENABLE= bashcompletion BASH_PLIST_FILES= share/bash-completion/completions/x264 DEBUG_CONFIGURE_OFF= --enable-strip DEBUG_CONFIGURE_ENABLE= debug FFMS_IMPLIES= SWSCALE FFMS_LIB_DEPENDS= libffms2.so:multimedia/ffms2 FFMS_CONFIGURE_ENABLE= ffms GPAC_LIB_DEPENDS= libgpac.so:multimedia/gpac-libgpac GPAC_CONFIGURE_ENABLE= gpac LAVF_IMPLIES= SWSCALE LAVF_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libavformat.so:multimedia/ffmpeg \ libavutil.so:multimedia/ffmpeg LAVF_CONFIGURE_ENABLE= lavf LSMASH_LIB_DEPENDS= liblsmash.so:multimedia/l-smash LSMASH_CONFIGURE_ENABLE=lsmash PGO_DISTFILES= ${Y4M_VIDEO_DISTFILE}:pgo PGO_MAKE_ENV= VIDS="${WRKDIR}/${Y4M_VIDEO}" PGO_ALL_TARGET= fprofiled PGO_USE= GCC=yes PGO_VARS= LICENSE+=PGO LICENSE_COMB=multi SWSCALE_LIB_DEPENDS= libavutil.so:multimedia/ffmpeg \ libswscale.so:multimedia/ffmpeg SWSCALE_CONFIGURE_ENABLE= swscale # y4m sample video Y4M_VIDEO= example.y4m Y4M_VIDEO_DISTFILE= example.y4m.bz2 post-extract-PGO-on: @${BZIP2_CMD} -dc ${DISTDIR}/${DIST_SUBDIR}/${Y4M_VIDEO_DISTFILE} \ >${WRKDIR}/${Y4M_VIDEO} post-patch: @${REINPLACE_CMD} -e ' \ s|gpac_static|gpac|g' \ ${WRKSRC}/configure @${REINPLACE_CMD} -e ' \ s|bash|sh|; \ s|VER="x"|VER="${X264_REV} ${X264_GITVER}"|; \ s|VERSION=""|VERSION=" r${X264_REV} ${X264_GITVER}"|' \ ${WRKSRC}/version.sh .if !target(pre-build) pre-build: @(${RM} ${WRKSRC}/x264_config.h) .endif .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 && !${PORT_OPTIONS:MPGO} +.if ${COMPILER_TYPE} == clang && !${PORT_OPTIONS:MPGO} CFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .include diff --git a/net-im/telegram-desktop/Makefile b/net-im/telegram-desktop/Makefile index cd70762873b8..08c3e85504d0 100644 --- a/net-im/telegram-desktop/Makefile +++ b/net-im/telegram-desktop/Makefile @@ -1,155 +1,155 @@ PORTNAME= telegram-desktop DISTVERSION= 5.1.7 PORTREVISION= 1 CATEGORIES= net-im MASTER_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/releases/download/v${DISTVERSION}/ DISTNAME= tdesktop-${DISTVERSION}-full DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= ports@FreeBSD.org COMMENT= Telegram Desktop messaging app WWW= https://desktop.telegram.org/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_i386= does not build, webrtc related #BROKEN_SSL= openssl openssl31 #BROKEN_SSL_REASON= undefined symbol: ERR_load_BIO_strings NOT_FOR_ARCHS= powerpc powerpc64 powerpcspe NOT_FOR_ARCHS_REASON= Only little endian is supported BUILD_DEPENDS= boost-libs>0:devel/boost-libs \ range-v3>0:devel/range-v3 \ tl-expected>0:devel/tl-expected \ v4l_compat>0:multimedia/v4l_compat \ yasm:devel/yasm \ ${LOCALBASE}/lib/libtg_owt.a:net-im/tg_owt LIB_DEPENDS= libabsl_base.so:devel/abseil \ libavformat.so:multimedia/ffmpeg \ libcrc32c.so:devel/crc32c \ libdbus-1.so:devel/dbus \ libdispatch.so:devel/libdispatch \ libfmt.so:devel/libfmt \ libhunspell-1.7.so:textproc/hunspell \ liblz4.so:archivers/liblz4 \ libopenh264.so:multimedia/openh264 \ libopus.so:audio/opus \ libpipewire-0.3.so:multimedia/pipewire \ libprotobuf.so:devel/protobuf \ libqrcodegencpp.so:graphics/qr-code-generator \ librnnoise.so:audio/rnnoise \ libsrtp2.so:net/libsrtp2 \ libxcb-keysyms.so:x11/xcb-util-keysyms \ libxkbcommon.so:x11/libxkbcommon \ libxxhash.so:devel/xxhash \ libvpx.so:multimedia/libvpx FLAVORS= qt5 qt6 FLAVOR?= ${FLAVORS:[1]} qt5_PKGNAMESUFFIX= qt6_PKGNAMESUFFIX= -qt6 qt5_CONFLICTS_INSTALL= ${PORTNAME}-qt6 qt6_CONFLICTS_INSTALL= ${PORTNAME} USES= cmake compiler:c++20-lang desktop-file-utils gl gnome jpeg localbase \ minizip openal pkgconfig python:build ssl xorg USE_GITHUB= nodefault GH_ACCOUNT= telegramdesktop GH_PROJECT= tdesktop .if ${FLAVOR} == qt5 USES+= kde:5 qt:5 USE_QT= buildtools:build core dbus declarative gui imageformats network qmake:build \ svg wayland widgets USE_KDE= coreaddons kimageformats .else USES+= kde:6 qt:6 USE_QT= 5compat base declarative imageformats lottie shadertools svg tools:build wayland USE_KDE= coreaddons kimageformats .endif USE_GL= gl USE_GNOME= glib20 glibmm26 introspection USE_XORG= x11 xcb xcomposite xdamage xext xfixes xrandr xrender xtst CMAKE_ARGS= -DTDESKTOP_API_ID=${TELEGRAM_API_ID} -DTDESKTOP_API_HASH=${TELEGRAM_API_HASH} \ -DQT_VERSION_MAJOR=${FLAVOR:S/qt//} CMAKE_ON= DESKTOP_APP_USE_PACKAGED DESKTOP_APP_DISABLE_CRASH_REPORTS \ DESKTOP_APP_DISABLE_JEMALLOC \ DESKTOP_APP_DISABLE_SCUDO \ DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION # Since cmake 3.25.0, BSDs are no longer recognised as Linux (in this port). CMAKE_ARGS+= -DLINUX=true # libdispatch components LDFLAGS+= -lBlocksRuntime # Telegram uses OpenAL for its audio, but libtgvoip (for voice calls) can use PulseAudio or ALSA. # It dynamically loads PulseAudio, and if this fails, it loads ALSA. # If both of them are not installed, then voice calls do not work, but other functionalities still work. OPTIONS_DEFINE= SYSTEM_FONTS OPTIONS_DEFAULT= ALSA OPTIONS_GROUP= AUDIO OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO AUDIO_DESC= Audio backend for voice calls SYSTEM_FONTS_DESC= Use system fonts instead of bundled patched ones ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio ALSA_CMAKE_BOOL_OFF= LIBTGVOIP_DISABLE_ALSA PULSEAUDIO_CMAKE_BOOL_OFF= LIBTGVOIP_DISABLE_PULSEAUDIO SYSTEM_FONTS_CMAKE_BOOL_OFF= DESKTOP_APP_USE_PACKAGED_FONTS # Telegram asks each custom build to have its own API ID and hash. TELEGRAM_API_HASH= 20a3432aab43f24bb4460fceac5ba38d TELEGRAM_API_ID= 601761 .include -.if ${OPSYS} == FreeBSD && ((${OSVERSION} >= 1400000 && ${OSVERSION} < 1400091) || ${OSVERSION} < 1302507) +.if ${OPSYS} == FreeBSD && (${OSVERSION} >= 1400000 && ${OSVERSION} < 1400091) #EXTRA_PATCHES= ${PATCHDIR}/extra-patch-CMakeLists.txt USES+= llvm:min=16,build USES:= ${USES:Ncompiler\:*} # XXX avoid warnings .if defined(WITH_CCACHE_BUILD) && !defined(NO_CCACHE) CMAKE_ARGS+= -DCMAKE_CC_COMPILER_LAUNCHER="${LOCALBASE}/bin/ccache" \ -DCMAKE_CPP_COMPILER_LAUNCHER="${LOCALBASE}/bin/ccache" \ -DCMAKE_CXX_COMPILER_LAUNCHER="${LOCALBASE}/bin/ccache" .endif #.else #USES+= compiler:c++20-lang .endif post-extract: # Some of the third-party components already built, and # can be safely removed ${RM} -rf \ ${WRKSRC}/Telegram/ThirdParty/QR \ ${WRKSRC}/Telegram/ThirdParty/dispatch \ ${WRKSRC}/Telegram/ThirdParty/expected \ ${WRKSRC}/Telegram/ThirdParty/fcitx5-qt \ ${WRKSRC}/Telegram/ThirdParty/hime \ ${WRKSRC}/Telegram/ThirdParty/hunspell \ ${WRKSRC}/Telegram/ThirdParty/jemalloc \ ${WRKSRC}/Telegram/ThirdParty/jimf \ ${WRKSRC}/Telegram/ThirdParty/kcoreaddons \ ${WRKSRC}/Telegram/ThirdParty/kimageformats \ ${WRKSRC}/Telegram/ThirdParty/lz4 \ ${WRKSRC}/Telegram/ThirdParty/minizip \ ${WRKSRC}/Telegram/ThirdParty/plasma-wayland-protocols \ ${WRKSRC}/Telegram/ThirdParty/range-v3 \ ${WRKSRC}/Telegram/ThirdParty/wayland \ ${WRKSRC}/Telegram/ThirdParty/wayland-protocols \ ${WRKSRC}/Telegram/ThirdParty/xxHash post-patch: # XXX fix the following on every source file # warning: unknown warning option '-Wno-maybe-uninitialized' # warning: argument unused during compilation: '-fstack-clash-protection' ${REINPLACE_CMD} -e /-Wno-maybe-uninitialized/d -e /-fstack-clash-protection/d \ ${WRKSRC}/cmake/options_linux.cmake .include diff --git a/net-mgmt/nfdump/Makefile b/net-mgmt/nfdump/Makefile index f2324b570211..da28666930cc 100644 --- a/net-mgmt/nfdump/Makefile +++ b/net-mgmt/nfdump/Makefile @@ -1,93 +1,93 @@ PORTNAME= nfdump PORTVERSION= 1.7.4 DISTVERSIONPREFIX=v CATEGORIES= net-mgmt MAINTAINER= pi@FreeBSD.org COMMENT= Command-line tools to collect and process NetFlow, sFlow and IPFIX data WWW= https://github.com/phaag/nfdump LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/BSD-license.txt USES= autoreconf compiler:c11 cpe libtool pkgconfig CPE_VENDOR= nfdump_project USE_CSTD= gnu89 USE_GITHUB= yes GH_ACCOUNT= phaag USE_LDCONFIG= yes GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share INSTALL_TARGET= install-strip PLIST_FILES= bin/nfanon bin/nfcapd bin/nfdump bin/nfexpire bin/nfreplay \ lib/libnfdump-${PORTVERSION}.so lib/libnfdump.so \ lib/libnfdump.a \ share/man/man1/nfanon.1.gz share/man/man1/nfcapd.1.gz \ share/man/man1/nfdump.1.gz share/man/man1/nfexpire.1.gz \ share/man/man1/nfreplay.1.gz \ etc/nfdump.conf.sample PORTDOCS= AUTHORS ChangeLog INSTALL NEWS README #flow-tools support OPTIONS_DEFINE= DOCS FT2NFDUMP NFPROFILE FIXTIMEBUG READPCAP NFTRACK \ SFLOW NFPCAPD NSEL INFLUXDB GEODB OPTIONS_DEFAULT= NFPROFILE NFPCAPD READPCAP NFTRACK NSEL SFLOW FIXTIMEBUG_DESC= With fixing swap time bug of some v5 FT2NFDUMP_DESC= With Flow-tools to nfdump converter INFLUXDB_DESC= Enable stats to InfluxDB NFPCAPD_DESC= Build nfpcapd collector daemon also NFPROFILE_DESC= With nfprofile (nfsen requires it) NFTRACK_DESC= With PortTracker support NSEL_DESC= Read and process ASA/NSEL/NEL event data READPCAP_DESC= With pcap support SFLOW_DESC= Build sflow collector daemon also GEODB_DESC= Build geolookup for MaxMind GeoDB FIXTIMEBUG_CONFIGURE_ENABLE= fixtimebug FT2NFDUMP_BUILD_DEPENDS= flow-cat:net-mgmt/flow-tools FT2NFDUMP_LIB_DEPENDS= libft.so:net-mgmt/flow-tools FT2NFDUMP_CONFIGURE_ON= --enable-ftconv --with-ftpath=${LOCALBASE} FT2NFDUMP_PLIST_FILES= bin/ft2nfdump share/man/man1/ft2nfdump.1.gz INFLUXDB_LIB_DEPENDS= libcurl.so:ftp/curl INFLUXDB_CONFIGURE_ENABLE= influxdb NFPCAPD_CONFIGURE_ENABLE= nfpcapd NFPCAPD_PLIST_FILES= bin/nfpcapd share/man/man1/nfpcapd.1.gz NFPROFILE_CONFIGURE_ENABLE= nfprofile NFPROFILE_PLIST_FILES= bin/nfprofile share/man/man1/nfprofile.1.gz NFTRACK_CONFIGURE_ENABLE= nftrack NFTRACK_PLIST_FILES= bin/nftrack NSEL_CONFIGURE_ENABLE= nsel READPCAP_CONFIGURE_ENABLE= readpcap SFLOW_CONFIGURE_ENABLE= sflow SFLOW_PLIST_FILES= bin/sfcapd share/man/man1/sfcapd.1.gz GEODB_PLIST_FILES= bin/geolookup bin/updateGeoDB.sh share/man/man1/geolookup.1.gz GEODB_CONFIGURE_ENABLE= maxmind .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CPPFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .if ${PORT_OPTIONS:MNFPROFILE} || ${PORT_OPTIONS:MNFTRACK} CONFIGURE_ARGS+= --with-rrdpath=${LOCALBASE} BUILD_DEPENDS+= rrdtool:databases/rrdtool RUN_DEPENDS+= rrdtool:databases/rrdtool .endif post-patch: ${REINPLACE_CMD} 's|-ggdb||' ${WRKSRC}/src/lib/Makefile.am ${REINPLACE_CMD} 's|-ggdb||' ${WRKSRC}/src/nfcapd/Makefile.am ${REINPLACE_CMD} 's|-ggdb||' ${WRKSRC}/src/test/Makefile.am post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR} post-install: ${MV} ${STAGEDIR}${PREFIX}/etc/nfdump.conf.dist ${STAGEDIR}${PREFIX}/etc/nfdump.conf.sample .include diff --git a/net-p2p/amule/Makefile b/net-p2p/amule/Makefile index bc3ef28d6940..c848cd6211a2 100644 --- a/net-p2p/amule/Makefile +++ b/net-p2p/amule/Makefile @@ -1,130 +1,130 @@ PORTNAME= amule PORTVERSION= 2.3.3 PORTREVISION= 11 CATEGORIES= net-p2p MASTER_SITES= SF/${PORTNAME}/aMule/${PORTVERSION} DISTNAME= aMule-${PORTVERSION} MAINTAINER= eduardo@FreeBSD.org COMMENT= All-platform eMule p2p client WWW= https://www.amule.org/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/docs/COPYING LIB_DEPENDS= libcryptopp.so:security/cryptopp USES= bison compiler:c++11-lang cpe desktop-file-utils gmake \ localbase:ldflags perl5 pkgconfig shebangfix tar:xz USE_PERL5= build USE_WX= 3.0 WX_CONF_ARGS= absolute GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-denoise-level=0 CONFIGURE_ENV= LEX="${FLEX}" PKG_CONFIG="${PKG_CONFIG}" \ docdir='$${prefix}/${DOCSDIR_REL}' LDFLAGS+= -lpthread SHEBANG_FILES= src/utils/scripts/*.pl src/utils/xas/*.pl src/libs/ec/*.pl OPTIONS_DEFINE= ALC ALCC AMULECMD AMULEDAEMON AMULEGUI BOOST CAS DEBUG \ DOCS ED2K FILEVIEW MMAP MONOLITHIC NLS UPNP WEBSERVER \ WXCAS XAS ALC_DESC= Compile aMule Link Creator for GUI ALCC_DESC= Compile aMule Link Creator for console AMULECMD_DESC= Compile aMule command line client AMULEDAEMON_DESC= Compile aMule daemon version AMULEGUI_DESC= Compile aMule remote GUI CAS_DESC= Compile aMule Statistics for console ED2K_DESC= Compile aMule ed2k links handler FILEVIEW_DESC= Compile file viewer for console (EXPERIMENTAL) MMAP_DESC= Use mapped memory MONOLITHIC_DESC= Compile monolithic aMule WXCAS_DESC= Compile aMule Statistics for GUI XAS_DESC= Install XChat2 plugin OPTIONS_DEFAULT= ALC ALCC AMULECMD AMULEDAEMON AMULEGUI BOOST CAS ED2K \ FILEVIEW MONOLITHIC WEBSERVER WXCAS XAS OPTIONS_SUB= yes DEBUG_CONFIGURE_OFF= --disable-debug NLS_USES= gettext NLS_CONFIGURE_OFF= --disable-nls ALC_CONFIGURE_ON= --enable-alc ALCC_CONFIGURE_ON= --enable-alcc AMULECMD_CONFIGURE_ON= --enable-amulecmd AMULECMD_USES= readline AMULEDAEMON_CONFIGURE_ON= --enable-amule-daemon AMULEDAEMON_USE= RC_SUBR=amuled AMULEGUI_CONFIGURE_ON= --enable-amule-gui BOOST_CONFIGURE_ON= --with-boost BOOST_LIB_DEPENDS+= libboost_system.so:devel/boost-libs CAS_CONFIGURE_ON= --enable-cas CAS_LIB_DEPENDS= libgd.so:graphics/gd ED2K_CONFIGURE_OFF= --disable-ed2k ED2K_CONFLICTS= ed2k-hash* FILEVIEW_CONFIGURE_ON= --enable-fileview MMAP_CONFIGURE_ON= --enable-mmap MONOLITHIC_CONFIGURE_OFF= --disable-monolithic UPNP_LIB_DEPENDS= libupnp.so:devel/upnp UPNP_CONFIGURE_OFF= --disable-upnp WEBSERVER_CONFIGURE_ON= --enable-webserver WEBSERVER_LIB_DEPENDS= libpng.so:graphics/png WEBSERVER_USES= readline WXCAS_CONFIGURE_ON= --enable-wxcas XAS_CONFIGURE_ON= --enable-xas XAS_USE= PERL5+=run .include # Fix segmentation fault, PR 266866 # see also 5a19c08: security/cryptopp: Update to 8.7.0 .if ${ARCH} == i386 || ${ARCH} == amd64 CXXFLAGS+= -DCRYPTOPP_DISABLE_ASM .endif .if ${PORT_OPTIONS:MAMULEGUI} || ${PORT_OPTIONS:MMONOLITHIC} PLIST_SUB+= AMULESKIN="" .else PLIST_SUB+= AMULESKIN="@comment " .endif post-patch: @${REINPLACE_CMD} -e 's/test.*-print-file-name.*`/true/' \ -e '/if.*test/s/==/=/' \ ${WRKSRC}/configure post-patch-DOCS-off: @${REINPLACE_CMD} 's/install-data-am:.*/install-data-am:/' \ ${WRKSRC}/docs/Makefile.in post-install-FILEVIEW-on: ${INSTALL_PROGRAM} ${WRKSRC}/src/utils/fileview/mulefileview ${STAGEDIR}${PREFIX}/bin .include # amule 2.3.3 does not work with C++17 which is the default since clang # 16. Change the defaults and allow the `register' keyword to be used without # triggering a compiler error to allow the build to work. -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CXXFLAGS+= -Wno-register .endif .include diff --git a/net/messagelib/Makefile b/net/messagelib/Makefile index 395bdf2a28f5..73cff2d59943 100644 --- a/net/messagelib/Makefile +++ b/net/messagelib/Makefile @@ -1,50 +1,50 @@ PORTNAME= messagelib DISTVERSION= ${KDE_APPLICATIONS_VERSION} CATEGORIES= net kde kde-applications MAINTAINER= kde@FreeBSD.org COMMENT= Library for handling messages WWW= https://github.com/KDE/messagelib LICENSE= LGPL21 BUILD_DEPENDS= ${LOCALBASE}/include/boost/range/algorithm.hpp:devel/boost-libs LIB_DEPENDS= libassuan.so:security/libassuan \ libgpg-error.so:security/libgpg-error \ libgpgme.so:security/gpgme \ libgpgmepp.so:security/gpgme-cpp \ libqgpgme.so:security/gpgme-qt@qt5 USES= cmake compiler:c++11-lib cpe gettext grantlee:5 kde:5 qca \ qt:5 tar:xz xorg CPE_VENDOR= kde USE_KDE= archive auth bookmarks codecs completion config configwidgets \ coreaddons guiaddons i18n iconthemes imap itemmodels itemviews jobwidgets \ kio ktextaddons notifications service solid sonnet syntaxhighlighting \ textwidgets wallet widgetsaddons windowsystem xmlgui \ ecm:build # pim components USE_KDE+= akonadi akonadicontacts akonadimime akonadisearch calendarcore \ contacts grantleetheme gravatar identitymanagement \ ldap libkdepim libkleo mailtransport mbox \ mime pimcommon pimtextedit USE_QT= concurrent core dbus declarative gui location network printsupport \ uitools webchannel webengine widgets xml \ buildtools:build qmake:build testlib:build USE_XORG= x11 USE_LDCONFIG= yes OPTIONS_DEFINE= INOTIFY DOCS OPTIONS_DEFAULT= INOTIFY OPTIONS_SUB= yes INOTIFY_DESC= Filesystem alteration notifications using inotify INOTIFY_LIB_DEPENDS= libinotify.so:devel/libinotify .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CXXFLAGS+= -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION .endif .include diff --git a/net/py-pyfixbuf/Makefile b/net/py-pyfixbuf/Makefile index 605517425ac9..4b0f0ee75451 100644 --- a/net/py-pyfixbuf/Makefile +++ b/net/py-pyfixbuf/Makefile @@ -1,28 +1,28 @@ PORTNAME= pyfixbuf PORTVERSION= 0.9.0 CATEGORIES= net python MASTER_SITES= https://tools.netsa.cert.org/releases/ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= antoine@FreeBSD.org COMMENT= Python API for libfixbuf WWW= https://tools.netsa.cert.org/pyfixbuf/ LICENSE= GPLR LGPL21 LICENSE_COMB= multi LICENSE_NAME_GPLR= Government Purpose License Rights LICENSE_FILE_GPLR= ${WRKSRC}/LICENSE-OPENSOURCE.txt LICENSE_PERMS_GPLR= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept LIB_DEPENDS= libfixbuf.so:net/libfixbuf USES= compiler pkgconfig python USE_PYTHON= distutils autoplist .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CPPFLAGS+= -Wno-error=incompatible-function-pointer-types .endif .include diff --git a/print/cups-filters/Makefile b/print/cups-filters/Makefile index 803be691afc7..8d9686526d52 100644 --- a/print/cups-filters/Makefile +++ b/print/cups-filters/Makefile @@ -1,156 +1,156 @@ PORTNAME= cups-filters PORTVERSION= 1.28.17 PORTREVISION= 4 CATEGORIES= print MASTER_SITES= https://github.com/OpenPrinting/cups-filters/releases/download/${DISTVERSION}/ MAINTAINER= tijl@FreeBSD.org COMMENT= Additional backends, filters and other software for CUPS WWW= https://wiki.linuxfoundation.org/openprinting/cups-filters LICENSE= BSD4CLAUSE GPLv2 GPLv2+ GPLv3 GPLv3+ LGPL20 LGPL21+ MIT LICENSE_COMB= multi BUILD_DEPENDS= ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu LIB_DEPENDS= liblcms2.so:graphics/lcms2 \ libqpdf.so:print/qpdf \ libcups.so:print/cups \ libfreetype.so:print/freetype2 \ libfontconfig.so:x11-fonts/fontconfig USES= compiler:c++11-lib cpe gmake gnome iconv libtool localbase \ pkgconfig shebangfix tar:xz USE_GNOME= glib20 USE_LDCONFIG= yes USE_RC_SUBR= cups_browsed CONFLICTS= foomatic-filters # bin/foomatic-rip CPE_VENDOR= linuxfoundation SHEBANG_FILES= filter/braille/drivers/generic/brftoembosser.in \ filter/braille/drivers/index/imageubrltoindexv3.in \ filter/braille/drivers/index/imageubrltoindexv4.in \ filter/braille/drivers/index/textbrftoindexv3.in \ filter/braille/filters/brftopagedbrf.in \ filter/braille/filters/imagetobrf.in \ filter/braille/filters/liblouis1.defs.gen.in \ filter/braille/filters/musicxmltobrf.in \ filter/braille/filters/texttobrf.in \ filter/braille/filters/vectortobrf.in \ filter/braille/filters/vectortopdf.in GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-shell=/bin/sh \ --with-pdftops-path=${LOCALBASE}/bin/pdftops \ --with-test-font-path=${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share INSTALL_TARGET= install-strip OPTIONS_DEFINE= BRAILLE COLORD DOCS OPTIONS_GROUP= FILTERS CUPS_BROWSED OPTIONS_GROUP_FILTERS= GHOSTSCRIPT IMAGES MUPDF POPPLER OPTIONS_GROUP_CUPS_BROWSED= AVAHI LDAP OPTIONS_SINGLE= PDFTOPS OPTIONS_SINGLE_PDFTOPS= PSGHOSTSCRIPT PSHYBRID PSMUPDF PSPOPPLER OPTIONS_DEFAULT= COLORD GHOSTSCRIPT IMAGES POPPLER AVAHI LDAP \ PSHYBRID OPTIONS_SUB= yes BRAILLE_CONFIGURE_ENABLE= braille BRAILLE_DESC= Braille embosser support BRAILLE_USES= magick:run BRAILLE_BUILD_DEPENDS= bash:shells/bash BRAILLE_LIB_DEPENDS= liblouis.so:devel/liblouis \ # liblouisutdml.so:devel/liblouisutdml BRAILLE_RUN_DEPENDS= pdftotext:graphics/poppler-utils \ bash:shells/bash COLORD_CONFIGURE_ENABLE= dbus COLORD_DESC= Get ICC color profiles from colord (via D-Bus) COLORD_LIB_DEPENDS= libdbus-1.so:devel/dbus COLORD_RUN_DEPENDS= colord>0:graphics/colord # Filters FILTERS_DESC= Filters GHOSTSCRIPT_CONFIGURE_ENABLE= ghostscript GHOSTSCRIPT_DESC= PS-to-PDF and PS/PDF-to-raster using Ghostscript GHOSTSCRIPT_USES= ghostscript IMAGES_CONFIGURE_ENABLE= exif imagefilters IMAGES_CONFIGURE_WITH= jpeg png tiff IMAGES_DESC= Accept JPEG, PNG, and TIFF files as input IMAGES_LIB_DEPENDS= libexif.so:graphics/libexif \ libpng.so:graphics/png \ libtiff.so:graphics/tiff IMAGES_USES= jpeg MUPDF_BUILD_DEPENDS= mutool:graphics/mupdf MUPDF_RUN_DEPENDS= mutool:graphics/mupdf MUPDF_CONFIGURE_ENABLE= mutool MUPDF_DESC= PDF-to-raster using MuPDF POPPLER_CONFIGURE_ENABLE= poppler POPPLER_DESC= PDF-to-raster using Poppler POPPLER_LIB_DEPENDS= libpoppler-cpp.so:graphics/poppler # cups-browsed(8) options CUPS_BROWSED_DESC= cups-browsed(8) options AVAHI_CONFIGURE_ENABLE= avahi AVAHI_CONFIGURE_OFF= --with-browseremoteprotocols=cups AVAHI_CONFIGURE_ON= --with-browseremoteprotocols="dnssd cups" AVAHI_DESC= Discover Zeroconf/Bonjour network printers AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app AVAHI_SUB_LIST= AVAHI_DAEMON=avahi_daemon AVAHI_SUB_LIST_OFF= AVAHI_DAEMON= LDAP_CONFIGURE_ENABLE= ldap LDAP_DESC= Get printer locations from an LDAP server LDAP_USES= ldap # Default PDF-to-PostScript renderer PDFTOPS_DESC= Default PDF-to-PostScript renderer PSGHOSTSCRIPT_CONFIGURE_ON= --with-pdftops=gs PSGHOSTSCRIPT_DESC= Ghostscript gs(1) PSGHOSTSCRIPT_IMPLIES= GHOSTSCRIPT PSHYBRID_BUILD_DEPENDS= pdftops:graphics/poppler-utils PSHYBRID_RUN_DEPENDS= pdftops:graphics/poppler-utils PSHYBRID_CONFIGURE_ON= --with-pdftops=hybrid PSHYBRID_DESC= Ghostscript or Poppler depending on printer PSHYBRID_IMPLIES= GHOSTSCRIPT PSMUPDF_CONFIGURE_ON= --with-pdftops=mupdf PSMUPDF_DESC= MuPDF mutool(1) PSMUPDF_IMPLIES= MUPDF PSPOPPLER_BUILD_DEPENDS= pdftops:graphics/poppler-utils PSPOPPLER_RUN_DEPENDS= pdftops:graphics/poppler-utils PSPOPPLER_CONFIGURE_ON= --with-pdftops=pdftops PSPOPPLER_DESC= Poppler pdftops(1) .include #.if ${OPSYS} == FreeBSD && ( ${OSVERSION} >= 1400091 || ( ${OSVERSION} >= 1302507 && ${OSVERSION} < 1400000 )) -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CFLAGS+= -Wno-error=dynamic-exception-spec .endif post-patch: @${REINPLACE_CMD} -e 's|/usr/share|${PREFIX}/share|' \ -e 's|/etc|${PREFIX}&|' \ -e 's|README.gz|README|' \ ${WRKSRC}/utils/cups-browsed.8 \ ${WRKSRC}/utils/cups-browsed.conf.5 \ ${WRKSRC}/utils/driverless.1 post-install: @${MV} ${STAGEDIR}${PREFIX}/etc/cups/cups-browsed.conf \ ${STAGEDIR}${PREFIX}/etc/cups/cups-browsed.conf.sample .include diff --git a/print/scribus-devel/Makefile b/print/scribus-devel/Makefile index bd3643ca9057..2217154baf80 100644 --- a/print/scribus-devel/Makefile +++ b/print/scribus-devel/Makefile @@ -1,74 +1,74 @@ PORTNAME= scribus PORTVERSION= 1.5.8 PORTREVISION= 26 CATEGORIES= print editors MASTER_SITES= SF/${PORTNAME}/${PORTNAME}${PKGNAMESUFFIX}/${PORTVERSION}/ \ http://www.scribus.net/downloads/${PORTVERSION}/ PKGNAMESUFFIX= -devel MAINTAINER= pkubaj@FreeBSD.org COMMENT= Comprehensive desktop publishing program (development version) WWW= https://www.scribus.net/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= liblcms2.so:graphics/lcms2 \ libboost_thread.so:devel/boost-libs \ libhunspell-1.7.so:textproc/hunspell \ libcairo.so:graphics/cairo \ librevenge-0.0.so:textproc/librevenge \ libcups.so:print/cups \ libwpg-0.3.so:graphics/libwpg03 \ libcdr-0.1.so:graphics/libcdr01 \ libfreehand-0.1.so:graphics/libfreehand \ libpagemaker-0.0.so:print/libpagemaker \ libmspub-0.1.so:print/libmspub01 \ libvisio-0.1.so:textproc/libvisio01 \ libfreetype.so:print/freetype2 \ libtiff.so:graphics/tiff \ libpoppler.so:graphics/poppler \ libharfbuzz-icu.so:print/harfbuzz-icu \ libfontconfig.so:x11-fonts/fontconfig \ libpodofo09.so:graphics/podofo09 \ libharfbuzz.so:print/harfbuzz \ libpng.so:graphics/png \ libicuuc.so:devel/icu \ libqxp-0.0.so:textproc/libqxp \ libzmf-0.0.so:graphics/libzmf USES= cmake compiler:c++17-lang desktop-file-utils dos2unix gnome \ jpeg pkgconfig python qt:5 shared-mime-info tar:xz USE_QT= buildtools:build core declarative gui linguisttools:build \ network opengl printsupport qmake:build widgets xml DOS2UNIX_REGEX= .*\.(cpp|h|txt) USE_GNOME= libxml2 CMAKE_ARGS+= -DWANT_HUNSPELL=YES \ -DWANT_CPP17=YES \ -DCMAKE_COLOR_MAKEFILE:BOOL=ON CONFLICTS_INSTALL= scribus OPTIONS_DEFINE= DOCS .include # Patch sources to force using include files installed by graphics/podofo09 post-patch: @${REINPLACE_CMD} -e '/^[\t ]*#include/s|podofo/podofo.h|podofo09/podofo.h|' \ ${WRKSRC}/scribus/plugins/import/ps/importps.cpp \ ${WRKSRC}/scribus/plugins/import/ai/importai.cpp \ ${WRKSRC}/scribus/imagedataloaders/scimgdataloader_pdf.cpp \ ${WRKSRC}/scribus/pdflib_core.h \ ${WRKSRC}/scribus/pdf_analyzer.h -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/scribus/desaxe/digester.cpp .endif post-install: ${LN} -sf ../share/icons/1_5_1/scribus.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/ .include diff --git a/science/py-hoomd-blue/Makefile b/science/py-hoomd-blue/Makefile index a824ccd29fa8..f81dec41152c 100644 --- a/science/py-hoomd-blue/Makefile +++ b/science/py-hoomd-blue/Makefile @@ -1,68 +1,68 @@ PORTNAME= hoomd-blue DISTVERSIONPREFIX= v DISTVERSION= 4.7.0 CATEGORIES= science # physics PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= yuri@FreeBSD.org COMMENT= Molecular dynamics and Monte Carlo soft matter simulation WWW= https://glotzerlab.engin.umich.edu/hoomd-blue/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= pybind11>0:devel/pybind11 USES= cmake:testing compiler:c++17-lang eigen:3 localbase:ldflags python shebangfix # see https://github.com/glotzerlab/hoomd-blue/issues/1204 USE_GITHUB= yes GH_ACCOUNT= glotzerlab GH_TUPLE= glotzerlab:upp11:0c1fb8d:glotzerlab_upp11/hoomd/extern/upp11 \ glotzerlab:nano-signal-slot:34223a4:glotzerlab_nano_signal_slot/hoomd/extern/nano-signal-slot \ glotzerlab:quickhull:1ffbc6f:glotzerlab_quickhull/hoomd/extern/quickhull \ glotzerlab:random123:a2c4f04:glotzerlab_random123/hoomd/extern/random123 \ glotzerlab:HIP:d211f99:glotzerlab_HIP/hoomd/extern/HIP \ glotzerlab:hipCUB:c70e193:glotzerlab_hipCUB/hoomd/extern/hipCUB \ mphowardlab:neighbor:ba0f068:mphowardlab_neighbor/hoomd/extern/neighbor \ mphowardlab:hipper:b6da049:mphowardlab_hipper/hoomd/extern/hipper SHEBANG_GLOB= *.sh CMAKE_OFF= BUILD_TESTING LDFLAGS+= -lexecinfo OPTIONS_DEFINE= TBB OPTIONS_SINGLE= MPI OPTIONS_SINGLE_MPI= NOMPI MPICH OPENMPI OPTIONS_DEFAULT= MPICH TBB OPTIONS_SUB= yes NOMPI_DESC= Build without parallel processing support NOMPI_CMAKE_ON= -DENABLE_MPI=OFF MPICH_USES= mpi:mpich MPICH_CMAKE_ON= -DENABLE_MPI=ON MPICH_BUILD_DEPENDS= cereal>0:devel/cereal OPENMPI_USES= mpi:openmpi OPENMPI_CMAKE_ON= -DENABLE_MPI=ON OPENMPI_BUILD_DEPENDS= cereal>0:devel/cereal OPENMPI_BROKEN= see https://github.com/glotzerlab/hoomd-blue/issues/1397 TBB_DESC= Enable support for Threading Building Blocks (TBB) TBB_CMAKE_BOOL= ENABLE_TBB TBB_LIB_DEPENDS= libtbb.so:devel/onetbb # the test mpi-test_communication requires excessive resources, see https://github.com/glotzerlab/hoomd-blue/issues/1396 .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/hoomd/ParticleData.cc .endif .include diff --git a/science/tfel/Makefile b/science/tfel/Makefile index 1e6fccf49434..1fd3b2e547b0 100644 --- a/science/tfel/Makefile +++ b/science/tfel/Makefile @@ -1,61 +1,61 @@ PORTNAME= tfel PORTVERSION= 4.0.0 PORTREVISION= 3 CATEGORIES= science MASTER_SITES= SF/${PORTNAME}/ PKGNAMESUFFIX= -mfront MAINTAINER= ports@FreeBSD.org COMMENT= Code generation tool dedicated to material knowledge WWW= https://github.com/thelfer/tfel LICENSE= GPLv3 BUILD_DEPENDS= gnuplot:math/gnuplot RUN_DEPENDS= gnuplot:math/gnuplot USES= cmake compiler:c++0x fortran CONFLICTS_INSTALL= tfel-mfront-edf-3.* OPTIONS_DEFINE= DOCS PYTHON OPTIONS_DEFAULT= DOCS PYTHON OPTIONS_SUB= yes PYTHON_USES= localbase python PYTHON_BUILD_DEPENDS= ${PYNUMPY} PYTHON_LIB_DEPENDS= ${PY_BOOST} \ libboost_thread.so:devel/boost-libs PYTHON_RUN_DEPENDS= ${PYNUMPY} PYTHON_CMAKE_BOOL= enable-python enable-python-bindings CMAKE_ON= enable-aster enable-calculix enable-fortran CMAKE_ARGS+= -DCOMPILER_CXXFLAGS="${CXXFLAGS}" -DCOMPILER_FLAGS="${CFLAGS}" PLIST_SUB= VER=${PORTVERSION} USE_LDCONFIG= yes .ifdef PACKAGE_BUILDING CMAKE_ON+= enable-portable-build .endif TEST_TARGET= check .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|std::unary_function|std::__unary_function|' \ ${WRKSRC}/include/NUMODIS/Math/Utilities.hxx \ ${WRKSRC}/include/TFEL/Math/General/Abs.hxx @${REINPLACE_CMD} -e 's|std::binary_function|std::__binary_function|' \ ${WRKSRC}/include/TFEL/Math/General/AbsCompare.hxx .endif post-install: (cd ${STAGEDIR}${PREFIX} && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \ -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S,${PREFIX}/,,}) (cd ${STAGEDIR}${PREFIX} && ${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py \ -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S,${PREFIX}/,,}) .include diff --git a/security/kleopatra/Makefile b/security/kleopatra/Makefile index 4ebb05d88f27..659eb187e67d 100644 --- a/security/kleopatra/Makefile +++ b/security/kleopatra/Makefile @@ -1,35 +1,35 @@ PORTNAME= kleopatra DISTVERSION= ${KDE_APPLICATIONS_VERSION} CATEGORIES= security kde kde-applications MAINTAINER= kde@FreeBSD.org COMMENT= Certificate manager for KDE WWW= https://www.kde.org/applications/utilities/kleopatra/ LIB_DEPENDS= libassuan.so:security/libassuan \ libboost_thread.so:devel/boost-libs \ libgpgme.so:security/gpgme \ libgpg-error.so:security/libgpg-error \ libgpgmepp.so:security/gpgme-cpp \ libqgpgme.so:security/gpgme-qt@qt5 USES= cmake compiler:c++11-lang desktop-file-utils gettext kde:5 \ shared-mime-info qt:5 tar:xz xorg USE_KDE= auth codecs config configwidgets coreaddons crash dbusaddons \ doctools i18n iconthemes itemmodels kcmutils notifications \ service sonnet textwidgets widgetsaddons windowsystem xmlgui \ libkleo mime \ ecm:build USE_QT= core dbus gui network printsupport testlib widgets xml \ buildtools:build qmake:build USE_XORG= x11 OPTIONS_DEFINE= DOCS .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CXXFLAGS+= -Wno-error=enum-constexpr-conversion .endif .include diff --git a/security/py-cryptography-legacy/Makefile b/security/py-cryptography-legacy/Makefile index 30e7a21cc290..bbaaac5fc60c 100644 --- a/security/py-cryptography-legacy/Makefile +++ b/security/py-cryptography-legacy/Makefile @@ -1,53 +1,46 @@ PORTNAME= cryptography PORTVERSION= 3.4.8 PORTREVISION= 3 PORTEPOCH= 1 CATEGORIES= security python MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} PKGNAMESUFFIX= -legacy MAINTAINER= sunpoet@FreeBSD.org COMMENT= Cryptographic recipes and primitives for Python developers WWW= https://github.com/pyca/cryptography LICENSE= APACHE20 BSD3CLAUSE LICENSE_COMB= dual LICENSE_FILE_APACHE20= ${WRKSRC}/LICENSE.APACHE LICENSE_FILE_BSD3CLAUSE=${WRKSRC}/LICENSE.BSD BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.12:devel/py-cffi@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>=1.12:devel/py-cffi@${PY_FLAVOR} TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cryptography-vectors>=${PORTVERSION}:security/py-cryptography-vectors@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}hypothesis>=1.11.4:devel/py-hypothesis@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}iso8601>=0:devel/py-iso8601@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pretend>=0:devel/py-pretend@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-cov>=0:devel/py-pytest-cov@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-subtests>=0:devel/py-pytest-subtests@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytest-xdist>=0,1:devel/py-pytest-xdist@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pytz>=0,1:devel/py-pytz@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>=0:databases/py-sqlite3@${PY_FLAVOR} USES= compiler:env cpe python ssl USE_PYTHON= autoplist concurrent pep517 pytest CFLAGS+= -I${OPENSSLINC} LDFLAGS+= -L${OPENSSLLIB} MAKE_ENV= CRYPTOGRAPHY_DONT_BUILD_RUST=1 TEST_ENV= PYTHONPATH=${STAGEDIR}${PYTHON_SITELIBDIR} CPE_VENDOR= cryptography_project -.include - -.if ${CHOSEN_COMPILER_TYPE} == gcc && ${COMPILER_VERSION} <= 42 -post-patch: - @${REINPLACE_CMD} -e 's|"-Wno-error=sign-conversion"||' ${WRKSRC}/src/_cffi_src/build_openssl.py -.endif - post-install: ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + -.include +.include diff --git a/sysutils/btop/Makefile b/sysutils/btop/Makefile index 3a9efcf1926c..e7fc857f192c 100644 --- a/sysutils/btop/Makefile +++ b/sysutils/btop/Makefile @@ -1,28 +1,19 @@ PORTNAME= btop DISTVERSIONPREFIX= v DISTVERSION= 1.3.2 CATEGORIES= sysutils MAINTAINER= pkubaj@FreeBSD.org COMMENT= Monitor of resources WWW= https://github.com/aristocratos/btop LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE USES= gmake USE_GITHUB= yes GH_ACCOUNT= aristocratos MAKE_ARGS= STRIP=true ADDFLAGS="${CXXFLAGS} ${LDFLAGS}" VERBOSE=true -.include - -.if ${OSVERSION} < 1302507 -USE_GCC= yes -.if ${ARCH} == i386 || ${ARCH} == powerpc -LDFLAGS+= -latomic -.endif -.endif - .include diff --git a/textproc/ibus/Makefile b/textproc/ibus/Makefile index 05dbc482c8f2..a1a9858a4261 100644 --- a/textproc/ibus/Makefile +++ b/textproc/ibus/Makefile @@ -1,118 +1,114 @@ PORTNAME= ibus PORTVERSION= 1.5.29 PORTREVISION= 1 CATEGORIES= textproc MAINTAINER= henry.hu.sh@gmail.com COMMENT= Intelligent Input Bus for Unix-like systems WWW= https://github.com/ibus/ibus LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dbus>=0.83.0:devel/py-dbus@${PY_FLAVOR} \ ${LOCALBASE}/share/unicode/ucd/NamesList.txt:textproc/UCD \ ${LOCALBASE}/libdata/pkgconfig/iso-codes.pc:misc/iso-codes \ gtkdocize:textproc/gtk-doc \ bash:shells/bash RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dbus>=0.83.0:devel/py-dbus@${PY_FLAVOR} \ ${LOCALBASE}/share/xml/iso-codes/iso_639.xml:misc/iso-codes \ setxkbmap:x11/setxkbmap USES= autoreconf compiler cpe gmake gnome libtool localbase \ pathfix pkgconfig python shebangfix CPE_VENDOR= ibus_project USE_GITHUB= yes USE_GNOME= glib20 intltool pygobject3 USE_LDCONFIG= yes USE_PYTHON= py3kplist SHEBANG_GLOB= *.sh GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --with-html-dir=${PREFIX}/share/doc \ --with-ucd-dir=${LOCALBASE}/share/unicode/ucd \ --disable-python2 --disable-python-library \ --disable-gtk4 --disable-systemd --disable-systemd-services MAKE_JOBS_UNSAFE=yes INSTALL_TARGET= install-strip TEST_TARGET= check TEST_WRKSRC= ${WRKSRC}/src/tests OPTIONS_DEFINE= APPINDICATOR ENGINE VAPI GTK2 GTK3 GINTRO DCONF XIM EMOJI DOCS NLS WAYLAND OPTIONS_DEFAULT= APPINDICATOR GTK2 GTK3 VAPI GINTRO DCONF XIM ENGINE EMOJI NO_OPTIONS_SORT= yes OPTIONS_SUB= yes APPINDICATOR_DESC= Enable appindicator support DCONF_DESC= Use dconf for configuration EMOJI_DESC= Install emoji dictionary ENGINE_DESC= Install ibus simple engine GINTRO_DESC= Install GObject Introspection data GTK2_DESC= Install GTK2 client GTK3_DESC= Install GTK3 client and panel WAYLAND_DESC= Enable Wayland support XIM_DESC= Install XIM server APPINDICATOR_CONFIGURE_ENABLE= appindicator APPINDICATOR_LIB_DEPENDS= libdbusmenu-glib.so:devel/libdbusmenu DCONF_USE= GNOME=dconf DCONF_CONFIGURE_ENABLE= dconf DCONF_VARS= GLIB_SCHEMAS=org.freedesktop.ibus.gschema.xml DOCS_CONFIGURE_ENABLE= gtk-doc-html EMOJI_BUILD_DEPENDS= json-glib>=0:devel/json-glib \ unicode-emoji>0:misc/unicode-emoji \ cldr-emoji-annotation>0:misc/cldr-emoji-annotation EMOJI_CONFIGURE_ON= --with-unicode-emoji-dir=${LOCALBASE}/share/unicode/emoji \ --with-emoji-annotation-dir=${LOCALBASE}/share/unicode/cldr/common/annotations EMOJI_CONFIGURE_ENABLE= emoji-dict ENGINE_CONFIGURE_ENABLE= engine GINTRO_BUILD_DEPENDS= gobject-introspection>=0.6.8:devel/gobject-introspection GINTRO_RUN_DEPENDS= gobject-introspection>=0.6.8:devel/gobject-introspection GINTRO_CONFIGURE_ENABLE= introspection GTK2_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 GTK2_USE= GNOME=cairo,gtk20 GTK2_CONFIGURE_ENABLE= gtk2 GTK3_LIB_DEPENDS= libdbus-1.so:devel/dbus \ libnotify.so:devel/libnotify GTK3_USES= xorg GTK3_USE= GNOME=cairo,gtk30,pango XORG=x11,xi GTK3_CONFIGURE_ENABLE= gtk3 libnotify GTK3_LIBS= -lX11 NLS_USES= gettext NLS_USES_OFF= gettext-tools NLS_CONFIGURE_ENABLE= nls VAPI_IMPLIES= GINTRO VAPI_USES= vala:build VAPI_CONFIGURE_ENABLE= vala WAYLAND_BUILD_DEPENDS= wayland>1.14:graphics/wayland WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland \ libxkbcommon.so:x11/libxkbcommon WAYLAND_CONFIGURE_ENABLE= wayland XIM_CONFIGURE_ENABLE= xim XIM_USE= XORG=x11,xfixes EMOJIONE_TAG= ba845a7e24aac26cf3cf22abc19bea215d94fbf3 # 2.2.7 .include -.if ${COMPILER_TYPE} == gcc && ${COMPILER_VERSION} < 46 -USE_GCC= yes -.endif - .if ${PORT_OPTIONS:MENGINE} || ${PORT_OPTIONS:MGTK3} || ${PORT_OPTIONS:MDCONF} PLIST_SUB+= COMPDIR="" .else PLIST_SUB+= COMPDIR="@comment " .endif pre-configure: cd ${CONFIGURE_WRKSRC} && gtkdocize --copy --flavour no-tmpl post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/etc/xdg/autostart ${INSTALL_DATA} ${PATCHDIR}/ibus.desktop ${STAGEDIR}${PREFIX}/etc/xdg/autostart .include diff --git a/www/nghttp2/Makefile b/www/nghttp2/Makefile index 440601480831..daec34b12a14 100644 --- a/www/nghttp2/Makefile +++ b/www/nghttp2/Makefile @@ -1,66 +1,61 @@ PORTNAME= nghttp2 PORTVERSION= 1.62.1 CATEGORIES= www net MASTER_SITES= https://github.com/nghttp2/nghttp2/releases/download/v${PORTVERSION}/ MAINTAINER= sunpoet@FreeBSD.org COMMENT= HTTP/2.0 C Library WWW= https://nghttp2.org/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING BUILD_DEPENDS= libnghttp2>=${PORTVERSION}:www/libnghttp2 LIB_DEPENDS= libnghttp2.so:www/libnghttp2 USES= cmake compiler:c++20-lang cpe localbase:ldflags pathfix pkgconfig python:env shebangfix ssl tar:xz CMAKE_ARGS= -DCMAKE_INSTALL_MANDIR=share/man CMAKE_OFF= BUILD_SHARED_LIBS BUILD_STATIC_LIBS BUILD_TESTING ENABLE_DEBUG ENABLE_HTTP3 ENABLE_LIB_ONLY ENABLE_STATIC_CRT ENABLE_WERROR WITH_LIBBPF WITH_MRUBY WITH_NEVERBLEED CMAKE_ON= ENABLE_FAILMALLOC ENABLE_THREADS WITH_JEMALLOC USE_CXXSTD= c++20 USE_RC_SUBR= nghttpx SHEBANG_FILES= script/fetch-ocsp-response OPTIONS_DEFINE= APP DOCS EXAMPLES HPACK OPTIONS_DEFAULT=APP HPACK OPTIONS_SUB= yes APP_DESC= Build h2load, nghttp, nghttpd and nghttpx APP_BUILD_DEPENDS= c-ares>=1.7.5:dns/c-ares \ libev>=4.11:devel/libev APP_CMAKE_BOOL= ENABLE_APP WITH_LIBXML2 APP_LIB_DEPENDS= libcares.so:dns/c-ares \ libev.so:devel/libev APP_USE= GNOME=libxml2 APP_USES= gnome DOCS_CMAKE_BOOL= ENABLE_DOC EXAMPLES_BUILD_DEPENDS= libevent>=2.0.8:devel/libevent EXAMPLES_CMAKE_BOOL= ENABLE_EXAMPLES EXAMPLES_LIB_DEPENDS= libevent_openssl.so:devel/libevent HPACK_BUILD_DEPENDS= jansson>=2.5:devel/jansson HPACK_CMAKE_BOOL= ENABLE_HPACK_TOOLS HPACK_LIB_DEPENDS= libjansson.so:devel/jansson .include -.if ${OSREL} == 13.2 -USES+= llvm -EXTRA_PATCHES= ${PATCHDIR}/extra-patch-compatibility-fix -.endif - .if ${OSREL} == 14.0 EXTRA_PATCHES= ${PATCHDIR}/extra-patch-compatibility-fix .endif post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/etc/nghttpx/ ${INSTALL_DATA} ${FILESDIR}/nghttpx.conf.sample ${STAGEDIR}${PREFIX}/etc/nghttpx/nghttpx.conf.sample post-install-EXAMPLES-on: ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/ ${INSTALL_DATA} ${WRKSRC}/examples/*.c ${STAGEDIR}${EXAMPLESDIR}/ cd ${BUILD_WRKSRC}/examples/ && ${INSTALL_PROGRAM} client deflate libevent-client libevent-server ${STAGEDIR}${EXAMPLESDIR}/ .include diff --git a/www/node18/Makefile b/www/node18/Makefile index 147f340a5a08..0b562778abfd 100644 --- a/www/node18/Makefile +++ b/www/node18/Makefile @@ -1,92 +1,92 @@ PORTNAME= node PORTVERSION= ${NODEJS_PORTVERSION} DISTVERSIONPREFIX= v CATEGORIES= www MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/ PKGNAMESUFFIX= 18 MAINTAINER= sunpoet@FreeBSD.org COMMENT= V8 JavaScript for client and server WWW= https://nodejs.org/ \ https://github.com/nodejs/node LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE BROKEN_SSL= libressl libressl-devel BROKEN_SSL_REASON= Node.js ${PORTVERSION:R:R}.x requires OpenSSL or the BUNDLED_SSL option enabled ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le BUILD_DEPENDS= brotli>=1.0.9,1:archivers/brotli \ c-ares>=1.17.2:dns/c-ares \ libnghttp2>=1.45.1:www/libnghttp2 \ libuv>=1.42.0:devel/libuv \ objdump:devel/binutils LIB_DEPENDS= libbrotlidec.so:archivers/brotli \ libcares.so:dns/c-ares \ libnghttp2.so:www/libnghttp2 \ libuv.so:devel/libuv USES= compiler:c++11-lib gmake localbase pkgconfig python:build shebangfix tar:xz CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \ --shared-brotli \ --shared-cares \ --shared-libuv \ --shared-nghttp2 \ --shared-zlib \ --without-npm HAS_CONFIGURE= yes MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \ CFLAGS.host="${CFLAGS}" \ CXX.host="${CCACHE_BIN} ${CXX}" \ CXXFLAGS.host="${CXXFLAGS}" \ LDFLAGS.host="${LDFLAGS}" \ LINK.host="${CXX}" REINPLACE_ARGS= -i '' CONFLICTS_INSTALL= node[0-9][0-9] SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \ deps/v8/tools/*.py \ tools/*.py \ tools/inspector_protocol/*.py OPTIONS_DEFINE= BUNDLED_SSL DOCS NLS OPTIONS_SUB= yes BUNDLED_SSL_DESC= Use bundled OpenSSL implementation from node.js BUNDLED_SSL_CONFIGURE_OFF= --openssl-use-def-ca-store --shared-openssl BUNDLED_SSL_RUN_DEPENDS_OFF= ca_root_nss>=0:security/ca_root_nss BUNDLED_SSL_USES_OFF= ssl NLS_BUILD_DEPENDS= icu>=69.1:devel/icu NLS_CONFIGURE_ON= --with-intl=system-icu NLS_LIB_DEPENDS= libicui18n.so:devel/icu .include "Makefile.version" .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 && (${ARCH} == aarch64 || ${ARCH} == armv7 || ${ARCH:Mpowerpc64*}) +.if ${COMPILER_TYPE} == clang && (${ARCH} == aarch64 || ${ARCH} == armv7 || ${ARCH:Mpowerpc64*}) CXXFLAGS+= -Wno-error=enum-constexpr-conversion .endif .if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64 CONFIGURE_ARGS+=--openssl-no-asm .endif post-patch: @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/tools/v8_gypfiles/v8.gyp post-configure: # Post-process Makefile and *.mk files created by node-gyp and remove # all occurrences of -I${LOCALBASE}/include. C*FLAGS include this # before all -I../deps/* for bundled code. This can cause build # breakages if the dependency is installed in ${LOCALBASE}. The # USES+=localbase # above will ensure that we pick up includes for real # external dependencies. ${FIND} ${WRKSRC}/out -type f -print0 | ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g" post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node .include diff --git a/www/tclhttpd/Makefile b/www/tclhttpd/Makefile index 102e122b9314..36a38efd9430 100644 --- a/www/tclhttpd/Makefile +++ b/www/tclhttpd/Makefile @@ -1,53 +1,53 @@ PORTNAME= tclhttpd PORTVERSION= 3.5.1 PORTREVISION= 6 CATEGORIES= www tcl MASTER_SITES= TCLTK/httpd DISTNAME= ${PORTNAME}${PORTVERSION} MAINTAINER= ports@virtual-estates.net COMMENT= Http-server implemented in TCL WWW= https://www.tcl.tk/software/tclhttpd/ RUN_DEPENDS= dtplite:devel/tcllib USE_RC_SUBR= tclhttpd USES= tcl:tea compiler GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share .include SHLIB_NAME!= ${MAKE} -f "${FILESDIR}/Makefile.lib" -V SHLIB_NAME PLIST_SUB+= PORTVERSION=${PORTVERSION} \ SHLIB_NAME=${SHLIB_NAME} MAKE_ENV+= TCLSH_PROG=${TCLSH} FILESDIR="${FILESDIR}" TCL_DVER=${TCL_VER} \ PREFIX=${STAGEDIR}${PREFIX} SCRIPTS_ENV+= TCL_DVER=${TCL_VER} SUB_LIST+= TCL_DVER=${TCL_VER} do-build: ${MAKE_ENV} ${MAKE} -C ${WRKSRC} ${MAKE_ARGS} \ FILESDIR="${FILESDIR}" \ ${_MAKE_JOBS} -f "${FILESDIR}/Makefile.lib" pre-su-install: ${MKDIR} ${STAGEDIR}${PREFIX}/tclhttpd/custom post-install: ${INSTALL_DATA} ${WRKSRC}/${SHLIB_NAME} \ ${STAGEDIR}${PREFIX}/lib/${PORTNAME}${PORTVERSION}/${SHLIB_NAME} ${INSTALL_SCRIPT} ${WRKSRC}/bin/httpd.tcl \ ${WRKSRC}/bin/httpdthread.tcl ${STAGEDIR}${PREFIX}/bin/ ${SED} 's%@VER@%${PORTVERSION}%g' < ${WRKSRC}/bin/tclhttpd.rc \ > ${STAGEDIR}${PREFIX}/etc/tclhttpd.rc.default ${SED} 's%@LIB@%${SHLIB_NAME}%g' < \ ${FILESDIR}/pkgIndex.tcl >> \ ${STAGEDIR}${PREFIX}/lib/${PORTNAME}${PORTVERSION}/pkgIndex.tcl -.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 150 +.if ${COMPILER_TYPE} == "clang" CFLAGS+= -std=c90 -Wno-deprecated-non-prototype .endif .include diff --git a/www/webkit2-gtk4/Makefile b/www/webkit2-gtk4/Makefile index 6d9c6db33bcd..45f47be85b9a 100644 --- a/www/webkit2-gtk4/Makefile +++ b/www/webkit2-gtk4/Makefile @@ -1,123 +1,123 @@ PORTNAME= webkit DISTVERSION= 2.38.3 PORTREVISION= 4 CATEGORIES= www MASTER_SITES= https://webkitgtk.org/releases/ PKGNAMESUFFIX= 2-gtk4 DISTNAME= ${PORTNAME}gtk-${PORTVERSION} DIST_SUBDIR= gnome PATCH_SITES= https://github.com/WebKit/WebKit/commit/ PATCHFILES= 285ff73b5f6d46d6e502aca30061667e41a3114b.diff:-p1 MAINTAINER= gnome@FreeBSD.org COMMENT= Opensource browser engine using the GTK 4 toolkit WWW= https://webkitgtk.org/ LICENSE= BSD2CLAUSE GPLv2 LICENSE_COMB= dual BROKEN_riscv64= error: Unknown Architecture BUILD_DEPENDS= ${LOCALBASE}/bin/ar:devel/binutils \ ${PYTHON_PKGNAMEPREFIX}gi-docgen>0:textproc/py-gi-docgen@${PY_FLAVOR} LIB_DEPENDS= libenchant-2.so:textproc/enchant2 \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libfribidi.so:converters/fribidi \ libgcrypt.so:security/libgcrypt \ libharfbuzz-icu.so:print/harfbuzz-icu \ libharfbuzz.so:print/harfbuzz \ libhyphen.so:textproc/hyphen \ libicutu.so:devel/icu \ libnotify.so:devel/libnotify \ libopenjp2.so:graphics/openjpeg \ libpng.so:graphics/png \ libsecret-1.so:security/libsecret \ libsoup-3.0.so:devel/libsoup3 \ libtasn1.so:security/libtasn1 \ libwebp.so:graphics/webp \ libwoff2dec.so:devel/woff2 PORTSCOUT= limitw:1,even USES= bison cmake compiler:c++20-lang cpe gettext gl gnome gperf jpeg \ localbase:ldflags perl5 pkgconfig python:build ruby:build \ sqlite tar:xz xorg USE_GNOME= cairo gdkpixbuf2 gtk40 libxml2 libxslt introspection:build USE_GL= egl gl glesv2 USE_LDCONFIG= yes USE_PERL5= build USE_XORG= ice x11 xcomposite xdamage xext xrender xt CPE_VENDOR= webkitgtk CPE_PRODUCT= webkitgtk BINARY_ALIAS= python=${PYTHON_CMD} CXXFLAGS+= -DFIXED_EXECUTABLE_MEMORY_POOL_SIZE_IN_MB=32 CMAKE_ARGS= -DPORT=GTK CMAKE_OFF= ${CMAKE_OFF_${ARCH}:U} ENABLE_GAMEPAD ENABLE_GLES2 \ ENABLE_JOURNALD_LOG USE_LD_GOLD USE_SYSTEMD CMAKE_ON= ENABLE_MINIBROWSER USE_GTK4 USE_SYSTEM_MALLOC CMAKE_OFF_armv6= ENABLE_JIT CMAKE_OFF_armv7= ENABLE_JIT INSTALL_TARGET= install OPTIONS_DEFINE= DEBUG GEOIP GSTREAMER WAYLAND OPTIONS_DEFAULT= GEOIP GSTREAMER WAYLAND OPTIONS_SUB= yes # Building WebKit with debugging symbols requires ar and ld with # support for thin archives. Also see # https://bugs.webkit.org/show_bug.cgi?id=140384 DEBUG_CMAKE_ON= -DCMAKE_AR=${LOCALBASE}/bin/ar \ -DCMAKE_LINKER=${LOCALBASE}/bin/ld \ -DCMAKE_RANLIB=${LOCALBASE}/bin/ranlib DEBUG_CXXFLAGS= -B${LOCALBASE}/bin DEBUG_CMAKE_OFF= -DCMAKE_AR=/usr/bin/ar \ -DCMAKE_LINKER=/usr/bin/ld \ -DCMAKE_RANLIB=/usr/bin/ranlib DEBUG_CXXFLAGS_OFF= -B/usr/bin DEBUG_CFLAGS_OFF= -DNDEBUG GEOIP_CMAKE_BOOL= ENABLE_GEOLOCATION GEOIP_BUILD_DEPENDS= geoclue>=2.4.3:net/geoclue GEOIP_RUN_DEPENDS= geoclue>=2.4.3:net/geoclue GSTREAMER_USES= gstreamer GSTREAMER_USE= GSTREAMER=bad,gl GSTREAMER_CMAKE_BOOL= ENABLE_VIDEO ENABLE_WEB_AUDIO WAYLAND_CMAKE_BOOL= ENABLE_WAYLAND_TARGET WAYLAND_BUILD_DEPENDS= wayland-protocols>=1.12:graphics/wayland-protocols WAYLAND_LIB_DEPENDS= libwayland-egl.so:graphics/wayland \ libwpe-1.0.so:www/libwpe \ libWPEBackend-fdo-1.0.so:www/wpebackend-fdo .include -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang CXXFLAGS+= -Wno-error=enum-constexpr-conversion .endif pre-configure: # .if !exists() evaluates too early before cairo has a chance to be installed @if ! pkg-config --exists cairo-egl; then \ ${ECHO_MSG} "${PKGNAME}: Needs cairo with OPENGL support enabled."; \ ${FALSE}; \ fi post-install: @${RLN} ${STAGEDIR}${PREFIX}/libexec/webkit2gtk-5.0/jsc \ ${STAGEDIR}${PREFIX}/bin/jsc-5 @${RLN} ${STAGEDIR}${PREFIX}/libexec/webkit2gtk-5.0/MiniBrowser \ ${STAGEDIR}${PREFIX}/bin/MiniBrowser-5 @${MV} ${STAGEDIR}${PREFIX}/bin/WebKitWebDriver \ ${STAGEDIR}${PREFIX}/bin/WebKitWebDriver-5 @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so.*.* @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/webkit2gtk-5.0/injected-bundle/*.so @${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/webkit2gtk-5.0/* @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/WebKitWebDriver-5 .include diff --git a/x11-fm/fsv2/Makefile b/x11-fm/fsv2/Makefile index 21aa1f10bb33..c73b3664f8ae 100644 --- a/x11-fm/fsv2/Makefile +++ b/x11-fm/fsv2/Makefile @@ -1,44 +1,44 @@ PORTNAME= fsv2 PORTVERSION= 1.1.0 PORTREVISION= 5 CATEGORIES= x11-fm MASTER_SITES= http://cyber.dabamos.de/pub/distfiles/ MAINTAINER= kidon@posteo.de COMMENT= 3D filesystem visualizer WWW= http://fedorchenko.net/fsv2.php LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libgtkgl-2.0.so:x11-toolkits/gtkglarea2 \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libftgl.so:graphics/ftgl USES= compiler:c++11-lang tar:bzip2 libtool gettext-runtime gl gnome \ pkgconfig USE_GL= gl glu USE_GNOME= gtkmm24 atkmm glibmm pangomm cairomm libsigc++20 gtk20 atk \ cairo gdkpixbuf2 USE_LDCONFIG= yes GNU_CONFIGURE= yes INSTALL_TARGET= install-strip OPTIONS_DEFINE= DOCS NLS OPTIONS_SUB= yes NLS_USES= gettext NLS_CONFIGURE_ENABLE= nls .include post-patch: -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e 's|auto_ptr|unique_ptr|' \ ${WRKSRC}/uilib/ColorCellRenderer.cpp .endif .include diff --git a/x11-toolkits/como/Makefile b/x11-toolkits/como/Makefile index 11d4189074b3..e09bb66f8035 100644 --- a/x11-toolkits/como/Makefile +++ b/x11-toolkits/como/Makefile @@ -1,91 +1,68 @@ PORTNAME= como DISTVERSIONPREFIX= v DISTVERSION= 0.2.0 CATEGORIES= x11-toolkits PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= 325e41b02b58.patch:-p1 # https://github.com/winft/como/pull/22 PATCHFILES+= d250e3a81b91.patch:-p1 # https://github.com/winft/como/pull/22 MAINTAINER= jbeich@FreeBSD.org COMMENT= Compositor Modules for Wayland and X11 WWW= https://github.com/winft/como LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto LIB_DEPENDS= libepoxy.so:graphics/libepoxy \ libwayland-server.so:graphics/wayland \ libWraplandServer.so:graphics/wrapland \ libwlroots.so:x11-toolkits/wlroots \ libinput.so:x11/libinput \ libxkbcommon.so:x11/libxkbcommon \ libxcb-image.so:x11/xcb-util-image \ libxcb-keysyms.so:x11/xcb-util-keysyms RUN_DEPENDS= evdev-proto>0:devel/evdev-proto TEST_DEPENDS= catch2>0:devel/catch2 USES= cmake:testing gettext-tools kde:6 pkgconfig \ python:build qt:6 shebangfix xorg USE_GITHUB= yes USE_KDE= auth colorscheme config configwidgets coreaddons \ decoration ecm:build globalaccel i18n idletime kcmutils \ kscreenlocker newstuff:build package service svg \ widgetsaddons windowsystem USE_LDCONFIG= yes USE_QT= base declarative tools USE_XORG= x11 xcb GH_ACCOUNT= winft SHEBANG_FILES= plugins/effects/*.py PLIST_SUB= VERSION=${PORTVERSION} LDFLAGS+= -Wl,--as-needed # fontconfig/freetype, GL, ICE/SM/Xext/Xi, pixman OPTIONS_DEFINE= BREEZE DOCS QA11Y OPTIONS_DEFAULT=BREEZE QA11Y BREEZE_DESC= Default window decoration plugin BREEZE_USE= KDE=breeze BREEZE_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Breeze DOCS_USE= KDE=doctools:build DOCS_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_KF6DocTools QA11Y_DESC= Accessibility (focus tracking) for Zoom effect QA11Y_LIB_DEPENDS= libqaccessibilityclient-qt6.so:accessibility/libqaccessibilityclient@qt6 QA11Y_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_QAccessibilityClient6 post-patch: # Convert nodes from linprocfs(5) to procfs(5) # XXX como lacks https://invent.kde.org/plasma/kwin/-/commit/1bc7afe8aaa9 @${REINPLACE_CMD} -e '/proc/,+1s,/exe,/file,' \ ${WRKSRC}/${PORTNAME}/base/wayland/filtered_display.cpp \ ${WRKSRC}/${PORTNAME}/desktop/kde/service_utils.h # Generic nodes are not supported by procfs(5) @${REINPLACE_CMD} -e '/mounts/s,/proc,${LINUXBASE}&,' \ ${WRKSRC}/${PORTNAME}/debug/perf/ftrace_impl.cpp -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/x11-toolkits/como/distinfo b/x11-toolkits/como/distinfo index 96b9630c9491..71e6e2ef28b9 100644 --- a/x11-toolkits/como/distinfo +++ b/x11-toolkits/como/distinfo @@ -1,9 +1,7 @@ TIMESTAMP = 1718820477 SHA256 (winft-como-v0.2.0_GH0.tar.gz) = 24a43c5cb49760eb89f0414aa03f0007441fb2b8ef934e9ccb39af01646a27a9 SIZE (winft-como-v0.2.0_GH0.tar.gz) = 4164563 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 SHA256 (325e41b02b58.patch) = 930ee700ce7d27c9fe4dd6aa0fb4771034ae0bad072b11323f99e8fd524bebf2 SIZE (325e41b02b58.patch) = 1462 SHA256 (d250e3a81b91.patch) = 7ed00b787c17b9bcbc33e94162b9281dd935e541b4b88f8ed2ebdf715f7db828 SIZE (d250e3a81b91.patch) = 1196 diff --git a/x11-wm/gamescope/Makefile b/x11-wm/gamescope/Makefile index 293a6c685ec0..67046267c8ea 100644 --- a/x11-wm/gamescope/Makefile +++ b/x11-wm/gamescope/Makefile @@ -1,105 +1,80 @@ PORTNAME= gamescope DISTVERSION= 3.13.8 PORTREVISION= 4 CATEGORIES= x11-wm wayland PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= a618ea074660.patch:-p1 # https://github.com/ValveSoftware/gamescope/issues/120 PATCHFILES+= 4a067fb4ebe2.patch:-p1 # https://github.com/ValveSoftware/gamescope/pull/678 PATCHFILES+= 243582c0c762.patch:-p1 # https://github.com/ValveSoftware/gamescope/pull/1057 PATCHFILES+= 4a4fb1b53133.patch:-p1 # https://github.com/ValveSoftware/gamescope/pull/1296 PATCHFILES+= a9199c2097ff.patch:-p1 # https://github.com/ValveSoftware/gamescope/pull/1323 MAINTAINER= jbeich@FreeBSD.org COMMENT= SteamOS session compositing window manager WWW= https://github.com/ValveSoftware/gamescope LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ glslangValidator:graphics/glslang \ vulkan-headers>0:graphics/vulkan-headers \ wayland-protocols>=1.17:graphics/wayland-protocols \ glm>0:math/glm \ hwdata>0:misc/hwdata LIB_DEPENDS= libdrm.so:graphics/libdrm \ libliftoff.so:graphics/libliftoff \ libvulkan.so:graphics/vulkan-loader \ libwayland-server.so:graphics/wayland \ libdisplay-info.so:sysutils/libdisplay-info \ libwlroots.so:x11-toolkits/wlroots \ libxkbcommon.so:x11/libxkbcommon RUN_DEPENDS= hwdata>0:misc/hwdata USES= cmake:indirect compiler:c++11-lib meson pkgconfig sdl xorg USE_GITHUB= yes USE_SDL= sdl2 USE_XORG= x11 xcb xcomposite xdamage xext xfixes xmu xrender xres xtst xxf86vm GH_ACCOUNT= ValveSoftware GH_TUPLE= nothings:stb:5736b15:stb/subprojects/stb \ KhronosGroup:SPIRV-Headers:1.5.4.raytracing.fixed-316-gd790ced:spirv_headers/thirdparty/SPIRV-Headers \ Joshua-Ashton:reshade:v4.4.2-2572-g9fdbea68:reshade/src/reshade \ Joshua-Ashton:vkroots:d5ef31a:vkroots/subprojects/vkroots MESON_ARGS= --force-fallback-for= # allow system wlroots + libliftoff MESON_ARGS+= -Dbenchmark=disabled # gamescope_color_microbench isn't installed MESON_ARGS+= -Denable_openvr_support=false # https://github.com/ValveSoftware/openvr/pull/564 MESON_ARCH_FAMILY= ${ARCH:S/amd/x86_/:S/i3/x/:C/v[67]//:S/power/p/:S/le$//} PLIST_FILES= bin/${PORTNAME} \ lib/libVkLayer_FROG_${PORTNAME}_wsi_${MESON_ARCH_FAMILY}.so \ share/vulkan/implicit_layer.d/VkLayer_FROG_${PORTNAME}_wsi.${MESON_ARCH_FAMILY}.json CXXFLAGS+= -DGLM_ENABLE_EXPERIMENTAL # GLM_GTX_string_cast is an experimental extension # https://github.com/freebsd/drm-kmod/issues/271 PORTSCOUT= ignore:1 OPTIONS_DEFINE= PIPEWIRE OPTIONS_DEFAULT=PIPEWIRE PIPEWIRE_DESC= Screen capture via PipeWire PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_MESON_ENABLED= pipewire post-extract: # Merge patch_directory for subprojects without meson.build @(cd ${WRKSRC}/subprojects/packagefiles && ${COPYTREE_SHARE} . ..) .if defined(PATCHFILES) && ${PATCHFILES:M4a067fb4ebe2*} # Pretend to be a regular file for vendor patch to apply as is @${RMDIR} ${WRKSRC}/subprojects/wlroots @${ECHO_CMD} "Subproject commit 1712a7d27444d62f8da8eeedf0840b386a810e96" \ >${WRKSRC}/subprojects/wlroots .endif .ifdef GH_TUPLE post-configure: @${REINPLACE_CMD} 's/meson install/& \ --skip-subprojects/' ${BUILD_WRKSRC}/build.ninja .endif -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -BUILD_DEPENDS+= ${CMAKE_BIN}:devel/cmake-core -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -CXXFLAGS+= -D_LIBCPP_HAS_NO_VERBOSE_ABORT_IN_LIBRARY -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/x11-wm/gamescope/distinfo b/x11-wm/gamescope/distinfo index 69b4c2051502..361a7164c69f 100644 --- a/x11-wm/gamescope/distinfo +++ b/x11-wm/gamescope/distinfo @@ -1,23 +1,21 @@ -TIMESTAMP = 1700602830 +TIMESTAMP = 1715283606 SHA256 (ValveSoftware-gamescope-3.13.8_GH0.tar.gz) = 660120f41aa5fb62d4d5f467751470add3897d305dae480cf27d6d49ae2d4817 SIZE (ValveSoftware-gamescope-3.13.8_GH0.tar.gz) = 476534 SHA256 (nothings-stb-5736b15_GH0.tar.gz) = 8e18fa73396a3206129c55a3bc409401353991470245941d6ba7d8ce57df864f SIZE (nothings-stb-5736b15_GH0.tar.gz) = 1392565 SHA256 (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-316-gd790ced_GH0.tar.gz) = 4677f51365937acb78df4067359d32742c5c649f2beb8f8afb7e1002329cea46 SIZE (KhronosGroup-SPIRV-Headers-1.5.4.raytracing.fixed-316-gd790ced_GH0.tar.gz) = 463700 SHA256 (Joshua-Ashton-reshade-v4.4.2-2572-g9fdbea68_GH0.tar.gz) = 2a7f854ad30674ab45889aa9d1727f1904a2ee21dbf944727c31ef21e1fd0c7b SIZE (Joshua-Ashton-reshade-v4.4.2-2572-g9fdbea68_GH0.tar.gz) = 1543155 SHA256 (Joshua-Ashton-vkroots-d5ef31a_GH0.tar.gz) = 477dd5f6f6d87e842de342d4accdecdb4742cb4c842f1b8fefd6534618614edf SIZE (Joshua-Ashton-vkroots-d5ef31a_GH0.tar.gz) = 333004 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 SHA256 (a618ea074660.patch) = 346c8012489b58b1ee37e648694ca1d384de39ace61ae2771de5e166e0eec010 SIZE (a618ea074660.patch) = 2591 SHA256 (4a067fb4ebe2.patch) = fb12df8318e06a77ead4aa5752e32eec48efc70de43f069369a4c6a83a590152 SIZE (4a067fb4ebe2.patch) = 4823 SHA256 (243582c0c762.patch) = c7de00de34682207df64e43a235cbaa2fd5332b5e1bb647d6dcee668971a5249 SIZE (243582c0c762.patch) = 3710 SHA256 (4a4fb1b53133.patch) = 5d984f71a4d60113f8096893462e7bbb7bda01d667d80055c2a2022bacef5914 SIZE (4a4fb1b53133.patch) = 735 SHA256 (a9199c2097ff.patch) = 55b9985b01c8b0bcbd2411fb8f6190982129fcc5f6016164fe2769ce354120b2 SIZE (a9199c2097ff.patch) = 1061 diff --git a/x11-wm/hyprland/Makefile b/x11-wm/hyprland/Makefile index ed7f868bafa5..d8c935f320b3 100644 --- a/x11-wm/hyprland/Makefile +++ b/x11-wm/hyprland/Makefile @@ -1,134 +1,110 @@ PORTNAME= hyprland DISTVERSIONPREFIX= v DISTVERSION= 0.41.2 CATEGORIES= x11-wm wayland MAINTAINER= jbeich@FreeBSD.org COMMENT= Dynamic tiling Wayland compositor that doesn't sacrifice on its looks #' WWW= https://hyprland.org/ LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \ hyprwayland-scanner>=0.3.10:devel/hyprwayland-scanner \ wayland-protocols>=1.35:graphics/wayland-protocols LIB_DEPENDS= libhyprlang.so:devel/hyprlang \ libhyprutils.so:devel/hyprutils \ libtomlplusplus.so:devel/tomlplusplus \ libdrm.so:graphics/libdrm \ libwayland-server.so:graphics/wayland \ libuuid.so:misc/e2fsprogs-libuuid \ libwlroots-${PORTNAME}.so:x11-toolkits/wlroots-${PORTNAME} \ libhyprcursor.so:x11/hyprcursor \ libinput.so:x11/libinput \ libxkbcommon.so:x11/libxkbcommon USES= cmake:indirect compiler:c++11-lib gl gnome meson pkgconfig xorg USE_GITHUB= yes USE_GL= egl opengl USE_GNOME= cairo pango USE_XORG= pixman GH_ACCOUNT= hyprwm GH_PROJECT= Hyprland GH_TUPLE= hyprwm:hyprland-protocols:v0.2-5-ge06482e:hyprland_protocols/subprojects/hyprland-protocols \ canihavesomecoffee:udis86:1.7.2-186-g5336633:udis86/subprojects/udis86 MESON_ARGS= -Dsystemd=disabled # Generated by "make update-hash" for commit_pins in hyprpm.toml GH_HASH= 918d8340afd652b011b937d29d5eea0be08467f5 # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif # XXX Drop after FreeBSD 13.4 EOL around 2026-01-31 # https://cgit.freebsd.org/src/commit/?id=af93fea71038 .if !exists(/usr/include/sys/timerfd.h) LIB_DEPENDS+= libepoll-shim.so:devel/libepoll-shim .endif OPTIONS_DEFINE= X11 OPTIONS_DEFAULT=X11 X11_USE= XORG=xcb X11_LIB_DEPENDS= libxcb-errors.so:x11/xcb-util-errors \ libxcb-icccm.so:x11/xcb-util-wm X11_MESON_ENABLED= xwayland post-patch: # Extract (snapshot) version from the port instead of meson.build @${REINPLACE_CMD} -i .nogit \ -e "/version.*jq/s/run_command.*/'${DISTVERSIONFULL}',/" \ ${WRKSRC}/meson.build @${REINPLACE_CMD} -i .nogit \ -e '/^HASH/s/=.*/=${GH_HASH}/' \ -e '/^BRANCH/s/=.*/=main/' \ -e '/^MESSAGE/s/=.*/="?"/' \ -e "/^DATE/s/=.*/=\"$$(date -ur $$(${AWK} \ '/TIMESTAMP/ { print $$3 }' ${DISTINFO_FILE}))\"/" \ -e '/^DIRTY/s/=.*/=portbld/' \ -e '/^TAG/s/=.*/=${DISTVERSIONFULL}/' \ -e '/^COMMITS/s/=.*/="?"/' \ ${WRKSRC}/scripts/generateVersion.sh # Respect consolekit2 as XDG_RUNTIME_DIR fallback @${REINPLACE_CMD} 's,/run/user,/var&,' \ ${WRKSRC}/hyprctl/main.cpp \ ${WRKSRC}/src/Compositor.cpp # Respect PREFIX for wallpapers @${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \ ${WRKSRC}/src/render/OpenGL.cpp # XXX Replace linprocfs(4) with sysctl(3) @${REINPLACE_CMD} -e 's,/proc,${LINUXBASE}&,g' \ ${WRKSRC}/src/desktop/Window.cpp \ ${WRKSRC}/src/plugins/HookSystem.cpp .ifdef GH_TUPLE post-configure: @${REINPLACE_CMD} 's/meson install/& \ --skip-subprojects/' ${BUILD_WRKSRC}/build.ninja .endif post-install: # Plugin API installs all headers (no private vs. public) @(cd ${STAGEDIR}${PREFIX} && ${FIND} include/${PORTNAME} ! -type d) >>${TMPPLIST} update-hash: # https://docs.github.com/en/rest/commits/commits#get-a-commit # Pretend to be curl(1) for pretty-printed JSON to help parse with sed(1) @${REINPLACE_CMD} -i '' -e "/^GH_HASH=/s/=.*/= $$(\ ${SETENV} HTTP_USER_AGENT=curl ${FETCH_CMD} -qo- \ https://api.github.com/repos/${GH_ACCOUNT}/${GH_PROJECT}/commits/${GH_TAGNAME} | \ ${SED} -n '/sha/ { s/.*\"\([0-9a-f]\{40\}\).*/\1/p; q; }' \ )/" \ ${.CURDIR}/Makefile -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -CXXFLAGS+= -D_LIBCPP_HAS_NO_VERBOSE_ABORT_IN_LIBRARY -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include # XXX Work around !target(makesum) makesum: update-hash diff --git a/x11-wm/hyprland/distinfo b/x11-wm/hyprland/distinfo index 2f1402e70d6a..5d7171de50cd 100644 --- a/x11-wm/hyprland/distinfo +++ b/x11-wm/hyprland/distinfo @@ -1,9 +1,7 @@ TIMESTAMP = 1719317162 SHA256 (hyprwm-Hyprland-v0.41.2_GH0.tar.gz) = bba2cf0ec1451eb86761e88cbc3d00e9acbfa1ea732d6ed103a2186400e93dc9 SIZE (hyprwm-Hyprland-v0.41.2_GH0.tar.gz) = 48025946 SHA256 (hyprwm-hyprland-protocols-v0.2-5-ge06482e_GH0.tar.gz) = 05055f71e1f08496320bab54daa190f2fafec1a0e019af244edf1d37cdbf9b8a SIZE (hyprwm-hyprland-protocols-v0.2-5-ge06482e_GH0.tar.gz) = 7424 SHA256 (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 69aff959179ff6247b375b92e797221dbd8e078eabbf1366280b0532617e7fb8 SIZE (canihavesomecoffee-udis86-1.7.2-186-g5336633_GH0.tar.gz) = 116938 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/x11-wm/subtle/Makefile b/x11-wm/subtle/Makefile index 423b0bb2ffac..f40323fce865 100644 --- a/x11-wm/subtle/Makefile +++ b/x11-wm/subtle/Makefile @@ -1,40 +1,40 @@ PORTNAME= subtle PORTVERSION= 0.11.3224 PORTREVISION= 1 CATEGORIES= x11-wm ruby MASTER_SITES= https://subtle.subforge.org/attachments/download/81/ DISTNAME= ${PORTNAME}-${PORTVERSION}-xi MAINTAINER= danfe@FreeBSD.org COMMENT= Grid-based manual tiling window manager WWW= https://subtle.subforge.org/ LICENSE= GPLv2 BUILD_DEPENDS= rake:devel/rubygem-rake USES= compiler:c11 pkgconfig ruby tar:tbz2 xorg USE_XORG= x11 xft xinerama xpm xrandr xtst MAKE_CMD= rake -v MAKEFILE= Rakefile ALL_TARGET= build .include post-patch: @${REINPLACE_CMD} -e 1d ${WRKSRC}/data/subtler/runner.rb @${REINPLACE_CMD} -e 's,File\.exists\?,File.exist?,' \ ${WRKSRC}/data/sur/server.rb @${REINPLACE_CMD} -e 's,/etc/xdg,${LOCALBASE}&,' \ ${WRKSRC}/src/subtle/ruby.c -.if ${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 160 +.if ${COMPILER_TYPE} == clang @${REINPLACE_CMD} -e '/cflags/s/-Wall/-Wall -Wno-error=incompatible-function-pointer-types /g' \ ${WRKSRC}/Rakefile .endif do-configure: @cd ${WRKSRC} && ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} config .include diff --git a/x11-wm/theseus-ship/Makefile b/x11-wm/theseus-ship/Makefile index bd56442633bd..e1272e2bb38b 100644 --- a/x11-wm/theseus-ship/Makefile +++ b/x11-wm/theseus-ship/Makefile @@ -1,68 +1,45 @@ PORTNAME= theseus-ship DISTVERSIONPREFIX= v DISTVERSION= 6.1.0 CATEGORIES= x11-wm # wayland: https://github.com/winft/theseus-ship/issues/9 MAINTAINER= jbeich@FreeBSD.org COMMENT= Wayland and X11 compositor for KDE Plasma Desktop WWW= https://github.com/winft/theseus-ship LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libepoxy.so:graphics/libepoxy \ libwayland-server.so:graphics/wayland \ libWraplandServer.so:graphics/wrapland \ libcomo-script.so.0:x11-toolkits/como \ libwlroots.so:x11-toolkits/wlroots \ libxkbcommon.so:x11/libxkbcommon \ libxcb-cursor.so:x11/xcb-util-cursor \ libxcb-keysyms.so:x11/xcb-util-keysyms \ libxcb-icccm.so:x11/xcb-util-wm CONFLICTS_INSTALL= plasma6-kwin # bin/kwin_wayland USES= cmake:testing gettext-tools kde:6 pkgconfig qt:6 xorg USE_GITHUB= yes USE_KDE= colorscheme config coreaddons crash dbusaddons decoration \ ecm:build globalaccel i18n kcmutils kscreenlocker newstuff:build \ notifications package svg widgetsaddons windowsystem xmlgui USE_LDCONFIG= yes USE_QT= base declarative tools USE_XORG= pixman x11 xcb xi GH_ACCOUNT= winft GH_PROJECT= theseus-ship PLIST_SUB= VERSION=${PORTVERSION} LDFLAGS+= -Wl,--as-needed # GL, ICE/SM/Xext, input, KF6Service OPTIONS_DEFINE= BREEZE OPTIONS_DEFAULT=BREEZE BREEZE_DESC= Default window decoration plugin BREEZE_USE= KDE=breeze BREEZE_CMAKE_BOOL_OFF= CMAKE_DISABLE_FIND_PACKAGE_Breeze -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/x11-wm/theseus-ship/distinfo b/x11-wm/theseus-ship/distinfo index fd43f06328a7..f04af2210798 100644 --- a/x11-wm/theseus-ship/distinfo +++ b/x11-wm/theseus-ship/distinfo @@ -1,5 +1,3 @@ TIMESTAMP = 1718822874 SHA256 (winft-theseus-ship-v6.1.0_GH0.tar.gz) = dd3bb31644636e4d3e855df36b4467b20312184ac2b5462594c211107f36824c SIZE (winft-theseus-ship-v6.1.0_GH0.tar.gz) = 2693171 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/x11/hyprcursor/Makefile b/x11/hyprcursor/Makefile index 284bd41549ac..ece3ebc6f323 100644 --- a/x11/hyprcursor/Makefile +++ b/x11/hyprcursor/Makefile @@ -1,57 +1,34 @@ PORTNAME= hyprcursor DISTVERSIONPREFIX= v DISTVERSION= 0.1.9 CATEGORIES= x11 MAINTAINER= jbeich@FreeBSD.org COMMENT= Hyprland cursor format, library and utilities WWW= https://github.com/hyprwm/hyprcursor LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libzip.so:archivers/libzip \ libhyprlang.so:devel/hyprlang \ libtomlplusplus.so:devel/tomlplusplus RUN_DEPENDS= xcur2png:x11/xcur2png USES= compiler:c++11-lib cmake:testing gnome pathfix pkgconfig USE_GITHUB= yes USE_GNOME= cairo librsvg2 GH_ACCOUNT= hyprwm PLIST_SUB= VERSION=${DISTVERSION:C/-.*//} # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif post-patch: # Respect PREFIX for icons @${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \ ${WRKSRC}/lib${PORTNAME}/${PORTNAME}.cpp -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/expected) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/x11/hyprcursor/distinfo b/x11/hyprcursor/distinfo index 30668dc9563a..b98be6b93d05 100644 --- a/x11/hyprcursor/distinfo +++ b/x11/hyprcursor/distinfo @@ -1,5 +1,3 @@ TIMESTAMP = 1716576411 SHA256 (hyprwm-hyprcursor-v0.1.9_GH0.tar.gz) = 313cd91436af343918e6dec4a666d4bf3666149ac3cac6f36c683b70304eada4 SIZE (hyprwm-hyprcursor-v0.1.9_GH0.tar.gz) = 26111 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 diff --git a/x11/hyprlock/Makefile b/x11/hyprlock/Makefile index 716c62e778ec..5e9bfdc49e85 100644 --- a/x11/hyprlock/Makefile +++ b/x11/hyprlock/Makefile @@ -1,67 +1,44 @@ PORTNAME= hyprlock DISTVERSIONPREFIX= v DISTVERSION= 0.3.0 CATEGORIES= x11 wayland PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES+= d9a6229434fb.patch:-p1 # -G Ninja PATCHFILES+= 8658386f212f.patch:-p1 # https://github.com/hyprwm/hyprlock/issues/289 MAINTAINER= jbeich@FreeBSD.org COMMENT= Hyprland's GPU-accelerated screen locking utility #' WWW= https://github.com/hyprwm/hyprlock LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= wayland-protocols>0:graphics/wayland-protocols LIB_DEPENDS= libhyprlang.so:devel/hyprlang \ libdrm.so:graphics/libdrm \ libwayland-client.so:graphics/wayland \ libxkbcommon.so:x11/libxkbcommon RUN_DEPENDS= unix-selfauth-helper>0:security/unix-selfauth-helper USES= compiler:c++11-lib cmake gl gnome pkgconfig USE_GITHUB= yes USE_GL= egl gbm USE_GNOME= cairo pango GH_ACCOUNT= hyprwm LDFLAGS+= -Wl,--as-needed # pango deps PLIST_FILES= bin/${PORTNAME} \ etc/pam.d/${PORTNAME} # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif # XXX Drop after FreeBSD 13.3 EOL around 2025-07-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__chrono/time_zone.h) LIB_DEPENDS+= libdate-tz.so:devel/date USES+= localbase:ldflags .endif -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/expected) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/x11/hyprlock/distinfo b/x11/hyprlock/distinfo index ecae09020fef..c0d6df0daf68 100644 --- a/x11/hyprlock/distinfo +++ b/x11/hyprlock/distinfo @@ -1,9 +1,7 @@ -TIMESTAMP = 1712587141 +TIMESTAMP = 1715283979 SHA256 (hyprwm-hyprlock-v0.3.0_GH0.tar.gz) = 5e84ac3223ea340bb3d39c22db4edefbb8364da8c3b6b3d0da1dfa45d8cc945f SIZE (hyprwm-hyprlock-v0.3.0_GH0.tar.gz) = 61599 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803 SHA256 (d9a6229434fb.patch) = c50bfa1b1d69d95a6fe0ae9ab9c023ee220f8b9b535a54f1271782e33b198941 SIZE (d9a6229434fb.patch) = 852 SHA256 (8658386f212f.patch) = 36d0de05ba6897dc77ad2ad86ad7ffd0aae6d665dc588b931e0f86243818906d SIZE (8658386f212f.patch) = 984 diff --git a/x11/xdg-desktop-portal-hyprland/Makefile b/x11/xdg-desktop-portal-hyprland/Makefile index 62f7ce3cd02a..e1d687d50f6e 100644 --- a/x11/xdg-desktop-portal-hyprland/Makefile +++ b/x11/xdg-desktop-portal-hyprland/Makefile @@ -1,64 +1,41 @@ PORTNAME= xdg-desktop-portal-hyprland DISTVERSIONPREFIX= v DISTVERSION= 1.3.2 CATEGORIES= x11 wayland MAINTAINER= jbeich@FreeBSD.org COMMENT= xdg-desktop-portal backend for hyprland WWW= https://github.com/hyprwm/xdg-desktop-portal-hyprland LICENSE= BSD3CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= wayland-protocols>=1.31:graphics/wayland-protocols LIB_DEPENDS= libhyprlang.so:devel/hyprlang \ libsdbus-c++.so:devel/sdbus-cpp \ libdrm.so:graphics/libdrm \ libwayland-client.so:graphics/wayland \ libpipewire-0.3.so:multimedia/pipewire RUN_DEPENDS= xdg-desktop-portal>0:deskutils/xdg-desktop-portal \ grim:x11/grim \ slurp:x11/slurp USES= cmake compiler:c++11-lib gl pkgconfig qt:6 USE_GITHUB= yes USE_GL= gbm USE_QT= base wayland:run GH_ACCOUNT= hyprwm GH_TUPLE= hyprwm:hyprland-protocols:v0.2:hyprland_protocols/subprojects/hyprland-protocols LDFLAGS+= -Wl,--as-needed # GL, sdbus-cpp deps PLIST_FILES= bin/hyprland-share-picker \ lib/systemd/user/${PORTNAME}.service \ libexec/${PORTNAME} \ share/dbus-1/services/org.freedesktop.impl.portal.desktop.hyprland.service \ share/xdg-desktop-portal/portals/hyprland.portal # XXX Drop after FreeBSD 14.0 EOL around 2024-10-01 .if exists(/usr/lib/libc++.so) && !exists(/usr/include/c++/v1/__format/write_escaped.h) CXXFLAGS+= -fexperimental-library .endif -# XXX Drop after FreeBSD 13.2 EOL around 2024-07-01 (don't forget distinfo) -.if ${CXX} == c++ && exists(/usr/lib/libc++.so) -.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch) -USES+= llvm:min=16,build,export -PATH:= ${LLVM_PREFIX}/bin:${PATH} # XXX _CMAKE_TOOLCHAIN_SUFFIX vs. devel/llvm* -CONFIGURE_ENV+= CC="${CC}" CXX="${CXX}" CPP="${CPP}" - -# XXX Move into separate port and standardize via USES -GH_TUPLE+= llvm:llvm-project:llvmorg-16.0.1:libcxx -CXXFLAGS+= -nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1 -# Don't link against new libc++ as it's not necessary -#LDFLAGS+= -nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt - -pre-configure: bundled-libcxx -bundled-libcxx: - @${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \ - -DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \ - -DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \ - -B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx - @${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build -.endif -.endif # exists(/usr/lib/libc++.so) - .include diff --git a/x11/xdg-desktop-portal-hyprland/distinfo b/x11/xdg-desktop-portal-hyprland/distinfo index a42bb438ae6a..44d5209c16af 100644 --- a/x11/xdg-desktop-portal-hyprland/distinfo +++ b/x11/xdg-desktop-portal-hyprland/distinfo @@ -1,7 +1,5 @@ TIMESTAMP = 1718272114 SHA256 (hyprwm-xdg-desktop-portal-hyprland-v1.3.2_GH0.tar.gz) = 8f77a11c4d3df1b6d963f408ea1159d093e3b14ea0cb8c64094fca9821af2e26 SIZE (hyprwm-xdg-desktop-portal-hyprland-v1.3.2_GH0.tar.gz) = 48659 SHA256 (hyprwm-hyprland-protocols-v0.2_GH0.tar.gz) = 106cb189d0fbe4ec0ee11a12a17238172f4c4cd1b2b26db904df144e5c7a05f0 SIZE (hyprwm-hyprland-protocols-v0.2_GH0.tar.gz) = 6342 -SHA256 (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = b5a9ff1793b1e2d388a3819bf35797002b1d2e40bb35a10c65605e0ea1435271 -SIZE (llvm-llvm-project-llvmorg-16.0.1_GH0.tar.gz) = 179289803