mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-13 03:03:15 +00:00
0263b9d868
both current (fc4) and future linux (f8) distributions at one ports tree. The patch contains full changes to ports/Mk files and all ports involved. But only infrastructure is changed. The resulting packages are the same as before. Hence no need to bump PORTREVISIONs. The idea was taken from bsd.gnome.mk and others. More than 130 ports are switched to follow a new linux infrastructure introduced by changes to bsd.port.mk, bsd.linux-rpm.mk and a new bsd.linux-apps.mk. Thanks for all who was involved and helped me with this work. And help from Alexander Leidinger was incredible. Other changes are coming. Stay tuned! PR: ports/132510 Submitted by: bsam (me) Exp-run by: portmgr (pav)
187 lines
5.8 KiB
Makefile
187 lines
5.8 KiB
Makefile
#-*- mode: Makefile; tab-width: 4; -*-
|
|
# ex:ts=4
|
|
#
|
|
# $FreeBSD: /tmp/pcvs/ports/Mk/bsd.linux-rpm.mk,v 1.14 2009-03-19 17:28:30 bsam Exp $
|
|
#
|
|
|
|
# Variables:
|
|
# LINUX_DIST - Will be used to set some dist-specific presets.
|
|
# Valid values: fedora
|
|
# LINUX_DIST_VER - Use depends upon the dist-specific presets.
|
|
# Valid values for "fedora": all version numbers
|
|
# e.g. 3 for fedora core 3, 4 for fedora core 4
|
|
# This is used to set MASTER_SITE_{,SRC_}SUBDIR
|
|
# if it isn't already set.
|
|
# MASTER_SITE_SRC_SUBDIR
|
|
# - The subdir for the src RPM's.
|
|
# DISTFILES - For simple cases this will be set automatically
|
|
# based upon the DISTNAME.
|
|
# SRC_DISTFILES - Variable which contains the corresponding src RPM's.
|
|
# If there's no corresponding src RPM, it has to be
|
|
# set to the empty value (SRC_DISTFILES= "").
|
|
# AUTOMATIC_PLIST - Generate a dynamic plist (please have a look at the
|
|
# porters handbook section which talks about plists.
|
|
# This feature is reserved for rare cases).
|
|
# BRANDELF_DIRS - A list of directories with executables to brand
|
|
# as a linux executable. The directories has to not
|
|
# contain libraries.
|
|
# BRANDELF_FILES - A list of files to brand as a linux executable in
|
|
# case BRANDELF_DIRS can't be used.
|
|
|
|
.if !defined(_POSTMKINCLUDED) && !defined(Linux_RPM_Pre_Include)
|
|
|
|
Linux_RPM_Include_MAINTAINER= emulation@FreeBSD.org
|
|
Linux_RPM_Pre_Include= bsd.linux-rpm.mk
|
|
|
|
RPM2CPIO?= ${LOCALBASE}/bin/rpm2cpio
|
|
|
|
EXTRACT_SUFX?= .${LINUX_RPM_ARCH}.rpm
|
|
SRC_SUFX?= .src.rpm
|
|
|
|
USE_LINUX?= yes
|
|
USE_LINUX_PREFIX= yes
|
|
|
|
NO_WRKSUBDIR= yes
|
|
NO_BUILD= yes
|
|
|
|
. if ${ARCH} == "amd64"
|
|
LINUX_RPM_ARCH?= i386 # the linuxulator does not yet support amd64 code
|
|
. elif ${ARCH} == "powerpc"
|
|
LINUX_RPM_ARCH?= ppc
|
|
. else
|
|
LINUX_RPM_ARCH?= ${ARCH}
|
|
. endif
|
|
|
|
.endif
|
|
|
|
.if defined(_POSTMKINCLUDED) && !defined(Linux_RPM_Post_Include)
|
|
|
|
Linux_RPM_Post_Include= bsd.linux-rpm.mk
|
|
|
|
LINUX_DIST?= fedora
|
|
LINUX_DIST_VER?= 3
|
|
|
|
. if defined(LINUX_DIST)
|
|
DIST_SUBDIR?= rpm/${LINUX_RPM_ARCH}/${LINUX_DIST}/${LINUX_DIST_VER}
|
|
|
|
. if ${LINUX_DIST} == "fedora"
|
|
# we do not want to define MASTER_SITES and MASTER_SITE_* if they are already defined
|
|
# ex.: MASTER_SITES=file:///...
|
|
. ifndef MASTER_SITES
|
|
MASTER_SITES= ${MASTER_SITE_FEDORA_LINUX}
|
|
. if ${LINUX_DIST_VER} == 8
|
|
. if (${LINUX_OSRELEASE} != "2.6.16") && defined(PACKAGE_BUILDING)
|
|
IGNORE= packages should be built with compat.linux.osrelease=2.6.16
|
|
. endif
|
|
MASTER_SITE_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/${LINUX_RPM_ARCH}/os/Packages \
|
|
../updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH}.newkey
|
|
MASTER_SITE_SRC_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/source/SRPMS \
|
|
../updates/${LINUX_DIST_VER}/SRPMS.newkey
|
|
. else
|
|
MASTER_SITE_SUBDIR?= ${LINUX_DIST_VER}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \
|
|
updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH}
|
|
MASTER_SITE_SRC_SUBDIR?= ${LINUX_DIST_VER}/SRPMS \
|
|
updates/${LINUX_DIST_VER}/SRPMS
|
|
. endif
|
|
. endif
|
|
. else
|
|
IGNORE= unknown LINUX_DIST in port Makefile
|
|
. endif
|
|
. endif
|
|
PKGNAMEPREFIX?= linux-
|
|
|
|
# DISTFILES and SRC_DISTFILES assume that there is only one bindist
|
|
# and one src file.
|
|
# Please, define them n the Makefile of the port in case this assumption
|
|
# is not true.
|
|
|
|
DISTFILES?= ${DISTNAME}${EXTRACT_SUFX}
|
|
BIN_DISTFILES:= ${DISTFILES}
|
|
SRC_DISTFILES?= ${DISTNAME}${SRC_SUFX}
|
|
EXTRACT_ONLY?= ${BIN_DISTFILES}
|
|
|
|
. if defined(PACKAGE_BUILDING)
|
|
DISTFILES+= ${SRC_DISTFILES}
|
|
MASTER_SITE_SUBDIR+= ${MASTER_SITE_SRC_SUBDIR}
|
|
ALWAYS_KEEP_DISTFILES= yes
|
|
. endif
|
|
|
|
EXTRACT_DEPENDS+= ${RPM2CPIO}:${PORTSDIR}/archivers/rpm
|
|
|
|
EXTRACT_CMD?= ${RPM2CPIO}
|
|
EXTRACT_BEFORE_ARGS?=
|
|
EXTRACT_AFTER_ARGS?= | ${CPIO} -id --quiet
|
|
|
|
MD5_FILE?= ${MASTERDIR}/distinfo.${LINUX_RPM_ARCH}
|
|
|
|
BRANDELF_DIRS?=
|
|
BRANDELF_FILES?=
|
|
|
|
# For ports that define PORTDOCS, be sure not to install
|
|
# documentation if NOPORTDOCS is defined
|
|
. if defined(PORTDOCS) && defined(NOPORTDOCS)
|
|
pre-patch: linux-rpm-clean-portdocs
|
|
|
|
. if !target(linux-rpm-clean-portdocs)
|
|
linux-rpm-clean-portdocs:
|
|
. for x in ${PORTDOCS}
|
|
@${RM} -f ${WRKDIR}/${DOCSDIR_REL}/${x}
|
|
. endfor
|
|
@${RMDIR} ${WRKDIR}/${DOCSDIR_REL}
|
|
. endif
|
|
. endif
|
|
|
|
. if defined(AUTOMATIC_PLIST)
|
|
|
|
. if ${USE_LINUX} == "fc4" || ${USE_LINUX:L} == "yes"
|
|
_LINUX_BASE_SUFFIX= fc4
|
|
. elif ${USE_LINUX} == "fc6"
|
|
_LINUX_BASE_SUFFIX= fc6
|
|
. elif ${USE_LINUX} == "f7"
|
|
_LINUX_BASE_SUFFIX= f7
|
|
. elif ${USE_LINUX} == "f8"
|
|
_LINUX_BASE_SUFFIX= f8
|
|
. else
|
|
# other linux_base ports do not provide a pkg-plist file
|
|
IGNORE= uses AUTOMATIC_PLIST with an unsupported USE_LINUX, \"${USE_LINUX}\". Supported values are \"yes\", \"fc4\", \"fc6\", \"f7\" and \"f8\"
|
|
. endif
|
|
|
|
PLIST?= ${WRKDIR}/.PLIST.linux-rpm
|
|
|
|
pre-install: linux-rpm-generate-plist
|
|
|
|
. if !target(linux-rpm-generate-plist)
|
|
linux-rpm-generate-plist:
|
|
@cd ${WRKSRC} && \
|
|
${FIND} * ! -type d | ${SORT} > ${PLIST} && \
|
|
${FIND} * -type d | ${SORT} | ${SED} -e 's|^|@dirrm |' > ${PLIST}.dirs
|
|
@${GREP} '^@dirrm' ${PORTSDIR}/emulators/linux_base-${_LINUX_BASE_SUFFIX}/pkg-plist | ${SED} 's:^@dirrmtry:@dirrm:g' | ${SORT} > ${PLIST}.shared-dirs
|
|
@${COMM} -1 -3 ${PLIST}.shared-dirs ${PLIST}.dirs | ${SORT} -r >> ${PLIST}
|
|
. endif
|
|
. endif
|
|
|
|
. if !target(do-install)
|
|
do-install:
|
|
. if ${BRANDELF_DIRS}
|
|
@cd ${WRKSRC} && ${FIND} ${BRANDELF_DIRS} -type f -print0 \
|
|
| ${XARGS} -0 ${FILE} | ${GREP} ELF | ${CUT} -d : -f 1 \
|
|
| ${XARGS} ${BRANDELF} -t Linux
|
|
. endif
|
|
. if ${BRANDELF_FILES}
|
|
@cd ${WRKSRC} && ${BRANDELF} -t Linux ${BRANDELF_FILES}
|
|
. endif
|
|
cd ${WRKSRC} && ${FIND} * -type d -exec ${MKDIR} "${PREFIX}/{}" \;
|
|
cd ${WRKSRC} && ${FIND} * ! -type d | ${CPIO} -pm -R root:wheel ${PREFIX}
|
|
. endif
|
|
|
|
. if !target(new-plist)
|
|
new-plist: build
|
|
@${RM} -f ${PLIST}.new
|
|
@cd ${WRKSRC} && \
|
|
${FIND} * ! -type d | ${SORT} > ${PLIST}.new; \
|
|
${FIND} -d * -type d | ${SED} -e 's|^|@dirrm |' >> ${PLIST}.new; \
|
|
done
|
|
. endif
|
|
|
|
.endif
|