diff options
Diffstat (limited to 'emulators/linux_base-c6/Makefile')
| -rw-r--r-- | emulators/linux_base-c6/Makefile | 316 |
1 files changed, 101 insertions, 215 deletions
diff --git a/emulators/linux_base-c6/Makefile b/emulators/linux_base-c6/Makefile index a1e30df4d14a..70bfd4887134 100644 --- a/emulators/linux_base-c6/Makefile +++ b/emulators/linux_base-c6/Makefile @@ -2,111 +2,93 @@ # $FreeBSD$ PORTNAME= c6 -PORTVERSION= 6.8 +PORTVERSION= ${LINUX_DIST_VER} +PORTREVISION= 1 CATEGORIES= emulators linux -MASTER_SITES= CENTOS_LINUX CENTOS_LINUX_UPDATES -MASTER_SITE_SUBDIR= centos/${LINUX_DIST_VER}/os/${LINUX_REPO_ARCH}/Packages/\ - centos/${LINUX_DIST_VER}/updates/${LINUX_REPO_ARCH}/Packages/ - PKGNAMEPREFIX= linux_base- -DISTFILES= ${PRE_BIN_DISTFILES} ${BIN_DISTFILES} ${SRC_DISTFILES} -EXTRACT_ONLY= ${BIN_DISTFILES} MAINTAINER= emulation@FreeBSD.org COMMENT= Base set of packages needed in Linux mode for i386/amd64 (Linux CentOS 6) -LINUX_DIST= centos -LINUX_DIST_VER= ${PORTVERSION} -DIST_SUBDIR= rpm/${LINUX_RPM_ARCH}/${LINUX_DIST}/${LINUX_DIST_VER} - -# these get extracted from pre-extract, then some directory permissions -# get fixed up -PRE_BIN_DISTFILES= filesystem-2.4.30-3.el6.${LINUX_RPM_ARCH}.rpm \ - setup-2.8.14-20.el6_4.1.noarch.rpm - BIN_DISTFILES= basesystem-10.0-4.el6.noarch.rpm \ - bash-4.1.2-40.el6.${LINUX_RPM_ARCH}.rpm \ - bzip2-1.0.5-7.el6_0.${LINUX_RPM_ARCH}.rpm \ - centos-release-6-8.el6.centos.12.3.${LINUX_RPM_ARCH}.rpm \ - coreutils-8.4-43.el6.${LINUX_RPM_ARCH}.rpm \ - e2fsprogs-1.41.12-22.el6.${LINUX_RPM_ARCH}.rpm \ - elfutils-0.164-2.el6.${LINUX_RPM_ARCH}.rpm \ - findutils-4.4.2-9.el6.${LINUX_RPM_ARCH}.rpm \ - glibc-common-2.12-1.192.el6.${LINUX_RPM_ARCH}.rpm \ - grep-2.20-3.el6_7.1.${LINUX_RPM_ARCH}.rpm \ - info-4.13a-8.el6.${LINUX_RPM_ARCH}.rpm \ - keyutils-1.4-5.el6.${LINUX_RPM_ARCH}.rpm \ - less-436-13.el6.${LINUX_RPM_ARCH}.rpm \ - ncurses-5.7-4.20090207.el6.${LINUX_RPM_ARCH}.rpm \ - sed-4.2.1-10.el6.${LINUX_RPM_ARCH}.rpm \ - setserial-2.17-25.el6.${LINUX_RPM_ARCH}.rpm \ - which-2.19-6.el6.${LINUX_RPM_ARCH}.rpm \ - compat-libstdc++-296-2.96-144.el6.i686.rpm -LIB_DISTFILES= bzip2-libs-1.0.5-7.el6_0.${LINUX_RPM_ARCH}.rpm \ - compat-db43-4.3.29-15.el6.${LINUX_RPM_ARCH}.rpm \ - compat-libstdc++-33-3.2.3-69.el6.${LINUX_RPM_ARCH}.rpm \ - db4-4.7.25-20.el6_7.${LINUX_RPM_ARCH}.rpm \ - e2fsprogs-libs-1.41.12-22.el6.${LINUX_RPM_ARCH}.rpm \ - freetype-2.3.11-17.el6.${LINUX_RPM_ARCH}.rpm \ - gamin-0.1.10-9.el6.${LINUX_RPM_ARCH}.rpm \ - gdbm-1.8.0-39.el6.${LINUX_RPM_ARCH}.rpm \ - glib2-2.28.8-5.el6.${LINUX_RPM_ARCH}.rpm \ - glibc-2.12-1.192.el6.${LINUX_RPM_ARCH}.rpm \ - gmp-4.3.1-10.el6.${LINUX_RPM_ARCH}.rpm \ - keyutils-libs-1.4-5.el6.${LINUX_RPM_ARCH}.rpm \ - krb5-libs-1.10.3-57.el6.${LINUX_RPM_ARCH}.rpm \ - libacl-2.2.49-6.el6.${LINUX_RPM_ARCH}.rpm \ - libattr-2.4.44-7.el6.${LINUX_RPM_ARCH}.rpm \ - libblkid-2.17.2-12.24.el6.${LINUX_RPM_ARCH}.rpm \ - libcap-2.16-5.5.el6.${LINUX_RPM_ARCH}.rpm \ - libcom_err-1.41.12-22.el6.${LINUX_RPM_ARCH}.rpm \ - libgcc-4.4.7-17.el6.${LINUX_RPM_ARCH}.rpm \ - libidn-1.18-2.el6.${LINUX_RPM_ARCH}.rpm \ - libselinux-2.0.94-7.el6.${LINUX_RPM_ARCH}.rpm \ - libsepol-2.0.41-4.el6.${LINUX_RPM_ARCH}.rpm \ - libstdc++-4.4.7-17.el6.${LINUX_RPM_ARCH}.rpm \ - libuuid-2.17.2-12.24.el6.${LINUX_RPM_ARCH}.rpm \ - ncurses-libs-5.7-4.20090207.el6.${LINUX_RPM_ARCH}.rpm \ - pcre-7.8-7.el6.${LINUX_RPM_ARCH}.rpm \ - popt-1.13-7.el6.${LINUX_RPM_ARCH}.rpm \ - readline-6.0-4.el6.${LINUX_RPM_ARCH}.rpm \ - redhat-lsb-core-4.0-7.el6.centos.${LINUX_RPM_ARCH}.rpm \ - slang-2.2.1-1.el6.${LINUX_RPM_ARCH}.rpm \ - util-linux-ng-2.17.2-12.24.el6.${LINUX_RPM_ARCH}.rpm \ - zlib-1.2.3-29.el6.${LINUX_RPM_ARCH}.rpm - -BIN_DISTFILES+= ${LIB_DISTFILES} - - -.if defined(PACKAGE_BUILDING) -SRC_DISTFILES= basesystem-10.0-4.el6.src.rpm:SOURCE \ + bash-4.1.2-40.el6${EXTRACT_SUFX} \ + bzip2-1.0.5-7.el6_0${EXTRACT_SUFX} \ + centos-release-6-8.el6.centos.12.3${EXTRACT_SUFX} \ + compat-libstdc++-296-2.96-144.el6.i686.rpm \ + coreutils-8.4-43.el6${EXTRACT_SUFX} \ + e2fsprogs-1.41.12-22.el6${EXTRACT_SUFX} \ + elfutils-0.164-2.el6${EXTRACT_SUFX} \ + findutils-4.4.2-9.el6${EXTRACT_SUFX} \ + glibc-common-2.12-1.192.el6${EXTRACT_SUFX} \ + grep-2.20-3.el6_7.1${EXTRACT_SUFX} \ + info-4.13a-8.el6${EXTRACT_SUFX} \ + keyutils-1.4-5.el6${EXTRACT_SUFX} \ + less-436-13.el6${EXTRACT_SUFX} \ + ncurses-5.7-4.20090207.el6${EXTRACT_SUFX} \ + sed-4.2.1-10.el6${EXTRACT_SUFX} \ + setserial-2.17-25.el6${EXTRACT_SUFX} \ + setup-2.8.14-20.el6_4.1.noarch.rpm \ + which-2.19-6.el6${EXTRACT_SUFX} \ + filesystem-2.4.30-3.el6${EXTRACT_SUFX} +LIB_DISTFILES= bzip2-libs-1.0.5-7.el6_0${EXTRACT_SUFX} \ + compat-db43-4.3.29-15.el6${EXTRACT_SUFX} \ + compat-libstdc++-33-3.2.3-69.el6${EXTRACT_SUFX} \ + db4-4.7.25-20.el6_7${EXTRACT_SUFX} \ + e2fsprogs-libs-1.41.12-22.el6${EXTRACT_SUFX} \ + freetype-2.3.11-17.el6${EXTRACT_SUFX} \ + gamin-0.1.10-9.el6${EXTRACT_SUFX} \ + gdbm-1.8.0-39.el6${EXTRACT_SUFX} \ + glib2-2.28.8-5.el6${EXTRACT_SUFX} \ + glibc-2.12-1.192.el6${EXTRACT_SUFX} \ + gmp-4.3.1-10.el6${EXTRACT_SUFX} \ + keyutils-libs-1.4-5.el6${EXTRACT_SUFX} \ + krb5-libs-1.10.3-57.el6${EXTRACT_SUFX} \ + libacl-2.2.49-6.el6${EXTRACT_SUFX} \ + libattr-2.4.44-7.el6${EXTRACT_SUFX} \ + libblkid-2.17.2-12.24.el6${EXTRACT_SUFX} \ + libcap-2.16-5.5.el6${EXTRACT_SUFX} \ + libcom_err-1.41.12-22.el6${EXTRACT_SUFX} \ + libgcc-4.4.7-17.el6${EXTRACT_SUFX} \ + libidn-1.18-2.el6${EXTRACT_SUFX} \ + libselinux-2.0.94-7.el6${EXTRACT_SUFX} \ + libsepol-2.0.41-4.el6${EXTRACT_SUFX} \ + libstdc++-4.4.7-17.el6${EXTRACT_SUFX} \ + libuuid-2.17.2-12.24.el6${EXTRACT_SUFX} \ + ncurses-libs-5.7-4.20090207.el6${EXTRACT_SUFX} \ + pcre-7.8-7.el6${EXTRACT_SUFX} \ + popt-1.13-7.el6${EXTRACT_SUFX} \ + readline-6.0-4.el6${EXTRACT_SUFX} \ + redhat-lsb-core-4.0-7.el6.centos${EXTRACT_SUFX} \ + slang-2.2.1-1.el6${EXTRACT_SUFX} \ + util-linux-ng-2.17.2-12.24.el6${EXTRACT_SUFX} \ + zlib-1.2.3-29.el6${EXTRACT_SUFX} +SRC_DISTFILES= acl-2.2.49-6.el6.src.rpm:SOURCE \ + attr-2.4.44-7.el6.src.rpm:SOURCE \ + basesystem-10.0-4.el6.src.rpm:SOURCE \ bash-4.1.2-40.el6.src.rpm:SOURCE \ bzip2-1.0.5-7.el6_0.src.rpm:SOURCE \ - coreutils-8.4-43.el6.src.rpm:SOURCE \ + centos-release-6-8.el6.centos.12.3.src.rpm:SOURCE \ compat-db-4.6.21-15.el6.src.rpm:SOURCE \ compat-gcc-296-2.96-144.el6.src.rpm:SOURCE \ compat-gcc-32-3.2.3-69.el6.src.rpm:SOURCE \ + coreutils-8.4-43.el6.src.rpm:SOURCE \ db4-4.7.25-20.el6_7.src.rpm:SOURCE \ e2fsprogs-1.41.12-22.el6.src.rpm:SOURCE \ elfutils-0.164-2.el6.src.rpm:SOURCE \ - centos-release-6-8.el6.centos.12.3.src.rpm:SOURCE \ filesystem-2.4.30-3.el6.src.rpm:SOURCE \ findutils-4.4.2-9.el6.src.rpm:SOURCE \ freetype-2.3.11-17.el6.src.rpm:SOURCE \ gamin-0.1.10-9.el6.src.rpm:SOURCE \ + gcc-4.4.7-17.el6.src.rpm:SOURCE \ gdbm-1.8.0-39.el6.src.rpm:SOURCE \ glib2-2.28.8-5.el6.src.rpm:SOURCE \ glibc-2.12-1.192.el6.src.rpm:SOURCE \ gmp-4.3.1-10.el6.src.rpm:SOURCE \ grep-2.20-3.el6_7.1.src.rpm:SOURCE \ - texinfo-4.13a-8.el6.src.rpm:SOURCE \ keyutils-1.4-5.el6.src.rpm:SOURCE \ krb5-1.10.3-57.el6.src.rpm:SOURCE \ less-436-13.el6.src.rpm:SOURCE \ - acl-2.2.49-6.el6.src.rpm:SOURCE \ - attr-2.4.44-7.el6.src.rpm:SOURCE \ libcap-2.16-5.5.el6.src.rpm:SOURCE \ - gcc-4.4.7-17.el6.src.rpm:SOURCE \ libidn-1.18-2.el6.src.rpm:SOURCE \ libselinux-2.0.94-7.el6.src.rpm:SOURCE \ libsepol-2.0.41-4.el6.src.rpm:SOURCE \ @@ -119,158 +101,62 @@ SRC_DISTFILES= basesystem-10.0-4.el6.src.rpm:SOURCE \ setserial-2.17-25.el6.src.rpm:SOURCE \ setup-2.8.14-20.el6_4.1.src.rpm:SOURCE \ slang-2.2.1-1.el6.src.rpm:SOURCE \ + texinfo-4.13a-8.el6.src.rpm:SOURCE \ util-linux-ng-2.17.2-12.24.el6.src.rpm:SOURCE \ which-2.19-6.el6.src.rpm:SOURCE \ zlib-1.2.3-29.el6.src.rpm:SOURCE -ALWAYS_KEEP_DISTFILES= yes -.endif - -CONFLICTS= linux_base-gentoo* linux_base-f10-[0-9]* linux-glib2-* - -ONLY_FOR_ARCHS= i386 amd64 -. if defined(OVERRIDE_LINUX_BASE_PORT) && ${OVERRIDE_LINUX_BASE_PORT} == "c6_64" -PKGNAMESUFFIX= _64 -LINUX_RPM_ARCH= x86_64 -LINUX_REPO_ARCH= x86_64 +CONFLICTS= linux_base-gentoo* linux_base-f10-[0-9]* linux-glib2-* +PLIST_SUB= LINUXBASE=${LINUXBASE} SYSCTLMIB=${SYSCTLMIB} +USES= linux:c6 +USE_LINUX= # empty +USE_LINUX_RPM= yes -# hack to add i686 distfiles - -_32BIT_LINUX_RPM_ARCH= i686 -_32BIT_DISTFILES= ${LIB_DISTFILES:S/${LINUX_RPM_ARCH}/${_32BIT_LINUX_RPM_ARCH}/g} -. if ${_32BIT_DISTFILES} != ${LIB_DISTFILES} -# they could be the same if above regexp doesn't match -BIN_DISTFILES+= ${_32BIT_DISTFILES} -. endif - - -. else -LINUX_RPM_ARCH= i686 -LINUX_REPO_ARCH= i386 -. endif - - -USE_LINUX_PREFIX= yes -NO_WRKSUBDIR= yes -DISTINFO_FILE?= ${MASTERDIR}/distinfo.${LINUX_REPO_ARCH} -PLIST= ${PKGDIR}/pkg-plist.${LINUX_REPO_ARCH} -PLIST_SUB= GLIBCVER="2.12" LINUXBASE=${LINUXBASE} -USES= shebangfix -SHEBANG_FILES= bin/redhat_lsb_init sbin/mount.tmpfs -# bash scripts need to work in chroot /compat/linux, so use env instead. -bash_CMD= /usr/bin/env bash +REMOVE_DIRS= boot home media root tmp usr/lib/pm-utils usr/lib64/pm-utils \ + usr/local var/log var/run var/tmp +REMOVE_FILES= bin/df bin/su etc/exports etc/group etc/gshadow etc/motd \ + etc/passwd etc/printcap etc/protocols etc/services etc/shadow \ + usr/tmp .include <bsd.port.pre.mk> -.if !defined(PACKAGE_BUILDING) || (defined(PACKAGE_BUILDING) && !defined(LINUX_OSRELEASE) ) -LINUX_OSRELEASE!= ${ECHO_CMD} `${SYSCTL} -n compat.linux.osrelease 2>/dev/null` -.endif - -.if ${LINUX_OSRELEASE}x == "x" -IGNORE= linuxulator is not (kld)loaded -.elif ${LINUX_OSRELEASE} == "2.6.16" -IGNORE= compat.linux.osrelease: ${LINUX_OSRELEASE} is not supported, please use 2.6.18, BEWARE this is highly experimental -.endif - -REMOVE_DIRS= boot dev etc/fonts home initrd media root tmp var/log var/run var/tmp \ - usr/local usr/tmp -REMOVE_FILES= bin/df bin/su etc/exports etc/group etc/localtime \ - etc/motd etc/passwd etc/printcap etc/services \ - etc/protocols -ADD_DIRS= usr/X11R6/share usr/X11R6/man usr/X11R6/lib/tls \ - usr/X11R6/include usr/X11R6/bin -ADD_FILES= #empty - -.if (${MACHINE_ARCH} == "amd64") -FALLBACK_ELF_MIB= kern.elf32.fallback_brand +.if ${LINUX_ARCH} == x86_64 && ${OPSYS} == FreeBSD && ${OSVERSION} >= 11000105 +SYSCTLMIB= kern.features.linux64 .else -FALLBACK_ELF_MIB= kern.fallback_elf_brand +SYSCTLMIB= compat.linux.osrelease .endif -.if (${ARCH} == "amd64") -. if defined(OVERRIDE_LINUX_BASE_PORT) && ${OVERRIDE_LINUX_BASE_PORT} != "c6_64" -ARCH= i386 -. endif +post-extract: +# Fix permissions so a regular user can run make clean. +.if ${LINUX_ARCH} == x86_64 + @${CHMOD} 755 ${WRKSRC}/usr/lib64/pm-utils +.else + @${CHMOD} 755 ${WRKSRC}/usr/lib/pm-utils .endif -pre-extract: - @for file in ${PRE_BIN_DISTFILES}; do \ - if ! (cd ${WRKSRC} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/$$file ${EXTRACT_AFTER_ARGS});\ - then \ - exit 1; \ - fi; \ - done - # now fix up broken permissions -. if defined(OVERRIDE_LINUX_BASE_PORT) && ${OVERRIDE_LINUX_BASE_PORT} == "c6_64" - @${CHMOD} -R u+rwX ${WRKSRC}/lib64 ${WRKSRC}/usr/lib64 -. endif - @${CHMOD} -R u+rwX ${WRKSRC}/bin ${WRKSRC}/lib ${WRKSRC}/sbin ${WRKSRC}/usr/bin ${WRKSRC}/usr/lib ${WRKSRC}/usr/sbin - @${CHMOD} 400 ${WRKSRC}/etc/*shadow - -do-build: - @for D in ${REMOVE_DIRS}; do \ - ${RM} -rf ${WRKSRC}/$$D; \ - done - @for F in ${REMOVE_FILES}; do \ - ${RM} -f ${WRKSRC}/$$F; \ - done - @for F in ${ADD_DIRS}; do \ - ${MKDIR} ${WRKSRC}/$$F; \ - done - @for F in ${ADD_FILES}; do \ - ${TOUCH} ${WRKSRC}/$$F; \ - done -# -# Create a good ld.so.conf and touch ld.so.cache -# - @${ECHO_CMD} -e '/lib\n/usr/lib\n/usr/lib64\n${X11BASE}/lib' >> \ - ${WRKSRC}/etc/ld.so.conf - @${TOUCH} ${WRKSRC}/etc/ld.so.cache -# -# Create yp.conf as a hint to NIS users and make sure there's a -# mtab in etc, albeit an empty one. This is needed in a couple of -# cases. Most notably staroffice6. If yp.conf exists install only -# yp.conf.sample -# - @${INSTALL} ${COPY} -m 644 ${FILESDIR}/yp.conf.sample ${WRKSRC}/etc - @${TOUCH} ${WRKSRC}/etc/mtab -# -# If ${PREFIX}/etc/krb5.conf exists, don't touch it -# - @${MV} ${WRKSRC}/etc/krb5.conf ${WRKSRC}/etc/krb5.conf.sample - - @${FIND} ${WRKSRC}/bin ${WRKSRC}/sbin/ ${WRKSRC}/usr/bin \ - ${WRKSRC}/usr/sbin -type f -print0 | ${XARGS} -0 ${FILE} \ - | ${GREP} ELF | ${CUT} -d : -f 1 \ - | ${XARGS} ${BRANDELF} -t Linux -. if defined(OVERRIDE_LINUX_BASE_PORT) && ${OVERRIDE_LINUX_BASE_PORT} == "c6_64" - @${BRANDELF} -t Linux ${WRKSRC}/lib64/ld-2.12.so -. else +post-patch: + @${RM} -r ${REMOVE_DIRS:S|^|${WRKSRC}/|} + @${RM} ${REMOVE_FILES:S|^|${WRKSRC}/|} + @${LN} -sfh centos-release-6 ${WRKSRC}/usr/share/doc/redhat-release @${BRANDELF} -t Linux ${WRKSRC}/lib/ld-2.12.so -. endif - -# Install locales - @${MV} ${WRKSRC}/usr/lib/locale/locale-archive.tmpl \ - ${WRKSRC}/usr/lib/locale/locale-archive - -do-install: -# -# Do install without using linux rpm system -# - @cd ${WRKSRC} && ${FIND} * -type d -exec ${MKDIR} "${STAGEDIR}${PREFIX}/{}" \; - @cd ${WRKSRC} && ${FIND} * ! -type d \ - | ${CPIO} -pm -R root:wheel ${STAGEDIR}${PREFIX} +.if ${LINUX_ARCH} == x86_64 + @${BRANDELF} -t Linux ${WRKSRC}/lib64/ld-2.12.so +.endif - @${LN} -sf /var/tmp ${STAGEDIR}${PREFIX}/usr/tmp - @${LN} -sf ../usr/bin/[ ${STAGEDIR}${PREFIX}/bin/[ - @${LN} -sf ../usr/bin/expr ${STAGEDIR}${PREFIX}/bin/expr - @${LN} -sf ../usr/bin/test ${STAGEDIR}${PREFIX}/bin/test - @${LN} -sf ../usr/bin/uuidgen ${STAGEDIR}${PREFIX}/bin/uuidgen - @${LN} -sf ../../lib/librt.so.1 ${STAGEDIR}${PREFIX}/usr/lib/librt.so.1 - @${CHMOD} 755 ${STAGEDIR}${PREFIX}/var/lock ${STAGEDIR}${PREFIX}/var/spool/mail -# -# Let some linux applications (e.g. print/acroread8) print with default settings -# - @${INSTALL_SCRIPT} ${FILESDIR}/lp ${STAGEDIR}${PREFIX}/usr/bin +post-install: + ${TOUCH} ${STAGEDIR}${PREFIX}/etc/mtab + ${MV} ${STAGEDIR}${PREFIX}/etc/krb5.conf \ + ${STAGEDIR}${PREFIX}/etc/krb5.conf.sample + ${MV} ${STAGEDIR}${PREFIX}/etc/nsswitch.conf \ + ${STAGEDIR}${PREFIX}/etc/nsswitch.conf.sample + ${MV} ${STAGEDIR}${PREFIX}/usr/lib/locale/locale-archive.tmpl \ + ${STAGEDIR}${PREFIX}/usr/lib/locale/locale-archive + ${LN} -sf /tmp ${STAGEDIR}${PREFIX}/dev/shm + ${LN} -sf /var/tmp ${STAGEDIR}${PREFIX}/usr/tmp + ${LN} -sf ../usr/bin/[ ${STAGEDIR}${PREFIX}/bin/[ + ${LN} -sf ../usr/bin/expr ${STAGEDIR}${PREFIX}/bin/expr + ${LN} -sf ../usr/bin/test ${STAGEDIR}${PREFIX}/bin/test + ${LN} -sf ../usr/bin/uuidgen ${STAGEDIR}${PREFIX}/bin/uuidgen + ${LN} -sf ../../lib/librt.so.1 ${STAGEDIR}${PREFIX}/usr/lib/librt.so.1 .include <bsd.port.post.mk> |
