Bug 1529824 - Review Request: awx - AWX, Ansible Management GUI
Summary: Review Request: awx - AWX, Ansible Management GUI
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: FE-DEADREVIEW
TreeView+ depends on / blocked
 
Reported: 2017-12-30 00:47 UTC by Martin Juhl
Modified: 2020-11-22 00:45 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-11-22 00:45:19 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Comment 1 Martin Juhl 2017-12-30 00:49:27 UTC
Install instructions are available here:

https://github.com/MrMEEE/awx-build/blob/master/installguide

Comment 2 Martin Juhl 2017-12-30 00:54:19 UTC
INFO: Currently, AWX does not build on Fedora, so it's not possible to push this into Rawhide for testing...

Comment 3 Neal Gompa 2017-12-30 02:49:49 UTC
This package spec is terribly broken, and doesn't follow *any* of the packaging guidelines at all.

Please review the guidelines and rework the spec accordingly: https://fedoraproject.org/wiki/Packaging:Guidelines

Comment 4 Martin Juhl 2017-12-30 19:35:04 UTC
Hi

Could you give me some hints? I don't see what is broken? is it because the package includes a virtual environment?

Also, as mentioned earlier, the package doesn't build on Fedora, so I want to push it directly to EPEL-test...

Comment 5 Neal Gompa 2017-12-31 00:25:50 UTC
This covers the major issues:

* Amazon Linux doesn't use Upstart anymore. They just released Amazon Linux 2, which uses systemd and they're no longer supporting Amazon Linux AMI v1 (which used upstart). Aside from that, packages for Fedora and EPEL cannot have Amazon Linux specific conditionals.

c.f.: https://fedoraproject.org/wiki/Packaging:Guidelines#Spec_Legibility

* Your Source0 is invalid. It needs to point to valid URL or have a comment of some kind describing where it came from.

c.f.: https://fedoraproject.org/wiki/Packaging:SourceURL

* License is wrong. It's "ASL 2.0", not GPLv3: https://github.com/ansible/awx/blob/devel/LICENSE.md

* Vendor, Prefix, and BuildRoot tags MUST NOT be used.
* Group is not mandatory, but when used, should match one of the following groups: https://fedoraproject.org/wiki/RPMGroups

c.f.: https://fedoraproject.org/wiki/Packaging:Guidelines#Tags_and_Sections
c.f.: https://fedoraproject.org/wiki/Packaging:Guidelines#Relocatable_packages

* Packaging virtualenvs is not permitted in Fedora. Moreover, there is no internet access in the build environment, so packaging virtualenvs is functionally impossible.

c.f.: https://fedoraproject.org/wiki/Packaging:Guidelines#Build_time_network_access

* Web app files should be installed into `/usr/share/%{name}` rather than in a weird virtualenv location.

c.f.: https://fedoraproject.org/wiki/Packaging:Guidelines#Web_Applications

Packages like AWX can absolutely work in Fedora and EPEL, you just need to leverage the system packages for its dependent components.

Comment 6 Martin Juhl 2018-01-01 22:10:12 UTC
Ok.. thanks...

I'll rework the spec, if I can get the depends to check out.. 

Thanks again...

Comment 7 Raphael Groner 2018-01-10 19:00:40 UTC
> Source0: /dist/awx-1.0.2.0.tar.gz

Where do you get the sources from? Please add some comments or URL.
https://fedoraproject.org/wiki/Licensing:Main
https://fedoraproject.org/wiki/Packaging:Guidelines#Code_Vs_Content

aws is already choosen as a package name. We would have to use another name, maybe try aws-management?
https://src.fedoraproject.org/rpms/aws
https://fedoraproject.org/wiki/Packaging:Guidelines#Spec_File_Naming

Propably we need some help from legal team.

Comment 8 Raphael Groner 2018-01-10 19:10:51 UTC
Somehow confusing. Maybe we talk about that Ansible AWX:
https://www.ansible.com/blog/5-things-you-can-do-with-awx

Can you use the package name ansible-awx?
https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines#Addon_Packages

Comment 9 Martin Juhl 2018-01-10 21:20:14 UTC
@Raphael: the package is right now named awx, not aws.. should it still be named ansible-awx?

Thanks for the suggestions.. right now i'm trying to sort out the dependency hell, that is need for AWX to run (pip packages for most).. and how many of them are already in EPEL/RHEL/CentOS and in which versions..

Comment 10 Raphael Groner 2018-01-13 15:58:11 UTC
(In reply to Martin Juhl from comment #9)
> @Raphael: the package is right now named awx, not aws.. should it still be
> named ansible-awx?

IMHO ansible-awx is a more readable name to let everyone know what it is. And please notice the guideline about package name for an addon, here to ansible.
https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines#Addon_Packages

Comment 11 Dominik 'Rathann' Mierzejewski 2019-02-09 01:20:51 UTC
Oh cool, Ansible Tower is getting packaged.

@Martin please make any reviews for unpackaged dependencies block this one so that prospective reviewers can see what is still pending.

Also, for Fedora this should use python3. Why are you saying it doesn't build on Fedora? Is there an upstream bug report about this?

Comment 12 Xavier Bachelot 2019-08-07 16:10:57 UTC
Martin, are you still interest in this package ? The review bug was not updated in a very long time.

Comment 13 Martin Juhl 2019-10-22 08:02:53 UTC
Xavier

Yes, but I'm not sure how we can make this happen... There are just too many dependencies (100-150) that has to included first..

https://copr.fedorainfracloud.org/coprs/mrmeee/ansible-awx/builds/

Comment 14 Xavier Bachelot 2019-10-22 10:07:44 UTC
Can you link to an updated spec file and SRPM ?
Also, do you have a list of needed python dependencies, both available and still to be packaged ?
I appreciate building all the needed dependencies will likely be a long journey, but this is the way to go.

Comment 15 Martin Juhl 2019-10-22 10:10:24 UTC
Everything is in:
https://copr.fedorainfracloud.org/coprs/mrmeee/ansible-awx/builds/

I have already packaged everything.. right now they are utilizing Software Collections.. 

So I wonder if it would be easier to wait until I complete support for EL8 and Modules/Streams?

Comment 16 Xavier Bachelot 2019-10-22 10:28:18 UTC
(In reply to Martin Juhl from comment #15)
> Everything is in:
> https://copr.fedorainfracloud.org/coprs/mrmeee/ansible-awx/builds/
> 
A stable direct link to the spec would be useful.
Searching in copr is not straight forward and also the builds are getting dropped so the spec file links goes 404.

> I have already packaged everything.. right now they are utilizing Software
> Collections.. 
> 
> So I wonder if it would be easier to wait until I complete support for EL8
> and Modules/Streams?

The awx package needs to go to Fedora Rawhide first before being branched for EPEL.
I expect a lot of the python modules to be already available in Fedora.
Any missing module will require a separate package review.
Make them block this bug so we have a clear view of what's missing, as Rathann suggested above.

Comment 17 Martin Juhl 2019-10-22 10:34:07 UTC
Sorry:
https://awx.wiki/repository/ansible-awx-8.0.0.0-1.el7.src.rpm

Two things are missing right now in the SPEC:

1. Source is prebuilt, so is included as binary, but this should be pretty simple to do..
2. Dependency list is not complete..

I'm just not sure that this will work with the version available in EPEL, but it's worth a try..

I will see if I can get the time to fix the above..

Comment 18 Xavier Bachelot 2019-10-22 13:13:03 UTC
According to what I read in the specfile and a bit of correction in the packages names, I think the list of missing deps in F31 is not that big. The list might not be fully accurate, but here's what I think is missing and needs to be packaged:
python3-azure-common
python3-azure-keyvault
python3-azure-nspkg
python3-build
python3-channels
python3-daphne
python3-django-auth-ldap
python3-django-crum
python3-django-extensions
python3-django-oauth-toolkit
python3-django-pglocks
python3-django-polymorphic
python3-django-solo
python3-django-taggit
python3-djangorest-framework-yaml
python3-irc
python3-jaraco-collections
python3-jaraco-itertools
python3-jaraco-logging
python3-jaraco-stream
python3-jaraco-text
python3-pygerduty
python3-logstash
python3-social-auth-app-django


The specfile itself needs some work:
- Specfile should be named awx.spec (or ansible-awx.spec, see below)
- I am not convinced the package should be named ansible-awx. I'd go for plain awx.
- Use %global rather than %define
- Remove %define  debug_package %{nil}
- Remove %define _prefix /opt/awx
- No need to redefine %{_mandir}
- Remove %global __os_install_post %{nil}
- Replace /var/lib, /var/log, /etc/, /usr/bin, /usr/share, etc... by the corresponding macros
- Reword Summary to actually be helpful
- Full URL for Source0
- Full URL or useful comment for all the other SxurceX
- Why all the %if 0%{el7} ?
- Drop Group: tag
- Drop BuildRoot:
- Drop Vendor:
- Drop Prefix:
- Why disable the rpm dependency generator ?
- Rewrite %description to be useful. Just the Summary: is not enough and is useless as is anyway, see above.
- Use macros where possible (awx --> %{name}, 8.0.0.0 --> %{version})
- Virtual env is a no go.
- /opt is a no-go.
- "cp %{_sourcedir}/nginx.conf.example ./" and similar lines looks dubious to me. Timestamp needs to be preserved. Use 'install -p %{sourceX} /path/to/dest/file' (or at least "cp -a").
- Be consistant in usage of %{buildroot} vs $RPM_BUILD_ROOT. The former is the preferred form nowadays.
- Make sure all directories deployed are owned by either the package or a dependency. For example, /var/lib/awx/ is unowned.
- %config should be %config(noreplace).
- Missing %license.
- %changelog entries are both invalid and not very legible:
  - Add the release
  - Each entry needs at least one description line below the date.
  - Add a whiteline between each entry.
- And probably lost more, but addressing at least some of the above should allow for a clearer view on the remaining fixes...

Comment 19 Xavier Bachelot 2019-10-22 13:14:31 UTC
And also drop empty and unneeded anyway %clean section.

Comment 20 Package Review 2020-10-22 00:45:24 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time. We're sorry
it is taking so long. If you're still interested in packaging this software
into Fedora repositories, please respond to this comment clearing the
NEEDINFO flag.

You may want to update the specfile and the src.rpm to the latest version
available and to propose a review swap on Fedora devel mailing list to increase
chances to have your package reviewed. If this is your first package and you
need a sponsor, you may want to post some informal reviews. Read more at
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group.

Without any reply, this request will shortly be considered abandoned
and will be closed.
Thank you for your patience.

Comment 21 Package Review 2020-11-22 00:45:19 UTC
This is an automatic action taken by review-stats script.

The ticket submitter failed to clear the NEEDINFO flag in a month.
As per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews
we consider this ticket as DEADREVIEW and proceed to close it.


Note You need to log in before you can comment on or make changes to this bug.