Opened 7 months ago

Closed 7 months ago

Last modified 7 months ago

#333 closed defect (fixed)

rpm 4.13.0 does not accept backslashes in paths

Reported by: lewisr Owned by:
Priority: major Milestone:
Component: rpm Version:
Severity: highest Keywords:
Cc:

Description

It seems that when installing a package which is not in the current directory, rpm requires slashes as path separators, which is not very OS/2-friendly.

Example:

[C:\] rpm -i --replacepkgs c:\var\temp\myshinynew.rpm <Enter>
error: open of c:vartempmyshinynew.rpm failed: No such file or directory

Using slashes works as expected.

Downstream ticket reference:

https://mantis.arcanoae.com/view.php?id=2454

Change History (3)

comment:1 Changed 7 months ago by diver

testfile uploaded to mantis.

note to myself:
rpmio/rpmfileutil.c changed

char * rpmEscapeSpaces(const char * s)
{
    const char * se;
    char * t;
    char * te;
    size_t nb = 0;

    for (se = s; *se; se++) {
#ifdef __OS2__
	if (isspace(*se) || *se == '\\')
#else
	if (isspace(*se))
#endif
	    nb++;
	nb++;
    }
    nb++;

    t = te = xmalloc(nb);
    for (se = s; *se; se++) {
#ifdef __OS2__
	if (isspace(*se) || *se == '\\')
#else
	if (isspace(*se))
#endif
	    *te++ = '\\';
	*te++ = *se;
    }
    *te = '\0';
    return t;
}

comment:2 Changed 7 months ago by lewisr

Unfortunately, the new rpmio7.dll requires libcn. Upgrading libc for this poses several other problems to the system (can't finish booting to the desktop, due to things not being able to launch from Startup, etc.).

This is going to take some time to figure out.

The path error for the single use case mentioned here seems to have been resolved (until a reboot, when the system becomes unusable).

comment:3 Changed 7 months ago by diver

  • Resolution set to fixed
  • Status changed from new to closed

r1621 fixes the issue. new rpm will be available soon

If you find issues with the new libcn, report it separately at our github please.

Last edited 7 months ago by diver (previous) (diff)
Note: See TracTickets for help on using tickets.