Sync from SUSE:ALP:Source:Standard:1.0 filesystem revision 1c8fb530fa39310962466c5493c0ec36

This commit is contained in:
Adrian Schröter 2023-12-21 13:35:57 +01:00
commit 7a06a349ce
12 changed files with 2873 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

17
LICENSE.txt Normal file
View File

@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

127
directory.list Normal file
View File

@ -0,0 +1,127 @@
0755 root root /dev
0755 root root /etc
0755 root root /etc/X11
0755 root root /etc/aliases.d
0755 root root /etc/default
0755 root root /etc/ld.so.conf.d
0755 root root /etc/logrotate.d
0755 root root /etc/modprobe.d
0755 root root /etc/motd.d
0755 root root /etc/profile.d
0755 root root /etc/permissions.d
0755 root root /etc/skel
0755 root root /etc/sysconfig
0755 root root /etc/sysctl.d
0755 root root /etc/tmpfiles.d
0755 root root /etc/opt
0755 root root /etc/xdg
0755 root root /etc/xdg/autostart
0700 root root /root
0700 root root /root/.gnupg
0755 root root /root/bin
0755 root root /run
1777 root root /tmp
0755 root root /usr
0555 root root /usr/bin
0755 root root /usr/etc
0755 root root /usr/etc/X11
0755 root root /usr/etc/default
0755 root root /usr/etc/profile.d
0755 root root /usr/etc/logrotate.d
0755 root root /usr/etc/skel
0755 root root /usr/etc/skel/bin
0700 root root /usr/etc/skel/.cache
0700 root root /usr/etc/skel/.config
0700 root root /usr/etc/skel/.local
0700 root root /usr/etc/skel/.local/bin
0700 root root /usr/etc/skel/.local/share
0700 root root /usr/etc/skel/.local/share/fonts
0700 root root /usr/etc/skel/.local/state
0755 root root /usr/etc/xdg
0755 root root /usr/etc/xdg/autostart
0555 root root /usr/include
0755 root root /usr/include/X11
0555 root root /usr/lib
0755 root root /usr/libexec
0755 root root /usr/lib/X11
0755 root root /usr/lib/environment.d
0755 root root /usr/lib/modprobe.d
0555 root root /usr/lib/pkgconfig
0755 root root /usr/lib/browser-plugins
0755 root root /usr/lib/motd.d
0555 root root /usr/lib/restricted
0555 root root /usr/lib/restricted/bin
0755 root root /usr/lib/sysctl.d
0755 root root /usr/lib/systemd
0755 root root /usr/lib/systemd/system
0755 root root /usr/lib/systemd/system-preset
0755 root root /usr/lib/systemd/user
0755 root root /usr/lib/systemd/user-preset
0755 root root /usr/lib/sysusers.d
0755 root root /usr/lib/tmpfiles.d
0755 root root /usr/lib/udev
0755 root root /usr/lib/udev/rules.d
0555 root root /usr/sbin
0555 root root /usr/share
# TODO make 0555
0755 root root /usr/share/appdata
# TODO make 0555
0755 root root /usr/share/applications
0555 root root /usr/share/dict
0555 root root /usr/share/doc
0555 root root /usr/share/doc/packages
# TODO make 0555
0755 root root /usr/share/fillup-templates
0555 root root /usr/share/help
0555 root root /usr/share/help/C
0555 root root /usr/share/locale
0555 root root /usr/share/licenses
0555 root root /usr/share/man
0555 root root /usr/share/man/man1
0555 root root /usr/share/man/man2
0555 root root /usr/share/man/man3
0555 root root /usr/share/man/man4
0555 root root /usr/share/man/man5
0555 root root /usr/share/man/man6
0555 root root /usr/share/man/man7
0555 root root /usr/share/man/man8
0555 root root /usr/share/man/man9
0555 root root /usr/share/man/mann
# TODO make 0555
0755 root root /usr/share/metainfo
0555 root root /usr/share/mime
0555 root root /usr/share/mime/packages
0555 root root /usr/share/misc
# TODO make 0555
0755 root root /usr/share/icons
0555 root root /usr/share/info
0555 root root /usr/share/fonts
0555 root root /usr/share/games
0555 root root /usr/share/pixmaps
0555 root root /usr/share/pkgconfig
0555 root root /usr/share/sgml
0555 root root /usr/share/sgml/docbook
0555 root root /usr/share/sounds
0555 root root /usr/share/omc
0555 root root /usr/share/omc/svcinfo.d
0555 root root /usr/share/themes
0755 root root /usr/share/user-tmpfiles.d
0555 root root /usr/share/xml
0555 root root /usr/share/xml/docbook
0555 root root /usr/share/xsessions
0755 root root /usr/src
0755 root root /usr/src/packages
0755 root root /var
0755 root root /var/adm
0700 root root /var/adm/backup
0755 root root /var/cache
0755 root root /var/crash
0755 root root /var/lib
0555 root root /var/lib/empty
0755 root root /var/lib/misc
0755 root root /var/spool
1777 root root /var/tmp
0755 root root /var/log
0755 root root /var/opt
0700 root root /var/adm/update-scripts
0700 root root /var/adm/update-messages

3
directory.list64 Normal file
View File

@ -0,0 +1,3 @@
0555 root root /usr/lib64
0555 root root /usr/lib64/pkgconfig
0755 root root /usr/lib64/browser-plugins

3
directory.list64-x86_64 Normal file
View File

@ -0,0 +1,3 @@
0555 root root /usr/lib64/glibc-hwcaps/x86-64-v4
0555 root root /usr/lib64/glibc-hwcaps/x86-64-v3
0555 root root /usr/lib64/glibc-hwcaps/x86-64-v2

2164
filesystem.changes Normal file

File diff suppressed because it is too large Load Diff

4
filesystem.links Normal file
View File

@ -0,0 +1,4 @@
# links to be created
# systemd
../run /var/run %ghost
../run/lock /var/lock %ghost

334
filesystem.spec Normal file
View File

@ -0,0 +1,334 @@
#
# spec file for package filesystem
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define nvr %{name}-%{version}-%{release}
Name: filesystem
Summary: Basic Directory Layout
License: MIT
Group: System/Fhs
%if 0%{?sle_version}
Version: %(echo %suse_version | cut -b-2).%(echo %suse_version | cut -b3)
Release: 0
%else
Version: 84.87
Release: 0
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires(pre): compat-usrmerge-tools
Requires: group(root)
Requires: user(root)
URL: https://build.opensuse.org/package/show/openSUSE:Factory/filesystem
Source0: directory.list
Source1: filesystem.links
Source2: languages
Source3: ghost.list
Source4: languages.man
Source64: directory.list64
Source65: directory.list64-x86_64
Source66: ghost.list64
Source99: LICENSE.txt
%description
This package installs the basic directory structure. It also includes
the home directories of system users.
%prep
%setup -c -n filesystem -T
cp %{SOURCE0} .
cp %{SOURCE1} .
cp %{SOURCE3} .
%ifarch s390x %sparc x86_64 %x86_64 ppc64 ppc aarch64 ppc64le riscv64
cat %{SOURCE66} >> ghost.list
%endif
%build
cat > pretrans.lua <<'EOF'
os.remove ("/usr/include/X11")
os.remove ("/usr/lib/X11")
if not posix.readlink("/var/run") then
os.rename("/var/run","/var/run.rpmsave.tmpx")
end
if not posix.readlink("/var/lock") then
os.rename("/var/lock","/var/lock.rpmsave.tmpx")
end
if not posix.stat("/var/run") then
posix.symlink("/run","/var/run")
end
if not posix.stat("/var/lock") then
posix.symlink("/run/lock","/var/lock")
end
if posix.stat("/var/run.rpmsave.tmpx") then
os.execute("mv /var/run.rpmsave.tmpx/* /var/run")
os.remove("/var/run.rpmsave.tmpx")
end
if posix.stat("/var/lock.rpmsave.tmpx") then
os.execute("mv /var/lock.rpmsave.tmpx/* /var/lock")
os.remove("/var/lock.rpmsave.tmpx")
end
local ghosts = {
EOF
#
while read MOD OWN GRP NAME ; do
[ "$OWN" = root -a "$GRP" = root ]
echo "[\"$NAME\"] = $MOD,"
done < ghost.list >> pretrans.lua
cat >> pretrans.lua <<'EOF'
}
function mkdir_p(path)
d = ''
for p in string.gmatch(path, "([^/]+)") do
d = d.."/"..p
posix.mkdir(d)
end
end
for i in pairs(ghosts) do
mkdir_p(i)
posix.chmod(i, ghosts[i])
end
local ghost_links = {
EOF
# ghost symlinks
while read SRC DEST ATTR ; do
[ "$ATTR" = "%%ghost" ] || continue
echo "[\"$DEST\"] = \"$SRC\","
done < filesystem.links >> pretrans.lua
cat >> pretrans.lua <<'EOF'
}
for i in pairs(ghost_links) do
mkdir_p(i:match(".*/"))
posix.symlink(ghost_links[i], i)
end
EOF
#
#
cat > pre.lua <<'EOF'
needmigrate = false
local dirs = {"/bin",
"/sbin",
%ifarch s390x %sparc x86_64 %x86_64 ppc64 ppc aarch64 ppc64le riscv64
"/lib64",
%endif
"/lib" }
for i in pairs(dirs) do
local t = posix.stat(dirs[i], "type")
if t == nil then
posix.symlink("usr"..dirs[i], dirs[i])
elseif t == "directory" then
needmigrate = true
end
end
if needmigrate then
if posix.getenv("ZYPP_SINGLE_RPMTRANS") == "1" then
print("Warning: UsrMerge executed in single transcation mode")
if not posix.stat("/usr/lib/rpm/lua/usrmerge.lua") then
error("ERROR: compat-usrmerge file triggers not installed.\n!!! This will go horribly wrong. You need a rescue system now !!!")
end
rpm.define("_filesystem_need_posttrans_convertfs 1")
else
assert(os.execute("/usr/libexec/convertfs"))
end
end
EOF
cat > posttrans.lua <<'EOF'
if rpm.expand("%%%%{?_filesystem_need_posttrans_convertfs}") == "1" then
assert(os.execute("/usr/libexec/convertfs"))
end
EOF
%install
function create_dir () {
local MODE=$1
case "$MODE" in
\#*) return ;;
esac
local OWNR=$2
local GRUP=$3
local NAME=$4
local XTRA=$5
local BDIR=`dirname $NAME`
test -d "$RPM_BUILD_ROOT/$NAME" && { echo "dir $NAME does already exist" ; echo "input out of sequence ?" ; exit 1 ; }
test -n "$BDIR" -a ! -d $RPM_BUILD_ROOT$BDIR && create_dir 0755 root root $BDIR
test -w $RPM_BUILD_ROOT$BDIR || chmod u+w $RPM_BUILD_ROOT$BDIR
mkdir -m $MODE $RPM_BUILD_ROOT/$NAME
echo "$XTRA%%dir %%attr($MODE,$OWNR,$GRUP) $NAME" >> filesystem.list
case "$NAME" in
/tmp)
echo "q $NAME $MODE $OWNR $GRUP 10d" >> fs-tmp.conf
;;
/var/tmp)
echo "d $NAME $MODE $OWNR $GRUP -" >> fs-var-tmp.conf
;;
/var/*)
echo "d $NAME $MODE $OWNR $GRUP -" >> fs-var.conf
;;
/run/*)
echo "d $NAME $MODE $OWNR $GRUP -" >> fs-run.conf
;;
/usr/local/*)
echo "d $NAME $MODE $OWNR $GRUP -" >> fs-usr-local.conf
;;
esac
}
mkdir -p $RPM_BUILD_ROOT
# generic directories first
echo "%%defattr(-,root,root)" > filesystem.list
%ifarch s390x %sparc x86_64 %x86_64 ppc64 ppc aarch64 ppc64le riscv64
cat %{SOURCE64} >> directory.list
%endif
%ifarch x86_64 %x86_64
cat %{SOURCE65} >> directory.list
%endif
cat >> filesystem.links << EOF
usr/bin /bin
usr/sbin /sbin
usr/lib /lib
%ifarch s390x %sparc x86_64 %x86_64 ppc64 ppc aarch64 ppc64le riscv64
usr/lib64 /lib64
%endif
EOF
cat >> directory.list <<EOF
0755 root root /usr/lib/modules
0755 root root %{_firmwaredir}
EOF
while read MOD OWN GRP NAME ; do
create_dir $MOD $OWN $GRP $NAME
done < directory.list
# ghost files next
while read MOD OWN GRP NAME ; do
create_dir $MOD $OWN $GRP $NAME "%%ghost "
done < ghost.list
# arch specific leftovers
for march in \
%ifarch %ix86
i586-suse-linux \
%else
%ifarch %sparc
sparc-suse-linux sparc64-suse-linux \
%else
%ifarch ppc
powerpc-suse-linux \
%else
%ifarch ppc64
powerpc64-suse-linux \
%else
%ifarch ppc64le
powerpc64le-suse-linux \
%else
%ifarch %arm
%{_target_cpu}-suse-linux-gnueabi \
%else
%{_target_cpu}-suse-linux \
%endif
%endif
%endif
%endif
%endif
%endif
; do
create_dir 0755 root root /usr/$march
for xdir in bin include lib ; do
create_dir 0755 root root /usr/$march/$xdir
done
done
%ifarch ia64
create_dir 0755 root root /emul/ia32-linux
%endif
# now do the links
while read SRC DEST ATTR ; do
case $SRC in
"") continue ;;
\#*) echo "comment: $SRC $DEST" ;;
*)
case $SRC in
/*) test -d $RPM_BUILD_ROOT/$SRC || { echo "link src does not exist" ; exit 1 ; }
;;
*) test -d $RPM_BUILD_ROOT/`dirname $DEST`/$SRC || { echo "link src does not exist" ; exit 1 ; }
;;
esac
ln -sf $SRC $RPM_BUILD_ROOT$DEST
case $DEST in
*) echo "$ATTR${ATTR:+ }$DEST" >> filesystem.list ;;
esac
# for tmpfiles.d
case $DEST in
/var/*) echo "L $DEST - - - - $SRC" >> fs-var.conf ;;
esac
;;
esac
done < filesystem.links
# Create the locale directories:
while read LANG ; do
create_dir 0755 root root /usr/share/locale/$LANG/LC_MESSAGES
create_dir 0755 root root /usr/share/help/$LANG
done < %{SOURCE2}
# Create the locale directories for man:
while read LANG ; do
create_dir 0755 root root /usr/share/man/$LANG
for sec in 1 2 3 4 5 6 7 8 9 n; do
create_dir 0755 root root /usr/share/man/$LANG/man$sec
done
done < %{SOURCE4}
RPM_INSTALL_PREFIX=$RPM_BUILD_ROOT
export RPM_BUILD_ROOT
#
# now check, if all files of aaa_base have a directory in this package
#
NON_EXISTING_DIR=
for FILE in `rpm -ql aaa_base` ; do
test -d $FILE && continue
case $FILE in
/etc/init.d/*.local|/usr/share/doc/support/*|/lib/mkinitrd/scripts/*)
continue
;;
/usr/share/doc/packages/aaa_base/*|/usr/share/licenses/aaa_base/*|/lib/aaa_base/*|/usr/lib/base-scripts/*)
continue
;;
esac
test -d $RPM_BUILD_ROOT/`dirname $FILE` || {
echo `dirname $FILE` for $FILE is not in filesystem.
NON_EXISTING_DIR="$NON_EXISTING_DIR `dirname $FILE`"
}
done
test -n "$NON_EXISTING_DIR" && {
echo NON_EXISTING_DIR=$NON_EXISTING_DIR
exit 1
}
install -m 0644 fs-tmp.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/fs-tmp.conf
install -m 0644 fs-var.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/fs-var.conf
install -m 0644 fs-var-tmp.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/fs-var-tmp.conf
install -m 0644 fs-usr-local.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/fs-usr-local.conf
install -m 0644 fs-run.conf $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/fs-run.conf
%pretrans -p <lua> -f pretrans.lua
%pre -p <lua> -f pre.lua
%posttrans -p <lua> -f posttrans.lua
%files -f filesystem.list
/usr/lib/tmpfiles.d/fs-run.conf
/usr/lib/tmpfiles.d/fs-tmp.conf
/usr/lib/tmpfiles.d/fs-var.conf
/usr/lib/tmpfiles.d/fs-var-tmp.conf
/usr/lib/tmpfiles.d/fs-usr-local.conf
%changelog

30
ghost.list Normal file
View File

@ -0,0 +1,30 @@
0555 root root /boot
0555 root root /home
0555 root root /mnt
0555 root root /opt
0555 root root /proc
0555 root root /srv
0755 root root /srv/www
0755 root root /srv/www/cgi-bin
0755 root root /srv/www/htdocs
0755 root root /run/lock
0555 root root /sys
0755 root root /usr/local
0755 root root /usr/local/bin
0755 root root /usr/local/include
0755 root root /usr/local/lib
0755 root root /usr/local/libexec
0755 root root /usr/local/man
0755 root root /usr/local/man/man1
0755 root root /usr/local/man/man2
0755 root root /usr/local/man/man3
0755 root root /usr/local/man/man4
0755 root root /usr/local/man/man5
0755 root root /usr/local/man/man6
0755 root root /usr/local/man/man7
0755 root root /usr/local/man/man8
0755 root root /usr/local/man/man9
0755 root root /usr/local/man/mann
0755 root root /usr/local/sbin
0755 root root /usr/local/share
0755 root root /usr/local/src

1
ghost.list64 Normal file
View File

@ -0,0 +1 @@
0755 root root /usr/local/lib64

137
languages Normal file
View File

@ -0,0 +1,137 @@
af
ar
as
ast
az
be
be@latin
bg
bn
bn_IN
br
bs
ca
ca@valencia
cs
cs_CZ
cy
da
de
de_AT
de_CH
de_DE
dz
el
el_GR
en
en@boldquot
en@quot
en@shaw
en_AU
en_CA
en_GB
en_NZ
en_US
eo
es
es_AR
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_SV
es_UY
es_VE
et
et_EE
eu
fa
fi
fi_FI
fr
fr_CA
fr_CH
fr_FR
fur
ga
gd
gl
gu
he
hi
hr
hu
ia
id
is
it
it_IT
ja
ka
kk
km
kn
ko
lt
lv
mai
mk
ml
mr
ms
nb
nb_NO
nds
ne
nl
nl_BE
nn
nn_NO
oc
or
pa
pl
pl_PL
pt
pt_BR
pt_PT
ro
ru
ru_RU
ru_UA.koi8u
si
sk
sl
sl_SI
sq
sr
sr@ije
sr@ijekavian
sr@ijekavianlatin
sr@latin
sv
ta
te
th
tr
tr_TR
ug
uk
uk_UA
vi
wa
zh
zh_CN
zh_HK
zh_Hans
zh_Hant
zh_TW

30
languages.man Normal file
View File

@ -0,0 +1,30 @@
bg
ca
cs
da
de
el
eo
es
fr
hu
id
it
ja
ko
nl
pl
pt
pt_BR
ro
ru
tr
sk
sr
sv
uk
zh
zh_CN
zh_Hans
zh_Hant
zh_TW