Project

General

Profile

Actions

Bug #633

closed

case-folding collision in illumos-gate

Added by Cody Herriges over 12 years ago. Updated about 9 years ago.

Status:
Resolved
Priority:
Normal
Category:
-
Start date:
2011-01-15
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

abort: case-folding collision between usr/src/cmd/lp/filter/postscript/font/devpost/Hb and usr/src/cmd/lp/filter/postscript/font/devpost/HB

I am by no means a C dev but wanted to pull ON and start poking around. See if there was anything simple I could contribute. The above error popped up when I attempted to clone the repository and it then aborted.


Related issues

Related to illumos gate - Bug #2695: case-folding collision between usr/src/lib/libldap4/common/version.c and usr/src/lib/libldap4/common/Version.cClosed2012-05-07

Actions
Related to illumos gate - Bug #4337: eliminate /etc/TIMEZONEResolvedGarrett D'Amore2013-11-18

Actions
Has duplicate site - Bug #1689: hg case-folding collision on case-insensitive filesystemsClosed2011-10-26

Actions
Actions #1

Updated by Garrett D'Amore over 12 years ago

  • Status changed from New to Rejected

There are files in our repository which are different and have names that differ only in case. Working on illumos generally requires that you work on a file system that fully supports rich filenames such as UFS or ZFS.

I'm not sure what system you tried to hg clone to, but if it was Windows then you won't have any luck.

I'm going to reject this bug, since I don't think we can reasonably expect our code to be case insensitive.

Actions #2

Updated by Anthony Fiarito over 12 years ago

I hear about this occasionally from people on Macs (where the default for the root disk is case-insensitive). What I recommend to them (in lieu of re-formating their root disk) is to create a Disk Image using Disk Utility and make sure the format is either "Mac OS Extended (Case-sensitive, Journaled)" or "Mac OS Extended (Case-sensitive)". Once that is created, mount it, and clone the hg repository into that...

Actions #3

Updated by Garrett D'Amore almost 12 years ago

  • Status changed from Rejected to New
  • Difficulty set to Medium
  • Tags set to needs-triage

opened this back up at bmc's request.

Actions #4

Updated by Igor Kozhukhov about 11 years ago

  • Status changed from New to In Progress
  • Assignee set to Igor Kozhukhov
  • % Done changed from 0 to 50
Actions #5

Updated by Igor Kozhukhov about 11 years ago

  • Status changed from In Progress to Feedback
  • % Done changed from 50 to 100
Actions #6

Updated by Igor Kozhukhov about 11 years ago

  • Status changed from Feedback to In Progress

found another case-folding collision

Actions #7

Updated by Igor Kozhukhov about 11 years ago

  • % Done changed from 100 to 50
Actions #8

Updated by Igor Kozhukhov about 11 years ago

found:
case-folding collision between usr/src/man/man4/timezone.4 and usr/src/man/man4/TIMEZONE.4

TIMEZONE.4 have:
.TH TIMEZONE 4 "Jun 26, 2003"

timezone.4 have:
.TH TIMEZONE 4 "Feb 18, 2003"

actually we are using context from TIMEZONE.4

Actions #9

Updated by Igor Kozhukhov about 11 years ago

  • Status changed from In Progress to Feedback
  • % Done changed from 50 to 100
Actions #10

Updated by Rich Lowe about 11 years ago

- TIMEZONE and timezone(4) describe different things. The latter is the source file for the NIS timezone map.

- Renaming the fonts is going to break anything which tries to use them by name.

Actions #11

Updated by Garrett D'Amore about 9 years ago

Reading the details of dpost, and the font handling, it looks like we could solve this by using font mapping files. The code already supports a file called /usr/lib/font/devpost/fontmaps/<devname>, where I suspect <devname> is actually "PS".

This file maps troff font names (e.g. "HB") to *.out filenames. Its intended to support cross-device portability, but I think it we can leverage it here.

Imagine we could have entries like:

C Courier
Hb Helvetica-Narrow-Bold
HB Helvetica-Bold

and so forth. This would allow us to store file names as just single files called "Helvetica-Bold.out" and so forth. (We can use long names in the filesystem!) We can also then ditch the stupid .name files which add no value and serve only to facilitate identification of two character font names for humans. :-)

Presumably (unverified) this style might allow longer names to be used in troff directly as well. E.g. instead of referring to a font as just HB, they could use "Helvetica-Bold". That'd be a nice consequence, although I doubt anyone would make use of it. (It might not be portable to other troff systems.)

Actions #12

Updated by Garrett D'Amore about 9 years ago

  • Status changed from Feedback to In Progress
  • Assignee changed from Igor Kozhukhov to Garrett D'Amore
  • Tags deleted (needs-triage)

more experimentation with devpost, I've learned a few things:

1. /usr/lib/fonts/devpost/fontmaps/post is the mapping file
2. devpost and tools restrict font names to two (2 !!) characters maximum

I've got local changes that rename H{lower}* to J{UPPER} (e.g. Hi becomes JI) -- as there are no fonts that start with J in our standard troff font set. I've provided mappings for these in my tree so that Hi, Hb, Hr, and Hx all work (you have to reference them with .ft, \\fX doesn't work for two character font names).

I'll be posting for review shortly.

/etc/TIMEZONE is to be fixed by elimination. See 4337.

Actions #13

Updated by Electric Monk about 9 years ago

git commit d109324670f8a760f881a767533543131276a99a

Author: Garrett D'Amore <garrett@damore.org>

633 case-folding collision in illumos-gate
Reviewed by: Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.com>
Approved by: Dan McDonald <danmcd@omniti.com>

Actions #14

Updated by Garrett D'Amore about 9 years ago

  • Status changed from In Progress to Resolved
Actions

Also available in: Atom PDF