xref: /freebsd/tools/build/absolute-symlink.sh (revision 9d585fc395c3af6d1ceaec7df7c7ef60466f0528)
1*9d585fc3SWolfram Schneider#!/bin/sh
2*9d585fc3SWolfram Schneider# Copyright (c) Oct 2024 Wolfram Schneider <wosch@FreeBSD.org>
3*9d585fc3SWolfram Schneider# SPDX-License-Identifier: BSD-2-Clause
4*9d585fc3SWolfram Schneider#
5*9d585fc3SWolfram Schneider# absolute-symlink.sh - check for absolute symlinks on a FreeBSD system
6*9d585fc3SWolfram Schneider#
7*9d585fc3SWolfram Schneider# The purpose of this script is to detect absolute symlinks on
8*9d585fc3SWolfram Schneider# a machine, e.g.:
9*9d585fc3SWolfram Schneider#
10*9d585fc3SWolfram Schneider#    /etc/localtime -> /usr/share/zoneinfo/UTC
11*9d585fc3SWolfram Schneider#
12*9d585fc3SWolfram Schneider# Some of these absolute symbolic links can be created intentionally,
13*9d585fc3SWolfram Schneider# but it is usually better to use relative symlinks.
14*9d585fc3SWolfram Schneider#
15*9d585fc3SWolfram Schneider# You can run the script after `make installworld', or any other
16*9d585fc3SWolfram Schneider# make targets thats installs files.
17*9d585fc3SWolfram Schneider#
18*9d585fc3SWolfram Schneider# You can also check your local ports with:
19*9d585fc3SWolfram Schneider#
20*9d585fc3SWolfram Schneider#   env ABSOLUTE_SYMLINK_DIRS=/usr/local ./absolute-symlink.sh
21*9d585fc3SWolfram Schneider
22*9d585fc3SWolfram Schneider
23*9d585fc3SWolfram SchneiderPATH="/bin:/usr/bin"; export PATH
24*9d585fc3SWolfram SchneiderLANG="C"; export LANG
25*9d585fc3SWolfram Schneider
26*9d585fc3SWolfram Schneider# check other directories as well
27*9d585fc3SWolfram Schneider: ${ABSOLUTE_SYMLINK_DIRS=""}
28*9d585fc3SWolfram Schneider
29*9d585fc3SWolfram Schneiderfind -s -H \
30*9d585fc3SWolfram Schneider  /bin \
31*9d585fc3SWolfram Schneider  /boot \
32*9d585fc3SWolfram Schneider  /etc \
33*9d585fc3SWolfram Schneider  /lib \
34*9d585fc3SWolfram Schneider  /libexec \
35*9d585fc3SWolfram Schneider  /sbin \
36*9d585fc3SWolfram Schneider  /usr/bin \
37*9d585fc3SWolfram Schneider  /usr/include \
38*9d585fc3SWolfram Schneider  /usr/lib \
39*9d585fc3SWolfram Schneider  /usr/lib32 \
40*9d585fc3SWolfram Schneider  /usr/libdata \
41*9d585fc3SWolfram Schneider  /usr/libexec \
42*9d585fc3SWolfram Schneider  /usr/sbin \
43*9d585fc3SWolfram Schneider  /usr/src \
44*9d585fc3SWolfram Schneider  /usr/share \
45*9d585fc3SWolfram Schneider  $ABSOLUTE_SYMLINK_DIRS \
46*9d585fc3SWolfram Schneider  -type l \
47*9d585fc3SWolfram Schneider  -ls | grep -Ea -- ' -> /'
48*9d585fc3SWolfram Schneider
49*9d585fc3SWolfram Schneider#EOF
50