Fixed package groups
[platform/upstream/filesystem.git] / packaging / filesystem.spec
1 %define disable_docs_package 1
2 %define debug_package %{nil}
3 Name:           filesystem
4 Version:        3.1
5 Release:        0
6 License:        Public Domain
7 Summary:        The basic directory layout for a Linux system
8 Url:            https://fedorahosted.org/filesystem
9 Group:          Base/Configuration
10 Requires(pre): setup
11 Source2:        languages
12 Source3:        languages.man
13
14
15 %description
16 The filesystem package is one of the basic packages that is installed
17 on a Linux system. Filesystem contains the basic directory layout
18 for a Linux operating system, including the correct permissions for
19 the directories.
20
21 %prep
22 rm -f $RPM_BUILD_DIR/filelist
23
24 %build
25
26 %install
27 function create_dir () {
28     local MODE=$1
29     case "$MODE" in
30      \#*) return ;;
31     esac
32     local OWNR=$2
33     local GRUP=$3
34     local NAME=$4
35     local XTRA=$5
36     local BDIR=`dirname $NAME`
37     test -d "$RPM_BUILD_ROOT/$NAME" && { echo "dir $NAME does already exist" ; echo "input out of sequence ?" ; exit 1 ; }
38     test -n "$BDIR" -a ! -d $RPM_BUILD_ROOT$BDIR && create_dir 0755 root root $BDIR
39     mkdir -m $MODE $RPM_BUILD_ROOT/$NAME
40     echo "$XTRA%%dir %%attr($MODE,$OWNR,$GRUP) $NAME" >> $RPM_BUILD_DIR/filelist
41 }
42
43 cd %{buildroot}
44
45 mkdir -p boot dev \
46         etc/{X11/{applnk,fontpath.d},xdg/autostart,opt,pm/{config.d,power.d,sleep.d},xinetd.d,skel,sysconfig,pki} \
47         home media mnt opt proc root run/lock srv sys tmp \
48         usr/{bin,etc,games,include,%{_lib}/{games,sse2,tls,X11,pm-utils/{module.d,power.d,sleep.d}},lib/{games,locale,modules,sse2},libexec,local/{bin,etc,games,lib,%{_lib},sbin,src,share/{applications,man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x},info},libexec,include,},sbin,share/{help/C,aclocal,applications,augeas/lenses,backgrounds,desktop-directories,dict,doc,empty,games,ghostscript/conf.d,gnome,icons,idl,info,man/man{1,2,3,4,5,6,7,8,9,n,1x,2x,3x,4x,5x,6x,7x,8x,9x,0p,1p,3p},mime-info,misc,omf,pixmaps,sounds,themes,xsessions,X11},src,src/kernels,src/debug} \
49         var/{adm,empty,gopher,lib/{empty,games,misc,rpm-state},local,lock/subsys,log,nis,preserve,run,spool/{mail,lpd,uucp},tmp,db,cache,opt,games,yp}
50
51 ln -snf ../var/tmp usr/tmp
52 ln -snf spool/mail var/mail
53 ln -snf usr/bin bin
54 ln -snf usr/sbin sbin
55 ln -snf usr/lib lib
56 ln -snf usr/%{_lib} %{_lib}
57
58 # Create the locale directories:
59 while read LANG ; do
60   echo "%lang(${LANG}) %ghost %config(missingok) /usr/share/locale/${LANG}" >>$RPM_BUILD_DIR/filelist
61   create_dir 0755 root root /usr/share/locale/$LANG/LC_MESSAGES
62   create_dir 0755 root root /usr/share/help/$LANG
63 done < %{SOURCE2}
64 # Create the locale directories for man:
65 while read LANG ; do
66   create_dir 0755 root root /usr/share/man/$LANG
67   for sec in 1 2 3 4 5 6 7 8 9 n; do
68     create_dir 0755 root root /usr/share/man/$LANG/man$sec 
69 ##"%lang(${LANG}) %ghost %config(missingok)"
70   done
71 done < %{SOURCE3}
72
73
74 %pretrans -p <lua>
75 --#
76 --# If we are running in pretrans in a fresh root, there is no /usr and symlinks.
77 --# We cannot be sure, to be the very first rpm in the transaction list,
78 --# so, let's create the toplevel symlinks here and the directories they point to.
79 --# When our rpm is unpacked by cpio, it will set all permissions and modes later.
80 --#
81
82 if posix.stat("/usr") == nil then
83     posix.mkdir("/usr")
84 end
85
86 for i,dir in ipairs({"/lib", "/%{_lib}", "/sbin", "/bin"}) do
87     if posix.stat("/usr"..dir) == nil then
88         posix.mkdir("/usr"..dir)
89         if posix.stat(dir, "mode") == nil then
90             posix.symlink("usr"..dir, dir)
91         end
92     end
93 end
94
95 return 0
96
97 %post -p <lua>
98 posix.symlink("../run", "/var/run")
99 posix.symlink("../run/lock", "/var/lock")
100
101 %files -f filelist
102 %defattr(0755,root,root,-)
103 %dir %attr(555,root,root)
104 /bin
105 %attr(555,root,root) /boot
106 /dev
107 %dir /etc
108 %{_sysconfdir}/X11
109 %{_sysconfdir}/xdg
110 %{_sysconfdir}/opt
111 %{_sysconfdir}/pm
112 %{_sysconfdir}/xinetd.d
113 %{_sysconfdir}/skel
114 %{_sysconfdir}/sysconfig
115 %{_sysconfdir}/pki
116 /home
117 /lib
118 #%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
119 /%{_lib}
120 #%endif
121 /media
122 %dir /mnt
123 %dir /opt
124 %attr(555,root,root) /proc
125 %attr(550,root,root) /root
126 /run
127 /sbin
128 /srv
129 /sys
130 %attr(1777,root,root) /tmp
131 %dir /usr
132 %attr(555,root,root) /usr/bin
133 /usr/etc
134 /usr/games
135 /usr/include
136 %attr(555,root,root) /usr/lib
137 #%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
138 %attr(555,root,root) /usr/%{_lib}
139 #%endif
140 /usr/libexec
141 /usr/local
142 %attr(555,root,root) /usr/sbin
143 %dir /usr/share
144 /usr/share/aclocal
145 /usr/share/applications
146 /usr/share/help/C
147 /usr/share/augeas
148 /usr/share/backgrounds
149 /usr/share/desktop-directories
150 /usr/share/dict
151 /usr/share/doc
152 %attr(555,root,root) %dir /usr/share/empty
153 /usr/share/games
154 /usr/share/ghostscript
155 /usr/share/gnome
156 /usr/share/icons
157 /usr/share/idl
158 /usr/share/info
159 %dir /usr/share/locale
160 %dir /usr/share/man
161 /usr/share/mime-info
162 /usr/share/misc
163 /usr/share/omf
164 /usr/share/pixmaps
165 /usr/share/sounds
166 /usr/share/themes
167 /usr/share/xsessions
168 /usr/share/X11
169 /usr/src
170 /usr/tmp
171 %dir /var
172 %{_localstatedir}/adm
173 %{_localstatedir}/cache
174 %{_localstatedir}/db
175 %{_localstatedir}/empty
176 %{_localstatedir}/games
177 %{_localstatedir}/gopher
178 %{_localstatedir}/lib
179 %{_localstatedir}/local
180 %ghost %dir %attr(755,root,root) %{_localstatedir}/lock
181 %ghost %{_localstatedir}/lock/subsys
182 %{_localstatedir}/log
183 %{_localstatedir}/mail
184 %{_localstatedir}/nis
185 %{_localstatedir}/opt
186 %{_localstatedir}/preserve
187 %ghost %attr(755,root,root) %{_localstatedir}/run
188 %dir %{_localstatedir}/spool
189 %attr(755,root,root) %{_localstatedir}/spool/lpd
190 %attr(775,root,mail) %{_localstatedir}/spool/mail
191 %attr(755,uucp,uucp) %{_localstatedir}/spool/uucp
192 %attr(1777,root,root) %{_localstatedir}/tmp
193 %{_localstatedir}/yp
194
195 %changelog