rpm-recipe
bill-auger edited this page 7 years ago

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
  • TODO: all configuration files and custom templates are under version control in $GITOLITE_HOME_DIR
  • TODO: this is accomplished by judicious use of symlinks which pagure may or may not handle well and not all the ones noted below are actually in place yet but this shows the current plan

important files:

$GITOLITE_HOME_DIR/
  .gitolite.rc           - gitolite config file
  .gitolite/
    conf/
      gitolite.conf      - file where pagure writes repo definitions and permissions
    keydir/              - directory where pagure writes user public keys
  .ssh/
    authorized_keys      - file where gitolite writes and ssh reads user public keys
  pagure.cfg             - main pagure app config file
  pagure.conf            - apache config file defining VHosts for the pagure and pagure-docs servers
  pagure.wsgi            - python wsgi config file for the pagure server
  pagure-docs.wsgi       - python wsgi config file for the pagure-docs server
  pagure_ev.service      - systemd service config file for the SSE events server
  pagure_webhook.service - systemd service config file for the webhooks server
  releases/              - directory where pagure writes user-uploaded static files
  repositories/          - directory where gitolite writes git repositories
  static/                - pagure static assets shadow directory
  templates/             - pagure HTML templates shadow directory
* gitolite.conf , authorized_keys , keydir/ , 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 and forks to python
  • /usr/share/pagure/pagure.wsgi references $GITOLITE_HOME_DIR/pagure.cfg and loads pagure
  • $GITOLITE_HOME_DIR/pagure.cfg references the remaining config files in $GITOLITE_HOME_DIR

set some environment 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_DIR below must match the user home as defined in /etc/passwd for $GITOLITE_USER
    $PAGURE_DATA_DIR below should be some large disk for storing repositories and tarballs
    
    $ sudo su
    # echo "GITOLITE_USER=gitolite3"                     >> /etc/environment
    # echo "GITOLITE_HOME_DIR=/var/lib/gitolite3"        >> /etc/environment
    # echo "PAGURE_DATA_DIR=/var/lib/gitolite3"          >> /etc/environment # (e.g. /mnt/pagure-data)
    # echo "PAGURE_CONFIG=$GITOLITE_HOME_DIR/pagure.cfg" >> /etc/environment
    # echo "PAGURE_APP_DOMAIN=notabug.org"               >> /etc/environment
    # echo "PAGURE_EMAIL_DOMAIN=notabug.org"             >> /etc/environment
    # echo "PAGURE_EMAIL_SALT=someverylargehexstring"    >> /etc/environment # (e.g. `rake secret`)
    # echo "PAGURE_SMTP_USER=your-mail-server-user"      >> /etc/environment
    # echo "PAGURE_SMTP_PASS=your-mail-server-pass"      >> /etc/environment
    # echo "PAGURE_SECRET=someotherverylargehexstring"   >> /etc/environment # (e.g. `rake secret`)
    # exit
    $ sudo su
    

prepare the system

# dnf install pagure pagure-milters pagure-ev pagure-webhook mod_ssl redis
# su -c 'gitolite setup -a dummy' $GITOLITE_USER
# if (( ### first time pagure install ### ))
> then mkdir -p $PAGURE_DATA_DIR/repositories/{docs,forks,tickets,requests,remotes}
>      mkdir -p $PAGURE_DATA_DIR/releases
>      mkdir -p $GITOLITE_HOME_DIR/.gitolite/keydir
> else ### migrating existing pagure data to a new machine ###
>      mkdir -p $GITOLITE_HOME_DIR/.gitolite
>      cp    -r $ORIG_GITOLITE_HOME_DIR/.gitolite/keydir/            $GITOLITE_HOME_DIR/.gitolite/keydir/
>      cp       $ORIG_GITOLITE_HOME_DIR/.gitolite/conf/gitolite.conf $GITOLITE_HOME_DIR/.gitolite/conf/gitolite.conf
>      cp    -r $ORIG_GITOLITE_HOME_DIR/.gitolite.rc                 $GITOLITE_HOME_DIR/.gitolite.rc
>      cp    -r $ORIG_GITOLITE_HOME_DIR/pagure.cfg                   $GITOLITE_HOME_DIR/pagure.cfg
>      cp    -r $ORIG_PAGURE_DATA_DIR/repositories/                  $PAGURE_DATA_DIR/repositories/
>      cp    -r $ORIG_PAGURE_DATA_DIR/releases/                      $PAGURE_DATA_DIR/releases/
> fi
# rm           /etc/httpd/conf.d/pagure.conf
# rm           /etc/pagure/pagure.cfg             # TODO: may not be necessary (see below)
# rm           /usr/share/pagure/pagure.wsgi      # TODO: may not be necessary (see below)
# rm           /usr/share/pagure/docs_pagure.wsgi # TODO: may not be necessary (see below)
# rm      -rf  $GITOLITE_HOME_DIR/repositories
# ln      -s   $GITOLITE_HOME_DIR/pagure.conf      /etc/httpd/conf.d/pagure.conf      # TODO: custom
# ln      -s   $GITOLITE_HOME_DIR/pagure.cfg       /etc/pagure/pagure.cfg             # TODO: may not be necessary if PAGURE_CONFIG is in /etc/environment
# ln      -s   $GITOLITE_HOME_DIR/pagure.wsgi      /usr/share/pagure/pagure.wsgi      # TODO: maybe just declare this in apache conf
# ln      -s   $GITOLITE_HOME_DIR/pagure-docs.wsgi /usr/share/pagure/docs_pagure.wsgi # TODO: maybe just declare this in apache conf
# ln      -s   $PAGURE_DATA_DIR/releases           /var/www/releases                  # TODO: maybe just declare this in apache conf
# ln      -s   $PAGURE_DATA_DIR/repositories       $GITOLITE_HOME_DIR/repositories
# chown   -R   $GITOLITE_USER:$GITOLITE_USER       $GITOLITE_HOME_DIR
# setfacl -Rdm user:apache:rx                      $GITOLITE_HOME_DIR

configure (TODO: these would be better as env vars)

  • 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

prepare the database

# su -c '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_DIR/pagure_webhook.service /usr/lib/systemd/system/pagure_webhook.service
# ln -s $GITOLITE_HOME_DIR/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

TODO:

Config

  • SHOW_PROJECTS_INDEX = ['repos', 'myrepos', 'myforks']
  • ADMIN_GROUP = 'sysadmin-main' # what should this be? if None user gets 500 error (fixed)
  • SSH_KEYS = {'RSA': {'fingerprint': '<foo>', 'pubkey': '<bar>'}}
  • SESSION_COOKIE_SECURE = False # should always be set to True in production

Features

  • redis # working
  • eventsource # NFG issue #10
  • webhooks # working issue #11
  • email # TODO: issue #7
  • docs # TODO: issue #3
  • adapt db # TODO: issue #16
  • namespaced repos # issue #3 - BLACKLISTED_PROJECTS , ALLOWED_PREFIX , BLACKLISTED_GROUPS would be relevant for this

DB

  • 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 but runs OK in root shell - (issue #22)

# 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"

PAGURE_ADMIN_USERS are not admins - (issue #23)

SSE not working - (issue #10)

# 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

useful commands:

# systemctl status httpd.service | tail -n 12          # <-- dump main server log
# chkconfig httpd on                                   # shows if server starts on init
# journalctl -lu pagure_ev | tail -n 12                # <-- dump events server log
$ curl --insecure https://localhost                    # <-- check main server
$ wget --no-check-certificate localhost                # <-- check main server
$ curl -I http://188.0.236.137:8080/my-project/issue/2 # <-- check events 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 rule
# firewall-cmd --permanent --zone=FedoraServer --add-service=http # permanent rule
# firewall-cmd --zone=FedoraServer --list-services
# $GITOLITE_HOME_DIR/stats  # list N ssh keys and repos managed by gitolite
# $GITOLITE_HOME_DIR/relaod # forcefully reload gitolite auth and rules

base packages installed

# 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 installed

# 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 packages 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

# dnf install elinks
Installed:
  elinks.x86_64 0.12-0.48.pre6.fc24     gpm-libs.x86_64 1.20.7-9.fc24     js.x86_64 1:1.8.5-25.fc24