1PORTNAME= rl9 2PORTVERSION= ${LINUX_DIST_VER} 3PORTREVISION= 4 4CATEGORIES= emulators linux 5PKGNAMEPREFIX= linux_base- 6EXTRACT_ONLY= ${DISTFILES:N*${SRC_SUFX}*:Nf/filesystem-*:C/:[^:]+$//} 7 8MAINTAINER= ports@MidnightBSD.org 9COMMENT= Base set of packages needed in Linux mode (Rocky Linux ${LINUX_DIST_VER}) 10 11LICENSE= bsd2 12 13CONFLICTS= linux_base-c7-* 14 15SKIP_FAKE_ALL= yes 16 17USES= linux:rl9 18USE_LINUX= # empty 19USE_LINUX_RPM= yes 20WANT_LINUX32= yes 21PLIST= ${PKGDIR}/pkg-plist.${ARCH} 22 23# lib64/gconv/ stuff that is loaded dynamically and has rpath 24NO_SHLIB_REQUIRES_GLOB= libCNS.so* libGB.so* libISOIR165.so* \ 25 libJIS.so* libJISX0213.so* libKSC.so* 26 27.include "${.CURDIR}/Makefile.version" 28 29BIN_DISTNAMES= bash-${bash_ver} \ 30 bzip2-${bzip2_ver} \ 31 coreutils-${coreutils_ver} \ 32 diffutils-${diffutils_ver} \ 33 e2fsprogs-${e2fsprogs_ver} \ 34 filesystem-${filesystem_ver} \ 35 findutils-${findutils_ver} \ 36 fuse-${fuse_ver} \ 37 gawk-${gawk_ver} \ 38 glibc-all-langpacks-${glibc_ver} \ 39 glibc-common-${glibc_ver} \ 40 grep-${grep_ver} \ 41 info-${info_ver} \ 42 keyutils-${keyutils_ver} \ 43 less-${less_ver} \ 44 ncurses-${ncurses_ver} \ 45 sed-${sed_ver} \ 46 setserial-${setserial_ver} \ 47 sqlite-${sqlite_ver} \ 48 util-linux-${util_ver} \ 49 util-linux-core-${util_ver} \ 50 which-${which_ver} 51LIB_DISTNAMES= bzip2-libs-${bzip2_ver} \ 52 e2fsprogs-libs-${e2fsprogs_ver} \ 53 fuse-libs-${fuse_ver} \ 54 gdbm-libs-${gdbm_ver} \ 55 geocode-glib-${geocode-glib_ver} \ 56 glib-networking-${glib-networking_ver} \ 57 glib2-${glib2_ver} \ 58 glibc-${glibc_ver} \ 59 glibc-gconv-extra-${glibc_ver} \ 60 gmp-${gmp_ver} \ 61 json-glib-${json-glib_ver} \ 62 keyutils-libs-${keyutils_ver} \ 63 krb5-libs-${krb5_ver} \ 64 libacl-${libacl_ver} \ 65 libattr-${libattr_ver} \ 66 libblkid-${util_ver} \ 67 libbrotli-${brotli_ver} \ 68 libcap-${libcap_ver} \ 69 libcom_err-${e2fsprogs_ver} \ 70 libdatrie-${libdatrie_ver} \ 71 libdb-${libdb_ver} \ 72 libedit-${libedit_ver} \ 73 libevdev-${libevdev_ver} \ 74 libfdisk-${util_ver} \ 75 libffi-${libffi_ver} \ 76 libgcc-${gcc_ver} \ 77 libgudev-${libgudev_ver} \ 78 libidn2-${libidn2_ver} \ 79 libmount-${util_ver} \ 80 libnsl-${glibc_ver} \ 81 libproxy-${libproxy_ver} \ 82 libpsl-${libpsl_ver} \ 83 libselinux-${selinux_ver} \ 84 libsepol-${sepol_ver} \ 85 libsigsegv-${libsigsegv_ver} \ 86 libsmartcols-${util_ver} \ 87 libsoup-${libsoup_ver} \ 88 libstdc++-${gcc_ver} \ 89 libunistring-${libunistring_ver} \ 90 libuuid-${util_ver} \ 91 libverto-${libverto_ver} \ 92 libxcrypt-${libxcrypt_ver} \ 93 libzstd-${zstd_ver} \ 94 mpfr-${mpfr_ver} \ 95 mtdev-${mtdev_ver} \ 96 ncurses-libs-${ncurses_ver} \ 97 openssl-libs-${openssl_ver} \ 98 pcre-${pcre_ver} \ 99 pcre-utf16-${pcre_ver} \ 100 pcre-utf32-${pcre_ver} \ 101 pcre2-${pcre2_ver} \ 102 pcre2-utf16-${pcre2_ver} \ 103 pcre2-utf32-${pcre2_ver} \ 104 popt-${popt_ver} \ 105 readline-${readline_ver} \ 106 slang-${slang_ver} \ 107 sqlite-libs-${sqlite_ver} \ 108 xz-libs-${xz_ver} \ 109 zlib-${zlib_ver} 110 111SHARE_DISTNAMES=basesystem-${basesystem_ver} \ 112 ncurses-base-${ncurses_ver} \ 113 rocky-release-${rocky-release_ver} \ 114 setup-${setup_ver} 115SRC_DISTFILES= acl-${libacl_ver}${SRC_SUFX}:SOURCE \ 116 attr-${libattr_ver}${SRC_SUFX}:SOURCE \ 117 basesystem-${basesystem_ver}${SRC_SUFX}:SOURCE \ 118 bash-${bash_ver}${SRC_SUFX}:SOURCE \ 119 bzip2-${bzip2_ver}${SRC_SUFX}:SOURCE \ 120 coreutils-${coreutils_ver}${SRC_SUFX}:SOURCE \ 121 diffutils-${diffutils_ver}${SRC_SUFX}:SOURCE \ 122 e2fsprogs-${e2fsprogs_ver}${SRC_SUFX}:SOURCE \ 123 filesystem-${filesystem_ver}${SRC_SUFX}:SOURCE \ 124 findutils-${findutils_ver}${SRC_SUFX}:SOURCE \ 125 fuse-${fuse_ver}${SRC_SUFX}:SOURCE \ 126 gawk-${gawk_ver}${SRC_SUFX}:SOURCE \ 127 gcc-${gcc_ver}${SRC_SUFX}:SOURCE \ 128 gdbm-${gdbm_ver}${SRC_SUFX}:SOURCE \ 129 geocode-glib-${geocode-glib_ver}${SRC_SUFX}:SOURCE \ 130 glib-networking-${glib-networking_ver}${SRC_SUFX}:SOURCE \ 131 glib2-${glib2_ver}${SRC_SUFX}:SOURCE \ 132 glibc-${glibc_ver}${SRC_SUFX}:SOURCE \ 133 gmp-${gmp_ver}${SRC_SUFX}:SOURCE \ 134 grep-${grep_ver}${SRC_SUFX}:SOURCE \ 135 json-glib-${json-glib_ver}${SRC_SUFX}:SOURCE \ 136 keyutils-${keyutils_ver}${SRC_SUFX}:SOURCE \ 137 krb5-${krb5_ver}${SRC_SUFX}:SOURCE \ 138 less-${less_ver}${SRC_SUFX}:SOURCE \ 139 libcap-${libcap_ver}${SRC_SUFX}:SOURCE \ 140 libdatrie-${libdatrie_ver}${SRC_SUFX}:SOURCE \ 141 libdb-${libdb_ver}${SRC_SUFX}:SOURCE \ 142 libedit-${libedit_ver}${SRC_SUFX}:SOURCE \ 143 libevdev-${libevdev_ver}${SRC_SUFX}:SOURCE \ 144 libffi-${libffi_ver}${SRC_SUFX}:SOURCE \ 145 libgudev-${libgudev_ver}${SRC_SUFX}:SOURCE \ 146 libproxy-${libproxy_ver}${SRC_SUFX}:SOURCE \ 147 libselinux-${selinux_ver}${SRC_SUFX}:SOURCE \ 148 libsepol-${sepol_ver}${SRC_SUFX}:SOURCE \ 149 libsigsegv-${libsigsegv_ver}${SRC_SUFX}:SOURCE \ 150 libsoup-${libsoup_ver}${SRC_SUFX}:SOURCE \ 151 libverto-${libverto_ver}${SRC_SUFX}:SOURCE \ 152 libxcrypt-${libxcrypt_ver}${SRC_SUFX}:SOURCE \ 153 mpfr-${mpfr_ver}${SRC_SUFX}:SOURCE \ 154 mtdev-${mtdev_ver}${SRC_SUFX}:SOURCE \ 155 ncurses-${ncurses_ver}${SRC_SUFX}:SOURCE \ 156 openssl-${openssl_ver}${SRC_SUFX}:SOURCE \ 157 pcre-${pcre_ver}${SRC_SUFX}:SOURCE \ 158 pcre2-${pcre2_ver}${SRC_SUFX}:SOURCE \ 159 popt-${popt_ver}${SRC_SUFX}:SOURCE \ 160 readline-${readline_ver}${SRC_SUFX}:SOURCE \ 161 rocky-release-${rocky-release_ver}${SRC_SUFX}:SOURCE \ 162 sed-${sed_ver}${SRC_SUFX}:SOURCE \ 163 setserial-${setserial_ver}${SRC_SUFX}:SOURCE \ 164 setup-${setup_ver}${SRC_SUFX}:SOURCE \ 165 slang-${slang_ver}${SRC_SUFX}:SOURCE \ 166 texinfo-${info_ver}${SRC_SUFX}:SOURCE \ 167 util-linux-${util_ver}${SRC_SUFX}:SOURCE \ 168 which-${which_ver}${SRC_SUFX}:SOURCE \ 169 xz-${xz_ver}${SRC_SUFX}:SOURCE \ 170 zlib-${zlib_ver}${SRC_SUFX}:SOURCE \ 171 zstd-${zstd_ver}${SRC_SUFX}:SOURCE \ 172 173PLIST_SUB= LINUXBASE=${LINUXBASE} SYSCTLMIB=${SYSCTLMIB} 174 175OPTIONS_DEFINE= DOCS NLS 176OPTIONS_SUB= yes 177 178REMOVE_DIRS= boot etc/pam.d home media mnt proc root run sys tmp var/log \ 179 var/tmp 180REMOVE_FILES= bin/chfn bin/chsh bin/findmnt bin/login bin/lsblk bin/lscpu \ 181 bin/lsipc bin/lslogins bin/lsmem bin/lsns bin/script \ 182 bin/setpriv bin/su \ 183 etc/exports etc/group etc/gshadow etc/motd \ 184 etc/passwd etc/printcap etc/protocols etc/services etc/shadow \ 185 sbin/clock sbin/debugfs sbin/hwclock sbin/runuser sbin/zramctl \ 186 usr/bin/chrt usr/bin/dmesg usr/bin/flock usr/bin/hardlink \ 187 usr/bin/ionice usr/bin/ipcmk usr/bin/ipcrm usr/bin/ipcs usr/bin/kill \ 188 usr/bin/logger usr/bin/nsenter usr/bin/renice usr/bin/setsid \ 189 usr/bin/taskset usr/bin/unshare usr/sbin/agetty usr/sbin/blkid \ 190 usr/sbin/blockdev usr/sbin/fsck usr/sbin/losetup usr/sbin/mkswap \ 191 usr/sbin/partx usr/sbin/swapoff usr/sbin/swapon usr/sbin/switch_root \ 192 usr/lib/gio/modules/libgiognutls.so usr/lib64/gio/modules/libgiognutls.so \ 193 usr/share/man/man1/chrt.1.gz usr/share/man/man1/dmesg.1.gz \ 194 usr/share/man/man1/flock.1.gz usr/share/man/man1/hardlink.1.gz \ 195 usr/share/man/man1/ionice.1.gz usr/share/man/man1/ipcmk.1.gz \ 196 usr/share/man/man1/ipcrm.1.gz usr/share/man/man1/ipcs.1.gz \ 197 usr/share/man/man1/kill.1.gz usr/share/man/man1/logger.1.gz \ 198 usr/share/man/man1/nsenter.1.gz usr/share/man/man1/renice.1.gz \ 199 usr/share/man/man1/setsid.1.gz usr/share/man/man1/taskset.1.gz \ 200 usr/share/man/man1/unshare.1.gz usr/share/man/man8/agetty.8.gz \ 201 usr/share/man/man8/blkid.8.gz usr/share/man/man8/blockdev.8.gz \ 202 usr/share/man/man8/findmnt.8.gz usr/share/man/man8/fsck.8.gz \ 203 usr/share/man/man8/losetup.8.gz usr/share/man/man8/mkswap.8.gz \ 204 usr/share/man/man8/partx.8.gz usr/share/man/man8/swapoff.8.gz \ 205 usr/share/man/man8/swapon.8.gz usr/share/man/man8/switch_root.8.gz 206 207 208.include <bsd.mport.options.mk> 209 210PLIST_SUB+= NEWGLIBC="" 211 212.if ${ARCH} == aarch64 || ${ARCH} == amd64 213SYSCTLMIB= kern.features.linux64 214.else 215SYSCTLMIB= compat.linux.osrelease 216.endif 217 218post-extract: 219# These directories become symbolic links when the filesystem distfile is 220# extracted. Other distfiles cannot be extracted when these are links so the 221# filesystem distfile must be extracted last. 222.for d in bin lib lib64 sbin 223 @(cd ${WRKSRC} && if [ -e ${d} -a ! -L ${d} ]; then \ 224 ${FIND} ${d} | ${CPIO} -dumpl --quiet usr && ${RM} -r ${d}; fi) 225.endfor 226 @(cd ${WRKSRC} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} \ 227 ${DISTDIR}/${DIST_SUBDIR}/f/filesystem-${filesystem_ver}${EXTRACT_SUFX_${ARCH}} \ 228 ${EXTRACT_AFTER_ARGS}) 229.if ${ARCH} == i386 230 @${CHMOD} u+w ${WRKSRC}/usr/lib/pm-utils 231.elif ${ARCH} == aarch64 || ${ARCH} == amd64 232 @${CHMOD} u+w ${WRKSRC}/usr/lib64/pm-utils 233.endif 234 235post-patch: 236 -${RM} -r ${REMOVE_DIRS:S|^|${WRKSRC}/|} 237 -${RM} ${REMOVE_FILES:S|^|${WRKSRC}/|} 238 @${FIND} ${WRKSRC}/usr -type d -empty -not -path '*/lib*/gio/*' -delete 239.if ${ARCH} == aarch64 240 ${BRANDELF} -t Linux ${WRKSRC}/usr/lib/ld-linux-* 241.else 242 ${BRANDELF} -t Linux ${WRKSRC}/usr/lib64/ld-linux-*.so.2 243.endif 244 245post-install: 246 -${RM} -r ${FAKE_DESTDIR}${LOCALBASE} 247 ${MV} ${PREFIX}/etc/krb5.conf \ 248 ${PREFIX}/etc/krb5.conf.sample 249 ${MV} ${PREFIX}/etc/nsswitch.conf \ 250 ${PREFIX}/etc/nsswitch.conf.sample 251 ${LN} -sf "../proc/self/mounts" ${PREFIX}/etc/mtab 252 ${LN} -sf ${LOCALBASE}/share/icons ${PREFIX}/usr/share/icons 253 ${LN} -sf /var/run ${PREFIX}/run 254 ${LN} -sf /var/tmp ${PREFIX}/usr/tmp 255 256.include <bsd.port.mk> 257