From 1b80fb16c22db72457d7a456ffbf1f70a8dfc0a5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 4 Apr 1996 01:58:40 +0100 Subject: dpkg (1.1.4); priority=MEDIUM * Allow overwriting of conflicting packages being removed. (Bug#2614.) * a.out control file says Pre-Depends: libc4 | libc. (Bug#2640.) * ELF control file and libc dependencies changed to use finalised scheme. * ELF control file and libc dependencies for i386 only. (Bug#2617.) * Guidelines say use only released libraries and compilers. * Install wishlist as /usr/doc/dpkg/WISHLIST. * Remove spurious entries for Guidelines in info dir file. * dpkg-deb --build checks permissions on control (DEBIAN) directory. * Spaces in control file fields not copied by dpkg-split. (Bug#2633.) * Spaces in split file part control data ignore. (Bug#2633.) * Portability fixes, including patch from Richard Kettlewell. * Fixed minor configure.in bug causing mangled GCC -W options. -- Ian Jackson Thu, 4 Apr 1996 01:58:40 +0100 --- main/update.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 main/update.c (limited to 'main/update.c') diff --git a/main/update.c b/main/update.c new file mode 100644 index 000000000..31939373c --- /dev/null +++ b/main/update.c @@ -0,0 +1,75 @@ +/* + * dpkg - main program for package management + * update.c - options which update the `available' database + * + * Copyright (C) 1995 Ian Jackson + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2, + * or (at your option) any later version. + * + * This is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with dpkg; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "dpkg.h" +#include "dpkg-db.h" +#include "myopt.h" + +#include "main.h" + +void availablefrompackages(const char *const *argv, int replace) { + const char *sourcefile= argv[0]; + int count; + static struct varbuf vb; + + if (!sourcefile || argv[1]) + badusage("--%s needs exactly one Packages file argument", cipaction->olong); + + if (!f_noact) { + if (access(admindir,W_OK)) { + if (errno != EACCES) + ohshite("unable to access dpkg status area for bulk available update"); + else + ohshit("bulk available update requires write access to dpkg status area"); + } + lockdatabase(admindir); + } + + if (replace) { + printf("Replacing available packages info, using %s.\n",sourcefile); + } else { + printf("Updating available packages info, using %s.\n",sourcefile); + } + + varbufaddstr(&vb,admindir); + varbufaddstr(&vb,"/" AVAILFILE); + varbufaddc(&vb,0); + + if (!replace) + parsedb(vb.buf, pdb_recordavailable|pdb_rejectstatus, 0,0,0); + + count= parsedb(sourcefile, pdb_recordavailable|pdb_rejectstatus, 0,0,0); + + if (!f_noact) { + writedb(vb.buf,1,0); + unlockdatabase(admindir); + } + + printf("Information about %d package(s) was updated.\n",count); +} -- cgit v1.2.3