--- Begin Message ---
Package: nvidia-graphics-drivers
Version: 1.0.8776-2
Severity: wishlist
Tags: patch
The nvidia-glx package performs some diversions that cause the other 3-D
drivers to stop working when it is installed. This causes problems when
users swap in a different video card, or move their hard drive into a
different machine, or in various other situations. The attached patch
to the source package removes the diversions and instead puts the files
into subdirectories and modifies /etc/ld.so.conf and /etc/X11/xorg.conf
to make the driver work properly. nvidia-enable and nvidia-disable
scripts are included.
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/control nvidia-graphics-drivers-1.0.8776/debian/control
--- nvidia-graphics-drivers-1.0.8776.orig/debian/control 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/control 2006-11-29 08:52:00.000000000 -0500
@@ -2,13 +2,13 @@
Section: non-free/x11
Priority: optional
Maintainer: Randall Donald <[email protected]>
-Build-Depends: debhelper (>> 4.0.0), sed (>> 3.0)
+Build-Depends: debhelper (>> 4.0.0), sed (>> 3.0), ghc6
Standards-Version: 3.6.2
Package: nvidia-glx-ia32
Architecture: amd64
-Depends: nvidia-kernel-1.0.8776, ia32-libs, ${shlibs:Depends}
+Depends: nvidia-kernel-1.0.8776, nvidia-glx-support, ia32-libs, ${shlibs:Depends}
Suggests: nvidia-settings, nvidia-kernel-source (>= 1.0.8776)
Conflicts: nvidia-glx-src
Replaces: nvidia-glx-src
@@ -31,7 +31,7 @@
Package: nvidia-glx
Architecture: i386 amd64
-Depends: nvidia-kernel-1.0.8776, x11-common (>= 1:7.0.0), ${shlibs:Depends}
+Depends: nvidia-kernel-1.0.8776, nvidia-glx-support, x11-common (>= 1:7.0.0), ${shlibs:Depends}
Suggests: nvidia-settings, nvidia-kernel-source (>= 1.0.8776)
Conflicts: nvidia-glx-src, nvidia-glx-dev (<< 1.0.8774-5)
Provides: xserver-xorg-video-1.0
@@ -52,7 +52,14 @@
.
Please see the nvidia-kernel-source package for building the kernel module
required by this package.
-
+
+Package: nvidia-glx-support
+Architecture: i386 amd64
+Description: Support scripts for enabling and disabling the nvidia drivers
+ In order to enable the nvidia drivers it is necessary to edit the xorg.conf
+ file, modify /etc/ld.so.conf, and run ldconfig. The scripts in this package
+ perform these tasks.
+
Package: nvidia-glx-dev
Architecture: i386 amd64
Depends: nvidia-glx (>= 1.0.8776)
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/control.in nvidia-graphics-drivers-1.0.8776/debian/control.in
--- nvidia-graphics-drivers-1.0.8776.orig/debian/control.in 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/control.in 2006-11-29 09:11:18.000000000 -0500
@@ -8,7 +8,7 @@
Package: nvidia-glx-ia32
Architecture: amd64
-Depends: nvidia-kernel-#VERSION#, ia32-libs, ${shlibs:Depends}
+Depends: nvidia-kernel-#VERSION#, nvidia-glx-support, ia32-libs, ${shlibs:Depends}
Suggests: nvidia-settings, nvidia-kernel-source (>= #VERSION#)
Conflicts: nvidia-glx-src
Replaces: nvidia-glx-src
@@ -31,7 +31,7 @@
Package: nvidia-glx
Architecture: i386 amd64
-Depends: nvidia-kernel-#VERSION#, x11-common (>= 1:7.0.0), ${shlibs:Depends}
+Depends: nvidia-kernel-#VERSION#, nvidia-glx-support, x11-common (>= 1:7.0.0), ${shlibs:Depends}
Suggests: nvidia-settings, nvidia-kernel-source (>= #VERSION#)
Conflicts: nvidia-glx-src, nvidia-glx-dev (<< 1.0.8774-5)
Provides: xserver-xorg-video-1.0
@@ -52,6 +52,13 @@
.
Please see the nvidia-kernel-source package for building the kernel module
required by this package.
+
+Package: nvidia-glx-support
+Architecture: i386 amd64
+Description: Support scripts for enabling and disabling the nvidia drivers
+ In order to enable the nvidia drivers it is necessary to edit the xorg.conf
+ file, modify /etc/ld.so.conf, and run ldconfig. The scripts in this package
+ perform these tasks.
Package: nvidia-glx-dev
Architecture: i386 amd64
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/editxconf.hs nvidia-graphics-drivers-1.0.8776/debian/editxconf.hs
--- nvidia-graphics-drivers-1.0.8776.orig/debian/editxconf.hs 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/editxconf.hs 2006-11-29 08:41:56.000000000 -0500
@@ -0,0 +1,240 @@
+#!/usr/bin/runhaskell
+
+-- Parse an xorg.conf file, modify it, and rewrite it.
+-- Author: David Fox <[email protected]>, 19 Nov 2006.
+
+import Control.Exception
+import Data.List
+import Data.Maybe
+import System.Cmd
+import System.Console.GetOpt
+import System.Directory
+import System.Environment
+import System.IO
+import System.Posix.Files
+import Text.Regex
+
+-- | The elements of an xorg.conf file.
+data Line
+ = Comment String String
+ | Section String String String String [Line]
+ | SubSection String String String String [Line]
+ | EndSection String String
+ | EndSubSection String String
+ | Param String String String String String
+ deriving Eq
+
+-- | What we can do - change a line, section or subsection, set the
+-- path of the xorg.conf file, and print the help message.
+data Operation
+ = Function ModifyLine
+ | Path FilePath
+ | Help
+
+-- | The signature of a function that modifies a line or section.
+type ModifyLine = Maybe String -> Maybe String -> Line -> [Line]
+
+instance Show Line where
+ show (Comment prefix suffix) = prefix ++ suffix
+ show (Section prefix sep name suffix lines) =
+ prefix ++ "Section" ++ sep ++ "\"" ++ name ++ "\"" ++
+ suffix ++ concat (map show lines)
+ show (SubSection prefix sep name suffix lines) =
+ prefix ++ "SubSection" ++ sep ++ "\"" ++ name ++ "\"" ++
+ suffix ++ concat (map show lines)
+ show (EndSection prefix suffix) = prefix ++ "EndSection" ++ suffix
+ show (EndSubSection prefix suffix) = prefix ++ "EndSubSection" ++ suffix
+ show (Param prefix name sep value suffix) =
+ prefix ++ name ++ sep ++ value ++ suffix
+
+defaultPath = "/etc/X11/xorg.conf"
+
+main :: IO ()
+main =
+ do
+ -- Process the command line arguments.
+ args <- System.Environment.getArgs
+ flags <-
+ case getOpt Permute optSpecs args of
+ (o, [], []) -> return o
+ (o, extra, []) -> return o
+ (_, _, errs) -> ioError (userError (concat errs ++ usage))
+ let help = length (filter isHelp flags) > 0
+ let path = maybe defaultPath id (foldl findPath Nothing flags)
+ let f = foldl findFunction Nothing flags
+ case (help, f) of
+ (True, _) ->
+ putStr usage
+ (False, Just f) ->
+ do
+ -- Read and parse the xorg.conf file
+ text <- readFile path
+ let conf = buildGroups . catMaybes . map parseLine . lines $ text
+ -- Peform the modification
+ let conf' = modify f Nothing Nothing conf
+ -- Rebuild the text file, rewrite it if it changed
+ let text' = concat . map show $ conf'
+ if text /= text' then edit path text' else hPutStrLn stderr ("No modification of " ++ path ++ " required.")
+ where
+ usage = usageInfo ("Usage: editxconf [OPTION...]") optSpecs
+ findPath (Just path) _ = Just path
+ findPath Nothing (Path path) = Just path
+ findPath Nothing _ = Nothing
+ findFunction (Just f) _ = Just f
+ findFunction Nothing (Function f) = Just f
+ findFunction Nothing _ = Nothing
+ isHelp Help = True
+ isHelp _ = False
+
+edit :: FilePath -> String -> IO ()
+-- ^ Modify the contents of a file as safely as possible. If we
+-- can't write the new text into the file, leave it unchanged.
+-- Assume the new text differs from the old.
+edit path text =
+ do
+ -- Write the new file
+ writeFile (path ++ ".new") text
+ -- Remove any existing backup
+ doesFileExist (path ++ "~") >>= bool (return ()) (removeFile (path ++ "~"))
+ -- Move the original to the backup if it exists and remove the original
+ doesFileExist path >>= bool (return ()) (rename path (path ++ "~"))
+ -- Rename the new file
+ try (rename (path ++ ".new") path) >>= either (\ e -> do rename (path ++ "~") path; error (show e)) return
+ hPutStrLn stderr ("File " ++ path ++ " modified.")
+ system ("diff -ru " ++ path ++ "~ " ++ path ++ " 1>&2")
+ return ()
+
+bool f _ False = f
+bool _ t True = t
+
+parseLine :: String -> Maybe Line
+-- ^ Try to parse a line of an xorg.conf file. Six different
+-- regular expressions are tried in order, and the first that
+-- matches is used. The result is passed to the corresponding
+-- function to build the line.
+parseLine line =
+ foldl tryRE Nothing
+ [(commentRE, commentFN),
+ (sectionRE, sectionFN),
+ (subSectionRE, subSectionFN),
+ (endSectionRE, endSectionFN),
+ (endSubSectionRE, endSubSectionFN),
+ (paramRE, paramFN)]
+ where
+ tryRE result (re, f) =
+ case result of
+ Just x -> Just x
+ Nothing -> maybe Nothing (Just . f) (matchRegex re line)
+ commentRE = mkRegex ("^" ++ groupRE optionalWhite ++ "(#.*)?$")
+ commentFN [prefix, suffix] = Comment prefix (suffix ++ "\n")
+ sectionRE = mkRegex ("^" ++ groupRE optionalWhite ++ "Section" ++
+ groupRE white ++ quotedString ++ groupRE optionalWhite ++ "$")
+ sectionFN [prefix, sep, name, _, suffix] = Section prefix sep name (suffix ++ "\n") []
+ subSectionRE = mkRegex ("^" ++ groupRE optionalWhite ++ "SubSection" ++
+ groupRE white ++ quotedString ++ groupRE optionalWhite ++ "$")
+ subSectionFN [prefix, sep, name, _, suffix] = SubSection prefix sep name (suffix ++ "\n") []
+ endSectionRE = mkRegex ("^" ++ groupRE optionalWhite ++ "EndSection" ++
+ groupRE optionalWhite ++ "$")
+ endSectionFN [prefix, suffix] = EndSection prefix (suffix ++ "\n")
+ endSubSectionRE = mkRegex ("^" ++ groupRE optionalWhite ++ "EndSubSection" ++
+ groupRE optionalWhite ++ "$")
+ endSubSectionFN [prefix, suffix] = EndSubSection prefix (suffix ++ "\n")
+ paramRE = mkRegex ("^" ++ groupRE optionalWhite ++ groupRE nonWhite ++
+ groupRE (groupRE white ++ groupRE ".*" ++ groupRE optionalWhite) ++ "?$")
+ paramFN [prefix, name, _, sep, value, suffix] = Param prefix name sep value (suffix ++ "\n")
+
+buildGroups :: [Line] -> [Line]
+-- ^ Group the lines of the sections and subsections
+buildGroups (Section prefix sep name suffix [] : lines) =
+ case break isEndSection lines of
+ (section, (end : extra)) -> Section prefix sep name suffix (buildGroups section ++ [end]) : buildGroups extra
+ (_, []) -> error "Missing EndSection"
+ where
+ isEndSection (EndSection _ _) = True
+ isEndSection _ = False
+buildGroups (SubSection prefix sep name suffix [] : lines) =
+ case break isEndSubSection lines of
+ (section, (end : extra)) -> SubSection prefix sep name suffix (buildGroups section ++ [end]) : buildGroups extra
+ (_, []) -> error "Missing EndSubSection"
+ where
+ isEndSubSection (EndSubSection _ _) = True
+ isEndSubSection _ = False
+buildGroups (line : lines) = line : buildGroups lines
+buildGroups [] = []
+
+modify :: ModifyLine -> Maybe String -> Maybe String -> [Line] -> [Line]
+-- ^ Map every line in the xorg.conf over f to get a modified config.
+-- The function f returns a list of lines, so lines can be added or
+-- eliminated by returning more or less than one line.
+modify f Nothing Nothing (Section prefix sep sectionName suffix sectionLines : lines) =
+ let sectionLines' = modify f (Just sectionName) Nothing sectionLines in
+ let section' = Section prefix sep sectionName suffix sectionLines' in
+ f Nothing Nothing section' ++ modify f Nothing Nothing lines
+modify f _ _ (Section _ _ _ _ _ : _) = error "Misplaced Section"
+modify f (Just sectionName) Nothing (SubSection prefix sep subSectionName suffix subSectionLines : lines) =
+ let subSectionLines' = modify f (Just sectionName) (Just subSectionName) subSectionLines in
+ let subSection' = SubSection prefix sep subSectionName suffix subSectionLines' in
+ f (Just sectionName) Nothing subSection' ++ modify f (Just sectionName) Nothing lines
+modify f _ _ (SubSection _ _ _ _ _ : _) = error "Misplaced SubSection"
+modify f section subsection (line : lines) = f section subsection line ++ modify f section subsection lines
+modify _ _ _ [] = []
+
+addPrefixToModulePath :: FilePath -> Maybe String -> Maybe String -> Line -> [Line]
+-- ^ A modification function to add a path to the beginning
+-- of a colon separated path list, removing any instances
+-- that may already be present.
+addPrefixToModulePath path (Just "Files") Nothing (Param prefix "ModulePath" sep value suffix) =
+ let paths = parseModulePath value in
+ let paths' = path : filter (/= path) paths in
+ [Param prefix "ModulePath" sep ("\"" ++ concat (intersperse ":" paths') ++ "\"") suffix]
+addPrefixToModulePath path _ _ line = [line]
+
+removeFromModulePath :: FilePath -> Maybe String -> Maybe String -> Line -> [Line]
+-- ^ A modification function to remove a path from the ModulePath
+-- value.
+removeFromModulePath path (Just "Files") Nothing (Param prefix "ModulePath" sep value suffix) =
+ let paths = parseModulePath value in
+ let paths' = filter (/= path) paths in
+ [Param prefix "ModulePath" sep ("\"" ++ concat (intersperse ":" paths') ++ "\"") suffix]
+removeFromModulePath path _ _ line = [line]
+
+parseModulePath :: String -> [String]
+-- ^ Given a string of colon separated paths, possibly quoted, return
+-- ^ a list of the paths.
+parseModulePath value =
+ let paths =
+ case matchRegex modulePathRE value of
+ Just [s, _, ""] -> s
+ Just ["", _, s] -> s
+ _ -> error "Internal error" in
+ filter (/= "") . split (== ':') $ paths
+ where
+ modulePathRE = mkRegex ("^" ++ optionalWhite ++ quotedString ++ "|(.*)" ++ optionalWhite ++ "$")
+
+-- Some regular expression components.
+quotedString = "\"" ++ groupRE ((groupRE "[^\"]|\\\"") ++ "*") ++ "\""
+white = "[ \t]+"
+nonWhite = "[^ \t]+"
+optionalWhite = "[ \t]*"
+groupRE s = "(" ++ s ++ ")"
+
+split :: (a -> Bool) -> [a] -> [[a]]
+-- ^ Split a list at the elements which match the predicate.
+split f [] = []
+split f s =
+ case break f s of
+ (s, []) -> [s]
+ (s, _ : t) -> s : split f t
+
+optSpecs :: [OptDescr Operation]
+optSpecs =
+ [Option ['a'] ["add-module-path"]
+ (ReqArg (\ path -> Function (addPrefixToModulePath path)) "PATH")
+ "Add a path to the beginning of the ModulePath value in the Files section.",
+ Option ['r'] ["remove-module-path"]
+ (ReqArg (\ path -> Function (removeFromModulePath path)) "PATH")
+ "Remove a path from the ModulePath value in the Files section.",
+ Option ['p'] ["xorg-conf-location"]
+ (ReqArg Path "PATH")
+ "Location of xorg.conf file, default is /etc/X11/xorg.conf.",
+ Option ['h', '?'] ["help"] (NoArg Help) "Print usage message."]
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-disable nvidia-graphics-drivers-1.0.8776/debian/nvidia-disable
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-disable 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-disable 2006-11-29 08:52:28.000000000 -0500
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+PATH=/bin:/sbin:/usr/bin:/usr/sbin
+
+echo "De-configuring the NVIDIA driver" 1>&2
+
+editxconf --remove-module-path /usr/lib/xorg/modules/nvidia
+
+grep -q '^/usr/lib/nvidia$' /etc/ld.so.conf && {
+ rm -f /etc/ld.so.conf.orig
+ cp /etc/ld.so.conf /etc/ld.so.conf.orig
+ grep -v '^/usr/lib/nvidia$' < /etc/ld.so.conf.orig > /etc/ld.so.conf
+ ldconfig
+}
+
+if [ -e /sys/module/nvidia ]; then
+ modprobe -r nvidia || true
+ modprobe -r drm || true
+fi
+
+echo -n > /etc/modprobe.d/aliases.nvidia
+
+exit 0
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-enable nvidia-graphics-drivers-1.0.8776/debian/nvidia-enable
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-enable 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-enable 2006-11-29 08:52:21.000000000 -0500
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+PATH=/bin:/sbin:/usr/bin:/usr/sbin
+
+editxconf --add-module-path /usr/lib/xorg/modules/nvidia
+
+grep -q '/usr/lib/nvidia' /etc/ld.so.conf || {
+ rm -f /etc/ld.so.conf.orig
+ cp /etc/ld.so.conf /etc/ld.so.conf.orig
+ echo '/usr/lib/nvidia' > /etc/ld.so.conf
+ cat /etc/ld.so.conf.orig >> /etc/ld.so.conf
+ ldconfig
+}
+
+if [ ! -e /sys/module/nvidia ]; then
+ modprobe -r drm || true
+ modprobe nvidia
+fi
+
+# The fglrx module is loaded automatically when the driver starts.
+# However, it is necessary to unload any drm module that is already
+# inserted because it will prevent fglrx from loading. Theoretically,
+# removing drm should do it, but I've seen that fail.
+
+modprobe -r drm
+
+# This causes the nvidia kernel module to be loaded when any /dev/dri
+# device is probed.
+echo "alias /dev/dri* nvidia" > /etc/modprobe.d/aliases.nvidia
+
+exit 0
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.dirs nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.dirs
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.dirs 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.dirs 2006-11-29 12:06:18.000000000 -0500
@@ -2,9 +2,10 @@
usr/lib
usr/share/lintian/overrides
usr/lib/xorg/modules/drivers
-usr/lib/xorg/modules/extensions
+usr/lib/xorg/modules/nvidia
usr/lib/tls
usr/lib/nvidia
+usr/lib/nvidia/tls
usr/share/bug/nvidia-glx
etc
etc/default
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.links nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.links
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.links 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.links 2006-11-29 08:41:56.000000000 -0500
@@ -1,4 +1,4 @@
-emul/ia32-linux/usr/lib/libGL.so.1.0.8776 emul/ia32-linux/usr/lib/libGL.so.1
-emul/ia32-linux/usr/lib/libGL.so.1.0.8776 emul/ia32-linux/usr/lib/libGL.so
-emul/ia32-linux/usr/lib/libGLcore.so.1.0.8776 emul/ia32-linux/usr/lib/libGLcore.so
+emul/ia32-linux/usr/lib/nvidia/libGL.so.1.0.8776 emul/ia32-linux/usr/lib/nvidia/libGL.so.1
+emul/ia32-linux/usr/lib/nvidia/libGL.so.1.0.8776 emul/ia32-linux/usr/lib/nvidia/libGL.so
+emul/ia32-linux/usr/lib/nvidia/libGLcore.so.1.0.8776 emul/ia32-linux/usr/lib/nvidia/libGLcore.so
emul/ia32-linux/usr/lib/libnvidia-tls.so.1.0.8776 emul/ia32-linux/usr/lib/libnvidia-tls.so.1
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.links.in nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.links.in
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.links.in 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.links.in 2006-11-29 08:41:56.000000000 -0500
@@ -1,4 +1,4 @@
-emul/ia32-linux/usr/lib/libGL.so.#VERSION# emul/ia32-linux/usr/lib/libGL.so.1
-emul/ia32-linux/usr/lib/libGL.so.#VERSION# emul/ia32-linux/usr/lib/libGL.so
-emul/ia32-linux/usr/lib/libGLcore.so.#VERSION# emul/ia32-linux/usr/lib/libGLcore.so
+emul/ia32-linux/usr/lib/nvidia/libGL.so.#VERSION# emul/ia32-linux/usr/lib/nvidia/libGL.so.1
+emul/ia32-linux/usr/lib/nvidia/libGL.so.#VERSION# emul/ia32-linux/usr/lib/nvidia/libGL.so
+emul/ia32-linux/usr/lib/nvidia/libGLcore.so.#VERSION# emul/ia32-linux/usr/lib/nvidia/libGLcore.so
emul/ia32-linux/usr/lib/libnvidia-tls.so.#VERSION# emul/ia32-linux/usr/lib/libnvidia-tls.so.1
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.postrm nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.postrm
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.postrm 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.postrm 2006-11-29 08:41:56.000000000 -0500
@@ -19,25 +19,25 @@
case "$1" in
remove|purge)
- dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so > /dev/null
-
- dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so > /dev/null
+
+ #dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so > /dev/null
test -d /emul/ia32-linux/usr/lib/nvidia && \
rmdir /emul/ia32-linux/usr/lib/nvidia || true;
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.preinst nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.preinst
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-ia32.preinst 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-ia32.preinst 2006-11-29 08:41:56.000000000 -0500
@@ -21,25 +21,25 @@
mkdir -p /emul/ia32-linux/usr/lib/nvidia || true
# make diversions
- dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
- dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
- dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so > /dev/null
-
- dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
- dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
- dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
- /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
- /emul/ia32-linux/usr/lib/libGL.so > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so > /dev/null
+
+ #dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1 > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.1.2.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so.1.2 > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx-ia32 --divert \
+ # /emul/ia32-linux/usr/lib/nvidia/libGL.so.ia32-libs \
+ # /emul/ia32-linux/usr/lib/libGL.so > /dev/null
;;
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.init nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.init
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.init 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.init 2006-11-29 08:41:56.000000000 -0500
@@ -32,18 +32,18 @@
then
echo -n "Creating NVIDIA TLS links..."
# remove the symlinks
- rm -f /usr/lib/tls/libGL.so
- rm -f /usr/lib/tls/libGL.so.*
+ rm -f /usr/lib/nvidia/tls/libGL.so
+ rm -f /usr/lib/nvidia/tls/libGL.so.*
rm -f /usr/lib/tls/libnvidia-tls.so
rm -f /usr/lib/tls/libnvidia-tls.so.*
- rm -f /usr/lib/tls/libGL.la
+ rm -f /usr/lib/nvidia/tls/libGL.la
#remove old ones
- rm -f /usr/lib/tls/libGLcore.so.1
- rm -f /usr/lib/tls/libGLcore.so.*
+ rm -f /usr/lib/nvidia/tls/libGLcore.so.1
+ rm -f /usr/lib/nvidia/tls/libGLcore.so.*
# create the symlinks
- ln -s /usr/lib/nvidia/libnvidia-tls.so.1.0.8776 /usr/lib/tls/libnvidia-tls.so.1.0.8776
+ ln -s /usr/lib/nvidia/libnvidia-tls.so.1.0.8776 /usr/lib/nvidia/tls/libnvidia-tls.so.1.0.8776
# reconfigure dynamic linker run-time bindings
ldconfig
echo " done."
@@ -58,10 +58,10 @@
then
echo -n "Removing NVIDIA TLS links..."
# remove the symlinks
- rm -f /usr/lib/tls/libGL.so
- rm -f /usr/lib/tls/libGL.so.*
- rm -f /usr/lib/tls/libGL.la
- rm -f /usr/lib/tls/libGLcore.so.*
+ rm -f /usr/lib/nvidia/tls/libGL.so
+ rm -f /usr/lib/nvidia/tls/libGL.so.*
+ rm -f /usr/lib/nvidia/tls/libGL.la
+ rm -f /usr/lib/nvidia/tls/libGLcore.so.*
rm -f /usr/lib/tls/libnvidia-tls.so
rm -f /usr/lib/tls/libnvidia-tls.so.*
# reconfigure dynamic linker run-time bindings
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.links nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.links
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.links 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.links 2006-11-29 12:06:57.000000000 -0500
@@ -1,7 +1,7 @@
-usr/lib/libGL.so.1.0.8776 usr/lib/libGL.so.1
-usr/lib/libGLcore.so.1.0.8776 usr/lib/libGLcore.so.1
+usr/lib/nvidia/libGL.so.1.0.8776 usr/lib/nvidia/libGL.so.1
+usr/lib/nvidia/libGLcore.so.1.0.8776 usr/lib/nvidia/libGLcore.so.1
usr/lib/libnvidia-tls.so.1.0.8776 usr/lib/libnvidia-tls.so.1
-usr/lib/xorg/modules/extensions/libglx.so.1.0.8776 usr/lib/xorg/modules/extensions/libglx.so
+usr/lib/xorg/modules/nvidia/libglx.so.1.0.8776 usr/lib/xorg/modules/nvidia/libglx.so
usr/lib/libXvMCNVIDIA.so.1.0.8776 usr/lib/libXvMCNVIDIA.so.1
usr/lib/libXvMCNVIDIA.so.1.0.8776 usr/lib/libXvMCNVIDIA_dynamic.so.1
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.links.in nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.links.in
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.links.in 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.links.in 2006-11-29 12:07:13.000000000 -0500
@@ -1,7 +1,7 @@
-usr/lib/libGL.so.#VERSION# usr/lib/libGL.so.1
-usr/lib/libGLcore.so.#VERSION# usr/lib/libGLcore.so.1
+usr/lib/libGL.so.#VERSION# usr/lib/nvidia/libGL.so.1
+usr/lib/libGLcore.so.#VERSION# usr/lib/nvidia/libGLcore.so.1
usr/lib/libnvidia-tls.so.#VERSION# usr/lib/libnvidia-tls.so.1
-usr/lib/xorg/modules/extensions/libglx.so.#VERSION# usr/lib/xorg/modules/extensions/libglx.so
+usr/lib/xorg/modules/nvidia/libglx.so.#VERSION# usr/lib/xorg/modules/nvidia/libglx.so
usr/lib/libXvMCNVIDIA.so.#VERSION# usr/lib/libXvMCNVIDIA.so.1
usr/lib/libXvMCNVIDIA.so.#VERSION# usr/lib/libXvMCNVIDIA_dynamic.so.1
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.postrm nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.postrm
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.postrm 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.postrm 2006-11-29 08:41:56.000000000 -0500
@@ -18,14 +18,14 @@
case "$1" in
remove|purge)
- dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGLcore.a.xlibmesa /usr/lib/xorg/modules/extensions/libGLcore.a > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.a.xlibmesa /usr/lib/xorg/modules/extensions/libglx.a > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/xorg/modules/extensions/libglx.so > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGLcore.a.xlibmesa /usr/lib/xorg/modules/extensions/libGLcore.a > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.a.xlibmesa /usr/lib/xorg/modules/extensions/libglx.a > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/xorg/modules/extensions/libglx.so > /dev/null
- dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null
+ #dpkg-divert --remove --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null
rm -f /usr/lib/xorg/modules/extensions/libglx.so.1.0.8776 2> /dev/null || true
if [ -d /usr/lib/nvidia ]; then
rmdir /usr/lib/nvidia/ || true;
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.preinst nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.preinst
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx.preinst 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx.preinst 2006-11-29 08:41:56.000000000 -0500
@@ -80,19 +80,19 @@
dpkg-divert --remove --rename --package nvidia-glx-dev --divert /usr/X11R6/lib/nvidia/libGL.a.xlibmesa /usr/X11R6/lib/libGL.a > /dev/null
fi
# create new diversion directories
- if [ ! -d /usr/lib/nvidia ]; then
- mkdir -p /usr/lib/nvidia || true
- fi
+ #if [ ! -d /usr/lib/nvidia ]; then
+ # mkdir -p /usr/lib/nvidia || true
+ #fi
# make new diversions
- dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null
- dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.xlibmesa /usr/lib/libGL.so.1 > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.1.2.xlibmesa /usr/lib/libGL.so.1.2 > /dev/null
- dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGLcore.a.xlibmesa /usr/lib/xorg/modules/extensions/libGLcore.a > /dev/null
- dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.a.xlibmesa /usr/lib/xorg/modules/extensions/libglx.a > /dev/null
- dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/xorg/modules/extensions/libglx.so > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGLcore.a.xlibmesa /usr/lib/xorg/modules/extensions/libGLcore.a > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.a.xlibmesa /usr/lib/xorg/modules/extensions/libglx.a > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libglx.so.xlibmesa /usr/lib/xorg/modules/extensions/libglx.so > /dev/null
- dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null
+ #dpkg-divert --add --rename --package nvidia-glx --divert /usr/lib/nvidia/libGL.so.xlibmesa /usr/lib/libGL.so > /dev/null
;;
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-support.dirs nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-support.dirs
--- nvidia-graphics-drivers-1.0.8776.orig/debian/nvidia-glx-support.dirs 1969-12-31 19:00:00.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/nvidia-glx-support.dirs 2006-11-29 08:41:56.000000000 -0500
@@ -0,0 +1 @@
+sbin
diff -ruN nvidia-graphics-drivers-1.0.8776.orig/debian/rules nvidia-graphics-drivers-1.0.8776/debian/rules
--- nvidia-graphics-drivers-1.0.8776.orig/debian/rules 2006-11-29 08:41:11.000000000 -0500
+++ nvidia-graphics-drivers-1.0.8776/debian/rules 2006-11-29 12:07:30.000000000 -0500
@@ -115,6 +115,7 @@
dh_clean
rm -fr $(dirname) nvidia-kernel-source.tar.gz
+ cd debian && rm -f editxconf editxconf.hi editxconf .o
@@ -150,16 +151,16 @@
$(CURDIR)/debian/nvidia-glx-dev/usr/include/GL
install -m 0644 $(dirname)/usr/lib/libGL.so.${version} \
- $(CURDIR)/debian/nvidia-glx/usr/lib
+ $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia
install -m 0644 $(dirname)/usr/lib/libGLcore.so.${version} \
- $(CURDIR)/debian/nvidia-glx/usr/lib
+ $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia
sed "s/__GENERATED_BY__/Debian nvidia-graphics-drivers/" $(dirname)/usr/lib/libGL.la | sed "s/__LIBGL_PATH__/\/usr\/lib/" > $(CURDIR)/debian/nvidia-glx-dev/usr/lib/libGL.la
# install -m 0644 $(dirname)/usr/lib/libGL.la $(CURDIR)/debian/nvidia-glx/usr/lib/libGL.la
# TLS (nvidia-tls new for 6106)
- install $(dirname)/usr/lib/libnvidia-tls.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/
+ install $(dirname)/usr/lib/libnvidia-tls.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia/
- install $(dirname)/usr/lib/tls/libnvidia-tls.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia
+ install $(dirname)/usr/lib/tls/libnvidia-tls.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia/tls
#sed "s/__GENERATED_BY__/Debian nvidia-graphics-drivers/" $(dirname)/usr/lib/tls/libGL.la | sed "s/__LIBGL_PATH__/\/usr\/lib\/tls/" > $(CURDIR)/debian/nvidia-glx-dev/usr/lib/nvidia/libGL.la
# install -m 0644 $(dirname)/usr/lib/tls/libGL.la $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia/libGL.la
@@ -167,7 +168,7 @@
install -m 0644 $(dirname)/usr/lib/libnvidia-cfg.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia/
- install $(dirname)/usr/X11R6/lib/modules/extensions/libglx.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/xorg/modules/extensions/
+ install $(dirname)/usr/X11R6/lib/modules/extensions/libglx.so.${version} $(CURDIR)/debian/nvidia-glx/usr/lib/xorg/modules/nvidia/libglx.so.${version}
install $(dirname)/usr/bin/tls_test $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia
install $(dirname)/usr/bin/tls_test_dso.so $(CURDIR)/debian/nvidia-glx/usr/lib/nvidia
@@ -178,16 +179,21 @@
if [ "$(DEB_BUILD_ARCH)" == "amd64" ] ; then \
install $(dirname)/usr/lib32/libGLcore.so.${version} \
- $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib ; \
+ $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib/nvidia ; \
install $(dirname)/usr/lib32/libGL.so.${version} \
- $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib ; \
+ $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib/nvidia ; \
install $(dirname)/usr/lib32/libnvidia-tls.so.${version} \
- $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib ; \
+ $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib/nvidia ; \
install $(dirname)/usr/lib32/tls/libnvidia-tls.so.${version} \
- $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib/tls ; \
+ $(CURDIR)/debian/nvidia-glx-ia32/emul/ia32-linux/usr/lib/nvidia/tls ; \
fi
install -m 755 $(dirname)/usr/bin/nvidia-bug-report.sh $(CURDIR)/debian/nvidia-glx/usr/bin/
+ install -m 755 $(CURDIR)/debian/nvidia-enable $(CURDIR)/debian/nvidia-glx-support/sbin/
+ install -m 755 $(CURDIR)/debian/nvidia-disable $(CURDIR)/debian/nvidia-glx-support/sbin/
+ install -m 755 $(CURDIR)/debian/editxconf.hs $(CURDIR)/debian/nvidia-glx-support/sbin/
+ cd $(CURDIR)/debian && ghc6 --make -O2 editxconf.hs -o editxconf && strip editxconf
+ install -m 755 $(CURDIR)/debian/editxconf $(CURDIR)/debian/nvidia-glx-support/sbin/
# use separate package
#install -m 755 $(dirname)/usr/bin/nvidia-xconfig $(CURDIR)/debian/nvidia-glx/usr/bin/
--- End Message ---