[aur-general] Package proprietary softwares with hard-coded paths within /usr/local?

张海 dreaming.in.code.zh at gmail.com
Tue Aug 8 16:14:25 UTC 2017


You can probably try stuffing multiple consecutive slashes ('/') and they
should be normalized into one. You can also play with "/./" if the program
wasn't happy with consecutive slashes.

Chi-Hsuan Yen via aur-general <aur-general at archlinux.org>于2017年8月8日周二
22:39写道:

> On Tue, Aug 8, 2017 at 11:13 AM, KY Chou <forendef2846 at gmail.com> wrote:
> > That's a great solution!
> > But it doesn't have to be the same length actually.
> > A shorter path with padded 0x00s should also work fine.
> >
> > On Mon, Aug 7, 2017 at 3:16 AM, Chi-Hsuan Yen via aur-general
> > <aur-general at archlinux.org> wrote:
> >>
> >> On Mon, Aug 7, 2017 at 2:35 AM, Eli Schwartz <eschwartz at archlinux.org>
> >> wrote:
> >> > On 08/06/2017 08:21 AM, Chi-Hsuan Yen via aur-general wrote:
> >> >> Hello Arch enthusiasts,
> >> >>
> >> >> I'd like to create a package for Pulse Connect Secure, a popular VPN
> >> >> software. Current PKGBUILD can be found at [1]. That package works
> >> >> fine, but it conflicts with Arch's packaging guideline. [2]
> >> >>
> >> >> "Packages should never be installed to /usr/local"
> >> >>
> >> >> The reason I put files in /usr/local is that file paths are
> apparently
> >> >> hard-coded. Specifically, the VPN frontend (pulseUi) loads assets
> from
> >> >> /usr/local/pulse/html, and then it invokes /usr/local/pulse/pulsesvc
> >> >> to actually connects to VPN.
> >> >>
> >> >> Is there a workaround for this?
> >> >
> >> > Not much you can do with software which encodes violations of
> packaging
> >> > guidelines in its proprietary binaries. Depending on where the
> >> > information is stored, you might be able to patch it...
> >> >
> >> > /usr/local/pulse *gags*
> >> >
> >> > If software insists on being installed to
> >> > "/completely/arbitrary/directory" then you either package it anyway or
> >> > you don't. But I suppose you could try asking them to install it in
> /opt
> >> > instead.
> >> >
> >> > --
> >> > Eli Schwartz
> >> >
> >>
> >> Aha, didn't think of patching. That simple "fix" works! Many thanks!
> >> The key is that the path before and after should have the same length.
> >> [1]
> >>
> >> Best,
> >>
> >> Yen Chi Hsuan
> >>
> >> [1]
> >>
> https://github.com/yan12125/aur/commit/0588f70772fae8bd84f87e56015bdc87a6729d90#diff-62ac6814f4207a45189d3491ca4e38f3R28
> >
> >
>
> Tailing null bytes sounds absolutely interesting. But I get no luck
> for this package. There's a line in the offensive binary:
>
> file:////\x0/usr/local/pulse/\x0/html/
>
> (\x0 indicates a null byte)
>
> I tried several combinations:
>
> file:////\x0/opt/pulse/\x0\x0\x0\x0\x0\x0\x0/html/
> file:////\x0/opt/pulse//html/\x0\x0\x0\x0\x0\x0\x0
> file:////\x0/opt/pulse/\x0/html/\x0\x0\x0\x0\x0\x0
>
> Some doesn't run, and others uses a wrong path:
>
> (pulseUi:1501): Gtk-WARNING **: Error loading icon from file '/opt/pulse/':
>         Image file '/opt/pulse/' contains no data
>
> or
>
> (pulseUi:9589): Gtk-WARNING **: Error loading icon from file
> '/opt/pulse//html//html/images/Pulse-Secure128x128.png':
>         Failed to open file
> '/opt/pulse//html//html/images/Pulse-Secure128x128.png': No such file
> or directory
>
> I think sticking to same-size patching is simpler :)
>
> Best,
>
> Yen Chi Hsuan
>
-- 
Zhang, Hai
Zhejiang University, Computer Science and Technology
Blog: http://blog.zhanghai.me/
Github: https://github.com/DreaminginCodeZH


More information about the aur-general mailing list