openSUSE Commits
Threads by month
- ----- 2025 -----
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- 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
May 2009
- 1 participants
- 754 discussions
Hello community,
here is the log from the commit of package netbeans-javaparser for openSUSE:Factory
checked in at Sat May 30 18:17:46 CEST 2009.
--------
New Changes file:
--- /dev/null 2009-04-14 11:58:14.000000000 +0200
+++ /mounts/work_src_done/STABLE/netbeans-javaparser/netbeans-javaparser.changes 2009-05-19 14:08:34.000000000 +0200
@@ -0,0 +1,5 @@
+-------------------------------------------------------------------
+Tue May 19 13:58:15 CEST 2009 - mvyskocil(a)suse.cz
+
+- 'Initial packaging of netbeans-javaparser (from Fedora 11)'
+
calling whatdependson for head-i586
New:
----
nb-javac-6.5.tar.bz2
netbeans-javaparser.changes
netbeans-javaparser.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ netbeans-javaparser.spec ++++++
#
# spec file for package netbeans-javaparser (Version 6.5)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: netbeans-javaparser
Version: 6.5
Release: 2
Summary: NetBeans Java Parser
License: GPL v2 only; GPLv2 with Classpath Exception
Url: http://java.netbeans.org/javaparser/
Group: Development/Libraries/Java
# The source for this package was pulled from upstream's vcs. Use the
# following commands to generate the tarball:
# hg clone http://hg.netbeans.org/main/nb-javac/
# cd nb-javac/
# hg update -r release65_base
# tar -czvf ../nb-javac-6.5.tar.gz .
Source0: nb-javac-%{version}.tar.bz2
BuildRequires: ant
BuildRequires: ant-nodeps
BuildRequires: java-devel
BuildRequires: jpackage-utils
Requires: java
Requires: jpackage-utils
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Provides: libnb-javaparser-java = 6.1
%description
Java parser to analyse Java source files inside of the NetBeans IDE
%prep
%setup -q -c
# remove all binary libs
find . -name "*.jar" -exec %{__rm} -f {} \;
%build
[ -z "$JAVA_HOME" ] && export JAVA_HOME=%{_jvmdir}/java
ant -f make/netbeans/nb-javac/build.xml jar
%install
# jar
%{__install} -d -m 755 %{buildroot}%{_javadir}
%{__install} -m 644 make/netbeans/nb-javac/dist/javac-api.jar %{buildroot}%{_javadir}/%{name}-api-%{version}.jar
%{__ln_s} %{name}-api-%{version}.jar %{buildroot}%{_javadir}/%{name}-api.jar
%{__install} -m 644 make/netbeans/nb-javac/dist/javac-impl.jar %{buildroot}%{_javadir}/%{name}-impl-%{version}.jar
%{__ln_s} %{name}-impl-%{version}.jar %{buildroot}%{_javadir}/%{name}-impl.jar
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-,root,root)
%doc ASSEMBLY_EXCEPTION LICENSE README
%{_javadir}/*
%changelog
* Tue May 19 2009 mvyskocil(a)suse.cz
- 'Initial packaging of netbeans-javaparser (from Fedora 11)'
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package tog-pegasus for openSUSE:Factory
checked in at Fri May 29 12:18:46 CEST 2009.
--------
--- tog-pegasus/tog-pegasus.changes 2009-05-18 09:38:06.000000000 +0200
+++ /mounts/work_src_done/STABLE/tog-pegasus/tog-pegasus.changes 2009-05-25 19:13:11.000000000 +0200
@@ -1,0 +2,11 @@
+Mon May 25 16:50:44 CEST 2009 - mhrusecky(a)suse.cz
+
+- repository is owned by pegasus user and daemon is running as pegasus as well
+- 'rctog-pegasus start' fixed so second run wouldn't try to run same daemon again
+
+-------------------------------------------------------------------
+Thu May 21 15:38:31 CEST 2009 - mhrusecky(a)suse.cz
+
+- updated to version 2.9.0
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
pegasus-2.8.0-gcc44.patch
pegasus-2.8.0.tar.bz2
pegasus-config.patch
pegasus-local-or-remote-auth.patch
New:
----
pegasus-2.9.0-config.patch
pegasus-2.9.0-defineable-user.patch
pegasus-2.9.0-gcc44.patch
pegasus-2.9.0-local-or-remote-auth.patch
pegasus-2.9.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ tog-pegasus.spec ++++++
--- /var/tmp/diff_new_pack.w27124/_old 2009-05-29 12:17:59.000000000 +0200
+++ /var/tmp/diff_new_pack.w27124/_new 2009-05-29 12:17:59.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package tog-pegasus (Version 2.8.0)
+# spec file for package tog-pegasus (Version 2.9.0)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -19,9 +19,10 @@
Name: tog-pegasus
-BuildRequires: cim-schema e2fsprogs-devel fdupes gcc-c++ libicu-devel net-snmp-devel openslp-devel openssl openssl-devel pam-devel pwdutils python-httplib2
-Version: 2.8.0
-Release: 5
+BuildRequires: cim-schema e2fsprogs-devel fdupes gcc-c++ libicu-devel net-snmp-devel
+BuildRequires: openslp-devel openssl openssl-devel pam-devel pwdutils python-httplib2
+Version: 2.9.0
+Release: 1
#
Summary: OpenPegasus WBEM Services for Linux
Group: System/Management
@@ -48,14 +49,16 @@
Source15: tog-pegasus.pc
#
Patch1: pegasus-pam-wbem.patch
-Patch2: pegasus-config.patch
+Patch2: pegasus-2.9.0-config.patch
Patch3: pegasus-no-strip.patch
-Patch5: pegasus-local-or-remote-auth.patch
+Patch5: pegasus-2.9.0-local-or-remote-auth.patch
Patch11: pegasus-2.7.0-strncat.patch
Patch12: pegasus-2.8.0-notests.patch
-# PATH-FIX-UPSTREAM pegasus-2.8.0-gcc44.patch [ upstream#8496 ] mhrusecky(a)suse.cz -- Fixed problematic elif - fixes compilation with gcc44
+# PATCH-FIX-UPSTREAM pegasus-2.9.0-gcc44.patch [ upstream#8496 ] mhrusecky(a)suse.cz -- Fixed problematic elif - fixes compilation with gcc44
# http://bugzilla.openpegasus.org/show_bug.cgi?id=8496
-Patch13: pegasus-2.8.0-gcc44.patch
+Patch13: pegasus-2.9.0-gcc44.patch
+# PATCH-FEATURE-SUSE pegasus-2.9.0-defineable-user.patch [] mhrusecky(a)suse.cz -- possibility to use other user then cimsrv
+Patch14: pegasus-2.9.0-defineable-user.patch
#
Provides: tog-pegasus-cimserver
Provides: cim-server
@@ -67,7 +70,10 @@
PreReq: python-pywbem >= 0.6.20080201.1
PreReq: cim-schema >= 2.17
# due to bug in python package (bnc#427987)
+# Should be fixed in 11.2
+%if 0%{?suse_version} < 1120 && 0%{?suse_version} > 0
PreReq: python-devel
+%endif
Requires: bash, sed, grep, coreutils, procps, openssl >= 0.9.6, pam
Requires: bind-utils, net-tools
Obsoletes: pegasus-wbem
@@ -91,6 +97,7 @@
Summary: OpenPegasus WBEM Services for Linux
Group: System/Management
Obsoletes: tog-pegasus-sdk
+Provides: tog-pegasus-sdk
Conflicts: sblim-cmpi-devel
Requires: tog-pegasus >= %{version}
Requires: gcc-c++
@@ -135,12 +142,13 @@
%prep
%setup -q -n pegasus
%patch1
-%patch2 -b .pegasus-config.patch
+%patch2
%patch3
%patch5
%patch11
%patch12 -b .pegasus-2.8.0-notests.patch
%patch13
+%patch14
%build
cp -fp %_sourcedir/README.SUSE.Security doc
@@ -170,7 +178,7 @@
export PEGASUS_PLATFORM=$PEGASUS_PLATFORM
export PEGASUS_ROOT=`pwd`
export PEGASUS_HOME=\$PEGASUS_ROOT/_build
-export PEGASUS_EXTRA_C_FLAGS="%optflags -Wno-unused"
+export PEGASUS_EXTRA_C_FLAGS="%optflags -Wno-unused -fno-strict-aliasing"
export PEGASUS_EXTRA_CXX_FLAGS=\$PEGASUS_EXTRA_C_FLAGS
export PEGASUS_STAGING_DIR=%buildroot
export PEGASUS_ARCH_LIB=%_lib
@@ -180,12 +188,13 @@
export PEGASUS_BUILD_TEST_RPM=1
export PEGASUS_ENABLE_MAKE_INSTALL=yes
export PEGASUS_SKIP_MOST_TEST_DIRS=true
+export PEGASUS_CIMSERVERMAIN_USER=pegasus
EOF
. rpm-env
# vvv remove this when #337901 / gcc.gnu.org/PR31081 gets fixed
-mv src/Pegasus/Client/tests/DeleteNamespace/DeleteNamespace.cpp{,.disabled}
-echo -e '#include <stdio.h>\nint main() { puts("test disabled"); return 0; }' \
-> src/Pegasus/Client/tests/DeleteNamespace/DeleteNamespace.cpp
+# mv src/Pegasus/Client/tests/DeleteNamespace/DeleteNamespace.cpp{,.disabled}
+# echo -e '#include <stdio.h>\nint main() { puts("test disabled"); return 0; }' \
+# > src/Pegasus/Client/tests/DeleteNamespace/DeleteNamespace.cpp
# ^^^
make -f Makefile.Release create_ProductVersionFile
make -f Makefile.Release create_CommonProductDirectoriesInclude
@@ -242,7 +251,12 @@
# Create pkg-config file
install -d %{buildroot}/usr/%_lib/pkgconfig
sed -e "s,@VERSION@,%{version}," %{S:15} > %{buildroot}/usr/%_lib/pkgconfig/%{name}.pc
+# Final cleanups
%fdupes -s $RPM_BUILD_ROOT/usr/bin
+%fdupes -s $RPM_BUILD_ROOT/usr/share/Pegasus/samples
+rm -f $RPM_BUILD_ROOT/usr/share/Pegasus/samples/{lib,obj,lib}/target
+chmod a-x $RPM_BUILD_ROOT/usr/share/Pegasus/mof/Pegasus/* \
+ $RPM_BUILD_ROOT/etc/Pegasus/cimserver_planned.conf
### end of %install
%clean
@@ -255,10 +269,6 @@
/usr/sbin/groupadd -r pegasus >/dev/null 2>&1 || :
/usr/sbin/useradd -r -g pegasus -s /sbin/nologin -d /var/lib/Pegasus \
-c "tog-pegasus OpenPegasus WBEM/CIM services" pegasus >/dev/null 2>&1 || :
-/usr/sbin/groupadd -r cimsrvr >/dev/null 2>&1 || :
-/usr/sbin/useradd -r -g cimsrvr -s /sbin/nologin \
- -d /var/lib/Pegasus -c "tog-pegasus OpenPegasus WBEM/CIM services" \
- cimsrvr >/dev/null 2>&1 || :
# upgrade the repository on package update
if test -e %curr_repo; then
if test -x /etc/init.d/tog-pegasus && /etc/init.d/tog-pegasus status>/dev/null
@@ -311,7 +321,7 @@
if test -d %prev_repo; then
echo "running repupgrade to upgrade repository" >&2
/usr/sbin/repupgrade
- chown -R cimsrvr.cimsrvr %curr_repo
+ chown -R pegasus.pegasus %curr_repo
rm -rf %prev_repo
fi
if test -e %restart_flag; then
@@ -356,9 +366,9 @@
/var/lib/Pegasus/cache
%dir /var/lib/Pegasus/log
%attr(0600,root,root) /var/lib/Pegasus/log/install.log
-%dir %attr(0700,cimsrvr,cimsrvr) /var/lib/Pegasus/repository
-%attr(-,cimsrvr,cimsrvr) /var/lib/Pegasus/repository/*
-%attr(755,cimsrvr,cimsrvr) /var/run/tog-pegasus
+%dir %attr(0700,pegasus,pegasus) /var/lib/Pegasus/repository
+%attr(-,pegasus,pegasus) /var/lib/Pegasus/repository/*
+%attr(755,pegasus,pegasus) /var/run/tog-pegasus
%dir /usr/share/Pegasus
/usr/share/Pegasus/mof
%doc /usr/share/man/man[18]/*
@@ -379,6 +389,11 @@
# automatically updated from it in the binary RPMS
%changelog
+* Mon May 25 2009 mhrusecky(a)suse.cz
+- repository is owned by pegasus user and daemon is running as pegasus as well
+- 'rctog-pegasus start' fixed so second run wouldn't try to run same daemon again
+* Thu May 21 2009 mhrusecky(a)suse.cz
+- updated to version 2.9.0
* Mon May 18 2009 mhrusecky(a)suse.cz
- fixed build in Factory
* Tue May 12 2009 mhrusecky(a)suse.cz
++++++ cimserver_planned.conf ++++++
--- /var/tmp/diff_new_pack.w27124/_old 2009-05-29 12:17:59.000000000 +0200
+++ /var/tmp/diff_new_pack.w27124/_new 2009-05-29 12:17:59.000000000 +0200
@@ -284,16 +284,6 @@
repositoryDir=/var/lib/Pegasus/repository
##############################################################################
-# slp
-# Description: When set to true, OpenPegasus activates an SLP
-# SA and issues DMTF defined SLP advertisements to this SA on
-# startup.
-# Default Value: false
-# Dynamic: No
-##############################################################################
-slp=false
-
-##############################################################################
# socketWriteTimeout
# Description: If the CIM Server receives an EWOULDBLOCK/EAGAIN
# error on a non-blocking write, socketWriteTimeout defines the
++++++ pegasus-2.9.0-config.patch ++++++
Index: src/Clients/repupgrade/RepositoryUpgrade.cpp
===================================================================
--- src/Clients/repupgrade/RepositoryUpgrade.cpp.orig
+++ src/Clients/repupgrade/RepositoryUpgrade.cpp
@@ -291,10 +291,10 @@ const char* RepositoryUpgrade::_ALL = "a
const String NEW_REPOSITORY_PATH = "/wbem_var/opt/wbem/repository";
const String RepositoryUpgrade::_LOG_PATH = "/wbem_var/opt/wbem/upgrade";
# elif defined(PEGASUS_OS_LINUX)
- const String OLD_REPOSITORY_PATH = "/var/opt/tog-pegasus/prev_repository";
- const String NEW_REPOSITORY_PATH = "/var/opt/tog-pegasus/repository";
+ const String OLD_REPOSITORY_PATH = "/var/lib/Pegasus/prev_repository";
+ const String NEW_REPOSITORY_PATH = "/var/lib/Pegasus/repository";
const String RepositoryUpgrade::_LOG_PATH =
- "/var/opt/tog-pegasus/log/upgrade";
+ "/var/lib/Pegasus/log/install.log";
# else
# undef REPUPGRADE_USE_RELEASE_DIRS
const String RepositoryUpgrade::_LOG_PATH = "./";
++++++ pegasus-2.9.0-defineable-user.patch ++++++
Index: mak/config.mak
===================================================================
--- mak/config.mak.orig
+++ mak/config.mak
@@ -1317,7 +1317,9 @@ ifdef PEGASUS_ENABLE_PRIVILEGE_SEPARATIO
## Defines the user context of the cimservermain process when privilege
## separation is enabled.
- PEGASUS_CIMSERVERMAIN_USER = cimsrvr
+ ifndef PEGASUS_CIMSERVERMAIN_USER
+ PEGASUS_CIMSERVERMAIN_USER = cimsrvr
+ endif
DEFINES += -DPEGASUS_CIMSERVERMAIN_USER=\"$(PEGASUS_CIMSERVERMAIN_USER)\"
endif
++++++ pegasus-2.8.0-gcc44.patch -> pegasus-2.9.0-gcc44.patch ++++++
--- tog-pegasus/pegasus-2.8.0-gcc44.patch 2009-05-18 14:38:41.000000000 +0200
+++ /mounts/work_src_done/STABLE/tog-pegasus/pegasus-2.9.0-gcc44.patch 2009-05-26 11:29:55.000000000 +0200
@@ -2,18 +2,12 @@
===================================================================
--- src/Pegasus/Provider/CMPI/CmpiImpl.cpp.orig
+++ src/Pegasus/Provider/CMPI/CmpiImpl.cpp
-@@ -3240,11 +3240,13 @@ CmpiBooleanData CmpiFalse(false);
+@@ -3238,7 +3238,7 @@ CmpiBooleanData CmpiFalse(false);
#ifdef CMPI_VER_200
static CMPIBroker __providerBaseBroker = {0,0,0,0,0};
-#elif CMPI_VER_100
-+#else
-+#ifdef CMPI_VER_100
++#elif defined(CMPI_VER_100)
static CMPIBroker __providerBaseBroker = {0,0,0,0};
#else
static CMPIBroker __providerBaseBroker = {0,0,0};
- #endif
-+#endif
-
- CmpiProviderBase::CmpiProviderBase()
- {
++++++ pegasus-2.9.0-local-or-remote-auth.patch ++++++
Index: src/Executor/Messages.h
===================================================================
--- src/Executor/Messages.h.orig
+++ src/Executor/Messages.h
@@ -198,6 +198,7 @@ struct ExecutorAuthenticatePasswordReque
{
char username[EXECUTOR_BUFFER_SIZE];
char password[EXECUTOR_BUFFER_SIZE];
+ int isRemoteUser;
};
struct ExecutorAuthenticatePasswordResponse
Index: src/Executor/PAMAuth.h
===================================================================
--- src/Executor/PAMAuth.h.orig
+++ src/Executor/PAMAuth.h
@@ -43,6 +43,7 @@
#include <stdio.h>
#include <errno.h>
#include <string.h>
+#include <syslog.h>
#include <Executor/Strlcpy.h>
#include <Executor/Strlcat.h>
#include <security/pam_appl.h>
@@ -393,35 +394,66 @@ static int PAMValidateUserCallback(
*/
static int PAMAuthenticateInProcess(
- const char* username, const char* password)
+ const char* username, const char* password, int isRemoteUser)
{
PAMData data;
struct pam_conv pconv;
- pam_handle_t* handle;
+ pam_handle_t* phandle;
+ int retcode;
+ const char *pam_tty_val = isRemoteUser ? "wbemNetwork" : "wbemLocal";
data.password = password;
pconv.conv = PAMAuthenticateCallback;
pconv.appdata_ptr = &data;
- if (pam_start("wbem", username, &pconv, &handle) != PAM_SUCCESS)
- return -1;
+ // NOTE: if any pam call should log anything, our syslog socket will
+ // be redirected to the AUTH facility, so we need to redirect it
+ // back after each pam call.
- if (pam_authenticate(handle, 0) != PAM_SUCCESS)
+ if ((retcode = pam_start("wbem", username, &pconv, &phandle)) != PAM_SUCCESS)
{
- pam_end(handle, 0);
+ closelog();
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
+ syslog(LOG_ERR, "pam_start failed: %s", pam_strerror(phandle, retcode));
return -1;
}
-
- if (pam_acct_mgmt(handle, 0) != PAM_SUCCESS)
+ if ((retcode = pam_set_item(phandle, PAM_TTY, pam_tty_val)) != PAM_SUCCESS )
{
- pam_end(handle, 0);
+ pam_end(phandle, 0);
+ closelog();
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
+ syslog(LOG_ERR, "pam_set_item(PAM_TTY=%s) failed: %s", pam_tty_val,
+ pam_strerror(phandle, retcode));
return -1;
}
- pam_end(handle, 0);
+ if ((retcode = pam_authenticate(phandle, 0)) != PAM_SUCCESS)
+ {
+ closelog();
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
+ syslog(LOG_ERR, "pam_authenticate failed: %s",
+ pam_strerror(phandle, retcode));
+ goto auth_failed;
+ }
+
+ if (pam_acct_mgmt(phandle, 0) != PAM_SUCCESS)
+ {
+ closelog();
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
+ syslog(LOG_ERR, "pam_acct_mgmt failed: %s",
+ pam_strerror(phandle, retcode));
+ goto auth_failed;
+ }
+ pam_end(phandle, 0);
return 0;
+
+auth_failed:
+ pam_end(phandle, 0);
+ syslog(LOG_ERR, "PAM authentication failed for %s user: %s",
+ isRemoteUser ? "remote" : "local", username);
+ return -1;
}
/*
@@ -439,15 +471,23 @@ static int PAMValidateUserInProcess(cons
PAMData data;
struct pam_conv pconv;
pam_handle_t* phandle;
+ int retcode;
pconv.conv = PAMValidateUserCallback;
pconv.appdata_ptr = &data;
- if (pam_start("wbem", username, &pconv, &phandle) != PAM_SUCCESS)
+ if ((retcode = pam_start("wbem", username, &pconv, &phandle)) != PAM_SUCCESS)
+ closelog();
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
+ syslog(LOG_ERR, "pam_start failed: %s", pam_strerror(phandle, retcode));
return -1;
- if (pam_acct_mgmt(phandle, 0) != PAM_SUCCESS)
+ if ((retcode = pam_acct_mgmt(phandle, 0)) != PAM_SUCCESS)
{
+ closelog();
+ openlog("cimserver", LOG_PID, LOG_DAEMON);
+ syslog(LOG_ERR, "pam_acct_mgmt failed: %s",
+ pam_strerror(phandle, retcode));
pam_end(phandle, 0);
return -1;
}
@@ -467,12 +507,13 @@ static int PAMValidateUserInProcess(cons
**==============================================================================
*/
-static int PAMAuthenticate(const char* username, const char* password)
+static int PAMAuthenticate(const char* username, const char* password,
+ int isRemoteUser)
{
#ifdef PEGASUS_USE_PAM_STANDALONE_PROC
return CimserveraProcessOperation("authenticate", username, password);
#else
- return PAMAuthenticateInProcess(username, password);
+ return PAMAuthenticateInProcess(username, password, isRemoteUser);
#endif
}
Index: src/Executor/Parent.c
===================================================================
--- src/Executor/Parent.c.orig
+++ src/Executor/Parent.c
@@ -623,7 +623,8 @@ static void HandleAuthenticatePasswordRe
#if defined(PEGASUS_PAM_AUTHENTICATION)
- if (PAMAuthenticate(request.username, request.password) != 0)
+ if (PAMAuthenticate(request.username, request.password,
+ request.isRemoteUser) != 0)
{
status = -1;
break;
Index: src/Executor/tests/PAMAuth/TestExecutorPAMAuth.c
===================================================================
--- src/Executor/tests/PAMAuth/TestExecutorPAMAuth.c.orig
+++ src/Executor/tests/PAMAuth/TestExecutorPAMAuth.c
@@ -49,7 +49,7 @@ int main()
sprintf(prompt, "Enter password for %s: ", PEGASUS_CIMSERVERMAIN_USER);
pw = getpass(prompt);
- if (PAMAuthenticate(PEGASUS_CIMSERVERMAIN_USER, pw) == 0)
+ if (PAMAuthenticate(PEGASUS_CIMSERVERMAIN_USER, pw, 0) == 0)
printf("Correct password\n");
else
printf("Wrong password\n");
Index: src/Pegasus/Common/AuthenticationInfo.h
===================================================================
--- src/Pegasus/Common/AuthenticationInfo.h.orig
+++ src/Pegasus/Common/AuthenticationInfo.h
@@ -354,6 +354,22 @@ public:
return _rep->getRemotePrivilegedUserAccessChecked();
}
+ /** Indicate whether the user is Remote
+ */
+ Boolean isRemoteUser() const
+ {
+ CheckRep(_rep);
+ return _rep->isRemoteUser();
+ }
+
+ /** Set the Remote User flag
+ */
+ void setRemoteUser(Boolean remoteUser)
+ {
+ CheckRep(_rep);
+ _rep->setRemoteUser(remoteUser);
+ }
+
private:
AuthenticationInfo(AuthenticationInfoRep* rep) : _rep(rep)
Index: src/Pegasus/Common/AuthenticationInfoRep.cpp
===================================================================
--- src/Pegasus/Common/AuthenticationInfoRep.cpp.orig
+++ src/Pegasus/Common/AuthenticationInfoRep.cpp
@@ -44,7 +44,8 @@ const String AuthenticationInfoRep::AUTH
AuthenticationInfoRep::AuthenticationInfoRep(Boolean flag)
: _connectionAuthenticated(false),
- _wasRemotePrivilegedUserAccessChecked(false)
+ _wasRemotePrivilegedUserAccessChecked(false),
+ _remoteUser(true)
{
PEG_METHOD_ENTER(
TRC_AUTHENTICATION, "AuthenticationInfoRep::AuthenticationInfoRep");
@@ -166,5 +167,15 @@ void AuthenticationInfoRep::setClientCer
PEG_METHOD_EXIT();
}
+
+void AuthenticationInfoRep::setRemoteUser(Boolean remoteUser)
+{
+ PEG_METHOD_ENTER(TRC_AUTHENTICATION,
+ "AuthenticationInfoRep::setRemoteUser");
+
+ _remoteUser = remoteUser;
+
+ PEG_METHOD_EXIT();
+}
PEGASUS_NAMESPACE_END
Index: src/Pegasus/Common/AuthenticationInfoRep.h
===================================================================
--- src/Pegasus/Common/AuthenticationInfoRep.h.orig
+++ src/Pegasus/Common/AuthenticationInfoRep.h
@@ -165,6 +165,13 @@ public:
return _wasRemotePrivilegedUserAccessChecked;
}
+ Boolean isRemoteUser() const
+ {
+ return _remoteUser;
+ }
+
+ void setRemoteUser(Boolean remoteUser);
+
private:
/** Constructors */
@@ -190,6 +197,7 @@ private:
Boolean _wasRemotePrivilegedUserAccessChecked;
Array<SSLCertificateInfo*> _clientCertificate;
+ Boolean _remoteUser;
};
PEGASUS_NAMESPACE_END
Index: src/Pegasus/Common/Executor.cpp
===================================================================
--- src/Pegasus/Common/Executor.cpp.orig
+++ src/Pegasus/Common/Executor.cpp
@@ -125,7 +125,8 @@ public:
virtual int authenticatePassword(
const char* username,
- const char* password) = 0;
+ const char* password,
+ Boolean isRemoteUser) = 0;
virtual int validateUser(
const char* username) = 0;
@@ -555,10 +556,11 @@ public:
virtual int authenticatePassword(
const char* username,
- const char* password)
+ const char* password,
+ Boolean isRemoteUser)
{
#if defined(PEGASUS_PAM_AUTHENTICATION)
- return PAMAuthenticate(username, password);
+ return PAMAuthenticate(username, password, isRemoteUser);
#else
// ATTN: not handled so don't call in this case.
return -1;
@@ -897,7 +899,8 @@ public:
virtual int authenticatePassword(
const char* username,
- const char* password)
+ const char* password,
+ Boolean isRemoteUser)
{
AutoMutex autoMutex(_mutex);
@@ -915,6 +918,7 @@ public:
memset(&request, 0, sizeof(request));
Strlcpy(request.username, username, EXECUTOR_BUFFER_SIZE);
Strlcpy(request.password, password, EXECUTOR_BUFFER_SIZE);
+ request.isRemoteUser = isRemoteUser;
if (SendBlock(_sock, &request, sizeof(request)) != sizeof(request))
return -1;
@@ -1165,10 +1169,11 @@ int Executor::reapProviderAgent(
int Executor::authenticatePassword(
const char* username,
- const char* password)
+ const char* password,
+ Boolean isRemoteUser)
{
once(&_executorImplOnce, _initExecutorImpl);
- return _executorImpl->authenticatePassword(username, password);
+ return _executorImpl->authenticatePassword(username, password, isRemoteUser);
}
int Executor::validateUser(
Index: src/Pegasus/Common/Executor.h
===================================================================
--- src/Pegasus/Common/Executor.h.orig
+++ src/Pegasus/Common/Executor.h
@@ -183,7 +183,8 @@ public:
*/
static int authenticatePassword(
const char* username,
- const char* password);
+ const char* password,
+ Boolean isRemoteUser);
/** Check whether the given user is valid for the underlying authentcation
mechanism.
Index: src/Pegasus/Common/HTTPConnection.cpp
===================================================================
--- src/Pegasus/Common/HTTPConnection.cpp.orig
+++ src/Pegasus/Common/HTTPConnection.cpp
@@ -2151,6 +2151,50 @@ void HTTPConnection::_handleReadEvent()
_incomingBuffer).get()));
}
+ // Allow authenticators to differentiate Remote and Local users:
+ struct sockaddr_in6 sin_peer, sin_svr;
+ socklen_t slen1=sizeof(sin_peer), slen2=sizeof(sin_svr);
+ uint32_t sock = _socket.get()->getSocket() ;
+ memset(&sin_peer,'\0',slen1);
+ memset(&sin_svr, '\0',slen2);
+ if (::getpeername( sock, (struct sockaddr*)&sin_peer, &slen1) == 0 ||
+ ::getsockname( sock, (struct sockaddr*)&sin_svr, &slen2) == 0)
+ {
+ if (sin_peer.sin6_family == AF_INET)
+ {
+ struct sockaddr_in sin;
+ memcpy(&sin, &sin_peer, sizeof(sin));
+ if ((ntohl(sin.sin_addr.s_addr) >> 24) & 0xff == 127)
+ // message was sent FROM localhost interface
+ message->fromRemoteHost = false;
+ }
+ if (sin_svr.sin6_family == AF_INET)
+ {
+ struct sockaddr_in sin;
+ memcpy(&sin, &sin_svr, sizeof(sin));
+ if ((ntohl( sin.sin_addr.s_addr) >> 24) & 0xff == 127)
+ // message was sent TO localhost interface
+ message->fromRemoteHost = false;
+ }
+ if (sin_peer.sin6_family == AF_INET6)
+ {
+ // ::ffff:127.x.x.x
+ static char ipv4_localhost[] =
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 127};
+ if (memcmp(&sin_peer.sin6_addr, ipv4_localhost,
+ sizeof(ipv4_localhost)) == 0)
+ {
+ message->fromRemoteHost = false;
+ }
+ // ::1
+ if (memcmp(&sin_peer.sin6_addr, &in6addr_loopback,
+ sizeof(struct in6_addr)) == 0)
+ {
+ message->fromRemoteHost = false;
+ }
+ }
+ }
+
//
// increment request count
//
Index: src/Pegasus/Common/HTTPMessage.cpp
===================================================================
--- src/Pegasus/Common/HTTPMessage.cpp.orig
+++ src/Pegasus/Common/HTTPMessage.cpp
@@ -133,7 +133,8 @@ HTTPMessage::HTTPMessage(
queueId(queueId_),
authInfo(0),
acceptLanguagesDecoded(false),
- contentLanguagesDecoded(false)
+ contentLanguagesDecoded(false),
+ fromRemoteHost(true)
{
if (cimException_)
cimException = *cimException_;
Index: src/Pegasus/Common/HTTPMessage.h
===================================================================
--- src/Pegasus/Common/HTTPMessage.h.orig
+++ src/Pegasus/Common/HTTPMessage.h
@@ -73,6 +73,7 @@ public:
ContentLanguageList contentLanguages;
Boolean acceptLanguagesDecoded;
Boolean contentLanguagesDecoded;
+ Boolean fromRemoteHost;
CIMException cimException;
void parse(
Index: src/Pegasus/Common/tests/Executor/TestExecutor.cpp
===================================================================
--- src/Pegasus/Common/tests/Executor/TestExecutor.cpp.orig
+++ src/Pegasus/Common/tests/Executor/TestExecutor.cpp
@@ -76,7 +76,7 @@ void testExecutorLoopbackImpl()
#endif
PEGASUS_TEST_ASSERT(Executor::authenticatePassword(
- "xnonexistentuserx", "wrongpassword") == -1);
+ "xnonexistentuserx", "wrongpassword", 0) == -1);
PEGASUS_TEST_ASSERT(Executor::validateUser("xnonexistentuserx") == -1);
char challengeFilePath[EXECUTOR_BUFFER_SIZE];
@@ -115,7 +115,7 @@ void testExecutorSocketImpl()
PEGASUS_TEST_ASSERT(Executor::reapProviderAgent(123) == 0);
PEGASUS_TEST_ASSERT(Executor::authenticatePassword(
- "xnonexistentuserx", "wrongpassword") == -1);
+ "xnonexistentuserx", "wrongpassword", 0) == -1);
PEGASUS_TEST_ASSERT(Executor::validateUser("xnonexistentuserx") == -1);
char challengeFilePath[EXECUTOR_BUFFER_SIZE];
Index: src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp
===================================================================
--- src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp.orig
+++ src/Pegasus/Security/Authentication/BasicAuthenticationHandler.cpp
@@ -152,7 +152,8 @@ Boolean BasicAuthenticationHandler::auth
}
authInfo->setRemotePrivilegedUserAccessChecked();
- authenticated = _basicAuthenticator->authenticate(userName, password);
+ authenticated = _basicAuthenticator->authenticate(userName, password,
+ authInfo->isRemoteUser());
// Log audit message.
PEG_AUDIT_LOG(logBasicAuthentication(
Index: src/Pegasus/Security/Authentication/BasicAuthenticator.h
===================================================================
--- src/Pegasus/Security/Authentication/BasicAuthenticator.h.orig
+++ src/Pegasus/Security/Authentication/BasicAuthenticator.h
@@ -65,7 +65,8 @@ public:
*/
virtual Boolean authenticate(
const String& userName,
- const String& password) = 0;
+ const String& password,
+ Boolean isRemoteUser) = 0;
/** Construct and return the HTTP Basic authentication challenge header
@return A string containing the authentication challenge header.
Index: src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h
===================================================================
--- src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h.orig
+++ src/Pegasus/Security/Authentication/PAMBasicAuthenticator.h
@@ -53,7 +53,8 @@ public:
Boolean authenticate(
const String& userName,
- const String& password);
+ const String& password,
+ Boolean isRemoteUser);
Boolean validateUser(const String& userName);
Index: src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp
===================================================================
--- src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp.orig
+++ src/Pegasus/Security/Authentication/PAMBasicAuthenticatorStub.cpp
@@ -73,7 +73,8 @@ PAMBasicAuthenticator::~PAMBasicAuthenti
Boolean PAMBasicAuthenticator::authenticate(
const String& userName,
- const String& password)
+ const String& password,
+ Boolean isRemoteUser)
{
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
"PAMBasicAuthenticator::authenticate()");
Index: src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp
===================================================================
--- src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp.orig
+++ src/Pegasus/Security/Authentication/PAMBasicAuthenticatorUnix.cpp
@@ -64,13 +64,14 @@ PAMBasicAuthenticator::~PAMBasicAuthenti
Boolean PAMBasicAuthenticator::authenticate(
const String& userName,
- const String& password)
+ const String& password,
+ Boolean isRemoteUser)
{
PEG_METHOD_ENTER(TRC_AUTHENTICATION,
"PAMBasicAuthenticator::authenticate()");
if (Executor::authenticatePassword(
- userName.getCString(), password.getCString()) != 0)
+ userName.getCString(), password.getCString(), isRemoteUser) != 0)
{
return false;
}
Index: src/Pegasus/Security/Authentication/SecureBasicAuthenticator.cpp
===================================================================
--- src/Pegasus/Security/Authentication/SecureBasicAuthenticator.cpp.orig
+++ src/Pegasus/Security/Authentication/SecureBasicAuthenticator.cpp
@@ -236,7 +236,7 @@ Boolean SecureBasicAuthenticator::authen
if (Executor::detectExecutor() == 0)
{
if (Executor::authenticatePassword(
- userName.getCString(), password.getCString()) == 0)
+ userName.getCString(), password.getCString(), 0) == 0)
{
authenticated = true;
}
Index: src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp
===================================================================
--- src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp.orig
+++ src/Pegasus/Server/HTTPAuthenticatorDelegator.cpp
@@ -421,6 +421,9 @@ void HTTPAuthenticatorDelegator::handleH
Tracer::LEVEL3,
"HTTPAuthenticatorDelegator - Authentication processing start");
+ // Let Authenticators know whether this user is Local or Remote:
+ httpMessage->authInfo->setRemoteUser( httpMessage->fromRemoteHost );
+
//
// Handle authentication:
//
++++++ pegasus-2.8.0.tar.bz2 -> pegasus-2.9.0.tar.bz2 ++++++
++++ 447870 lines of diff (skipped)
++++++ pegasus.init ++++++
--- /var/tmp/diff_new_pack.w27124/_old 2009-05-29 12:18:21.000000000 +0200
+++ /var/tmp/diff_new_pack.w27124/_new 2009-05-29 12:18:21.000000000 +0200
@@ -50,7 +50,7 @@
rc_status -v
fi;
fi;
- /usr/sbin/cimserver > /dev/null 2>&1
+ checkproc /usr/sbin/cimserver || /usr/sbin/cimserver > /dev/null 2>&1
rc_status -v
;;
stop)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package amarok for openSUSE:Factory
checked in at Fri May 29 01:46:42 CEST 2009.
--------
--- KDE/amarok/amarok.changes 2009-04-21 10:17:23.000000000 +0200
+++ amarok/amarok.changes 2009-05-20 12:58:21.000000000 +0200
@@ -2 +2 @@
-Tue Apr 21 10:16:22 CEST 2009 - dmueller(a)suse.de
+Wed May 20 12:12:22 CEST 2009 - beineri(a)opensuse.org
@@ -4 +4,126 @@
-- rename kde4-amarok -> amarok
+- require amarok-lang
+
+-------------------------------------------------------------------
+Mon May 18 19:33:57 CEST 2009 - cmorve69(a)yahoo.es
+
+- make mp4 support a build option
+
+----------------------------------------------------------------------------------
+Mon May 11 11:25:01 CEST 2009 - beineri(a)opensuse.org
+
+- update to 2.1 Beta 2: several bugfixes and
+ * New Script method to get current track time in milliseconds.
+ * Pressing the return key in the playlist search activates the
+ selected result.
+ * Pressing escape key in playlist search clears its contents.
+ * Optimizations to the insertion and removal of large numbers
+ of tracks from the playlist. Especially clearing a large
+ playlist is now about 300 times faster.
+ * Always scroll to newly inserted tracks in the Playlist.
+ * When removing upcoming tracks from an active dynamic playlist,
+ add a simmilar number of new ones to keep if from "drying up".
+ * Some action cleanup in the playlist context menu.
+ * When clearing the playlist, also reset the search/filter text.
+ * Podcast titles are stripped of unnecessary whitespace.
+
+-------------------------------------------------------------------
+Tue Apr 21 10:18:16 CEST 2009 - dmueller(a)suse.de
+
+- kde4-amarok -> amarok
+
+-------------------------------------------------------------------
+Thu Apr 16 13:21:52 CEST 2009 - shrikantkhare(a)gmail.com
+
+- update to version 2.0.90.svn954151.20090415
+
+- FEATURES:
+ * New Script method to get current track time in milliseconds. (BR 177073)
+
+- BUGFIXES:
+ * Don't fetch all coverless albums automatically when opening the Cover
+ Manager. (BR 176170)
+ * Podcast episodes are loaded correctly when restoring a playlist on
+ startup. This means the local file will be played if downloaded.
+ (BR 189328)
+ * Next button in the main toolbar no longer has a clipped shadow.
+ (BR 176031)
+ * Fixed slider mouse events in RTL layouts. (BR 185465)
+ * Detect iPhones as iPods. (BR 184744)
+ * Clicking on "Stop after current track" disables the flag if it is
+ already enabled.
+ * Show a track marker when the "stop after current track" flag is set.
+ (BR 185888)
+ * Don't flash the OSD when opening the settings dialog. Patch thanks
+ to Andreas Heider <andreas(a)meetr.de>.
+ * Podcast file formats are correctly displayed.
+ * Don't crash when pressing Delete on empty playlist. (BR 189021)
+
+- VERSION 2.1beta1
+ * The collection scanner is now able to be run in batch mode, allowing for
+ automated scans of both full and incremental types. In addition, all
+ graphical dependencies have been removed, allowing for headless, remote
+ runs of collection scans. A wiki page detailing how to do this will be
+ made available shortly.
+ * Covers are shown for iPod collections.
+ * Phonon multimedia system can be configured directly from Amarok.
+ * Cover art can now be disabled in the collection browser.
+ * Scrobble tracks from streams that have title and artist metadata
+ * Add support for showing a stream with multiple alternative servers as a
+ single item in the playlist and add GUI for manually selecting prefered
+ source.
+ * Ampache service: Add support for Ampache 3.5.x as well as 3.4.4.
+ * Auto timecoding (position bookmarking) now exists for tracks with length
+ greater than 10 minutes. (BR 148740)
+ * Add a animated "loading..." screen when dynamically fetching info about
+ an item to show in the service info applet.
+ * Deleting tracks from the local collection is now possible. (BR 170999)
+ * Add a filter-by-date-added to the collection browser. Use added:"today"
+ or added:<2m2d
+ * Add a tab bar in the current track applet for showing also the favorite
+ tracks in the collection.
+ * Add an advanced but user friendly playlist layout editor allowing users
+ to modify and create their own playlist layouts.
+ * The Playlist can now render itself using layouts defined in XML. A
+ number of default layouts are included and can be switched between.
+ * Option to automatically scroll the playlist to the active item on track
+ change.
+ * New QtScript methods for accessing the playlist:
+ Amarok.Playlist.selectedFilenames() & Amarok.Playlist.selectedIndizes().
+ Patch by Mathias Panzenböck <grosser.meister.morti(a)gmx.net>.
+ * New QtScript method for the Track prototype: imagePixmap( size ). Returns
+ a QPixmap of the given size, or the default if the size argument isn't
+ supplied.
+ * New QtScript class 'DataDownloader' that returns results as a QByteArray
+ instead of a string. Needed for image downloads.
+ * Cue Sheets are now supported as in Amarok 1.4, plus each cue entry
+ (usually a track) will be displayed as a timecode on the Progress Bar
+ with a nice onMouseOver popup.
+ * Ipod support now uses/depends on libgpod 0.7.0
+ * Bookmarking specific positions within local tracks and downloaded local
+ podcast episodes, with a nice visual indicator on the progress bar.
+ * When the last.fm service is active, any track, from any collection or
+ service, can be loved from the browser , and there will always be a love
+ button for the currently playing track, no matter the source.
+ * Dbus methods added: VolumeUp, VolumeDown and Mute. (BR 181130)
+ * The feed url is displayed in the config dialog of a podcast channel.
+ By left clicking in the url it's copied to the clipboard. (BR 180853)
+ * The Playlist Browser can now show playlists from multiple sources,
+ including media devices.
+ * The last.fm service now allows for the playing of all types of user
+ stations (personal, loved tracks, recommendations, and neighborhood).
+ * Arbitrary Tags can now be played in the last.fm service. (BR 139802)
+ * Replay Gain support for most file formats that Amarok can read tags from.
+ Reading Replay Gain tags from MP4 files requires libMP4v2. Musepack
+ (MPC) files are unsupported due to a limitation of TagLib.
+ * Amarok urls. Amarok can now load and generate "amarok urls" that allows
+ any "view" to be bookmarked and later retrieved. A protocol handler is
+ also installed that will launch amarok into the correct state, or make
+ amarok show the correct view if already running if such a url is
+ activated system wide.
+ * Customizable playlist layouts. The playlist is now rendered according to
+ an xml layout, allowing the playlist to assume a variety of different
+ looks and supply customizable information.
+ * Album cover art can be accessed via the scripting API. Patch thanks to
+ Simon Esneault <simon.esneault(a)gmail.com>. (BR 179732)
+ * New vertical Context View layout.
+ * New applet toolbar in the Context View to arrange, select, and add applets.
calling whatdependson for head-i586
Old:
----
amarok-2.0.2.tar.bz2
amarok-gcc44.patch
errmsg-mysql-embedded.diff
errmsg.sys
fix-lastfm-authentication.diff
link-mysql-embedded.diff
New:
----
amarok-2.0.96.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ amarok.spec ++++++
--- /var/tmp/diff_new_pack.Fu6326/_old 2009-05-29 01:45:53.000000000 +0200
+++ /var/tmp/diff_new_pack.Fu6326/_new 2009-05-29 01:45:53.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package amarok (Version 2.0.2)
+# spec file for package amarok (Version 2.0.96)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -17,38 +17,35 @@
# norootforbuild
+%bcond_with mp4
Name: amarok
BuildRequires: cups-devel libkcddb4-devel ruby-devel sqlite-devel taglib-devel
BuildRequires: kdebase4-workspace-devel libkcompactdisc4-devel tse3-devel update-desktop-files
BuildRequires: gstreamer010-devel libmtp-devel libnjb-devel libvisual-devel xine-devel
-BuildRequires: flac-devel gtk2-devel libQtWebKit-devel libdvdread-devel libgpod-devel
+BuildRequires: flac-devel gtk2-devel libQtWebKit-devel libdvdread-devel libkde4-devel
BuildRequires: dbus-1-glib-devel libogg-devel libsamplerate-devel libsndfile-devel
-BuildRequires: gdk-pixbuf-devel libcurl-devel libsoprano-devel loudmouth-devel mysql-devel
-%if %suse_version > 1030
-BuildRequires: libmusicbrainz3-devel
+BuildRequires: gdk-pixbuf-devel libcurl-devel libsoprano-devel loudmouth-devel
+BuildRequires: libmysqlclient-devel libqca2-devel
+BuildRequires: qt4-qtscript taglib-extras-devel
+BuildRequires: libgpod-devel >= 0.7.0
+%if %{with mp4}
+BuildRequires: libmp4v2-devel
%endif
-#%if %suse_version > 1020
-#BuildRequires: poppler-qt4
-#%endif
+# Required for the fdupes macro
+BuildRequires: fdupes
Url: http://amarok.kde.org
License: GPL v2 or later
Group: Productivity/Multimedia/Sound/Players
Summary: Media Player for KDE
-Version: 2.0.2
-Release: 2
+Version: 2.0.96
+Release: 3
Source0: %name-%version.tar.bz2
-Source1: errmsg.sys
-Patch3: link-mysql-embedded.diff
-Patch4: errmsg-mysql-embedded.diff
-Patch5: amarok-gcc44.patch
-Patch6: fix-lastfm-authentication.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%kde4_runtime_requires
-Requires: %name-lang = %{version}
-Requires: libqt4-sql-sqlite
-Provides: kde4-amarok = 2.0.2
-Obsoletes: kde4-amarok <= 2.0.2
+Provides: kde4-amarok = 2.0.90
+Obsoletes: kde4-amarok <= 2.0.90
+Requires: qt4-qtscript
+Requires: %{name}-lang = %{version}
%description
Amarok is a media player for all kinds of media. This includes MP3, Ogg
@@ -66,11 +63,7 @@
%lang_package
%prep
-%setup -q
-%patch3
-%patch4
-%patch5
-%patch6
+%setup -q -n %name-%version
%build
%ifarch ppc ppc64
@@ -83,63 +76,172 @@
cd build
%makeinstall
cd ..
- install -m 0644 %SOURCE1 $RPM_BUILD_ROOT/usr/share/kde4/apps/amarok/errmsg.sys
%suse_update_desktop_file -r amarok AudioVideo Player
%find_lang amarok
+ %find_lang amarokcollectionscanner_qt amarok.lang
%kde_post_install
+ # create hardlinks for duplicate file using fdupes macro
+ %fdupes %{buildroot}
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%clean
-rm -rf $RPM_BUILD_ROOT
-rm -rf filelists
+%{__rm} -rf %{buildroot}
%files lang -f amarok.lang
%files
%defattr(-,root,root)
-/usr/bin/amarok
-/usr/bin/amarokcollectionscanner
-/usr/bin/amarok_afttagger
-/usr/bin/amarokmp3tunesharmonydaemon
-%dir /usr/%_lib/kde4/plugins/script
-%_kde4_modules/plugins/script/*
+%_bindir/amarok
+%_bindir/amarokcollectionscanner
+%_bindir/amarok_afttagger
+%_bindir/amarokmp3tunesharmonydaemon
%_kde4_modules/amarok_*
%_kde4_modules/kcm_amarok_service_*
%_kde4_modules/libamarok_*
-%_libdir/libamarok_taglib.so
-%_libdir/libamarok_taglib.so.*
+%_libdir/libamarok_service_liblastfm.so
%_libdir/libamaroklib.so
%_libdir/libamaroklib.so.*
-%_libdir/libamarokplasma.so
-%_libdir/libamarokplasma.so.*
%_libdir/libamarokpud.so
%_libdir/libamarokpud.so.*
-/usr/%_lib/libamarok_service_liblastfm.so
+%_libdir/libmediadevicelib.so
+%_libdir/libmediadevicelib.so.*
%_libdir/strigi/strigita_audible.so
%_libdir/strigi/strigita_mp4.so
-/usr/share/applications/kde4/amarok.desktop
-/usr/share/dbus-1/interfaces/org.freedesktop.MediaPlayer.player.xml
-/usr/share/dbus-1/interfaces/org.freedesktop.MediaPlayer.root.xml
-/usr/share/dbus-1/interfaces/org.freedesktop.MediaPlayer.tracklist.xml
-/usr/share/icons/hicolor/*/apps/amarok.*
+%{_datadir}/applications/kde4/amarok.desktop
+%{_datadir}/dbus-1/interfaces/org.freedesktop.MediaPlayer.player.xml
+%{_datadir}/dbus-1/interfaces/org.freedesktop.MediaPlayer.root.xml
+%{_datadir}/dbus-1/interfaces/org.freedesktop.MediaPlayer.tracklist.xml
+%{_datadir}/icons/hicolor/*/apps/amarok.*
%_kde_share_dir/apps/amarok
%_kde_share_dir/apps/desktoptheme/Amarok-Mockup
%_kde_share_dir/apps/desktoptheme/amarok-default.desktop
%_kde_share_dir/apps/desktoptheme/default/widgets/amarok-*
-%_kde_share_dir/config.kcfg/amarok.kcfg
+%_kde_share_dir/config.kcfg/amarokconfig.kcfg
%_kde_config_dir/amarok.knsrc
-%_kde_share_dir/services/ServiceMenus/amarok_append.desktop
+%_kde_share_dir/servicetypes/amarok_*
%_kde_share_dir/services/amarok-*
%_kde_share_dir/services/amarok_*
-%_kde_share_dir/servicetypes/amarok_*
%_kde_share_dir/services/amaroklastfm.protocol
+%_kde_share_dir/services/amarok.protocol
+%_kde_share_dir/services/ServiceMenus/amarok_append.desktop
+%_kde_config_dir/amarok_homerc
%changelog
+* Wed May 20 2009 beineri(a)opensuse.org
+- require amarok-lang
+* Mon May 18 2009 cmorve69(a)yahoo.es
+- make mp4 support a build option
+* Mon May 11 2009 beineri(a)opensuse.org
+- update to 2.1 Beta 2: several bugfixes and
+ * New Script method to get current track time in milliseconds.
+ * Pressing the return key in the playlist search activates the
+ selected result.
+ * Pressing escape key in playlist search clears its contents.
+ * Optimizations to the insertion and removal of large numbers
+ of tracks from the playlist. Especially clearing a large
+ playlist is now about 300 times faster.
+ * Always scroll to newly inserted tracks in the Playlist.
+ * When removing upcoming tracks from an active dynamic playlist,
+ add a simmilar number of new ones to keep if from "drying up".
+ * Some action cleanup in the playlist context menu.
+ * When clearing the playlist, also reset the search/filter text.
+ * Podcast titles are stripped of unnecessary whitespace.
* Tue Apr 21 2009 dmueller(a)suse.de
-- rename kde4-amarok -> amarok
+- kde4-amarok -> amarok
+* Thu Apr 16 2009 shrikantkhare(a)gmail.com
+- update to version 2.0.90.svn954151.20090415
+- FEATURES:
+ * New Script method to get current track time in milliseconds. (BR 177073)
+- BUGFIXES:
+ * Don't fetch all coverless albums automatically when opening the Cover
+ Manager. (BR 176170)
+ * Podcast episodes are loaded correctly when restoring a playlist on
+ startup. This means the local file will be played if downloaded.
+ (BR 189328)
+ * Next button in the main toolbar no longer has a clipped shadow.
+ (BR 176031)
+ * Fixed slider mouse events in RTL layouts. (BR 185465)
+ * Detect iPhones as iPods. (BR 184744)
+ * Clicking on "Stop after current track" disables the flag if it is
+ already enabled.
+ * Show a track marker when the "stop after current track" flag is set.
+ (BR 185888)
+ * Don't flash the OSD when opening the settings dialog. Patch thanks
+ to Andreas Heider <andreas(a)meetr.de>.
+ * Podcast file formats are correctly displayed.
+ * Don't crash when pressing Delete on empty playlist. (BR 189021)
+- VERSION 2.1beta1
+ * The collection scanner is now able to be run in batch mode, allowing for
+ automated scans of both full and incremental types. In addition, all
+ graphical dependencies have been removed, allowing for headless, remote
+ runs of collection scans. A wiki page detailing how to do this will be
+ made available shortly.
+ * Covers are shown for iPod collections.
+ * Phonon multimedia system can be configured directly from Amarok.
+ * Cover art can now be disabled in the collection browser.
+ * Scrobble tracks from streams that have title and artist metadata
+ * Add support for showing a stream with multiple alternative servers as a
+ single item in the playlist and add GUI for manually selecting prefered
+ source.
+ * Ampache service: Add support for Ampache 3.5.x as well as 3.4.4.
+ * Auto timecoding (position bookmarking) now exists for tracks with length
+ greater than 10 minutes. (BR 148740)
+ * Add a animated "loading..." screen when dynamically fetching info about
+ an item to show in the service info applet.
+ * Deleting tracks from the local collection is now possible. (BR 170999)
+ * Add a filter-by-date-added to the collection browser. Use added:"today"
+ or added:<2m2d
+ * Add a tab bar in the current track applet for showing also the favorite
+ tracks in the collection.
+ * Add an advanced but user friendly playlist layout editor allowing users
+ to modify and create their own playlist layouts.
+ * The Playlist can now render itself using layouts defined in XML. A
+ number of default layouts are included and can be switched between.
+ * Option to automatically scroll the playlist to the active item on track
+ change.
+ * New QtScript methods for accessing the playlist:
+ Amarok.Playlist.selectedFilenames() & Amarok.Playlist.selectedIndizes().
+ Patch by Mathias Panzenböck <grosser.meister.morti(a)gmx.net>.
+ * New QtScript method for the Track prototype: imagePixmap( size ). Returns
+ a QPixmap of the given size, or the default if the size argument isn't
+ supplied.
+ * New QtScript class 'DataDownloader' that returns results as a QByteArray
+ instead of a string. Needed for image downloads.
+ * Cue Sheets are now supported as in Amarok 1.4, plus each cue entry
+ (usually a track) will be displayed as a timecode on the Progress Bar
+ with a nice onMouseOver popup.
+ * Ipod support now uses/depends on libgpod 0.7.0
+ * Bookmarking specific positions within local tracks and downloaded local
+ podcast episodes, with a nice visual indicator on the progress bar.
+ * When the last.fm service is active, any track, from any collection or
+ service, can be loved from the browser , and there will always be a love
+ button for the currently playing track, no matter the source.
+ * Dbus methods added: VolumeUp, VolumeDown and Mute. (BR 181130)
+ * The feed url is displayed in the config dialog of a podcast channel.
+ By left clicking in the url it's copied to the clipboard. (BR 180853)
+ * The Playlist Browser can now show playlists from multiple sources,
+ including media devices.
+ * The last.fm service now allows for the playing of all types of user
+ stations (personal, loved tracks, recommendations, and neighborhood).
+ * Arbitrary Tags can now be played in the last.fm service. (BR 139802)
+ * Replay Gain support for most file formats that Amarok can read tags from.
+ Reading Replay Gain tags from MP4 files requires libMP4v2. Musepack
+ (MPC) files are unsupported due to a limitation of TagLib.
+ * Amarok urls. Amarok can now load and generate "amarok urls" that allows
+ any "view" to be bookmarked and later retrieved. A protocol handler is
+ also installed that will launch amarok into the correct state, or make
+ amarok show the correct view if already running if such a url is
+ activated system wide.
+ * Customizable playlist layouts. The playlist is now rendered according to
+ an xml layout, allowing the playlist to assume a variety of different
+ looks and supply customizable information.
+ * Album cover art can be accessed via the scripting API. Patch thanks to
+ Simon Esneault <simon.esneault(a)gmail.com>. (BR 179732)
+ * New vertical Context View layout.
+ * New applet toolbar in the Context View to arrange, select, and add applets.
* Thu Apr 09 2009 rhafer(a)suse.de
- included upstream fix for broken last.fm authentication (kde#188678)
* Fri Mar 06 2009 wstephenson(a)suse.de
++++++ amarok-2.0.2.tar.bz2 -> amarok-2.0.96.tar.bz2 ++++++
++++ 756932 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package audacity for openSUSE:Factory
checked in at Fri May 29 01:45:39 CEST 2009.
--------
--- audacity/audacity.changes 2009-05-19 18:30:02.000000000 +0200
+++ audacity/audacity.changes 2009-05-28 14:28:54.000000000 +0200
@@ -1,0 +2,6 @@
+Thu May 21 23:00:52 CEST 2009 - cmorve69(a)yahoo.es
+
+- Got portaudio-non-mmap-alsa.patch and audiodevdefaults.patch from
+ Fedora to allow it to work with PulseAudio
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
audacity-1.3.7-audiodevdefaults.patch
audacity-1.3.7-portaudio-non-mmap-alsa.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ audacity.spec ++++++
--- /var/tmp/diff_new_pack.jx1724/_old 2009-05-29 01:44:47.000000000 +0200
+++ /var/tmp/diff_new_pack.jx1724/_new 2009-05-29 01:44:47.000000000 +0200
@@ -38,7 +38,7 @@
%endif
Summary: A Free, Cross-Platform Digital Audio Editor
Version: 1.3.7
-Release: 4
+Release: 5
License: GPL v2 or later
Group: Productivity/Multimedia/Sound/Editors and Convertors
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -55,6 +55,8 @@
Patch8: %{name}-%{version}-wxGTK_with_stl.patch
Patch9: %{name}-%{version}-modal-help-dialog.patch
Patch10: %{name}-%{version}-desktop_file.patch
+Patch11: %{name}-%{version}-portaudio-non-mmap-alsa.patch
+Patch12: %{name}-%{version}-audiodevdefaults.patch
%description
Audacity is a program that manipulates digital audio wave forms. In
@@ -91,6 +93,8 @@
%patch8
%patch9
%patch10
+%patch11 -p1
+%patch12 -p1
%build
%{?suse_update_config:%{suse_update_config -f . lib-src/*/.}}
@@ -143,6 +147,9 @@
%{_datadir}/mime/packages/audacity.xml
%changelog
+* Thu May 21 2009 cmorve69(a)yahoo.es
+- Got portaudio-non-mmap-alsa.patch and audiodevdefaults.patch from
+ Fedora to allow it to work with PulseAudio
* Tue May 19 2009 cmorve69(a)yahoo.es
- Add alsa-devel BR to allow ALSA output
* Mon May 11 2009 cmorve69(a)yahoo.es
++++++ audacity-1.3.7-audiodevdefaults.patch ++++++
diff -Nur audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.cpp audacity-src-1.3.7/src/prefs/AudioIOPrefs.cpp
--- audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.cpp 2009-01-27 21:50:58.000000000 +0100
+++ audacity-src-1.3.7/src/prefs/AudioIOPrefs.cpp 2009-03-02 17:25:17.000000000 +0100
@@ -71,6 +71,25 @@
wxString Name;
wxString Label;
+ mDefaultPlayDeviceName = gPrefs->Read(wxT("/AudioIO/PlaybackDevice"), wxT(""));
+ int playDeviceNum = -1; // use device name from gPrefs
+ if ( mDefaultPlayDeviceName == wxT("") ) {
+#if USE_PORTAUDIO_V19
+ playDeviceNum = Pa_GetDefaultOutputDevice();
+#else
+ playDeviceNum = Pa_GetDefaultOutputDeviceID();
+#endif
+ }
+ mDefaultRecDeviceName = gPrefs->Read(wxT("/AudioIO/RecordingDevice"), wxT(""));
+ int recDeviceNum = -1; // use device name from gPrefs
+ if ( mDefaultRecDeviceName == wxT("") ) {
+#if USE_PORTAUDIO_V19
+ recDeviceNum = Pa_GetDefaultInputDevice();
+#else
+ recDeviceNum = Pa_GetDefaultInputDeviceID();
+#endif
+ }
+
#if USE_PORTAUDIO_V19
int nDevices = Pa_GetDeviceCount();
#else
@@ -85,10 +104,16 @@
if (info->maxOutputChannels > 0) {
mmPlayNames.Add( Name );
mmPlayLabels.Add( Label );
+ if ( playDeviceNum == j ) {
+ mDefaultPlayDeviceName = Name;
+ }
}
if (info->maxInputChannels > 0) {
mmRecordNames.Add( Name );
mmRecordLabels.Add( Label );
+ if ( recDeviceNum == j ) {
+ mDefaultRecDeviceName = Name;
+ }
// if (info->maxInputChannels > numChannels)
// numChannels = info->maxInputChannels;
}
@@ -121,7 +146,7 @@
S.StartMultiColumn(2, wxEXPAND);
S.SetStretchyCol(1);
mPlay = S.TieChoice( _("Device") + wxString(wxT(":")), wxT("PlaybackDevice"),
- wxT(""), mmPlayNames, mmPlayLabels );
+ mDefaultPlayDeviceName, mmPlayNames, mmPlayLabels );
S.AddPrompt( _("Using:") );
wxString ver = _("Portaudio v");
@@ -139,7 +164,7 @@
S.StartMultiColumn(2, wxEXPAND);
S.SetStretchyCol(1);
mRec = S.TieChoice( _("Device") + wxString(wxT(":")), wxT("RecordingDevice"),
- wxT(""), mmRecordNames, mmRecordLabels );
+ mDefaultRecDeviceName, mmRecordNames, mmRecordLabels );
S.TieChoice( _("Channels") + wxString(wxT(":")), wxT("RecordChannels"),
2, mmChannelNames, mmChannelLabels );
S.EndMultiColumn();
diff -Nur audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.h audacity-src-1.3.7/src/prefs/AudioIOPrefs.h
--- audacity-src-1.3.7-orig/src/prefs/AudioIOPrefs.h 2009-01-27 21:50:58.000000000 +0100
+++ audacity-src-1.3.7/src/prefs/AudioIOPrefs.h 2009-03-02 17:25:16.000000000 +0100
@@ -48,6 +48,9 @@
wxChoice *mPlay;
wxChoice *mRec;
+
+ wxString mDefaultPlayDeviceName;
+ wxString mDefaultRecDeviceName;
};
#endif
++++++ audacity-1.3.7-portaudio-non-mmap-alsa.patch ++++++
diff -Nur audacity-src-1.3.7-orig/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c audacity-src-1.3.7/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c
--- audacity-src-1.3.7-orig/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c 2009-01-27 21:51:40.000000000 +0100
+++ audacity-src-1.3.7/lib-src/portaudio-v19/src/hostapi/alsa/pa_linux_alsa.c 2009-02-02 19:08:22.000000000 +0100
@@ -6,6 +6,7 @@
*
* Copyright (c) 2002 Joshua Haberman <joshua(a)haberman.com>
* Copyright (c) 2005-2007 Arve Knudsen <aknuds-1(a)broadpark.no>
+ * Copyright (c) 2008 Kevin Kofler <kevin.kofler(a)chello.at>
*
* Based on the Open Source API proposed by Ross Bencina
* Copyright (c) 1999-2002 Ross Bencina, Phil Burk
@@ -118,6 +119,8 @@
unsigned long framesPerBuffer;
int numUserChannels, numHostChannels;
int userInterleaved, hostInterleaved;
+ int canMmap;
+ void *nonMmapBuffer;
PaDeviceIndex device; /* Keep the device index */
snd_pcm_t *pcm;
@@ -321,7 +324,7 @@
* and a suitable result returned. The device is closed before returning.
*/
static PaError GropeDevice( snd_pcm_t* pcm, int isPlug, StreamDirection mode, int openBlocking,
- PaAlsaDeviceInfo* devInfo, int* canMmap )
+ PaAlsaDeviceInfo* devInfo )
{
PaError result = paNoError;
snd_pcm_hw_params_t *hwParams;
@@ -354,9 +357,6 @@
snd_pcm_hw_params_alloca( &hwParams );
snd_pcm_hw_params_any( pcm, hwParams );
- *canMmap = snd_pcm_hw_params_test_access( pcm, hwParams, SND_PCM_ACCESS_MMAP_INTERLEAVED ) >= 0 ||
- snd_pcm_hw_params_test_access( pcm, hwParams, SND_PCM_ACCESS_MMAP_NONINTERLEAVED ) >= 0;
-
if( defaultSr >= 0 )
{
/* Could be that the device opened in one mode supports samplerates that the other mode wont have,
@@ -566,7 +566,6 @@
PaError result = 0;
PaDeviceInfo *baseDeviceInfo = &devInfo->baseDeviceInfo;
snd_pcm_t *pcm;
- int canMmap = -1;
PaUtilHostApiRepresentation *baseApi = &alsaApi->baseHostApiRep;
/* Zero fields */
@@ -580,8 +579,7 @@
OpenPcm( &pcm, deviceName->alsaName, SND_PCM_STREAM_CAPTURE, blocking, 0 )
>= 0 )
{
- if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_In, blocking, devInfo,
- &canMmap ) != paNoError )
+ if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_In, blocking, devInfo ) != paNoError )
{
/* Error */
PA_DEBUG(("%s: Failed groping %s for capture\n", __FUNCTION__, deviceName->alsaName));
@@ -594,8 +592,7 @@
OpenPcm( &pcm, deviceName->alsaName, SND_PCM_STREAM_PLAYBACK, blocking, 0 )
>= 0 )
{
- if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_Out, blocking, devInfo,
- &canMmap ) != paNoError )
+ if( GropeDevice( pcm, deviceName->isPlug, StreamDirection_Out, blocking, devInfo ) != paNoError )
{
/* Error */
PA_DEBUG(("%s: Failed groping %s for playback\n", __FUNCTION__, deviceName->alsaName));
@@ -603,12 +600,6 @@
}
}
- if( 0 == canMmap )
- {
- PA_DEBUG(("%s: Device %s doesn't support mmap\n", __FUNCTION__, deviceName->alsaName));
- goto end;
- }
-
baseDeviceInfo->structVersion = 2;
baseDeviceInfo->hostApi = alsaApi->hostApiIndex;
baseDeviceInfo->name = deviceName->name;
@@ -1197,6 +1188,8 @@
self->hostInterleaved = self->userInterleaved = !(userSampleFormat & paNonInterleaved);
self->numUserChannels = params->channelCount;
self->streamDir = streamDir;
+ self->canMmap = 0;
+ self->nonMmapBuffer = NULL;
if( !callbackMode && !self->userInterleaved )
{
@@ -1239,6 +1232,7 @@
PaError result = paNoError;
snd_pcm_access_t accessMode, alternateAccessMode;
+ snd_pcm_access_t rwAccessMode, alternateRwAccessMode;
int dir = 0;
snd_pcm_t *pcm = self->pcm;
double sr = *sampleRate;
@@ -1258,32 +1252,40 @@
if( self->userInterleaved )
{
accessMode = SND_PCM_ACCESS_MMAP_INTERLEAVED;
+ rwAccessMode = SND_PCM_ACCESS_RW_INTERLEAVED;
alternateAccessMode = SND_PCM_ACCESS_MMAP_NONINTERLEAVED;
+ alternateRwAccessMode = SND_PCM_ACCESS_RW_NONINTERLEAVED;
}
else
{
accessMode = SND_PCM_ACCESS_MMAP_NONINTERLEAVED;
+ rwAccessMode = SND_PCM_ACCESS_RW_NONINTERLEAVED;
alternateAccessMode = SND_PCM_ACCESS_MMAP_INTERLEAVED;
+ alternateRwAccessMode = SND_PCM_ACCESS_RW_INTERLEAVED;
}
/* If requested access mode fails, try alternate mode */
+ self->canMmap = 1;
if( snd_pcm_hw_params_set_access( pcm, hwParams, accessMode ) < 0 )
{
- int err = 0;
- if( (err = snd_pcm_hw_params_set_access( pcm, hwParams, alternateAccessMode )) < 0)
+ if( snd_pcm_hw_params_set_access( pcm, hwParams, rwAccessMode ) >= 0 )
+ self->canMmap = 0;
+ else
{
- result = paUnanticipatedHostError;
- if( -EINVAL == err )
+ if( snd_pcm_hw_params_set_access( pcm, hwParams, alternateAccessMode ) < 0 )
{
- PaUtil_SetLastHostErrorInfo( paALSA, err, "PA ALSA requires that a device supports mmap access" );
- }
- else
- {
- PaUtil_SetLastHostErrorInfo( paALSA, err, snd_strerror( err ) );
+ int err = 0;
+ if( (err = snd_pcm_hw_params_set_access( pcm, hwParams, alternateRwAccessMode )) >= 0)
+ self->canMmap = 0;
+ else
+ {
+ result = paUnanticipatedHostError;
+ PaUtil_SetLastHostErrorInfo( paALSA, err, snd_strerror( err ) );
+ goto error;
+ }
}
- goto error;
+ /* Flip mode */
+ self->hostInterleaved = !self->userInterleaved;
}
- /* Flip mode */
- self->hostInterleaved = !self->userInterleaved;
}
ENSURE_( snd_pcm_hw_params_set_format( pcm, hwParams, self->nativeFormat ), paUnanticipatedHostError );
@@ -1361,7 +1363,7 @@
ENSURE_( snd_pcm_sw_params_set_avail_min( self->pcm, swParams, self->framesPerBuffer ), paUnanticipatedHostError );
ENSURE_( snd_pcm_sw_params_set_xfer_align( self->pcm, swParams, 1 ), paUnanticipatedHostError );
- ENSURE_( snd_pcm_sw_params_set_tstamp_mode( self->pcm, swParams, SND_PCM_TSTAMP_MMAP ), paUnanticipatedHostError );
+ ENSURE_( snd_pcm_sw_params_set_tstamp_mode( self->pcm, swParams, SND_PCM_TSTAMP_ENABLE ), paUnanticipatedHostError );
/* Set the parameters! */
ENSURE_( snd_pcm_sw_params( self->pcm, swParams ), paUnanticipatedHostError );
@@ -1589,6 +1591,10 @@
}
}
+ /* non-mmap mode needs a reasonably-sized buffer or it'll stutter */
+ if( !self->canMmap && framesPerHostBuffer < 2048 )
+ framesPerHostBuffer = 2048;
+
assert( framesPerHostBuffer > 0 );
{
snd_pcm_uframes_t min = 0, max = 0;
@@ -1831,12 +1837,13 @@
PA_UNLESS( framesPerHostBuffer != 0, paInternalError );
self->maxFramesPerHostBuffer = framesPerHostBuffer;
- if( !accurate )
+ if( !self->playback.canMmap || !accurate )
{
/* Don't know the exact size per host buffer */
*hostBufferSizeMode = paUtilBoundedHostBufferSize;
/* Raise upper bound */
- ++self->maxFramesPerHostBuffer;
+ if( !accurate )
+ ++self->maxFramesPerHostBuffer;
}
error:
@@ -2059,9 +2066,11 @@
{
/* Buffer isn't primed, so prepare and silence */
ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError );
- SilenceBuffer( stream );
+ if( stream->playback.canMmap )
+ SilenceBuffer( stream );
}
- ENSURE_( snd_pcm_start( stream->playback.pcm ), paUnanticipatedHostError );
+ if( stream->playback.canMmap )
+ ENSURE_( snd_pcm_start( stream->playback.pcm ), paUnanticipatedHostError );
}
else
ENSURE_( snd_pcm_prepare( stream->playback.pcm ), paUnanticipatedHostError );
@@ -2390,6 +2399,7 @@
snd_pcm_status_t *st;
PaTime now = PaUtil_GetTime();
snd_timestamp_t t;
+ int errplayback = 0, errcapture = 0;
snd_pcm_status_alloca( &st );
@@ -2400,6 +2410,7 @@
{
snd_pcm_status_get_trigger_tstamp( st, &t );
self->underrun = now * 1000 - ((PaTime) t.tv_sec * 1000 + (PaTime) t.tv_usec / 1000);
+ errplayback = snd_pcm_recover( self->playback.pcm, -EPIPE, 0 );
}
}
if( self->capture.pcm )
@@ -2409,10 +2420,12 @@
{
snd_pcm_status_get_trigger_tstamp( st, &t );
self->overrun = now * 1000 - ((PaTime) t.tv_sec * 1000 + (PaTime) t.tv_usec / 1000);
+ errcapture = snd_pcm_recover( self->capture.pcm, -EPIPE, 0 );
}
}
- PA_ENSURE( AlsaRestart( self ) );
+ if( errplayback || errcapture )
+ PA_ENSURE( AlsaRestart( self ) );
end:
return result;
@@ -2563,7 +2576,7 @@
static PaError PaAlsaStreamComponent_EndProcessing( PaAlsaStreamComponent *self, unsigned long numFrames, int *xrun )
{
PaError result = paNoError;
- int res;
+ int res = 0;
/* @concern FullDuplex It is possible that only one direction is marked ready after polling, and processed
* afterwards
@@ -2571,7 +2584,34 @@
if( !self->ready )
goto end;
- res = snd_pcm_mmap_commit( self->pcm, self->offset, numFrames );
+ if( !self->canMmap && StreamDirection_Out == self->streamDir )
+ {
+ /* Play sound */
+ if( self->hostInterleaved )
+ res = snd_pcm_writei( self->pcm, self->nonMmapBuffer, numFrames );
+ else
+ {
+ void *bufs[self->numHostChannels];
+ int bufsize = snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 );
+ unsigned char *buffer = self->nonMmapBuffer;
+ int i;
+ for( i = 0; i < self->numHostChannels; ++i )
+ {
+ bufs[i] = buffer;
+ buffer += bufsize;
+ }
+ res = snd_pcm_writen( self->pcm, bufs, numFrames );
+ }
+ }
+
+ if( self->canMmap )
+ res = snd_pcm_mmap_commit( self->pcm, self->offset, numFrames );
+ else
+ {
+ free( self->nonMmapBuffer );
+ self->nonMmapBuffer = NULL;
+ }
+
if( res == -EPIPE || res == -ESTRPIPE )
{
*xrun = 1;
@@ -2611,7 +2651,7 @@
if( self->hostInterleaved )
{
int swidth = snd_pcm_format_size( self->nativeFormat, 1 );
- unsigned char *buffer = ExtractAddress( self->channelAreas, self->offset );
+ unsigned char *buffer = self->canMmap ? ExtractAddress( self->channelAreas, self->offset ) : self->nonMmapBuffer;
/* Start after the last user channel */
p = buffer + self->numUserChannels * swidth;
@@ -2991,13 +3031,23 @@
goto end;
}
- ENSURE_( snd_pcm_mmap_begin( self->pcm, &areas, &self->offset, numFrames ), paUnanticipatedHostError );
+ if( self->canMmap )
+ {
+ ENSURE_( snd_pcm_mmap_begin( self->pcm, &areas, &self->offset, numFrames ), paUnanticipatedHostError );
+ /* @concern ChannelAdaption Buffer address is recorded so we can do some channel adaption later */
+ self->channelAreas = (snd_pcm_channel_area_t *)areas;
+ }
+ else
+ {
+ free( self->nonMmapBuffer );
+ self->nonMmapBuffer = calloc( self->numHostChannels, snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 ) );
+ }
if( self->hostInterleaved )
{
int swidth = snd_pcm_format_size( self->nativeFormat, 1 );
- p = buffer = ExtractAddress( areas, self->offset );
+ p = buffer = self->canMmap ? ExtractAddress( areas, self->offset ) : self->nonMmapBuffer;
for( i = 0; i < self->numUserChannels; ++i )
{
/* We're setting the channels up to userChannels, but the stride will be hostChannels samples */
@@ -3007,16 +3057,52 @@
}
else
{
- for( i = 0; i < self->numUserChannels; ++i )
+ if( self->canMmap )
+ for( i = 0; i < self->numUserChannels; ++i )
+ {
+ area = areas + i;
+ buffer = ExtractAddress( area, self->offset );
+ setChannel( bp, i, buffer, 1 );
+ }
+ else
{
- area = areas + i;
- buffer = ExtractAddress( area, self->offset );
- setChannel( bp, i, buffer, 1 );
+ int bufsize = snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 );
+ buffer = self->nonMmapBuffer;
+ for( i = 0; i < self->numUserChannels; ++i )
+ {
+ setChannel( bp, i, buffer, 1 );
+ buffer += bufsize;
+ }
}
}
- /* @concern ChannelAdaption Buffer address is recorded so we can do some channel adaption later */
- self->channelAreas = (snd_pcm_channel_area_t *)areas;
+ if( !self->canMmap && StreamDirection_In == self->streamDir )
+ {
+ /* Read sound */
+ int res;
+ if( self->hostInterleaved )
+ res = snd_pcm_readi( self->pcm, self->nonMmapBuffer, *numFrames );
+ else
+ {
+ void *bufs[self->numHostChannels];
+ int bufsize = snd_pcm_format_size( self->nativeFormat, self->framesPerBuffer + 1 );
+ unsigned char *buffer = self->nonMmapBuffer;
+ int i;
+ for( i = 0; i < self->numHostChannels; ++i )
+ {
+ bufs[i] = buffer;
+ buffer += bufsize;
+ }
+ res = snd_pcm_readn( self->pcm, bufs, *numFrames );
+ }
+ if( res == -EPIPE || res == -ESTRPIPE )
+ {
+ *xrun = 1;
+ *numFrames = 0;
+ free( self->nonMmapBuffer );
+ self->nonMmapBuffer = NULL;
+ }
+ }
end:
error:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package dosbox for openSUSE:Factory
checked in at Fri May 29 01:43:04 CEST 2009.
--------
--- dosbox/dosbox.changes 2007-12-04 17:09:47.000000000 +0100
+++ dosbox/dosbox.changes 2009-05-28 10:25:03.000000000 +0200
@@ -1,0 +2,17 @@
+Thu May 28 10:23:56 CEST 2009 - lnussel(a)suse.de
+
+- new version 0.73
+ * Support for more graphics modes and cards.
+ * Improved Vista support.
+ * New OPL emulation cores.
+ * Sound fixes and improvements for Mac OS X.
+ * Lots of compatibility fixes.
+ * Lots of cdrom detection improvements.
+ * Lots of memory (EMS/XMS) improvements.
+ * Various fixes and enhancements for the recompiling core.
+ * Support for evdev.
+ * Lots of DOS fixes.
+ * Slightly faster!
+ * More stable.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
dosbox-0.72-gcc4.3.diff
dosbox-0.72-strncat.diff
dosbox-0.72.tar.gz
New:
----
dosbox-0.73.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dosbox.spec ++++++
--- /var/tmp/diff_new_pack.Z26671/_old 2009-05-29 01:42:35.000000000 +0200
+++ /var/tmp/diff_new_pack.Z26671/_new 2009-05-29 01:42:35.000000000 +0200
@@ -1,17 +1,26 @@
#
-# spec file for package dosbox (Version 0.72)
+# spec file for package dosbox (Version 0.73)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
+
Name: dosbox
BuildRequires: Mesa-devel SDL-devel gcc-c++ libpng-devel update-desktop-files
+BuildRequires: SDL_sound-devel
%if 0%suse_version > 1020
BuildRequires: SDL_net-devel
%else
@@ -20,15 +29,13 @@
Url: http://dosbox.sourceforge.net/
License: GPL v2 or later
Group: System/Emulators/PC
-Version: 0.72
-Release: 34
+Version: 0.73
+Release: 1
Summary: DOS Emulator Well-Suited for Playing Games
-Source: dosbox-0.72.tar.gz
+Source: http://switch.dl.sourceforge.net/sourceforge/dosbox/dosbox-%{version}.tar.gz
Source1: dosbox.desktop
Source2: dosbox.png
Patch: dosbox-0.71-manpage.diff
-Patch1: dosbox-0.72-gcc4.3.diff
-Patch2: dosbox-0.72-strncat.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -45,10 +52,8 @@
Peter Veenstra <qbix79(a)users.sourceforge.net>
%prep
-%setup
+%setup -q
%patch -p1
-%patch1 -p1
-%patch2 -p1
%build
autoreconf -f -i
@@ -81,11 +86,25 @@
%{_datadir}/pixmaps/*
%changelog
-* Tue Dec 04 2007 - lnussel(a)suse.de
+* Thu May 28 2009 lnussel(a)suse.de
+- new version 0.73
+ * Support for more graphics modes and cards.
+ * Improved Vista support.
+ * New OPL emulation cores.
+ * Sound fixes and improvements for Mac OS X.
+ * Lots of compatibility fixes.
+ * Lots of cdrom detection improvements.
+ * Lots of memory (EMS/XMS) improvements.
+ * Various fixes and enhancements for the recompiling core.
+ * Support for evdev.
+ * Lots of DOS fixes.
+ * Slightly faster!
+ * More stable.
+* Tue Dec 04 2007 lnussel(a)suse.de
- fix wrong use of strncat
-* Mon Oct 15 2007 - lnussel(a)suse.de
+* Mon Oct 15 2007 lnussel(a)suse.de
- fix build with gcc 4.3
-* Tue Aug 28 2007 - lnussel(a)suse.de
+* Tue Aug 28 2007 lnussel(a)suse.de
- new version 0.72
* Fixed unitialized variable in joystick. (Fixes crashes on Vista and
Mac OS X)
@@ -105,7 +124,7 @@
* Enabled auto cpu core selection for recompiling core as well.
* Made the used joystick selectable when 4axis is specified.
* Added some hints for inexperienced DOS users to the shell.
-* Mon Jul 30 2007 - lnussel(a)suse.de
+* Mon Jul 30 2007 lnussel(a)suse.de
- new version 0.71
* Added a new recompiling cpu core which is easier to port!
* Added a x86_64 and a mipsel_32 recompiling core.
@@ -122,9 +141,9 @@
* Fix a few compilation problems on various hosts and a general
code cleanup.
* Several small fixes that improve compatibility.
-* Fri May 25 2007 - lnussel(a)suse.de
+* Fri May 25 2007 lnussel(a)suse.de
- dont rm -rf %%buildroot in %%prep
-* Mon Mar 05 2007 - lnussel(a)suse.de
+* Mon Mar 05 2007 lnussel(a)suse.de
- new version 0.70
* Speed up the dynamic cpu core (certain games get much faster).
* Added a dynamic fpu on x86 hosts.
@@ -141,11 +160,11 @@
* Dynamic core should work on Intel Macs.
* Various timer related fixes.
* Added a few more graphic scalers.
-* Mon Feb 12 2007 - lnussel(a)suse.de
+* Mon Feb 12 2007 lnussel(a)suse.de
- fix overflow of a global variable reported by gcc
-* Tue Jun 27 2006 - lnussel(a)suse.de
+* Tue Jun 27 2006 lnussel(a)suse.de
- fix use of uninitialized variables (#188290)
-* Mon May 08 2006 - lnussel(a)suse.de
+* Mon May 08 2006 lnussel(a)suse.de
- new version 0.65
* 4/15/16/32bpp VESA mode support
* Lot's of fixes for better vga compatibility
@@ -161,37 +180,37 @@
* Added VCPI emulation and fixed some issues with ems
* Improved support for booter games
* Modem and IPX support improved for multiplayer
-* Fri Jan 27 2006 - lnussel(a)suse.de
+* Fri Jan 27 2006 lnussel(a)suse.de
- add Mesa-devel, libpng-devel and gcc-c++ to BuildRequires
-* Wed Jan 25 2006 - mls(a)suse.de
+* Wed Jan 25 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
-* Tue Nov 29 2005 - lnussel(a)suse.de
+* Tue Nov 29 2005 lnussel(a)suse.de
- add -fno-strict-aliasing
- fix uninitialized variables
-* Tue Oct 18 2005 - lnussel(a)suse.de
+* Tue Oct 18 2005 lnussel(a)suse.de
- fix build with gcc 4.1
-* Sun Oct 02 2005 - stbinner(a)suse.de
+* Sun Oct 02 2005 stbinner(a)suse.de
- GenericName = short, Comment = verbose
-* Fri Apr 22 2005 - lnussel(a)suse.de
+* Fri Apr 22 2005 lnussel(a)suse.de
- fix another build failure on x86_64
-* Fri Apr 08 2005 - lnussel(a)suse.de
+* Fri Apr 08 2005 lnussel(a)suse.de
- fix build with gcc4
- add icon
-* Mon Nov 29 2004 - lnussel(a)suse.de
+* Mon Nov 29 2004 lnussel(a)suse.de
- update to version 0.63
-* Tue Oct 12 2004 - lnussel(a)suse.de
+* Tue Oct 12 2004 lnussel(a)suse.de
- update to version 0.62
-* Tue Feb 17 2004 - lnussel(a)suse.de
+* Tue Feb 17 2004 lnussel(a)suse.de
- update to version 0.61
-* Sat Jan 10 2004 - adrian(a)suse.de
+* Sat Jan 10 2004 adrian(a)suse.de
- build as user
-* Mon Sep 01 2003 - adrian(a)suse.de
+* Mon Sep 01 2003 adrian(a)suse.de
- use Emulator Category
-* Tue Aug 19 2003 - lnussel(a)suse.de
+* Tue Aug 19 2003 lnussel(a)suse.de
- new version 0.58
- use /etc/dosbox.conf or ~/.dosbox.conf as config file
- desktop file
-* Tue May 27 2003 - coolo(a)suse.de
+* Tue May 27 2003 coolo(a)suse.de
- use BuildRoot
-* Fri Aug 02 2002 - uli(a)suse.de
+* Fri Aug 02 2002 uli(a)suse.de
- initial package
++++++ dosbox-0.72.tar.gz -> dosbox-0.73.tar.gz ++++++
++++ 73361 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package fusepod for openSUSE:Factory
checked in at Fri May 29 01:39:40 CEST 2009.
--------
--- fusepod/fusepod.changes 2007-10-25 13:30:04.000000000 +0200
+++ fusepod/fusepod.changes 2009-05-28 16:52:22.000000000 +0200
@@ -1,0 +2,5 @@
+Thu May 28 15:41:24 CEST 2009 - mszeredi(a)suse.de
+
+- Fix missing include
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fusepod.spec ++++++
--- /var/tmp/diff_new_pack.uX2611/_old 2009-05-29 01:38:56.000000000 +0200
+++ /var/tmp/diff_new_pack.uX2611/_new 2009-05-29 01:38:56.000000000 +0200
@@ -1,22 +1,30 @@
#
# spec file for package fusepod (Version 0.5.2)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
+
Name: fusepod
BuildRequires: fuse-devel gcc-c++ libgpod-devel pkgconfig taglib-devel
Requires: fuse
Summary: FUSEPod is a virtual user-space filesystem that mounts your iPod
Version: 0.5.2
-Release: 43
-License: GPL v2 or later; LGPL v2 or later
+Release: 167
+License: GPL v2 or later; LGPL v2.1 or later
Group: System/Filesystems
Source: %{name}-%{version}.tar.bz2
Patch: include_fix.patch
@@ -56,26 +64,29 @@
%doc AUTHORS COPYING* ChangeLog NEWS README* THANKS
%{_bindir}/*
%{_mandir}/man1/fusepod.1.gz
+
%changelog
-* Thu Oct 25 2007 - mszeredi(a)suse.de
+* Thu May 28 2009 mszeredi(a)suse.de
+- Fix missing include
+* Thu Oct 25 2007 mszeredi(a)suse.de
- Fix compile error in beta
-* Fri Aug 10 2007 - bk(a)suse.de
+* Fri Aug 10 2007 bk(a)suse.de
- Add "Requires: fuse" to ensure that fuse is present (285101#c29)
-* Wed Jul 04 2007 - mszeredi(a)suse.de
+* Wed Jul 04 2007 mszeredi(a)suse.de
- update to version 0.5.2
* Fixed mounting over samba
-* Wed Oct 25 2006 - ro(a)suse.de
+* Wed Oct 25 2006 ro(a)suse.de
- fix build with current libgpod
-* Sun Oct 01 2006 - cthiel(a)suse.de
+* Sun Oct 01 2006 cthiel(a)suse.de
- update to version 0.5.1
* Fixed crash in autodetecting.
* Adds orphaned files to the iTunesDB on startup
* When copying a file into the transfer directory it will updates the
filesystem at the same time.
* Added more extended attributes.
-* Tue Jul 04 2006 - cthiel(a)suse.de
+* Tue Jul 04 2006 cthiel(a)suse.de
- fix BuildRequires (s/pkg-config/pkgconfig/)
-* Thu Jun 29 2006 - cthiel(a)suse.de
+* Thu Jun 29 2006 cthiel(a)suse.de
- update to version 0.5
* Transparent copying of files onto iPod
* Tracks have tags in extended attributes
@@ -84,7 +95,7 @@
* Ported too libgpod and taglib for future improvements
* FUSEPod can also use the environment variable IPOD_MOUNTPOINT
* General fixes and polish
-* Tue Jun 13 2006 - cthiel(a)suse.de
+* Tue Jun 13 2006 cthiel(a)suse.de
- update to version 0.4
* The filesystem can now create the iTunesDB for you, so you don't have to
run iTunes to set up the required files and directories.
@@ -93,5 +104,5 @@
added.
* ./sync_ipod.sh now can show what it is doing with the -watch option.
* A statistics file was added.
-* Mon Apr 24 2006 - cthiel(a)suse.de
+* Mon Apr 24 2006 cthiel(a)suse.de
- initial package (version 0.3)
++++++ include_fix.patch ++++++
--- /var/tmp/diff_new_pack.uX2611/_old 2009-05-29 01:38:56.000000000 +0200
+++ /var/tmp/diff_new_pack.uX2611/_new 2009-05-29 01:38:56.000000000 +0200
@@ -1,3 +1,13 @@
+--- src/fusepod_util.cpp
++++ src/fusepod_util.cpp
+@@ -14,6 +14,7 @@
+
+ #include "fusepod_util.h"
+
++#include <stdio.h>
+ #include <cstring>
+ #include <set>
+
--- src/fusepod_util.h
+++ src/fusepod_util.h
@@ -17,6 +17,7 @@
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package SDLmm for openSUSE:Factory
checked in at Fri May 29 01:23:48 CEST 2009.
--------
--- SDLmm/SDLmm.changes 2008-07-05 18:11:04.000000000 +0200
+++ SDLmm/SDLmm.changes 2009-05-20 17:26:14.000000000 +0200
@@ -1,0 +2,5 @@
+Wed May 20 17:22:16 CEST 2009 - prusnak(a)suse.cz
+
+- follow Shared Library Policy
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ SDLmm.spec ++++++
--- /var/tmp/diff_new_pack.lEL790/_old 2009-05-29 01:17:04.000000000 +0200
+++ /var/tmp/diff_new_pack.lEL790/_new 2009-05-29 01:17:04.000000000 +0200
@@ -1,10 +1,17 @@
#
# spec file for package SDLmm (Version 0.1.8)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -12,10 +19,10 @@
Name: SDLmm
-BuildRequires: SDL-devel gcc-c++
+BuildRequires: gcc-c++ libSDL-devel
Summary: Simple DirectMedia Layer Glue for C++
Version: 0.1.8
-Release: 1094
+Release: 1139
Source: %{name}-%{version}.tar.bz2
Patch: %{name}-%{version}.patch
Patch1: %{name}-%{version}-lib64.patch
@@ -40,13 +47,35 @@
David Hedbor <david(a)hedbor.org>
Adam Gates <radad(a)xoasis.com>
-%package devel
+%package -n libSDLmm-0_1-8
+Group: System/Libraries
+Summary: Simple DirectMedia Layer Glue for C++
+License: LGPL v2.1 or later
+Provides: SDLmm = %{version}
+Obsoletes: SDLmm < %{version}
+
+%description -n libSDLmm-0_1-8
+SDLmm aims to stay as close as possible to the C API while taking
+advantage of native C++ features like object oriented programming. It
+also aims to be as platform independent as possible. In other words, it
+tries to support every platform that SDL supports.
+
+
+
+Authors:
+--------
+ David Hedbor <david(a)hedbor.org>
+ Adam Gates <radad(a)xoasis.com>
+
+%package -n libSDLmm-devel
License: LGPL v2.1 or later
Summary: Libraries, includes and more to develop SDLmm applications
Group: Development/Libraries/X11
-Requires: %{name} = %{version} SDL-devel libstdc++-devel
+Requires: libSDLmm-0_1-8 = %{version} libSDL-devel libstdc++-devel
+Provides: SDLmm-devel = %{version}
+Obsoletes: SDLmm-devel < %{version}
-%description devel
+%description -n libSDLmm-devel
SDLmm aims to stay as close as possible to the C API while taking
advantage of native C++ features like object orientation. We will also
aim at being platform independent as much as possible. I.e we'll try to
@@ -61,7 +90,7 @@
%prep
%setup -q
-%patch
+%patch0
%patch1
%patch2
%patch3
@@ -71,8 +100,9 @@
%build
autoreconf -fi
-export CXXFLAGS="$RPM_OPT_FLAGS -W -Wall -Wpointer-arith"
-%configure --disable-static --with-pic
+%configure \
+ --disable-static \
+ --with-pic
make %{?jobs:-j %jobs}
%install
@@ -83,25 +113,27 @@
%clean
rm -rf %{buildroot}
-%post -p /sbin/ldconfig
+%post -n libSDLmm-0_1-8 -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%postun -n libSDLmm-0_1-8 -p /sbin/ldconfig
-%files
+%files -n libSDLmm-0_1-8
%defattr(-,root,root)
+%doc AUTHORS COPYING NEWS README THANKS
%{_libdir}/*.so.*
-%doc AUTHORS COPYING NEWS README* THANKS
-%files devel
+%files -n libSDLmm-devel
%defattr(-,root,root)
-/usr/bin/sdlmm-config
-/usr/include/SDLmm
+%doc docs/html
+%{_bindir}/sdlmm-config
+%{_includedir}/SDLmm
%{_libdir}/*.so
%{_mandir}/man3/*
-/usr/share/aclocal/*
-%doc docs/html
+%{_datadir}/aclocal/*
%changelog
+* Wed May 20 2009 prusnak(a)suse.cz
+- follow Shared Library Policy
* Sat Jul 05 2008 crrodriguez(a)suse.de
- remove unusable static libraries
- cleanup buildRequires and -devel package dependencies
++++++ baselibs.conf ++++++
libSDLmm-0_1-8
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package SDL_sound for openSUSE:Factory
checked in at Fri May 29 00:58:12 CEST 2009.
--------
--- SDL_sound/SDL_sound.changes 2008-05-19 11:15:51.000000000 +0200
+++ SDL_sound/SDL_sound.changes 2009-05-20 17:08:49.000000000 +0200
@@ -1,0 +2,5 @@
+Wed May 20 17:08:10 CEST 2009 - prusnak(a)suse.cz
+
+- follow Shared Library Policy
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
baselibs.conf
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ SDL_sound.spec ++++++
--- /var/tmp/diff_new_pack.z15188/_old 2009-05-29 00:57:51.000000000 +0200
+++ /var/tmp/diff_new_pack.z15188/_new 2009-05-29 00:57:51.000000000 +0200
@@ -1,10 +1,17 @@
#
# spec file for package SDL_sound (Version 1.0.3)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -12,11 +19,11 @@
Name: SDL_sound
-BuildRequires: SDL-devel flac-devel libmikmod-devel libogg-devel libvorbis-devel physfs-devel speex-devel
+BuildRequires: flac-devel libSDL-devel libmikmod-devel libogg-devel libvorbis-devel physfs-devel speex-devel
Url: http://icculus.org/SDL_sound/
Summary: Sound Sample Library for SDL (Simple DirectMedia Layer)
Version: 1.0.3
-Release: 12
+Release: 66
Source: %{name}-%{version}-nompglib.tar.bz2
Patch0: %{name}-%{version}-nompglib.patch
License: LGPL v2.1 or later
@@ -36,13 +43,35 @@
--------
Ryan C. Gordon <icculus at clutteredmind dot org>
-%package devel
+%package -n libSDL_sound-1_0-1
+Group: System/Libraries
+Summary: Sound Sample Library for SDL (Simple DirectMedia Layer)
+License: LGPL v2.1 or later
+Provides: SDL_sound = %{version}
+Obsoletes: SDL_sound < %{version}
+
+%description -n libSDL_sound-1_0-1
+SDL_sound is a library that handles the decoding of several popular
+sound file formats, such as wav, ogg mp3 and midi. SDL_sound can just
+play a file or alternatively decode a file and hand back a single
+pointer to the waveform. SDL_sound also can handle channel conversion
+on-the-fly and behind-the-scenes.
+
+
+
+Authors:
+--------
+ Ryan C. Gordon <icculus at clutteredmind dot org>
+
+%package -n libSDL_sound-devel
License: LGPL v2.1 or later
Summary: Sound Sample Library for SDL (Simple DirectMedia Layer)
-Group: System/Libraries
-Requires: %{name} = %{version} SDL-devel
+Group: Development/Libraries/C and C++
+Requires: libSDL_sound-1_0-1 = %{version} libSDL-devel
+Provides: SDL_sound-devel = %{version}
+Obsoletes: SDL_sound-devel < %{version}
-%description devel
+%description -n libSDL_sound-devel
SDL_sound is a library that handles the decoding of several popular
sound file formats, such as wav, ogg mp3 and midi. SDL_sound can just
play a file or alternatively decode a file and hand back a single
@@ -60,32 +89,39 @@
%patch0
%build
-%configure --disable-static --with-pic --disable-sdltest --disable-smpeg --disable-mpglib
+%configure \
+ --disable-static \
+ --with-pic \
+ --disable-sdltest \
+ --disable-smpeg \
+ --disable-mpglib
make %{?jobs:-j %jobs}
%install
make install DESTDIR=$RPM_BUILD_ROOT
rm -f %{buildroot}%{_libdir}/*.la
-%post -p /sbin/ldconfig
+%post -n libSDL_sound-1_0-1 -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%postun -n libSDL_sound-1_0-1 -p /sbin/ldconfig
%clean
rm -rf $RPM_BUILD_ROOT
-%files
+%files -n libSDL_sound-1_0-1
%defattr(-,root,root)
%doc CHANGELOG COPYING CREDITS README TODO
-%{_bindir}/playsound*
%{_libdir}/lib*.so.*
-%files devel
+%files -n libSDL_sound-devel
%defattr(-,root,root)
+%{_bindir}/playsound*
%{_includedir}/SDL
%{_libdir}/lib*.so
%changelog
+* Wed May 20 2009 prusnak(a)suse.cz
+- follow Shared Library Policy
* Mon May 19 2008 crrodriguez(a)suse.de
- disable unusable static libraries
(there is no static libogg,libvorbis,flac,speex etc..)
++++++ baselibs.conf ++++++
libSDL_sound-1_0-1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package seq24 for openSUSE:Factory
checked in at Fri May 29 00:52:18 CEST 2009.
--------
--- seq24/seq24.changes 2008-04-16 17:05:02.000000000 +0200
+++ seq24/seq24.changes 2009-05-11 13:52:42.000000000 +0200
@@ -1,0 +2,9 @@
+Mon May 11 13:50:42 CEST 2009 - tiwai(a)suse.de
+
+- updated to version 0.9.0:
+ * Several bug fixs, contains adaptations to library API changes,
+ string buffer overruns, 64Bit incompatibility and memory leaks
+ for MIDI file format errors.
+ * See ChangeLog for more details
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
seq24-0.8.7.tar.bz2
seq24-assert.patch
seq24-gcc43-fixes.diff
seq24-sigc-2.2-fix.diff
New:
----
seq24-0.9.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ seq24.spec ++++++
--- /var/tmp/diff_new_pack.F26017/_old 2009-05-29 00:51:55.000000000 +0200
+++ /var/tmp/diff_new_pack.F26017/_new 2009-05-29 00:51:55.000000000 +0200
@@ -1,10 +1,17 @@
#
-# spec file for package seq24 (Version 0.8.7)
+# spec file for package seq24 (Version 0.9.0)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -19,16 +26,13 @@
BuildRequires: gtkmm24-devel
%endif
Summary: A Small, Real-Time MIDI Sequencer
-Version: 0.8.7
-Release: 232
+Version: 0.9.0
+Release: 1
License: GPL v2 or later
Group: Productivity/Multimedia/Sound/Midi
Source: %{name}-%{version}.tar.bz2
Source1: %name.desktop
Source2: seq24.png
-Patch: seq24-gcc43-fixes.diff
-Patch1: seq24-assert.patch
-Patch2: seq24-sigc-2.2-fix.diff
Url: http://www.filter24.org/seq24/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -43,17 +47,12 @@
Rob C. Buse <rcbuse(a)filter24.org>
%prep
-%setup
-%patch
-%patch1
-%if %suse_version > 1030
-%patch2
-%endif
+%setup -q
%build
autoreconf --force --install
%configure
-make
+make %{?jobs:-j %jobs}
%install
%makeinstall
@@ -67,11 +66,19 @@
%files
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog README RTC SEQ24
+%doc seq24usr.example
+%doc %{_mandir}/man?/*
%{_bindir}/*
-/usr/share/applications/*.desktop
+%{_datadir}/applications/*.desktop
%{_datadir}/pixmaps/*.png
%changelog
+* Mon May 11 2009 tiwai(a)suse.de
+- updated to version 0.9.0:
+ * Several bug fixs, contains adaptations to library API changes,
+ string buffer overruns, 64Bit incompatibility and memory leaks
+ for MIDI file format errors.
+ * See ChangeLog for more details
* Wed Apr 16 2008 tiwai(a)suse.de
- fix build with recent sigc++-2.
* Wed Nov 28 2007 tiwai(a)suse.de
++++++ seq24-0.8.7.tar.bz2 -> seq24-0.9.0.tar.bz2 ++++++
++++ 18078 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package cups-backends for openSUSE:Factory
checked in at Fri May 29 00:51:41 CEST 2009.
--------
--- cups-backends/cups-backends.changes 2007-07-30 20:33:00.000000000 +0200
+++ cups-backends/cups-backends.changes 2009-05-28 13:07:08.000000000 +0200
@@ -1,0 +2,12 @@
+Thu May 28 12:58:50 CEST 2009 - jsmeix(a)suse.de
+
+- Removed the beh backend because it is now provided
+ in the upgraded foomatic-filters version 4.0.1 package.
+- Replaced the pipe backend source cups-pipe.pl perl script
+ with a new source cups-pipe.sh bash script which works
+ in much better compliance to CUPS and which also fixes
+ a bug that it did not get signals from the cupsd
+ so that it did not terminate pipe when removing jobs
+ (see Novell/Suse Bugzilla bnc#499735).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
beh
cups-pipe.pl
README-beh.html
New:
----
cups-pipe.sh
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cups-backends.spec ++++++
--- /var/tmp/diff_new_pack.Z20105/_old 2009-05-29 00:50:08.000000000 +0200
+++ /var/tmp/diff_new_pack.Z20105/_new 2009-05-29 00:50:08.000000000 +0200
@@ -1,28 +1,34 @@
#
# spec file for package cups-backends (Version 1.0)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
+
Name: cups-backends
BuildRequires: cups-devel hal-devel
Summary: Various Free Backends for the cups Package
License: GPL v2 or later
Group: Hardware/Printing
Version: 1.0
-Release: 103
+Release: 253
Source0: http://www.srz.de/Members/bla/cups/backend/hpnpf/hpnpf.tgz
Source1: http://www.srz.de/Members/bla/cups/backend/hpnpf/hpnpf.txt
-Source2: cups-pipe.pl
+Source2: cups-pipe.sh
Source4: hal.c
-Source5: http://www.linuxprinting.org/download/printing/beh
-Source6: README-beh.html
Patch0: hpnpf.patch
Patch1: cups-backends-silenct-hal.patch
Requires: cups-libs, dbus-1, hal
@@ -37,6 +43,8 @@
--------
Jiri Srain <jsrain(a)suse.cz>
Jeffrey Stedfast <fejj(a)novell.com>
+ Klaus Singvogel <kssingvo(a)suse.de>
+ Johannes Meixner <jsmeix(a)suse.de>
%prep
%setup -c -T
@@ -45,8 +53,6 @@
tar xzvvf %{SOURCE0}
cd ..
cp -a %{SOURCE4} .
-cp -a %{SOURCE5} beh
-cp -a %{SOURCE6} .
%patch1 -p0
%build
@@ -56,35 +62,42 @@
%install
mkdir -p $RPM_BUILD_ROOT/%{_libdir}/cups/backend
-install -m 755 -D ${RPM_SOURCE_DIR}/cups-pipe.pl $RPM_BUILD_ROOT%{_libdir}/cups/backend/pipe
+install -m 755 -D ${RPM_SOURCE_DIR}/cups-pipe.sh $RPM_BUILD_ROOT%{_libdir}/cups/backend/pipe
install -m 755 -D hal $RPM_BUILD_ROOT%{_libdir}/cups/backend/hal
-install -m 755 -D beh $RPM_BUILD_ROOT%{_libdir}/cups/backend/beh
%files
%defattr(-, root,root)
%dir %{_libdir}/cups
%dir %{_libdir}/cups/backend
%{_libdir}/cups/backend/*
-%doc README-beh.html
%changelog
-* Mon Jul 30 2007 - crivera(a)suse.de
+* Thu May 28 2009 jsmeix(a)suse.de
+- Removed the beh backend because it is now provided
+ in the upgraded foomatic-filters version 4.0.1 package.
+- Replaced the pipe backend source cups-pipe.pl perl script
+ with a new source cups-pipe.sh bash script which works
+ in much better compliance to CUPS and which also fixes
+ a bug that it did not get signals from the cupsd
+ so that it did not terminate pipe when removing jobs
+ (see Novell/Suse Bugzilla bnc#499735).
+* Mon Jul 30 2007 crivera(a)suse.de
- Silence the hal backend. This will allow current printers
that use the hal backend to work, but it will not report new
printers. This is the first step toward removing the backend
completely.
-* Wed Mar 22 2006 - lmuelle(a)suse.de
+* Wed Mar 22 2006 lmuelle(a)suse.de
- Update beh backend to the current version.
- Add beh documentation derivated from http://www.linuxprinting.org/beh.html.
- Move ncp backend to the ncpfs package.
-* Wed Jan 25 2006 - mls(a)suse.de
+* Wed Jan 25 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
-* Thu Jan 12 2006 - kssingvo(a)suse.de
+* Thu Jan 12 2006 kssingvo(a)suse.de
- added backend error handler (beh) (bugzilla#132002)
-* Tue Oct 04 2005 - jsrain(a)suse.cz
+* Tue Oct 04 2005 jsrain(a)suse.cz
- fixed the error handling in the pipe backend (#93480)
-* Mon Sep 19 2005 - lmuelle(a)suse.de
+* Mon Sep 19 2005 lmuelle(a)suse.de
- Don't redirect stdout to stderr in the pipe backend.
- Install the right files, [#117887].
-* Tue Jul 26 2005 - kssingvo(a)suse.de
+* Tue Jul 26 2005 kssingvo(a)suse.de
- initial version
++++++ cups-pipe.sh ++++++
#! /bin/bash
# CUPS wrapper backend "pipe" for printing to any program.
# It forwards the print job data like a pipe into another command.
# Author: Johannes Meixner <jsmeix(a)suse.de>, 2009
# For basic information see "man 7 backend" and "man 7 filter".
# Activate the "set -x" line to get debugging info in /var/log/cups/error_log:
#set -x
# Output "Device Discovery" information on stdout:
if test "$#" = "0"
then
echo 'direct pipe "Unknown" "Forward print job data like a pipe to another command"'
exit 0
fi
# Output usage information in case of wrong number of parameters:
if test "$#" != "5" -a "$#" != "6"
then
echo 'Usage: pipe job-id user title copies options [file]' 1>&2
echo 'Queue setup example:' 1>&2
echo 'lpadmin -p queue_name -v "pipe:/path/to/command?option1=value1&-option2&value2" -E' 1>&2
echo 'The command is called with the specified options as:' 1>&2
echo '/path/to/command option1=value1 -option2 value2' 1>&2
echo 'The original command line parameters (... job-id user ...)' 1>&2
echo 'are provided as environment variables PIPE_BACKEND_ARGV[0-6]' 1>&2
exit 1
fi
# Keep the original command line parameters (... job-id user ...)
# in environment variables to make them available for the command:
export PIPE_BACKEND_ARGV0="$0"
export PIPE_BACKEND_ARGV1="$1"
export PIPE_BACKEND_ARGV2="$2"
export PIPE_BACKEND_ARGV3="$3"
export PIPE_BACKEND_ARGV4="$4"
export PIPE_BACKEND_ARGV5="$5"
export PIPE_BACKEND_ARGV6="$6"
# Have the input at fd0 (stdin) in any case:
if test -n "$6"
then
exec <"$6"
fi
# To be on the safe side clip anything after the first space character
# because spaces are excluded characters in a URI (see RFC 2396):
URI=${DEVICE_URI%% *}
# Extract the command to which the job schould be sent from the URI.
# Clip the URI scheme (anything up to the first ':' character) and
# clip anything after the first '?' character
# because anything after the first '?' character are options:
COMMAND=${URI#*:}
COMMAND=${COMMAND%%\?*}
# Extract the options (e.g. from 'pipe:/path/to/command?option1=value1&-option2&value2'
# clip anything up to the first '?' character and
# replace the options separator '&' character by a space:
OPTIONS=${URI#*\?}
if test "$OPTIONS" = "$URI"
then
OPTIONS=""
fi
OPTIONS=$( echo "$OPTIONS" | tr '&' ' ' )
# Options could have been specified in a wrong way
# as addendum to the DeviceURI separated by spaces
# (spaces are excluded characters in a URI, see RFC 2396)
# which works by luck at least for some CUPS versions
# see https://bugzilla.novell.com/show_bug.cgi?id=499735
# like 'pipe:/path/to/command option1=value1 -option2 value2'
# nevertheless use additionally those kind of options too:
MORE_OPTIONS=${DEVICE_URI#* }
if test "$MORE_OPTIONS" = "$DEVICE_URI"
then
MORE_OPTIONS=""
fi
OPTIONS=$( echo "$OPTIONS" "$MORE_OPTIONS" | tr -s ' ' )
# Test if the command is executable:
if ! test -x "$COMMAND"
then
echo "Cannot execute $COMMAND" 1>&2
exit 1
fi
# Replace this wrapper with the actual command
# so that it exits with the exit code of the command
# and that the command gets any signals directly.
exec "$COMMAND" $OPTIONS
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0