Update changelog
[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,ld.so.conf.d,opt,pm/{config.d,power.d,sleep.d},xinetd.d,skel,sysconfig,pki} \
47         home media mnt opt/home/{app,developer} proc root run/lock srv sys tmp \
48         usr/{bin,etc,games,include,%{_lib}/{pkgconfig,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         opt/{dbspace,usr/dbspace} \
51         opt/usr/{media,share}
52
53 ln -snf ../var/tmp usr/tmp
54 ln -snf spool/mail var/mail
55 ln -snf usr/bin bin
56 ln -snf usr/sbin sbin
57 ln -snf usr/lib lib
58 ln -snf usr/%{_lib} %{_lib}
59
60 # Create the locale directories:
61 while read LANG ; do
62   echo "%lang(${LANG}) %ghost %config(missingok) /usr/share/locale/${LANG}" >>$RPM_BUILD_DIR/filelist
63   create_dir 0755 root root /usr/share/locale/$LANG/LC_MESSAGES
64   create_dir 0755 root root /usr/share/help/$LANG
65 done < %{SOURCE2}
66 # Create the locale directories for man:
67 while read LANG ; do
68   create_dir 0755 root root /usr/share/man/$LANG
69   for sec in 1 2 3 4 5 6 7 8 9 n; do
70     create_dir 0755 root root /usr/share/man/$LANG/man$sec 
71 ##"%lang(${LANG}) %ghost %config(missingok)"
72   done
73 done < %{SOURCE3}
74
75
76 %pretrans -p <lua>
77 --#
78 --# If we are running in pretrans in a fresh root, there is no /usr and symlinks.
79 --# We cannot be sure, to be the very first rpm in the transaction list,
80 --# so, let's create the toplevel symlinks here and the directories they point to.
81 --# When our rpm is unpacked by cpio, it will set all permissions and modes later.
82 --#
83
84 if posix.stat("/usr") == nil then
85     posix.mkdir("/usr")
86 end
87
88 for i,dir in ipairs({"/lib", "/%{_lib}", "/sbin", "/bin"}) do
89     if posix.stat("/usr"..dir) == nil then
90         posix.mkdir("/usr"..dir)
91         if posix.stat(dir, "mode") == nil then
92             posix.symlink("usr"..dir, dir)
93         end
94     end
95 end
96
97 return 0
98
99 %post -p <lua>
100 posix.symlink("../run", "/var/run")
101 posix.symlink("../run/lock", "/var/lock")
102 posix.symlink("/opt/home/app", "/home/app")
103 posix.symlink("/opt/home/developer", "/home/developer")
104
105 %files -f filelist
106 %defattr(0755,root,root,-)
107 %dir %attr(555,root,root)
108 /bin
109 %attr(555,root,root) /boot
110 /dev
111 %dir /etc
112 %{_sysconfdir}/X11
113 %{_sysconfdir}/xdg
114 %{_sysconfdir}/opt
115 %attr(700,app,app) /opt/home/app
116 %attr(700,developer,developer) /opt/home/developer
117 %{_sysconfdir}/pm
118 %{_sysconfdir}/xinetd.d
119 %{_sysconfdir}/skel
120 %{_sysconfdir}/sysconfig
121 %{_sysconfdir}/pki
122 /home
123 /lib
124 #%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
125 /%{_lib}
126 #%endif
127 /media
128 %dir /mnt
129 %dir /opt
130 %dir %attr(755,root,root) /opt/dbspace
131 %dir %attr(755,root,root) /opt/usr
132 %dir %attr(755,root,app) /opt/usr/dbspace
133 %dir %attr(755,app,app) /opt/usr/media
134 %dir %attr(755,app,app) /opt/usr/share
135 %attr(555,root,root) /proc
136 %attr(550,root,root) /root
137 /run
138 /sbin
139 /srv
140 /sys
141 %attr(1777,root,root) /tmp
142 %dir /usr
143 %attr(555,root,root) /usr/bin
144 /usr/etc
145 /usr/games
146 /usr/include
147 %attr(555,root,root) /usr/lib
148 #%ifarch x86_64 ppc ppc64 sparc sparc64 s390 s390x
149 %attr(555,root,root) /usr/%{_lib}
150 #%endif
151 /usr/libexec
152 /usr/local
153 %attr(555,root,root) /usr/sbin
154 %dir /usr/share
155 /usr/share/aclocal
156 /usr/share/applications
157 /usr/share/help/C
158 /usr/share/augeas
159 /usr/share/backgrounds
160 /usr/share/desktop-directories
161 /usr/share/dict
162 /usr/share/doc
163 %attr(555,root,root) %dir /usr/share/empty
164 /usr/share/games
165 /usr/share/ghostscript
166 /usr/share/gnome
167 /usr/share/icons
168 /usr/share/idl
169 /usr/share/info
170 %dir /usr/share/locale
171 %dir /usr/share/man
172 /usr/share/mime-info
173 /usr/share/misc
174 /usr/share/omf
175 /usr/share/pixmaps
176 /usr/share/sounds
177 /usr/share/themes
178 /usr/share/xsessions
179 /usr/share/X11
180 /usr/src
181 /usr/tmp
182 %dir /var
183 %{_localstatedir}/adm
184 %{_localstatedir}/cache
185 %{_localstatedir}/db
186 %{_localstatedir}/empty
187 %{_localstatedir}/games
188 %{_localstatedir}/gopher
189 %{_localstatedir}/lib
190 %{_localstatedir}/local
191 %ghost %dir %attr(755,root,root) %{_localstatedir}/lock
192 %ghost %{_localstatedir}/lock/subsys
193 %{_localstatedir}/log
194 %{_localstatedir}/mail
195 %{_localstatedir}/nis
196 %{_localstatedir}/opt
197 %{_localstatedir}/preserve
198 %ghost %attr(755,root,root) %{_localstatedir}/run
199 %dir %{_localstatedir}/spool
200 %attr(755,root,root) %{_localstatedir}/spool/lpd
201 %attr(775,root,mail) %{_localstatedir}/spool/mail
202 %attr(755,uucp,uucp) %{_localstatedir}/spool/uucp
203 %attr(1777,root,root) %{_localstatedir}/tmp
204 %{_localstatedir}/yp
205
206 %changelog