]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
redhat-packaging-updates-20061201
authorDerrick Brashear <shadow@dementia.org>
Fri, 1 Dec 2006 18:32:49 +0000 (18:32 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 1 Dec 2006 18:32:49 +0000 (18:32 +0000)
updates from derek

updates for s390x

updates to handle suse

src/packaging/RedHat/openafs-README
src/packaging/RedHat/openafs-buildall.sh
src/packaging/RedHat/openafs-client.init
src/packaging/RedHat/openafs-kvers-is.sh
src/packaging/RedHat/openafs.spec.in

index 81a688ba30c6838968a0d8dc86b79ed7c05551da..0c84d7f228e3b926ab6c84cda69a10c2cae24f7d 100644 (file)
@@ -2,28 +2,52 @@ The files in the src directory are covered by the IBM Public License
 and the SUN ONC RPC license, with are included in the files
 LICENSE.IBM and LICENSE.Sun in the same directory as this README.
 
+There are two ways to build the AFS kernel module on the local system:
+Building an RPM and Building Manually
+
+
+  REBUILDING FROM SOURCE RPM
+  --------------------------
+
+The first (and preferred) way to build a kernel module is to build an
+openafs-kernel RPM from the OpenAFS Source RPM.  To do this you can
+just use "rpm --rebuild" from the Source RPM (SRPM) and specify that
+you want to build a module and the target CPU.  For example:
+
+  rpmbuild --rebuild --define "build_modules 1" --target=i686
+
+You MUST specify the target CPU or it will not build the correct
+module for your system.
+
+For more information on all the various options for rebuilding your
+kernel module via RPM, run:
+
+  rpm -qi openafs
+
+This will explain all your options for controlling your build.
+
+
+  REBUILDING MANUALLY
+  -------------------
+
+The second method to build a kernel module is to build it manually
+from source.  You really should just build the RPM, but if you really
+don't want to you can do it this way instead.
+
 To build the AFS kernel module on a local system, run:
 
     ./configure
     make
 
 When it's done, the binary module will be src/MODLOAD-XXX/libafs-XXX.o
-and must be manually installed for your kernel.  To do this you
-generally copy the file to /usr/vice/etc/modload:
-
-    cp src/MODLOAD-XXX/libafs-XXX.o /usr/vice/etc/modload/
+(or .ko), where "XXX" is your linux kernel version.  Note that it may
+also compile as src/MODLOAD-XXX/openafs.ko.
 
-Then you need to add this module to your SymTable by using "afsmodname"
-to generate a new SymTable:
+You must manually install this module on your system.  To do this you
+generally copy the file to /lib/modules/XXX/openafs.o:
 
-    cd /usr/vice/etc/modload
-    ../afsmodname -f SymTable.local -g libafs-XXX.o
+    cp src/MODLOAD-XXX/libafs-XXX.o /lib/modules/XXX/openafs.o
 
-NOTE: This only works if you have your kernel compiled with symbol
-version support.  Without symbol version support you will not be able
-to choose kernel modules.  If you compile without kernel module
-support then you need to remove the SymTable file from
-/usr/vice/etc/modload to allow the init scripts to choose a module
-based on 'uname -r' instead of /proc/ksyms.  Keep in mind that using
-/proc/ksyms is MUCH better, so it is NOT recommended to use this
-method!
+Then you need to tell your system about the new kernel module by
+running "depmod -ae XXX" to run the module dependencies for kernel
+version "XXX".
index 39fb6e679873c6e4e1e2ca4bd9c9d1f9fd85281a..305405d4b25e8c2f08baf36c6a362d7f8c275f2f 100755 (executable)
@@ -15,19 +15,27 @@ buildopts=
 
 ############################################################################
 #  Figure out the release version
-rhrel=`cat /etc/redhat-release`
+[ -f /etc/redhat-release ] && rhrel=`cat /etc/redhat-release`
+[ -f /etc/SuSE-release ] && rhrel=`head -1  /etc/SuSE-release`
+
 if [ `echo $rhrel | grep -c 'Fedora Core'` = 1 ] ; then
   ostype='fc'
+  osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
 elif [ `echo $rhrel | grep -c 'Red Hat Enterprise Linux'` = 1 ] ; then
   ostype='rhel'
   excludearch=i586
+  osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
 elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
   ostype='rh'
+  osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
+elif [ `echo $rhrel | grep -c 'SUSE LINUX'` = 1 ] ; then
+  ostype='suse'
+  specdir=/usr/src/packages/SPECS 
+  osrel=`grep VERSION /etc/SuSE-release|awk '{print $3}'`
 else
   echo "Unknown Linux Release: $rhrel"
   exit 1
 fi
-osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
 osvers="$ostype$osrel"
 
 ############################################################################
@@ -35,13 +43,14 @@ osvers="$ostype$osrel"
 # kernel version is "close enough" to tell us whether it's a
 # 2.4 or 2.6 kernel.
 kvers=`uname -r`
+kbase=/usr/src/linux-
+
 case $kvers in
   2.4.*)
-    kbase=/usr/src/linux-
     kv=2.4.
     ;;
   2.6.*)
-    kbase=/usr/src/kernels/
+    [ -d /usr/src/kernels ] && kbase=/usr/src/kernels/
     kv=2.6.
     ;;
   *)
@@ -49,7 +58,6 @@ case $kvers in
     exit 1
     ;;
 esac
-
 ############################################################################
 # Now build the packages and all the kernel modules
 
index 2de4dd418cf31aadb0b5b3c8fa064896a43a6aee..a2cdfb6ee9d25e9bec541f0efaeae4e4cec72b16 100644 (file)
 
 
 start() {
+        echo -n $"Updating CellServDB: "
+        cat /usr/vice/etc/CellServDB.local /usr/vice/etc/CellServDB.dist > \
+               /usr/vice/etc/CellServDB
+        chmod 644 /usr/vice/etc/CellServDB
+        echo
+        echo -n $"Updating SuidCells: "
+        cat /usr/vice/etc/SuidCells.local /usr/vice/etc/SuidCells.dist > \
+               /usr/vice/etc/SuidCells
+        chmod 644 /usr/vice/etc/SuidCells
+        echo
        echo -n $"Starting openafs-client: "
        if [ -e /var/lock/subsys/openafs-client ] ; then
                echo -n $"cannot start openafs-client: already running"
index b69f8dfb6ad315723154ac61a186903b21c56b00..c96a08e28b7f77d024692fc8bea1f1c03adfb35b 100755 (executable)
@@ -10,13 +10,16 @@ fi
 
 if [ "$1" = "parset" ] ; then
   #logger "parsing type from $2"
-  echo "$2" | /bin/sed -e 's/^.*[0-9L]\([^0-9L]*\)/\1/'
+  case "$2" in
+    *smp) echo 'smp' ;;
+    *hugemem) echo 'hugemem' ;;
+  esac
   exit 0
 fi
 
 if [ "$1" = "kvers" ] ; then
   #logger "parsing type from $2"
-  echo "$2" | /bin/sed -e 's/^\(.*[0-9L]\)[^0-9L]*$/\1/'
+  echo "$2" | /bin/sed -re 's/smp$//; s/hugemem$//;'
   exit 0
 fi
 
@@ -31,6 +34,19 @@ if [ "$1" = "find" ] ; then
   fi
 fi
 
+# provideskernelarch ksrcdir targetcpu
+if [ "$1" = "provideskernelarch" ]; then
+  kernelrpm=`rpm -qf "$2"`
+  if [ -n "$kernelrpm" ]; then
+    if rpm -q --provides "$kernelrpm" |egrep -q "^kernel(|-devel)-$3 "; then
+      echo 1
+      exit 1
+    fi
+  fi
+  echo 0
+  exit 0
+fi
+
 #logger "comparing $1 to $2"
 if [ "$1" = "$2" ] ; then
   #logger "yes"
index 67bb8716e985b3baba6a11b274144b189303aefa..dcb22d1092b5c9f37b6e6418366a1c908562a743 100644 (file)
@@ -2,6 +2,9 @@
 
 %define afsvers 1.4.2
 %define pkgvers 1.4.2
+# for beta/rc releases make pkgrel 0.X.<tag>
+# for real releases make pkgrel 1 (or more for extra releases)
+#%define pkgrel 0.1.rc1
 %define pkgrel 1
 
 %if %{?osvers:0}%{!?osvers:1}
@@ -65,6 +68,9 @@
 # Define the location of your init.d directory
 %define initdir /etc/init.d
 
+#determine if the kernel provides an arch-specific Provides
+%define kprovidesarch %(%{kversis} provideskernelarch %{ksrcdir} %{_target_cpu})
+
 # Define the location of the PAM security module directory
 %define pamdir /%{_lib}/security
 
@@ -88,9 +94,7 @@
 %define kdepend kernel-source
 %define up_package 1
 %define smp_package 1
-%define largesmp_package 1
 %define smp_ext smp
-%define largesmp_ext largesmp
 
 %define bigmem_package %(%{kversis} find %{ksrcdir} %{_target_cpu} bigmem) 
 %if %{bigmem_package}
 %define hugemem_ext hugemem
 %endif
 
-%define kvariations up smp largesmp %{?bigmem_ext:%{bigmem_ext}} %{?hugemem_ext:%{hugemem_ext}}
+%define kvariations up smp %{?bigmem_ext:%{bigmem_ext}} %{?hugemem_ext:%{hugemem_ext}}
 
 #######################################################################
 # 2.6
 %else
 %if %{kvers_is_26}
 %define kvariations up
+%ifarch s390x
+%define ktype "smp"
+%define up_package 1
+%else
 %define up_package %(%{kversis} "%{ktype}" "")
 %define smp_package %(%{kversis} "%{ktype}" "smp")
-%define largesmp_package %(%{kversis} "%{ktype}" "largesmp")
 %define hugemem_package %(%{kversis} "%{ktype}" "hugemem")
+%define largesmp_package %(%{kversis} "%{ktype}" "largesmp")
+%endif
 
 %if !%{up_package} && !%{smp_package} && !%{hugemem_package} && !%{largesmp_package}
 %error "unknown kernel type: %{ktype}"
 # you'll need to tweak that last bit.
 %if !%{build_userspace_on_cmdline} && !%{build_modules_on_cmdline}
 
-%ifarch x86_64 ia64
+%ifarch x86_64 ia64 s390 s390x
 %define build_userspace 1
 %define build_modules 1
+%ifarch x86_64 ia64
+%define build_authlibs 1
+%else
+%define build_authlibs 0
+%endif
 %endif
 
 %ifarch %{ix86}
 %define build_userspace 0
 %define build_modules 1
+%define build_authlibs 1
 %endif
 
 %ifarch i386
 %define build_userspace 1
 %define build_modules 0
+%define build_authlibs 1
 %endif
 
 %endif
@@ -179,7 +195,10 @@ URL: http://www.openafs.org
 BuildRoot: %{_tmppath}/%{name}-%{version}-root
 Packager: Derek Atkins <warlord@MIT.EDU>
 Group: Networking/Filesystems
-BuildRequires: %{?kdepend:%{kdepend}, } pam-devel
+BuildRequires: %{?kdepend:%{kdepend}, } pam-devel, ncurses-devel
+%if %{build_userspace}
+BuildRequires: autoconf
+%endif
 ExclusiveArch: %{ix86} x86_64 ia64
 
 #    http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
@@ -299,6 +318,7 @@ administrative management.
 This package provides basic server support to host files in an AFS
 Cell.
 
+%if %{build_authlibs}
 %package authlibs
 Summary: OpenAFS authentication shared libraries
 Group: Networking/Filesystems
@@ -313,9 +333,12 @@ This package provides a shared version of libafsrpc and libafsauthent.
 None of the programs included with OpenAFS currently use these shared 
 libraries; however, third-party software that wishes to perform AFS 
 authentication may link against them.
+%endif
 
 %package authlibs-devel
+%if %{build_authlibs}
 Requires: openafs-authlibs = %{PACKAGE_VERSION}
+%endif
 Requires: openafs-devel = %{PACKAGE_VERSION}
 Summary: OpenAFS shared library development
 Group: Development/Filesystems
@@ -408,7 +431,7 @@ you are using KAserver instead of Krb5.
 Summary: OpenAFS programs to use with krb5
 Requires: openafs = %{PACKAGE_VERSION}
 Group: Networking/Filesystems
-BuildRequires: krb5-devel
+BuildRequires: krb5-devel, autoconf, automake
 
 %description krb5
 The AFS distributed filesystem.  AFS is a distributed filesystem
@@ -438,9 +461,13 @@ krb4 lookalike services.
 %package kernel
 Summary: OpenAFS Kernel Module (compiled for UP)
 Release: %{modpkgrel}
-Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel = %{kversion}
 Group: Networking/Filesystems
+Provides: openafs-kernel = %{PACKAGE_VERSION}
+%if %{kprovidesarch}
+Requires: kernel-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}
+%endif
 
 %description kernel
 The AFS distributed filesystem.  AFS is a distributed filesystem
@@ -456,7 +483,11 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 Summary: OpenAFS Kernel Module (compiled for SMP)
 Release: %{modpkgrel}
 Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-smp = %{kversion}
+%if %{kprovidesarch}
+Requires: kernel-smp-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?smp_ext:%{smp_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-smp
@@ -473,7 +504,11 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 Summary: OpenAFS Kernel Module (compiled for LARGESMP)
 Release: %{modpkgrel}
 Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-largesmp = %{kversion}
+%if %{kprovidesarch}
+Requires: kernel-largesmp-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?largesmp_ext:%{largesmp_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-largesmp
@@ -490,7 +525,11 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 Summary: OpenAFS Kernel Module (compiled for SMP & big memory support)
 Release: %{modpkgrel}
 Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-bigmem = %{kversion}
+%if %{kprovidesarch}
+Requires: kernel-bigmem-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?bigmem_ext:%{bigmem_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-bigmem
@@ -507,7 +546,11 @@ This package provides a precompiled AFS kernel module for %{kernvers}.
 Summary: OpenAFS Kernel Module (compiled for SMP & huge memory support)
 Release: %{modpkgrel}
 Provides: openafs-kernel = %{PACKAGE_VERSION}
-Requires: kernel-hugemem = %{kversion}
+%if %{kprovidesarch}
+Requires: kernel-hugemem-%{_target_cpu} = %{kversion}
+%else
+Requires: /boot/config-%{kernvers}%{?hugemem_ext:%{hugemem_ext}}
+%endif
 Group: Networking/Filesystems
 
 %description kernel-hugemem
@@ -876,8 +919,8 @@ ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.krb.so
 # Populate /usr/vice/etc
 uve=$RPM_BUILD_ROOT%{_prefix}/vice/etc
 install -p -m 644 %{SOURCE2} $uve/ThisCell
-install -p -m 644 %{SOURCE3} $uve/CellServDB
-install -p -m 644 %{SOURCE4} $uve/SuidCells
+install -p -m 644 %{SOURCE3} $uve/CellServDB.dist
+install -p -m 644 %{SOURCE4} $uve/SuidCells.dist
 install -p -m 644 %{SOURCE5} $uve/cacheinfo
 
 #
@@ -1041,6 +1084,11 @@ for f in afs2k5db fakeka ; do
   rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
 done
 
+%if !%{build_authlibs}
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsauthent.so
+rm -f $RPM_BUILD_ROOT%{_libdir}/libafsrpc.so
+%endif
+
 %endif
 
 %if %{build_modules}
@@ -1057,7 +1105,7 @@ do
     fi
 
     srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
-    dstdir=$RPM_BUILD_ROOT${kvar}/kernel/fs/openafs
+    dstdir=$RPM_BUILD_ROOT${kvar}/fs/openafs
 
     mkdir -p ${dstdir}
 
@@ -1098,6 +1146,16 @@ if [ ! -d /afs ]; then
        chmod 0755 /afs
 fi
 
+# Create the CellServDB and SuidCells
+[ -f /usr/vice/etc/CellServDB.local ] || touch /usr/vice/etc/CellServDB.local
+[ -f /usr/vice/etc/SuidCells.local ] || touch /usr/vice/etc/SuidCells.local
+
+( cd /usr/vice/etc ; \
+  cat CellServDB.local CellServDB.dist > CellServDB ; \
+  chmod 644 CellServDB ; \
+  cat SuidCells.local SuidCells.dist > SuidCells ; \
+  chmod 644 SuidCells )
+
 echo
 echo The AFS cache is configured for 100 MB. Edit the
 echo /usr/vice/etc/cacheinfo file to change this before
@@ -1117,11 +1175,13 @@ echo
 chkconfig --add openafs-server
 %{initdir}/openafs-server condrestart
 
+%if %{build_authlibs}
 %post authlibs
 /sbin/ldconfig
 
 %postun authlibs
 /sbin/ldconfig
+%endif
 
 %preun
 if [ $1 = 0 ] ; then
@@ -1132,6 +1192,9 @@ fi
 if [ $1 = 0 ] ; then
         %{initdir}/openafs-client stop
         chkconfig --del openafs-client
+
+        rm -f /usr/vice/etc/CellServDB /usr/vice/etc/SuidCells
+        rm -f /usr/vice/etc/CellServDB.local /usr/vice/etc/SuidCells.local
 fi
 
 %preun server
@@ -1209,8 +1272,8 @@ fi
 %dir %{_prefix}/vice
 %dir %{_prefix}/vice/cache
 %dir %{_prefix}/vice/etc
-%config %{_prefix}/vice/etc/CellServDB
-%config %{_prefix}/vice/etc/SuidCells
+%{_prefix}/vice/etc/CellServDB.dist
+%{_prefix}/vice/etc/SuidCells.dist
 %config %{_prefix}/vice/etc/ThisCell
 %config %{_prefix}/vice/etc/cacheinfo
 %{_bindir}/cmdebug
@@ -1292,17 +1355,21 @@ fi
 %{_mandir}/man8/volserver.*
 #%{_mandir}/man8/vldb_convert.*
 
+%if %{build_authlibs}
 %files authlibs
 %defattr(-,root,root)
 %{_libdir}/libafsauthent.so.*
 %{_libdir}/libafsrpc.so.*
+%endif
 
 %files authlibs-devel
 %defattr(-,root,root)
 %{_libdir}/libafsauthent.a
-%{_libdir}/libafsauthent.so
 %{_libdir}/libafsrpc.a
+%if %{build_authlibs}
+%{_libdir}/libafsauthent.so
 %{_libdir}/libafsrpc.so
+%endif
 
 %files devel
 %defattr(-,root,root)
@@ -1363,25 +1430,25 @@ fi
 %if %{up_package}
 %files kernel
 %defattr(-,root,root)
-%{kxmoddir}/kernel/fs/openafs/openafs.*
+%{kxmoddir}/fs/openafs/openafs.*
 %endif
 
 %if %{smp_package}
 %files kernel-smp
 %defattr(-,root,root)
-%{kxmoddir}%{?smp_ext:%{smp_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?smp_ext:%{smp_ext}}/fs/openafs/openafs.*
 %endif
 
 %if %{largesmp_package}
 %files kernel-largesmp
 %defattr(-,root,root)
-%{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/fs/openafs/openafs.*
 %endif
  
 %if %{bigmem_package}
 %files kernel-bigmem
 %defattr(-,root,root)
-%{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/kernel/fs/openafs/openafs.*
+%{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/fs/openafs/openafs.*
 %endif
 
 %if %{hugemem_package}
@@ -1398,11 +1465,60 @@ fi
 ###
 ##############################################################################
 %changelog
+* Fri Dec 01 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-2
+- integrate s390x changes
+- allow for building libafs*.a and not libafs*.so into packages, for platforms
+  that won't build the .so files.
+
 * Sun Aug 20 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
 - update to 1.4.2
 - use installed aklog manpage.
 - moduleparam patch obsoleted.
 
+* Tue Aug 22 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.1.rc1
+- update to 1.4.2-rc1
+- hand-apply lee damon's changes to support largesmp kernels from RHEL4
+  (but only add support for 2.6 kernels.  No need for the 2.4 kernels).
+- don't need the posixlock patch anymore.
+
+* Wed Jul 12 2006  Derek Atkins <warlord@MIT.EDU> 1.4.2-0.beta2
+- update to 1.4.2-beta2
+- add linux2.4 posixlock API patch
+
+* Mon Jun 26 2006  Derek Atkins <warlord@MIT.EDU>
+- moduleparam and krb524 patches no longer required in OA-CVS
+
+* Wed May 17 2006  Derek Atkins <warlord@MIT.EDU>
+- change non-target-cpu kernel dep to a file dep
+- make sure we use the proper kernel version for the dependency.
+
+* Tue May 16 2006  Derek Atkins <warlord@MIT.EDU>
+- allow users to specify local CellServDB and SuidCells entries
+  don't overwrite user's changes.  Provide a .dist an let users
+  make entries in a ".local"
+- build the CellServDB and SuidCells at client startup and at
+  client install-time
+- add provideskernelarch functionality to openafs-kvers-is.sh
+- use that functionality to Require kernel{,-<type>}-targetcpu
+  to get better package safety due to RPM bugs where the kernel
+  release isn't used so you can install the kernel module against
+  any kernel of the same major version.
+
+* Mon May 15 2006  Derek Atkins <warlord@MIT.EDU>
+- update the README in openafs-kernel-source
+- fix openafs-kvers-is.sh from Alexander Bergolth's patch.
+- move kernel module from .../kernel/fs/openafs to .../fs/openafs/
+
+* Fri Apr 21 2006  Derek Atkins <warlord@MIT.EDU>
+- build requires autoconf and automake for krb5support
+  and autoconf for standard package
+- dont setup the krb5 migration kit (or patches) if we don't care.
+- require ncurses-devel to build
+
+* Wed Apr 19 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-3
+- look for krb524 functions in libkrb524 if we can't find them
+  in the standard locations.
+
 * Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
 - fix the module_param_array macro for Linux 2.6.9.