From: Michael Vogt Date: Thu, 23 Jul 2009 08:41:38 +0000 (+0200) Subject: [ABI] merged the libudev-dlopen branch, this allows to pass X-Git-Tag: 0.7.22~6 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/3e2d7cce4febc923d4b9bcb363717dd161cbb856?hp=-c [ABI] merged the libudev-dlopen branch, this allows to pass "apt-udev-auto" to Acquire::Cdrom::mount and the cdrom method will dynamically find/mount the cdrom device (if libhal is available) --- 3e2d7cce4febc923d4b9bcb363717dd161cbb856 diff --combined apt-pkg/cdrom.cc index 8796805bb,8be26e2bc..72d8e4d41 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@@ -16,7 -16,7 +16,7 @@@ #include #include #include - + #include #include "indexcopy.h" @@@ -160,7 -160,7 +160,7 @@@ bool pkgCdrom::FindPackages(string CD return !_error->PendingError(); } - + /*}}}*/ // Score - We compute a 'score' for a path /*{{{*/ // --------------------------------------------------------------------- /* Paths are scored based on how close they come to what I consider @@@ -210,6 -210,7 +210,6 @@@ int pkgCdrom::Score(string Path return Res; } - /*}}}*/ // DropBinaryArch - Dump dirs with a string like /binary-/ /*{{{*/ // --------------------------------------------------------------------- @@@ -247,7 -248,8 +247,7 @@@ bool pkgCdrom::DropBinaryArch(vector -pkgUdevCdromDevices::Scan() ++pkgUdevCdromDevices::Scan() /*{{{*/ + { + vector cdrom_devices; + struct udev_enumerate *enumerate; + struct udev_list_entry *l, *devices; + struct udev *udev_ctx; + + if(libudev_handle == NULL) + return cdrom_devices; + + udev_ctx = udev_new(); + enumerate = udev_enumerate_new (udev_ctx); + udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1"); + + udev_enumerate_scan_devices (enumerate); + devices = udev_enumerate_get_list_entry (enumerate); + for (l = devices; l != NULL; l = udev_list_entry_get_next (l)) + { + CdromDevice cdrom; + struct udev_device *udevice; + udevice = udev_device_new_from_syspath (udev_enumerate_get_udev (enumerate), udev_list_entry_get_name (l)); + if (udevice == NULL) + continue; + const char* devnode = udev_device_get_devnode(udevice); + const char* mountpath = udev_device_get_property_value(udevice, "FSTAB_DIR"); + + // fill in the struct + cdrom.DeviceName = string(devnode); + if (mountpath) { + cdrom.MountPath = mountpath; + string s = string(mountpath); + cdrom.Mounted = IsMounted(s); + } else { + cdrom.Mounted = false; + cdrom.MountPath = ""; + } + cdrom_devices.push_back(cdrom); + } + return cdrom_devices; + } ++ /*}}}*/ + - -pkgUdevCdromDevices::~pkgUdevCdromDevices() ++pkgUdevCdromDevices::~pkgUdevCdromDevices() /*{{{*/ + { + dlclose(libudev_handle); + } ++ /*}}}*/ diff --combined apt-pkg/cdrom.h index 608cb0e2f,13e7203f4..14ca1d810 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@@ -8,7 -8,7 +8,7 @@@ using namespace std; -class pkgCdromStatus +class pkgCdromStatus /*{{{*/ { protected: int totalSteps; @@@ -29,8 -29,8 +29,8 @@@ // Progress indicator for the Index rewriter virtual OpProgress* GetOpProgress() {return NULL; }; }; - -class pkgCdrom + /*}}}*/ +class pkgCdrom /*{{{*/ { protected: enum { @@@ -65,6 -65,43 +65,43 @@@ bool Ident(string &ident, pkgCdromStatus *log); bool Add(pkgCdromStatus *log); }; + /*}}}*/ + + // class that uses libudev to find cdrom devices dynamically -struct CdromDevice ++struct CdromDevice /*{{{*/ + { + string DeviceName; + bool Mounted; + string MountPath; + }; - -class pkgUdevCdromDevices ++ /*}}}*/ ++class pkgUdevCdromDevices /*{{{*/ + { + protected: + // libudev dlopen stucture + void *libudev_handle; + struct udev* (*udev_new)(void); + int (*udev_enumerate_add_match_property)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); + int (*udev_enumerate_scan_devices)(struct udev_enumerate *udev_enumerate); + struct udev_list_entry* (*udev_enumerate_get_list_entry)(struct udev_enumerate *udev_enumerate); + struct udev_device* (*udev_device_new_from_syspath)(struct udev *udev, const char *syspath); + struct udev* (*udev_enumerate_get_udev)(struct udev_enumerate *udev_enumerate); + const char* (*udev_list_entry_get_name)(struct udev_list_entry *list_entry); + const char* (*udev_device_get_devnode)(struct udev_device *udev_device); + struct udev_enumerate *(*udev_enumerate_new) (struct udev *udev); + struct udev_list_entry *(*udev_list_entry_get_next)(struct udev_list_entry *list_entry); + const char* (*udev_device_get_property_value)(struct udev_device *udev_device, const char *key); + // end libudev dlopen + + public: + pkgUdevCdromDevices(); + virtual ~pkgUdevCdromDevices(); + + // try to open + bool Dlopen(); + vector Scan(); + }; - - ++ /*}}}*/ + #endif diff --combined apt-pkg/makefile index 059f8532b,387151baf..92ef58967 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@@ -13,9 -13,9 +13,9 @@@ include ../buildlib/defaults.ma # methods/makefile - FIXME LIBRARY=apt-pkg LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER) -MAJOR=4.7 +MAJOR=4.8 MINOR=0 - SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil + SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl APT_DOMAIN:=libapt-pkg$(MAJOR) # Source code for the contributed non-core things diff --combined debian/changelog index ff1483dfc,cce7fc0f7..30edf0757 --- a/debian/changelog +++ b/debian/changelog @@@ -1,54 -1,22 +1,54 @@@ -apt (0.7.22) unstable; urgency=low +apt (0.7.22) UNRELEASED; urgency=low - * add Acquire::Cdrom::mount "apt-udev-auto" magic to allow - dynamically finding the cdrom device - - -- Michael Vogt Wed, 22 Jul 2009 18:00:53 +0200 - -apt (0.7.21) UNRELEASED; urgency=low - - [ Osamu Aoki ] - * Updated cron script to support backups by hardlinks and - verbose levels. All features turned off by default. - * Added more error handlings. Closes: #438803, #462734, #454989, - * Refactored condition structure to make download and upgrade performed - if only previous steps succeeded. Closes: #341970 - * Documented all cron script related configuration items in - configure-index. + The 'not dead yet' release + + [ Christian Perrier ] + * Documentation translations: + - Fix a typo in apt-get(8) French translation. Closes: #525043 + Thanks to Guillaume Delacour for spotting it. + - Updated apt.conf(5) manpgae French translation. + Thanks to Aurélien Couderc. + * Translations: + - fr.po + - sk.po. Closes: #525857 + - ru.po. Closes: #526816 + - eu.po. Closes: #528985 + - zh_CN.po. Closes: #531390 + - fr.po + - it.po. Closes: #531758 + - ca.po. Closes: #531921 + - de.po. Closes: #536430 + * Added translations + - ast.po (Asturian by Marcos Alvareez Costales). + Closes: #529007, #529730, #535328 + + [ David Kalnischkies ] + * [ABI break] support '#' in apt.conf and /etc/apt/preferences + (closes: #189866) + * [ABI break] Allow pinning by codename (closes: #97564) + * support running "--simulate" as user + * add depth information to the debug output and show what depends + type triggers a autoinst (closes: #458389) + * add Debug::pkgDepCache::Marker with more detailed debug output + (closes: #87520) + * add Debug::pkgProblemResolver::ShowScores and make the scores + adjustable + * do not write state file in simulate mode (closes: #433007) + * add hook for MarkInstall and MarkDelete (closes: #470035) + * fix typo in apt-pkg/acquire.cc which prevents Dl-Limit to work + correctly when downloading from multiple sites (Closes: #534752) + * add the various foldmarkers in apt-pkg & cmdline (no code change) + * versions with a pin of -1 shouldn't be a candidate (Closes: #355237) + * prefer mmap as memory allocator in MMap instead of a static char + array which can (at least in theory) grow dynamic + * eliminate (hopefully all) segfaults in pkgcachegen.cc and mmap.cc + which can arise if cache doesn't fit into the mmap (Closes: #535218) + * display warnings instead of errors if the parts dirs doesn't exist [ Michael Vogt ] + * honor the dpkg hold state in new Marker hooks (closes: #64141) + * debian/apt.cron.daily: + - if the timestamp is too far in the future, delete it * apt-pkg/acquire.cc: - make the max pipeline depth of the acquire queue configurable via Acquire::Max-Pipeline-Depth @@@ -56,8 -24,6 +56,8 @@@ - add Dpkg::UseIoNice boolean option to run dpkg with ionice -c3 (off by default) - send "dpkg-exec" message on the status fd when dpkg is run + - provide DPkg::Chroot-Directory config option (useful for testing) + - fix potential hang when in a backgroud process group * apt-pkg/algorithms.cc: - consider recommends when making the scores for the problem resolver @@@ -68,124 -34,67 +68,127 @@@ * methods/http.cc: - ignore SIGPIPE, we deal with EPIPE from write in HttpMethod::ServerDie() (LP: #385144) - - -- Michael Vogt Thu, 28 May 2009 17:51:42 +0200 - - [ Michael Vogt ] + * Only run Download-Upgradable and Unattended-Upgrades if the initial + update was successful Closes: #341970 * apt-pkg/indexcopy.cc: - support having CDs with no Packages file (just a Packages.gz) by not forcing a verification on non-existing files (LP: #255545) - remove the gettext from a string that consists entirely of variables (LP: #56792) - * doc/makefile: - - add examples/apt-https-method-example.conf * apt-pkg/cacheiterators.h: - add missing checks for Owner == 0 in end() - * apt-pkg/deb/dpkgpm.cc: - - fix potential hang when in a backgroud process group * apt-pkg/indexrecords.cc: - fix some i18n issues * apt-pkg/contrib/strutl.h: - add new strprintf() function to make i18n strings easier - * methods/gpgv.cc: - fix compiler warning - * cmdline/apt-get.cc: - - fix "apt-get source pkg=ver" if binary name != source name - and show a message (LP: #202219) - - fix "apt-get source pkg" if there is a binary package and - a source package of the same name but from different - packages (LP: #330103) * apt-pkg/deb/debsystem.cc: - make strings i18n able - * apt-pkg/contrib/strutl.cc: - - fix TimeToStr i18n (LP: #289807) - * [ABI break] merge support for http redirects, thanks to - Jeff Licquia and Anthony Towns - * [ABI break] use int for the package IDs (thanks to Steve Cotton) - * apt-pkg/pkgcache.cc: - - do not run "dpkg --configure pkg" if pkg is in trigger-awaited - state (LP: #322955) - * methods/https.cc: - - add Acquire::https::AllowRedirect support - * methods/gpgv.cc: - - properly check for expired and revoked keys (closes: #433091) * fix problematic use of tolower() when calculating the version hash by using locale independant tolower_ascii() function. Thanks to M. Vefa Bicakci (LP: #80248) * build fixes for g++-4.4 * cmdline/apt-mark: - add "showauto" option to show automatically installed packages + * document --install-recommends and --no-install-recommends + (thanks to Dereck Wonnacott, LP: #126180) + * doc/apt.conf.5.xml: + - merged patch from Aurélien Couderc to improve the text + (thanks!) ++ * [ABI] merged the libudev-dlopen branch, this allows to pass ++ "apt-udev-auto" to Acquire::Cdrom::mount and the cdrom method will ++ dynamically find/mount the cdrom device (if libhal is available) + + [ Julian Andres Klode ] + * apt-pkg/contrib/configuration.cc: Fix a small memory leak in + ReadConfigFile. + * Introduce support for the Enhances field. (Closes: #137583) + * Support /etc/apt/preferences.d, by adding ReadPinDir() (Closes: #535512) + * configure-index: document Dir::Etc::SourceParts and some other options + (Closes: #459605) + * Remove Eugene V. Lyubimkin from uploaders as requested. + * apt-pkg/contrib/hashes.cc, apt-pkg/contrib/md5.cc: + - Support reading until EOF if Size=0 to match behaviour of + SHA1Summation and SHA256Summation + + [ Osamu Aoki ] + * Updated cron script to support backups by hardlinks and + verbose levels. All features turned off by default. + * Added more error handlings. Closes: #438803, #462734, #454989, + * Documented all cron script related configuration items in + configure-index. [ Dereck Wonnacott ] * apt-ftparchive might write corrupt Release files (LP: #46439) * Apply --important option to apt-cache depends (LP: #16947) - * Clarify the --help for 'purge' (LP: #243948) + -- Julian Andres Klode Fri, 03 Jul 2009 08:27:35 +0200 + +apt (0.7.21) unstable; urgency=low + + [ Christian Perrier ] + * Translations: + - bg.po. Closes: #513211 + - zh_TW.po. Closes: #513311 + - nb.po. Closes: #513843 + - fr.po. Closes: #520430 + - sv.po. Closes: #518070 + - sk.po. Closes: #520403 + - it.po. Closes: #522222 + - sk.po. Closes: #520403 + + [ Jamie Strandboge ] + * apt.cron.daily: catch invalid dates due to DST time changes + in the stamp files + + [ Michael Vogt ] + * methods/gpgv.cc: + - properly check for expired and revoked keys (closes: #433091) + * apt-pkg/contrib/strutl.cc: + - fix TimeToStr i18n (LP: #289807) + * [ABI break] merge support for http redirects, thanks to + Jeff Licquia and Anthony Towns + * [ABI break] use int for the package IDs (thanks to Steve Cotton) + * apt-pkg/pkgcache.cc: + - do not run "dpkg --configure pkg" if pkg is in trigger-awaited + state (LP: #322955) + * methods/https.cc: + - add Acquire::https::AllowRedirect support + * Clarify the --help for 'purge' (LP: #243948) + * cmdline/apt-get.cc + - fix "apt-get source pkg" if there is a binary package and + a source package of the same name but from different + packages (LP: #330103) [ Colin Watson ] * cmdline/acqprogress.cc: - Call pkgAcquireStatus::Pulse even if quiet, so that we still get dlstatus messages on the status-fd (LP: #290234). - -- Michael Vogt Fri, 12 Sep 2008 11:34:24 +0200 + -- Michael Vogt Tue, 14 Apr 2009 14:12:51 +0200 + +apt (0.7.20.2) unstable; urgency=medium + + [ Eugene V. Lyubimkin ] + * Urgency set to medium due to RC bug fix. + * doc/apt.ent, apt-get.8.xml: + - Fix invalid XML entities. (Closes: #514402) + + -- Eugene V. Lyubimkin Sat, 07 Feb 2009 16:48:21 +0200 + +apt (0.7.20.1) unstable; urgency=low + + [ Michael Vogt ] + * apt-pkg/pkgcachegen.cc: + - fix apt-cache search for localized description + (closes: #512110) + + [ Christian Perrier ] + * Translations: + - fr.po: fix spelling error to "défectueux". Thanks to Thomas Péteul. + + -- Michael Vogt Tue, 20 Jan 2009 09:35:05 +0100 apt (0.7.20) unstable; urgency=low @@@ -201,37 -110,35 +204,37 @@@ (Closes: #457265) - Mentioned 'APT::Periodic' and 'APT::Archives' groups of options. (Closes: #438559) - - [ Michael Vogt ] - * apt-pkg/depcache.cc: - - when checking for new important deps, skip critical ones - (LP: #236360) - * document --install-recommends and --no-install-recommends - (thanks to Dereck Wonnacott, LP: #126180) - * make "apt-get build-dep" installed packages marked automatic - by default. This can be changed by setting the value of - APT::Get::Build-Dep-Automatic to false (thanks to Aaron - Haviland, closes: #44874, LP: #248268) - - -- Eugene V. Lyubimkin Sat, 06 Dec 2008 20:57:00 +0200 - -apt (0.7.20~exp2) unstable; urgency=low - - [ Eugene V. Lyubimkin ] + - Mentioned '/* ... */' comments. (Closes: #507601) * doc/examples/sources.list: - Removed obsolete commented non-us deb-src entry, replaced it with 'deb-src security.debian.org' one. (Closes: #411298) * apt-pkg/contrib/mmap.cc: - Added instruction how to work around MMap error in MMap error message. (Closes: #385674, 436028) + * COPYING: + - Actualized. Removed obsolete Qt section, added GPLv2 clause. + (Closes: #440049, #509337) + + [ Michael Vogt ] + * add option to "apt-get build-dep" to mark the needed + build-dep packages as automatic installed. + This is controlled via the value of + APT::Get::Build-Dep-Automatic and is set "false" by default. + Thanks to Aaron Haviland, closes: #448743 + * apt-inst/contrib/arfile.cc: + - support members ending with '/' as well (thanks to Michal Cihr, + closes: #500988) [ Christian Perrier ] * Translations: + - Finnish updated. Closes: #508449 + - Galician updated. Closes: #509151 + - Catalan updated. Closes: #509375 + - Vietnamese updated. Closes: #509422 + - Traditional Chinese added. Closes: #510664 - French corrected (remove awful use of first person) - -- Michael Vogt Tue, 02 Dec 2008 20:30:14 +0100 + -- Michael Vogt Mon, 05 Jan 2009 08:59:20 +0100 apt (0.7.19) unstable; urgency=low @@@ -249,6 -156,7 +252,6 @@@ is a request to install only one package and it is not installable. (Closes: #419521) - [ Michael Vogt ] - fix SIGHUP handling (closes: #463030) diff --combined methods/makefile index 589f9fa1c,c447b4732..134166ba3 --- a/methods/makefile +++ b/methods/makefile @@@ -7,7 -7,7 +7,7 @@@ include ../buildlib/defaults.ma BIN := $(BIN)/methods # FIXME.. -LIB_APT_PKG_MAJOR = 4.7 +LIB_APT_PKG_MAJOR = 4.8 APT_DOMAIN := libapt-pkg$(LIB_APT_PKG_MAJOR) # The file method @@@ -40,7 -40,7 +40,7 @@@ include $(PROGRAM_H # The cdrom method PROGRAM=cdrom - SLIBS = -lapt-pkg $(INTLLIBS) + SLIBS = -lapt-pkg -ldl $(INTLLIBS) LIB_MAKES = apt-pkg/makefile SOURCE = cdrom.cc include $(PROGRAM_H)