On Tue, Aug 8, 2017 at 11:13 AM, KY Chou <forendef2846@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@archlinux.org> wrote:
On Mon, Aug 7, 2017 at 2:35 AM, Eli Schwartz <eschwartz@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/0588f70772fae8bd84f87e56015bdc87a6729...
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