comparison DOCS/tech/binary-packaging.txt @ 14268:37e1dc7e7107

wording/spelling
author diego
date Wed, 29 Dec 2004 05:49:24 +0000
parents ae421e5d6fb6
children d771b3d98d9d
comparison
equal deleted inserted replaced
14267:ae421e5d6fb6 14268:37e1dc7e7107
81 documentation. Translated versions SHOULD be included, even if your 81 documentation. Translated versions SHOULD be included, even if your
82 package management system does not provide specific support for 82 package management system does not provide specific support for
83 internationalization. 83 internationalization.
84 84
85 Libavcodec MUST always be in the latest development version and it SHOULD 85 Libavcodec MUST always be in the latest development version and it SHOULD
86 be linked statically into mplayer binary, because MPlayer requires a 86 be linked statically into the mplayer binary, because MPlayer requires a
87 recent libavcodec snapshot. While some distributions provide ffmpeg 87 recent libavcodec snapshot. While some distributions provide FFmpeg
88 packages containing shared libavcodec library, they are often based on the 88 packages containing a shared libavcodec library, they are often based on the
89 last "release" version of ffmpeg, which is quite old and will usually not 89 last "release" version of FFmpeg, which is quite old and will usually not
90 function with MPlayer. 90 function correctly with MPlayer.
91 91
92 92
93 File locations 93 File locations
94 ~~~~~~~~~~~~~~ 94 ~~~~~~~~~~~~~~
95 In general, you SHOULD follow your distribution guidelines. For example, 95 In general, you SHOULD follow your distribution guidelines. For example,
96 for RedHat and Fedora RPMs I am using FHS-compliant paths: 96 for Red Hat and Fedora RPMs I am using FHS-compliant paths:
97 97
98 /etc/mplayer/ system-wide configs 98 /etc/mplayer/ system-wide configs
99 /usr/bin/ binaries 99 /usr/bin/ binaries
100 /usr/lib/codecs/ binary codecs 100 /usr/lib/codecs/ binary codecs
101 /usr/share/doc/mplayer-version/ docs 101 /usr/share/doc/mplayer-version/ docs
111 One package or many packages? 111 One package or many packages?
112 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113 Although it is tempting to simply provide a single all-in-one package, 113 Although it is tempting to simply provide a single all-in-one package,
114 I think it is best to split MPlayer into several packages. It may be 114 I think it is best to split MPlayer into several packages. It may be
115 a little more troublesome for less clueful users, but it allows you to 115 a little more troublesome for less clueful users, but it allows you to
116 install only what you need. This is the layout I am using for RedHat and 116 install only what you need. This is the layout I am using for Red Hat and
117 Fedora RPMs: 117 Fedora RPMs:
118 118
119 mencoder contains MEncoder binary (mencoder) 119 mencoder contains MEncoder binary (mencoder)
120 mplayer contains MPlayer binary without GUI (mplayer), 120 mplayer contains MPlayer binary without GUI (mplayer),
121 config files, man pages and documentation; 121 config files, man pages and documentation;
123 mplayer-codecs-* contain binary codecs available from MPlayer's site 123 mplayer-codecs-* contain binary codecs available from MPlayer's site
124 mplayer-font-* contain various bitmap fonts for OSD (obsolete) 124 mplayer-font-* contain various bitmap fonts for OSD (obsolete)
125 mplayer-gui contains MPlayer binary with GUI (gmplayer); 125 mplayer-gui contains MPlayer binary with GUI (gmplayer);
126 requires default skin package 126 requires default skin package
127 mplayer-skin-* contain various MPlayer GUI skins 127 mplayer-skin-* contain various MPlayer GUI skins
128 mplayer-vidix contains vidix support library for MPlayer 128 mplayer-vidix contains VIDIX support library for MPlayer
129 mplayer-vidix-* contain vidix drivers for specific cards, one per package 129 mplayer-vidix-* contain VIDIX drivers for specific cards, one per package
130 130
131 There is no strict policy for now, just use your common sense. 131 There is no strict policy for now, just use your common sense.
132 132
133 133
134 Compilation 134 Compilation
135 ~~~~~~~~~~~ 135 ~~~~~~~~~~~
136 While it is acceptable to provide packages optimized for specific CPUs, 136 While it is acceptable to provide packages optimized for specific CPUs,
137 you MUST provide at least one "lowest common denominator" package set 137 you MUST provide at least one "lowest common denominator" package set
138 that will work on all CPUs. This means it MUST be configured with 138 that will work on all CPUs. This means it MUST be configured with the
139 --enable-runtime-cpudetection option. Building for specific CPUs requires 139 --enable-runtime-cpudetection option. Building for specific CPUs requires
140 disabling this option, but try to make sure that users cannot accidentally 140 disabling this option, but try to make sure that users cannot accidentally
141 install a package not suitable for their CPU. With RPMs, for example, this 141 install a package not suitable for their CPU. With RPMs, for example, this
142 is handled automatically, when building with "--target arch" rpm option. 142 is handled automatically, when building with the "--target arch" rpm option.
143 143
144 Compiler flags MUST be set to either configure-generated CFLAGS or something 144 Compiler flags MUST be set to either configure-generated CFLAGS or something
145 as close to them as possible. 145 as close to them as possible.
146 146
147 Users MUST be able to rebuild your source package without hand-editing on 147 Users MUST be able to rebuild your source package without hand-editing on
153 distribution will get binaries with the same dependencies. 153 distribution will get binaries with the same dependencies.
154 154
155 You SHOULD provide an option to rebuild the package with full debug 155 You SHOULD provide an option to rebuild the package with full debug
156 information enabled (by passing --enable-debug=3 to ./configure and 156 information enabled (by passing --enable-debug=3 to ./configure and
157 disabling any stripping of binaries and libs during the build process). 157 disabling any stripping of binaries and libs during the build process).
158 For example my source RPM can be rebuilt with "--with debug" option, which 158 For example my source RPM can be rebuilt with a "--with debug" option, which
159 does just that, making it easier to supply gdb information along with any 159 does just that, making it easier to supply gdb information along with any
160 bug reports, while retaining all benefits of using binary packages. 160 bug reports, while retaining all benefits of using binary packages.
161 161
162 162
163 Modifications 163 Modifications
188 mencoder), you can use man-links instead of regular symbolic links. 188 mencoder), you can use man-links instead of regular symbolic links.
189 Creating a mencoder man page linked to mplayer is as simple as: 189 Creating a mencoder man page linked to mplayer is as simple as:
190 190
191 echo ".so mplayer.1" >> mencoder.1 191 echo ".so mplayer.1" >> mencoder.1
192 192
193 Similar trick can be used for "man gmplayer". This avoids problems with 193 A similar trick can be used for "man gmplayer". This avoids problems with
194 gzipped man pages and symbolic links. 194 gzipped man pages and symbolic links.
195 195
196 Newer RedHat and Fedora distributions keep localized man pages encoded in 196 Newer Red Hat and Fedora distributions keep localized man pages encoded in
197 UTF-8. If your distribution does the same, make sure you convert MPlayer's 197 UTF-8. If your distribution does the same, make sure you convert MPlayer's
198 translated man pages to UTF-8 so that man mplayer works for locales other 198 translated man pages to UTF-8 so that man mplayer works for locales other
199 than English. 199 than English.