ChangeLog | 65 +++++++++++ configure.ac | 2 debian/changelog | 6 - debian/control | 2 debian/xsfbs/xsfbs.mk | 4 debian/xsfbs/xsfbs.sh | 229 ---------------------------------------- libdrm/intel/intel_bufmgr_gem.c | 92 +++++----------- libdrm/intel/intel_chipset.h | 10 + libdrm/radeon/radeon_cs_gem.c | 12 +- libdrm/xf86drmMode.c | 3 10 files changed, 118 insertions(+), 307 deletions(-)
New commits: commit 268376961bf59079077c80cefe1c1cf3728b1800 Author: Julien Cristau <jcris...@debian.org> Date: Thu Sep 24 21:53:25 2009 +0200 Prepare changelog for upload diff --git a/debian/changelog b/debian/changelog index 6c06509..6073662 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,10 @@ -libdrm (2.4.14-1) UNRELEASED; urgency=low +libdrm (2.4.14-1) unstable; urgency=low * Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N. * New upstream release. * Bump Standards-Version to 3.8.3. - -- Julien Cristau <jcris...@debian.org> Sat, 05 Sep 2009 14:14:29 +0200 + -- Julien Cristau <jcris...@debian.org> Thu, 24 Sep 2009 21:53:09 +0200 libdrm (2.4.13-1) unstable; urgency=low commit d3f408c2ef67cd532b9790f0e1adb1b5f06ae1e6 Author: Julien Cristau <jcris...@debian.org> Date: Thu Sep 24 21:52:12 2009 +0200 Bump Standards-Version to 3.8.3. diff --git a/debian/changelog b/debian/changelog index a394c8b..6c06509 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ libdrm (2.4.14-1) UNRELEASED; urgency=low * Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N. * New upstream release. + * Bump Standards-Version to 3.8.3. -- Julien Cristau <jcris...@debian.org> Sat, 05 Sep 2009 14:14:29 +0200 diff --git a/debian/control b/debian/control index b128dbc..adb6f36 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Priority: optional Maintainer: Debian X Strike Force <debian-x@lists.debian.org> Uploaders: Julien Cristau <jcris...@debian.org>, David Nusinow <dnusi...@debian.org>, Brice Goglin <bgog...@debian.org> Build-Depends: debhelper (>= 5.0.0), libx11-dev, dpkg-dev (>= 1.13.19), quilt (>= 0.40), automake, libtool, pkg-config, libpthread-stubs0-dev -Standards-Version: 3.8.1 +Standards-Version: 3.8.3 Section: libs Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libdrm Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libdrm.git commit a474dd48cc59fa71be9859def132e5363297f5e0 Author: Julien Cristau <jcris...@debian.org> Date: Thu Sep 24 21:03:54 2009 +0200 Bump changelogs diff --git a/ChangeLog b/ChangeLog index 9932baa..a8c7b97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,68 @@ +commit ac71f0849928f4b2fbb69c01304ac6f9df8916a1 +Author: Eric Anholt <e...@anholt.net> +Date: Mon Sep 21 15:29:58 2009 -0700 + + Bump to 2.4.14 for release. + +commit 51b89733c53458b6827f0db99eb46a20fa1c7020 +Author: Eric Anholt <e...@anholt.net> +Date: Sun Sep 6 23:17:14 2009 -0700 + + intel: Remove the max_entries stuff that complicated bo reuse. + + I thought I was going to do all sorts of crazy experiments with it. I never + did, and it turned out the free-after-a-few-seconds plan is working out fine. + +commit 456a358b9ade5c90ff86b2322a79648c69cddcdc +Author: Eric Anholt <e...@anholt.net> +Date: Sun Sep 6 23:02:21 2009 -0700 + + intel: Remove the old swrast flag for reducing cache flushing. + + It hasn't been doing anything effective since + 52e5d24fae4af6f2f4a5304a516c8c5ab347a11b, and we pretty much don't bo_map + pinned buffers any more anyway. + +commit 0a24654129847cf5cd61b5e8fb54c8f9c7441c55 +Author: Keith Packard <kei...@keithp.com> +Date: Thu Sep 17 17:28:08 2009 -0700 + + drmModeFreeConnector: free encoders and properties + + These were leaking. + + Signed-off-by: Keith Packard <kei...@keithp.com> + +commit cdd325b59a17a614b90fc2f8b388175e6d79e3cf +Author: Dave Airlie <airl...@linux.ie> +Date: Tue Sep 15 07:29:02 2009 +1000 + + radeon: fix 32/64 bit issue with sign extension + + Not sure what intptr_t was up to here. + + Reported and tested by: Kevin DeKorte + Signed-off-by: Dave Airlie <airl...@redhat.com> + +commit 67e4172394a88d4922fb8d9c7c3d96ce7e02c5a6 +Author: Zhenyu Wang <zhen...@linux.intel.com> +Date: Mon Sep 7 16:17:04 2009 +0800 + + libdrm_intel: include B43 chipset check + + Signed-off-by: Zhenyu Wang <zhen...@linux.intel.com> + +commit 121b9648f846d900e67818869974ee82046e9b25 +Author: Zhenyu Wang <zhen...@linux.intel.com> +Date: Fri Sep 4 09:24:23 2009 +0800 + + libdrm_intel: add new pci ids + + New ids for G41, Clarkdale and Arrandale. + Make sure we don't need to count fence also on new chips. + + Signed-off-by: Zhenyu Wang <zhen...@linux.intel.com> + commit 73b59c894380995a2889b98e79acadd2da0bb237 Author: Eric Anholt <e...@anholt.net> Date: Fri Aug 28 15:20:22 2009 -0700 diff --git a/debian/changelog b/debian/changelog index 42352d6..a394c8b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ -libdrm (2.4.13-2) UNRELEASED; urgency=low +libdrm (2.4.14-1) UNRELEASED; urgency=low * Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N. + * New upstream release. -- Julien Cristau <jcris...@debian.org> Sat, 05 Sep 2009 14:14:29 +0200 commit ac71f0849928f4b2fbb69c01304ac6f9df8916a1 Author: Eric Anholt <e...@anholt.net> Date: Mon Sep 21 15:29:58 2009 -0700 Bump to 2.4.14 for release. diff --git a/configure.ac b/configure.ac index 425417e..d707052 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. AC_PREREQ(2.60) -AC_INIT([libdrm], 2.4.13, [dri-de...@lists.sourceforge.net], libdrm) +AC_INIT([libdrm], 2.4.14, [dri-de...@lists.sourceforge.net], libdrm) AC_USE_SYSTEM_EXTENSIONS AC_CONFIG_SRCDIR([Makefile.am]) AM_INIT_AUTOMAKE([dist-bzip2]) commit 51b89733c53458b6827f0db99eb46a20fa1c7020 Author: Eric Anholt <e...@anholt.net> Date: Sun Sep 6 23:17:14 2009 -0700 intel: Remove the max_entries stuff that complicated bo reuse. I thought I was going to do all sorts of crazy experiments with it. I never did, and it turned out the free-after-a-few-seconds plan is working out fine. diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c index 84836a8..78297e0 100644 --- a/libdrm/intel/intel_bufmgr_gem.c +++ b/libdrm/intel/intel_bufmgr_gem.c @@ -69,15 +69,6 @@ typedef struct _drm_intel_bo_gem drm_intel_bo_gem; struct drm_intel_gem_bo_bucket { drmMMListHead head; - - /** - * Limit on the number of entries in this bucket. - * - * 0 means that this caching at this bucket size is disabled. - * -1 means that there is no limit to caching at this size. - */ - int max_entries; - int num_entries; unsigned long size; }; @@ -105,6 +96,7 @@ typedef struct _drm_intel_bufmgr_gem { uint64_t gtt_size; int available_fences; int pci_device; + char bo_reuse; } drm_intel_bufmgr_gem; struct _drm_intel_bo_gem { @@ -342,7 +334,7 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name, /* If we don't have caching at this size, don't actually round the * allocation up. */ - if (bucket == NULL || bucket->max_entries == 0) { + if (bucket == NULL) { bo_size = size; if (bo_size < page_size) bo_size = page_size; @@ -352,7 +344,7 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name, pthread_mutex_lock(&bufmgr_gem->lock); /* Get a buffer out of the cache if available */ - if (bucket != NULL && bucket->num_entries > 0) { + if (bucket != NULL && !DRMLISTEMPTY(&bucket->head)) { if (for_render) { /* Allocate new render-target BOs from the tail (MRU) * of the list, as it will likely be hot in the GPU cache @@ -360,7 +352,6 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name, */ bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.prev, head); DRMLISTDEL(&bo_gem->head); - bucket->num_entries--; alloc_from_cache = 1; } else { /* For non-render-target BOs (where we're probably going to map it @@ -374,7 +365,6 @@ drm_intel_gem_bo_alloc_internal(drm_intel_bufmgr *bufmgr, const char *name, if (!drm_intel_gem_bo_busy(&bo_gem->bo)) { alloc_from_cache = 1; DRMLISTDEL(&bo_gem->head); - bucket->num_entries--; } } } @@ -553,7 +543,6 @@ drm_intel_gem_cleanup_bo_cache(drm_intel_bufmgr_gem *bufmgr_gem, time_t time) break; DRMLISTDEL(&bo_gem->head); - bucket->num_entries--; drm_intel_gem_bo_free(&bo_gem->bo); } @@ -587,11 +576,7 @@ drm_intel_gem_bo_unreference_locked(drm_intel_bo *bo) bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, bo->size); /* Put the buffer into our internal cache for reuse if we can. */ tiling_mode = I915_TILING_NONE; - if (bo_gem->reusable && - bucket != NULL && - (bucket->max_entries == -1 || - (bucket->max_entries > 0 && - bucket->num_entries < bucket->max_entries)) && + if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL && drm_intel_gem_bo_set_tiling(bo, &tiling_mode, 0) == 0) { struct timespec time; @@ -606,7 +591,6 @@ drm_intel_gem_bo_unreference_locked(drm_intel_bo *bo) bo_gem->reloc_count = 0; DRMLISTADDTAIL(&bo_gem->head, &bucket->head); - bucket->num_entries++; drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time.tv_sec); } else { @@ -931,7 +915,6 @@ drm_intel_bufmgr_gem_destroy(drm_intel_bufmgr *bufmgr) while (!DRMLISTEMPTY(&bucket->head)) { bo_gem = DRMLISTENTRY(drm_intel_bo_gem, bucket->head.next, head); DRMLISTDEL(&bo_gem->head); - bucket->num_entries--; drm_intel_gem_bo_free(&bo_gem->bo); } @@ -1225,11 +1208,8 @@ void drm_intel_bufmgr_gem_enable_reuse(drm_intel_bufmgr *bufmgr) { drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bufmgr; - int i; - for (i = 0; i < DRM_INTEL_GEM_BO_BUCKETS; i++) { - bufmgr_gem->cache_bucket[i].max_entries = -1; - } + bufmgr_gem->bo_reuse = 1; } /** commit 456a358b9ade5c90ff86b2322a79648c69cddcdc Author: Eric Anholt <e...@anholt.net> Date: Sun Sep 6 23:02:21 2009 -0700 intel: Remove the old swrast flag for reducing cache flushing. It hasn't been doing anything effective since 52e5d24fae4af6f2f4a5304a516c8c5ab347a11b, and we pretty much don't bo_map pinned buffers any more anyway. diff --git a/libdrm/intel/intel_bufmgr_gem.c b/libdrm/intel/intel_bufmgr_gem.c index baa0ee6..84836a8 100644 --- a/libdrm/intel/intel_bufmgr_gem.c +++ b/libdrm/intel/intel_bufmgr_gem.c @@ -127,13 +127,6 @@ struct _drm_intel_bo_gem { int validate_index; /** - * Boolean whether we've started swrast - * Set when the buffer has been mapped - * Cleared when the buffer is unmapped - */ - int swrast; - - /** * Current tiling mode */ uint32_t tiling_mode; @@ -663,30 +656,26 @@ drm_intel_gem_bo_map(drm_intel_bo *bo, int write_enable) return ret; } bo_gem->mem_virtual = (void *)(uintptr_t)mmap_arg.addr_ptr; - bo_gem->swrast = 0; } DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name, bo_gem->mem_virtual); bo->virtual = bo_gem->mem_virtual; - if (bo_gem->global_name != 0 || !bo_gem->swrast) { - set_domain.handle = bo_gem->gem_handle; - set_domain.read_domains = I915_GEM_DOMAIN_CPU; - if (write_enable) - set_domain.write_domain = I915_GEM_DOMAIN_CPU; - else - set_domain.write_domain = 0; - do { - ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, - &set_domain); - } while (ret == -1 && errno == EINTR); - if (ret != 0) { - fprintf (stderr, "%s:%d: Error setting swrast %d: %s\n", - __FILE__, __LINE__, bo_gem->gem_handle, strerror (errno)); - pthread_mutex_unlock(&bufmgr_gem->lock); - return ret; - } - bo_gem->swrast = 1; + set_domain.handle = bo_gem->gem_handle; + set_domain.read_domains = I915_GEM_DOMAIN_CPU; + if (write_enable) + set_domain.write_domain = I915_GEM_DOMAIN_CPU; + else + set_domain.write_domain = 0; + do { + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, + &set_domain); + } while (ret == -1 && errno == EINTR); + if (ret != 0) { + fprintf (stderr, "%s:%d: Error setting to CPU domain %d: %s\n", + __FILE__, __LINE__, bo_gem->gem_handle, strerror (errno)); + pthread_mutex_unlock(&bufmgr_gem->lock); + return ret; } pthread_mutex_unlock(&bufmgr_gem->lock); @@ -797,14 +786,16 @@ drm_intel_gem_bo_unmap(drm_intel_bo *bo) assert(bo_gem->mem_virtual != NULL); pthread_mutex_lock(&bufmgr_gem->lock); - if (bo_gem->swrast) { - sw_finish.handle = bo_gem->gem_handle; - do { - ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SW_FINISH, - &sw_finish); - } while (ret == -1 && errno == EINTR); - bo_gem->swrast = 0; - } + + /* Cause a flush to happen if the buffer's pinned for scanout, so the + * results show up in a timely manner. + */ + sw_finish.handle = bo_gem->gem_handle; + do { + ret = ioctl(bufmgr_gem->fd, DRM_IOCTL_I915_GEM_SW_FINISH, + &sw_finish); + } while (ret == -1 && errno == EINTR); + bo->virtual = NULL; pthread_mutex_unlock(&bufmgr_gem->lock); return 0; @@ -1100,9 +1091,6 @@ drm_intel_gem_bo_exec(drm_intel_bo *bo, int used, drm_intel_bo *bo = bufmgr_gem->exec_bos[i]; drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo; - /* Need to call swrast on next bo_map */ - bo_gem->swrast = 0; - /* Disconnect the buffer from the validate list */ bo_gem->validate_index = -1; drm_intel_gem_bo_unreference_locked(bo); commit 0a24654129847cf5cd61b5e8fb54c8f9c7441c55 Author: Keith Packard <kei...@keithp.com> Date: Thu Sep 17 17:28:08 2009 -0700 drmModeFreeConnector: free encoders and properties These were leaking. Signed-off-by: Keith Packard <kei...@keithp.com> diff --git a/libdrm/xf86drmMode.c b/libdrm/xf86drmMode.c index ea11207..88b4fe3 100644 --- a/libdrm/xf86drmMode.c +++ b/libdrm/xf86drmMode.c @@ -116,6 +116,9 @@ void drmModeFreeConnector(drmModeConnectorPtr ptr) if (!ptr) return; + drmFree(ptr->encoders); + drmFree(ptr->prop_values); + drmFree(ptr->props); drmFree(ptr->modes); drmFree(ptr); commit cdd325b59a17a614b90fc2f8b388175e6d79e3cf Author: Dave Airlie <airl...@linux.ie> Date: Tue Sep 15 07:29:02 2009 +1000 radeon: fix 32/64 bit issue with sign extension Not sure what intptr_t was up to here. Reported and tested by: Kevin DeKorte Signed-off-by: Dave Airlie <airl...@redhat.com> diff --git a/libdrm/radeon/radeon_cs_gem.c b/libdrm/radeon/radeon_cs_gem.c index a0db53b..e42ec48 100644 --- a/libdrm/radeon/radeon_cs_gem.c +++ b/libdrm/radeon/radeon_cs_gem.c @@ -100,10 +100,10 @@ static struct radeon_cs *cs_gem_create(struct radeon_cs_manager *csm, } csg->chunks[0].chunk_id = RADEON_CHUNK_ID_IB; csg->chunks[0].length_dw = 0; - csg->chunks[0].chunk_data = (uint64_t)(intptr_t)csg->base.packets; + csg->chunks[0].chunk_data = (uint64_t)(uintptr_t)csg->base.packets; csg->chunks[1].chunk_id = RADEON_CHUNK_ID_RELOCS; csg->chunks[1].length_dw = 0; - csg->chunks[1].chunk_data = (uint64_t)(intptr_t)csg->relocs; + csg->chunks[1].chunk_data = (uint64_t)(uintptr_t)csg->relocs; return (struct radeon_cs*)csg; } @@ -184,7 +184,7 @@ static int cs_gem_write_reloc(struct radeon_cs *cs, } cs->relocs = csg->relocs = tmp; csg->nrelocs += 1; - csg->chunks[1].chunk_data = (uint64_t)(intptr_t)csg->relocs; + csg->chunks[1].chunk_data = (uint64_t)(uintptr_t)csg->relocs; } csg->relocs_bo[csg->base.crelocs] = bo; idx = (csg->base.crelocs++) * RELOC_SIZE; @@ -269,11 +269,11 @@ static int cs_gem_emit(struct radeon_cs *cs) csg->chunks[0].length_dw = cs->cdw; - chunk_array[0] = (uint64_t)(intptr_t)&csg->chunks[0]; - chunk_array[1] = (uint64_t)(intptr_t)&csg->chunks[1]; + chunk_array[0] = (uint64_t)(uintptr_t)&csg->chunks[0]; + chunk_array[1] = (uint64_t)(uintptr_t)&csg->chunks[1]; csg->cs.num_chunks = 2; - csg->cs.chunks = (uint64_t)(intptr_t)chunk_array; + csg->cs.chunks = (uint64_t)(uintptr_t)chunk_array; r = drmCommandWriteRead(cs->csm->fd, DRM_RADEON_CS, &csg->cs, sizeof(struct drm_radeon_cs)); commit 67e4172394a88d4922fb8d9c7c3d96ce7e02c5a6 Author: Zhenyu Wang <zhen...@linux.intel.com> Date: Mon Sep 7 16:17:04 2009 +0800 libdrm_intel: include B43 chipset check Signed-off-by: Zhenyu Wang <zhen...@linux.intel.com> diff --git a/libdrm/intel/intel_chipset.h b/libdrm/intel/intel_chipset.h index 26bc585..688476a 100644 --- a/libdrm/intel/intel_chipset.h +++ b/libdrm/intel/intel_chipset.h @@ -50,6 +50,7 @@ (dev)->pci_device == 0x2E12 || \ (dev)->pci_device == 0x2E22 || \ (dev)->pci_device == 0x2E32 || \ + (dev)->pci_device == 0x2E42 || \ (dev)->pci_device == 0x0042 || \ (dev)->pci_device == 0x0046) @@ -59,7 +60,9 @@ #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ (dev)->pci_device == 0x2E12 || \ - (dev)->pci_device == 0x2E22) + (dev)->pci_device == 0x2E22 || \ + (dev)->pci_device == 0x2E32 || \ + (dev)->pci_device == 0x2E42) #define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \ (dev)->pci_device == 0x29B2 || \ commit 121b9648f846d900e67818869974ee82046e9b25 Author: Zhenyu Wang <zhen...@linux.intel.com> Date: Fri Sep 4 09:24:23 2009 +0800 libdrm_intel: add new pci ids New ids for G41, Clarkdale and Arrandale. Make sure we don't need to count fence also on new chips. Signed-off-by: Zhenyu Wang <zhen...@linux.intel.com> diff --git a/libdrm/intel/intel_chipset.h b/libdrm/intel/intel_chipset.h index 0b3af02..26bc585 100644 --- a/libdrm/intel/intel_chipset.h +++ b/libdrm/intel/intel_chipset.h @@ -48,7 +48,10 @@ (dev)->pci_device == 0x2A42 || \ (dev)->pci_device == 0x2E02 || \ (dev)->pci_device == 0x2E12 || \ - (dev)->pci_device == 0x2E22) + (dev)->pci_device == 0x2E22 || \ + (dev)->pci_device == 0x2E32 || \ + (dev)->pci_device == 0x0042 || \ + (dev)->pci_device == 0x0046) #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02) commit 5693792171d885769e58dcccc053c08b11acd12a Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:53:36 2009 +0200 xsfbs.mk: no need for shlibs.local diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk index f0f8953..1f86848 100755 --- a/debian/xsfbs/xsfbs.mk +++ b/debian/xsfbs/xsfbs.mk @@ -265,10 +265,6 @@ $(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir # debian/*.prerm >$@ -# Generate the shlibs.local file. -debian/shlibs.local: - cat debian/*.shlibs >$@ - SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null) VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) commit 1f858adff1ce2687cf542dd9b69b81137412f8a4 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:47:09 2009 +0200 xsfbs.sh: remove unused reject_whitespace function diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index b3f4bbe..45acd59 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -93,22 +93,6 @@ reject_nondigits () { done } -reject_whitespace () { - # syntax: reject_whitespace [ operand ] - # - # scan operand (typically a shell variable whose value cannot be trusted) for - # whitespace characters and barf if any are found - if [ -n "$1" ]; then - # does the operand contain any whitespace? - if expr "$1" : "[[:space:]]" > /dev/null 2>&1; then - # can't use die(), because I want to avoid forward references - echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_whitespace() encountered" \ - "possibly malicious garbage \"$1\"" >&2 - exit $SHELL_LIB_THROWN_ERROR - fi - fi -} - reject_unlikely_path_chars () { # syntax: reject_unlikely_path_chars [ operand ... ] # commit 0dd71e12416aa7dc60ed68af8127e04609b125f4 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:23:53 2009 +0200 xsfbs.sh: remove unused find_culprits function diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 7dbb196..b3f4bbe 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -199,53 +199,6 @@ usage_error () { exit $SHELL_LIB_USAGE_ERROR } -find_culprits () { - local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ - msg - - reject_whitespace "$1" - message "Searching for overlapping packages..." - dpkg_info_dir=/var/lib/dpkg/info - if [ -d $dpkg_info_dir ]; then - if [ "$(echo $dpkg_info_dir/*.list)" != "$dpkg_info_dir/*.list" ]; then - possible_culprits=$(ls -1 $dpkg_info_dir/*.list | egrep -v \ - "(xbase-clients|x11-common|xfs|xlibs)") - if [ -n "$possible_culprits" ]; then - smoking_guns=$(grep -l "$1" $possible_culprits || true) - if [ -n "$smoking_guns" ]; then - bad_packages=$(printf "\\n") - for f in $smoking_guns; do - # too bad you can't nest parameter expansion voodoo - p=${f%*.list} # strip off the trailing ".list" - package=${p##*/} # strip off the directories - bad_packages=$(printf "%s\n%s" "$bad_packages" "$package") - done - msg=$(cat <<EOF -The following packages appear to have file overlaps with the X.Org packages; -these packages are either very old, or in violation of Debian Policy. Try -upgrading each of these packages to the latest available version if possible: -for example, with the command "apt-get install". If no newer version of a -package is available, you will have to remove it; for example, with the command -"apt-get remove". If even the latest available version of the package has -this file overlap, please file a bug against that package with the Debian Bug -Tracking System. You may want to refer the package maintainer to section 12.8 -of the Debian Policy manual. -EOF -) - message "$msg" - message "The overlapping packages are: $bad_packages" - else - message "no overlaps found." - fi - fi - else - message "cannot search; no matches for $dpkg_info_dir/*.list." - fi - else - message "cannot search; $dpkg_info_dir does not exist." - fi -} - font_update () { # run $UPDATECMDS in $FONTDIRS commit b6c6eceec66066ebac16c85cc75bfa8a4f6cf58a Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:23:06 2009 +0200 xsfbs.sh: remove unused maplink function diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index f869274..7dbb196 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -199,37 +199,6 @@ usage_error () { exit $SHELL_LIB_USAGE_ERROR } - -maplink () { - # returns what symlink should point to; i.e., what the "sane" answer is - # Keep this in sync with the debian/*.links files. - # This is only needed for symlinks to directories. - # - # XXX: Most of these look wrong in the X11R7 world and need to be fixed. - # If we've stopped using this function, fixing it might enable us to re-enable - # it again and catch more errors. - case "$1" in - /etc/X11/xkb/compiled) echo /var/lib/xkb ;; - /etc/X11/xkb/xkbcomp) echo /usr/X11R6/bin/xkbcomp ;; - /usr/X11R6/lib/X11/app-defaults) echo /etc/X11/app-defaults ;; - /usr/X11R6/lib/X11/fs) echo /etc/X11/fs ;; - /usr/X11R6/lib/X11/lbxproxy) echo /etc/X11/lbxproxy ;; - /usr/X11R6/lib/X11/proxymngr) echo /etc/X11/proxymngr ;; - /usr/X11R6/lib/X11/rstart) echo /etc/X11/rstart ;; - /usr/X11R6/lib/X11/twm) echo /etc/X11/twm ;; - /usr/X11R6/lib/X11/xdm) echo /etc/X11/xdm ;; - /usr/X11R6/lib/X11/xinit) echo /etc/X11/xinit ;; - /usr/X11R6/lib/X11/xkb) echo /etc/X11/xkb ;; - /usr/X11R6/lib/X11/xserver) echo /etc/X11/xserver ;; - /usr/X11R6/lib/X11/xsm) echo /etc/X11/xsm ;; - /usr/bin/X11) echo ../X11R6/bin ;; - /usr/bin/rstartd) echo ../X11R6/bin/rstartd ;; - /usr/include/X11) echo ../X11R6/include/X11 ;; - /usr/lib/X11) echo ../X11R6/lib/X11 ;; - *) internal_error "maplink() called with unknown path \"$1\"" ;; - esac -} - find_culprits () { local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ msg commit 8eb3d6a5ce9964876e48ea56048f1a5135ef4f28 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:21:34 2009 +0200 xsfbs.sh: remove unused analyze_path diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 4461b1a..f869274 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -230,32 +230,6 @@ maplink () { esac } -analyze_path () { - # given a supplied set of pathnames, break each one up by directory and do an - # ls -dl on each component, cumulatively; i.e. - # analyze_path /usr/X11R6/bin -> ls -dl /usr /usr/X11R6 /usr/X11R6/bin - # Thanks to Randolph Chung for this clever hack. - - local f g - - while [ -n "$1" ]; do - reject_whitespace "$1" - g= - message "Analyzing $1:" - for f in $(echo "$1" | tr / \ ); do - if [ -e /$g$f ]; then - ls -dl /$g$f /$g$f.dpkg-* 2> /dev/null || true - g=$g$f/ - else - message "/$g$f: nonexistent; directory contents of /$g:" - ls -l /$g - break - fi - done - shift - done -} - find_culprits () { local f p dpkg_info_dir possible_culprits smoking_guns bad_packages package \ msg commit 1d0081bdf60944d8ef0935a531dfbcc5f01739c5 Author: Julien Cristau <jcris...@debian.org> Date: Wed Aug 26 18:20:11 2009 +0200 xsfbs.sh: remove unused check_symlinks_and_{bomb,warn} diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh index 781826f..4461b1a 100644 --- a/debian/xsfbs/xsfbs.sh +++ b/debian/xsfbs/xsfbs.sh @@ -303,115 +303,6 @@ EOF fi } -check_symlink () { - # syntax: check_symlink symlink - # - # See if specified symlink points where it is supposed to. Return 0 if it - # does, and 1 if it does not. - # - # Primarily used by check_symlinks_and_warn() and check_symlinks_and_bomb(). - - local symlink - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "check_symlink() called with wrong number of arguments;" \ - "expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - symlink="$1" - - if [ "$(maplink "$symlink")" = "$(readlink "$symlink")" ]; then - return 0 - else - return 1 - fi -} - -check_symlinks_and_warn () { - # syntax: check_symlinks_and_warn symlink ... - # - # For each argument, check for symlink sanity, and warn if it isn't sane. - # - # Call this function from a preinst script in the event $1 is "upgrade" or - # "install". - - local errmsg symlink - - # validate arguments - if [ $# -lt 1 ]; then - usage_error "check_symlinks_and_warn() called with wrong number of" \ - "arguments; expected at least 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - while [ -n "$1" ]; do - symlink="$1" - if [ -L "$symlink" ]; then - if ! check_symlink "$symlink"; then - observe "$symlink symbolic link points to wrong location" \ - "$(readlink "$symlink"); removing" - rm "$symlink" - fi - elif [ -e "$symlink" ]; then - errmsg="$symlink exists and is not a symbolic link; this package cannot" - errmsg="$errmsg be installed until this" - if [ -f "$symlink" ]; then - errmsg="$errmsg file" - elif [ -d "$symlink" ]; then - errmsg="$errmsg directory" - else - errmsg="$errmsg thing" - fi - errmsg="$errmsg is removed" - die "$errmsg" - fi - shift - done -} - -check_symlinks_and_bomb () { - # syntax: check_symlinks_and_bomb symlink ... - # - # For each argument, check for symlink sanity, and bomb if it isn't sane. - # - # Call this function from a postinst script. - - local problem symlink - - # validate arguments - if [ $# -lt 1 ]; then - usage_error "check_symlinks_and_bomb() called with wrong number of" - "arguments; expected at least 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - while [ -n "$1" ]; do - problem= - symlink="$1" - if [ -L "$symlink" ]; then - if ! check_symlink "$symlink"; then - problem=yes - warn "$symlink symbolic link points to wrong location" \ - "$(readlink "$symlink")" - fi - elif [ -e "$symlink" ]; then - problem=yes - warn "$symlink is not a symbolic link" - else - problem=yes - warn "$symlink symbolic link does not exist" - fi - if [ -n "$problem" ]; then - analyze_path "$symlink" "$(readlink "$symlink")" - find_culprits "$symlink" - die "bad symbolic links on system" - fi - shift - done -} - font_update () { # run $UPDATECMDS in $FONTDIRS -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org