diff options
author | tijl <tijl@FreeBSD.org> | 2016-09-06 03:23:42 +0800 |
---|---|---|
committer | tijl <tijl@FreeBSD.org> | 2016-09-06 03:23:42 +0800 |
commit | 6255104baacfdd2c23e07550f90d2f9a7020ca87 (patch) | |
tree | 516db145d6cf5fd4d2666f811272aad577272ac5 /Mk/Uses/linux.mk | |
parent | 016de2316ed16336a58b66dafd7f332614a041ac (diff) | |
download | freebsd-ports-gnome-6255104baacfdd2c23e07550f90d2f9a7020ca87.tar.gz freebsd-ports-gnome-6255104baacfdd2c23e07550f90d2f9a7020ca87.tar.zst freebsd-ports-gnome-6255104baacfdd2c23e07550f90d2f9a7020ca87.zip |
- Replace Mk/bsd.linux-apps.mk and Mk/bsd.linux-rpm.mk with
Mk/Uses/linux.mk.
- Replace USE_LINUX=yes with USES+=linux and USE_LINUX=(.*) with
USES+=linux:\1 in all ports.
- Replace USE_LINUX_APPS with USE_LINUX in all ports.
- Use INSTALL_SCRIPT instead of INSTALL_PROGRAM to install scripts in some
ports.
- When USE_LINUX_RPM is defined, simplify the way DISTFILES and EXTRACT_ONLY
are defined.
- Remove BRANDELF_DIRS and BRANDELF_FILES handling. In the very rare cases
that it is still necessary ports can run ${BRANDELF} from post-patch.
- Remove AUTOMATIC_PLIST handling. Only one port used it.
- Fix Linux MASTER_SITES.
- Replace OVERRIDE_LINUX_BASE_PORT and OVERRIDE_LINUX_NONBASE_PORTS with
default versions framework.
- bsd.port.mk:
- Move Linux related bits to Uses/linux.mk, except USE_LINUX_PREFIX.
- Put USE_LINUX_PREFIX handling after USES processing.
- Define DOCSDIR, DATADIR, etc. after handling USE_LINUX_PREFIX so it can
give these variables a different default value.
- When a package needs to run Linux ldconfig check before installation if
Linux support is enabled.
- emulators/linux_base-*:
- Use USES=linux and remove duplication.
- Remove files/lp. FreeBSD or CUPS lp(1) should work.
- Remove files/yp.conf. No longer seems to be used.
- Remove pkg-deinstall and move pkg-install into pkg-plist.
- Update pkg-descr and pkg-message.
- Fix handling of ldconfig cache in pkg-plist.
- devel/fb-adb: Use a Linux shell to run a Linux script but patch the script
to use FreeBSD mkdir so mkdir -p $path creates $path and not
/compat/linux/$path.
PR: 211645
Exp-run by: antoine
Approved by: portmgr (antoine)
Diffstat (limited to 'Mk/Uses/linux.mk')
-rw-r--r-- | Mk/Uses/linux.mk | 277 |
1 files changed, 277 insertions, 0 deletions
diff --git a/Mk/Uses/linux.mk b/Mk/Uses/linux.mk new file mode 100644 index 000000000000..90f081b6b0fe --- /dev/null +++ b/Mk/Uses/linux.mk @@ -0,0 +1,277 @@ +# $FreeBSD$ +# +# Ports Linux compatibility framework +# +# Feature: linux:args +# Usage: USES=linux or USES=linux:args +# Valid args: f10 Depend on Fedora 10 packages (deprecated) +# c6 Depend on CentOS 6 packages (default) +# c7 Depend on CentOS 7 packages +# Additional variables: +# USE_LINUX List of Linux packages to depend on. +# USE_LINUX_RPM When defined, additional variables and targets useful to Linux +# infrastructure ports are made available. Possible values: +# yes Default LIB_DISTFILES and empty BIN_DISTFILES. +# nolib Default BIN_DISTFILES and empty LIB_DISTFILES. +# Additional variables when USE_LINUX_RPM is defined: +# BIN_DISTFILES List of distfiles to install. +# LIB_DISTFILES List of distfiles to install both the 32 and 64 bit version of. +# SRC_DISTFILES List of source distfiles that need to be distributed with +# binary packages to comply with some licenses. +# +# MAINTAINER: emulation@FreeBSD.org + +.ifndef _INCLUDE_USES_LINUX_MK +_INCLUDE_USES_LINUX_MK= yes +_USES_POST+= linux + +.if empty(linux_ARGS) +linux_ARGS= ${LINUX_DEFAULT:S/_64//} +.endif + +.if ${linux_ARGS} == f10 +LINUX_DIST_VER?= 10 +.elif ${linux_ARGS} == c6 +LINUX_DIST_VER?= 6.8 +.elif ${linux_ARGS} == c7 +LINUX_DIST_VER?= 7.2.1511 +.else +IGNORE= Invalid Linux distribution: ${linux_ARGS} +.endif + +.if ${linux_ARGS} == f10 +LINUX_ARCH= i386 +DEPRECATED= Fedora 10 is unsupported and vulnerable +EXPIRATION_DATE= 2016-12-31 +.else +.if ${LINUX_DEFAULT:M*_64} +LINUX_ARCH= x86_64 +.if ${ARCH} != amd64 || ${OPSYS} != FreeBSD || ${OSVERSION} < 1002507 \ + || ( ${OSVERSION} >= 1100000 && ${OSVERSION} < 1100105 ) +IGNORE= Linux ${LINUX_DEFAULT} only supported on FreeBSD/amd64 10.3 or higher +.endif +.else +LINUX_ARCH= i386 +.endif +.endif + +linux_allegro_DEP= linux-${linux_ARGS}-allegro>0:devel/linux-${linux_ARGS}-allegro +linux_alsa-plugins-oss_DEP= linux-${linux_ARGS}-alsa-plugins-oss>0:audio/linux-${linux_ARGS}-alsa-plugins-oss +linux_alsa-plugins-pulseaudio_DEP=linux-${linux_ARGS}-alsa-plugins-pulseaudio>0:audio/linux-${linux_ARGS}-alsa-plugins-pulseaudio +linux_alsalib_DEP= linux-${linux_ARGS}-alsa-lib>0:audio/linux-${linux_ARGS}-alsa-lib +linux_arts_DEP= linux-${linux_ARGS}-arts>0:audio/linux-${linux_ARGS}-arts +linux_atk_DEP= linux-${linux_ARGS}-atk>0:accessibility/linux-${linux_ARGS}-atk +linux_avahi-libs_DEP= linux-${linux_ARGS}-avahi-libs>0:net/linux-${linux_ARGS}-avahi-libs +linux_base_DEP= linux_base-${linux_ARGS}>0:emulators/linux_base-${linux_ARGS} +linux_cairo_DEP= linux-${linux_ARGS}-cairo>0:graphics/linux-${linux_ARGS}-cairo +linux_cups-libs_DEP= linux-${linux_ARGS}-cups-libs>0:print/linux-${linux_ARGS}-cups-libs +linux_curl_DEP= linux-${linux_ARGS}-curl>0:ftp/linux-${linux_ARGS}-curl +linux_cyrus-sasl2_DEP= linux-${linux_ARGS}-cyrus-sasl2>0:security/linux-${linux_ARGS}-cyrus-sasl2 +linux_dbusglib_DEP= linux-${linux_ARGS}-dbus-glib>0:devel/linux-${linux_ARGS}-dbus-glib +linux_dbuslibs_DEP= linux-${linux_ARGS}-dbus-libs>0:devel/linux-${linux_ARGS}-dbus-libs +linux_devtools_DEP= linux-${linux_ARGS}-devtools>0:devel/linux-${linux_ARGS}-devtools +linux_dri_DEP= linux-${linux_ARGS}-dri>0:graphics/linux-${linux_ARGS}-dri +linux_esound_DEP= linux-${linux_ARGS}-esound>0:audio/linux-${linux_ARGS}-esound +linux_expat_DEP= linux-${linux_ARGS}-expat>0:textproc/linux-${linux_ARGS}-expat +linux_flac_DEP= linux-${linux_ARGS}-flac>0:audio/linux-${linux_ARGS}-flac +linux_fontconfig_DEP= linux-${linux_ARGS}-fontconfig>0:x11-fonts/linux-${linux_ARGS}-fontconfig +.if ${linux_ARGS:Mf10} +linux_gdkpixbuf2_DEP= linux-${linux_ARGS}-gtk2>0:x11-toolkits/linux-${linux_ARGS}-gtk2 +.else +linux_gdkpixbuf2_DEP= linux-${linux_ARGS}-gdk-pixbuf2>0:graphics/linux-${linux_ARGS}-gdk-pixbuf2 +.endif +linux_gnutls_DEP= linux-${linux_ARGS}-gnutls>0:security/linux-${linux_ARGS}-gnutls +linux_gtk2_DEP= linux-${linux_ARGS}-gtk2>0:x11-toolkits/linux-${linux_ARGS}-gtk2 +linux_hicontheme_DEP= linux-${linux_ARGS}-hicolor-icon-theme>0:x11-themes/linux-${linux_ARGS}-hicolor-icon-theme +linux_jasper_DEP= linux-${linux_ARGS}-jasper>0:graphics/linux-${linux_ARGS}-jasper +linux_jpeg_DEP= linux-${linux_ARGS}-jpeg>0:graphics/linux-${linux_ARGS}-jpeg +linux_libasyncns_DEP= linux-${linux_ARGS}-libasyncns>0:dns/linux-${linux_ARGS}-libasyncns +linux_libaudiofile_DEP= linux-${linux_ARGS}-libaudiofile>0:audio/linux-${linux_ARGS}-libaudiofile +linux_libgcrypt_DEP= linux-${linux_ARGS}-libgcrypt>0:security/linux-${linux_ARGS}-libgcrypt +linux_libgfortran_DEP= linux-${linux_ARGS}-libgfortran>0:devel/linux-${linux_ARGS}-libgfortran +linux_libglu_DEP= linux-${linux_ARGS}-libGLU>0:graphics/linux-${linux_ARGS}-libGLU +linux_libgpg-error_DEP= linux-${linux_ARGS}-libgpg-error>0:security/linux-${linux_ARGS}-libgpg-error +linux_libmng_DEP= linux-${linux_ARGS}-libmng>0:graphics/linux-${linux_ARGS}-libmng +linux_libogg_DEP= linux-${linux_ARGS}-libogg>0:audio/linux-${linux_ARGS}-libogg +linux_libpciaccess_DEP= linux-${linux_ARGS}-libpciaccess>0:devel/linux-${linux_ARGS}-libpciaccess +linux_libsndfile_DEP= linux-${linux_ARGS}-libsndfile>0:audio/linux-${linux_ARGS}-libsndfile +linux_libssh2_DEP= linux-${linux_ARGS}-libssh2>0:security/linux-${linux_ARGS}-libssh2 +linux_libtasn1_DEP= linux-${linux_ARGS}-libtasn1>0:security/linux-${linux_ARGS}-libtasn1 +linux_libthai_DEP= linux-${linux_ARGS}-libthai>0:devel/linux-${linux_ARGS}-libthai +linux_libtheora_DEP= linux-${linux_ARGS}-libtheora>0:multimedia/linux-${linux_ARGS}-libtheora +linux_libv4l_DEP= linux-${linux_ARGS}-libv4l>0:multimedia/linux-${linux_ARGS}-libv4l +linux_libvorbis_DEP= linux-${linux_ARGS}-libvorbis>0:audio/linux-${linux_ARGS}-libvorbis +linux_libxml2_DEP= linux-${linux_ARGS}-libxml2>0:textproc/linux-${linux_ARGS}-libxml2 +linux_mikmod_DEP= linux-${linux_ARGS}-mikmod>0:audio/linux-${linux_ARGS}-mikmod +linux_naslibs_DEP= linux-${linux_ARGS}-nas-libs>0:audio/linux-${linux_ARGS}-nas-libs +linux_ncurses-base_DEP= linux-${linux_ARGS}-ncurses-base>0:devel/linux-${linux_ARGS}-ncurses-base +linux_nspr_DEP= linux-${linux_ARGS}-nspr>0:devel/linux-${linux_ARGS}-nspr +linux_nss_DEP= linux-${linux_ARGS}-nss>0:security/linux-${linux_ARGS}-nss +linux_openal_DEP= linux-${linux_ARGS}-openal>0:audio/linux-${linux_ARGS}-openal +linux_openal-soft_DEP= linux-${linux_ARGS}-openal-soft>0:audio/linux-${linux_ARGS}-openal-soft +linux_openldap_DEP= linux-${linux_ARGS}-openldap>0:net/linux-${linux_ARGS}-openldap +linux_openmotif_DEP= linux-${linux_ARGS}-openmotif>0:x11-toolkits/linux-${linux_ARGS}-openmotif +linux_openssl_DEP= linux-${linux_ARGS}-openssl>0:security/linux-${linux_ARGS}-openssl +linux_openssl-compat_DEP= linux-${linux_ARGS}-openssl-compat>0:security/linux-${linux_ARGS}-openssl-compat +linux_pango_DEP= linux-${linux_ARGS}-pango>0:x11-toolkits/linux-${linux_ARGS}-pango +linux_pixman_DEP= linux-${linux_ARGS}-pixman>0:x11/linux-${linux_ARGS}-pixman +linux_png_DEP= linux-${linux_ARGS}-png>0:graphics/linux-${linux_ARGS}-png +linux_pulseaudio-libs_DEP= linux-${linux_ARGS}-pulseaudio-libs>0:audio/linux-${linux_ARGS}-pulseaudio-libs +linux_qt47_DEP= linux-${linux_ARGS}-qt47>0:devel/linux-${linux_ARGS}-qt47 +linux_qt47-webkit_DEP= linux-${linux_ARGS}-qt47-webkit>0:www/linux-${linux_ARGS}-qt47-webkit +linux_qt47-x11_DEP= linux-${linux_ARGS}-qt47-x11>0:x11-toolkits/linux-${linux_ARGS}-qt47-x11 +linux_scimlibs_DEP= linux-${linux_ARGS}-scim-libs>0:textproc/linux-${linux_ARGS}-scim-libs +linux_sdl12_DEP= linux-${linux_ARGS}-sdl>0:devel/linux-${linux_ARGS}-sdl12 +linux_sdlimage_DEP= linux-${linux_ARGS}-sdl_image>0:graphics/linux-${linux_ARGS}-sdl_image +linux_sdlmixer_DEP= linux-${linux_ARGS}-sdl_mixer>0:audio/linux-${linux_ARGS}-sdl_mixer +.if ${linux_ARGS:Mf10} +linux_sqlite3_DEP= linux-${linux_ARGS}-sqlite3>0:databases/linux-${linux_ARGS}-sqlite3 +.else +linux_sqlite3_DEP= linux-${linux_ARGS}-sqlite>0:databases/linux-${linux_ARGS}-sqlite3 +.endif +linux_tcl85_DEP= linux-${linux_ARGS}-tcl85>0:lang/linux-${linux_ARGS}-tcl85 +linux_tcp_wrappers-libs_DEP= linux-${linux_ARGS}-tcp_wrappers-libs>0:net/linux-${linux_ARGS}-tcp_wrappers-libs +linux_tiff_DEP= linux-${linux_ARGS}-tiff>0:graphics/linux-${linux_ARGS}-tiff +linux_tk85_DEP= linux-${linux_ARGS}-tk85>0:x11-toolkits/linux-${linux_ARGS}-tk85 +linux_ucl_DEP= linux-${linux_ARGS}-ucl>0:archivers/linux-${linux_ARGS}-ucl +linux_xorglibs_DEP= linux-${linux_ARGS}-xorg-libs>0:x11/linux-${linux_ARGS}-xorg-libs + +USE_LINUX?= base +.for i in ${USE_LINUX} +_i:= ${i:C/\:.*//} +_i_args:= ${i:C/^[^\:]*(\:|\$)//:S/,/ /g} +.if ${_i_args:Mpatch} +PATCH_DEPENDS+= ${linux_${_i}_DEP} +.endif +.if ${_i_args:Mbuild} +BUILD_DEPENDS+= ${linux_${_i}_DEP} +.endif +.if ${_i_args:Mrun} || empty(_i_args) +RUN_DEPENDS+= ${linux_${_i}_DEP} +.endif +.endfor + +.ifdef USE_LINUX_RPM + +DISTVERSIONSUFFIX?= -${RPMVERSION} + +.if ${linux_ARGS} == f10 + +.ifndef MASTER_SITES +MASTER_SITES= ${MASTER_SITE_FEDORA_LINUX} +MASTER_SITE_SUBDIR= releases/${LINUX_DIST_VER}/Everything/${LINUX_ARCH}/os/Packages \ + updates/${LINUX_DIST_VER}/${LINUX_ARCH} \ + releases/${LINUX_DIST_VER}/Everything/source/SRPMS/:SOURCE \ + updates/${LINUX_DIST_VER}/SRPMS/:SOURCE +.endif +DIST_SUBDIR?= rpm/${LINUX_ARCH}/fedora/${LINUX_DIST_VER} + +LINUX_RPM_ARCH?= i386 + +.elif ${linux_ARGS} == c6 + +.ifndef MASTER_SITES +MASTER_SITES= ${MASTER_SITE_CENTOS_LINUX} +MASTER_SITE_SUBDIR= centos/${LINUX_DIST_VER}/os/${LINUX_ARCH}/Packages \ + centos/${LINUX_DIST_VER}/updates/${LINUX_ARCH}/Packages \ + centos/${LINUX_DIST_VER}/os/Source/SPackages/:SOURCE \ + centos/${LINUX_DIST_VER}/updates/Source/SPackages/:SOURCE +.endif +DIST_SUBDIR?= rpm/${LINUX_RPM_ARCH}/centos/${LINUX_DIST_VER} + +.if ${LINUX_ARCH} == x86_64 +LINUX_RPM_ARCH?= x86_64 +LINUX_RPM_ARCH32?= i686 +.else +LINUX_RPM_ARCH?= i686 +.endif + +.elif ${linux_ARGS} == c7 + +.ifndef MASTER_SITES +MASTER_SITES= ${MASTER_SITE_CENTOS_LINUX} +.if ${LINUX_ARCH} == x86_64 +MASTER_SITE_SUBDIR= centos/${LINUX_DIST_VER}/os/${LINUX_ARCH}/Packages \ + centos/${LINUX_DIST_VER}/updates/${LINUX_ARCH}/Packages +.else +MASTER_SITE_SUBDIR= altarch/${LINUX_DIST_VER}/os/${LINUX_ARCH}/Packages \ + altarch/${LINUX_DIST_VER}/updates/${LINUX_ARCH}/Packages +.endif +MASTER_SITE_SUBDIR+= centos/${LINUX_DIST_VER}/os/Source/SPackages/:SOURCE \ + centos/${LINUX_DIST_VER}/updates/Source/SPackages/:SOURCE +.endif +DIST_SUBDIR?= rpm/centos/${LINUX_DIST_VER}/${LINUX_ARCH} + +.if ${LINUX_ARCH} == x86_64 +LINUX_RPM_ARCH?= x86_64 +LINUX_RPM_ARCH32?= i686 +.else +LINUX_RPM_ARCH?= i686 +.endif + +.endif # ${linux_ARGS} == * + +PKGNAMEPREFIX?= linux-${linux_ARGS}- +EXTRACT_SUFX?= .${LINUX_RPM_ARCH}.rpm +.ifdef LINUX_RPM_ARCH32 +EXTRACT_SUFX32?= .${LINUX_RPM_ARCH32}.rpm +.endif +SRC_SUFX?= .src.rpm + +NO_BUILD= yes +NO_WRKSUBDIR= yes +USE_LINUX_PREFIX= yes + +.endif # USE_LINUX_RPM + +.endif # ! _INCLUDE_USES_LINUX_MK + +.ifdef _POSTMKINCLUDED && ! _INCLUDE_USES_LINUX_POST_MK +_INCLUDE_USES_LINUX_POST_MK= yes + +.ifdef USE_LINUX_RPM + +.if ${USE_LINUX_RPM} == nolib +BIN_DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} +.else +LIB_DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} +.endif +.ifdef LINUX_RPM_ARCH32 +DISTFILES?= ${LIB_DISTFILES:S/${EXTRACT_SUFX}/${EXTRACT_SUFX32}/} \ + ${LIB_DISTFILES} ${BIN_DISTFILES} +EXTRACT_ONLY?= ${LIB_DISTFILES:S/${EXTRACT_SUFX}/${EXTRACT_SUFX32}/} \ + ${LIB_DISTFILES} ${BIN_DISTFILES} +.else +DISTFILES?= ${LIB_DISTFILES} ${BIN_DISTFILES} +EXTRACT_ONLY?= ${LIB_DISTFILES} ${BIN_DISTFILES} +.endif +.ifdef PACKAGE_BUILDING +SRC_DISTFILES?= ${LIB_DISTFILES:S/${EXTRACT_SUFX}/${SRC_SUFX}:SOURCE/} \ + ${BIN_DISTFILES:S/${EXTRACT_SUFX}/${SRC_SUFX}:SOURCE/} +DISTFILES+= ${SRC_DISTFILES} +ALWAYS_KEEP_DISTFILES= yes +.endif + +DISTINFO_FILE?= ${MASTERDIR}/distinfo.${LINUX_ARCH} + +.ifdef USE_LINUX_RPM_BAD_PERMS +EXTRACT_DEPENDS+= rpm2archive:archivers/rpm4 +EXTRACT_CMD= rpm2archive +EXTRACT_BEFORE_ARGS= < +EXTRACT_AFTER_ARGS= | ${TAR} xf - --no-same-owner --no-same-permissions +.endif + +ONLY_FOR_ARCHS?= i386 amd64 +.if ${linux_ARGS} != f10 +PLIST?= ${PKGDIR}/pkg-plist.${LINUX_ARCH} +.endif + +.if !target(do-install) +do-install: + (cd ${WRKSRC} && ${FIND} * -type d -exec ${MKDIR} "${STAGEDIR}${PREFIX}/{}" \;) + (cd ${WRKSRC} && ${FIND} * ! -type d | ${CPIO} -pm ${STAGEDIR}${PREFIX}) +.endif + +.endif # USE_LINUX_RPM + +.endif # _POSTMKINCLUDED && ! _INCLUDE_USES_LINUX_POST_MK |