[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: euscanwww/euscanwww/

2020-02-09 Thread Sebastian Pipping
commit: c9b3f8148df243dd30497afcba8aefbdd24a9400
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sun Feb  9 14:14:30 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:35 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=c9b3f814

euscanwww: Support loading oad Django SECRET_KEY from environment

Signed-off-by: Sebastian Pipping  gentoo.org>

 euscanwww/euscanwww/settings.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/euscanwww/euscanwww/settings.py b/euscanwww/euscanwww/settings.py
index 4ee020b..7523da3 100644
--- a/euscanwww/euscanwww/settings.py
+++ b/euscanwww/euscanwww/settings.py
@@ -115,7 +115,7 @@ STATICFILES_FINDERS = (
 )
 
 # Make this unique, and don't share it with anybody.
-SECRET_KEY = ''
+SECRET_KEY = os.environ.get('EUSCAN_SECRET_KEY', '')
 
 # List of callables that know how to import templates from various sources.
 TEMPLATE_LOADERS = (



[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: /

2020-02-09 Thread Sebastian Pipping
commit: bca3c0151fcb2fa409c26bc28044eba297250822
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sat Feb  8 18:40:50 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:35 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=bca3c015

docker: Dockerize euscanwww (W.I.P.)

Signed-off-by: Sebastian Pipping  gentoo.org>

 Dockerfile   | 67 
 docker-compose.yml   | 44 ++
 docker-entrypoint.sh | 20 
 requirements.txt | 41 
 4 files changed, 172 insertions(+)

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000..9dda8ec
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,67 @@
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+FROM gentoo/stage3-amd64:20200208
+
+RUN wget https://gentoo.osuosl.org/snapshots/gentoo-latest.tar.xz \
+&& \
+tar -C /var/db/repos/ -x -p -f gentoo-latest.tar.xz \
+&& \
+mv /var/db/repos/gentoo-20??/ /var/db/repos/gentoo/ \
+&& \
+rm gentoo-latest.tar.xz
+
+RUN emaint sync --repo gentoo
+
+RUN eselect profile show \
+&& \
+echo 'net-analyzer/rrdtool python' > 
/etc/portage/package.use/net-analyzer--rrdtool \
+&& \
+echo 'dev-lang/python:2.7 sqlite tk' > 
/etc/portage/package.use/dev-lang--python \
+&& \
+echo 'PYTHON_TARGETS="${PYTHON_TARGETS} python2_7"' >> 
/etc/portage/make.conf \
+&& \
+echo 'PYTHON_SINGLE_TARGET="python2_7"' >> /etc/portage/make.conf \
+&& \
+echo 'USE="${USE} bindist -syslog"' >> /etc/portage/make.conf
+
+# NOTE: First build dependencies, then runtime-only dependencies
+RUN emerge --tree -v -j2 --color y -1uU \
+dev-lang/python:2.7 \
+dev-libs/cyrus-sasl \
+dev-python/pip \
+dev-python/setuptools \
+dev-python/wheel \
+net-nds/openldap \
+\
+app-portage/eix \
+app-portage/gentoolkit \
+app-portage/layman \
+net-analyzer/rrdtool \
+sys-apps/portage \
+&& \
+rm -f /var/cache/distfiles/*
+
+ENV PATH=/root/.local/bin/:${PATH}
+COPY requirements.txt/tmp/euscan/
+RUN pip2 install --user -r /tmp/euscan/requirements.txt
+
+COPY setup.py README.rst /tmp/euscan/
+COPY bin//tmp/euscan/bin/
+COPY pym//tmp/euscan/pym/
+
+WORKDIR /tmp/euscan/
+RUN pip2 install --user .
+
+RUN pip2 check
+RUN bash -c 'diff -U0 <(pip2 freeze --user | sed 
"/^\(euscan\|virtualenv\)==/d" | sort -f) <(sed -e "s/ *#.*//" -e "/^$/d" 
/tmp/euscan/requirements.txt | sort -f)'
+
+COPY euscanwww/  /tmp/euscan/euscanwww/
+
+COPY docker-entrypoint.sh/root/
+
+WORKDIR /tmp/euscan/euscanwww/
+
+EXPOSE 55080
+ENTRYPOINT ["/root/docker-entrypoint.sh"]
+CMD []

diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 000..4daf0e2
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,44 @@
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+version: "3"
+
+services:
+  runserver:
+depends_on:
+  - celeryd
+image: ${COMPOSE_PROJECT_NAME}_celeryd:latest
+environment:
+  DJANGO_SETTINGS_MODULE: euscanwww.settings
+  EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+volumes:
+  - "./euscanwww/:/tmp/euscan/euscanwww/"
+  - "./pym/euscan/:/root/.local/lib64/python2.7/site-packages/euscan"
+ports:
+  - "127.0.0.1:55080:55080"
+tty: true
+
+  celerycam:
+depends_on:
+  - celeryd
+image: ${COMPOSE_PROJECT_NAME}_celeryd:latest
+environment:
+  DJANGO_SETTINGS_MODULE: euscanwww.settings
+  EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+volumes:
+  - "./euscanwww/:/tmp/euscan/euscanwww/"
+  - "./pym/euscan/:/root/.local/lib64/python2.7/site-packages/euscan"
+command: python2 manage.py celerycam
+tty: true
+
+  celeryd:
+build:
+  context: .
+environment:
+  DJANGO_SETTINGS_MODULE: euscanwww.settings
+  EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+volumes:
+  - "./euscanwww/:/tmp/euscan/euscanwww/"
+  - "./pym/euscan/:/root/.local/lib64/python2.7/site-packages/euscan"
+command: python2 manage.py celeryd -B -E -l INFO
+tty: true

diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100755
index 000..4d27768
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,20 @@
+#! /usr/bin/env bash
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+set -e
+set -u
+
+PS4='# '
+set -x
+
+id
+ip addr
+
+if [[ $# -gt 0 ]]; then
+exec "$@"
+fi
+
+python2 manage.py migrate
+
+exec python2 manage.py runserver 0.0.0.0:55080

diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 000..cde5aa8

[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: /

2020-02-09 Thread Sebastian Pipping
commit: 6aba927414d7befa769ede3f60c6773041d6d4df
Author: NP-Hardass  gmail  com>
AuthorDate: Sun Jun 11 08:05:28 2017 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:31 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=6aba9274

setup.py: drop south, update minimum django version

Signed-off-by: Sebastian Pipping  gentoo.org>

 setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index fd9e6da..9a71420 100755
--- a/setup.py
+++ b/setup.py
@@ -91,7 +91,7 @@ setup(
 # Command line utility
 'BeautifulSoup>=3.2.1',
 # Web interface
-'Django>=1.4', 'django-annoying>=0.7.6', 'South>=0.7',
+'Django>=1.7', 'django-annoying>=0.7.6', 
 'django-piston>=0.2.3', 'matplotlib>=1.1.0',
 'django-celery>=3.0.1', 'django-registration>=0.8',
 'python-ldap>=2.4.10', 'django-auth-ldap>=1.1',



[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: euscanwww/djeuscan/api/

2020-02-09 Thread Sebastian Pipping
commit: b5a82548c5d36191d6eae86b33d82069de3b5eaa
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sun Feb  9 23:11:25 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:35 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=b5a82548

Stop using django.conf.urls.defaults for Django >=1.6

Signed-off-by: Sebastian Pipping  gentoo.org>

 euscanwww/djeuscan/api/urls.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/euscanwww/djeuscan/api/urls.py b/euscanwww/djeuscan/api/urls.py
index 578a8be..27c8b95 100644
--- a/euscanwww/djeuscan/api/urls.py
+++ b/euscanwww/djeuscan/api/urls.py
@@ -1,4 +1,4 @@
-from django.conf.urls.defaults import url, patterns
+from django.conf.urls import url, patterns
 
 from piston.resource import Resource
 from handlers import RootHandler, StatisticsHandler, HerdsHandler, \



[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: euscanwww/djeuscan/migrations/, euscanwww/euscan_accounts/migrations/

2020-02-09 Thread Sebastian Pipping
commit: 4c3bbd4bea7d102f41e4efc9e3fec6c523e1f21f
Author: NP-Hardass  gmail  com>
AuthorDate: Sun Jun 11 07:32:07 2017 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:28 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=4c3bbd4b

euscanwww: Add initial migrations for django 1.8

Signed-off-by: Sebastian Pipping  gentoo.org>

 euscanwww/djeuscan/migrations/0001_initial.py  | 225 +
 .../euscan_accounts/migrations/0001_initial.py |  39 
 2 files changed, 264 insertions(+)

diff --git a/euscanwww/djeuscan/migrations/0001_initial.py 
b/euscanwww/djeuscan/migrations/0001_initial.py
new file mode 100644
index 000..5f9e1b3
--- /dev/null
+++ b/euscanwww/djeuscan/migrations/0001_initial.py
@@ -0,0 +1,225 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+from django.conf import settings
+import django.core.validators
+
+
+class Migration(migrations.Migration):
+
+dependencies = [
+migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+]
+
+operations = [
+migrations.CreateModel(
+name='Category',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('name', models.CharField(unique=True, max_length=128, 
validators=[django.core.validators.RegexValidator(b'^(?:\\w+?-\\w+?)|virtual$')])),
+('description', models.TextField(null=True, blank=True)),
+],
+options={
+'verbose_name_plural': 'categories',
+},
+),
+migrations.CreateModel(
+name='EuscanResult',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('datetime', models.DateTimeField()),
+('result', models.TextField(blank=True)),
+('scan_time', models.FloatField(null=True, blank=True)),
+('ebuild', models.CharField(max_length=256, blank=True)),
+],
+options={
+'get_latest_by': 'datetime',
+},
+),
+migrations.CreateModel(
+name='Herd',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('herd', models.CharField(unique=True, max_length=128, 
validators=[django.core.validators.RegexValidator(b'^\\S+?$')])),
+('email', models.CharField(blank=True, max_length=128, 
null=True, validators=[django.core.validators.EmailValidator()])),
+],
+),
+migrations.CreateModel(
+name='Log',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('datetime', models.DateTimeField()),
+('n_packages_gentoo', models.IntegerField(default=0)),
+('n_packages_overlay', models.IntegerField(default=0)),
+('n_packages_outdated', models.IntegerField(default=0)),
+('n_versions_gentoo', models.IntegerField(default=0)),
+('n_versions_overlay', models.IntegerField(default=0)),
+('n_versions_upstream', models.IntegerField(default=0)),
+],
+),
+migrations.CreateModel(
+name='Maintainer',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('name', models.CharField(max_length=128)),
+('email', models.CharField(unique=True, max_length=128, 
validators=[django.core.validators.EmailValidator()])),
+],
+),
+migrations.CreateModel(
+name='Overlay',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('name', models.CharField(unique=True, max_length=128, 
validators=[django.core.validators.RegexValidator(b'^\\S+?$')])),
+('description', models.TextField(null=True, blank=True)),
+('homepage', models.TextField(null=True, blank=True)),
+('overlay_path', models.CharField(max_length=256, null=True, 
blank=True)),
+],
+),
+migrations.CreateModel(
+name='Package',
+fields=[
+('id', models.AutoField(verbose_name='ID', serialize=False, 
auto_created=True, primary_key=True)),
+('category', models.CharField(max_length=128, 
validators=[django.core.validators.RegexValidator(b'^(?:\\w+?-\\w+?)|virtual$')])),
+('name', models.CharField(max_length=128, 

[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: euscanwww/euscanwww/

2020-02-09 Thread Sebastian Pipping
commit: f3fd93158f4fadf7290c8e2369d88db632d78612
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sun Feb  9 22:33:32 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:35 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=f3fd9315

settings: Set ALLOWED_HOSTS default to satisfy DEBUG=False

Signed-off-by: Sebastian Pipping  gentoo.org>

 euscanwww/euscanwww/settings.py | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/euscanwww/euscanwww/settings.py b/euscanwww/euscanwww/settings.py
index d9879ff..4ee020b 100644
--- a/euscanwww/euscanwww/settings.py
+++ b/euscanwww/euscanwww/settings.py
@@ -5,6 +5,12 @@ import os.path
 DEBUG = False
 TEMPLATE_DEBUG = DEBUG
 
+ALLOWED_HOSTS = [
+'0.0.0.0',
+'127.0.0.1',
+'172.0.0.0/8',  # Docker internal
+]
+
 ADMINS = (
 ('admin', 'ad...@example.com'),
 )



[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: euscanwww/djeuscan/processing/scan/, euscanwww/djeuscan/processing/misc/

2020-02-09 Thread Sebastian Pipping
commit: 778c8f4d3c4663457b180a6c7cee2e6d85fd135e
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sun Feb  9 21:40:04 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:35 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=778c8f4d

Stop using django.db.transaction.commit_on_success for Django >=1.8

Signed-off-by: Sebastian Pipping  gentoo.org>

 euscanwww/djeuscan/processing/misc/update_counters.py | 4 ++--
 euscanwww/djeuscan/processing/scan/scan_metadata.py   | 4 ++--
 euscanwww/djeuscan/processing/scan/scan_portage.py| 4 ++--
 euscanwww/djeuscan/processing/scan/scan_upstream.py   | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/euscanwww/djeuscan/processing/misc/update_counters.py 
b/euscanwww/djeuscan/processing/misc/update_counters.py
index 392b7b5..3abc6a2 100644
--- a/euscanwww/djeuscan/processing/misc/update_counters.py
+++ b/euscanwww/djeuscan/processing/misc/update_counters.py
@@ -1,4 +1,4 @@
-from django.db.transaction import commit_on_success
+from django.db.transaction import atomic
 from django.utils import timezone
 
 from djeuscan.models import Package, Herd, Maintainer, Version, HerdLog, \
@@ -36,7 +36,7 @@ def _add_last_ver(storage, version):
 storage[key] = version
 
 
-@commit_on_success
+@atomic
 def update_counters(fast=False, nolog=False, logger=None):
 logger = logger or FakeLogger()
 

diff --git a/euscanwww/djeuscan/processing/scan/scan_metadata.py 
b/euscanwww/djeuscan/processing/scan/scan_metadata.py
index 22bad3f..16474f5 100644
--- a/euscanwww/djeuscan/processing/scan/scan_metadata.py
+++ b/euscanwww/djeuscan/processing/scan/scan_metadata.py
@@ -5,7 +5,7 @@ from gentoolkit.metadata import MetaData
 
 import xml.etree.cElementTree as etree
 
-from django.db.transaction import commit_on_success
+from django.db.transaction import atomic
 from django.core.management.color import color_style
 from django.core.exceptions import ValidationError
 
@@ -236,7 +236,7 @@ class ScanMetadata(object):
 herd.maintainers.add(maintainer)
 
 
-@commit_on_success
+@atomic
 def scan_metadata(packages=None, category=None, logger=None, populate=False):
 scan_handler = ScanMetadata(logger=logger)
 

diff --git a/euscanwww/djeuscan/processing/scan/scan_portage.py 
b/euscanwww/djeuscan/processing/scan/scan_portage.py
index 857fce2..44abc2c 100644
--- a/euscanwww/djeuscan/processing/scan/scan_portage.py
+++ b/euscanwww/djeuscan/processing/scan/scan_portage.py
@@ -11,7 +11,7 @@ from layman import Layman
 
 from xml.etree.ElementTree import iterparse, ParseError
 
-from django.db.transaction import commit_on_success
+from django.db.transaction import atomic
 from django.db import models
 from django.core.management.color import color_style
 from django.conf import settings
@@ -395,7 +395,7 @@ def populate_overlays(logger):
 logger.info("+ [o] %s", overlay)
 
 
-@commit_on_success
+@atomic
 def scan_portage(packages=None, category=None, no_log=False, upstream=False,
  purge_packages=False, purge_versions=False, logger=None):
 

diff --git a/euscanwww/djeuscan/processing/scan/scan_upstream.py 
b/euscanwww/djeuscan/processing/scan/scan_upstream.py
index dc7ba1b..2686202 100644
--- a/euscanwww/djeuscan/processing/scan/scan_upstream.py
+++ b/euscanwww/djeuscan/processing/scan/scan_upstream.py
@@ -1,7 +1,7 @@
 import portage
 
 from django.utils import timezone
-from django.db.transaction import commit_on_success
+from django.db.transaction import atomic
 
 from euscan import CONFIG, output
 from euscan.scan import scan_upstream as euscan_scan_upstream
@@ -150,7 +150,7 @@ class ScanUpstream(object):
 version.delete()
 
 
-@commit_on_success
+@atomic
 def scan_upstream(packages=None, purge_versions=False,
   logger=None):
 logger = logger or FakeLogger()



[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: euscanwww/euscanwww/

2020-02-09 Thread Sebastian Pipping
commit: 531fc6248f3edda82105fa2925dabf70056c4a5c
Author: NP-Hardass  gmail  com>
AuthorDate: Sun Jun 11 07:28:12 2017 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 23:16:13 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=531fc624

euscanwww/settings.py: drop south

Signed-off-by: Sebastian Pipping  gentoo.org>

 euscanwww/euscanwww/settings.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/euscanwww/euscanwww/settings.py b/euscanwww/euscanwww/settings.py
index e1e752c..d9879ff 100644
--- a/euscanwww/euscanwww/settings.py
+++ b/euscanwww/euscanwww/settings.py
@@ -168,7 +168,6 @@ INSTALLED_APPS = (
 'django.contrib.admin',
 # Uncomment the next line to enable admin documentation:
 # 'django.contrib.admindocs',
-'south',
 'djcelery',
 'registration',
 'captcha'



[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: /

2020-02-09 Thread Sebastian Pipping
commit: f3cfe82d587d5efa73b828a1f69e3fa0136bdc1d
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sat Feb  8 18:40:50 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 21:24:54 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=f3cfe82d

docker: Dockerize euscanwww (W.I.P.)

Signed-off-by: Sebastian Pipping  gentoo.org>

 Dockerfile   | 70 
 docker-compose.yml   | 33 +
 docker-entrypoint.sh | 24 ++
 requirements.txt | 42 +++
 4 files changed, 169 insertions(+)

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000..c8e088d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,70 @@
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+FROM gentoo/stage3-amd64:20200208
+
+RUN wget https://gentoo.osuosl.org/snapshots/gentoo-latest.tar.xz \
+&& \
+tar -C /var/db/repos/ -x -p -f gentoo-latest.tar.xz \
+&& \
+mv /var/db/repos/gentoo-20??/ /var/db/repos/gentoo/ \
+&& \
+rm gentoo-latest.tar.xz
+
+RUN emaint sync --repo gentoo
+
+RUN eselect profile show \
+&& \
+echo 'net-analyzer/rrdtool python' > 
/etc/portage/package.use/net-analyzer--rrdtool \
+&& \
+echo 'dev-lang/python:2.7 sqlite tk' > 
/etc/portage/package.use/dev-lang--python \
+&& \
+echo 'PYTHON_TARGETS="${PYTHON_TARGETS} python2_7"' >> 
/etc/portage/make.conf \
+&& \
+echo 'PYTHON_SINGLE_TARGET="python2_7"' >> /etc/portage/make.conf \
+&& \
+echo 'USE="${USE} bindist -syslog"' >> /etc/portage/make.conf
+
+# NOTE: First build dependencies, then runtime-only dependencies
+RUN emerge --tree -v -j2 --color y -1uU \
+dev-lang/python:2.7 \
+dev-libs/cyrus-sasl \
+dev-python/pip \
+dev-python/setuptools \
+dev-python/wheel \
+net-nds/openldap \
+\
+app-portage/eix \
+app-portage/gentoolkit \
+app-portage/layman \
+net-analyzer/rrdtool \
+sys-apps/portage \
+&& \
+rm -f /var/cache/distfiles/*
+
+ENV PATH=/root/.local/bin/:${PATH}
+COPY requirements.txt/tmp/euscan/
+RUN pip2 install --user -r /tmp/euscan/requirements.txt
+
+COPY setup.py README.rst /tmp/euscan/
+COPY bin//tmp/euscan/bin/
+COPY pym//tmp/euscan/pym/
+COPY euscanwww/djeuscan/ /tmp/euscan/pym/djeuscan/
+COPY euscanwww/euscan_accounts/  /tmp/euscan/pym/euscan_accounts/
+COPY euscanwww/euscan_captcha/   /tmp/euscan/pym/euscan_captcha/
+COPY euscanwww/euscanwww//tmp/euscan/pym/euscanwww/
+
+COPY docker-entrypoint.sh  /root/
+
+WORKDIR /tmp/euscan/
+
+RUN pip2 install --user .
+
+RUN pip2 check
+RUN bash -c 'diff -U0 <(pip2 freeze --user | sed 
"/^\(euscan\|virtualenv\)==/d" | sort -f) <(sed -e "s/ *#.*//" -e "/^$/d" 
/tmp/euscan/requirements.txt | sort -f)'
+
+RUN rm -Rf /tmp/euscan/
+
+EXPOSE 55080
+ENTRYPOINT ["/root/docker-entrypoint.sh"]
+CMD []

diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 000..5bcec2f
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,33 @@
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+version: "3"
+
+services:
+  runserver:
+depends_on:
+  - celeryd
+image: ${COMPOSE_PROJECT_NAME}_celeryd:latest
+environment:
+  DJANGO_SETTINGS_MODULE: euscanwww.settings
+  EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+tty: true
+
+  celerycam:
+depends_on:
+  - celeryd
+image: ${COMPOSE_PROJECT_NAME}_celeryd:latest
+environment:
+  DJANGO_SETTINGS_MODULE: euscanwww.settings
+  EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+command: django-admin celerycam
+tty: true
+
+  celeryd:
+build:
+  context: .
+environment:
+  DJANGO_SETTINGS_MODULE: euscanwww.settings
+  EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+command: django-admin celeryd -B -E -l INFO
+tty: true

diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100755
index 000..508d265
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,24 @@
+#! /usr/bin/env bash
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+set -e
+set -u
+
+PS4='# '
+set -x
+
+id
+ip addr
+
+manage_py() {
+django-admin "$@"
+}
+
+if [[ $# -gt 0 ]]; then
+exec "$@"
+fi
+
+manage_py migrate
+
+exec manage_py runserver 0.0.0.0:55080

diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 000..8bfe7f6
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,42 @@
+# Direct dependencies (testing)
+factory-boy==1.1.3
+
+# Direct dependencies (command line utility)
+BeautifulSoup==3.2.1
+
+# Direct dependencies (web interface)
+ansi2html==0.9.1
+Django==1.8

[gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: /

2020-02-09 Thread Sebastian Pipping
commit: 9a1f580b5260f121cbf12c705fdea1777e38eec0
Author: Sebastian Pipping  gentoo  org>
AuthorDate: Sun Feb  9 18:04:43 2020 +
Commit: Sebastian Pipping  gentoo  org>
CommitDate: Sun Feb  9 18:04:43 2020 +
URL:https://gitweb.gentoo.org/proj/euscan.git/commit/?id=9a1f580b

docker: Fix approach to installation of rddtool bindings

Signed-off-by: Sebastian Pipping  gentoo.org>

 Dockerfile   | 2 ++
 requirements.txt | 1 -
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 680ca48..9ea5cee 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,6 +17,8 @@ RUN eselect profile show \
 && \
 echo 'PYTHON_TARGETS="${PYTHON_TARGETS} python2_7"' >> 
/etc/portage/make.conf \
 && \
+echo 'PYTHON_SINGLE_TARGET="python2_7"' >> /etc/portage/make.conf \
+&& \
 echo 'USE="${USE} bindist sqlite -syslog"' >> /etc/portage/make.conf
 
 # NOTE: First build dependencies, then runtime-only dependencies

diff --git a/requirements.txt b/requirements.txt
index ee22ea2..391edc6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -15,7 +15,6 @@ django-recaptcha==0.0.4
 django-registration==0.8
 matplotlib==2.2.5
 python-ldap==2.4.10
-rrdtool==0.1.15
 South==0.7
 
 # Indirect dependencies