Summary: X.Org X11 filesystem layout Summary(ja): X.Org X11 ファイルシステムレイアウト Name: xorg-x11-filesystem Version: 7.7 Release: 1%{?_dist_release} License: MIT/X11 Group: System Environment/Base BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root Requires(pre): filesystem >= 2.4 Obsoletes: XOrg-devel < 7.0 Vendor: Project Vine Distribution: Vine Linux Packager: Takemikaduchi %description This package provides some directories which are required by other packages which comprise the modularized X.Org X11R7 X Window System release. This package must be installed during OS installation or upgrade, in order to force the creation of these directories, and replace any legacy symbolic links that might be present in old locations, which could result in upgrade failures. %prep %install rm -rf $RPM_BUILD_ROOT # NOTE: Do not replace these with _libdir or _includedir macros, they are # intentionally explicit. mkdir -p "$RPM_BUILD_ROOT%{_libdir}/X11" mkdir -p "$RPM_BUILD_ROOT%{_includedir}/X11" mkdir -p "$RPM_BUILD_ROOT%{_datadir}/X11" mkdir -p "$RPM_BUILD_ROOT%{_bindir}" UPGRADE_CMD="%{_bindir}/xorg-x11-filesystem-upgrade" # NOTE: The quoted 'EOF' is required to disable variable interpolation cat > "$RPM_BUILD_ROOT/${UPGRADE_CMD}" <<'EOF' #!/bin/bash # # Modular X.Org X11R7 filesystem upgrade script. # # If any of the following dirs are symlinks, remove them and create a dir # in its place. This is required, so that modular X packages get installed # into a real directory, and do not follow old compatibility symlinks # provided in previous releases of the operating system. # # NOTE: Do not replace these with _libdir or _includedir macros, they are # intentionally explicit. for dir in %{_includedir}/X11 %{_libdir}/X11 ; do [ -L "$dir" ] && rm -f -- "$dir" &> /dev/null done for dir in %{_includedir}/X11 %{_libdir}/X11 ; do [ ! -d "$dir" ] && mkdir -p "$dir" &> /dev/null done exit 0 EOF chmod 0755 "$RPM_BUILD_ROOT/${UPGRADE_CMD}" %clean rm -rf $RPM_BUILD_ROOT %pre # NOTE: Do not replace these with _libdir or _includedir macros, they are # intentionally explicit. # Remove old symlinks if present, and replace them with directories. for dir in %{_includedir}/X11 %{_libdir}/X11 ; do [ -L "$dir" ] && rm -f -- "$dir" &> /dev/null done for dir in %{_includedir}/X11 %{_libdir}/X11 ; do [ ! -d "$dir" ] && mkdir -p "$dir" &> /dev/null done exit 0 %files %defattr(-,root,root,-) # NOTE: These are explicitly listed intentionally, instead of using rpm # macros, as these exact locations are required for compatibility # regardless of what _libdir or _includedir point to. %dir %{_libdir}/X11 %dir %{_includedir}/X11 %dir %{_datadir}/X11 %{_bindir}/xorg-x11-filesystem-upgrade %changelog * Thu Dec 26 2013 Yoji TOYODA 7.7-1 - bump version to 7.7-1 * Sun Apr 17 2011 Yoji TOYODA 7.6-1 - remove BuildArch: noarch - bump version to 7.6-1 * Tue Apr 07 2009 Daisuke SUZUKI 7.4-1 - spec in utf-8 - bump version to 7.4-1 * Thu Apr 17 2008 Daisuke SUZUKI 7.3-1 - own %%{_datadir}/X11 - Obsoletes: XOrg-devel < 7.0 * Sat Jan 12 2008 Daisuke SUZUKI 7.1-0vl1 - initial build for Vine Linux based on fodora package. * Mon Jul 10 2006 Mike A. Harris 7.1-2.fc6 - Reword package description for (#189648) * Wed Jun 21 2006 Mike A. Harris 7.1-1 - Bumped version to 7.1-1 and rebuilt for X11R7.1. * Thu Feb 09 2006 Mike A. Harris 7.0-1 - Bumped version to 7.0-1 and rebuilt. * Tue Nov 22 2005 Mike A. Harris 0.99.2-3 - Ok, even though I _tested_ it, and it worked.. the previous build had a broken post, preun, and postun script, due to copy and paste error. Ugh. Also, the script in /usr/bin was broken due to heredoc variable interpolation, which I turned off this time so it is generated correctly. I removed the post, preun, postun scripts as they are overkill anyway. The bug in 0.99.2-2 might cause upgrade or uninstall of the package to fail and require manual uninstallation with --noscripts. Oops. This is what "rawhide" means boys and girls. - Added "Requires(pre): filesystem >= 2.3.7-1", to avoid problems with older versions of it, and to allow packages that need this workaround to only have to set a dependency on xorg-x11-filesystem instead of both packages. * Mon Nov 21 2005 Mike A. Harris 0.99.2-2 - Updated scripts so that they create the directory even if the symlink was not present, to ensure that the dir exists first and avoid theoretical case in which, in a single transaction, xorg-x11-filesystem gets installed, no symlink or dir is present causing the symlink test to fail, so no dir gets created, then another package in the transaction set installs a symlink, then a package tries to install a dir and fails. This should guarantee now that these two dirs are really really dirs, not symlinks for sure for sure. * Mon Nov 21 2005 Mike A. Harris 0.99.2-1 - Initial build. - Package creates the directories /usr/lib/X11 and /usr/include/X11 and owns them as properly flagged dirs in the file manifest. - Added identical pre/post/preun/postun scripts which test to see if any of of each of /usr/include/X11 /usr/lib/X11 /usr/lib64/X11