public inbox for [email protected]
help / color / mirror / Atom feedFrom: Sandeep Thakkar <[email protected]>
To: Dave Page <[email protected]>
Cc: pgadmin-hackers <[email protected]>
Cc: Hamid Quddus <[email protected]>
Cc: Devrim GÜNDÜZ <[email protected]>
Subject: Re: Patch for pgAdmin4 RPM package
Date: Thu, 2 Jun 2016 20:53:21 +0530
Message-ID: <CANFyU96uyb+oU8biqEgtOu8oRUcPRRxmG3L5-KqG15aTjxHtwg@mail.gmail.com> (raw)
In-Reply-To: <CANFyU97jFmRRvF9y9JHOVQCJSd1pJiY1YEvKPpDfZbbwCJ-YmA@mail.gmail.com>
References: <CANFyU96tOSdX00+ZjUZ++wF9qzLt9UE_YdKjDWVzHGik+5kB4w@mail.gmail.com>
<CA+OCxoxBDt82P75Q4Cy4fBkznkPBW3YJwPz+wFARbBBSoi3fgg@mail.gmail.com>
<CANFyU97Ofo-fTF5HmNqrfX=i6a=6eJayksNq=W2Ay2yhT4ig5g@mail.gmail.com>
<CA+OCxoxgLB-mE=-_qHsQbBbziJ2D+h9qVRx9Am7hgrgpc52gkw@mail.gmail.com>
<CANFyU96uUAGHvTLOj_XcK3hC-DqzrpxrWxvPFfFC6J6WjKH29A@mail.gmail.com>
<CANFyU97jFmRRvF9y9JHOVQCJSd1pJiY1YEvKPpDfZbbwCJ-YmA@mail.gmail.com>
List-Unsubscribe: <mailto:[email protected]?body=unsub%20pgadmin-hackers>
Hi Devrim, Hi Dave,
I have updated the patch. The earlier patch may fail because of app bundle
commit in git.
For testing, you may define the source tarball location as :
Source0:
http://bugatti.pn.in.enterprisedb.com/temp/pgadmin4/%{name}-v%{version}.tar.gz
Known issue that I'm still working on:
1. web rpm has a dependency on doc. But, even if I install doc, the web
still complains. Here is the scenario:
[root@localhost tmp]# rpm -ivh
dist/noarch/pgadmin4-web-1.0_dev-1.rhel7.noarch.rpm
error: Failed dependencies:
*pgadmin4-doc = 1.0_dev is needed by pgadmin4-web-1.0_dev-1.rhel7.noarch*
... ( trimmed the python dependencies list here...)
[root@localhost tmp]# rpm -ivh
dist/noarch/pgadmin4-docs-1.0_dev-1.rhel7.noarch.rpm
Preparing... #################################
[100%]
Updating / installing...
1:pgadmin4-docs-1.0_dev-1.rhel7 #################################
[100%]
[root@localhost tmp]# yum list | grep pgadmin4-docs
pgadmin4-docs.noarch 1.0_dev-1.rhel7
installed
[root@localhost tmp]# rpm -ivh
dist/noarch/pgadmin4-web-1.0_dev-1.rhel7.noarch.rpm
error: Failed dependencies:
*pgadmin4-doc = 1.0_dev is needed by pgadmin4-web-1.0_dev-1.rhel7.noarch*
--
Thanks!
On Thu, Jun 2, 2016 at 6:29 PM, Sandeep Thakkar <
[email protected]> wrote:
> Hi
>
> Few changes in the updated patch:
> - added the missing modules in the specfile. The unavailable modules are
> still commented.
> - added changelog in specfile
> - added dependency of pgadmin4-doc on pgadmin4-web
>
> On Wed, Jun 1, 2016 at 2:57 PM, Sandeep Thakkar <
> [email protected]> wrote:
>
>> Hi Devrim,
>>
>> I have attached the patch for review. Please note that right now I have
>> commented the python dependencies (in Requires) which you are building.
>> Please review and let me know if specfile or anything else needs some
>> changes. Once the rpms are built, please let me know how to install them so
>> that I will enable those dependencies and do the testing.
>>
>> Hi Dave,
>>
>> The rpm will be built in $SRC/rpm-build. Inside this, we have the
>> directories for sources (where tarball will be downloaded - for testing, I
>> have mentioned the path of Bugatti :) ), build, etc.
>>
>> The html docs was not building and I had to make changes in docs/conf.py
>> and install sphinx_rtd_theme. I have added this dependency and the Sphinx
>> in the specfile. May be should add it in the requirements also? I tested
>> this change on OS X and make docs is building fine.
>>
>> Since web package is installed in the default python site-packages as
>> pgadmin4-web-v1 (for release "1"), with the help of Neel, I could made
>> changes in Server.cpp to find that location. But, couldn't understand how
>> to get the app release info, hence right now hard-coded the string as
>> 'pgadmin4-web-v1".
>>
>> Note: In the patch, the Makefile and .gitignore also contains the mac
>> related changes. This is just to see how they will look finally after mac
>> and rpm changes are done. I will remove them from the rpm patch once the
>> mac appbundle patch is committed.
>>
>> Questions:
>> 1. Should we add 'docs' dependency target for 'rpm' like we did for
>> appbundle?
>> 2. Should web rpm require doc rpm? I guess so, otherwise online help
>> won't work. Right?
>>
>> On Fri, May 27, 2016 at 6:35 PM, Dave Page <[email protected]> wrote:
>>
>>> [Adding Devrim]
>>>
>>> On Fri, May 27, 2016 at 1:55 PM, Sandeep Thakkar
>>> <[email protected]> wrote:
>>> >
>>> >
>>> > On Mon, May 9, 2016 at 6:35 PM, Dave Page <[email protected]> wrote:
>>> >>
>>> >> Hi
>>> >>
>>> >> Initial eyeball review comments below...
>>> >>
>>> >> On Fri, Apr 22, 2016 at 11:57 AM, Sandeep Thakkar
>>> >> <[email protected]> wrote:
>>> >>>
>>> >>> Hi Team, Dave,
>>> >>>
>>> >>> Attached herewith are two patches.
>>> >>>
>>> >>> pgadmin4-rpm.patch - This is the main patch that includes scripts,
>>> >>> makefiles and spec to create RPMs for RHEL6/RHEL7/F-22/F-23/F-24.
>>> >>
>>> >>
>>> >> Can we keep the directory names in lower case?
>>> >>
>>> >
>>> > Sure. Will do that.
>>> >>>
>>> >>> It will create two RPMs i.e pgadmin4 and pgadmin4-web. The pgadmin4
>>> tpm
>>> >>> depends on web and the web rpm depends on the python packages. I have
>>> >>> commented the list of packages which are not available on some
>>> systems so
>>> >>> that Devrim can build them.
>>> >>>
>>> >>> The installation path for pgadmin4 is
>>> "/usr/pgadmin4-<major>.<minor>" and
>>> >>> pgadmin4-web is the site-packages/pgadmin4-web
>>> >>
>>> >> Shouldn't the -web package also have the major.minor version number
>>> in the
>>> >> path, to allow side-by-side installation?
>>> >
>>> > Right. Now that we don't have major/minor, so, will it be
>>> /usr/pgadmin4-v1
>>> > and pgadmin4-web-v1 ? Or?
>>>
>>> I think that's fine.
>>>
>>> >>
>>> >>
>>> >>>
>>> >>> pgadmin4-server-ini.patch - This is the patch for
>>> runtime/Server.cpp. As
>>> >>> said pgadmin4-web and runtime installation directories are different
>>> and
>>> >>> that means web does not exists in parallel to runtime like in
>>> sources.
>>> >>>
>>> >>> I observed that the location of application settings was not defined
>>> in
>>> >>> Server.cpp. As per QSettings doc, the default location on Unix is the
>>> >>> $HOME/.config/<companyname>/<appname>.conf. Here, $HOME depends on
>>> the user
>>> >>> that runs the application. So, I thought why not to define the
>>> application
>>> >>> settings in application directory itself. RPM then knows where to
>>> define the
>>> >>> ApplicationPath. I tested it and it worked fine with me. I haven't
>>> done this
>>> >>> change for platform dependent.
>>> >>
>>> >> Doesn't that prevent non-root users from changing the settings? Or
>>> (if you
>>> >> widen the permissions on the ini file), allow one user to
>>> mis-configure the
>>> >> app for others? I think what is needed here is a search path change,
>>> much
>>> >> like you added for the Mac app bundle.
>>> >>
>>> > Right. Will use python command to find the site-packages path and then
>>> > concatenate pgadmin4-web directory name.
>>>
>>> OK.
>>>
>>> >> Other thoughts:
>>> >>
>>> >> - Please rename the README to README.txt
>>> >>
>>> >> - The code to build the RPMs should be entirely confined to pkg/rpm. A
>>> >> Makefile target should be added to /Makefile to build/clean the
>>> targets
>>> >> (this mistake was made with the Mac package too, but was one of the
>>> original
>>> >> requirements).
>>> >>
>>> >> Please resolve these issues and I'll take another look.
>>> >>
>>> > Sure. Will share it with you soon.
>>>
>>> -> Devrim please :-)
>>>
>>> --
>>> Dave Page
>>> Blog: http://pgsnake.blogspot.com
>>> Twitter: @pgsnake
>>>
>>> EnterpriseDB UK: http://www.enterprisedb.com
>>> The Enterprise PostgreSQL Company
>>>
>>
>>
>>
>> --
>> Sandeep Thakkar
>>
>>
>
>
> --
> Sandeep Thakkar
>
>
--
Sandeep Thakkar
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Attachments:
[application/octet-stream] pgadmin-rpm-jun02.patch (44.3K, 3-pgadmin-rpm-jun02.patch)
download | inline diff:
diff --git a/.gitignore b/.gitignore
index 562fee6..c11f83d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,4 +25,5 @@ pgadmin4.log
/MANIFEST.in
/build
/mac-build
+/rpm-build
/dist
diff --git a/Makefile b/Makefile
index 3f4e5fc..5a10678 100644
--- a/Makefile
+++ b/Makefile
@@ -13,9 +13,9 @@ SHELL = /bin/sh
# High-level targets
#########################################################################
-all: docs install-pip-requirements pip appbundle
+all: docs install-pip-requirements pip appbundle rpm
-clean: clean-pip clean-docs clean-appbundle
+clean: clean-pip clean-docs clean-appbundle clean-rpm
#########################################################################
# Python PIP package
@@ -35,6 +35,7 @@ PGADMIN_SRC_DIR = pgadmin4
PGADMIN_EGG = ${PGADMIN_SRC_DIR}.egg-info
PGADMIN_BUILD = build
PGADMIN_MACBUILD = mac-build
+PGADMIN_RPMBUILD = rpm-build
PGADMIN_DIST = dist
PGADMIN_MANIFEST = MANIFEST.in
PGADMIN_INSTALL_CMD = pip install --use-wheel --find-links=${PGADMIN_DIST} ${PGADMIN_SRC_DIR}
@@ -104,4 +105,12 @@ clean-appbundle:
rm -rf ${PGADMIN_MACBUILD}
rm -rf ${PGADMIN_DIST}/pgadmin4*.dmg*
+rpm:
+ ./pkg/rpm/build.sh
+
+clean-rpm:
+ rm -rf ${PGADMIN_RPMBUILD}
+ rm -rf ${PGADMIN_DIST}/noarch
+ rm -rf ${PGADMIN_DIST}/x86_64
+
.PHONY: docs
diff --git a/docs/en_US/conf.py b/docs/en_US/conf.py
index 93ad4e9..ac7c9fc 100644
--- a/docs/en_US/conf.py
+++ b/docs/en_US/conf.py
@@ -17,6 +17,7 @@ import sys, os
root = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, root + '/../../web/')
import config
+import sphinx_rtd_theme
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
@@ -104,7 +105,7 @@ html_theme = 'sphinx_rtd_theme'
#html_theme_options = {}
# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
+html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
diff --git a/pkg/rpm/README.txt b/pkg/rpm/README.txt
new file mode 100644
index 0000000..9bbd25e
--- /dev/null
+++ b/pkg/rpm/README.txt
@@ -0,0 +1,30 @@
+Installing pgAdmin
+==================
+
+This document describes how to build pgAdmin on Linux and generate the RPMs.
+
+Supported Versions:
+
+ - RHEL6 or above, Fedora 22 or above
+
+Required Packages:
+
+ - All the required packages are mentioned in the requirements file. They should be
+installed with yum/dnf. On RHEL, some python modules are available only through EPEL.
+
+1. Python devel
+ - Python 2.6 or above
+
+2. Sphinx (to build docs)
+
+3. QT devel
+ - Qt 4.6 or above, QT 5
+
+4. PostgreSQL installation
+ - PostgreSQL 9.1 or above
+
+
+Building:
+
+To build, go to pgAdmin4 source root directory and execute "make rpm". This will
+create the RPMs for runtime, web and doc in $SRC/dist
diff --git a/pkg/rpm/build.sh b/pkg/rpm/build.sh
new file mode 100755
index 0000000..a6ebd81
--- /dev/null
+++ b/pkg/rpm/build.sh
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+#Script to create the pgAdmin4 RPMs.
+
+# Check whether lsb_release exists to find the OS information
+if [ ! -f /usr/bin/lsb_release ]
+then
+ echo
+ echo "ERROR: lsb_release command does not exist. Please install it with"
+ echo
+ echo "yum -y install redhat-lsb-core"
+ echo
+ echo "Exiting..."
+ echo
+ exit 1
+fi
+
+# Check if spectool exists to download the sources
+if [ ! -f /usr/bin/spectool ]
+then
+ echo
+ echo "ERROR: spectool command does not exist. Please install it with"
+ echo
+ echo "yum -y install rpmdevtools"
+ echo
+ echo "Exiting..."
+ echo
+ exit 1
+fi
+
+# Gather some information from the OS: OS name, version and arch:
+LSB_DISTRO_NAME=`lsb_release -i -s`
+LSB_DISTRO_VERSION=`lsb_release -r -s`
+DISTRO_ARCH=`uname -m`
+
+# We need the lowercase version of the distro name:
+LSB_DISTRO_NAME=`echo $LSB_DISTRO_NAME | awk '{print tolower($0)}'`
+
+if [ "$LSB_DISTRO_NAME" = "centos" ]; then
+ LSB_DISTRO_VERSION=`echo $LSB_DISTRO_VERSION | cut -d"." -f1`
+ PKG_DIR="el-$LSB_DISTRO_VERSION"
+else
+ PKG_DIR="f-$LSB_DISTRO_VERSION"
+fi
+
+# Variables
+export TOPDIR=$(cd `dirname $0` && pwd)/../..
+export RPMBUILDROOT=$TOPDIR/rpm-build
+export SOURCEDIR=$RPMBUILDROOT/sources
+export BUILDDIR=$RPMBUILDROOT/build
+export BUILDROOT=$RPMBUILDROOT/buildroot
+export DISTROOT=$TOPDIR/dist
+
+# Create the directories if not exist
+mkdir -p $SOURCEDIR
+mkdir -p $BUILDDIR
+mkdir -p $BUILDROOT
+mkdir -p $DISTROOT
+
+# Find the pgAdmin4 app name and version from config.py
+export APP_RELEASE=`grep "^APP_RELEASE" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
+export APP_REVISION=`grep "^APP_REVISION" web/config.py | cut -d"=" -f2 | sed 's/ //g'`
+export APP_NAME=`grep "^APP_NAME" web/config.py | cut -d"=" -f2 | sed "s/'//g"`
+# We want app name in lower case with no spaces
+export APP_NAME=`echo $APP_NAME | sed 's/ //g' | awk '{print tolower($0)}'`
+export APP_LONG_VERSION=$APP_RELEASE.$APP_REVISION
+export APP_SHORT_VERSION=`echo $APP_LONG_VERSION | cut -d . -f1,2`
+export APP_SUFFIX=`grep "^APP_SUFFIX" web/config.py | cut -d"=" -f2 | sed 's/ //g' | sed "s/'//g"`
+if [ ! -z $APP_SUFFIX ]; then
+ export APP_LONG_VERSION=$APP_LONG_VERSION-$APP_SUFFIX
+ export APP_REVISION="${APP_REVISION}_$APP_SUFFIX" #hyphen not allowed in SPEC for version
+fi
+
+# Generate SPEC
+cd ./pkg/rpm/$PKG_DIR
+
+sed -e "s/APP_REL/$APP_RELEASE/" \
+ -e "s/APP_REV/$APP_REVISION/" \
+ -e "s/APP_NAME/$APP_NAME/" \
+ -e "s/DISTRO_ARCH/$DISTRO_ARCH/" pgadmin4.spec.in > pgadmin4.spec
+
+# Build RPMs
+make rpm || exit 1
+
+# Clean up buildroot after successful build
+echo "Cleaning up..."
+rm -rf $RPMBUILDROOT
+
diff --git a/pkg/rpm/common/Makefile.global b/pkg/rpm/common/Makefile.global
new file mode 100644
index 0000000..31a6c4c
--- /dev/null
+++ b/pkg/rpm/common/Makefile.global
@@ -0,0 +1,22 @@
+
+prep:
+ # Update spec file, patches, etc, before running spectool:
+ git pull
+ # Use spectool to download source files, especially tarballs.
+ spectool -g -S $(SPECFILE) -C $(SOURCEDIR)
+
+allclean:
+ git clean -df
+
+clean:
+ rm -rf i386/ i586/ i686/ x86_64/ noarch/
+ rm -f *.src.rpm
+ rm -f *.tar *.tar.gz *.tar.bz2 *.tgz *.zip .xz
+
+rpm: prep
+ rpmbuild --define "_sourcedir $(SOURCEDIR)" \
+ --define "_specdir $(PWD)" \
+ --define "_builddir $(BUILDDIR)" \
+ --define "_rpmdir $(DISTROOT)" \
+ --define "_buildrootdir $(BUILDROOT)" \
+ --define "dist $(DIST)" -bb $(SPECFILE)
diff --git a/pkg/rpm/el-6/Makefile b/pkg/rpm/el-6/Makefile
new file mode 100644
index 0000000..8a31664
--- /dev/null
+++ b/pkg/rpm/el-6/Makefile
@@ -0,0 +1,8 @@
+
+ARCH=`rpm --eval "%{_arch}"`
+DIR=`pwd`
+DIST=.rhel6
+SPECFILE="pgadmin4.spec"
+
+# Now, include global Makefile
+include ../common/Makefile.global
diff --git a/pkg/rpm/el-6/pgadmin4.spec.in b/pkg/rpm/el-6/pgadmin4.spec.in
new file mode 100644
index 0000000..f178508
--- /dev/null
+++ b/pkg/rpm/el-6/pgadmin4.spec.in
@@ -0,0 +1,230 @@
+
+%define pgAdmin4_release APP_REL
+%define pgAdmin4_revision APP_REV
+
+%define name APP_NAME
+%define pgadmin4instdir /usr/%{name}-v%{pgAdmin4_release}
+%define pgadmin4_webinstdir %{name}-web-v%{pgAdmin4_release}
+
+Name: %{name}
+Version: %{pgAdmin4_release}.%{pgAdmin4_revision}
+Release: 1%{?dist}
+Summary: pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+
+Group: Applications/Databases
+License: PostgreSQL License
+URL: http://www.pgadmin.org
+Source0: ftp://ftp.postgresql.org/pub/pgadmin4/release/v%{version}/src/%{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildArch: DISTRO_ARCH
+
+BuildRequires: mesa-libGL-devel
+BuildRequires: gcc-c++
+Requires: pgadmin4-web = %{version}
+%if 0%{?fedora}
+BuildRequires: qt5-qtbase-devel >= 5.1
+BuildRequires: qt5-qtwebkit-devel
+%define QMAKE /usr/bin/qmake-qt5
+%else
+BuildRequires: qt-devel >= 4.6
+BuildRequires: qtwebkit-devel
+%define QMAKE /usr/lib64/qt4/bin/qmake
+%endif
+
+%if 0%{?fedora}
+BuildRequires: python3-devel
+Requires: python >= 3.3
+%else
+BuildRequires: python-devel
+Requires: python >= 2.6
+%endif
+
+%if 0%{?fedora}
+Requires: qt >= 5.1
+%else
+Requires: qt >= 4.6
+%endif
+
+%description
+pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+pgAdmin 4 is being written as a web application in Python, using jQuery and
+Bootstrap for the client side processing and UI. On the server side, Flask is
+being utilised.
+
+Although developed using web technologies, we intend for pgAdmin 4 to be usable
+either on a web server using a browser, or standalone on a workstation. The
+runtime/ subdirectory contains a QT based runtime application intended to allow
+this - it is essentially a browser and Python interpretor in one package which
+will be capable of hosting the Python application and presenting it to the user
+as a desktop application.
+
+%package docs
+Summary: Documentation for pgAdmin4
+Group: Applications/Databases
+BuildArch: noarch
+# These are required for -docs subpackage:
+%if 0%{?fedora}
+BuildRequires: python3-sphinx
+BuildRequires: python3-sphinx_rtd_theme
+%else
+BuildRequires: python-sphinx
+BuildRequires: python-sphinx_rtd_theme
+%endif
+
+%description docs
+This package contains documentation for various languages,
+which are in html format.
+
+%package web
+Summary: pgAdmin4 web package
+BuildArch: noarch
+Requires: %{name}-doc = %{version}
+%if 0%{?fedora}
+Requires: python3-babel
+Requires: python3-flask
+Requires: python3-flask-sqlalchemy
+Requires: python3-flask-wtf
+Requires: python3-jinja2
+Requires: python3-markupsafe
+Requires: python3-sqlalchemy
+Requires: python3-wtforms
+Requires: python3-beautifulsoup4
+Requires: python3-blinker
+Requires: python3-html5lib
+Requires: python3-itsdangerous
+Requires: python3-psycopg2
+Requires: python3-six
+Requires: python3-crypto
+Requires: python3-simplejson
+Requires: python3-dateutil
+Requires: python3-werkzeug
+Requires: python3-sqlparse
+Requires: python3-docutils
+Requires: python3-extras
+Requires: python3-fixtures
+Requires: python3-linecache2
+Requires: python3-pbr
+Requires: python3-pygments
+Requires: python3-mimeparse
+Requires: python3-snowballstemmer
+Requires: python3-testscenarios
+Requires: python3-testtools
+Requires: python3-traceback2
+Requires: python3-unittest2
+Requires: python3-wheel
+#Requires: python3-pyrsistent
+#Requires: python3-flask-babel
+#Requires: python3-speaklater
+#Requires: python3-passlib
+#Requires: python3-flask-gravatar
+#Requires: python3-flask-mail
+#Requires: python3-flask-security
+#Requires: python3-flask-login
+#Requires: python3-flask-principal
+#Requires: python3-django-htmlmin
+%else
+Requires: python-babel
+Requires: python-flask
+Requires: python-flask-sqlalchemy
+Requires: python-flask-wtf
+Requires: python-jinja2
+Requires: python-markupsafe
+Requires: python-sqlalchemy
+Requires: python-wtforms
+Requires: python-beautifulsoup4
+Requires: python-blinker
+Requires: python-html5lib
+Requires: python-itsdangerous
+Requires: python-psycopg2
+Requires: python-six
+Requires: python-crypto
+Requires: python-simplejson
+Requires: python-dateutil
+Requires: python-werkzeug
+Requires: pytz
+Requires: python-sqlparse
+Requires: python-docutils
+Requires: python-extras
+Requires: python-fixtures
+Requires: python-linecache2
+Requires: python-pbr
+Requires: python-pygments
+Requires: python-mimeparse
+Requires: python-snowballstemmer
+Requires: python-testscenarios
+Requires: python-testtools
+Requires: python-traceback2
+Requires: python-unittest2
+Requires: python2-sphinx-theme-alabaster
+#Requires: python-pyrsistent
+#Requires: python-flask-babel
+#Requires: python-speaklater
+#Requires: python-passlib
+#Requires: python-flask-gravatar
+#Requires: python-flask-mail
+#Requires: python-flask-security
+#Requires: python-flask-login
+#Requires: python-flask-principal
+#Requires: python-django-htmlmin
+#Requires: python-importlib
+%endif
+
+%if 0%{?fedora}
+%define PYTHON_SITELIB %{python3_sitelib}
+%else
+%define PYTHON_SITELIB %{python2_sitelib}
+%endif
+
+%description web
+This package contains the required files to run pgAdmin4 as a web application
+
+%prep
+%setup -n pgadmin4/runtime
+
+%build
+cd ../runtime
+%{QMAKE} -o Makefile pgAdmin4.pro
+make
+cd ..
+LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C docs/en_US -f Makefile.sphinx html
+#chrpath -d pgAdmin4
+
+%install
+rm -rf %{buildroot}
+cd ..
+install -d -m 755 %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+cp -r docs/en_US/_build/html %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+cd runtime
+install -d -m 755 %{buildroot}%{pgadmin4instdir}/runtime
+cp pgAdmin4 %{buildroot}%{pgadmin4instdir}/runtime
+
+install -d -m 755 %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cp -pR ../web/* %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cd %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+rm -f pgadmin4.db config_local.* config*.pyc
+echo "SERVER_MODE = False" > config_local.py
+echo "MINIFY_HTML = False" >> config_local.py
+echo "HTML_HELP = '%{_docdir}/pgadmin4-doc-v1/html/'" >> config_local.py
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{pgadmin4instdir}/runtime/pgAdmin4
+
+%files web
+%defattr(-,root,root,-)
+%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+%doc
+
+%files docs
+%defattr(-,root,root)
+%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+%changelog
+* Fri Jun 03 2016 Sandeep Thakkar <[email protected]>
+- Initial RPM for v1.0alpha1
+
diff --git a/pkg/rpm/el-7/Makefile b/pkg/rpm/el-7/Makefile
new file mode 100644
index 0000000..1eb0ea0
--- /dev/null
+++ b/pkg/rpm/el-7/Makefile
@@ -0,0 +1,8 @@
+
+ARCH=`rpm --eval "%{_arch}"`
+DIR=`pwd`
+DIST=.rhel7
+SPECFILE="pgadmin4.spec"
+
+# Now, include global Makefile
+include ../common/Makefile.global
diff --git a/pkg/rpm/el-7/pgadmin4.spec.in b/pkg/rpm/el-7/pgadmin4.spec.in
new file mode 100644
index 0000000..f178508
--- /dev/null
+++ b/pkg/rpm/el-7/pgadmin4.spec.in
@@ -0,0 +1,230 @@
+
+%define pgAdmin4_release APP_REL
+%define pgAdmin4_revision APP_REV
+
+%define name APP_NAME
+%define pgadmin4instdir /usr/%{name}-v%{pgAdmin4_release}
+%define pgadmin4_webinstdir %{name}-web-v%{pgAdmin4_release}
+
+Name: %{name}
+Version: %{pgAdmin4_release}.%{pgAdmin4_revision}
+Release: 1%{?dist}
+Summary: pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+
+Group: Applications/Databases
+License: PostgreSQL License
+URL: http://www.pgadmin.org
+Source0: ftp://ftp.postgresql.org/pub/pgadmin4/release/v%{version}/src/%{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildArch: DISTRO_ARCH
+
+BuildRequires: mesa-libGL-devel
+BuildRequires: gcc-c++
+Requires: pgadmin4-web = %{version}
+%if 0%{?fedora}
+BuildRequires: qt5-qtbase-devel >= 5.1
+BuildRequires: qt5-qtwebkit-devel
+%define QMAKE /usr/bin/qmake-qt5
+%else
+BuildRequires: qt-devel >= 4.6
+BuildRequires: qtwebkit-devel
+%define QMAKE /usr/lib64/qt4/bin/qmake
+%endif
+
+%if 0%{?fedora}
+BuildRequires: python3-devel
+Requires: python >= 3.3
+%else
+BuildRequires: python-devel
+Requires: python >= 2.6
+%endif
+
+%if 0%{?fedora}
+Requires: qt >= 5.1
+%else
+Requires: qt >= 4.6
+%endif
+
+%description
+pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+pgAdmin 4 is being written as a web application in Python, using jQuery and
+Bootstrap for the client side processing and UI. On the server side, Flask is
+being utilised.
+
+Although developed using web technologies, we intend for pgAdmin 4 to be usable
+either on a web server using a browser, or standalone on a workstation. The
+runtime/ subdirectory contains a QT based runtime application intended to allow
+this - it is essentially a browser and Python interpretor in one package which
+will be capable of hosting the Python application and presenting it to the user
+as a desktop application.
+
+%package docs
+Summary: Documentation for pgAdmin4
+Group: Applications/Databases
+BuildArch: noarch
+# These are required for -docs subpackage:
+%if 0%{?fedora}
+BuildRequires: python3-sphinx
+BuildRequires: python3-sphinx_rtd_theme
+%else
+BuildRequires: python-sphinx
+BuildRequires: python-sphinx_rtd_theme
+%endif
+
+%description docs
+This package contains documentation for various languages,
+which are in html format.
+
+%package web
+Summary: pgAdmin4 web package
+BuildArch: noarch
+Requires: %{name}-doc = %{version}
+%if 0%{?fedora}
+Requires: python3-babel
+Requires: python3-flask
+Requires: python3-flask-sqlalchemy
+Requires: python3-flask-wtf
+Requires: python3-jinja2
+Requires: python3-markupsafe
+Requires: python3-sqlalchemy
+Requires: python3-wtforms
+Requires: python3-beautifulsoup4
+Requires: python3-blinker
+Requires: python3-html5lib
+Requires: python3-itsdangerous
+Requires: python3-psycopg2
+Requires: python3-six
+Requires: python3-crypto
+Requires: python3-simplejson
+Requires: python3-dateutil
+Requires: python3-werkzeug
+Requires: python3-sqlparse
+Requires: python3-docutils
+Requires: python3-extras
+Requires: python3-fixtures
+Requires: python3-linecache2
+Requires: python3-pbr
+Requires: python3-pygments
+Requires: python3-mimeparse
+Requires: python3-snowballstemmer
+Requires: python3-testscenarios
+Requires: python3-testtools
+Requires: python3-traceback2
+Requires: python3-unittest2
+Requires: python3-wheel
+#Requires: python3-pyrsistent
+#Requires: python3-flask-babel
+#Requires: python3-speaklater
+#Requires: python3-passlib
+#Requires: python3-flask-gravatar
+#Requires: python3-flask-mail
+#Requires: python3-flask-security
+#Requires: python3-flask-login
+#Requires: python3-flask-principal
+#Requires: python3-django-htmlmin
+%else
+Requires: python-babel
+Requires: python-flask
+Requires: python-flask-sqlalchemy
+Requires: python-flask-wtf
+Requires: python-jinja2
+Requires: python-markupsafe
+Requires: python-sqlalchemy
+Requires: python-wtforms
+Requires: python-beautifulsoup4
+Requires: python-blinker
+Requires: python-html5lib
+Requires: python-itsdangerous
+Requires: python-psycopg2
+Requires: python-six
+Requires: python-crypto
+Requires: python-simplejson
+Requires: python-dateutil
+Requires: python-werkzeug
+Requires: pytz
+Requires: python-sqlparse
+Requires: python-docutils
+Requires: python-extras
+Requires: python-fixtures
+Requires: python-linecache2
+Requires: python-pbr
+Requires: python-pygments
+Requires: python-mimeparse
+Requires: python-snowballstemmer
+Requires: python-testscenarios
+Requires: python-testtools
+Requires: python-traceback2
+Requires: python-unittest2
+Requires: python2-sphinx-theme-alabaster
+#Requires: python-pyrsistent
+#Requires: python-flask-babel
+#Requires: python-speaklater
+#Requires: python-passlib
+#Requires: python-flask-gravatar
+#Requires: python-flask-mail
+#Requires: python-flask-security
+#Requires: python-flask-login
+#Requires: python-flask-principal
+#Requires: python-django-htmlmin
+#Requires: python-importlib
+%endif
+
+%if 0%{?fedora}
+%define PYTHON_SITELIB %{python3_sitelib}
+%else
+%define PYTHON_SITELIB %{python2_sitelib}
+%endif
+
+%description web
+This package contains the required files to run pgAdmin4 as a web application
+
+%prep
+%setup -n pgadmin4/runtime
+
+%build
+cd ../runtime
+%{QMAKE} -o Makefile pgAdmin4.pro
+make
+cd ..
+LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C docs/en_US -f Makefile.sphinx html
+#chrpath -d pgAdmin4
+
+%install
+rm -rf %{buildroot}
+cd ..
+install -d -m 755 %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+cp -r docs/en_US/_build/html %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+cd runtime
+install -d -m 755 %{buildroot}%{pgadmin4instdir}/runtime
+cp pgAdmin4 %{buildroot}%{pgadmin4instdir}/runtime
+
+install -d -m 755 %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cp -pR ../web/* %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cd %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+rm -f pgadmin4.db config_local.* config*.pyc
+echo "SERVER_MODE = False" > config_local.py
+echo "MINIFY_HTML = False" >> config_local.py
+echo "HTML_HELP = '%{_docdir}/pgadmin4-doc-v1/html/'" >> config_local.py
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{pgadmin4instdir}/runtime/pgAdmin4
+
+%files web
+%defattr(-,root,root,-)
+%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+%doc
+
+%files docs
+%defattr(-,root,root)
+%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+%changelog
+* Fri Jun 03 2016 Sandeep Thakkar <[email protected]>
+- Initial RPM for v1.0alpha1
+
diff --git a/pkg/rpm/f-22/Makefile b/pkg/rpm/f-22/Makefile
new file mode 100644
index 0000000..d6ed841
--- /dev/null
+++ b/pkg/rpm/f-22/Makefile
@@ -0,0 +1,8 @@
+
+ARCH=`rpm --eval "%{_arch}"`
+DIR=`pwd`
+DIST=.f22
+SPECFILE="pgadmin4.spec"
+
+# Now, include global Makefile
+include ../common/Makefile.global
diff --git a/pkg/rpm/f-22/pgadmin4.spec.in b/pkg/rpm/f-22/pgadmin4.spec.in
new file mode 100644
index 0000000..f178508
--- /dev/null
+++ b/pkg/rpm/f-22/pgadmin4.spec.in
@@ -0,0 +1,230 @@
+
+%define pgAdmin4_release APP_REL
+%define pgAdmin4_revision APP_REV
+
+%define name APP_NAME
+%define pgadmin4instdir /usr/%{name}-v%{pgAdmin4_release}
+%define pgadmin4_webinstdir %{name}-web-v%{pgAdmin4_release}
+
+Name: %{name}
+Version: %{pgAdmin4_release}.%{pgAdmin4_revision}
+Release: 1%{?dist}
+Summary: pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+
+Group: Applications/Databases
+License: PostgreSQL License
+URL: http://www.pgadmin.org
+Source0: ftp://ftp.postgresql.org/pub/pgadmin4/release/v%{version}/src/%{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildArch: DISTRO_ARCH
+
+BuildRequires: mesa-libGL-devel
+BuildRequires: gcc-c++
+Requires: pgadmin4-web = %{version}
+%if 0%{?fedora}
+BuildRequires: qt5-qtbase-devel >= 5.1
+BuildRequires: qt5-qtwebkit-devel
+%define QMAKE /usr/bin/qmake-qt5
+%else
+BuildRequires: qt-devel >= 4.6
+BuildRequires: qtwebkit-devel
+%define QMAKE /usr/lib64/qt4/bin/qmake
+%endif
+
+%if 0%{?fedora}
+BuildRequires: python3-devel
+Requires: python >= 3.3
+%else
+BuildRequires: python-devel
+Requires: python >= 2.6
+%endif
+
+%if 0%{?fedora}
+Requires: qt >= 5.1
+%else
+Requires: qt >= 4.6
+%endif
+
+%description
+pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+pgAdmin 4 is being written as a web application in Python, using jQuery and
+Bootstrap for the client side processing and UI. On the server side, Flask is
+being utilised.
+
+Although developed using web technologies, we intend for pgAdmin 4 to be usable
+either on a web server using a browser, or standalone on a workstation. The
+runtime/ subdirectory contains a QT based runtime application intended to allow
+this - it is essentially a browser and Python interpretor in one package which
+will be capable of hosting the Python application and presenting it to the user
+as a desktop application.
+
+%package docs
+Summary: Documentation for pgAdmin4
+Group: Applications/Databases
+BuildArch: noarch
+# These are required for -docs subpackage:
+%if 0%{?fedora}
+BuildRequires: python3-sphinx
+BuildRequires: python3-sphinx_rtd_theme
+%else
+BuildRequires: python-sphinx
+BuildRequires: python-sphinx_rtd_theme
+%endif
+
+%description docs
+This package contains documentation for various languages,
+which are in html format.
+
+%package web
+Summary: pgAdmin4 web package
+BuildArch: noarch
+Requires: %{name}-doc = %{version}
+%if 0%{?fedora}
+Requires: python3-babel
+Requires: python3-flask
+Requires: python3-flask-sqlalchemy
+Requires: python3-flask-wtf
+Requires: python3-jinja2
+Requires: python3-markupsafe
+Requires: python3-sqlalchemy
+Requires: python3-wtforms
+Requires: python3-beautifulsoup4
+Requires: python3-blinker
+Requires: python3-html5lib
+Requires: python3-itsdangerous
+Requires: python3-psycopg2
+Requires: python3-six
+Requires: python3-crypto
+Requires: python3-simplejson
+Requires: python3-dateutil
+Requires: python3-werkzeug
+Requires: python3-sqlparse
+Requires: python3-docutils
+Requires: python3-extras
+Requires: python3-fixtures
+Requires: python3-linecache2
+Requires: python3-pbr
+Requires: python3-pygments
+Requires: python3-mimeparse
+Requires: python3-snowballstemmer
+Requires: python3-testscenarios
+Requires: python3-testtools
+Requires: python3-traceback2
+Requires: python3-unittest2
+Requires: python3-wheel
+#Requires: python3-pyrsistent
+#Requires: python3-flask-babel
+#Requires: python3-speaklater
+#Requires: python3-passlib
+#Requires: python3-flask-gravatar
+#Requires: python3-flask-mail
+#Requires: python3-flask-security
+#Requires: python3-flask-login
+#Requires: python3-flask-principal
+#Requires: python3-django-htmlmin
+%else
+Requires: python-babel
+Requires: python-flask
+Requires: python-flask-sqlalchemy
+Requires: python-flask-wtf
+Requires: python-jinja2
+Requires: python-markupsafe
+Requires: python-sqlalchemy
+Requires: python-wtforms
+Requires: python-beautifulsoup4
+Requires: python-blinker
+Requires: python-html5lib
+Requires: python-itsdangerous
+Requires: python-psycopg2
+Requires: python-six
+Requires: python-crypto
+Requires: python-simplejson
+Requires: python-dateutil
+Requires: python-werkzeug
+Requires: pytz
+Requires: python-sqlparse
+Requires: python-docutils
+Requires: python-extras
+Requires: python-fixtures
+Requires: python-linecache2
+Requires: python-pbr
+Requires: python-pygments
+Requires: python-mimeparse
+Requires: python-snowballstemmer
+Requires: python-testscenarios
+Requires: python-testtools
+Requires: python-traceback2
+Requires: python-unittest2
+Requires: python2-sphinx-theme-alabaster
+#Requires: python-pyrsistent
+#Requires: python-flask-babel
+#Requires: python-speaklater
+#Requires: python-passlib
+#Requires: python-flask-gravatar
+#Requires: python-flask-mail
+#Requires: python-flask-security
+#Requires: python-flask-login
+#Requires: python-flask-principal
+#Requires: python-django-htmlmin
+#Requires: python-importlib
+%endif
+
+%if 0%{?fedora}
+%define PYTHON_SITELIB %{python3_sitelib}
+%else
+%define PYTHON_SITELIB %{python2_sitelib}
+%endif
+
+%description web
+This package contains the required files to run pgAdmin4 as a web application
+
+%prep
+%setup -n pgadmin4/runtime
+
+%build
+cd ../runtime
+%{QMAKE} -o Makefile pgAdmin4.pro
+make
+cd ..
+LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C docs/en_US -f Makefile.sphinx html
+#chrpath -d pgAdmin4
+
+%install
+rm -rf %{buildroot}
+cd ..
+install -d -m 755 %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+cp -r docs/en_US/_build/html %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+cd runtime
+install -d -m 755 %{buildroot}%{pgadmin4instdir}/runtime
+cp pgAdmin4 %{buildroot}%{pgadmin4instdir}/runtime
+
+install -d -m 755 %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cp -pR ../web/* %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cd %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+rm -f pgadmin4.db config_local.* config*.pyc
+echo "SERVER_MODE = False" > config_local.py
+echo "MINIFY_HTML = False" >> config_local.py
+echo "HTML_HELP = '%{_docdir}/pgadmin4-doc-v1/html/'" >> config_local.py
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{pgadmin4instdir}/runtime/pgAdmin4
+
+%files web
+%defattr(-,root,root,-)
+%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+%doc
+
+%files docs
+%defattr(-,root,root)
+%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+%changelog
+* Fri Jun 03 2016 Sandeep Thakkar <[email protected]>
+- Initial RPM for v1.0alpha1
+
diff --git a/pkg/rpm/f-23/Makefile b/pkg/rpm/f-23/Makefile
new file mode 100644
index 0000000..9316c99
--- /dev/null
+++ b/pkg/rpm/f-23/Makefile
@@ -0,0 +1,8 @@
+
+ARCH=`rpm --eval "%{_arch}"`
+DIR=`pwd`
+DIST=.f23
+SPECFILE="pgadmin4.spec"
+
+# Now, include global Makefile
+include ../common/Makefile.global
diff --git a/pkg/rpm/f-23/pgadmin4.spec.in b/pkg/rpm/f-23/pgadmin4.spec.in
new file mode 100644
index 0000000..f178508
--- /dev/null
+++ b/pkg/rpm/f-23/pgadmin4.spec.in
@@ -0,0 +1,230 @@
+
+%define pgAdmin4_release APP_REL
+%define pgAdmin4_revision APP_REV
+
+%define name APP_NAME
+%define pgadmin4instdir /usr/%{name}-v%{pgAdmin4_release}
+%define pgadmin4_webinstdir %{name}-web-v%{pgAdmin4_release}
+
+Name: %{name}
+Version: %{pgAdmin4_release}.%{pgAdmin4_revision}
+Release: 1%{?dist}
+Summary: pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+
+Group: Applications/Databases
+License: PostgreSQL License
+URL: http://www.pgadmin.org
+Source0: ftp://ftp.postgresql.org/pub/pgadmin4/release/v%{version}/src/%{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildArch: DISTRO_ARCH
+
+BuildRequires: mesa-libGL-devel
+BuildRequires: gcc-c++
+Requires: pgadmin4-web = %{version}
+%if 0%{?fedora}
+BuildRequires: qt5-qtbase-devel >= 5.1
+BuildRequires: qt5-qtwebkit-devel
+%define QMAKE /usr/bin/qmake-qt5
+%else
+BuildRequires: qt-devel >= 4.6
+BuildRequires: qtwebkit-devel
+%define QMAKE /usr/lib64/qt4/bin/qmake
+%endif
+
+%if 0%{?fedora}
+BuildRequires: python3-devel
+Requires: python >= 3.3
+%else
+BuildRequires: python-devel
+Requires: python >= 2.6
+%endif
+
+%if 0%{?fedora}
+Requires: qt >= 5.1
+%else
+Requires: qt >= 4.6
+%endif
+
+%description
+pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+pgAdmin 4 is being written as a web application in Python, using jQuery and
+Bootstrap for the client side processing and UI. On the server side, Flask is
+being utilised.
+
+Although developed using web technologies, we intend for pgAdmin 4 to be usable
+either on a web server using a browser, or standalone on a workstation. The
+runtime/ subdirectory contains a QT based runtime application intended to allow
+this - it is essentially a browser and Python interpretor in one package which
+will be capable of hosting the Python application and presenting it to the user
+as a desktop application.
+
+%package docs
+Summary: Documentation for pgAdmin4
+Group: Applications/Databases
+BuildArch: noarch
+# These are required for -docs subpackage:
+%if 0%{?fedora}
+BuildRequires: python3-sphinx
+BuildRequires: python3-sphinx_rtd_theme
+%else
+BuildRequires: python-sphinx
+BuildRequires: python-sphinx_rtd_theme
+%endif
+
+%description docs
+This package contains documentation for various languages,
+which are in html format.
+
+%package web
+Summary: pgAdmin4 web package
+BuildArch: noarch
+Requires: %{name}-doc = %{version}
+%if 0%{?fedora}
+Requires: python3-babel
+Requires: python3-flask
+Requires: python3-flask-sqlalchemy
+Requires: python3-flask-wtf
+Requires: python3-jinja2
+Requires: python3-markupsafe
+Requires: python3-sqlalchemy
+Requires: python3-wtforms
+Requires: python3-beautifulsoup4
+Requires: python3-blinker
+Requires: python3-html5lib
+Requires: python3-itsdangerous
+Requires: python3-psycopg2
+Requires: python3-six
+Requires: python3-crypto
+Requires: python3-simplejson
+Requires: python3-dateutil
+Requires: python3-werkzeug
+Requires: python3-sqlparse
+Requires: python3-docutils
+Requires: python3-extras
+Requires: python3-fixtures
+Requires: python3-linecache2
+Requires: python3-pbr
+Requires: python3-pygments
+Requires: python3-mimeparse
+Requires: python3-snowballstemmer
+Requires: python3-testscenarios
+Requires: python3-testtools
+Requires: python3-traceback2
+Requires: python3-unittest2
+Requires: python3-wheel
+#Requires: python3-pyrsistent
+#Requires: python3-flask-babel
+#Requires: python3-speaklater
+#Requires: python3-passlib
+#Requires: python3-flask-gravatar
+#Requires: python3-flask-mail
+#Requires: python3-flask-security
+#Requires: python3-flask-login
+#Requires: python3-flask-principal
+#Requires: python3-django-htmlmin
+%else
+Requires: python-babel
+Requires: python-flask
+Requires: python-flask-sqlalchemy
+Requires: python-flask-wtf
+Requires: python-jinja2
+Requires: python-markupsafe
+Requires: python-sqlalchemy
+Requires: python-wtforms
+Requires: python-beautifulsoup4
+Requires: python-blinker
+Requires: python-html5lib
+Requires: python-itsdangerous
+Requires: python-psycopg2
+Requires: python-six
+Requires: python-crypto
+Requires: python-simplejson
+Requires: python-dateutil
+Requires: python-werkzeug
+Requires: pytz
+Requires: python-sqlparse
+Requires: python-docutils
+Requires: python-extras
+Requires: python-fixtures
+Requires: python-linecache2
+Requires: python-pbr
+Requires: python-pygments
+Requires: python-mimeparse
+Requires: python-snowballstemmer
+Requires: python-testscenarios
+Requires: python-testtools
+Requires: python-traceback2
+Requires: python-unittest2
+Requires: python2-sphinx-theme-alabaster
+#Requires: python-pyrsistent
+#Requires: python-flask-babel
+#Requires: python-speaklater
+#Requires: python-passlib
+#Requires: python-flask-gravatar
+#Requires: python-flask-mail
+#Requires: python-flask-security
+#Requires: python-flask-login
+#Requires: python-flask-principal
+#Requires: python-django-htmlmin
+#Requires: python-importlib
+%endif
+
+%if 0%{?fedora}
+%define PYTHON_SITELIB %{python3_sitelib}
+%else
+%define PYTHON_SITELIB %{python2_sitelib}
+%endif
+
+%description web
+This package contains the required files to run pgAdmin4 as a web application
+
+%prep
+%setup -n pgadmin4/runtime
+
+%build
+cd ../runtime
+%{QMAKE} -o Makefile pgAdmin4.pro
+make
+cd ..
+LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C docs/en_US -f Makefile.sphinx html
+#chrpath -d pgAdmin4
+
+%install
+rm -rf %{buildroot}
+cd ..
+install -d -m 755 %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+cp -r docs/en_US/_build/html %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+cd runtime
+install -d -m 755 %{buildroot}%{pgadmin4instdir}/runtime
+cp pgAdmin4 %{buildroot}%{pgadmin4instdir}/runtime
+
+install -d -m 755 %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cp -pR ../web/* %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cd %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+rm -f pgadmin4.db config_local.* config*.pyc
+echo "SERVER_MODE = False" > config_local.py
+echo "MINIFY_HTML = False" >> config_local.py
+echo "HTML_HELP = '%{_docdir}/pgadmin4-doc-v1/html/'" >> config_local.py
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{pgadmin4instdir}/runtime/pgAdmin4
+
+%files web
+%defattr(-,root,root,-)
+%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+%doc
+
+%files docs
+%defattr(-,root,root)
+%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+%changelog
+* Fri Jun 03 2016 Sandeep Thakkar <[email protected]>
+- Initial RPM for v1.0alpha1
+
diff --git a/pkg/rpm/f-24/Makefile b/pkg/rpm/f-24/Makefile
new file mode 100644
index 0000000..f48f68d
--- /dev/null
+++ b/pkg/rpm/f-24/Makefile
@@ -0,0 +1,8 @@
+
+ARCH=`rpm --eval "%{_arch}"`
+DIR=`pwd`
+DIST=.f24
+SPECFILE="pgadmin4.spec"
+
+# Now, include global Makefile
+include ../common/Makefile.global
diff --git a/pkg/rpm/f-24/pgadmin4.spec.in b/pkg/rpm/f-24/pgadmin4.spec.in
new file mode 100644
index 0000000..f178508
--- /dev/null
+++ b/pkg/rpm/f-24/pgadmin4.spec.in
@@ -0,0 +1,230 @@
+
+%define pgAdmin4_release APP_REL
+%define pgAdmin4_revision APP_REV
+
+%define name APP_NAME
+%define pgadmin4instdir /usr/%{name}-v%{pgAdmin4_release}
+%define pgadmin4_webinstdir %{name}-web-v%{pgAdmin4_release}
+
+Name: %{name}
+Version: %{pgAdmin4_release}.%{pgAdmin4_revision}
+Release: 1%{?dist}
+Summary: pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+
+Group: Applications/Databases
+License: PostgreSQL License
+URL: http://www.pgadmin.org
+Source0: ftp://ftp.postgresql.org/pub/pgadmin4/release/v%{version}/src/%{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildArch: DISTRO_ARCH
+
+BuildRequires: mesa-libGL-devel
+BuildRequires: gcc-c++
+Requires: pgadmin4-web = %{version}
+%if 0%{?fedora}
+BuildRequires: qt5-qtbase-devel >= 5.1
+BuildRequires: qt5-qtwebkit-devel
+%define QMAKE /usr/bin/qmake-qt5
+%else
+BuildRequires: qt-devel >= 4.6
+BuildRequires: qtwebkit-devel
+%define QMAKE /usr/lib64/qt4/bin/qmake
+%endif
+
+%if 0%{?fedora}
+BuildRequires: python3-devel
+Requires: python >= 3.3
+%else
+BuildRequires: python-devel
+Requires: python >= 2.6
+%endif
+
+%if 0%{?fedora}
+Requires: qt >= 5.1
+%else
+Requires: qt >= 4.6
+%endif
+
+%description
+pgAdmin 4 is a rewrite of the popular pgAdmin3 management tool for the PostgreSQL (http://www.postgresql.org) database.
+pgAdmin 4 is being written as a web application in Python, using jQuery and
+Bootstrap for the client side processing and UI. On the server side, Flask is
+being utilised.
+
+Although developed using web technologies, we intend for pgAdmin 4 to be usable
+either on a web server using a browser, or standalone on a workstation. The
+runtime/ subdirectory contains a QT based runtime application intended to allow
+this - it is essentially a browser and Python interpretor in one package which
+will be capable of hosting the Python application and presenting it to the user
+as a desktop application.
+
+%package docs
+Summary: Documentation for pgAdmin4
+Group: Applications/Databases
+BuildArch: noarch
+# These are required for -docs subpackage:
+%if 0%{?fedora}
+BuildRequires: python3-sphinx
+BuildRequires: python3-sphinx_rtd_theme
+%else
+BuildRequires: python-sphinx
+BuildRequires: python-sphinx_rtd_theme
+%endif
+
+%description docs
+This package contains documentation for various languages,
+which are in html format.
+
+%package web
+Summary: pgAdmin4 web package
+BuildArch: noarch
+Requires: %{name}-doc = %{version}
+%if 0%{?fedora}
+Requires: python3-babel
+Requires: python3-flask
+Requires: python3-flask-sqlalchemy
+Requires: python3-flask-wtf
+Requires: python3-jinja2
+Requires: python3-markupsafe
+Requires: python3-sqlalchemy
+Requires: python3-wtforms
+Requires: python3-beautifulsoup4
+Requires: python3-blinker
+Requires: python3-html5lib
+Requires: python3-itsdangerous
+Requires: python3-psycopg2
+Requires: python3-six
+Requires: python3-crypto
+Requires: python3-simplejson
+Requires: python3-dateutil
+Requires: python3-werkzeug
+Requires: python3-sqlparse
+Requires: python3-docutils
+Requires: python3-extras
+Requires: python3-fixtures
+Requires: python3-linecache2
+Requires: python3-pbr
+Requires: python3-pygments
+Requires: python3-mimeparse
+Requires: python3-snowballstemmer
+Requires: python3-testscenarios
+Requires: python3-testtools
+Requires: python3-traceback2
+Requires: python3-unittest2
+Requires: python3-wheel
+#Requires: python3-pyrsistent
+#Requires: python3-flask-babel
+#Requires: python3-speaklater
+#Requires: python3-passlib
+#Requires: python3-flask-gravatar
+#Requires: python3-flask-mail
+#Requires: python3-flask-security
+#Requires: python3-flask-login
+#Requires: python3-flask-principal
+#Requires: python3-django-htmlmin
+%else
+Requires: python-babel
+Requires: python-flask
+Requires: python-flask-sqlalchemy
+Requires: python-flask-wtf
+Requires: python-jinja2
+Requires: python-markupsafe
+Requires: python-sqlalchemy
+Requires: python-wtforms
+Requires: python-beautifulsoup4
+Requires: python-blinker
+Requires: python-html5lib
+Requires: python-itsdangerous
+Requires: python-psycopg2
+Requires: python-six
+Requires: python-crypto
+Requires: python-simplejson
+Requires: python-dateutil
+Requires: python-werkzeug
+Requires: pytz
+Requires: python-sqlparse
+Requires: python-docutils
+Requires: python-extras
+Requires: python-fixtures
+Requires: python-linecache2
+Requires: python-pbr
+Requires: python-pygments
+Requires: python-mimeparse
+Requires: python-snowballstemmer
+Requires: python-testscenarios
+Requires: python-testtools
+Requires: python-traceback2
+Requires: python-unittest2
+Requires: python2-sphinx-theme-alabaster
+#Requires: python-pyrsistent
+#Requires: python-flask-babel
+#Requires: python-speaklater
+#Requires: python-passlib
+#Requires: python-flask-gravatar
+#Requires: python-flask-mail
+#Requires: python-flask-security
+#Requires: python-flask-login
+#Requires: python-flask-principal
+#Requires: python-django-htmlmin
+#Requires: python-importlib
+%endif
+
+%if 0%{?fedora}
+%define PYTHON_SITELIB %{python3_sitelib}
+%else
+%define PYTHON_SITELIB %{python2_sitelib}
+%endif
+
+%description web
+This package contains the required files to run pgAdmin4 as a web application
+
+%prep
+%setup -n pgadmin4/runtime
+
+%build
+cd ../runtime
+%{QMAKE} -o Makefile pgAdmin4.pro
+make
+cd ..
+LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make -C docs/en_US -f Makefile.sphinx html
+#chrpath -d pgAdmin4
+
+%install
+rm -rf %{buildroot}
+cd ..
+install -d -m 755 %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+cp -r docs/en_US/_build/html %{buildroot}/%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+cd runtime
+install -d -m 755 %{buildroot}%{pgadmin4instdir}/runtime
+cp pgAdmin4 %{buildroot}%{pgadmin4instdir}/runtime
+
+install -d -m 755 %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cp -pR ../web/* %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+cd %{buildroot}%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+rm -f pgadmin4.db config_local.* config*.pyc
+echo "SERVER_MODE = False" > config_local.py
+echo "MINIFY_HTML = False" >> config_local.py
+echo "HTML_HELP = '%{_docdir}/pgadmin4-doc-v1/html/'" >> config_local.py
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{pgadmin4instdir}/runtime/pgAdmin4
+
+%files web
+%defattr(-,root,root,-)
+%{PYTHON_SITELIB}/%{pgadmin4_webinstdir}
+%doc
+
+%files docs
+%defattr(-,root,root)
+%{_docdir}/pgadmin4-docs-v%{pgAdmin4_release}
+
+%changelog
+* Fri Jun 03 2016 Sandeep Thakkar <[email protected]>
+- Initial RPM for v1.0alpha1
+
diff --git a/runtime/Server.cpp b/runtime/Server.cpp
index fd930f6..921752e 100644
--- a/runtime/Server.cpp
+++ b/runtime/Server.cpp
@@ -103,6 +103,17 @@ bool Server::Init()
{
QSettings settings;
+#ifdef Q_OS_LINUX
+ // In case we are running in a release RPM, the web app will be present in
+ // the default python lib on the system. Hence, find that path run time.
+ QProcess process;
+ process.start("python -c \"from distutils.sysconfig import get_python_lib; print(get_python_lib())\"");
+ process.waitForFinished(-1);
+ QString pymodules_path = process.readAllStandardOutput();
+ pymodules_path = pymodules_path.trimmed();
+ webapp_path = pymodules_path + "/pgadmin4-web-v1";
+#endif
+
// Find the webapp
QStringList paths;
paths.append("../web/"); // Linux source tree
@@ -111,13 +122,22 @@ bool Server::Init()
#ifdef Q_OS_MAC
paths.append("../Resources/web/"); // Mac source tree (in a release app bundle)
#endif
+#ifdef Q_OS_LINUX
+ paths.append(webapp_path); // Linux (in a release RPM)
+#endif
paths.append(settings.value("ApplicationPath").toString()); // System configured value
paths.append(""); // Should be last!
for (int i = 0; i < paths.size(); ++i)
{
QDir dir(QCoreApplication::applicationDirPath() + "/" + paths[i]);
- m_appfile = dir.canonicalPath() + "/pgAdmin4.py";
+ QFileInfo info(paths[i]);
+ if (info.isRelative()) {
+ m_appfile = dir.absolutePath() + "/pgAdmin4.py";
+ }
+ else {
+ m_appfile = paths[i] + "/pgAdmin4.py";
+ }
if (QFile::exists(m_appfile))
{
view thread (21+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected]
Subject: Re: Patch for pgAdmin4 RPM package
In-Reply-To: <CANFyU96uyb+oU8biqEgtOu8oRUcPRRxmG3L5-KqG15aTjxHtwg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox