openSUSE Commits
Threads by month
- ----- 2024 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2018
- 1 participants
- 2007 discussions
Hello community,
here is the log from the commit of package mvapich2 for openSUSE:Factory checked in at 2018-01-31 19:54:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mvapich2 (Old)
and /work/SRC/openSUSE:Factory/.mvapich2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mvapich2"
Wed Jan 31 19:54:47 2018 rev:6 rq:571425 version:2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/mvapich2/mvapich2.changes 2018-01-09 14:54:43.311502425 +0100
+++ /work/SRC/openSUSE:Factory/.mvapich2.new/mvapich2.changes 2018-01-31 19:54:47.993362618 +0100
@@ -1,0 +2,6 @@
+Tue Jan 30 20:04:01 UTC 2018 - eich(a)suse.com
+
+- Use macro in mpivars.(c)sh to be independent of changes to the module
+ setup for the compiler (boo#1078364).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mvapich2.spec ++++++
--- /var/tmp/diff_new_pack.t7cfA6/_old 2018-01-31 19:54:49.061312951 +0100
+++ /var/tmp/diff_new_pack.t7cfA6/_new 2018-01-31 19:54:49.077312207 +0100
@@ -406,9 +406,13 @@
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{p_bindir}/mpivars.sh
-module load %{hpc_compiler_family}/%{hpc_cf_full_version} %{hpc_mpi_family}%{?pack_suff}/%{version}
+%hpc_setup_compiler
+module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
-ln -s mpivars.sh %{buildroot}/%{p_bindir}/mpivars.csh
+sed -e "s/export/setenv/" -e "s/=/ /" \
+ %{buildroot}/%{p_bindir}/mpivars.sh > \
+ %{buildroot}/%{p_bindir}/mpivars.csh
+mkdir -p %{buildroot}%{_sysconfdir}/rpm
%endif # with hpc
1
0
Hello community,
here is the log from the commit of package openmpi3 for openSUSE:Factory checked in at 2018-01-31 19:54:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openmpi3 (Old)
and /work/SRC/openSUSE:Factory/.openmpi3.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openmpi3"
Wed Jan 31 19:54:45 2018 rev:5 rq:571424 version:3.0.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/openmpi3/openmpi3.changes 2018-01-17 21:59:52.102834699 +0100
+++ /work/SRC/openSUSE:Factory/.openmpi3.new/openmpi3.changes 2018-01-31 19:54:46.957410796 +0100
@@ -1,0 +2,6 @@
+Tue Jan 30 20:03:24 UTC 2018 - eich(a)suse.com
+
+- Use macro in mpivars.(c)sh to be independent of changes to the module
+ setup for the compiler (boo#1078364).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ openmpi3.spec ++++++
--- /var/tmp/diff_new_pack.mgy525/_old 2018-01-31 19:54:47.741374336 +0100
+++ /var/tmp/diff_new_pack.mgy525/_new 2018-01-31 19:54:47.749373965 +0100
@@ -529,9 +529,13 @@
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{mpi_bindir}/mpivars.sh
-module load %{hpc_compiler_family}/%{hpc_cf_full_version} %{hpc_mpi_family}/%{version}
+%hpc_setup_compiler
+module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
-ln -s mpivars.sh %{buildroot}/%{mpi_bindir}/mpivars.csh
+sed -e "s/export/setenv/" -e "s/=/ /" \
+ %{buildroot}/%{mpi_bindir}/mpivars.sh > \
+ %{buildroot}/%{mpi_bindir}/mpivars.csh
+mkdir -p %{buildroot}%{_sysconfdir}/rpm
mkdir -p %{buildroot}%{_sysconfdir}/rpm
cp %{S:3} %{buildroot}%{_sysconfdir}/rpm
1
0
Hello community,
here is the log from the commit of package mpich for openSUSE:Factory checked in at 2018-01-31 19:54:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mpich (Old)
and /work/SRC/openSUSE:Factory/.mpich.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mpich"
Wed Jan 31 19:54:43 2018 rev:7 rq:571421 version:3.2.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/mpich/mpich.changes 2018-01-22 16:20:42.475789536 +0100
+++ /work/SRC/openSUSE:Factory/.mpich.new/mpich.changes 2018-01-31 19:54:44.289534868 +0100
@@ -1,0 +2,6 @@
+Tue Jan 30 20:05:19 UTC 2018 - eich(a)suse.com
+
+- Use macro in mpivars.(c)sh to be independent of changes to the module
+ setup for the compiler (boo#1078364).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mpich.spec ++++++
--- /var/tmp/diff_new_pack.TBVBJi/_old 2018-01-31 19:54:45.041499897 +0100
+++ /var/tmp/diff_new_pack.TBVBJi/_new 2018-01-31 19:54:45.045499711 +0100
@@ -415,10 +415,13 @@
family "MPI"
EOF
cat <<EOF > %{buildroot}/%{p_bindir}/mpivars.sh
-module load %{hpc_compiler_family}/%{hpc_cf_full_version} %{hpc_mpi_family}%{?pack_suff}/%{version}
+%hpc_setup_compiler
+module load %{hpc_mpi_family}%{?pack_suff}/%{version}
EOF
-ln -s mpivars.sh %{buildroot}/%{p_bindir}/mpivars.csh
-
+sed -e "s/export/setenv/" -e "s/=/ /" \
+ %{buildroot}/%{p_bindir}/mpivars.sh > \
+ %{buildroot}/%{p_bindir}/mpivars.csh
+mkdir -p %{buildroot}%{_sysconfdir}/rpm
%endif # with hpc
find %{buildroot} -type f -name "*.la" -exec rm -f {} ';'
1
0
Hello community,
here is the log from the commit of package pound for openSUSE:Factory checked in at 2018-01-31 19:54:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pound (Old)
and /work/SRC/openSUSE:Factory/.pound.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pound"
Wed Jan 31 19:54:41 2018 rev:25 rq:571411 version:2.8a
Changes:
--------
--- /work/SRC/openSUSE:Factory/pound/pound.changes 2016-08-10 19:55:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pound.new/pound.changes 2018-01-31 19:54:41.581660801 +0100
@@ -1,0 +2,19 @@
+Wed Jan 31 12:45:19 UTC 2018 - idonmez(a)suse.com
+
+- Depend on openssl 1.0
+
+-------------------------------------------------------------------
+Tue Jan 30 21:53:06 UTC 2018 - jengelh(a)inai.de
+
+- Do not ignore errors from useradd
+- Fix grammar errors in description
+
+-------------------------------------------------------------------
+Tue Jan 30 13:25:35 UTC 2018 - kbabioch(a)suse.com
+
+- Update to version 2.8a
+ * removed DynScale flag and support
+ * fixed potential request smuggling via fudged headers (CVE-2016-10711
+ boo#1078298)
+
+-------------------------------------------------------------------
Old:
----
Pound-2.7.tgz
New:
----
Pound-2.8a.tgz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pound.spec ++++++
--- /var/tmp/diff_new_pack.XemFtv/_old 2018-01-31 19:54:42.193632341 +0100
+++ /var/tmp/diff_new_pack.XemFtv/_new 2018-01-31 19:54:42.197632155 +0100
@@ -1,7 +1,7 @@
#
# spec file for package pound
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,6 +15,7 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
%if 0%{?suse_version} > 1230
%bcond_without systemd
%else
@@ -22,12 +23,12 @@
%endif
Name: pound
-BuildRequires: openssl-devel
-Summary: Reverse-Proxy and Load-Balancer
+BuildRequires: libopenssl-1_0_0-devel
+Summary: Reverse proxy and load balancer
License: SUSE-GPL-3.0+-with-openssl-exception
Group: Productivity/Networking/Web/Proxy
Url: http://www.apsis.ch/pound/
-Version: 2.7
+Version: 2.8a
Release: 0
Source0: http://www.apsis.ch/pound/Pound-%version.tgz
Source1: pound.cfg
@@ -46,8 +47,8 @@
%description
The Pound program is a reverse proxy, load balancer and HTTPS front-end
for Web server(s). Pound was developed to enable distributing the load
-among several Web-servers and to allow for a convenient SSL wrapper for
-those Web servers that do not offer it natively.
+among several web servers and to allow for a convenient SSL wrapper for
+those web servers that do not offer it natively.
%package doc
Summary: Doumentation for pound
@@ -55,9 +56,9 @@
%description doc
The Pound program is a reverse proxy, load balancer and HTTPS front-end
-for Web server(s). Pound was developed to enable distributing the load
-among several Web-servers and to allow for a convenient SSL wrapper for
-those Web servers that do not offer it natively.
+for web server(s). Pound was developed to enable distributing the load
+among several web servers and to allow for a convenient SSL wrapper for
+those web servers that do not offer it natively.
This package contains the documentation for pound.
@@ -71,7 +72,7 @@
--with-ssl=/usr/include/openssl \
--with-owner=pound \
--with-group=pound
-make %{?jobs:-j%jobs}
+make %{?_smp_mflags}
%install
%makeinstall
@@ -90,8 +91,9 @@
%pre
# Add the "pound" user and group
-%{_sbindir}/groupadd -r pound 2> /dev/null || :
-%{_sbindir}/useradd -c "Pound" -g pound -r -d /var/lib/pound pound 2> /dev/null || :
+getent group pound >/dev/null || %{_sbindir}/groupadd -r pound
+getent passwd pound >/dev/null || \
+ %{_sbindir}/useradd -c "Pound" -g pound -r -d /var/lib/pound pound
%if %{with systemd}
%service_add_pre %{name}.service
%endif
++++++ Pound-2.7.tgz -> Pound-2.8a.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/CHANGELOG new/Pound-2.8a/CHANGELOG
--- old/Pound-2.7/CHANGELOG 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/CHANGELOG 2016-10-23 16:59:47.000000000 +0200
@@ -1,4 +1,15 @@
------------------------------------------------------------------------
+r82 | roseg | 2016-10-23 16:59:47 +0200 (Sun, 23 Oct 2016) | 8 lines
+
+Release 2.8a
+
+Enhancements:
+ - removed DynScale flag and support
+
+Bug fixes:
+ - fixed potential request smuggling via fudged headers
+
+------------------------------------------------------------------------
r81 | roseg | 2015-01-26 17:47:53 +0100 (Mon, 26 Jan 2015) | 30 lines
Release 2.7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/config.c new/Pound-2.8a/config.c
--- old/Pound-2.7/config.c 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/config.c 2016-10-23 16:59:47.000000000 +0200
@@ -77,7 +77,7 @@
static regex_t ListenHTTP, ListenHTTPS, End, Address, Port, Cert, xHTTP, Client, CheckURL;
static regex_t Err414, Err500, Err501, Err503, MaxRequest, HeadRemove, RewriteLocation, RewriteDestination;
static regex_t Service, ServiceName, URL, HeadRequire, HeadDeny, BackEnd, Emergency, Priority, HAport, HAportAddr;
-static regex_t Redirect, RedirectN, TimeOut, Session, Type, TTL, ID, DynScale;
+static regex_t Redirect, RedirectN, TimeOut, Session, Type, TTL, ID;
static regex_t ClientCert, AddHeader, DisableProto, SSLAllowClientRenegotiation, SSLHonorCipherOrder, Ciphers;
static regex_t CAlist, VerifyList, CRLlist, NoHTTPS11, Grace, Include, ConnTO, IgnoreCase, HTTPS;
static regex_t Disabled, Threads, CNName, Anonymise, ECDHCurve;
@@ -97,7 +97,6 @@
static int clnt_to = 10;
static int be_to = 15;
static int be_connto = 15;
-static int dynscale = 0;
static int ignore_case = 0;
#if OPENSSL_VERSION_NUMBER >= 0x0090800fL
#ifndef OPENSSL_NO_ECDH
@@ -563,7 +562,6 @@
conf_err("Service config: out of memory - aborted");
memset(res, 0, sizeof(SERVICE));
res->sess_type = SESS_NONE;
- res->dynscale = dynscale;
pthread_mutex_init(&res->mut, NULL);
if(svc_name)
strncpy(res->name, svc_name, KEY_SIZE);
@@ -688,8 +686,6 @@
res->emergency = parse_be(1);
} else if(!regexec(&Session, lin, 4, matches, 0)) {
parse_sess(res);
- } else if(!regexec(&DynScale, lin, 4, matches, 0)) {
- res->dynscale = atoi(lin + matches[1].rm_so);
} else if(!regexec(&IgnoreCase, lin, 4, matches, 0)) {
ign_case = atoi(lin + matches[1].rm_so);
} else if(!regexec(&Disabled, lin, 4, matches, 0)) {
@@ -1342,8 +1338,6 @@
clnt_to = atoi(lin + matches[1].rm_so);
} else if(!regexec(&Alive, lin, 4, matches, 0)) {
alive_to = atoi(lin + matches[1].rm_so);
- } else if(!regexec(&DynScale, lin, 4, matches, 0)) {
- dynscale = atoi(lin + matches[1].rm_so);
} else if(!regexec(&TimeOut, lin, 4, matches, 0)) {
be_to = atoi(lin + matches[1].rm_so);
} else if(!regexec(&ConnTO, lin, 4, matches, 0)) {
@@ -1481,7 +1475,6 @@
|| regcomp(&Type, "^[ \t]*Type[ \t]+([^ \t]+)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
|| regcomp(&TTL, "^[ \t]*TTL[ \t]+([1-9-][0-9]*)[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
|| regcomp(&ID, "^[ \t]*ID[ \t]+\"(.+)\"[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
- || regcomp(&DynScale, "^[ \t]*DynScale[ \t]+([01])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
|| regcomp(&ClientCert, "^[ \t]*ClientCert[ \t]+([0-3])[ \t]+([1-9])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
|| regcomp(&AddHeader, "^[ \t]*AddHeader[ \t]+\"(.+)\"[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
|| regcomp(&SSLAllowClientRenegotiation, "^[ \t]*SSLAllowClientRenegotiation[ \t]+([012])[ \t]*$", REG_ICASE | REG_NEWLINE | REG_EXTENDED)
@@ -1651,7 +1644,6 @@
regfree(&Type);
regfree(&TTL);
regfree(&ID);
- regfree(&DynScale);
regfree(&ClientCert);
regfree(&AddHeader);
regfree(&SSLAllowClientRenegotiation);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/configure new/Pound-2.8a/configure
--- old/Pound-2.7/configure 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/configure 2016-10-23 16:59:47.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for pound 2.7.
+# Generated by GNU Autoconf 2.69 for pound 2.8a.
#
# Report bugs to <roseg(a)apsis.ch>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='pound'
PACKAGE_TARNAME='pound'
-PACKAGE_VERSION='2.7'
-PACKAGE_STRING='pound 2.7'
+PACKAGE_VERSION='2.8a'
+PACKAGE_STRING='pound 2.8a'
PACKAGE_BUGREPORT='roseg(a)apsis.ch'
PACKAGE_URL=''
@@ -683,6 +683,7 @@
docdir
oldincludedir
includedir
+runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -764,6 +765,7 @@
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1016,6 +1018,15 @@
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1153,7 +1164,7 @@
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
+ libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1266,7 +1277,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures pound 2.7 to adapt to many kinds of systems.
+\`configure' configures pound 2.8a to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1306,6 +1317,7 @@
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -1332,7 +1344,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pound 2.7:";;
+ short | recursive ) echo "Configuration of pound 2.8a:";;
esac
cat <<\_ACEOF
@@ -1439,7 +1451,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-pound configure 2.7
+pound configure 2.8a
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1862,7 +1874,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pound $as_me 2.7, which was
+It was created by pound $as_me 2.8a, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -6171,7 +6183,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by pound $as_me 2.7, which was
+This file was extended by pound $as_me 2.8a, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -6233,7 +6245,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-pound config.status 2.7
+pound config.status 2.8a
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/http.c new/Pound-2.8a/http.c
--- old/Pound-2.7/http.c 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/http.c 2016-10-23 16:59:47.000000000 +0200
@@ -31,7 +31,8 @@
static char *h500 = "500 Internal Server Error",
*h501 = "501 Not Implemented",
*h503 = "503 Service Unavailable",
- *h414 = "414 Request URI too long";
+ *h414 = "414 Request URI too long",
+ *h400 = "Bad Request";
static char *err_response = "HTTP/1.0 %s\r\nContent-Type: text/html\r\nContent-Length: %d\r\nExpires: now\r\nPragma: no-cache\r\nCache-control: no-cache,no-store\r\n\r\n%s";
@@ -83,7 +84,7 @@
safe_url, safe_url);
snprintf(rep, sizeof(rep),
"HTTP/1.0 %d %s\r\nLocation: %s\r\nContent-Type: text/html\r\nContent-Length: %d\r\n\r\n",
- code, code_msg, safe_url, strlen(cont));
+ code, code_msg, safe_url, (int)strlen(cont));
BIO_write(c, rep, strlen(rep));
BIO_write(c, cont, strlen(cont));
BIO_flush(c);
@@ -126,11 +127,11 @@
get_line(BIO *const in, char *const buf, const int bufsize)
{
char tmp;
- int i, n_read;
+ int i, n_read, seen_cr;
memset(buf, 0, bufsize);
- for(n_read = 0;;)
- switch(BIO_gets(in, buf + n_read, bufsize - n_read - 1)) {
+ for(i = 0, seen_cr = 0; i < bufsize - 1; i++)
+ switch(BIO_read(in, &tmp, 1)) {
case -2:
/* BIO_gets not implemented */
return -1;
@@ -138,24 +139,49 @@
case -1:
return 1;
default:
- for(i = n_read; i < bufsize && buf[i]; i++)
- if(buf[i] == '\n' || buf[i] == '\r') {
- buf[i] = '\0';
+ if(seen_cr)
+ if(tmp != '\n') {
+ /* we have CR not followed by NL */
+ do {
+ if(BIO_read(in, &tmp, 1) < 0)
+ return 1;
+ } while(tmp != '\n');
+ return 1;
+ } else {
+ buf[i - 1] = '\0';
return 0;
}
- if(i < bufsize) {
- n_read = i;
+
+ if(!iscntrl(tmp) || tmp == '\t') {
+ buf[i] = tmp;
+ continue;
+ }
+
+ if(tmp == '\r') {
+ seen_cr = 1;
continue;
}
- logmsg(LOG_NOTICE, "(%lx) line too long: %s", pthread_self(), buf);
- /* skip rest of "line" */
- tmp = '\0';
- while(tmp != '\n')
- if(BIO_read(in, &tmp, 1) != 1)
+
+ if(tmp == '\n') {
+ /* line ends in NL only (no CR) */
+ buf[i] = 0;
+ return 0;
+ }
+
+ /* all other control characters cause an error */
+ do {
+ if(BIO_read(in, &tmp, 1) < 0)
return 1;
- break;
+ } while(tmp != '\n');
+ return 1;
}
- return 0;
+
+ /* line too long */
+ do {
+ if(BIO_read(in, &tmp, 1) < 0)
+ return 1;
+ } while(tmp != '\n');
+ return 1;
}
/*
@@ -393,22 +419,16 @@
/* HTTP/1.1 allows leading CRLF */
memset(buf, 0, MAXBUF);
- while((res = BIO_gets(in, buf, MAXBUF - 1)) > 0) {
- has_eol = strip_eol(buf);
+ while((res = get_line(in, buf, MAXBUF)) == 0)
if(buf[0])
break;
- }
- if(res <= 0) {
+ if(res < 0) {
/* this is expected to occur only on client reads */
/* logmsg(LOG_NOTICE, "headers: bad starting read"); */
return NULL;
- } else if(!has_eol) {
- /* check for request length limit */
- logmsg(LOG_WARNING, "(%lx) e414 headers: request URI too long", pthread_self());
- err_reply(cl, h414, lstn->err414);
- return NULL;
}
+
if((headers = (char **)calloc(MAXHEADERS, sizeof(char *))) == NULL) {
logmsg(LOG_WARNING, "(%lx) e500 headers: out of memory", pthread_self());
err_reply(cl, h500, lstn->err500);
@@ -426,8 +446,10 @@
for(n = 1; n < MAXHEADERS; n++) {
if(get_line(in, buf, MAXBUF)) {
free_headers(headers);
+ /* this is not necessarily an error, EOF/timeout are possible
logmsg(LOG_WARNING, "(%lx) e500 can't read header", pthread_self());
err_reply(cl, h500, lstn->err500);
+ */
return NULL;
}
if(!buf[0])
@@ -713,23 +735,39 @@
conn_closed = 1;
break;
case HEADER_TRANSFER_ENCODING:
- if(cont >= L0)
- headers_ok[n] = 0;
- else if(!strcasecmp("chunked", buf))
- if(chunked)
- headers_ok[n] = 0;
- else
- chunked = 1;
+ if(!strcasecmp("chunked", buf))
+ chunked = 1;
+ else {
+ addr2str(caddr, MAXBUF - 1, &from_host, 1);
+ logmsg(LOG_NOTICE, "(%lx) e400 multiple Transfer-encoding \"%s\" from %s", pthread_self(), url, caddr);
+ err_reply(cl, h400, "Bad request: multiple Transfer-encoding values");
+ free_headers(headers);
+ clean_all();
+ return;
+ }
break;
case HEADER_CONTENT_LENGTH:
- if(chunked || cont >= 0L)
- headers_ok[n] = 0;
- else {
- if((cont = ATOL(buf)) < 0L)
- headers_ok[n] = 0;
- if(is_rpc == 1 && (cont < 0x20000L || cont > 0x80000000L))
- is_rpc = -1;
+ if(cont != L_1 || strchr(buf, ',')) {
+ addr2str(caddr, MAXBUF - 1, &from_host, 1);
+ logmsg(LOG_NOTICE, "(%lx) e400 multiple Content-length \"%s\" from %s", pthread_self(), url, caddr);
+ err_reply(cl, h400, "Bad request: multiple Content-length values");
+ free_headers(headers);
+ clean_all();
+ return;
}
+ for(mh = buf; *mh; mh++)
+ if(!isdigit(*mh)) {
+ addr2str(caddr, MAXBUF - 1, &from_host, 1);
+ logmsg(LOG_NOTICE, "(%lx) e400 Content-length bad value \"%s\" from %s", pthread_self(), url, caddr);
+ err_reply(cl, h400, "Bad request: Content-length bad value");
+ free_headers(headers);
+ clean_all();
+ return;
+ }
+ if((cont = ATOL(buf)) < 0L)
+ headers_ok[n] = 0;
+ if(is_rpc == 1 && (cont < 0x20000L || cont > 0x80000000L))
+ is_rpc = -1;
break;
case HEADER_EXPECT:
/*
@@ -787,6 +825,16 @@
}
}
+ /* check for possible request smuggling attempt */
+ if(chunked != 0 && cont != L_1) {
+ addr2str(caddr, MAXBUF - 1, &from_host, 1);
+ logmsg(LOG_NOTICE, "(%lx) e501 Transfer-encoding and Content-length \"%s\" from %s", pthread_self(), url, caddr);
+ err_reply(cl, h400, "Bad request: Transfer-encoding and Content-length headers present");
+ free_headers(headers);
+ clean_all();
+ return;
+ }
+
/* possibly limited request size */
if(lstn->max_req > L0 && cont > L0 && cont > lstn->max_req && is_rpc != 1) {
addr2str(caddr, MAXBUF - 1, &from_host, 1);
@@ -1553,7 +1601,6 @@
}
}
end_req = cur_time();
- upd_be(svc, cur_backend, end_req - start_req);
/* log what happened */
memset(s_res_bytes, 0, LOG_BYTES_SIZE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/pound.8 new/Pound-2.8a/pound.8
--- old/Pound-2.7/pound.8 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/pound.8 2016-10-23 16:59:47.000000000 +0200
@@ -257,13 +257,6 @@
Ignore case when matching URLs (default: 0). This value can be
overridden for specific services.
.TP
-\fBDynScale\fR 0|1
-Enable or disable the dynamic rescaling code (default: 0). If enabled
-.B Pound
-will periodically try to modify the back-end priorities in order to
-equalise the response times from the various back-ends.
-This value can be overridden for specific services.
-.TP
\fBAlive\fR value
Specify how often
.B Pound
@@ -610,10 +603,6 @@
.B before
the service matching is attempted.
.TP
-\fBDynScale\fR 0|1
-Enable or disable dynamic rescaling for the current service. This value will
-override the value globally defined.
-.TP
\fBDisabled\fR 0|1
Start
.B Pound
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/pound.h new/Pound-2.8a/pound.h
--- old/Pound-2.7/pound.h 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/pound.h 2016-10-23 16:59:47.000000000 +0200
@@ -368,7 +368,6 @@
#else
LHASH *sessions; /* currently active sessions */
#endif
- int dynscale; /* true if the back-ends should be dynamically rescaled */
int disabled; /* true if the service is disabled */
struct _service *next;
} SERVICE;
@@ -556,21 +555,6 @@
extern void kill_be(SERVICE *const, const BACKEND *, const int);
/*
- * Rescale back-end priorities if needed
- * runs every 5 minutes
- */
-#ifndef RESCALE_TO
-#define RESCALE_TO 300
-#endif
-
-/*
- * Dynamic rescaling constants
- */
-#define RESCALE_MAX 32000
-#define RESCALE_MIN 8000
-#define RESCALE_BOT 4000
-
-/*
* Update the number of requests and time to answer for a given back-end
*/
extern void upd_be(SERVICE *const svc, BACKEND *const be, const double);
@@ -630,7 +614,6 @@
/*
* run timed functions:
* - RSAgen every T_RSA_KEYS seconds
- * - rescale every RESCALE_TO seconds
* - resurrect every alive_to seconds
* - expire every EXPIRE_TO seconds
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pound-2.7/svc.c new/Pound-2.8a/svc.c
--- old/Pound-2.7/svc.c 2015-01-26 17:47:53.000000000 +0100
+++ new/Pound-2.8a/svc.c 2016-10-23 16:59:47.000000000 +0200
@@ -727,30 +727,6 @@
}
/*
- * Update the number of requests and time to answer for a given back-end
- */
-void
-upd_be(SERVICE *const svc, BACKEND *const be, const double elapsed)
-{
- int ret_val;
-
- if(svc->dynscale) {
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "upd_be() lock: %s", strerror(ret_val));
- be->t_requests += elapsed;
- if(++be->n_requests > RESCALE_MAX) {
- /* scale it down */
- be->n_requests /= 2;
- be->t_requests /= 2;
- }
- be->t_average = be->t_requests / be->n_requests;
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "upd_be() unlock: %s", strerror(ret_val));
- }
- return;
-}
-
-/*
* Search for a host name, return the addrinfo for it
*/
int
@@ -1265,140 +1241,6 @@
return;
}
-/*
- * Rescale back-end priorities if needed
- * runs every 5 minutes
- */
-static void
-do_rescale(void)
-{
- LISTENER *lstn;
- SERVICE *svc;
- BACKEND *be;
- int n, ret_val;
- double average, sq_average;
-
- /* scale the back-end priorities */
- for(lstn = listeners; lstn; lstn = lstn->next)
- for(svc = lstn->services; svc; svc = svc->next) {
- if(!svc->dynscale)
- continue;
- average = sq_average = 0.0;
- n = 0;
- for(be = svc->backends; be; be = be->next) {
- if(be->be_type || !be->alive || be->disabled)
- continue;
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() lock: %s", strerror(ret_val));
- average += be->t_average;
- sq_average += be->t_average * be->t_average;
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() unlock: %s", strerror(ret_val));
- n++;
- }
- if(n <= 1)
- continue;
- sq_average /= n;
- average /= n;
- sq_average = sqrt(sq_average - average * average); /* this is now the standard deviation */
- sq_average *= 3; /* we only want things outside of 3 standard deviations */
- if(ret_val = pthread_mutex_lock(&svc->mut)) {
- logmsg(LOG_WARNING, "thr_rescale() lock: %s", strerror(ret_val));
- continue;
- }
- for(be = svc->backends; be; be = be->next) {
- if(be->be_type || !be->alive || be->disabled || be->n_requests < RESCALE_MIN)
- continue;
- if(be->t_average < (average - sq_average)) {
- be->priority++;
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() lock: %s", strerror(ret_val));
- while(be->n_requests > RESCALE_BOT) {
- be->n_requests /= 2;
- be->t_requests /= 2;
- }
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() unlock: %s", strerror(ret_val));
- svc->tot_pri++;
- }
- if(be->t_average > (average + sq_average) && be->priority > 1) {
- be->priority--;
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() lock: %s", strerror(ret_val));
- while(be->n_requests > RESCALE_BOT) {
- be->n_requests /= 2;
- be->t_requests /= 2;
- }
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() unlock: %s", strerror(ret_val));
- svc->tot_pri--;
- }
- }
- if(ret_val = pthread_mutex_unlock(&svc->mut))
- logmsg(LOG_WARNING, "thr_rescale() unlock: %s", strerror(ret_val));
- }
-
- for(svc = services; svc; svc = svc->next) {
- if(!svc->dynscale)
- continue;
- average = sq_average = 0.0;
- n = 0;
- for(be = svc->backends; be; be = be->next) {
- if(be->be_type || !be->alive || be->disabled)
- continue;
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() lock: %s", strerror(ret_val));
- average += be->t_average;
- sq_average += be->t_average * be->t_average;
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() unlock: %s", strerror(ret_val));
- n++;
- }
- if(n <= 1)
- continue;
- sq_average /= n;
- average /= n;
- sq_average = sqrt(sq_average - average * average); /* this is now the standard deviation */
- sq_average *= 3; /* we only want things outside of 3 standard deviations */
- if(ret_val = pthread_mutex_lock(&svc->mut)) {
- logmsg(LOG_WARNING, "thr_rescale() lock: %s", strerror(ret_val));
- continue;
- }
- for(be = svc->backends; be; be = be->next) {
- if(be->be_type || !be->alive || be->disabled || be->n_requests < RESCALE_MIN)
- continue;
- if(be->t_average < (average - sq_average)) {
- be->priority++;
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() lock: %s", strerror(ret_val));
- while(be->n_requests > RESCALE_BOT) {
- be->n_requests /= 2;
- be->t_requests /= 2;
- }
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() unlock: %s", strerror(ret_val));
- svc->tot_pri++;
- }
- if(be->t_average > (average + sq_average) && be->priority > 1) {
- be->priority--;
- if(ret_val = pthread_mutex_lock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() lock: %s", strerror(ret_val));
- while(be->n_requests > RESCALE_BOT) {
- be->n_requests /= 2;
- be->t_requests /= 2;
- }
- if(ret_val = pthread_mutex_unlock(&be->mut))
- logmsg(LOG_WARNING, "do_rescale() unlock: %s", strerror(ret_val));
- svc->tot_pri--;
- }
- }
- if(ret_val = pthread_mutex_unlock(&svc->mut))
- logmsg(LOG_WARNING, "thr_rescale() unlock: %s", strerror(ret_val));
- }
-
- return;
-}
-
static pthread_mutex_t RSA_mut; /* mutex for RSA keygen */
static RSA *RSA512_keys[N_RSA_KEYS]; /* ephemeral RSA keys */
static RSA *RSA1024_keys[N_RSA_KEYS]; /* ephemeral RSA keys */
@@ -1470,7 +1312,7 @@
}
#endif
-static time_t last_RSA, last_rescale, last_alive, last_expire;
+static time_t last_RSA, last_alive, last_expire;
/*
* initialise the timer functions:
@@ -1481,7 +1323,7 @@
{
int n;
- last_RSA = last_rescale = last_alive = last_expire = time(NULL);
+ last_RSA = last_alive = last_expire = time(NULL);
/*
* Pre-generate ephemeral RSA keys
@@ -1512,7 +1354,6 @@
/*
* run timed functions:
* - RSAgen every T_RSA_KEYS seconds
- * - rescale every RESCALE_TO seconds
* - resurect every alive_to seconds
* - expire every EXPIRE_TO seconds
*/
@@ -1525,8 +1366,6 @@
n_wait = EXPIRE_TO;
if(n_wait > alive_to)
n_wait = alive_to;
- if(n_wait > RESCALE_TO)
- n_wait = RESCALE_TO;
if(n_wait > T_RSA_KEYS)
n_wait = T_RSA_KEYS;
for(last_time = time(NULL) - n_wait;;) {
@@ -1538,10 +1377,6 @@
last_RSA = time(NULL);
do_RSAgen();
}
- if((last_time - last_rescale) >= RESCALE_TO) {
- last_rescale = time(NULL);
- do_rescale();
- }
if((last_time - last_alive) >= alive_to) {
last_alive = time(NULL);
do_resurect();
1
0
Hello community,
here is the log from the commit of package llvm4 for openSUSE:Factory checked in at 2018-01-31 19:54:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm4 (Old)
and /work/SRC/openSUSE:Factory/.llvm4.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm4"
Wed Jan 31 19:54:31 2018 rev:14 rq:571409 version:4.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/llvm4/llvm4.changes 2018-01-25 12:40:03.676006217 +0100
+++ /work/SRC/openSUSE:Factory/.llvm4.new/llvm4.changes 2018-01-31 19:54:36.433900203 +0100
@@ -1,0 +2,20 @@
+Wed Jan 31 08:48:48 UTC 2018 - msrb(a)suse.com
+
+- Cleanup %ifarch conditions, remove targets unintentionally added
+ to s390/s390x. (bnc#1078436)
+
+-------------------------------------------------------------------
+Tue Jan 30 09:24:22 UTC 2018 - msrb(a)suse.com
+
+- Limit the amount of parallel link jobs, but no longer limit
+ compile jobs. This should prevent running out of memory during
+ linking while not longer slowing down compilation.
+- Remove build dependency on procps
+
+-------------------------------------------------------------------
+Mon Jan 29 12:17:55 UTC 2018 - msrb(a)suse.com
+
+- Reduce disk size requirement to 30GB in _constraints. We no
+ longer need that much since we stopped building static libraries.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ llvm4.spec ++++++
--- /var/tmp/diff_new_pack.XFMWRh/_old 2018-01-31 19:54:38.633797894 +0100
+++ /var/tmp/diff_new_pack.XFMWRh/_new 2018-01-31 19:54:38.641797523 +0100
@@ -106,7 +106,6 @@
BuildRequires: ncurses-devel
BuildRequires: ninja
BuildRequires: pkgconfig
-BuildRequires: procps
BuildRequires: python3
BuildRequires: pkgconfig(libedit)
BuildRequires: pkgconfig(zlib)
@@ -567,32 +566,35 @@
%ifarch armv7hl
flags+=" -mfloat-abi=hard -march=armv7-a -mtune=cortex-a15 -mfpu=vfpv3-d16"
%endif
-%ifarch %{ix86} x86_64
+
+# By default build everything
TARGETS_TO_BUILD="all"
-%else
%ifarch s390 s390x
# No graphics cards on System z
TARGETS_TO_BUILD="host;BPF"
%endif
%ifarch %arm
+# TODO: Document why those.
TARGETS_TO_BUILD="host;ARM;AMDGPU;BPF;NVPTX"
-%else
-TARGETS_TO_BUILD="host;AMDGPU;BPF;NVPTX"
%endif
+%ifarch ppc64 ppc64le
+# TODO: Document why those.
+TARGETS_TO_BUILD="host;AMDGPU;BPF;NVPTX"
%endif
# do not eat all memory
-ninjaproc="%{?jobs:%{jobs}}"
+max_link_jobs="%{?jobs:%{jobs}}"
+max_compile_jobs="%{?jobs:%{jobs}}"
echo "Available memory:"
-free
+cat /proc/meminfo
echo "System limits:"
ulimit -a
-if test -n "$ninjaproc" -a "$ninjaproc" -gt 1 ; then
- mem_per_process=2000
- max_mem=`LANG=C free -t -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p"`
+if test -n "$max_link_jobs" -a "$max_link_jobs" -gt 1 ; then
+ mem_per_process=2000000
+ max_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
max_jobs="$(($max_mem / $mem_per_process))"
- test "$ninjaproc" -gt "$max_jobs" && ninjaproc="$max_jobs" && echo "Warning: Reducing number of jobs to $max_jobs because of memory limits"
- test "$ninjaproc" -le 0 && ninjaproc=1 && echo "Warning: Do not use the parallel build at all becuse of memory limits"
+ test "$max_link_jobs" -gt "$max_jobs" && max_link_jobs="$max_jobs" && echo "Warning: Reducing number of link jobs to $max_jobs because of memory limits"
+ test "$max_link_jobs" -le 0 && max_link_jobs=1 && echo "Warning: Not linking in parallel at all becuse of memory limits"
fi
%if 0%{?sle_version} && 0%{?sle_version} <= 130000
@@ -610,6 +612,8 @@
-DLLVM_LINK_LLVM_DYLIB:BOOL=OFF \
-DCMAKE_C_FLAGS="$flags" \
-DCMAKE_CXX_FLAGS="$flags" \
+ -DLLVM_PARALLEL_COMPILE_JOBS="$max_compile_jobs" \
+ -DLLVM_PARALLEL_LINK_JOBS="$max_link_jobs" \
-DENABLE_LINKER_BUILD_ID=ON \
-DLLVM_OPTIMIZED_TABLEGEN:BOOL=ON \
-DLLVM_BUILD_TOOLS:BOOL=OFF \
@@ -631,7 +635,7 @@
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-keep-memory" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-keep-memory" \
-DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
-ninja -v -j $ninjaproc clang
+ninja -v %{?_smp_mflags} clang
cd ..
%define __builddir build
@@ -648,6 +652,8 @@
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
-DCMAKE_C_FLAGS="$flags" \
-DCMAKE_CXX_FLAGS="$flags" \
+ -DLLVM_PARALLEL_COMPILE_JOBS="$max_compile_jobs" \
+ -DLLVM_PARALLEL_LINK_JOBS="$max_link_jobs" \
%ifarch %{arm} s390 %{ix86}
-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O2 -g1 -DNDEBUG" \
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -g1 -DNDEBUG" \
@@ -676,7 +682,7 @@
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,--build-id=sha1" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--build-id=sha1" \
-DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
-ninja -v -j $ninjaproc
+ninja -v %{?_smp_mflags}
cd ..
%if !0%{?sle_version}
++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.XFMWRh/_old 2018-01-31 19:54:38.693795104 +0100
+++ /var/tmp/diff_new_pack.XFMWRh/_new 2018-01-31 19:54:38.693795104 +0100
@@ -2,7 +2,7 @@
<constraints>
<hardware>
<disk>
- <size unit="G">45</size>
+ <size unit="G">30</size>
</disk>
<memory>
<size unit="M">6500</size>
1
0
Hello community,
here is the log from the commit of package 389-ds for openSUSE:Factory checked in at 2018-01-31 19:54:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/389-ds (Old)
and /work/SRC/openSUSE:Factory/.389-ds.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "389-ds"
Wed Jan 31 19:54:25 2018 rev:13 rq:571393 version:1.4.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/389-ds/389-ds.changes 2017-09-20 17:11:26.632088337 +0200
+++ /work/SRC/openSUSE:Factory/.389-ds.new/389-ds.changes 2018-01-31 19:54:27.522314643 +0100
@@ -1,0 +2,537 @@
+Wed Jan 31 13:28:21 UTC 2018 - hguo(a)suse.com
+
+- For SLES 15 schedule, do not build lib389 programmable extension
+ for now.
+
+-------------------------------------------------------------------
+Wed Jan 31 11:13:17 UTC 2018 - dimstar(a)opensuse.org
+
+- BuildRequire python3-ldap instead of python3-pyldap: pyldap is
+ deprecated in favor of python-ldap.
+
+-------------------------------------------------------------------
+Tue Jan 30 14:19:15 UTC 2018 - hguo(a)suse.com
+
+- Rename dependency package python-pyldap into python3-pyldap.
+
+-------------------------------------------------------------------
+Mon Jan 29 15:20:10 UTC 2018 - hguo(a)suse.com
+
+- Correct name to dependency package "python-pyldap".
+
+-------------------------------------------------------------------
+Thu Jan 25 15:09:41 UTC 2018 - hguo(a)suse.com
+
+- Introduce patch 0003-fix-rm-non-existent-man-pages.patch to remove
+ a faulty rm statement from makefile.
+
+-------------------------------------------------------------------
+Tue Dec 5 14:45:57 UTC 2017 - rbrown(a)suse.com
+
+- Replace references to /var/adm/fillup-templates with new
+ %_fillupdir macro (boo#1069468)
+
+-------------------------------------------------------------------
+Mon Nov 20 22:34:46 UTC 2017 - mrueckert(a)suse.de
+
+- added simplify-lib389-setup-py.patch
+ seems the python3 setuptools on leap 42.3 do not like this fancy
+ syntax. kill it and always use the python 3 way.
+
+-------------------------------------------------------------------
+Mon Nov 20 22:15:45 UTC 2017 - mrueckert(a)suse.de
+
+- update to 1.4.0.3
+ - Ticket 49457 - Fix spal_meminfo_get function prototype
+ - Ticket 49455 - Add tests to monitor test suit.
+ - Ticket 49448 - dynamic default pw scheme based on environment.
+ - Ticket 49298 - fix complier warn
+ - Ticket 49298 - Correct error codes with config restore.
+ - Ticket 49454 - SSL Client Authentication breaks in FIPS mode
+ - Ticket 49453 - passwd.py to use pwdhash defaults.
+ - Ticket 49427 - whitespace in fedse.c
+ - Ticket 49410 - opened connection can remain no longer poll,
+ like hanging
+ - Ticket 48118 - fix compiler warning for incorrect return type
+ - Ticket 49451 - Add environment markers to lib389 dependencies
+ - Ticket 49325 - Proof of concept rust tqueue in sds
+ - Ticket 49443 - scope one searches in 1.3.7 give incorrect
+ results
+ - Ticket 48118 - At startup, changelog can be erronously rebuilt
+ after a normal shutdown
+ - Ticket 49412 - SIGSEV when setting invalid changelog config
+ value
+ - Ticket 49441 - Import crashes - oneline fix
+ - Ticket 49377 - Incoming BER too large with TLS on plain port
+ - Ticket 49441 - Import crashes with large indexed binary
+ attributes
+ - Ticket 49435 - Fix NS race condition on loaded test systems
+ - Ticket 77 - lib389 - Refactor docstrings in rST format - part 2
+ - Ticket 17 - lib389 - dsremove support
+ - Ticket 3 - lib389 - python 3 compat for paged results test
+ - Ticket 3 - lib389 - Python 3 support for memberof plugin test
+ suit
+ - Ticket 3 - lib389 - config test
+ - Ticket 3 - lib389 - python 3 support ds_logs tests
+ - Ticket 3 - lib389 - python 3 support for betxn test
+
+-------------------------------------------------------------------
+Sat Nov 11 00:53:42 UTC 2017 - mrueckert(a)suse.de
+
+- we actually need pyldap
+
+-------------------------------------------------------------------
+Fri Nov 10 23:50:29 UTC 2017 - mrueckert(a)suse.de
+
+- lib389 is merged into this tarball now. move the subpackage here.
+
+-------------------------------------------------------------------
+Fri Nov 10 22:45:23 UTC 2017 - mrueckert(a)suse.de
+
+- update to 1.4.0.2
+ - Ticket 48393 - fix copy and paste error
+ - Ticket 49439 - cleanallruv is not logging information
+ - Ticket 48393 - Improve replication config validation
+ - Ticket lib389 3 - Python 3 support for ACL test suite
+ - Ticket 103 - sysconfig not found
+ - Ticket 49436 - double free in COS in some conditions
+ - Ticket 48007 - CI test to test changelog trimming interval
+ - Ticket 49424 - Resolve csiphash alignment issues
+ - Ticket lib389 3 - Python 3 support for
+ pwdPolicy_controls_test.py
+ - Ticket 3 - python 3 support - filter test
+ - Ticket 49434 - RPM build errors
+ - Ticket 49432 - filter optimise crash
+ - Ticket 49432 - Add complex fliter CI test
+ - Ticket 48894 - harden valueset_array_to_sorted_quick valueset
+ access
+ - Ticket 49401 - Fix compiler incompatible-pointer-types warnings
+ - Ticket 48681 - Use of uninitialized value in string ne at
+ /usr/bin/logconv.pl
+ - Ticket 49409 - Update lib389 requirements
+ - Ticket 49401 - improve valueset sorted performance on delete
+ - Ticket 49374 - server fails to start because maxdisksize is
+ recognized incorrectly
+ - Ticket 49408 - Server allows to set any nsds5replicaid in the
+ existing replica entry
+ - Ticket 49407 - status-dirsrv shows ellipsed lines
+ - Ticket 48681 - Use of uninitialized value in string ne at
+ /usr/bin/logconv.pl
+ - Ticket 49386 - Memberof should be ignore MODRDN when the
+ pre/post entry are identical
+ - Ticket 48006 - Missing warning for invalid replica backoff
+ configuration
+ - Ticket 49064 - testcase hardening
+ - Ticket 49064 - RFE allow to enable MemberOf plugin in dedicated
+ consumer
+ - Ticket lib389 3 - python 3 support
+ - Ticket 49402 - Adding a database entry with the same database
+ name that was deleted hangs server at shutdown
+ - Ticket 48235 - remove memberof lock (cherry-pick error)
+ - Ticket 49394 - build warning
+ - Ticket 49381 - Refactor numerous suite docstrings - Part 2
+ - Ticket 49394 - slapi_pblock_get may leave unchanged the
+ provided variable
+ - Ticket 49403 - tidy ns logging
+ - Ticket 49381 - Refactor filter test suite docstrings
+ - Ticket 48235 - Remove memberOf global lock
+ - Ticket 103 - Make sysconfig where it is expected to exist
+ - Ticket 49400 - Add clang support to rpm builds
+ - Ticket 49381 - Refactor ACL test suite docstrings
+ - Ticket 49363 - Merge lib389
+ - Ticket 101 - BaseException.message has been deprecated in
+ Python3
+ - Ticket 102 - referral support
+ - Ticket 99 - Fix typo in create_topology
+ - Ticket #98 - Fix dbscan output
+ - Ticket #77 - Fix changelogdb param issue
+ - Ticket #77 - Refactor docstrings in rST format - part 1
+ - Ticket 96 - Change binaries’ names
+ - Ticket 77 - Add sphinx documentation
+ - Ticket 43 - Add support for Referential Integrity plugin
+ - Ticket 45 - Add support for Rootdn Access Control plugin
+ - Ticket 46 - dsconf support for dynamic schema reload
+ - Ticket 74 - Advice users to set referint-update-delay to 0
+ - Ticket 92 - display_attr() should return str not bytes in py3
+ - Ticket 93 - Fix test cases in ctl_dbtasks_test.py
+ - Ticket 88 - python install and remove for tests
+ - Ticket 85 - Remove legacy replication attribute
+ - Ticket 91 - Fix replication topology
+ - Ticket 89 - Fix inconsistency with serverid
+ - Ticket 79 - Fix replica.py and add tests
+ - Ticket 86 - add build dir to gitignore
+ - Ticket 83 - Add an util for generating instance parameters
+ - Ticket 87 - Update accesslog regec for HR etimes
+ - Ticket 49 - Add support for whoami plugin
+ - Ticket 48 - Add support for USN plugin
+ - Ticket 78 - Add exists() method to DSLdapObject
+ - Ticket 31 - Allow complete removal of some memberOf attrs
+ - Ticket31 - Add memberOf fix-up task
+ - Ticket 67 - Add ensure_int function
+ - Ticket 59 - lib389 support for index management.
+ - Ticket 67 - get attr by type
+ - Ticket 70 - Improve repl tools
+ - Ticket 50 - typo in db2* in dsctl
+ - Ticket 31 - Add status command and SkipNested support for
+ MemberOf
+ - Ticket 31 - Add functional tests for MemberOf plugin
+ - Ticket 66 - expand healthcheck for Directory Server
+ - Ticket 69 - add specfile requires
+ - Ticket 31 - Initial MemberOf plugin support
+ - Ticket 50 - Add db2* tasks to dsctl
+ - Ticket 65 - Add m2c2 topology
+ - Ticket 63 - part 2, agreement test
+ - Ticket 63 - lib389 python 3 fix
+ - Ticket 62 - dirsrv offline log
+ - Ticket 60 - add dsrc to dsconf and dsidm
+ - Ticket 32 - Add TLS external bind support for testing
+ - Ticket 27 - Fix get function in tests
+ - Ticket 28 - userAccount for older versions without nsmemberof
+ - Ticket 27 - Improve dseldif API
+ - Ticket 30 - Add initial support for account lock and unlock.
+ - Ticket 29 - fix incorrect format in tools
+ - Ticket 28 - Change default objectClasses for users and groups
+ - Ticket 1 - Fix missing dn / rdn on config.
+ - Ticket 27 - Add a module for working with dse.ldif file
+ - Ticket 1 - cn=config comparison
+ - Ticket 21 - Missing serverid in dirsrv_test due to incorrect
++++ 435 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/389-ds/389-ds.changes
++++ and /work/SRC/openSUSE:Factory/.389-ds.new/389-ds.changes
Old:
----
389-ds-base-1.3.6.6.tar.bz2
389-ds-reproducible.patch
New:
----
0003-fix-rm-non-existent-man-pages.patch
389-ds-base-1.4.0.3.tar.bz2
simplify-lib389-setup-py.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ 389-ds.spec ++++++
--- /var/tmp/diff_new_pack.PQHN0Z/_old 2018-01-31 19:54:28.914249910 +0100
+++ /var/tmp/diff_new_pack.PQHN0Z/_new 2018-01-31 19:54:28.914249910 +0100
@@ -1,7 +1,7 @@
#
# spec file for package 389-ds
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,27 +16,47 @@
#
+#Compat macro for new _fillupdir macro introduced in Nov 2017
+%if ! %{defined _fillupdir}
+ %define _fillupdir /var/adm/fillup-templates
+%endif
+
+%bcond_with lib389
+%define use_python python3
+%define skip_python2 1
+%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+
# Home directory
-%define home /var/lib/dirsrv
+%global pkgname dirsrv
+%global groupname %{pkgname}.target
+
+%define homedir %{_localstatedir}/lib/dirsrv
+%define logdir %{_localstatedir}/log/dirsrv
+%define lockdir %{_localstatedir}/lock/dirsrv
# User and group name that own the home directory
%define user_group dirsrv
+%ifnarch s390x s390 ppc64 ppc64le
+%global use_tcmalloc 1
+%else
+%global use_tcmalloc 0
+%endif
Name: 389-ds
+Version: 1.4.0.3
+Release: 0
Summary: 389 Directory Server
License: GPL-2.0
Group: Productivity/Networking/LDAP/Servers
-Version: 1.3.6.6
-Release: 0
-Url: http://port389.org/
-Source: http://www.port389.org/binaries/%name-base-%version.tar.bz2
+Url: https://pagure.io/389-ds-base
+Source: https://releases.pagure.org/389-ds-base/389-ds-base-%{version}.tar.bz2
Source1: extra-schema.tgz
Source2: LICENSE.openldap
-Source9: %name-rpmlintrc
+Source9: %{name}-rpmlintrc
# PATCH-FIX-SLES -- Make init scripts LSB conform
Patch1: 0001-init_fhs.patch
Patch2: 0002-use-python2-for-selinux-detection.patch
-# PATCH-FIX-UPSTREAM -- Allow to override buildnum
-Patch3: 389-ds-reproducible.patch
+Patch3: 0003-fix-rm-non-existent-man-pages.patch
+Patch4: simplify-lib389-setup-py.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: autoconf
BuildRequires: automake
@@ -44,6 +64,7 @@
BuildRequires: db-devel >= 4.5
BuildRequires: doxygen
BuildRequires: gcc-c++
+BuildRequires: gdb
BuildRequires: krb5-devel
BuildRequires: libcmocka-devel
BuildRequires: libevent-devel
@@ -54,22 +75,35 @@
BuildRequires: net-snmp-devel >= 5.1.2
BuildRequires: openldap2-devel
# pam-devel is required by the pam passthru auth plug-in
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module setuptools}
+%if %{with lib389}
+BuildRequires: %{python_module pyasn1-modules}
+BuildRequires: %{python_module pyasn1}
+BuildRequires: %{python_module python-dateutil}
+BuildRequires: %{python_module six}
+BuildRequires: python3-ldap
+%endif
BuildRequires: pam-devel
BuildRequires: pkgconfig
-BuildRequires: python3-devel
-BuildRequires: python3-setuptools
+BuildRequires: python-rpm-macros
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(libpcre)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(nspr)
BuildRequires: pkgconfig(nss)
-BuildRequires: pkgconfig(svrcore)
+BuildRequires: pkgconfig(svrcore) >= 4.1.3
BuildRequires: pkgconfig(systemd)
-Requires: %_sbindir/service
+%if %{use_tcmalloc}
+BuildRequires: pkgconfig(libtcmalloc)
+%endif
+Requires: %{_sbindir}/service
Requires: acl
+Requires: bind-utils
Requires: cyrus-sasl-digestmd5
Requires: cyrus-sasl-gssapi
+Requires: db-utils
Requires: mozilla-nss-tools
Requires: openldap2-client
Requires: python-selinux
@@ -80,14 +114,12 @@
Requires: perl(Mozilla::LDAP::Utils)
Requires: perl(NetAddr::IP)
Requires: perl(Socket6)
-Requires(pre): shadow
Requires(post): fillup
-
+Requires(pre): shadow
+Obsoletes: 389-ds-base < %{version}-%{release}
+Provides: 389-ds-base = %{version}-%{release}
%{?systemd_requires}
-Obsoletes: 389-ds-base < %version-%release
-Provides: 389-ds-base = %version-%release
-
%description
389 Directory Server is a full-featured LDAPv3 compliant server. In
addition to the standard LDAPv3 operations, it supports multi-master
@@ -99,7 +131,13 @@
%package devel
Summary: Development files for the 389 Directory Server
Group: Development/Libraries/C and C++
-Requires: %name = %version-%release
+Requires: %{name} = %{version}
+Requires: openldap2-devel
+Requires: pkgconfig
+Requires: pkgconfig(nspr)
+Requires: pkgconfig(nss)
+Requires: pkgconfig(svrcore) >= 4.1.3
+Requires: pkgconfig(systemd)
%description devel
389 Directory Server is a full-featured LDAPv3 compliant server. In
@@ -111,112 +149,306 @@
This package contains the development files for 389DS.
+%package snmp
+Summary: SNMP Agent for 389 Directory Server
+Group: System/Daemons
+Requires: %{name} = %{version}
+
+# upgrade path from monolithic %{name} (including -libs & -devel) to %{name} + %{name}-snmp
+Obsoletes: %{name} <= 1.3.6.2
+
+%description snmp
+SNMP Agent for the 389 Directory Server base package.
+
+%if %{with lib389}
+%package -n lib389
+Summary: Python library for interacting with the 389 Directory Server
+Group: Development/Languages/Python
+Requires: %{use_python}-pyasn1
+Requires: %{use_python}-pyasn1-modules
+Requires: %{use_python}-pyldap
+Requires: %{use_python}-python-dateutil
+Requires: %{use_python}-six
+Requires: krb5
+Requires: krb5-client
+
+Provides: python-lib389 = %{version}-%{release}
+Provides: python3-lib389 = %{version}-%{release}
+Obsoletes: python-lib389 < %{version}-%{release}
+Obsoletes: python3-lib389 < %{version}-%{release}
+
+%description -n lib389
+Python library for interacting with the 389 Directory Server
+%endif
+
%prep
-%setup -a 1 -qn %name-base-%version
+%setup -q -a 1 -n %{name}-base-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%patch4 -p1
%build
+# Make sure python3 is used in shebangs
+# FIX ME!! This should be fixed in the source code !!!
+sed -r -i '1s|^#!\s*%{_bindir}.*python.*|#!%{_bindir}/%{use_python}|' ldap/admin/src/scripts/{*.py,ds-replcheck} src/lib389/cli/ds*
+
+# TODO:
+# seems to have no effect --enable-perl \
+# warning that it might lead to instabilities --with-journald \
+
autoreconf -fi
-export CFLAGS="%optflags -std=gnu99"
+export CFLAGS="%{optflags}" # -std=gnu99"
%configure \
+ %if 0%{?suse_version} >= 1330
--enable-gcc-security \
- --bindir="%_libexecdir/%name/bin" \
- --sbindir="%_libexecdir/%name/sbin" \
+ %endif
--enable-autobind \
--enable-auto-dn-suffix \
- --enable-nunc-stans \
+ --with-openldap \
--enable-cmocka \
+ %if %{use_tcmalloc}
+ --enable-tcmalloc \
+ %endif
--with-selinux \
- --with-pythonexec="%_bindir/python3" \
+ --with-perldir=%{_bindir} \
+ --with-pythonexec="%{_bindir}/%{use_python}" \
--with-systemd \
- --with-systemdsystemunitdir="%_unitdir" \
- --with-systemdsystemconfdir="%_sysconfdir/systemd/system" \
- --with-tmpfiles-d="%_tmpfilesdir" \
+ --with-systemdgroupname=%{groupname} \
+ --with-systemdsystemunitdir="%{_unitdir}" \
+ --with-systemdsystemconfdir="%{_sysconfdir}/systemd/system" \
+ --with-tmpfiles-d="%{_tmpfilesdir}" \
--with-systemdgroupname=dirsrv.target \
+export XCFLAGS="$CFLAGS"
make %{?_smp_mflags}
+make setup.py
+%if %{with lib389}
+pushd src/lib389
+%python_build
+popd
+%endif
%install
-b="%buildroot"
-make install DESTDIR="$b"
+%make_install
+%if %{with lib389}
+pushd src/lib389
+%python_install
+popd
+%endif
+
+cp -r man/man3 %{buildroot}%{_mandir}/man3
+
+install -D -d -m 0750 %{buildroot}%{homedir}
+mkdir -p %{buildroot}%{logdir}
+mkdir -p %{buildroot}%{homedir}
+mkdir -p %{buildroot}%{lockdir}
-install -d "$b/%_sbindir"
-ln -s "%_libexecdir/%name/sbin/setup-ds.pl" "$b/%_sbindir/setup-ds.pl"
+# for systemd
+mkdir -p %{buildroot}%{_sysconfdir}/systemd/system/%{groupname}.wants
-install -d "$b/%_unitdir/dirsrv.target.wants"
-ln -s service "$b/%_sbindir/rcdirsrv"
-ln -s service "$b/%_sbindir/rcdirsrv-snmp"
-
-install -d "$b/%_localstatedir/adm/fillup-templates"
-for i in "$b/%_sysconfdir/sysconfig"/*; do
- mv "$i" "$b/%_localstatedir/adm/fillup-templates/sysconfig.${i##*/}"
-done
-find "$b/%_libdir" -type f -name "*.la" -delete
+#remove libtool archives and static libs
+find %{buildroot} -type f -name "*.la" -delete -print
# make sure perl scripts have a proper shebang
-sed -i -e 's|#{{PERL-EXEC}}|#!%_bindir/perl|' "$b/%_datadir/dirsrv/script-templates"/template-*.pl
-install -D -d -m 0750 %buildroot%home
+sed -i -e 's|#{{PERL-EXEC}}|#!%{_bindir}/perl|' %{buildroot}%{_datadir}/%{pkgname}/script-templates/template-*.pl
# install extra schema files
-cp -R extra-schema "$b/%_datadir/dirsrv/"
+cp -R extra-schema "%{buildroot}/%{_datadir}/dirsrv/"
# bring OpenLDAP copyright notice here because it is referenced by several extra schema files
-cp %{S:2} ./
+cp %{SOURCE2} ./
+
+install -d "%{buildroot}%{_fillupdir}"
+for i in "%{buildroot}%{_sysconfdir}/sysconfig"/*; do
+ mv "$i" "%{buildroot}%{_fillupdir}/sysconfig.${i##*/}"
+done
%pre
-if ! getent group %user_group >/dev/null; then
- %_sbindir/groupadd -f -r %user_group
+if ! getent group %{user_group} >/dev/null; then
+ %{_sbindir}/groupadd -f -r %{user_group}
fi
-if ! getent passwd %user_group >/dev/null; then
- %_sbindir/useradd -r -g %user_group -s /sbin/nologin -r -d %home -c "User for 389 directory server" %user_group >/dev/null
+if ! getent passwd %{user_group} >/dev/null; then
+ %{_sbindir}/useradd -r -g %{user_group} -s /sbin/nologin -r -d %{homedir} -c "User for 389 directory server" %{user_group}
fi
-%service_add_pre dirsrv(a)*.service dirsrv-snmp.service dirsrv.target
-%post
+%postun
+output=/dev/null
+# reload to pick up any changes to systemd files
+/bin/systemctl daemon-reload >$output 2>&1 || :
+# reload to pick up any shared lib changes
%fillup_only -n dirsrv
%fillup_only -n dirsrv.systemd
-%service_add_post dirsrv(a)*.service dirsrv-snmp.service dirsrv.target
+# find all instances
+instances="" # instances that require a restart after upgrade
+ninst=0 # number of instances found in total
+if [ -n "$DEBUGPOSTTRANS" ] ; then
+ output=$DEBUGPOSTTRANS
+fi
+
+echo looking for instances in %{_sysconfdir}/%{pkgname} > $output 2>&1 || :
+instbase="%{_sysconfdir}/%{pkgname}"
+for dir in $instbase/slapd-* ; do
+ echo dir = $dir >> $output 2>&1 || :
+ if [ ! -d "$dir" ] ; then continue ; fi
+ case "$dir" in *.removed) continue ;; esac
+ basename=`basename $dir`
+ inst="%{pkgname}@`echo $basename | sed -e 's/slapd-//g'`"
+ echo found instance $inst - getting status >> $output 2>&1 || :
+ if /bin/systemctl -q is-active $inst ; then
+ echo instance $inst is running >> $output 2>&1 || :
+ instances="$instances $inst"
+ else
+ echo instance $inst is not running >> $output 2>&1 || :
+ fi
+ ninst=`expr $ninst + 1`
+done
+if [ $ninst -eq 0 ] ; then
+ echo no instances to upgrade >> $output 2>&1 || :
+ exit 0 # have no instances to upgrade - just skip the rest
+fi
+# shutdown all instances
+echo shutting down all instances . . . >> $output 2>&1 || :
+for inst in $instances ; do
+ echo stopping instance $inst >> $output 2>&1 || :
+ /bin/systemctl stop $inst >> $output 2>&1 || :
+done
+# do the upgrade
+echo upgrading instances . . . >> $output 2>&1 || :
+DEBUGPOSTSETUPOPT=`/usr/bin/echo $DEBUGPOSTSETUP | /usr/bin/sed -e "s/[^d]//g"`
+if [ -n "$DEBUGPOSTSETUPOPT" ] ; then
+ %{_sbindir}/setup-ds.pl -l $output -$DEBUGPOSTSETUPOPT -u -s General.UpdateMode=offline >> $output 2>&1 || :
+else
+ %{_sbindir}/setup-ds.pl -l $output -u -s General.UpdateMode=offline >> $output 2>&1 || :
+fi
+
+# restart instances that require it
+for inst in $instances ; do
+ echo restarting instance $inst >> $output 2>&1 || :
+ /bin/systemctl start $inst >> $output 2>&1 || :
+done
+exit 0
%preun
-%service_del_preun dirsrv(a)*.service dirsrv-snmp.service dirsrv.target
+%service_del_preun %{pkg_name}.target
-%postun
-%service_del_postun dirsrv(a)*.service dirsrv-snmp.service dirsrv.target
+%pre snmp
+%service_add_pre dirsrv-snmp.service
+
+%post snmp
+%service_add_post %{pkgname}-snmp.service
+
+%preun snmp
+%service_del_preun %{pkgname}-snmp.service
+
+%postun snmp
+%service_del_postun %{pkgname}-snmp.service
%files
%defattr(-,root,root)
%doc LICENSE README LICENSE.openldap
-%dir %attr(-,%user_group,%user_group) %home
-%config(noreplace) %_sysconfdir/dirsrv/config/*
-%config(noreplace) %_sysconfdir/dirsrv/schema/*
-%_datadir/dirsrv
-%dir %_libdir/dirsrv
-%dir %_libdir/dirsrv/*
-%dir %_sysconfdir/dirsrv
-%dir %_sysconfdir/dirsrv/config
-%dir %_sysconfdir/dirsrv/schema
-%_libdir/dirsrv/libns-dshttpd-%version.so
-%_libdir/dirsrv/perl/*.pm
-%_libdir/dirsrv/plugins/*.so
-%_libdir/dirsrv/python/*.py
-%_libdir/dirsrv/*.so.*
-%_libexecdir/%name/
-%_localstatedir/adm/fillup-templates/sysconfig.*
-%_mandir/man1/*
-%_mandir/man8/*
-%_sbindir/*
-%_unitdir/dirsrv*
+%dir %attr(-,%{user_group},%{user_group}) %{homedir}
+%dir %attr(-,%{user_group},%{user_group}) %{logdir}
+%config(noreplace) %{_sysconfdir}/dirsrv/config/*
+%config(noreplace) %{_sysconfdir}/dirsrv/schema/*
+%{_datadir}/dirsrv
+%dir %{_libdir}/dirsrv
+%dir %{_libdir}/dirsrv/*
+%dir %{_sysconfdir}/dirsrv
+%dir %{_sysconfdir}/dirsrv/config
+%dir %{_sysconfdir}/dirsrv/schema
+%{_libdir}/dirsrv/libns-dshttpd-*.so
+%{_libdir}/dirsrv/perl/*.pm
+%{_libdir}/dirsrv/plugins/*.so
+%{_libdir}/dirsrv/python/*.py
+%{_libdir}/dirsrv/*.so.*
+%{_fillupdir}/sysconfig.*
+%exclude %{_mandir}/man1/ldap-agent*
+%{_mandir}/man1/*
+%{_mandir}/man8/*
+%{_bindir}/*
+%caps(CAP_NET_BIND_SERVICE=pe) %{_sbindir}/ns-slapd
+#{_sbindir}/ns-slapd
+%{_sbindir}/bak2db
+%{_sbindir}/bak2db.pl
+%{_sbindir}/cleanallruv.pl
+%{_sbindir}/db2bak
+%{_sbindir}/db2bak.pl
+%{_sbindir}/db2index
+%{_sbindir}/db2index.pl
+%{_sbindir}/db2ldif
+%{_sbindir}/db2ldif.pl
+%{_sbindir}/dbmon.sh
+%{_sbindir}/dbverify
+%{_sbindir}/dn2rdn
+%{_sbindir}/ds_selinux_enabled
+%{_sbindir}/ds_selinux_port_query
+%{_sbindir}/ds_systemd_ask_password_acl
+%{_sbindir}/fixup-linkedattrs.pl
+%{_sbindir}/fixup-memberof.pl
+%{_sbindir}/ldif2db
+%{_sbindir}/ldif2db.pl
+%{_sbindir}/ldif2ldap
+%{_sbindir}/migrate-ds.pl
+%{_sbindir}/monitor
+%{_sbindir}/ns-accountstatus.pl
+%{_sbindir}/ns-activate.pl
+%{_sbindir}/ns-inactivate.pl
+%{_sbindir}/ns-newpwpolicy.pl
+%{_sbindir}/remove-ds.pl
+%{_sbindir}/restart-dirsrv
+%{_sbindir}/restoreconfig
+%{_sbindir}/saveconfig
+%{_sbindir}/schema-reload.pl
+%{_sbindir}/setup-ds.pl
+%{_sbindir}/start-dirsrv
+%{_sbindir}/status-dirsrv
+%{_sbindir}/stop-dirsrv
+%{_sbindir}/suffix2instance
+%{_sbindir}/syntax-validate.pl
+%{_sbindir}/upgradedb
+%{_sbindir}/upgradednformat
+%{_sbindir}/usn-tombstone-cleanup.pl
+%{_sbindir}/verify-db.pl
+%{_sbindir}/vlvindex
+%{_unitdir}/dirsrv@.service
+%{_unitdir}/dirsrv.target
+# This has to be hardcoded to /lib - $libdir changes between lib/lib64, but
+# sysctl.d is always in /lib.
+%{_prefix}/lib/sysctl.d/*
+%dir %{_datadir}/gdb/auto-load/usr/sbin/
+%{_datadir}/gdb/auto-load/usr/sbin/ns-slapd-gdb.py
%files devel
%defattr(-,root,root)
%doc LICENSE README
-%_includedir/dirsrv
-%_libdir/dirsrv/libns-dshttpd.so
-%_libdir/dirsrv/libnunc-stans.so
-%_libdir/dirsrv/libsds.so
-%_libdir/dirsrv/libslapd.so
-%_libdir/pkgconfig/*.pc
+%{_mandir}/man3/*
+%{_includedir}/dirsrv
+%{_libdir}/dirsrv/libns-dshttpd.so
+%{_libdir}/dirsrv/libnunc-stans.so
+%{_libdir}/dirsrv/libsds.so
+%{_libdir}/dirsrv/libslapd.so
+%{_libdir}/dirsrv/libldaputil.so
+%{_libdir}/pkgconfig/*.pc
+
+%files snmp
+%defattr(-,root,root,-)
+%doc LICENSE LICENSE.GPLv3+ LICENSE.openssl
+# TODO: README.devel
+%config(noreplace)%{_sysconfdir}/%{pkgname}/config/ldap-agent.conf
+%{_sbindir}/ldap-agent*
+%{_mandir}/man1/ldap-agent.1*
+%{_unitdir}/%{pkgname}-snmp.service
+
+%if %{with lib389}
+%files -n lib389
+%defattr(-,root,root,-)
+%doc src/lib389/LICENSE src/lib389/README*
+%{_sbindir}/dsconf
+%{_sbindir}/dscreate
+%{_sbindir}/dsctl
+%{_sbindir}/dsidm
+/usr/lib/python*/site-packages/lib389*
+%endif
%changelog
++++++ 0003-fix-rm-non-existent-man-pages.patch ++++++
Remove the statement from makefile that attempted to delete non-existent manual pages authored for Fedora and RedHat.
Howard Guo <hguo(a)suse.com> 2018-01-25
diff -rupN 389-ds-base-1.4.0.3/Makefile.am 389-ds-base-1.4.0.3-patched/Makefile.am
--- 389-ds-base-1.4.0.3/Makefile.am 2017-11-20 16:43:21.000000000 +0100
+++ 389-ds-base-1.4.0.3-patched/Makefile.am 2018-01-25 15:03:46.627413753 +0100
@@ -2319,7 +2319,6 @@ if HAVE_DOXYGEN
doxyfile.stamp:
cd $(srcdir); $(DOXYGEN) $(abs_top_builddir)/docs/slapi.doxy
- rm $(abs_top_builddir)/man/man3/_*
touch doxyfile.stamp
# Add the docs to make all.
++++++ 389-ds-base-1.3.6.6.tar.bz2 -> 389-ds-base-1.4.0.3.tar.bz2 ++++++
++++ 665970 lines of diff (skipped)
++++++ simplify-lib389-setup-py.patch ++++++
diff --git a/src/lib389/setup.py b/src/lib389/setup.py
index 0765f6297..31b0b30ac 100644
--- a/src/lib389/setup.py
+++ b/src/lib389/setup.py
@@ -72,8 +72,6 @@ setup(
'pytest',
'python-dateutil',
'six',
- 'enum34;python_version=="2.7"',
- 'python-ldap;python_version=="2.7"',
- 'pyldap;python_version>="3.4"',
+ 'pyldap',
],
)
1
0
Hello community,
here is the log from the commit of package libp11 for openSUSE:Factory checked in at 2018-01-31 19:54:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libp11 (Old)
and /work/SRC/openSUSE:Factory/.libp11.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libp11"
Wed Jan 31 19:54:16 2018 rev:28 rq:571358 version:0.4.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/libp11/libp11.changes 2017-08-24 18:29:08.729940722 +0200
+++ /work/SRC/openSUSE:Factory/.libp11.new/libp11.changes 2018-01-31 19:54:17.170796046 +0100
@@ -1,0 +2,9 @@
+Wed Jan 17 11:31:42 UTC 2018 - dimstar(a)opensuse.org
+
+- Conditionalize libname to libp11-2 for suse_version < 1500 (using
+ openssl 1.0) / libp11-3 for suse_version >= 1500 (using
+ openssl 1.1).
+- Create baselibs.conf dynamically, since the library name can be
+ different. Drop the static baselibs.conf.
+
+-------------------------------------------------------------------
Old:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libp11.spec ++++++
--- /var/tmp/diff_new_pack.XIbMH3/_old 2018-01-31 19:54:17.798766842 +0100
+++ /var/tmp/diff_new_pack.XIbMH3/_new 2018-01-31 19:54:17.802766656 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libp11
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,14 @@
#
+# the libname depends on what version openssl it is linked against
+%if 0%{?suse_version} < 1500
+# libp11.so.2 for openssl 1.0 - suse_version < 1500
%define libname libp11-2
+%else
+# libp11.so.3 for openssl 1.1 - suse_version >= 1500
+%define libname libp11-3
+%endif
Name: libp11
Version: 0.4.7
Release: 0
@@ -28,7 +35,6 @@
Source1: https://github.com/OpenSC/libp11/releases/download/%{name}-%{version}/%{nam…
Source2: %{name}.keyring
Source3: %{name}-rpmlintrc
-Source4: baselibs.conf
BuildRequires: fdupes
BuildRequires: pkgconfig
BuildRequires: pkgconfig(openssl)
@@ -94,6 +100,8 @@
%prep
%setup -q
+# Since the library name changes based on used openssl, we have to create baselibs.conf dynamically
+echo %{libname} > %{_sourcedir}/baselibs.conf
%build
%configure \
1
0
Hello community,
here is the log from the commit of package GraphicsMagick for openSUSE:Factory checked in at 2018-01-31 19:54:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/GraphicsMagick (Old)
and /work/SRC/openSUSE:Factory/.GraphicsMagick.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "GraphicsMagick"
Wed Jan 31 19:54:13 2018 rev:63 rq:571349 version:1.3.28
Changes:
--------
--- /work/SRC/openSUSE:Factory/GraphicsMagick/GraphicsMagick.changes 2018-01-13 21:46:59.099927898 +0100
+++ /work/SRC/openSUSE:Factory/.GraphicsMagick.new/GraphicsMagick.changes 2018-01-31 19:54:16.174842364 +0100
@@ -1,0 +2,53 @@
+Wed Jan 24 10:30:22 UTC 2018 - pgajdos(a)suse.com
+
+- upate to 1.3.28:
+ * Security Fixes:
+ BMP: Fix non-terminal loop due to unexpected bit-field mask
+ value (DOS opportunity).
+ PALM: Fix heap buffer underflow in builds with QuantumDepth=8.
+ SetNexus() Fix heap overwrite under certain conditions due to
+ using a wrong destination buffer. This issue impacts all
+ 1.3.X releases.
+ TIFF: Fix heap buffer read overflow in LocaleNCompare() when
+ parsing NEWS profile.
+ * Bug fixes:
+ DescribeImage(): Eliminate possible use of null pointer.
+ GIF: Fix memory leak of global colormap in error path.
+ GZ: Writing to gzip files with the extension ".gz" was
+ not working with Zlib 1.2.8.
+ JNG: Fix buffer read overflow (a tiny fixed overflow of just
+ one byte).
+ JPEG: Promoting certain libjpeg warnings to errors caused
+ much more problems than expected. The promotion of
+ warnings to errors is removed. Claimed pixel dimensions
+ are validated by file size before allocating memory for
+ the pixels.
+ IntegralRotateImage(): Assure that reported error in rotate by
+ 270 case does immediately terminate processing.
+ MNG: Fix possible null pointer reference related to DEFI chunk
+ parsing. Fix minor heap read overflow (constrained to just
+ one byte) due to an ordering issue in a limit check. Fix
+ memory leaks in error path.
+ WebP: Fix stack buffer overflow in WriteWEBPImage() which
+ occurs with libwebp 0.5.0 or newer due to a structure type
+ change in the structure passed to the progress monitor
+ callback.
+ WPG: Memory leaks fixed.
+ * API Updates:
+ InterpolateViewColor(): This function now returns MagickPassFail
+ (an unsigned int) rather than void so that errors can be
+ efficiently reported.
+ The magick/pixel_cache.h header is updated to add deprecation
+ attributes such that code using GetPixels(), GetIndexes(),
+ and GetOnePixel() will produce deprecation warnings for
+ compilers which support them. These functions will not be
+ removed in the 1.3.X release series and when they are
+ removed, pre-processor macros will be added so a replacement
+ function is used instead. There is a long-term objective to
+ eliminate functionally-redundant pixel cache functions to
+ only the ones with the best properties since this reduces
+ maintenance and may reduce the depth of the call stack
+ (improving performance).
+* removed unneded GraphicsMagick-release-date-missing-quote.patch
+
+-------------------------------------------------------------------
Old:
----
GraphicsMagick-1.3.27.tar.bz2
GraphicsMagick-release-date-missing-quote.patch
New:
----
GraphicsMagick-1.3.28.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ GraphicsMagick.spec ++++++
--- /var/tmp/diff_new_pack.AfLdXU/_old 2018-01-31 19:54:16.854810742 +0100
+++ /var/tmp/diff_new_pack.AfLdXU/_new 2018-01-31 19:54:16.854810742 +0100
@@ -27,7 +27,7 @@
%define pp_so_ver 12
%define wand_so_ver 2
Name: GraphicsMagick
-Version: 1.3.27
+Version: 1.3.28
Release: 0
Summary: Viewer and Converter for Images
License: MIT
@@ -42,8 +42,6 @@
%if %{bindperl}
Patch0: GraphicsMagick-perl-linkage.patch
%endif
-# this is what makes 1.3.27a from 1.3.27, will be fixed in 1.3.28
-Patch1: GraphicsMagick-release-date-missing-quote.patch
BuildRequires: cups-client
BuildRequires: dcraw
BuildRequires: gcc-c++
@@ -209,7 +207,6 @@
%if %{bindperl}
%patch0 -p1
%endif
-%patch1 -p1
%build
# This shouldn't be there yet.
++++++ GraphicsMagick-1.3.27.tar.bz2 -> GraphicsMagick-1.3.28.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/GraphicsMagick/GraphicsMagick-1.3.27.tar.bz2 /work/SRC/openSUSE:Factory/.GraphicsMagick.new/GraphicsMagick-1.3.28.tar.bz2 differ: char 11, line 1
1
0
Hello community,
here is the log from the commit of package quilter for openSUSE:Factory checked in at 2018-01-31 19:54:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/quilter (Old)
and /work/SRC/openSUSE:Factory/.quilter.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "quilter"
Wed Jan 31 19:54:11 2018 rev:4 rq:571348 version:1.4.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/quilter/quilter.changes 2018-01-24 15:29:08.994163135 +0100
+++ /work/SRC/openSUSE:Factory/.quilter.new/quilter.changes 2018-01-31 19:54:14.970898353 +0100
@@ -1,0 +2,8 @@
+Tue Jan 30 20:02:52 UTC 2018 - avvissu(a)yandex.by
+
+- Update to 1.4.8:
+ * Autosave works properly / Fixed Focus Mode highlight
+ preferences
+ * change screenshot in readme
+
+-------------------------------------------------------------------
Old:
----
quilter-1.4.6.tar.gz
New:
----
quilter-1.4.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ quilter.spec ++++++
--- /var/tmp/diff_new_pack.Xa9cAx/_old 2018-01-31 19:54:15.638867289 +0100
+++ /var/tmp/diff_new_pack.Xa9cAx/_new 2018-01-31 19:54:15.642867103 +0100
@@ -17,7 +17,7 @@
Name: quilter
-Version: 1.4.6
+Version: 1.4.8
Release: 0
Summary: Writing application
License: GPL-3.0
++++++ quilter-1.4.6.tar.gz -> quilter-1.4.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/README.md new/quilter-1.4.8/README.md
--- old/quilter-1.4.6/README.md 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/README.md 2018-01-22 22:09:20.000000000 +0100
@@ -7,7 +7,7 @@
[![Build Status](https://travis-ci.org/lainsce/quilter.svg?branch=master)](https://t…
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu…
-![Screenshot](data/images/shot-preview.png)
+![Screenshot](data/images/shot.png)
## License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/data/com.github.lainsce.quilter.appdata.xml new/quilter-1.4.8/data/com.github.lainsce.quilter.appdata.xml
--- old/quilter-1.4.6/data/com.github.lainsce.quilter.appdata.xml 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/data/com.github.lainsce.quilter.appdata.xml 2018-01-22 22:09:20.000000000 +0100
@@ -24,6 +24,17 @@
<url type="homepage">https://github.com/lainsce/quilter/</url>
<url type="bugtracker">https://github.com/lainsce/quilter/issues</url>
<releases>
+ <release version="1.4.6" date="2018-01-26">
+ <description>
+ <p>Release: New Menu & Fries</p>
+ <ul>
+ <li>The main menu now houses the Dark/Focus Mode buttons previously shown on the statusbar.</li>
+ <li>The statusbar now shows number of lines, deprecating the toggle in the preferences to show line numbers.</li>
+ <li>Preferences Dialog had a reorganization of items.</li>
+ <li>Disabling autosaving in preferences will make you save files manually now with the Save button.</li>
+ </ul>
+ </description>
+ </release>
<release version="1.4.5" date="2018-01-13">
<description>
<p>Release: Focus Mode with a Glasses Push-up</p>
@@ -132,10 +143,6 @@
<caption>Focus Mode</caption>
<image>https://raw.githubusercontent.com/lainsce/quilter/master/data/images/shot-f…</image>
</screenshot>
- <screenshot>
- <caption>Preview Mode</caption>
- <image>https://raw.githubusercontent.com/lainsce/quilter/master/data/images/shot-p…</image>
- </screenshot>
</screenshots>
<custom>
<value key="x-appcenter-color-primary">#b8d2e2</value>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/data/com.github.lainsce.quilter.gschema.xml new/quilter-1.4.8/data/com.github.lainsce.quilter.gschema.xml
--- old/quilter-1.4.6/data/com.github.lainsce.quilter.gschema.xml 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/data/com.github.lainsce.quilter.gschema.xml 2018-01-22 22:09:20.000000000 +0100
@@ -35,11 +35,11 @@
<summary>Use system font</summary>
<description>Whether Quilter should use the default system font</description>
</key>
- <key name="show-save-button" type="b">
- <default>false</default>
- <summary>Show save button</summary>
- <description>Whether Quilter should show a save button on the Toolbar</description>
- </key>
+ <key name="autosave" type="b">
+ <default>true</default>
+ <summary>Autosave edited files</summary>
+ <description>Autosave edited files.</description>
+ </key>
<key name="font" type="s">
<default>'PT Mono 11'</default>
<summary>Preferred Font</summary>
Binary files old/quilter-1.4.6/data/images/shot-dark.png and new/quilter-1.4.8/data/images/shot-dark.png differ
Binary files old/quilter-1.4.6/data/images/shot-focused.png and new/quilter-1.4.8/data/images/shot-focused.png differ
Binary files old/quilter-1.4.6/data/images/shot-preview.png and new/quilter-1.4.8/data/images/shot-preview.png differ
Binary files old/quilter-1.4.6/data/images/shot.png and new/quilter-1.4.8/data/images/shot.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/debian/changelog new/quilter-1.4.8/debian/changelog
--- old/quilter-1.4.6/debian/changelog 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/debian/changelog 2018-01-22 22:09:20.000000000 +0100
@@ -1,4 +1,13 @@
-com.github.lainsce.quilter (1.4.4) xenial; urgency=low
+com.github.lainsce.quilter (1.4.6) xenial; urgency=low
+
+ * The main menu now houses the Dark/Focus Mode buttons previously shown on the statusbar.
+ * The statusbar now shows number of lines, deprecating the toggle in the preferences to show line numbers.
+ * Preferences Dialog had a reorganization of items.
+ * Disabling autosaving in preferences will make you save files manually now with the Save button.
+
+ -- Lains <lainsce(a)airmail.cc> Fri, 26 Jan 2018 12:40:00 -0300
+
+com.github.lainsce.quilter (1.4.5) xenial; urgency=low
* In the Preferences, select if you want Focus Mode to highlight the sentence or the paragraph. (Contributed by Michał "wyhasany" Rowicki)
* Add Polish translation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/meson.build new/quilter-1.4.8/meson.build
--- old/quilter-1.4.6/meson.build 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/meson.build 2018-01-22 22:09:20.000000000 +0100
@@ -1,6 +1,6 @@
# Name our project
project('com.github.lainsce.quilter', ['vala', 'c'],
- version: '1.4.5'
+ version: '1.4.6'
)
# Import main lib files
@@ -47,6 +47,8 @@
endif
# Let's define our executable
+add_project_arguments(['--vapidir', join_paths(meson.current_source_dir(), 'vapi')], language: 'vala')
+
executable(
meson.project_name(),
'src/Application.vala',
@@ -75,8 +77,7 @@
],
vala_args: [
meson.source_root() + '/vapi/config.vapi',
- meson.source_root() + '/vapi/libmarkdown.vapi',
- '--vapidir=' + meson.source_root() + '/vapi/',
+ meson.source_root() + '/vapi/libmarkdown.vapi'
],
install : true
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/src/Constants/AppSettings.vala new/quilter-1.4.8/src/Constants/AppSettings.vala
--- old/quilter-1.4.6/src/Constants/AppSettings.vala 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/src/Constants/AppSettings.vala 2018-01-22 22:09:20.000000000 +0100
@@ -21,7 +21,7 @@
public bool focus_mode { get; set; }
public bool fullscreen { get; set; }
public bool show_num_lines { get; set; }
- public bool show_save_button { get; set; }
+ public bool autosave { get; set; }
public bool spellcheck { get; set; }
public bool statusbar { get; set; }
public bool use_system_font { get; set; }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/src/MainWindow.vala new/quilter-1.4.8/src/MainWindow.vala
--- old/quilter-1.4.6/src/MainWindow.vala 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/src/MainWindow.vala 2018-01-22 22:09:20.000000000 +0100
@@ -27,7 +27,6 @@
public Widgets.WebView preview_view_content;
public Widgets.StatusBar statusbar;
- private Gtk.Menu menu;
private Gtk.Button new_button;
private Gtk.Button open_button;
private Gtk.Button save_button;
@@ -38,8 +37,6 @@
private Gtk.ScrolledWindow edit_view;
private Gtk.ScrolledWindow preview_view;
private Gtk.Grid grid;
- private Widgets.Preferences preferences_dialog;
- private Widgets.Cheatsheet cheatsheet_dialog;
private bool timer_scheduled = false;
/*
@@ -47,6 +44,19 @@
*/
private const int TIME_TO_REFRESH = 100;
+ public SimpleActionGroup actions { get; construct; }
+
+ public const string ACTION_PREFIX = "win.";
+ public const string ACTION_CHEATSHEET = "action_cheatsheet";
+ public const string ACTION_PREFS = "action_preferences";
+
+ public static Gee.MultiMap<string, string> action_accelerators = new Gee.HashMultiMap<string, string> ();
+
+ private const GLib.ActionEntry[] action_entries = {
+ { ACTION_CHEATSHEET, action_cheatsheet },
+ { ACTION_PREFS, action_preferences }
+ };
+
public bool is_fullscreen {
get {
var settings = AppSettings.get_default ();
@@ -73,6 +83,7 @@
schedule_timer ();
statusbar.update_wordcount ();
+ statusbar.update_linecount ();
statusbar.update_readtimecount ();
show_statusbar ();
focus_mode_toolbar ();
@@ -86,6 +97,7 @@
edit_view_content.changed.connect (() => {
schedule_timer ();
statusbar.update_wordcount ();
+ statusbar.update_linecount ();
statusbar.update_readtimecount ();
});
@@ -148,6 +160,10 @@
}
construct {
+ actions = new SimpleActionGroup ();
+ actions.add_action_entries (action_entries, this);
+ insert_action_group ("win", actions);
+
toolbar = new Gtk.HeaderBar ();
toolbar.title = title;
var settings = AppSettings.get_default ();
@@ -159,7 +175,7 @@
toolbar.subtitle = "New Document";
}
- var header_context = toolbar.get_style_context ();
+ var header_context = toolbar.get_style_context ();
header_context.add_class (Gtk.STYLE_CLASS_FLAT);
header_context.add_class ("quilter-toolbar");
@@ -212,34 +228,76 @@
toolbar.subtitle = settings.subtitle;
});
- menu_button = new Gtk.MenuButton ();
- menu_button.has_tooltip = true;
- menu_button.tooltip_text = (_("Settings"));
-
- menu = new Gtk.Menu ();
-
- var cheatsheet = new Gtk.MenuItem.with_label (_("Markdown Cheatsheet"));
- cheatsheet.activate.connect (() => {
- debug ("Cheatsheet button pressed.");
- cheatsheet_dialog = new Widgets.Cheatsheet (this);
- cheatsheet_dialog.show_all ();
- });
+ var cheatsheet = new Gtk.ModelButton ();
+ cheatsheet.text = (_("Markdown Cheatsheet"));
+ cheatsheet.action_name = MainWindow.ACTION_PREFIX + MainWindow.ACTION_CHEATSHEET;
+
+ var preferences = new Gtk.ModelButton ();
+ preferences.text = (_("Preferences"));
+ preferences.action_name = MainWindow.ACTION_PREFIX + MainWindow.ACTION_PREFS;
+
+ var darkmode_button = new Gtk.ToggleButton.with_label ((_("Dark Mode")));
+ darkmode_button.set_image (new Gtk.Image.from_icon_name ("weather-clear-night-symbolic", Gtk.IconSize.SMALL_TOOLBAR));
+ darkmode_button.set_always_show_image (true);
+
+ if (settings.dark_mode == false) {
+ darkmode_button.set_active (false);
+ } else {
+ darkmode_button.set_active (settings.dark_mode);
+ }
- var preferences = new Gtk.MenuItem.with_label (_("Preferences"));
- preferences.activate.connect (() => {
- debug ("Prefs button pressed.");
- preferences_dialog = new Widgets.Preferences (this);
- preferences_dialog.show_all ();
- });
+ darkmode_button.toggled.connect (() => {
+ if (darkmode_button.active) {
+ settings.dark_mode = true;
+ } else {
+ settings.dark_mode = false;
+ }
+
+ });
+
+ var focusmode_button = new Gtk.ToggleButton.with_label ((_("Focus Mode")));
+ focusmode_button.set_image (new Gtk.Image.from_icon_name ("zoom-fit-best-symbolic", Gtk.IconSize.SMALL_TOOLBAR));
+ focusmode_button.set_always_show_image (true);
+
+ if (settings.focus_mode == false) {
+ focusmode_button.set_active (false);
+ } else {
+ focusmode_button.set_active (settings.focus_mode);
+ }
- var separator = new Gtk.SeparatorMenuItem ();
+ focusmode_button.toggled.connect (() => {
+ if (focusmode_button.active) {
+ settings.focus_mode = true;
+ } else {
+ settings.focus_mode = false;
+ }
+
+ });
+
+ var buttonbox = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+ buttonbox.pack_start (darkmode_button, false, true, 0);
+ buttonbox.pack_start (focusmode_button, false, true, 0);
+
+ var separator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL);
+
+ var menu_grid = new Gtk.Grid ();
+ menu_grid.margin = 6;
+ menu_grid.row_spacing = 6;
+ menu_grid.column_spacing = 12;
+ menu_grid.orientation = Gtk.Orientation.VERTICAL;
+ menu_grid.add (buttonbox);
+ menu_grid.add (separator);
+ menu_grid.add (cheatsheet);
+ menu_grid.add (preferences);
+ menu_grid.show_all ();
- menu.add (cheatsheet);
- menu.add (separator);
- menu.add (preferences);
- menu.show_all ();
+ var menu = new Gtk.Popover (null);
+ menu.add (menu_grid);
- menu_button.popup = menu;
+ menu_button = new Gtk.MenuButton ();
+ menu_button.has_tooltip = true;
+ menu_button.tooltip_text = (_("Settings"));
+ menu_button.popover = menu;
edit_view = new Gtk.ScrolledWindow (null, null);
edit_view_content = new Widgets.SourceView ();
@@ -275,11 +333,11 @@
// This makes the save button show or not, and it's necessary as-is.
settings.changed.connect (() => {
- if (settings.show_save_button) {
+ if (settings.autosave) {
+ save_button.visible = false;
+ } else {
toolbar.pack_start (save_button);
save_button.visible = true;
- } else {
- save_button.visible = false;
}
});
@@ -339,6 +397,18 @@
return false;
}
+ private void action_preferences () {
+ var dialog = new Widgets.Preferences (this);
+ dialog.set_modal (true);
+ dialog.show_all ();
+ }
+
+ private void action_cheatsheet () {
+ var dialog = new Widgets.Cheatsheet (this);
+ dialog.set_modal (true);
+ dialog.show_all ();
+ }
+
private void schedule_timer () {
if (!timer_scheduled) {
Timeout.add (TIME_TO_REFRESH, render_func);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/src/Widgets/Preferences.vala new/quilter-1.4.8/src/Widgets/Preferences.vala
--- old/quilter-1.4.6/src/Widgets/Preferences.vala 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/src/Widgets/Preferences.vala 2018-01-22 22:09:20.000000000 +0100
@@ -65,8 +65,6 @@
editor_grid.column_spacing = 12;
var editor_header = new Granite.HeaderLabel (_("Editor"));
- var num_lines_label = new SettingsLabel (_("Show Line Numbers:"));
- var num_lines_button = new SettingsSwitch ("show-num-lines");
var spellcheck_label = new Gtk.Label (_("Enable Spellchecking:"));
spellcheck_label.set_halign (Gtk.Align.END);
var spellcheck = new SettingsSwitch ("spellcheck");
@@ -152,11 +150,15 @@
}
});
+ var save_button_label = new SettingsLabel (_("Save files when changed:"));
+ var save_button = new SettingsSwitch ("autosave");
+
editor_grid.attach (editor_header, 0, 1, 3, 1);
- editor_grid.attach (num_lines_label, 0, 2, 1, 1);
- editor_grid.attach (num_lines_button, 1, 2, 1, 1);
- editor_grid.attach (spellcheck_label, 0, 3, 1, 1);
- editor_grid.attach (spellcheck, 1, 3, 1, 1);
+ editor_grid.attach (spellcheck_label, 0, 2, 1, 1);
+ editor_grid.attach (spellcheck, 1, 2, 1, 1);
+ editor_grid.attach (save_button_label, 0, 3, 1, 1);
+ editor_grid.attach (save_button, 1, 3, 1, 1);
+
editor_grid.attach (geo_header, 0, 4, 3, 1);
editor_grid.attach (spacing_label, 0, 5, 1, 1);
@@ -173,15 +175,12 @@
interface_grid.row_spacing = 6;
interface_grid.column_spacing = 12;
- var ui_header = new Granite.HeaderLabel (_("Interface"));
- var save_button_label = new SettingsLabel (_("Show the Save Button:"));
- var save_button = new SettingsSwitch ("show-save-button");
-
var mode_header = new Granite.HeaderLabel (_("Mode"));
var focus_mode_label = new SettingsLabel (_("Enable Focus Mode:"));
var focus_mode = new SettingsSwitch ("focus-mode");
var dark_mode_label = new SettingsLabel (_("Enable Dark Mode:"));
var dark_mode = new SettingsSwitch ("dark-mode");
+
var focus_mode_type_label = new SettingsLabel (_("Type of Focus Mode:"));
var focus_mode_type_size = new Granite.Widgets.ModeButton ();
focus_mode_type_size.append_text (_("Paragraph"));
@@ -226,31 +225,30 @@
main_settings.schema.bind ("font", select_font, "font-name", SettingsBindFlags.DEFAULT);
main_settings.schema.bind ("use-system-font", select_font, "sensitive", SettingsBindFlags.INVERT_BOOLEAN);
+ var custom_font_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+ custom_font_box.pack_start (use_custom_font, false, true, 0);
+ custom_font_box.pack_start (select_font, false, true, 0);
+
var statusbar_header = new Granite.HeaderLabel (_("Statusbar"));
var statusbar_label = new Gtk.Label (_("Show Statusbar:"));
statusbar_label.set_halign (Gtk.Align.END);
var statusbar = new SettingsSwitch ("statusbar");
- interface_grid.attach (ui_header, 0, 1, 3, 1);
- interface_grid.attach (save_button_label, 0, 2, 1, 1);
- interface_grid.attach (save_button, 1, 2, 1, 1);
-
- interface_grid.attach (mode_header, 0, 4, 3, 1);
- interface_grid.attach (focus_mode_label, 0, 5, 1, 1);
- interface_grid.attach (focus_mode, 1, 5, 1, 1);
- interface_grid.attach (dark_mode_label, 0, 6, 1, 1);
- interface_grid.attach (dark_mode, 1, 6, 1, 1);
- interface_grid.attach (focus_mode_type_label, 0, 7, 1, 1);
- interface_grid.attach (focus_mode_type_size, 1, 7, 1, 1);
-
- interface_grid.attach (font_header, 0, 8, 3, 1);
- interface_grid.attach (use_custom_font_label , 0, 9, 1, 1);
- interface_grid.attach (use_custom_font, 1, 9, 1, 1);
- interface_grid.attach (select_font, 2, 9, 1, 1);
-
- interface_grid.attach (statusbar_header, 0, 10, 1, 1);
- interface_grid.attach (statusbar_label, 0, 11, 1, 1);
- interface_grid.attach (statusbar, 1, 11, 1, 1);
+ interface_grid.attach (mode_header, 0, 1, 3, 1);
+ interface_grid.attach (focus_mode_label, 0, 2, 1, 1);
+ interface_grid.attach (focus_mode, 1, 2, 1, 1);
+ interface_grid.attach (dark_mode_label, 0, 3, 1, 1);
+ interface_grid.attach (dark_mode, 1, 3, 1, 1);
+ interface_grid.attach (focus_mode_type_label, 0, 4, 1, 1);
+ interface_grid.attach (focus_mode_type_size, 1, 4, 1, 1);
+
+ interface_grid.attach (font_header, 0, 5, 3, 1);
+ interface_grid.attach (use_custom_font_label, 0, 6, 1, 1);
+ interface_grid.attach (custom_font_box, 1, 6, 1, 1);
+
+ interface_grid.attach (statusbar_header, 0, 7, 1, 1);
+ interface_grid.attach (statusbar_label, 0, 8, 1, 1);
+ interface_grid.attach (statusbar, 1, 8, 1, 1);
return interface_grid;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/src/Widgets/SourceView.vala new/quilter-1.4.8/src/Widgets/SourceView.vala
--- old/quilter-1.4.6/src/Widgets/SourceView.vala 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/src/Widgets/SourceView.vala 2018-01-22 22:09:20.000000000 +0100
@@ -118,10 +118,13 @@
whitefont = buffer.create_tag(null, "foreground", "#FFF");
is_modified = false;
- Timeout.add_seconds (20, () => {
- on_text_modified ();
- return true;
- });
+
+ if (settings.autosave = true) {
+ Timeout.add_seconds (20, () => {
+ on_text_modified ();
+ return true;
+ });
+ }
this.set_buffer (buffer);
this.set_wrap_mode (Gtk.WrapMode.WORD);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/quilter-1.4.6/src/Widgets/StatusBar.vala new/quilter-1.4.8/src/Widgets/StatusBar.vala
--- old/quilter-1.4.6/src/Widgets/StatusBar.vala 2018-01-13 16:31:11.000000000 +0100
+++ new/quilter-1.4.8/src/Widgets/StatusBar.vala 2018-01-22 22:09:20.000000000 +0100
@@ -21,6 +21,7 @@
namespace Quilter {
public class Widgets.StatusBar : Gtk.Revealer {
public Gtk.Label wordcount_label;
+ public Gtk.Label linecount_label;
public Gtk.Label readtimecount_label;
public MainWindow window;
public Gtk.ActionBar actionbar;
@@ -31,9 +32,8 @@
public StatusBar () {
actionbar = new Gtk.ActionBar ();
wordcount_item ();
+ linecount_item ();
readtimecount_item ();
- darkmode_item ();
- focusmode_item ();
this.transition_type = Gtk.RevealerTransitionType.SLIDE_UP;
this.add (actionbar);
@@ -41,7 +41,7 @@
public void wordcount_item () {
wordcount_label = new Gtk.Label("");
- wordcount_label.set_width_chars (12);
+ wordcount_label.set_width_chars (10);
update_wordcount ();
actionbar.pack_start (wordcount_label);
}
@@ -51,6 +51,18 @@
wordcount_label.set_text((_("Words: ")) + wc.words.to_string());
}
+ public void linecount_item () {
+ linecount_label = new Gtk.Label("");
+ linecount_label.set_width_chars (10);
+ update_linecount ();
+ actionbar.pack_start (linecount_label);
+ }
+
+ public void update_linecount () {
+ var lc = get_count();
+ linecount_label.set_text((_("Lines: ")) + lc.lines.to_string());
+ }
+
public void readtimecount_item () {
readtimecount_label = new Gtk.Label("");
readtimecount_label.set_width_chars (12);
@@ -59,78 +71,36 @@
}
public void update_readtimecount () {
- var wc = get_count();
- int rtc = (wc.words / WPM);
- readtimecount_label.set_text((_("Reading Time: ")) + rtc.to_string() + "m");
- }
-
- public void darkmode_item () {
- var darkmode_button = new Gtk.ToggleButton.with_label ((_("Dark Mode")));
- darkmode_button.set_image (new Gtk.Image.from_icon_name ("weather-clear-night-symbolic", Gtk.IconSize.SMALL_TOOLBAR));
- darkmode_button.set_always_show_image (true);
-
- var settings = AppSettings.get_default ();
- if (settings.dark_mode == false) {
- darkmode_button.set_active (false);
- } else {
- darkmode_button.set_active (settings.dark_mode);
- }
-
- darkmode_button.toggled.connect (() => {
- if (darkmode_button.active) {
- settings.dark_mode = true;
- } else {
- settings.dark_mode = false;
- }
-
- });
-
- actionbar.pack_end (darkmode_button);
- }
-
- public void focusmode_item () {
- var focusmode_button = new Gtk.ToggleButton.with_label ((_("Focus Mode")));
- focusmode_button.set_image (new Gtk.Image.from_icon_name ("zoom-fit-best-symbolic", Gtk.IconSize.SMALL_TOOLBAR));
- focusmode_button.set_always_show_image (true);
-
- var settings = AppSettings.get_default ();
- if (settings.focus_mode == false) {
- focusmode_button.set_active (false);
- } else {
- focusmode_button.set_active (settings.focus_mode);
- }
-
- focusmode_button.toggled.connect (() => {
- if (focusmode_button.active) {
- settings.focus_mode = true;
- } else {
- settings.focus_mode = false;
- }
-
- });
-
- actionbar.pack_end (focusmode_button);
+ var rtc = get_count();
+ int rt = (rtc.words / WPM);
+ readtimecount_label.set_text((_("Reading Time: ")) + rt.to_string() + "m");
}
public WordCount get_count() {
try {
var reg = new Regex("[\\s\\W]+", RegexCompileFlags.OPTIMIZE);
- string text = Widgets.SourceView.buffer.text;
+ var buffer = Widgets.SourceView.buffer;
+
+ string text = buffer.text;
string result = reg.replace (text, text.length, 0, " ");
- return new WordCount(result.strip().split(" ").length, result.length);
+ var lines = buffer.get_line_count ();
+
+ return new WordCount(result.strip().split(" ").length, lines, result.length);
} catch (Error e) {
- return new WordCount(0, 0);
+ return new WordCount(0, 0, 0);
}
}
}
public class Widgets.WordCount {
public int words { get; private set; }
+ public int lines { get; private set; }
public int chars { get; private set; }
- public WordCount(int words, int chars) {
+ public WordCount(int words, int lines, int chars) {
this.words = words;
+ this.lines = lines;
this.chars = chars;
}
}
1
0
Hello community,
here is the log from the commit of package notejot for openSUSE:Factory checked in at 2018-01-31 19:54:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/notejot (Old)
and /work/SRC/openSUSE:Factory/.notejot.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "notejot"
Wed Jan 31 19:54:08 2018 rev:3 rq:571347 version:1.3.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/notejot/notejot.changes 2018-01-13 21:49:29.760903898 +0100
+++ /work/SRC/openSUSE:Factory/.notejot.new/notejot.changes 2018-01-31 19:54:13.934946531 +0100
@@ -1,0 +2,7 @@
+Tue Jan 30 19:59:53 UTC 2018 - avvissu(a)yandex.by
+
+- Update to 1.3.8:
+ * - update date in changelog
+ * add spanish traslate
+
+-------------------------------------------------------------------
Old:
----
notejot-1.3.7.tar.gz
New:
----
notejot-1.3.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ notejot.spec ++++++
--- /var/tmp/diff_new_pack.bhnkWY/_old 2018-01-31 19:54:14.622914537 +0100
+++ /var/tmp/diff_new_pack.bhnkWY/_new 2018-01-31 19:54:14.622914537 +0100
@@ -17,7 +17,7 @@
Name: notejot
-Version: 1.3.7
+Version: 1.3.8
Release: 0
Summary: A Sticky Note App
License: GPL-3.0
++++++ notejot-1.3.7.tar.gz -> notejot-1.3.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/data/com.github.lainsce.notejot.appdata.xml new/notejot-1.3.8/data/com.github.lainsce.notejot.appdata.xml
--- old/notejot-1.3.7/data/com.github.lainsce.notejot.appdata.xml 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/data/com.github.lainsce.notejot.appdata.xml 2018-01-23 04:07:28.000000000 +0100
@@ -23,6 +23,14 @@
</screenshot>
</screenshots>
<releases>
+ <release version="1.3.8" date="2018-01-26">
+ <description>
+ <p>Release: A New Colorific Menu</p>
+ <ul>
+ <li>New main menu with better & fancier color buttons</li>
+ </ul>
+ </description>
+ </release>
<release version="1.3.7" date="2018-01-08">
<description>
<p>Release: Build A Flatpak</p>
Binary files old/notejot-1.3.7/data/shot.png and new/notejot-1.3.8/data/shot.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/debian/changelog new/notejot-1.3.8/debian/changelog
--- old/notejot-1.3.7/debian/changelog 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/debian/changelog 2018-01-23 04:07:28.000000000 +0100
@@ -1,4 +1,10 @@
-com.github.lainsce.notejot (1.3.6) xenial; urgency=low
+com.github.lainsce.notejot (1.3.8) xenial; urgency=low
+
+ * New menu with better & fancier color buttons.
+
+ -- Lains <lainsce(a)airmail.cc> Fri, 26 Jan 2018 11:54:00 -0300
+
+com.github.lainsce.notejot (1.3.7) xenial; urgency=low
* Update the Lithuanian translation.
* Make the app become Flatpak friendly.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/meson.build new/notejot-1.3.8/meson.build
--- old/notejot-1.3.7/meson.build 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/meson.build 2018-01-23 04:07:28.000000000 +0100
@@ -1,6 +1,6 @@
# Name our project
project('com.github.lainsce.notejot', ['vala', 'c'],
- version: '1.3.7'
+ version: '1.3.8'
)
# Import main lib files
@@ -37,7 +37,6 @@
meson.project_name(),
'src/Application.vala',
'src/MainWindow.vala',
- 'src/ColorWidget.vala',
'src/EditableLabel.vala',
'src/Services/NoteManager.vala',
'src/Services/Storage.vala',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/po/LINGUAS new/notejot-1.3.8/po/LINGUAS
--- old/notejot-1.3.7/po/LINGUAS 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/po/LINGUAS 2018-01-23 04:07:28.000000000 +0100
@@ -1,2 +1,3 @@
lt
pt_BR
+es
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/po/com.github.lainsce.notejot.pot new/notejot-1.3.8/po/com.github.lainsce.notejot.pot
--- old/notejot-1.3.7/po/com.github.lainsce.notejot.pot 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/po/com.github.lainsce.notejot.pot 2018-01-23 04:07:28.000000000 +0100
@@ -1,14 +1,9 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the com.github.lainsce.notejot package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: com.github.lainsce.notejot\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-10-25 23:53-0200\n"
+"POT-Creation-Date: 2018-01-23 01:00-0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
@@ -17,14 +12,50 @@
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: src/MainWindow.vala:113
+#: src/MainWindow.vala:299
msgid "New note"
msgstr ""
-#: src/MainWindow.vala:116
+#: src/MainWindow.vala:303
msgid "Delete note"
msgstr ""
-#: src/MainWindow.vala:52
+#: src/MainWindow.vala:310
+msgid "White"
+msgstr ""
+
+#: src/MainWindow.vala:320
+msgid "Red"
+msgstr ""
+
+#: src/MainWindow.vala:330
+msgid "Orange"
+msgstr ""
+
+#: src/MainWindow.vala:340
+msgid "Yellow"
+msgstr ""
+
+#: src/MainWindow.vala:350
+msgid "Green"
+msgstr ""
+
+#: src/MainWindow.vala:360
+msgid "Blue"
+msgstr ""
+
+#: src/MainWindow.vala:370
+msgid "Indigo"
+msgstr ""
+
+#: src/MainWindow.vala:380
+msgid "Violet"
+msgstr ""
+
+#: src/MainWindow.vala:390
+msgid "Slate"
+msgstr ""
+
+#: src/MainWindow.vala:423
msgid "Settings"
msgstr ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/po/es.po new/notejot-1.3.8/po/es.po
--- old/notejot-1.3.7/po/es.po 1970-01-01 01:00:00.000000000 +0100
+++ new/notejot-1.3.8/po/es.po 2018-01-23 04:07:28.000000000 +0100
@@ -0,0 +1,62 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: com.github.lainsce.notejot\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-01-23 01:00-0200\n"
+"PO-Revision-Date: 2018-01-13 15:43+0300\n"
+"Last-Translator: Alain M. <alain23(a)protonmail.com>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7.1\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
+"%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: src/MainWindow.vala:299
+msgid "New note"
+msgstr "Nueva nota"
+
+#: src/MainWindow.vala:303
+msgid "Delete note"
+msgstr "Eliminar nota"
+
+#: src/MainWindow.vala:310
+msgid "White"
+msgstr ""
+
+#: src/MainWindow.vala:320
+msgid "Red"
+msgstr ""
+
+#: src/MainWindow.vala:330
+msgid "Orange"
+msgstr ""
+
+#: src/MainWindow.vala:340
+msgid "Yellow"
+msgstr ""
+
+#: src/MainWindow.vala:350
+msgid "Green"
+msgstr ""
+
+#: src/MainWindow.vala:360
+msgid "Blue"
+msgstr ""
+
+#: src/MainWindow.vala:370
+msgid "Indigo"
+msgstr ""
+
+#: src/MainWindow.vala:380
+msgid "Violet"
+msgstr ""
+
+#: src/MainWindow.vala:390
+msgid "Slate"
+msgstr ""
+
+#: src/MainWindow.vala:423
+msgid "Settings"
+msgstr "Preferencias"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/po/lt.po new/notejot-1.3.8/po/lt.po
--- old/notejot-1.3.7/po/lt.po 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/po/lt.po 2018-01-23 04:07:28.000000000 +0100
@@ -2,7 +2,7 @@
msgstr ""
"Project-Id-Version: com.github.lainsce.notejot\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-10-25 23:53-0200\n"
+"POT-Creation-Date: 2018-01-23 01:00-0200\n"
"PO-Revision-Date: 2017-08-28 13:55+0300\n"
"Last-Translator: Moo\n"
"Language: lt\n"
@@ -13,14 +13,50 @@
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
-#: src/MainWindow.vala:113
+#: src/MainWindow.vala:299
msgid "New note"
msgstr "Nauji užrašai"
-#: src/MainWindow.vala:116
+#: src/MainWindow.vala:303
msgid "Delete note"
msgstr "Ištrinti užrašus"
-#: src/MainWindow.vala:52
+#: src/MainWindow.vala:310
+msgid "White"
+msgstr ""
+
+#: src/MainWindow.vala:320
+msgid "Red"
+msgstr ""
+
+#: src/MainWindow.vala:330
+msgid "Orange"
+msgstr ""
+
+#: src/MainWindow.vala:340
+msgid "Yellow"
+msgstr ""
+
+#: src/MainWindow.vala:350
+msgid "Green"
+msgstr ""
+
+#: src/MainWindow.vala:360
+msgid "Blue"
+msgstr ""
+
+#: src/MainWindow.vala:370
+msgid "Indigo"
+msgstr ""
+
+#: src/MainWindow.vala:380
+msgid "Violet"
+msgstr ""
+
+#: src/MainWindow.vala:390
+msgid "Slate"
+msgstr ""
+
+#: src/MainWindow.vala:423
msgid "Settings"
msgstr "Nustatymai"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/po/pt_BR.po new/notejot-1.3.8/po/pt_BR.po
--- old/notejot-1.3.7/po/pt_BR.po 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/po/pt_BR.po 2018-01-23 04:07:28.000000000 +0100
@@ -2,7 +2,7 @@
msgstr ""
"Project-Id-Version: com.github.lainsce.notejot\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-10-25 23:53-0200\n"
+"POT-Creation-Date: 2018-01-23 01:00-0200\n"
"PO-Revision-Date: 2017-10-01 04:35-0300\n"
"Last-Translator: Paulo Galardi <lainsce(a)airmail.cc>\n"
"Language: pt_BR\n"
@@ -12,14 +12,50 @@
"X-Generator: Poedit 1.8.7.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: src/MainWindow.vala:113
+#: src/MainWindow.vala:299
msgid "New note"
msgstr "Nova nota"
-#: src/MainWindow.vala:116
+#: src/MainWindow.vala:303
msgid "Delete note"
msgstr "Deletar nota"
-#: src/MainWindow.vala:52
+#: src/MainWindow.vala:310
+msgid "White"
+msgstr ""
+
+#: src/MainWindow.vala:320
+msgid "Red"
+msgstr ""
+
+#: src/MainWindow.vala:330
+msgid "Orange"
+msgstr ""
+
+#: src/MainWindow.vala:340
+msgid "Yellow"
+msgstr ""
+
+#: src/MainWindow.vala:350
+msgid "Green"
+msgstr ""
+
+#: src/MainWindow.vala:360
+msgid "Blue"
+msgstr ""
+
+#: src/MainWindow.vala:370
+msgid "Indigo"
+msgstr ""
+
+#: src/MainWindow.vala:380
+msgid "Violet"
+msgstr ""
+
+#: src/MainWindow.vala:390
+msgid "Slate"
+msgstr ""
+
+#: src/MainWindow.vala:423
msgid "Settings"
msgstr "Preferẽncias"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/src/Application.vala new/notejot-1.3.8/src/Application.vala
--- old/notejot-1.3.7/src/Application.vala 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/src/Application.vala 2018-01-23 04:07:28.000000000 +0100
@@ -32,7 +32,7 @@
exec_name = "com.github.lainsce.notejot";
var quit_action = new SimpleAction ("quit", null);
- add_accelerator ("<Control>q", "app.quit", null);
+ set_accels_for_action ("app.quit", {"<Control>q"});
add_action (quit_action);
quit_action.activate.connect (() => {
foreach (MainWindow windows in open_notes) {
@@ -47,7 +47,7 @@
if (get_windows ().length () > 0) {
foreach (var window in open_notes) {
if (window.visible) {
- window.present ();
+ window.present ();
}
}
} else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/src/ColorWidget.vala new/notejot-1.3.8/src/ColorWidget.vala
--- old/notejot-1.3.7/src/ColorWidget.vala 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/src/ColorWidget.vala 1970-01-01 01:00:00.000000000 +0100
@@ -1,128 +0,0 @@
-/*
-* Copyright (c) 2017 Lains
-*
-* This program is free software; you can redistribute it and/or
-* modify it under the terms of the GNU General Public
-* License as published by the Free Software Foundation; either
-* version 2 of the License, or (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* General Public License for more details.
-*
-* You should have received a copy of the GNU General Public
-* License along with this program; if not, write to the
-* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-* Boston, MA 02110-1301 USA
-*
-*/
-namespace Notejot {
- private class ColorWidget : Gtk.MenuItem {
- private new bool has_focus;
- private int height;
- public signal void color_changed (int ncolor);
-
- public ColorWidget () {
- set_size_request (200, 30);
- height = 30;
-
- button_press_event.connect (button_pressed_cb);
- draw.connect (on_draw);
-
- select.connect (() => {
- has_focus = true;
- });
-
- deselect.connect (() => {
- has_focus = false;
- });
- }
-
- private bool button_pressed_cb (Gdk.EventButton event) {
- determine_button_pressed_event (event);
- return true;
- }
-
- private void determine_button_pressed_event (Gdk.EventButton event) {
- int i;
- int btnw = 15;
- int btnh = 15;
- int y0 = (height - btnh) / 2;
- int x0 = btnw + 6;
-
- if (event.y >= y0 && event.y <= y0+btnh) {
- for (i=1; i<=9; i++) {
- if (event.x >= x0 * i && event.x <= x0 * i + btnw + 6) {
- color_changed (i);
- break;
- }
- }
- }
- }
-
- protected bool on_draw (Cairo.Context cr) {
- int i;
- int btnw = 15;
- int btnh = 15;
- int y0 = (height - btnh) / 2;
- int x0 = btnw + 6;
-
- for (i=1; i<=9; i++) {
- DrawRoundedRectangle (cr,x0 * i + 6, y0, btnw, btnh, "stroke", i + 1);
- DrawRoundedRectangle (cr,x0 * i + 6, y0, btnw, btnh, "fill", i + 1);
- }
-
- return true;
- }
-
- /*
- * Create a rounded rectangle using the Bezier curve.
- * Adapted from http://cairographics.org/cookbook/roundedrectangles/
- */
- private void DrawRoundedRectangle (Cairo.Context cr, int x, int y, int w, int h, string style, int color) {
- int radius_x=2;
- int radius_y=2;
- double ARC_TO_BEZIER = 0.55228475;
-
- if (radius_x > w - radius_x)
- radius_x = w / 2;
-
- if (radius_y > h - radius_y)
- radius_y = h / 2;
-
- /* approximate (quite close) the arc using a bezier curve */
- double ca = ARC_TO_BEZIER * radius_x;
- double cb = ARC_TO_BEZIER * radius_y;
-
- cr.new_path ();
- cr.set_line_width (0.7);
- cr.set_tolerance (0.1);
- cr.move_to (x + radius_x, y);
- cr.rel_line_to (w - 2 * radius_x, 0.0);
- cr.rel_curve_to (ca, 0.0, radius_x, cb, radius_x, radius_y);
- cr.rel_line_to (0, h - 2 * radius_y);
- cr.rel_curve_to (0.0, cb, ca - radius_x, radius_y, -radius_x, radius_y);
- cr.rel_line_to (-w + 2 * radius_x, 0);
- cr.rel_curve_to (-ca, 0, -radius_x, -cb, -radius_x, -radius_y);
- cr.rel_line_to (0, -h + 2 * radius_y);
- cr.rel_curve_to (0.0, -cb, radius_x - ca, -radius_y, radius_x, -radius_y);
-
- switch (style) {
- default:
- case "fill":
- Gdk.RGBA rgba = Gdk.RGBA ();
- rgba.parse (MainWindow.value_color[color]);
- Gdk.cairo_set_source_rgba (cr, rgba);
- cr.fill ();
- break;
- case "stroke":
- cr.set_source_rgba (0,0,0,0.5);
- cr.stroke ();
- break;
- }
-
- cr.close_path ();
- }
- }
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/src/MainWindow.vala new/notejot-1.3.8/src/MainWindow.vala
--- old/notejot-1.3.7/src/MainWindow.vala 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/src/MainWindow.vala 2018-01-23 04:07:28.000000000 +0100
@@ -19,29 +19,43 @@
namespace Notejot {
public class MainWindow : Gtk.Window {
- private Gtk.MenuItem delete_item;
+ private Gtk.ModelButton delete_item;
private Gtk.SourceView view = new Gtk.SourceView ();
- private int default_color = 6;
+ private Gtk.HeaderBar header;
private int uid;
private static int uid_counter = 0;
- // The first two strings here arenot used, they are used as padding on the color widget.
- public static string[] value_color = {" ", " ", "#fafafa", "#a5b3bc", "#ff9c92", "#ffc27d", "#fff394", "#d1ff82", "#8cd5ff", "#aca9fd", "#e29ffc"};
- public static int[] integer_color = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- public int64 color = 6;
+ public string color = "#fff394";
public string content = "";
public string title_name = "Notejot";
public Notejot.EditableLabel label;
+ public SimpleActionGroup actions { get; construct; }
+
+ public const string ACTION_PREFIX = "win.";
+ public const string ACTION_NEW = "action_new";
+ public const string ACTION_DELETE = "action_delete";
+
+ public static Gee.MultiMap<string, string> action_accelerators = new Gee.HashMultiMap<string, string> ();
+
+ private const GLib.ActionEntry[] action_entries = {
+ { ACTION_NEW, action_new },
+ { ACTION_DELETE, action_delete }
+ };
+
public MainWindow (Gtk.Application app, Storage? storage) {
Object (application: app,
resizable: false,
height_request: 500,
width_request: 500);
+ var actions = new SimpleActionGroup ();
+ actions.add_action_entries (action_entries, this);
+ insert_action_group ("win", actions);
+
if (storage != null) {
init_from_storage(storage);
} else {
- this.color = 6;
+ this.color = "#fff394";
this.content = "";
this.set_position(Gtk.WindowPosition.CENTER);
this.title_name = "Notejot";
@@ -49,25 +63,21 @@
}
this.get_style_context().add_class("rounded");
-
this.uid = uid_counter++;
update_theme();
- Gtk.MenuButton app_button = create_app_menu();
- app_button.has_tooltip = true;
- app_button.tooltip_text = (_("Settings"));
-
- var header = new Gtk.HeaderBar();
+ header = new Gtk.HeaderBar();
header.get_style_context ().add_class (Gtk.STYLE_CLASS_FLAT);
header.has_subtitle = false;
- header.pack_end(app_button);
+ create_app_menu ();
header.set_show_close_button (true);
+
label = new Notejot.EditableLabel (this.title_name);
header.set_custom_title(label);
this.set_titlebar(header);
- Gtk.ScrolledWindow scrolled = new Gtk.ScrolledWindow (null, null);
+ var scrolled = new Gtk.ScrolledWindow (null, null);
this.add (scrolled);
view.bottom_margin = 10;
@@ -110,11 +120,165 @@
this.get_style_context().add_class("window-%d".printf(uid));
string style = null;
- string selected_color = this.color == -1 ? value_color[default_color] : value_color[color];
+ string selected_color = this.color;
if (Gtk.get_minor_version() < 20) {
- style = (N_("@define-color textColorPrimary #1a1a1a; .mainwindow-%d {background-color: %s; box-shadow: #1a1a1a;} .window-%d GtkEntry.flat {background: transparent;} .window-%d GtkTextView,.window-%d GtkHeaderBar {background-color: %s; border-bottom-color: %s; box-shadow: none;} .window-%d GtkTextView.view {color: @textColorPrimary; font-size: 11px;} .window-%d GtkTextView.view:selected {color: #FFFFFF; background-color: #3d9bda; font-size: 11px}")).printf(uid, selected_color, uid, uid, uid, selected_color, selected_color, uid, uid);
+ style = (N_("""
+ @define-color textColorPrimary #1a1a1a;
+
+ .mainwindow-%d {
+ background-color: %s;
+ box-shadow: #1a1a1a;
+ }
+
+ GtkTextView.view {
+ color: @textColorPrimary;
+ font-size: 11px;
+ }
+
+ GtkTextView.view:selected {
+ color: #FFFFFF;
+ background-color: #64baff;
+ font-size: 11px
+ }
+
+ GtkEntry.flat {
+ background: transparent;
+ }
+
+ .window-%d GtkTextView,
+ .window-%d GtkHeaderBar {
+ background-color: %s;
+ border-bottom-color: %s;
+ box-shadow: none;
+ }
+
+ .color-button {
+ border-radius: 50%;
+ box-shadow:
+ inset 0 1px 0 0 alpha (@inset_dark_color, 0.7),
+ inset 0 0 0 1px alpha (@inset_dark_color, 0.3),
+ 0 1px 0 0 alpha (@bg_highlight_color, 0.3);
+ }
+
+ .color-button:focus {
+ border-color: @colorAccent;
+ }
+
+ .color-slate {
+ background-color: #a5b3bc;
+ }
+
+ .color-white {
+ background-color: #fafafa;
+ }
+
+ .color-red {
+ background-color: #ff9c92;
+ }
+
+ .color-orange {
+ background-color: #ffc27d;
+ }
+
+ .color-yellow {
+ background-color: #fff394;
+ }
+
+ .color-green {
+ background-color: #d1ff82;
+ }
+
+ .color-blue {
+ background-color: #8cd5ff;
+ }
+
+ .color-indigo {
+ background-color: #aca9fd;
+ }
+
+ .color-violet {
+ background-color: #e29ffc;
+ }
+ """)).printf(uid, selected_color, uid, uid, selected_color, selected_color);
} else {
- style = (N_("@define-color textColorPrimary #1a1a1a; .mainwindow-%d {background-color: %s; box-shadow: #1a1a1a;} .window-%d entry.flat {background: transparent;} .window-%d textview.view text,.window-%d headerbar {background-color: %s; border-bottom-color: %s; box-shadow: none;} .window-%d textview.view {color: @textColorPrimary; font-size: 14px; border-color: %s;} .window-%d textview.view:selected {color: #FFFFFF; background-color: #64baff; font-size: 14px}")).printf(uid, selected_color, uid, uid, uid, selected_color, selected_color, uid, selected_color, uid);
+ style = (N_("""
+ @define-color textColorPrimary #1a1a1a;
+
+ .mainwindow-%d {
+ background-color: %s;
+ box-shadow: #1a1a1a;
+ }
+
+ textview.view:selected {
+ color: @textColorPrimary;
+ font-size: 14px;
+ }
+
+ textview.view:selected {
+ color: #FFFFFF;
+ background-color: #64baff;
+ font-size: 14px
+ }
+
+ entry.flat {
+ background: transparent;
+ }
+
+ .window-%d textview.view text,
+ .window-%d headerbar {
+ background-color: %s;
+ border-bottom-color: %s;
+ box-shadow: none;
+ }
+
+ .color-button {
+ border-radius: 50%;
+ box-shadow:
+ inset 0 1px 0 0 alpha (@inset_dark_color, 0.7),
+ inset 0 0 0 1px alpha (@inset_dark_color, 0.3),
+ 0 1px 0 0 alpha (@bg_highlight_color, 0.3);
+ }
+
+ .color-button:focus {
+ border-color: @colorAccent;
+ }
+
+ .color-slate {
+ background-color: #a5b3bc;
+ }
+
+ .color-white {
+ background-color: #fafafa;
+ }
+
+ .color-red {
+ background-color: #ff9c92;
+ }
+
+ .color-orange {
+ background-color: #ffc27d;
+ }
+
+ .color-yellow {
+ background-color: #fff394;
+ }
+
+ .color-green {
+ background-color: #d1ff82;
+ }
+
+ .color-blue {
+ background-color: #8cd5ff;
+ }
+
+ .color-indigo {
+ background-color: #aca9fd;
+ }
+
+ .color-violet {
+ background-color: #e29ffc;
+ }
+ """)).printf(uid, selected_color, uid, uid, selected_color, selected_color);
}
try {
@@ -123,38 +287,198 @@
warning ("Failed to parse css style : %s", e.message);
}
- Gtk.StyleContext.add_provider_for_screen(
- Gdk.Screen.get_default(),
+ Gtk.StyleContext.add_provider_for_screen (
+ Gdk.Screen.get_default (),
css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
);
}
- private Gtk.MenuButton create_app_menu() {
- Gtk.Menu app_menu = new Gtk.Menu();
+ private void create_app_menu() {
+ var new_item = new Gtk.ModelButton ();
+ new_item.text = (_("New note"));
+ new_item.action_name = MainWindow.ACTION_PREFIX + MainWindow.ACTION_NEW;
+
+ delete_item = new Gtk.ModelButton ();
+ delete_item.text = (_("Delete note"));
+ delete_item.action_name = MainWindow.ACTION_PREFIX + MainWindow.ACTION_DELETE;
+
+ var color_button_white = new Gtk.Button ();
+ color_button_white.halign = Gtk.Align.CENTER;
+ color_button_white.height_request = 22;
+ color_button_white.width_request = 22;
+ color_button_white.tooltip_text = _("White");
+
+ var color_button_white_context = color_button_white.get_style_context ();
+ color_button_white_context.add_class ("color-button");
+ color_button_white_context.add_class ("color-white");
+
+ var color_button_red = new Gtk.Button ();
+ color_button_red.halign = Gtk.Align.CENTER;
+ color_button_red.height_request = 22;
+ color_button_red.width_request = 22;
+ color_button_red.tooltip_text = _("Red");
+
+ var color_button_red_context = color_button_red.get_style_context ();
+ color_button_red_context.add_class ("color-button");
+ color_button_red_context.add_class ("color-red");
+
+ var color_button_orange = new Gtk.Button ();
+ color_button_orange.halign = Gtk.Align.CENTER;
+ color_button_orange.height_request = 22;
+ color_button_orange.width_request = 22;
+ color_button_orange.tooltip_text = _("Orange");
+
+ var color_button_orange_context = color_button_orange.get_style_context ();
+ color_button_orange_context.add_class ("color-button");
+ color_button_orange_context.add_class ("color-orange");
+
+ var color_button_yellow = new Gtk.Button ();
+ color_button_yellow.halign = Gtk.Align.CENTER;
+ color_button_yellow.height_request = 22;
+ color_button_yellow.width_request = 22;
+ color_button_yellow.tooltip_text = _("Yellow");
+
+ var color_button_yellow_context = color_button_yellow.get_style_context ();
+ color_button_yellow_context.add_class ("color-button");
+ color_button_yellow_context.add_class ("color-yellow");
+
+ var color_button_green = new Gtk.Button ();
+ color_button_green.halign = Gtk.Align.CENTER;
+ color_button_green.height_request = 22;
+ color_button_green.width_request = 22;
+ color_button_green.tooltip_text = _("Green");
+
+ var color_button_green_context = color_button_green.get_style_context ();
+ color_button_green_context.add_class ("color-button");
+ color_button_green_context.add_class ("color-green");
+
+ var color_button_blue = new Gtk.Button ();
+ color_button_blue.halign = Gtk.Align.CENTER;
+ color_button_blue.height_request = 22;
+ color_button_blue.width_request = 22;
+ color_button_blue.tooltip_text = _("Blue");
+
+ var color_button_blue_context = color_button_blue.get_style_context ();
+ color_button_blue_context.add_class ("color-button");
+ color_button_blue_context.add_class ("color-blue");
+
+ var color_button_indigo = new Gtk.Button ();
+ color_button_indigo.halign = Gtk.Align.CENTER;
+ color_button_indigo.height_request = 22;
+ color_button_indigo.width_request = 22;
+ color_button_indigo.tooltip_text = _("Indigo");
+
+ var color_button_indigo_context = color_button_indigo.get_style_context ();
+ color_button_indigo_context.add_class ("color-button");
+ color_button_indigo_context.add_class ("color-indigo");
+
+ var color_button_violet = new Gtk.Button ();
+ color_button_violet.halign = Gtk.Align.CENTER;
+ color_button_violet.height_request = 22;
+ color_button_violet.width_request = 22;
+ color_button_violet.tooltip_text = _("Violet");
+
+ var color_button_violet_context = color_button_violet.get_style_context ();
+ color_button_violet_context.add_class ("color-button");
+ color_button_violet_context.add_class ("color-violet");
+
+ var color_button_slate = new Gtk.Button ();
+ color_button_slate.halign = Gtk.Align.CENTER;
+ color_button_slate.height_request = 22;
+ color_button_slate.width_request = 22;
+ color_button_slate.tooltip_text = _("Slate");
+
+ var color_button_slate_context = color_button_slate.get_style_context ();
+ color_button_slate_context.add_class ("color-button");
+ color_button_slate_context.add_class ("color-slate");
+
+ var color_button_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+ color_button_box.margin_start = 6;
+ color_button_box.pack_start (color_button_white, false, true, 0);
+ color_button_box.pack_start (color_button_red, false, true, 0);
+ color_button_box.pack_start (color_button_orange, false, true, 0);
+ color_button_box.pack_start (color_button_yellow, false, true, 0);
+ color_button_box.pack_start (color_button_green, false, true, 0);
+ color_button_box.pack_start (color_button_blue, false, true, 0);
+ color_button_box.pack_start (color_button_indigo, false, true, 0);
+ color_button_box.pack_start (color_button_violet, false, true, 0);
+ color_button_box.pack_start (color_button_slate, false, true, 0);
+
+ var setting_grid = new Gtk.Grid ();
+ setting_grid.margin = 6;
+ setting_grid.column_spacing = 6;
+ setting_grid.row_spacing = 12;
+ setting_grid.orientation = Gtk.Orientation.VERTICAL;
+ setting_grid.attach (new_item, 0, 0, 1, 1);
+ setting_grid.attach (color_button_box, 0, 1, 1, 1);
+ setting_grid.attach (delete_item, 0, 2, 1, 1);
+ setting_grid.show_all ();
- var new_item = new Gtk.MenuItem.with_label (_("New note"));
- new_item.activate.connect (create_new_note);
+ var popover = new Gtk.Popover (null);
+ popover.add (setting_grid);
- delete_item = new Gtk.MenuItem.with_label (_("Delete note"));
- delete_item.activate.connect(delete_note);
+ var app_button = new Gtk.MenuButton();
+ app_button.has_tooltip = true;
+ app_button.tooltip_text = (_("Settings"));
+ app_button.image = new Gtk.Image.from_icon_name ("open-menu-symbolic", Gtk.IconSize.SMALL_TOOLBAR);
+ app_button.popover = popover;
- var color_menu_item = new ColorWidget ();
- color_menu_item.color_changed.connect ((color) => {
- change_color_action (color+1);
+ color_button_white.clicked.connect (() => {
+ this.color = "#F5F5F5";
+ update_theme();
+ ((Application)this.application).update_storage();
});
- app_menu.add(new_item);
- app_menu.add(color_menu_item);
- app_menu.add(delete_item);
+ color_button_red.clicked.connect (() => {
+ this.color = "#ff9c92";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
- app_menu.show_all();
+ color_button_orange.clicked.connect (() => {
+ this.color = "#ffc27d";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
- var app_button = new Gtk.MenuButton();
- app_button.image = new Gtk.Image.from_icon_name ("open-menu-symbolic", Gtk.IconSize.SMALL_TOOLBAR);
- app_button.set_popup(app_menu);
+ color_button_yellow.clicked.connect (() => {
+ this.color = "#fff394";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
+
+ color_button_green.clicked.connect (() => {
+ this.color = "#d1ff82";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
+
+ color_button_blue.clicked.connect (() => {
+ this.color = "#8cd5ff";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
+
+ color_button_indigo.clicked.connect (() => {
+ this.color = "#aca9fd";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
+
+ color_button_violet.clicked.connect (() => {
+ this.color = "#e29ffc";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
- return app_button;
+ color_button_slate.clicked.connect (() => {
+ this.color = "#a5b3bc";
+ update_theme();
+ ((Application)this.application).update_storage();
+ });
+
+ header.pack_end(app_button);
}
private void init_from_storage(Storage storage) {
@@ -165,23 +489,18 @@
set_title (this.title_name);
}
- private void create_new_note(Gtk.MenuItem new_item) {
+ private void action_new () {
((Application)this.application).create_note(null);
}
- private void change_color_action(int color) {
- this.color = index_color(color);
- update_theme();
- ((Application)this.application).update_storage();
- }
-
- private void delete_note(Gtk.MenuItem delete_item) {
+ private void action_delete () {
((Application)this.application).remove_note(this);
this.destroy ();
}
public Storage get_storage_note() {
- int x, y, color;
+ int x, y;
+ string color = this.color;
Gtk.TextIter start,end;
view.buffer.get_bounds (out start, out end);
this.content = view.buffer.get_text (start, end, true);
@@ -189,7 +508,6 @@
set_title (this.title_name);
this.get_position (out x, out y);
- color = (int)this.color;
return new Storage.from_storage(x, y, color, content, title_name);
}
@@ -203,16 +521,5 @@
settings.window_y = y;
return false;
}
-
- private int index_color(int icolor) {
- int index = 0;
- foreach (int color in integer_color) {
- if (color == icolor) {
- return index;
- }
- index++;
- }
- return -1;
- }
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/src/Services/NoteManager.vala new/notejot-1.3.8/src/Services/NoteManager.vala
--- old/notejot-1.3.7/src/Services/NoteManager.vala 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/src/Services/NoteManager.vala 2018-01-23 04:07:28.000000000 +0100
@@ -61,7 +61,7 @@
builder.set_member_name ("y");
builder.add_int_value (note.y);
builder.set_member_name ("color");
- builder.add_int_value (note.color);
+ builder.add_string_value (note.color);
builder.set_member_name ("content");
builder.add_string_value (note.content);
builder.set_member_name ("title");
@@ -73,7 +73,7 @@
Json.Generator generator = new Json.Generator ();
Json.Node root = builder.get_root ();
generator.set_root (root);
-
+
string str = generator.to_data (null);
return str;
}
@@ -99,7 +99,7 @@
var array = root.get_array();
foreach (var item in array.get_elements()) {
var node = item.get_object();
- int64 color = node.get_int_member("color");
+ string color = node.get_string_member("color");
int64 x = node.get_int_member("x");
int64 y = node.get_int_member("y");
string content = node.get_string_member("content");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/notejot-1.3.7/src/Services/Storage.vala new/notejot-1.3.8/src/Services/Storage.vala
--- old/notejot-1.3.7/src/Services/Storage.vala 2018-01-08 18:08:59.000000000 +0100
+++ new/notejot-1.3.8/src/Services/Storage.vala 2018-01-23 04:07:28.000000000 +0100
@@ -20,7 +20,7 @@
namespace Notejot {
public class Storage : Object {
- public int64 color;
+ public string color;
public int64 x;
public int64 y;
public string content;
@@ -28,7 +28,7 @@
public Storage() {}
- public Storage.from_storage(int64 x, int64 y, int64 color, string message, string title) {
+ public Storage.from_storage(int64 x, int64 y, string color, string message, string title) {
this.color = color;
this.content = message;
this.x = x;
1
0