packaged-apache-recipe
bill-auger upravil tuto stránku před 8 roky

PAGURE SETUP - (RPM install on Fedora24)

this recipe should be sufficient to setup a new fedora24 server or migrate existing data to a new machine

  • all persistent data is stored out of tree and out of /etc/ to ease upgrades and re-installs

important files:

$GITOLITE_HOME/
  .gitolite.rc      - this is the gitolite config file
  .gitolite/
    conf/
      gitolite.conf - this is the file where pagure writes repo definitions and permissions
    keydir/         - this is the directory where pagure writes user public keys
  .ssh/
    authorized_keys - this is the file where gitolite actually looks for user public keys
  pagure.conf       - this is the apache config file defining VHosts for the pagure and pagure-docs servers
  pagure.wsgi       - this is the python wsgi config file for the pagure server
  pagure-docs.wsgi  - this is the python wsgi config file for the pagure-docs server
  pagure.cfg        - this is the main pagure app config file
  releases/         - this is the directory where pagure writes user uploaded tarballs
  repositories/     - this is the directory where gitolite writes git repositories
* gitolite.conf , authorized_keys , keydir/ , releases/ , and repositories/ should normally not be modified manually
* gitolite.conf , authorized_keys , keydir/ , and repositories/ are at canonical locations and must not be moved

the standard config chain / startup routine is as follows:

  • apache starts on OS init and defines two VHosts per /etc/httpd/conf.d/pagure.conf
  • /etc/httpd/conf.d/pagure.conf references /usr/share/pagure/pagure.wsgi which forks to python
  • /usr/share/pagure/pagure.wsgi references $GITOLITE_HOME/pagure.cfg which configures and loads pagure
  • $GITOLITE_HOME/pagure.cfg references the gitolite config files such as gitolite.conf and keydir/

set some convenience vars

  • NOTE: the RPM package install creates a default user named gitolite3 with home at /var/lib/gitolite3

    $GITOLITE_USER below most simply is the user created by the RPM package but it can be any other user
    $GITOLITE_HOME below must match the user home as defined in /etc/passwd for $GITOLITE_USER
    $PAGURE_DATA below should be some large disk for storing repositories and tarballs
    
    $ sudo su
    # export IS_FIRST_TIME_INSTALL=1
    # if (( IS_FIRST_TIME_INSTALL )) ### first time install
    > then GITOLITE_USER='the-gitolite-user'          # (e.g. 'git' or 'gitolite3')
    >      GITOLITE_HOME=/path/to/gitolite/user/home/ # (e.g. '/var/lib/gitolite3') # per /etc/passwd
    >      PAGURE_DATA=/path/to/large/disk            # (e.g. '/mnt/pagure-data')
    >      echo "GITOLITE_USER=$GITOLITE_USER" >> /etc/environment
    >      echo "GITOLITE_HOME=$GITOLITE_HOME" >> /etc/environment
    >      echo "PAGURE_DATA=$PAGURE_DATA"     >> /etc/environment
    > fi
    

prepare the system

# dnf install pagure pagure-milters pagure-ev pagure-webhook mod_ssl
# su -c 'gitolite setup -a dummy' $GITOLITE_USER
# if (( IS_FIRST_TIME_INSTALL )) ### first time install
> then mkdir -p $PAGURE_DATA/repositories/{docs,forks,tickets,requests,remotes}
>      mkdir -p $PAGURE_DATA/releases
>      mkdir -p $GITOLITE_HOME/.gitolite/keydir
> else                           ### preserving existing data or migrating to new system
>      mkdir -p $GITOLITE_HOME/.gitolite
>      cp    -r $ORIG_GITOLITE_HOME/.gitolite/keydir/            $GITOLITE_HOME/.gitolite/keydir/
>      cp       $ORIG_GITOLITE_HOME/.gitolite/conf/gitolite.conf $GITOLITE_HOME/.gitolite/conf/gitolite.conf
>      cp    -r $ORIG_GITOLITE_HOME/.gitolite.rc                 $GITOLITE_HOME/.gitolite.rc
>      cp    -r $ORIG_GITOLITE_HOME/pagure.cfg                   $GITOLITE_HOME/pagure.cfg
>      cp    -r $ORIG_PAGURE_DATA/repositories/                  $PAGURE_DATA/repositories/
>      cp    -r $ORIG_PAGURE_DATA/releases/                      $PAGURE_DATA/releases/
> fi
# rm           /etc/pagure/pagure.cfg
# rm           /etc/httpd/conf.d/pagure.conf
# rm           /usr/share/pagure/pagure.wsgi
# rm           /usr/share/pagure/docs_pagure.wsgi
# rm      -rf  $GITOLITE_HOME/repositories
# ln      -s   $GITOLITE_HOME/pagure.cfg       /etc/pagure/pagure.cfg        # TODO: custom
# ln      -s   $GITOLITE_HOME/pagure.conf      /etc/httpd/conf.d/pagure.conf # TODO: custom
# ln      -s   $GITOLITE_HOME/pagure.wsgi      /usr/share/pagure/pagure.wsgi
# ln      -s   $GITOLITE_HOME/pagure-docs.wsgi /usr/share/pagure/docs_pagure.wsgi
# ln      -s   $PAGURE_DATA/releases           /var/www/releases # TODO: maybe just refer to $GITOLITE_HOME/releases in apache conf
# ln      -s   $PAGURE_DATA/repositories       $GITOLITE_HOME/repositories
# chown   -R   $GITOLITE_USER:$GITOLITE_USER   $GITOLITE_HOME
# setfacl -Rdm user:apache:rx                  $GITOLITE_HOME

configure

  • NOTE: in pagure.conf - WSGIDaemonProcess must refer to the $GITOLITE_USER as above
  • NOTE: in pagure_webhook.service - User and Group must refer to the $GITOLITE_USER as above
  • NOTE: in pagure_ev.service - User and Group must refer to the $GITOLITE_USER as above
  • NOTE: in pagure.cfg - GITOLITE_USER must refer to the $GITOLITE_USER as above
  • NOTE: in pagure.cfg - GITOLITE_HOME must refer to the $GITOLITE_HOME as above
  • NOTE: in pagure.cfg - PAGURE_DATA must refer to the $PAGURE_DATA as above
  • NOTE: in pagure.cfg - edit APP_DOMAIN as necessary TODO: these would be better as env vars

prepare the database

# su -c 'PAGURE_CONFIG=/etc/pagure/pagure.cfg python /usr/share/pagure/pagure_createdb.py' $GITOLITE_USER

CURRENT:

enable auxilliary servers

# rm /usr/lib/systemd/system/pagure_webhook.service
# rm /usr/lib/systemd/system/pagure_ev.service
# ln -s $GITOLITE_HOME/pagure_webhook.service /usr/lib/systemd/system/pagure_webhook.service
# ln -s $GITOLITE_HOME/pagure_ev.service      /usr/lib/systemd/system/pagure_ev.service
# systemctl daemon-reload
# systemctl enable redis
# systemctl enable pagure_webhook
# systemctl enable pagure_ev
# systemctl start  redis
# systemctl start  pagure_webhook
# systemctl start  pagure_ev
# systemctl reload httpd

CONFIG TODO:

# real db     - multiple keys
# redis       - multiple keys
# eventsource - multiple keys # NFG
# webhooks    - multiple keys # NFG
# email       - multiple keys
SHOW_PROJECTS_INDEX = ['repos', 'myrepos', 'myforks']
ADMIN_GROUP = 'sysadmin-main' # None ???
SSH_KEYS = {'RSA': {'fingerprint': '<foo>', 'pubkey': '<bar>'}}
SESSION_COOKIE_SECURE = False # should always be set to True in production

FEATURES TODO:

# BLACKLISTED_PROJECTS , ALLOWED_PREFIX , BLACKLISTED_GROUPS would be relevant for re-routing repos urls

DB TODO:

# in /etc/pagure/alembic.ini edit:
* sqlalchemy.url which is the URL used to connect to the database, likely the same URL as the one in pagure.cfg.
* script_location which is the path to the versions folder containing all the alembic migration files.

# Stamp the alembic revision if using PostgreSQL, MySQL or MariaDB in production.
# You can save the current revision in the database using the following command:
cd /etc/pagure
alembic stamp $(alembic heads | awk '{ print $1 }')

issues

currently python wsgi daemon segfaults (https://gist.github.com/bill-auger/27525a0db873cf99d6ea4905e2a078e3)

but seems to be OK running in root shell

# systemctl stop httpd
# httpd
# httpd -X
### debugging
# PAGURE_WSGI_PID=`ps -cxo command,pid | awk '{ if ($1 ~ /^pagure-dbg$/ && $1 !~ /$grep/) print $NF }'`
# [ ! -z $PAGURE_WSGI_PID ] && gdb -p $pid
<in pagure.conf> WSGIPythonEggs directive for applications running in embedded mode, or the ‘python-eggs’ option to the WSGIDaemonProcess directive when using daemon mode.
<in pagure.conf> ThreadStackSize 524288                      # embeedded mode
<in pagure.conf> WSGIDaemonProcess example stack-size=524288 # daemon mode
<in pagure.wsgi> import thread ... thread.stack_size(524288)
<in any.py> import sys ... print >> sys.stderr, "application debug"

redis/sse/webhooks not working

# systemctl status redis
● redis.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/redis.service.d
           └─limit.conf
   Active: active (running) since Fri 2016-08-26 17:11:22 EEST; 1min 3s ago
  Process: 7693 ExecStop=/usr/bin/redis-shutdown (code=exited, status=0/SUCCESS)
 Main PID: 7700 (redis-server)
    Tasks: 3 (limit: 512)
   CGroup: /system.slice/redis.service
           └─7700 /usr/bin/redis-server 127.0.0.1:6379

Aug 26 17:11:22 localhost.localdomain systemd[1]: Started Redis persistent key-value database.

# systemctl status pagure_webhook
● pagure_webhook.service - Pagure WebHook server (Allowing web-hook notifications)
   Loaded: loaded (/usr/lib/systemd/system/pagure_webhook.service; enabled; vendor preset: disabled)
   Active: inactive (dead) (Result: exit-code) since Fri 2016-08-26 17:12:10 EEST; 26s ago
     Docs: https://pagure.io/pagure
  Process: 7737 ExecStart=/usr/libexec/pagure-webhook/pagure-webhook-server.py (code=exited, status=217/USER)
 Main PID: 7737 (code=exited, status=217/USER)

Aug 26 17:12:10 localhost.localdomain systemd[1]: pagure_webhook.service: Unit entered failed state.
Aug 26 17:12:10 localhost.localdomain systemd[1]: pagure_webhook.service: Failed with result 'exit-code'.
Aug 26 17:12:10 localhost.localdomain systemd[1]: pagure_webhook.service: Service hold-off time over, scheduling restart.
Aug 26 17:12:10 localhost.localdomain systemd[1]: Stopped Pagure WebHook server (Allowing web-hook notifications).
Aug 26 17:12:10 localhost.localdomain systemd[1]: pagure_webhook.service: Start request repeated too quickly.
Aug 26 17:12:10 localhost.localdomain systemd[1]: Failed to start Pagure WebHook server (Allowing web-hook notifications).

# systemctl status pagure_ev
● pagure_ev.service - Pagure EventSource server (Allowing live refresh of the pages supporting it)
   Loaded: loaded (/usr/lib/systemd/system/pagure_ev.service; enabled; vendor preset: disabled)
   Active: inactive (dead) (Result: exit-code) since Fri 2016-08-26 17:12:23 EEST; 20s ago
     Docs: https://pagure.io/pagure
  Process: 7748 ExecStart=/usr/libexec/pagure-ev/pagure-stream-server.py (code=exited, status=217/USER)
 Main PID: 7748 (code=exited, status=217/USER)

Aug 26 17:12:23 localhost.localdomain systemd[1]: pagure_ev.service: Service hold-off time over, scheduling restart.
Aug 26 17:12:23 localhost.localdomain systemd[1]: Stopped Pagure EventSource server (Allowing live refresh of the pages supporting it).
Aug 26 17:12:23 localhost.localdomain systemd[1]: pagure_ev.service: Start request repeated too quickly.
Aug 26 17:12:23 localhost.localdomain systemd[1]: Failed to start Pagure EventSource server (Allowing live refresh of the pages supporting it).

# /usr/libexec/pagure-webhook/pagure-webhook-server.py
Using configuration file `/etc/pagure/pagure.cfg`
2016-08-26 17:14:38,572 DEBUG [selector_events:72] Using selector: EpollSelector
2016-08-26 17:14:38,573 INFO [connection:165] Connecting to redis
2016-08-26 17:14:38,576 INFO [protocol:929] Redis connection made
^C2016-08-26 17:14:49,261 INFO [pagure-webhook-server:141] End Connection
2016-08-26 17:14:49,261 INFO [pagure-webhook-server:143] End

# /usr/libexec/pagure-ev/pagure-stream-server.py
Using configuration file `/etc/pagure/pagure.cfg`
2016-08-26 17:15:16,521 DEBUG [selector_events:72] Using selector: EpollSelector
2016-08-26 17:15:16,525 INFO [pagure-stream-server:205] Serving server at ('0.0.0.0', 8080)

    $ nc localhost 8080 # <-- from another terminal on localhost
    HELLO               # <-- from another terminal on localhost

2016-08-26 17:16:07,324 ERROR [base_events:1053] Future/Task exception was never retrieved
TimeoutError
^C2016-08-26 17:16:09,213 INFO [pagure-stream-server:227] End Connection
2016-08-26 17:16:09,214 INFO [pagure-stream-server:230] End

not sure what happened here:

$ sudo chkconfig httpd on
Note: Forwarding request to 'systemctl enable httpd.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

useful commands:

# systemctl status httpd.service # <-- dump log
# chkconfig httpd on # shows if server starts on init
$ curl --insecure https://localhost  # <-- check server
$ wget --no-check-certificate localhost # <-- check server
# firewall-cmd --state # <-- firewall status
# firewall-cmd --list-all-sones | grep (active)
# firewall-cmd --zone=FedoraServer --list-all $ FedoraServer is from grep (active) above
# firewall-cmd --zone=FedoraServer --add-service=http # temporary
# firewall-cmd --permanent --zone=FedoraServer --add-service=http
# firewall-cmd --zone=FedoraServer --list-services
# $GITOLITE_HOME/stats  # list N ssh keys and repos managed by gitolite
# $GITOLITE_HOME/relaod # forcefully reload gitolite auth and rules

base packages

# dnf install pagure
Installed:
  aajohan-comfortaa-fonts.noarch 2.004-6.fc24                                                           
  apr.x86_64 1.5.2-3.fc24                                                                               
  apr-util.x86_64 1.5.4-3.fc24                                                                          
  cryptopp.x86_64 5.6.3-4.fc24                                                                          
  fedora-logos-httpd.noarch 22.0.0-3.fc24                                                               
  fontconfig.x86_64 2.11.94-7.fc24                                                                      
  fontpackages-filesystem.noarch 1.44-17.fc24                                                           
  ghostscript.x86_64 9.16-4.fc24                                                                        
  ghostscript-core.x86_64 9.16-4.fc24                                                                   
  ghostscript-fonts.noarch 5.50-35.fc24                                                                 
  ghostscript-x11.x86_64 9.16-4.fc24                                                                    
  git.x86_64 2.7.4-2.fc24                                                                               
  git-core.x86_64 2.7.4-2.fc24                                                                          
  git-core-doc.x86_64 2.7.4-2.fc24                                                                      
  gitolite3.noarch 1:3.6.5-2.fc24                                                                       
  http-parser.x86_64 2.6.0-2.fc24                                                                       
  httpd.x86_64 2.4.23-4.fc24                                                                            
  httpd-filesystem.noarch 2.4.23-4.fc24                                                                 
  httpd-tools.x86_64 2.4.23-4.fc24                                                                      
  jbigkit-libs.x86_64 2.1-5.fc24                                                                        
  lcms2.x86_64 2.7-3.fc24                                                                               
  libICE.x86_64 1.0.9-5.fc24                                                                            
  libSM.x86_64 1.2.2-4.fc24                                                                             
  libX11.x86_64 1.6.3-3.fc24                                                                            
  libX11-common.noarch 1.6.3-3.fc24                                                                     
  libXau.x86_64 1.0.8-6.fc24                                                                            
  libXext.x86_64 1.3.3-4.fc24                                                                           
  libXfont.x86_64 1.5.1-4.fc24                                                                          
  libXt.x86_64 1.1.5-3.fc24                                                                             
  libfontenc.x86_64 1.1.3-3.fc24                                                                        
  libgit2.x86_64 0.24.1-1.fc24                                                                          
  libgnome-keyring.x86_64 3.12.0-6.fc24                                                                 
  libjpeg-turbo.x86_64 1.5.0-1.fc24                                                                     
  libserf.x86_64 1.3.8-2.fc24                                                                           
  libtiff.x86_64 4.0.6-2.fc24                                                                           
  libwebp.x86_64 0.5.1-1.fc24                                                                           
  libxcb.x86_64 1.11.1-2.fc24                                                                           
  libxslt.x86_64 1.1.28-12.fc24                                                                         
  mod_wsgi.x86_64 4.4.8-4.fc24                                                                          
  openjpeg2.x86_64 2.1.1-1.fc24                                                                         
  pagure.noarch 2.2.2-1.fc24                                                                            
  perl.x86_64 4:5.22.2-362.fc24                                                                         
  perl-Carp.noarch 1.38-2.fc24                                                                          
  perl-Data-Dumper.x86_64 2.158-348.fc24                                                                
  perl-Digest.noarch 1.17-348.fc24                                                                      
  perl-Digest-MD5.x86_64 2.55-1.fc24                                                                    
  perl-Encode.x86_64 3:2.84-9.fc24                                                                      
  perl-Env.noarch 1.04-347.fc24                                                                         
  perl-Errno.x86_64 1.23-362.fc24                                                                       
  perl-Error.noarch 1:0.17024-5.fc24                                                                    
  perl-Exporter.noarch 5.72-349.fc24                                                                    
  perl-File-Path.noarch 2.12-2.fc24                                                                     
  perl-File-Temp.noarch 0.23.04-347.fc24                                                                
  perl-Getopt-Long.noarch 2.49.1-1.fc24                                                                 
  perl-Git.noarch 2.7.4-2.fc24                                                                          
  perl-HTTP-Tiny.noarch 0.056-5.fc24                                                                    
  perl-IO.x86_64 1.35-362.fc24                                                                          
  perl-IO-Socket-Timeout.noarch 0.32-2.fc24                                                             
  perl-MIME-Base64.x86_64 3.15-349.fc24                                                                 
  perl-PathTools.x86_64 3.62-3.fc24                                                                     
  perl-PerlIO-via-Timeout.noarch 0.32-2.fc24                                                            
  perl-Pod-Escapes.noarch 1:1.07-349.fc24                                                               
  perl-Pod-Perldoc.noarch 3.26-1.fc24                                                                   
  perl-Pod-Simple.noarch 1:3.32-3.fc24                                                                  
  perl-Pod-Usage.noarch 4:1.69-1.fc24                                                                   
  perl-Redis.noarch 1.981-2.fc24                                                                        
  perl-Scalar-List-Utils.x86_64 2:1.45-1.fc24                                                           
  perl-Socket.x86_64 3:2.024-1.fc24                                                                     
  perl-Storable.x86_64 1:2.53-348.fc24                                                                  
  perl-Term-ANSIColor.noarch 4.03-347.fc24                                                              
  perl-Term-Cap.noarch 1.17-2.fc24                                                                      
  perl-TermReadKey.x86_64 2.33-4.fc24                                                                   
  perl-Text-ParseWords.noarch 3.30-347.fc24                                                             
  perl-Text-Tabs+Wrap.noarch 2013.0523-347.fc24                                                         
  perl-Time-HiRes.x86_64 1.9728-2.fc24                                                                  
  perl-Time-Local.noarch 1.2300-347.fc24                                                                
  perl-Try-Tiny.noarch 0.24-2.fc24                                                                      
  perl-Unicode-Normalize.x86_64 1.25-2.fc24                                                             
  perl-constant.noarch 1.33-348.fc24                                                                    
  perl-libs.x86_64 4:5.22.2-362.fc24                                                                    
  perl-macros.x86_64 4:5.22.2-362.fc24                                                                  
  perl-parent.noarch 1:0.234-4.fc24                                                                     
  perl-podlators.noarch 4.07-1.fc24                                                                     
  perl-threads.x86_64 1:2.02-3.fc24                                                                     
  perl-threads-shared.x86_64 1.48-347.fc24                                                              
  poppler-data.noarch 0.4.7-5.fc24                                                                      
  py-bcrypt.x86_64 0.4-7.fc24                                                                           
  pyOpenSSL.noarch 16.0.0-1.fc24                                                                        
  pycryptopp.x86_64 0.6.0.1206569328141510525648634803928199668821045408958-9.fc24                      
  python.x86_64 2.7.12-2.fc24                                                                           
  python-alembic.noarch 0.8.3-4.fc24                                                                    
  python-arrow.noarch 0.7.0-3.fc24                                                                      
  python-beaker.noarch 1.5.4-13.fc24                                                                    
  python-beautifulsoup4.noarch 4.5.1-1.fc24                                                             
  python-bleach.noarch 1.4.1-6.fc24                                                                     
  python-blinker.noarch 1.3-6.fc24                                                                      
  python-chardet.noarch 2.2.1-5.fc24                                                                    
  python-cssselect.noarch 0.9.1-9.fc24                                                                  
  python-docutils.noarch 0.12-0.6.20140510svn7747.fc24                                                  
  python-editor.noarch 0.4-5.fc24                                                                       
  python-enum34.noarch 1.0.4-5.fc24                                                                     
  python-fedora.noarch 0.8.0-1.fc24                                                                     
  python-flask.noarch 1:0.10.1-8.fc24                                                                   
  python-flask-wtf.noarch 0.10.0-5.fc24                                                                 
  python-html5lib.noarch 1:0.999-8.fc24                                                                 
  python-idna.noarch 2.0-3.fc24                                                                         
  python-ipaddress.noarch 1.0.16-2.fc24                                                                 
  python-itsdangerous.noarch 0.24-6.fc24                                                                
  python-jinja2.noarch 2.8-5.fc24                                                                       
  python-kitchen.noarch 1.2.4-2.fc24                                                                    
  python-libs.x86_64 2.7.12-2.fc24                                                                      
  python-lockfile.noarch 1:0.11.0-3.fc24                                                                
  python-lxml.x86_64 3.4.4-4.fc24                                                                       
  python-mako.noarch 1.0.3-2.fc24                                                                       
  python-markupsafe.x86_64 0.23-9.fc24                                                                  
  python-munch.noarch 2.0.4-2.fc24                                                                      
  python-openid.noarch 2.2.5-12.fc24                                                                    
  python-openid-cla.noarch 1.2-1.fc24                                                                   
  python-openid-teams.noarch 1.1-3.fc24                                                                 
  python-paste.noarch 2.0.2-3.fc24                                                                      
  python-pillow.x86_64 3.2.0-1.fc24                                                                     
  python-pip.noarch 8.0.2-1.fc24                                                                        
  python-pycparser.noarch 2.14-6.fc24                                                                   
  python-pygments.noarch 2.1.3-1.fc24                                                                   
  python-redis.noarch 2.10.3-5.fc24                                                                     
  python-six.noarch 1.10.0-2.fc24                                                                       
  python-sqlalchemy.x86_64 1.0.13-1.fc24                                                                
  python-straight-plugin.noarch 1.4.0-7.fc24                                                            
  python-tempita.noarch 0.5.1-12.fc24                                                                   
  python-werkzeug.noarch 0.11.10-1.fc24                                                                 
  python-wtforms.noarch 2.0-7.fc24                                                                      
  python2-babel.noarch 2.3.4-1.fc24                                                                     
  python2-binaryornot.noarch 0.4.0-2.fc24                                                               
  python2-cffi.x86_64 1.5.2-1.fc24                                                                      
  python2-cryptography.x86_64 1.3.1-1.fc24                                                              
  python2-dateutil.noarch 1:2.5.2-2.fc24                                                                
  python2-flask-multistatic.noarch 1.0-1.fc24                                                           
  python2-markdown.noarch 2.6.6-1.fc24                                                                  
  python2-ply.noarch 3.8-1.fc24                                                                         
  python2-psutil.x86_64 3.2.1-5.fc24                                                                    
  python2-pyasn1.noarch 0.1.9-6.fc24.1                                                                  
  python2-pygit2.x86_64 0.24.1-1.fc24                                                                   
  python2-pysocks.noarch 1.5.6-4.fc24                                                                   
  python2-requests.noarch 2.10.0-2.fc24                                                                 
  python2-setuptools.noarch 20.1.1-1.fc24                                                               
  python2-urllib3.noarch 1.15.1-3.fc24                                                                  
  pytz.noarch 2016.6.1-1.fc24                                                                           
  subversion.x86_64 1.9.4-2.fc24                                                                        
  subversion-libs.x86_64 1.9.4-2.fc24                                                                   
  urw-fonts.noarch 3:2.4-22.fc24                                                                        
  xorg-x11-font-utils.x86_64 1:7.5-31.fc24

# dnf install pagure-milters pagure-ev pagure-webhook
Installed:
  libicu.x86_64 56.1-4.fc24                       pagure-ev.noarch 2.2.2-1.fc24                        
  pagure-milters.noarch 2.2.2-1.fc24              pagure-webhook.noarch 2.2.2-1.fc24                   
  postfix.x86_64 2:3.1.1-2.fc24                   python-futures.noarch 3.0.4-2.fc24                   
  python-pydns.noarch 2.3.6-4.fc24                python-pymilter.x86_64 1.0-3.fc24                    
  python-trollius.noarch 2.0-3.fc24               python2-trollius-redis.noarch 0.1.4-6.fc24           
  sendmail-milter.x86_64 8.15.2-6.fc24

# dnf install mod_ssl
Installed:
  mod_ssl.x86_64 1:2.4.23-4.fc24

# dnf install redis
Installed:
  jemalloc.x86_64 4.1.0-1.fc24                         redis.x86_64 3.0.6-3.fc24

optional debugging symbols for apache

# dnf debuginfo-install httpd-2.4.23-4.fc24.x86_64
Installed:
  acl-debuginfo.x86_64 2.2.52-11.fc24               apr-debuginfo.x86_64 1.5.2-3.fc24
  apr-util-debuginfo.x86_64 1.5.4-3.fc24            attr-debuginfo.x86_64 2.4.47-16.fc24
  audit-debuginfo.x86_64 2.6.6-1.fc24               cracklib-debuginfo.x86_64 2.9.6-2.fc24
  e2fsprogs-debuginfo.x86_64 1.42.13-4.fc24         expat-debuginfo.x86_64 2.1.1-2.fc24
  gcc-base-debuginfo.x86_64 6.1.1-3.fc24            gcc-debuginfo.x86_64 6.1.1-3.fc24
  glibc-debuginfo.x86_64 2.23.1-10.fc24             glibc-debuginfo-common.x86_64 2.23.1-10.fc24
  httpd-debuginfo.x86_64 2.4.23-4.fc24              keyutils-debuginfo.x86_64 1.5.9-8.fc24
  krb5-debuginfo.x86_64 1.14.3-4.fc24               libcap-debuginfo.x86_64 2.24-9.fc24
  libcap-ng-debuginfo.x86_64 0.7.8-1.fc24           libdb-debuginfo.x86_64 5.3.28-14.fc24
  libgcrypt-debuginfo.x86_64 1.6.6-1.fc24           libgpg-error-debuginfo.x86_64 1.24-1.fc24
  libidn-debuginfo.x86_64 1.33-1.fc24               libseccomp-debuginfo.x86_64 2.3.1-0.fc24
  libselinux-debuginfo.x86_64 2.5-9.fc24            libsepol-debuginfo.x86_64 2.5-8.fc24
  libverto-debuginfo.x86_64 0.2.6-6.fc24            lua-debuginfo.x86_64 5.3.3-2.fc24
  lz4-debuginfo.x86_64 r131-2.fc24                  ncurses-debuginfo.x86_64 6.0-6.20160709.fc24
  nghttp2-debuginfo.x86_64 1.7.1-1.fc24             nss-softokn-debuginfo.x86_64 3.26.0-1.0.fc24
  openssl-debuginfo.x86_64 1:1.0.2h-3.fc24          pam-debuginfo.x86_64 1.2.1-5.fc24
  pcre-debuginfo.x86_64 8.39-2.fc24                 readline-debuginfo.x86_64 6.3-8.fc24
  systemd-debuginfo.x86_64 229-13.fc24              util-linux-debuginfo.x86_64 2.28.1-1.fc24
  xz-debuginfo.x86_64 5.2.2-2.fc24                  zlib-debuginfo.x86_64 1.2.8-10.fc24

# dnf --enablerepo='*debug*' install /usr/lib/debug/.build-id/2e/6b671ae3ba351ce833f2d57a9d45a6ae87a62a.debug \
                                     /usr/lib/debug/.build-id/2b/4e8e47a906c29c6ba016da4eafbdad2c471f0c.debug
No package /usr/lib/debug/.build-id/2e/6b671ae3ba351ce833f2d57a9d45a6ae87a62a.debug available. # libuuid
No package /usr/lib/debug/.build-id/2b/4e8e47a906c29c6ba016da4eafbdad2c471f0c.debug available. # libgcrypt
Error: Unable to find a match.

# dnf --enablerepo='*debug*' install libuuid-debuginfo libgcrypt-debuginfo
No package libuuid-debuginfo available.
Package libgcrypt-debuginfo-1.6.6-1.fc24.x86_64 is already installed, skipping.
Error: Unable to find a match.

# dnf --enablerepo='*debug*' install /usr/lib/debug/.build-id/b4/e28e91c0b1aabf78c6d6a886c52d631c5c9cd7.debug \
                                     /usr/lib/debug/.build-id/80/30d99fce8c0e53d52fc6e98088d688e55dcfc3.debug \
                                     /usr/lib/debug/.build-id/c6/c7f2f7ff7c600f90cdd97fde69baf3b4aaedbc.debug \
                                     /usr/lib/debug/.build-id/f9/14f2ebcfeed693ddf26e1ef677ffd0541b2abf.debug
Installed:
  mod_wsgi-debuginfo.x86_64 4.4.8-4.fc24              python-debuginfo.x86_64 2.7.12-2.fc24
  sssd-debuginfo.x86_64 1.13.4-4.fc24

# dnf --enablerepo='*debug*' install /usr/lib/debug/.build-id/39/1692f446abd53529b5db4f1bc90c200fc2c230.debug \
                                     /usr/lib/debug/.build-id/14/4cb76ce55d5f87ff78647a8807e2a47fa3bea5.debug \
                                     /usr/lib/debug/.build-id/56/417dfb8bd5b52dc3836592378276c87c80901c.debug \
                                     /usr/lib/debug/.build-id/01/3ecde3c37e2430cde20b3b8fd674a65160c5d1.debug \
                                     /usr/lib/debug/.build-id/56/7b010e6fef4fa0ec230bae81a46916f6f77192.debug \
                                     /usr/lib/debug/.build-id/3a/7ec6f2e5e11519dfc6861c7aba2a40a0939a77.debug \
                                     /usr/lib/debug/.build-id/df/8257188ee8cfc9e0d22a94dd16e7878882cbcf.debug \
                                     /usr/lib/debug/.build-id/de/cefb83cdd4f4503a161d5583c1ae273ff819d4.debug \
                                     /usr/lib/debug/.build-id/61/7981a87231ee4aa4d16121201b27260701f077.debug \
                                     /usr/lib/debug/.build-id/72/3cca9399adc3437780cf7e13e13a7534aff7ba.debug \
                                     /usr/lib/debug/.build-id/95/5724c610f2466a3bb406b030b3830dcc1b79d8.debug \
                                     /usr/lib/debug/.build-id/22/6928f7d56d60727e69224475c32d05c1e5269d.debug \
                                     /usr/lib/debug/.build-id/6f/181315a2daaa0753358f54c06402989a795a1c.debug \
                                     /usr/lib/debug/.build-id/3f/1c40760db05129a4dfab95f0612ed60a1e0618.debug \
                                     /usr/lib/debug/.build-id/7d/125b18e4de19cc4b37b257fc167b7f1f3ad3c4.debug \
                                     /usr/lib/debug/.build-id/36/60ad52b71e7debe4ec89b4464e7739338ae870.debug \
                                     /usr/lib/debug/.build-id/d8/0086d15b438325bed5e75a6b5f7fb18c9ac6d9.debug \
                                     /usr/lib/debug/.build-id/f2/bceee554d34b60963c7e382a82ce2b9e817524.debug \
                                     /usr/lib/debug/.build-id/25/505bddb74fce45ad73f714bdcc0e4378ee1a1c.debug \
                                     /usr/lib/debug/.build-id/9f/ea2a2e39b6ebb6a3c477a0f54a655e47a22ab3.debug \
                                     /usr/lib/debug/.build-id/0b/9cfbc835362854105113b540c77b9f52e076f7.debug
Installed:
  curl-debuginfo.x86_64 7.47.1-6.fc24               cyrus-sasl-debuginfo.x86_64 2.1.26-26.2.fc24
  http-parser-debuginfo.x86_64 2.6.0-2.fc24         libffi-debuginfo.x86_64 3.1-9.fc24
  libgit2-debuginfo.x86_64 0.24.1-1.fc24            libpsl-debuginfo.x86_64 0.13.0-1.fc24
  libssh2-debuginfo.x86_64 1.7.0-5.fc24             libunistring-debuginfo.x86_64 0.9.4-3.fc24
  nspr-debuginfo.x86_64 4.12.0-1.fc24               nss-debuginfo.x86_64 3.26.0-1.0.fc24
  nss-util-debuginfo.x86_64 3.26.0-1.0.fc24         openldap-debuginfo.x86_64 2.4.44-1.fc24
  python-cffi-debuginfo.x86_64 1.5.2-1.fc24         python-markupsafe-debuginfo.x86_64 0.23-9.fc24
  python-pygit2-debuginfo.x86_64 0.24.1-1.fc24

optional package installed (not necessary for pagure)

# dnf install sqlite
Installed:
  sqlite.x86_64 3.13.0-1.fc24

# dnf install ruby
Installed:
  libyaml.x86_64 0.1.6-8.fc24                       ruby.x86_64 2.3.1-56.fc24
  ruby-irb.noarch 2.3.1-56.fc24                     ruby-libs.x86_64 2.3.1-56.fc24
  rubygem-bigdecimal.x86_64 1.2.8-56.fc24           rubygem-did_you_mean.x86_64 1.0.0-56.fc24
  rubygem-io-console.x86_64 0.4.5-56.fc24           rubygem-json.x86_64 1.8.3-103.fc24
  rubygem-psych.x86_64 2.0.17-56.fc24               rubygem-rdoc.noarch 4.2.2-2.fc24
  rubygems.noarch 2.5.1-56.fc24                     rubypick.noarch 1.1.1-5.fc24