diff --git a/src/packaging/Debian/CellServDB b/src/packaging/Debian/CellServDB
new file mode 100644
index 0000000000..2740b39e57
--- /dev/null
+++ b/src/packaging/Debian/CellServDB
@@ -0,0 +1,559 @@
+>grand.central.org #GCO Public CellServDB 15 Oct 2005
+18.7.14.88 #grand-opening.mit.edu
+128.2.191.224 #penn.central.org
+130.237.48.87 #andrew.e.kth.se
+>wu-wien.ac.at #University of Economics, Vienna, Austria
+137.208.3.33 #afsdb1.wu-wien.ac.at
+137.208.8.12 #caesar.wu-wien.ac.at
+137.208.127.33 #buddy.wu-wien.ac.at
+>hephy.at #hephy-vienna
+193.170.243.10 #mowgli.oeaw.ac.at
+193.170.243.12 #baloo.oeaw.ac.at
+193.170.243.14 #akela.oeaw.ac.at
+>itp.tugraz.at #Institute for Theoretical Physics, TU Graz, Austria
+129.27.157.6 #fubphsv2.tu-graz.ac.at
+129.27.161.7 #faepsv01.tu-graz.ac.at
+129.27.161.15 #faepsv02.tu-graz.ac.at
+>cern.ch #European Laboratory for Particle Physics, Geneva
+137.138.128.148 #afsdb1.cern.ch
+137.138.246.50 #afsdb3.cern.ch
+137.138.246.51 #afsdb2.cern.ch
+>ams.cern.ch #AMS Experiment
+137.138.206.77 #pcamsf2.cern.ch
+137.138.206.123 #pcamsf4.cern.ch
+>epfl.ch #Swiss Federal Institute of Technology at Lausanne
+128.178.2.6 #kd1.epfl.ch
+128.178.2.7 #kd2.epfl.ch
+128.178.2.8 #kd3.epfl.ch
+>ethz.ch #Swiss Federal Inst. of Tech. - Zurich, Switzerland
+129.132.97.19 #amalthea.ethz.ch
+129.132.97.27 #nethzafs-001.ethz.ch
+129.132.115.3 #himalia.ethz.ch
+129.132.115.37 #nethzafs-005.ethz.ch
+129.132.115.38 #nethzafs-006.ethz.ch
+>psi.ch #Paul Scherrer Institut - Villigen, Switzerland
+129.129.190.140 #afs00.psi.ch
+129.129.190.141 #afs01.psi.ch
+129.129.190.142 #afs02.psi.ch
+>extundo.com #Simon Josefsson's cell
+195.42.214.241 #slipsten.extundo.com
+>mekinok.com #Mekinok, Inc.
+4.36.43.98 #loggerhead.mekinok.com
+>membrain.com #membrain.com
+66.93.118.125 #stormy
+130.85.24.11 #weasel
+130.85.24.13 #straykitten
+>midnightlinux.com #Midnight Linux, Pittsburgh PA
+208.10.142.82 #outpost.midnightlinux.com
+>setfilepointer.com #SetFilePointer.com
+63.224.10.2 #hamlet.SetFilePointer.com
+63.224.10.4 #troilus.SetFilePointer.com
+>sodre.cx #Sodre.cx
+128.8.140.165 #greed.sodre.cx
+>desy.de #Deutsches Elektronen-Synchrotron
+131.169.40.62 #vayu.desy.de
+131.169.244.60 #solar00.desy.de
+>gppc.de #GPP Chemnitz mbH
+213.187.92.33 #gpp1.gppc.de
+213.187.92.34 #paulchen.gppc.de
+213.187.92.35 #lotus.gppc.de
+>ifh.de #DESY Zeuthen
+141.34.22.10 #romulus.ifh.de
+141.34.22.11 #remus.ifh.de
+141.34.22.29 #hekate.ifh.de
+>lrz-muenchen.de #Leibniz Computing Centre, Germany
+129.187.10.36 #afs1.lrz-muenchen.de
+129.187.10.56 #afs3.lrz-muenchen.de
+129.187.10.57 #afs2.lrz-muenchen.de
+>ipp-garching.mpg.de #Institut fuer Plasmaphysik
+130.183.9.5 #afs-db1.rzg.mpg.de
+130.183.100.10 #afs-db2.aug.ipp-garching.mpg.de
+130.183.100.23 #afs-db3.aug.ipp-garching.mpg.de
+>mpe.mpg.de #MPE cell
+130.183.130.7 #irafs1.mpe-garching.mpg.de
+130.183.134.20 #irafs2.mpe-garching.mpg.de
+>i1.informatik.rwth-aachen.de #Informatik I, RWTH Aachen
+137.226.244.79 #remus.informatik.rwth-aachen.de
+>tu-bs.de #Technical University of Braunschweig, Germany
+134.169.1.1 #rzafs1.rz.tu-bs.de
+134.169.1.5 #rzafs2.rz.tu-bs.de
+134.169.1.6 #rzafs3.rz.tu-bs.de
+>tu-chemnitz.de #Technische Universitaet Chemnitz, Germany
+134.109.2.1 #zuse.hrz.tu-chemnitz.de
+134.109.2.15 #phoenix.hrz.tu-chemnitz.de
+134.109.200.7 #aetius.hrz.tu-chemnitz.de
+>e18.ph.tum.de #Experimental Physics, TU Munich, Germany
+129.187.154.223 #hamlet.e18.physik.tu-muenchen.de
+>uni-bonn.de #University of Bonn, Computing Center
+131.220.14.198 #work15-eth.rhrz.uni-bonn.de
+131.220.14.205 #node05.rhrz.uni-bonn.de
+131.220.15.197 #afs-db1.rhrz.uni-bonn.de
+>atlass01.physik.uni-bonn.de #Bonn ATLAS
+131.220.165.43 #atlass01.physik.uni-bonn.de
+>uni-freiburg.de #Albert-Ludwigs-Universitat Freiburg
+132.230.6.235 #sv6.ruf.uni-freiburg.de
+132.230.6.236 #sv7.ruf.uni-freiburg.de
+132.230.6.237 #sv8.ruf.uni-freiburg.de
+>physik.uni-freiburg.de #institute of physics, university Freiburg, Germany
+132.230.77.16 #hepafs.physik.uni-freiburg.de
+>urz.uni-heidelberg.de #Uni Heidelberg (Rechenzentrum)
+129.206.119.10 #afsdb.urz.uni-heidelberg.de
+129.206.119.16 #afsdb1.urz.uni-heidelberg.de
+129.206.119.17 #afsdb2.urz.uni-heidelberg.de
+>uni-hohenheim.de #University of Hohenheim
+144.41.2.2 #rs13.serv.uni-hohenheim.de
+144.41.2.3 #rs14.serv.uni-hohenheim.de
+144.41.2.4 #rs15.serv.uni-hohenheim.de
+>rz.uni-jena.de #Rechenzentrum University of Jena, Germany
+141.35.2.160 #lc00.rz.uni-jena.de
+141.35.7.9 #fsuj01.rz.uni-jena.de
+141.35.7.10 #zaphod.rz.uni-jena
+>meteo.uni-koeln.de #Univ. of Cologne - Inst. for Geophysics & Meteorology
+134.95.144.22 #afs1.meteo.uni-koeln.de
+134.95.144.24 #afs2.meteo.uni-koeln.de
+>rrz.uni-koeln.de #University of Cologne - Reg Comp Center
+134.95.19.3 #afsdb1.rrz.uni-koeln.de
+134.95.19.30 #fileserv3.rrz.uni-koeln.de
+134.95.67.97 #afs.thp.uni-koeln.de
+134.95.140.190 #rzkbserv.rrz.uni-koeln.de
+>physik.uni-mainz.de #institute of physics, university Mainz, Germany
+134.93.130.93 #hardy.physik.uni-mainz.de
+>uni-mannheim.de #Uni Mannheim (Rechenzentrum)
+134.155.97.204 #afsdb1.uni-mannheim.de
+134.155.97.205 #afsdb2.uni-mannheim.de
+134.155.97.206 #afsdb3.uni-mannheim.de
+>uni-paderborn.de #University of Paderborn, Germany
+131.234.137.10 #afsdb1.uni-paderborn.de
+131.234.137.11 #afsdb2.uni-paderborn.de
+131.234.137.12 #afsdb3.uni-paderborn.de
+>physik.uni-wuppertal.de #Physics department of Bergische Universität Wuppertal
+132.195.104.3 #afs1.physik.uni-wuppertal.de
+132.195.104.230 #afs2.physik.uni-wuppertal.de
+>s-et.aau.dk #Aalborg Univ., The Student Society, Denmark
+130.225.196.22 #afs.s-et.aau.dk
+>ies.auc.dk #Aalborg Univ., Inst. of Electronic Systems, Denmark
+130.225.51.73 #afsdb1.kom.auc.dk
+130.225.51.74 #afsdb2.kom.auc.dk
+130.225.51.85 #afsdb3.kom.auc.dk
+>asu.edu #Arizona State University
+129.219.10.69 #authen2.asu.edu
+129.219.10.70 #authen1.asu.edu
+129.219.10.72 #authen3.asu.edu
+129.219.100.16 #authen4.asu.edu
+>hep.caltech.edu #CalTech High Energy Physics
+131.215.126.150 #afs.hep.caltech.edu
+>clarkson.edu #Clarkson University, Potsdam, New York USA
+128.153.1.111 #arthur.clarkson.edu
+128.153.9.111 #lancelot.clarkson.edu
+128.153.17.111 #uther.clarkson.edu
+>andrew.cmu.edu #Carnegie Mellon University - Computing Services Cell
+128.2.10.2 #vice2.fs.andrew.cmu.edu
+128.2.10.7 #vice7.fs.andrew.cmu.edu
+128.2.10.11 #vice11.fs.andrew.cmu.edu
+128.2.10.28 #vice28.fs.andrew.cmu.edu
+128.2.32.44 #new-vice12.fs.andrew.cmu.edu
+>club.cc.cmu.edu #Carnegie Mellon University Computer Club
+128.237.157.11 #sodium.club.cc.cmu.edu
+128.237.157.13 #potassium.club.cc.cmu.edu
+>chem.cmu.edu #Carnegie Mellon University - Chemistry Dept.
+128.2.40.134 #afs.chem.cmu.edu
+128.2.40.140 #afs2.chem.cmu.edu
+>cs.cmu.edu #Carnegie Mellon University - School of Comp. Sci.
+128.2.194.178 #cherry.srv.cs.cmu.edu
+128.2.194.179 #pumpkin.srv.cs.cmu.edu
+128.2.194.180 #strawberry.srv.cs.cmu.edu
+>ece.cmu.edu #Carnegie Mellon University - Elec. Comp. Eng. Dept.
+128.2.129.7 #porok.ece.cmu.edu
+128.2.129.8 #vicio.ece.cmu.edu
+128.2.129.9 #e-xing.ece.cmu.edu
+>scotch.ece.cmu.edu #CMU ECE CALCM research group
+128.2.134.82 #lagavulin.ece.cmu.edu
+>qatar.cmu.edu #Carnegie Mellon University - Qatar Campus Cell
+204.194.25.7 #afs1.qatar.cmu.edu
+204.194.25.8 #afs2.qatar.cmu.edu
+>sbp.ri.cmu.edu #Carnegie Mellon University - Sensor Based Planning Lab
+128.2.56.129 #nihao.sbp.ri.cmu.edu
+128.2.56.136 #youtheman.sbp.ri.cmu.edu
+>msc.cornell.edu #Cornell University Materials Science Center
+128.84.231.242 #miranda.ccmr.cornell.edu
+128.84.241.35 #co.ccmr.cornell.edu
+128.84.249.78 #dax.ccmr.cornell.edu
+>dbic.dartmouth.edu #Dartmouth Brain Imaging Center
+129.170.30.143 #dbicafs1.dartmouth.edu
+129.170.30.144 #dbicafs2.dartmouth.edu
+129.170.30.145 #dbicafs3.dartmouth.edu
+>northstar.dartmouth.edu #Dartmouth College Research Computing
+129.170.16.22 #halley.dartmouth.edu
+129.170.16.42 #oort.dartmouth.edu
+129.170.16.43 #cygnusx1.dartmouth.edu
+>eecs.harvard.edu #Harvard - EECS
+140.247.60.61 #zermelo.eecs.harvard.edu
+140.247.60.83 #corfu.eecs.harvard.edu
+>iastate.edu #Iowa State University
+129.186.1.243 #afsdb-1.iastate.edu
+129.186.6.243 #afsdb-2.iastate.edu
+129.186.142.243 #afsdb-3.iastate.edu
+>athena.mit.edu #MIT/Athena cell
+18.7.1.66 #paris.mit.edu.
+18.7.1.74 #chimera.mit.edu.
+18.158.0.37 #prill.mit.edu.
+>dev.mit.edu #MIT/IS Development cell
+18.7.1.70 #wham.mit.edu.
+18.7.15.89 #rattle.mit.edu.
+18.7.15.93 #hum.mit.edu.
+>net.mit.edu #MIT/Network Group cell
+18.7.7.73 #gracie.mit.edu
+18.7.21.95 #george.mit.edu
+>sipb.mit.edu #MIT/SIPB cell
+18.181.0.19 #reynelda.mit.edu.
+18.181.0.22 #rosebud.mit.edu.
+18.181.0.23 #ronald-ann.mit.edu.
+>soap.mit.edu #MIT School Of Architecture & Planning
+18.89.1.204 #crypt.mit.edu
+18.89.1.209 #grotto.mit.edu
+18.89.2.156 #ac.mit.edu
+>msu.edu #Michigan State University Main Cell
+35.9.7.10 #afsdb0.cl.msu.edu
+>nd.edu #University of Notre Dame
+129.74.223.17 #john.helios.nd.edu
+129.74.223.33 #lizardo.helios.nd.edu
+129.74.223.65 #buckaroo.helios.nd.edu
+>pitt.edu #University of Pittsburgh
+136.142.8.15 #afs09.srv.cis.pitt.edu
+136.142.8.20 #afs10.srv.cis.pitt.edu
+136.142.8.21 #afs11.srv.cis.pitt.edu
+>cs.pitt.edu #University of Pittsburgh - Computer Science
+130.49.220.11 #afs01.cs.pitt.edu
+130.49.220.12 #afs02.cs.pitt.edu
+130.49.220.13 #afs03.cs.pitt.edu
+>psc.edu #PSC (Pittsburgh Supercomputing Center)
+128.182.59.182 #shaggy.psc.edu
+128.182.66.184 #velma.psc.edu
+128.182.66.185 #daphne.psc.edu
+>scoobydoo.psc.edu #PSC Test Cell
+128.182.59.181 #scooby.psc.edu
+>cede.psu.edu #Penn State - Center for Engr. Design & Entrepeneurship
+146.186.218.10 #greenly.cede.psu.edu
+146.186.218.60 #b50.cede.psu.edu
+146.186.218.246 #stalin.cede.psu.edu
+>rose-hulman.edu #Rose-Hulman Institute of Technology
+137.112.7.11 #afs1.rose-hulman.edu
+137.112.7.12 #afs2.rose-hulman.edu
+137.112.7.13 #afs3.rose-hulman.edu
+>cs.rose-hulman.edu #Rose-Hulman CS Department
+137.112.40.10 #galaxy.cs.rose-hulman.edu
+>rpi.edu #Rensselaer Polytechnic Institute
+128.113.22.11 #saul.server.rpi.edu
+128.113.22.12 #joab.server.rpi.edu
+128.113.22.13 #korah.server.rpi.edu
+128.113.22.14 #achan.server.rpi.edu
+>hep.sc.edu #University of South Carolina, Dept. of Physics
+129.252.78.77 #cpeven.physics.sc.edu
+>cs.stanford.edu #Stanford University Computer Science Department
+171.64.64.10 #cs-afs-1.Stanford.EDU
+171.64.64.66 #cs-afs-2.stanford.edu
+171.64.64.69 #cs-afs-3.stanford.edu
+>ir.stanford.edu #Stanford University
+171.64.7.222 #afsdb1.stanford.edu
+171.64.7.234 #afsdb2.stanford.edu
+171.64.7.246 #afsdb3.stanford.edu
+>slac.stanford.edu #Stanford Linear Accelerator Center
+134.79.18.25 #afsdb1.slac.stanford.edu
+134.79.18.26 #afsdb2.slac.stanford.edu
+134.79.18.27 #afsdb3.slac.stanford.edu
+>cats.ucsc.edu #UC Santa Cruz, Comm. and Tech. Services, California U.S.A
+128.114.129.14 #elan.ucsc.edu
+128.114.129.15 #ichabod.ucsc.edu
+128.114.129.18 #maneki.ucsc.edu
+>acm.uiuc.edu #ACM at the University of Illinois
+128.174.251.8 #alnitak.acm.uiuc.edu
+128.174.251.9 #alnilam.acm.uiuc.edu
+128.174.251.10 #mintaka.acm.uiuc.edu
+>ncsa.uiuc.edu #University of Illinois
+141.142.3.5 #congo.ncsa.uiuc.edu
+141.142.3.8 #nile.ncsa.uiuc.edu
+141.142.3.9 #kaskaskia.ncsa.uiuc.edu
+>umbc.edu #University of Maryland, Baltimore County
+130.85.24.23 #db2.afs.umbc.edu
+130.85.24.87 #db3.afs.umbc.edu
+130.85.24.101 #db1.afs.umbc.edu
+>glue.umd.edu #University of Maryland - Project Glue
+128.8.70.11 #olmec.umd.edu
+128.8.236.4 #egypt.umd.edu
+128.8.236.230 #babylon.umd.edu
+>wam.umd.edu #University of Maryland Network WAM Project
+128.8.70.9 #csc-srv.wam.umd.edu
+128.8.236.5 #avw-srv.wam.umd.edu
+128.8.236.231 #ptx-srv.wam.umd.edu
+>umich.edu #University of Michigan - Campus
+141.211.1.32 #fear.ifs.umich.edu
+141.211.1.33 #surprise.ifs.umich.edu
+141.211.1.34 #ruthless.ifs.umich.edu
+>atlas.umich.edu #ATLAS group cell in physics at University of Michigan
+141.211.43.102 #linat02.grid.umich.edu
+141.211.43.106 #linat06.grid.umich.edu
+141.211.43.109 #atgrid.grid.umich.edu
+>citi.umich.edu #Center for Information Technology Integration
+141.211.133.5 #babylon.citi.umich.edu
+>lsa.umich.edu #University of Michigan - College of LS&A
+141.211.211.53 #gerow.lsa.umich.edu
+141.211.211.72 #collines.lsa.umich.edu
+141.211.211.153 #hodges.lsa.umich.edu
+>umr.edu #University of Missouri - Rolla
+131.151.1.59 #afsdb1.umr.edu
+131.151.1.70 #afsdb3.umr.edu
+131.151.1.146 #afsdb2.umr.edu
+>physics.unc.edu #Univ. of NC at Chapel Hill, Dept. of Physics
+152.2.4.1 #who.physics.unc.edu
+152.2.4.3 #what.physics.unc.edu
+152.2.4.5 #when.physics.unc.edu
+>uncc.edu #University of NC at Charlotte Mosaic AFS Cell
+152.15.10.70 #as-sm1.uncc.edu
+152.15.13.7 #as-sm2.uncc.edu
+152.15.30.27 #fs-kenn3.uncc.edu
+>eng.utah.edu #University of Utah - Engineering
+155.99.222.9 #lenny.eng.utah.edu
+155.99.222.10 #carl.eng.utah.edu
+>cs.uwm.edu #University of Wisconsin--Milwaukee
+129.89.38.124 #solomons.cs.uwm.edu
+>cs.wisc.edu #Univ. of Wisconsin-Madison, Computer Sciences Dept.
+128.105.132.14 #timon.cs.wisc.edu
+128.105.132.15 #pumbaa.cs.wisc.edu
+128.105.132.16 #zazu.cs.wisc.edu
+>engr.wisc.edu #University of Wisconsin-Madison, College of Engineering
+144.92.13.14 #larry.cae.wisc.edu
+144.92.13.15 #curly.cae.wisc.edu
+144.92.13.16 #moe.cae.wisc.edu
+>hep.wisc.edu #University of Wisconsin -- High Energy Physics
+128.104.28.219 #anise.hep.wisc.edu
+>physics.wisc.edu #Univ. of Wisconsin-Madison, Physics Department
+128.104.160.13 #kendra.physics.wisc.edu
+128.104.160.14 #fray.physics.wisc.edu
+128.104.160.15 #buffy.physics.wisc.edu
+>ciemat.es #Ciemat, Madrid, Spain
+130.206.11.42 #afsdb1.ciemat.es
+130.206.11.217 #afsdb2.ciemat.es
+130.206.11.247 #afsdb3.ciemat.es
+>ifca.unican.es #Instituto de Fisica de Cantabria (IFCA), Santander, Spain
+193.144.209.20 #gridwall.ifca.unican.es
+>ific.uv.es #Instituto de Fisica Corpuscular, Valencia, Spain
+147.156.163.11 #alpha.ific.uv.es
+>biocenter.helsinki.fi #University of Helsinki, Institute of Biotechnology
+128.214.58.174 #afsdb1.biocenter.helsinki.fi
+128.214.88.114 #afsdb2.biocenter.helsinki.fi
+>dapnia.saclay.cea.fr #CEA DAPNIA
+132.166.32.7 #dphrsg.saclay.cea.fr
+132.166.32.12 #dphrsl.saclay.cea.fr
+>in2p3.fr #IN2P3 production cell
+134.158.232.11 #ccafsdb1.in2p3.fr
+134.158.232.12 #ccafsdb2.in2p3.fr
+134.158.232.13 #ccafsdb3.in2p3.fr
+>anl.gov #Argonne National Laboratory
+146.137.96.33 #arteus.ctd.anl.gov
+146.137.162.88 #agamemnon.ctd.anl.gov
+146.137.194.80 #antenor.ctd.anl.gov
+>rhic.bnl.gov #Relativistic Heavy Ion Collider
+130.199.6.51 #rafs03.rcf.bnl.gov
+130.199.6.52 #rafs02.rcf.bnl.gov
+130.199.6.69 #rafs01.rcf.bnl.gov
+>usatlas.bnl.gov #US Atlas Tier 1 Facility at BNL
+130.199.48.32 #aafs01.usatlas.bnl.gov
+130.199.48.33 #aafs02.usatlas.bnl.gov
+130.199.48.34 #aafs03.usatlas.bnl.gov
+>fnal.gov #Fermi National Acclerator Laboratory
+131.225.68.1 #fsus01.fnal.gov
+131.225.68.4 #fsus03.fnal.gov
+131.225.68.14 #fsus04.fnal.gov
+>ic-afs.arc.nasa.gov #Code IC, Ames Research Center
+128.102.105.62 #udanax.arc.nasa.gov
+>jpl.nasa.gov #Jet Propulsion Laboratory
+137.78.160.21 #afsdb08.jpl.nasa.gov
+137.78.160.22 #afsdb09.jpl.nasa.gov
+137.78.160.23 #afsdb10.jpl.nasa.gov
+>nersc.gov #National Energy Research Supercomputer Center
+128.55.128.250 #mars.nersc.gov
+128.55.128.252 #alfred.nersc.gov
+128.55.128.254 #lurch.nersc.gov
+>bme.hu #Budapest University of Technology and Economics
+152.66.241.6 #afs.iit.bme.hu
+>kfki.hu #Research Institute for Nuclear and Particle Physics - Budapest,H
+148.6.8.14 #afs.kfki.hu
+>caspur.it #CASPUR Inter-University Computing Consortium, Rome
+193.204.5.45 #pomodoro.caspur.it
+193.204.5.46 #banana.caspur.it
+193.204.5.50 #maslo.caspur.it
+>enea.it #ENEA New Tech. Energy & Environment Agency, Italy
+192.107.54.5 #aixfs.frascati.enea.it
+192.107.54.11 #rs2ced.frascati.enea.it
+192.107.54.12 #43p.frascati.enea.it
+192.107.61.235 #serverinfo02.bologna.enea.it
+192.107.71.6 #glauco.casaccia.enea.it
+192.107.96.233 #riscdb.trisaia.enea.it
+>fusione.it #Assoz. FUSIONE/Euratom, ENEA, Frascati-Italy
+192.107.90.2 #fusafs1.frascati.enea.it
+192.107.90.3 #fusafs2.frascati.enea.it
+192.107.90.4 #fusafs3.frascati.enea.it
+>icemb.it #ICEMB, Universita' La Sapienza - Rome - Italy
+193.204.6.130 #icembfs.caspur.it
+>infn.it #Istituto Nazionale di Fisica Nucleare (INFN), Italia
+131.154.1.7 #afscnaf.infn.it
+141.108.26.75 #afsrm1.roma1.infn.it
+192.84.134.75 #afsna.na.infn.it
+>ba.infn.it #INFN, Sezione di Bari
+193.206.185.235 #baafsserver.ba.infn.it
+>kloe.infn.it #INFN, KLOE experiment at Laboratori di Frascati
+192.135.25.111 #kloeafs1.lnf.infn.it
+192.135.25.112 #kloeafs2.lnf.infn.it
+>le.infn.it #INFN, Sezione di Lecce
+192.84.152.40 #afs01.le.infn.it
+192.84.152.148 #afs02.le.infn.it
+>lnf.infn.it #INFN, Laboratori Nazionali di Frascati
+193.206.84.121 #afs1.lnf.infn.it
+193.206.84.122 #afs2.lnf.infn.it
+193.206.84.123 #afs3.lnf.infn.it
+>lngs.infn.it #INFN, Laboratori Nazionali di Gran Sasso
+192.84.135.21 #rsgs05.lngs.infn.it
+>pi.infn.it #INFN, Sezione di Pisa
+131.114.134.26 #unknownhost.pi.infn.it
+192.84.133.50 #aix1.pi.infn.it
+>psm.it #Progetto San Marco, Universita' di Roma-1
+151.100.1.65 #atlante.psm.uniroma1.it
+>tgrid.it #CASPUR-CILEA-CINECA Grid Cell
+193.204.5.33 #cccgrid.caspur.it
+>ictp.trieste.it #The Abdus Salam International Centre for Theoretical Physics (IC
+140.105.16.8 #fs1.ictp.trieste.it
+140.105.16.9 #fs2.ictp.trieste.it
+>math.unifi.it #math.unifi.it
+150.217.34.182 #xeno.math.unifi.it
+>ing.uniroma1.it #Universita' La Sapienza, Fac. Ingeneria
+151.100.85.253 #alfa.ing.uniroma1.it
+>dia.uniroma3.it #University Roma Tre - DIA
+193.204.161.79 #plm.dia.uniroma3.it
+193.204.161.118 #afs.dia.uniroma3.it
+>vn.uniroma3.it #University of Rome 3, Area Vasca Navale
+193.204.161.136 #alfa.dia.uniroma3.it
+193.204.161.137 #beta.dia.uniroma3.it
+193.204.161.138 #gamma.dia.uniroma3.it
+>italia #Italian public AFS cell
+193.204.5.9 #afs.caspur.it
+>cmf.nrl.navy.mil #Naval Research Lab - CCS
+134.207.10.68 #picard.cmf.nrl.navy.mil
+134.207.10.69 #riker.cmf.nrl.navy.mil
+134.207.10.70 #kirk.cmf.nrl.navy.mil
+>lcp.nrl.navy.mil #Naval Research Lab - Lab for Computational Physics
+132.250.114.2 #afs1.lcp.nrl.navy.mil
+132.250.114.4 #afs2.lcp.nrl.navy.mil
+132.250.114.6 #afs3.lcp.nrl.navy.mil
+>es.net #Energy Sciences Net
+198.128.3.21 #fs1.es.net
+198.128.3.22 #fs2.es.net
+198.128.3.23 #fs3.es.net
+>laroia.net #Laroia Networks
+66.66.102.254 #supercore.laroia.net
+>sinenomine.net #Sine Nomine Associates
+66.92.236.139 #afs.sinenomine.net
+>slackers.net #The Slackers' Network
+63.201.48.27 #alexandria.slackers.net
+>tproa.net #The People's Republic of Ames
+209.234.76.70 #service-3.tproa.net
+>nikhef.nl #The Dutch National Institute for High Energy Physics
+192.16.185.26 #afs1.nikhef.nl
+192.16.185.27 #afs2.nikhef.nl
+>1ts.org #1TS.ORG, Cambridge, MA
+4.36.43.102 #dol-guldur.1ts.org
+69.25.196.51 #pancake.1ts.org
+>bazquux.org #Baz Quux Organization
+66.207.142.196 #baxquux.org
+>coed.org #Adam Pennington's Cell
+66.93.61.184 #vice1.coed.org
+128.237.157.35 #vice3.coed.org
+>dementia.org #Dementia Unlimited
+128.2.12.45 #alycia.dementia.org
+128.2.120.216 #meredith.dementia.org
+>hackish.org #Hackish.org
+24.167.65.213 #avatar.sys.hackish.org
+128.2.120.138 #kurma.sys.hackish.org
+>idahofuturetruck.org #University of Idaho hybrid vehicle development
+12.18.238.210 #dsle210.fsr.net
+>nimlabs.org #Nimlabs, Ink. Cell.
+18.238.1.103 #olfin.nimlabs.org
+18.238.1.105 #caerbanog.nimlabs.org
+>nomh.org #nomh.org
+204.29.154.12 #iota.nomh.org
+204.29.154.32 #adversity.xi.nomh.org
+>oc7.org #The OC7 Project
+128.2.122.140 #knife.oc7.org
+207.22.77.170 #spoon.oc7.org
+>openafs.org #OpenAFS Project
+18.7.14.88 #grand-opening.mit.edu
+128.2.191.224 #penn.central.org
+130.237.48.87 #andrew.e.kth.se
+>e.kth.se #Royal Institute of Technology, Elektro
+130.237.32.145 #sonen.e.kth.se
+130.237.48.7 #anden.e.kth.se
+130.237.48.244 #fadern.e.kth.se
+>hallf.kth.se #Royal Institute of Technology, HALLF
+130.237.24.141 #rasmus13.hallf.kth.se
+130.237.24.152 #rasmus3.hallf.kth.se
+130.237.24.177 #rasmus29.hallf.kth.se
+>isk.kth.se #Royal Institute of Technology, ISK
+130.237.202.12 #afsdb2.isk.kth.se
+130.237.206.13 #afsdb1.isk.kth.se
+130.237.209.141 #afsdb3.isk.kth.se
+>it.kth.se #Royal Institute of Technology, IT
+130.237.212.15 #ptah.it.kth.se
+130.237.212.16 #toth.it.kth.se
+130.237.215.7 #isis.it.kth.se
+>md.kth.se #Royal Institute of Technology, MMK
+130.237.57.68 #trinity.md.kth.se
+130.237.57.72 #morpheus.md.kth.se
+130.237.67.230 #neo.speech.kth.se
+>mech.kth.se #Royal Institute of Technology, MECH
+130.237.233.142 #matterhorn.mech.kth.se
+130.237.233.143 #castor.mech.kth.se
+130.237.233.144 #pollux.mech.kth.se
+>nada.kth.se #Royal Institute of Technology, NADA
+130.237.222.20 #kosmos.nada.kth.se
+130.237.223.12 #sputnik.nada.kth.se
+130.237.224.78 #mir.nada.kth.se
+130.237.227.23 #gagarin.nada.kth.se
+130.237.228.28 #laika.nada.kth.se
+>pdc.kth.se #Royal Institute of Technology, PDC
+130.237.232.29 #crab.pdc.kth.se
+130.237.232.112 #anna.pdc.kth.se
+130.237.232.114 #hokkigai.pdc.kth.se
+>stacken.kth.se #Stacken Computer Club
+130.237.234.3 #milko.stacken.kth.se
+130.237.234.43 #hot.stacken.kth.se
+130.237.237.230 #fishburger.stacken.kth.se
+>syd.kth.se #Royal Institute of Technology, KTH-Syd
+130.237.83.23 #afs.haninge.kth.se
+>physto.se #Physics department Stockholm University
+130.237.205.36 #sysafs1.physto.se
+130.237.205.72 #sysafs2.physto.se
+>sanchin.se #Sanchin Consulting AB, Sweden
+192.195.148.10 #sesan.sanchin.se
+>su.se #Stockholm University
+130.237.162.81 #afsdb1.su.se
+130.237.162.82 #afsdb2.su.se
+130.237.162.230 #afsdb3.su.se
+>f9.ijs.si #F9, Jozef Stefan Institue
+194.249.156.1 #brenta.ijs.si
+>p-ng.si #Nova Gorica Polytechnic
+193.2.120.2 #solkan.p-ng.si
+>phy.bris.ac.uk #Bristol University - phyics
+137.222.58.9 #afs1.phy.bris.ac.uk
+>hep.man.ac.uk #Manchester HEP
+194.36.2.3 #afs1.hep.man.ac.uk
+194.36.2.4 #afs2.hep.man.ac.uk
+194.36.2.5 #afs3.hep.man.ac.uk
+>rl.ac.uk #Rutherford Appleton Lab, England
+130.246.183.164 #wallace.cc.rl.ac.uk
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
+openafs-fileserver: non-standard-dir-perm
diff --git a/src/packaging/Debian/ConfigUtils.pm b/src/packaging/Debian/ConfigUtils.pm
index 4d35047bc9..ee49144f59 100644
--- a/src/packaging/Debian/ConfigUtils.pm
+++ b/src/packaging/Debian/ConfigUtils.pm
@@ -24,3 +24,11 @@ sub run ($) {
}
1;
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
+openafs-dbserver: non-standard-dir-perm
diff --git a/src/packaging/Debian/README.Debian b/src/packaging/Debian/README.Debian
index 884fad6a9c..755fa84cb3 100644
--- a/src/packaging/Debian/README.Debian
+++ b/src/packaging/Debian/README.Debian
@@ -1,25 +1,126 @@
-openafs for Debian
-----------------------
+ OpenAFS for Debian
-* No manual pages are included. I need to find out if versions exist
- that are OK for copyright reasons.
+Introduction
-* Documentation can be found at http://www.openafs.org. If want to
-set up a new cell, read the docs there and then look at the example
-session in configuration-transcript.txt.gz in this directory. You
-should also read README.servers. The procedure outlined in these two
-files is much simpler and more secure than the one in the Openafs
-documentation, but the Openafs documentation provides useful
-background.
+ For an OpenAFS client system, install openafs-client and a kernel
+ module. See README.modules for information on how to build the kernel
+ module for your system. Then, read /etc/openafs/afs.conf to understand
+ the client configuration options. The openafs-client package will
+ attempt to guess at a good cache configuration based on the size of your
+ cache, but you may want to tune it further. There are also other
+ options configured in that file you may want to consider.
-* AFS users may be confused by the directory layout. The files that
- normally go in /usr/vice/etc go in /etc/openafs. The cache should
- be mounted on /var/cache/openafs.
+ The AFS client cache must be on an ext2 or ext3 partition. Other file
+ systems often do not support the semantics required by the AFS kernel
+ module and will cause afsd to abort (to avoid kernel panics). In
+ particular, XFS, ReiserFS, and tmpfs will NOT work. If you are using
+ one of those file systems and don't have a spare partition for a
+ separate file system for the cache, you need to use the -memcache option
+ to afsd (although this is not always stable) or create a large file with
+ dd, create an ext2 file system in it with mkfs, and then mount it with
+ mount -o loop for use as a cache partition.
-* The libopenafs-dev package only includes static libraries because
- AFS does not build shared libs.
+ FAM does not work correctly with AFS except for directories that are
+ world-readable since it does not run in the user's security context and
+ therefore doesn't have the user's AFS tokens. If you are using FAM,
+ you'll encounter errors from file managers such as Nautilus that use it
+ if you browse restricted AFS directories. Instead of FAM, install
+ gamin, which runs in the user's security context and works correctly
+ with AFS.
+ For information on how to set up an OpenAFS server, read README.servers.
+ You will want the openafs-fileserver package for a file server and,
+ additionally, the openafs-dbserver package for a database server.
+Documentation
+ For the complete OpenAFS manual, install openafs-doc. This is the same
+ documentation as found at , and is
+ unfortunately outdated in several respects, but it's the best that we
+ have at present.
- -- Sam Hartman , Fri, 3 Nov 2000 23:41:41 -0500
+ If want to set up a new cell, read README.servers and then look at the
+ example session in configuration-transcript.txt.gz in this directory.
+ The procedure outlined in these two files is much simpler and more
+ secure than the one in the OpenAFS documentation, but the OpenAFS
+ documentation provides useful background.
+
+Changes Relative to Stock OpenAFS
+
+ Long-time AFS users may be confused by the directory layout. The files
+ that normally go in /usr/vice/etc go in /etc/openafs. The cache should
+ be mounted on /var/cache/openafs. The server files have been moved
+ around even more; see README.servers for the details.
+
+ The OpenAFS kernel module is named openafs, not libafs, to better match
+ normal Linux kernel module naming standards. The Debian source package
+ only builds one kernel module that matches the kernel source tree it is
+ built against and does not attempt to build separate SMP and non-SMP
+ modules against the same tree. Doing so does not work on all platforms.
+ To distinguish between an SMP and a non-SMP kernel module package, use
+ --append_to_version; see README.modules for more information.
+
+ The AFS up utility is installed as afs-up, since the standard name is
+ rather generic.
+
+ The libopenafs-dev package only includes static libraries and there are
+ no shared library packages. The shared libraries built by AFS are not
+ compatible with Debian policy. They do not have a stable ABI or an
+ appropriate SONAME.
+
+ kaserver is not included. New AFS cells should use Kerberos v5 rather
+ than the old K4-based kaserver KDC.
+
+ The OpenAFS PAM modules have been built with pthreads rather than the
+ standard LWP AFS libraries for compatibility with a threaded sshd.
+
+PAM Authentication
+
+ Any new OpenAFS cell is strongly encouraged to use Kerberos v5 for
+ authentication. If you want PAM to automatically obtain AFS credentials
+ and you are using Kerberos v5, you will want to install the libpam-krb5
+ and libpam-openafs-session packages and then put something like the
+ following in /etc/pam.d/common-auth:
+
+ auth [success=ok default=1] pam_krb5.so ignore_root
+ auth [default=done] pam_openafs_session.so
+ auth required pam_unix.so nullok_secure try_first_pass
+
+ and something like the following in /etc/pam.d/common-session:
+
+ session optional pam_krb5.so ignore_root
+ session optional pam_openafs_session.so
+ session required pam_unix.so
+
+ You'll probably also want the following in /etc/pam.d/common-account:
+
+ account required pam_krb5.so ignore_root
+ account required pam_unix.so
+
+ There are, of course, many variations depending on what different
+ mechanism you want to use and how you want to handle fallbacks.
+
+ If you are still using Kerberos v4 and the OpenAFS kaserver (or a KDC
+ that understands the same protocol) for authentication, you can instead
+ use the libpam-openafs-kaserver package and a configuration like:
+
+ auth sufficient pam_afs.so ignore_root
+ auth required pam_unix.so nullok_secure try_first_pass
+
+ in /etc/pam.d/common-auth and:
+
+ session optional pam_afs.so
+ session required pam_unix.so
+
+ in /etc/pam.d/common-session. Use pam_afs.krb.so instead of pam_afs.so
+ if you also want the PAM module to acquire a ticket cache for you. If
+ using this configuration with sshd, you may need to disable privilege
+ separation to get everything working properly. I've had mixed results
+ with that. Obviously, converting to Kerberos v5 authentication is
+ strongly preferred.
+
+ If you are using the kaserver as your KDC, you may also want to install
+ the openafs-kpasswd package to get the administrative utilities for
+ managing those Kerberos accounts.
+
+ -- Russ Allbery , Tue Dec 27 15:53:28 2005
diff --git a/src/packaging/Debian/README.modules b/src/packaging/Debian/README.modules
index d2c8e0168c..63f2c353d8 100644
--- a/src/packaging/Debian/README.modules
+++ b/src/packaging/Debian/README.modules
@@ -1,35 +1,93 @@
- Building Kernel Modules
-----------------------------------------
+ Building Kernel Modules
+Introduction
- The easiest way to get AFS modules is to install prebuilt modules.
-Fore example if you are running kernel 2.2.18 you might try
+ The easiest way to get AFS modules is to install prebuilt modules. For
+ example, if you are running kernel 2.4.27-2-686-smp, you might try:
-apt-get install openafs-modules-2.2.18
+ apt-get install openafs-modules-2.4.27-2-686-smp
-If this doesn't work, then you will need to build your own modules.
-This means having kernel sources available. You should install a
-kernel sources package and untar it in /usr/src. Then, install
-openafs-modules-source.
+ Pre-built modules are not provided with Debian (building and maintaining
+ them in Debian proper poses too many problems), but many organizations
+ that use OpenAFS build their own and provide them locally.
-apt-get install openafs-modules-source
+ If this doesn't work, you will need to build your own modules. There
+ are two methods for doing this.
-Next, unpack openafs-modules-source
+ When following either method, be aware that the Debian package creates a
+ module named openafs, not libafs as is used by upstream. It also
+ prefers not to add the .mp extension for modules built for SMP kernels;
+ the indication of whether the module is for an SMP kernel should go into
+ the package name via something like --append_to_version, not into the
+ file name of the module.
-cd /usr/src
-tar xzf openafs.tar.gz
+module-assistant
-Now, change into your kernel source tree. You should then create a
-.config file; the easiest way to do this is to run make menuconfig or
-to copy in a kernel configuration from the same version of the kernel.
-Debian kernel packages store a copy of their kernel configuration in
-/boot/config.version_number. Finally build the modules
+ This method is the best one to use when using the kernels that come with
+ Debian, since module-assistant knows how to get the right header files
+ to build modules for your currently running kernel.
-make-kpkg configure
-make-kpkg modules_image
+ First, install module-assistant and then prepare the kernel headers and
+ install openafs-modules-source:
-You may need to use the --append_to_version switch to add version suffixes
-like -686 if your modules install into /lib/modules/version-686.
-Ignore any errors about genchanges.sh failing. An openafs-modules deb
-should be created. Use dpkg -i to install this version.
+ apt-get install module-assistant
+ module-assistant prepare openafs-modules
+ (If you want to build modules for a different kernel than your currently
+ running one, pass the -l flag to module-assistant. See the man page.)
+ module-assistant may be able to find the right packages itself or it may
+ tell you to install particular packages. Once you've finished with
+ that, build the module with:
+
+ module-assistant auto-build openafs-modules
+
+ You may prefer to pass module-assistant the -t flag to get more
+ conventional output. If everything works correctly, the openafs-modules
+ deb should be created in /usr/src. You can use dpkg -i to install it.
+
+ module-assistant will take care of naming the openafs-modules package
+ correctly so that it matches the name of the kernel-image package and
+ installs its modules into the correct directory.
+
+make-kpkg
+
+ This method works well when you're also building your own kernel, rather
+ than using the pre-packaged Debian one.
+
+ Install a kernel source package and untar it in /usr/src. Then, install
+ openafs-modules-source.
+
+ apt-get install openafs-modules-source
+
+ Next, unpack openafs-modules-source:
+
+ cd /usr/src
+ tar xzf openafs.tar.gz
+
+ Now, change into your kernel source tree. You should then create a
+ .config file; the easiest way to do this is to run make menuconfig or to
+ copy in a kernel configuration from the same version of the kernel.
+ Debian kernel packages store a copy of their kernel configuration in
+ /boot/config.version_number.
+
+ The kernel configuration needs to be identical to the configuration that
+ produced the kernel that you're using. Ideally, you would build the
+ kernel image you're going to use with make-kpkg kernel_image and install
+ that along with the module image, although as long as the configuration
+ is identical, you may be able to get away with using a pre-built kernel.
+ (A better approach, if you're using pre-built kernels, may be to use
+ module-assistant as described above.)
+
+ Finally, build the modules:
+
+ make-kpkg modules_image
+
+ You may need to use the --append_to_version switch to add version
+ suffixes like -686 or -smp to match your kernel and install the OpenAFS
+ module into a directory like /lib/modules/version-686. Be aware that
+ the Debian OpenAFS packages build either a regular module or an SMP
+ module, not both, so the generated package will only work with a kernel
+ with the same SMP configuration.
+
+ An openafs-modules deb should be created in /usr/src. Use dpkg -i to
+ install this package.
diff --git a/src/packaging/Debian/README.servers b/src/packaging/Debian/README.servers
index 8bbae59666..d323215afb 100644
--- a/src/packaging/Debian/README.servers
+++ b/src/packaging/Debian/README.servers
@@ -1,47 +1,392 @@
- Setting up a Debian OpenAFS Server
+ Setting up a Debian OpenAFS Server
-These packages include binaries with FHS-compatible path names. Here
-is a map from AFS paths to FHS paths:
+Introduction
-/usr/afs/etc /etc/openafs/server
-/usr/afs/local /etc/openafs/server-local
-/usr/afs/db /var/lib/openafs/db
-/usr/afs/logs /var/log/openafs
-/usr/afs/bin /usr/lib/openafs
+ This document describes how to set up an OpenAFS server using the Debian
+ packages. If you are not already familiar with the basic concepts of
+ OpenAFS, you should review the documentation at:
+
-Scripts are provided to configure a single database/file server. The
-afs-newcell script sets up the initial databases and configures
-bosserver. After running this script, get tokens in the cell and run
-the afs-rootvol script to populate the root volume and root.cell. A
-sample transcript of configuring an AFS cell can be found in
-/usr/share/doc/openafs-dbserver/configuration-transcript.txt.gz. This
-transcript assumes you are using MIT Kerberos and the openafs-krb5
-package. Similar steps could be taken with Heimdal.
+ particularly the AFS Administrator's Guide. This documentation is
+ somewhat out of date (it doesn't talk about how to use a Kerberos v5 KDC
+ instead of the AFS kaserver, for example), but it's a good introduction
+ to the basic concepts and servers you will need to run.
-Another issue is upgrades. It is likely that future versions of this
-package will install for example /usr/lib/openafs/fileserver.package
-instead of /usr/lib/openafs/fileserver. The postinst script will
-create links the actual binaries. Upgrades will not replace the old
-binaries, but a script will be provided to roll the links forward to
-the new versions. The intent is that people could install the new
-package on all their servers and then quickly move the links before
-restarting the bosserver.
+ The Debian OpenAFS packages follow the FHS and therefore use different
+ paths than the standard AFS documentation or the paths that experienced
+ AFS administrators may be used to. In the first column below are the
+ traditional paths, and in the second column, the Debian paths:
- Adding Additional Servers
+ /usr/afs/etc /etc/openafs/server
+ /usr/afs/local /etc/openafs/server-local
+ /usr/afs/db /var/lib/openafs/db
+ /usr/afs/logs /var/log/openafs
+ /usr/afs/bin /usr/lib/openafs
+ /usr/vice/etc /etc/openafs
-If you decide one server is not enough, here is roughly what needs to
-happen:
+ The AFS kaserver (a Kerberos v4 KDC) is not packaged for Debian. Any
+ new OpenAFS installation should use Kerberos v5 for authentication in
+ conjunction with either the tools packaged in the openafs-krb5 package
+ or the Heimdal KDC. When setting up a new cell, you should therefore
+ not set up a kaserver as described in the AFS Administrator's Guide, and
+ you will need to follow a slightly different method of setting the cell
+ key.
-1) Copy securely (using scp , encrypted Kerberized rcp or some other
- secure method) /etc/openafs/server to the new server.
+Creating a New Cell
-2) Start a bosserver.
+ For documentation on adding a server to an existing cell, see below.
-3) If the machine is to be a file server, create an fs instance using
- bos create. For file servers this is all you need to do.
+ These instructions assume that you are using MIT Kerberos and the
+ openafs-krb5 package. If you are using Heimdal instead, some of the
+ steps will be slightly different (Heimdal can write the AFS KeyFile
+ directly, for example, so you don't have to use asetkey). The
+ afs-newcell and afs-rootvol scripts are the same, however.
-4) For database servers, you also need to do a bos addhost on all
- servers (including the new server) to add the new server to
- /etc/openafs/server/CellServDB. Then create ptserver and vlserver
- instances.
+ /usr/share/doc/openafs-dbserver/configuration-transcript.txt.gz has a
+ transcript of the results of these directions, which you may want to
+ follow along with as you do this.
+
+ 1. If you do not already have a Kerberos KDC (Key Distribution Center,
+ the daemon that handles Kerberos authentication) configured, do so.
+ You can run the KDC on the same system as your OpenAFS db server,
+ although if you plan on using Kerberos for other things, you may
+ eventually want to use separate systems. If you do not have a
+ Kerberos realm set up already, you can do so in Debian with:
+
+ apt-get install krb5-admin-server
+ krb5_newrealm
+
+ This will install a KDC and kadmind server (the server that handles
+ password changes and account creations) on the local system. Please
+ be aware that the security of everything that uses Kerberos for
+ authentication, including AFS, depends on the security of the KDC.
+
+ The name of your Kerberos realm should, for various reasons, be in
+ all uppercase and be a domain name that you control, although
+ neither is technically required.
+
+ Right now, for the aklog from openafs-krb5 to work, you need to
+ enable krb4 support (either full or nopreauth) and run krb524d.
+ Eventually this will no longer be necessary.
+
+ 2. It is traditional (and recommended) in AFS (and for Kerberos) to
+ give administrators two separate Kerberos principals, one regular
+ principal to use for regular purposes and a separate admin principal
+ to use for privileged actions. This is similar to the distinction
+ between a regular user and the root user in Unix, except that
+ everyone can have their own separate root identity. Kerberos
+ recommends username/admin as the admin principal for username, and
+ this will work for AFS as well.
+
+ If you have not already created such an admin principal for yourself
+ in your Kerberos realm, do so now (using kadmin.local on your KDC,
+ unless you have a local method that you prefer). Also create a
+ regular (non-admin) principal for yourself if you have not already;
+ this is the identity that you'll use for regular operations, like
+ storing files or reading mail. To do this with kadmin.local, run
+ that program and then run the commands:
+
+ addprinc username/admin
+ addprinc username
+
+ at the kadmin prompt. You'll be prompted for passwords for both
+ accounts.
+
+ If the KDC is not on the same system that the OpenAFS db server will
+ be on, you will also need to give your admin principal the rights to
+ download the afs keytab in /etc/krb5kdc/kadm5.acl by adding a lines
+ like:
+
+ username/admin@REALM *
+
+ where REALM is your Kerberos realm and username/admin is the admin
+ principal that you created. That line gives you full admin access
+ to the Kerberos v5 realm. You can be more restrictive if you want;
+ see the kadmind man page for the syntax.
+
+ 3. Install the OpenAFS db server package on an appropriate system with:
+
+ apt-get install openafs-dbserver openafs-krb5
+
+ The openafs-krb5 package will be used to create the AFS KeyFile.
+
+ As part of this installation, you will need to configure
+ openafs-client with the cell you are creating as the local cell name
+ and the server on which you're working as the db server. This name
+ is technically arbitrary but should, for various reasons, be a valid
+ domain name that you control; unlike Kerberos realms, it should be
+ in all lowercase. Enter the name of the local system when prompted
+ for the names of your OpenAFS db servers. Don't start the client;
+ that will happen below. For right now, say that you don't want it
+ to start at boot. You can change that later with dpkg-reconfigure
+ openafs-client.
+
+ If you have already installed openafs-client and configured it for
+ some other cell, you do need to configure it to point to your new
+ cell for these instructions to work. Stop the AFS client on the
+ system with /etc/init.d/openafs-client stop and then run:
+
+ dpkg-reconfigure openafs-client
+
+ pointing it to the new cell you're about to create instead.
+ Remember, your cell name should be in lowercase. If you have had to
+ do this several times, double-check /etc/openafs/CellServDB when
+ you're done and make sure that there is only one entry for your new
+ cell at the top of that file and that it lists the correct IP
+ address for your new db server.
+
+ In order to complete the AFS installation, you will also need a
+ working AFS client installed on that system, which means that you
+ need to install an OpenAFS kernel module. Please see:
+
+ /usr/share/doc/openafs-client/README.modules
+
+ for information on how to do that.
+
+ 4. Create an AFS principal in Kerberos. This is the AFS service
+ principal, used by clients to authenticate to AFS and for AFS
+ servers to authenticate to each other. It *must* be a DES key; AFS
+ does not support any other encryption type. Run kadmin.local on
+ your KDC and then, at the kadmin.local prompt, run:
+
+ addprinc -randkey -e des-cbc-crc:v4 afs
+
+ If your Kerberos realm name does not match your AFS cell name (if,
+ for instance, you have one Kerberos realm with multiple AFS cells),
+ use "afs/cell.name" as the name of the principal above instead of
+ just "afs", where cell.name is the name of your new AFS cell.
+
+ 5. On the db server, download this key into a keytab. If this is the
+ same system as the KDC, you can use kadmin.local again. If not, you
+ should use kadmin (make sure that krb5-user is installed), and you
+ may need to pass -p username/admin to kadmin to tell it what
+ principal to authenticate as. Whichever way you get into kadmin,
+ run:
+
+ ktadd -k /tmp/afs.keytab -e des-cbc-crc:v4 afs
+
+ (or afs/cell.name if you used that instead). In the message that
+ results, note the kvno number reported, since you'll need it later
+ (it will normally be 3).
+
+ Don't forget the -e des-cbc-crc:v4 to force the afs key to be DES.
+ You can verify this with:
+
+ getprinc afs
+
+ and checking to be sure that the only key listed is a DES key. If
+ there are multiple keys listed, delprinc the afs principal, delete
+ the /tmp/afs.keytab file, and then start over with addprinc, making
+ sure not to forget the -e option.
+
+ 6. Create the AFS KeyFile with:
+
+ asetkey add /tmp/afs.keytab afs
+
+ (or afs/cell.name if you used that instead). should be
+ replaced by the kvno number reported by kadmin. This tells AFS the
+ Kerberos key that it should use, making it match the key in the
+ Kerberos KDC.
+
+ 7. If the name of your Kerberos realm does not match the name of your
+ AFS cell, tell AFS what Kerberos realm to use with:
+
+ echo REALM > /etc/openafs/server/krb.conf
+
+ where REALM is the name of your Kerberos realm. If your AFS cell
+ and Kerberos realm have the same name, this is unnecessary.
+
+ 8. Create some space to use for AFS volumes. You can set up a separate
+ AFS file server on a different system from the Kerberos KDC and AFS
+ db server, and for a larger cell you will want to do so, but when
+ getting started you can make the db server a file server as well.
+ For a production cell, you will want to create a separate partition
+ devoted to AFS and mount it as /vicepa (and may want to make
+ multiple partitions mounted as /vicepb, /vicepc, etc.), but for
+ testing purposes, you can use the commands below to create a
+ zero-filled file, create a file system in it, and then mount it:
+
+ dd if=/dev/zero of=/var/lib/openafs/vicepa bs=1024k count=32
+ mke2fs /var/lib/openafs/vicepa
+ mkdir /vicepa
+ mount -oloop /var/lib/openafs/vicepa /vicepa
+
+ mke2fs will ask you if you're sure you want to create a file system
+ on a non-block device; say yes.
+
+ 9. Run afs-newcell. This will prompt you to be sure that the above
+ steps have been complete and will ask you for the Kerberos principal
+ to use for AFS administrative access. You should use the
+ username/admin principal discussed above. afs-newcell sets up the
+ initial protection database (which stores users and groups),
+ configures the AFS database and file server daemons, and creates the
+ root volume for AFS clients.
+
+ At the completion of this step, you should see bosserver and several
+ other AFS server processes running, and you should be able to see
+ the status of those processes with:
+
+ bos status localhost -local
+
+ bosserver is a master server that starts and monitors all the
+ individual AFS servers, and bos is the program used to send it
+ commands.
+
+ Now, you should be able to run:
+
+ kinit username/admin@REALM
+ aklog cell.name -k REALM
+
+ where username/admin is the admin principal discussed above, REALM
+ is the name of your Kerberos realm, and cell.name is the name of
+ your AFS cell. This will obtain Kerberos tickets and AFS tokens in
+ your Kerberos realm and new AFS cell. You should be able to see
+ your AFS tokens by running:
+
+ tokens
+
+ Finally, you should be able to see the status of the AFS server
+ processes with:
+
+ bos status
+
+ where is the hostname of the local system, once you've
+ done the above. This tests authenticated bos access as your admin
+ principal (rather than using the local KeyFile to authenticate).
+
+ 10. Run afs-rootvol. This creates the basic AFS volume structure for
+ your new cell, including the top-level volume, the mount point for
+ your cell in the AFS root volume, and the mount points for all known
+ public cells. It will prompt you to be sure that the above steps
+ are complete and then will ask you what file server and partition to
+ create the volume on. If you were following the above instructions,
+ use the local hostname and "a" as the partition (without the
+ quotes), which will use /vicepa.
+
+ After this command completes, you should be able to /bin/ls /afs and
+ see your local cell (and, if you aren't using dynroot, mount points
+ for several other cells). Note that if you're not using fakestat,
+ run /bin/ls rather than just ls to be sure that ls isn't aliased to
+ ls -F, ls --color, or some other option that would stat each file in
+ /afs, since this would require contacting lots of foreign cells and
+ could take a very long time.
+
+ You should now be able to cd to /afs/cell.name where cell.name is
+ the AFS cell name that you used. Currently, there isn't anything in
+ your cell except two volumes, user and service, created by
+ afs-rootvol. To make modifications, cd to /afs/.cell.name (note the
+ leading period) and make changes there. To make those changes show
+ up at /afs/cell.name, run vos release root.cell. For more details
+ on what you can do now, see the AFS Administrator's Reference.
+
+ 11. While this is optional, you probably want to add AFSDB records to
+ DNS for your new AFS cell. These special DNS records let AFS
+ clients find the db servers for your cell without requiring local
+ configuration. To do this, create a DNS record like:
+
+ . 3600 IN AFSDB 1 .
+
+ where is the name of your AFS cell and is the name
+ of your db server. Note the trailing periods to prevent the DNS
+ server from appending the origin. You can, of course, choose what
+ you prefer for the lifetime. The 1 is not a priority; it's a
+ special indicator saying that this record is for an AFS database
+ server.
+
+ If you have multiple db servers (see below for adding new ones), you
+ should create multiple records of this type, one per db server.
+
+ Congratulations! You now have an AFS cell. If any of the above steps
+ failed, please check the steps carefully and make sure that you've done
+ them all in order. If that doesn't reveal the cause of the problem,
+ please feel free to submit a bug report with reportbug. Include as many
+ details as possible on exactly what you typed and exactly what you saw
+ as a result, particularly any error messages.
+
+Adding Additional Servers
+
+ If you decide one server is not enough, or if you're adding a server to
+ an existing cell, here is roughly what you should do:
+
+ 1. Copy securely (using scp, encrypted Kerberos rcp, or some other
+ secure method) all of /etc/openafs/server to the new server.
+
+ 2. Install the openafs-fileserver package on the new server.
+
+ 3. If the machine is to be a file server, create an fs instance using
+ bos create:
+
+ bos create fs fs -cmd /usr/lib/openafs/fileserver \
+ -cmd /usr/lib/openafs/volserver \
+ -cmd /usr/lib/openafs/salvager -localauth
+
+ For a file server, this is all you have to do.
+
+ 4. For database servers, also install openafs-dbserver and then use bos
+ addhost to add the new server to /etc/openafs/server/CellServDB:
+
+ bos addhost
+
+ for each db server in your cell (including the new one).
+ Then, restart the ptserver and vlserver instances on each of your
+ existing servers with:
+
+ bos restart ptserver
+ bos restart vlserver
+
+ It's best to wait a few seconds after doing this for each server
+ before doing the next server so that voting finishes and you never
+ lose a quorum.
+
+ Only after ptserver and vlserver have been restarted on each of your
+ existing servers, create ptserver and vlserver instances on the new
+ server:
+
+ bos create ptserver simple /usr/lib/openafs/ptserver \
+ -localauth
+ bos create vlserver simple /usr/lib/openafs/vlserver \
+ -localauth
+
+ The existing servers should then propagate the database to the new
+ server. If you are using buserver, you will need to do the same
+ thing for it as with ptserver and vlserver.
+
+ Note that you do not need to run a file server on a db server if you
+ don't want to (and larger sites probably will not want to), but you
+ always need to have the openafs-fileserver package installed on db
+ servers. It contains the bosserver binary and some of the shared
+ infrastructure.
+
+ 5. If you added a new db server, configure your clients to use it. If
+ you are using AFSDB records in DNS, you can just add a new record
+ (see point 10 in the instructions for creating a new cell).
+ Otherwise, clients will need to have the new server IP address added
+ to their /etc/openafs/CellServDB file (or /usr/vice/etc/CellServDB
+ for non-Debian clients using the standard AFS paths), and the client
+ will have to be restarted before it will know about the new db
+ server.
+
+ The standard rule of thumb is that all of your database servers and file
+ servers should ideally be running the same version of OpenAFS. However,
+ in practice OpenAFS is fairly good at backward compatibility and you can
+ generally mix and match different versions. Be careful, though, to
+ ensure that all of your database servers are built the same when it
+ comes to options like --enable-supergroups (enabled in the Debian
+ packages).
+
+Upgrades
+
+ Currently, during an upgrade of the openafs-fileserver package, all
+ services will be stopped and restarted. If openafs-dbserver is upgraded
+ without upgrading openafs-fileserver, those server binaries will not be
+ stopped and restarted; that restart will have to be done by hand.
+
+ It is possible that future versions of this package will install for
+ example /usr/lib/openafs/fileserver.package instead of
+ /usr/lib/openafs/fileserver and then create links to the actual binaries
+ in postinst. Upgrades would then not replace the old binaries, but
+ instead a script will be provided to roll the links forward to the new
+ versions. The intent is that people could install the new package on
+ all their servers and then quickly move the links before restarting the
+ bosserver. This has not yet been implemented.
diff --git a/src/packaging/Debian/TODO b/src/packaging/Debian/TODO
index dbbd37de63..cec5dbcb30 100644
--- a/src/packaging/Debian/TODO
+++ b/src/packaging/Debian/TODO
@@ -1 +1,13 @@
-* Get bos restrict working
+* Get bos restrict working.
+
+* The configuration transcript and the README.servers file would be best
+ read together, but preferrably with some nicer formatting (such as HTML
+ with a style sheet to set off the transcript in a different background
+ color).
+
+* Consider including the kdump executable in the kernel module package.
+ openafs-client would have to provide a wrapper script to run the
+ appropriate kdump and the kernel module package would need to install
+ the kdump executable, maybe in /usr/lib/openafs, named after the kernel
+ image installed.
+
diff --git a/src/packaging/Debian/afs-newcell b/src/packaging/Debian/afs-newcell
index b896f000dc..725d526b90 100644
--- a/src/packaging/Debian/afs-newcell
+++ b/src/packaging/Debian/afs-newcell
@@ -1,19 +1,20 @@
#!/usr/bin/perl -w
# Copyright (C) 2000 by Sam Hartman
-# This file may be copied either under the terms of the GNU GPL or the IBM Public License
-# either version 2 or later of the GPL or version 1.0 or later of the IPL.
+# This file may be copied either under the terms of the GNU GPL or the IBM
+# Public License either version 2 or later of the GPL or version 1.0 or later
+# of the IPL.
use Term::ReadLine;
use strict;
use Debian::OpenAFS::ConfigUtils;
use Getopt::Long;
-use vars qw($admin $server
- $requirements_met $shutdown_needed);
+use Socket qw(inet_ntoa);
+use vars qw($admin $server $requirements_met $shutdown_needed);
my $rl = new Term::ReadLine('afs-newcell');
=head1 NAME
- afs-newcell - Set up initial database server for AFS cell.
+afs-newcell - Set up initial database server for AFS cell
=head1 SYNOPSIS
@@ -21,17 +22,15 @@ B [B<--requirements-met>] [B<--admin> admin_user]
=head1 DESCRIPTION
-
This script sets up the initial AFS database and configures the first
database/file server.
-The B option specifies that the initial requirements
-have been met and that the script can proceed without displaying the
-initial banner or asking for confirmation.
+The B<--requirements-met> option specifies that the initial requirements have
+been met and that the script can proceed without displaying the initial
+banner or asking for confirmation.
-The B option specifies the name of the administrative user.
-This user will be given system:administrators and susers permission in
-the cell.
+The B<--admin> option specifies the name of the administrative user. This
+user will be given system:administrators and susers permission in the cell.
=head1 AUTHOR
@@ -39,21 +38,20 @@ Sam Hartman
=cut
-# main script
+# Flush all output immediately.
+$| = 1;
-GetOptions (
- "requirements-met" => \$requirements_met,
- "admin=s" => \$admin);
+GetOptions ("requirements-met" => \$requirements_met, "admin=s" => \$admin);
unless ($requirements_met) {
- print <readline("Do you meet these requirements? [y/n] ");
- unless (/^y/i ) {
- print "Run this script again when you meet the requirements\n";
- exit(1);
- }
-
- if ($> != 0) {
-die "This script should almost always be run as root. Use the --requirements-met option to run as non-root.\n";
-}
+ $_ = $rl->readline("Do you meet these requirements? [y/n] ");
+ unless (/^y/i ) {
+ print "Run this script again when you meet the requirements\n";
+ exit(1);
+ }
+
+ if ($> != 0) {
+ die "This script should almost always be run as root. Use the\n"
+ . "--requirements-met option to run as non-root.\n";
+ }
}
+
+# Make sure the AFS client is not already running.
open(MOUNT, "mount |") or die "Failed to run mount: $!\n";
while() {
-if(m:^AFS:) {
-print "The AFS client is currently running on this workstation.\n";
-print "Please restart this script after running /etc/init.d/openafs-client stop\n";
-exit(1);
-}
+ if (m:^AFS:) {
+ print "The AFS client is currently running on this workstation.\n";
+ print "Please restart this script after running"
+ . " /etc/init.d/openafs-client stop\n";
+ exit(1);
+ }
}
close MOUNT;
+# Make sure there is a keyfile.
unless ( -f "/etc/openafs/server/KeyFile") {
- print "You do not have an AFS keyfile. Please create this using asetkey from openafs-krb5 or
-the bos addkey command";
- exit(1);
+ print "You do not have an AFS keyfile. Please create this using\n";
+ print "asetkey from openafs-krb5 or the bos addkey command\n";
+ exit(1);
}
+# Stop the file server.
print "If the fileserver is not running, this may hang for 30 seconds.\n";
run("/etc/init.d/openafs-fileserver stop");
-$server = `hostname`;
+
+# Get the local hostname. Use the fully-qualified hostname to be safer.
+$server = `hostname -f`;
chomp $server;
-$admin = $rl->readline("What administrative principal should be used? ") unless $admin;
- die "Please specify an administrative user\n" unless $admin;
-$admin =~ s:/:.:g;
-if($admin =~ /@/) {
-die "The administrative user must be in the same realm as the cell and no realm may be specified.\n";
+my $ip = gethostbyname $server;
+if (inet_ntoa($ip) eq '127.0.0.1') {
+ print "\n";
+ print "Your hostname $server resolves to 127.0.0.1, which AFS cannot\n";
+ print "cope with. Make sure your hostname resolves to a non-loopback\n";
+ print "IP address. (Check /etc/hosts and make sure that your hostname\n";
+ print "isn't listed on the 127.0.0.1 line. If it is, removing it from\n";
+ print "that line will probably solve this problem.)\n";
+ exit(1);
}
-open(CELL, "/etc/openafs/server/ThisCell")
- or die "Cannot open /etc/openafs/server/ThisCell: $!\n";
+
+# Determine the admin principal.
+$admin = $rl->readline("What administrative principal should be used? ")
+ unless $admin;
+print "\n";
+die "Please specify an administrative user\n" unless $admin;
+my $afs_admin = $admin;
+$afs_admin =~ s:/:.:g;
+if ($afs_admin =~ /@/) {
+ die "The administrative user must be in the same realm as the cell and\n"
+ . "no realm may be specified.\n";
+}
+
+# Determine the local cell. This should be configured via debconf, from the
+# openafs-client configuration, when openafs-fileserver is installed.
+open(CELL, "/etc/openafs/server/ThisCell")
+ or die "Cannot open /etc/openafs/server/ThisCell: $!\n";
my $cell = ;
chomp $cell;
-run( "echo \\>$cell >/etc/openafs/server/CellServDB");
+# Make sure the new cell is configured in the client CellServDB.
+open(CELLSERVDB, "/etc/openafs/CellServDB")
+ or die "Cannot open /etc/openafs/CellServDB: $!\n";
+my $found = 0;
+while () {
+ next unless /^>\Q$cell\E\s/;
+ while () {
+ last if /^>/;
+ my ($dbserver) = split ' ';
+ if ($dbserver eq inet_ntoa($ip)) {
+ $found = 1;
+ last;
+ }
+ }
+ last;
+}
+unless ($found) {
+ print "\n";
+ print "The new cell $cell is not configured in /etc/openafs/CellServDB\n";
+ print "Add configuration like:\n\n";
+ print ">$cell\n";
+ print inet_ntoa($ip), "\n\n";
+ print "to that file before continuing.\n";
+ exit(1);
+}
+
+# Write out a new CellServDB for the local cell containing only this server.
+if (-f "/etc/openafs/server/CellServDB") {
+ print "/etc/openafs/server/CellServDB already exists, renaming to .old\n";
+ rename("/etc/openafs/server/CellServDB",
+ "/etc/openafs/server/CellServDB.old")
+ or die "Cannot rename /etc/openafs/server/CellServDB: $!\n";
+}
+open(CELLSERVDB, "> /etc/openafs/server/CellServDB")
+ or die "Cannot create /etc/openafs/server/CellServDB: $!\n";
+print CELLSERVDB ">$cell\n";
+print CELLSERVDB inet_ntoa($ip), "\t\t\t#$server\n";
+close CELLSERVDB or die "Cannot write to /etc/openafs/server/CellServDB: $!\n";
+
+# Now, we should be able to start bos and add the admin user.
run("/etc/init.d/openafs-fileserver start");
$shutdown_needed = 1;
-run ("bos addhost $server $server -localauth ||true");
-run("bos adduser $server $admin -localauth");
-unwind("bos removeuser $server $admin -localauth");
-if ( -f "/var/lib/openafs/db/prdb.DB0" ) {
- die "Protection database already exists; cell already partially created\n";
- }
-open(PRDB, "|pt_util -p /var/lib/openafs/db/prdb.DB0 -w ")
-or die "Unable to start pt_util: $!\n";
-print PRDB "$admin 128/20 1 -204 -204\n";
+run("bos adduser $server $afs_admin -localauth");
+unwind("bos removeuser $server $afs_admin -localauth");
+
+# Create the initial protection database using pt_util. This is safer than
+# the standard mechanism of starting the cell in noauth mode until the first
+# user has been created.
+if (-f "/var/lib/openafs/db/prdb.DB0") {
+ warn "ERROR: Protection database already exists; cell already partially\n";
+ warn "ERROR: created. If you do not want the current database, remove\n";
+ warn "ERROR: all files in /var/lib/openafs/db and then run this program\n";
+ warn "ERROR: again.\n";
+ exit(1);
+}
+print "\nCreating initial protection database. This will print some errors\n";
+print "about an id already existing and a bad ubik magic. These errors can\n";
+print "be safely ignored.\n\n";
+open(PRDB, "| pt_util -p /var/lib/openafs/db/prdb.DB0 -w")
+ or die "Unable to start pt_util: $!\n";
+print PRDB "$afs_admin 128/20 1 -204 -204\n";
print PRDB "system:administrators 130/20 -204 -204 -204\n";
-print PRDB" $admin 1\n";
+print PRDB " $afs_admin 1\n";
close PRDB;
-unwind( "rm /var/lib/openafs/db/prdb* ");
-# Start up ptserver and vlserver
+unwind("rm /var/lib/openafs/db/prdb*");
+print "\n";
+
+# We should now be able to start ptserver and vlserver.
run("bos create $server ptserver simple /usr/lib/openafs/ptserver -localauth");
unwind("bos delete $server ptserver -localauth");
-
run("bos create $server vlserver simple /usr/lib/openafs/vlserver -localauth");
unwind("bos delete $server vlserver -localauth");
-run( "bos create $server fs fs ".
- "-cmd /usr/lib/openafs/fileserver ".
- "-cmd /usr/lib/openafs/volserver ".
- "-cmd /usr/lib/openafs/salvager -localauth");
-unwind( "bos delete $server fs -localauth ");
+# Create a file server as well.
+run("bos create $server fs fs"
+ . " -cmd /usr/lib/openafs/fileserver"
+ . " -cmd /usr/lib/openafs/volserver"
+ . " -cmd /usr/lib/openafs/salvager -localauth");
+unwind("bos delete $server fs -localauth");
+# Pause for a while for ubik to catch up.
print "Waiting for database elections: ";
sleep(30);
print "done.\n";
-# Past this point we want to control when bos shutdown happens
+
+# Past this point we want to control when bos shutdown happens.
$shutdown_needed = 0;
-unwind( "bos shutdown $server -localauth ");
+unwind("bos shutdown $server -localauth -wait");
run("vos create $server a root.afs -localauth");
-# bring up client
-run("echo $cell >/etc/openafs/ThisCell");
+unwind("vos remove $server a root.afs -localauth");
+
+# We should now be able to bring up the client (it may need root.afs to exist
+# if not using dynroot). We override whatever default cell was configured for
+# the client, just in case it was pointing to some other cell.
+open(THIS, "> /etc/openafs/ThisCell")
+ or die "ERROR: Cannot create /etc/openafs/ThisCell: $!\n";
+print THIS "$cell\n";
+close THIS or die "ERROR: Cannot write to /etc/openafs/ThisCell: $!\n";
run("/etc/init.d/openafs-client force-start");
+
+# Verify that AFS has managed to start.
my $afs_running = 0;
-open(MOUNT, "mount |") or die "Failed to run mount: $!\n";
+open(MOUNT, "mount |") or die "ERROR: Failed to run mount: $!\n";
while() {
-if(m:^AFS:) {
- $afs_running = 1;
+ if (m:^AFS:) {
+ $afs_running = 1;
+ }
}
- }
unless ($afs_running) {
-print "*** The AFS client failed to start.\n";
-print "Please fix whatever problem kept it from running.\n";
- exit(1);
+ print "ERROR: The AFS client failed to start.\n";
+ print "ERROR: Please fix whatever problem kept it from running.\n";
+ exit(1);
}
+print "\n";
+print "Now, get tokens as $admin in the $cell cell.\n";
+print "Then, run afs-rootvol.\n";
-print < [B<--requirements-met>] [B<--server> server-name] [B<--partition> partition-letter]
+B [B<--requirements-met>] [B<--server> I]
+[B<--partition> I]
=head1 DESCRIPTION
-This script sets up an AFS cell's root volumes. It assumes that you
-already have a fileserver and database servers. The fileserver should
-have an empty root.afs.
- This script creates root.cell, user, service and populates root.afs.
+This script sets up an AFS cell's root volumes. It assumes that you already
+have a fileserver and database servers. The fileserver should have an empty
+root.afs. This script creates root.cell, user, and service and populates
+root.afs.
=head1 AUTHOR
Sam Hartman
=cut
-
-use vars qw($rl $server $part $requirements_met);
-use vars qw( @unwinds);
-use Debian::OpenAFS::ConfigUtils;
-
+#'# cperl-mode
# This subroutine creates a volume, mounts it and then sets the access
# to allow read by anyuser. The volume is scheduled for deletion in
# case of error.
-# mkvol(volume, mount)
- sub mkvol($$) {
- my ($vol, $mnt) = @_;
- run("vos create $server $part $vol -localauth");
- unwind("vos remove $server $part $vol -localauth");
- run("fs mkm $mnt $vol ");
- run("fs sa $mnt system:anyuser rl");
- }
+sub mkvol($$) {
+ my ($vol, $mnt) = @_;
+ run("vos create $server $part $vol -localauth");
+ unwind("vos remove $server $part $vol -localauth");
+ run("fs mkm $mnt $vol ");
+ run("fs sa $mnt system:anyuser rl");
+}
-# main script
+# Main script. Flush all output immediately.
+$| = 1;
$rl = new Term::ReadLine('AFS');
-
-
-GetOptions (
- "requirements-met" => \$requirements_met,
- "server=s" => \$server,
- "partition=s" => \$part
- );
+GetOptions ("requirements-met" => \$requirements_met,
+ "server=s" => \$server,
+ "partition=s" => \$part);
unless ($requirements_met) {
- print <readline("Do you meet these conditions? (y/n) ");
unless (/^y/i ) {
- print "Please restart the script when you meet these conditions.\n";
- exit(1);
+ print "Please restart the script when you meet these conditions.\n";
+ exit(1);
+ }
+ if ($> != 0) {
+ die "This script should almost always be run as root. Use the\n"
+ . "--requirements-met option to run as non-root.\n";
}
-
- if ($> != 0) {
-die "This script should almost always be run as root. Use the --requirements-met option to run as non-root.\n";
}
-}
-# Get configuration information we need
+# Get configuration information we need.
open(CELL, "/etc/openafs/server/ThisCell")
-or die "Unable to find out what cell this machine serves: $!\n";
+ or die "Unable to find out what cell this machine serves: $!\n";
my $cell = ;
close CELL;
chomp $cell;
unless ($server) {
- print <readline("What AFS Server should volumes be placed on? ");
- die "Please select a server.\n" unless $server;
+ $server = $rl->readline("What AFS Server should volumes be placed on? ");
+ die "Please select a server.\n" unless $server;
}
unless ($part) {
- $part = $rl ->readline("What partition? [a] ");
-$part = "a" unless $part;
+ $part = $rl->readline("What partition? [a] ");
+ $part = "a" unless $part;
+}
+print "\n";
+
+# Make sure the user has tokens. Forgetting to do this is a common error.
+my $status = system("tokens | grep Expires > /dev/null");
+if ($status != 0) {
+ die "You appear to not have AFS tokens. Obtain tokens (with aklog,\n"
+ . "for example) and then run this script again.\n";
}
-
-run("fs sa /afs system:anyuser rl");
-
+# Figure out where root.afs is. There are two possibilities: either we aren't
+# running with dynroot, and root.afs is therefore accessible as /afs, or we
+# are running with dynroot, in which case we have to create root.cell first
+# and then mount root.afs under it.
+#
+# Always create root.cell first; we may need it if running with dynroot, and
+# it doesn't hurt to do it now regardless.
+my $rootmnt = "/afs";
run("vos create $server $part root.cell -localauth");
unwind("vos remove $server $part root.cell -localauth");
-# We make root.cell s:anyuser readable after we mount in the next
-# loop.
-
+my $dynroot = (-d "$rootmnt/$cell/.");
+if ($dynroot) {
+ run("fs mkm /afs/$cell/.root.afs root.afs -rw");
+ unwind("fs rmm /afs/$cell/.root.afs");
+ $rootmnt = "/afs/$cell/.root.afs";
+}
+run("fs sa $rootmnt system:anyuser rl");
+# Scan CellServDB and create the cell mount points for every cell found there.
+# Force these commands to succeed, since it's possible to end up with
+# duplicate entries in CellServDB (and the second fs mkm will fail).
open(CELLSERVDB, "/etc/openafs/CellServDB")
or die "Unable to open /etc/openafs/CellServDB: $!\n";
-while() {
+while () {
chomp;
- if (/^>\s*([a-z0-9_\-.]+)/ ) {
- run("fs mkm /afs/$1 root.cell -cell $1 -fast");
- unwind ("fs rmm /afs/$1");
+ if (/^>\s*([a-z0-9_\-.]+)/) {
+ run("fs mkm $rootmnt/$1 root.cell -cell $1 -fast || true");
+ unwind("fs rmm $rootmnt/$1 || true");
}
}
+# Now, create the read/write mount points for root.cell and root.afs and set
+# root.cell system:anyuser read.
run("fs sa /afs/$cell system:anyuser rl");
-run ("fs mkm /afs/.$cell root.cell -cell $cell -rw");
-unwind ("fs rmm /afs/.$cell");
-run("fs mkm /afs/.root.afs root.afs -rw");
-unwind ("fs rmm /afs/.root.afs");
+run("fs mkm $rootmnt/.$cell root.cell -cell $cell -rw");
+unwind("fs rmm $rootmnt/.$cell");
+run("fs mkm $rootmnt/.root.afs root.afs -rw");
+unwind("fs rmm $rootmnt/.root.afs");
-mkvol( "user", "/afs/$cell/user" );
-mkvol( "service", "/afs/$cell/service" );
+# Create the user and service mount point volumes to fit the semi-standard AFS
+# cell layout.
+mkvol("user", "/afs/$cell/user");
+mkvol("service", "/afs/$cell/service");
-$cell =~ /^([^.]*)/;
+# Strip the domain off of the cell name and create the short symlinks.
+$cell =~ /^([^.]+)/;
my $cellpart = $1;
-run("ln -s /afs/$cell /afs/$cellpart");
-unwind ("rm /afs/$cellpart");
-run( "ln -s /afs/.$cell /afs/.$cellpart" );
-unwind ("rm /afs/.$cellpart");
+if ($cellpart && $cellpart ne $cell) {
+ run("ln -s $cell $rootmnt/$cellpart");
+ unwind("rm $rootmnt/$cellpart");
+ run("ln -s .$cell $rootmnt/.$cellpart");
+ unwind("rm $rootmnt/.$cellpart");
+}
+if ($dynroot) {
+ run("fs rmm /afs/$cell/.root.afs");
+ unwind("fs mkm /afs/$cell/.root.afs root.afs -rw");
+}
-run( "vos addsite $server $part root.afs -localauth" );
-run( "vos addsite $server $part root.cell -localauth" );
-run( "vos release root.afs -localauth" );
-run( "vos release root.cell -localauth" );
-unwind( "vos remove $server $part root.cell.readonly -localauth ");
-unwind( "vos remove $server $part root.afs.readonly -localauth ");
+# Now, replicate the infrastructure volumes.
+run("vos addsite $server $part root.afs -localauth");
+run("vos addsite $server $part root.cell -localauth");
+run("vos release root.afs -localauth");
+run("vos release root.cell -localauth");
+unwind("vos remove $server $part root.cell.readonly -localauth");
+unwind("vos remove $server $part root.afs.readonly -localauth");
+# Success, so clear the unwind commands.
@unwinds = ();
+# If we fail before all the instances are created, we need to back out of
+# everything we did as much as possible.
END {
- run(pop @unwinds) while @unwinds;
- }
-
+ if (@unwinds) {
+ print "\nRoot volume setup failed, ABORTING\n";
+ }
+ run(pop @unwinds) while @unwinds;
+}
diff --git a/src/packaging/Debian/afs.conf b/src/packaging/Debian/afs.conf
new file mode 100644
index 0000000000..64490a1bd9
--- /dev/null
+++ b/src/packaging/Debian/afs.conf
@@ -0,0 +1,129 @@
+# -*- sh -*-
+# Copyright 2000, International Business Machines Corporation and others.
+# All Rights Reserved.
+#
+# This software has been released under the terms of the IBM Public
+# License. For details, see the LICENSE file in the top-level source
+# directory or online at http://www.openafs.org/dl/license10.html
+
+# Configuration information for AFS client.
+
+# The following options are maintained by debconf. To change them, run
+# dpkg-reconfigure openafs-client.
+#
+# AFS_CLIENT Whether to start the AFS client at boot
+# AFS_AFSDB Whether to use AFSDB DNS records to find VLDB servers
+# AFS_CRYPT Whether to enable fcrypt encryption
+# AFS_DYNROOT Whether to use a dynamic /afs directory
+# AFS_FAKESTAT Whether to fake stat data for mount points
+
+test -f /etc/openafs/afs.conf.client && . /etc/openafs/afs.conf.client
+
+# Set to "-verbose" for a lot of debugging information from afsd. Only useful
+# for debugging as it prints a LOT of information.
+VERBOSE=
+
+# AFS client configuration options.
+#
+# Here is a (mostly) complete list of flags that afsd accepts and that are
+# useful here:
+#
+# -blocks The number of blocks available in the workstation cache.
+# -files The target number of files in the workstation cache (Default:
+# 1000).
+# -rootvol The name of the root volume to use.
+# -stat The number of stat cache entries.
+# -hosts List of servers to check for volume location info FOR THE
+# HOME CELL.
+# -memcache Use an in-memory cache rather than disk.
+# -cachedir The base directory for the workstation cache.
+# -mountdir The directory on which the AFS is to be mounted.
+# -confdir The configuration directory.
+# -nosettime Don't keep checking the time to avoid drift (default).
+# -settime Keep checking the time to avoid drift.
+# -verbose Be chatty.
+# -debug Print out additional debugging info.
+# -daemons The number of background daemons to start (Default: 2).
+# -rmtsys Also fires up an afs remote sys call (e.g. pioctl, setpag)
+# support daemon
+# -chunksize 2^n is the chunksize to be used (Default: use a kernel
+# module default).
+# -dcache The number of data cache entries.
+# -prealloc Number of preallocated "small" memory blocks
+# -waitclose Make close calls always synchronous (slows them down, though)
+# -files_per_subdir Number of files per cache subdir (Default: 2048).
+#
+# Using the memory cache is not recommended. It's less stable than the disk
+# cache and doesn't improve performance as much as it might sound.
+#
+# The default behavior is to pick one of the following option sets based on
+# the size of the AFS cache, as follows:
+#
+# cache < 128MB $SMALL
+# 128MB < cache < 512MB $MEDIUM
+# 512MB < cache < 1GB $LARGE
+# 1GB < cache < 2GB $XLARGE
+# 2GB < cache $XXLARGE
+#
+# You can override that default behavior by setting OPTIONS below.
+XXLARGE="-chunksize 20 -files 80000 -dcache 10000 -stat 15000 -daemons 6 -volumes 500"
+XLARGE="-chunksize 20 -files 50000 -dcache 10000 -stat 15000 -daemons 5 -volumes 250"
+LARGE="-chunksize 18 -files 25000 -dcache 10000 -stat 15000 -daemons 5 -volumes 200"
+MEDIUM="-chunksize 18 -files 10000 -dcache 5000 -stat 7500 -daemons 3 -volumes 200"
+SMALL="-chunksize 18 -files 2500 -dcache 2000 -stat 3000 -daemons 2 -volumes 200"
+
+# The default behavior is to pick one of the above settings as described
+# above. You can override this by setting OPTIONS explicitly to either one of
+# the above variables or to any set of flags that you prefer.
+OPTIONS=AUTOMATIC
+
+# The default value for the client sysname (as returned by fs sysname) is
+# determined during the kernel module build and is taken from the architecture
+# and the major Linux kernel version. Accesses to directories named "@sys" in
+# AFS will be internally redirected to a directory by this name by the AFS
+# client, allowing a single path to resolve to different directories depending
+# on the client architecture.
+#
+# If you would like to override the client sysname, uncomment this line and
+# set the variable to a space-separated list of sysnames. The AFS client will
+# attempt to resolve @sys to each directory name in the order given.
+#AFS_SYSNAME=""
+
+# If you want to prefer particular servers for replicated volumes, you can
+# configure that by defining an afs_server_prefs function here and then
+# uncommenting the setting of AFS_POST_INIT below. For more information, see
+# fs help setserverprefs and fs getserverprefs (for the current values).
+
+#afs_server_prefs() {
+# fs setserverprefs
+#}
+
+# If you want to always run some command after starting OpenAFS, you can put
+# it here. Note that you cannot run multiple commands, even combined with &&
+# or ; or similar shell meta-characters. If you want to run multiple
+# commands, define a shell function instead and put the name of the shell
+# function here.
+AFS_POST_INIT=
+
+# Uncomment this line if you defined an afs_server_prefs function. (If you
+# have other commands that you also want to run, you'll have to put them in
+# that function, as you can only run one function.)
+#AFS_POST_INIT=afs_server_prefs
+
+# If you want to always run some command before shutting down OpenAFS, you can
+# put it here. The same caveat applies about multiple commands.
+AFS_PRE_SHUTDOWN=
+
+# If you are having problems with AFS shutting down cleanly or the system not
+# rebooting because the partition the AFS cache was on could not be unmounted,
+# try installing lsof and uncommenting this. This will cause all processes
+# with open AFS files to be killed before unmounting AFS if the runlevel being
+# switched to is 0 or 6.
+#
+# Warning: This means /etc/init.d/openafs-client stop will kill all processes
+# with files open in AFS rather than returning an error saying the file system
+# is busy. This is probably what you want when the whole system is shutting
+# down, but often *not* what you want when just stopping and restarting the
+# client. The code doesn't run unless the runlevel is 0 or 6, but still, be
+# sure that this is what you want before enabling it.
+#AFS_PRE_SHUTDOWN=kill_all_afs
diff --git a/src/packaging/Debian/changelog b/src/packaging/Debian/changelog
index eb3c91a2db..a1a6bc02e1 100644
--- a/src/packaging/Debian/changelog
+++ b/src/packaging/Debian/changelog
@@ -1,3 +1,577 @@
+openafs (1.4.0-4) unstable; urgency=low
+
+ * Hopefully fix sparc64 kernel support. Thanks, Troy Benjegerdes.
+ (Closes: #219429)
+ * Document the need to restart ptserver and vlserver on the existing
+ database servers when adding a new one. Thanks, Niklas Edmundsson.
+ (Closes: #349659)
+ * Include xstat_cm_test and xstat_fs_test in openafs-client, as they're
+ quite useful for debugging.
+
+ -- Russ Allbery Tue, 14 Mar 2006 21:07:07 -0800
+
+openafs (1.4.0-3) unstable; urgency=low
+
+ * Apply upstream patch from Chas Williams to be more careful about what
+ dentry is used in renames, avoiding a kernel fault when renaming
+ dentries accessed through multiple paths (such as RO and RW).
+ * Apply patch to allow the module to build with the Ubuntu kernel.
+ Thanks, Björn Torkelsson. (Closes: #342607)
+ * Stop unconditionally forcing the compiler to cc or gcc in configure,
+ allowing, among other things, building the kernel module with a
+ compiler other than the default system compiler. (Closes: #338306)
+ * Call kernel-version correctly from prep-modules, which fixes build
+ issues with manually-built kernels. (Closes: #344851)
+ * Backport man pages from upstream CVS. (Closes: #79763)
+ * Include afsmonitor and livesys in openafs-client.
+ * Include volinfo in openafs-fileserver.
+ * Document FAM's lack of support for AFS's security model and recommend
+ gamin instead. (Closes: #343246)
+ * Add a hint to README.Debian on what to do about the cache partition if
+ running ReiserFS or XFS without a spare partition.
+ * Use make install into debian/tmp rather than make dest. make dest is
+ mostly for Transarc compatibility and make install looks more like a
+ typical package and makes it easier to evaluate differences in FHS
+ location between upstream and Debian. As a side effect, there's no
+ need to mess with the @sys link. (Closes: #165909)
+ * Install more files with dh_install rather than install commands in
+ debian/rules so that *.install shows a more complete picture of what
+ goes into each package.
+ * Don't ignore make distclean errors.
+
+ -- Russ Allbery Tue, 27 Dec 2005 15:34:16 -0800
+
+openafs (1.4.0-2) unstable; urgency=low
+
+ * Install more of the standard OpenAFS utilities. (Closes: #138851)
+ - openafs-dbserver: Install prdb_check and vldb_check.
+ - openafs-fileserver: Install voldump.
+ - openafs-client: Install fstrace, scout, and up (as afs-up).
+ - Modify fstrace to load its catalog from /usr/share/openafs.
+ * Do not install kpwvalid. The default version does little useful and
+ the kpwvalid binary must be in AFS for it to take effect.
+ * Overhaul the way kernel modules are built.
+ - Recommend linux-image rather than kernel-image for newer kernels.
+ - Always recommend the kernel package; since it's only a recommends,
+ there's no need to special-case the hand-built kernel case.
+ - Be less fragile about how the kernel version is used in prep-modules
+ to support other ways kernel modules are built. (Closes: #341836)
+ - Add Build-Depends and Uploaders to the openafs-modules-source
+ control file.
+ - Remove unused parts of prep-modules and heavily comment it.
+ * openafs-client should only recommend the AFS kernel module. Many of
+ the client programs will work in unauthenticated mode without it, and
+ openafs-fileserver depends on it (but doesn't require the kernel
+ module). (Closes: #342095)
+ * openafs-modules-source no longer has to depend on as many libraries.
+ * Suggest the same PAM settings for pam_krb5 that libpam-krb5 does.
+ * Update uploader address.
+
+ -- Russ Allbery Tue, 6 Dec 2005 23:34:18 -0800
+
+openafs (1.4.0-1) unstable; urgency=low
+
+ * New upstream version.
+ - Builds correctly with 2.6.13 kernels and software suspend.
+ - Builds correctly with 2.6.12-10. (Closes: #337883)
+ * Install afsd in /sbin rather than /usr/sbin. While putting /usr in
+ AFS isn't as common as it once was, no reason to make it harder than
+ it needs to be.
+ * Update CellServDB to the 2005-10-15 grand.central.org version.
+ * Install NEWS as an upstream changelog.
+ * Add a watch file.
+ * Remove the unused and uninstalled make-links script.
+
+ -- Russ Allbery Sun, 6 Nov 2005 21:37:40 -0800
+
+openafs (1.4rc4-1) unstable; urgency=low
+
+ * New upstream version.
+ - Correctly handle root.afs becoming replicated after the client
+ starts. This should resolve the problems with AFS eventually
+ failing on the first system using a new cell. (Closes: #88906)
+ * When kill_all_afs is enabled in /etc/openafs/afs.conf, only kill AFS
+ processes if the runlevel is 0 or 6. You really only want this when
+ the system is shutting down. (Closes: #325347)
+ * Remove the init script check of the cache file system and instead
+ improve the check in afsd. The init script check used stat, which is
+ in /usr/bin and therefore not fair game for init scripts.
+ * Set PATH in the init script, just in case.
+ * libpam-openafs-kaserver must depend on openafs-client, not just
+ recommend it, since acquiring tokens requires that the client be
+ running.
+ * Expand README.Debian and include information about PAM configuration.
+ * Link libpam-openafs-kaserver's doc directory to openafs-client.
+ * Make the short descriptions shorter.
+ * Translation updates.
+ - Portuguese (Brazil), thanks André LuÃs Lopes.
+
+ -- Russ Allbery Wed, 21 Sep 2005 13:36:34 -0700
+
+openafs (1.4rc1-1) unstable; urgency=low
+
+ * New upstream version.
+ * Install pam_afs.krb.so on hppa. I believe the new PAM module build
+ process fixes the issue that was being worked around before.
+ * Improve the documentation and scripts for setting up new servers or a
+ new cell. afs-rootvol can now be run from a client configured to use
+ dynroot. afs-newcell generates the server CellServDB directly to work
+ around oddities with bos addhost. There are many other, more minor
+ improvements as well. Thanks to Faheem Mitha and Sergio Gelato for
+ analysis and patches. (Closes: #322638)
+ * Update the configuration transcript to reflect the current packages,
+ messages, and instructions. Thanks, Faheem Mitha.
+ * Fill in the server CellServDB with information about the local cell,
+ if available in the client CellServDB, rather than always initializing
+ it to contain just the name of the cell.
+ * Detect AFS caches on non-ext2/ext3 file systems and abort AFS client
+ initialization. (Closes: #249315)
+ * Provide a way of setting sysname in afs.conf. (Closes: #324694)
+ * Don't create the unused /etc/openafs/AFSLog file. (Closes: #120097)
+ * Redo how library object files are found for the PAM module build to
+ avoid assuming C locale character set behavior. (Closes: #323582)
+ * Remove the openafs-client warning against dynroot for the first system
+ in a cell now that afs-rootvol can cope. Provide some basic
+ documentation of the CellAlias syntax in that message until we have a
+ real man page.
+ * Suggest openafs-doc.
+ * Update standards version to 3.6.2 for the kernel module packages (no
+ changes required).
+ * Translation updates.
+ - Czech, thanks Martin Sin.
+ - Vietnamese, thanks Clytie Siddall.
+ - French, thanks Christian Perrier.
+
+ -- Russ Allbery Fri, 26 Aug 2005 01:30:21 -0700
+
+openafs (1.3.87-1) unstable; urgency=low
+
+ * New upstream version.
+ - Fixes build problems with 2.6.12.3 and later. (Closes: #320099)
+ * Add support for ppc64, thanks Andreas Jochens. (Closes: #322020)
+ * Improve the openafs-client init script.
+ - Update the default client options based on the cache tuning synopsis
+ by Jeffrey Hutzelman, including setting a larger chunksize for all
+ default option sets. (Closes: #303944)
+ - Choose the client options based on the cache size by default.
+ - Move the code to build the options string to the init script from
+ afs.conf so that afs.conf is pure configuration.
+ - Add an AFS_PRE_SHUTDOWN hook called before shutting down the client.
+ - Provide a shutdown hook, disabled by default, that kills all
+ processes with files open in /afs. Enabling this ensures a more
+ reliable clean shutdown and umounting of the cache partition, but
+ may not always be what the admin wants.
+ - Improve the readability of the output on start.
+ - Significantly improve the comments in afs.conf.
+ - Remove the code to set -nosettime as it's now the default.
+ * Move the openafs-client init script and afs.conf file we use into the
+ debian directory rather than patching the upstream version. We've
+ diverged so much that there's no point in continuing to merge changes.
+ * Diagnose unsupported architectures earlier and with a clearer error.
+ * Suppress error messages from a missing kernel version header since
+ they occur normally when doing the regular package build and are just
+ confusing. Instead, print an error in kern-sysname and abort if the
+ kernel version could not be determined.
+ * Rework how PAM modules are handled.
+ - Build against the pthread-aware libraries. (Closes: #297804)
+ - Use the shared library objects instead of building separate PIC
+ objects, eliminating the need for many Makefile modifications.
+ - Include pam_afs.krb.so as well. (Closes: #165972)
+ * Don't include the empty /usr/src/modules directory in
+ openafs-modules-source, only the tarball, to match how other kernel
+ module source packages behave. (Closes: #244685)
+ * Update config.guess and config.sub.
+ * Translation updates.
+ - French, thanks Christian Perrier. (Closes: #318807)
+ - Vietnamese, thanks Clytie Siddall. (Closes: #319705)
+ - Czech, thanks Martin Sin. (Closes: #319940)
+
+ -- Russ Allbery Sun, 14 Aug 2005 14:41:48 -0700
+
+openafs (1.3.82-2) unstable; urgency=low
+
+ * Output error messages from heredocs in the init script with cat rather
+ than echo. Thanks, Reid Barton. (Closes: #311729)
+ * Make bosserver less picky about permissions and remove the attempt to
+ set /etc/openafs/server-local not-world-readable since dh_fixperms was
+ overridding it anyway. (Closes: #312921)
+ * Fix some spacing and capitalization errors in the debconf templates.
+ Thanks, Clytie Siddall. (Closes: #316597)
+ * Initial Czech translation, thanks Martin Sin. (Closes: #310699)
+ * New Vietnamese translation, thanks Clytie Siddall. (Closes: #316598)
+ * Update standards version to 3.6.2 (no changes required).
+
+ -- Russ Allbery Mon, 11 Jul 2005 17:34:13 -0700
+
+openafs (1.3.82-1) unstable; urgency=medium
+
+ * New upstream version. (Closes: #307699)
+ - Proper locking for preempt kernels. This bug manifested as an
+ inability to shut down AFS cleanly. (Closes: #308399, #304040)
+ - Correctly handle the inotify semaphore. (Closes: #303495)
+ * Repackage upstream to remove MacOS-specific files covered by the APSL.
+ Remove the WINNT directory to save space since we have to repackage
+ anyway. Provide a get-orig-source target to do the repackaging.
+ * libpam-openafs-kaserver: Fix compilation so that the PAM module isn't
+ missing symbols and therefore unusable. (Closes: #308844)
+ * Apply patch from Chas Williams to fix stale cache data from deleted
+ files, a bug introduced in 1.3.82.
+ * In all cases, only build the module appropriate to the kernel we're
+ building against. Building an SMP module against a non-SMP kernel
+ fails due to missing defines. (Closes: #225907)
+ * README.modules: Add documentation for module-assistant and recommend
+ it when using Debian kernels. Mention divergences from upstream in
+ module naming. (Closes: #253168) Emphasize that the kernel source
+ tree used for make-kpkg must be identically configured to the kernel
+ the module will be used with.
+ * Update copyright with more complete information from upstream
+ src/LICENSE.
+ * Simplify clean target. Upstream make distclean is now better.
+
+ -- Russ Allbery Tue, 10 May 2005 21:09:55 -0700
+
+openafs (1.3.81-5) unstable; urgency=low
+
+ * Handle modules named either with or without the .mp extension on SMP
+ hosts. (Closes: #305389, #307280, #307797)
+ * README.Debian: Document that the client cache partition must be ext2
+ or ext3 and that XFS and ReiserFS will not work. upserver and
+ upclient are now provided. Provide some information about why
+ kaserver is not provided. (Closes: #249315)
+ * Overhaul the module build rules.
+ - Use debhelper to build the module binary package.
+ - Let debhelper handle the module postinst and prerm control scripts.
+ - Properly support modules_config and modules_clean.
+ - Break the build process into configure, build, install, and binary
+ rules, paralleling the regular build rules and making it easier to
+ maintain the make-kpkg build targets.
+ - Include the kernel version in the long description.
+ - Update standards version of module packages to 3.6.1.
+ - Include the copyright and basic documentation in the module binary
+ package. Otherwise, policy requires an exact versioned dependency
+ on the package containing the copyright file.
+ * Update standards version to 3.6.1.
+ - Install Debian::OpenAFS::ConfigUtils in /usr/share, not /usr/lib.
+ - Always enable debugging symbols and disable optimization if noopt is
+ set in DEB_BUILD_OPTIONS. (Alas, this doesn't entirely work; the
+ upstream makefiles don't always honor the configure options.)
+ - /etc/init.d/openafs-fileserver restart starts bosserver if it's not
+ already running.
+ * Update debhelper compatibility level to V4.
+ - Remove all *.conffiles control files. They're no longer needed.
+ - Use misc:Depends to get debconf dependencies.
+ - Use dh_install rather than the movefiles script.
+ * openafs-dbserver doesn't need to depend on debconf.
+ * Use dh_perl to get the correct Perl dependency for openafs-dbserver.
+ * Remove unnecessary build dependencies.
+ * Depend on comerr-dev rather than e2fslibs-dev.
+ * Remove unnecessary preinst for openafs-fileserver.
+ * Clean up and reformat package build rules.
+ * Update lintian overrides.
+
+ -- Russ Allbery Sat, 7 May 2005 20:57:12 -0700
+
+openafs (1.3.81-4) unstable; urgency=low
+
+ * make-kpkg doesn't run fakeroot for us but instead expects the module
+ rules file to use $(ROOT_CMD) appropriately. (Closes: #237861)
+ * Put the compiled modules into KPKG_DEST_DIR if set. This appears to
+ be preferred over DEB_DEST by the make-kpkg documentation. Thanks,
+ Jonas Smedegaard. (Closes: #206403)
+ * Add a check to afs-newcell to ensure the local hostname doesn't
+ resolve to 127.0.0.1. (Closes: #163751)
+ * Exclude .svn directories from the modules source tarball.
+ * Fix genchanges for module builds to not fail when trying to remove a
+ nonexistent file.
+ * New French translations from Christian Perrier, Closes: #305780
+
+ -- Russ Allbery Sun, 17 Apr 2005 00:00:27 -0700
+
+openafs (1.3.81-3) unstable; urgency=low
+
+ * Patch from kcr to fix osconf.m4 so that sparc defines afs_pthread_env
+ and thus builds.
+
+ -- Sam Hartman Wed, 6 Apr 2005 19:54:24 -0400
+
+openafs (1.3.81-2) unstable; urgency=low
+
+ * Oops, update debian/sysname because hppa is hppa not parisc-*-linux-*
+ since we now use dpkg --print-installation-architecture
+
+ -- Sam Hartman Wed, 6 Apr 2005 11:10:14 -0400
+
+openafs (1.3.81-1) unstable; urgency=low
+
+ * New Upstream version
+ * Use Linux 2.4 as the claimed userspace OS for alpha; hopefully this
+ resolves the largefile issue and allows us to build again, Closes: #271923
+
+ -- Sam Hartman Wed, 6 Apr 2005 08:08:29 -0400
+
+openafs (1.3.80-1) UNRELEASED; urgency=low
+
+ * New upstream version, Closes: #297781
+ * I think this works on sparc better and definitely works on 2.6.10, Closes: #283488
+ * Make thiscell a high debconf value, Closes: #302939
+ * New upstream version (1.3.79)
+ - Works with 2.6.10, Closes: #296835
+ * Use amd64 not x86_64 for sysname script, Closes: #296855
+ * Patches from kcr
+ - Loosen dependencies for client and modules
+ - Enable debugging
+ - Some callbacks later stuff and fix short bitfield
+ - Fix permissions on /etc/openafs/server-local, Closes: #271460
+
+ * Versions 1.3.79 an newer work on amd64, Closes: #262382
+
+ -- Sam Hartman Mon, 4 Apr 2005 00:32:42 -0400
+
+openafs (1.3.77-1) unstable; urgency=low
+
+ * New upstream version
+ * Target for unstable not experimental
+ * New CellServDB
+ * OpenAFS seems not to have a changelog available, so stop shipping it.
+ * Build openafs.ko not libafs.ko so the right name appears in lsmod
+
+ -- Sam Hartman Sat, 8 Jan 2005 20:02:23 -0500
+
+openafs (1.3.74-1) experimental; urgency=low
+
+ * New upstream version
+
+ -- Sam Hartman Mon, 15 Nov 2004 16:58:02 -0500
+
+openafs (1.3.73-1) experimental; urgency=low
+
+ * New upstream version
+ - Works with 2.6.8 and 2.6.9, Closes: #277521
+ * Remove call to dh_suidregister
+ * Update sysname to prefer 2.4 on more arches for largefile issues
+ * Patch from pnelson@ANDREW.CMU.EDU to add x86_64 support to sysname scripts
+ * debian/sysname: Use installation architecture
+
+ -- Sam Hartman Wed, 27 Oct 2004 20:42:12 -0400
+
+openafs (1.3.71-1) experimental; urgency=low
+
+ * New upstream version
+
+ -- Sam Hartman Tue, 31 Aug 2004 09:45:59 -0400
+
+openafs (1.3.70-1) experimental; urgency=low
+
+ * New upstream version
+ * debian/kern-sysname: 2.6* not 2.6
+ * Enable supergroups and largefile-fileserver
+
+ -- Sam Hartman Sun, 15 Aug 2004 18:56:48 -0400
+
+openafs (1.3.65-1) experimental; urgency=low
+
+ * New upstream Version, Closes: #256580
+
+ -- Sam Hartman Mon, 28 Jun 2004 19:40:30 -0400
+
+openafs (1.3.64-2) experimental; urgency=low
+
+ * Allow loading of a .ko file not just .o
+
+ -- Sam Hartman Mon, 31 May 2004 13:46:05 -0400
+
+openafs (1.3.64-1) experimental; urgency=low
+
+ * New upstream version
+ * Add 2.6 to kern-sysname for i386
+ * Apply patch from
+ /afs/cs.cmu.edu/user/jhutz/junk/openafs-patches/openafs-build-on-linux26 which correctly generates 2.6 modules, Closes: #234284
+ * use make only_libafs not dest_only_libafs
+ - AS a result, build times are much faster, Closes: #144781
+ * Correct module build scripts to install module package from new location
+ * Fix afslocaldir to be /etc/openafs/server-local, Closes: #237154
+
+ -- Sam Hartman Sun, 30 May 2004 18:12:54 -0400
+
+openafs (1.2.12-1) unstable; urgency=medium
+
+ * New upstream version
+ * Medium urgency because this version fixes a significant server crash
+ bug. Windows clients, particularly greater than version 1.3.70 tend
+ to crash openafs servers.
+ * Cause openafs-kpasswd to conflict with kerberos4kth-clients, Closes:
+ #277844
+ * Conflict between libopenafs-dev and arla-dev, Closes: #274788
+
+ -- Sam Hartman Fri, 22 Oct 2004 16:21:29 -0400
+
+openafs (1.2.11-3) unstable; urgency=high
+
+ * Now that libopenafs-dev contains binaries, it should have shared
+ library dependencies, Closes: #267509
+ * New fr.po from Christian Perrier, Closes: #237098
+
+ -- Sam Hartman Tue, 24 Aug 2004 12:10:02 -0400
+
+openafs (1.2.11-2) unstable; urgency=low
+
+ * Install rxgen
+ * Install upserver and upclient
+ * Mark as version 1.2.11, Closes: #255883
+
+ -- Sam Hartman Thu, 12 Aug 2004 14:27:39 -0400
+
+openafs (1.2.11-1) unstable; urgency=high
+
+ * Versions prior to 1.2.10 stopped working with multiple servers in a
+ cell because of a ubik bug prompting the 1.2.11 release.
+ * Fix afs startup script not to start afsd if already running; really
+ fixed in 1.2.10-3, but not documented, Closes: #219702
+
+ -- Sam Hartman Sat, 10 Jan 2004 16:37:33 -0500
+
+openafs (1.2.10-3) unstable; urgency=low
+
+ * Fix Openafs not to include kernel headers from /usr/include,
+ Closes: #220600
+ * Fix typo in openafs templates, Closes: #215714
+ * New French translations, Closes: #216158
+ * Build-depend on e2fslibs-dev to get appropriate headers
+
+ -- Sam Hartman Thu, 20 Nov 2003 16:02:45 -0500
+
+openafs (1.2.10-2) unstable; urgency=low
+
+ * New Brazilian Portuguese (pt_BR) translations, Closes: #208035
+ * Don't conflict with ircd, Closes: #204865
+ * Fix wording of question about using dynroot, Closes: #209332
+ * New French debconf translations, sorry about the delay in including these, Closes: #203608
+ * Avoid yes/no construction in openafs-client templates, Closes: #198476
+ * Fix libpam-openafs-kaserver to include the symbols it needs, patch
+ from Daniel Joseph Barnhart Clark , Closes: #194818
+
+ -- Sam Hartman Mon, 13 Oct 2003 00:38:42 -0400
+
+openafs (1.2.10-1) unstable; urgency=low
+
+ * New upstream version
+ * net/*.h included properly by kernel module, Closes: #204642
+ * Don't build libafsrpc or libafsauthent, as we can't exactly use them
+ because they contain non-pic code, Closes: #203456
+ * I think I finally build the PAM module on hppa, Closes: #179679
+ * Decnet includes should work now because of the change of the net
+ symlink, Closes: #204486
+ * Escape $ in debian/rules, Closes: #204185
+
+ -- Sam Hartman Sun, 24 Aug 2003 18:03:21 -0400
+
+openafs (1.2.9-3) unstable; urgency=low
+
+ * Add support for kernel headers, thanks to Patrick Sodre,
+ Closes: #173137
+ * Add patch to support the Debian 2.4.21 Kernel sources, thanks to amu,
+ Closes: #198774
+ * Add chronyd to list of programs we assume set the clock, thanks RISKO
+ Gergely, Closes: #201725
+ * Fix template formatting (extra leading spaces), Closes: #198477
+ * New French translations, thanks Christian Perrier, Closes: #198719
+ * Fix PAM problem on hppa, Closes: #179679
+ * Don't translate defaults: Closes: #198384
+ * Fix movefiles error handling and errors exposed by this change. The
+ contents of libopenafs-dev were somewhat wrong because of this.
+ * Make /usr/src/modules root.src 775, Closes: #201733
+
+ -- Sam Hartman Sat, 26 Jul 2003 18:03:31 -0400
+
+openafs (1.2.9-2) unstable; urgency=low
+
+ * Fix to not build PAM krb since we don't install it and it breaks alpha, Closes: #189548
+ * Don't install pagsh man page symlink since we no longer link to
+ undocumented, Closes: #189860
+
+ -- Sam Hartman Mon, 21 Apr 2003 21:05:51 -0400
+
+openafs (1.2.9-1) unstable; urgency=low
+
+ * Literal newline fixes, Closes: #175627
+ * Require new kernel modules per upstream change.
+ * New upstream version
+ * Fix section of libopenafs-dev to libdevel
+ * openafs-client stop should shut down afsd if it is running even if afs
+ not mounted, Closes: #188000
+ * Fix to build on alpha again; PAM patch was broken
+ * Report i386_linux24 not linux22 on i386, Closes: #187789
+ * Convert to po-debconf, patch from Andre Luis Lopes, CLoses: #187901
+ * Fix from Lamont to build on hppa, Closes: #179679
+
+ -- Sam Hartman Sun, 13 Apr 2003 17:21:54 -0400
+
+openafs (1.2.8-4) unstable; urgency=low
+
+ * Fix from Eduard Bloch to compile on kernels with variable numbers of
+ CPUs; he is not sure it actually works yet though, Closes: #178505
+ * Patch that might possibly fix the fails to build on recent unstable;
+ definitely fixes a bug in include path handling, but I am not sure it
+ is a correct patch since I cannot reproduce the problem, Closes: #178154
+
+ -- Sam Hartman Sun, 2 Feb 2003 14:08:14 -0500
+
+openafs (1.2.8-3) unstable; urgency=medium
+
+ * Patch from Eduard Bloch to build the PAM module for
+ kaserver users; the main thing this patch does in create a bunch of
+ PIC object files so it is a policy-conformant shared library, Closes:
+ #174668
+ * Do not include -I/usr/include and especially -I/usr/include/sys in the
+ PAM Makefile so gcc 3.2 works; already fixed upstream, Closes: #176538
+
+ -- Sam Hartman Sun, 19 Jan 2003 17:44:53 -0500
+
+openafs (1.2.8-2) unstable; urgency=low
+
+ * Convert v5 principal names to v4 style names in rxkad 2b. Especially
+ important for rcmd vs host
+ * Fix debian/rules clean to remove generated files, Closes: #174625
+ * Fix AFS not to declare errno, Closes: #174059
+
+ -- Sam Hartman Fri, 3 Jan 2003 15:28:30 -0500
+
+openafs (1.2.8-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Sam Hartman Tue, 10 Dec 2002 23:43:46 -0500
+
+openafs (1.2.7-3) unstable; urgency=low
+
+ * Apparently OpenAFS and ircd conflict on a UDP port, so you can't use
+ both at once, Closes: #150242
+ * Patch from seph to add -nosettime when ntp is installed, Closes: #155123
+ * Fix bosserver shutdown on restart after upgrade, Closes :#155586
+ * Install translate_et, Closes: #138672
+ * Allow byacc instead of bison
+
+ -- Sam Hartman Tue, 3 Dec 2002 22:30:44 -0500
+
+openafs (1.2.7-2) unstable; urgency=low
+
+ * Fix uss to build with bison 1.50 and 1.75 so we can throw away the
+ resulting binaries, Closes: #164366
+ * Evaluate all limited range of comparison warnings; a warning in
+ rxkad_client.c remains but is harmless, other warnings pointed to
+ potential problems that were fixed, Closes: #162754
+ * Fix s390 modules to actually build, Closes: #162772
+
+ -- Sam Hartman Sun, 20 Oct 2002 15:20:19 -0400
+
+openafs (1.2.7-1) unstable; urgency=low
+
+ * Fix typo in templates, Closes: #150356
+
+ * New upstream version
+
+ -- Sam Hartman Thu, 26 Sep 2002 16:11:25 -0400
+
openafs (1.2.6-1) unstable; urgency=low
@@ -308,12 +882,10 @@ openafs (1.0.1-2) unstable; urgency=medium
* Only run init script once; confusion with DH_OPTIONS
* Fix bosserver to look in /usr/openafs/lib so it restarts correctly every Sunday.
* Upload to Debian (Gloses: BUG#69336)
+ * Do not generate .map file for module; depmod complains.
+
-- Sam Hartman Wed, 6 Dec 2000 11:21:53 -0500
-Do not generate .map file for module; depmod complains. *
-
- --
-
openafs (1.0.1-1) unstable; urgency=low
* New upstream version
@@ -434,7 +1006,3 @@ openafs (1.0.snap20001103-1) unstable; urgency=low
-- unknown Fri, 3 Nov 2000 23:41:41 -0500
-Local variables:
-mode: debian-changelog
-add-log-mailing-address "hartmans@snorklewacker.mit.edu"
-End:
diff --git a/src/packaging/Debian/compat b/src/packaging/Debian/compat
new file mode 100644
index 0000000000..b8626c4cff
--- /dev/null
+++ b/src/packaging/Debian/compat
@@ -0,0 +1 @@
+4
diff --git a/src/packaging/Debian/control b/src/packaging/Debian/control
index 0b81a1e207..ec2ec1cb16 100644
--- a/src/packaging/Debian/control
+++ b/src/packaging/Debian/control
@@ -2,14 +2,17 @@ Source: openafs
Section: net
Priority: optional
Maintainer: Sam Hartman
-Build-Depends: debhelper (>= 2.2.20), libncurses5-dev, libpam0g-dev, bison, docbook-to-man, flex, autoconf, automake, perl
-Standards-Version: 3.5.0
+Uploaders: Russ Allbery
+Build-Depends: debhelper (>= 4.1.16), libncurses5-dev, libpam0g-dev, bison, docbook-to-man, flex, perl, comerr-dev
+Standards-Version: 3.6.2
Package: openafs-client
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, debconf, openafs-modules-source|openafs-modules1
-Conflicts: arla, openafs-modules
-Description: The AFS distributed filesystem- client support
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: openafs-modules-source (>= 1.2.9) | openafs-modules2
+Suggests: openafs-doc
+Conflicts: arla, openafs-modules1
+Description: AFS distributed filesystem client support
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
@@ -19,24 +22,25 @@ Description: The AFS distributed filesystem- client support
Package: openafs-kpasswd
Priority: extra
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, openafs-client (= ${Source-Version})
-Conflicts: krb5-user, heimdal-clients
-Description: The AFS distributed filesystem- old password changing
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, openafs-client
+Conflicts: krb5-user, heimdal-clients, kerberos4kth-clients
+Description: AFS distributed filesystem old password changing
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
.
- This package provides kpasswd and kas, utilities needed by the
- Transarc kaserver to create users and change passwords. Only install
- this package if you are already using kaserver; generally you should
- not install this package for new cells or for cells using Kerberos5.
+ This package provides kpasswd and kas, utilities needed by the OpenAFS
+ kaserver to create users and change passwords. Only install this package
+ if you are already using kaserver; generally you should not install this
+ package for new cells or for cells using Kerberos v5.
Package: openafs-fileserver
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, debconf, openafs-client (= ${Source-Version})
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}, openafs-client
Recommends: ntp
-Description: The AFS distributed filesystem- file server
+Suggests: openafs-doc
+Description: AFS distributed filesystem file server
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
@@ -45,12 +49,13 @@ Description: The AFS distributed filesystem- file server
installed on any machine that will export files into AFS.
Package: openafs-dbserver
-Architecture: i386 powerpc sparc alpha s390 ia64
-Depends: ${shlibs:Depends}, debconf, openafs-fileserver (= ${Source-Version}), openafs-client (= ${Source-Version}), perl5
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Depends: ${shlibs:Depends}, ${perl:Depends}, openafs-fileserver, openafs-client
+Suggests: openafs-doc
Conflicts: openafs-ptutil
Replaces: openafs-ptutil
Provides: openafs-ptutil
-Description: The AFS distributed filesystem- database server
+Description: AFS distributed filesystem database server
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
@@ -60,10 +65,13 @@ Description: The AFS distributed filesystem- database server
protection servers.
Package: libopenafs-dev
-Section: devel
-Architecture: i386 powerpc sparc alpha s390 ia64
+Section: libdevel
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
Priority: extra
-Description: The AFS distributed filesystem- development libraries
+Depends: ${shlibs:Depends}
+Suggests: openafs-doc
+Conflicts: arla-dev
+Description: AFS distributed filesystem development libraries
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
@@ -73,12 +81,23 @@ Description: The AFS distributed filesystem- development libraries
Package: openafs-modules-source
Priority: extra
-Depends: bison, flex, debhelper, libpam0g-dev, libncurses5-dev, kernel-package
+Depends: bison, flex, debhelper (>= 4.0.0), kernel-package | module-assistant
Architecture: all
-Description: The AFS distributed filesystem- Module Sources
+Description: AFS distributed filesystem kernel module source
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
.
This package provides source to the AFS kernel modules.
+Package: libpam-openafs-kaserver
+Priority: extra
+Depends: ${shlibs:Depends}, openafs-client
+Architecture: i386 powerpc sparc alpha s390 ia64 hppa amd64 ppc64
+Description: AFS distributed filesystem kaserver PAM module
+ AFS is a distributed filesystem allowing cross-platform sharing of
+ files among multiple computers. Facilities are provided for access
+ control, authentication, backup and administrative management.
+ .
+ This package provides a PAM module for existing sites using the AFS
+ kaserver for authentication. New sites should use a Kerberos v5
diff --git a/src/packaging/Debian/control.module b/src/packaging/Debian/control.module
index 7ceb277b4f..66aaad4ebb 100644
--- a/src/packaging/Debian/control.module
+++ b/src/packaging/Debian/control.module
@@ -2,15 +2,19 @@ Source: openafs
Section: net
Priority: optional
Maintainer: Sam Hartman
-Standards-Version: 3.1.1
+Uploaders: Russ Allbery
+Build-Depends: debhelper (>= 4.1.16), flex, bison
+Standards-Version: 3.6.2
Package: openafs-modules-=KVERS
-Conflicts: openafs-client (<< 1.2.2-0)
-Provides: openafs-modules1
+Conflicts: openafs-client (<< 1.2.9)
+Provides: openafs-modules2
Architecture: any
-Description: The AFS distributed filesystem- Kernel Module
+Recommends: =IMG-=KVERS
+Description: AFS distributed filesystem kernel module
AFS is a distributed filesystem allowing cross-platform sharing of
files among multiple computers. Facilities are provided for access
control, authentication, backup and administrative management.
.
- This package provides the kernel module for the filesystem
+ This package provides the compiled AFS kernel module for kernel
+ version =KVERS.
diff --git a/src/packaging/Debian/copyright b/src/packaging/Debian/copyright
index a68b88be0f..0bed00b2f5 100644
--- a/src/packaging/Debian/copyright
+++ b/src/packaging/Debian/copyright
@@ -1,9 +1,20 @@
This package was debianized by Sam Hartman on
Fri, 3 Nov 2000 23:41:41 -0500.
-It was downloaded from the Openafs CVS repository.
+It was downloaded from either:
-Upstream Maintainers(s):openafs-gatekeepers@openafs.org
+ http://www.openafs.org/release/
+ /afs/grand.central.org/software/openafs/
+
+Upstream Maintainers:
+
+ openafs-gatekeepers@openafs.org
+
+The upstream source has been repackaged to remove the src/packaging/MacOS
+directory, which contained a file (afssettings.m) that was covered under
+the Apple Public Source License 2.0. This license is not considered
+DFSG-free. Since the repackaging was needed anyway, the WINNT directory
+was also dropped, reducing the size of the upstream tarball by 8MB.
Copyright:
@@ -240,3 +251,93 @@ Copyright:
party to this Agreement will bring a legal action under this Agreement
more than one year after the cause of action arose. Each party waives
its rights to a jury trial in any resulting litigation.
+
+Kerberos 5 ticket support in rxkad is subject to the following copyright:
+/*
+ * Copyright (c) 1995, 1996, 1997, 2002 Kungliga Tekniska Högskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the Institute nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+Some code in rxkad/ticket5.c is subject to the following copyright:
+/*
+ * Copyright 1992, 2002 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * Export of this software from the United States of America may
+ * require a specific license from the United States Government.
+ * It is the responsibility of any person or organization contemplating
+ * export to obtain such a license before exporting.
+ *
+ * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
+ * distribute this software and its documentation for any purpose and
+ * without fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright notice and
+ * this permission notice appear in supporting documentation, and that
+ * the name of M.I.T. not be used in advertising or publicity pertaining
+ * to distribution of the software without specific, written prior
+ * permission. Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is" without express
+ * or implied warranty.
+ */
+
+Some portions of Rx are subject to the following license:
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part. Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user or with the express written consent of
+ * Sun Microsystems, Inc.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California 94043
+ */
diff --git a/src/packaging/Debian/doc/build-man b/src/packaging/Debian/doc/build-man
new file mode 100644
index 0000000000..1274495167
--- /dev/null
+++ b/src/packaging/Debian/doc/build-man
@@ -0,0 +1,56 @@
+#!/bin/sh
+#
+# Install man pages, but fixing up paths as we go. All of the man pages
+# are written to use the Transarc paths, and this script fixes those paths to
+# be correct for the chosen configure options as the man pages are installed.
+
+set -e
+
+manpage="$1"
+dest="$2"
+
+afsbackupdir=/var/lib/openafs/backup
+afsbosconfigdir=/etc/openafs
+afsconfdir=/etc/openafs/server
+afsdbdir=/var/lib/openafs/db
+afslocaldir=/etc/openafs/server-local
+afslogsdir=/var/log/openafs
+afssrvlibexecdir=/usr/lib/openafs
+viceetcdir=/etc/openafs
+
+# Build a particular man page. Takes the section title, the section number,
+# the filename of the POD page, and the output file.
+buildpage () {
+ pod2man -c "$1" -r OpenAFS -s "$2" "$3" | \
+ sed -e "s%/usr/afs/local/BosConfig%${afsbosconfigdir}/BosConfig%g" \
+ -e "s%/usr/afs/etc%${afsconfdir}%g" \
+ -e "s%/usr/afs/backup%${afsbackupdir}%g" \
+ -e "s%/usr/afs/bin%${afssrvlibexecdir}%g" \
+ -e "s%/usr/afs/db%${afsdbdir}%g" \
+ -e "s%/usr/afs/local%${afslocaldir}%g" \
+ -e "s%/usr/afs/logs%${afslogsdir}%g" \
+ -e "s%/usr/vice/etc%${viceetcdir}%g" > "$4"
+}
+
+# Create the output directories.
+mkdir -p man1 man5 man8
+
+# Do the work with lots of calls to buildpage.
+cd pod1
+for f in *.pod ; do
+ buildpage 'AFS Command Reference' 1 "$f" \
+ ../man1/`echo "$f" | sed 's/\.pod$//'`.1
+done
+cd ..
+cd pod5
+for f in *.pod ; do
+ buildpage 'AFS File Reference' 5 "$f" \
+ ../man5/`echo "$f" | sed 's/\.pod$//'`.5
+done
+cd ..
+cd pod8
+for f in *.pod ; do
+ buildpage 'AFS Command Reference' 8 "$f" \
+ ../man8/`echo "$f" | sed 's/\.pod$//'`.8
+done
+cd ..
diff --git a/src/packaging/Debian/genchanges.sh b/src/packaging/Debian/genchanges.sh
index 5d50cd542f..e38781bccc 100644
--- a/src/packaging/Debian/genchanges.sh
+++ b/src/packaging/Debian/genchanges.sh
@@ -2,21 +2,18 @@
# genchanges.sh - generate a changes file for a deb file generated via
# the make-kpkg utility
-# KSRC KMAINT and KEMAIL are expected to be passed through the environment
+# KSRC, KVERS, KMAINT, and KEMAIL are expected to be passed through the
+# environment.
set -e
umask 022
-#KVERS=`cat debian/KVERS`
MODVERS=`cat debian/VERSION | sed s/:/\+/`
ARCH=`dpkg --print-architecture`
mprefix=`grep Package: debian/control.module | cut -d' ' -f 2 | cut -d= -f 1`
-
-# the changes file's name
chfile="$KSRC/../$mprefix${KVERS}${INT_SUBARCH}_${MODVERS}_${ARCH}.changes"
dpkg-genchanges -b ${KMAINT:+-m"$KMAINT <$KEMAIL>"} -u"$KSRC/.." \
- -cdebian/control > "$chfile"
-#pgp -fast ${KMAINT:+-u"$KMAINT"} < "$chfile.pt" > "$chfile"
-rm "$chfile.pt"
+ -cdebian/control > "$chfile"
+#debsign "$chfile"
diff --git a/src/packaging/Debian/kern-sysname b/src/packaging/Debian/kern-sysname
index 00964eb6d8..1aa0293a03 100644
--- a/src/packaging/Debian/kern-sysname
+++ b/src/packaging/Debian/kern-sysname
@@ -1,68 +1,97 @@
#!/bin/sh
+
+if [ x"$KVERS" = x ] ; then
+ echo "ERROR: no kernel version" >&2
+ echo " ($KSRC/include/linux/version.h not found?)" >&2
+ echo UNKNOWN
+ exit 1
+fi
+
case `arch` in
i[3456]86)
- case $KVERS in
- 2.2*)
- echo i386_linux22
- ;;
- 2.4*)
- echo i386_linux24
- ;;
- esac
-;;
- ia64)
- case $KVERS in
- 2.4*)
- echo ia64_linux24
- ;;
- 2.6*)
- echo ia64_linux26
- ;;
- esac
- ;;
- alpha)
- case $KVERS in
- 2.2*)
- echo alpha_linux_22
- ;;
- 2.4*)
- echo alpha_linux_24
- ;;
- esac
-;;
- sparc)
- case $KVERS in
- 2.2*)
- echo sparc_linux22
- ;;
- 2.4*)
- echo sparc_linux24
- ;;
- esac
- ;;
- sparc64)
- case $KVERS in
- 2.2*)
- echo sparc64_linux22
- ;;
- 2.4*)
- echo sparc64_linux24
- ;;
- esac
- ;;
-
- ppc)
- case $KVERS in
- 2.2*)
- echo ppc_linux22
- ;;
- 2.4*)
- echo ppc_linux24
- ;;
- esac
- ;;
- *)
- echo ERROr: sysname not yet known
- exit 1
-
+ case $KVERS in
+ 2.2*)
+ echo i386_linux22
+ ;;
+ 2.4*)
+ echo i386_linux24
+ ;;
+ 2.6*)
+ echo i386_linux26
+ ;;
+ esac
+ ;;
+x86_64)
+ case $KVERS in
+ 2.4*)
+ echo amd64_linux24
+ ;;
+ 2.6*)
+ echo amd64_linux26
+ ;;
+ esac
+ ;;
+ia64)
+ echo ia64_linux24
+ ;;
+alpha)
+ case $KVERS in
+ 2.2*)
+ echo alpha_linux_22
+ ;;
+ 2.4*)
+ echo alpha_linux_24
+ ;;
+ esac
+ ;;
+sparc)
+ case $KVERS in
+ 2.2*)
+ echo sparc_linux22
+ ;;
+ 2.4*)
+ echo sparc_linux24
+ ;;
+ esac
+ ;;
+sparc64)
+ case $KVERS in
+ 2.2*)
+ echo sparc64_linux22
+ ;;
+ 2.4*)
+ echo sparc64_linux24
+ ;;
+ esac
+ ;;
+ppc)
+ case $KVERS in
+ 2.2*)
+ echo ppc_linux22
+ ;;
+ 2.4*)
+ echo ppc_linux24
+ ;;
+ 2.6)
+ echo ppc_linux26
+ ;;
+ esac
+ ;;
+ppc64)
+ case $KVERS in
+ 2.4*)
+ echo ppc64_linux24
+ ;;
+ 2.6*)
+ echo ppc64_linux26
+ ;;
+ esac
+ ;;
+s390)
+ echo s390_linux24
+ ;;
+*)
+ echo "ERROR: unsupported architecture" >&2
+ echo UNKNOWN
+ exit 1
esac
diff --git a/src/packaging/Debian/kernel-version b/src/packaging/Debian/kernel-version
new file mode 100644
index 0000000000..093e7d91c2
--- /dev/null
+++ b/src/packaging/Debian/kernel-version
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+#
+# Extract the kernel version from the kernel version header file. Takes the
+# kernel source path as its only argument. If the version header couldn't be
+# found, print nothing and exit quietly.
+
+my $ksrc = shift;
+unless ($ksrc && open (VERSION, "$ksrc/include/linux/version.h")) {
+ exit 0;
+}
+my $line = ;
+if ($line =~ /"(.+)"/) {
+ print "$1\n";
+}
+exit 0;
diff --git a/src/packaging/Debian/libopenafs-dev.dirs b/src/packaging/Debian/libopenafs-dev.dirs
new file mode 100644
index 0000000000..68457717bd
--- /dev/null
+++ b/src/packaging/Debian/libopenafs-dev.dirs
@@ -0,0 +1 @@
+usr/lib
diff --git a/src/packaging/Debian/libopenafs-dev.install b/src/packaging/Debian/libopenafs-dev.install
new file mode 100644
index 0000000000..74bdd5ae95
--- /dev/null
+++ b/src/packaging/Debian/libopenafs-dev.install
@@ -0,0 +1,8 @@
+debian/tmp/usr/bin/rxgen usr/bin
+
+debian/tmp/usr/include usr
+
+debian/tmp/usr/lib/*.a usr/lib
+debian/tmp/usr/lib/afs usr/lib
+
+debian/doc/man1/rxgen.1 usr/share/man/man1
diff --git a/src/packaging/Debian/libpam-openafs-kaserver.dirs b/src/packaging/Debian/libpam-openafs-kaserver.dirs
new file mode 100644
index 0000000000..e721705dae
--- /dev/null
+++ b/src/packaging/Debian/libpam-openafs-kaserver.dirs
@@ -0,0 +1,2 @@
+lib/security
+usr/share/doc
diff --git a/src/packaging/Debian/openafs-client.config b/src/packaging/Debian/openafs-client.config
index 68a7e61e02..0781a7eb85 100644
--- a/src/packaging/Debian/openafs-client.config
+++ b/src/packaging/Debian/openafs-client.config
@@ -1,6 +1,6 @@
#!/bin/sh -e
-. /usr/share/debconf/confmodule ||exit
+. /usr/share/debconf/confmodule || exit
db_version 2.0
if [ -r /etc/openafs/ThisCell ] ; then
@@ -15,7 +15,7 @@ if [ -r /etc/openafs/cacheinfo ] ; then
IFS=: read mountpoint cachedir cachesize `configure'
+# * `abort-upgrade'
+# * `abort-remove' `in-favour'
+#
+# * `abort-deconfigure' `in-favour'
+# `removing'
+#
set -e
-# summary of how this script can be called:
-# * `configure'
-# * `abort-upgrade'
-# * `abort-remove' `in-favour'
-#
-# * `abort-deconfigure' `in-favour'
-# `removing'
-#
-
case "$1" in
- configure)
+configure)
+ update-alternatives --install /usr/bin/pagsh pagsh \
+ /usr/bin/pagsh.openafs 100 \
+ --slave /usr/share/man/man1/pagsh.1.gz pagsh.1.gz \
+ /usr/share/man/man1/pagsh.openafs.1.gz
- update-alternatives --install /usr/bin/pagsh pagsh /usr/bin/pagsh.openafs 100 \
- --slave /usr/share/man/man1/pagsh.1.gz pagsh.1.gz /usr/share/man/man1/pagsh.openafs.1.gz
+ test -d /afs || mkdir /afs
- test -d /afs || mkdir /afs
. /usr/share/debconf/confmodule
+ db_version 2.0
- db_version 2.0
+ db_get openafs-client/thiscell
+ echo $RET >/etc/openafs/ThisCell
+ THISCELL=$RET
- db_get openafs-client/thiscell
- echo $RET >/etc/openafs/ThisCell
- THISCELL=$RET
+ if test -f /etc/openafs/CellServDB ; then
+ :
+ else
+ cp /usr/share/openafs/CellServDB /etc/openafs
+ fi
- if test -f /etc/openafs/CellServDB; then :
- else cp /usr/share/openafs/CellServDB \
- /etc/openafs
- fi
- if grep -q -F "$RET" /etc/openafs/CellServDB&& [ "x$RET" != "x" ] ; then :
- else db_input critical openafs-client/cell-info || true
- db_input high openafs-client/run-client ||true
- db_go
- db_get openafs-client/cell-info
- if [ "x$RET" != "x" ] ; then
- echo \>$THISCELL >/etc/openafs/CellServDB.new
- perl -MSocket -e 'foreach (@ARGV) {' \
- -e '@a=gethostbyname($_) and ' \
- -e 'printf("%s\t\t# %s\n",inet_ntoa($a[4]),$a[0]) }' $RET \
- >>/etc/openafs/CellServDB.new
- if [ `wc -l &1
- db_reset openafs-client/cell-info ||true
- exit 1
- fi
- cat /etc/openafs/CellServDB.new \
- /etc/openafs/CellServDB >/etc/openafs/CellServDB.tmp
- mv /etc/openafs/CellServDB.tmp \
- /etc/openafs/CellServDB
- rm /etc/openafs/CellServDB.new
- fi
- fi
-
- db_get openafs-client/cachesize
- echo /afs:/var/cache/openafs:$RET >/etc/openafs/cacheinfo
+ # If ThisCell is not in CellServDB, we have to prompt the user for the
+ # VLDB servers. Unfortunately, we can't do this in config because we
+ # need the CellServDB file, which is part of the package. We have to
+ # override a lintian warning for this since prompts at installation time
+ # are frowned upon.
+ if grep -q -F "$RET" /etc/openafs/CellServDB && [ "x$RET" != "x" ] ; then
+ :
+ else
+ db_input critical openafs-client/cell-info || true
+ db_input high openafs-client/run-client || true
+ db_go
+ db_get openafs-client/cell-info
+ if [ "x$RET" != "x" ] ; then
+ echo \>$THISCELL > /etc/openafs/CellServDB.new
+ perl -MSocket -e 'foreach (@ARGV) {' \
+ -e '@a=gethostbyname($_) and ' \
+ -e 'printf("%s\t\t# %s\n",inet_ntoa($a[4]),$a[0]) }' $RET \
+ >>/etc/openafs/CellServDB.new
+ if [ `wc -l &1
+ db_reset openafs-client/cell-info || true
+ exit 1
+ fi
+ cat /etc/openafs/CellServDB.new /etc/openafs/CellServDB \
+ >/etc/openafs/CellServDB.tmp
+ mv /etc/openafs/CellServDB.tmp /etc/openafs/CellServDB
+ rm /etc/openafs/CellServDB.new
+ fi
+ fi
+
+ db_get openafs-client/cachesize
+ echo /afs:/var/cache/openafs:$RET >/etc/openafs/cacheinfo
- db_get openafs-client/run-client
- echo AFS_CLIENT=$RET >/etc/openafs/afs.conf.client
- db_get openafs-client/afsdb
- echo AFS_AFSDB=$RET >>/etc/openafs/afs.conf.client
- db_get openafs-client/crypt
- echo AFS_CRYPT=$RET >>/etc/openafs/afs.conf.client
-db_get openafs-client/dynroot
-echo AFS_DYNROOT=$RET >>/etc/openafs/afs.conf.client
-db_get openafs-client/fakestat
-echo AFS_FAKESTAT=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/run-client
+ echo AFS_CLIENT=$RET >/etc/openafs/afs.conf.client
+ db_get openafs-client/afsdb
+ echo AFS_AFSDB=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/crypt
+ echo AFS_CRYPT=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/dynroot
+ echo AFS_DYNROOT=$RET >>/etc/openafs/afs.conf.client
+ db_get openafs-client/fakestat
+ echo AFS_FAKESTAT=$RET >>/etc/openafs/afs.conf.client
;;
- abort-upgrade|abort-remove|abort-deconfigure)
-
+abort-upgrade|abort-remove|abort-deconfigure)
;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
+*)
+ echo "postinst called with unknown argument '$1'" >&2
+ exit 0
;;
esac
@@ -86,5 +94,3 @@ esac
#DEBHELPER#
exit 0
-
-
diff --git a/src/packaging/Debian/openafs-client.templates b/src/packaging/Debian/openafs-client.templates
index 0dabd8c088..9688c2ba35 100644
--- a/src/packaging/Debian/openafs-client.templates
+++ b/src/packaging/Debian/openafs-client.templates
@@ -1,85 +1,93 @@
Template: openafs-client/cell-info
Type: string
-Description: What hosts are DB servers for your home cell?
- AFS uses the file /etc/openafs/CellServDB to hold the list of servers
- that should be contacted to find parts of a cell. The cell you claim
- this workstation belongs to is not in that file. Enter the host
- names of the database servers separated by spaces.
- IMPORTANT: If you are creating a new cell and this machine is to be
- a database server in that cell, only enter this machine's name; add
- the other servers later after they are functioning. Also, do not
- enable the AFS client to start at boot on this server until the cell
- is configured. When you are ready you can edit
+_Description: What hosts are DB servers for your home cell?
+ AFS uses the file /etc/openafs/CellServDB to hold the list of servers that
+ should be contacted to find parts of a cell. The cell you claim this
+ workstation belongs to is not in that file. Enter the host names of the
+ database servers separated by spaces. IMPORTANT: If you are creating a new
+ cell and this machine is to be a database server in that cell, only enter
+ this machine's name; add the other servers later after they are
+ functioning. Also, do not enable the AFS client to start at boot on this
+ server until the cell is configured. When you are ready you can edit
/etc/openafs/afs.conf.client to enable the client.
Template: openafs-client/thiscell
Type: string
-Description: What AFS cell does this workstation belong to?
- AFS filespace is organized into cells or administrative domains.
- Each workstation belongs to one cell. Usually the cell is the DNS
- domain name of the site.
+_Description: What AFS cell does this workstation belong to?
+ AFS filespace is organized into cells or administrative domains.
+ Each workstation belongs to one cell. Usually the cell is the DNS
+ domain name of the site.
Template: openafs-client/cachesize
Type: string
Default: 50000
-Description: How large is your AFS cache (kb)?
- AFS uses a area of the disk to cache remote files for faster
- access. This cache will be mounted on /var/cache/openafs. It is
- important that the cache not overfill the partition it is located
- on. Often, people find it useful to dedicate a partition to their
- AFS cache.
+_Description: How large is your AFS cache (kB)?
+ AFS uses an area of the disk to cache remote files for faster
+ access. This cache will be mounted on /var/cache/openafs. It is
+ important that the cache not overfill the partition it is located
+ on. Often, people find it useful to dedicate a partition to their
+ AFS cache.
Template: openafs-client/run-client
Type: boolean
Default: true
-Description: Run Openafs client now and at boot?
- Should the Openafs filesystem be started and mounted at boot?
- Normally, most users who install the openafs-client package expect to
- run it at boot. However, if you are planning on setting up a new
- cell or are on a laptop, you may not want it started at boot time.
- If you answer no to this question, run /etc/init.d/openafs-client
- force-start to run.
+_Description: Run Openafs client now and at boot?
+ Should the Openafs filesystem be started and mounted at boot? Normally,
+ most users who install the openafs-client package expect to run it at
+ boot. However, if you are planning on setting up a new cell or are on a
+ laptop, you may not want it started at boot time. If you choose not
+ to start AFS at boot, run /etc/init.d/openafs-client force-start to
+ start the client when you wish to run it.
Template: openafs-client/afsdb
Type: boolean
Default: true
-Description: Look up AFS cells in DNS?
- In order to contact an AFS cell, you need the IP addresses of the
- cell's database servers. Normally, this information is read from
- /etc/openafs/CellServDB. However, if Openafs cannot find a cell in
- that file it can use DNS to look for AFSDB records that contain the
+_Description: Look up AFS cells in DNS?
+ In order to contact an AFS cell, you need the IP addresses of the cell's
+ database servers. Normally, this information is read from
+ /etc/openafs/CellServDB. However, if Openafs cannot find a cell in that
+ file, it can use DNS to look for AFSDB records that contain the
information.
Template: openafs-client/crypt
Type: boolean
Default: true
-Description: ENcrypt authenticated traffic with AFS fileserver?
- AFS provides a weak form of encryption that can optionally be used
- between a client and the fileservers. While this encryption is weaker
- than DES and thus is not sufficient for highly confidential data, it
- does provide some confidentiality and is likely to make the job of a
- casual attacker significantly more difficult.
+_Description: Encrypt authenticated traffic with AFS fileserver?
+ AFS provides a weak form of encryption that can optionally be used between
+ a client and the fileservers. While this encryption is weaker than DES
+ and thus is not sufficient for highly confidential data, it does provide
+ some confidentiality and is likely to make the job of a casual attacker
+ significantly more difficult.
Template: openafs-client/dynroot
Type: boolean
Default: false
-Description: Dynamically generate the contents of /afs?
- /afs generally contains an entry for each cell that a client can talk to.
+_Description: Dynamically generate the contents of /afs?
+ /afs generally contains an entry for each cell that a client can talk to.
Traditionally, these entries were generated by servers in the client's
home cell. However, OpenAFS clients can generate the contents of /afs
dynamically based on the contents of /etc/openafs/CellServDB and DNS.
.
- If you generate /afs dynamically, you may need to create
- /etc/openafs/CellAliases to include aliases for common cells.
- DO NOT SELECT THIS OPTION IF YOU ARE CREATING A NEW CELL.
+ If you generate /afs dynamically, you may need to create
+ /etc/openafs/CellAlias to include aliases for common cells. (The syntax
+ of this file is one line per alias, with the cell name, a space, and then
+ the alias for that cell.)
Template: openafs-client/fakestat
-type: boolean
-default: true
-Description: Use fakestat to avoid hangs when listing /afs?
- Because AFS is a global file space, operations on the /afs directory
- can generate significant network traffic. If some AFS cells are
- unavailable then looking at /afs using ls or a graphical file browser
- may hang your machine for minutes. AFS has an option to simulate
- answers to these operations locally to avoid these hangs. You want
- this option under most circumstances.
+Type: boolean
+Default: true
+_Description: Use fakestat to avoid hangs when listing /afs?
+ Because AFS is a global file space, operations on the /afs directory can
+ generate significant network traffic. If some AFS cells are unavailable
+ then looking at /afs using ls or a graphical file browser may hang your
+ machine for minutes. AFS has an option to simulate answers to these
+ operations locally to avoid these hangs. You want this option under most
+ circumstances.
+4
+4
+4
+4
+4
+4
+4
+4
diff --git a/src/packaging/Debian/openafs-dbserver.dirs b/src/packaging/Debian/openafs-dbserver.dirs
index 8d53566746..1e6dd00c89 100644
--- a/src/packaging/Debian/openafs-dbserver.dirs
+++ b/src/packaging/Debian/openafs-dbserver.dirs
@@ -2,3 +2,11 @@ usr/share/doc
var/lib/openafs/db
usr/share/man/man8
usr/sbin
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
+usr/share/doc
diff --git a/src/packaging/Debian/openafs-dbserver.install b/src/packaging/Debian/openafs-dbserver.install
new file mode 100644
index 0000000000..bd6d4b7561
--- /dev/null
+++ b/src/packaging/Debian/openafs-dbserver.install
@@ -0,0 +1,24 @@
+debian/tmp/usr/sbin/prdb_check usr/sbin
+debian/tmp/usr/sbin/pt_util usr/sbin
+debian/tmp/usr/sbin/vldb_check usr/sbin
+
+debian/afs-rootvol usr/sbin
+debian/afs-newcell usr/sbin
+
+debian/tmp/usr/lib/openafs/buserver usr/lib/openafs
+debian/tmp/usr/lib/openafs/ptserver usr/lib/openafs
+debian/tmp/usr/lib/openafs/vlserver usr/lib/openafs
+
+debian/ConfigUtils.pm usr/share/perl5/Debian/OpenAFS
+
+debian/doc/man5/BackupLog.5 usr/share/man/man5
+debian/doc/man5/VLLog.5 usr/share/man/man5
+debian/doc/man5/bdb.DB0.5 usr/share/man/man5
+debian/doc/man5/prdb.DB0.5 usr/share/man/man5
+debian/doc/man5/vldb.DB0.5 usr/share/man/man5
+
+debian/doc/man8/buserver.8 usr/share/man/man8
+debian/doc/man8/prdb_check.8 usr/share/man/man8
+debian/doc/man8/ptserver.8 usr/share/man/man8
+debian/doc/man8/vldb_check.8 usr/share/man/man8
+debian/doc/man8/vlserver.8 usr/share/man/man8
diff --git a/src/packaging/Debian/openafs-dbserver.lintian b/src/packaging/Debian/openafs-dbserver.lintian
new file mode 100644
index 0000000000..2afb85f5fc
--- /dev/null
+++ b/src/packaging/Debian/openafs-dbserver.lintian
@@ -0,0 +1 @@
+openafs-dbserver: non-standard-dir-perm
diff --git a/src/packaging/Debian/openafs-fileserver.init b/src/packaging/Debian/openafs-fileserver.init
index 8835856f83..d0172c3858 100755
--- a/src/packaging/Debian/openafs-fileserver.init
+++ b/src/packaging/Debian/openafs-fileserver.init
@@ -34,7 +34,7 @@ case "$1" in
echo -n "Stopping $DESC: "
bos shutdown localhost -wait -localauth
start-stop-daemon --stop --quiet \
- --exec $DAEMON
+ --user root --name bosserver
echo "$NAME."
;;
#reload)
@@ -56,7 +56,12 @@ case "$1" in
# just the same as "restart".
#
echo -n "Restarting $DESC: "
- bos restart localhost -localauth -bos
+ if pidof $DAEMON > /dev/null ; then
+ bos restart localhost -localauth -bos
+ else
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON
+ fi
sleep 1
echo "$NAME."
;;
diff --git a/src/packaging/Debian/openafs-fileserver.install b/src/packaging/Debian/openafs-fileserver.install
new file mode 100644
index 0000000000..e52fb529b4
--- /dev/null
+++ b/src/packaging/Debian/openafs-fileserver.install
@@ -0,0 +1,31 @@
+debian/tmp/usr/sbin/bosserver usr/sbin
+debian/tmp/usr/sbin/voldump usr/sbin
+debian/tmp/usr/sbin/volinfo usr/sbin
+
+debian/tmp/usr/lib/openafs/up* usr/sbin
+
+debian/tmp/usr/lib/openafs/fileserver usr/lib/openafs
+debian/tmp/usr/lib/openafs/salvager usr/lib/openafs
+debian/tmp/usr/lib/openafs/volserver usr/lib/openafs
+
+debian/doc/man5/BosConfig.5 usr/share/man/man5
+debian/doc/man5/BosLog.5 usr/share/man/man5
+debian/doc/man5/FORCESALVAGE.5 usr/share/man/man5
+debian/doc/man5/FileLog.5 usr/share/man/man5
+debian/doc/man5/KeyFile.5 usr/share/man/man5
+debian/doc/man5/NoAuth.5 usr/share/man/man5
+debian/doc/man5/SALVAGE.fs.5 usr/share/man/man5
+debian/doc/man5/SalvageLog.5 usr/share/man/man5
+debian/doc/man5/VolserLog.5 usr/share/man/man5
+debian/doc/man5/afs_volume_header.5 usr/share/man/man5
+debian/doc/man5/salvage.lock.5 usr/share/man/man5
+debian/doc/man5/sysid.5 usr/share/man/man5
+
+debian/doc/man8/bosserver.8 usr/share/man/man8
+debian/doc/man8/fileserver.8 usr/share/man/man8
+debian/doc/man8/salvager.8 usr/share/man/man8
+debian/doc/man8/upclient.8 usr/share/man/man8
+debian/doc/man8/upserver.8 usr/share/man/man8
+debian/doc/man8/voldump.8 usr/share/man/man8
+debian/doc/man8/volinfo.8 usr/share/man/man8
+debian/doc/man8/volserver.8 usr/share/man/man8
diff --git a/src/packaging/Debian/openafs-fileserver.lintian b/src/packaging/Debian/openafs-fileserver.lintian
index 87d699becc..f2b3998a85 100644
--- a/src/packaging/Debian/openafs-fileserver.lintian
+++ b/src/packaging/Debian/openafs-fileserver.lintian
@@ -1,2 +1 @@
-openafs-fileserver: link-to-undocumented-manpage
openafs-fileserver: non-standard-dir-perm
diff --git a/src/packaging/Debian/openafs-fileserver.postinst b/src/packaging/Debian/openafs-fileserver.postinst
index a63e6c44e4..2c49fc3208 100644
--- a/src/packaging/Debian/openafs-fileserver.postinst
+++ b/src/packaging/Debian/openafs-fileserver.postinst
@@ -1,46 +1,55 @@
#!/bin/sh -e
+#
+# Summary of how this script can be called:
+#
+# * `configure'
+# * `abort-upgrade'
+# * `abort-remove' `in-favour'
+#
+# * `abort-deconfigure' `in-favour'
+# `removing'
+#
-# summary of how this script can be called:
-# * `configure'
-# * `abort-upgrade'
-# * `abort-remove' `in-favour'
-#
-# * `abort-deconfigure' `in-favour'
-# `removing'
-#
+set -e
case "$1" in
- configure)
+configure)
+ . /usr/share/debconf/confmodule
+ db_version 2.0
- . /usr/share/debconf/confmodule
+ db_get openafs-fileserver/thiscell
+ echo $RET >/etc/openafs/server/ThisCell
- db_version 2.0
-
- db_get openafs-fileserver/thiscell
- echo $RET >/etc/openafs/server/ThisCell
- if [ -f /etc/openafs/server/CellServDB ] ; then :
- else echo \>$RET >/etc/openafs/server/CellServDB
- fi
- if [ "x$2" != "x" ] ; then
- if dpkg --compare-versions $2 lt 1.2.0-1 ; then
- mv /etc/openafs/server-local/BosConfig /etc/openafs/BosConfig ||true
- mv /etc/openafs/server-local/sysid /var/lib/openafs ||true
- fi
- fi
+ if [ -f /etc/openafs/server/CellServDB ] ; then
+ :
+ else
+ sed -n "/^>$RET/,/^>/p" /etc/openafs/CellServDB | sed '$d' \
+ >/etc/openafs/server/CellServDB
+ if [ ! -s /etc/openafs/server/CellServDB ] ; then
+ echo ">$RET" >/etc/openafs/server/CellServDB
+ fi
+ fi
+ if [ "x$2" != "x" ] ; then
+ if dpkg --compare-versions $2 lt 1.2.0-1 ; then
+ mv /etc/openafs/server-local/BosConfig \
+ /etc/openafs/BosConfig || true
+ mv /etc/openafs/server-local/sysid /var/lib/openafs || true
+ fi
+ fi
+ db_stop
;;
- abort-upgrade|abort-remove|abort-deconfigure)
-
+abort-upgrade|abort-remove|abort-deconfigure)
;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
+*)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
;;
esac
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
+# dh_installdeb will replace this with shell code automatically generated by
+# other debhelper scripts.
#DEBHELPER#
exit 0
diff --git a/src/packaging/Debian/openafs-fileserver.postrm b/src/packaging/Debian/openafs-fileserver.postrm
index b84bf8c473..9ce96e5683 100644
--- a/src/packaging/Debian/openafs-fileserver.postrm
+++ b/src/packaging/Debian/openafs-fileserver.postrm
@@ -38,4 +38,3 @@ esac
#DEBHELPER#
-
diff --git a/src/packaging/Debian/openafs-fileserver.templates b/src/packaging/Debian/openafs-fileserver.templates
index c43683ad61..e0776b8bf0 100644
--- a/src/packaging/Debian/openafs-fileserver.templates
+++ b/src/packaging/Debian/openafs-fileserver.templates
@@ -1,31 +1,26 @@
Template: openafs-fileserver/thiscell
Type: string
-Description: What cell does this server serve files for?
+_Description: What cell does this server serve files for?
AFS fileservers belong to a cell. They have the key for that cell's
- Kerberos service and serve volumes into that cell. Normally, this
- cell is the same cell as the workstation's client belongs to.
-Description-de: Für welche Zelle liefert der Server Dateien?
- AFS-Dateiserver gehören zu einer Zelle. Die Server haben den Schlüssel
- für den Kerberos-Service der Zelle und stellen Volumes für die Zelle
- bereit. Normalerweise ist die Zelle identisch mit der des Clients
+ Kerberos service and serve volumes into that cell. Normally, this cell is
+ the same cell as the workstation's client belongs to.
-template: openafs-fileserver/bosconfig_moved
+Template: openafs-fileserver/bosconfig_moved
Type: boolean
-default: true
-Description: Upgrading will move files to new locations; continue?
- Between Openafs 1.1 and Openafs 1.2, several files moved. In
- particular, files in /etc/openafs/server-local have been distributed
- to other locations. The BosConfig file is now located in
- /etc/openafs and the other files are located in /var/lib/openafs. If
- you continue with this upgrade, these files will be moved. You should
- use the bos restart command to reload your servers. Any
- configuration changes made before you do so will be lost.
+Default: true
+_Description: Upgrading will move files to new locations; continue?
+ Between Openafs 1.1 and Openafs 1.2, several files moved. In particular,
+ files in /etc/openafs/server-local have been distributed to other
+ locations. The BosConfig file is now located in /etc/openafs and the
+ other files are located in /var/lib/openafs. If you continue with this
+ upgrade, these files will be moved. You should use the bos restart
+ command to reload your servers. Any configuration changes made before
+ you do so will be lost.
-template: openafs-fileserver/alpha-broken
+Template: openafs-fileserver/alpha-broken
Type: note
-Description: OpenAFS Fileserv Probably does not work!
+_Description: OpenAFS file server probably does not work!
You are running the OpenAFS file server package on an alpha. This
- probably doesn't work; the DES code is flaky on the alpha, along with
- the threaded file server. Likely, the fileserver will simply fail to
- start, but if it does load, data corruption may result. You have been
- warned.
+ probably doesn't work; the DES code is flaky on the alpha, along with the
+ threaded file server. Likely, the fileserver will simply fail to start,
+ but if it does load, data corruption may result. You have been warned.
diff --git a/src/packaging/Debian/openafs-kpasswd.install b/src/packaging/Debian/openafs-kpasswd.install
new file mode 100644
index 0000000000..6889bed208
--- /dev/null
+++ b/src/packaging/Debian/openafs-kpasswd.install
@@ -0,0 +1,23 @@
+debian/tmp/usr/bin/kpasswd usr/bin
+
+debian/tmp/usr/sbin/kas usr/bin
+
+debian/doc/man1/kpasswd.1 usr/share/man/man1
+
+debian/doc/man8/kas.8 usr/share/man/man8
+debian/doc/man8/kas_apropos.8 usr/share/man/man8
+debian/doc/man8/kas_create.8 usr/share/man/man8
+debian/doc/man8/kas_delete.8 usr/share/man/man8
+debian/doc/man8/kas_examine.8 usr/share/man/man8
+debian/doc/man8/kas_forgetticket.8 usr/share/man/man8
+debian/doc/man8/kas_help.8 usr/share/man/man8
+debian/doc/man8/kas_interactive.8 usr/share/man/man8
+debian/doc/man8/kas_list.8 usr/share/man/man8
+debian/doc/man8/kas_listtickets.8 usr/share/man/man8
+debian/doc/man8/kas_noauthentication.8 usr/share/man/man8
+debian/doc/man8/kas_quit.8 usr/share/man/man8
+debian/doc/man8/kas_setfields.8 usr/share/man/man8
+debian/doc/man8/kas_setpassword.8 usr/share/man/man8
+debian/doc/man8/kas_statistics.8 usr/share/man/man8
+debian/doc/man8/kas_stringtokey.8 usr/share/man/man8
+debian/doc/man8/kas_unlock.8 usr/share/man/man8
diff --git a/src/packaging/Debian/openafs-modules-source.docs b/src/packaging/Debian/openafs-modules-source.docs
index 79b2a31613..3d959f9506 100644
--- a/src/packaging/Debian/openafs-modules-source.docs
+++ b/src/packaging/Debian/openafs-modules-source.docs
@@ -2,4 +2,3 @@ README
debian/README.servers
debian/configuration-transcript.txt
debian/README.modules
-NEWS
diff --git a/src/packaging/Debian/patches/README b/src/packaging/Debian/patches/README
new file mode 100644
index 0000000000..d337dfab99
--- /dev/null
+++ b/src/packaging/Debian/patches/README
@@ -0,0 +1,9 @@
+This directory contains patches relative to the upstream OpenAFS source.
+It is not used automatically as part of the build process and is not
+guaranteed to be completely up-to-date; it is intended as documentation of
+significant divergences, a place to store patches that should be sent
+upstream, and a place to document the current status of patches.
+
+Simple Debian-specific changes that aren't of interest to upstream will
+not be included here, such as updating config.{guess,sub} or changing
+paths to fit with the FHS.
diff --git a/src/packaging/Debian/patches/module-name b/src/packaging/Debian/patches/module-name
new file mode 100644
index 0000000000..148d2d837f
--- /dev/null
+++ b/src/packaging/Debian/patches/module-name
@@ -0,0 +1,49 @@
+Upstream uses libafs as the module name, mostly for historic reasons. It
+also uses a different module name depending on whether the module is built
+for SMP systems, something that Debian deals with by creating separate
+packages. This patch changes the name of the module to openafs and
+removes the separate name for the SMP version.
+
+Probably not acceptable upstream.
+
+--- openafs-1.3.87.orig/src/libafs/MakefileProto.LINUX.in
++++ openafs-1.3.87/src/libafs/MakefileProto.LINUX.in
+@@ -216,8 +216,8 @@
+
+ # Below this line are targets when in the COMMON directory:
+ # For Linux there is no kernel NFS server.
+-LIBAFS = libafs-${CLIENT}.${LINUX_MODULE_EXT}
+-LIBAFS_MP = libafs-${CLIENT}.mp.${LINUX_MODULE_EXT}
++LIBAFS = openafs.${LINUX_MODULE_EXT}
++LIBAFS_MP = openafs.${LINUX_MODULE_EXT}
+ LIBAFS_EP = libafs-${CLIENT}.ep.${LINUX_MODULE_EXT}
+ LIBAFS_BM = libafs-${CLIENT}.bm.${LINUX_MODULE_EXT}
+
+@@ -226,10 +226,8 @@
+ INST_LIBAFS_EP = ${DESTDIR}${afskerneldir}/${LIBAFS_EP}
+ INST_LIBAFS_BM = ${DESTDIR}${afskerneldir}/${LIBAFS_BM}
+
+-DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS}
+-DEST_LIBAFS_MP = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_MP}
+-DEST_LIBAFS_EP = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_EP}
+-DEST_LIBAFS_BM = ${DEST}/root.client/usr/vice/etc/modload/${LIBAFS_BM}
++DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/modload/openafs.o
++DEST_LIBAFS_MP = ${DEST}/root.client/usr/vice/etc/modload/openafs.mp.o
+
+
+ libafs: $(LIBAFS)
+@@ -245,11 +243,11 @@
+ echo BM Build Complete
+
+
+-${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: libafs.ko
+- cp libafs.ko $@
++${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: openafs.ko
++ cp openafs.ko $@
+
+ .FORCE:
+-libafs.ko: .FORCE
++openafs.ko: .FORCE
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" @TOP_SRCDIR@/libafs/make_kbuild_makefile.pl ${KDIR} $@ @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_PATH} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules
+
diff --git a/src/packaging/Debian/patches/pam b/src/packaging/Debian/patches/pam
new file mode 100644
index 0000000000..c0f00b0058
--- /dev/null
+++ b/src/packaging/Debian/patches/pam
@@ -0,0 +1,158 @@
+The standard upstream source builds the PAM modules against static
+libraries, which means they contain non-PIC code. This isn't allowed by
+Debian Policy and doesn't work on some supported platforms.
+
+Two approaches for fixing this have been tried. One is to rebuild the
+various object files that are part of the libraries PIC and then link with
+those object files. The other, which this implements, is to link with the
+object files used to create the libafsauthent and libafsrpc shared
+libraries (which can't be shipped since they don't have a stable API or
+correct SONAME). The latter means that the PAM modules must also be
+linked with libpthread, but that's a feature since that means they'll work
+with sshd built threaded.
+
+Not submitted upstream yet. The call to rx_Init should be submitted
+upstream and would probably be accepted. Upstream would probably rather
+link the PAM modules against the shared libraries rather than accepting
+this hack, which is unsuitable for Debian until the shared libraries are
+handled more consistently.
+
+--- openafs-1.3.87.orig/src/pam/Makefile.in
++++ openafs-1.3.87/src/pam/Makefile.in
+@@ -25,7 +25,17 @@
+ afs_pam_msg.o afs_message.o AFS_component_version_number.o
+ OBJS = $(SHOBJS) test_pam.o
+ INCLUDES=-I${TOP_OBJDIR}/src/config -I${TOP_INCDIR}
+-CFLAGS = ${DEBUG} ${INCLUDES} ${PAM_CFLAGS}
++CFLAGS = ${DEBUG} ${INCLUDES} ${PAM_CFLAGS} ${MT_CFLAGS}
++
++# For Debian, we link directly with the object files that would have gone
++# into the libafsrpc and libafsauthent shared libraries. The shared libraries
++# themselves cannot be used because the interface isn't stable and they have
++# no SONAME, but this is the easiest way of getting PIC objects built with the
++# pthread API.
++SHLIB_OBJS := `ls ../shlibafsauthent/*.o | grep -v version_num` \
++ `ls ../shlibafsrpc/*.o | grep -v version_num`
++KRB_SHLIB_OBJS := `ls ../shlibafsauthent/*.o | egrep -v 'version_num|ktc.o'` \
++ `ls ../shlibafsrpc/*.o | grep -v version_num`
+
+ all: test_pam ${TOP_LIBDIR}/pam_afs.so.1 ${TOP_LIBDIR}/pam_afs.krb.so.1
+
+@@ -39,14 +49,18 @@
+ ${CC} ${CFLAGS} -c ${srcdir}/afs_auth.c -o afs_auth.o
+
+ afs_auth_krb.o: afs_auth.c afs_pam_msg.h afs_message.h afs_util.h
+- ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_auth.c -o afs_auth_krb.o
++ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_auth.c -o afs_auth_krb.o
+
+ afs_util.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
+ ${CC} ${CFLAGS} -c ${srcdir}/afs_util.c -o afs_util.o
+
++
+ afs_util_krb.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
+ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_util.c -o afs_util_krb.o
+
++ktc.o: ${srcdir}/../auth/ktc.c
++ ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/../auth/ktc.c
++
+ pam_afs.so.1: $(SHOBJS) afs_setcred.o afs_auth.o afs_util.o
+ set -x; \
+ case "$(SYS_NAME)" in \
+@@ -59,8 +73,9 @@
+ afs_setcred.o afs_auth.o afs_util.o \
+ $(SHOBJS) $(LIBS) ;; \
+ *linux*) \
+- $(CC) $(LDFLAGS) -o $@ afs_setcred.o \
+- afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
++ $(CC) $(LDFLAGS) $(PAM_CFLAGS) -o $@ afs_setcred.o \
++ afs_auth.o afs_util.o $(SHOBJS) $(SHLIB_OBJS) \
++ $(MT_LIBS) -lpam -lresolv;;\
+ *fbsd*| *nbsd*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred.o \
+ afs_auth.o afs_util.o $(SHOBJS) $(LIBS) ;;\
+@@ -68,7 +83,7 @@
+ echo No link line for system $(SYS_NAME). ;; \
+ esac
+
+-pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o
++pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o ktc.o
+ set -x; \
+ case "$(SYS_NAME)" in \
+ hp_ux* | ia64_hpux*) \
+@@ -81,7 +96,8 @@
+ $(SHOBJS) $(LDFLAGS) $(KLIBS) ;; \
+ *linux*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o \
+- afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
++ afs_auth_krb.o afs_util_krb.o ktc.o $(SHOBJS) \
++ $(KRB_SHLIB_OBJS) $(MT_LIBS) -lpam -lresolv;;\
+ *fbsd*| *nbsd*) \
+ $(CC) $(LDFLAGS) -o $@ afs_setcred_krb.o \
+ afs_auth_krb.o afs_util_krb.o $(SHOBJS) $(KLIBS) ;;\
+--- openafs-1.3.87.orig/src/pam/afs_setcred.c
++++ openafs-1.3.87/src/pam/afs_setcred.c
+@@ -52,7 +52,7 @@
+ int refresh_token = 0;
+ int set_expires = 0; /* the default is to not to set the env variable */
+ int use_klog = 0;
+- int i;
++ int i, code;
+ struct pam_conv *pam_convp = NULL;
+ char my_password_buf[256];
+ char *cell_ptr = NULL;
+@@ -281,6 +281,11 @@
+ #endif
+ }
+
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ RET(PAM_AUTH_ERR);
++ }
++
+ if (flags & PAM_REFRESH_CRED) {
+ if (use_klog) {
+ auth_ok = !do_klog(user, password, "00:00:01", cell_ptr);
+--- openafs-1.3.87.orig/src/pam/afs_auth.c
++++ openafs-1.3.87/src/pam/afs_auth.c
+@@ -314,6 +314,10 @@
+ if (cpid <= 0) { /* The child process */
+ if (logmask && LOG_MASK(LOG_DEBUG))
+ syslog(LOG_DEBUG, "in child");
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ exit(0);
++ }
+ if (refresh_token || set_token)
+ code = ka_UserAuthenticateGeneral(KA_USERAUTH_VERSION, user, /* kerberos name */
+ NULL, /* instance */
+@@ -363,6 +367,10 @@
+ pam_afs_syslog(LOG_ERR, PAMAFS_PAMERROR, errno);
+ }
+ } else { /* dont_fork, used by httpd */
++ if ((code = rx_Init(0)) != 0) {
++ pam_afs_syslog(LOG_ERR, PAMAFS_KAERROR, code);
++ RET(PAM_AUTH_ERR);
++ }
+ if (logmask && LOG_MASK(LOG_DEBUG))
+ syslog(LOG_DEBUG, "dont_fork");
+ if (refresh_token || set_token)
+--- openafs-1.3.87.orig/Makefile.in
++++ openafs-1.3.87/Makefile.in
+@@ -507,8 +507,6 @@
+ # pthread based user space RX library
+ shlibafsrpc: rx rxkad des
+ case ${SYS_NAME} in \
+- amd64_linux24) \
+- echo Skipping shlibafsrpc for amd64_linux24 ;; \
+ alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
+ ${COMPILE_PART1} shlibafsrpc ${COMPILE_PART2} ;; \
+ *) \
+@@ -517,8 +515,6 @@
+
+ shlibafsauthent: ubik auth kauth shlibafsrpc
+ case ${SYS_NAME} in \
+- amd64_linux24) \
+- echo Skipping shlibafsauthent for amd64_linux24 ;; \
+ alpha_dux*|sgi_*|sun4x_*|sunx86_*|rs_aix*|*linux*|hp_ux11*|ia64_hpux*) \
+ ${COMPILE_PART1} shlibafsauthent ${COMPILE_PART2} ;; \
+ *) \
diff --git a/src/packaging/Debian/po/POTFILES.in b/src/packaging/Debian/po/POTFILES.in
new file mode 100644
index 0000000000..0ec8635f51
--- /dev/null
+++ b/src/packaging/Debian/po/POTFILES.in
@@ -0,0 +1,2 @@
+[type: gettext/rfc822deb] openafs-client.templates
+[type: gettext/rfc822deb] openafs-fileserver.templates
diff --git a/src/packaging/Debian/po/cs.po b/src/packaging/Debian/po/cs.po
new file mode 100644
index 0000000000..1901ea7a84
--- /dev/null
+++ b/src/packaging/Debian/po/cs.po
@@ -0,0 +1,279 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs 1.4rc1-1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-19 08:01+0200\n"
+"Last-Translator: Martin Sin \n"
+"Language-Team: Czech \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr "Které poÄÃtaÄe jsou DB servery pro vaÅ¡i domovskou buňku?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"AFS použÃvá k uchovávánà seznamu serverů, které majà být kontaktovány pÅ™i "
+"hledánà Äástà buňky, soubor /etc/openafs/CellServDB. Buňka, do které tato "
+"stanice patÅ™Ã, nenà ve zmÃnÄ›ném souboru uvedena. Zadejte mezerami oddÄ›lená "
+"jména databázových serverů. DÅ®LEŽITÉ: pokud vytvářÃte novou buňku a tento "
+"poÄÃtaÄ bude databázovým serverem této buňky, pak staÄà pouze zadat jméno "
+"poÄÃtaÄe; ostatnà servery pÅ™idejte pozdÄ›ji až po jejich zprovoznÄ›nÃ. Dokud "
+"nebude buňka nastavena, tak na tomto serveru nepovolujte spuštěnà AFS "
+"klienta při startu serveru. Až budete připraveni, můžete klienta povolit "
+"úpravou souboru /etc/openafs/afs.conf.client."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Ke které buňce AFS bude tento poÄÃtaÄ náležet?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"Souborový prostor systému AFS je uspořádán do bunÄ›k nebo administrativnÃch "
+"domén. Každá stanice patřà jedné buňce. Obvykle je buňkou doménové jméno "
+"skupiny."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Jak velká je vaše cache AFS (v kB)?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"AFS použÃvá urÄitý prostor na disku pro cachovánà vzdálených souborů, aby k "
+"nim mÄ›l rychlejÅ¡Ã pÅ™Ãstup. Tato cache bude pÅ™ipojena do /var/cache/openafs. "
+"Je důležité, aby cache nepÅ™eplnila oblast na které je umÃstÄ›na. ÄŒasto je "
+"užiteÄné umÃstit cache AFS do své vlastnà diskové oblasti."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Spustit klienta Openafs nynà a pÅ™i zavádÄ›nà poÄÃtaÄe?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"Má být souborový systém Openafs spuÅ¡tÄ›n a pÅ™ipojen pÅ™i startu poÄÃtaÄe? "
+"VÄ›tÅ¡ina uživatelů, kteřà instalujà balÃÄek openafs-client, oÄekává, že se "
+"AFS spustà hned pÅ™i startu poÄÃtaÄe. SamozÅ™ejmÄ›, pokud plánujete nastavenà "
+"nové buňky, nebo pokud použÃváte laptop, pak byste zÅ™ejmÄ› AFS pÅ™i startu "
+"spouÅ¡tÄ›t nechtÄ›li. ZvolÃte-li možnost nespouÅ¡tÄ›t AFS pÅ™i startu poÄÃtaÄe, "
+"můžete klienta spustit ruÄnÄ› pÅ™Ãkazem /etc/init.d/openafs-client force-start."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Hledat buňky AFS v DNS?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Pro kontaktovánà buňky AFS potřebujete znát IP adresu databázového serveru "
+"buňky. Obvykle lze tuto informaci pÅ™eÄÃst ze souboru /etc/openafs/"
+"CellServDB. NicménÄ› pokud Openafs nemůže najÃt buňku v tomto souboru, může "
+"použÃt DNS pro vyhledánà AFSDB záznamů, které obsahujà požadované informace."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr "Šifrovat autentikovaný provoz se souborovým serverem AFS?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"AFS poskytuje slabou formu Å¡ifrovánÃ, která může být nepovinnÄ› použita mezi "
+"klientem a souborovým serverem. Přestože je toto šifrovánà slabšà než DES a "
+"tedy nenà dostateÄné pro velmi důvÄ›rná data, poskytuje urÄitou formu utajenà "
+"a urÄitÄ› tak ztÞà práci náhodnému útoÄnÃkovi."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Vygenerovat obsah /afs dynamicky?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"/afs obvykle obsahuje záznam pro každou buňku, se kterou může klient "
+"hovoÅ™it. TradiÄnÄ› jsou tyto záznamy vytvářeny servery v mateÅ™ské buňce "
+"klienta. Klienti OpenAFS však mohou generovat obsah adresáře /afs dynamicky "
+"na základě souboru /etc/openafs/CellServDB a systému DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Pokud vytvářÃte /afs dynamicky, možná budete muset vytvoÅ™it /etc/openafs/"
+"CellAlias pro zaÄlenÄ›nà aliasů běžných bunÄ›k. (Syntaxe tohoto souboru je "
+"jeden řádek na alias, který se skládá ze jména buňky, mezery a pak následuje "
+"alias pro tuto buňku.)"
+
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr "PoužÃt fakestat pro obejità zatuhnutà pÅ™i výpisu /afs?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Protože je AFS globálnà souborový prostor, mohou operace na adresáři /afs "
+"výzraznÄ› zvýšit provoz na sÃti. Pokud jsou nÄ›které buňky AFS nedosažitelné, "
+"pak může prohlÞenà /afs pomocà pÅ™Ãkazu ls nebo grafického prohlÞeÄe "
+"způsobit zatuhnutà poÄÃtaÄe na dobu nÄ›kolika minut. AFS má volbu, která "
+"simuluje odpovědi pro tyto operace a tak se snažà vyhnout popsaným výpadkům. "
+"Tuto volbu budete chtÃt použÃt ve vÄ›tÅ¡inÄ› pÅ™Ãpadů."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Kterým buňkám má tento server poskytovat soubory?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Souborové servery AFS náležà buňce. Servery majà klÃÄ ke službÄ› Kerberos "
+"dané buňky a v rámci buňky nabÃzejà souborové svazky. Tato buňka je obvykle "
+"shodná s buňkou, ke které patřà klient na pracovnà stanici."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr "Upgradovánà pÅ™esune soubory do nového umÃstÄ›nÃ; pokraÄovat?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Verze Openafs 1.1 a Openafs 1.2 majà přesunuty některé soubory. Přesněji "
+"Å™eÄeno: soubory z /etc/openafs/server-local byly pÅ™esunuty jinam. "
+"KonfiguraÄnà soubor BosConfig je nynà umÃstÄ›n v /etc/openafs, ostatnà "
+"soubory jsou uloženy v adresáři /var/lib/openafs. Pokud budete pokraÄovat v "
+"aktualizaci, budou tyto soubory pÅ™esunuty. K opÄ›tovnému naÄtenà vaÅ¡ich "
+"serverů můžete použÃt pÅ™ikaz bos, který provede restart. Jakákoliv zmÄ›na "
+"konfigurace provedená pÅ™ed tÃmto restartem bude ztracena."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Souborový server OpenAFS pravděpodobně nepracuje!"
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Souborový server OpenAFS běžà na Aplha systému, což pravděpodobně nebude "
+"fungovat; DES kód se ve spojenàs vlákny na souborovém serveru chová "
+"podivnÄ›. Souborový server nejpravdÄ›podobnÄ›ji vůbec nespustà nespustÃ, ale "
+"pokud nabÄ›hne, může dojÃt ke ztrátÄ› dat. Byli jste varováni."
diff --git a/src/packaging/Debian/po/de.po b/src/packaging/Debian/po/de.po
new file mode 100644
index 0000000000..7e786a7022
--- /dev/null
+++ b/src/packaging/Debian/po/de.po
@@ -0,0 +1,225 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+#, fuzzy
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Für welche Zelle liefert der Server Dateien?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Für welche Zelle liefert der Server Dateien?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"AFS-Dateiserver gehören zu einer Zelle. Die Server haben den Schlüssel für "
+"den Kerberos-Service der Zelle und stellen Volumes für die Zelle bereit. "
+"Normalerweise ist die Zelle identisch mit der des Clients"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr ""
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
diff --git a/src/packaging/Debian/po/fr.po b/src/packaging/Debian/po/fr.po
new file mode 100644
index 0000000000..0e4c7df0c5
--- /dev/null
+++ b/src/packaging/Debian/po/fr.po
@@ -0,0 +1,292 @@
+# translation of fr.po to French
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs 1.4rc1-1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-22 15:11+0200\n"
+"Last-Translator: Christian Perrier \n"
+"Language-Team: French \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr ""
+"Hôtes serveurs de bases de données pour votre cellule locale (« home "
+"cell ») :"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"AFS utilise le fichier /etc/openafs/CellServDB pour conserver la liste des "
+"serveurs à contacter pour trouver les constituants d'une cellule. La cellule "
+"dont ce poste de travail est censé faire partie n'est pas indiquée dans ce "
+"fichier. Veuillez indiquer les noms des serveurs de bases de données, "
+"séparés par des espaces. IMPORTANT : si vous créez une nouvelle cellule et "
+"que cette machine doit être un serveur de bases de données dans cette "
+"cellule, veuillez seulement indiquer le nom de cette machine. N'ajoutez les "
+"autres serveurs que plus tard, lorsqu'ils seront opérationnels. Enfin, "
+"n'activez pas le client AFS au démarrage tant que cette cellule n'est pas "
+"configurée. Quand vous serez prêt, vous pourrez modifier /etc/openafs/afs."
+"conf.client pour mettre en service le client."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Cellule AFS dont ce poste de travail fait partie :"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"L'espace des fichiers AFS est organisé en cellules ou domaines "
+"administratifs. Chaque poste de travail appartient à une cellule. "
+"Habituellement, la cellule est le nom de domaine du site."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Taille de votre cache pour AFS (en kilo-octets) :"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"AFS utilise une partie du disque pour mettre en cache des fichiers distants "
+"et accélérer les accès. Ce cache sera monté sur /var/cache/openafs. Il est "
+"important que le cache ne remplisse pas la partition sur laquelle il est "
+"situé. De nombreux utilisateurs choisissent de dédier une partition pour le "
+"cache d'AFS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Lancer le client AFS maintenant, puis à chaque démarrage ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"Veuillez indiquer si le système de fichiers Openafs doit être mis en service "
+"et monté au démarrage. Normalement, la majorité des utilisateurs qui "
+"installent le paquet openafs-client s'attendent à ce qu'il soit lancé au "
+"démarrage. Cependant, si vous prévoyez de mettre en service une nouvelle "
+"cellule ou si vous utilisez un ordinateur portable, vous ne souhaitez peut-"
+"être pas le lancer au démarrage. Si vous préférez ne pas le lancer au "
+"démarrage, utilisez la commande « /etc/init.d/openafs-client force-start » "
+"pour le lancer quand vous en aurez besoin."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Faut-il chercher les cellules AFS dans le DNS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Afin de contacter une cellule AFS, vous avez besoin des adresses IP de ses "
+"serveurs de bases de données. Cette information est normalement extraite de /"
+"etc/openafs/CellServDB. Cependant, si Openafs ne peut pas trouver de cellule "
+"dans ce fichier, il peut utiliser le DNS pour rechercher des enregistrements "
+"AFSDB qui fourniront cette information."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr "Faut-il chiffrer le trafic authentifié avec le serveur de fichiers AFS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"AFS offre un mode de chiffrement faible qu'il est possible d'utiliser entre "
+"un client et les serveurs de fichiers. Bien que ce chiffrement soit plus "
+"faible que DES, et donc insuffisant pour des données hautement "
+"confidentielles, il fournit une certaine forme de confidentialité et peut "
+"rendre une attaque non préparée nettement plus difficile."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Faut-il gérer le contenu de /afs dynamiquement ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"Le répertoire /afs contient généralement une entrée par cellule accessible à "
+"un client donné. Traditionnellement, ces entrées ont été créées par les "
+"serveurs dans la cellule locale de chaque client. Cependant, OpenAFS peut "
+"gérer dynamiquement le contenu de /afs en se servant de /etc/openafs/"
+"CellServDB et du DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Si vous créez /afs de manière dynamique, vous aurez peut-être à créer /etc/"
+"openafs/CellAlias pour inclure les alias des cellules communes. Ce fichier comporte une ligne par alias, avec le nom de la cellule, un espace et l'alias utilisé pour la cellule."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr "Utiliser fakestat pour éviter les erreurs à l'affichage du contenu de /afs ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Comme AFS est un espace global de fichiers, les opérations sur /afs peuvent "
+"générer un trafic réseau non négligeable. Si certaines cellules sont "
+"indisponibles, l'affichage de /afs avec ls ou avec un gestionnaire de "
+"fichiers graphique peut stopper votre machine pour quelques minutes. AFS "
+"comporte une option permettant de simuler les réponses à ces requêtes pour "
+"éviter ces plantages. Cette option est utile dans la plupart des cas."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Cellule pour laquelle ce serveur est un serveur de fichiers :"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Les serveurs de fichiers AFS appartiennent à une cellule. Ils possèdent la "
+"clé pour le service Kerberos de cette cellule et y mettent à disposition des "
+"volumes. Normalement, cette cellule est la même que celle à laquelle "
+"appartient le client."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr "Faut-il procéder au déplacement de fichiers requis pour la mise à jour ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Entre les versions 1.1 et 1.2 d'OpenAFS, de nombreux fichiers ont été "
+"déplacés. Les fichiers de /etc/openafs/server-local ont notamment été "
+"répartis sur d'autres emplacements. Le fichier BosConfig est désormais placé "
+"dans /etc/openafs et les autres fichiers sont dans /var/lib/openafs. Si vous "
+"poursuivez la mise à jour, ces fichiers seront déplacés. Vous devez utiliser "
+"la commande « bos restart » pour redémarrer vos serveurs. Toutes les "
+"modifications de configuration que vous ferez avant d'avoir effectué ces "
+"opérations seront perdues."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Le serveur de fichiers OpenAFS ne fonctionne probablement pas"
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Vous utilisez le paquet du serveur de fichier OpenAFS sur une plateforme "
+"alpha. Cela ne fonctionne probablement pas ; le code DES est défectueux sur "
+"ces plateformes de même que le serveur de fichiers à processus légers. Il "
+"est probable que le serveur refusera tout simplement de démarrer. Cependant, "
+"s'il démarre quand même, des corruptions de données peuvent avoir lieu."
+
diff --git a/src/packaging/Debian/po/pt_BR.po b/src/packaging/Debian/po/pt_BR.po
new file mode 100644
index 0000000000..a89a2efa1e
--- /dev/null
+++ b/src/packaging/Debian/po/pt_BR.po
@@ -0,0 +1,293 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs\n"
+"Report-Msgid-Bugs-To: debian-l10n-portuguese@lists.debian.org\n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-26 18:53-0300\n"
+"Last-Translator: André Luís Lopes \n"
+"Language-Team: Debian-BR Project \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr "Quais hosts são servidor DB para sua célula home ?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"O AFS usa o arquivo /etc/openafs/CellServDB para armazenar a lista de "
+"servidores que deverão ser contactados para se encontrar partes de uma "
+"célula. A célula que você diz que essa estação de trabalho pertence não está "
+"nesse arquivo. Informe os nomes de hosts dos servidore de base de dados "
+"separados por espaços. IMPORTANTE : Caso você esteja criando uma nova célula "
+"e esta máquina será um servidor de base de dados na célula, somente informe "
+"o nome desta máquina. Adicione os outros servidores posteriormente depois "
+"que os mesmos estejam funcionando. Adicionalmente, não habilite o cliente "
+"AFS para inicialização em tempo de inicialização neste servidor até que a "
+"célula esteja configurada. Quando você estiver terminado você poderá editar "
+"o arquivo /etc/openafs/afs.conf.client para habilitar este cliente."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "A qual célula AFS esta estação de trabalho pertence ?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"O espaço de arquivo AFS é organizado em células ou domínios administrativos. "
+"Cada estação de trabalho pertence a uma célula. Normalmente a célula é o "
+"nome de domínio DNS do site."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Qual o tamanho de seu cache AFS (KB) ?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"O AFS usa uma àrea do disco para fazer cache de arquivos remotos para acesso "
+"mais rápido. Esse cache será montando em /var/cache/openafs. É importante "
+"que o cache não ocupe toda a partrição na qual está localizado. Geralmente, "
+"os usuários AFS acham útil dedicar uma partição para seus caches AFS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Executar o cliente OpenAFS agora e em tempo de inicialização ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"O sistema de arquivos OpenAFS deverá ser iniciado e montando em tempo de "
+"inicialização ? Normalmente, a maioria dos usuários que instalam o pacote "
+"openafs-client esperam executá-lo em tempo de inicialização. Porém, caso "
+"você esteja planejando configurar uma nova célula ou esteja em um laptop, "
+"você pode não desejar iniciar o OpenAFS em tempo de inicialização. Caso você "
+"opte por não iniciar o AFS em tempo de inicialização, execute "
+"/etc/init.d/openafs-cliente force-start para iniciar o cliente quando "
+"desejar executá-lo."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Procurar células AFS no DNS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Para poder contactar uma célula AFS, você precisa dos endereços IP dos "
+"servidores de base de dados da célula. Normalmente, esta informação é lida "
+"de /etc/openafs/CellServDB. Porém, caso o OpenAFS não possa encontrar uma "
+"célula nesse arquivo, o DNS poderá ser usado para pesquisar registros AFSDB "
+"que contenham a informação."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr "Encriptar o tráfego autenticado com o servidor de arquivos AFS ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"O AFS fornece uma forma fraca de encriptação que pode ser opcionalmente "
+"usada entre o cliente e os servidor de arquivos. Enquanto esta encriptação é "
+"mais fraca do que DES e portanto não é suficiente para dados altamente "
+"confidenciais, essa encriptação fornece alguma confidencialidade e "
+"provavelmente torna o trabalho de um atacante casual mais difícil."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Gerar dinamicamente o conteúdo de /afs ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"O /afs geralmente contém uma entrada para cada célula com a qual o cliente "
+"pode conversar. Tradicionalmente, essas entradas eram geradas por servidores "
+"no célula home do cliente. Porém, clientes OpenAFS podem gerar o conteúdo "
+"de /afs dinamicamente baseando-se no conteúdo de /etc/openafs/CellServDB e "
+"do DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Caso você gere o /afs dinamicamente, você pode precisar criar o /etc/openafs/"
+"CellAlias para incluir apelidos (aliases) para células comuns. (A "
+"sintaxe desse arquivo é uma linha por apelido, com o nome da célula, "
+"um espaço e depois o apelido para a célula.)"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr "Usar fakestat para evitar travadas na listagem do /afs ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Devido ao AFS ser um espaço de arquivos global, operações no diretório /afs "
+"podem gerar um tráfego de rede significativo. Caso algumas células AFS não "
+"estejam disponíveis, pesquisar o /afs usando o comando \"ls\" ou um "
+"gerenciador de arquivos gráfico pode travar sua máquina por alguns minutos. "
+"O AFS possui uma opção para simular respostas para essas operações "
+"localmente para evitar essas travadas. Você irá desejar usar esta opção na "
+"maioria dos casos."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Para qual célula este servidor serve arquivos ?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Servidor de arquivos AFS pertencem a uma célula. Eles possuem uma chave para "
+"cada serviço Kerberos da célula e servem volumes dentro da célula. "
+"Normalmente, essa célula é a mesma célula da qual a estação de trabalho faz "
+"parte."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr "Atualizar irá mover arquivo para novos locais. Continuar ?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Entre as versões do OpenAFS 1.1 e do OpenAFS 1.2, diversos arquivos foram "
+"movidos. Em particular, aruivos em /etc/openafs/server-local foram "
+"distribuídos para outros locais. O arquivo BosConfig está agora localizado "
+"em /etc/openafs e os outros arquivos estão localizados em /var/lib/openafs. "
+"Caso você continue com esta atualização, esses arquivos serão movidos. Você "
+"deverá usar o comando \"bos restart\" para recarregar seus servidores. "
+"Quaisquer mudanças em configurações feitas antes que você tenha feito isso "
+"serão perdidas."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Servidor de Arquivos OpenAFS provavelmente não funciona !"
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Você está executando o pacote do servidor de arquivos OpenAFS em uma máquina "
+"Alpha. Isso provavelmente não funcionará. O código DES é em conjunto com o "
+"servidor de arquivos com suporte a threads é problemático em máquinas Alpha. "
+"Provavelmente, o servidor de arquivos irá simplesmente falhar ao iniciar. "
+"Caso consiga ser iniciado, poderá causar corrupção de dados. Você foi "
+"avisado."
+
+#~ msgid "50000"
+#~ msgstr "50000"
diff --git a/src/packaging/Debian/po/vi.po b/src/packaging/Debian/po/vi.po
new file mode 100644
index 0000000000..1f92208458
--- /dev/null
+++ b/src/packaging/Debian/po/vi.po
@@ -0,0 +1,278 @@
+# Vietnamese translation for openafs.
+# Copyright © 2005 Free Software Foundation, Inc.
+# Clytie Siddall , 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openafs 1.4rc1-1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2005-08-18 12:47-0700\n"
+"PO-Revision-Date: 2005-08-19 16:26+0930\n"
+"Last-Translator: Clytie Siddall \n"
+"Language-Team: Vietnamese \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: LocFactoryEditor 1.2.2\n"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid "What hosts are DB servers for your home cell?"
+msgstr "Máy nà o chạy trình phục vụ cÆ¡ sở dữ liệu cho ô chÃnh bạn?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:3
+msgid ""
+"AFS uses the file /etc/openafs/CellServDB to hold the list of servers that "
+"should be contacted to find parts of a cell. The cell you claim this "
+"workstation belongs to is not in that file. Enter the host names of the "
+"database servers separated by spaces. IMPORTANT: If you are creating a new "
+"cell and this machine is to be a database server in that cell, only enter "
+"this machine's name; add the other servers later after they are functioning. "
+"Also, do not enable the AFS client to start at boot on this server until the "
+"cell is configured. When you are ready you can edit /etc/openafs/afs.conf."
+"client to enable the client."
+msgstr ""
+"AFS dùng táºp tin « /etc/openafs/CellServDB » để chứa danh sách các máy phục vụ "
+"nên được liên hệ để tìm phần ô. Bạn đã tuyên bố máy trạm nà y thuộc một ô "
+"không phải trong táºp tin ấy. Hãy nháºp tên máy của những máy phục vụ cÆ¡ sở dữ "
+"liệu, định giới bằng dấu cách. QUAN TRỌNG: nếu bạn đang tạo một ô mới, và "
+"máy nà y sẽ là má»™t máy phục vụ cÆ¡ sở dữ liệu trong ô ấy, thì bạn hãy nháºp chỉ "
+"tên máy nà y thôi. Hãy thêm những máy phục vụ khác lần sau, sau khi chúng "
+"hoạt động. Hơn nữa, có thể hiệu lực trình khách AFS khởi chạy khi khởi động "
+"máy, chỉ sau khi cấu hình ô ấy. Khi bạn sẵn sà ng thì có thể hiệu chỉnh táºp "
+"tin « /etc/openafs/afs.conf.client » để hiệu lực trình khách ấy."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid "What AFS cell does this workstation belong to?"
+msgstr "Máy trạm nà y thuộc ô AFS nà o?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:16
+msgid ""
+"AFS filespace is organized into cells or administrative domains. Each "
+"workstation belongs to one cell. Usually the cell is the DNS domain name of "
+"the site."
+msgstr ""
+"Khoảng cách táºp tin loại AFS được tổ chức ra nhiá»u ô hay miá»n quản lý. Má»—i "
+"máy trạm thuá»™c má»™t ô riêng lẻ. ThÆ°á»ng ô ấy là tên miá»n DNS của nÆ¡i Mạng ấy."
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid "How large is your AFS cache (kB)?"
+msgstr "Bạn có bộ nhớ tạm AFS lớn bao nhiêu (theo kB)?"
+
+#. Type: string
+#. Description
+#: ../openafs-client.templates:24
+msgid ""
+"AFS uses an area of the disk to cache remote files for faster access. This "
+"cache will be mounted on /var/cache/openafs. It is important that the cache "
+"not overfill the partition it is located on. Often, people find it useful "
+"to dedicate a partition to their AFS cache."
+msgstr ""
+"AFS dùng má»™t vùng trên Ä‘Ä©a để lÆ°u tạm táºp tin từ xa, mà cho phép truy cáºp "
+"nhanh hÆ¡n. Bá»™ nhá»› tạm nà y sẽ được gắn và o « /var/cache/openafs ». Quan trá»ng "
+"là bá»™ nhá»› tạm ấy không vượt quá phân vùng ở. ThÆ°á»ng có Ãch khi dùng má»™t phân "
+"vùng chỉ cho bộ nhớ tạm AFS thôi."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid "Run Openafs client now and at boot?"
+msgstr "Chạy trình khách Openafs ngay bây giỠvà cũng khi khởi động máy không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:34
+msgid ""
+"Should the Openafs filesystem be started and mounted at boot? Normally, most "
+"users who install the openafs-client package expect to run it at boot. "
+"However, if you are planning on setting up a new cell or are on a laptop, "
+"you may not want it started at boot time. If you choose not to start AFS at "
+"boot, run /etc/init.d/openafs-client force-start to start the client when "
+"you wish to run it."
+msgstr ""
+"Có nên khởi chạy và gắn hệ thống táºp tin Openafs khi khởi Ä‘á»™ng máy không? "
+"Bình thÆ°á»ng, phần lá»›n ngÆ°á»i dùng cà i đặt gói « openafs-client » thì định "
+"chạy nó khi khởi Ä‘á»™ng máy. Tuy nhiên, nếu bạn định thiết láºp má»™t ô má»›i, hoặc "
+"có dùng má»™t máy tÃnh xách tay, trong trÆ°á»ng hợp ấy có lẽ bạn không muốn hệ "
+"thống táºp tin ấy khởi chạy khi khởi Ä‘á»™ng máy. Nếu bạn chá»n không khởi chạy "
+"AFS khi khởi động máy thì hãy chạy lệnh « /etc/init.d/openafs-client force-"
+"start » (buộc khởi chạy trình khách AFS) để khởi chạy trình khách khi mà bạn "
+"muốn chạy nó."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid "Look up AFS cells in DNS?"
+msgstr "Tra cứu ô AFS trong DNS không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:45
+msgid ""
+"In order to contact an AFS cell, you need the IP addresses of the cell's "
+"database servers. Normally, this information is read from /etc/openafs/"
+"CellServDB. However, if Openafs cannot find a cell in that file, it can use "
+"DNS to look for AFSDB records that contain the information."
+msgstr ""
+"Äể liên hệ má»™t ô AFS, bạn cần có địa chỉ IP của má»i máy phục vụ cÆ¡ sở dữ "
+"liệu của nó. Bình thÆ°á»ng, thông tin nà y được Ä‘á»c từ táºp tin « /etc/openafs/"
+"CellServDB ». Tuy nhiên, nếu trình Openafs không tìm thấy một ô nà o đó trong "
+"táºp tin ấy thì nó có thể dùng DNS (hệ thống tên miá»n) để tìm mục ghi AFSDB "
+"chứa thông tin ấy."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid "Encrypt authenticated traffic with AFS fileserver?"
+msgstr ""
+"Máºt mã hóa các dữ liệu xác thá»±c truyá»n vá»›i trình phục vụ táºp tin AFS không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:55
+msgid ""
+"AFS provides a weak form of encryption that can optionally be used between a "
+"client and the fileservers. While this encryption is weaker than DES and "
+"thus is not sufficient for highly confidential data, it does provide some "
+"confidentiality and is likely to make the job of a casual attacker "
+"significantly more difficult."
+msgstr ""
+"AFS cung cấp má»™t cách máºt mã yếu mà tùy chá»n có thể được dùng giữa má»™t trình "
+"khách nà o đó và những trình phục vụ táºp tin khác. Dù cách mặt mã nà y yếu hÆ¡n "
+"DES, vì váºy không đủ cho dữ liệu quan trá»ng, nó có cung cấp má»™t mức Ä‘á»™ riêng "
+"tÆ°, thì sẽ là m cho ngÆ°á»i tấn công gặp khó khăn má»™t phần."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid "Dynamically generate the contents of /afs?"
+msgstr "Tạo ra nội dung « /afs » một cách động không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"/afs generally contains an entry for each cell that a client can talk to. "
+"Traditionally, these entries were generated by servers in the client's home "
+"cell. However, OpenAFS clients can generate the contents of /afs "
+"dynamically based on the contents of /etc/openafs/CellServDB and DNS."
+msgstr ""
+"ThÆ° mục « /afs » thÆ°á»ng chứa má»™t mục ghi cho má»—i ô mà trình khách có thể liên "
+"hệ. TrÆ°á»›c nà y, trình phục vụ trong ô chÃnh của trình khác đã tạo ra mục ghi "
+"nà y. Tuy nhiên, trình khách loại OpenAFS có thể tạo ra nội dung « /afs » một "
+"cách động, đựa và o nội dung « /etc/openafs/CellServDB » và và o DNS."
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:65
+msgid ""
+"If you generate /afs dynamically, you may need to create /etc/openafs/"
+"CellAlias to include aliases for common cells. (The syntax of this file is "
+"one line per alias, with the cell name, a space, and then the alias for that "
+"cell.)"
+msgstr ""
+"Nếu bạn chá»n tạo ra « /afs » má»™t cách Ä‘á»™ng, có lẽ bạn sẽ cần phải tạo « etc/"
+"openafs/CellAlias » (bà danh ô) để gồm bà danh cho các ô chung. (Cú pháp của táºp tin nà y là má»™t dòng cho má»—i bà danh, mà chứa tên ô, rồi má»™t dấu cách, rồi bà danh cho ô đó.)"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid "Use fakestat to avoid hangs when listing /afs?"
+msgstr ""
+"Dùng « fakestat » (thống kê giả) để tránh hệ thống treo cứng khi liệt kê « /"
+"afs » không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-client.templates:79
+msgid ""
+"Because AFS is a global file space, operations on the /afs directory can "
+"generate significant network traffic. If some AFS cells are unavailable "
+"then looking at /afs using ls or a graphical file browser may hang your "
+"machine for minutes. AFS has an option to simulate answers to these "
+"operations locally to avoid these hangs. You want this option under most "
+"circumstances."
+msgstr ""
+"Vì AFS là một khoảng cách toà n cục, thao tác trên thư mục « /afs » có thể tạo "
+"ra nhiá»u tải cho mạng. Nếu má»™t số ô AFS không sẵn sà ng thì việc xem « /afs » "
+"dùng lệnh « ls » (liệt kê) hoặc dùng má»™t trình đồ há»a duyệt táºp tin thì có thể "
+"treo cứng máy bạn trong vòng nhiá»u phút. AFS tùy chá»n có thể mô phá»ng trả "
+"lá»i cho thao tác loại nà y má»™t cách địa phÆ°Æ¡ng, để tránh treo cứng hệ thống "
+"nhÆ° thế. Äệ nghi bạn sá» dụng tùy chá»n nà y: nó cần thiết trong phần lá»›n "
+"trÆ°á»ng hợp."
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid "What cell does this server serve files for?"
+msgstr "Trình phục vụ nà y phục vụ táºp tin cho ô nà o?"
+
+#. Type: string
+#. Description
+#: ../openafs-fileserver.templates:3
+msgid ""
+"AFS fileservers belong to a cell. They have the key for that cell's "
+"Kerberos service and serve volumes into that cell. Normally, this cell is "
+"the same cell as the workstation's client belongs to."
+msgstr ""
+"Má»i trình phục vụ táºp tin AFS thuá»™c má»™t ô nà o đó. Trình ấy có khóa của dịch "
+"vụ Kerberos của ô nà y, và phục vụ khối Ä‘Ä©a và o ô nà y. Bình thÆ°á»ng, ô nà y là "
+"cùng một ô với ô sở hữu trình khách của máy trạm nà y."
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid "Upgrading will move files to new locations; continue?"
+msgstr ""
+"Nâng cấp sẽ di chuyển táºp tin sang vị trà má»›i: bạn có muốn tiếp tục không?"
+
+#. Type: boolean
+#. Description
+#: ../openafs-fileserver.templates:11
+msgid ""
+"Between Openafs 1.1 and Openafs 1.2, several files moved. In particular, "
+"files in /etc/openafs/server-local have been distributed to other "
+"locations. The BosConfig file is now located in /etc/openafs and the other "
+"files are located in /var/lib/openafs. If you continue with this upgrade, "
+"these files will be moved. You should use the bos restart command to reload "
+"your servers. Any configuration changes made before you do so will be lost."
+msgstr ""
+"Giữa Openafs phiên bản 1.1 và 1.2, và i táºp tin đã được di chuyển. Äặc biệt, "
+"những táºp tin trong « /etc/openafs/server-local » (trình phục vụ địa phÆ°Æ¡ng) "
+"đã được chia ra nhiá»u vị trà khác. Táºp tin « BosConfig » lúc nà y trong « /etc/"
+"openafs », và những táºp tin khác có trong « /var/lib/openafs ». Nếu bạn chá»n "
+"tiếp tục nâng cấp, các táºp tin ấy sẽ được di chuyển nhÆ° thế. Bạn hãy sá» dụng "
+"lệnh « bos restart » (khởi chạy lại) để khởi chạy lại các trình phục vụ của "
+"bạn. Má»i thay đổi cấu hình được tạo trÆ°á»›c khi bạn khởi chạy lại thì sẽ bị "
+"mất."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid "OpenAFS file server probably does not work!"
+msgstr "Rất có thể là trình phục vụ táºp tin OpenAFS không hoạt Ä‘á»™ng."
+
+#. Type: note
+#. Description
+#: ../openafs-fileserver.templates:22
+msgid ""
+"You are running the OpenAFS file server package on an alpha. This probably "
+"doesn't work; the DES code is flaky on the alpha, along with the threaded "
+"file server. Likely, the fileserver will simply fail to start, but if it "
+"does load, data corruption may result. You have been warned."
+msgstr ""
+"Bạn có chạy gói tin trình phục vụ táºp tin OpenAFS trên má»™t anfa. Rất có thể "
+"là nó không hoạt Ä‘á»™ng vì mã DES bị lá»—i trên anfa, cÅ©ng vá»›i trình phục vụ táºp "
+"tin theo mạch. Rất có thể là trình phục vụ táºp tin sẽ không khởi chạy, nhÆ°ng "
+"mà nếu nó có phải khởi chạy thì dữ liệu có thể bị há»ng. Bạn đã nháºn má»™t cảnh "
+"báo rồi."
diff --git a/src/packaging/Debian/prep-modules b/src/packaging/Debian/prep-modules
index ed0570304d..0ab5d5c108 100644
--- a/src/packaging/Debian/prep-modules
+++ b/src/packaging/Debian/prep-modules
@@ -1,55 +1,103 @@
#! /bin/sh
+#
+# Prepares to build kernel modules. This script figures out and munges
+# version strings. The goal is:
+#
+# * Set the package name to openafs-modules-$(KVERS) where $(KVERS) is the
+# major kernel revision plus the debian subrevision and whatever
+# architecture string is appropriate if building against the stock Debian
+# kernels. $(KVERS) should be identical to the version component contained
+# in the Debian kernel package names.
+#
+# * Make the package recommend either kernel-image-$(KVERS) or
+# linux-image-$(KVERS) as appropriate for the kernel version that we're
+# building against. Use recommend rather than depends since the user may
+# have built their own kernel outside of the Debian package infrastructure.
+#
+# * Save the version number of the binary package in debian/VERSION for later
+# use by dh_gencontrol. This will be the version number of the source
+# package followed by a + and the version number of the kernel package that
+# we're building against. If the kernel package version contains an epoch,
+# try to hack our way into doing the right thing by using that epoch number
+# as our own. This isn't quite the right thing, but seems reasonably good.
+#
+# This script generates debian/control from debian/control.module using sed.
+# Unfortunately, substvars cannot be used since the name of the package is
+# modified and substvars happens too late. It also outputs debian/VERSION,
+# containing the version of the binary package.
set -e
-if [ $# -ne 2 ]; then
- echo Usage: $0 kernelsource-location control-template
- exit 1
+if [ "$#" -ne 1 ]; then
+ echo Usage: $0 kernelsource-location
+ exit 1
fi
+# We can get the kernel version from one of three places. If KVERS and KDREV
+# are both already set in the environment (which will be the case when invoked
+# by make-kpkg or module-assistant), use them. Otherwise, if we have a kernel
+# source directory that contains debian/changelog (generated by make-kpkg),
+# parse that file to find the version information. Finally, if neither works,
+# extract the kernel version from the kernel headers, append INT_SUBARCH to
+# that version if it's available, and assume a kernel package revision of -0
+# if none is provided.
+#
+# Set the variables $afs_kvers, which will hold the revision of the kernel,
+# and $afs_kdrev, which will hold the version of the kernel package that we're
+# building against.
changelog="$1/debian/changelog"
if [ -n "$KVERS" ] && [ -n "$KDREV" ]; then
- linuxversion=$KVERS${INT_SUBARCH}
- kernversion=$KDREV
-
-elif [ ! -f $changelog ]; then
- linuxversion=`awk '{ if (NR==1) v=$3; else if (NR==2) p=$3; else if (NR==3) s=$3; \
- else if (NR==4) { e=$3; exit; } } \
- END { printf("%s.%s.%s%s\n",v,p,s,e); }' $1/Makefile`
-
- if [ -z "$KDREV" ]; then
- kernversion=$linuxversion-0
- else
- linuxversion=${linuxversion}${INT_SUBARCH}
- kernversion=$KDREV
- fi
-
+ afs_kvers="${KVERS}${INT_SUBARCH}"
+ afs_kdrev="${KDREV}"
+elif [ ! -f "$changelog" ] ; then
+ if [ -n "$KVERS" ] ; then
+ afs_kvers="$KVERS"
+ else
+ afs_kvers=`perl debian/kernel-version "$1"`
+ fi
+ if [ -z "$KDREV" ] ; then
+ afs_kdrev="${afs_kvers}-0"
+ else
+ afs_kvers="${afs_kvers}${INT_SUBARCH}"
+ afs_kdrev="${KDREV}"
+ fi
else
- linuxversion=`head -1 $changelog | \
- sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\1/'`
- kernversion=`head -1 $changelog | \
- sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\2/'`
+ if [ -n "$KVERS" ] ; then
+ afs_kvers="$KVERS"
+ else
+ afs_kvers=`head -1 "$changelog" \
+ | sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\1/'`
+ fi
+ afs_kdrev=`head -1 "$changelog" \
+ | sed -e 's/.*source-\([^ ]*\) (\([^)]*\)).*/\2/'`
fi
-pkgversion=`head -1 debian/changelog | \
- sed -e 's/.*(\([^)]*\)).*/\1/'`
+# Determine the kernel package name. For right now, assume linux-image for
+# 2.6.12 and later, and kernel-image for anything earlier. If this doesn't
+# work for someone, please submit a bug with the details.
-pkgupversion=`echo $pkgversion | cut -d- -f 1`
-pkgupversion2=`perl -e "\"$pkgupversion\" =~ /(.*?)(\d+)\D*$/;"'printf $1 . ($2+1);'`
-
-sed -e s/=KVERS/$linuxversion/g -e s/=KREVS/$kernversion/g -e s/=AVERS/$pkgupversion/g -e s/=2AVERS/$pkgupversion2/g $2
-
-mprefix=`grep Package: $2 | cut -d' ' -f 2 | cut -d= -f 1`
-
-rm -f debian/tmp/usr/share/doc/$mprefix$linuxversion
-
-
-epochversion=`echo $kernversion | sed -n -e 's/^\([0-9]*\):.*/\1/p' -e 's/.*//'`
-kernversion="$pkgversion+`echo $kernversion | sed -e 's/^[0-9]*://'`"
-
-if [ -n "$epochversion" ]; then
- kernversion=$epochversion:$kernversion
+if dpkg --compare-versions "$afs_kvers" ge "2.6.12" ; then
+ afs_image=linux-image
+else
+ afs_image=kernel-image
fi
-echo "$kernversion" > debian/VERSION
-echo "$linuxversion" > debian/KVERS
+
+# Generate the control file from the template.
+
+sed -e "s/=KVERS/${afs_kvers}/g" -e "s/=IMG/${afs_image}/g" \
+ debian/control.module > debian/control
+
+# Now, calcuate the binary package version. Extract the epoch from the kernel
+# package revision and add it to the beginning of the binary package version
+# if present. Then, concatenate the source version, '+', and the kernel
+# package revision without the epoch.
+
+afs_version=`head -1 debian/changelog | sed -e 's/.*(\([^)]*\)).*/\1/'`
+afs_epoch=`echo ${afs_kdrev} | sed -n -e 's/^\([0-9]*\):.*/\1/p'`
+afs_version="${afs_version}+`echo ${afs_kdrev} | sed -e 's/^[0-9]*://'`"
+if [ -n "$afs_epoch" ] ; then
+ afs_version="${afs_epoch}:${afs_version}"
+fi
+
+echo "$afs_version" > debian/VERSION
diff --git a/src/packaging/Debian/pt_util.sgml b/src/packaging/Debian/pt_util.sgml
index 9d93e91e16..bdd4e1bfc9 100644
--- a/src/packaging/Debian/pt_util.sgml
+++ b/src/packaging/Debian/pt_util.sgml
@@ -182,4 +182,3 @@ sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
--->
diff --git a/src/packaging/Debian/rules b/src/packaging/Debian/rules
index 1fcc19f408..4de077501b 100755
--- a/src/packaging/Debian/rules
+++ b/src/packaging/Debian/rules
@@ -9,268 +9,273 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
-# This is the debhelper compatability version to use.
-export DH_COMPAT=2
-
# This has to be exported to make some magic below work.
export DH_OPTIONS
-# The AFS sysname is determined by a script
-KVERS=`awk '{ if (NR==1) v=$$3; else if (NR==2) p=$$3; else if (NR==3) s=$$3; \
- else if (NR==4) { e=$$3; exit; } } \
- END { printf("%s.%s.%s%s\n",v,p,s,e); }' $(KSRC)/Makefile`
-SYS_NAME=$(shell KVERS=$(KVERS) sh debian/sysname)
-package=openafs
-srcpkg = openafs-modules-source
-modulepkg=$(shell echo openafs-modules-$(KVERS)${INT_SUBARCH})
-ifndef KSRC
-KSRC=/usr/src/linux
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ DEBIAN_OPT_FLAGS = --disable-optimize --disable-lwp-optimize
+ DEBIAN_KERN_FLAGS = --disable-kernel-optimize
+else
+ DEBIAN_OPT_FLAGS =
+ DEBIAN_KERN_FLAGS =
endif
-MODDIR=..
-LINTIAN_PACKAGES= openafs-client openafs-fileserver
+
+ifndef KSRC
+ KSRC = /usr/src/linux
+endif
+ifndef KPKG_DEST_DIR
+ KPKG_DEST_DIR = ..
+endif
+KVERS := $(shell perl debian/kernel-version $(KSRC))
export KSRC
export KVERS
+export KPKG_DEST_DIR
+SYS_NAME := $(shell KSRC="$(KSRC)" KVERS="$(KVERS)" sh debian/sysname)
+
+package = openafs
+srcpkg = openafs-modules-source
+modulepkg := openafs-modules-$(KVERS)${INT_SUBARCH}
+moduledir := debian/$(modulepkg)/lib/modules/$(KVERS)/fs
+
+# These packages have lintian overrides.
+LINTIAN_PACKAGES = openafs-dbserver openafs-client openafs-fileserver
+
+# The /usr/share/doc directory for these packages should be a symlink to
+# /usr/share/doc/openafs-client. Any package on this list must depend on
+# openafs-client.
+DOC_PACKAGES = libpam-openafs-kaserver openafs-dbserver openafs-fileserver \
+ openafs-kpasswd
+
+# These variable is used only by get-orig-source, which will normally only be
+# run by maintainers.
+VERSION = 1.4.0
+UPSTREAM = /afs/grand.central.org/software/openafs/$(VERSION)
+
+# Download the upstream source and do the repackaging that we have to do for
+# DFSG reasons. This assumes AFS is mounted, as it's generally only used by
+# the package maintainers.
+get-orig-source:
+ cp $(UPSTREAM)/openafs-$(VERSION)-src.tar.bz2 .
+ tar xjf openafs-$(VERSION)-src.tar.bz2
+ rm openafs-$(VERSION)-src.tar.bz2
+ rm -r openafs-$(VERSION)/src/packaging/MacOS
+ rm -r openafs-$(VERSION)/src/WINNT
+ tar cf openafs_$(VERSION).orig.tar openafs-$(VERSION)
+ rm -r openafs-$(VERSION)
+ gzip -9 openafs_$(VERSION).orig.tar
configure: configure-stamp
configure-stamp:
+ @if test x"$(SYS_NAME)" = x"UNKNOWN" ; then exit 1 ; fi
dh_testdir
- -ln -s @sys/dest dest
- -ln -s $(SYS_NAME) @sys
-# sh regen.sh
- afslogsdir=/var/log/openafs sh configure --with-afs-sysname=$(SYS_NAME) --disable-kernel-module \
- --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
- --localstatedir=/var/lib
- install -d $(SYS_NAME)/dest/root.client/usr/vice/etc
- install -d dest/root.server/usr/afs/bin
-
+ afslogsdir=/var/log/openafs afslocaldir=/etc/openafs/server-local \
+ sh configure \
+ --with-afs-sysname=$(SYS_NAME) --disable-kernel-module \
+ --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var/lib --enable-supergroups \
+ --enable-largefile-fileserver --enable-debug --enable-lwp-debug \
+ $(DEBIAN_OPT_FLAGS)
+ chmod a+x src/libafs/make_kbuild_makefile.pl
touch configure-stamp
build: configure-stamp build-stamp
build-stamp:
dh_testdir
-
- $(MAKE) dest
- -rm $(SYS_NAME)/dest/include/crypt.h
+ mkdir -p $(CURDIR)/debian/tmp
+ $(MAKE) install_nolibafs DESTDIR=$(CURDIR)/debian/tmp
+ chmod +x debian/afs-rootvol debian/afs-newcell debian/doc/build-man
+ cd debian/doc && ./build-man
touch build-stamp
clean:
dh_testdir
dh_testroot
- rm -f build-stamp configure-stamp build-modules-stamp
- # Add here commands to clean up after the build process.
- -$(MAKE) -ki distclean
- -rm -rf obj dest $(SYS_NAME) @sys Makefile debian/openafs-client.init
- -rm -rf config.status config.cache lib include
+ rm -f build-stamp configure-stamp
+ rm -f build-modules-stamp configure-modules-stamp
+ifeq (Makefile,$(wildcard Makefile))
+ $(MAKE) distclean
+endif
+ rm -rf debian/doc/man1 debian/doc/man5 debian/doc/man8
dh_clean
install: DH_OPTIONS=
install: build
dh_testdir
dh_testroot
- dh_clean -k
dh_installdirs
- mkdir -p debian/openafs-dbserver/usr/share/man/man8
- /usr/bin/docbook-to-man debian/pt_util.sgml >debian/openafs-dbserver/usr/share/man/man8/pt_util.8
- for foo in $(LINTIAN_PACKAGES) ; do \
- install -d debian/$$foo/usr/share/lintian/overrides; \
- cp debian/$$foo.lintian debian/$$foo/usr/share/lintian/overrides/$$foo; \
- done
- for pkg in openafs-dbserver openafs-fileserver openafs-kpasswd; do \
- ln -s openafs-client debian/$$pkg/usr/share/doc/$$pkg; \
- done
- # Add here commands to install the package into debian/tmp.
- cat debian/filelist |sh debian/movefiles
- mv debian/openafs-client/usr/bin/pagsh \
- debian/openafs-client/usr/bin/pagsh.openafs
+ dh_install
- cp debian/CellServDB debian/openafs-client/usr/share/openafs
- cp dest/root.client/usr/vice/etc/afs.rc debian/openafs-client.init
- cp dest/root.client/usr/vice/etc/afs.conf debian/openafs-client/etc/openafs/afs.conf
- install -m 755 -o root -g root debian/afs-rootvol debian/openafs-dbserver/usr/sbin
- install -g root -o root -m 755 debian/afs-newcell \
- debian/openafs-dbserver/usr/sbin
- install -D -m 644 debian/ConfigUtils.pm \
- debian/openafs-dbserver/usr/lib/perl5/Debian/OpenAFS/ConfigUtils.pm
- (cd debian&&pod2man --section 8 --center "Debian GNU/Linux" \
- afs-rootvol ) >debian/openafs-dbserver/usr/share/man/man8/afs-rootvol.8
- (cd debian&&pod2man --section 8 --center "Debian GNU/Linux" \
- afs-newcell ) >debian/openafs-dbserver/usr/share/man/man8/afs-newcell.8
- # No, includes should not have the x bit set
- find debian/libopenafs-dev/usr/include -type f -print | \
- xargs chmod a-x
- # And drop the pam modules
- rm debian/libopenafs-dev/usr/lib/*pam*
+ set -e; for pkg in $(LINTIAN_PACKAGES) ; do \
+ install -d debian/$$pkg/usr/share/lintian/overrides; \
+ install -m 644 -c debian/$$pkg.lintian \
+ debian/$$pkg/usr/share/lintian/overrides/$$pkg; \
+ done
+ set -e; for pkg in $(DOC_PACKAGES) ; do \
+ ln -s openafs-client debian/$$pkg/usr/share/doc/$$pkg; \
+ done
-# Build architecture-independent files here.
-# Pass -i to all debhelper commands in this target to reduce clutter.
+ mv debian/openafs-client/usr/bin/pagsh \
+ debian/openafs-client/usr/bin/pagsh.openafs
+ mv debian/openafs-client/usr/share/man/man1/pagsh.1 \
+ debian/openafs-client/usr/share/man/man1/pagsh.openafs.1
+ mv debian/openafs-client/usr/bin/up \
+ debian/openafs-client/usr/bin/afs-up
+ mv debian/openafs-client/usr/share/man/man1/up.1 \
+ debian/openafs-client/usr/share/man/man1/afs-up.1
+
+ install -m 644 -c debian/tmp/usr/lib/pam_afs.so.1 \
+ debian/libpam-openafs-kaserver/lib/security/pam_afs.so
+ install -m 644 -c debian/tmp/usr/lib/pam_afs.krb.so.1 \
+ debian/libpam-openafs-kaserver/lib/security/pam_afs.krb.so
+
+ install -d debian/openafs-dbserver/usr/share/man/man8
+ /usr/bin/docbook-to-man debian/pt_util.sgml \
+ >debian/openafs-dbserver/usr/share/man/man8/pt_util.8
+ ( cd debian && pod2man --section 8 --center "Debian GNU/Linux" \
+ afs-rootvol ) \
+ >debian/openafs-dbserver/usr/share/man/man8/afs-rootvol.8
+ ( cd debian && pod2man --section 8 --center "Debian GNU/Linux" \
+ afs-newcell ) \
+ >debian/openafs-dbserver/usr/share/man/man8/afs-newcell.8
+
+# Build architecture-independent files here. Pass -i to all debhelper
+# commands in this target to reduce clutter.
binary-indep: DH_OPTIONS=-i
binary-indep: build install binary-source
- # Need this version of debhelper for DH_OPTIONS to work.
- dh_testversion 1.1.17
dh_testdir
dh_testroot
-# dh_installdebconf
+ dh_installchangelogs NEWS
dh_installdocs
- dh_installexamples
- dh_installmenu
-# dh_installemacsen
-# dh_installpam
-# dh_installinit
- dh_installcron
-# dh_installmanpages
- dh_installinfo
- dh_undocumented
- dh_installchangelogs ChangeLog
dh_link
dh_compress
dh_fixperms
- # You may want to make some executables suid here.
- dh_suidregister
dh_installdeb
-# dh_perl
dh_gencontrol
dh_md5sums
dh_builddeb
-# Build architecture-dependent files here.
-# Pass -a to all debhelper commands in this target to reduce clutter.
+# Build architecture-dependent files here. Pass -a to all debhelper commands
+# in this target to reduce clutter.
binary-arch: DH_OPTIONS=-a
binary-arch: build install
- # Need this version of debhelper for DH_OPTIONS to work.
- dh_testversion 1.1.17
dh_testdir
dh_testroot
- dh_installdebconf
+ dh_installchangelogs NEWS
dh_installdocs
- dh_installexamples
- dh_installmenu
-# dh_installemacsen
-# dh_installpam
+ dh_installdebconf
DH_OPTIONS= dh_installinit -popenafs-client -r -- defaults 25 18
DH_OPTIONS= dh_installinit -popenafs-fileserver -r
- dh_installcron
-# dh_installmanpages
- dh_installinfo
- dh_undocumented
- dh_installchangelogs ChangeLog
- dh_strip
dh_link
+ dh_strip
dh_compress
dh_fixperms
- # You may want to make some executables suid here.
chmod 700 debian/openafs-client/var/cache/openafs
- chmod 700 debian/openafs-fileserver/etc/openafs/server
chmod 700 debian/openafs-dbserver/var/lib/openafs/db
+ chmod 700 debian/openafs-fileserver/etc/openafs/server
chmod 700 debian/openafs-fileserver/var/lib/openafs/cores
- dh_suidregister
+ dh_perl
dh_installdeb
-# dh_makeshlibs
-# dh_perl
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
+binary: binary-indep binary-arch
-############################Module package support
-kdist_image: build-modules
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. binary-modules
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. clean
+##################### Building openafs-modules-source ######################
-kdist: build-modules
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. KERNEL_DEPENDS=y binary-modules
- KSRC="$(KSRC)" KMAINT="$(KMAINT)" KEMAIL="$(KEMAIL)" \
- sh -v debian/genchanges.sh
- $(MAKE) $(MFLAGS) -f debian/rules MODDIR=$(KSRC)/.. clean
-
-
-
-kdist_config: configure
-
-kdist_clean: clean
-
-############################ source stuff #################################
binary-source:
-# Perform some tests
- test -f debian/rules
- test `id -u` = "0"
-
-
-# Setup everything first
+ dh_testdir
+ dh_testroot
-rm -rf debian/$(srcpkg) debian/substvars
- install -d debian/$(srcpkg)
-# Clean up the sources
install -d debian/$(srcpkg)/usr/src/modules/$(package)
- find . \( -name \*.o -o -path ./debian/$(srcpkg) -o -path \*/CVS -o -path ./src/WINNT \
- -o -path ./obj -o -path ./$(SYS_NAME) \
- -o \( -path ./debian/\* -type d \) \
- -o -path ./debian/\*debhelper \) -prune -o -print | \
- cpio -admp debian/$(srcpkg)/usr/src/modules/$(package)
- ( cd debian/$(srcpkg)/usr/src/modules/$(package)&& \
- $(MAKE) -f debian/rules clean && \
- rm -rf src/libafs/rx src/libafs/afs src/libafs/afsint; \
- mv debian/kern-sysname debian/sysname)
- chown -R root.root debian/$(srcpkg)
+ find . \( -name \*.o -o -path ./debian/$(srcpkg) -o -path \*/CVS \
+ -o -path \*/.svn -o -path ./src/WINNT \
+ -o -path ./obj -o -path ./$(SYS_NAME) \
+ -o \( -path ./debian/\* -type d \) \
+ -o -path ./debian/\*debhelper \) -prune -o -print | \
+ cpio -admp debian/$(srcpkg)/usr/src/modules/$(package)
+ cd debian/$(srcpkg)/usr/src/modules/$(package) && \
+ $(MAKE) -f debian/rules clean && \
+ mv debian/kern-sysname debian/sysname
+ -cd debian/$(srcpkg)/usr/src/modules/$(package) && \
+ rm -rf src/libafs/rx src/libafs/afs src/libafs/afsint
+ chown -R root.src debian/$(srcpkg)
find debian/$(srcpkg) -type d | xargs chmod 755
find debian/$(srcpkg) -type f -perm -100 | xargs chmod 755
find debian/$(srcpkg) -type f -not -perm -100 | xargs chmod 644
+ chmod 775 debian/$(srcpkg)/usr/src/modules
cd debian/$(srcpkg)/usr/src && \
- tar cf $(package).tar modules && \
- $(RM) -r modules/$(package)
+ tar cf $(package).tar modules && \
+ rm -r modules
gzip -9 debian/$(srcpkg)/usr/src/$(package).tar
chmod 644 debian/$(srcpkg)/usr/src/$(package).tar.gz
-############################ modules stuff #################################
+
+#################### Module package support (make-kpkg) ####################
+
+kdist_configure: configure-modules-stamp
+
+kdist_image: build-modules-stamp
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules binary-modules
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules clean
+
+kdist: build-modules-stamp
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules binary-modules
+ KSRC="$(KSRC)" KMAINT="$(KMAINT)" KEMAIL="$(KEMAIL)" \
+ sh -v debian/genchanges.sh
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules clean
+
+kdist_clean:
+ $(ROOT_CMD) $(MAKE) $(MFLAGS) -f debian/rules clean
+
+######################## Kernel module build rules #########################
+
+configure-modules: configure-modules-stamp
+configure-modules-stamp:
+ @if test x"$(SYS_NAME)" = x"UNKNOWN" ; then exit 1 ; fi
+ @if test x"$(KVERS)" = x ; then \
+ echo 'No version in $(KSRC)/include/linux/version.h' >&2 ; \
+ exit 1 ; \
+ fi
+ sh debian/prep-modules $(KSRC)
+ sh configure --with-afs-sysname=$(SYS_NAME) \
+ --with-linux-kernel-headers=$(KSRC) --prefix=`pwd`/debian/tmp \
+ --enable-debug --enable-lwp-debug --enable-kernel-debug \
+ $(DEBIAN_OPT_FLAGS) $(DEBIAN_KERN_FLAGS)
+ touch configure-modules-stamp
build-modules: build-modules-stamp
-
-build-modules-stamp:
- -ln -s @sys/dest dest
- -ln -s $(SYS_NAME) @sys
- sh configure --with-afs-sysname=$(SYS_NAME) --with-linux-kernel-headers=$(KSRC)
- make dest_only_libafs
+build-modules-stamp: configure-modules-stamp
+ make only_libafs
touch build-modules-stamp
-binary-modules: build-modules
-# Perform some tests
- test -f debian/rules
- test `id -u` = "0"
+install-modules: build-modules-stamp
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ cd src/libafs && make install
+ install -d -g root -o root -m 755 $(moduledir)
+ install -g root -o root -m 755 debian/tmp/lib/openafs/*o $(moduledir)/
+ if test -f $(moduledir)/openafs.o \
+ -a ! -f $(moduledir)/openafs.mp.o ; then \
+ ln $(moduledir)/openafs.o $(moduledir)/openafs.mp.o || exit 1 ; \
+ fi
-# Setup everything first
- -rm -rf debian/$(modulepkg) debian/substvars
- install -d debian/$(modulepkg)
+binary-modules: install-modules
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs NEWS
+ dh_installdocs
+ dh_installmodules
+ dh_strip
+ dh_link
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol -- -v`cat debian/VERSION`
+ dh_md5sums
+ dh_builddeb --destdir="$(KPKG_DEST_DIR)"
-# Install the software
- install -d -g root -o root -m 755 debian/$(modulepkg)/lib/modules/$(KVERS)/fs
- install -g root -o root -m 755 dest/root.client/usr/vice/etc/modload/*.o \
- debian/$(modulepkg)/lib/modules/$(KVERS)/fs
-# Fix some stuff up
- install -d -o root -g root -m 755 debian/$(modulepkg)/usr/share/doc
- ln -s openafs-client debian/$(modulepkg)/usr/share/doc/$(modulepkg)
- rm -rf debian/$(modulepkg)/usr/include
-ifeq ($(KERNEL_DEPENDS),y)
- sh debian/prep-modules $(KSRC) debian/control.module > debian/control
-else
- sh debian/prep-modules $(KSRC) debian/control.module-image > debian/control
-endif
-
-# Install control files
- install -d -o root -g root -m 755 debian/$(modulepkg)/DEBIAN
- install -p -o root -g root -m 755 debian/prerm.mod \
- debian/$(modulepkg)/DEBIAN/prerm
- install -p -o root -g root -m 755 debian/postinst.mod \
- debian/$(modulepkg)/DEBIAN/postinst
-
-# And now.. for the final packaging!
- find debian/$(modulepkg) -type f | grep -v "./DEBIAN" | xargs md5sum | \
- sed -e 's#debian/$(modulepkg)/##' > debian/$(modulepkg)/DEBIAN/md5sums
-
- dpkg-gencontrol -isp \
- -p$(modulepkg) \
- -v`cat debian/VERSION` \
- -Pdebian/$(modulepkg)
- chown -R root.root debian/$(modulepkg)
- chmod -R go=rX debian/$(modulepkg)
- dpkg --build debian/$(modulepkg) $(MODDIR)
+.PHONY: build clean binary-indep binary-arch binary install configure
+.PHONY: kdist_configure kdist_image kdist kdist_clean binary-source
diff --git a/src/packaging/Debian/sysname b/src/packaging/Debian/sysname
index 6d3c9d1a3b..b47488d10d 100755
--- a/src/packaging/Debian/sysname
+++ b/src/packaging/Debian/sysname
@@ -1,28 +1,40 @@
#!/bin/sh
-case `arch` in
- alpha)
- echo alpha_linux_22
- ;;
-i[3456]86)
- echo i386_linux22
-;;
- ia64)
- echo ia64_linux24
-;;
- parisc*)
- echo parisc_linux24
- ;;
- ppc)
- echo ppc_linux22
- ;;
- sparc|sparc64)
- echo sparc_linux22
- ;;
- s390)
- echo s390_linux22
- ;;
- *)
- echo ERROr: sysname not yet known
- exit 1
+# Maps Debian architectures to AFS sysnames for building the clients and
+# libraries. This doesn't worry about the kernel version; kern-sysname
+# does that when building the kernel module.
+#
+# Not all architectures are listed, only those that OpenAFS supports.
+case `dpkg --print-installation-architecture` in
+alpha)
+ echo alpha_linux_24
+ ;;
+amd64)
+ echo amd64_linux24
+ ;;
+hppa)
+ echo parisc_linux24
+ ;;
+i[3456]86)
+ echo i386_linux24
+ ;;
+ia64)
+ echo ia64_linux24
+ ;;
+powerpc)
+ echo ppc_linux24
+ ;;
+ppc64)
+ echo ppc64_linux24
+ ;;
+s390)
+ echo s390_linux24
+ ;;
+sparc|sparc64)
+ echo sparc_linux24
+ ;;
+*)
+ echo "ERROR: unsupported architecture" >&2
+ echo UNKNOWN
+ exit 1
esac
| | | |