Closed Bug 1312290 Opened 8 years ago Closed 8 years ago

Respect Arch Linux custom package file extension when building AUR packages

Categories

(Firefox Build System :: General, defect)

All
Linux
defect
Not set
minor

Tracking

(firefox52 fixed)

RESOLVED FIXED
mozilla52
Tracking Status
firefox52 --- fixed

People

(Reporter: evotopid, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0
Build ID: 20161020004015

Steps to reproduce:

On Arch Linux it's possible to change the extensions of packages created using makepkg by editing the last lines of `/etc/makepkg.conf`. Specifically PKGEXT and SRCEXT can be overwritten to a format that takes less time compressing (e.g. ".tar" or ".tar.gz") than the default ".tar.xz".

To reproduce set to ".tar.gz" or ".tar". Then in a new mozilla-central clone run `./mach bootstrap`.


Actual results:

AUR package gets built but when mach scripts try finding the ".xz" file it fails and `./mach bootstrap` is aborted.

The error takes place in mozboot/mozboot/archlinux.py inside the method `ArchlinuxBootstrapper.makepkg`.

>IndexError: list index out of range
>
>  File "/home/leo/Projekte/mozilla-central/python/mozboot/mozboot/mach_commands.py", line 26, in bootstrap
>    bootstrapper.bootstrap()
>  File "/home/leo/Projekte/mozilla-central/python/mozboot/mozboot/bootstrap.py", line 228, in bootstrap
>    getattr(self.instance, 'install_%s_packages' % application)()
>  File "/home/leo/Projekte/mozilla-central/python/mozboot/mozboot/archlinux.py", > line 85, in install_browser_packages
>    self.ensure_browser_packages()
>  File "/home/leo/Projekte/mozilla-central/python/mozboot/mozboot/archlinux.py", >line 98, in ensure_browser_packages
>    self.aur_install(*self.BROWSER_AUR_PACKAGES)
>  File "/home/leo/Projekte/mozilla-central/python/mozboot/mozboot/archlinux.py", > line 219, in aur_install
>    self.makepkg(name)
>  File "/home/leo/Projekte/mozilla-central/python/mozboot/mozboot/archlinux.py", >line 193, in makepkg
>    pack = glob.glob(name + '*.tar.xz')[0]



Expected results:

There are multiple options and as I assume you might not want to support customized environments like this I think it should at least fail gracefully and instruct the user which packages to install manually.

Options:
– Extract the correct package extension and use it to look for the script.
– Find an AUR helper installed on the system and let it handle compilation and installation (eg. pacaur).
– Embed AUR helper (but this would be quite a heavy dependency I guess)
– In case of failure display a list of space separated AUR packages that are to be installed (then a user could just use their own AUR manager to build and install said packages). This would probably be the most lightweight option.
Severity: normal → minor
OS: Unspecified → Linux
Hardware: Unspecified → All
Component: Platform Support → Build Config
Product: Release Engineering → Core
QA Contact: coop
Version: other → unspecified
I submitted a fix here: https://reviewboard.mozilla.org/r/88286/
Attachment #8804171 - Flags: review?(gps)
Comment on attachment 8804171 [details]
Bug 1312290 - Force package extension when building AUR packages on Arch Linux.

https://reviewboard.mozilla.org/r/88286/#review88146

Thanks for fixing this and for enlightening us on how packaging environments can differ slightly.
Attachment #8804171 - Flags: review?(gps) → review+
Pushed by gszorc@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/490cc18cf93f
Force package extension when building AUR packages on Arch Linux. r=gps
https://hg.mozilla.org/mozilla-central/rev/490cc18cf93f
Status: UNCONFIRMED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla52
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: