diff --git a/desktop/font/fontconfig/pspec.xml b/desktop/font/fontconfig/pspec.xml index 61b2fc70c0..077918bd05 100644 --- a/desktop/font/fontconfig/pspec.xml +++ b/desktop/font/fontconfig/pspec.xml @@ -14,6 +14,8 @@ Fontconfig is a library designed to provide system-wide font configuration, customization and application access. http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.11.1.tar.bz2 + freetype-devel + expat-devel @@ -31,6 +33,8 @@ fontconfig + freetype + expat /etc/fonts @@ -51,6 +55,8 @@ Development files for fontconfig fontconfig + freetype-devel + expat-devel /usr/include @@ -69,11 +75,13 @@ expat-32bit freetype-32bit + glibc-32bit fontconfig expat-32bit freetype-32bit + glibc-32bit /usr/lib32 diff --git a/desktop/font/harfbuzz/pspec.xml b/desktop/font/harfbuzz/pspec.xml index cf0467dc16..77eae53ff7 100644 --- a/desktop/font/harfbuzz/pspec.xml +++ b/desktop/font/harfbuzz/pspec.xml @@ -18,6 +18,8 @@ glib2-devel icu4c-devel graphite2-devel + freetype-devel + expat-devel diff --git a/desktop/gnome/base/component.xml b/desktop/gnome/base/component.xml new file mode 100644 index 0000000000..be92ed3ab9 --- /dev/null +++ b/desktop/gnome/base/component.xml @@ -0,0 +1,3 @@ + + desktop.gnome.base + diff --git a/desktop/gnome/base/dconf/actions.py b/desktop/gnome/base/dconf/actions.py new file mode 100644 index 0000000000..c8d97d3a6a --- /dev/null +++ b/desktop/gnome/base/dconf/actions.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--disable-static") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("COPYING", "NEWS") + diff --git a/desktop/gnome/base/dconf/pspec.xml b/desktop/gnome/base/dconf/pspec.xml new file mode 100644 index 0000000000..4b2ff20748 --- /dev/null +++ b/desktop/gnome/base/dconf/pspec.xml @@ -0,0 +1,106 @@ + + + + + dconf + http://live.gnome.org/dconf + + Pisi Linux Admins + admin@pisilinux.org + + GPLv2 + app:console + Simple low-level configuration system + dconf is a low-level configuration system. Its main purpose is to provide a backend to GSettings on platforms that don't already have configuration storage systems. + http://ftp.gnome.org/pub/gnome/sources/dconf/0.20/dconf-0.20.0.tar.xz + + dbus-devel + glib2-devel + libxml2-devel + gtk3-devel + pango-devel + libxslt + intltool + docbook-xsl + libepoxy-devel + at-spi2-core-devel + vala-devel + gtk-doc + + + + + dconf + + dbus + glib2 + libxml2 + gtk3 + pango + + + /etc + /usr/share + /usr/lib + /usr/share/doc + /usr/bin + /usr/libexec + + + + + dconf-devel + Development files for dconf + + dconf + + + /usr/include + /usr/share/vala + /usr/lib/pkgconfig + + + + + dconf-docs + data:doc + Reference files for dconf + + dconf + + + /usr/share/gtk-doc + + + + + + 2014-06-14 + 0.20 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-29 + 0.18 + Version bump. + Richard de Bruin + richdb@pisilinux.org + + + 2013-07-31 + 0.16.1 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2012-11-21 + 0.15.2 + First release + PisiLinux Community + admins@pisilinux.org + + + \ No newline at end of file diff --git a/desktop/gnome/base/dconf/translations.xml b/desktop/gnome/base/dconf/translations.xml new file mode 100644 index 0000000000..57eca86d64 --- /dev/null +++ b/desktop/gnome/base/dconf/translations.xml @@ -0,0 +1,9 @@ + + + + dconf + Düşük seviyeli yapılandırma sistemi + FIXME + + + diff --git a/desktop/gnome/base/gnome-common/actions.py b/desktop/gnome/base/gnome-common/actions.py new file mode 100644 index 0000000000..ca6d9b6136 --- /dev/null +++ b/desktop/gnome/base/gnome-common/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("COPYING", "ChangeLog") \ No newline at end of file diff --git a/desktop/gnome/base/gnome-common/pspec.xml b/desktop/gnome/base/gnome-common/pspec.xml new file mode 100644 index 0000000000..c78f7d80c4 --- /dev/null +++ b/desktop/gnome/base/gnome-common/pspec.xml @@ -0,0 +1,65 @@ + + + + + gnome-common + http://www.gnome.org/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + Common files for development of GNOME packages + gnome-common package contains aclocal macros, makefile headers and documents tools in order to build GNOME sources. + mirrors://gnome/gnome-common/3.10/gnome-common-3.10.0.tar.xz + + + + gnome-common + + /usr/share/doc + /usr/bin + /usr/share/aclocal + /usr/share/gnome-common + + + + + + 2014-06-14 + 3.10.0 + Rebuild for gcc + PisiLinux Community + admins@pisilinux.org + + + 2014-05-21 + 3.12.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-27 + 3.10.0 + V.Bump + PisiLinux Community + admins@pisilinux.org + + + 2013-08-26 + 2.34.0 + Release bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2010-12-22 + 2.34.0 + First release + PisiLinux Community + admins@pisilinux.org + + + \ No newline at end of file diff --git a/desktop/gnome/base/gnome-common/translations.xml b/desktop/gnome/base/gnome-common/translations.xml new file mode 100644 index 0000000000..dd5b508d0d --- /dev/null +++ b/desktop/gnome/base/gnome-common/translations.xml @@ -0,0 +1,7 @@ + + + + gnome-common + GNOME uygulamalarının geliştirmede kullandığı yaygın dosyalar + + diff --git a/desktop/gnome/component.xml b/desktop/gnome/component.xml new file mode 100644 index 0000000000..679894d717 --- /dev/null +++ b/desktop/gnome/component.xml @@ -0,0 +1,3 @@ + + desktop.gnome + diff --git a/desktop/kde/addon/libdmtx/actions.py b/desktop/kde/addon/libdmtx/actions.py new file mode 100644 index 0000000000..6630c0c918 --- /dev/null +++ b/desktop/kde/addon/libdmtx/actions.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + #shelltools.system("./autogen.sh") + autotools.configure("--disable-static") + +def build(): + autotools.make() + +def check(): + autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "NEWS", "README", "README.linux") diff --git a/desktop/kde/addon/libdmtx/pspec.xml b/desktop/kde/addon/libdmtx/pspec.xml new file mode 100644 index 0000000000..1a03ee264d --- /dev/null +++ b/desktop/kde/addon/libdmtx/pspec.xml @@ -0,0 +1,61 @@ + + + + + libdmtx + http://www.libdmtx.org + + PisiLinux Community + admins@pisilinux.org + + LGPLv2+ + library + A Library for working with Data Matrix 2D bar-codes + libdmtx is an open source software for reading and writing Data Matrix 2D bar-codes on Linux, Unix, OS X, Windows and mobile devices. + http://sourceforge.net/projects/libdmtx/files/libdmtx/0.7.4/libdmtx-0.7.4.tar.gz + + imagemagick-devel + + + + + libdmtx + + imagemagick + + + /usr/lib + /usr/share/doc + + + + + libdmtx-devel + Development files for libdmtx + + libdmtx + + + /usr/include + /usr/lib/pkgconfig + /usr/share/man/man3 + + + + + + 2015-06-05 + 0.7.4 + Rebuild. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2011-08-09 + 0.7.4 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/desktop/kde/addon/libdmtx/translations.xml b/desktop/kde/addon/libdmtx/translations.xml new file mode 100644 index 0000000000..c47877716e --- /dev/null +++ b/desktop/kde/addon/libdmtx/translations.xml @@ -0,0 +1,13 @@ + + + + libdmtx + Data Matrix 2D barkodlarıyla çalışmak için kitaplık + libdmtx, Linux, Unix, OS X, Windows ve mobil işletim sistemlerinde Data Matrix 2D barkodlarını okumak ve yazmak için kullanılan açık kaynaklı bir kitaplıktır. + + + + libdmtx-devel + libdmtx için geliştirme dosyaları + + diff --git a/desktop/kde/addon/prison-qt5/actions.py b/desktop/kde/addon/prison-qt5/actions.py new file mode 100644 index 0000000000..a4d71bd755 --- /dev/null +++ b/desktop/kde/addon/prison-qt5/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("LICENSE") diff --git a/desktop/kde/addon/prison-qt5/pspec.xml b/desktop/kde/addon/prison-qt5/pspec.xml new file mode 100755 index 0000000000..fe1786c510 --- /dev/null +++ b/desktop/kde/addon/prison-qt5/pspec.xml @@ -0,0 +1,70 @@ + + + + + prison-qt5 + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + MIT + library + A barcode API to produce QRCode barcodes and DataMatrix barcode + A barcode API to produce QRCode barcodes and DataMatrix barcode. + http://download.kde.org/stable/prison/1.1/src/prison-1.1.0.tar.xz + + python3 + mesa-devel + + + + + prison-qt5 + + qt + libgcc + mesa + libdmtx + qrencode + + + /usr/lib + /usr/share/doc + + + prison + + + prison + + + + + prison-qt5-devel + Development files for libepoxy + + prison-qt5 + + + /usr/include + /usr/lib/pkgconfig + + + prison-devel + + + prison-devel + + + + + + 2015-06-29 + 1.1.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/addon/qrencode/actions.py b/desktop/kde/addon/qrencode/actions.py new file mode 100644 index 0000000000..f4557c95ee --- /dev/null +++ b/desktop/kde/addon/qrencode/actions.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.autoreconf("-vif") + shelltools.system("./autogen.sh") + + autotools.configure("--with-tests") + +def build(): + autotools.make() + +def check(): + shelltools.cd("tests") + shelltools.system("./test_all.sh") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("COPYING", "NEWS", "README") diff --git a/desktop/kde/addon/qrencode/pspec.xml b/desktop/kde/addon/qrencode/pspec.xml new file mode 100644 index 0000000000..e49e23820f --- /dev/null +++ b/desktop/kde/addon/qrencode/pspec.xml @@ -0,0 +1,70 @@ + + + + + qrencode + http://fukuchi.org/works/qrencode/index.en.html + + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + LGPLv2.1 + library + A C library for encoding data in a QR code symbol + qrencode is a C library for encoding data in a QR Code symbol, a kind of 2D symbology that can be scanned by handy terminals such as a mobile phone with CCD. The capacity of QR Code is up to 7000 digits or 4000 characters, and is highly robust. + http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz + + libsdl-devel + m4 + + + + + qrencode + + libpng + + + /usr/lib + /usr/bin/qrencode + /usr/share/man/man1 + /usr/share/doc + + + + + qrencode-devel + Development files for qrencode + + qrencode + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2015-02-22 + 3.4.4 + Rebuild. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2015-02-22 + 3.3.1 + Rebuild. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2012-04-05 + 3.3.1 + First release + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + diff --git a/desktop/kde/addon/qrencode/translations.xml b/desktop/kde/addon/qrencode/translations.xml new file mode 100644 index 0000000000..031bf56a9f --- /dev/null +++ b/desktop/kde/addon/qrencode/translations.xml @@ -0,0 +1,13 @@ + + + + qrencode + QR kod sembolüne veri gömmek için bir kitaplık + qrencode, cep telefonları gibi mobil cihazlar tarafından kolaylıkla taranabilen, 2 boyutlu bir sembol olan QR kod içerisinde veri gömmek için kullanılan bir kitaplıktır. + + + + qrencode-devel + qrencode için geliştirme dosyaları + + diff --git a/desktop/kde/framework/kactivities/actions.py b/desktop/kde/framework/kactivities/actions.py new file mode 100755 index 0000000000..54ae37f90a --- /dev/null +++ b/desktop/kde/framework/kactivities/actions.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + shelltools.makedirs("%s/build" %get.workDIR()) + + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DKACTIVITIES_ENABLE_EXCEPTIONS=OFF \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DQT_PLUGIN_INSTALL_DIR=lib/qt5/plugins \ + -DQML_INSTALL_DIR=lib/qt5/qml \ + -DLIB_INSTALL_DIR=lib \ + -DSYSCONF_INSTALL_DIR=/etc \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DPYTHON_EXECUTABLE=/usr/bin/python3 \ + -DLOCALE_INSTALL_DIR=/usr/share/locale \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "MAINTAINER", "TODO") diff --git a/desktop/kde/framework/kactivities/files/build-source.patch b/desktop/kde/framework/kactivities/files/build-source.patch new file mode 100644 index 0000000000..7546123148 --- /dev/null +++ b/desktop/kde/framework/kactivities/files/build-source.patch @@ -0,0 +1,17 @@ +--- a/CMakeLists.txt 2014-09-09 02:40:08.000000000 +0300 ++++ b/CMakeLists.txt 2014-09-22 17:47:14.215639453 +0300 +@@ -6,13 +6,6 @@ + + set(REQUIRED_QT_VERSION 5.2.0) + +-# We don't build in-source +-if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") +- message ( +- FATAL_ERROR +- "kactivities require an out of source build. Please create a separate build directory and run 'cmake path_to_plasma [options]' there." +- ) +-endif () + + # Extra CMake stuff + find_package (ECM 1.2.0 REQUIRED NO_MODULE) + diff --git a/desktop/kde/framework/kactivities/files/kamd-rename.patch b/desktop/kde/framework/kactivities/files/kamd-rename.patch new file mode 100644 index 0000000000..50f109f79a --- /dev/null +++ b/desktop/kde/framework/kactivities/files/kamd-rename.patch @@ -0,0 +1,91 @@ +diff --git a/autotests/Process.cpp b/autotests/Process.cpp +index a7a0507..afa4bf1 100644 +--- a/autotests/Process.cpp ++++ b/autotests/Process.cpp +@@ -83,7 +83,7 @@ void Modifier::initTestCase() + // qDebug() << env; + + s_process->setEnvironment(env); +- s_process->start(QStringLiteral(KAMD_INSTALL_PREFIX "/bin/kactivitymanagerd")); ++ s_process->start(QStringLiteral(KAMD_INSTALL_PREFIX "/bin/kactivitymanagerd5")); + s_process->waitForStarted(); + + +diff --git a/src/lib/core/manager_p.cpp b/src/lib/core/manager_p.cpp +index 077c634..7be66dd 100644 +--- a/src/lib/core/manager_p.cpp ++++ b/src/lib/core/manager_p.cpp +@@ -94,11 +94,11 @@ Manager *Manager::self() + ->property("org.kde.KActivities.core.disableAutostart") + .toBool()) { + qCDebug(KAMD_CORELIB) << "Starting the activity manager daemon"; +- QProcess::startDetached(QStringLiteral("kactivitymanagerd")); ++ QProcess::startDetached(QStringLiteral("kactivitymanagerd5")); + } + + #else +- QProcess::startDetached(QStringLiteral("kactivitymanagerd")); ++ QProcess::startDetached(QStringLiteral("kactivitymanagerd5")); + #endif + } + +diff --git a/src/service/Application.cpp b/src/service/Application.cpp +index 6b0e3e1..3894540 100644 +--- a/src/service/Application.cpp ++++ b/src/service/Application.cpp +@@ -280,7 +280,7 @@ int main(int argc, char **argv) + application.setApplicationName(QStringLiteral("ActivityManager")); + application.setOrganizationDomain(QStringLiteral("kde.org")); + +- // KAboutData about("kactivitymanagerd", Q_NULLPTR, ki18n("KDE Activity Manager"), "3.0", ++ // KAboutData about("kactivitymanagerd5", Q_NULLPTR, ki18n("KDE Activity Manager"), "3.0", + // ki18n("KDE Activity Management Service"), + // KAboutData::License_GPL, + // ki18n("(c) 2010, 2011, 2012 Ivan Cukic"), KLocalizedString(), +@@ -333,7 +333,7 @@ int main(int argc, char **argv) + // Starting the dameon + + QProcess::startDetached( +- KAMD_INSTALL_PREFIX "/bin/kactivitymanagerd", ++ KAMD_INSTALL_PREFIX "/bin/kactivitymanagerd5", + QStringList{"start-daemon"} + ); + +diff --git a/src/service/CMakeLists.txt b/src/service/CMakeLists.txt +index 4b4978b..2220f34 100644 +--- a/src/service/CMakeLists.txt ++++ b/src/service/CMakeLists.txt +@@ -62,9 +62,9 @@ qt5_add_dbus_adaptor ( + Features.h Features + ) + +-add_executable (kactivitymanagerd ${kactivitymanager_SRCS}) ++add_executable (kactivitymanagerd5 ${kactivitymanager_SRCS}) + +-target_link_libraries (kactivitymanagerd ++target_link_libraries (kactivitymanagerd5 + Qt5::Core + Qt5::DBus + Qt5::Widgets +@@ -84,7 +84,7 @@ install (FILES + ) + + install (TARGETS +- kactivitymanagerd ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} ++ kactivitymanagerd5 ${KF5_INSTALL_TARGETS_DEFAULT_ARGS} + ) + + install (FILES +diff --git a/src/service/files/kactivitymanagerd.desktop b/src/service/files/kactivitymanagerd.desktop +index be5faa1..3c9b9a9 100644 +--- a/src/service/files/kactivitymanagerd.desktop ++++ b/src/service/files/kactivitymanagerd.desktop +@@ -4,7 +4,7 @@ Icon=preferences-activities + X-KDE-ServiceTypes= + X-DBUS-StartupType=Unique + X-KDE-StartupNotify=false +-Exec=kactivitymanagerd ++Exec=kactivitymanagerd5 + + Name=Activity Manager + Name[ar]=مدير الأنشطة diff --git a/desktop/kde/framework/kactivities/pspec.xml b/desktop/kde/framework/kactivities/pspec.xml new file mode 100755 index 0000000000..63e573cadc --- /dev/null +++ b/desktop/kde/framework/kactivities/pspec.xml @@ -0,0 +1,94 @@ + + + + + kactivities + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Library for KDE's Plasma Activities support + Kactivities provides an API for using and interacting with the Plasma Activities Manager. + http://download.kde.org/stable/frameworks/5.11/kactivities-5.11.0.tar.xz + + qt5-base-devel + python3 + boost-devel + extra-cmake-modules + + + build-source.patch + + + + + kactivities + + qt5-base + qt5-declarative + libgcc + kconfig + kconfigwidgets + kcoreaddons + kcmutils + kdeclarative + kdbusaddons + ki18n + kio + kglobalaccel + kservice + kxmlgui + kwindowsystem + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kactivities + + + kactivities + + + + + kactivities-devel + Development files for kactivities + + qt5-base-devel + boost-devel + kactivities + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-27 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/kcmutils/actions.py b/desktop/kde/framework/kcmutils/actions.py new file mode 100755 index 0000000000..e2f17d2484 --- /dev/null +++ b/desktop/kde/framework/kcmutils/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DLIB_INSTALL_DIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DPYTHON_EXECUTABLE=/usr/bin/python3 \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/framework/kcmutils/pspec.xml b/desktop/kde/framework/kcmutils/pspec.xml new file mode 100755 index 0000000000..3334aec551 --- /dev/null +++ b/desktop/kde/framework/kcmutils/pspec.xml @@ -0,0 +1,80 @@ + + + + + kcmutils + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + Utilities for interacting with KCModules + KCMUtils provides various classes to work with KCModules. KCModules can be created with the KConfigWidgets framework. + http://download.kde.org/stable/frameworks/5.11/kcmutils-5.11.0.tar.xz + + qt5-base-devel + python3 + extra-cmake-modules + + + + + kcmutils + + qt5-base + qt5-declarative + libgcc + kdeclarative + kconfigwidgets + kwidgetsaddons + kconfig + kauth + kcoreaddons + ki18n + kiconthemes + kitemviews + kservice + kxmlgui + + + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + kcmutils-devel + Development files for kcmutils + + qt5-base-devel + kcmutils + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-27 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-31 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/kdeclarative/actions.py b/desktop/kde/framework/kdeclarative/actions.py new file mode 100755 index 0000000000..5945262b06 --- /dev/null +++ b/desktop/kde/framework/kdeclarative/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DQML_INSTALL_DIR=lib/qt5/qml \ + -DLIB_INSTALL_DIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "COPYING", "COPYING.LIB") diff --git a/desktop/kde/framework/kdeclarative/pspec.xml b/desktop/kde/framework/kdeclarative/pspec.xml new file mode 100755 index 0000000000..dcc4b860ac --- /dev/null +++ b/desktop/kde/framework/kdeclarative/pspec.xml @@ -0,0 +1,80 @@ + + + + + kdeclarative + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + Integration of QML and KDE workspaces + KDeclarative provides integration of QML and KDE workspaces. + http://download.kde.org/stable/frameworks/5.11/kdeclarative-5.11.0.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + kdeclarative + + qt5-base + libgcc + libepoxy + qt5-declarative + kpackage + kconfig + kservice + kcoreaddons + kglobalaccel + ki18n + kiconthemes + kio + kwidgetsaddons + kwindowsystem + + + /usr/bin + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + kdeclarative-devel + Development files for kdeclarative + + qt5-base-devel + kdeclarative + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-25 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-31 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/kdesignerplugin/actions.py b/desktop/kde/framework/kdesignerplugin/actions.py new file mode 100755 index 0000000000..0edd518c7e --- /dev/null +++ b/desktop/kde/framework/kdesignerplugin/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DQT_PLUGIN_INSTALL_DIR=lib/qt5/plugins \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DLIB_INSTALL_DIR=lib \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/framework/kdesignerplugin/pspec.xml b/desktop/kde/framework/kdesignerplugin/pspec.xml new file mode 100755 index 0000000000..a00d24276d --- /dev/null +++ b/desktop/kde/framework/kdesignerplugin/pspec.xml @@ -0,0 +1,72 @@ + + + + + kdesignerplugin + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + QT Designer integration for KDE5 Frameworks widgets + This framework provides plugins for Qt Designer that allow it to display the widgets provided by various KDE frameworks, as well as a utility (kgendesignerplugin) that can be used to generate other such plugins from ini-style description files. + http://download.kde.org/stable/frameworks/5.11/kdesignerplugin-5.11.0.tar.xz + + qt5-base-devel + qt5-tools-devel + kdoctools-devel + extra-cmake-modules + + + + + kdesignerplugin + + qt5-base + libgcc + kdewebkit + kcoreaddons + kitemviews + kconfig + sonnet + kcompletion + kconfigwidgets + kiconthemes + kio + kplotting + ktextwidgets + kwidgetsaddons + kxmlgui + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + /usr/share/man + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/kdewebkit/actions.py b/desktop/kde/framework/kdewebkit/actions.py new file mode 100755 index 0000000000..5c3f7e92e2 --- /dev/null +++ b/desktop/kde/framework/kdewebkit/actions.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools +from pisi.actionsapi import get + +def setup(): + #shelltools.makedirs("build") + #shelltools.cd("build") + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DLIB_INSTALL_DIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "COPYING.LIB", "ISSUES") diff --git a/desktop/kde/framework/kdewebkit/pspec.xml b/desktop/kde/framework/kdewebkit/pspec.xml new file mode 100755 index 0000000000..78a6337cb7 --- /dev/null +++ b/desktop/kde/framework/kdewebkit/pspec.xml @@ -0,0 +1,76 @@ + + + + + kdewebkit + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 WebKit integration + KdeWebkit provides KDE integration of the QtWebKit library. + http://download.kde.org/stable/frameworks/5.11/kdewebkit-5.11.0.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + kdewebkit + + qt5-webkit + libgcc + kconfig + kjobwidgets + qt5-base + kcoreaddons + kparts + kservice + kwallet + kio + + + /usr/share + /usr/lib/qt5 + /usr/lib + /usr/mkspecs/modules/ + /usr/share/doc + + + + + kdewebkit-devel + Development files for kdewebkit + + qt5-base-devel + kdewebkit + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-27 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/knewstuff/actions.py b/desktop/kde/framework/knewstuff/actions.py new file mode 100644 index 0000000000..11b2858877 --- /dev/null +++ b/desktop/kde/framework/knewstuff/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/framework/knewstuff/pspec.xml b/desktop/kde/framework/knewstuff/pspec.xml new file mode 100755 index 0000000000..36e42d5f46 --- /dev/null +++ b/desktop/kde/framework/knewstuff/pspec.xml @@ -0,0 +1,86 @@ + + + + + knewstuff + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + Framework for downloading and sharing additional application data + The KNewStuff library implements collaborative data sharing for applications. + http://download.kde.org/stable/frameworks/5.11/knewstuff-5.11.0.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + knewstuff + + qt5-base + boost + libgcc + kwidgetsaddons + ktextwidgets + kiconthemes + kcompletion + kitemviews + karchive + kf5-attica + kconfig + kcoreaddons + kcmutils + kdeclarative + kdbusaddons + ki18n + kio + kglobalaccel + kservice + kxmlgui + kwindowsystem + + + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + knewstuff-devel + Development files for knewstuff + + qt5-base-devel + knewstuff + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/kpeople/actions.py b/desktop/kde/framework/kpeople/actions.py new file mode 100755 index 0000000000..3ac5ef81de --- /dev/null +++ b/desktop/kde/framework/kpeople/actions.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + pisitools.ldflags.add("-Wl,-rpath,/usr/lib") + cmaketools.configure("-DBUILD_TESTING=OFF \ + -DLIB_INSTALL_DIR=lib \ + -DCMAKE_BUILD_TYPE=Release \ + -DSYSCONF_INSTALL_DIR=/etc \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIBEXEC_INSTALL_DIR=libexec \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DPYTHON_EXECUTABLE=/usr/bin/python3 \ + -DQT_PLUGIN_INSTALL_DIR=lib/qt5/plugins \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules ") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/framework/kpeople/pspec.xml b/desktop/kde/framework/kpeople/pspec.xml new file mode 100755 index 0000000000..e838aabc11 --- /dev/null +++ b/desktop/kde/framework/kpeople/pspec.xml @@ -0,0 +1,76 @@ + + + + + kpeople + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + A contact aggregation library for KDE + KPeople is a Framework for fetching contacts from different sources (Telepathy, Akonadi, Facebook, etc) and unifying them into a same model. + http://download.kde.org/stable/frameworks/5.11/kpeople-5.11.0.tar.xz + + qt5-base-devel + python3 + extra-cmake-modules + + + + + kpeople + + qt5-base + qt5-declarative + libgcc + kconfig + qt5-declarative + kcoreaddons + kservice + kwidgetsaddons + ki18n + kitemviews + + + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + kpeople-devel + Development files for kpeople + + qt5-base-devel + kpeople + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-25 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-30 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/ktexteditor/actions.py b/desktop/kde/framework/ktexteditor/actions.py new file mode 100755 index 0000000000..cc99c4db53 --- /dev/null +++ b/desktop/kde/framework/ktexteditor/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DQT_PLUGIN_INSTALL_DIR=lib/qt5/plugins \ + -DLIB_INSTALL_DIR=lib \ + -DSYSCONF_INSTALL_DIR=/etc \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/framework/ktexteditor/pspec.xml b/desktop/kde/framework/ktexteditor/pspec.xml new file mode 100755 index 0000000000..3971c2ea62 --- /dev/null +++ b/desktop/kde/framework/ktexteditor/pspec.xml @@ -0,0 +1,87 @@ + + + + + ktexteditor + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + KDE5 text editor libraries + KTextEditor provides a powerful text editor component that you can embed in your application. + http://download.kde.org/stable/frameworks/5.11/ktexteditor-5.11.0.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + ktexteditor + + qt5-script + qt5-base + libgcc + ktextwidgets + kwidgetsaddons + kconfigwidgets + kjobwidgets + kiconthemes + kcoreaddons + kcompletion + kitemviews + kxmlgui + kcodecs + karchive + kguiaddons + kconfig + ki18n + kio + ki18n + kparts + sonnet + + + /etc + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + ktexteditor-devel + Development files for ktexteditor + + qt5-base-devel + ktexteditor + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-27 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/plasma-framework/actions.py b/desktop/kde/framework/plasma-framework/actions.py new file mode 100755 index 0000000000..9cf86fce51 --- /dev/null +++ b/desktop/kde/framework/plasma-framework/actions.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DQT_PLUGIN_INSTALL_DIR=lib/qt5/plugins \ + -DQML_INSTALL_DIR=lib/qt5/qml \ + -DLIB_INSTALL_DIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DLOCALE_INSTALL_DIR=/usr/share/locale \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md", "COPYING", "COPYING.LIB") diff --git a/desktop/kde/framework/plasma-framework/pspec.xml b/desktop/kde/framework/plasma-framework/pspec.xml new file mode 100755 index 0000000000..d62e3fb732 --- /dev/null +++ b/desktop/kde/framework/plasma-framework/pspec.xml @@ -0,0 +1,101 @@ + + + + + plasma-framework + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Plasma library and runtime components based upon KDE Frameworks 5 and Qt5 + Plasma library and runtime components based upon KF5 and Qt5 + http://download.kde.org/stable/frameworks/5.11/plasma-framework-5.11.0.tar.xz + + qt5-base-devel + qt5-tools-devel + kdoctools-devel + libxcb-devel + libX11-devel + libgcc + extra-cmake-modules + + + + + plasma-framework + + qt5-base + qt5-svg + qt5-script + qt5-x11extras + qt5-declarative + mesa + libgcc + libX11 + libxcb + kf5-kactivities + knotifications + kpackage + karchive + kconfig + kconfigwidgets + kcoreaddons + kdbusaddons + kdeclarative + kdoctools + kglobalaccel + kguiaddons + ki18n + kiconthemes + kio + kparts + kservice + kwindowsystem + kxmlgui + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + plasma-framework-devel + Development files for plasma-framework + + qt5-base-devel + mesa-devel + plasma-framework + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/framework/threadweaver/actions.py b/desktop/kde/framework/threadweaver/actions.py new file mode 100644 index 0000000000..25e5a4e58b --- /dev/null +++ b/desktop/kde/framework/threadweaver/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DLIB_INSTALL_DIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("README.md","COPYING.LIB") diff --git a/desktop/kde/framework/threadweaver/pspec.xml b/desktop/kde/framework/threadweaver/pspec.xml new file mode 100644 index 0000000000..0adb94dee5 --- /dev/null +++ b/desktop/kde/framework/threadweaver/pspec.xml @@ -0,0 +1,66 @@ + + + + + threadweaver + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Multi-threaded programming framework for KDE + ThreadWeaver is a helper for multithreaded programming. It uses a job-based interface to queue tasks and execute them in an efficient way. + http://download.kde.org/stable/frameworks/5.11/threadweaver-5.11.0.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + threadweaver + + qt5-base + libgcc + + + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + threadweaver-devel + Development files for threadweaver + + qt5-base-devel + threadweaver + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/kde5-application/kate/actions.py b/desktop/kde/kde5-application/kate/actions.py new file mode 100644 index 0000000000..e5ff33ac3c --- /dev/null +++ b/desktop/kde/kde5-application/kate/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "AUTHORS", "COPYING.LIB") diff --git a/desktop/kde/kde5-application/kate/files/org.kde.kate.desktop b/desktop/kde/kde5-application/kate/files/org.kde.kate.desktop new file mode 100755 index 0000000000..b5c6c59ae4 --- /dev/null +++ b/desktop/kde/kde5-application/kate/files/org.kde.kate.desktop @@ -0,0 +1,132 @@ +[Desktop Entry] +GenericName=Advanced Text Editor +GenericName[ar]=محرر نصوص متقدّم +GenericName[ast]=Editor de testu avanzáu +GenericName[bg]=Усъвършенстван текстов редактор +GenericName[bs]=Napredni uređivač teksta +GenericName[ca]=Editor de text avançat +GenericName[ca@valencia]=Editor de text avançat +GenericName[cs]=Pokročilý textový editor +GenericName[da]=Avanceret teksteditor +GenericName[de]=Erweiterter Texteditor +GenericName[el]=Προχωρημένος επεξεργαστής κειμένου +GenericName[en_GB]=Advanced Text Editor +GenericName[es]=Editor de texto avanzado +GenericName[et]=Täiustatud tekstiredaktor +GenericName[eu]=Testu-editore aurreratua +GenericName[fi]=Kehittynyt tekstimuokkain +GenericName[fr]=Éditeur de texte avancé +GenericName[ga]=Ardeagarthóir Téacs +GenericName[gl]=Editor avanzado de textos +GenericName[he]=עורך טקסט מתקדם +GenericName[hr]=Napredni uređivač teksta +GenericName[hu]=Speciális szövegszerkesztő +GenericName[ia]=Editor avantiate de texto +GenericName[is]=Þróaður textaritill +GenericName[it]=Editor di testi avanzato +GenericName[ja]=高度なテキストエディタ +GenericName[kk]=Үздік мәтін редакторы +GenericName[km]=កម្មវិធី​និពន្ធ​អត្ថបទ​កម្រិត​ខ្ពស់ +GenericName[ko]=고급 텍스트 편집기 +GenericName[lt]=Sudėtingesnis teksto redaktorius +GenericName[lv]=Jaudīgs teksta redaktors +GenericName[mr]=प्रगत पाठ्य संपादक +GenericName[nb]=Avansert skriveprogram +GenericName[nds]=Verwiedert Texteditor +GenericName[ne]=उन्नत पाठ सम्पादक +GenericName[nl]=Geavanceerde teksteditor +GenericName[nn]=Avansert skriveprogram +GenericName[pa]=ਤਕਨੀਕੀ ਟੈਕਸਟ ਐਡੀਟਰ +GenericName[pl]=Zaawansowany edytor tekstu +GenericName[pt]=Editor de Texto Avançado +GenericName[pt_BR]=Editor de textos avançado +GenericName[ro]=Redactor de text avansat +GenericName[ru]=Улучшенный текстовый редактор +GenericName[si]=උසස් පෙළ සකසනය +GenericName[sk]=Pokročilý textový editor +GenericName[sl]=Napreden urejevalnik besedil +GenericName[sr]=Напредни уређивач текста +GenericName[sr@ijekavian]=Напредни уређивач текста +GenericName[sr@ijekavianlatin]=Napredni uređivač teksta +GenericName[sr@latin]=Napredni uređivač teksta +GenericName[sv]=Avancerad texteditor +GenericName[tg]=Таҳриргари матнии беҳтаршуда +GenericName[tr]=Gelişmiş Metin Düzenleyici +GenericName[ug]=ئالىي تېكىست تەھرىرلىگۈچ +GenericName[uk]=Потужний текстовий редактор +GenericName[vi]=Trình biên tập văn bản nâng cao +GenericName[x-test]=xxAdvanced Text Editorxx +GenericName[zh_CN]=高级文本编辑器 +GenericName[zh_TW]=進階文字編輯器 +Name=Kate +Name[ar]=كيت +Name[ast]=Kate +Name[be]=Kate +Name[bg]=Kate +Name[bs]=Kate +Name[ca]=Kate +Name[ca@valencia]=Kate +Name[cs]=Kate +Name[da]=Kate +Name[de]=Kate +Name[el]=Kate +Name[en_GB]=Kate +Name[eo]=Kate +Name[es]=Kate +Name[et]=Kate +Name[eu]=Kate +Name[fi]=Kate +Name[fr]=Kate +Name[ga]=Kate +Name[gl]=Kate +Name[he]=Kate +Name[hu]=Kate +Name[ia]=Kate +Name[it]=Kate +Name[ja]=Kate +Name[kk]=Kate +Name[km]=Kate +Name[ko]=Kate +Name[lt]=Kate +Name[lv]=Kate +Name[mr]=केट +Name[ms]=Kate +Name[nb]=Kate +Name[nds]=Kate +Name[ne]=केट +Name[nl]=Kate +Name[nn]=Kate +Name[pa]=ਕੇਟ +Name[pl]=Kate +Name[pt]=Kate +Name[pt_BR]=Kate +Name[ro]=Kate +Name[ru]=Kate +Name[si]=Kate +Name[sk]=Kate +Name[sl]=Kate +Name[sr]=Кејт +Name[sr@ijekavian]=Кејт +Name[sr@ijekavianlatin]=Kate +Name[sr@latin]=Kate +Name[sv]=Kate +Name[tg]=Кейт +Name[tr]=Kate +Name[ug]=Kate +Name[uk]=Kate +Name[vi]=Kate +Name[wa]=Kate +Name[x-test]=xxKatexx +Name[zh_CN]=Kate +Name[zh_TW]=Kate +MimeType=text/plain; +Exec=kate -b %U +X-KDE-StartupNotify=false +X-KDE-HasTempFileOption=true +Icon=kate +X-DocPath=kate/index.html +Type=Application +Terminal=false +InitialPreference=9 +X-DBUS-ServiceName=org.kde.kate +Categories=Qt;KDE;Utility;TextEditor; diff --git a/desktop/kde/kde5-application/kate/pspec.xml b/desktop/kde/kde5-application/kate/pspec.xml new file mode 100755 index 0000000000..546b329175 --- /dev/null +++ b/desktop/kde/kde5-application/kate/pspec.xml @@ -0,0 +1,75 @@ + + + + + kate + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + app:gui + Advanced Text Editor + Plasma library and runtime components based upon KF5 and Qt5 + http://download.kde.org/stable/applications/15.04.2/src/kate-15.04.2.tar.xz + + qt5-base-devel + plasma-framework-devel + python3 + kdoctools-devel + extra-cmake-modules + + + + + kate + + qt5-base + libgcc + knewstuff + ki18n + kconfig + kguiaddons + kjobwidgets + kitemmodels + kio + kparts + ktexteditor + kwindowsystem + kxmlgui + plasma-framework + kwallet + kservice + kbookmarks + kcompletion + kcoreaddons + kdbusaddons + kiconthemes + ktextwidgets + threadweaver + kconfigwidgets + knotifications + kwidgetsaddons + + + /usr/share + /etc/xdg + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/man + /usr/share/doc + + + + + + 2015-06-03 + 15.04.2 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/kde5-plasma/kfilemetadata/actions.py b/desktop/kde/kde5-plasma/kfilemetadata/actions.py new file mode 100755 index 0000000000..d4e8d7f374 --- /dev/null +++ b/desktop/kde/kde5-plasma/kfilemetadata/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DLIB_INSTALL_DIR=lib \ + -DPYTHON_EXECUTABLE=/usr/bin/python \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("COPYING-CMAKE-SCRIPTS", "COPYING.LGPL-3") + diff --git a/desktop/kde/kde5-plasma/kfilemetadata/pspec.xml b/desktop/kde/kde5-plasma/kfilemetadata/pspec.xml new file mode 100755 index 0000000000..14b6375e74 --- /dev/null +++ b/desktop/kde/kde5-plasma/kfilemetadata/pspec.xml @@ -0,0 +1,71 @@ + + + + + kfilemetadata + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 library for extracting meta data from files. + KDE library for extracting meta data from files. + http://download.kde.org/stable/plasma/5.3.1/kfilemetadata-5.9.1.tar.xz + + qt5-base-devel + python + extra-cmake-modules + + + + + kfilemetadata + + qt5-base + ebook-tools + libgcc + exiv2-libs + taglib + ffmpeg + taglib + poppler-qt5 + karchive + ki18n + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + kfilemetadata-devel + Development files for kfilemetadata + + qt5-base-devel + kfilemetadata + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-03 + 5.9.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/baloo/actions.py b/desktop/kde/plasma/baloo/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/baloo/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/baloo/pspec.xml b/desktop/kde/plasma/baloo/pspec.xml new file mode 100755 index 0000000000..5301eb9950 --- /dev/null +++ b/desktop/kde/plasma/baloo/pspec.xml @@ -0,0 +1,99 @@ + + + + + baloo + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + Framework for searching and managing metadata + Baloo is a framework for searching and managing metada + http://download.kde.org/stable/plasma/5.3.2/baloo-5.9.2.tar.xz + + qt5-base-devel + kdoctools-devel + python3 + extra-cmake-modules + + + + + baloo + + qt5-base + qt5-declarative + xapian-core + kcoreaddons + kdbusaddons + kauth + libgcc + kcmutils + kconfig + kcrash + kdelibs4-support + ki18n + kidletime + kio + krunner + solid + kf5-kfilemetadata + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + baloo + + + baloo + + + + + baloo-devel + Development files for baloo-widgets + + qt5-base-devel + baloo + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + baloo-devel + + + baloo-devel + + + + + + 2015-07-01 + 5.9.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.9.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/bluedevil/actions.py b/desktop/kde/plasma/bluedevil/actions.py new file mode 100644 index 0000000000..445fd55022 --- /dev/null +++ b/desktop/kde/plasma/bluedevil/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + #pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/plasma/bluedevil/pspec.xml b/desktop/kde/plasma/bluedevil/pspec.xml new file mode 100755 index 0000000000..37410fce4f --- /dev/null +++ b/desktop/kde/plasma/bluedevil/pspec.xml @@ -0,0 +1,70 @@ + + + + + bluedevil + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + KDE 5 Bluetooth Stack + Integrate the Bluetooth technology within KDE workspace and applications + http://download.kde.org/stable/plasma/5.3.2/bluedevil-5.3.2.tar.xz + + qt5-base-devel + kded-devel + plasma-framework-devel + extra-cmake-modules + + + + + bluedevil + + qt5-base + libgcc + bluez-qt + kio + ki18n + kconfig + qt5-declarative + kcompletion + kcoreaddons + kdbusaddons + kiconthemes + kconfigwidgets + knotifications + kwidgetsaddons + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/bluez-qt/actions.py b/desktop/kde/plasma/bluez-qt/actions.py new file mode 100644 index 0000000000..8959ab078b --- /dev/null +++ b/desktop/kde/plasma/bluez-qt/actions.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import shelltools +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure("-DUDEV_RULES_INSTALL_DIR=/usr/lib/udev/rules.d") + +def build(): + kde5.make() + +def install(): + kde5.install() + + #pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/plasma/bluez-qt/pspec.xml b/desktop/kde/plasma/bluez-qt/pspec.xml new file mode 100755 index 0000000000..0601c3afe3 --- /dev/null +++ b/desktop/kde/plasma/bluez-qt/pspec.xml @@ -0,0 +1,65 @@ + + + + + bluez-qt + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + GPLv2 + library + Qt wrapper for KDE 5 Bluez DBus API + Qt wrapper for KDE 5 DBus API. + http://download.kde.org/stable/plasma/5.3.2/bluez-qt-5.3.2.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + bluez-qt + + qt5-base + qt5-declarative + libgcc + + + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + bluez-qt-devel + Development files for bluez-qt + + qt5-base-devel + bluez-qt + + + /usr/include + /usr/lib/cmake + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/breeze/actions.py b/desktop/kde/plasma/breeze/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/breeze/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/breeze/pspec.xml b/desktop/kde/plasma/breeze/pspec.xml new file mode 100755 index 0000000000..c163ad6c79 --- /dev/null +++ b/desktop/kde/plasma/breeze/pspec.xml @@ -0,0 +1,112 @@ + + + + + breeze + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 Plasma artwork + Artwork, styles and assets for the Breeze visual style for the Plasma Desktop + http://download.kde.org/stable/plasma/5.3.2/breeze-5.3.2.tar.xz + + qt5-base-devel + libxcb-devel + libgcc + qt5-x11extras-devel + frameworkintegration-devel + kdecorations-devel + kcoreaddons-devel + ki18n-devel + kwindowsystem-devel + kconfig-devel + kguiaddons-devel + kcoreaddons-devel + kconfigwidgets-devel + kwidgetsaddons-devel + extra-cmake-modules + + + + + breeze-style + + qt5-base + libgcc + kconfig + kguiaddons + kcoreaddons + kconfigwidgets + kwidgetsaddons + qt5-x11extras + libxcb + frameworkintegration + kcmutils + kcoreaddons + ki18n + kwindowsystem + kdecorations + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + breeze-icons + + breeze-style + + + /usr/share/icons + + + + + breeze-cursors + + breeze-style + + + /usr/share/icons/breeze_cursors + + + + + breeze-wallpapers + + qt5-base + + + /usr/share/wallpapers + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kde-cli-tools/actions.py b/desktop/kde/plasma/kde-cli-tools/actions.py new file mode 100644 index 0000000000..ccb7abe2b6 --- /dev/null +++ b/desktop/kde/plasma/kde-cli-tools/actions.py @@ -0,0 +1,18 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + diff --git a/desktop/kde/plasma/kde-cli-tools/comar/package.py b/desktop/kde/plasma/kde-cli-tools/comar/package.py new file mode 100644 index 0000000000..296728595f --- /dev/null +++ b/desktop/kde/plasma/kde-cli-tools/comar/package.py @@ -0,0 +1,7 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os + +def postInstall(fromVersion, fromRelease, toVersion, toRelease): + os.system("ln -s /usr/lib/kf5/kdesu /usr/bin/kdesu") diff --git a/desktop/kde/plasma/kde-cli-tools/pspec.xml b/desktop/kde/plasma/kde-cli-tools/pspec.xml new file mode 100755 index 0000000000..f328ddf993 --- /dev/null +++ b/desktop/kde/plasma/kde-cli-tools/pspec.xml @@ -0,0 +1,82 @@ + + + + + kde-cli-tools + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Additional client tools for KDE applications + Tools based on KDE Frameworks 5 to better interact with the system + http://download.kde.org/stable/plasma/5.3.2/kde-cli-tools-5.3.2.tar.xz + + qt5-base-devel + libX11-devel + libgcc + kdoctools-devel + python3 + extra-cmake-modules + + + + + kde-cli-tools + + qt5-base + qt5-svg + libX11 + libgcc + kio + ki18n + kservice + qt5-x11extras + kcompletion + kcoreaddons + kiconthemes + kwindowsystem + kconfigwidgets + kwidgetsaddons + kcmutils + kconfig + kdelibs4-support + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/man + /usr/share/doc + + + System.Package + + + kdesu + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kde-gtk-config/actions.py b/desktop/kde/plasma/kde-gtk-config/actions.py new file mode 100644 index 0000000000..ccb7abe2b6 --- /dev/null +++ b/desktop/kde/plasma/kde-gtk-config/actions.py @@ -0,0 +1,18 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + diff --git a/desktop/kde/plasma/kde-gtk-config/pspec.xml b/desktop/kde/plasma/kde-gtk-config/pspec.xml new file mode 100755 index 0000000000..40490998a7 --- /dev/null +++ b/desktop/kde/plasma/kde-gtk-config/pspec.xml @@ -0,0 +1,90 @@ + + + + + kde-gtk-config + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + GTK2 and GTK3 Configurator for KDE + Configuration dialog to adapt GTK+ applications appearance to your taste under KDE. + http://download.kde.org/stable/plasma/5.3.2/kde-gtk-config-5.3.2.tar.xz + + qt5-base-devel + kio-devel + libgcc + glib2-devel + ki18n-devel + kcoreaddons-devel + kiconthemes-devel + kwidgetsaddons-devel + kcmutils-devel + karchive-devel + kauth-devel + kconfigwidgets-devel + knewstuff-devel + gtk2-devel + gtk3-devel + extra-cmake-modules + + + + + kde-gtk-config + + qt5-base + libgcc + glib2 + kio + ki18n + kcoreaddons + kiconthemes + kwidgetsaddons + kcmutils + karchive + kauth + knewstuff + kconfigwidgets + gtk2 + gtk3 + + + /usr/share + /etc/xdg/cgc* + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-runtime + + + kde-runtime + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kdecorations/actions.py b/desktop/kde/plasma/kdecorations/actions.py new file mode 100644 index 0000000000..7ad3db044b --- /dev/null +++ b/desktop/kde/plasma/kdecorations/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md") diff --git a/desktop/kde/plasma/kdecorations/pspec.xml b/desktop/kde/plasma/kdecorations/pspec.xml new file mode 100644 index 0000000000..85452c9ae9 --- /dev/null +++ b/desktop/kde/plasma/kdecorations/pspec.xml @@ -0,0 +1,74 @@ + + + + + kdecorations + https://projects.kde.org/projects/kde/workspace/kdecoration + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv3 + library + Plugin based library to create window decorations + Plugin based library to create window decorations + http://download.kde.org/stable/plasma/5.3.2/kdecoration-5.3.2.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + kdecorations + + qt5-base + libgcc + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + kdecorations-devel + Development files for kdecorations + + qt5-base-devel + kdecorations + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + kde-workspace-devel + + + kde-workspace-devel + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kdecorations/translations.xml b/desktop/kde/plasma/kdecorations/translations.xml new file mode 100644 index 0000000000..7ceb2c83f3 --- /dev/null +++ b/desktop/kde/plasma/kdecorations/translations.xml @@ -0,0 +1,8 @@ + + + + kde5-kdecorations + Plugin based library to create window decorations + Plugin based library to create window decorations + + diff --git a/desktop/kde/plasma/kdeplasma-addons/actions.py b/desktop/kde/plasma/kdeplasma-addons/actions.py new file mode 100644 index 0000000000..ce3744176e --- /dev/null +++ b/desktop/kde/plasma/kdeplasma-addons/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + #pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/kdeplasma-addons/pspec.xml b/desktop/kde/plasma/kdeplasma-addons/pspec.xml new file mode 100755 index 0000000000..2014c79183 --- /dev/null +++ b/desktop/kde/plasma/kdeplasma-addons/pspec.xml @@ -0,0 +1,91 @@ + + + + + kdeplasma-addons + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Additional client tools for KDE applications + Additional client tools for KDE applications + http://download.kde.org/stable/plasma/5.3.2/kdeplasma-addons-5.3.2.tar.xz + + qt5-base-devel + libgcc + libxcb-devel + glib2-devel + scim-devel + ibus-devel + kdoctools-devel + kdelibs4-support-devel + extra-cmake-modules + + + + + kdeplasma-addons + + qt5-base + plasma-framework + libgcc + libxcb + glib2 + knewstuff + krunner + kio + ki18n + kross + sonnet + kconfig + kxmlgui + karchive + kpackage + kservice + qt5-x11extras + qt5-declarative + kcompletion + kcoreaddons + kwindowsystem + kconfigwidgets + knotifications + kwidgetsaddons + kunitconversion + kdelibs4-support + ibus + scim-libs + xcb-util-keysyms + + + /usr/share + /etc/xdg + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kfilemetadata/actions.py b/desktop/kde/plasma/kfilemetadata/actions.py new file mode 100755 index 0000000000..d4e8d7f374 --- /dev/null +++ b/desktop/kde/plasma/kfilemetadata/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DLIB_INSTALL_DIR=lib \ + -DPYTHON_EXECUTABLE=/usr/bin/python \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("COPYING-CMAKE-SCRIPTS", "COPYING.LGPL-3") + diff --git a/desktop/kde/plasma/kfilemetadata/pspec.xml b/desktop/kde/plasma/kfilemetadata/pspec.xml new file mode 100755 index 0000000000..58611ffc49 --- /dev/null +++ b/desktop/kde/plasma/kfilemetadata/pspec.xml @@ -0,0 +1,78 @@ + + + + + kfilemetadata + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 library for extracting meta data from files. + KDE library for extracting meta data from files. + http://download.kde.org/stable/plasma/5.3.2/kfilemetadata-5.9.2.tar.xz + + qt5-base-devel + python + extra-cmake-modules + + + + + kfilemetadata + + qt5-base + ebook-tools + libgcc + exiv2-libs + taglib + ffmpeg + taglib + poppler-qt5 + karchive + ki18n + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + kfilemetadata-devel + Development files for kfilemetadata + + qt5-base-devel + kfilemetadata + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-07-01 + 5.9.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-03 + 5.9.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/khelpcenter/actions.py b/desktop/kde/plasma/khelpcenter/actions.py new file mode 100644 index 0000000000..0b00c0481d --- /dev/null +++ b/desktop/kde/plasma/khelpcenter/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING", "DESIGN") diff --git a/desktop/kde/plasma/khelpcenter/pspec.xml b/desktop/kde/plasma/khelpcenter/pspec.xml new file mode 100755 index 0000000000..d10fd3fd1a --- /dev/null +++ b/desktop/kde/plasma/khelpcenter/pspec.xml @@ -0,0 +1,79 @@ + + + + + khelpcenter + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE Help Center + KDE help center utility to read help documentation about various KDE applications. + http://download.kde.org/stable/plasma/5.3.2/khelpcenter-5.3.2.tar.xz + + qt5-base-devel + python3 + qt5-libdbusmenu-devel + kinit-devel + libgcc + kcmutils-devel + khtml-devel + kdelibs4-support-devel + extra-cmake-modules + + + + + khelpcenter + + qt5-base + kio + libgcc + khtml + ki18n + kparts + kcodecs + kconfig + kxmlgui + kcmutils + kservice + kcompletion + kcoreaddons + kdbusaddons + kiconthemes + kwindowsystem + kconfigwidgets + kwidgetsaddons + kdelibs4-support + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/khotkeys/actions.py b/desktop/kde/plasma/khotkeys/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/khotkeys/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/khotkeys/pspec.xml b/desktop/kde/plasma/khotkeys/pspec.xml new file mode 100755 index 0000000000..f0a7f1adf1 --- /dev/null +++ b/desktop/kde/plasma/khotkeys/pspec.xml @@ -0,0 +1,104 @@ + + + + + khotkeys + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 hotkey daemon + KDE hotkey daemon module allows you to configure custom keyboard shortcuts and mouse gestures. + http://download.kde.org/stable/plasma/5.3.2/khotkeys-5.3.2.tar.xz + + qt5-base-devel + python3 + kdoctools-devel + libgcc + libX11-devel + kconfig-devel + kservice-devel + qt5-x11extras-devel + kcompletion-devel + kcoreaddons-devel + ktextwidgets-devel + kwindowsystem-devel + kconfigwidgets-devel + kwidgetsaddons-devel + kcmutils-devel + kdbusaddons-devel + kdelibs4-support-devel + kglobalaccel-devel + ki18n-devel + kio-devel + kxmlgui-devel + plasma-framework-devel + plasma-workspace-devel + libgcc + extra-cmake-modules + + + + + khotkeys + + qt5-base + kconfig + libgcc + libX11 + kservice + qt5-x11extras + kcompletion + kcoreaddons + ktextwidgets + kwindowsystem + kconfigwidgets + kwidgetsaddons + kcmutils + kdbusaddons + kdelibs4-support + kglobalaccel + ki18n + kio + kxmlgui + plasma-framework + plasma-workspace + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-02 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-15 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kinfocenter/actions.py b/desktop/kde/plasma/kinfocenter/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/kinfocenter/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/kinfocenter/files/kcm-about-distrorc b/desktop/kde/plasma/kinfocenter/files/kcm-about-distrorc new file mode 100644 index 0000000000..978beb6866 --- /dev/null +++ b/desktop/kde/plasma/kinfocenter/files/kcm-about-distrorc @@ -0,0 +1,4 @@ +[General] +2 Name=Pisi Linux +3 LogoPath=/usr/share/apps/about-distro/pisilinux.png +4 Website=http://www.pisilinux.org/ diff --git a/desktop/kde/plasma/kinfocenter/files/pisilinux-kinfocenter.diff b/desktop/kde/plasma/kinfocenter/files/pisilinux-kinfocenter.diff new file mode 100644 index 0000000000..97531dd6ed --- /dev/null +++ b/desktop/kde/plasma/kinfocenter/files/pisilinux-kinfocenter.diff @@ -0,0 +1,91 @@ +diff --git a/Modules/infosummary/infosum.cpp b/Modules/infosummary/infosum.cpp +index e58beb0..02f000c 100644 +--- a/Modules/infosummary/infosum.cpp ++++ b/Modules/infosummary/infosum.cpp +@@ -61,12 +61,12 @@ void InfoSumPlugin::createDisplay() + void InfoSumPlugin::createOsBox() + { + DefaultBoxWidget *osWidget = new DefaultBoxWidget(); +- osWidget->setIcon(QIcon::fromTheme(QStringLiteral("kde"))); ++ osWidget->setIcon(QIcon::fromTheme(QStringLiteral("PisiLinux"))); + osWidget->setLabelTitles(i18n("OS Version"),i18n("KDE Plasma Version"), i18n("Hostname")); + + OsDepInfo *osInfo = new OsDepInfo(); + +- osWidget->setLabelOne(osInfo->osVersion()); ++ osWidget->setLabelOne(osInfo->osVersion()+'\n'+osInfo->distroName()); + osWidget->setLabelTwo(QString(PLASMA_VERSION_STRING)); + osWidget->setLabelThree(osInfo->hostName()); + osWidget->setWhatsThis(i18nc("OS whats this","This shows information about your Operating System")); +diff --git a/Modules/infosummary/osdepinfo.cpp b/Modules/infosummary/osdepinfo.cpp +index 34afecc..8b7043f 100644 +--- a/Modules/infosummary/osdepinfo.cpp ++++ b/Modules/infosummary/osdepinfo.cpp +@@ -37,6 +37,11 @@ const QString OsDepInfo::osVersion() + return m_osVersion; + } + ++const QString OsDepInfo::distroName() ++{ ++ return m_distroName; ++} ++ + #if defined(Q_OS_UNIX) + #include "osdepinfo_unix.cpp" + #else +@@ -50,6 +55,7 @@ void OsDepInfo::setDepInfo() + { + m_osVersion.clear(); + m_hostName.clear(); ++ m_distroName.clear(); + } + + #endif // Q_OS_UNIX +diff --git a/Modules/infosummary/osdepinfo.h b/Modules/infosummary/osdepinfo.h +index 3452e8b..564a86c 100644 +--- a/Modules/infosummary/osdepinfo.h ++++ b/Modules/infosummary/osdepinfo.h +@@ -32,12 +32,14 @@ class OsDepInfo + + const QString hostName(); + const QString osVersion(); ++ const QString distroName(); + + private: + void setDepInfo(); + + QString m_hostName; + QString m_osVersion; ++ QString m_distroName; + }; + + #endif //OSDEPINFO +diff --git a/Modules/infosummary/osdepinfo_unix.cpp b/Modules/infosummary/osdepinfo_unix.cpp +index d237337..3971945 100644 +--- a/Modules/infosummary/osdepinfo_unix.cpp ++++ b/Modules/infosummary/osdepinfo_unix.cpp +@@ -23,6 +23,18 @@ + #include "osdepinfo.h" + + #include ++#include ++#include ++#include ++ ++QString getDistro() ++{ ++ KConfig osRelease( "/etc/os-release", KConfig::SimpleConfig ); ++ KConfigGroup osR( &osRelease, "" ); ++ QString pretty = osR.readEntry("PRETTY_NAME"); ++ pretty.remove('"'); ++ return(pretty); ++} + + void OsDepInfo::setDepInfo() + { +@@ -31,4 +43,5 @@ void OsDepInfo::setDepInfo() + + m_osVersion = QString(unixInfo.sysname) + ' ' + QString(unixInfo.release); + m_hostName = QString(unixInfo.nodename); ++ m_distroName = getDistro(); + } diff --git a/desktop/kde/plasma/kinfocenter/pspec.xml b/desktop/kde/plasma/kinfocenter/pspec.xml new file mode 100755 index 0000000000..0485cd9598 --- /dev/null +++ b/desktop/kde/plasma/kinfocenter/pspec.xml @@ -0,0 +1,114 @@ + + + + + kinfocenter + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 info center + KDE5 Utility that provides information about a computer system. + http://download.kde.org/stable/plasma/5.3.2/kinfocenter-5.3.2.tar.xz + + qt5-base-devel + python3 + pciutils-devel + libX11-devel + libgcc + kcmutils-devel + kcompletion-devel + kconfig-devel + kdelibs4-support-devel + kdoctools-devel + ki18n-devel + kio-devel + kwindowsystem-devel + kxmlgui-devel + kservice-devel + kcoreaddons-devel + kdbusaddons-devel + kiconthemes-devel + kconfigwidgets-devel + kwidgetsaddons-devel + libraw1394-devel + plasma-framework-devel + solid-devel + pciutils-devel + mesa-glu-devel + extra-cmake-modules + + + + + + + + kinfocenter + + qt5-base + qt5-declarative + pciutils + libX11 + libgcc + kservice + kcoreaddons + kdbusaddons + kiconthemes + kconfigwidgets + kwidgetsaddons + kcompletion + kconfig + kdelibs4-support + ki18n + kio + kxmlgui + libraw1394 + kwayland + kcmutils + solid + kdeclarative + mesa-glu + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kcm-about-distrorc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kio-extras/actions.py b/desktop/kde/plasma/kio-extras/actions.py new file mode 100644 index 0000000000..1b62c3b92f --- /dev/null +++ b/desktop/kde/plasma/kio-extras/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("DESIGN", "DEBUG.howto") diff --git a/desktop/kde/plasma/kio-extras/pspec.xml b/desktop/kde/plasma/kio-extras/pspec.xml new file mode 100755 index 0000000000..665c8a0947 --- /dev/null +++ b/desktop/kde/plasma/kio-extras/pspec.xml @@ -0,0 +1,111 @@ + + + + + kio-extras + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Additional KIO-slaves for KDE5 applications + Additional KIO-slaves for KDE5 applications + http://download.kde.org/stable/plasma/5.3.2/kio-extras-5.3.2.tar.xz + + qt5-base-devel + python3 + libgcc + gettext + shared-mime-info + libmtp-devel + shared-mime-info + openexr-devel + openslp-devel + karchive-devel + kconfig-devel + kcoreaddons-devel + kdbusaddons-devel + kdelibs4-support-devel + kdnssd-devel + kdoctools-devel + khtml-devel + ki18n-devel + kiconthemes-devel + kio-devel + solid-devel + libjpeg-turbo-devel + libssh-devel + openslp-devel + qt5-phonon-devel + samba-devel + exiv2-devel + extra-cmake-modules + + + + + kio-extras + + qt5-base + qt5-svg + libgcc + libmtp + kpty + kparts + kcodecs + kxmlgui + kservice + kbookmarks + kguiaddons + kconfigwidgets + openexr + karchive + kconfig + kcoreaddons + kdbusaddons + kdelibs4-support + kdnssd + kdoctools + khtml + ki18n + kiconthemes + kio + solid + libjpeg-turbo + libssh + openslp + qt5-phonon + samba + exiv2-libs + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-14 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kmenuedit/actions.py b/desktop/kde/plasma/kmenuedit/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/kmenuedit/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/kmenuedit/pspec.xml b/desktop/kde/plasma/kmenuedit/pspec.xml new file mode 100755 index 0000000000..f39a209cbd --- /dev/null +++ b/desktop/kde/plasma/kmenuedit/pspec.xml @@ -0,0 +1,78 @@ + + + + + kmenuedit + http://www.kde.org + + Pisi Linux admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Provides the interface and basic tools for the KDE workspace + Provides the interface and basic tools for the KDE workspace + http://download.kde.org/stable/plasma/5.3.2/kmenuedit-5.3.2.tar.xz + + qt5-base-devel + kdoctools-devel + libgcc + extra-cmake-modules + python3 + + + + + kmenuedit + + qt5-base + libgcc + kconfig + kservice + kcompletion + kcoreaddons + kconfigwidgets + kwidgetsaddons + kdbusaddons + kdelibs4-support + ki18n + kiconthemes + kio + kxmlgui + sonnet + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-15 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kscreen/actions.py b/desktop/kde/plasma/kscreen/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/kscreen/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/kscreen/pspec.xml b/desktop/kde/plasma/kscreen/pspec.xml new file mode 100755 index 0000000000..4c495b428c --- /dev/null +++ b/desktop/kde/plasma/kscreen/pspec.xml @@ -0,0 +1,69 @@ + + + + + kscreen + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Provides the interface and basic tools for the KDE workspace + Provides the interface and basic tools for the KDE workspace + http://download.kde.org/stable/plasma/5.3.2/kscreen-5.3.2.tar.xz + + qt5-base-devel + qt5-graphicaleffects + python3 + libgcc + kdoctools-devel + extra-cmake-modules + + + + + kscreen + + qt5-base + libgcc + libkscreen + qt5-declarative + kcoreaddons + kglobalaccel + kconfigwidgets + kwidgetsaddons + kdbusaddons + ki18n + kxmlgui + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-02 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/ksshaskpass/actions.py b/desktop/kde/plasma/ksshaskpass/actions.py new file mode 100644 index 0000000000..b7b74bc57e --- /dev/null +++ b/desktop/kde/plasma/ksshaskpass/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README", "COPYING", "ChangeLog") diff --git a/desktop/kde/plasma/ksshaskpass/files/ksshaskpass.sh b/desktop/kde/plasma/ksshaskpass/files/ksshaskpass.sh new file mode 100644 index 0000000000..ae0aaa9e68 --- /dev/null +++ b/desktop/kde/plasma/ksshaskpass/files/ksshaskpass.sh @@ -0,0 +1,2 @@ +test -f /usr/bin/ksshaskpass && export SSH_ASKPASS="/usr/bin/ksshaskpass" + diff --git a/desktop/kde/plasma/ksshaskpass/pspec.xml b/desktop/kde/plasma/ksshaskpass/pspec.xml new file mode 100755 index 0000000000..911c464734 --- /dev/null +++ b/desktop/kde/plasma/ksshaskpass/pspec.xml @@ -0,0 +1,67 @@ + + + + + ksshaskpass + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + ssh-add helper that uses kwallet and kpassworddialog + ssh-add helper that uses kwallet and kpassworddialog + http://download.kde.org/stable/plasma/5.3.2/ksshaskpass-5.3.2.tar.xz + + qt5-base-devel + kdoctools-devel + libgcc + python3 + extra-cmake-modules + + + + + ksshaskpass + + qt5-base + libgcc + kcoreaddons + kwidgetsaddons + ki18n + kwallet + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/man + /usr/share/doc + + + ksshaskpass.sh + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-18 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/ksysguard/actions.py b/desktop/kde/plasma/ksysguard/actions.py new file mode 100644 index 0000000000..ec16cb043f --- /dev/null +++ b/desktop/kde/plasma/ksysguard/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING", "COPYING.DOC", "README") diff --git a/desktop/kde/plasma/ksysguard/files/0001-Use-run-for-ksysguardd-s-pid-file.patch b/desktop/kde/plasma/ksysguard/files/0001-Use-run-for-ksysguardd-s-pid-file.patch new file mode 100644 index 0000000000..d6c9a4a4af --- /dev/null +++ b/desktop/kde/plasma/ksysguard/files/0001-Use-run-for-ksysguardd-s-pid-file.patch @@ -0,0 +1,25 @@ +From 69a8d66c4682410537ce8d1f2b7012fb49773005 Mon Sep 17 00:00:00 2001 +From: Hrvoje Senjan +Date: Wed, 3 Sep 2014 23:13:35 +0200 +Subject: [PATCH 1/1] Use /run for ksysguardd's pid file + +--- + ksysguardd/ksysguardd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ksysguardd/ksysguardd.c b/ksysguardd/ksysguardd.c +index a5ecca1..883f8a1 100644 +--- a/ksysguardd/ksysguardd.c ++++ b/ksysguardd/ksysguardd.c +@@ -62,7 +62,7 @@ static ClientInfo ClientList[ MAX_CLIENTS ]; + static int SocketPort = -1; + static unsigned char BindToAllInterfaces = 0; + static int CurrentSocket; +-static const char LockFile[] = "/var/run/ksysguardd.pid"; ++static const char LockFile[] = "/run/ksysguardd.pid"; + static const char *ConfigFile = KSYSGUARDDRCFILE; + + void signalHandler( int sig ); +-- +2.1.0 + diff --git a/desktop/kde/plasma/ksysguard/pspec.xml b/desktop/kde/plasma/ksysguard/pspec.xml new file mode 100755 index 0000000000..ecb9690d8d --- /dev/null +++ b/desktop/kde/plasma/ksysguard/pspec.xml @@ -0,0 +1,110 @@ + + + + + ksysguard + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE system monitor + KDE5 system monitor daemon and service. + http://download.kde.org/stable/plasma/5.3.2/ksysguard-5.3.2.tar.xz + + qt5-base-devel + libgcc + kio-devel + kxmlgui-devel + kcompletion-devel + kdbusaddons-devel + kiconthemes-devel + kwindowsystem-devel + kconfigwidgets-devel + knotifications-devel + kwidgetsaddons-devel + lm_sensors-devel + python3 + extra-cmake-modules + kdoctools-devel + kconfig-devel + kcoreaddons-devel + kdelibs4-support-devel + ki18n-devel + kinit + kitemviews-devel + knewstuff-devel + libksysguard-devel + plasma-framework-devel + + + + + + + + ksysguard + + qt5-base + libgcc + icon-theme-hicolor + kio + kxmlgui + kcompletion + kdbusaddons + kiconthemes + kwindowsystem + kconfigwidgets + knotifications + kwidgetsaddons + lm_sensors + icon-theme-hicolor + xdg-utils + kdoctools + kconfig + kcoreaddons + kdelibs4-support + ki18n + kinit + kitemviews + knewstuff + libksysguard + plasma-framework + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-12 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kwayland/actions.py b/desktop/kde/plasma/kwayland/actions.py new file mode 100644 index 0000000000..389685f7a8 --- /dev/null +++ b/desktop/kde/plasma/kwayland/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING.LIB") diff --git a/desktop/kde/plasma/kwayland/pspec.xml b/desktop/kde/plasma/kwayland/pspec.xml new file mode 100644 index 0000000000..bd37e89e0a --- /dev/null +++ b/desktop/kde/plasma/kwayland/pspec.xml @@ -0,0 +1,65 @@ + + + + + kwayland + http://www.kde.org + + Stefan Gronewold(groni) + groni@pisilinux.org + + LGPLv3 + library + Qt-style Client and Server library wrapper for the Wayland libraries + Qt-style Client and Server library wrapper for the Wayland libraries + http://download.kde.org/stable/plasma/5.3.2/kwayland-5.3.2.tar.xz + + qt5-base-devel + libgcc + extra-cmake-modules + wayland-devel + + + + + kwayland + + qt5-base + libgcc + wayland-client + wayland-server + + + /usr/lib + /usr/share/doc + + + + kwayland-devel + + qt5-base-devel + kwayland + + + /usr/lib/cmake + /usr/include + /usr/lib/pkgconfig + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kwayland/translations.xml b/desktop/kde/plasma/kwayland/translations.xml new file mode 100644 index 0000000000..949fb38c63 --- /dev/null +++ b/desktop/kde/plasma/kwayland/translations.xml @@ -0,0 +1,8 @@ + + + + kde5-kwayland + Qt-style Client and Server library wrapper for the Wayland libraries + Qt-style Client and Server library wrapper for the Wayland libraries + + diff --git a/desktop/kde/plasma/kwin/actions.py b/desktop/kde/plasma/kwin/actions.py new file mode 100644 index 0000000000..f586811bf7 --- /dev/null +++ b/desktop/kde/plasma/kwin/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COMPLIANCE", "CONFIGURING", "COPYING", "HACKING", "README") diff --git a/desktop/kde/plasma/kwin/pspec.xml b/desktop/kde/plasma/kwin/pspec.xml new file mode 100755 index 0000000000..f90267b54e --- /dev/null +++ b/desktop/kde/plasma/kwin/pspec.xml @@ -0,0 +1,161 @@ + + + + + kwin + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 window manager + KWin is the window manager of the K desktop environment. + http://download.kde.org/stable/plasma/5.3.2/kwin-5.3.2.tar.xz + + qt5-base-devel + qt5-tools-devel + qt5-multimedia-devel + kwayland + kdecorations-devel + qt5-script-devel + qt5-x11extras-devel + qt5-declarative-devel + kiconthemes-devel + kauth-devel + libXxf86vm-devel + libXext-devel + kf5-kactivities-devel + kcmutils-devel + kcompletion-devel + kconfig-devel + kconfigwidgets-devel + kcoreaddons-devel + kcrash-devel + kdeclarative-devel + kdoctools-devel + kglobalaccel-devel + ki18n-devel + kinit + kio-devel + knewstuff-devel + knotifications-devel + kservice-devel + kwidgetsaddons-devel + kwindowsystem-devel + kxmlgui-devel + plasma-framework-devel + mesa-devel + libICE-devel + libSM-devel + wayland-devel + wayland-client + wayland-cursor + libxkbcommon-devel + xcb-util-keysyms-devel + xcb-util-image-devel + libXcursor-devel + libepoxy-devel + libgcc + libX11-devel + libxcb-devel + + + + + kwin + + qt5-base + libgcc + libX11 + libxcb + qt5-script+ + kwayland+ + kdecorations+ + qt5-x11extras+ + qt5-declarative+ + kiconthemes+ + kauth+ + kf5-kactivities+ + kcmutils+ + kcompletion+ + kconfig+ + kconfigwidgets+ + kcoreaddons+ + kcrash+ + kdeclarative+ + kglobalaccel+ + ki18n+ + kio+ + knewstuff+ + knotifications+ + kservice+ + kwidgetsaddons+ + kwindowsystem+ + kxmlgui+ + plasma-framework+ + mesa+ + libICE+ + libSM+ + wayland-cursor+ + libxkbcommon+ + xcb-util-keysyms+ + xcb-util-image+ + libepoxy+ + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + kwin-devel + Development files for kwin + + qt5-base-devel + kwin + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + kde-workspace-devel + + + kde-workspace-devel + + + + + + 2015-07-02 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-12 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/kwrited/actions.py b/desktop/kde/plasma/kwrited/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/kwrited/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/kwrited/pspec.xml b/desktop/kde/plasma/kwrited/pspec.xml new file mode 100755 index 0000000000..741843fbaf --- /dev/null +++ b/desktop/kde/plasma/kwrited/pspec.xml @@ -0,0 +1,71 @@ + + + + + kwrited + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 daemon listening for wall and write messages + KDE5 daemon listening for wall and write messages + http://download.kde.org/stable/plasma/5.3.2/kwrited-5.3.2.tar.xz + + qt5-base-devel + ki18n-devel + kdoctools-devel + kcoreaddons-devel + knotifications-devel + kpty-devel + libgcc + kdelibs4-support-devel + kdbusaddons-devel + extra-cmake-modules + + + + + kwrited + + qt5-base + kpty + libgcc + kcoreaddons + knotifications + kdbusaddons + + + /usr/share + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-14 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/libkscreen/actions.py b/desktop/kde/plasma/libkscreen/actions.py new file mode 100644 index 0000000000..1ead2575cd --- /dev/null +++ b/desktop/kde/plasma/libkscreen/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING.LIB", "COPYING") diff --git a/desktop/kde/plasma/libkscreen/pspec.xml b/desktop/kde/plasma/libkscreen/pspec.xml new file mode 100755 index 0000000000..f84f999ea5 --- /dev/null +++ b/desktop/kde/plasma/libkscreen/pspec.xml @@ -0,0 +1,76 @@ + + + + + libkscreen + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 screen management library + Dynamic display management library for KDE + http://download.kde.org/stable/plasma/5.3.2/libkscreen-5.3.2.tar.xz + + qt5-base-devel + qt5-x11extras-devel + libgcc + libxcb-devel + xcb-util-devel + xcb-util-image-devel + xcb-util-keysyms-devel + libXcursor-devel + libXrandr-devel + extra-cmake-modules + + + + + libkscreen + + qt5-base + libxcb + libgcc + qt5-x11extras + + + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + libkscreen-devel + Development files for libkscreen + + qt5-base-devel + libkscreen + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-07-02 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-06 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/libksysguard/actions.py b/desktop/kde/plasma/libksysguard/actions.py new file mode 100644 index 0000000000..389685f7a8 --- /dev/null +++ b/desktop/kde/plasma/libksysguard/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING.LIB") diff --git a/desktop/kde/plasma/libksysguard/files/libksysguard_kauth.diff b/desktop/kde/plasma/libksysguard/files/libksysguard_kauth.diff new file mode 100644 index 0000000000..b267af97d1 --- /dev/null +++ b/desktop/kde/plasma/libksysguard/files/libksysguard_kauth.diff @@ -0,0 +1,339 @@ +diff --git a/processcore/CMakeLists.txt b/processcore/CMakeLists.txt +index 9fef4ec..939d055 100644 +--- a/processcore/CMakeLists.txt ++++ b/processcore/CMakeLists.txt +@@ -41,18 +41,18 @@ install( FILES processes.h process.h DESTINATION ${INCLUDE_INSTALL_DIR}/ksysguar + #------ KAuth stuff + + # Auth example helper +-# set(ksysguardprocesslist_helper_srcs +-# helper.cpp +-# process.cpp +-# processes_local_p.cpp +-# processes_base_p.cpp) +-# +-# add_executable(ksysguardprocesslist_helper ${ksysguardprocesslist_helper_srcs}) +-# target_link_libraries(ksysguardprocesslist_helper ) +-# install(TARGETS ksysguardprocesslist_helper DESTINATION ${LIBEXEC_INSTALL_DIR}) +-# +-# kauth_install_helper_files(ksysguardprocesslist_helper org.kde.ksysguard.processlisthelper root) +-# kauth_install_actions(org.kde.ksysguard.processlisthelper actions.actions) +-# +-# set_target_properties(ksysguardprocesslist_helper PROPERTIES COMPILE_FLAGS "-Wall -ggdb") ++set(ksysguardprocesslist_helper_srcs ++ helper.cpp ++ process.cpp ++ processes_local_p.cpp ++ processes_base_p.cpp) ++ ++add_executable(ksysguardprocesslist_helper ${ksysguardprocesslist_helper_srcs}) ++target_link_libraries(ksysguardprocesslist_helper Qt5::Core KF5::Auth KF5::I18n) ++install(TARGETS ksysguardprocesslist_helper DESTINATION ${KAUTH_HELPER_INSTALL_DIR}) ++ ++kauth_install_helper_files(ksysguardprocesslist_helper org.kde.ksysguard.processlisthelper root) ++kauth_install_actions(org.kde.ksysguard.processlisthelper actions.actions) ++ ++set_target_properties(ksysguardprocesslist_helper PROPERTIES COMPILE_FLAGS "-Wall -ggdb") + +diff --git a/processcore/helper.cpp b/processcore/helper.cpp +index 6c1f570..c34ab1e 100644 +--- a/processcore/helper.cpp ++++ b/processcore/helper.cpp +@@ -23,24 +23,26 @@ + #include "helper.h" + #include "processes_local_p.h" + ++using namespace KAuth; ++ + KSysGuardProcessListHelper::KSysGuardProcessListHelper() + { + qRegisterMetaType >(); + } + + /* The functions here run as ROOT. So be careful. DO NOT TRUST THE INPUTS TO BE SANE. */ +-#define GET_PID(i) parameters.value(QString("pid%1").arg(i), -1).toULongLong(); if(pid < 0) return KAuth::ActionReply::HelperErrorReply; +-KAuth::ActionReply KSysGuardProcessListHelper::sendsignal(QVariantMap parameters) { +- KAuth::ActionReply errorReply(KAuth::ActionReply::HelperError); ++#define GET_PID(i) parameters.value(QString("pid%1").arg(i), -1).toULongLong(); if(pid < 0) return ActionReply(ActionReply::HelperErrorType); ++ActionReply KSysGuardProcessListHelper::sendsignal(QVariantMap parameters) { ++ ActionReply reply(ActionReply::HelperErrorType); + if(!parameters.contains("signal")) { +- errorReply.setErrorDescription("Internal error - no signal parameter was passed to the helper"); +- errorReply.setErrorCode(1); +- return errorReply; ++ reply.setErrorDescription("Internal error - no signal parameter was passed to the helper"); ++ reply.setErrorCode(static_cast(1)); ++ return reply; + } + if(!parameters.contains("pidcount")) { +- errorReply.setErrorDescription("Internal error - no pidcount parameter was passed to the helper"); +- errorReply.setErrorCode(2); +- return errorReply; ++ reply.setErrorDescription("Internal error - no pidcount parameter was passed to the helper"); ++ reply.setErrorCode(static_cast(2)); ++ return reply; + } + + KSysGuard::ProcessesLocal processes; +@@ -56,17 +58,17 @@ KAuth::ActionReply KSysGuardProcessListHelper::sendsignal(QVariantMap parameters + success = successForThisPid && success; + } + if(success) { +- return KAuth::ActionReply::SuccessReply; ++ return ActionReply::SuccessReply(); + } else { +- errorReply.setErrorDescription(QString("Could not send signal to: ") + errorList.join(", ")); +- errorReply.setErrorCode(0); +- return errorReply; ++ reply.setErrorDescription(QString("Could not send signal to: ") + errorList.join(", ")); ++ reply.setErrorCode(static_cast(0)); ++ return reply; + } + } + +-KAuth::ActionReply KSysGuardProcessListHelper::renice(QVariantMap parameters) { ++ActionReply KSysGuardProcessListHelper::renice(QVariantMap parameters) { + if(!parameters.contains("nicevalue") || !parameters.contains("pidcount")) +- return KAuth::ActionReply::HelperErrorReply; ++ return ActionReply(ActionReply::HelperErrorType); + + KSysGuard::ProcessesLocal processes; + int niceValue = qvariant_cast(parameters.value("nicevalue")); +@@ -77,14 +79,14 @@ KAuth::ActionReply KSysGuardProcessListHelper::renice(QVariantMap parameters) { + success = processes.setNiceness(pid, niceValue) && success; + } + if(success) +- return KAuth::ActionReply::SuccessReply; ++ return ActionReply::SuccessReply(); + else +- return KAuth::ActionReply::HelperErrorReply; ++ return ActionReply(ActionReply::HelperErrorType); + } + +-KAuth::ActionReply KSysGuardProcessListHelper::changeioscheduler(QVariantMap parameters) { ++ActionReply KSysGuardProcessListHelper::changeioscheduler(QVariantMap parameters) { + if(!parameters.contains("ioScheduler") || !parameters.contains("ioSchedulerPriority") || !parameters.contains("pidcount")) +- return KAuth::ActionReply::HelperErrorReply; ++ return ActionReply(ActionReply::HelperErrorType); + + KSysGuard::ProcessesLocal processes; + int ioScheduler = qvariant_cast(parameters.value("ioScheduler")); +@@ -96,14 +98,14 @@ KAuth::ActionReply KSysGuardProcessListHelper::changeioscheduler(QVariantMap par + success = processes.setIoNiceness(pid, ioScheduler, ioSchedulerPriority) && success; + } + if(success) +- return KAuth::ActionReply::SuccessReply; ++ return ActionReply::SuccessReply(); + else +- return KAuth::ActionReply::HelperErrorReply; ++ return ActionReply(ActionReply::HelperErrorType); + + } +-KAuth::ActionReply KSysGuardProcessListHelper::changecpuscheduler(QVariantMap parameters) { ++ActionReply KSysGuardProcessListHelper::changecpuscheduler(QVariantMap parameters) { + if(!parameters.contains("cpuScheduler") || !parameters.contains("cpuSchedulerPriority") || !parameters.contains("pidcount")) +- return KAuth::ActionReply::HelperErrorReply; ++ return ActionReply(ActionReply::HelperErrorType); + + KSysGuard::ProcessesLocal processes; + int cpuScheduler = qvariant_cast(parameters.value("cpuScheduler")); +@@ -116,9 +118,9 @@ KAuth::ActionReply KSysGuardProcessListHelper::changecpuscheduler(QVariantMap pa + success = processes.setScheduler(pid, cpuScheduler, cpuSchedulerPriority) && success; + } + if(success) +- return KAuth::ActionReply::SuccessReply; ++ return ActionReply::SuccessReply(); + else +- return KAuth::ActionReply::HelperErrorReply; ++ return ActionReply(ActionReply::HelperErrorType); + + } + KAUTH_HELPER_MAIN("org.kde.ksysguard.processlisthelper", KSysGuardProcessListHelper) +diff --git a/processcore/processes_linux_p.cpp b/processcore/processes_linux_p.cpp +index 65b8dfd..0cff0e8 100644 +--- a/processcore/processes_linux_p.cpp ++++ b/processcore/processes_linux_p.cpp +@@ -22,7 +22,7 @@ + #include "processes_local_p.h" + #include "process.h" + +-#include ++#include + + #include + #include +diff --git a/processui/ksysguardprocesslist.cpp b/processui/ksysguardprocesslist.cpp +index 1651a0a..ba9d8c9 100644 +--- a/processui/ksysguardprocesslist.cpp ++++ b/processui/ksysguardprocesslist.cpp +@@ -48,6 +48,9 @@ + #include //For SIGTERM + + #include ++#include ++#include ++#include + #include + #include + #include +@@ -188,7 +191,7 @@ struct KSysGuardProcessListPrivate { + int totalRowCount(const QModelIndex &parent) const; + + /** Helper function to setup 'action' with the given pids */ +- void setupKAuthAction(KAuth::Action *action, const QList & pids) const; ++ void setupKAuthAction(KAuth::Action &action, const QList & pids) const; + + /** fire a timer event if we are set to use our internal timer*/ + void fireTimerEvent(); +@@ -392,15 +395,15 @@ int KSysGuardProcessListPrivate::totalRowCount(const QModelIndex &parent ) const + return total; + } + +-void KSysGuardProcessListPrivate::setupKAuthAction(KAuth::Action *action, const QList & pids) const ++void KSysGuardProcessListPrivate::setupKAuthAction(KAuth::Action &action, const QList & pids) const + { +- action->setHelperId("org.kde.ksysguard.processlisthelper"); ++ action.setHelperId("org.kde.ksysguard.processlisthelper"); + + int processCount = pids.count(); + for(int i = 0; i < processCount; i++) { +- action->addArgument(QString("pid%1").arg(i), pids[i]); ++ action.addArgument(QString("pid%1").arg(i), pids[i]); + } +- action->addArgument("pidcount", processCount); ++ action.addArgument("pidcount", processCount); + } + void KSysGuardProcessList::selectionChanged() + { +@@ -1023,23 +1026,19 @@ bool KSysGuardProcessList::reniceProcesses(const QList &pids, int nic + + + #warning KAuth needs porting, but docu is not adjusted, no idea how to do it +-#if 0 +- KAuth::Action *action = new KAuth::Action("org.kde.ksysguard.processlisthelper.renice"); +- action->setParentWidget(window()); ++ KAuth::Action action("org.kde.ksysguard.processlisthelper.renice"); ++ action.setParentWidget(window()); + d->setupKAuthAction( action, unreniced_pids); +- action->addArgument("nicevalue", niceValue); +- KAuth::ActionReply reply = action->execute(); ++ action.addArgument("nicevalue", niceValue); ++ KAuth::ExecuteJob *job = action.execute(); + +- if (reply == KAuth::ActionReply::SuccessReply) { ++ if (job->exec()) { + updateList(); +- delete action; +- } else if (reply != KAuth::ActionReply::UserCancelled && reply != KAuth::ActionReply::AuthorizationDenied) { ++ } else if (!job->exec()) { + KMessageBox::sorry(this, i18n("You do not have the permission to renice the process and there " +- "was a problem trying to run as root. Error %1 %2", reply.errorCode(), reply.errorDescription())); +- delete action; ++ "was a problem trying to run as root. Error %1 %2", job->error(), job->errorString())); + return false; + } +-#endif + return true; + } + +@@ -1189,26 +1188,22 @@ bool KSysGuardProcessList::changeIoScheduler(const QList< long long> &pids, KSys + if(!d->mModel.isLocalhost()) return false; //We can't use kauth to affect non-localhost processes + + #warning KAuth needs porting, but docu is not adjusted, no idea how to do it +-#if 0 +- KAuth::Action *action = new KAuth::Action("org.kde.ksysguard.processlisthelper.changeioscheduler"); +- action->setParentWidget(window()); ++ KAuth::Action action("org.kde.ksysguard.processlisthelper.changeioscheduler"); ++ action.setParentWidget(window()); + + d->setupKAuthAction( action, unchanged_pids); +- action->addArgument("ioScheduler", (int)newIoSched); +- action->addArgument("ioSchedulerPriority", newIoSchedPriority); ++ action.addArgument("ioScheduler", (int)newIoSched); ++ action.addArgument("ioSchedulerPriority", newIoSchedPriority); + +- KAuth::ActionReply reply = action->execute(); ++ KAuth::ExecuteJob *job = action.execute(); + +- if (reply == KAuth::ActionReply::SuccessReply) { ++ if (job->exec()) { + updateList(); +- delete action; +- } else if (reply != KAuth::ActionReply::UserCancelled && reply != KAuth::ActionReply::AuthorizationDenied) { ++ } else if (!job->exec()) { + KMessageBox::sorry(this, i18n("You do not have the permission to change the I/O priority of the process and there " +- "was a problem trying to run as root. Error %1 %2", reply.errorCode(), reply.errorDescription())); +- delete action; ++ "was a problem trying to run as root. Error %1 %2", job->error(), job->errorString())); + return false; + } +-#endif + return true; + } + +@@ -1226,24 +1221,20 @@ bool KSysGuardProcessList::changeCpuScheduler(const QList< long long> &pids, KSy + if(!d->mModel.isLocalhost()) return false; //We can't use KAuth to affect non-localhost processes + + #warning KAuth needs porting, but docu is not adjusted, no idea how to do it +-#if 0 +- KAuth::Action *action = new KAuth::Action("org.kde.ksysguard.processlisthelper.changecpuscheduler"); +- action->setParentWidget(window()); ++ KAuth::Action action("org.kde.ksysguard.processlisthelper.changecpuscheduler"); ++ action.setParentWidget(window()); + d->setupKAuthAction( action, unchanged_pids); +- action->addArgument("cpuScheduler", (int)newCpuSched); +- action->addArgument("cpuSchedulerPriority", newCpuSchedPriority); +- KAuth::ActionReply reply = action->execute(); ++ action.addArgument("cpuScheduler", (int)newCpuSched); ++ action.addArgument("cpuSchedulerPriority", newCpuSchedPriority); ++ KAuth::ExecuteJob *job = action.execute(); + +- if (reply == KAuth::ActionReply::SuccessReply) { ++ if (job->exec()) { + updateList(); +- delete action; +- } else if (reply != KAuth::ActionReply::UserCancelled && reply != KAuth::ActionReply::AuthorizationDenied) { ++ } else if (!job->exec()) { + KMessageBox::sorry(this, i18n("You do not have the permission to change the CPU Scheduler for the process and there " +- "was a problem trying to run as root. Error %1 %2", reply.errorCode(), reply.errorDescription())); +- delete action; ++ "was a problem trying to run as root. Error %1 %2", job->error(), job->errorString())); + return false; + } +-#endif + return true; + } + +@@ -1262,26 +1253,20 @@ bool KSysGuardProcessList::killProcesses(const QList< long long> &pids, int sig) + if(!d->mModel.isLocalhost()) return false; //We can't elevate privileges to kill non-localhost processes + + #warning KAuth needs porting, but docu is not adjusted, no idea how to do it +-#if 0 + KAuth::Action action("org.kde.ksysguard.processlisthelper.sendsignal"); + action.setParentWidget(window()); +- d->setupKAuthAction( &action, unkilled_pids); ++ //action.setHelperId("org.kde.ksysguard.processlisthelper"); ++ d->setupKAuthAction( action, unkilled_pids); + action.addArgument("signal", sig); +- KAuth::ActionReply reply = action.execute(); ++ KAuth::ExecuteJob *job = action.execute(); + +- if (reply == KAuth::ActionReply::SuccessReply) { ++ if (job->exec()) { + updateList(); +- } else if (reply.type() == KAuth::ActionReply::HelperError) { +- if (reply.errorCode() > 0) +- KMessageBox::sorry(this, i18n("You do not have the permission to kill the process and there " +- "was a problem trying to run as root. %1", reply.errorDescription())); +- return false; +- } else if (reply != KAuth::ActionReply::UserCancelled && reply != KAuth::ActionReply::AuthorizationDenied) { ++ } else if (!job->exec()) { + KMessageBox::sorry(this, i18n("You do not have the permission to kill the process and there " +- "was a problem trying to run as root. Error %1 %2", reply.errorCode(), reply.errorDescription())); ++ "was a problem trying to run as root. Error %1 %2", job->error(), job->errorString())); + return false; + } +-#endif + return true; + } + diff --git a/desktop/kde/plasma/libksysguard/pspec.xml b/desktop/kde/plasma/libksysguard/pspec.xml new file mode 100755 index 0000000000..1e5f7b995b --- /dev/null +++ b/desktop/kde/plasma/libksysguard/pspec.xml @@ -0,0 +1,103 @@ + + + + + libksysguard + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Task management and system monitoring library + Task management and system monitoring library + http://download.kde.org/stable/plasma/5.3.2/libksysguard-5.3.2.tar.xz + + qt5-base-devel + python3 + kdoctools-devel + libgcc + libX11-devel + zlib-devel + extra-cmake-modules + + + + + + + + libksysguard + + qt5-base + libgcc + libX11 + zlib + libXres + qt5-webkit + qt5-x11extras + kwindowsystem + kconfigwidgets + kwidgetsaddons + kconfig + kauth + kcoreaddons + kdelibs4-support + ki18n + plasma-framework + + + /etc + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + libksysguard-devel + Development files for libksysguard + + qt5-base-devel + libksysguard + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + kde-workspace-devel + + + kde-workspace-devel + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-12 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/milou/actions.py b/desktop/kde/plasma/milou/actions.py new file mode 100644 index 0000000000..ccb7abe2b6 --- /dev/null +++ b/desktop/kde/plasma/milou/actions.py @@ -0,0 +1,18 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + diff --git a/desktop/kde/plasma/milou/pspec.xml b/desktop/kde/plasma/milou/pspec.xml new file mode 100755 index 0000000000..decce922d7 --- /dev/null +++ b/desktop/kde/plasma/milou/pspec.xml @@ -0,0 +1,71 @@ + + + + + milou + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDedicated search application built on top of Baloo + Dedicated search application built on top of Baloo + http://download.kde.org/stable/plasma/5.3.2/milou-5.3.2.tar.xz + + qt5-base-devel + qt5-declarative + python3 + libgcc + kdoctools-devel + kdeclarative-devel + ki18n-devel + krunner-devel + plasma-framework-devel + kconfig-devel + kservice-devel + kcoreaddons-devel + extra-cmake-modules + + + + + milou + + qt5-base + qt5-declarative + krunner + libgcc + kconfig + kservice + kcoreaddons + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-12 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/oxygen-themes/actions.py b/desktop/kde/plasma/oxygen-themes/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/oxygen-themes/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/oxygen-themes/pspec.xml b/desktop/kde/plasma/oxygen-themes/pspec.xml new file mode 100755 index 0000000000..66f7a7278f --- /dev/null +++ b/desktop/kde/plasma/oxygen-themes/pspec.xml @@ -0,0 +1,84 @@ + + + + + oxygen-themes + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 Oxygen themes + KDE5 Oxygen themes + http://download.kde.org/stable/plasma/5.3.2/oxygen-5.3.2.tar.xz + + qt5-base-devel + python3 + kdoctools-devel + libgcc + libxcb-devel + kdecorations-devel + frameworkintegration-devel + automoc4 + gettext + extra-cmake-modules + + + + + oxygen-themes + + qt5-base + python3 + ki18n + kconfig + libgcc + libxcb + kdecorations + qt5-x11extras + kguiaddons + kcompletion + kcoreaddons + kwindowsystem + kconfigwidgets + kwidgetsaddons + frameworkintegration + + + + /usr/share + /usr/share/locale + /usr/share/icons + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-11 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/plasma-desktop/actions.py b/desktop/kde/plasma/plasma-desktop/actions.py new file mode 100644 index 0000000000..05ee11b37a --- /dev/null +++ b/desktop/kde/plasma/plasma-desktop/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("HACKING", "COPYING") diff --git a/desktop/kde/plasma/plasma-desktop/pspec.xml b/desktop/kde/plasma/plasma-desktop/pspec.xml new file mode 100755 index 0000000000..47cebdb11d --- /dev/null +++ b/desktop/kde/plasma/plasma-desktop/pspec.xml @@ -0,0 +1,132 @@ + + + + + plasma-desktop + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 plasma workspace + This package contains the basic packages for a Plasma workspace. + http://download.kde.org/stable/plasma/5.3.2/plasma-desktop-5.3.2.tar.xz + + qt5-base-devel + boost-devel + kdoctools-devel + kio-devel + libX11-devel + libgcc + libxcb-devel + freetype-devel + libusb-compat-devel + xorg-server-devel + xorg-input-evdev-devel + xorg-input-synaptics-devel + extra-cmake-modules + + + + + plasma-desktop + + qt5-base + kio + libX11 + libgcc + libxcb + freetype + libusb-compat + kf5-baloo + libxkbfile + kconfigwidgets + kwindowsystem + kpeople + knotifications + kwin + kwindowsystem + knotifyconfig + libcanberra + sonnet + powerdevil + system-settings + libXi+ + libXft + qt5-svg + libXfixes + fontconfig + kauth + ki18n + solid + libXcursor + qt5-phonon + kparts + kcodecs + kconfig + krunner + kwallet + kxmlgui + karchive + kcmutils + kservice + qt5-x11extras + knewstuff + xcb-util-image + kbookmarks + kemoticons + kguiaddons + kitemviews + pulseaudio-libs + qt5-declarative + kactivities + kcompletion + kcoreaddons + kdbusaddons + kiconthemes + kjobwidgets + kdeclarative + kglobalaccel + kwidgetsaddons + kdelibs4-support + plasma-framework + plasma-workspace + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kcm-touchpad-frameworks + + + kcm-touchpad-frameworks, kdebase-workspace + + + + + + 2015-07-02 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-29 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/plasma-mediacenter/actions.py b/desktop/kde/plasma/plasma-mediacenter/actions.py new file mode 100644 index 0000000000..81e02e04ae --- /dev/null +++ b/desktop/kde/plasma/plasma-mediacenter/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING", "COPYING.LIB", "LICENSE", "README", "ChangeLog") diff --git a/desktop/kde/plasma/plasma-mediacenter/pspec.xml b/desktop/kde/plasma/plasma-mediacenter/pspec.xml new file mode 100755 index 0000000000..01fbbc9d7c --- /dev/null +++ b/desktop/kde/plasma/plasma-mediacenter/pspec.xml @@ -0,0 +1,68 @@ + + + + + plasma-mediacenter + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + GPLv2 + library + A mediacenter user interface based on KDE Plasma components + A mediacenter user interface based on KDE Plasma components + http://download.kde.org/stable/plasma/5.3.2/plasma-mediacenter-5.3.2.tar.xz + + qt5-base-devel + qt5-multimedia-devel + libgcc + kfilemetadata-devel + baloo-devel + extra-cmake-modules + + + + + plasma-mediacenter + + qt5-base + baloo + libgcc + kfilemetadata + kcoreaddons + qt5-declarative + kguiaddons + kservice + kconfig + ki18n + kio + taglib + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-18 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/plasma-nm/actions.py b/desktop/kde/plasma/plasma-nm/actions.py new file mode 100644 index 0000000000..f539eaa4b7 --- /dev/null +++ b/desktop/kde/plasma/plasma-nm/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README", "COPYING.LIB", "COPYING") diff --git a/desktop/kde/plasma/plasma-nm/pspec.xml b/desktop/kde/plasma/plasma-nm/pspec.xml new file mode 100755 index 0000000000..4f776722aa --- /dev/null +++ b/desktop/kde/plasma/plasma-nm/pspec.xml @@ -0,0 +1,91 @@ + + + + + plasma-nm + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + Plasma applet written in QML for managing network connections + Plasma applet written in QML for managing network connections + http://download.kde.org/stable/plasma/5.3.2/plasma-nm-5.3.2.tar.xz + + qt5-base-devel + libgcc + networkmanager-qt-devel + modemmanger-qt-devel + kdelibs4-support-devel + python3 + openconnect-devel + kdoctools-devel + NetworkManager-devel + mobile-broadband-provider-info + extra-cmake-modules + + + + + plasma-nm + + qt5-base + libgcc + openconnect + kio + networkmanager-qt + modemmanager-qt + ki18n + solid + kconfig + kwallet + kxmlgui + kservice + kitemviews + qt5-declarative + kcompletion + kcoreaddons + kdbusaddons + kiconthemes + kwindowsystem + kconfigwidgets + knotifications + kwidgetsaddons + kdelibs4-support + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-14 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + + diff --git a/desktop/kde/plasma/plasma-sdk/actions.py b/desktop/kde/plasma/plasma-sdk/actions.py new file mode 100644 index 0000000000..ce3ebf2e23 --- /dev/null +++ b/desktop/kde/plasma/plasma-sdk/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING", "COPYING.LIB") diff --git a/desktop/kde/plasma/plasma-sdk/pspec.xml b/desktop/kde/plasma/plasma-sdk/pspec.xml new file mode 100755 index 0000000000..c2f4b229ae --- /dev/null +++ b/desktop/kde/plasma/plasma-sdk/pspec.xml @@ -0,0 +1,81 @@ + + + + + plasma-sdk + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + app:gui + Applications useful for Plasma development + Applications useful for Plasma development + http://download.kde.org/stable/plasma/5.3.2/plasma-sdk-5.3.2.tar.xz + + qt5-base-devel + qt5-webkit-devel + libgcc + extra-cmake-modules + + + + + + + plasma-sdk + + qt5-base + ktexteditor + plasma-framework + kio + libgcc + ki18n + kconfig + karchive + kpackage + kservice + qt5-declarative + kcompletion + kcoreaddons + kiconthemes + kdeclarative + kconfigwidgets + kwidgetsaddons + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-14 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/plasma-workspace-wallpapers/actions.py b/desktop/kde/plasma/plasma-workspace-wallpapers/actions.py new file mode 100755 index 0000000000..8f1b9185ee --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace-wallpapers/actions.py @@ -0,0 +1,27 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \ + -DECM_MKSPECS_INSTALL_DIR=/usr/lib/qt5/mkspecs/modules \ + -DLIB_INSTALL_DIR=lib \ + -DPYTHON_EXECUTABLE=/usr/bin/python3 \ + -DQML_INSTALL_DIR=lib/qt5/qml \ + -DQT_PLUGIN_INSTALL_DIR=lib/qt5/plugins \ + -DSYSCONF_INSTALL_DIR=/etc \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("COPYING", "AUTHORS") + diff --git a/desktop/kde/plasma/plasma-workspace-wallpapers/pspec.xml b/desktop/kde/plasma/plasma-workspace-wallpapers/pspec.xml new file mode 100755 index 0000000000..15e1769d48 --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace-wallpapers/pspec.xml @@ -0,0 +1,129 @@ + + + + + plasma-workspace-wallpapers + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + app:gui + The KDE Plasma Workspace Components + The KDE Plasma Workspace Components + http://download.kde.org/stable/plasma/5.3.2/plasma-workspace-wallpapers-5.3.2.tar.xz + + qt5-base-devel + alsa-lib-devel + baloo-devel + kactivities-devel + kcmutils-devel + kcoreaddons-devel + kcrash-devel + kdeclarative-devel + kdelibs4-support-devel + kdesu-devel + kdewebkit-devel + kdoctools-devel + kidletime-devel + kjsembed-devel + knewstuff-devel + knotifyconfig-devel + krunner-devel + ktexteditor-devel + kwallet-devel + kwin-devel + libkscreen-devel + libksysguard-devel + plasma-framework-devel + solid-devel + frameworkintegration-devel + breeze-style + milou + qt5-phonon-devel + libqalculate-devel + prison-qt5-devel + libXrender-devel + xcb-util-keysyms-devel + xcb-util-image-devel + libXcursor-devel + + + + + + + plasma-workspace-wallpapers + + qt5-base + alsa-lib + baloo + kactivities + kcmutils + kcoreaddons + kcrash + kdeclarative + kdelibs4-support + kdesu + kdewebkit + kdoctools + kidletime + kjsembed + knewstuff + knotifyconfig + krunner + ktexteditor + kwallet + kwin + libkscreen + libksysguard + plasma-framework + solid + frameworkintegration + breeze-style + milou + qt5-phonon + libqalculate + prison-qt5 + libXrender + xcb-util-keysyms + xcb-util-image + libXcursor + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-25 + 5.3.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/plasma-workspace/actions.py b/desktop/kde/plasma/plasma-workspace/actions.py new file mode 100755 index 0000000000..9737c14ca2 --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace/actions.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import cmaketools + +def setup(): + cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DLIB_INSTALL_DIR=lib \ + -DLIBEXEC_INSTALL_DIR=lib \ + -DKDE_INSTALL_USE_QT_SYS_PATHS=ON \ + -DBUILD_TESTING=OFF") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + pisitools.dosym("/usr/lib/drkonqi", "/usr/lib/libexec/drkonqi") + + pisitools.dodoc("COPYING", "HACKING") + diff --git a/desktop/kde/plasma/plasma-workspace/comar/kde.pam b/desktop/kde/plasma/plasma-workspace/comar/kde.pam new file mode 100644 index 0000000000..1e48de3f18 --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace/comar/kde.pam @@ -0,0 +1,6 @@ +#%PAM-1.0 + +auth include system-login +account include system-login +password include system-login +session include system-login diff --git a/desktop/kde/plasma/plasma-workspace/files/0001-Rename-qdbus-in-startkde.patch b/desktop/kde/plasma/plasma-workspace/files/0001-Rename-qdbus-in-startkde.patch new file mode 100644 index 0000000000..30ed016829 --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace/files/0001-Rename-qdbus-in-startkde.patch @@ -0,0 +1,32 @@ +diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake +index 91c8a3c..0c658bd 100644 +--- a/startkde/startkde.cmake ++++ b/startkde/startkde.cmake +@@ -20,13 +20,13 @@ unset DYLD_FORCE_FLAT_NAMESPACE + bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'` + if [ -n "$bindir" ]; then + qbindir=`qtpaths --binaries-dir` +- qdbus=$qbindir/qdbus ++ qdbus=$qbindir/qdbus-qt5 + case $PATH in + $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;; + *) PATH=$bindir:$PATH; export PATH;; + esac + else +- qdbus=qdbus ++ qdbus=qdbus-qt5 + fi + + # Check if a KDE session already is running and whether it's possible to connect to X +@@ -300,9 +300,9 @@ fi + if $qdbus >/dev/null 2>/dev/null; then + : # ok + else +- echo 'startkde: Could not start D-Bus. Can you call qdbus?' 1>&2 ++ echo 'startkde: Could not start D-Bus. Can you call qdbus-qt5?' 1>&2 + test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null +- xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus?" ++ xmessage -geometry 500x100 "Could not start D-Bus. Can you call qdbus-qt5?" + exit 1 + fi + diff --git a/desktop/kde/plasma/plasma-workspace/files/0003-Remove-export-of-QT_PLUGIN_PATH.patch b/desktop/kde/plasma/plasma-workspace/files/0003-Remove-export-of-QT_PLUGIN_PATH.patch new file mode 100644 index 0000000000..75950ada26 --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace/files/0003-Remove-export-of-QT_PLUGIN_PATH.patch @@ -0,0 +1,29 @@ +From dde9b1c1930d333d8daff25c73400e1e67f3c630 Mon Sep 17 00:00:00 2001 +From: Hrvoje Senjan +Date: Sun, 7 Sep 2014 22:55:24 +0200 +Subject: [PATCH 3/3] Remove export of QT_PLUGIN_PATH + +--- + startkde/startkde.cmake | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake +index 51721d1..1d67be0 100644 +--- a/startkde/startkde.cmake ++++ b/startkde/startkde.cmake +@@ -220,12 +220,6 @@ for prefix in `echo $scriptpath`; do + done + done + +-# Set the path for Qt plugins provided by KDE +-QT_PLUGIN_PATH=${QT_PLUGIN_PATH+$QT_PLUGIN_PATH:}`qtpaths --plugin-dir` +-# TODO: Do we really need this? +-QT_PLUGIN_PATH=$QT_PLUGIN_PATH:$kdehome/lib/kde5/plugins/ +-export QT_PLUGIN_PATH +- + # Activate the kde font directories. + # + # There are 4 directories that may be used for supplying fonts for KDE. +-- +2.1.0 + diff --git a/desktop/kde/plasma/plasma-workspace/files/create_kdehome.patch b/desktop/kde/plasma/plasma-workspace/files/create_kdehome.patch new file mode 100644 index 0000000000..b29f4b163a --- /dev/null +++ b/desktop/kde/plasma/plasma-workspace/files/create_kdehome.patch @@ -0,0 +1,19 @@ +diff --git a/startkde/startkde.cmake b/startkde/startkde.cmake +index 0c658bd..51721d1 100644 +--- a/startkde/startkde.cmake ++++ b/startkde/startkde.cmake +@@ -64,6 +64,14 @@ fi + + mkdir -p $configDir + ++kdehome=$HOME/@KDE_DEFAULT_HOME@ ++test -n "$KDEHOME" && kdehome=`echo "$KDEHOME"|sed "s,^~/,$HOME/,"` ++ ++# see kstartupconfig source for usage ++mkdir -m 700 -p $kdehome ++mkdir -m 700 -p $kdehome/share ++mkdir -m 700 -p $kdehome/share/config ++ + #This is basically setting defaults so we can use them with kstartupconfig5 + cat >$configDir/startupconfigkeys < + + + + plasma-workspace + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + app:gui + The KDE5 Plasma Workspace Components + The KDE5 Plasma Workspace Components + http://download.kde.org/stable/plasma/5.3.2/plasma-workspace-5.3.2.tar.xz + + qt5-base-devel + libkscreen-devel + libksysguard-devel + libqalculate-devel + gpsd-devel + kwayland + baloo-devel + extra-cmake-modules + kdelibs4-support-devel + kdoctools-devel + krunner-devel + kwin-devel + libXcursor-devel + libXrender-devel + xorg-util + xcb-util-keysyms-devel + xcb-util-image-devel + xcb-util-renderutil-devel + networkmanager-qt-devel + kxmlrpcclient-devel + kio-devel + kjs-devel + pam + zlib-devel + libX11-devel + libXau-devel + libgcc + libxcb-devel + kactivities-devel + extra-cmake-modules + + + + + + + + + plasma-workspace + + qt5-base+ + qt5-tools + cln + kio + kjs + pam + zlib + libX11 + libXau + libgcc + libxcb + kactivities + gpsd + libSM + libXi + libICE + kio + kjs + libXfixes + baloo + kauth + kdesu + ki18n + solid + qt5-script + qt5-phonon + qt5-webkit + kcrash + kconfig + kwallet + kxmlgui + kpackage + kservice + qt5-x11extras + kdewebkit + kidletime + wayland-client + wayland-server + kbookmarks + kguiaddons + kitemviews + qt5-declarative + qt5-libdbusmenu + kcompletion + kcoreaddons + kdbusaddons + kiconthemes + kjobwidgets + kdeclarative + kglobalaccel + ktextwidgets + kwindowsystem + kxmlrpcclient + kconfigwidgets + knotifications + kwidgetsaddons + plasma-framework + kde-cli-tools + kjsembed + knewstuff + knotifyconfig + ktexteditor + kwayland + libkscreen + libksysguard + libqalculate + krunner + libksysguard + kdelibs4-support + networkmanager-qt + libXrender + xcb-util-keysyms + + + /etc/pam.d + /etc/xdg + /usr/share + /usr/share/applications + /usr/share/locale + /usr/bin + /usr/lib/qt5/plugins + /usr/lib/qt5/qml + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + plasma-workspace-devel + Development files for kde5 plasma-workspace + + qt5-base-devel + plasma-workspace + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + kde.pam + + + kde-workspace-devel + + + kde-workspace-devel + + + + + drkonqi + KDE crash handler + + kdewebkit + kxmlrpcclient + plasma-workspace + + + /usr/lib/libexec + + + + + + 2015-07-02 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-12 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/polkit-kde-authentication-agent-1/actions.py b/desktop/kde/plasma/polkit-kde-authentication-agent-1/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/polkit-kde-authentication-agent-1/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/polkit-kde-authentication-agent-1/pspec.xml b/desktop/kde/plasma/polkit-kde-authentication-agent-1/pspec.xml new file mode 100755 index 0000000000..b7998dd088 --- /dev/null +++ b/desktop/kde/plasma/polkit-kde-authentication-agent-1/pspec.xml @@ -0,0 +1,77 @@ + + + + + polkit-kde-authentication-agent-1 + http://www.kde.org + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + app:gui + The KDE Plasma Workspace Components + The Polkit-KDE-Agent package contains a graphical Polkit authentication agent for the KDE Plasma Desktop. + http://download.kde.org/stable/plasma/5.3.2/polkit-kde-agent-1-5.3.2.tar.xz + + qt5-base-devel + kdoctools-devel + libgcc + python3 + extra-cmake-modules + + + + + + + polkit-kde-authentication-agent-1 + + qt5-base + libgcc + kcrash + kcoreaddons + polkit-qt + ki18n + kdbusaddons + kiconthemes + kwindowsystem + knotifications + kwidgetsaddons + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + kde-workspace + + + kde-workspace + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-29 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/powerdevil/actions.py b/desktop/kde/plasma/powerdevil/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/powerdevil/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/powerdevil/pspec.xml b/desktop/kde/plasma/powerdevil/pspec.xml new file mode 100755 index 0000000000..b4b31b4af9 --- /dev/null +++ b/desktop/kde/plasma/powerdevil/pspec.xml @@ -0,0 +1,87 @@ + + + + + powerdevil + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE power manager module + KDE Power Management module. Provides kded daemon DBus helper and KCM for configuring Power settings + http://download.kde.org/stable/plasma/5.3.2/powerdevil-5.3.2.tar.xz + + qt5-base-devel + kdoctools-devel + kidletime-devel + libgcc + libxcb-devel + libudev-devel + plasma-workspace-devel + extra-cmake-modules + + + + + powerdevil + + qt5-base + kdoctools + kidletime + libgcc + libxcb + libudev + plasma-workspace + kio + kauth + ki18n + solid + kconfig + kxmlgui + kservice + qt5-x11extras + libkscreen + kf5-kactivities + kcompletion + kcoreaddons + kdbusaddons + kglobalaccel + knotifyconfig + kconfigwidgets + knotifications + kwidgetsaddons + kdelibs4-support + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-29 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/sddm-kcm/actions.py b/desktop/kde/plasma/sddm-kcm/actions.py new file mode 100644 index 0000000000..b6b9ec50d8 --- /dev/null +++ b/desktop/kde/plasma/sddm-kcm/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("CONTRIBUTORS", "COPYING", "README") diff --git a/desktop/kde/plasma/sddm-kcm/pspec.xml b/desktop/kde/plasma/sddm-kcm/pspec.xml new file mode 100644 index 0000000000..ca2e4ecea7 --- /dev/null +++ b/desktop/kde/plasma/sddm-kcm/pspec.xml @@ -0,0 +1,89 @@ + + + + + sddm-kcm + https://projects.kde.org/projects/kde/workspace/sddm-kcm + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + app:console + KDE5 Config Module for SDDM + KDE5 Config Module for SDDM + http://download.kde.org/stable/plasma/5.3.2/sddm-kcm-5.3.2.tar.xz + + kcoreaddons-devel + kdoctools-devel + kconfigwidgets-devel + kauth-devel + libgcc + libX11-devel + kxmlgui-devel + ki18n-devel + qt5-base-devel + kio-devel + qt5-declarative-devel + qt5-tools-devel + qt5-x11extras-devel + kconfig-devel + docutils + libXcursor-devel + extra-cmake-modules + + + + + sddm-kcm + + kcoreaddons + sddm + libgcc + libX11 + kconfigwidgets + kauth + kxmlgui + ki18n + qt5-base + kio + kdoctools + libXcursor + kconfig + qt5-x11extras + qt5-declarative + xorg-server-xephyr + + + /etc/dbus-1/system.d + /usr/share/dbus-1/system-services + /usr/share/kservices5 + /usr/share/ + /usr/share/polkit-1/actions + /usr/share/locale + /usr/bin + /usr/lib/cmake + /usr/lib/qt5/plugins + /usr/lib/libexec/kauth + /usr/lib + /usr/share/doc + + + + + + 2015-07-03 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-14 + 5.3.1 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/sddm-kcm/translations.xml b/desktop/kde/plasma/sddm-kcm/translations.xml new file mode 100644 index 0000000000..97bfd3908d --- /dev/null +++ b/desktop/kde/plasma/sddm-kcm/translations.xml @@ -0,0 +1,8 @@ + + + + kde5-sddm-kcm + KDE5 Config Module for SDDM + KDE5 Config Module for SDDM + + diff --git a/desktop/kde/plasma/sddm/actions.py b/desktop/kde/plasma/sddm/actions.py new file mode 100644 index 0000000000..7bb0bc98f8 --- /dev/null +++ b/desktop/kde/plasma/sddm/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import cmaketools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + +def setup(): + cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/sddm \ + -DBUILD_MAN_PAGES=ON") + +def build(): + cmaketools.make() + +def install(): + cmaketools.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/sddm/comar/package.py b/desktop/kde/plasma/sddm/comar/package.py new file mode 100644 index 0000000000..152cbe045e --- /dev/null +++ b/desktop/kde/plasma/sddm/comar/package.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + +import os, re +import shutil + +OUR_ID = 65 +OUR_NAME = "sddm" +OUR_DESC = "sddm" + +DATADIR = "/var/lib/sddm" +DATADIRMODE = 0755 + +def postInstall(fromVersion, fromRelease, toVersion, toRelease): + + # On first install... + if not os.path.exists(DATADIR): + os.makedirs(DATADIR, DATADIRMODE) + + try: + os.system ("groupadd -g %d %s" % (OUR_ID, OUR_NAME)) + os.system ("useradd -m -d /var/lib/sddm -r -s /bin/false -u %d -g %d %s -c %s" % (OUR_ID, OUR_ID, OUR_NAME, OUR_DESC)) + os.system ("passwd -l sddm > /dev/null") + os.system("/bin/chown -R sddm:sddm %s" % DATADIR) + except: + pass + +# os.system ("groupadd --system %s" % (OUR_NAME)) +# os.system ("useradd -c 'sddm' --system -d /var/lib/sddm -s /sbin/nologin -g %s %s" % (OUR_NAME, OUR_DESC)) + + + + # os.system("/bin/chown -R sddm:sddm /var/log/sddm.log") + + + +def postRemove(): + try: + os.system ("userdel %s" % OUR_NAME) + os.system ("groupdel %s" % OUR_NAME) + except: + pass + + + + + diff --git a/desktop/kde/plasma/sddm/comar/service.py b/desktop/kde/plasma/sddm/comar/service.py new file mode 100644 index 0000000000..058a771fec --- /dev/null +++ b/desktop/kde/plasma/sddm/comar/service.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +from comar.service import * +import os + +serviceType="server" +serviceDesc=_({"en": "sddm Server", + "tr": "sddm Sunucusu"}) +serviceDefault="on" +PIDFILE="/run/sddm/sddm.pid" +DAEMON="/usr/bin/sddm" + +@synchronized +def start(): + startService(command=DAEMON, + pidfile=PIDFILE, + detach=True, + donotify=True) + + +@synchronized +def stop(): + stopService(pidfile=PIDFILE, + donotify=True) + + try: + os.unlink(PIDFILE) + except OSError: + pass + +def status(): + return isServiceRunning(PIDFILE) diff --git a/desktop/kde/plasma/sddm/files/sddm b/desktop/kde/plasma/sddm/files/sddm new file mode 100644 index 0000000000..b66e9367cc --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm @@ -0,0 +1,18 @@ +# Begin /etc/pam.d/sddm + +auth required pam_unix.so try_first_pass nullok +auth optional pam_permit.so +auth required pam_env.so + +account required pam_unix.so +account optional pam_permit.so +account required pam_time.so + +password required pam_unix.so try_first_pass nullok sha512 shadow +password optional pam_permit.so + +session required pam_limits.so +session required pam_unix.so +session optional pam_permit.so + +# End /etc/pam.d/sddm \ No newline at end of file diff --git a/desktop/kde/plasma/sddm/files/sddm-0.10.0-upower.patch b/desktop/kde/plasma/sddm/files/sddm-0.10.0-upower.patch new file mode 100644 index 0000000000..63daf89175 --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm-0.10.0-upower.patch @@ -0,0 +1,12 @@ +diff -u -r sddm-0.9.0.orig/src/daemon/PowerManager.cpp sddm-0.9.0/src/daemon/PowerManager.cpp +--- sddm-0.9.0.orig/src/daemon/PowerManager.cpp 2014-10-01 18:40:37.402683578 +0200 ++++ sddm-0.9.0/src/daemon/PowerManager.cpp 2014-10-01 18:40:43.502618164 +0200 +@@ -197,7 +197,7 @@ + m_backends << new Login1Backend(); + + // check if upower interface exists +- if (interface->isServiceRegistered(UPOWER_SERVICE)) ++// if (interface->isServiceRegistered(UPOWER_SERVICE)) + m_backends << new UPowerBackend(); + } + \ No newline at end of file diff --git a/desktop/kde/plasma/sddm/files/sddm-0.11.0-consolekit.patch b/desktop/kde/plasma/sddm/files/sddm-0.11.0-consolekit.patch new file mode 100644 index 0000000000..9295d0ef82 --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm-0.11.0-consolekit.patch @@ -0,0 +1,13 @@ +diff --git a/data/scripts/Xsession b/data/scripts/Xsession +index a5d270d..4b48524 100755 +--- a/data/scripts/Xsession ++++ b/data/scripts/Xsession +@@ -74,7 +74,7 @@ case $session in + exec xterm -geometry 80x24-0-0 + ;; + *) +- eval exec "$session" ++ eval exec ck-launch-session "$session" + ;; + esac + exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute $session. Check $DESKTOP_SESSION.desktop." \ No newline at end of file diff --git a/desktop/kde/plasma/sddm/files/sddm-autologin b/desktop/kde/plasma/sddm/files/sddm-autologin new file mode 100644 index 0000000000..b24b3bf6cf --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm-autologin @@ -0,0 +1,16 @@ +# Begin /etc/pam.d/sddm-autologin + +auth requisite pam_nologin.so +auth required pam_env.so + +auth required pam_succeed_if.so uid >= 1000 quiet +auth required pam_permit.so + +account include system-account + +password required pam_deny.so + +session required pam_limits.so +session include system-session + +# End /etc/pam.d/sddm-autologin \ No newline at end of file diff --git a/desktop/kde/plasma/sddm/files/sddm-greeter b/desktop/kde/plasma/sddm/files/sddm-greeter new file mode 100644 index 0000000000..b039ab5799 --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm-greeter @@ -0,0 +1,11 @@ +# Begin /etc/pam.d/sddm-greeter + +auth required pam_env.so +auth required pam_permit.so + +account required pam_permit.so +password required pam_deny.so +session required pam_unix.so +-session optional pam_systemd.so + +# End /etc/pam.d/sddm-greeter \ No newline at end of file diff --git a/desktop/kde/plasma/sddm/files/sddm.conf b/desktop/kde/plasma/sddm/files/sddm.conf new file mode 100644 index 0000000000..311531317b --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm.conf @@ -0,0 +1,84 @@ +[Autologin] +# Autologin again on session exit +Relogin=false + +# Autologin session +Session=plasma.desktop + +# Autologin user +User= + + +[General] +# Halt command +HaltCommand=/sbin/shutdown -h -P now + +# Initial NumLock state +# Valid values: on|off|none +# If property is set to none, numlock won't be changed +Numlock=none + +# Reboot command +RebootCommand=/sbin/shutdown -r now + + +[Theme] +# Current theme name +Current=maui + +# Cursor theme +CursorTheme=breeze + +# Face icon directory +# The files should be in username.face.icon format +FacesDir=/usr/share/sddm/faces + +# Theme directory path +ThemeDir=/usr/share/sddm/themes + + +[Users] +# Default $PATH +DefaultPath=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin + +# Hidden shells +# Users with these shells as their default won't be listed +HideShells= + +# Hidden users +HideUsers=git,sddm + +# Maximum user id for displayed users +MaximumUid=65000 + +# Minimum user id for displayed users +MinimumUid=1000 + +# Remember the session of the last successfully logged in user +RememberLastSession=true + +# Remember the last successfully logged in user +RememberLastUser=true + + +[XDisplay] +# Xsetup script path +# A script to execute when starting the display server +DisplayCommand=/usr/share/sddm/scripts/Xsetup + +# Minimum VT +# The lowest virtual terminal number that will be used. +MinimumVT=1 + +# X server path +ServerPath=/usr/bin/X + +# Xsession script path +# A script to execute when starting the desktop session +SessionCommand=/usr/share/sddm/scripts/Xsession + +# Session description directory +SessionDir=/usr/share/xsessions + +# Xauth path +XauthPath=/usr/bin/xauth diff --git a/desktop/kde/plasma/sddm/files/sddm_upstream.patch b/desktop/kde/plasma/sddm/files/sddm_upstream.patch new file mode 100644 index 0000000000..28d9df4d2c --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm_upstream.patch @@ -0,0 +1,746 @@ +diff -Nuar sddm-0.11.0/ChangeLog sddm-master/ChangeLog +--- sddm-0.11.0/ChangeLog 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/ChangeLog 2015-03-08 18:18:48.000000000 +0200 +@@ -4,6 +4,10 @@ + - Bug fixes + * Others + ++## 0.12.0 - XXXX-XX-XX ++---------------------- ++ * Add Arabic translation by Safa Alfulaij. ++ + ## 0.11.0 - 2014-11-20 + ---------------------- + + Reload the configuration every time we start a new session +@@ -15,7 +19,6 @@ + + ## 0.10.0 - 2014-10-16 + ---------------------- +- + + Set default icon theme from greeter theme configuration. + + Set cursor theme according to greeter theme configuration. + - Never permit a login as the sddm user (CVE-2014-7271) +diff -Nuar sddm-0.11.0/CMakeLists.txt sddm-master/CMakeLists.txt +--- sddm-0.11.0/CMakeLists.txt 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/CMakeLists.txt 2015-03-08 18:18:48.000000000 +0200 +@@ -77,7 +77,9 @@ + + # find qt5 imports dir + get_target_property(QMAKE_EXECUTABLE Qt5::qmake LOCATION) +-exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" RETURN_VALUE return_code OUTPUT_VARIABLE QT_IMPORTS_DIR) ++if(NOT QT_IMPORTS_DIR) ++ exec_program(${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_QML" RETURN_VALUE return_code OUTPUT_VARIABLE QT_IMPORTS_DIR) ++endif() + + # Set components version + set(COMPONENTS_VERSION 2.0) +@@ -98,7 +100,12 @@ + add_definitions(-DHAVE_SYSTEMD) + set(CMAKE_AUTOMOC_MOC_OPTIONS -DHAVE_SYSTEMD) + +- pkg_check_modules(JOURNALD "libsystemd-journal") ++ # libsystemd-journal was merged into libsystemd in 209 ++ if(${SYSTEMD_VERSION} VERSION_LESS 209) ++ pkg_check_modules(JOURNALD "libsystemd-journal") ++ else() ++ pkg_check_modules(JOURNALD "libsystemd") ++ endif() + + if(ENABLE_JOURNALD) + if(JOURNALD_FOUND) +@@ -109,8 +116,11 @@ + endif() + endif() + +- execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=systemdsystemunitdir systemd OUTPUT_VARIABLE SYSTEMD_SYSTEM_UNIT_DIR) +- string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SYSTEM_UNIT_DIR ${SYSTEMD_SYSTEM_UNIT_DIR}) ++ if (NOT DEFINED SYSTEMD_SYSTEM_UNIT_DIR) ++ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=systemdsystemunitdir systemd OUTPUT_VARIABLE SYSTEMD_SYSTEM_UNIT_DIR) ++ string(REGEX REPLACE "[ \t\n]+" "" SYSTEMD_SYSTEM_UNIT_DIR ${SYSTEMD_SYSTEM_UNIT_DIR}) ++ endif() ++ + set(MINIMUM_VT 1) + set(HALT_COMMAND "/usr/bin/systemctl poweroff") + set(REBOOT_COMMAND "/usr/bin/systemctl reboot") +diff -Nuar sddm-0.11.0/CONTRIBUTORS sddm-master/CONTRIBUTORS +--- sddm-0.11.0/CONTRIBUTORS 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/CONTRIBUTORS 2015-03-08 18:18:48.000000000 +0200 +@@ -43,3 +43,4 @@ + a.k.a. Harvey + raffarti + w41l ++Sérgio Marques +diff -Nuar sddm-0.11.0/data/man/sddm.conf.rst.in sddm-master/data/man/sddm.conf.rst.in +--- sddm-0.11.0/data/man/sddm.conf.rst.in 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/man/sddm.conf.rst.in 2015-03-08 18:18:48.000000000 +0200 +@@ -65,6 +65,10 @@ + Path of the X server. + Default value is "/usr/bin/X". + ++`XephyrPath=` ++ Path of the Xephyr. ++ Default value is "/usr/bin/Xephyr". ++ + `XauthPath=` + Path of the Xauth. + Default value is "/usr/bin/xauth". +@@ -104,11 +108,11 @@ + Default value is 65000. + + `HideUsers=` +- Users that shouldn't show up in the user list. ++ Comma-separated list of Users that shouldn't show up in the user list. + Default value is empty. + + `HideShells=` +- Shells of users that shouldn't show up in the user list. ++ Comma-separated list of Shells of users that shouldn't show up in the user list. + Default value is empty. + + `RememberLastUser=` +diff -Nuar sddm-0.11.0/data/man/sddm.rst.in sddm-master/data/man/sddm.rst.in +--- sddm-0.11.0/data/man/sddm.rst.in 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/man/sddm.rst.in 2015-03-08 18:18:48.000000000 +0200 +@@ -25,9 +25,9 @@ + easily create pleasant, modern looking interfaces for sddm. + + sddm runs the greeter as a system user named **sddm** +-whose home directory need to be set to **/var/lib/sddm**. ++whose home directory needs to be set to **/var/lib/sddm**. + +-If pam and systemd are available, the greeter will go through logind ++If pam and systemd are available, the greeter will go through logind, + which will give it access to drm devices. + + Distributions without pam and systemd will need to put the **sddm** user +diff -Nuar sddm-0.11.0/data/scripts/Xsession sddm-master/data/scripts/Xsession +--- sddm-0.11.0/data/scripts/Xsession 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/scripts/Xsession 2015-03-08 18:18:48.000000000 +0200 +@@ -20,9 +20,8 @@ + . $HOME/.profile + fi + ;; +- */zsh) ++*/zsh) + [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@" +- emulate -R sh + [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc + zhome=${ZDOTDIR:-$HOME} + # zshenv is always sourced automatically. +@@ -30,6 +29,7 @@ + [ -f $zhome/.zprofile ] && . $zhome/.zprofile + [ -f $zdir/zlogin ] && . $zdir/zlogin + [ -f $zhome/.zlogin ] && . $zhome/.zlogin ++ emulate -R sh + ;; + */csh|*/tcsh) + # [t]cshrc is always sourced automatically. +diff -Nuar sddm-0.11.0/data/translations/ar.ts sddm-master/data/translations/ar.ts +--- sddm-0.11.0/data/translations/ar.ts 1970-01-01 02:00:00.000000000 +0200 ++++ sddm-master/data/translations/ar.ts 2015-03-08 18:18:48.000000000 +0200 +@@ -0,0 +1,59 @@ ++ ++ ++ ++ ++ TextConstants ++ ++ Welcome to %1 ++ مرحبًا في %1 ++ ++ ++ Warning, Caps Lock is ON! ++ تحذير، مفتاح Caps Lock ممكّن! ++ ++ ++ Layout ++ التّخطيط ++ ++ ++ Login ++ لِج ++ ++ ++ Login failed ++ فشل الولوج ++ ++ ++ Login succeeded ++ نجح الولوج ++ ++ ++ Password ++ كلمة المرور ++ ++ ++ Enter your username and password ++ أدخِل اسم المستخدم وكلمة مروره ++ ++ ++ Reboot ++ أعد الإقلاع ++ ++ ++ Session ++ الجلسة ++ ++ ++ Shutdown ++ أطفئ ++ ++ ++ User name ++ اسم المستخدم ++ ++ ++ Select your user and enter password ++ اختر مستخدمًا وأدخِل كلمة مروره ++ ++ ++ +diff -Nuar sddm-0.11.0/data/translations/CMakeLists.txt sddm-master/data/translations/CMakeLists.txt +--- sddm-0.11.0/data/translations/CMakeLists.txt 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/translations/CMakeLists.txt 2015-03-08 18:18:48.000000000 +0200 +@@ -1,9 +1,11 @@ + set(TRANSLATION_FILES ++ ar.ts + cs.ts + de.ts + et.ts + fi.ts + fr.ts ++ hu.ts + it.ts + ja.ts + pl.ts +diff -Nuar sddm-0.11.0/data/translations/hu.ts sddm-master/data/translations/hu.ts +--- sddm-0.11.0/data/translations/hu.ts 1970-01-01 02:00:00.000000000 +0200 ++++ sddm-master/data/translations/hu.ts 2015-03-08 18:18:48.000000000 +0200 +@@ -0,0 +1,59 @@ ++ ++ ++ ++ ++ TextConstants ++ ++ Welcome to %1 ++ Üdvözöljük - %1 ++ ++ ++ Warning, Caps Lock is ON! ++ Figyelem: a Caps Lock BE van kapcsolva! ++ ++ ++ Layout ++ Nézet ++ ++ ++ Login ++ Bejelentkezés ++ ++ ++ Login failed ++ Bejelentkezés sikertelen ++ ++ ++ Login succeeded ++ Sikeres bejelentkezés ++ ++ ++ Password ++ Jelszó ++ ++ ++ Enter your username and password ++ Írja be a felhasználónevét és a jelszavát ++ ++ ++ Reboot ++ Újraindítás ++ ++ ++ Session ++ Munkamenet ++ ++ ++ Shutdown ++ Leállítás ++ ++ ++ User name ++ Felhasználónév ++ ++ ++ Select your user and enter password ++ Válassza ki a felhasználónevét és írja be a jelszavát ++ ++ ++ +diff -Nuar sddm-0.11.0/data/translations/it.ts sddm-master/data/translations/it.ts +--- sddm-0.11.0/data/translations/it.ts 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/translations/it.ts 2015-03-08 18:18:48.000000000 +0200 +@@ -21,7 +21,7 @@ + + + Login failed +- Accesso fallito ++ Accesso non riuscito + + + Login succeeded +diff -Nuar sddm-0.11.0/data/translations/pt_PT.ts sddm-master/data/translations/pt_PT.ts +--- sddm-0.11.0/data/translations/pt_PT.ts 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/translations/pt_PT.ts 2015-03-08 18:18:48.000000000 +0200 +@@ -5,11 +5,11 @@ + TextConstants + + Welcome to %1 +- Bem-vindo a %1 ++ Bem-vindo ao %1 + + + Warning, Caps Lock is ON! +- Atenção, Caps Lock está ligada! ++ Atenção, Caps Lock está ativo! + + + Layout +@@ -17,15 +17,15 @@ + + + Login +- Sessão ++ Autenticação + + + Login failed +- A autenticação falhou ++ Falha de autenticação + + + Login succeeded +- Autentificação com sucesso ++ Autenticação efetuada + + + Password +@@ -33,7 +33,7 @@ + + + Enter your username and password +- Escreva o seu nome de utilizador e senha ++ Escreva o seu nome de utilizador e a senha + + + Reboot +diff -Nuar sddm-0.11.0/data/translations/tr.ts sddm-master/data/translations/tr.ts +--- sddm-0.11.0/data/translations/tr.ts 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/data/translations/tr.ts 2015-03-08 18:18:48.000000000 +0200 +@@ -5,7 +5,7 @@ + TextConstants + + Welcome to %1 +- Hoşgeldiniz (%1) ++ Hoş Geldiniz (%1) + + + Warning, Caps Lock is ON! +@@ -29,11 +29,11 @@ + + + Password +- Şifre ++ Parola + + + Enter your username and password +- Kullanıcı adınızı ve şifrenizi giriniz ++ Kullanıcı adınızı ve parolanızı giriniz + + + Reboot +@@ -53,7 +53,7 @@ + + + Select your user and enter password +- Kullanıcınızı seçiniz ve şifrenizi giriniz ++ Kullanıcınızı seçiniz ve parolanızı giriniz + + + +diff -Nuar sddm-0.11.0/README.md sddm-master/README.md +--- sddm-0.11.0/README.md 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/README.md 2015-03-08 18:18:48.000000000 +0200 +@@ -2,7 +2,7 @@ + + [![Build Status](https://travis-ci.org/sddm/sddm.svg?branch=master)](https://travis-ci.org/sddm/sddm) + +-SDDM is a modern display manager for X11 aiming to be fast, simple and beatiful. It uses modern technologies like QtQuick, which in turn gives the designer the ability to create smooth, animated user interfaces. ++SDDM is a modern display manager for X11 aiming to be fast, simple and beautiful. It uses modern technologies like QtQuick, which in turn gives the designer the ability to create smooth, animated user interfaces. + + SDDM is extremely themeable. We put no restrictions on the user interface design, it is completely up to the designer. We simply provide a few callbacks to the user interface which can be used for authentication, suspend etc. To further ease theme creation we provide some premade components like a textbox, a combox etc. + +diff -Nuar sddm-0.11.0/src/common/Configuration.h sddm-master/src/common/Configuration.h +--- sddm-0.11.0/src/common/Configuration.h 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/common/Configuration.h 2015-03-08 18:18:48.000000000 +0200 +@@ -54,6 +54,7 @@ + // TODO: Not absolutely sure if everything belongs here. Xsessions, VT and probably some more seem universal + Section(XDisplay, + Entry(ServerPath, QString, _S("/usr/bin/X"), _S("X server path")); ++ Entry(XephyrPath, QString, _S("/usr/bin/Xephyr"), _S("Xephyr path")); + Entry(XauthPath, QString, _S("/usr/bin/xauth"), _S("Xauth path")); + Entry(SessionDir, QString, _S("/usr/share/xsessions"), _S("Session description directory")); + Entry(SessionCommand, QString, _S(SESSION_COMMAND), _S("Xsession script path\n" +diff -Nuar sddm-0.11.0/src/daemon/Display.cpp sddm-master/src/daemon/Display.cpp +--- sddm-0.11.0/src/daemon/Display.cpp 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/Display.cpp 2015-03-08 18:18:48.000000000 +0200 +@@ -40,8 +40,8 @@ + #include + + namespace SDDM { +- Display::Display(const int displayId, const int terminalId, Seat *parent) : QObject(parent), +- m_displayId(displayId), m_terminalId(terminalId), ++ Display::Display(const int terminalId, Seat *parent) : QObject(parent), ++ m_terminalId(terminalId), + m_auth(new Auth(this)), + m_displayServer(new XorgDisplayServer(this)), + m_seat(parent), +@@ -73,8 +73,8 @@ + stop(); + } + +- const int Display::displayId() const { +- return m_displayId; ++ QString Display::displayId() const { ++ return m_displayServer->display(); + } + + const int Display::terminalId() const { +diff -Nuar sddm-0.11.0/src/daemon/Display.h sddm-master/src/daemon/Display.h +--- sddm-0.11.0/src/daemon/Display.h 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/Display.h 2015-03-08 18:18:48.000000000 +0200 +@@ -39,10 +39,10 @@ + Q_OBJECT + Q_DISABLE_COPY(Display) + public: +- explicit Display(const int displayId, const int terminalId, Seat *parent); ++ explicit Display(int terminalId, Seat *parent); + ~Display(); + +- const int displayId() const; ++ QString displayId() const; + const int terminalId() const; + + const QString &name() const; +@@ -71,7 +71,6 @@ + bool m_relogin { true }; + bool m_started { false }; + +- int m_displayId { 0 }; + int m_terminalId { 7 }; + + QString m_passPhrase; +diff -Nuar sddm-0.11.0/src/daemon/Seat.cpp sddm-master/src/daemon/Seat.cpp +--- sddm-0.11.0/src/daemon/Seat.cpp 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/Seat.cpp 2015-03-08 18:18:48.000000000 +0200 +@@ -51,36 +51,25 @@ + return m_name; + } + +- void Seat::createDisplay(int displayId, int terminalId) { ++ void Seat::createDisplay(int terminalId) { + //reload config if needed + mainConfig.load(); + +- if (displayId == -1) { +- // find unused display +- displayId = findUnused(0, [&](const int number) { +- bool alreadyExists = m_displayIds.contains(number); +- if (!alreadyExists) +- alreadyExists = XorgDisplayServer::displayExists(number); +- return alreadyExists; +- }); +- +- // find unused terminal ++ if (terminalId == -1) { ++ // find unused terminal + terminalId = findUnused(mainConfig.XDisplay.MinimumVT.get(), [&](const int number) { + return m_terminalIds.contains(number); + }); + } + +- // mark display as used +- m_displayIds << displayId; +- + // mark terminal as used + m_terminalIds << terminalId; + + // log message +- qDebug() << "Adding new display" << displayId << "on vt" << terminalId << "..."; ++ qDebug() << "Adding new display" << "on vt" << terminalId << "..."; + + // create a new display +- Display *display = new Display(displayId, terminalId, this); ++ Display *display = new Display(terminalId, this); + + // restart display on stop + connect(display, SIGNAL(stopped()), this, SLOT(displayStopped())); +@@ -92,26 +81,14 @@ + display->start(); + } + +- void Seat::removeDisplay(int displayId) { +- qDebug() << "Removing display" << displayId << "..."; +- +- // display object +- Display *display = nullptr; ++ void Seat::removeDisplay(Display* display) { ++ qDebug() << "Removing display" << display->displayId() << "..."; + +- // find display +- for (Display *d: m_displays) +- if (d->displayId() == displayId) +- display = d; +- +- // check if found +- if (display == nullptr) +- return; + + // remove display from list + m_displays.removeAll(display); + + // mark display and terminal ids as unused +- m_displayIds.removeAll(display->displayId()); + m_terminalIds.removeAll(display->terminalId()); + + // stop the display +@@ -127,7 +104,7 @@ + Display *display = qobject_cast(sender()); + + // remove display +- removeDisplay(display->displayId()); ++ removeDisplay(display); + + // restart otherwise + if (m_displays.isEmpty()) +diff -Nuar sddm-0.11.0/src/daemon/Seat.h sddm-master/src/daemon/Seat.h +--- sddm-0.11.0/src/daemon/Seat.h 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/Seat.h 2015-03-08 18:18:48.000000000 +0200 +@@ -34,8 +34,8 @@ + const QString &name() const; + + public slots: +- void createDisplay(int displayId = -1, int terminalId = -1); +- void removeDisplay(int displayId); ++ void createDisplay(int terminalId = -1); ++ void removeDisplay(SDDM::Display* display); + + private slots: + void displayStopped(); +@@ -45,7 +45,6 @@ + + QList m_displays; + QList m_terminalIds; +- QList m_displayIds; + }; + } + +diff -Nuar sddm-0.11.0/src/daemon/Utils.h sddm-master/src/daemon/Utils.h +--- sddm-0.11.0/src/daemon/Utils.h 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/Utils.h 2015-03-08 18:18:48.000000000 +0200 +@@ -21,6 +21,8 @@ + #ifndef SDDM_UTILS_H + #define SDDM_UTILS_H + ++#include ++ + namespace SDDM { + + inline QString generateName(int length) { +diff -Nuar sddm-0.11.0/src/daemon/XorgDisplayServer.cpp sddm-master/src/daemon/XorgDisplayServer.cpp +--- sddm-0.11.0/src/daemon/XorgDisplayServer.cpp 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/XorgDisplayServer.cpp 2015-03-08 18:18:48.000000000 +0200 +@@ -28,6 +28,9 @@ + #include + #include + #include ++#include ++ ++#include + + #include + +@@ -36,9 +39,6 @@ + + namespace SDDM { + XorgDisplayServer::XorgDisplayServer(Display *parent) : DisplayServer(parent) { +- // figure out the X11 display +- m_display = QString(":%1").arg(displayPtr()->displayId()); +- + // get auth directory + QString authDir = RUNTIME_DIR; + +@@ -50,7 +50,7 @@ + QDir().mkpath(authDir); + + // set auth path +- m_authPath = QString("%1/%2").arg(authDir).arg(m_display); ++ m_authPath = QString("%1/%2").arg(authDir).arg(QUuid::createUuid().toString()); + + // generate cookie + std::random_device rd; +@@ -70,10 +70,6 @@ + stop(); + } + +- bool XorgDisplayServer::displayExists(int number) { +- return QFile(QString("/tmp/.X%1-lock").arg(number)).exists(); +- } +- + const QString &XorgDisplayServer::display() const { + return m_display; + } +@@ -136,44 +132,72 @@ + if (daemonApp->testing()) { + QStringList args; + args << m_display << "-ac" << "-br" << "-noreset" << "-screen" << "800x600"; +- process->start("/usr/bin/Xephyr", args); ++ process->start(mainConfig.XDisplay.XephyrPath.get(), args); ++ ++ ++ // wait for display server to start ++ if (!process->waitForStarted()) { ++ // log message ++ qCritical() << "Failed to start display server process."; ++ ++ // return fail ++ return false; ++ } ++ emit started(); + } else { + // set process environment + QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); +- env.insert("DISPLAY", m_display); +- env.insert("XAUTHORITY", m_authPath); + env.insert("XCURSOR_THEME", mainConfig.Theme.CursorTheme.get()); + process->setProcessEnvironment(env); + +- // tell the display server to notify us when we can connect +- SignalHandler::ignoreSigusr1(); ++ //create pipe for communicating with X server ++ //0 == read from X, 1== write to from X ++ int pipeFds[2]; ++ if (pipe(pipeFds) != 0) { ++ qCritical("Could not create pipe to start X server"); ++ } + + // start display server + QStringList args; +- args << m_display +- << "-auth" << m_authPath ++ args << "-auth" << m_authPath + << "-nolisten" << "tcp" + << "-background" << "none" + << "-noreset" ++ << "-displayfd" << QString::number(pipeFds[1]) + << QString("vt%1").arg(displayPtr()->terminalId()); + qDebug() << "Running:" + << qPrintable(mainConfig.XDisplay.ServerPath.get()) + << qPrintable(args.join(" ")); + process->start(mainConfig.XDisplay.ServerPath.get(), args); +- SignalHandler::initializeSigusr1(); +- connect(DaemonApp::instance()->signalHandler(), SIGNAL(sigusr1Received()), this, SIGNAL(started())); +- } + +- // wait for display server to start +- if (!process->waitForStarted()) { +- // log message +- qCritical() << "Failed to start display server process."; ++ // wait for display server to start ++ if (!process->waitForStarted()) { ++ // log message ++ qCritical() << "Failed to start display server process."; ++ ++ // return fail ++ close(pipeFds[0]); ++ return false; ++ } ++ ++ QFile readPipe; ++ ++ if (!readPipe.open(pipeFds[0], QIODevice::ReadOnly)) { ++ qCritical("Failed to open pipe to start X Server "); ++ ++ close(pipeFds[0]); ++ return false; ++ } ++ QByteArray displayNumber = readPipe.readLine(); ++ displayNumber.prepend(QByteArray(":")); ++ displayNumber.remove(displayNumber.size() -1, 1); //trim trailing whitespace ++ m_display= displayNumber; ++ ++ // close our pipe ++ close(pipeFds[0]); + +- // return fail +- return false; +- } +- if (daemonApp->testing()) + emit started(); ++ } + + // set flag + m_started = true; +diff -Nuar sddm-0.11.0/src/daemon/XorgDisplayServer.h sddm-master/src/daemon/XorgDisplayServer.h +--- sddm-0.11.0/src/daemon/XorgDisplayServer.h 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/daemon/XorgDisplayServer.h 2015-03-08 18:18:48.000000000 +0200 +@@ -33,8 +33,6 @@ + explicit XorgDisplayServer(Display *parent); + ~XorgDisplayServer(); + +- static bool displayExists(int number); +- + const QString &display() const; + const QString &authPath() const; + +diff -Nuar sddm-0.11.0/src/greeter/SessionModel.cpp sddm-master/src/greeter/SessionModel.cpp +--- sddm-0.11.0/src/greeter/SessionModel.cpp 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/greeter/SessionModel.cpp 2015-03-08 18:18:48.000000000 +0200 +@@ -57,6 +57,7 @@ + continue; + SessionPtr si { new Session { session, "", "", "" } }; + QTextStream in(&inputFile); ++ bool execAllowed = true; + while (!in.atEnd()) { + QString line = in.readLine(); + if (line.startsWith("Name=")) +@@ -65,9 +66,15 @@ + si->exec = line.mid(5); + if (line.startsWith("Comment=")) + si->comment = line.mid(8); ++ if (line.startsWith("TryExec=")) { ++ QFileInfo fi(line.mid(8)); ++ if (!fi.exists() || !fi.isExecutable()) ++ execAllowed = false; ++ } + } + // add to sessions list +- d->sessions.push_back(si); ++ if (execAllowed) ++ d->sessions.push_back(si); + // close file + inputFile.close(); + } +diff -Nuar sddm-0.11.0/src/helper/backend/PamBackend.cpp sddm-master/src/helper/backend/PamBackend.cpp +--- sddm-0.11.0/src/helper/backend/PamBackend.cpp 2014-11-20 17:47:24.000000000 +0200 ++++ sddm-master/src/helper/backend/PamBackend.cpp 2015-03-08 18:18:48.000000000 +0200 +@@ -251,7 +251,9 @@ + QProcessEnvironment sessionEnv = m_app->session()->processEnvironment(); + QString display = sessionEnv.value("DISPLAY"); + if (!display.isEmpty()) { ++#ifdef PAM_XDISPLAY + m_pam->setItem(PAM_XDISPLAY, qPrintable(display)); ++#endif + m_pam->setItem(PAM_TTY, qPrintable(display)); + } + if (!m_pam->putEnv(sessionEnv)) { diff --git a/desktop/kde/plasma/sddm/files/sddm_y b/desktop/kde/plasma/sddm/files/sddm_y new file mode 100644 index 0000000000..0a76cc169d --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm_y @@ -0,0 +1,10 @@ +# Begin /etc/pam.d/sddm +#%PAM-1.0 +auth substack system-auth +auth optional pam_gnome_keyring.so +account include system-auth +session optional pam_keyinit.so force revoke +session include system-auth +session optional pam_console.so +session optional pam_gnome_keyring.so auto_start +session optional pam_selinux.so diff --git a/desktop/kde/plasma/sddm/files/sddm_yedek b/desktop/kde/plasma/sddm/files/sddm_yedek new file mode 100644 index 0000000000..b66e9367cc --- /dev/null +++ b/desktop/kde/plasma/sddm/files/sddm_yedek @@ -0,0 +1,18 @@ +# Begin /etc/pam.d/sddm + +auth required pam_unix.so try_first_pass nullok +auth optional pam_permit.so +auth required pam_env.so + +account required pam_unix.so +account optional pam_permit.so +account required pam_time.so + +password required pam_unix.so try_first_pass nullok sha512 shadow +password optional pam_permit.so + +session required pam_limits.so +session required pam_unix.so +session optional pam_permit.so + +# End /etc/pam.d/sddm \ No newline at end of file diff --git a/desktop/kde/plasma/sddm/pspec.xml b/desktop/kde/plasma/sddm/pspec.xml new file mode 100755 index 0000000000..3aaa4d6dbe --- /dev/null +++ b/desktop/kde/plasma/sddm/pspec.xml @@ -0,0 +1,78 @@ + + + + + sddm + https://github.com/sddm/sddm + + Pisi Linux Admins + admin@pisilinux.org + + LGPLv2 + library + app:console + QML based X11 display manager + KDE Power Management module. Provides kded daemon DBus helper and KCM for configuring Power settings + https://github.com/sddm/sddm/archive/v0.11.0.tar.gz + + qt5-base-devel + qt5-tools-devel + qt5-base-devel + libgcc + pkgconfig + libxcb-devel + libxkbfile-devel + extra-cmake-modules + docutils + + + sddm_upstream.patch + sddm-0.10.0-upower.patch + sddm-0.11.0-consolekit.patch + + + + + sddm + + qt5-base + qt5-declarative + libgcc + libxcb + + + /etc + /usr/share + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/man + /usr/share/doc + + + sddm.conf + sddm + + + System.Service + System.Package + + + + + + 2015-07-03 + 0.11 + Rebuild. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2014-09-20 + 0.11 + First release + Stefan Gronewold (groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/plasma/system-settings/actions.py b/desktop/kde/plasma/system-settings/actions.py new file mode 100644 index 0000000000..56638b7e32 --- /dev/null +++ b/desktop/kde/plasma/system-settings/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("COPYING") diff --git a/desktop/kde/plasma/system-settings/pspec.xml b/desktop/kde/plasma/system-settings/pspec.xml new file mode 100755 index 0000000000..850c5d7921 --- /dev/null +++ b/desktop/kde/plasma/system-settings/pspec.xml @@ -0,0 +1,88 @@ + + + + + system-settings + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + KDE5 system settings manager + System-settings is a control panel for KDE5 Plasma + http://download.kde.org/stable/plasma/5.3.2/systemsettings-5.3.2.tar.xz + + qt5-base-devel + kdoctools-devel + libgcc + python3 + extra-cmake-modules + + + + + system-settings + + qt5-base + kauth + libgcc + kcompletion + kcoreaddons + kconfigwidgets + kwidgetsaddons + kcmutils + kconfig + kdbusaddons + khtml + ki18n + kiconthemes + kio + kitemviews + kservice + kwindowsystem + kxmlgui + + + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + system-settings-devel + Development files for system-settings + + qt5-base-devel + system-settings + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-07-01 + 5.3.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-05-29 + 5.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/kdelibs4-support/actions.py b/desktop/kde/porting-aids/kdelibs4-support/actions.py new file mode 100644 index 0000000000..29911258e6 --- /dev/null +++ b/desktop/kde/porting-aids/kdelibs4-support/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure("-DHTML_INSTAL_DIR=/usr/share/doc/kdelibs4support/html") + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/porting-aids/kdelibs4-support/pspec.xml b/desktop/kde/porting-aids/kdelibs4-support/pspec.xml new file mode 100755 index 0000000000..395d1784a5 --- /dev/null +++ b/desktop/kde/porting-aids/kdelibs4-support/pspec.xml @@ -0,0 +1,108 @@ + + + + + kdelibs4-support + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Code and utilities to ease the transition to KDE Frameworks 5 + KDELibs4Support provides libraries to port KDE4 programs to QT5/KDE5 + http://download.kde.org/stable/frameworks/5.11/portingAids/kdelibs4support-5.11.0.tar.xz + + qt5-base-devel + perl-URI + qt5-tools-devel + libSM-devel + docbook-xml + openssl-devel + libX11-devel + intltool + kdoctools-devel + NetworkManager-devel + extra-cmake-modules + + + + + kdelibs4-support + + qt5-base + libICE + libgcc + libX11 + qt5-svg + qt5-x11extras + libSM + kauth + solid + kcodecs + kcoreaddons + kjobwidgets + kcompletion + kconfig + kconfigwidgets + kcrash + kdbusaddons + kglobalaccel + kguiaddons + ki18n + kiconthemes + kio + kitemviews + knotifications + kparts + kservice + ktextwidgets + kxmlgui + kwindowsystem + kwidgetsaddons + + + /etc + /usr/share + /usr/share/locale + /usr/bin + /usr/lib/qt5 + /usr/lib + /usr/share/doc + /usr/share/man + + + + + kdelibs4-support-devel + Development files for kdelibs4-support + + qt5-base-devel + kdelibs4-support + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-01 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/khtml/actions.py b/desktop/kde/porting-aids/khtml/actions.py new file mode 100644 index 0000000000..7ad3db044b --- /dev/null +++ b/desktop/kde/porting-aids/khtml/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md") diff --git a/desktop/kde/porting-aids/khtml/pspec.xml b/desktop/kde/porting-aids/khtml/pspec.xml new file mode 100755 index 0000000000..863b15ce33 --- /dev/null +++ b/desktop/kde/porting-aids/khtml/pspec.xml @@ -0,0 +1,102 @@ + + + + + khtml + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + HTML rendering engine for KDE + KHTML is a web rendering engine, based on the KParts technology and using KJS for JavaScript support. + http://download.kde.org/stable/frameworks/5.11/portingAids/khtml-5.11.0.tar.xz + + qt5-base-devel + zlib-devel + libX11-devel + zlib + openssl-devel + extra-cmake-modules + + + + + khtml + + qt5-base + qt5-x11extras + qt5-phonon + zlib + openssl + giflib + zlib + libX11 + libgcc + libpng + libjpeg-turbo + sonnet + kcodecs + kconfig + kjobwidgets + kwidgetsaddons + kcompletion + karchive + kconfigwidgets + kcoreaddons + kglobalaccel + ki18n + kiconthemes + kio + kjs + knotifications + kparts + kservice + ktextwidgets + kwallet + kwindowsystem + kxmlgui + + + /etc + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + khtml-devel + Development files for khtml + + khtml + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-02 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/kjs/actions.py b/desktop/kde/porting-aids/kjs/actions.py new file mode 100644 index 0000000000..11b2858877 --- /dev/null +++ b/desktop/kde/porting-aids/kjs/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/porting-aids/kjs/pspec.xml b/desktop/kde/porting-aids/kjs/pspec.xml new file mode 100755 index 0000000000..9bd945d05e --- /dev/null +++ b/desktop/kde/porting-aids/kjs/pspec.xml @@ -0,0 +1,73 @@ + + + + + kjs + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + JavaScript engine for KDE + This library provides an ECMAScript compatible interpreter. The ECMA standard is based on well known scripting languages such as Netscape's JavaScript and Microsoft's JScript. + http://download.kde.org/stable/frameworks/5.11/portingAids/kjs-5.11.0.tar.xz + + qt5-base-devel + libpcre-devel + libgcc + kdoctools-devel + extra-cmake-modules + + + + + kjs + + qt5-base + libgcc + libpcre + + + /usr/bin + /usr/share + /usr/lib/qt5 + /usr/lib + /usr/share/man + /usr/share/doc + + + + + kjs-devel + Development files for kjs + + qt5-base-devel + kjs + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-02 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/kjsembed/actions.py b/desktop/kde/porting-aids/kjsembed/actions.py new file mode 100644 index 0000000000..e5ff33ac3c --- /dev/null +++ b/desktop/kde/porting-aids/kjsembed/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "AUTHORS", "COPYING.LIB") diff --git a/desktop/kde/porting-aids/kjsembed/pspec.xml b/desktop/kde/porting-aids/kjsembed/pspec.xml new file mode 100755 index 0000000000..ef1a0f9d9e --- /dev/null +++ b/desktop/kde/porting-aids/kjsembed/pspec.xml @@ -0,0 +1,75 @@ + + + + + kjsembed + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + JavaScript support for HTML rendering engine on KDE5 + The KJSEmbed library is an easy-to-use wrapper around the KDE ECMAScript interpreter (kjs) that makes it easy to add scriptability to an application. + http://download.kde.org/stable/frameworks/5.11/portingAids/kjsembed-5.11.0.tar.xz + + qt5-base-devel + qt5-tools-devel + kdoctools-devel + python3 + extra-cmake-modules + + + + + kjsembed + + qt5-base + qt5-svg + libgcc + ki18n + kjs + + + /usr/bin + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/man + /usr/share/doc + + + + + kjsembed-devel + Development files for kjsembed + + qt5-base-devel + kjsembed + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-02 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/kmediaplayer/actions.py b/desktop/kde/porting-aids/kmediaplayer/actions.py new file mode 100644 index 0000000000..21870af947 --- /dev/null +++ b/desktop/kde/porting-aids/kmediaplayer/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "LICENSE") diff --git a/desktop/kde/porting-aids/kmediaplayer/pspec.xml b/desktop/kde/porting-aids/kmediaplayer/pspec.xml new file mode 100755 index 0000000000..14bd7b7aee --- /dev/null +++ b/desktop/kde/porting-aids/kmediaplayer/pspec.xml @@ -0,0 +1,68 @@ + + + + + kmediaplayer + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + KDE5 media player Plugin interface for media player features + KMediaPlayer builds on the KParts framework to provide a common interface for KParts that can play media files. + http://download.kde.org/stable/frameworks/5.11/portingAids/kmediaplayer-5.11.0.tar.xz + + qt5-base-devel + extra-cmake-modules + + + + + kmediaplayer + + qt5-base + libgcc + kparts + kxmlgui + + + /usr/share + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + kmediaplayer-devel + Development files for kmediaplayer + + qt5-base-devel + kmediaplayer + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-02 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/kross/actions.py b/desktop/kde/porting-aids/kross/actions.py new file mode 100644 index 0000000000..11b2858877 --- /dev/null +++ b/desktop/kde/porting-aids/kross/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md", "COPYING.LIB") diff --git a/desktop/kde/porting-aids/kross/pspec.xml b/desktop/kde/porting-aids/kross/pspec.xml new file mode 100755 index 0000000000..cf031f63b7 --- /dev/null +++ b/desktop/kde/porting-aids/kross/pspec.xml @@ -0,0 +1,80 @@ + + + + + kross + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + KDE5 application scripting helper + Kross is a scripting bridge to embed scripting functionality into an application. It supports QtScript as a scripting interpreter backend. + http://download.kde.org/stable/frameworks/5.11/portingAids/kross-5.11.0.tar.xz + + qt5-base-devel + qt5-tools-devel + kdoctools-devel + extra-cmake-modules + + + + + kross + + qt5-base + qt5-script + libgcc + kcoreaddons + ki18n + kcompletion + kiconthemes + kio + kparts + kwidgetsaddons + kxmlgui + + + /usr/bin + /usr/share + /usr/share/locale + /usr/lib/qt5 + /usr/lib + /usr/share/doc + /usr/share/man + + + + + kross-devel + Development files for kross + + qt5-base-devel + kross + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-02 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/kde/porting-aids/krunner/actions.py b/desktop/kde/porting-aids/krunner/actions.py new file mode 100644 index 0000000000..7ad3db044b --- /dev/null +++ b/desktop/kde/porting-aids/krunner/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import kde5 +from pisi.actionsapi import pisitools + +def setup(): + kde5.configure() + +def build(): + kde5.make() + +def install(): + kde5.install() + + pisitools.dodoc("README.md") diff --git a/desktop/kde/porting-aids/krunner/pspec.xml b/desktop/kde/porting-aids/krunner/pspec.xml new file mode 100755 index 0000000000..a76487c485 --- /dev/null +++ b/desktop/kde/porting-aids/krunner/pspec.xml @@ -0,0 +1,77 @@ + + + + + krunner + http://www.kde.org + + Pisi Linux Admins + admins@pisilinux.org + + LGPLv2 + library + app:console + Krunner Framework for providing different actions given a string query + Framework Integration is a set of plugins responsible for better integration of Qt applications when running on a KDE Plasma workspace. + http://download.kde.org/stable/frameworks/5.11/portingAids/krunner-5.11.0.tar.xz + + qt5-base-devel + kdoctools-devel + extra-cmake-modules + + + + + krunner + + qt5-base + qt5-declarative + libgcc + kconfig + kcoreaddons + ki18n + kio + kservice + plasma-framework + solid + threadweaver + + + /usr/share + /usr/lib/qt5 + /usr/lib + /usr/share/doc + + + + + krunner-devel + Development files for krunner + + qt5-base-devel + krunner + + + /usr/include + /usr/lib/cmake + /usr/lib/pkgconfig + + + + + + 2015-06-28 + 5.11.0 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2015-06-02 + 5.10.0 + First Release. + Stefan Gronewold(groni) + groni@pisilinux.org + + + diff --git a/desktop/lookandfeel/gtk-theme-mediterranean/actions.py b/desktop/lookandfeel/gtk-theme-mediterranean/actions.py new file mode 100644 index 0000000000..710f66b2e4 --- /dev/null +++ b/desktop/lookandfeel/gtk-theme-mediterranean/actions.py @@ -0,0 +1,14 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools + +WorkDir = "Work" + + +def install(): + + pisitools.insinto("/usr/share/themes", "*") diff --git a/desktop/lookandfeel/gtk-theme-mediterranean/pspec.xml b/desktop/lookandfeel/gtk-theme-mediterranean/pspec.xml new file mode 100644 index 0000000000..94e6721467 --- /dev/null +++ b/desktop/lookandfeel/gtk-theme-mediterranean/pspec.xml @@ -0,0 +1,64 @@ + + + + + gtk-theme-mediterranean + http://gnome-look.org/content/show.php/MediterraneanNight+Series?content=156782 + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + data + Great themes for GTK2 and GTK3 + Themes for GTK2 and GTK3. + https://dl.dropboxusercontent.com/u/80497678/MediterraneanNight-2.03.tar.gz + + + + gtk-theme-mediterranean + + gtk2-engines-murrine + gdk-pixbuf + + + /usr/share/themes/MediterraneanDark + /usr/share/themes/MediterraneanWhite + /usr/share/themes/MediterraneanLightDarkest + + + + gtk-theme-mediterranean-others + + gtk2-engines-murrine + gdk-pixbuf + + + /usr/share/themes + + + + + + 2014-02-06 + 2.03 + Add MediterraneanLightDarkest to main package. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-26 + 2.03 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2013-10-05 + 2.0.3 + First release + Serdar Soytetir + kaptan@pisilinux.org + + + diff --git a/desktop/lookandfeel/gtk-theme-mediterranean/translations.xml b/desktop/lookandfeel/gtk-theme-mediterranean/translations.xml new file mode 100644 index 0000000000..72ec7f3178 --- /dev/null +++ b/desktop/lookandfeel/gtk-theme-mediterranean/translations.xml @@ -0,0 +1,8 @@ + + + + gtk-theme-mediterranean + GTK2 ve GTK3 için güzel temalar + GTK2 ve GTK3 için yazılmış tema paketleri. + + diff --git a/desktop/lookandfeel/gtk2-engines-murrine/actions.py b/desktop/lookandfeel/gtk2-engines-murrine/actions.py new file mode 100644 index 0000000000..1d775dd948 --- /dev/null +++ b/desktop/lookandfeel/gtk2-engines-murrine/actions.py @@ -0,0 +1,25 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +WorkDir = "murrine-%s" % get.srcVERSION() + +def setup(): + autotools.configure("--disable-static \ + --enable-animation") + + pisitools.dosed("libtool", " -shared ", " -Wl,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("AUTHORS", "ChangeLog", "NEWS") diff --git a/desktop/lookandfeel/gtk2-engines-murrine/pspec.xml b/desktop/lookandfeel/gtk2-engines-murrine/pspec.xml new file mode 100644 index 0000000000..48a2f9fc0c --- /dev/null +++ b/desktop/lookandfeel/gtk2-engines-murrine/pspec.xml @@ -0,0 +1,68 @@ + + + + + gtk2-engines-murrine + http://cimitan.com/murrine/project/murrine + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + GTK+ Murrine theme engine + The Murrine engine is a cairo-based GTK+ theming tool. It's very fast compared to clearlooks-cairo. Murrine includes animations and a unique style. + mirrors://gnome/murrine/0.98/murrine-0.98.2.tar.xz + + gtk2-devel + glib2-devel + cairo-devel + pango-devel + pixman-devel + gdk-pixbuf-devel + intltool + + + + + gtk2-engines-murrine + + gtk2 + + glib2 + cairo + pango + pixman + gdk-pixbuf + + + /usr/lib + /usr/share/doc + /usr/share/gtk-engines + + + + + + 2014-02-07 + 0.98.2 + Remove gtk2 runtime dep to avoid cyclic deps. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-08-17 + 0.98.2 + Release bump + Erdinç Gültekin + erdinc@pisilinux.org + + + 2012-06-10 + 0.98.2 + First release + Erdinç Gültekin + admins@pisilinux.org + + + diff --git a/desktop/lookandfeel/gtk2-engines-murrine/translations.xml b/desktop/lookandfeel/gtk2-engines-murrine/translations.xml new file mode 100644 index 0000000000..a3b7b03427 --- /dev/null +++ b/desktop/lookandfeel/gtk2-engines-murrine/translations.xml @@ -0,0 +1,8 @@ + + + + gtk2-engines-murrine + GTK+ Murrine tema motoru + Murrine motoru, Cairo tabanlı GTK+ tema aracıdır. Clearlooks temasına göre çok daha hızlıdır. Aynı zamanda canlandırmalar, benzersiz biçemler içerir. + + diff --git a/desktop/misc/at-spi2-atk/actions.py b/desktop/misc/at-spi2-atk/actions.py new file mode 100644 index 0000000000..59e7d1e981 --- /dev/null +++ b/desktop/misc/at-spi2-atk/actions.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--disable-static \ + --libexecdir=/usr/libexec/at-spi2") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "COPYING", "README", "NEWS") \ No newline at end of file diff --git a/desktop/misc/at-spi2-atk/pspec.xml b/desktop/misc/at-spi2-atk/pspec.xml new file mode 100644 index 0000000000..04dbf1cd19 --- /dev/null +++ b/desktop/misc/at-spi2-atk/pspec.xml @@ -0,0 +1,135 @@ + + + + + at-spi2-atk + http://www.linuxfoundation.org/collaborate/workgroups/accessibility + + PisiLinux Community + admins@pisilinux.org + + LGPLv2+ + service + Protocol definitions and daemons for D-Bus at-spi + at-spi allows assistive technologies to access GTK-based applications. Essentially it exposes the internals of applications over D-Bus for automation. + mirrors://gnome/at-spi2-atk/2.16/at-spi2-atk-2.16.0.tar.xz + + at-spi2-core-devel + glib2-devel + atk-devel + libX11-devel + dbus-devel + libXtst-devel + + + + + at-spi2-atk + + atk + dbus + glib2 + at-spi2-core + + + /usr/lib + /usr/share/doc + + + + + at-spi2-atk-32bit + emul32 + 32-bit shared libraries for at-spi2-atk + emul32 + + glibc-32bit + at-spi2-core-32bit + atk-32bit + dbus-32bit + glib2-32bit + + + glibc-32bit + atk-32bit + dbus-32bit + glib2-32bit + at-spi2-core-32bit + + + /usr/lib32 + + + + + at-spi2-atk-devel + at-spi2-atk için geliştirme dosyaları + + at-spi2-atk + + + /usr/lib32/pkgconfig + /usr/lib/pkgconfig + /usr/include + + + + + + 2015-04-17 + 2.16.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-04-15 + 2.12.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-10 + 2.10.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-07-27 + 2.8.1 + Move pc files to devel pack, rebuild + split packages + PisiLinux Community + admins@pisilinux.org + + + 2013-06-01 + 2.8.1 + Dep fixed + PisiLinux Community + admins@pisilinux.org + + + 2013-04-23 + 2.8.1 + Dep fixed + PisiLinux Community + admins@pisilinux.org + + + 2013-04-17 + 2.8.1 + Version bump + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2012-10-22 + 2.7.2 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/desktop/misc/at-spi2-atk/translations.xml b/desktop/misc/at-spi2-atk/translations.xml new file mode 100644 index 0000000000..a5556d2f9c --- /dev/null +++ b/desktop/misc/at-spi2-atk/translations.xml @@ -0,0 +1,18 @@ + + + + at-spi2-core + D-Bus at-spi için protokol tanımları ve hizmetleri + at-spi2-atk, erişilebilirlik teknolojilerinin uygulamalara D-Bus üzerinden erişerek onları otomatik olarak denetlemesini sağlar. + + + + at-spi2-atk-32bit + 32-bit shared libraries for at-spi2-atk + + + + at-spi2-atk-devel + at-spi2-atk için geliştirme dosyaları + + diff --git a/desktop/misc/xdg-utils/actions.py b/desktop/misc/xdg-utils/actions.py new file mode 100644 index 0000000000..49cd44e248 --- /dev/null +++ b/desktop/misc/xdg-utils/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.autoreconf("-vif") + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) diff --git a/desktop/misc/xdg-utils/files/drop-xmlto-stuff.patch b/desktop/misc/xdg-utils/files/drop-xmlto-stuff.patch new file mode 100644 index 0000000000..9aa060c7e4 --- /dev/null +++ b/desktop/misc/xdg-utils/files/drop-xmlto-stuff.patch @@ -0,0 +1,13 @@ +Index: xdg-utils-1.0.2.20100618/scripts/Makefile.in +=================================================================== +--- xdg-utils-1.0.2.20100618.orig/scripts/Makefile.in ++++ xdg-utils-1.0.2.20100618/scripts/Makefile.in +@@ -5,7 +5,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(IN + INSTALL_LIBRARY = @INSTALL_PROGRAM@ $(INSTALL_PROGRAM_FLAGS) + INSTALL_SCRIPT = @INSTALL_SCRIPT@ $(INSTALL_SCRIPT_FLAGS) + INSTALL_DATA = @INSTALL_DATA@ $(INSTALL_DATA_FLAGS) +-XMLTO = @XMLTO@ ++XMLTO = @XMLTO@ --skip-validation + + prefix = @prefix@ + exec_prefix = @exec_prefix@ diff --git a/desktop/misc/xdg-utils/files/enable-other-xdg.patch b/desktop/misc/xdg-utils/files/enable-other-xdg.patch new file mode 100644 index 0000000000..a020b2c923 --- /dev/null +++ b/desktop/misc/xdg-utils/files/enable-other-xdg.patch @@ -0,0 +1,20 @@ +diff -Nur xdg-utils-1.0.2.20100618-old//scripts/Makefile.in xdg-utils-1.0.2.20100618//scripts/Makefile.in +--- xdg-utils-1.0.2.20100618-old//scripts/Makefile.in 2010-10-27 10:39:56.381000014 +0300 ++++ xdg-utils-1.0.2.20100618//scripts/Makefile.in 2010-10-27 10:41:44.799000093 +0300 +@@ -20,11 +20,11 @@ + xdg-open \ + xdg-email \ + xdg-screensaver \ +- xdg-settings +-# xdg-su +-# xdg-copy \ +-# xdg-file-dialog +-# xdg-terminal ++ xdg-settings \ ++ xdg-su \ ++ xdg-copy \ ++ xdg-file-dialog \ ++ xdg-terminal + + MANPAGES= $(SCRIPTS:%=man/%.1) + WEBPAGES= $(SCRIPTS:%=%.html) diff --git a/desktop/misc/xdg-utils/files/gksu.patch b/desktop/misc/xdg-utils/files/gksu.patch new file mode 100644 index 0000000000..2f55acb754 --- /dev/null +++ b/desktop/misc/xdg-utils/files/gksu.patch @@ -0,0 +1,42 @@ +Index: xdg-utils-1.0.2/scripts/xdg-su +=================================================================== +--- xdg-utils-1.0.2.orig/scripts/xdg-su ++++ xdg-utils-1.0.2/scripts/xdg-su +@@ -351,6 +351,26 @@ su_gnome() + exit_failure_operation_failed + fi + else ++ su_gk ++ fi ++} ++ ++su_gk() ++{ ++ GKSU=`which gksu 2>/dev/null` ++ if [ $? -eq 0 ] ; then ++ if [ -z "$user" ] ; then ++ $GKSU "$cmd" ++ else ++ $GKSU -u "$user" "$cmd" ++ fi ++ ++ if [ $? -eq 0 ]; then ++ exit_success ++ else ++ exit_failure_operation_failed ++ fi ++ else + su_generic + fi + } +@@ -427,6 +447,10 @@ case "$DE" in + su_gnome + ;; + ++ xfce) ++ su_gk ++ ;; ++ + generic) + su_generic + ;; diff --git a/desktop/misc/xdg-utils/files/xfce-detection.patch b/desktop/misc/xdg-utils/files/xfce-detection.patch new file mode 100644 index 0000000000..06445bf86c --- /dev/null +++ b/desktop/misc/xdg-utils/files/xfce-detection.patch @@ -0,0 +1,11 @@ +--- scripts/xdg-utils-common.in.OSmanOS 2012-10-08 18:26:46.000000000 +0300 ++++ scripts/xdg-utils-common.in 2013-04-05 18:22:55.816631216 +0300 +@@ -280,7 +280,7 @@ + elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; + elif [ x"$MATE_DESKTOP_SESSION_ID" != x"" ]; then DE=mate; + elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome; +- elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; ++ elif xprop -root | grep -qw XFCE_DESKTOP_WINDOW 2>&1; then DE=xfce; + elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce + fi + fi diff --git a/desktop/misc/xdg-utils/pspec.xml b/desktop/misc/xdg-utils/pspec.xml new file mode 100644 index 0000000000..a2d2b94b74 --- /dev/null +++ b/desktop/misc/xdg-utils/pspec.xml @@ -0,0 +1,68 @@ + + + + + xdg-utils + http://portland.freedesktop.org/wiki/ + + PisiLinux Community + admins@pisilinux.org + + MIT + app:console + Common desktop utilities + Xdg-utils is a set of command line tools that assist applications with a variety of desktop integration tasks. About half of the tools focus on tasks commonly required during the installation of a desktop application and the other half focuses on integration with the desktop environment while the application is running. + http://source.pisilinux.org/1.0/xdg-utils.tar.xz + + xmlto + docbook-xsl + lynx + + + + enable-other-xdg.patch + xfce-detection.patch + + drop-xmlto-stuff.patch + + + + + xdg-utils + + /usr/bin + /usr/share/man + + + + + + 2014-02-16 + 1.1.0_20140207 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-23 + 20131006 + Release bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-08-26 + 1.1.0_rc1 + Release bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-04-05 + 1.1.0_rc1 + First release + Pisi Linux Admins + admins@pisilinux.org + + + \ No newline at end of file diff --git a/desktop/misc/xdg-utils/translations.xml b/desktop/misc/xdg-utils/translations.xml new file mode 100644 index 0000000000..21bf42fa08 --- /dev/null +++ b/desktop/misc/xdg-utils/translations.xml @@ -0,0 +1,8 @@ + + + + xdg-utils + Ortak masaüstü komutları + Utilitaires de bureaux communs. + + diff --git a/desktop/toolkit/gtk/atk/actions.py b/desktop/toolkit/gtk/atk/actions.py new file mode 100644 index 0000000000..ec9ba2d284 --- /dev/null +++ b/desktop/toolkit/gtk/atk/actions.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + pisitools.dosed(".", "^(SUBDIRS =.*)tests(.*)$", "\\1\\2", filePattern="^Makefile.(am|in)", level=0) + autotools.autoreconf("-fiv") + autotools.configure("\ + --disable-static \ + --enable-introspection=%s \ + " % ("no" if get.buildTYPE() == "emul32" else "yes")) + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.removeDir("/usr/share/gtk-doc") + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README") diff --git a/desktop/toolkit/gtk/atk/pspec.xml b/desktop/toolkit/gtk/atk/pspec.xml new file mode 100644 index 0000000000..973d771be0 --- /dev/null +++ b/desktop/toolkit/gtk/atk/pspec.xml @@ -0,0 +1,127 @@ + + + + + atk + http://developer.gnome.org/atk + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + library + GTK+ and GNOME Accessibility Toolkit + These libraries provide tools for making software for people with disabilities. + mirrors://gnome/atk/2.16/atk-2.16.0.tar.xz + + gobject-introspection-devel + glib2-devel + gtk-doc + + + + + atk + + glib2 + + + /usr/lib/libatk* + /usr/lib/girepository-1.0 + /usr/share/gir-1.0 + /usr/share/locale + /usr/share/doc + + + + + atk-devel + Development files for atk + + atk + + + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + + + + + atk-32bit + emul32 + 32-bit shared libraries for atk + emul32 + + glib2-32bit + glibc-32bit + + + atk + glib2-32bit + glibc-32bit + + + /usr/lib32 + + + + + + 2015-04-17 + 2.16.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-05-17 + 2.12.0 + Release bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2014-03-30 + 2.12.0 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-10-10 + 2.10.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-08-21 + 2.8.0 + Release bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-04-07 + 2.8.0 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-02-24 + 2.7.91 + V.Bump + PisiLinux Community + admins@pisilinux.org + + + 2012-10-22 + 2.7.2 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/atk/translations.xml b/desktop/toolkit/gtk/atk/translations.xml new file mode 100644 index 0000000000..1c5014a9a5 --- /dev/null +++ b/desktop/toolkit/gtk/atk/translations.xml @@ -0,0 +1,19 @@ + + + + atk + GTK+ ve GNOME erişilebilirlik kitaplığı + Bu kitaplıklar engelli insanlar için yapılan programlarda kullanılabilecek araçları içerir. + Ces librairies fournissent des outils pour faire des logiciels pour personnes handicapées. + + + + atk-devel + atk için geliştirme dosyaları + + + + atk-32bit + atk için 32-bit paylaşımlı kitaplıklar + + diff --git a/desktop/toolkit/gtk/cairo/actions.py b/desktop/toolkit/gtk/cairo/actions.py new file mode 100644 index 0000000000..1e0080f661 --- /dev/null +++ b/desktop/toolkit/gtk/cairo/actions.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + pisitools.flags.add("-flto -ffat-lto-objects") +# autotools.autoreconf("-vfi") + autotools.configure("--disable-static \ + --enable-xlib \ + --disable-drm \ + --enable-xml \ + --enable-ft \ + --enable-ps \ + --enable-pdf \ + --enable-svg \ + --enable-tee \ + --enable-gl \ + --enable-gobject \ + --disable-gtk-doc") + + pisitools.dosed("libtool", "^(hardcode_libdir_flag_spec=).*", '\\1""') + pisitools.dosed("libtool", "^(runpath_var=)LD_RUN_PATH", "\\1DIE_RPATH_DIE") + pisitools.dosed("libtool"," -shared ", " -Wl,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.removeDir("/usr/share/gtk-doc") + pisitools.dodoc("AUTHORS", "README", "ChangeLog", "NEWS", "COPYING", "COPYING-LGPL-2.1", "COPYING-MPL-1.1") diff --git a/desktop/toolkit/gtk/cairo/files/0001-xlib-Don-t-crash-when-swapping-a-0-sized-glyph.patch b/desktop/toolkit/gtk/cairo/files/0001-xlib-Don-t-crash-when-swapping-a-0-sized-glyph.patch new file mode 100644 index 0000000000..c94d7b32c1 --- /dev/null +++ b/desktop/toolkit/gtk/cairo/files/0001-xlib-Don-t-crash-when-swapping-a-0-sized-glyph.patch @@ -0,0 +1,43 @@ +From 8dc3b629434ce256f8e6a584c5853ae9b4230c33 Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Wed, 31 Oct 2012 16:06:51 -0400 +Subject: [PATCH 1/2] xlib: Don't crash when swapping a 0-sized glyph + +malloc(0) needn't return NULL, and on glibc, doesn't. Then we encounter +a loop of the form do { ... } while (--c), which doesn't do quite what +you were hoping for when c is initially 0. + +Since there's nothing to swap in this case, just bomb out. + +Signed-off-by: Adam Jackson +--- + src/cairo-xlib-render-compositor.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c +index 74c43e9..e38a659 100644 +--- a/src/cairo-xlib-render-compositor.c ++++ b/src/cairo-xlib-render-compositor.c +@@ -1251,6 +1251,9 @@ _cairo_xlib_surface_add_glyph (cairo_xlib_display_t *display, + unsigned char *d; + unsigned char *new, *n; + ++ if (c == 0) ++ break; ++ + new = malloc (c); + if (!new) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); +@@ -1276,6 +1279,9 @@ _cairo_xlib_surface_add_glyph (cairo_xlib_display_t *display, + const uint32_t *d; + uint32_t *new, *n; + ++ if (c == 0) ++ break; ++ + new = malloc (4 * c); + if (unlikely (new == NULL)) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); +-- +1.7.12.1 + diff --git a/desktop/toolkit/gtk/cairo/files/0002-xcb-Don-t-crash-when-swapping-a-0-sized-glyph.patch b/desktop/toolkit/gtk/cairo/files/0002-xcb-Don-t-crash-when-swapping-a-0-sized-glyph.patch new file mode 100644 index 0000000000..7d2b40554e --- /dev/null +++ b/desktop/toolkit/gtk/cairo/files/0002-xcb-Don-t-crash-when-swapping-a-0-sized-glyph.patch @@ -0,0 +1,43 @@ +From 4cad9bf9f0744efe17f1b70548cd2059df071e81 Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Wed, 31 Oct 2012 16:12:58 -0400 +Subject: [PATCH 2/2] xcb: Don't crash when swapping a 0-sized glyph + +malloc(0) needn't return NULL, and on glibc, doesn't. Then we encounter +a loop of the form do { ... } while (--c), which doesn't do quite what +you were hoping for when c is initially 0. + +Since there's nothing to swap in this case, just bomb out. + +Signed-off-by: Adam Jackson +--- + src/cairo-xcb-surface-render.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c +index 27ed113..16d1ef8 100644 +--- a/src/cairo-xcb-surface-render.c ++++ b/src/cairo-xcb-surface-render.c +@@ -4461,6 +4461,9 @@ _cairo_xcb_surface_add_glyph (cairo_xcb_connection_t *connection, + const uint8_t *d; + uint8_t *new, *n; + ++ if (c == 0) ++ break; ++ + new = malloc (c); + if (unlikely (new == NULL)) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); +@@ -4489,6 +4492,9 @@ _cairo_xcb_surface_add_glyph (cairo_xcb_connection_t *connection, + const uint32_t *d; + uint32_t *new, *n; + ++ if (c == 0) ++ break; ++ + new = malloc (4 * c); + if (unlikely (new == NULL)) { + status = _cairo_error (CAIRO_STATUS_NO_MEMORY); +-- +1.7.12.1 + diff --git a/desktop/toolkit/gtk/cairo/files/git_fixes.diff b/desktop/toolkit/gtk/cairo/files/git_fixes.diff new file mode 100644 index 0000000000..93af054eef --- /dev/null +++ b/desktop/toolkit/gtk/cairo/files/git_fixes.diff @@ -0,0 +1,33 @@ +From 2de69581c28bf115852037ca41eba13cb7335976 Mon Sep 17 00:00:00 2001 +From: Massimo Valentini +Date: Sun, 19 Oct 2014 09:19:10 +0200 +Subject: tor-scan-converter: can't do_fullrow when intersection in row + + 0.5subrow + +the active edges list must be left sorted at the next possible use +and since full_row does not deal with intersections it is not usable +when there is an intersection in the top half of the next row first +subrow + +Reported-and-tested-by: Matthew Leach +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85151 +Reviewed-by: Chris Wilson + +diff --git a/src/cairo-tor-scan-converter.c b/src/cairo-tor-scan-converter.c +index 4adcafb..14922d0 100644 +--- a/src/cairo-tor-scan-converter.c ++++ b/src/cairo-tor-scan-converter.c +@@ -1167,8 +1167,8 @@ can_do_full_row (struct active_list *active) + + if (e->dy) { + struct quorem x = e->x; +- x.quo += e->dxdy_full.quo - e->dxdy.quo/2; +- x.rem += e->dxdy_full.rem - e->dxdy.rem/2; ++ x.quo += e->dxdy_full.quo; ++ x.rem += e->dxdy_full.rem; + if (x.rem < 0) { + x.quo--; + x.rem += e->dy; +-- +cgit v0.10.2 + diff --git a/desktop/toolkit/gtk/cairo/pspec.xml b/desktop/toolkit/gtk/cairo/pspec.xml new file mode 100644 index 0000000000..1e714a5053 --- /dev/null +++ b/desktop/toolkit/gtk/cairo/pspec.xml @@ -0,0 +1,198 @@ + + + + + cairo + http://cairographics.org + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + MPL-1.1 + library + 2D graphics library with bindings of many programming languages + Cairo is a 2D graphics library with support for multiple output devices (and fileformats). + http://cairographics.org/releases/cairo-1.14.2.tar.xz + + lzo-devel + zlib-devel + glib2-devel + libX11-devel + libpng-devel + libxcb-devel + freetype-devel + libgcc + expat-devel + fontconfig-devel + libXrender-devel + pixman-devel + xcb-util-devel + libXext-devel + mesa-devel + gtk-doc + + + + + + + + + + + + cairo + + lzo + zlib + glib2 + libX11 + libpng + libxcb + freetype + fontconfig + libXrender + pixman + libXext + mesa + + + /usr/bin + /usr/share/man + /usr/share/doc + /usr/share/gtk-doc + /usr/share/info + /usr/lib + + + + + cairo-devel + Development files for cairo + + cairo + mesa-devel + pixman-devel + libXext-devel + fontconfig-devel + libXrender-devel + + + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + + + + + cairo-32bit + emul32 + 32-bit shared libraries for cairo + emul32 + + mesa-32bit + zlib-32bit + glib2-32bit + libX11-32bit + pixman-32bit + libpng-32bit + libxcb-32bit + libXext-32bit + freetype-32bit + fontconfig-32bit + libXrender-32bit + + + + cairo + mesa-32bit + zlib-32bit + glib2-32bit + libX11-32bit + pixman-32bit + libpng-32bit + libxcb-32bit + libXext-32bit + freetype-32bit + fontconfig-32bit + libXrender-32bit + + + /usr/lib32/lib* + /usr/lib32/cairo + + + + + + 2015-04-18 + 1.14.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2015-01-28 + 1.14.0 + Version bump. + Ergün Salman + Poyraz76@pisilinux.org + + + 2014-05-17 + 1.12.16 + Release bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2013-10-09 + 1.12.16 + Version bump, fixes. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-07-29 + 1.12.14 + Fix dependencies. + Marcin Bojara + marcin@pisilinux.org + + + 2013-04-23 + 1.12.14 + Dep fixed + PisiLinux Community + admins@pisilinux.org + + + 2013-02-24 + 1.12.14 + Version bump, missing dep. + Ertan Güven + ertan@pisilinux.org + + + 2013-01-22 + 1.12.10 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2012-11-23 + 1.12.8 + First release + Marcin Bojara + marcin@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/cairo/translations.xml b/desktop/toolkit/gtk/cairo/translations.xml new file mode 100644 index 0000000000..f944d55157 --- /dev/null +++ b/desktop/toolkit/gtk/cairo/translations.xml @@ -0,0 +1,18 @@ + + + + cairo + Birden çok çıktı cihazına destek veren bir 2 boyutlu grafik kitaplığı + Cairo est une librairie graphique 2D supportant de nombreux périphériques de sortie. + + + + cairo-devel + cairo için geliştirme dosyaları + + + + cairo-32bit + cairo için 32-bit paylaşımlı kitaplıklar + + diff --git a/desktop/toolkit/gtk/component.xml b/desktop/toolkit/gtk/component.xml new file mode 100644 index 0000000000..153eeebd74 --- /dev/null +++ b/desktop/toolkit/gtk/component.xml @@ -0,0 +1,3 @@ + + desktop.toolkit.gtk + diff --git a/desktop/toolkit/gtk/gdk-pixbuf/actions.py b/desktop/toolkit/gtk/gdk-pixbuf/actions.py new file mode 100644 index 0000000000..018d4ee23b --- /dev/null +++ b/desktop/toolkit/gtk/gdk-pixbuf/actions.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + options = "\ + --disable-static \ + --disable-silent-rules \ + --with-libjasper \ + --with-x11 \ + --with-included-loaders=png \ + " + + options += "\ + --bindir=/_emul32/bin \ + --disable-introspection \ + " if get.buildTYPE() == "emul32" else \ + "\ + --enable-introspection \ + " + autotools.configure(options) + + pisitools.dosed("libtool"," -shared ", " -Wl,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + if get.buildTYPE() == "emul32": + pisitools.domove("/_emul32/bin/gdk-pixbuf-query-loaders", "/usr/bin", "gdk-pixbuf-query-loaders-32") + pisitools.removeDir("/_emul32") + return + pisitools.dosym("/usr/bin/gdk-pixbuf-query-loaders", "/usr/bin/gdk-pixbuf-query-loaders-64") + pisitools.dodoc("AUTHORS", "COPYING", "NEWS", "README") diff --git a/desktop/toolkit/gtk/gdk-pixbuf/comar/pakhandler-32.py b/desktop/toolkit/gtk/gdk-pixbuf/comar/pakhandler-32.py new file mode 100644 index 0000000000..6edaa81706 --- /dev/null +++ b/desktop/toolkit/gtk/gdk-pixbuf/comar/pakhandler-32.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import piksemel +import os + +def updateData(filepath): + parse = piksemel.parse(filepath) + + for icon in parse.tags("File"): + path = icon.getTagData("Path") + if path.startswith("usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders"): + os.system("/usr/bin/gdk-pixbuf-query-loaders-32 --update-cache") + return + +def setupPackage(metapath, filepath): + updateData(filepath) + +def cleanupPackage(metapath, filepath): + pass + +def postCleanupPackage(metapath, filepath): + updateData(filepath) diff --git a/desktop/toolkit/gtk/gdk-pixbuf/comar/pakhandler.py b/desktop/toolkit/gtk/gdk-pixbuf/comar/pakhandler.py new file mode 100644 index 0000000000..0e2637d6b0 --- /dev/null +++ b/desktop/toolkit/gtk/gdk-pixbuf/comar/pakhandler.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import piksemel +import os + +def updateData(filepath): + parse = piksemel.parse(filepath) + + for icon in parse.tags("File"): + path = icon.getTagData("Path") + if path.startswith("usr/lib/gdk-pixbuf-2.0/2.10.0/loaders"): + os.system("/usr/bin/gdk-pixbuf-query-loaders --update-cache") + return + +def setupPackage(metapath, filepath): + updateData(filepath) + +def cleanupPackage(metapath, filepath): + pass + +def postCleanupPackage(metapath, filepath): + updateData(filepath) diff --git a/desktop/toolkit/gtk/gdk-pixbuf/pspec.xml b/desktop/toolkit/gtk/gdk-pixbuf/pspec.xml new file mode 100644 index 0000000000..988b9fe6a2 --- /dev/null +++ b/desktop/toolkit/gtk/gdk-pixbuf/pspec.xml @@ -0,0 +1,189 @@ + + + + + gdk-pixbuf + http://www.gnome.org + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + GDK pixbuf library + gdk-pixbuf is a library that provides image loading and scaling support for gtk+ applications + mirrors://gnome/gdk-pixbuf/2.31/gdk-pixbuf-2.31.4.tar.xz + + gtk-doc + glib2-devel + libX11-devel + tiff-devel + libjpeg-turbo-devel + libpng-devel + jasper-devel + gobject-introspection-devel + + + + + gdk-pixbuf + + glib2 + libpng + libX11 + tiff + jasper + libjpeg-turbo + > + + /etc + /usr/bin + /usr/lib + /usr/share/locale + /usr/share/man + /usr/share/doc + /usr/share + + + System.PackageHandler + + + + + gdk-pixbuf-devel + Development files for gdk-pixbuf + + gdk-pixbuf + glib2 + + + /usr/bin/gdk-pixbuf-csource + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/share/gir-1.0 + + + + + gdk-pixbuf-docs + Reference documents for gdk-pixbuf + + /usr/share/gtk-doc + + + + + gdk-pixbuf-32bit + emul32 + 32-bit shared libraries for gdk-pixbuf + emul32 + + tiff-32bit + libjpeg-turbo-32bit + glibc-32bit + glib2-32bit + libX11-32bit + libpng-32bit + jasper-32bit + libX11-32bit + + + gdk-pixbuf + glibc-32bit + tiff-32bit + glib2-32bit + libpng-32bit + libX11-32bit + jasper-32bit + libjpeg-turbo-32bit + + + /usr/bin/gdk-pixbuf-query-loaders-32 + /usr/lib32 + + + System.PackageHandler + + + + + + 2015-07-05 + 2.31.4 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2015-04-27 + 2.31.3 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-05-17 + 2.30.7 + Release bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2014-03-30 + 2.30.7 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-10-10 + 2.30.0 + Add missing method and fix pakhandler.py + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-09-05 + 2.28.2 + Add missing method and fix pakhandler.py + Marcin Bojara + marcin@pisilinux.org + + + 2013-08-20 + 2.28.2 + Fix build emul32. + Marcin Bojara + marcin@pisilinux.org + + + 2013-08-11 + 2.28.2 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-04-07 + 2.28.0 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-02-24 + 2.27.1 + V.Bump + PisiLinux Community + admins@pisilinux.org + + + 2012-11-25 + 2.26.5 + First release + Serdar Soytetir + kaptan@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/gdk-pixbuf/translations.xml b/desktop/toolkit/gtk/gdk-pixbuf/translations.xml new file mode 100644 index 0000000000..b2815ba5ad --- /dev/null +++ b/desktop/toolkit/gtk/gdk-pixbuf/translations.xml @@ -0,0 +1,23 @@ + + + + gdk-pixbuf + GDK pixbuf kitaplığı + gdk-pixbuf, gtk+ uygulamalarına resim açma ve ölçeklendirme desteği sağlayan bir kitaplıktır. + + + + gdk-pixbuf-devel + gdk-pixbuf için geliştirme dosyaları + + + + gdk-pixbuf-docs + gdk-pixbuf için başvuru belgeleri + + + + gdk-pixbuf-32bit + gdk-pixbuf için 32-bit paylaşımlı kitaplıklar + + diff --git a/desktop/toolkit/gtk/gtk-doc/actions.py b/desktop/toolkit/gtk/gtk-doc/actions.py new file mode 100644 index 0000000000..bc7ee2d616 --- /dev/null +++ b/desktop/toolkit/gtk/gtk-doc/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licences/old-licenses/gpl-2.0.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--disable-static --disable-scrollkeeper") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("AUTHORS", "MAINTAINERS", "ChangeLog", "README", "NEWS", "TODO") diff --git a/desktop/toolkit/gtk/gtk-doc/pspec.xml b/desktop/toolkit/gtk/gtk-doc/pspec.xml new file mode 100644 index 0000000000..5aec8bc3eb --- /dev/null +++ b/desktop/toolkit/gtk/gtk-doc/pspec.xml @@ -0,0 +1,81 @@ + + + + + gtk-doc + http://www.gtk.org/gtk-doc + + PisiLinux Community + admins@pisilinux.org + + GPLv3 + FDL-1.1 + app:console + GTK+ API documentation generator + Gtk-Doc is typically used to document the public API of GTK+ and GNOME libraries, but it can also be used to document application code. + mirrors://gnome/gtk-doc/1.21/gtk-doc-1.21.tar.xz + + + itstool + openjade + sgml-common + docbook-xml + docbook-xsl + libxslt-devel + + + + + gtk-doc + + + docbook-xml + sgml-common + + + /usr/bin + /usr/share + /usr/share/doc + /usr/share/omf + /var/lib + + + + + + 2015-04-06 + 1.21 + Version bump. + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2014-05-18 + 1.20 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-03-30 + 1.20 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-08-26 + 1.18 + Release bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2012-08-26 + 1.18 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/gtk-doc/translations.xml b/desktop/toolkit/gtk/gtk-doc/translations.xml new file mode 100644 index 0000000000..a2e4bd7c7a --- /dev/null +++ b/desktop/toolkit/gtk/gtk-doc/translations.xml @@ -0,0 +1,13 @@ + + + + gtk-doc + GTK+ API belge oluşturucusu + gtk-doc, GNOME ve GTK+ gibi kitaplıkların API'lerinin belgelendirilmesi için yazılmış bir uygulama projesidir. + + + + gtk-doc-devel + gtk-doc geliştirme dosyaları + + diff --git a/desktop/toolkit/gnome/gtk2/actions.py b/desktop/toolkit/gtk/gtk2/actions.py similarity index 100% rename from desktop/toolkit/gnome/gtk2/actions.py rename to desktop/toolkit/gtk/gtk2/actions.py diff --git a/desktop/toolkit/gnome/gtk2/comar/pakhandler.py b/desktop/toolkit/gtk/gtk2/comar/pakhandler.py similarity index 100% rename from desktop/toolkit/gnome/gtk2/comar/pakhandler.py rename to desktop/toolkit/gtk/gtk2/comar/pakhandler.py diff --git a/desktop/toolkit/gnome/gtk2/files/fedora/icon-padding.patch b/desktop/toolkit/gtk/gtk2/files/fedora/icon-padding.patch similarity index 100% rename from desktop/toolkit/gnome/gtk2/files/fedora/icon-padding.patch rename to desktop/toolkit/gtk/gtk2/files/fedora/icon-padding.patch diff --git a/desktop/toolkit/gnome/gtk2/files/fedora/system-python.patch b/desktop/toolkit/gtk/gtk2/files/fedora/system-python.patch similarity index 100% rename from desktop/toolkit/gnome/gtk2/files/fedora/system-python.patch rename to desktop/toolkit/gtk/gtk2/files/fedora/system-python.patch diff --git a/desktop/toolkit/gnome/gtk2/files/fedora/tooltip-positioning.patch b/desktop/toolkit/gtk/gtk2/files/fedora/tooltip-positioning.patch similarity index 100% rename from desktop/toolkit/gnome/gtk2/files/fedora/tooltip-positioning.patch rename to desktop/toolkit/gtk/gtk2/files/fedora/tooltip-positioning.patch diff --git a/desktop/toolkit/gnome/gtk2/files/fedora/window-dragging.patch b/desktop/toolkit/gtk/gtk2/files/fedora/window-dragging.patch similarity index 100% rename from desktop/toolkit/gnome/gtk2/files/fedora/window-dragging.patch rename to desktop/toolkit/gtk/gtk2/files/fedora/window-dragging.patch diff --git a/desktop/toolkit/gnome/gtk2/files/gtkrc b/desktop/toolkit/gtk/gtk2/files/gtkrc similarity index 100% rename from desktop/toolkit/gnome/gtk2/files/gtkrc rename to desktop/toolkit/gtk/gtk2/files/gtkrc diff --git a/desktop/toolkit/gnome/gtk2/files/xid-collision-debug.patch b/desktop/toolkit/gtk/gtk2/files/xid-collision-debug.patch similarity index 100% rename from desktop/toolkit/gnome/gtk2/files/xid-collision-debug.patch rename to desktop/toolkit/gtk/gtk2/files/xid-collision-debug.patch diff --git a/desktop/toolkit/gnome/gtk2/pspec.xml b/desktop/toolkit/gtk/gtk2/pspec.xml similarity index 93% rename from desktop/toolkit/gnome/gtk2/pspec.xml rename to desktop/toolkit/gtk/gtk2/pspec.xml index 0d5963c943..f46dc4d330 100644 --- a/desktop/toolkit/gnome/gtk2/pspec.xml +++ b/desktop/toolkit/gtk/gtk2/pspec.xml @@ -11,7 +11,7 @@ LGPLv2.1 The GIMP Toolkit version 2 GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites. - mirrors://gnome/gtk+/2.24/gtk+-2.24.23.tar.xz + mirrors://gnome/gtk+/2.24/gtk+-2.24.28.tar.xz cups-devel libXi-devel @@ -28,6 +28,7 @@ atk-devel pango-devel gdk-pixbuf-devel + gtk-doc gobject-introspection-devel @@ -57,11 +58,13 @@ fontconfig libXinerama libXcomposite + glib2 + libX11 atk pango gdk-pixbuf dejavu-fonts - gtk-theme-mediterranean + /etc @@ -91,6 +94,7 @@ cairo pango gdk-pixbuf + glib2 /usr/bin/gtk-demo @@ -132,6 +136,7 @@ 32-bit shared libraries for gtk2 _emul32 + glibc-32bit cairo-32bit cups-32bit fontconfig-32bit @@ -152,6 +157,7 @@ gtk2 + glibc-32bit cairo-32bit pango-32bit glib2-32bit @@ -177,6 +183,13 @@ + + 2015-07-05 + 2.24.28 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + 2014-05-17 2.24.23 diff --git a/desktop/toolkit/gnome/gtk2/translations.xml b/desktop/toolkit/gtk/gtk2/translations.xml similarity index 100% rename from desktop/toolkit/gnome/gtk2/translations.xml rename to desktop/toolkit/gtk/gtk2/translations.xml diff --git a/desktop/toolkit/gtk/gtk3/actions.py b/desktop/toolkit/gtk/gtk3/actions.py new file mode 100644 index 0000000000..90763b9448 --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/actions.py @@ -0,0 +1,61 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + + +def setup(): + options = "--enable-x11-backend \ + --enable-xinerama \ + --enable-xkb \ + --disable-silent-rules \ + --disable-schemas-compile \ + --enable-introspection \ + --enable-gtk2-dependency \ + --disable-papi \ + --disable-wayland-backend \ + " + + shelltools.export("CFLAGS", get.CFLAGS().replace("-fomit-frame-pointer","")) + + if get.buildTYPE() == "_emul32": + options += " --libdir=/usr/lib32 \ + --bindir=/_emul32/bin \ + --sbindir=/_emul32/sbin \ + --enable-colord=no \ + " + + shelltools.export("CC", "%s -m32" % get.CC()) + shelltools.export("CXX", "%s -m32" % get.CC()) + shelltools.export("CFLAGS", "%s -m32" % get.CFLAGS().replace("-fomit-frame-pointer","")) + shelltools.export("CXXFLAGS", "%s -m32" % get.CFLAGS()) + shelltools.export("LDFLAGS", "%s -m32" % get.LDFLAGS()) + shelltools.export("PKG_CONFIG_PATH", "/usr/lib32/pkgconfig") + + pisitools.dosed("configure.ac", "cups-config", "cups-config-32bit") + + autotools.autoreconf("-fiv") + autotools.configure(options) + + pisitools.dosed("libtool", "( -shared )", r" -Wl,-O1,--as-needed\1") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + # remove empty dir + pisitools.removeDir("/usr/share/man") + pisitools.dodoc("AUTHORS", "README*", "HACKING", "ChangeLog*", "NEWS*") + + if get.buildTYPE() == "_emul32": + for binaries in ["gtk-query-immodules-3.0"]: + pisitools.domove("/_emul32/bin/%s" % binaries, "/usr/bin/", "%s-32bit" % binaries) + pisitools.removeDir("/_emul32") diff --git a/desktop/toolkit/gtk/gtk3/comar/pakhandler.py b/desktop/toolkit/gtk/gtk3/comar/pakhandler.py new file mode 100644 index 0000000000..c902fa4b79 --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/comar/pakhandler.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import piksemel +import os +import fnmatch + +def updateData(filepath): + parse = piksemel.parse(filepath) + + iconFound = False + immoduleFound = False + + for icon in parse.tags("File"): + path = icon.getTagData("Path") + if path.startswith("usr/share/icons/hicolor") and not iconFound: + os.system("/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor") + iconFound = True + if immoduleFound: + return + + if fnmatch.fnmatch(path, "usr/lib/gtk-3.0/*immodules/*.so") and not immoduleFound: + os.system("/usr/bin/gtk-query-immodules-3.0 --update-cache") + immoduleFound = True + if iconFound: + return + + if fnmatch.fnmatch(path, "usr/lib32/gtk-3.0/*immodules/*.so") and not immoduleFound: + os.system("/usr/bin/gtk-query-immodules-3.0-32bit --update-cache") + immoduleFound = True + if iconFound: + return + +def setupPackage(metapath, filepath): + updateData(filepath) + +def cleanupPackage(metapath, filepath): + pass + +def postCleanupPackage(metapath, filepath): + updateData(filepath) diff --git a/desktop/toolkit/gtk/gtk3/files/071_fix-installation-of-HTML-images.patch b/desktop/toolkit/gtk/gtk3/files/071_fix-installation-of-HTML-images.patch new file mode 100644 index 0000000000..cf79ca77f5 --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/files/071_fix-installation-of-HTML-images.patch @@ -0,0 +1,28 @@ +From 4c220ef6650afeba334570ad00db0a95c9ba38e6 Mon Sep 17 00:00:00 2001 +From: Michael Biebl +Date: Tue, 17 Apr 2012 13:29:09 +0200 +Subject: [PATCH] Fix installation of HTML images for absolute paths + +when using out-of-tree builds. + +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=674163 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=656803 +--- + gtk-doc.make | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: gtk+-3.6.4/gtk-doc.make +=================================================================== +--- gtk+-3.6.4.orig/gtk-doc.make 2013-01-10 16:03:56.697595578 +1300 ++++ gtk+-3.6.4/gtk-doc.make 2013-01-10 16:03:56.693595578 +1300 +@@ -173,8 +173,8 @@ + if test -f $(abs_srcdir)/$$file ; then \ + cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + fi; \ +- if test -f $(abs_builddir)/$$file ; then \ +- cp $(abs_builddir)/$$file $(abs_builddir)/html; \ ++ if test -f $$file ; then \ ++ cp $$file $(abs_builddir)/html; \ + fi; \ + done; + $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) diff --git a/desktop/toolkit/gtk/gtk3/files/073_treeview_almost_fixed.patch b/desktop/toolkit/gtk/gtk3/files/073_treeview_almost_fixed.patch new file mode 100644 index 0000000000..6a892b3d6d --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/files/073_treeview_almost_fixed.patch @@ -0,0 +1,76 @@ +Description: "ubuntu-almost-fixed-height" private property to speed-up software-center +Bug: https://bugzilla.gnome.org/607447 +Bug-Ubuntu: https://launchpad.net/bugs/514879 + +=== modified file 'gtk/gtktreeview.c' +Index: gtk+-3.6.4/gtk/gtktreeview.c +=================================================================== +--- gtk+-3.6.4.orig/gtk/gtktreeview.c 2013-01-10 16:03:58.421595565 +1300 ++++ gtk+-3.6.4/gtk/gtktreeview.c 2013-01-10 16:03:58.417595565 +1300 +@@ -462,6 +462,7 @@ + + guint fixed_height_mode : 1; + guint fixed_height_check : 1; ++ guint ubuntu_almost_fixed_height_mode : 1; + + guint reorderable : 1; + guint header_has_focus : 1; +@@ -552,6 +553,7 @@ + PROP_ENABLE_SEARCH, + PROP_SEARCH_COLUMN, + PROP_FIXED_HEIGHT_MODE, ++ PROP_UBUNTU_ALMOST_FIXED_HEIGHT_MODE, + PROP_HOVER_SELECTION, + PROP_HOVER_EXPAND, + PROP_SHOW_EXPANDERS, +@@ -1075,6 +1077,15 @@ + P_("Speeds up GtkTreeView by assuming that all rows have the same height"), + FALSE, + GTK_PARAM_READWRITE)); ++ ++ /* Private ubuntu extension to fix bugzilla bug #607447 */ ++ g_object_class_install_property (o_class, ++ PROP_UBUNTU_ALMOST_FIXED_HEIGHT_MODE, ++ g_param_spec_boolean ("ubuntu-almost-fixed-height-mode", ++ "Private Ubuntu extension", ++ "Private Ubuntu extension", ++ FALSE, ++ GTK_PARAM_READWRITE)); + + /** + * GtkTreeView:hover-selection: +@@ -1736,6 +1747,7 @@ + tree_view->priv->fixed_height = -1; + tree_view->priv->fixed_height_mode = FALSE; + tree_view->priv->fixed_height_check = 0; ++ tree_view->priv->ubuntu_almost_fixed_height_mode = FALSE; + tree_view->priv->selection = _gtk_tree_selection_new_with_tree_view (tree_view); + tree_view->priv->enable_search = TRUE; + tree_view->priv->search_column = -1; +@@ -1828,6 +1840,9 @@ + case PROP_FIXED_HEIGHT_MODE: + gtk_tree_view_set_fixed_height_mode (tree_view, g_value_get_boolean (value)); + break; ++ case PROP_UBUNTU_ALMOST_FIXED_HEIGHT_MODE: ++ tree_view->priv->ubuntu_almost_fixed_height_mode = g_value_get_boolean (value); ++ break; + case PROP_HOVER_SELECTION: + tree_view->priv->hover_selection = g_value_get_boolean (value); + break; +@@ -8740,7 +8755,15 @@ + + _gtk_tree_view_accessible_changed (tree_view, tree, node); + +- if (tree_view->priv->fixed_height_mode ++ if (tree_view->priv->ubuntu_almost_fixed_height_mode ++ && tree_view->priv->fixed_height >= 0) ++ { ++ _gtk_rbtree_node_mark_invalid (tree, node); ++ validate_visible_area (tree_view); ++ if (gtk_widget_get_realized (GTK_WIDGET (tree_view))) ++ gtk_tree_view_node_queue_redraw (tree_view, tree, node); ++ } ++ else if (tree_view->priv->fixed_height_mode + && tree_view->priv->fixed_height >= 0) + { + _gtk_rbtree_node_set_height (tree, node, tree_view->priv->fixed_height); diff --git a/desktop/toolkit/gtk/gtk3/files/settings.ini b/desktop/toolkit/gtk/gtk3/files/settings.ini new file mode 100644 index 0000000000..36d8423477 --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/files/settings.ini @@ -0,0 +1,4 @@ +[Settings] +gtk-icon-theme-name = Faenza +gtk-theme-name = MediterraneanLightDarkest +gtk-font-name = DejaVuSans 10 diff --git a/desktop/toolkit/gtk/gtk3/pspec.xml b/desktop/toolkit/gtk/gtk3/pspec.xml new file mode 100644 index 0000000000..e4024de1d5 --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/pspec.xml @@ -0,0 +1,280 @@ + + + + + gtk3 + http://www.gtk.org + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + The GIMP Toolkit version 3 + GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites. + mirrors://gnome/gtk+/3.16/gtk+-3.16.4.tar.xz + + atk-devel + cups-devel + at-spi2-atk-devel + pango-devel + json-glib-devel + libXi-devel + cairo-devel + gobject-introspection-devel + libXext-devel + libXrandr-devel + libXfixes-devel + gdk-pixbuf-devel + fontconfig-devel + libXcursor-devel + libXdamage-devel + libXinerama-devel + libXcomposite-devel + at-spi2-core-devel + libepoxy-devel + gtk-doc + + + + + 071_fix-installation-of-HTML-images.patch + + + + + + gtk3 + + glib2 + libX11 + libepoxy + atk + cups + pango + libXi + json-glib + cairo + gobject-introspection + libXext + libXrandr + libXfixes + gdk-pixbuf + fontconfig + libXcursor + libXdamage + libXinerama + at-spi2-atk + libXcomposite + dejavu-fonts + + + + + /etc + /usr/bin + /usr/share/themes + /usr/share/gtk-3.0 + /usr/share/ + /usr/share/man + /usr/share/doc + /usr/lib + /usr/share/locale + + + + settings.ini + + + System.PackageHandler + + + + + gtk3-demo + app:gui + GTK demo application + + gtk3 + cairo + pango + gdk-pixbuf + + + /usr/bin/gtk3-demo + /usr/bin/gtk3-demo-application + + + + + gtk3-docs + data:doc + GTK reference documents + + /usr/share/doc/gtk3 + + + + + gtk3-devel + Development files for gtk3 + + gtk3 + atk-devel + pango-devel + libXi-devel + cairo-devel + libXext-devel + libXfixes-devel + libXrandr-devel + gdk-pixbuf-devel + fontconfig-devel + libXdamage-devel + libXcursor-devel + libXinerama-devel + at-spi2-atk-devel + libXcomposite-devel + + + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/share/aclocal + /usr/share/gir-1.0 + + + + + gtk3-32bit + emul32 + 32-bit shared libraries for gtk3 + _emul32 + + atk-32bit + cups-32bit + glib2-32bit + cairo-32bit + pango-32bit + libXi-32bit + libX11-32bit + libXext-32bit + libXrandr-32bit + libXfixes-32bit + gdk-pixbuf-32bit + libXcursor-32bit + libXdamage-32bit + fontconfig-32bit + at-spi2-atk-32bit + libXinerama-32bit + libXcomposite-32bit + libepoxy-32bit + + + gtk3 + atk-32bit + cups-32bit + glib2-32bit + cairo-32bit + pango-32bit + librest-32bit + json-glib-32bit + libXi-32bit + libX11-32bit + libXext-32bit + libXrandr-32bit + libXfixes-32bit + gdk-pixbuf-32bit + libXcursor-32bit + libXdamage-32bit + fontconfig-32bit + at-spi2-atk-32bit + libXinerama-32bit + libXcomposite-32bit + libepoxy-32bit + + + /usr/bin/*-32bit + /usr/lib32 + + + + + + 2015-07-07 + 3.16.4 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2015-03-18 + 3.14.9 + Version bump. + Hakan Yıldız + hknyldz93@gmail.com + + + 2014-04-12 + 3.12.2 + Version Bump + PisiLinux Community + admins@pisilinux.org + + + 2014-04-06 + 3.10.7 + Rebuild + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-02-05 + 3.10.7 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-21 + 3.10.2 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-10-11 + 3.10.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-09-05 + 3.8.2 + Add missing method and fix pakhandler.py + Marcin Bojara + marcin@pisilinux.org + + + 2013-07-27 + 3.8.2 + Dep Fixed + PisiLinux Community + admins@pisilinux.org + + + 2013-07-14 + 3.8.2 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-04-24 + 3.6.4 + First release + Ertan Güven + ertan@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/gtk3/translations.xml b/desktop/toolkit/gtk/gtk3/translations.xml new file mode 100644 index 0000000000..3b3f58e3bd --- /dev/null +++ b/desktop/toolkit/gtk/gtk3/translations.xml @@ -0,0 +1,31 @@ + + + + gtk3 + GTK grafik arayüz kitaplığı versiyon 3 + GTK+, grafik kullanıcı arayüzü oluşturma amaçlı araçlardan oluşur. GTK+ hem küçük, hem de büyük uygulamalar için ideal olan, eksiksiz bir araçtır. + GTK+ est une boîte à outil multi-plateforme servant à créer des interfaces graphiques. Offrant un ensemble complet de widgets (objets graphiques), GTK+ convient aussi bien pour les petits projets que pour les suites complètes d'applications. + Wersja 3 bibliotek przeznaczonych do tworzenia interfejsów graficznych programów — GTK+. Interfejs GTK+ znany jest z takich programów, jak GIMP i Inkscape, oraz środowisk graficznych GNOME i Xfce. + + + + gtk3-demo + GTK demo uyulaması + + + + gtk3-docs + GTK referans dökümanları + + + + gtk3-devel + gtk3 için geliştirme dosyaları + Pliki nagłówkowe do gtk3 + + + + gtk3-32bit + gtk3 için 32-bit paylaşımlı kitaplıklar + + diff --git a/desktop/toolkit/gtk/libglade/actions.py b/desktop/toolkit/gtk/libglade/actions.py new file mode 100644 index 0000000000..cfac2a0c95 --- /dev/null +++ b/desktop/toolkit/gtk/libglade/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.autoreconf("-vif") + autotools.configure("--disable-static \ + --disable-gtk-doc") + + pisitools.dosed("libtool"," -shared ", " -Wl,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("AUTHORS","ChangeLog", "COPYING", "NEWS", "README") diff --git a/desktop/toolkit/gtk/libglade/comar/package.py b/desktop/toolkit/gtk/libglade/comar/package.py new file mode 100644 index 0000000000..945b069831 --- /dev/null +++ b/desktop/toolkit/gtk/libglade/comar/package.py @@ -0,0 +1,10 @@ +#!/usr/bin/python + +import os + +def postInstall(fromVersion, fromRelease, toVersion, toRelease): + os.system("xmlcatalog --noout --add \ + \"system\" \"http://glade.gnome.org/glade-2.0.dtd\" /usr/share/xml/libglade/glade-2.0.dtd") + +def preRemove(): + os.system("xmlcatalog --noout --del /usr/share/xml/libglade/glade-2.0.dtd /etc/xml/catalog") diff --git a/desktop/toolkit/gtk/libglade/files/Makefile.in.am-2.4.2-xmlcatalog.patch b/desktop/toolkit/gtk/libglade/files/Makefile.in.am-2.4.2-xmlcatalog.patch new file mode 100644 index 0000000000..059cdc20f7 --- /dev/null +++ b/desktop/toolkit/gtk/libglade/files/Makefile.in.am-2.4.2-xmlcatalog.patch @@ -0,0 +1,22 @@ +--- a/Makefile.am 2004-11-11 18:56:13.000000000 +0800 ++++ b/Makefile.am 2004-12-06 11:00:24.501734048 +0800 +@@ -24,7 +24,7 @@ + + if HAVE_XMLCATALOG + install-data-local: +- -$(XMLCATALOG) --noout --add "system" "http://glade.gnome.org/glade-2.0.dtd" $(xmldir)/glade-2.0.dtd $(XML_CATALOG_FILE) ++# -$(XMLCATALOG) --noout --add "system" "http://glade.gnome.org/glade-2.0.dtd" $(xmldir)/glade-2.0.dtd $(XML_CATALOG_FILE) + uninstall-local: + -$(XMLCATALOG) --noout --del $(xmldir)/glade-2.0.dtd $(XML_CATALOG_FILE) + endif +--- a/Makefile.in 2004-11-11 19:21:38.000000000 +0800 ++++ b/Makefile.in 2004-12-06 11:00:49.786890120 +0800 +@@ -819,7 +819,7 @@ + + + @HAVE_XMLCATALOG_TRUE@install-data-local: +-@HAVE_XMLCATALOG_TRUE@ -$(XMLCATALOG) --noout --add "system" "http://glade.gnome.org/glade-2.0.dtd" $(xmldir)/glade-2.0.dtd $(XML_CATALOG_FILE) ++@HAVE_XMLCATALOG_TRUE@# -$(XMLCATALOG) --noout --add "system" "http://glade.gnome.org/glade-2.0.dtd" $(xmldir)/glade-2.0.dtd $(XML_CATALOG_FILE) + @HAVE_XMLCATALOG_TRUE@uninstall-local: + @HAVE_XMLCATALOG_TRUE@ -$(XMLCATALOG) --noout --del $(xmldir)/glade-2.0.dtd $(XML_CATALOG_FILE) + diff --git a/desktop/toolkit/gtk/libglade/files/libglade-2.6.3-fix_tests-page_size.patch b/desktop/toolkit/gtk/libglade/files/libglade-2.6.3-fix_tests-page_size.patch new file mode 100644 index 0000000000..37c5b69e54 --- /dev/null +++ b/desktop/toolkit/gtk/libglade/files/libglade-2.6.3-fix_tests-page_size.patch @@ -0,0 +1,11 @@ +--- a/tests/test-libglade-gtk.glade 2008-09-27 16:50:40.164242312 +0300 ++++ b/tests/test-libglade-gtk.glade 2008-09-27 16:50:43.460908927 +0300 +@@ -470,7 +470,7 @@ + 100 + 1 + 10 +- 10 ++ 0 + + 1 + 2 diff --git a/desktop/toolkit/gtk/libglade/pspec.xml b/desktop/toolkit/gtk/libglade/pspec.xml new file mode 100644 index 0000000000..61658717f5 --- /dev/null +++ b/desktop/toolkit/gtk/libglade/pspec.xml @@ -0,0 +1,105 @@ + + + + + libglade + http://www.gnome.org/ + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + library + Glade interface builder + Libglade is a library that performs a similar job to the C source output routines in the GLADE user interface builder. Whereas GLADE's output routines create C code that can then be compiled, libglade builds the interface from an XML file (GLADE's save format) at runtime. This way you can change the look of a program without needing to recompile. + mirrors://gnome/libglade/2.6/libglade-2.6.4.tar.bz2 + + glib2-devel + libxml2-devel + atk-devel + pango-devel + gtk2-devel + + + Makefile.in.am-2.4.2-xmlcatalog.patch + libglade-2.6.3-fix_tests-page_size.patch + + + + + libglade + + glib2 + libxml2 + atk + pango + gtk2 + gdk-pixbuf + + + /usr/lib + /usr/share/doc + /usr/share/xml + + + System.Package + + + + + libglade-docs + data:doc + Libglade reference documents + + libglade + + + /usr/share/gtk-doc + + + + + libglade-devel + Development files for libglade + + libglade + gtk2-devel + + + /usr/bin + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-05-18 + 2.6.4 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-10-07 + 2.6.4 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-08-17 + 2.6.4 + Release bump + Pisi Linux Admins + admins@pisilinux.org + + + 2010-10-12 + 2.6.4 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/libglade/translations.xml b/desktop/toolkit/gtk/libglade/translations.xml new file mode 100644 index 0000000000..201310228e --- /dev/null +++ b/desktop/toolkit/gtk/libglade/translations.xml @@ -0,0 +1,19 @@ + + + + libglade + Glade arayüz oluşturucu + Libglade, GLADE kullanıcı arayüzü yapıcısındaki C kaynak çıkışı yöntemine benzer iş yapan bir kitaplıktır. GLADE'in çıkış yöntemi derlenebilir C kodu oluştururken, libglade arayüzü bir XML dosyasında oluşturur. Böylece yeniden derlenmeye gerek kalmadan arayüz değiştirilebilir. + Libglade est une librairie effectuant un travail similaire aux routines de génération de source C dans le constructeur d'interface graphique GLADE. Là ou les routines de génération de GLADE génerent du code C à compiler, libglade construit l interface depuis un fichier XML (le format de sauvegarde de GLADE) à l'exécution. De cette manière, vous pouvez changer l'apparence de votre programme sans avoir à le recompiler. + + + + libglade-docs + Libglade referans belgeleri + + + + libglade-devel + libglade için geliştirme dosyaları + + diff --git a/desktop/toolkit/gtk/pango/actions.py b/desktop/toolkit/gtk/pango/actions.py new file mode 100644 index 0000000000..1e260a5e73 --- /dev/null +++ b/desktop/toolkit/gtk/pango/actions.py @@ -0,0 +1,41 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + + +def setup(): + if get.buildTYPE()=="emul32": + pisitools.dosed("pango/modules.c", "(pango\.modules)", r"\1-32") + + autotools.autoreconf("-fiv") + + autotools.configure("--disable-static \ + --sysconfdir=/etc \ + --disable-gtk-doc \ + --with-included-modules=basic-fc \ + --%sable-introspection" % ("dis" if get.buildTYPE()=="emul32" else "en")) + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + if get.buildTYPE()=="emul32": + shelltools.move("pango/.libs/pango-querymodules", "pango/.libs/pango-querymodules-32") + pisitools.dobin("pango/.libs/pango-querymodules-32") + return + + pisitools.dodir("/etc/pango") + shelltools.touch(get.installDIR() +"/etc/pango/pango.modules") + + pisitools.dodoc("AUTHORS", "ChangeLog*", "COPYING", "README", "NEWS") diff --git a/desktop/toolkit/gtk/pango/comar/package.py b/desktop/toolkit/gtk/pango/comar/package.py new file mode 100644 index 0000000000..e3eebd3b5b --- /dev/null +++ b/desktop/toolkit/gtk/pango/comar/package.py @@ -0,0 +1,10 @@ +#!/usr/bin/python + +import os + +def postInstall(fromVersion, fromRelease, toVersion, toRelease): + f = open("/etc/pango/pango.modules", "w") + p = os.popen("/usr/bin/pango-querymodules", "r") + f.writelines(p.readlines()) + f.close() + p.close() diff --git a/desktop/toolkit/gtk/pango/files/pango-1.32.1-lib64.patch b/desktop/toolkit/gtk/pango/files/pango-1.32.1-lib64.patch new file mode 100644 index 0000000000..0820c78f12 --- /dev/null +++ b/desktop/toolkit/gtk/pango/files/pango-1.32.1-lib64.patch @@ -0,0 +1,44 @@ +From c41144ce0d72cb19d347a46ef9386f257f14fb58 Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue +Date: Sun, 28 Oct 2012 23:19:39 +0100 +Subject: [PATCH] Add multilib support + +pango.modules list modules specific to a host architecture. +Add host triplet in path so that machine able to run multiple +triplet have a proper file per pango library. +--- + pango/Makefile.am | 1 + + pango/pango-utils.c | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/pango/Makefile.am b/pango/Makefile.am +index ab092c9..558108b 100644 +--- a/pango/Makefile.am ++++ b/pango/Makefile.am +@@ -17,6 +17,7 @@ INCLUDES = \ + -DPANGO_ENABLE_BACKEND \ + -DPANGO_ENABLE_ENGINE \ + -DSYSCONFDIR=\"$(sysconfdir)\" \ ++ -DHOST=\"$(host_triplet)\" \ + -DLIBDIR=\"$(libdir)\" \ + -I$(top_srcdir) \ + -I$(top_builddir) \ +diff --git a/pango/pango-utils.c b/pango/pango-utils.c +index 18ffa26..3b88f15 100644 +--- a/pango/pango-utils.c ++++ b/pango/pango-utils.c +@@ -738,9 +738,9 @@ pango_get_sysconf_subdirectory (void) + #else + const char *sysconfdir = g_getenv ("PANGO_SYSCONFDIR"); + if (sysconfdir != NULL) +- tmp_result = g_build_filename (sysconfdir, "pango", NULL); ++ tmp_result = g_build_filename (sysconfdir, "pango", HOST, NULL); + else +- tmp_result = SYSCONFDIR "/pango"; ++ tmp_result = SYSCONFDIR "/pango/" HOST; + #endif + g_once_init_leave((gsize*)&result, (gsize)tmp_result); + } +-- +1.7.12.4 + diff --git a/desktop/toolkit/gtk/pango/pspec.xml b/desktop/toolkit/gtk/pango/pspec.xml new file mode 100644 index 0000000000..7c666707ad --- /dev/null +++ b/desktop/toolkit/gtk/pango/pspec.xml @@ -0,0 +1,205 @@ + + + + + pango + http://www.pango.org + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + FTL + library + Text rendering and layout library + Pango is a library for laying out and rendering of text, with an emphasis on internationalization. Pango can be used anywhere that text layout is needed, though most of the work on Pango so far has been done in the context of the GTK+ widget toolkit. Pango forms the core of text and font handling for GTK+-2.x. + mirrors://gnome/pango/1.36/pango-1.36.8.tar.xz + + gtk-doc + glib2-devel + libX11-devel + freetype-devel + cairo-devel + libXft-devel + harfbuzz-devel + fontconfig-devel + libXrender-devel + gobject-introspection-devel + + + pango-1.32.1-lib64.patch + + + + + pango + + glib2 + libX11 + freetype + cairo + libXft + harfbuzz + + fontconfig + libXrender + + + /etc/pango + /usr/bin + /usr/lib/libpango* + /usr/lib/girepository-1.0 + /usr/lib/pango + /usr/share/gir-1.0 + /usr/share/man + /usr/share/doc + + + System.Package + + + + + pango-devel + Development files for pango + + pango + cairo-devel + libXft-devel + harfbuzz-devel + fontconfig-devel + + + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/include + + + + + pango-docs + data:doc + Pango reference documents + + /usr/share/gtk-doc + + + + + pango-32bit + emul32 + 32-bit shared libraries for pango + emul32 + + cairo-32bit + glib2-32bit + libX11-32bit + libXft-32bit + freetype-32bit + libXrender-32bit + fontconfig-32bit + libffi-32bit + harfbuzz-32bit + glibc-32bit + + + pango + cairo-32bit + glib2-32bit + libX11-32bit + libXft-32bit + freetype-32bit + libXrender-32bit + fontconfig-32bit + libffi-32bit + harfbuzz-32bit + glibc-32bit + + + /usr/bin/pango-querymodules-32 + /usr/lib32/libpango* + /usr/lib32/girepository-1.0 + /usr/lib32/pango + + + + + + 2015-03-18 + 1.36.8 + Version bump. + Hakan Yıldız + hknyldz93@gmail.com + + + 2014-07-07 + 1.36.5 + Version Bump. + Vedat Demir + vedat@pisilinux.org + + + 2014-05-17 + 1.36.3 + Release bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2014-03-30 + 1.36.3 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2014-02-05 + 1.36.2 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-10-10 + 1.36.0 + Version bump, cleanup. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-08-17 + 1.34.0 + Release bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-04-20 + 1.34.0 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-04-07 + 1.32.6 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-01-22 + 1.32.5 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2011-07-07 + 1.30.1 + First release + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + diff --git a/desktop/toolkit/gtk/pango/translations.xml b/desktop/toolkit/gtk/pango/translations.xml new file mode 100644 index 0000000000..2e786da1de --- /dev/null +++ b/desktop/toolkit/gtk/pango/translations.xml @@ -0,0 +1,24 @@ + + + + pango + Metin görüntüleme kitaplığı + Outil de positionnement et de rendu de texte. + Pango, özellikle yerelleştirme ile birlikte metin düzenlemek ve biçimlendirmek için bir kitaplıktır. Pango metin biçimlendirmenin gerekli olduğu her yerde kullanılabilir ama şimdiye kadar ki birçok Pango çalışması GTK+ araç takımının parçası ile tamamlandı. Pango formları, GTK+-2.x. için temel metin ve yazı tipini yönetir. + + + + pango-docs + Pango referans dokümanları + + + + pango-devel + pango için geliştirme dosyaları + + + + pango-32bit + pango için 32-bit paylaşımlı kitaplıklar + + diff --git a/desktop/toolkit/newt/actions.py b/desktop/toolkit/newt/actions.py new file mode 100644 index 0000000000..9d379e5e61 --- /dev/null +++ b/desktop/toolkit/newt/actions.py @@ -0,0 +1,33 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + +def setup(): + # use python2.x + pisitools.dosed("configure", "(\/usr\/include\/)python\*", r"\1python2*") + # fix unused direct dependency + pisitools.dosed("Makefile.in", "(PLFLAGS=)`\$\$pyconfig --libs`", r"\1'-lpython2.7'") + pisitools.dosed("Makefile.in", "(PLDFLAGS=)`\$\$pyconfig --ldflags`", r"\1'-lpython2.7 -Xlinker -export-dynamic'") + + shelltools.echo("config.h.in", "#define USE_INTERP_RESULT 1") + shelltools.export("PYTHON", "/usr/bin/python2.7") + autotools.configure("\ + --with-gpm-support \ + ") + +def build(): + autotools.make() + +def install(): + autotools.install() + + # remove static lib + pisitools.remove("/usr/lib/libnewt.a") + + pisitools.dodoc("CHANGES", "COPYING") diff --git a/desktop/toolkit/newt/pspec.xml b/desktop/toolkit/newt/pspec.xml new file mode 100644 index 0000000000..927aa1b1e8 --- /dev/null +++ b/desktop/toolkit/newt/pspec.xml @@ -0,0 +1,85 @@ + + + + + newt + https://fedorahosted.org/newt/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + app:console + A windowing toolkit for text mode + newt is a windowing toolkit for text mode, which provides many widgets and stackable windows. + https://fedorahosted.org/releases/n/e/newt/newt-0.52.17.tar.gz + + tcl-devel + + + + + newt + + tcl + + + /usr/bin + /usr/lib + /usr/share/locale + /usr/share/doc + /usr/share/man + + + + + newt-devel + Development files for newt + + newt + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-07-05 + 0.52.17 + Version bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-11-05 + 0.52.16 + Version bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-08-26 + 0.52.14 + Release bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-01-30 + 0.52.14 + Build with new relaese Tcl + Erdinç Gültekin + admins@pisilinux.org + + + 2012-09-17 + 0.52.14 + First release + Serdar Soytetir + kaptan@pisilinux.org + + + \ No newline at end of file diff --git a/desktop/toolkit/newt/translations.xml b/desktop/toolkit/newt/translations.xml new file mode 100644 index 0000000000..5274ec3a68 --- /dev/null +++ b/desktop/toolkit/newt/translations.xml @@ -0,0 +1,13 @@ + + + + newt + Metin tabanlı bir pencere araç seti. + Newt, metin tabanlı bir pencere araç setidir. Pek çok alet ve istiflenebilir pencere sağlar. + + + + newt-devel + newt için geliştirme dosyaları + + diff --git a/desktop/toolkit/qt5/qt5-accountsservice/pspec.xml b/desktop/toolkit/qt5/qt5-accountsservice/pspec.xml index b1a6216127..4707194f36 100644 --- a/desktop/toolkit/qt5/qt5-accountsservice/pspec.xml +++ b/desktop/toolkit/qt5/qt5-accountsservice/pspec.xml @@ -21,6 +21,11 @@ qt5-accountsservice + + libgcc + qt5-base + qt5-declarative + /usr/lib /usr/lib/qt5 @@ -29,11 +34,6 @@ /usr/lib/qt5/bin/ /usr/bin - - libgcc - qt5-base - qt5-declarative - diff --git a/desktop/toolkit/qt5/qt5-base/pspec.xml b/desktop/toolkit/qt5/qt5-base/pspec.xml index cfad7f908c..683069fce3 100644 --- a/desktop/toolkit/qt5/qt5-base/pspec.xml +++ b/desktop/toolkit/qt5/qt5-base/pspec.xml @@ -13,18 +13,15 @@ LGPLv2.1-linking-exception http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtbase-opensource-src-5.4.2.tar.xz - alsa-lib-devel at-spi2-core-devel cups-devel dbus-devel zlib-devel glib2-devel + libpcre-devel desktop-file-utils fontconfig-devel - gperf - gst-plugins-base-devel - gstreamer-devel gtk2-devel harfbuzz-devel icon-theme-hicolor @@ -32,9 +29,6 @@ firebird-superserver libjpeg-turbo-devel mariadb-lib - libmng-devel - pulseaudio-libs-devel - webp-devel libxcb-devel libXcomposite-devel libxkbcommon-devel @@ -42,11 +36,11 @@ mesa-devel libmtdev-devel nss-devel - openal-devel pciutils-devel postgresql-server python-devel - ruby-devel + DirectFB-devel + sqlite-devel unixODBC-devel xcb-proto @@ -56,9 +50,8 @@ xcb-util-wm-devel tiff-devel libdrm-devel - DirectFB-devel libpng-devel - libudev-devel + eudev-devel libSM-devel libICE-devel libX11-devel @@ -82,6 +75,8 @@ qt5-base + libpcre + libgcc cups dbus gtk2 @@ -95,10 +90,10 @@ libICE libX11 libdrm - DirectFB libpng libxcb - libudev + eudev + DirectFB openssl freetype harfbuzz @@ -144,6 +139,7 @@ qt5-sql-mysql qt5-base + libgcc mariadb-lib @@ -155,6 +151,7 @@ qt5-sql-postgresql qt5-base + libgcc postgresql-lib @@ -166,6 +163,7 @@ qt5-sql-sqlite qt5-base + libgcc sqlite @@ -177,6 +175,7 @@ qt5-sql-odbc qt5-base + libgcc unixODBC @@ -190,10 +189,8 @@ 32-bit shared libraries for qt5 emul32 - cups-32bit dbus-32bit - qt5-base-devel gtk2-32bit mesa-32bit zlib-32bit @@ -205,7 +202,7 @@ libdrm-32bit libpng-32bit sqlite-32bit - libudev-32bit + eudev-32bit openssl-32bit freetype-32bit harfbuzz-32bit @@ -213,6 +210,7 @@ fontconfig-32bit libXrender-32bit libjpeg-turbo-32bit + libgcc libpcre @@ -230,7 +228,7 @@ libdrm-32bit libpng-32bit sqlite-32bit - libudev-32bit + eudev-32bit openssl-32bit freetype-32bit harfbuzz-32bit diff --git a/desktop/toolkit/qt5/qt5-configuration/pspec.xml b/desktop/toolkit/qt5/qt5-configuration/pspec.xml index 0e783f4c1e..4d0b51db6e 100644 --- a/desktop/toolkit/qt5/qt5-configuration/pspec.xml +++ b/desktop/toolkit/qt5/qt5-configuration/pspec.xml @@ -16,12 +16,19 @@ libgcc glib2-devel dconf-devel + cmake qt5-base-devel qt5-configuration + + libgcc + glib2 + dconf + qt5-base + /usr/lib /usr/lib/qt5 @@ -30,12 +37,6 @@ /usr/lib/qt5/bin/ /usr/bin - - libgcc - glib2 - dconf - qt5-base - diff --git a/desktop/toolkit/qt5/qt5-connectivity/pspec.xml b/desktop/toolkit/qt5/qt5-connectivity/pspec.xml index 9b2e2e07fb..eaf4831008 100644 --- a/desktop/toolkit/qt5/qt5-connectivity/pspec.xml +++ b/desktop/toolkit/qt5/qt5-connectivity/pspec.xml @@ -21,6 +21,12 @@ qt5-connectivity + + qt5-base + qt5-declarative + bluez-libs + libgcc + /usr/bin /usr/lib @@ -28,11 +34,6 @@ /usr/lib/qt5 /usr/lib/qt5/bin/ - - qt5-base - qt5-declarative - bluez-libs - diff --git a/desktop/toolkit/qt5/qt5-declarative/pspec.xml b/desktop/toolkit/qt5/qt5-declarative/pspec.xml index 59be51eaad..0448a179d1 100644 --- a/desktop/toolkit/qt5/qt5-declarative/pspec.xml +++ b/desktop/toolkit/qt5/qt5-declarative/pspec.xml @@ -22,6 +22,12 @@ qt5-declarative + + libgcc + qt5-base + mesa + qt5-xmlpatterns + /usr/lib /usr/lib/qt5 @@ -29,11 +35,7 @@ /usr/lib/qt5/bin/ /usr/bin/ - - qt5-base - mesa - qt5-xmlpatterns - + diff --git a/desktop/toolkit/qt5/qt5-enginio/pspec.xml b/desktop/toolkit/qt5/qt5-enginio/pspec.xml index be0de0ac2c..07d5f8a2c7 100644 --- a/desktop/toolkit/qt5/qt5-enginio/pspec.xml +++ b/desktop/toolkit/qt5/qt5-enginio/pspec.xml @@ -13,6 +13,7 @@ LGPLv2.1-linking-exception http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtenginio-opensource-src-5.4.2.tar.xz + libgcc qt5-base-devel qt5-declarative-devel @@ -20,6 +21,11 @@ qt5-enginio + + libgcc + qt5-base + qt5-declarative + /usr/lib /usr/lib/qt5/ @@ -27,10 +33,7 @@ /usr/lib/qt5/bin/ /usr/bin/ - - qt5-base - qt5-declarative - + diff --git a/desktop/toolkit/qt5/qt5-graphicaleffects/pspec.xml b/desktop/toolkit/qt5/qt5-graphicaleffects/pspec.xml index 3ac16e116d..1e0d8d7d1f 100644 --- a/desktop/toolkit/qt5/qt5-graphicaleffects/pspec.xml +++ b/desktop/toolkit/qt5/qt5-graphicaleffects/pspec.xml @@ -15,21 +15,23 @@ qt5-base-devel qt5-declarative-devel + qt5-tools + qt5-sql-sqlite qt5-graphicaleffects + + qt5-base + qt5-declarative + /usr/lib /usr/lib/qt5 /usr/share/licenses /usr/share/doc - - qt5-base - qt5-declarative - diff --git a/desktop/toolkit/qt5/qt5-imageformats/pspec.xml b/desktop/toolkit/qt5/qt5-imageformats/pspec.xml index 78d177dd2c..c9f6220c68 100644 --- a/desktop/toolkit/qt5/qt5-imageformats/pspec.xml +++ b/desktop/toolkit/qt5/qt5-imageformats/pspec.xml @@ -14,25 +14,30 @@ http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtimageformats-opensource-src-5.4.2.tar.xz qt5-base-devel - jasper-32bit + jasper-devel libmng-devel + libjpeg-turbo-devel + zlib-devel + tiff-devel + webp-devel qt5-imageformats - - /usr/lib - /usr/lib/qt5 - /usr/share/licenses - qt5-base + libgcc libmng tiff webp jasper + + /usr/lib + /usr/lib/qt5 + /usr/share/licenses + diff --git a/desktop/toolkit/qt5/qt5-multimedia/pspec.xml b/desktop/toolkit/qt5/qt5-multimedia/pspec.xml index 9c4addb975..39338bf673 100644 --- a/desktop/toolkit/qt5/qt5-multimedia/pspec.xml +++ b/desktop/toolkit/qt5/qt5-multimedia/pspec.xml @@ -18,7 +18,8 @@ pulseaudio-libs-devel gstreamer-devel openal-devel - pulseaudio-libs-32bit + mesa-devel + @@ -30,6 +31,7 @@ /usr/share/licenses + libgcc mesa openal alsa-lib @@ -37,8 +39,8 @@ gstreamer pulseaudio-libs qt5-declarative - gst-plugins-base - gst-plugins-bad + diff --git a/desktop/toolkit/qt5/qt5-quick1/pspec.xml b/desktop/toolkit/qt5/qt5-quick1/pspec.xml index fcdac8b481..2339858ef9 100644 --- a/desktop/toolkit/qt5/qt5-quick1/pspec.xml +++ b/desktop/toolkit/qt5/qt5-quick1/pspec.xml @@ -21,6 +21,13 @@ qt5-quick1 + + mesa + qt5-base + qt5-xmlpatterns + qt5-script + + /usr/lib /usr/lib/qt5 @@ -28,27 +35,21 @@ /usr/lib/qt5/bin/ /usr/bin - - mesa - qt5-base - qt5-xmlpatterns - qt5-script - qt5-webkit - qt5-quick1-devel + + qt5-base-devel + qt5-script-devel + qt5-quick1 + Development file for qt5-quick1 Development file for qt5-quick1 /usr/lib/pkgconfig /usr/include/qt5 - - qt5-base-devel - qt5-script-devel - diff --git a/desktop/toolkit/qt5/qt5-quickcontrols/pspec.xml b/desktop/toolkit/qt5/qt5-quickcontrols/pspec.xml index dbf17965d7..fcd4704973 100644 --- a/desktop/toolkit/qt5/qt5-quickcontrols/pspec.xml +++ b/desktop/toolkit/qt5/qt5-quickcontrols/pspec.xml @@ -15,20 +15,21 @@ qt5-base-devel qt5-declarative-devel + qt5-quick1-devel qt5-quickcontrols + + qt5-base + qt5-declarative + /usr/lib /usr/lib/qt5 /usr/share/licenses/ - - qt5-base - qt5-declarative - diff --git a/desktop/toolkit/qt5/qt5-script/pspec.xml b/desktop/toolkit/qt5/qt5-script/pspec.xml index bebe313f8b..d0c60d0c00 100644 --- a/desktop/toolkit/qt5/qt5-script/pspec.xml +++ b/desktop/toolkit/qt5/qt5-script/pspec.xml @@ -14,30 +14,35 @@ http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtscript-opensource-src-5.4.2.tar.xz qt5-base-devel + mesa-devel + libgcc qt5-script + + qt5-base + libgcc + /usr/lib /usr/lib/qt5 /usr/share/licenses - - qt5-base - + qt5-script-devel + + qt5-base-devel + qt5-script + /usr/lib/pkgconfig /usr/include/qt5 - - qt5-base-devel - diff --git a/desktop/toolkit/qt5/qt5-sensors/pspec.xml b/desktop/toolkit/qt5/qt5-sensors/pspec.xml index 9d1c12604a..9b849ea0b4 100644 --- a/desktop/toolkit/qt5/qt5-sensors/pspec.xml +++ b/desktop/toolkit/qt5/qt5-sensors/pspec.xml @@ -20,26 +20,29 @@ qt5-sensors + + libgcc + qt5-base + qt5-declarative + /usr/lib /usr/lib/qt5 /usr/share/licenses - - qt5-base - qt5-declarative - qt5-sensors-devel + + qt5-sensors + qt5-base-devel + /usr/lib/pkgconfig /usr/include/qt5 - - qt5-base-devel - + diff --git a/desktop/toolkit/qt5/qt5-serialport/pspec.xml b/desktop/toolkit/qt5/qt5-serialport/pspec.xml index 2dee32317d..2f0202044b 100644 --- a/desktop/toolkit/qt5/qt5-serialport/pspec.xml +++ b/desktop/toolkit/qt5/qt5-serialport/pspec.xml @@ -14,31 +14,35 @@ http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtserialport-opensource-src-5.4.2.tar.xz qt5-base-devel + eudev-devel qt5-tools-devel qt5-serialport - + + qt5-base + eudev + libgcc + + /usr/lib /usr/lib/qt5 /usr/share/licenses - - qt5-base - qt5-serialport-devel - + + qt5-base-devel + qt5-serialport + + /usr/lib/pkgconfig /usr/include/qt5 - - qt5-base-devel - diff --git a/desktop/toolkit/qt5/qt5-svg/pspec.xml b/desktop/toolkit/qt5/qt5-svg/pspec.xml index a11a0fff0a..2e1f3852c3 100644 --- a/desktop/toolkit/qt5/qt5-svg/pspec.xml +++ b/desktop/toolkit/qt5/qt5-svg/pspec.xml @@ -14,31 +14,34 @@ http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtsvg-opensource-src-5.4.2.tar.xz qt5-base-devel + zlib-devel + mesa-devel qt5-svg + + zlib + libgcc + qt5-base + /usr/lib /usr/lib/qt5 /usr/share/licenses/ - - mesa - qt5-base - qt5-svg-devel + + qt5-base-devel + /usr/lib/pkgconfig /usr/include/qt5/ - - qt5-base-devel - diff --git a/desktop/toolkit/qt5/qt5-tools/actions.py b/desktop/toolkit/qt5/qt5-tools/actions.py index fc4a145dae..42387401ea 100644 --- a/desktop/toolkit/qt5/qt5-tools/actions.py +++ b/desktop/toolkit/qt5/qt5-tools/actions.py @@ -15,11 +15,11 @@ def setup(): def build(): qt5.make() - qt5.make("docs") + #qt5.make("docs") def install(): qt5.install("INSTALL_ROOT=%s" % get.installDIR()) - qt5.install("install_docs") + #qt5.install("install_docs") #I hope qtchooser will manage this issue for bin in shelltools.ls("%s/usr/lib/qt5/bin" % get.installDIR()): diff --git a/desktop/toolkit/qt5/qt5-tools/pspec.xml b/desktop/toolkit/qt5/qt5-tools/pspec.xml index a2bb0d9d97..08b4d3a2b0 100644 --- a/desktop/toolkit/qt5/qt5-tools/pspec.xml +++ b/desktop/toolkit/qt5/qt5-tools/pspec.xml @@ -16,6 +16,7 @@ mesa-devel qt5-base-devel qt5-declarative-devel + @@ -24,7 +25,7 @@ qt5-base mesa - qt5-webkit + qt5-declarative diff --git a/desktop/toolkit/qt5/qt5-websockets/pspec.xml b/desktop/toolkit/qt5/qt5-websockets/pspec.xml index c9b64aa156..ff3b42184a 100644 --- a/desktop/toolkit/qt5/qt5-websockets/pspec.xml +++ b/desktop/toolkit/qt5/qt5-websockets/pspec.xml @@ -25,6 +25,7 @@ /usr/lib/qt5 + libgcc qt5-base qt5-declarative diff --git a/desktop/toolkit/qt5/qt5-x11extras/pspec.xml b/desktop/toolkit/qt5/qt5-x11extras/pspec.xml index 3503dc4da4..7dbf3a143d 100644 --- a/desktop/toolkit/qt5/qt5-x11extras/pspec.xml +++ b/desktop/toolkit/qt5/qt5-x11extras/pspec.xml @@ -14,19 +14,20 @@ http://download.qt.io/official_releases/qt/5.4/5.4.2/submodules/qtx11extras-opensource-src-5.4.2.tar.xz qt5-base-devel + mesa-devel qt5-x11extras + + qt5-base + /usr/lib /usr/lib/qt5 /usr/share/licenses - - qt5-base - diff --git a/desktop/toolkit/qt5/qt5-xmlpatterns/pspec.xml b/desktop/toolkit/qt5/qt5-xmlpatterns/pspec.xml index f36dfec6d2..bf5a613e51 100644 --- a/desktop/toolkit/qt5/qt5-xmlpatterns/pspec.xml +++ b/desktop/toolkit/qt5/qt5-xmlpatterns/pspec.xml @@ -19,6 +19,10 @@ qt5-xmlpatterns + + qt5-base + libgcc + /usr/lib /usr/lib/qt5 @@ -26,9 +30,6 @@ /usr/lib/qt5/bin/ /usr/bin - - qt5-base - diff --git a/editor/component.xml b/editor/component.xml new file mode 100644 index 0000000000..84a47fb070 --- /dev/null +++ b/editor/component.xml @@ -0,0 +1,3 @@ + + editor + diff --git a/editor/nano/actions.py b/editor/nano/actions.py new file mode 100644 index 0000000000..49e400a34c --- /dev/null +++ b/editor/nano/actions.py @@ -0,0 +1,25 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.autoreconf("-fvi") + autotools.configure("--disable-rpath \ + --enable-utf8 \ + --enable-altrcname \ + --disable-speller") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.insinto("/etc/", "doc/nanorc.sample", "nanorc") + pisitools.dosym("/usr/bin/nano", "/bin/nano") + + pisitools.dohtml("doc/*.html") + pisitools.dodoc("ChangeLog*", "README", "doc/nanorc.sample", "AUTHORS", "NEWS", "TODO", "COPYING*", "THANKS", "UPGRADE") diff --git a/editor/nano/files/0001-nanorc-default-settings-changes.patch b/editor/nano/files/0001-nanorc-default-settings-changes.patch new file mode 100644 index 0000000000..d72750a939 --- /dev/null +++ b/editor/nano/files/0001-nanorc-default-settings-changes.patch @@ -0,0 +1,173 @@ +From ffb42bb0d87586adac14144b98333eb52808ce99 Mon Sep 17 00:00:00 2001 +From: Mehmet Emre Atasever +Date: Sun, 26 Jun 2011 18:39:04 +0300 +Subject: [PATCH] nanorc default settings changes + +Some default settings are not so convenient for Pisi Linux nano users. + +also fixes bugs (#pb18483, #pb18484) +--- + doc/nanorc.sample.in | 64 +++++++++++++++++++++++++------------------------- + 1 files changed, 32 insertions(+), 32 deletions(-) + +diff --git a/doc/nanorc.sample.in b/doc/nanorc.sample.in +index f164c26..24d3c7b 100644 +--- a/doc/nanorc.sample.in ++++ b/doc/nanorc.sample.in +@@ -25,17 +25,17 @@ + # set backupdir "" + + ## Do backwards searches by default. +-# set backwards ++set backwards + + ## Use bold text instead of reverse video text. +-# set boldtext ++set boldtext + + ## The characters treated as closing brackets when justifying + ## paragraphs. They cannot contain blank characters. Only closing + ## punctuation, optionally followed by closing brackets, can end + ## sentences. + ## +-# set brackets ""')>]}" ++set brackets ""')>]}" + + ## Do case sensitive searches by default. + # set casesensitive +@@ -60,7 +60,7 @@ + ## searches. They cannot contain blank characters. The former set must + ## come before the latter set, and both must be in the same order. + ## +-# set matchbrackets "(<[{)>]}" ++set matchbrackets "(<[{)>]}" + + ## Use the blank line below the titlebar as extra editing space. + # set morespace +@@ -139,7 +139,7 @@ + # set smarthome + + ## Use smooth scrolling as the default. +-# set smooth ++set smooth + + ## Enable soft line wrapping (AKA full line display). + # set softwrap +@@ -153,7 +153,7 @@ + # set suspend + + ## Use this tab size instead of the default; it must be greater than 0. +-# set tabsize 8 ++set tabsize 4 + + ## Convert typed tabs to spaces. + # set tabstospaces +@@ -234,79 +234,79 @@ + + + ## Nanorc files +-# include "@PKGDATADIR@/nanorc.nanorc" ++include "@PKGDATADIR@/nanorc.nanorc" + + ## C/C++ +-# include "@PKGDATADIR@/c.nanorc" ++include "@PKGDATADIR@/c.nanorc" + + ## Makefiles +-# include "@PKGDATADIR@/makefile.nanorc" ++include "@PKGDATADIR@/makefile.nanorc" + + ## Cascading Style Sheets +-# include "@PKGDATADIR@/css.nanorc" ++include "@PKGDATADIR@/css.nanorc" + + ## Debian files +-# include "@PKGDATADIR@/debian.nanorc" ++include "@PKGDATADIR@/debian.nanorc" + + ## Gentoo files +-# include "@PKGDATADIR@/gentoo.nanorc" ++include "@PKGDATADIR@/gentoo.nanorc" + + ## HTML +-# include "@PKGDATADIR@/html.nanorc" ++include "@PKGDATADIR@/html.nanorc" + + ## PHP +-# include "@PKGDATADIR@/php.nanorc" ++include "@PKGDATADIR@/php.nanorc" + + ## TCL +-# include "@PKGDATADIR@/tcl.nanorc" ++include "@PKGDATADIR@/tcl.nanorc" + + ## TeX +-# include "@PKGDATADIR@/tex.nanorc" ++include "@PKGDATADIR@/tex.nanorc" + + ## Quoted emails (under e.g. mutt) +-# include "@PKGDATADIR@/mutt.nanorc" ++include "@PKGDATADIR@/mutt.nanorc" + + ## Patch files +-# include "@PKGDATADIR@/patch.nanorc" ++include "@PKGDATADIR@/patch.nanorc" + + ## Manpages +-# include "@PKGDATADIR@/man.nanorc" ++include "@PKGDATADIR@/man.nanorc" + + ## Groff +-# include "@PKGDATADIR@/groff.nanorc" ++include "@PKGDATADIR@/groff.nanorc" + + ## Perl +-# include "@PKGDATADIR@/perl.nanorc" ++include "@PKGDATADIR@/perl.nanorc" + + ## Python +-# include "@PKGDATADIR@/python.nanorc" ++include "@PKGDATADIR@/python.nanorc" + + ## Ruby +-# include "@PKGDATADIR@/ruby.nanorc" ++include "@PKGDATADIR@/ruby.nanorc" + + ## Java +-# include "@PKGDATADIR@/java.nanorc" ++include "@PKGDATADIR@/java.nanorc" + + ## Fortran +-# include "@PKGDATADIR@/fortran.nanorc" ++include "@PKGDATADIR@/fortran.nanorc" + + ## Objective-C +-# include "@PKGDATADIR@/objc.nanorc" ++include "@PKGDATADIR@/objc.nanorc" + + ## OCaml +-# include "@PKGDATADIR@/ocaml.nanorc" ++include "@PKGDATADIR@/ocaml.nanorc" + + ## AWK +-# include "@PKGDATADIR@/awk.nanorc" ++include "@PKGDATADIR@/awk.nanorc" + + ## Assembler +-# include "@PKGDATADIR@/asm.nanorc" ++include "@PKGDATADIR@/asm.nanorc" + + ## Bourne shell scripts +-# include "@PKGDATADIR@/sh.nanorc" ++include "@PKGDATADIR@/sh.nanorc" + + ## POV-Ray +-# include "@PKGDATADIR@/pov.nanorc" ++include "@PKGDATADIR@/pov.nanorc" + + ## XML-type files +-# include "@PKGDATADIR@/xml.nanorc" ++include "@PKGDATADIR@/xml.nanorc" +-- +1.7.5.4 + diff --git a/editor/nano/files/fedora/0001-check-stat-s-result-and-avoid-calling-stat-on-a-NULL.patch b/editor/nano/files/fedora/0001-check-stat-s-result-and-avoid-calling-stat-on-a-NULL.patch new file mode 100644 index 0000000000..739f6f5d2f --- /dev/null +++ b/editor/nano/files/fedora/0001-check-stat-s-result-and-avoid-calling-stat-on-a-NULL.patch @@ -0,0 +1,77 @@ +From fc87b0a32c130a2b3ab37e614d4a1c6c8e5d70e7 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Thu, 19 Aug 2010 13:58:12 +0200 +Subject: [PATCH 1/2] check stat's result and avoid calling stat on a NULL pointer + +--- + src/files.c | 33 +++++++++++++++++++++++++-------- + 1 files changed, 25 insertions(+), 8 deletions(-) + +diff --git a/src/files.c b/src/files.c +index f6efbf1..99cc1b8 100644 +--- a/src/files.c ++++ b/src/files.c +@@ -103,6 +103,24 @@ void initialize_buffer_text(void) + openfile->totsize = 0; + } + ++#ifndef NANO_TINY ++/* If *pstat is NULL, perform a stat call with the given file name. On success, ++ * *pstat points to a newly allocated buffer that contains the stat's result. ++ * On stat's failure, the NULL pointer in *pstat is left intact. */ ++void stat_if_needed(const char *filename, struct stat **pstat) ++{ ++ struct stat *tmp; ++ if (*pstat) ++ return; ++ ++ tmp = (struct stat *)nmalloc(sizeof(struct stat)); ++ if (0 == stat(filename, tmp)) ++ *pstat = tmp; ++ else ++ free(tmp); ++} ++#endif ++ + /* If it's not "", filename is a file to open. We make a new buffer, if + * necessary, and then open and read the file, if applicable. */ + void open_buffer(const char *filename, bool undoable) +@@ -148,11 +166,7 @@ void open_buffer(const char *filename, bool undoable) + if (rc > 0) { + read_file(f, rc, filename, undoable, new_buffer); + #ifndef NANO_TINY +- if (openfile->current_stat == NULL) { +- openfile->current_stat = +- (struct stat *)nmalloc(sizeof(struct stat)); +- stat(filename, openfile->current_stat); +- } ++ stat_if_needed(filename, &openfile->current_stat); + #endif + } + +@@ -1532,8 +1546,8 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type + * specified it interactively), stat and save the value + * or else we will chase null pointers when we do + * modtime checks, preserve file times, etc. during backup */ +- if (openfile->current_stat == NULL && !tmp && realexists) +- stat(realname, openfile->current_stat); ++ if (!tmp && realexists) ++ stat_if_needed(realname, &openfile->current_stat); + + /* We backup only if the backup toggle is set, the file isn't + * temporary, and the file already exists. Furthermore, if we +@@ -1924,7 +1938,10 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type + if (openfile->current_stat == NULL) + openfile->current_stat = + (struct stat *)nmalloc(sizeof(struct stat)); +- stat(realname, openfile->current_stat); ++ if (stat(realname, openfile->current_stat)) { ++ free(openfile->current_stat); ++ openfile->current_stat = NULL; ++ } + #endif + + statusbar(P_("Wrote %lu line", "Wrote %lu lines", +-- +1.7.4 + diff --git a/editor/nano/files/fedora/0002-use-futimens-if-available-instead-of-utime.patch b/editor/nano/files/fedora/0002-use-futimens-if-available-instead-of-utime.patch new file mode 100644 index 0000000000..d2a687fb24 --- /dev/null +++ b/editor/nano/files/fedora/0002-use-futimens-if-available-instead-of-utime.patch @@ -0,0 +1,128 @@ +From 23510b930ea31f7de8005e2f0ff6cab7062b4e26 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Thu, 19 Aug 2010 15:23:06 +0200 +Subject: [PATCH 2/2] use futimens() if available, instead of utime() + +--- + config.h.in | 3 +++ + configure | 2 +- + configure.ac | 2 +- + src/files.c | 48 +++++++++++++++++++++++++++++++++++------------- + 4 files changed, 40 insertions(+), 15 deletions(-) + +diff --git a/config.h.in b/config.h.in +index 52e13f1..cb17b29 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -64,6 +64,9 @@ + /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ + #undef HAVE_DOPRNT + ++/* Define to 1 if you have the `futimens' function. */ ++#undef HAVE_FUTIMENS ++ + /* Define to 1 if you have the `getdelim' function. */ + #undef HAVE_GETDELIM + +diff --git a/configure b/configure +index 02733c7..1805e53 100755 +--- a/configure ++++ b/configure +@@ -7484,7 +7484,7 @@ fi + + + +-for ac_func in getdelim getline isblank strcasecmp strcasestr strncasecmp strnlen vsnprintf ++for ac_func in futimens getdelim getline isblank strcasecmp strcasestr strncasecmp strnlen vsnprintf + do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` + ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +diff --git a/configure.ac b/configure.ac +index 66f8ee3..f4975d3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -415,7 +415,7 @@ fi]) + + dnl Checks for functions. + +-AC_CHECK_FUNCS(getdelim getline isblank strcasecmp strcasestr strncasecmp strnlen vsnprintf) ++AC_CHECK_FUNCS(futimens getdelim getline isblank strcasecmp strcasestr strncasecmp strnlen vsnprintf) + + if test x$enable_utf8 != xno; then + AC_CHECK_FUNCS(iswalnum iswblank iswpunct iswspace nl_langinfo mblen mbstowcs mbtowc wctomb wcwidth) +diff --git a/src/files.c b/src/files.c +index 99cc1b8..9a1bdcc 100644 +--- a/src/files.c ++++ b/src/files.c +@@ -1455,6 +1455,29 @@ int copy_file(FILE *inn, FILE *out) + return retval; + } + ++#ifdef HAVE_FUTIMENS ++/* set atime/mtime by file descriptor */ ++int utime_wrap(int fd, const char *filename, struct utimbuf *ut) ++{ ++ struct timespec times[2]; ++ (void) filename; ++ ++ times[0].tv_sec = ut->actime; ++ times[1].tv_sec = ut->modtime; ++ times[0].tv_nsec = 0L; ++ times[1].tv_nsec = 0L; ++ ++ return futimens(fd, times); ++} ++#else ++/* set atime/mtime by file name */ ++int utime_wrap(int fd, const char *filename, struct utimbuf *ut) ++{ ++ (void) fd; ++ return utime(filename, ut); ++} ++#endif ++ + /* Write a file out to disk. If f_open isn't NULL, we assume that it is + * a stream associated with the file, and we don't try to open it + * ourselves. If tmp is TRUE, we set the umask to disallow anyone else +@@ -1694,6 +1717,18 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type + fprintf(stderr, "Backing up %s to %s\n", realname, backupname); + #endif + ++ /* Set backup's file metadata. */ ++ if (utime_wrap(backup_fd, backupname, &filetime) == -1 ++ && !ISSET(INSECURE_BACKUP)) { ++ statusbar(_("Error writing backup file %s: %s"), backupname, ++ strerror(errno)); ++ /* If we can't write to the backup, DONT go on, since ++ whatever caused the backup file to fail (e.g. disk ++ full may well cause the real file write to fail, which ++ means we could lose both the backup and the original! */ ++ goto cleanup_and_exit; ++ } ++ + /* Copy the file. */ + copy_status = copy_file(f, backup_file); + +@@ -1704,19 +1739,6 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type + goto cleanup_and_exit; + } + +- /* And set its metadata. */ +- if (utime(backupname, &filetime) == -1 && !ISSET(INSECURE_BACKUP)) { +- if (prompt_failed_backupwrite(backupname)) +- goto skip_backup; +- statusbar(_("Error writing backup file %s: %s"), backupname, +- strerror(errno)); +- /* If we can't write to the backup, DONT go on, since +- whatever caused the backup file to fail (e.g. disk +- full may well cause the real file write to fail, which +- means we could lose both the backup and the original! */ +- goto cleanup_and_exit; +- } +- + free(backupname); + } + +-- +1.7.4 + diff --git a/editor/nano/files/fedora/nano-2.3.0-warnings.patch b/editor/nano/files/fedora/nano-2.3.0-warnings.patch new file mode 100644 index 0000000000..5fa561790f --- /dev/null +++ b/editor/nano/files/fedora/nano-2.3.0-warnings.patch @@ -0,0 +1,42 @@ + po/Makefile.in.in | 1 + + src/nano.c | 2 +- + 2 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/po/Makefile.in.in b/po/Makefile.in.in +index ada8bb4..f7b2a95 100644 +--- a/po/Makefile.in.in ++++ b/po/Makefile.in.in +@@ -20,6 +20,7 @@ VPATH = @srcdir@ + + prefix = @prefix@ + exec_prefix = @exec_prefix@ ++datarootdir = @datarootdir@ + datadir = @datadir@ + localedir = $(datadir)/locale + gettextsrcdir = $(datadir)/gettext/po +diff --git a/src/nano.c b/src/nano.c +index 269ab29..5b605bf 100644 +--- a/src/nano.c ++++ b/src/nano.c +@@ -1925,7 +1925,7 @@ precalc_cleanup: + * TRUE. */ + void do_output(char *output, size_t output_len, bool allow_cntrls) + { +- size_t current_len, orig_lenpt, i = 0; ++ size_t current_len, orig_lenpt = 0, i = 0; + char *char_buf = charalloc(mb_cur_max()); + int char_buf_len; + +diff --git a/src/search.c b/src/search.c +index ca93098..3451600 100644 +--- a/src/search.c ++++ b/src/search.c +@@ -138,7 +138,7 @@ int search_init(bool replacing, bool use_answer) + int i = 0; + char *buf; + sc *s; +- void (*func)(void); ++ void (*func)(void) = (void (*)(void))0; + bool meta_key = FALSE, func_key = FALSE; + static char *backupstring = NULL; + /* The search string we'll be using. */ diff --git a/editor/nano/pspec.xml b/editor/nano/pspec.xml new file mode 100644 index 0000000000..c8754da55d --- /dev/null +++ b/editor/nano/pspec.xml @@ -0,0 +1,77 @@ + + + + + nano + http://www.nano-editor.org/ + + PisiLinux Community + admins@pisilinux.org + + GPLv3 + app:console + GNU GPL'd Pico clone with more functionality + Nano is a small, free and friendly editor which aims to replace Pico, the default editor included in the non-free Pine package. Rather than just copying Pico's look and feel, nano also implements some missing (or disabled by default) features in Pico, such as "search and replace" and "go to line number". + http://www.nano-editor.org/dist/v2.3/nano-2.3.5.tar.gz + + ncurses-devel + gettext-devel + + + + + + + + + nano + + ncurses + file + + + /etc + /usr/share/locale + /usr/share/doc/nano + /usr/share/man + /usr/share/info + /usr/share/nano + /usr/bin + /bin + + + + + + 2014-07-11 + 2.3.5 + Version bump. + Vedat Demir + vedat@pisilinux.org + + + 2014-05-11 + 2.3.1 + Release bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-07-26 + 2.3.1 + Fix dep, release bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2011-06-27 + 2.3.1 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/editor/nano/translations.xml b/editor/nano/translations.xml new file mode 100644 index 0000000000..97ae4015e7 --- /dev/null +++ b/editor/nano/translations.xml @@ -0,0 +1,9 @@ + + + + nano + Konsol ortamında kullanabileceğiniz bir metin düzenleyicidir. + Nano özgür olmayan Pine paketinin içindeki metin düzenleme programı olan Pico'nun yerine geçme hedefini güden küçük, özgür ve kullanışlı bir metin düzenleme programıdır. Pico'nun görünüşünü ve işlevini kopyalamaktan çok, Nano aynı zamanda "ara ve değiştir" ve "satır numarasına git" gibi Pico'da olmayan (veya ön tanımlı olarak kapalı) bazı özellikleri sunar. + Nano est un petit éditeur libre et convivial qui a pour but de remplacer Pico, l'éditeur par défaut inclus dans le paquet non-libre Pine. Plutôt que juste copier l'apparence et le ressenti de Pico, nan implémente également certaines fonctionnalité manquantes (ou désactivées par défaut), tel que "rechercher et remplacer" ou "allez à la ligne numéro". + + diff --git a/hardware/bluetooth/bluez/actions.py b/hardware/bluetooth/bluez/actions.py new file mode 100644 index 0000000000..9526d3a88c --- /dev/null +++ b/hardware/bluetooth/bluez/actions.py @@ -0,0 +1,83 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + + #shelltools.system("sed -i -e '/SystemdService/d' obexd/src/org.bluez.obex.service.in") + pisitools.dosed("obexd/src/org.bluez.obex.service.in", "SystemdService", deleteLine=True) + autotools.autoreconf("-fi") + autotools.configure("--prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --libexecdir=/usr/libexec/ \ + --enable-sixaxis \ + --enable-experimental \ + --disable-android \ + --enable-datafiles \ + --enable-optimization \ + --enable-pie \ + --enable-threads \ + --enable-library \ + --enable-tools \ + --enable-manpages \ + --enable-monitor \ + --enable-udev \ + --enable-test \ + --disable-systemd") + + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s install-libexecPROGRAMS install-dbussessionbusDATA install-dbussystembusDATA install-dbusDATA install-man8" % get.installDIR()) + + + # Install conf files + for i in ["profiles/input", "profiles/network" ,"src"]: + pisitools.insinto("/etc/bluetooth", "%s/*.conf" % (i)) + + + # Simple test tools + for i in ["bluezutils.py", + "dbusdef.py", + "ftp-client", + "list-devices", + "map-client", + "monitor-bluetooth", + "opp-client", + "pbap-client", + "sap_client.py", + "simple-agent", + "simple-endpoint", + "simple-player", + "test-adapter", + "test-alert", + "test-cyclingspeed", + "test-device", + "test-discovery", + "test-health", + "test-health-sink", + "test-heartrate", + "test-hfp", + "test-manager", + "test-nap", + "test-network", + "test-profile", + "test-proximity", + "test-sap-server", + "test-thermometer"]: + pisitools.dobin("test/%s" % i) + # for i in + # pisitools.dodoc("doc/%s" % i) + # Install documents + pisitools.dodoc("AUTHORS", "ChangeLog", "README") diff --git a/hardware/bluetooth/bluez/comar/service.py b/hardware/bluetooth/bluez/comar/service.py new file mode 100644 index 0000000000..d64306d997 --- /dev/null +++ b/hardware/bluetooth/bluez/comar/service.py @@ -0,0 +1,33 @@ +from comar.service import * +import os + +serviceType = "local" +serviceDesc = _({"en": "Bluetooth Service", + "tr": "Bluetooth Hizmeti"}) +serviceDefault = "on" + +PIDFILE="/run/bluez.pid" +DAEMON ="/usr/libexec/bluetooth/bluetoothd" + +@synchronized +def start(): + + startService(command=DAEMON, + pidfile=PIDFILE, + detach=True, + donotify=True) + + os.system("pidof bluez + /usr/libexec/bluetooth/bluetoothd > /run/bluez.pid") + +@synchronized +def stop(): + stopService(pidfile=PIDFILE, + donotify=True) + + try: + os.unlink(PIDFILE) + except: + pass + +def status(): + return isServiceRunning(pidfile=PIDFILE) diff --git a/hardware/bluetooth/bluez/files/bluez-5.18-obexd_without_systemd-1.patch b/hardware/bluetooth/bluez/files/bluez-5.18-obexd_without_systemd-1.patch new file mode 100644 index 0000000000..749787c5b3 --- /dev/null +++ b/hardware/bluetooth/bluez/files/bluez-5.18-obexd_without_systemd-1.patch @@ -0,0 +1,61 @@ +Submitted By: Armin K. +Date: 2013-04-29 +Initial Package Version: 5.17 +Upstream Status: unknown +Origin: Arch Linux (Giovanni Campagna) +Description: Allow using obexd without systemd in the user session + +Not all sessions run systemd --user (actually, the majority +doesn't), so the dbus daemon must be able to spawn obexd +directly, and to do so it needs the full path of the daemon. +--- + Makefile.obexd | 4 ++-- + obexd/src/org.bluez.obex.service | 4 ---- + obexd/src/org.bluez.obex.service.in | 4 ++++ + 3 files changed, 6 insertions(+), 6 deletions(-) + delete mode 100644 obexd/src/org.bluez.obex.service + create mode 100644 obexd/src/org.bluez.obex.service.in + +diff --git a/Makefile.obexd b/Makefile.obexd +index 3760867..142e7c3 100644 +--- a/Makefile.obexd ++++ b/Makefile.obexd +@@ -2,12 +2,12 @@ + if SYSTEMD + systemduserunitdir = @SYSTEMD_USERUNITDIR@ + systemduserunit_DATA = obexd/src/obex.service ++endif + + dbussessionbusdir = @DBUS_SESSIONBUSDIR@ + dbussessionbus_DATA = obexd/src/org.bluez.obex.service +-endif + +-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service ++EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in + + obex_plugindir = $(libdir)/obex/plugins + +diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service +deleted file mode 100644 +index a538088..0000000 +--- a/obexd/src/org.bluez.obex.service ++++ /dev/null +@@ -1,4 +0,0 @@ +-[D-BUS Service] +-Name=org.bluez.obex +-Exec=/bin/false +-SystemdService=dbus-org.bluez.obex.service +diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in +new file mode 100644 +index 0000000..9c815f2 +--- /dev/null ++++ b/obexd/src/org.bluez.obex.service.in +@@ -0,0 +1,4 @@ ++[D-BUS Service] ++Name=org.bluez.obex ++Exec=@libexecdir@/obexd ++SystemdService=dbus-org.bluez.obex.service +-- +1.8.3.1 + + diff --git a/hardware/bluetooth/bluez/files/bluez-5.20-obexd_without_systemd-1.patch b/hardware/bluetooth/bluez/files/bluez-5.20-obexd_without_systemd-1.patch new file mode 100644 index 0000000000..252e48234a --- /dev/null +++ b/hardware/bluetooth/bluez/files/bluez-5.20-obexd_without_systemd-1.patch @@ -0,0 +1,61 @@ +Submitted By: Armin K. +Date: 2013-04-29 +Initial Package Version: 5.17 +Upstream Status: unknown +Origin: Arch Linux (Giovanni Campagna) +Description: Allow using obexd without systemd in the user session + +Not all sessions run systemd --user (actually, the majority +doesn't), so the dbus daemon must be able to spawn obexd +directly, and to do so it needs the full path of the daemon. +--- + Makefile.obexd | 4 ++-- + obexd/src/org.bluez.obex.service | 4 ---- + obexd/src/org.bluez.obex.service.in | 4 ++++ + 3 files changed, 6 insertions(+), 6 deletions(-) + delete mode 100644 obexd/src/org.bluez.obex.service + create mode 100644 obexd/src/org.bluez.obex.service.in + +diff --git a/Makefile.obexd b/Makefile.obexd +index 3760867..142e7c3 100644 +--- a/Makefile.obexd ++++ b/Makefile.obexd +@@ -2,12 +2,12 @@ + if SYSTEMD + systemduserunitdir = @SYSTEMD_USERUNITDIR@ + systemduserunit_DATA = obexd/src/obex.service ++endif + + dbussessionbusdir = @DBUS_SESSIONBUSDIR@ + dbussessionbus_DATA = obexd/src/org.bluez.obex.service +-endif + +-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service ++EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in + + obex_plugindir = $(libdir)/obex/plugins + +diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service +deleted file mode 100644 +index a538088..0000000 +--- a/obexd/src/org.bluez.obex.service ++++ /dev/null +@@ -1,4 +0,0 @@ +-[D-BUS Service] +-Name=org.bluez.obex +-Exec=/bin/false +-SystemdService=dbus-org.bluez.obex.service +diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in +new file mode 100644 +index 0000000..9c815f2 +--- /dev/null ++++ b/obexd/src/org.bluez.obex.service.in +@@ -0,0 +1,4 @@ ++[D-BUS Service] ++Name=org.bluez.obex ++Exec=@libexecdir@/obexd ++SystemdService=dbus-org.bluez.obex.service +-- +1.8.3.1 + + diff --git a/hardware/bluetooth/bluez/files/bluez-5.27-obexd_without_systemd-1.patch b/hardware/bluetooth/bluez/files/bluez-5.27-obexd_without_systemd-1.patch new file mode 100644 index 0000000000..749787c5b3 --- /dev/null +++ b/hardware/bluetooth/bluez/files/bluez-5.27-obexd_without_systemd-1.patch @@ -0,0 +1,61 @@ +Submitted By: Armin K. +Date: 2013-04-29 +Initial Package Version: 5.17 +Upstream Status: unknown +Origin: Arch Linux (Giovanni Campagna) +Description: Allow using obexd without systemd in the user session + +Not all sessions run systemd --user (actually, the majority +doesn't), so the dbus daemon must be able to spawn obexd +directly, and to do so it needs the full path of the daemon. +--- + Makefile.obexd | 4 ++-- + obexd/src/org.bluez.obex.service | 4 ---- + obexd/src/org.bluez.obex.service.in | 4 ++++ + 3 files changed, 6 insertions(+), 6 deletions(-) + delete mode 100644 obexd/src/org.bluez.obex.service + create mode 100644 obexd/src/org.bluez.obex.service.in + +diff --git a/Makefile.obexd b/Makefile.obexd +index 3760867..142e7c3 100644 +--- a/Makefile.obexd ++++ b/Makefile.obexd +@@ -2,12 +2,12 @@ + if SYSTEMD + systemduserunitdir = @SYSTEMD_USERUNITDIR@ + systemduserunit_DATA = obexd/src/obex.service ++endif + + dbussessionbusdir = @DBUS_SESSIONBUSDIR@ + dbussessionbus_DATA = obexd/src/org.bluez.obex.service +-endif + +-EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service ++EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in + + obex_plugindir = $(libdir)/obex/plugins + +diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service +deleted file mode 100644 +index a538088..0000000 +--- a/obexd/src/org.bluez.obex.service ++++ /dev/null +@@ -1,4 +0,0 @@ +-[D-BUS Service] +-Name=org.bluez.obex +-Exec=/bin/false +-SystemdService=dbus-org.bluez.obex.service +diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in +new file mode 100644 +index 0000000..9c815f2 +--- /dev/null ++++ b/obexd/src/org.bluez.obex.service.in +@@ -0,0 +1,4 @@ ++[D-BUS Service] ++Name=org.bluez.obex ++Exec=@libexecdir@/obexd ++SystemdService=dbus-org.bluez.obex.service +-- +1.8.3.1 + + diff --git a/hardware/bluetooth/bluez/pspec.xml b/hardware/bluetooth/bluez/pspec.xml new file mode 100644 index 0000000000..31220411c7 --- /dev/null +++ b/hardware/bluetooth/bluez/pspec.xml @@ -0,0 +1,155 @@ + + + + + bluez + http://bluez.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + GPLv2+ + service + library + app:console + Official Linux Bluetooth protocol stack + bluez contains the tools and libraries that provides support for the core Bluetooth layers and protocols. + https://www.kernel.org/pub/linux/bluetooth/bluez-5.27.tar.xz + + cups-devel + dbus-devel + libnl-devel + alsa-lib-devel + gstreamer-devel + libsndfile-devel + + libical-devel + glib2-devel + eudev-devel + readline-devel + + + bluez-5.27-obexd_without_systemd-1.patch + + + + + bluez + + cups + libnl + libusb + libical + alsa-lib + alsa-lib + gstreamer + libsndfile + bluez-libs + + + /lib/udev/rules.d + /lib/systemd/system + /usr/share/misc + /usr/bin + /usr/sbin + /lib/udev + /lib/bluetooth/obexd + /lib/bluetooth/bluetoothd + /usr/lib + /usr/libexec + /usr/share/man + /var/lib/bluetooth + /usr/share/alsa/bluetooth.conf + /usr/share/dbus-1 + /etc + + + System.Service + + + + + bluez-libs + Libraries for use in Bluetooth applications + + libical + + + /usr/lib/libbluetooth.so* + /usr/share/doc + + + + + bluez-libs-devel + Development files for bluez-libs + + bluez-libs + + + /usr/include/bluetooth + /usr/lib/pkgconfig + + + + + + + + 2015-01-29 + 5.27 + rebuild. + Vedat Demir + vedat@pisilinux.org + + + 2015-01-25 + 5.27 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2014-07-05 + 5.21 + Version bump and bugs fix. + Vedat Demir + vedat@pisilinux.org + + + 2014-05-23 + 5.18 + Version bump + Burak Fazıl Ertürk + burakerturk@pisilinux.org + + + 2014-01-28 + 4.101 + Rebuild Unused + Varol Maksutoğlu + waroi@pisilinux.org + + + 2013-08-27 + 4.101 + R.Bump + PisiLinux Community + admins@pisilinux.org + + + 2013-06-28 + 4.101 + Add patches, --enable-hid2hci --enable-wiimote + Marcin Bojara + marcin@pisilinux.org + + + 2013-01-09 + 4.101 + First release + Erdinç Gültekin + admins@pisilinux.org + + + diff --git a/hardware/bluetooth/bluez/translations.xml b/hardware/bluetooth/bluez/translations.xml new file mode 100644 index 0000000000..d6dcaf969f --- /dev/null +++ b/hardware/bluetooth/bluez/translations.xml @@ -0,0 +1,18 @@ + + + + bluez + Linux resmi Bluetooth protokol yığını + Bu projenin genel amacı Linux'ta Bluetooth kablosuz standartların ayrıntılarını yerine getirmektir. + + + + bluez-libs + Uygulamalar için bluetooth erişim kitaplığı + + + + bluez-libs-devel + bluez-libs için geliştirme dosyaları + + diff --git a/hardware/bluetooth/component.xml b/hardware/bluetooth/component.xml new file mode 100644 index 0000000000..14ed87a2bf --- /dev/null +++ b/hardware/bluetooth/component.xml @@ -0,0 +1,3 @@ + + hardware.bluetooth + diff --git a/hardware/bluetooth/sbc/actions.py b/hardware/bluetooth/sbc/actions.py new file mode 100644 index 0000000000..d2ae885761 --- /dev/null +++ b/hardware/bluetooth/sbc/actions.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--disable-static \ + --disable-tester") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING*", "README") diff --git a/hardware/bluetooth/sbc/pspec.xml b/hardware/bluetooth/sbc/pspec.xml new file mode 100644 index 0000000000..e6a7225b4d --- /dev/null +++ b/hardware/bluetooth/sbc/pspec.xml @@ -0,0 +1,63 @@ + + + + + sbc + http://www.bluez.org/ + + Marcin Bojara + marcin@pisilinux.org + + GPLv2 + LGPLv2.1 + library + Bluetooth Subband Codec (SBC) library + An audio codec to connect bluetooth high quality audio devices like headphones or loudspeakers. + http://www.kernel.org/pub/linux/bluetooth/sbc-1.3.tar.gz + + + + sbc + + /usr/bin/* + /usr/lib + /usr/share/doc/sbc/* + + + + + sbc-devel + Development files for sbc + + sbc + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-12-12 + 1.3 + Version bump + Marcin Bojara + marcin@pisilinux.org + + + 2013-08-27 + 1.0 + R.Bump + PisiLinux Community + admins@pisilinux.org + + + 2012-12-19 + 1.0 + First release + Marcin Bojara + marcin@pisilinux.org + + + \ No newline at end of file diff --git a/hardware/misc/libmtdev/pspec.xml b/hardware/misc/libmtdev/pspec.xml index 85f68c1e03..918a1ecbee 100644 --- a/hardware/misc/libmtdev/pspec.xml +++ b/hardware/misc/libmtdev/pspec.xml @@ -41,8 +41,12 @@ emul32 32-bit shared libraries for libmtdev emul32 + + glibc-32bit + libmtdev + glibc-32bit /usr/lib32 diff --git a/multimedia/graphics/GraphicsMagick/actions.py b/multimedia/graphics/GraphicsMagick/actions.py new file mode 100644 index 0000000000..5ff6e2ae68 --- /dev/null +++ b/multimedia/graphics/GraphicsMagick/actions.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import perlmodules +from pisi.actionsapi import get + +# .la files needed to load modules +KeepSpecial = ["libtool"] + +def setup(): + # ghostscript is better than dps + # unstable fpx support disabled + # trio is for old systems not providing vsnprintf + autotools.configure("--enable-openmp \ + --enable-shared \ + --disable-static \ + --with-threads \ + --with-modules \ + --with-magick-plus-plus \ + --with-perl \ + --with-bzlib \ + --without-dps \ + --without-fpx \ + --with-gslib \ + --with-jbig \ + --with-jpeg \ + --with-jp2 \ + --with-lcms \ + --with-png \ + --with-tiff \ + --without-trio \ + --with-ttf \ + --with-wmf \ + --with-fontpath=/usr/share/fonts \ + --with-gs-font-dir=/usr/share/fonts/default/ghostscript \ + --with-xml \ + --with-zlib \ + --with-x \ + --with-quantum-depth=16") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + autotools.make("perl-build") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + autotools.rawInstall("DESTDIR=%s -C PerlMagick" % get.installDIR()) + for d in ("demo/", "Changelog", "README.txt"): + pisitools.insinto("/usr/share/doc/PerlMagick", "PerlMagick/%s" % d) + + pisitools.remove("/usr/lib/*.la") + perlmodules.removePacklist() + perlmodules.removePodfiles() diff --git a/multimedia/graphics/GraphicsMagick/files/GraphicsMagick-1.3.14-perl_linkage.patch b/multimedia/graphics/GraphicsMagick/files/GraphicsMagick-1.3.14-perl_linkage.patch new file mode 100644 index 0000000000..db504a0ec3 --- /dev/null +++ b/multimedia/graphics/GraphicsMagick/files/GraphicsMagick-1.3.14-perl_linkage.patch @@ -0,0 +1,12 @@ +diff -up GraphicsMagick-1.3.14/PerlMagick/Makefile.PL.in.perl_linkage GraphicsMagick-1.3.14/PerlMagick/Makefile.PL.in +--- GraphicsMagick-1.3.14/PerlMagick/Makefile.PL.in.perl_linkage 2012-02-25 14:43:38.000000000 -0600 ++++ GraphicsMagick-1.3.14/PerlMagick/Makefile.PL.in 2012-02-26 07:35:38.542731280 -0600 +@@ -78,7 +78,7 @@ WriteMakefile + 'INSTALLBIN' => $magick_BIN_DIR, + + # Library specification +- 'LIBS' => ["-L$magick_LIB_DIR -lGraphicsMagick $magick_LDFLAGS $magick_DEP_LIBS"], ++ 'LIBS' => ["-L$magick_LIB_DIR -L../magick/.libs -lGraphicsMagick $magick_LDFLAGS $magick_DEP_LIBS"], + + # Perl binary name (if a Perl binary is built) + 'MAP_TARGET' => 'PerlMagick', diff --git a/multimedia/graphics/GraphicsMagick/files/GraphicsMagick-1.3.16-multilib.patch b/multimedia/graphics/GraphicsMagick/files/GraphicsMagick-1.3.16-multilib.patch new file mode 100644 index 0000000000..e3c8e90305 --- /dev/null +++ b/multimedia/graphics/GraphicsMagick/files/GraphicsMagick-1.3.16-multilib.patch @@ -0,0 +1,43 @@ +diff -up GraphicsMagick-1.3.16/Magick++/bin/GraphicsMagick++-config.in.multilib GraphicsMagick-1.3.16/Magick++/bin/GraphicsMagick++-config.in +--- GraphicsMagick-1.3.16/Magick++/bin/GraphicsMagick++-config.in.multilib 2011-11-12 14:39:22.000000000 -0600 ++++ GraphicsMagick-1.3.16/Magick++/bin/GraphicsMagick++-config.in 2012-06-24 11:25:12.603862643 -0500 +@@ -33,13 +33,13 @@ while test $# -gt 0; do + echo '@MAGICK_API_CPPFLAGS@' + ;; + --cxxflags) +- echo '@CXXFLAGS@' ++ echo '' + ;; + --ldflags) +- echo '@MAGICK_API_LDFLAGS@' ++ echo '' + ;; + --libs) +- echo '-lGraphicsMagick++ @MAGICK_API_LIBS@' ++ echo '-lGraphicsMagick++' + ;; + *) + echo "${usage}" 1>&2 +diff -up GraphicsMagick-1.3.16/magick/GraphicsMagick-config.in.multilib GraphicsMagick-1.3.16/magick/GraphicsMagick-config.in +--- GraphicsMagick-1.3.16/magick/GraphicsMagick-config.in.multilib 2011-11-12 14:39:26.000000000 -0600 ++++ GraphicsMagick-1.3.16/magick/GraphicsMagick-config.in 2012-06-24 11:14:55.947571850 -0500 +@@ -30,16 +30,16 @@ while test $# -gt 0; do + echo @PACKAGE_VERSION@ + ;; + --cflags) +- echo '@CFLAGS@' ++ echo '' + ;; + --cppflags) + echo '@MAGICK_API_CPPFLAGS@' + ;; + --ldflags) +- echo '@MAGICK_API_LDFLAGS@' ++ echo '' + ;; + --libs) +- echo '@MAGICK_API_LIBS@' ++ echo '-lGraphicsMagick' + ;; + *) + echo "${usage}" 1>&2 diff --git a/multimedia/graphics/GraphicsMagick/pspec.xml b/multimedia/graphics/GraphicsMagick/pspec.xml new file mode 100644 index 0000000000..24a72c0ed6 --- /dev/null +++ b/multimedia/graphics/GraphicsMagick/pspec.xml @@ -0,0 +1,139 @@ + + + + + GraphicsMagick + http://www.graphicsmagick.org + + PisiLinux Community + admins@pisilinux.org + + MIT + library + GraphicsMagick Image Processing System + GraphicsMagick is a comprehensive image processing package which is initially based on ImageMagick 5.5.2, but which has undergone significant re-work by the GraphicsMagick Group to significantly improve the quality and performance of the software. + mirrors://sourceforge/graphicsmagick/GraphicsMagick-1.3.20.tar.xz + + tiff-devel + webp-devel + lcms2-devel + libSM-devel + libwmf-devel + libICE-devel + jasper-devel + jbigkit-devel + libXext-devel + libjpeg-turbo-devel + ghostscript-devel + + + GraphicsMagick-1.3.14-perl_linkage.patch + GraphicsMagick-1.3.16-multilib.patch + + + + + GraphicsMagick + app:console + + tiff + webp + lcms2 + libwmf + jasper + libXext + jbigkit + libgomp + ghostscript + libjpeg-turbo + + + /etc + /usr/bin/gm + /usr/lib/GraphicsMagick-* + /usr/lib/lib* + /usr/share/GraphicsMagick-* + /usr/share/doc + /usr/share/man + + + + + GraphicsMagick-devel + Development files for GraphicsMagick + + GraphicsMagick + + + /usr/bin/*-config + /usr/include + /usr/lib/pkgconfig + /usr/share/doc/GraphicsMagick/www + /usr/share/man/man1/*-config.* + + + + + PerlMagick + GraphicsMagick perl bindings + + GraphicsMagick + + + /usr/lib/perl5 + /usr/share/doc/PerlMagick + + + + + + 2014-09-13 + 1.3.20 + Version bump + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-06-19 + 1.3.19 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-04-23 + 1.3.19 + Rebuild + Varol Maksutoğlu + waroi@pisilinux.org + + + 2014-02-07 + 1.3.19 + Rebuild Unused + Varol Maksutoğlu + waroi@pisilinux.org + + + 2014-01-04 + 1.3.19 + Version bump + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-07-29 + 1.3.17 + Dep fixed + Fatih Turgel + hitaf@pisilinux.org + + + 2012-11-22 + 1.3.17 + First release + Marcin Bojara + marcin@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/GraphicsMagick/translations.xml b/multimedia/graphics/GraphicsMagick/translations.xml new file mode 100644 index 0000000000..177ce8b331 --- /dev/null +++ b/multimedia/graphics/GraphicsMagick/translations.xml @@ -0,0 +1,8 @@ + + + + GraphicsMagick + GraphicsMagick Resim İşleme Sistemi + GraphicsMagick, başlangıçta ImageMagick 5.5.2 sürümünü temel almış kapsamlı bir resim işleme paketidir. Yazılımın kalitesini ve performansını önemli derecede artırmak için bu pakette büyük bir değişiklik yapılmıştır. + + diff --git a/multimedia/graphics/aalib/actions.py b/multimedia/graphics/aalib/actions.py new file mode 100644 index 0000000000..06996f8d14 --- /dev/null +++ b/multimedia/graphics/aalib/actions.py @@ -0,0 +1,26 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + + +def setup(): + autotools.autoreconf("-vfi") + + autotools.configure("--with-slang-driver \ + --with-x11-driver \ + --disable-static") + +def build(): + autotools.make("CC=%s" % get.CC()) + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("ChangeLog", "AUTHORS", "NEWS", "README*", "COPYING", "ANNOUNCE") + diff --git a/multimedia/graphics/aalib/files/m4.patch b/multimedia/graphics/aalib/files/m4.patch new file mode 100644 index 0000000000..3670f19125 --- /dev/null +++ b/multimedia/graphics/aalib/files/m4.patch @@ -0,0 +1,9 @@ +Get rid of aclocal warning: +/usr/share/aclocal/aalib.m4:12: warning: underquoted definition of AM_PATH_AALIB +--- aalib-1.4.0/aalib.m4 ++++ aalib-1.4.0/aalib.m4 +@@ -11,3 +11,3 @@ + dnl +-AC_DEFUN(AM_PATH_AALIB, ++AC_DEFUN([AM_PATH_AALIB], + [dnl diff --git a/multimedia/graphics/aalib/pspec.xml b/multimedia/graphics/aalib/pspec.xml new file mode 100644 index 0000000000..afa8e0b324 --- /dev/null +++ b/multimedia/graphics/aalib/pspec.xml @@ -0,0 +1,74 @@ + + + + + aalib + http://aa-project.sourceforge.net/aalib/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + An ASCII-graphics Library + Aalib is an ASCII-graphics library generating ASCII character outputs. + mirrors://sourceforge/aa-project/aalib-1.4rc5.tar.gz + + gpm + + + m4.patch + + + + + aalib + + gpm + + + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/info + /usr/share/man + + + + + aalib-devel + Development files for aalib + + aalib + + + /usr/share/aclocal + /usr/include + /usr/share/man/man3 + + + + + + 2014-05-20 + 1.4_rc5 + Rebuild, cleanup, fix gpm linking. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-16 + 1.4_rc5 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2010-12-20 + 1.4_rc5 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/graphics/aalib/translations.xml b/multimedia/graphics/aalib/translations.xml new file mode 100644 index 0000000000..27fac646de --- /dev/null +++ b/multimedia/graphics/aalib/translations.xml @@ -0,0 +1,15 @@ + + + + aalib + Bir ASCII-grafik Kitaplığı + AAlib, bir ASCII sanatı grafik kütüphanesidir. Görsel bir ekran gibi çalışır, ancak oluşturulan çıktı platform bağımsız olarak ASCII karakterler ile gösterilir. + Aalib est une librairie de graphiques ASCII générant des sorties en caractères ASCII. + Aalib es una librería gráfica ASCII que genera salidas con caracteres ASCII. + + + + aalib-devel + aalib için geliştirme dosyaları + + diff --git a/multimedia/graphics/babl/actions.py b/multimedia/graphics/babl/actions.py new file mode 100644 index 0000000000..1453027ac4 --- /dev/null +++ b/multimedia/graphics/babl/actions.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--enable-mmx \ + --enable-sse \ + --disable-altivec") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README", "TODO") diff --git a/multimedia/graphics/babl/pspec.xml b/multimedia/graphics/babl/pspec.xml new file mode 100644 index 0000000000..d5204d1f4e --- /dev/null +++ b/multimedia/graphics/babl/pspec.xml @@ -0,0 +1,74 @@ + + + + + babl + http://gegl.org/babl + + PisiLinux Community + admins@pisilinux.org + + GPLv3 + LGPLv3 + library + A dynamic, any to any, pixel format translation library + babl is a library that allows converting between different methods of storing pixels known as pixel formats that have with different bitdepths and other data representations, color models and component permutations. + http://download.gimp.org/pub/babl/0.1/babl-0.1.12.tar.bz2 + + + librsvg + + + + + babl + + /usr/lib + /usr/share/doc + + + + + babl-devel + Development files for babl + + babl + + + /usr/include + /usr/lib/pkgconfig + /usr/share/gir-1.0 + + + + + + 2015-02-07 + 0.1.12 + Version bump. + Hakan Yıldız + hknyldz93@gmail.com + + + 2014-06-19 + 0.1.10 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-18 + 0.1.10 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-08-28 + 0.1.10 + First release + Osman Erkan + osman.erkan@pisilinux.org + + + diff --git a/multimedia/graphics/babl/translations.xml b/multimedia/graphics/babl/translations.xml new file mode 100644 index 0000000000..5708fcdbea --- /dev/null +++ b/multimedia/graphics/babl/translations.xml @@ -0,0 +1,13 @@ + + + + babl + Dinamik piksel biçimi dönüştürme kütüphanesi + babl, çeşitli piksel saklama yöntemleri arasında dönüşüme izin veren bir programlama kütüphanesidir. + + + + babl-devel + babl için geliştirme dosyaları + + diff --git a/multimedia/graphics/gegl/actions.py b/multimedia/graphics/gegl/actions.py new file mode 100644 index 0000000000..4a645c3146 --- /dev/null +++ b/multimedia/graphics/gegl/actions.py @@ -0,0 +1,59 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.autoreconf("-fi") + autotools.configure("--enable-mmx \ + --enable-sse \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --with-pic \ + --with-gio \ + --with-gtk \ + --with-cairo \ + --with-pango \ + --with-pangocairo \ + --with-gdk-pixbuf \ + --with-lensfun \ + --with-libjpeg \ + --with-libpng \ + --with-librsvg \ + --with-openexr \ + --with-sdl \ + --with-libopenraw \ + --with-jasper \ + --with-graphviz \ + --with-lua \ + --without-libavformat \ + --with-libv4l \ + --with-libspiro \ + --with-exiv2 \ + --with-umfpack \ + --disable-static \ + --disable-gtk-doc \ + --enable-gtk-doc-html=no \ + --disable-docs \ + --disable-workshop") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +# disabled due sandbox violations +#def check(): +# autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "COPYING.LESSER", "NEWS", "README") + diff --git a/multimedia/graphics/gegl/files/gegl-0.2.0-cve-2012-4433-1e92e523.patch b/multimedia/graphics/gegl/files/gegl-0.2.0-cve-2012-4433-1e92e523.patch new file mode 100644 index 0000000000..0babb0f41c --- /dev/null +++ b/multimedia/graphics/gegl/files/gegl-0.2.0-cve-2012-4433-1e92e523.patch @@ -0,0 +1,68 @@ +From 1e92e5235ded0415d555aa86066b8e4041ee5a53 Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Tue, 16 Oct 2012 14:58:27 +0000 +Subject: ppm-load: CVE-2012-4433: don't overflow memory allocation + +Carefully selected width/height values could cause the size of a later +allocation to overflow, resulting in a buffer much too small to store +the data which would then written beyond its end. +--- +diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c +index efe6d56..3d6bce7 100644 +--- a/operations/external/ppm-load.c ++++ b/operations/external/ppm-load.c +@@ -84,7 +84,6 @@ ppm_load_read_header(FILE *fp, + /* Get Width and Height */ + img->width = strtol (header,&ptr,0); + img->height = atoi (ptr); +- img->numsamples = img->width * img->height * CHANNEL_COUNT; + + fgets (header,MAX_CHARS_IN_ROW,fp); + maxval = strtol (header,&ptr,0); +@@ -109,6 +108,16 @@ ppm_load_read_header(FILE *fp, + g_warning ("%s: Programmer stupidity error", G_STRLOC); + } + ++ /* Later on, img->numsamples is multiplied with img->bpc to allocate ++ * memory. Ensure it doesn't overflow. */ ++ if (!img->width || !img->height || ++ G_MAXSIZE / img->width / img->height / CHANNEL_COUNT < img->bpc) ++ { ++ g_warning ("Illegal width/height: %ld/%ld", img->width, img->height); ++ return FALSE; ++ } ++ img->numsamples = img->width * img->height * CHANNEL_COUNT; ++ + return TRUE; + } + +@@ -229,12 +238,24 @@ process (GeglOperation *operation, + if (!ppm_load_read_header (fp, &img)) + goto out; + +- rect.height = img.height; +- rect.width = img.width; +- + /* Allocating Array Size */ ++ ++ /* Should use g_try_malloc(), but this causes crashes elsewhere because the ++ * error signalled by returning FALSE isn't properly acted upon. Therefore ++ * g_malloc() is used here which aborts if the requested memory size can't be ++ * allocated causing a controlled crash. */ + img.data = (guchar*) g_malloc (img.numsamples * img.bpc); + ++ /* No-op without g_try_malloc(), see above. */ ++ if (! img.data) ++ { ++ g_warning ("Couldn't allocate %" G_GSIZE_FORMAT " bytes, giving up.", ((gsize)img.numsamples * img.bpc)); ++ goto out; ++ } ++ ++ rect.height = img.height; ++ rect.width = img.width; ++ + switch (img.bpc) + { + case 1: +-- +cgit v0.9.0.2 diff --git a/multimedia/graphics/gegl/files/gegl-0.2.0-cve-2012-4433-4757cdf7.patch b/multimedia/graphics/gegl/files/gegl-0.2.0-cve-2012-4433-4757cdf7.patch new file mode 100644 index 0000000000..f78557f577 --- /dev/null +++ b/multimedia/graphics/gegl/files/gegl-0.2.0-cve-2012-4433-4757cdf7.patch @@ -0,0 +1,70 @@ +From 4757cdf73d3675478d645a3ec8250ba02168a230 Mon Sep 17 00:00:00 2001 +From: Nils Philippsen +Date: Tue, 16 Oct 2012 14:56:40 +0000 +Subject: ppm-load: CVE-2012-4433: add plausibility checks for header fields + +Refuse values that are non-decimal, negative or overflow the target +type. +--- +diff --git a/operations/external/ppm-load.c b/operations/external/ppm-load.c +index 3d6bce7..465096d 100644 +--- a/operations/external/ppm-load.c ++++ b/operations/external/ppm-load.c +@@ -36,6 +36,7 @@ gegl_chant_file_path (path, _("File"), "", _("Path of file to load.")) + #include "gegl-chant.h" + #include + #include ++#include + + typedef enum { + PIXMAP_ASCII = 51, +@@ -44,8 +45,8 @@ typedef enum { + + typedef struct { + map_type type; +- gint width; +- gint height; ++ glong width; ++ glong height; + gsize numsamples; /* width * height * channels */ + gsize bpc; /* bytes per channel */ + guchar *data; +@@ -82,11 +83,33 @@ ppm_load_read_header(FILE *fp, + } + + /* Get Width and Height */ +- img->width = strtol (header,&ptr,0); +- img->height = atoi (ptr); ++ errno = 0; ++ img->width = strtol (header,&ptr,10); ++ if (errno) ++ { ++ g_warning ("Error reading width: %s", strerror(errno)); ++ return FALSE; ++ } ++ else if (img->width < 0) ++ { ++ g_warning ("Error: width is negative"); ++ return FALSE; ++ } ++ ++ img->height = strtol (ptr,&ptr,10); ++ if (errno) ++ { ++ g_warning ("Error reading height: %s", strerror(errno)); ++ return FALSE; ++ } ++ else if (img->width < 0) ++ { ++ g_warning ("Error: height is negative"); ++ return FALSE; ++ } + + fgets (header,MAX_CHARS_IN_ROW,fp); +- maxval = strtol (header,&ptr,0); ++ maxval = strtol (header,&ptr,10); + + if ((maxval != 255) && (maxval != 65535)) + { +-- +cgit v0.9.0.2 diff --git a/multimedia/graphics/gegl/files/gegl-0.2.0-ffmpeg-0.11.patch b/multimedia/graphics/gegl/files/gegl-0.2.0-ffmpeg-0.11.patch new file mode 100644 index 0000000000..d68444d5ff --- /dev/null +++ b/multimedia/graphics/gegl/files/gegl-0.2.0-ffmpeg-0.11.patch @@ -0,0 +1,11 @@ +--- operations/external/ff-load.c.orig 2012-04-01 13:17:57.000000000 +0200 ++++ operations/external/ff-load.c 2012-07-11 12:42:05.174756560 +0200 +@@ -271,7 +271,7 @@ + gint err; + + ff_cleanup (o); +- err = av_open_input_file (&p->ic, o->path, NULL, 0, NULL); ++err = avformat_open_input (&p->ic, o->path, NULL, NULL); + if (err < 0) + { + print_error (o->path, err); diff --git a/multimedia/graphics/gegl/pspec.xml b/multimedia/graphics/gegl/pspec.xml new file mode 100644 index 0000000000..7271a1c16b --- /dev/null +++ b/multimedia/graphics/gegl/pspec.xml @@ -0,0 +1,144 @@ + + + + + gegl + http://gegl.org + + PisiLinux Community + admins@pisilinux.org + + GPLv3+ + LGPLv3+ + library + app:console + A graph based image processing framework + gegl (Generic Graphics Library) provides infrastructure to do demand based cached non destructive image editing on larger than RAM buffers. Through babl it provides support for a wide range of color models and pixel storage formats for input and output. + http://ftp.gimp.org/pub/gegl/0.2/gegl-0.2.0.tar.bz2 + + SuiteSparse-devel + libopenraw-devel + libspiro-devel + librsvg-devel + openexr-devel + ffmpeg-devel + libsdl-devel + libv4l-devel + jasper-devel + cairo-devel + pango-devel + exiv2-devel + babl-devel + libjpeg-turbo-devel + gtk2-devel + lua-devel + asciidoc + graphviz + enscript + ruby + ilmbase-devel + + + gegl-0.2.0-cve-2012-4433-1e92e523.patch + gegl-0.2.0-cve-2012-4433-4757cdf7.patch + gegl-0.2.0-ffmpeg-0.11.patch + + + + + gegl + + openexr-libs + SuiteSparse + gdk-pixbuf + libopenraw + libspiro + graphviz + librsvg + ffmpeg + jasper + libsdl + libv4l + cairo + pango + ruby + babl + libjpeg-turbo + gtk2 + lua + ilmbase + + + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/locale/ + + + + + gegl-devel + Development files for gegl + + gegl + babl-devel + + + /usr/include + /usr/lib/pkgconfig + /usr/share/gtk-doc/html + + + + + + 2014-12-20 + 0.2.0 + Rebuild for lua + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-06-19 + 0.2.0 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-31 + 0.2.0 + Rebuild Unused + Varol Maksutoğlu + waroi@pisilinux.org + + + 2013-11-29 + 0.2.0 + rebuild for ffmpeg + Kamil Atlı + suvarice@gmail.com + + + 2013-08-23 + 0.2.0 + Release bump + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-05-20 + 0.2.0 + Configure parameter fixed + Ertan Güven + ertan@pisilinux.org + + + 2012-12-08 + 0.2.0 + First release + marcin bojara + marcin@pisilinux.org + + + diff --git a/multimedia/graphics/gegl/translations.xml b/multimedia/graphics/gegl/translations.xml new file mode 100644 index 0000000000..29e023a772 --- /dev/null +++ b/multimedia/graphics/gegl/translations.xml @@ -0,0 +1,13 @@ + + + + gegl + Graf tabanlı resim işleme altyapısı + gegl, orijinal kopyaya zarar vermeden (non-destructive) isteğe bağlı (demand based) resim işleme altyapısı sunan bir kütüphanedir. + + + + gegl-devel + gegl için geliştirme dosyaları + + diff --git a/multimedia/graphics/giflib/actions.py b/multimedia/graphics/giflib/actions.py new file mode 100644 index 0000000000..5d314875a2 --- /dev/null +++ b/multimedia/graphics/giflib/actions.py @@ -0,0 +1,27 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import libtools +from pisi.actionsapi import get + +def setup(): + libtools.libtoolize("--force --install") + autotools.autoreconf("-fi") + + autotools.configure("--disable-static") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make("-j1") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dohtml("doc/") + pisitools.dodoc("AUTHORS","BUGS","ChangeLog","NEWS","doc/*.txt") diff --git a/multimedia/graphics/giflib/pspec.xml b/multimedia/graphics/giflib/pspec.xml new file mode 100644 index 0000000000..03730291c1 --- /dev/null +++ b/multimedia/graphics/giflib/pspec.xml @@ -0,0 +1,94 @@ + + + + + giflib + http://sourceforge.net/projects/giflib + + PisiLinux Community + admins@pisilinux.org + + MIT + library + Library to handle, display and manipulate GIF images + The giflib package contains a shared library of functions for loading and saving GIF format image files. It is API and ABI compatible with libungif, the library which supported uncompressed GIFs while the Unisys LZW patent was in effect. + mirrors://sourceforge/giflib/giflib-5.0.6.tar.bz2 + + + + + + + giflib + + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/man + + + + + giflib-devel + + giflib + + + /usr/include + /usr/share/doc/giflib/html + + + + + giflib-32bit + emul32 + 32-bit shared libraries for giflib + emul32 + + glibc-32bit + + + + giflib + glibc-32bit + + + /usr/lib32 + + + + + + 2014-05-20 + 5.0.6 + Version bump. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-28 + 5.0.5 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-07-31 + 4.1.6 + missing dep. + Erdinç Gültekin + erdincgultekin@pisilinux.org + + + 2011-05-03 + 4.1.6 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/graphics/giflib/translations.xml b/multimedia/graphics/giflib/translations.xml new file mode 100644 index 0000000000..eb492cc023 --- /dev/null +++ b/multimedia/graphics/giflib/translations.xml @@ -0,0 +1,9 @@ + + + + giflib + GIF türündeki resimleri görüntüleyip işlemeye aracılık eden kitaplık + libungif, gif dosyalarını okumaya ve yazmaya yarayan bir kütüphanedir. Kaydetme algoritması Unisys LZW patentine takılmamak için sıkıştırma yapmamaktadır. Böylece LZW'nin patentli olmadığı ülkelerde kullanılmak için API ve ABI uyumlu bir alternatif sunar. + libungif est une librairies de lecture et d'écriture d'images gif. La fonctionnalité de sauvegarde utilise un algorithme gif non compressé pour éviter le brevet Unisys LZW. giflib est un remplaçant de cette dernière compatible aussi bien au niveau de l'interface de programmation (API) qu'au niveau binaire (ABI) pour les pays où LZW n'est pas breveté. + + diff --git a/multimedia/graphics/gimp/addon/colorize-gimp/actions.py b/multimedia/graphics/gimp/addon/colorize-gimp/actions.py new file mode 100644 index 0000000000..265197558b --- /dev/null +++ b/multimedia/graphics/gimp/addon/colorize-gimp/actions.py @@ -0,0 +1,22 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +WorkDir="colorize-gimp" + +def setup(): + #pisitools.dosed("Makefile", "pardus_cflags", "%s" % get.CFLAGS()) + pisitools.dosed("Makefile", "^CC=.*", "CC=%s" % get.CC()) + +def build(): + autotools.make() + +def install(): + pisitools.insinto("/usr/lib/gimp/2.0/plug-ins", "colorize") diff --git a/multimedia/graphics/gimp/addon/colorize-gimp/files/COPYING b/multimedia/graphics/gimp/addon/colorize-gimp/files/COPYING new file mode 100644 index 0000000000..3912109b5c --- /dev/null +++ b/multimedia/graphics/gimp/addon/colorize-gimp/files/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/multimedia/graphics/gimp/addon/colorize-gimp/pspec.xml b/multimedia/graphics/gimp/addon/colorize-gimp/pspec.xml new file mode 100644 index 0000000000..382c6ce13e --- /dev/null +++ b/multimedia/graphics/gimp/addon/colorize-gimp/pspec.xml @@ -0,0 +1,70 @@ + + + + + colorize-gimp + http://zenthought.org/content/project/colorize + + PisiLinux Community + admins@pisilinux.org + + GPLv2+ + gimp + library + Colorization plugin for GIMP + colorize-gimp is an implementation of colorization using optimization for GIMP. + http://zenthought.org/system/files/asset/2/colorize-gimp-20070930.tar.gz + + gimp-devel + gtk2-devel + atlas-devel + SuiteSparse-devel + + + + + colorize-gimp + + gimp + gtk2 + atlas + SuiteSparse + atk + cairo + pango + gdk-pixbuf + fontconfig + + + /usr/lib/gimp/2.0/plug-ins + /usr/share/doc + + + COPYING + + + + + + 2014-06-19 + 2.6.0 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-07-29 + 2.6.0 + Dep fixed + Fatih Turgel + hitaf@pisilinux.org + + + 2011-01-30 + 2.6.0 + First release + Anıl Özbek + admins@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/colorize-gimp/translations.xml b/multimedia/graphics/gimp/addon/colorize-gimp/translations.xml new file mode 100644 index 0000000000..eba43d4fd0 --- /dev/null +++ b/multimedia/graphics/gimp/addon/colorize-gimp/translations.xml @@ -0,0 +1,8 @@ + + + + colorize-gimp + GIMP için renklendirme eklentisi + colorize-gimp, GIMP ile siyah beyaz fotoğrafları renklendirmek için bir eklentidir. + + diff --git a/multimedia/graphics/gimp/addon/component.xml b/multimedia/graphics/gimp/addon/component.xml new file mode 100644 index 0000000000..88d46201c5 --- /dev/null +++ b/multimedia/graphics/gimp/addon/component.xml @@ -0,0 +1,3 @@ + + multimedia.graphics.gimp.addon + diff --git a/multimedia/graphics/gimp/addon/gimp-data-extras/actions.py b/multimedia/graphics/gimp/addon/gimp-data-extras/actions.py new file mode 100644 index 0000000000..33bf87d432 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-data-extras/actions.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall('DESTDIR="%s"' % get.installDIR()) + + pisitools.dodoc("README", "COPYING", "ChangeLog", "AUTHORS") diff --git a/multimedia/graphics/gimp/addon/gimp-data-extras/pspec.xml b/multimedia/graphics/gimp/addon/gimp-data-extras/pspec.xml new file mode 100644 index 0000000000..c473aa451a --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-data-extras/pspec.xml @@ -0,0 +1,56 @@ + + + + + gimp-data-extras + http//www.gimp.org + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + gimp + data + Gimp extras + Contains extra brushes, palettes, and gradients for extra GIMPy artistic enjoyment. + ftp://ftp.gimp.org/pub/gimp/extras/gimp-data-extras-2.0.2.tar.bz2 + + gimp-devel + + + + + gimp-data-extras + + gimp + + + /usr/share/gimp + /usr/share/doc + + + + + + 2014-06-19 + 2.0.2 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 2.0.2 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2009-09-07 + 2.0.2 + First release + Pisi Linux Admins + admins@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-data-extras/translations.xml b/multimedia/graphics/gimp/addon/gimp-data-extras/translations.xml new file mode 100644 index 0000000000..82b3bc35e0 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-data-extras/translations.xml @@ -0,0 +1,8 @@ + + + + gimp-data-extras + Gimp ekleri + Daha eğlenceli bir çalışma için ek fırçalar, paketler ve gradyanlar içerir. + + diff --git a/multimedia/graphics/gimp/addon/gimp-dds-plugin/actions.py b/multimedia/graphics/gimp/addon/gimp-dds-plugin/actions.py new file mode 100644 index 0000000000..ee5bdce289 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-dds-plugin/actions.py @@ -0,0 +1,17 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def build(): + pisitools.dosed("Makefile", "CFLAGS=.*\$\(", "CFLAGS+=$(") + autotools.make() + +def install(): + pisitools.doexe("dds", "/usr/lib/gimp/2.0/plug-ins") + pisitools.dodoc("doc/gimp-dds.pdf", "COPYING", "LICENSE", "README*", "TODO") + +# By PiSiDo 2.0.0 diff --git a/multimedia/graphics/gimp/addon/gimp-dds-plugin/pspec.xml b/multimedia/graphics/gimp/addon/gimp-dds-plugin/pspec.xml new file mode 100644 index 0000000000..94856474aa --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-dds-plugin/pspec.xml @@ -0,0 +1,62 @@ + + + + + gimp-dds-plugin + http://code.google.com/p/gimp-dds/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2+ + library + DirectDraw Surface (DDS) format plugin for Gimp + This is a plugin for GIMP version 2.6.x. It allows you to load and save images in the Direct Draw Surface (DDS) format. + + gimp-devel + gtk2-devel + + http://gimp-dds.googlecode.com/files/gimp-dds-3.0.1.tar.bz2 + + + gimp-dds-plugin + + atk + cairo + fontconfig + gdk-pixbuf + gimp + gtk2 + pango + libgomp + + + /usr/lib/gimp/2.0/plug-ins/dds + /usr/share/doc/gimp-dds-plugin + + + + + + 2014-06-19 + 3.0.1 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 3.0.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-07-07 + 2.2.1 + First release + Marcin Bojara + marcin@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-focusblur-plugin/actions.py b/multimedia/graphics/gimp/addon/gimp-focusblur-plugin/actions.py new file mode 100644 index 0000000000..2da9a5ab23 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-focusblur-plugin/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + +def setup(): + #fix error "Only can be included directly." + for f in shelltools.ls("src/*"): + pisitools.dosed(f, "(#include\s)", r"\1\2") + autotools.configure("LIBS=-lm") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "README") diff --git a/multimedia/graphics/gimp/addon/gimp-focusblur-plugin/pspec.xml b/multimedia/graphics/gimp/addon/gimp-focusblur-plugin/pspec.xml new file mode 100644 index 0000000000..d0da8f4a54 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-focusblur-plugin/pspec.xml @@ -0,0 +1,60 @@ + + + + + gimp-focusblur-plugin + http://registry.gimp.org/node/1444 + + PisiLinux Community + admins@pisilinux.org + + library + GPLv2 + Makes out of focus with luminosity and depth. + Focus Blur plug-in is blurring effect, a kind of called DoF. This software makes a out of focus with luminosity and depth, like a sight or lenses. It can be used with depth map, depth fakes and shine effect. Also it can work as simple and applicable blur. + + fftw3-devel + gimp-devel + + http://registry.gimp.org/files/focusblur-3.2.6.tar.bz2 + + + + gimp-focusblur-plugin + + fftw3 + gdk-pixbuf + gimp + gtk2 + + + /usr/lib/gimp/2.0/plug-ins + /usr/share/doc + /usr/share/locale + + + + + + 2014-06-19 + 3.2.6 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 3.2.6 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-08-10 + 3.2.6 + First release + Marcin Bojara + marcin@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-gmic-plugin/actions.py b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/actions.py new file mode 100644 index 0000000000..a80d1f3702 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/actions.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- actions.pycoding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt. + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +#def setup(): + +def build(): + #pisitools.dosed("src/Makefile", "^(FFMPEG_LDFLAGS\s=.*)", r"\1 -lavutil") + autotools.make("-C src gimp custom lib -j1") + +def install(): + pisitools.doman("man/gmic.1.gz") + pisitools.dodoc("COPYING", "README") + pisitools.insinto("/usr/share/doc/gimp-gmic-plugin", "COPYING") + pisitools.insinto("/etc/bash_completion.d/", "resources/gmic_bashcompletion.sh", destinationFile = "gmic") + shelltools.cd("src") + pisitools.dobin("gmic") + pisitools.doexe("gmic_gimp", "/usr/lib/gimp/2.0/plug-ins/") + pisitools.insinto("/usr/include", "gmic.h") + pisitools.dolib("libgmic.so") + ver = ".%s" % get.srcVERSION() + while ver: + pisitools.dosym("libgmic.so", "/usr/lib/libgmic.so%s" % ver) + ver = ver[:ver.rfind('.')] diff --git a/multimedia/graphics/gimp/addon/gimp-gmic-plugin/files/gentoo/gmic-1.5.2.2-makefile.patch b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/files/gentoo/gmic-1.5.2.2-makefile.patch new file mode 100644 index 0000000000..c93c639fda --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/files/gentoo/gmic-1.5.2.2-makefile.patch @@ -0,0 +1,101 @@ +--- gmic-1.5.2.2/src/Makefile ++++ gmic-1.5.2.2/src/Makefile +@@ -77,7 +77,7 @@ + + # Flags that are mandatory to compile 'gmic'. + MANDATORY_CFLAGS += -Dgmic_build -I$(USR)/include +-MANDATORY_LDFLAGS += -L$(USR)/lib ++MANDATORY_LDFLAGS += + ifeq ($(IS_GCC),yes) + MANDATORY_CFLAGS += -Wall -W + MANDATORY_LDFLAGS += -lm +@@ -85,28 +85,20 @@ + MANDATORY_CFLAGS+=$(IS_BETA_CFLAGS) + + # Flags to enable debugging. +-DEBUG_CFLAGS = -Dcimg_use_vt100 -Dcimg_verbosity=3 -g +- +-# Flags to enable optimizations. +-ifeq ($(IS_GCC),yes) +-OPT_CFLAGS = -O3 # -fno-tree-pre # -ffast-math +-endif +-ifeq ($(CC),icc) +-OPT_CFLAGS = -O3 -ipo -no-prec-div -override-limits +-endif ++DEBUG_CFLAGS = -Dcimg_use_vt100 -Dcimg_verbosity=3 + + # Flags to enable image display, using X11 + # (keep /usr/ dirname here since X11 is located in /usr/ on Mac too). + # This requires the presence of the X11 include and library files. + # (package 'libx11-dev' on Debian). +-X11_CFLAGS = -Dcimg_display=1 -Dcimg_appname=\\\"gmic\\\" -I/usr/X11R6/include #-Dcimg_use_xrandr +-X11_LDFLAGS = -L/usr/X11R6/lib -lX11 -lpthread #-lXrandr ++X11_CFLAGS = -Dcimg_display=1 -Dcimg_appname=\\\"gmic\\\" #-Dcimg_use_xrandr ++X11_LDFLAGS = -lX11 -lpthread #-lXrandr + + # Flags to enable fast display, using XShm. + # This requires the presence of the X11 extension include and library files. + # (package 'libx11-dev' on Debian). + XSHM_CFLAGS = -Dcimg_use_xshm +-XSHM_LDFLAGS = -L$(USR)/X11R6/lib -lXext ++XSHM_LDFLAGS = -lXext + + # Flags to enable image display, using GDI32. + # This requires the presence of the GDI32 include and library files. +@@ -152,14 +144,8 @@ + # Flags to enable native support of webcams, using the OpenCV library. + # This requires the presence of the OpenCV include and library files. + # (package 'libcv3-2-dev' on Debian). +-ifeq ($(OS),Darwin) + OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include -I$(USR)/include/opencv + OPENCV_LDFLAGS = `pkg-config opencv --libs` #-> Use this for OpenCV 2.2.0 ! +-else +-OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include -I$(USR)/include/opencv +-# OPENCV_LDFLAGS = -lcv -lhighgui +-OPENCV_LDFLAGS = -lopencv_core -lopencv_highgui #-> Use this for OpenCV >= 2.2.0 ! +-endif + + # Flags to enable native support of most classical image file formats, using the GraphicsMagick++ library. + # This requires the presence of the GraphicsMagick++ include and library files. +@@ -287,10 +273,10 @@ + endif + + gimp: +- $(MAKE) "CFLAGS=$(STD_GIMP_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_GIMP_LDFLAGS) $(OPT_LDFLAGS)" "STRIP_EXE=1" gmic_gimp ++ $(MAKE) "CFLAGS+=$(STD_GIMP_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_GIMP_LDFLAGS) $(OPT_LDFLAGS)" gmic_gimp + + lib: +- $(MAKE) "CFLAGS=$(STD_LIB_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_LIB_LDFLAGS) $(OPT_LDFLAGS)" gmic_lib ++ $(MAKE) "CFLAGS+=$(STD_LIB_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_LIB_LDFLAGS) $(OPT_LDFLAGS)" gmic_lib + + zart: lib + ifneq ($(OS),Darwin) +@@ -313,10 +299,10 @@ + $(MAKE) "CFLAGS+=$(DEBUG_UNIX_CFLAGS)" "LDFLAGS+=$(DEBUG_UNIX_LDFLAGS)" gmic_minimal + + linux: +- $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_gmic ++ $(MAKE) "CFLAGS+=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(STD_UNIX_LDFLAGS)" gmic_gmic + + custom: +- $(MAKE) "CFLAGS=$(CUST_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(CUST_UNIX_LDFLAGS)" "STRIP_EXE=1" gmic_gmic ++ $(MAKE) "CFLAGS+=$(CUST_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS+=$(CUST_UNIX_LDFLAGS)" gmic_gmic + + solaris: + $(MAKE) "CFLAGS=$(STD_UNIX_CFLAGS) $(OPT_CFLAGS)" "LDFLAGS=$(STD_UNIX_LDFLAGS) -R$(USR)/X11R6/lib -lrt -lnsl -lsocket" "STRIP_EXE=1" gmic_gmic +@@ -346,7 +332,6 @@ + $(CC) -o gmic_gimp.o -c gmic.cpp $(CFLAGS) -Dgmic_gimp -Dgmic_float_only + gmic_gimp : gmic_gimp.o gmic_gimp.cpp + $(CC) -o gmic_gimp gmic_gimp.cpp gmic_gimp.o `gimptool-2.0$(EXE) --cflags` $(CFLAGS) `gimptool-2.0$(EXE) --libs` $(LDFLAGS) +- strip gmic_gimp$(EXE) + + gmic_minimal: gmic.cpp + $(CC) -o gmic gmic.cpp $(CFLAGS) -Dgmic_float_only -Dgmic_main $(LDFLAGS) +@@ -371,7 +356,6 @@ + $(CC) -o gmic_double.o -c gmic.cpp $(CFLAGS) -Dgmic_split_compilation -Dgmic_double + gmic_gmic: gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o gmic_def.h + $(CC) -o gmic gmic_bool.o gmic_uchar.o gmic_char.o gmic_ushort.o gmic_short.o gmic_uint.o gmic_int.o gmic_float.o gmic_double.o $(LDFLAGS) +- strip gmic$(EXE) + + def: + @echo "#ifndef gmic_gimp" > gmic_def.h diff --git a/multimedia/graphics/gimp/addon/gimp-gmic-plugin/pspec.xml b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/pspec.xml new file mode 100644 index 0000000000..db936c0ed0 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/pspec.xml @@ -0,0 +1,123 @@ + + + + + gimp-gmic-plugin + http://gmic.sourceforge.net/ + + PisiLinux Community + admins@pisilinux.org + + CeCILL-2 + app:console + library + Image procession framework. + G'MIC stands for GREYC's Magic Image Converter. G'MIC is focused on the design of possibly complex pipelines for converting, manipulating, filtering and visualizing generic 1d/2d/3d multi-spectral image datasets. + mirrors://sourceforge/gmic/gmic_1.6.0.3.tar.gz + + ffmpeg-devel + fftw3-devel + gimp-devel + GraphicsMagick-devel + libjpeg-turbo-devel + lapack-devel + opencv-devel + openexr-devel + tiff-devel + + + + + + + + gmic + + tiff + fftw3 + ffmpeg + opencv + libgomp + ilmbase + libXext + openexr-libs + libjpeg-turbo + GraphicsMagick + + + /etc/bash_completion.d + /usr/bin + /usr/lib + /usr/share/doc/gmic + /usr/share/man + + + + + gmic-devel + Development files for gmic + + gmic + + + /usr/include + + + + + gimp-gmic-plugin + Gimp plugin for the GMIC image procession framework. + + atk + gtk2 + gimp + cairo + pango + fftw3 + fontconfig + gdk-pixbuf + + + /usr/lib/gimp + /usr/share/doc/gimp-gmic-plugin + + + + + + 2014-12-25 + 1.6.0.3 + version bump + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2014-06-19 + 1.5.5.0 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-12-01 + 1.5.5.0 + Rebuild for ffmpeg. + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-03-27 + 1.5.5.0 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2012-08-13 + 1.5.1.7 + First release + Marcin Bojara + marcin@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-gmic-plugin/translations.xml b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/translations.xml new file mode 100644 index 0000000000..7f9166501b --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-gmic-plugin/translations.xml @@ -0,0 +1,18 @@ + + + + gmic + Image procession framework. + G'MIC stands for GREYC's Magic Image Converter. G'MIC is focused on the design of possibly complex pipelines for converting, manipulating, filtering and visualizing generic 1d/2d/3d multi-spectral image datasets. + + + + gmic-devel + Development files for gmic + + + + gimp-gmic-plugin + Gimp plugin for the GMIC image procession framework. + + diff --git a/multimedia/graphics/gimp/addon/gimp-layer-effects/actions.py b/multimedia/graphics/gimp/addon/gimp-layer-effects/actions.py new file mode 100644 index 0000000000..c4cef6f288 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-layer-effects/actions.py @@ -0,0 +1,12 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools + +WorkDir="layer-effects" + +def install(): + pisitools.insinto("/usr/lib/gimp/2.0/plug-ins", "layerfx.py") diff --git a/multimedia/graphics/gimp/addon/gimp-layer-effects/files/COPYING b/multimedia/graphics/gimp/addon/gimp-layer-effects/files/COPYING new file mode 100644 index 0000000000..94a9ed024d --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-layer-effects/files/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/multimedia/graphics/gimp/addon/gimp-layer-effects/pspec.xml b/multimedia/graphics/gimp/addon/gimp-layer-effects/pspec.xml new file mode 100644 index 0000000000..031d1a2204 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-layer-effects/pspec.xml @@ -0,0 +1,56 @@ + + + + + gimp-layer-effects + http://registry.gimp.org/node/186 + + PisiLinux Community + admins@pisilinux.org + + GPLv3+ + gimp + library + Layer effects for GIMP + Layer Effects is a GIMP plugin which contains a series of scripts that implement various layer effects. + http://ozbekanil.googlepages.com/layer-effects.tar.gz + + + + gimp-layer-effects + + gimp + + + /usr/lib/gimp/2.0/plug-ins + /usr/share/doc + + + COPYING + + + + + + 2014-06-19 + 2.6.0 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 2.6.0 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2011-01-30 + 2.6.0 + First release + Anıl Özbek + admins@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-layer-effects/translations.xml b/multimedia/graphics/gimp/addon/gimp-layer-effects/translations.xml new file mode 100644 index 0000000000..0b70fbdda0 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-layer-effects/translations.xml @@ -0,0 +1,8 @@ + + + + gimp-layer-effects + GIMP için katman efektleri + Layer Effects, yaygın olarak kullanılan katman efektlerini içeren bir GIMP eklentisidir. + + diff --git a/multimedia/graphics/gimp/addon/gimp-lqr-plugin/actions.py b/multimedia/graphics/gimp/addon/gimp-lqr-plugin/actions.py new file mode 100644 index 0000000000..270ee752b7 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-lqr-plugin/actions.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import get +from pisi.actionsapi import pisitools + +def setup(): + autotools.autoreconf("-fi") + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "BUGS", "ChangeLog", "COPYING", "NEWS", "README", "TODO") diff --git a/multimedia/graphics/gimp/addon/gimp-lqr-plugin/pspec.xml b/multimedia/graphics/gimp/addon/gimp-lqr-plugin/pspec.xml new file mode 100644 index 0000000000..fd6fc3773a --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-lqr-plugin/pspec.xml @@ -0,0 +1,61 @@ + + + + + gimp-lqr-plugin + http://liquidrescale.wikidot.com/ + + PisiLinux Community + admins@pisilinux.org + + library + GPLv2 + Plugin for The GIMP providing Liquid Rescale. + Provides an implementation of the Seam Carving algorithm. The Seam Carving procedure aims at resizing pictures non uniformly while preserving their features, i.e. avoiding distortion of the important parts. The plugin supports manual feature selection, and can also be used to remove portions of the picture in a consistent way. + + gimp-devel + liblqr-devel + + http://liquidrescale.wikidot.com/local--files/en:download-page-sources/gimp-lqr-plugin-0.7.2.tar.bz2 + + + gimp-lqr-plugin + + gdk-pixbuf + gimp + gtk2 + liblqr + + + /usr/lib/gimp/2.0/plug-ins/* + /usr/share/doc/gimp-lqr-plugin/* + /usr/share/gimp-lqr-plugin/* + /usr/share/gimp/2.0/scripts/* + /usr/share/locale/* + + + + + + 2014-06-19 + 0.7.2 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 0.7.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-08-14 + 0.7.1 + First release + Marcin Bojara + marcin@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/actions.py b/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/actions.py new file mode 100644 index 0000000000..c6e41a994f --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README") \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/pspec.xml b/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/pspec.xml new file mode 100644 index 0000000000..851cc2b3cf --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/pspec.xml @@ -0,0 +1,60 @@ + + + + + gimp-refocus-it-plugin + http://sourceforge.net/projects/refocus-it + + Osman Erkan + osman.erkan@pisilinux.org + + library + GPLv2 + Iterative refocus GIMP plug-in can be used to refocus images acquired by a defocused camera, blurred by gaussian or motion blur or any combination of these. + Iterative refocus GIMP plug-in can be used to refocus images acquired by a defocused camera, blurred by gaussian or motion blur or any combination of these. Adaptive or static area smoothing can be used to remove the so called \"ringing\" effect. + mirrors://sourceforge/refocus-it/refocus-it-2.0.0.tar.gz + + gimp-devel + gtk2-devel + + + + + gimp-refocus-it-plugin + + gimp + gtk2 + + + /usr/bin + /usr/lib/gimp/2.0/plug-ins + /usr/share/doc/gimp-refocus-it-plugin + /usr/share/help + /usr/share/locale + + + + + + 2014-06-19 + 2.0.0 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 2.0.0 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2013-03-28 + 2.0.0 + First release + Osman Erkan + osman.erkan@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/translations.xml b/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/translations.xml new file mode 100644 index 0000000000..7ca1629d1a --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-refocus-it-plugin/translations.xml @@ -0,0 +1,8 @@ + + + + gimp-refocus-it-plugin + Iterative refocus GIMP plug-in can be used to refocus images acquired by a defocused camera, blurred by gaussian or motion blur or any combination of these. + Iterative refocus GIMP plug-in can be used to refocus images acquired by a defocused camera, blurred by gaussian or motion blur or any combination of these. Adaptive or static area smoothing can be used to remove the so called \"ringing\" effect. + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-resynthesizer/actions.py b/multimedia/graphics/gimp/addon/gimp-resynthesizer/actions.py new file mode 100644 index 0000000000..bcd289badb --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-resynthesizer/actions.py @@ -0,0 +1,17 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + + +from pisi.actionsapi import pisitools +from pisi.actionsapi import autotools + +WorkDir = "resynthesizer-0.16" + +def build(): + autotools.make() + +def install(): + pisitools.insinto("/usr/share/gimp/2.0/scripts","smart-enlarge.scm") + pisitools.insinto("/usr/share/gimp/2.0/scripts","smart-remove.scm") + pisitools.insinto("/usr/lib/gimp/2.0/plug-ins","resynth") + pisitools.dodoc("COPYING","README") diff --git a/multimedia/graphics/gimp/addon/gimp-resynthesizer/pspec.xml b/multimedia/graphics/gimp/addon/gimp-resynthesizer/pspec.xml new file mode 100644 index 0000000000..a4420b97b9 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-resynthesizer/pspec.xml @@ -0,0 +1,61 @@ + + + + + gimp-resynthesizer + http://www.logarithmic.net/pfh/resynthesizer + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + addon + Resynthesizer is a Gimp plug-in for texture synthesis + Resynthesizer is a Gimp plug-in for texture synthesis. Given a sample of a texture, it can create more of that texture. + http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz + + gimp-devel + + + + gimp-resynthesizer + + gimp + atk + gtk2 + cairo + pango + fontconfig + gdk-pixbuf + + + /usr/lib/gimp/2.0/plug-ins + /usr/share/gimp/2.0/scripts + /usr/share/doc + + + + + + 2014-06-19 + 0.16 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-07-29 + 0.16 + Dep fixed + Fatih Turgel + hitaf@pisilinux.org + + + 2011-02-20 + 0.16 + First release + erdem.artan@linux.org.tr + Erdem Artan + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-save-for-web/actions.py b/multimedia/graphics/gimp/addon/gimp-save-for-web/actions.py new file mode 100644 index 0000000000..7fab99cc06 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-save-for-web/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + pisitools.dodoc("AUTHORS", "BUGS", "ChangeLog", "COPYING", "HACKING", "README", "TODO") diff --git a/multimedia/graphics/gimp/addon/gimp-save-for-web/pspec.xml b/multimedia/graphics/gimp/addon/gimp-save-for-web/pspec.xml new file mode 100644 index 0000000000..0ef6e23628 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-save-for-web/pspec.xml @@ -0,0 +1,61 @@ + + + + + gimp-save-for-web + http://registry.gimp.org/node/33 + + Osman Erkan + osman.erkan@pisilinux.org + + GPLv2 + library + GIMP Save for Web + GIMP Save for Web allows to find compromise between minimal file size and acceptable quality of image quickly. While adjusting various settings, you may explore how image quality and file size change. Options to reduce file size of an image include setting compression quality, number or colors, resizing, cropping, Exif information removal, etc. + http://registry.gimp.org/files/gimp-save-for-web-0.29.3.tar.bz2 + + gimp-devel + gtk2-devel + gdk-pixbuf-devel + + + + + gimp-save-for-web + + gimp + gtk2 + gdk-pixbuf + + + /usr/lib/gimp/2.0/plug-ins + /usr/share/gimp-save-for-web + /usr/share/locale + /usr/share/doc + + + + + + 2014-06-19 + 0.29.3 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-03-30 + 0.29.3 + V.bump + Osman Erkan + osman.erkan@pisilinux.org + + + 2011-01-30 + 0.29.0 + First release + Anıl Özbek + admins@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimp-save-for-web/translations.xml b/multimedia/graphics/gimp/addon/gimp-save-for-web/translations.xml new file mode 100644 index 0000000000..f96e8231f4 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimp-save-for-web/translations.xml @@ -0,0 +1,8 @@ + + + + gimp-save-for-web + GIMP Save for Web + GIMP Save for Web, kalite ve dosya boyutu değerlerini eniyilemeyi kolaylaştıran bir eklentidir. Çeşitli ayarları değiştirerek resimlerin ne kadar kaliteli veya büyük olacağını görebilirsiniz. Dosya boyutunu küçültecek ayarlar arasında sıkıştırma kalitesi, renk sayısı, yeniden boyutlandırma, kırpma ve Exif bilgeleri silme seçenekleri vb. vardır. + + diff --git a/multimedia/graphics/gimp/addon/gimpfx-foundry/actions.py b/multimedia/graphics/gimp/addon/gimpfx-foundry/actions.py new file mode 100644 index 0000000000..f6ec551345 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimpfx-foundry/actions.py @@ -0,0 +1,13 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools + +WorkDir = "." + +def install(): + pisitools.insinto("/usr/share/gimp/2.0/scripts/", "*.scm") + pisitools.dodoc("release-notes.txt") diff --git a/multimedia/graphics/gimp/addon/gimpfx-foundry/pspec.xml b/multimedia/graphics/gimp/addon/gimpfx-foundry/pspec.xml new file mode 100644 index 0000000000..2122efb950 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimpfx-foundry/pspec.xml @@ -0,0 +1,54 @@ + + + + + gimpfx-foundry + http://gimpfx-foundry.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + GPLv3 + public-domain + data + A scripts collection for GIMP + FX-Foundry project is constantly updating custom scripts for each major GIMP release. + mirrors://sourceforge/gimpfx-foundry/gimpfx-foundry-scriptpack/gimpfx-foundry-2.6-1/gimpfx-foundry-2.6-1.tar.gz + + + + gimpfx-foundry + + gimp + + + /usr/share/gimp/2.0/scripts + /usr/share/doc + + + + + + 2014-06-19 + 2.6.1 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-01-25 + 2.6.1 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2009-07-24 + 2.6.1 + First release + Anıl Özbek + admins@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/graphics/gimp/addon/gimpfx-foundry/translations.xml b/multimedia/graphics/gimp/addon/gimpfx-foundry/translations.xml new file mode 100644 index 0000000000..554d246b04 --- /dev/null +++ b/multimedia/graphics/gimp/addon/gimpfx-foundry/translations.xml @@ -0,0 +1,8 @@ + + + + gimpfx-foundry + GIMP için zengin bir betik paketi + FX-Foundry GIMP için hazırlanmış çeşitli betikleri GIMP'in yeni sürümleri için güncelleyen bir projedir. + + diff --git a/multimedia/graphics/gimp/component.xml b/multimedia/graphics/gimp/component.xml new file mode 100644 index 0000000000..ac1ec9f9b8 --- /dev/null +++ b/multimedia/graphics/gimp/component.xml @@ -0,0 +1,3 @@ + + multimedia.graphics.gimp + diff --git a/multimedia/graphics/gimp/gimp/actions.py b/multimedia/graphics/gimp/gimp/actions.py new file mode 100644 index 0000000000..7e4e55f244 --- /dev/null +++ b/multimedia/graphics/gimp/gimp/actions.py @@ -0,0 +1,52 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + pisitools.dosed("app/text/gimpfont.c", "freetype/tttables.h", "freetype2/tttables.h") + autotools.autoreconf("-fi") + autotools.configure("--without-webkit \ + --disable-gtk-doc \ + --disable-altivec \ + --disable-alsatest \ + --enable-python \ + --enable-default-binary \ + --enable-mmx \ + --enable-sse \ + --enable-mp \ + --with-linux-input \ + --with-poppler \ + --with-libjpeg \ + --with-libexif \ + --with-librsvg \ + --with-libtiff \ + --with-libmng \ + --with-libpng \ + --with-webkit \ + --with-lcms \ + --with-alsa \ + --with-dbus \ + --with-aa \ + --with-x") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + + # Add illustrator and other mime types + pisitools.dosed("desktop/gimp.desktop.in", "^MimeType=application/postscript;application/pdf;(.*)$", + "MimeType=\\1;image/x-sun-raster;image/x-gray;image/x-pcx;image/jpg;image/x-bmp;image/pjpeg;image/x-png;application/illustrator;") + + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog*", "HACKING", "NEWS", "README", "INSTALL", "LICENSE") \ No newline at end of file diff --git a/multimedia/graphics/gimp/gimp/files/gimp-splash-colors.png b/multimedia/graphics/gimp/gimp/files/gimp-splash-colors.png new file mode 100644 index 0000000000..b72c2d442f Binary files /dev/null and b/multimedia/graphics/gimp/gimp/files/gimp-splash-colors.png differ diff --git a/multimedia/graphics/gimp/gimp/files/gimp-splash.png b/multimedia/graphics/gimp/gimp/files/gimp-splash.png new file mode 100644 index 0000000000..869e0ff96a Binary files /dev/null and b/multimedia/graphics/gimp/gimp/files/gimp-splash.png differ diff --git a/multimedia/graphics/gimp/gimp/files/po-libgimp_gimp20-libgimp-tr.po b/multimedia/graphics/gimp/gimp/files/po-libgimp_gimp20-libgimp-tr.po new file mode 100644 index 0000000000..e9bae60fa9 --- /dev/null +++ b/multimedia/graphics/gimp/gimp/files/po-libgimp_gimp20-libgimp-tr.po @@ -0,0 +1,1853 @@ +# Copyright (C) 2001 Free Software Foundation, Inc. +# Fatih Demir , 2001. +# Alper Ersoy , 2001. +# +msgid "" +msgstr "" +"Project-Id-Version: GIMP 1.2.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-08 19:59+0000\n" +"PO-Revision-Date: 2011-01-22 15:37+0000\n" +"Last-Translator: Alper Ersoy \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Launchpad-Export-Date: 2011-08-09 06:12+0000\n" +"X-Generator: Launchpad (build 13628)\n" + +#. procedure executed successfully +#: ../libgimp/gimp.c:1045 +msgid "success" +msgstr "Başarılı" + +#. procedure execution failed +#: ../libgimp/gimp.c:1049 +msgid "execution error" +msgstr "Uygulama Hatası" + +#. procedure called incorrectly +#: ../libgimp/gimp.c:1053 +msgid "calling error" +msgstr "Çağırma Hatası" + +#. procedure execution cancelled +#: ../libgimp/gimp.c:1057 +msgid "cancelled" +msgstr "İptal edildi" + +#: ../libgimp/gimpbrushselectbutton.c:170 +msgid "Brush Selection" +msgstr "Fırça Seçimi" + +#: ../libgimp/gimpbrushselectbutton.c:913 +#: ../libgimp/gimppatternselectbutton.c:714 +msgid "_Browse..." +msgstr "_Gözat..." + +#: ../libgimp/gimpexport.c:217 ../libgimp/gimpexport.c:253 +#, c-format +msgid "%s plug-in can't handle layers" +msgstr "%s eklentisi katmanları kullanamaz" + +#: ../libgimp/gimpexport.c:218 ../libgimp/gimpexport.c:227 +#: ../libgimp/gimpexport.c:236 ../libgimp/gimpexport.c:254 +msgid "Merge Visible Layers" +msgstr "Görülen Katmanları Birleştir" + +#: ../libgimp/gimpexport.c:226 +#, c-format +msgid "%s plug-in can't handle layer offsets, size or opacity" +msgstr "" +"%s eklentisi katmanın göreli konumlarını, boyutunu ya da ışık geçirmezliğini " +"kullanamaz" + +#: ../libgimp/gimpexport.c:235 ../libgimp/gimpexport.c:244 +#, c-format +msgid "%s plug-in can only handle layers as animation frames" +msgstr "" +"%s eklentisi katmanları sadece canlandırma karesi olarak kullanabilir" + +#: ../libgimp/gimpexport.c:236 ../libgimp/gimpexport.c:245 +msgid "Save as Animation" +msgstr "Animasyon olarak kaydet" + +#: ../libgimp/gimpexport.c:245 ../libgimp/gimpexport.c:254 +#: ../libgimp/gimpexport.c:263 +msgid "Flatten Image" +msgstr "Resmi Düzleştir" + +#: ../libgimp/gimpexport.c:262 +#, c-format +msgid "%s plug-in can't handle transparency" +msgstr "%s eklentisi saydamlığı kullanamaz" + +#: ../libgimp/gimpexport.c:271 +#, c-format +msgid "%s plug-in can't handle layer masks" +msgstr "%s eklentisi katman maskelerini kullanamaz" + +#: ../libgimp/gimpexport.c:272 +msgid "Apply Layer Masks" +msgstr "Katman Maskelerini Uygula" + +#: ../libgimp/gimpexport.c:280 +#, c-format +msgid "%s plug-in can only handle RGB images" +msgstr "%s eklentisi sadece RGB görüntülerini kullanabilir" + +#: ../libgimp/gimpexport.c:281 ../libgimp/gimpexport.c:319 +#: ../libgimp/gimpexport.c:328 +msgid "Convert to RGB" +msgstr "KYM'ye çevir" + +#: ../libgimp/gimpexport.c:289 +#, c-format +msgid "%s plug-in can only handle grayscale images" +msgstr "%s eklentisi sadece gri ölçekli görüntüleri kullanabilir" + +#: ../libgimp/gimpexport.c:290 ../libgimp/gimpexport.c:319 +#: ../libgimp/gimpexport.c:340 +msgid "Convert to Grayscale" +msgstr "Griölçekliye çevir" + +#: ../libgimp/gimpexport.c:298 +#, c-format +msgid "%s plug-in can only handle indexed images" +msgstr "%s eklentisi sadece sıralanmış görüntüleri kullanabilir" + +#: ../libgimp/gimpexport.c:299 ../libgimp/gimpexport.c:328 +#: ../libgimp/gimpexport.c:338 +msgid "" +"Convert to Indexed using default settings\n" +"(Do it manually to tune the result)" +msgstr "" +"Öntanımlıları kullanarak dizinliye çevir\n" +"(Sonuç üzerinde ince ayar için kendiniz çevirin)" + +#: ../libgimp/gimpexport.c:308 +#, c-format +msgid "%s plug-in can only handle bitmap (two color) indexed images" +msgstr "" +"%s eklentisi sadece ikil eşlemli (iki renk) sıralanmış görüntüleri " +"kullanabilir" + +#: ../libgimp/gimpexport.c:309 +msgid "" +"Convert to Indexed using bitmap default settings\n" +"(Do it manually to tune the result)" +msgstr "" +"İkil eşlemli varsayılan ayarları kullanarak sıralanmışa çevir\n" +"(Sonucu ayarlamak için bunu kendiniz yapın)" + +#: ../libgimp/gimpexport.c:318 +#, c-format +msgid "%s plug-in can only handle RGB or grayscale images" +msgstr "%s eklentisi sadece RGB ya da gri ölçekli görüntüler kullanabilir" + +#: ../libgimp/gimpexport.c:327 +#, c-format +msgid "%s plug-in can only handle RGB or indexed images" +msgstr "%s eklentisi sadece RGB ya da sıralanmış görüntüler kullanabilir" + +#: ../libgimp/gimpexport.c:337 +#, c-format +msgid "%s plug-in can only handle grayscale or indexed images" +msgstr "" +"%s eklentisi sadece gri ölçekli ya da sıralanmış görüntüler kullanabilir" + +#: ../libgimp/gimpexport.c:348 +#, c-format +msgid "%s plug-in needs an alpha channel" +msgstr "%s eklentisi bir görünür kanalına gereksiniyor" + +#: ../libgimp/gimpexport.c:349 +msgid "Add Alpha Channel" +msgstr "Alfa Kanalı Ekle" + +#: ../libgimp/gimpexport.c:383 +msgid "Confirm Save" +msgstr "Kaydetmeyi Onayla" + +#: ../libgimp/gimpexport.c:389 +msgid "Confirm" +msgstr "Onayla" + +#: ../libgimp/gimpexport.c:464 +msgid "Export File" +msgstr "Dosyayı Dışarı Aktar" + +#: ../libgimp/gimpexport.c:468 +msgid "_Ignore" +msgstr "_Yoksay" + +#: ../libgimp/gimpexport.c:470 +msgid "_Export" +msgstr "_Dışa aktar" + +#. the headline +#: ../libgimp/gimpexport.c:499 +#, c-format +msgid "" +"Your image should be exported before it can be saved as %s for the following " +"reasons:" +msgstr "" +"Görüntünüz %s olarak kaydedilmeden önce izleyen nedenler için dışa " +"aktarılmalıdır:" + +#. the footline +#: ../libgimp/gimpexport.c:573 +msgid "The export conversion won't modify your original image." +msgstr "Dışarı aktarma işlemi orjinal resimde değişiklik yapmaz." + +#: ../libgimp/gimpexport.c:673 +#, c-format +msgid "" +"You are about to save a layer mask as %s.\n" +"This will not save the visible layers." +msgstr "" +"Bir katman maskesini %s olarak imlemek üzeresiniz.\n" +"Bu işlem görünebilir katmanları kaydetmeyecektir." + +#: ../libgimp/gimpexport.c:679 +#, c-format +msgid "" +"You are about to save a channel (saved selection) as %s.\n" +"This will not save the visible layers." +msgstr "" +"Bir katmanı (kaydedilmiş seçim) %s olarak kaydetmek üzeresiniz.\n" +"Bu işlem görünebilir katmanları kaydetmeyecektir." + +#: ../libgimp/gimpfontselectbutton.c:130 +msgid "Font Selection" +msgstr "Yazıyüzü Seçimi" + +#: ../libgimp/gimpfontselectbutton.c:145 +msgid "Sans" +msgstr "Sans" + +#: ../libgimp/gimpgradientselectbutton.c:148 +msgid "Gradient Selection" +msgstr "Renk Geçişi Seçimi" + +#: ../libgimp/gimpmenu.c:450 ../libgimpwidgets/gimpintstore.c:239 +msgid "(Empty)" +msgstr "(Boş)" + +#: ../libgimp/gimppaletteselectbutton.c:130 +msgid "Palette Selection" +msgstr "Palet Seçimi" + +#: ../libgimp/gimppatternselectbutton.c:156 +msgid "Pattern Selection" +msgstr "Desen Seçimi" + +#: ../libgimp/gimpprocbrowserdialog.c:140 +msgid "by name" +msgstr "ada göre" + +#: ../libgimp/gimpprocbrowserdialog.c:141 +msgid "by description" +msgstr "betimlemeye göre" + +#: ../libgimp/gimpprocbrowserdialog.c:142 +msgid "by help" +msgstr "yardıma göre" + +#: ../libgimp/gimpprocbrowserdialog.c:143 +msgid "by author" +msgstr "yazara göre" + +#: ../libgimp/gimpprocbrowserdialog.c:144 +msgid "by copyright" +msgstr "telif hakkına göre" + +#: ../libgimp/gimpprocbrowserdialog.c:145 +msgid "by date" +msgstr "tarihe göre" + +#: ../libgimp/gimpprocbrowserdialog.c:146 +msgid "by type" +msgstr "türe göre" + +#: ../libgimp/gimpprocbrowserdialog.c:377 +msgid "Searching" +msgstr "Aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:388 +msgid "Searching by name" +msgstr "Ada göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:409 +msgid "Searching by description" +msgstr "Betimlemeye göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:416 +msgid "Searching by help" +msgstr "Yardıma göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:423 +msgid "Searching by author" +msgstr "Yazara göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:430 +msgid "Searching by copyright" +msgstr "Telif hakkına göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:437 +msgid "Searching by date" +msgstr "Tarihe göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:444 +msgid "Searching by type" +msgstr "Türe göre aranıyor" + +#: ../libgimp/gimpprocbrowserdialog.c:454 +#, c-format +msgid "%d procedure" +msgid_plural "%d procedures" +msgstr[0] "%d yordam" + +#: ../libgimp/gimpprocbrowserdialog.c:463 +msgid "No matches for your query" +msgstr "Sorgulamanız için uygun eşleşme yok" + +#: ../libgimp/gimpprocbrowserdialog.c:467 +#, c-format +msgid "%d procedure matches your query" +msgid_plural "%d procedures match your query" +msgstr[0] "%d yordam sorgulamanız ile eşleşiyor" + +#. count label +#: ../libgimp/gimpprocbrowserdialog.c:516 ../libgimpwidgets/gimpbrowser.c:114 +msgid "No matches" +msgstr "Eşleşme yok" + +#: ../libgimp/gimpprocview.c:143 +msgid "Parameters" +msgstr "Değiştirgeler" + +#: ../libgimp/gimpprocview.c:156 +msgid "Return Values" +msgstr "Değerleri Geri Getir" + +#: ../libgimp/gimpprocview.c:169 +msgid "Additional Information" +msgstr "Ek Bilgi" + +#: ../libgimp/gimpprocview.c:209 +msgid "Author:" +msgstr "Yazar:" + +#: ../libgimp/gimpprocview.c:221 +msgid "Date:" +msgstr "Tarih:" + +#: ../libgimp/gimpprocview.c:233 +msgid "Copyright:" +msgstr "Telif Hakkı:" + +#: ../libgimp/gimpunitcache.c:57 +msgid "percent" +msgstr "yüzdelik" + +#: ../libgimpbase/gimpbaseenums.c:28 +msgid "_White (full opacity)" +msgstr "_Beyaz (tam ışık geçirmezlik)" + +#: ../libgimpbase/gimpbaseenums.c:29 +msgid "_Black (full transparency)" +msgstr "_Siyah (tam saydamlık)" + +#: ../libgimpbase/gimpbaseenums.c:30 +msgid "Layer's _alpha channel" +msgstr "Katmanın _görünür kanalı" + +#: ../libgimpbase/gimpbaseenums.c:31 +msgid "_Transfer layer's alpha channel" +msgstr "Katmanın görünür kanalını a_ktar" + +#: ../libgimpbase/gimpbaseenums.c:32 +msgid "_Selection" +msgstr "S_eçim" + +#: ../libgimpbase/gimpbaseenums.c:33 +msgid "_Grayscale copy of layer" +msgstr "Katmanın _gri ölçekli kopyası" + +#: ../libgimpbase/gimpbaseenums.c:34 +msgid "C_hannel" +msgstr "Ka_tman" + +#: ../libgimpbase/gimpbaseenums.c:64 +msgid "FG to BG (RGB)" +msgstr "Önplandan Arkaplana (RGB)" + +#: ../libgimpbase/gimpbaseenums.c:65 +msgid "FG to BG (HSV)" +msgstr "Önplandan Arkaplana (RDD)" + +#: ../libgimpbase/gimpbaseenums.c:66 +msgid "FG to transparent" +msgstr "Önalandan saydama" + +#: ../libgimpbase/gimpbaseenums.c:67 +msgid "Custom gradient" +msgstr "Özel renk geçişi" + +#: ../libgimpbase/gimpbaseenums.c:96 +msgid "FG color fill" +msgstr "ÖA renk doldurma" + +#: ../libgimpbase/gimpbaseenums.c:97 +msgid "BG color fill" +msgstr "AA renk doldurma" + +#: ../libgimpbase/gimpbaseenums.c:98 +msgid "Pattern fill" +msgstr "Desen doldurma" + +#: ../libgimpbase/gimpbaseenums.c:128 +msgid "Add to the current selection" +msgstr "Geçerli seçime ekle" + +#: ../libgimpbase/gimpbaseenums.c:129 +msgid "Subtract from the current selection" +msgstr "Geçerli seçimden çıkar" + +#: ../libgimpbase/gimpbaseenums.c:130 +msgid "Replace the current selection" +msgstr "Geçerli seçimin yerine yaz" + +#: ../libgimpbase/gimpbaseenums.c:131 +msgid "Intersect with the current selection" +msgstr "Geçerli seçimle kesiştir" + +#: ../libgimpbase/gimpbaseenums.c:163 ../libgimpwidgets/gimpwidgetsenums.c:126 +msgid "Red" +msgstr "Kırmızı" + +#: ../libgimpbase/gimpbaseenums.c:164 ../libgimpwidgets/gimpwidgetsenums.c:127 +msgid "Green" +msgstr "Yeşil" + +#: ../libgimpbase/gimpbaseenums.c:165 ../libgimpwidgets/gimpwidgetsenums.c:128 +msgid "Blue" +msgstr "Mavi" + +#: ../libgimpbase/gimpbaseenums.c:166 +msgid "Gray" +msgstr "Gri" + +#: ../libgimpbase/gimpbaseenums.c:167 ../libgimpbase/gimpbaseenums.c:532 +msgid "Indexed" +msgstr "İndisli" + +#: ../libgimpbase/gimpbaseenums.c:168 ../libgimpwidgets/gimpwidgetsenums.c:129 +msgid "Alpha" +msgstr "Alfa" + +#: ../libgimpbase/gimpbaseenums.c:197 +msgid "Small" +msgstr "Ufak" + +#: ../libgimpbase/gimpbaseenums.c:198 +msgid "Medium" +msgstr "Orta" + +#: ../libgimpbase/gimpbaseenums.c:199 +msgid "Large" +msgstr "Büyük" + +#: ../libgimpbase/gimpbaseenums.c:231 +msgid "Light checks" +msgstr "Açık denetimler" + +#: ../libgimpbase/gimpbaseenums.c:232 +msgid "Mid-tone checks" +msgstr "Orta-Tonda denetimler" + +#: ../libgimpbase/gimpbaseenums.c:233 +msgid "Dark checks" +msgstr "Koyu denetimler" + +#: ../libgimpbase/gimpbaseenums.c:234 +msgid "White only" +msgstr "Sadece beyaz" + +#: ../libgimpbase/gimpbaseenums.c:235 +msgid "Gray only" +msgstr "Sadece gri" + +#: ../libgimpbase/gimpbaseenums.c:236 +msgid "Black only" +msgstr "Sadece siyah" + +#: ../libgimpbase/gimpbaseenums.c:264 +msgid "Image" +msgstr "Görüntü" + +#: ../libgimpbase/gimpbaseenums.c:265 +msgid "Pattern" +msgstr "Desen" + +#: ../libgimpbase/gimpbaseenums.c:294 +msgid "Lightness" +msgstr "Hafiflik" + +#: ../libgimpbase/gimpbaseenums.c:295 +msgid "Luminosity" +msgstr "Parlaklık" + +#: ../libgimpbase/gimpbaseenums.c:296 +msgid "Average" +msgstr "Ortalama" + +#: ../libgimpbase/gimpbaseenums.c:324 +msgid "Dodge" +msgstr "Temizleme" + +#: ../libgimpbase/gimpbaseenums.c:325 +msgid "Burn" +msgstr "Yakma" + +#: ../libgimpbase/gimpbaseenums.c:389 +msgid "gradient|Linear" +msgstr "Doğrusal" + +#: ../libgimpbase/gimpbaseenums.c:390 +msgid "Bi-linear" +msgstr "Çift çizgi" + +#: ../libgimpbase/gimpbaseenums.c:391 +msgid "Radial" +msgstr "Dairesel" + +#: ../libgimpbase/gimpbaseenums.c:392 ../libgimpwidgets/gimpwidgetsenums.c:24 +msgid "Square" +msgstr "Kare" + +#: ../libgimpbase/gimpbaseenums.c:393 +msgid "Conical (sym)" +msgstr "Konuk (sim)" + +#: ../libgimpbase/gimpbaseenums.c:394 +msgid "Conical (asym)" +msgstr "Konuk (asim)" + +#: ../libgimpbase/gimpbaseenums.c:395 +msgid "Shaped (angular)" +msgstr "Şekillenmiş (açısal)" + +#: ../libgimpbase/gimpbaseenums.c:396 +msgid "Shaped (spherical)" +msgstr "Şekillenmiş (küresel)" + +#: ../libgimpbase/gimpbaseenums.c:397 +msgid "Shaped (dimpled)" +msgstr "Şekillenmiş (çukurlu)" + +#: ../libgimpbase/gimpbaseenums.c:398 +msgid "Spiral (cw)" +msgstr "Spiral (saat yönünde)" + +#: ../libgimpbase/gimpbaseenums.c:399 +msgid "Spiral (ccw)" +msgstr "Spiral (saat yönünün tersinde)" + +#: ../libgimpbase/gimpbaseenums.c:430 +msgid "Intersections (dots)" +msgstr "Kesişimler (noktalar)" + +#: ../libgimpbase/gimpbaseenums.c:431 +msgid "Intersections (crosshairs)" +msgstr "Kesişimler (artı imleçler)" + +#: ../libgimpbase/gimpbaseenums.c:432 +msgid "Dashed" +msgstr "Tireli" + +#: ../libgimpbase/gimpbaseenums.c:433 +msgid "Double dashed" +msgstr "Çift çizgili" + +#: ../libgimpbase/gimpbaseenums.c:434 +msgid "Solid" +msgstr "Kesiksiz" + +#: ../libgimpbase/gimpbaseenums.c:463 +msgid "Stock ID" +msgstr "Depo Kimliği" + +#: ../libgimpbase/gimpbaseenums.c:464 +msgid "Inline pixbuf" +msgstr "Satıriçi pixbuf" + +#: ../libgimpbase/gimpbaseenums.c:465 +msgid "Image file" +msgstr "Görüntü dosyası" + +#: ../libgimpbase/gimpbaseenums.c:494 +msgid "RGB color" +msgstr "RGB rengi" + +#: ../libgimpbase/gimpbaseenums.c:495 ../libgimpbase/gimpbaseenums.c:530 +msgid "Grayscale" +msgstr "Griölçekli" + +#: ../libgimpbase/gimpbaseenums.c:496 +msgid "Indexed color" +msgstr "Sıralanmış renk" + +#: ../libgimpbase/gimpbaseenums.c:528 +msgid "RGB" +msgstr "RGB" + +#: ../libgimpbase/gimpbaseenums.c:529 +msgid "RGB-alpha" +msgstr "RGB-görünür" + +#: ../libgimpbase/gimpbaseenums.c:531 +msgid "Grayscale-alpha" +msgstr "Gri ölçekli-görünür" + +#: ../libgimpbase/gimpbaseenums.c:533 +msgid "Indexed-alpha" +msgstr "Sıralanmış-görünür" + +#: ../libgimpbase/gimpbaseenums.c:563 +msgid "interpolation|None" +msgstr "Hiçbiri" + +#: ../libgimpbase/gimpbaseenums.c:564 +msgid "interpolation|Linear" +msgstr "Doğrusal" + +#: ../libgimpbase/gimpbaseenums.c:565 +msgid "Cubic" +msgstr "Kübik" + +#: ../libgimpbase/gimpbaseenums.c:566 +msgid "Sinc (Lanczos3)" +msgstr "Sinc (Lanczos3)" + +#: ../libgimpbase/gimpbaseenums.c:594 +msgid "Constant" +msgstr "Sabit" + +#: ../libgimpbase/gimpbaseenums.c:595 +msgid "Incremental" +msgstr "Artımlı" + +#: ../libgimpbase/gimpbaseenums.c:624 ../modules/display-filter-lcms.c:191 +msgid "None" +msgstr "Yok" + +#: ../libgimpbase/gimpbaseenums.c:625 +msgid "Sawtooth wave" +msgstr "Testere dişi dalga" + +#: ../libgimpbase/gimpbaseenums.c:626 +msgid "Triangular wave" +msgstr "Üçgensel dalga" + +#: ../libgimpbase/gimpbaseenums.c:655 +msgid "Run interactively" +msgstr "Etkileşimli çalıştır" + +#: ../libgimpbase/gimpbaseenums.c:656 +msgid "Run non-interactively" +msgstr "Etkileşimsiz çalıştır" + +#: ../libgimpbase/gimpbaseenums.c:657 +msgid "Run with last used values" +msgstr "Kullanılmış son değerlerle çalıştır" + +#: ../libgimpbase/gimpbaseenums.c:685 +msgid "Pixels" +msgstr "Piksel" + +#: ../libgimpbase/gimpbaseenums.c:686 +msgid "Points" +msgstr "Noktalar" + +#: ../libgimpbase/gimpbaseenums.c:715 +msgid "Shadows" +msgstr "Gölgeler" + +#: ../libgimpbase/gimpbaseenums.c:716 +msgid "Midtones" +msgstr "Ortatonlar" + +#: ../libgimpbase/gimpbaseenums.c:717 +msgid "Highlights" +msgstr "Yüksektonlar" + +#: ../libgimpbase/gimpbaseenums.c:745 +msgid "Normal (Forward)" +msgstr "Normal (İleriye)" + +#: ../libgimpbase/gimpbaseenums.c:746 +msgid "Corrective (Backward)" +msgstr "Düzeltici (Geriye)" + +#: ../libgimpbase/gimpbaseenums.c:776 +msgid "Adjust" +msgstr "Ayarla" + +#: ../libgimpbase/gimpbaseenums.c:777 +msgid "Clip" +msgstr "Kırp" + +#: ../libgimpbase/gimpbaseenums.c:778 +msgid "Crop to result" +msgstr "Sonuca kırp" + +#: ../libgimpbase/gimpbaseenums.c:779 +msgid "Crop with aspect" +msgstr "En boy ile kırp" + +#: ../libgimpbase/gimpbaseenums.c:909 +msgid "Internal GIMP procedure" +msgstr "İçsel GIMP yordamı" + +#: ../libgimpbase/gimpbaseenums.c:910 +msgid "GIMP Plug-In" +msgstr "GIMP Eklentisi" + +#: ../libgimpbase/gimpbaseenums.c:911 +msgid "GIMP Extension" +msgstr "GIMP Uzantısı" + +#: ../libgimpbase/gimpbaseenums.c:912 +msgid "Temporary Procedure" +msgstr "Geçici Yordam" + +#: ../libgimpbase/gimpbaseenums.c:1074 +msgid "From left to right" +msgstr "Soldan sağa" + +#: ../libgimpbase/gimpbaseenums.c:1075 +msgid "From right to left" +msgstr "Sağdan sola" + +#: ../libgimpbase/gimpbaseenums.c:1105 +msgid "Left justified" +msgstr "Sola hizalı" + +#: ../libgimpbase/gimpbaseenums.c:1106 +msgid "Right justified" +msgstr "Sağa hizalı" + +#: ../libgimpbase/gimpbaseenums.c:1107 +msgid "Centered" +msgstr "Merkezde" + +#: ../libgimpbase/gimpbaseenums.c:1108 +msgid "Filled" +msgstr "Doldurulmuş" + +#: ../libgimpbase/gimputils.c:170 ../libgimpbase/gimputils.c:175 +#: ../modules/display-filter-lcms.c:183 +#: ../modules/color-selector-cmyk-lcms.c:422 +#: ../modules/color-selector-cmyk-lcms.c:428 +msgid "(invalid UTF-8 string)" +msgstr "(geçersiz UTF-8 satırı)" + +#: ../libgimpconfig/gimpcolorconfig.c:42 +msgid "Mode of operation for color management." +msgstr "Renk yönetimi için işlem kipi" + +#: ../libgimpconfig/gimpcolorconfig.c:44 +msgid "The color profile of your (primary) monitor." +msgstr "Birincil monitörünüzün renk profili." + +#: ../libgimpconfig/gimpcolorconfig.c:46 +msgid "" +"When enabled, GIMP will try to use the display color profile from the " +"windowing system. The configured monitor profile is then only used as a " +"fallback." +msgstr "" +"Etkinleştirildiğinde, GIMP, pencere sistemindeki renk ekranı profilini " +"kullanmayı deneyecek. Sonra yapılandırılmış gösterim profili sadece geri " +"alınmış gibi kullanılır." + +#: ../libgimpconfig/gimpcolorconfig.c:50 +msgid "The default RGB working space color profile." +msgstr "Varsayılan RGB çalışma alanı renk profili." + +#: ../libgimpconfig/gimpcolorconfig.c:52 +msgid "The CMYK color profile used to convert between RGB and CMYK." +msgstr "CMYK renk profili, RGB ve CMYK arasında dönüştürmek için kullanılır." + +#: ../libgimpconfig/gimpcolorconfig.c:54 +msgid "The color profile used for simulating a printed version (softproof)." +msgstr "Yazdırılmış sürümün bir benzetimi için renk profili." + +#: ../libgimpconfig/gimpcolorconfig.c:56 +msgid "Sets how colors are mapped for your display." +msgstr "Görüntülemeniz için renklerin nasıl eşleneceğini ayarlar." + +#: ../libgimpconfig/gimpcolorconfig.c:58 +msgid "" +"Sets how colors are converted from RGB working space to the print simulation " +"device." +msgstr "" +"RGB çalışma alanından yazdırma benzetimi aygıtına renklerin nasıl " +"dönüştürüleceğini ayarlar." + +#: ../libgimpconfig/gimpcolorconfig.c:61 +msgid "" +"When enabled, the print simulation will mark colors which can not be " +"represented in the target color space." +msgstr "" +"Etkin olduğunda, yazdırma benzetimi hedef renk alanı içinde resmedilmemiş " +"renkleri imleyecek." + +#: ../libgimpconfig/gimpcolorconfig.c:64 +msgid "The color to use for marking colors which are out of gamut." +msgstr "Takımın dışındaki renkleri işaretlemek için kullanılacak renk" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:24 +msgid "No color management" +msgstr "Renk yönetimi yok" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:25 +msgid "Color managed display" +msgstr "Renk yönetimli görüntüleme" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:26 +msgid "Print simulation" +msgstr "Benzetimi yazdır" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:56 +msgid "Perceptual" +msgstr "Algısal" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:57 +msgid "Relative colorimetric" +msgstr "Göreceli renk ölçer" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:58 +msgid "intent|Saturation" +msgstr "Doygunluk" + +#: ../libgimpconfig/gimpcolorconfig-enums.c:59 +msgid "Absolute colorimetric" +msgstr "Salt renk ölçer" + +#: ../libgimpconfig/gimpconfig-deserialize.c:97 +#, c-format +msgid "value for token %s is not a valid UTF-8 string" +msgstr "%s anahtarına verilen değer geçerli bir UTF-8 dizgesi değil" + +#. please don't translate 'yes' and 'no' +#: ../libgimpconfig/gimpconfig-deserialize.c:436 +#, c-format +msgid "expected 'yes' or 'no' for boolean token %s, got '%s'" +msgstr "Boole anahtar %s için 'yes' veya 'no' bekleniyordu, '%s' alındı" + +#: ../libgimpconfig/gimpconfig-deserialize.c:510 +#, c-format +msgid "invalid value '%s' for token %s" +msgstr "Geçersiz seçenek '%s' (anahtar %s)" + +#: ../libgimpconfig/gimpconfig-deserialize.c:525 +#, c-format +msgid "invalid value '%ld' for token %s" +msgstr "Geçersiz değer '%ld' (anahtar %s)" + +#: ../libgimpconfig/gimpconfig-deserialize.c:594 +#, c-format +msgid "while parsing token '%s': %s" +msgstr "'%s' belirteci ayrıştırılırken: '%s" + +#: ../libgimpconfig/gimpconfig-iface.c:474 +#: ../libgimpconfig/gimpconfig-iface.c:487 ../libgimpconfig/gimpscanner.c:498 +#: ../libgimpconfig/gimpscanner.c:579 +#: ../libgimpwidgets/gimpcolorprofilestore.c:656 +msgid "fatal parse error" +msgstr "ölümcül ayrıştırma hatası" + +#: ../libgimpconfig/gimpconfig-path.c:377 +#, c-format +msgid "Cannot expand ${%s}" +msgstr "${%s} genişletilemiyor" + +#: ../libgimpconfig/gimpconfigwriter.c:78 +#: ../libgimpconfig/gimpconfigwriter.c:718 +#, c-format +msgid "Error writing to '%s': %s" +msgstr "'%s' üzerine yazılırken hata: %s" + +#: ../libgimpconfig/gimpconfigwriter.c:136 +#, c-format +msgid "Could not create temporary file for '%s': %s" +msgstr "'%s' için geçici dosya oluşturulamadı: %s" + +#: ../libgimpconfig/gimpconfigwriter.c:149 +#, c-format +msgid "Could not open '%s' for writing: %s" +msgstr "Yazma için '%s' açılamadı: %s" + +#: ../libgimpconfig/gimpconfigwriter.c:679 +#: ../libgimpconfig/gimpconfigwriter.c:699 +#, c-format +msgid "" +"Error writing to temporary file for '%s': %s\n" +"The original file has not been touched." +msgstr "" +"'%s' için geçici dosyaya yazma hatası: %s\n" +"Özgün dosyaya dokunulmamış." + +#: ../libgimpconfig/gimpconfigwriter.c:707 +#, c-format +msgid "" +"Error writing to temporary file for '%s': %s\n" +"No file has been created." +msgstr "" +"'%s' için geçici dosyaya yazma hatası: %s\n" +"Oluşturulmuş dosya yok." + +#: ../libgimpconfig/gimpconfigwriter.c:731 +#, c-format +msgid "Could not create '%s': %s" +msgstr "'%s' oluşturulamadı: %s" + +#: ../libgimpconfig/gimpscanner.c:255 +#, c-format +msgid "invalid UTF-8 string" +msgstr "Geçersiz UTF-8 dizgesi" + +#: ../libgimpconfig/gimpscanner.c:606 +#, c-format +msgid "Error while parsing '%s' in line %d: %s" +msgstr "'%s' ayrıştırılırken %d satırı içinde hata: %s" + +#: ../libgimpmodule/gimpmodule.c:153 ../libgimpmodule/gimpmodule.c:171 +#: ../libgimpmodule/gimpmodule.c:280 ../libgimpmodule/gimpmodule.c:307 +#: ../libgimpmodule/gimpmodule.c:418 +#, c-format +msgid "Module '%s' load error: %s" +msgstr "'%s' birimi yükleme hatası: %s" + +#: ../libgimpmodule/gimpmodule.c:375 +msgid "Module error" +msgstr "Birim hatası" + +#: ../libgimpmodule/gimpmodule.c:376 +msgid "Loaded" +msgstr "Yüklendi" + +#: ../libgimpmodule/gimpmodule.c:377 +msgid "Load failed" +msgstr "Yükleme başarısız" + +#: ../libgimpmodule/gimpmodule.c:378 +msgid "Not loaded" +msgstr "Yüklenmedi" + +#: ../libgimpthumb/gimpthumb-utils.c:123 +#, c-format +msgid "" +"Cannot determine a valid home directory.\n" +"Thumbnails will be stored in the folder for temporary files (%s) instead." +msgstr "" +"Geçerli bir ev dizini tanımlanamadı.\n" +"Küçük resimcikler geçici dosyalar %s yerine dizinde depolanacaktır." + +#: ../libgimpthumb/gimpthumb-utils.c:247 ../libgimpthumb/gimpthumb-utils.c:315 +#, c-format +msgid "Failed to create thumbnail folder '%s'." +msgstr "'%s' minyatür dizini oluşturmada hata." + +#: ../libgimpthumb/gimpthumbnail.c:498 +#, c-format +msgid "Thumbnail contains no Thumb::URI tag" +msgstr "Minyatür içeriğinde Thumb::URI etiketi yok." + +#: ../libgimpthumb/gimpthumbnail.c:898 +#, c-format +msgid "Could not create thumbnail for %s: %s" +msgstr "%s için minyatür oluşturulamadı: %s" + +#: ../libgimpwidgets/gimpbrowser.c:98 +msgid "_Search:" +msgstr "_Ara:" + +#: ../libgimpwidgets/gimpcolorbutton.c:118 +msgid "_Foreground Color" +msgstr "Ö_nalan Rengi" + +#: ../libgimpwidgets/gimpcolorbutton.c:122 +msgid "_Background Color" +msgstr "_Artalan Rengi" + +#: ../libgimpwidgets/gimpcolorbutton.c:126 +msgid "Blac_k" +msgstr "Siya_h" + +#: ../libgimpwidgets/gimpcolorbutton.c:130 +msgid "_White" +msgstr "_Beyaz" + +#: ../libgimpwidgets/gimpcolorprofilestore.c:144 +msgid "Select color profile from disk..." +msgstr "Diskten renk profili seçin." + +#: ../libgimpwidgets/gimpcolorprofilestore.c:280 +msgctxt "profile" +msgid "None" +msgstr "Hiçbiri" + +#: ../libgimpwidgets/gimpcolorscales.c:98 +msgid "Scales" +msgstr "Ölçekler" + +#: ../libgimpwidgets/gimpcolorselection.c:210 +msgid "Current:" +msgstr "Şimdiki:" + +#: ../libgimpwidgets/gimpcolorselection.c:232 +msgid "Old:" +msgstr "Eski:" + +#: ../libgimpwidgets/gimpcolorselection.c:286 +msgid "" +"Hexadecimal color notation as used in HTML and CSS. This entry also accepts " +"CSS color names." +msgstr "" +"HTML ve CSS içinde kullanılıan onaltılı renk gösterimi. Bu giriş ayrıca CSS " +"renk adlarını da kabul eder." + +#: ../libgimpwidgets/gimpcolorselection.c:292 +msgid "HTML _notation:" +msgstr "HTML _gösterimi:" + +#: ../libgimpwidgets/gimphelpui.c:420 +msgid "Press F1 for more help" +msgstr "Daha çok yardım için F1'e basın" + +#: ../libgimpwidgets/gimpfileentry.c:174 +msgid "Open a file selector to browse your folders" +msgstr "Dizinlerinize göz atmak için bir dosya seçici açın" + +#: ../libgimpwidgets/gimpfileentry.c:175 +msgid "Open a file selector to browse your files" +msgstr "Dosyalarınıza göz atmak için bir dosya seçici açın" + +#: ../libgimpwidgets/gimpfileentry.c:335 +msgid "Select Folder" +msgstr "Dizin Seç" + +#: ../libgimpwidgets/gimpfileentry.c:337 +msgid "Select File" +msgstr "Dosya Seç" + +#: ../libgimpwidgets/gimpmemsizeentry.c:204 +msgid "Kilobytes" +msgstr "KB" + +#: ../libgimpwidgets/gimpmemsizeentry.c:205 +msgid "Megabytes" +msgstr "MB" + +#: ../libgimpwidgets/gimpmemsizeentry.c:206 +msgid "Gigabytes" +msgstr "GB" + +#. Count label +#: ../libgimpwidgets/gimppageselector.c:269 +#: ../libgimpwidgets/gimppageselector.c:1166 +msgid "Nothing selected" +msgstr "Hiçbir şey seçilmedi" + +#: ../libgimpwidgets/gimppageselector.c:287 +msgid "Select _All" +msgstr "Tü_münü Seç" + +#: ../libgimpwidgets/gimppageselector.c:307 +msgid "Select _range:" +msgstr "Seçim _erimi:" + +#: ../libgimpwidgets/gimppageselector.c:319 +msgid "Open _pages as" +msgstr "_Sayfaları böyle aç" + +#: ../libgimpwidgets/gimppageselector.c:420 +msgid "Page 000" +msgstr "Sayfa 000" + +#: ../libgimpwidgets/gimppageselector.c:508 +#: ../libgimpwidgets/gimppageselector.c:744 +#, c-format +msgid "Page %d" +msgstr "Sayfa %d" + +#: ../libgimpwidgets/gimppageselector.c:1171 +msgid "One page selected" +msgstr "Bir sayfa seçildi" + +#: ../libgimpwidgets/gimppageselector.c:1178 +#: ../libgimpwidgets/gimppageselector.c:1182 +#, c-format +msgid "%d page selected" +msgid_plural "All %d pages selected" +msgstr[0] "%d sayfa seçildi" + +#: ../libgimpwidgets/gimppatheditor.c:214 +msgid "Writable" +msgstr "Yazılabilir" + +#: ../libgimpwidgets/gimppatheditor.c:223 +msgid "Folder" +msgstr "Dizin" + +#: ../libgimpwidgets/gimppickbutton.c:107 +msgid "" +"Click the eyedropper, then click a color anywhere on your screen to select " +"that color." +msgstr "" +"Damlalığa tıkladıktan sonra ekranınızdaki istediğiniz bir renge tıklayarak " +"rengi seçebilirsiniz." + +#: ../libgimpwidgets/gimppreviewarea.c:94 +msgid "Check Size" +msgstr "Denetleme Boyutu" + +#: ../libgimpwidgets/gimppreviewarea.c:101 +msgid "Check Style" +msgstr "Denetleme Biçemi" + +#. toggle button to (de)activate the instant preview +#: ../libgimpwidgets/gimppreview.c:277 +msgid "_Preview" +msgstr "Öniz_leme" + +#: ../libgimpwidgets/gimppropwidgets.c:1860 +#, c-format +msgid "This text input field is limited to %d character." +msgid_plural "This text input field is limited to %d characters." +msgstr[0] "Metin girdi alanı %d karakter ile sınırlandırılmış." + +#: ../libgimpwidgets/gimpstock.c:112 +msgid "Anchor" +msgstr "Bağlayıcı" + +#: ../libgimpwidgets/gimpstock.c:113 +msgid "C_enter" +msgstr "M_erkez" + +#: ../libgimpwidgets/gimpstock.c:114 +msgid "_Duplicate" +msgstr "Çoğal_t" + +#: ../libgimpwidgets/gimpstock.c:115 +msgid "_Edit" +msgstr "_Düzenle" + +#: ../libgimpwidgets/gimpstock.c:116 +msgid "Linked" +msgstr "Bağlı" + +#: ../libgimpwidgets/gimpstock.c:117 +msgid "Paste as New" +msgstr "Yeni olarak Yapıştır" + +#: ../libgimpwidgets/gimpstock.c:118 +msgid "Paste Into" +msgstr "İçine yapıştır" + +#: ../libgimpwidgets/gimpstock.c:119 +msgid "_Reset" +msgstr "_Sıfırla" + +#: ../libgimpwidgets/gimpstock.c:120 +msgid "Visible" +msgstr "Görünür" + +#: ../libgimpwidgets/gimpstock.c:156 ../libgimpwidgets/gimpstock.c:160 +msgid "_Stroke" +msgstr "_Vuruş" + +#: ../libgimpwidgets/gimpstock.c:172 +msgid "L_etter Spacing" +msgstr "H_arf Aralığı" + +#: ../libgimpwidgets/gimpstock.c:173 +msgid "L_ine Spacing" +msgstr "S_atır Aralığı" + +#: ../libgimpwidgets/gimpstock.c:189 +msgid "_Resize" +msgstr "Yeniden _Boyutlandır" + +#: ../libgimpwidgets/gimpstock.c:190 ../libgimpwidgets/gimpstock.c:320 +msgid "_Scale" +msgstr "_Ölçekle" + +#: ../libgimpwidgets/gimpstock.c:296 +msgid "Cr_op" +msgstr "Kır_p" + +#: ../libgimpwidgets/gimpstock.c:315 +msgid "_Transform" +msgstr "_Dönüştür" + +#: ../libgimpwidgets/gimpstock.c:319 +msgid "_Rotate" +msgstr "_Döndür" + +#: ../libgimpwidgets/gimpstock.c:321 +msgid "_Shear" +msgstr "_Kırp" + +#: ../libgimpwidgets/gimpunitmenu.c:266 +msgid "More..." +msgstr "Daha fazla..." + +#: ../libgimpwidgets/gimpunitmenu.c:581 +msgid "Unit Selection" +msgstr "Birim Seçimi" + +#: ../libgimpwidgets/gimpunitmenu.c:629 +msgid "Unit" +msgstr "Birim" + +#: ../libgimpwidgets/gimpunitmenu.c:633 +msgid "Factor" +msgstr "Etken" + +#: ../libgimpwidgets/gimpwidgets.c:511 +msgid "" +"Use this value for random number generator seed - this allows you to repeat " +"a given \"random\" operation" +msgstr "" +"Rastgele sayı üretici için bu değeri kullanın. Bu, \"rastgele\" işlem " +"tekrarı yapmanı sağlar." + +#: ../libgimpwidgets/gimpwidgets.c:515 +msgid "_New Seed" +msgstr "_Yeni Parçacık" + +#: ../libgimpwidgets/gimpwidgets.c:528 +msgid "Seed random number generator with a generated random number" +msgstr "Rastgele üretilen sayı ile rastgele parçacık sayısı üreticisi" + +#: ../libgimpwidgets/gimpwidgets.c:532 +msgid "_Randomize" +msgstr "_Rastgele" + +#: ../libgimpwidgets/gimpwidgetsenums.c:25 +msgid "Portrait" +msgstr "Dikey" + +#: ../libgimpwidgets/gimpwidgetsenums.c:26 +msgid "Landscape" +msgstr "Yatay" + +#: ../libgimpwidgets/gimpwidgetsenums.c:123 +msgid "_H" +msgstr "_H" + +#: ../libgimpwidgets/gimpwidgetsenums.c:123 +msgid "Hue" +msgstr "Renk" + +#: ../libgimpwidgets/gimpwidgetsenums.c:124 +msgid "_S" +msgstr "_S" + +#: ../libgimpwidgets/gimpwidgetsenums.c:124 +msgid "Saturation" +msgstr "Doygunluk" + +#: ../libgimpwidgets/gimpwidgetsenums.c:125 +msgid "_V" +msgstr "_V" + +#: ../libgimpwidgets/gimpwidgetsenums.c:125 +msgid "Value" +msgstr "Değer" + +#: ../libgimpwidgets/gimpwidgetsenums.c:126 +msgid "_R" +msgstr "_R" + +#: ../libgimpwidgets/gimpwidgetsenums.c:127 +msgid "_G" +msgstr "_G" + +#: ../libgimpwidgets/gimpwidgetsenums.c:128 +msgid "_B" +msgstr "_B" + +#: ../libgimpwidgets/gimpwidgetsenums.c:129 +msgid "_A" +msgstr "_A" + +#: ../libgimpwidgets/gimpwidgetsenums.c:157 +msgid "Layers" +msgstr "Katmanlar" + +#: ../libgimpwidgets/gimpwidgetsenums.c:158 +msgid "Images" +msgstr "Görüntüler" + +#: ../libgimpwidgets/gimpwidgetsenums.c:217 +msgid "Zoom in" +msgstr "Büyüt" + +#: ../libgimpwidgets/gimpwidgetsenums.c:218 +msgid "Zoom out" +msgstr "Küçült" + +#: ../modules/display-filter-color-blind.c:67 +msgid "Protanopia (insensitivity to red)" +msgstr "Kırmızıyı görememe (kırmızı duyarsızlığı)" + +#: ../modules/display-filter-color-blind.c:69 +msgid "Deuteranopia (insensitivity to green)" +msgstr "Yeşili görememe (yeşil duyarsızlığı)" + +#: ../modules/display-filter-color-blind.c:71 +msgid "Tritanopia (insensitivity to blue)" +msgstr "Maviyi görememe (mavi duyarsızlığı)" + +#: ../modules/display-filter-color-blind.c:198 +msgid "Color deficit simulation filter (Brettel-Vienot-Mollon algorithm)" +msgstr "Eksik renk canlandırma filtresi (Brettel-Vienot-Mollon algoritması)" + +#: ../modules/display-filter-color-blind.c:261 +msgid "Color Deficient Vision" +msgstr "Renki Eksik Görme" + +#: ../modules/display-filter-color-blind.c:483 +msgid "Color _deficiency type:" +msgstr "Renk _eksiklik türü:" + +#: ../modules/display-filter-gamma.c:90 +msgid "Gamma color display filter" +msgstr "Gama renk görüntüleme süzgeci" + +#: ../modules/display-filter-gamma.c:129 +msgid "Gamma" +msgstr "Gamma" + +#: ../modules/display-filter-gamma.c:232 +msgid "_Gamma:" +msgstr "_Gama:" + +#: ../modules/display-filter-high-contrast.c:90 +msgid "High Contrast color display filter" +msgstr "Yüksek Karşıtlık renk görüntüleme süzgeci" + +#: ../modules/display-filter-high-contrast.c:129 +msgid "Contrast" +msgstr "Karşıtlık" + +#: ../modules/display-filter-high-contrast.c:232 +msgid "Contrast c_ycles:" +msgstr "Karşıtlık d_önüşleri" + +#: ../modules/display-filter-lcms.c:102 +msgid "Color management display filter using ICC color profiles" +msgstr "Renk yönetimi görüntüleme süzgeci ICC renk profillerini kullanıyor" + +#: ../modules/display-filter-lcms.c:134 +msgid "Color Management" +msgstr "Renk Yönetimi" + +#: ../modules/display-filter-lcms.c:212 +msgid "" +"This filter takes its configuration from the Color Management section in the " +"Preferences dialog." +msgstr "" +"Bu süzgeç yapılandırmasını Yeğlenenler kutusu içindeki Renk Yönetimi " +"bölümünden alır." + +#: ../modules/display-filter-lcms.c:226 +msgid "Mode of operation:" +msgstr "İşlem kipi:" + +#: ../modules/display-filter-lcms.c:233 +msgid "Image profile:" +msgstr "Görüntü profili:" + +#: ../modules/display-filter-lcms.c:241 +msgid "Monitor profile:" +msgstr "Monitör profili:" + +#: ../modules/display-filter-lcms.c:249 +msgid "Print simulation profile:" +msgstr "Yazdırma benzetimi profili:" + +#: ../modules/display-filter-proof.c:97 +msgid "Color proof filter using ICC color profile" +msgstr "ICC renk profilini kullanarak renk deneme filtresi" + +#: ../modules/display-filter-proof.c:145 +msgid "Color Proof" +msgstr "Renk Denemesi" + +#: ../modules/display-filter-proof.c:311 +msgid "Choose an ICC Color Profile" +msgstr "Bir ICC Renk Profili seçin" + +#: ../modules/display-filter-proof.c:338 +msgid "All files (*.*)" +msgstr "Tüm dosyalar (*.*)" + +#: ../modules/display-filter-proof.c:343 +msgid "ICC color profile (*.icc, *.icm)" +msgstr "ICC renk profili (*.icc, *.icm)" + +#: ../modules/display-filter-proof.c:401 +msgid "_Profile:" +msgstr "_Profil:" + +#: ../modules/display-filter-proof.c:407 +msgid "_Intent:" +msgstr "_Amaç:" + +#: ../modules/display-filter-proof.c:412 +msgid "_Black Point Compensation" +msgstr "_Siyah Nokta Telafisi" + +#: ../modules/color-selector-cmyk.c:71 +msgid "CMYK color selector" +msgstr "CMYK renk seçici" + +#: ../modules/color-selector-cmyk.c:102 +#: ../modules/color-selector-cmyk-lcms.c:150 +msgid "CMYK" +msgstr "CMYK" + +#. Cyan +#: ../modules/color-selector-cmyk.c:125 +#: ../modules/color-selector-cmyk-lcms.c:169 +msgid "_C" +msgstr "_C" + +#. Magenta +#: ../modules/color-selector-cmyk.c:127 +#: ../modules/color-selector-cmyk-lcms.c:171 +msgid "_M" +msgstr "_M" + +#. Yellow +#: ../modules/color-selector-cmyk.c:129 +#: ../modules/color-selector-cmyk-lcms.c:173 +msgid "_Y" +msgstr "_Y" + +#. Key (Black) +#: ../modules/color-selector-cmyk.c:131 +#: ../modules/color-selector-cmyk-lcms.c:175 +msgid "_K" +msgstr "_K" + +#: ../modules/color-selector-cmyk.c:135 +#: ../modules/color-selector-cmyk-lcms.c:179 +msgid "Cyan" +msgstr "Turkuaz" + +#: ../modules/color-selector-cmyk.c:136 +#: ../modules/color-selector-cmyk-lcms.c:180 +msgid "Magenta" +msgstr "Pembe" + +#: ../modules/color-selector-cmyk.c:137 +#: ../modules/color-selector-cmyk-lcms.c:181 +msgid "Yellow" +msgstr "Sarı" + +#: ../modules/color-selector-cmyk.c:138 +#: ../modules/color-selector-cmyk-lcms.c:182 +msgid "Black" +msgstr "Siyah" + +#: ../modules/color-selector-cmyk.c:172 +msgid "Black _pullout:" +msgstr "Siyah _çekilmesi:" + +#: ../modules/color-selector-cmyk.c:189 +msgid "The percentage of black to pull out of the colored inks." +msgstr "Siyahın çekilmiş boyalı mürekkeplere olan yüzdesi." + +#: ../modules/color-selector-cmyk-lcms.c:87 +msgid "CMYK color selector (using color profile)" +msgstr "CMYK renk seçici (renk profili kullanıyor)" + +#: ../modules/color-selector-cmyk-lcms.c:410 +msgid "Profile: (none)" +msgstr "Profil: (hiçbiri)" + +#: ../modules/color-selector-cmyk-lcms.c:431 +#, c-format +msgid "Profile: %s" +msgstr "Profil: %s" + +#: ../modules/color-selector-water.c:82 +msgid "Watercolor style color selector" +msgstr "Suluboya biçemli renk seçici" + +#: ../modules/color-selector-water.c:118 +msgid "Watercolor" +msgstr "Suluboya" + +#: ../modules/color-selector-water.c:186 +msgid "Pressure" +msgstr "Basınç" + +#: ../modules/color-selector-wheel.c:103 +msgid "HSV color wheel" +msgstr "HSV renk tekeri" + +#: ../modules/color-selector-wheel.c:134 +msgid "Wheel" +msgstr "Teker" + +#: ../modules/controller-linux-input.c:58 +msgid "Button 0" +msgstr "0. düğme" + +#: ../modules/controller-linux-input.c:59 +msgid "Button 1" +msgstr "1. düğme" + +#: ../modules/controller-linux-input.c:60 +msgid "Button 2" +msgstr "2. düğme" + +#: ../modules/controller-linux-input.c:61 +msgid "Button 3" +msgstr "3. düğme" + +#: ../modules/controller-linux-input.c:62 +msgid "Button 4" +msgstr "4. düğme" + +#: ../modules/controller-linux-input.c:63 +msgid "Button 5" +msgstr "5. düğme" + +#: ../modules/controller-linux-input.c:64 +msgid "Button 6" +msgstr "6. düğme" + +#: ../modules/controller-linux-input.c:65 +msgid "Button 7" +msgstr "7. düğme" + +#: ../modules/controller-linux-input.c:66 +msgid "Button 8" +msgstr "8. düğme" + +#: ../modules/controller-linux-input.c:67 +msgid "Button 9" +msgstr "9. düğme" + +#: ../modules/controller-linux-input.c:68 +msgid "Button Mouse" +msgstr "Düğme Faresi" + +#: ../modules/controller-linux-input.c:69 +msgid "Button Left" +msgstr "Sol Düğme" + +#: ../modules/controller-linux-input.c:70 +msgid "Button Right" +msgstr "Sağ Düğme" + +#: ../modules/controller-linux-input.c:71 +msgid "Button Middle" +msgstr "Orta Düğme" + +#: ../modules/controller-linux-input.c:72 +msgid "Button Side" +msgstr "Yan Düğme" + +#: ../modules/controller-linux-input.c:73 +msgid "Button Extra" +msgstr "Ek Düğme" + +#: ../modules/controller-linux-input.c:74 +msgid "Button Forward" +msgstr "İleri Düğme" + +#: ../modules/controller-linux-input.c:75 +msgid "Button Back" +msgstr "Geri Düğme" + +#: ../modules/controller-linux-input.c:76 +msgid "Button Task" +msgstr "Düğme Görevi" + +#: ../modules/controller-linux-input.c:78 +msgid "Button Wheel" +msgstr "Düğme Tekeri" + +#: ../modules/controller-linux-input.c:81 +msgid "Button Gear Down" +msgstr "Düşüren Düğme" + +#: ../modules/controller-linux-input.c:84 +msgid "Button Gear Up" +msgstr "Yükselten Düğme" + +#: ../modules/controller-linux-input.c:90 +#: ../modules/controller-dx-dinput.c:443 +msgid "X Move Left" +msgstr "X Sola Taşı" + +#: ../modules/controller-linux-input.c:91 +#: ../modules/controller-dx-dinput.c:446 +msgid "X Move Right" +msgstr "X Sağa Taşı" + +#: ../modules/controller-linux-input.c:92 +msgid "Y Move Forward" +msgstr "Y İleri Taşı" + +#: ../modules/controller-linux-input.c:93 +msgid "Y Move Back" +msgstr "Y Geri Taşı" + +#: ../modules/controller-linux-input.c:94 +#: ../modules/controller-dx-dinput.c:461 +msgid "Z Move Up" +msgstr "Z Yukarı Taşı" + +#: ../modules/controller-linux-input.c:95 +#: ../modules/controller-dx-dinput.c:464 +msgid "Z Move Down" +msgstr "Z Aşağı Taşı" + +#: ../modules/controller-linux-input.c:97 +msgid "X Axis Tilt Forward" +msgstr "X Ekseni İleri Eğ" + +#: ../modules/controller-linux-input.c:98 +msgid "X Axis Tilt Back" +msgstr "X Ekseni Geri Eğ" + +#: ../modules/controller-linux-input.c:99 +#: ../modules/controller-dx-dinput.c:479 +msgid "Y Axis Tilt Right" +msgstr "Y Ekseni Sağa Eğ" + +#: ../modules/controller-linux-input.c:100 +#: ../modules/controller-dx-dinput.c:482 +msgid "Y Axis Tilt Left" +msgstr "Y Ekseni Sola Eğ" + +#: ../modules/controller-linux-input.c:101 +#: ../modules/controller-dx-dinput.c:488 +msgid "Z Axis Turn Left" +msgstr "Z Ekseni Sola Dön" + +#: ../modules/controller-linux-input.c:102 +#: ../modules/controller-dx-dinput.c:491 +msgid "Z Axis Turn Right" +msgstr "Z Ekseni Sağa Dön" + +#: ../modules/controller-linux-input.c:104 +msgid "Horiz. Wheel Turn Back" +msgstr "Yatay, Tekerin Geri Dönüşü" + +#: ../modules/controller-linux-input.c:105 +msgid "Horiz. Wheel Turn Forward" +msgstr "Yatay, Tekerin İleri Dönüşü" + +#: ../modules/controller-linux-input.c:106 +msgid "Dial Turn Left" +msgstr "Sola Dönüş Çevrimi" + +#: ../modules/controller-linux-input.c:107 +msgid "Dial Turn Right" +msgstr "Sağa Dönüş Çevrimi" + +#: ../modules/controller-linux-input.c:108 +msgid "Wheel Turn Left" +msgstr "Tekerin Sola Dönüşü" + +#: ../modules/controller-linux-input.c:109 +msgid "Wheel Turn Right" +msgstr "Tekerin Sağa Dönüşü" + +#: ../modules/controller-linux-input.c:178 +msgid "Linux input event controller" +msgstr "Linux girdi olayı denetleyicsi" + +#: ../modules/controller-linux-input.c:218 +#: ../modules/controller-dx-dinput.c:196 ../modules/controller-midi.c:212 +msgid "Device:" +msgstr "Aygıt:" + +#: ../modules/controller-linux-input.c:219 +msgid "The name of the device to read Linux Input events from." +msgstr "Linux Girdisi olaylarının okunacağı aygıtın adı." + +#: ../modules/controller-linux-input.c:230 +msgid "Linux Input" +msgstr "Linux Girdisi" + +#: ../modules/controller-linux-input.c:513 +msgid "Linux Input Events" +msgstr "Linux Girdi Olayları" + +#: ../modules/controller-linux-input.c:525 +#: ../modules/controller-dx-dinput.c:1095 ../modules/controller-midi.c:505 +msgid "No device configured" +msgstr "Yapılandırılmış aygıt yok" + +#: ../modules/controller-linux-input.c:551 ../modules/controller-midi.c:454 +#: ../modules/controller-midi.c:480 +#, c-format +msgid "Reading from %s" +msgstr "Okunan: %s" + +#: ../modules/controller-linux-input.c:569 +#: ../modules/controller-linux-input.c:623 ../modules/controller-midi.c:436 +#: ../modules/controller-midi.c:497 ../modules/controller-midi.c:568 +#, c-format +msgid "Device not available: %s" +msgstr "Aygıt kullanılır değil: %s" + +#: ../modules/controller-linux-input.c:588 +#: ../modules/controller-dx-dinput.c:1120 +msgid "Device not available" +msgstr "Aygıt kullanılır değil" + +#: ../modules/controller-linux-input.c:632 ../modules/controller-midi.c:577 +msgid "End of file" +msgstr "Dosyanın sonu" + +#: ../modules/controller-dx-dinput.c:156 +msgid "DirectX DirectInput event controller" +msgstr "DirectX DirectInput olay denetleyicisi" + +#: ../modules/controller-dx-dinput.c:197 +msgid "The device to read DirectInput events from." +msgstr "DirectInput olaylarının okunacağı aygıt." + +#: ../modules/controller-dx-dinput.c:206 +msgid "DirectX DirectInput" +msgstr "DirectX DirectInput" + +#: ../modules/controller-dx-dinput.c:420 +#, c-format +msgid "Button %d" +msgstr "%d Düğmesi" + +#: ../modules/controller-dx-dinput.c:423 +#, c-format +msgid "Button %d Press" +msgstr "%d Düğmesine Bas" + +#: ../modules/controller-dx-dinput.c:426 +#, c-format +msgid "Button %d Release" +msgstr "%d Düğmesini Bırak" + +#: ../modules/controller-dx-dinput.c:452 +msgid "Y Move Away" +msgstr "Y Uzaklaştır" + +#: ../modules/controller-dx-dinput.c:455 +msgid "Y Move Near" +msgstr "Y Yaklaştır" + +#: ../modules/controller-dx-dinput.c:470 +msgid "X Axis Tilt Away" +msgstr "X Ekseni Uzağa Eğ" + +#: ../modules/controller-dx-dinput.c:473 +msgid "X Axis Tilt Near" +msgstr "X Ekseni Yakına Eğ" + +#: ../modules/controller-dx-dinput.c:502 +#, c-format +msgid "Slider %d Increase" +msgstr "%d Kaydırıcısını Yükselt" + +#: ../modules/controller-dx-dinput.c:505 +#, c-format +msgid "Slider %d Decrease" +msgstr "%d Kaydırıcısını Alçalt" + +#: ../modules/controller-dx-dinput.c:515 +#, c-format +msgid "POV %d X View" +msgstr "POV %d X Görünümü" + +#: ../modules/controller-dx-dinput.c:518 +#, c-format +msgid "POV %d Y View" +msgstr "POV %d Y Görünümü" + +#: ../modules/controller-dx-dinput.c:521 +#, c-format +msgid "POV %d Return" +msgstr "POV %d Döndü" + +#: ../modules/controller-dx-dinput.c:1084 +msgid "DirectInput Events" +msgstr "Doğrudan Giriş Olayları" + +#: ../modules/controller-midi.c:164 +msgid "MIDI event controller" +msgstr "MIDI olay denetleyicisi" + +#: ../modules/controller-midi.c:203 +msgid "The name of the device to read MIDI events from." +msgstr "MIDI olaylarının okunacağı aygıtın ismi." + +#: ../modules/controller-midi.c:206 +msgid "Enter 'alsa' to use the ALSA sequencer." +msgstr "ALSA ardışımlayıcısını kullanmak için 'alsa' yazın." + +#: ../modules/controller-midi.c:221 +msgid "Channel:" +msgstr "Kanal:" + +#: ../modules/controller-midi.c:222 +msgid "" +"The MIDI channel to read events from. Set to -1 for reading from all MIDI " +"channels." +msgstr "" +"Olayların okunacağı MIDI kanalı. Bütün MIDI kanallarından okumak için -1'e " +"ayarlayın." + +#: ../modules/controller-midi.c:226 +msgid "MIDI" +msgstr "MIDI" + +#: ../modules/controller-midi.c:355 +#, c-format +msgid "Note %02x on" +msgstr "Not %02x açık" + +#: ../modules/controller-midi.c:358 +#, c-format +msgid "Note %02x off" +msgstr "Not %02x kapalı" + +#: ../modules/controller-midi.c:361 +#, c-format +msgid "Controller %03d" +msgstr "Denetleyici %03d" + +#: ../modules/controller-midi.c:408 +msgid "MIDI Events" +msgstr "MIDI Olayları" + +#: ../modules/controller-midi.c:426 +msgid "GIMP" +msgstr "GIMP" + +#: ../modules/controller-midi.c:428 +msgid "GIMP MIDI Input Controller" +msgstr "GIMP MIDI Girdi Denetleyicisi" diff --git a/multimedia/graphics/gimp/gimp/files/po-plug-ins_gimp20-std-plug-ins-tr.po b/multimedia/graphics/gimp/gimp/files/po-plug-ins_gimp20-std-plug-ins-tr.po new file mode 100644 index 0000000000..d3d31d86cd --- /dev/null +++ b/multimedia/graphics/gimp/gimp/files/po-plug-ins_gimp20-std-plug-ins-tr.po @@ -0,0 +1,12498 @@ +# Copyright (C) 2001 Free Software Foundation, Inc. +# Fatih Demir +# +msgid "" +msgstr "" +"Project-Id-Version: GIMP 1.2.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-08 19:59+0000\n" +"PO-Revision-Date: 2011-01-22 12:51+0000\n" +"Last-Translator: Fatih Demir \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Launchpad-Export-Date: 2011-08-09 06:12+0000\n" +"X-Generator: Launchpad (build 13628)\n" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:119 +msgid "Original" +msgstr "Orijinal" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:137 +msgid "Rotated" +msgstr "Döndürülmüş" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:155 +msgid "Continuous update" +msgstr "Devam eden güncelleştirme" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:168 +msgid "Area:" +msgstr "Alan:" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:172 +msgid "Entire Layer" +msgstr "Tüm Katman" + +#. Create selection +#: ../plug-ins/color-rotate/color-rotate-dialog.c:173 +#: ../plug-ins/common/film.c:966 ../plug-ins/imagemap/imap_selection.c:367 +#: ../plug-ins/selection-to-path/selection-to-path.c:433 +msgid "Selection" +msgstr "Seçim" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:174 +msgid "Context" +msgstr "İçerik" + +#. spinbutton 1 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:299 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:377 +#: ../plug-ins/common/color-to-alpha.c:410 ../plug-ins/file-fli/fli-gimp.c:875 +#: ../plug-ins/file-fli/fli-gimp.c:945 +msgid "From:" +msgstr "Kimden:" + +#. spinbutton 2 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:325 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:378 +#: ../plug-ins/file-fli/fli-gimp.c:884 ../plug-ins/file-fli/fli-gimp.c:954 +msgid "To:" +msgstr "Kime:" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:419 +#: ../plug-ins/common/file-ps.c:3233 ../plug-ins/imagemap/imap_menu.c:214 +msgid "Gray" +msgstr "Gri" + +#. Gray: Circle: Spinbutton 1 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:467 +msgid "Hue:" +msgstr "Renk Tonu:" + +#. Gray: Circle: Spinbutton 2 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:494 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:556 +msgid "Saturation:" +msgstr "Doygunluk:" + +#. * Gray: Operation-Mode * +#: ../plug-ins/color-rotate/color-rotate-dialog.c:514 +msgid "Gray Mode" +msgstr "Gri Kip" + +#. Gray: Operation-Mode: two radio buttons +#: ../plug-ins/color-rotate/color-rotate-dialog.c:523 +msgid "Treat as this" +msgstr "Bunun gibi davran" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:535 +msgid "Change to this" +msgstr "Bununla değiştir" + +#. * Gray: What is gray? * +#: ../plug-ins/color-rotate/color-rotate-dialog.c:548 +msgid "Gray Threshold" +msgstr "Gri Eşik" + +#. * Misc: Used unit selection * +#: ../plug-ins/color-rotate/color-rotate-dialog.c:588 +#: ../plug-ins/color-rotate/color-rotate-dialog.c:698 +msgid "Units" +msgstr "Birimler" + +#. Misc: Used unit selection: 3 radio buttons +#: ../plug-ins/color-rotate/color-rotate-dialog.c:597 +msgid "Radians" +msgstr "Radyan" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:609 +msgid "Radians/Pi" +msgstr "Radyan/Pi" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:621 +msgid "Degrees" +msgstr "Derece" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:652 +msgid "Rotate Colors" +msgstr "Renkleri Çevir" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:692 +msgid "Main Options" +msgstr "Ana Seçenekler" + +#: ../plug-ins/color-rotate/color-rotate-dialog.c:695 +msgid "Gray Options" +msgstr "Gri Seçenekleri" + +#: ../plug-ins/color-rotate/color-rotate-stock.c:35 +msgid "Switch to Clockwise" +msgstr "Saat Yönünde Çevir" + +#: ../plug-ins/color-rotate/color-rotate-stock.c:37 +msgid "Switch to C/Clockwise" +msgstr "Saat Yönünün Tersinde Çevir" + +#: ../plug-ins/color-rotate/color-rotate-stock.c:39 +msgid "Change Order of Arrows" +msgstr "Okların Düzenini Değiştir" + +#: ../plug-ins/color-rotate/color-rotate-stock.c:41 +#: ../plug-ins/imagemap/imap_cmd_select_all.c:51 +msgid "Select All" +msgstr "Hepsini Seç" + +#: ../plug-ins/color-rotate/color-rotate.c:99 +msgid "Replace a range of colors with another" +msgstr "Renk değer kümesini bir başkasıyla değiştir" + +#: ../plug-ins/color-rotate/color-rotate.c:106 +msgid "_Rotate Colors..." +msgstr "_Renkleri Döndür..." + +#: ../plug-ins/color-rotate/color-rotate.c:140 +msgid "Rotating the colors" +msgstr "Renkler döndürülüyor" + +#: ../plug-ins/common/alien-map.c:140 +msgid "_Modify red channel" +msgstr "Kırmızı kanalı _değiştir" + +#: ../plug-ins/common/alien-map.c:140 +msgid "_Modify hue channel" +msgstr "Renk tonu kanalını _değiştir" + +#: ../plug-ins/common/alien-map.c:141 +msgid "Mo_dify green channel" +msgstr "Yeşil kanalı d_eğiştir" + +#: ../plug-ins/common/alien-map.c:141 +msgid "Mo_dify saturation channel" +msgstr "Doygunluk kanalını d_eğiştir" + +#: ../plug-ins/common/alien-map.c:142 +msgid "Mod_ify blue channel" +msgstr "Mavi kanalı değ_iştir" + +#: ../plug-ins/common/alien-map.c:142 +msgid "Mod_ify luminosity channel" +msgstr "Işıklılık kanalını _değiştir" + +#: ../plug-ins/common/alien-map.c:147 +msgid "Red _frequency:" +msgstr "Kırmızı _sıklığı:" + +#: ../plug-ins/common/alien-map.c:147 +msgid "Hue _frequency:" +msgstr "Renk tonu _sıklığı:" + +#: ../plug-ins/common/alien-map.c:148 +msgid "Green fr_equency:" +msgstr "Yeşil sı_klığı:" + +#: ../plug-ins/common/alien-map.c:148 +msgid "Saturation fr_equency:" +msgstr "Doygunluk sı_klığı:" + +#: ../plug-ins/common/alien-map.c:149 +msgid "Blue freq_uency:" +msgstr "Mavi sık_lığı:" + +#: ../plug-ins/common/alien-map.c:149 +msgid "Luminosity freq_uency:" +msgstr "Işıklılık sıklığı:" + +#: ../plug-ins/common/alien-map.c:151 +msgid "Red _phaseshift:" +msgstr "Kırmızı _evre ötesi:" + +#: ../plug-ins/common/alien-map.c:151 +msgid "Hue _phaseshift:" +msgstr "Renk tonu _faz kayması:" + +#: ../plug-ins/common/alien-map.c:152 +msgid "Green ph_aseshift:" +msgstr "Yeşil e_vre ötesi:" + +#: ../plug-ins/common/alien-map.c:152 +msgid "Saturation ph_aseshift:" +msgstr "Doygunluk _faz kayması:" + +#: ../plug-ins/common/alien-map.c:153 +msgid "Blue pha_seshift:" +msgstr "Mavi ev_re ötesi:" + +#: ../plug-ins/common/alien-map.c:153 +msgid "Luminosity pha_seshift:" +msgstr "Işıklılık _faz kayması:" + +#: ../plug-ins/common/alien-map.c:183 +msgid "Alter colors in various psychedelic ways" +msgstr "Çeşitli rengarenk yollarla renkleri değiştir" + +#: ../plug-ins/common/alien-map.c:188 +msgid "_Alien Map..." +msgstr "_Yabancı Harita..." + +#: ../plug-ins/common/alien-map.c:320 +msgid "Alien Map: Transforming" +msgstr "Yabancı Harita: Dönüştürülüyor" + +#: ../plug-ins/common/alien-map.c:393 +msgid "Alien Map" +msgstr "Yabancı Harita" + +#: ../plug-ins/common/alien-map.c:441 ../plug-ins/common/alien-map.c:465 +#: ../plug-ins/common/alien-map.c:489 +msgid "Number of cycles covering full value range" +msgstr "Tüm değer erimini kapsayan dönüş sayısı" + +#: ../plug-ins/common/alien-map.c:453 ../plug-ins/common/alien-map.c:477 +#: ../plug-ins/common/alien-map.c:501 +msgid "Phase angle, range 0-360" +msgstr "Faz açısı, açı 0-360" + +#. Propagate Mode +#: ../plug-ins/common/alien-map.c:515 ../plug-ins/common/hot.c:611 +#: ../plug-ins/common/value-propagate.c:1120 ../plug-ins/common/waves.c:277 +msgid "Mode" +msgstr "Mod" + +#: ../plug-ins/common/alien-map.c:519 +msgid "_RGB color model" +msgstr "_RGB renk örneği" + +#: ../plug-ins/common/alien-map.c:520 +msgid "_HSL color model" +msgstr "_HSL renk örneği" + +#: ../plug-ins/common/align-layers.c:128 +msgid "Align all visible layers of the image" +msgstr "Tüm görünen katmanları görüntüye hizala" + +#: ../plug-ins/common/align-layers.c:133 +msgid "Align Visi_ble Layers..." +msgstr "Görünür Katmanları Hizala..." + +#: ../plug-ins/common/align-layers.c:173 +msgid "There are not enough layers to align." +msgstr "Hizalamak için yeterli katman yok." + +#: ../plug-ins/common/align-layers.c:400 +msgid "Align Visible Layers" +msgstr "Görünür Katmanları Hizala" + +#. if and how to center the image on the page +#: ../plug-ins/common/align-layers.c:424 ../plug-ins/common/align-layers.c:455 +#: ../plug-ins/common/cml-explorer.c:166 ../plug-ins/common/file-ps.c:3249 +#: ../plug-ins/common/file-ps.c:3261 ../plug-ins/common/file-psp.c:661 +#: ../plug-ins/file-fits/fits.c:1045 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:999 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1040 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1081 +#: ../plug-ins/lighting/lighting-ui.c:416 +#: ../plug-ins/print/print-page-layout.c:449 +msgid "None" +msgstr "Yok" + +#: ../plug-ins/common/align-layers.c:425 ../plug-ins/common/align-layers.c:456 +msgid "Collect" +msgstr "Topla" + +#: ../plug-ins/common/align-layers.c:426 +msgid "Fill (left to right)" +msgstr "Doldur (soldan sağa)" + +#: ../plug-ins/common/align-layers.c:427 +msgid "Fill (right to left)" +msgstr "Doldur (sağdan sola)" + +#: ../plug-ins/common/align-layers.c:428 ../plug-ins/common/align-layers.c:459 +msgid "Snap to grid" +msgstr "Izgaraya uydur" + +#: ../plug-ins/common/align-layers.c:437 +msgid "_Horizontal style:" +msgstr "_Yatay biçem:" + +#: ../plug-ins/common/align-layers.c:441 +msgid "Left edge" +msgstr "Sol Kenar" + +#: ../plug-ins/common/align-layers.c:442 ../plug-ins/common/align-layers.c:472 +#: ../plug-ins/gradient-flare/gradient-flare.c:2713 +msgid "Center" +msgstr "Merkez" + +#: ../plug-ins/common/align-layers.c:443 +msgid "Right edge" +msgstr "Sağ Kenar" + +#: ../plug-ins/common/align-layers.c:452 +msgid "Ho_rizontal base:" +msgstr "Ya_tay taban:" + +#: ../plug-ins/common/align-layers.c:457 +msgid "Fill (top to bottom)" +msgstr "Doldur (yukarıdan aşağıya)" + +#: ../plug-ins/common/align-layers.c:458 +msgid "Fill (bottom to top)" +msgstr "Doldur (aşağıdan yukarıya)" + +#: ../plug-ins/common/align-layers.c:468 +msgid "_Vertical style:" +msgstr "_Dikey biçem:" + +#: ../plug-ins/common/align-layers.c:471 +msgid "Top edge" +msgstr "Üst Kenar" + +#: ../plug-ins/common/align-layers.c:473 +msgid "Bottom edge" +msgstr "Alt Kenar" + +#: ../plug-ins/common/align-layers.c:482 +msgid "Ver_tical base:" +msgstr "Di_key taban:" + +#: ../plug-ins/common/align-layers.c:486 +msgid "_Grid size:" +msgstr "_Grid boyutu:" + +#: ../plug-ins/common/align-layers.c:495 +msgid "_Ignore the bottom layer even if visible" +msgstr "Görünür olsa bile alt katmanı _yoksay" + +#: ../plug-ins/common/align-layers.c:505 +msgid "_Use the (invisible) bottom layer as the base" +msgstr "(Görünmeyen) alt katmanı taban olarak _kullan" + +#: ../plug-ins/common/animation-optimize.c:133 +msgid "Modify image to reduce size when saved as GIF animation" +msgstr "" +"Görüntüyü GIF animasyonu olarak kaydedildiğinde boyutunu azaltacak şekilde " +"değiştir." + +#: ../plug-ins/common/animation-optimize.c:145 +msgid "Optimize (for _GIF)" +msgstr "Optimize (for _GIF)" + +#: ../plug-ins/common/animation-optimize.c:153 +msgid "Reduce file size where combining layers is possible" +msgstr "Mümkünse katmanlar birleştirilirken dosya boyutunu düşür" + +#: ../plug-ins/common/animation-optimize.c:163 +msgid "_Optimize (Difference)" +msgstr "_İyileştir (Farklılık)" + +#: ../plug-ins/common/animation-optimize.c:171 +msgid "Remove optimization to make editing easier" +msgstr "Düzenlemenin daha kolay olması için iyileştirmeyi kaldır" + +#: ../plug-ins/common/animation-optimize.c:178 +msgid "_Unoptimize" +msgstr "_Unoptimize" + +#: ../plug-ins/common/animation-optimize.c:198 +msgid "_Remove Backdrop" +msgstr "Zemini _Kaldır" + +#: ../plug-ins/common/animation-optimize.c:214 +msgid "_Find Backdrop" +msgstr "Zemin _Bul" + +#: ../plug-ins/common/animation-optimize.c:427 +msgid "Unoptimizing animation" +msgstr "Animasyon iyileştirmesi geri alınıyor" + +#: ../plug-ins/common/animation-optimize.c:430 +msgid "Removing animation background" +msgstr "Animasyon artalanı kaldırılıyor" + +#: ../plug-ins/common/animation-optimize.c:433 +msgid "Finding animation background" +msgstr "Animasyon artalanı bulunuyor" + +#: ../plug-ins/common/animation-optimize.c:437 +msgid "Optimizing animation" +msgstr "Animasyon İyileştiriliyor" + +#: ../plug-ins/common/animation-play.c:163 +msgid "Preview a GIMP layer-based animation" +msgstr "Bir GIMP katman-tabanlı animasyonun önizlemesi" + +#: ../plug-ins/common/animation-play.c:168 +msgid "_Playback..." +msgstr "_Oynat..." + +#: ../plug-ins/common/animation-play.c:447 +msgid "_Step" +msgstr "_Adım" + +#: ../plug-ins/common/animation-play.c:447 +msgid "Step to next frame" +msgstr "Sonraki çerçeveye atla" + +#: ../plug-ins/common/animation-play.c:451 +msgid "Rewind the animation" +msgstr "Canlandırmayı geri sar" + +#: ../plug-ins/common/animation-play.c:469 +msgid "Faster" +msgstr "Daha Hızlı" + +#: ../plug-ins/common/animation-play.c:469 +msgid "Increase the speed of the animation" +msgstr "Canlandırmanın hızını arttır" + +#: ../plug-ins/common/animation-play.c:474 +msgid "Slower" +msgstr "Daha Yavaş" + +#: ../plug-ins/common/animation-play.c:474 +msgid "Decrease the speed of the animation" +msgstr "Canlandırmanın hızını düşür" + +#: ../plug-ins/common/animation-play.c:479 +msgid "Reset speed" +msgstr "Hızı sıfırla" + +#: ../plug-ins/common/animation-play.c:479 +msgid "Reset the speed of the animation" +msgstr "Animasyon hızını sıfırla" + +#: ../plug-ins/common/animation-play.c:487 +#: ../plug-ins/common/animation-play.c:1446 +msgid "Start playback" +msgstr "Oynatmaya başla" + +#: ../plug-ins/common/animation-play.c:491 +msgid "Detach" +msgstr "Ayır" + +#: ../plug-ins/common/animation-play.c:492 +msgid "Detach the animation from the dialog window" +msgstr "Canlandırmayı iletişim penceresinden ayır" + +#: ../plug-ins/common/animation-play.c:584 +msgid "Animation Playback:" +msgstr "Canlandırmayı Oynat:" + +#: ../plug-ins/common/animation-play.c:663 +msgid "Playback speed" +msgstr "Oynatma hızı" + +#: ../plug-ins/common/animation-play.c:803 +msgid "Tried to display an invalid layer." +msgstr "Geçersiz bir katman gösterilmeye çalışıldı." + +#: ../plug-ins/common/animation-play.c:1323 +#, c-format +msgid "Frame %d of %d" +msgstr "Çerçeve %d / %d" + +#: ../plug-ins/common/animation-play.c:1446 +msgid "Stop playback" +msgstr "Oynatmayı durdur" + +#: ../plug-ins/common/antialias.c:84 +msgid "Antialias using the Scale3X edge-extrapolation algorithm" +msgstr "" +"Scale3X edge-extrapolation algoritmasını kullanırken keskinlik yumuşat" + +#: ../plug-ins/common/antialias.c:90 +msgid "_Antialias" +msgstr "_Keskinliği yumuşatma" + +#: ../plug-ins/common/antialias.c:149 +msgid "Antialiasing..." +msgstr "Keskinliği yumuşatma..." + +#: ../plug-ins/common/apply-canvas.c:1140 +msgid "Add a canvas texture to the image" +msgstr "Görüntüye bir tuval dokusu ekle" + +#: ../plug-ins/common/apply-canvas.c:1145 +msgid "_Apply Canvas..." +msgstr "Tuvali _Uygula..." + +#: ../plug-ins/common/apply-canvas.c:1226 +msgid "Applying canvas" +msgstr "Tuval uygulanıyor" + +#: ../plug-ins/common/apply-canvas.c:1263 +msgid "Apply Canvas" +msgstr "Tuvali Uygula" + +#. ***************************************************** +#. radio buttons for choosing LEFT or RIGHT +#. ************************************************* +#: ../plug-ins/common/apply-canvas.c:1292 ../plug-ins/common/wind.c:945 +#: ../plug-ins/lighting/lighting-ui.c:518 +msgid "Direction" +msgstr "Yön" + +#: ../plug-ins/common/apply-canvas.c:1296 +msgid "_Top-right" +msgstr "_Üst-Sağ" + +#: ../plug-ins/common/apply-canvas.c:1297 +msgid "Top-_left" +msgstr "Üst-_Sol" + +#: ../plug-ins/common/apply-canvas.c:1298 +msgid "_Bottom-left" +msgstr "_Alt-Sol" + +#: ../plug-ins/common/apply-canvas.c:1299 +msgid "Bottom-_right" +msgstr "Alt-_Sağ" + +#: ../plug-ins/common/apply-canvas.c:1324 ../plug-ins/common/bump-map.c:916 +#: ../plug-ins/common/emboss.c:523 ../plug-ins/common/fractal-trace.c:796 +#: ../plug-ins/map-object/map-object-ui.c:573 +msgid "_Depth:" +msgstr "_Derinlik:" + +#: ../plug-ins/common/blinds.c:116 +msgid "Simulate an image painted on window blinds" +msgstr "Görüntüyü pencere gölgelerindeki boyalı kısma benzet" + +#: ../plug-ins/common/blinds.c:121 +msgid "_Blinds..." +msgstr "_Kesitler..." + +#: ../plug-ins/common/blinds.c:188 +msgid "Adding blinds" +msgstr "Kesitler ekleniyor" + +#: ../plug-ins/common/blinds.c:226 +msgid "Blinds" +msgstr "Kesitler" + +#. Orientation toggle box +#: ../plug-ins/common/blinds.c:260 ../plug-ins/common/ripple.c:539 +msgid "Orientation" +msgstr "Konum" + +#: ../plug-ins/common/blinds.c:264 ../plug-ins/common/ripple.c:543 +#: ../plug-ins/common/tile-small.c:426 ../plug-ins/pagecurl/pagecurl.c:534 +msgid "_Horizontal" +msgstr "_Yatay" + +#: ../plug-ins/common/blinds.c:265 ../plug-ins/common/ripple.c:544 +#: ../plug-ins/common/tile-small.c:436 ../plug-ins/pagecurl/pagecurl.c:533 +msgid "_Vertical" +msgstr "_Dikey" + +#. +#. * Create the "background" layer to hold the image... +#. +#: ../plug-ins/common/blinds.c:278 ../plug-ins/common/compose.c:935 +#: ../plug-ins/common/decompose.c:723 ../plug-ins/common/file-cel.c:362 +#: ../plug-ins/common/file-cel.c:365 ../plug-ins/common/file-dicom.c:557 +#: ../plug-ins/common/file-gif-load.c:911 ../plug-ins/common/file-pcx.c:419 +#: ../plug-ins/common/file-pcx.c:425 ../plug-ins/common/file-pix.c:382 +#: ../plug-ins/common/file-png.c:852 ../plug-ins/common/file-pnm.c:585 +#: ../plug-ins/common/file-raw.c:714 ../plug-ins/common/file-sunras.c:975 +#: ../plug-ins/common/file-tga.c:1064 ../plug-ins/common/file-tiff-load.c:997 +#: ../plug-ins/common/file-xbm.c:896 ../plug-ins/common/film.c:746 +#: ../plug-ins/common/smooth-palette.c:257 ../plug-ins/common/tile.c:267 +#: ../plug-ins/file-bmp/bmp-read.c:382 ../plug-ins/file-bmp/bmp-read.c:649 +#: ../plug-ins/file-faxg3/faxg3.c:478 ../plug-ins/file-fits/fits.c:530 +#: ../plug-ins/file-jpeg/jpeg-load.c:249 ../plug-ins/file-jpeg/jpeg-load.c:761 +#: ../plug-ins/file-psd/psd-image-res-load.c:995 +#: ../plug-ins/file-psd/psd-load.c:1575 ../plug-ins/file-sgi/sgi.c:405 +#: ../plug-ins/gfig/gfig-dialog.c:1284 +#: ../plug-ins/gimpressionist/general.c:140 ../plug-ins/twain/twain.c:568 +#: ../plug-ins/win-snap/winsnap.c:1155 +msgid "Background" +msgstr "Arkaplan" + +#: ../plug-ins/common/blinds.c:282 ../plug-ins/common/fractal-trace.c:738 +#: ../plug-ins/common/tile-paper.c:384 +msgid "_Transparent" +msgstr "Şeff_af" + +#: ../plug-ins/common/blinds.c:308 +msgid "_Displacement:" +msgstr "_Yer Değiştirme:" + +#: ../plug-ins/common/blinds.c:320 +msgid "_Number of segments:" +msgstr "Kesimlerin _sayısı:" + +#: ../plug-ins/common/blur-gauss-selective.c:104 +msgid "Blur neighboring pixels, but only in low-contrast areas" +msgstr "" +"Komşu benekleri bulanıklaştır ancak sadece düşük karşıtlık bölgelerinde" + +#: ../plug-ins/common/blur-gauss-selective.c:115 +msgid "_Selective Gaussian Blur..." +msgstr "_Seçmeli Gaussian Bulanıklığı..." + +#: ../plug-ins/common/blur-gauss-selective.c:195 +#: ../plug-ins/common/blur-gauss-selective.c:232 +msgid "Selective Gaussian Blur" +msgstr "Seçmeli Gaussian Bulanıklığı" + +#: ../plug-ins/common/blur-gauss-selective.c:211 +#: ../plug-ins/common/blur-gauss.c:448 ../plug-ins/common/cartoon.c:232 +#: ../plug-ins/common/edge-dog.c:269 ../plug-ins/common/edge-neon.c:228 +#: ../plug-ins/common/edge-sobel.c:212 ../plug-ins/common/photocopy.c:244 +#: ../plug-ins/common/pixelize.c:293 ../plug-ins/common/softglow.c:224 +#: ../plug-ins/file-sgi/sgi.c:556 ../plug-ins/file-xjt/xjt.c:1701 +#: ../plug-ins/gradient-flare/gradient-flare.c:966 +msgid "Cannot operate on indexed color images." +msgstr "Sıralanmış renkli görüntüler üzerinde çalışılamıyor" + +#: ../plug-ins/common/blur-gauss-selective.c:271 +msgid "_Blur radius:" +msgstr "_Bulanıklık yarıçapı:" + +#: ../plug-ins/common/blur-gauss-selective.c:281 +msgid "_Max. delta:" +msgstr "_En büyük delta:" + +#: ../plug-ins/common/blur-gauss.c:159 +msgid "Simplest, most commonly used way of blurring" +msgstr "Bulanıklaştırmanın en basit, en yaygın kullanılan yolu" + +#: ../plug-ins/common/blur-gauss.c:172 +msgid "_Gaussian Blur..." +msgstr "_Gaussian Bulanıklığı..." + +#: ../plug-ins/common/blur-gauss.c:179 ../plug-ins/common/blur-gauss.c:199 +#: ../plug-ins/common/blur-gauss.c:219 ../plug-ins/common/blur-gauss.c:239 +msgid "Apply a gaussian blur" +msgstr "Bir gaussian bulanıklığı uygula" + +#: ../plug-ins/common/blur-gauss.c:428 ../plug-ins/common/blur-gauss.c:478 +msgid "Gaussian Blur" +msgstr "Gaussian Bulanıklığı" + +#. parameter settings +#: ../plug-ins/common/blur-gauss.c:508 +msgid "Blur Radius" +msgstr "Bulanıklık Yarıçapı" + +#: ../plug-ins/common/blur-gauss.c:522 ../plug-ins/common/jigsaw.c:2457 +#: ../plug-ins/common/noise-spread.c:386 +msgid "_Horizontal:" +msgstr "_Yatay:" + +#: ../plug-ins/common/blur-gauss.c:526 ../plug-ins/common/jigsaw.c:2474 +#: ../plug-ins/common/noise-spread.c:390 +msgid "_Vertical:" +msgstr "_Dikey:" + +#: ../plug-ins/common/blur-gauss.c:549 +msgid "Blur Method" +msgstr "Bulanıklık Yöntemi" + +#: ../plug-ins/common/blur-gauss.c:553 +msgid "_IIR" +msgstr "_IIR" + +#: ../plug-ins/common/blur-gauss.c:554 +msgid "_RLE" +msgstr "_RLE" + +#: ../plug-ins/common/blur-motion.c:157 ../plug-ins/common/blur-motion.c:171 +msgid "Simulate movement using directional blur" +msgstr "Yönlü bulanıklaştırma kullanarak hareket benzetimi yap" + +#: ../plug-ins/common/blur-motion.c:164 ../plug-ins/common/blur-motion.c:177 +msgid "_Motion Blur..." +msgstr "_Hareketli Bulanıklaştır..." + +#: ../plug-ins/common/blur-motion.c:910 +msgid "Motion blurring" +msgstr "Hareketli bulanıklaştırma" + +#: ../plug-ins/common/blur-motion.c:1012 +msgid "Motion Blur" +msgstr "Hareketli Bulanıklaştır" + +#: ../plug-ins/common/blur-motion.c:1045 +msgid "Blur Type" +msgstr "Bulanıklaştırma Türü" + +#: ../plug-ins/common/blur-motion.c:1049 +msgctxt "blur-type" +msgid "_Linear" +msgstr "_Doğrusal" + +#: ../plug-ins/common/blur-motion.c:1050 +msgctxt "blur-type" +msgid "_Radial" +msgstr "_Işınsal" + +#: ../plug-ins/common/blur-motion.c:1051 +msgctxt "blur-type" +msgid "_Zoom" +msgstr "_Yakınlaştır" + +#: ../plug-ins/common/blur-motion.c:1058 +msgid "Blur Center" +msgstr "Bulanıklaştırma Merkezi" + +#: ../plug-ins/common/blur-motion.c:1094 ../plug-ins/common/lens-flare.c:772 +#: ../plug-ins/common/nova.c:463 ../plug-ins/common/tile-paper.c:282 +#: ../plug-ins/flame/flame.c:1251 +#: ../plug-ins/gradient-flare/gradient-flare.c:2725 +#: ../plug-ins/lighting/lighting-ui.c:477 +msgid "_X:" +msgstr "_X:" + +#: ../plug-ins/common/blur-motion.c:1099 ../plug-ins/common/lens-flare.c:777 +#: ../plug-ins/common/nova.c:468 ../plug-ins/common/tile-paper.c:291 +#: ../plug-ins/flame/flame.c:1265 +#: ../plug-ins/gradient-flare/gradient-flare.c:2729 +#: ../plug-ins/lighting/lighting-ui.c:492 +msgid "_Y:" +msgstr "_Y:" + +#: ../plug-ins/common/blur-motion.c:1101 +msgid "Blur _outward" +msgstr "_Dışa doğru bulanıklaştır" + +#: ../plug-ins/common/blur-motion.c:1114 +msgid "Blur Parameters" +msgstr "Bulanıklaştırma Parametreleri" + +#: ../plug-ins/common/blur-motion.c:1125 +#: ../plug-ins/map-object/map-object-ui.c:1252 +msgid "L_ength:" +msgstr "_Uzunluk:" + +#: ../plug-ins/common/blur-motion.c:1138 ../plug-ins/common/newsprint.c:1001 +msgid "_Angle:" +msgstr "_Açı:" + +#: ../plug-ins/common/blur.c:125 +msgid "Simple blur, fast but not very strong" +msgstr "Basit bulanıklaştır, hızlı ama pek güçlü değil" + +#: ../plug-ins/common/blur.c:134 +msgid "_Blur" +msgstr "B_ulanıklaştır" + +#: ../plug-ins/common/blur.c:178 ../plug-ins/common/unsharp-mask.c:439 +msgid "Blurring" +msgstr "Bulanıklaştırma" + +#: ../plug-ins/common/border-average.c:99 +msgid "Set foreground to the average color of the image border" +msgstr "Önalanı görüntü sınırının ortalama rengi olarak ayarla" + +#: ../plug-ins/common/border-average.c:104 +msgid "_Border Average..." +msgstr "_Sınır Ortalaması..." + +#: ../plug-ins/common/border-average.c:171 +msgid "Border Average" +msgstr "Sınır Ortalaması" + +#: ../plug-ins/common/border-average.c:351 +msgid "Borderaverage" +msgstr "Sınırortalaması" + +#: ../plug-ins/common/border-average.c:372 +msgid "Border Size" +msgstr "Sınır Boyutu" + +#: ../plug-ins/common/border-average.c:380 +msgid "_Thickness:" +msgstr "_Kalınlık:" + +#. Number of Colors frame +#: ../plug-ins/common/border-average.c:415 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:908 +msgid "Number of Colors" +msgstr "Renk Sayısı" + +#: ../plug-ins/common/border-average.c:423 +msgid "_Bucket size:" +msgstr "_Kova boyutu:" + +#: ../plug-ins/common/bump-map.c:257 +msgid "Create an embossing effect using a bump map" +msgstr "Derinlik etkisini kullanarak kabartma etkisi oluştur" + +#: ../plug-ins/common/bump-map.c:267 +msgid "_Bump Map..." +msgstr "_Derinlik Etkisi..." + +#: ../plug-ins/common/bump-map.c:415 +msgid "Bump-mapping" +msgstr "Derinlik eşleme" + +#: ../plug-ins/common/bump-map.c:766 +msgid "Bump Map" +msgstr "Derinlik Etkisi" + +#: ../plug-ins/common/bump-map.c:832 +msgid "_Bump map:" +msgstr "_Derinlik etkisi:" + +#. Map type menu +#: ../plug-ins/common/bump-map.c:835 ../plug-ins/flame/flame.c:748 +#: ../plug-ins/lighting/lighting-ui.c:842 +msgid "Linear" +msgstr "Doğrusal" + +#: ../plug-ins/common/bump-map.c:836 ../plug-ins/flame/flame.c:750 +#: ../plug-ins/lighting/lighting-ui.c:845 +msgid "Spherical" +msgstr "Küresel" + +#: ../plug-ins/common/bump-map.c:837 ../plug-ins/flame/flame.c:749 +#: ../plug-ins/lighting/lighting-ui.c:844 +msgid "Sinusoidal" +msgstr "Sinüssel" + +#: ../plug-ins/common/bump-map.c:844 +msgid "_Map type:" +msgstr "_Eşlem türü:" + +#. Compensate darkening +#: ../plug-ins/common/bump-map.c:849 +msgid "Co_mpensate for darkening" +msgstr "Koyulaştırma için de_ngele" + +#. Invert bumpmap +#: ../plug-ins/common/bump-map.c:863 +msgid "I_nvert bumpmap" +msgstr "Derinlik etkisini t_ersine çevir" + +#. Tile bumpmap +#: ../plug-ins/common/bump-map.c:877 +msgid "_Tile bumpmap" +msgstr "Derinlik etkisini d_öşe" + +#: ../plug-ins/common/bump-map.c:892 ../plug-ins/common/emboss.c:499 +msgid "_Azimuth:" +msgstr "_İstikamet açısı:" + +#: ../plug-ins/common/bump-map.c:904 +msgid "_Elevation:" +msgstr "_Rakım:" + +#: ../plug-ins/common/bump-map.c:930 ../plug-ins/common/file-ps.c:3400 +msgid "_X offset:" +msgstr "_X konumu:" + +#: ../plug-ins/common/bump-map.c:933 ../plug-ins/common/bump-map.c:947 +msgid "" +"The offset can be adjusted by dragging the preview using the middle mouse " +"button." +msgstr "" +"Göreli konum, orta fare tuşuyla önizlemeyi sürükleyerek ayarlanabilir." + +#: ../plug-ins/common/bump-map.c:944 ../plug-ins/common/file-ps.c:3409 +msgid "_Y offset:" +msgstr "_Y konumu:" + +#: ../plug-ins/common/bump-map.c:958 +msgid "_Waterlevel:" +msgstr "_Denizseviyesi:" + +#: ../plug-ins/common/bump-map.c:970 +msgid "A_mbient:" +msgstr "Ç_evresel" + +#: ../plug-ins/common/cartoon.c:142 +msgid "Simulate a cartoon by enhancing edges" +msgstr "Kenarları geliştirerek karikatüre benzet" + +#: ../plug-ins/common/cartoon.c:147 +msgid "Ca_rtoon..." +msgstr "Karikatür..." + +#: ../plug-ins/common/cartoon.c:811 +msgid "Cartoon" +msgstr "Karikatür" + +#: ../plug-ins/common/cartoon.c:848 ../plug-ins/common/photocopy.c:876 +msgid "_Mask radius:" +msgstr "_Maske yarıçapı:" + +#: ../plug-ins/common/cartoon.c:862 +msgid "_Percent black:" +msgstr "_Siyah yüzdesi:" + +#: ../plug-ins/common/channel-mixer.c:175 +msgid "Alter colors by mixing RGB Channels" +msgstr "RGB Kanallarını karıştırarak renkleri değiştir" + +#: ../plug-ins/common/channel-mixer.c:180 +msgid "Channel Mi_xer..." +msgstr "Kanal Ka_rıştırıcı..." + +#. printf("Channel Mixer:: Mode:%d r %f g %f b %f\n ", +#. param[3].data.d_int32, mix.black.red_gain, +#. mix.black.green_gain, mix.black.blue_gain); +#: ../plug-ins/common/channel-mixer.c:271 +#: ../plug-ins/common/channel-mixer.c:492 +msgid "Channel Mixer" +msgstr "Kanal Karıştırıcı" + +#: ../plug-ins/common/channel-mixer.c:529 +msgid "O_utput channel:" +msgstr "Ç_ıktı kanalı:" + +#. Redmode radio frame +#: ../plug-ins/common/channel-mixer.c:538 ../plug-ins/common/decompose.c:174 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:991 +msgid "Red" +msgstr "Kırmızı" + +#. Greenmode radio frame +#: ../plug-ins/common/channel-mixer.c:543 ../plug-ins/common/decompose.c:175 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1032 +msgid "Green" +msgstr "Yeşil" + +#. Bluemode radio frame +#: ../plug-ins/common/channel-mixer.c:548 ../plug-ins/common/decompose.c:176 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1073 +msgid "Blue" +msgstr "Mavi" + +#: ../plug-ins/common/channel-mixer.c:583 +#: ../plug-ins/common/color-exchange.c:398 ../plug-ins/common/compose.c:190 +#: ../plug-ins/common/compose.c:201 ../plug-ins/common/diffraction.c:501 +#: ../plug-ins/common/diffraction.c:539 ../plug-ins/common/diffraction.c:577 +#: ../plug-ins/common/noise-rgb.c:530 ../plug-ins/common/noise-rgb.c:537 +msgid "_Red:" +msgstr "K_ırmızı:" + +#: ../plug-ins/common/channel-mixer.c:601 +#: ../plug-ins/common/color-exchange.c:458 ../plug-ins/common/compose.c:191 +#: ../plug-ins/common/compose.c:202 ../plug-ins/common/diffraction.c:510 +#: ../plug-ins/common/diffraction.c:548 ../plug-ins/common/diffraction.c:586 +#: ../plug-ins/common/noise-rgb.c:531 ../plug-ins/common/noise-rgb.c:538 +msgid "_Green:" +msgstr "_Yeşil:" + +#: ../plug-ins/common/channel-mixer.c:620 +#: ../plug-ins/common/color-exchange.c:519 ../plug-ins/common/compose.c:192 +#: ../plug-ins/common/compose.c:203 ../plug-ins/common/diffraction.c:519 +#: ../plug-ins/common/diffraction.c:557 ../plug-ins/common/diffraction.c:595 +#: ../plug-ins/common/noise-rgb.c:532 ../plug-ins/common/noise-rgb.c:539 +msgid "_Blue:" +msgstr "_Mavi:" + +#: ../plug-ins/common/channel-mixer.c:636 +msgid "_Monochrome" +msgstr "_Tekrenkli" + +#: ../plug-ins/common/channel-mixer.c:649 +msgid "Preserve _luminosity" +msgstr "Işıklılığı _koru" + +#: ../plug-ins/common/channel-mixer.c:878 +msgid "Load Channel Mixer Settings" +msgstr "Kanal Karıştırıcı Ayarlarını Yükle" + +#. stat error (file does not exist) +#: ../plug-ins/common/channel-mixer.c:982 +#: ../plug-ins/common/cml-explorer.c:2178 ../plug-ins/common/curve-bend.c:885 +#: ../plug-ins/common/file-cel.c:312 ../plug-ins/common/file-compressor.c:498 +#: ../plug-ins/common/file-compressor.c:666 +#: ../plug-ins/common/file-dicom.c:325 ../plug-ins/common/file-gbr.c:361 +#: ../plug-ins/common/file-gif-load.c:340 ../plug-ins/common/file-gih.c:662 +#: ../plug-ins/common/file-mng.c:1108 ../plug-ins/common/file-pat.c:330 +#: ../plug-ins/common/file-pcx.c:361 ../plug-ins/common/file-pdf.c:541 +#: ../plug-ins/common/file-pix.c:343 ../plug-ins/common/file-png.c:721 +#: ../plug-ins/common/file-pnm.c:494 ../plug-ins/common/file-ps.c:1036 +#: ../plug-ins/common/file-ps.c:3050 ../plug-ins/common/file-psp.c:1755 +#: ../plug-ins/common/file-raw.c:251 ../plug-ins/common/file-raw.c:668 +#: ../plug-ins/common/file-sunras.c:391 ../plug-ins/common/file-svg.c:333 +#: ../plug-ins/common/file-svg.c:731 ../plug-ins/common/file-tga.c:442 +#: ../plug-ins/common/file-tiff-load.c:291 ../plug-ins/common/file-xbm.c:736 +#: ../plug-ins/common/file-xwd.c:433 ../plug-ins/common/sphere-designer.c:2003 +#: ../plug-ins/file-bmp/bmp-read.c:156 ../plug-ins/file-faxg3/faxg3.c:233 +#: ../plug-ins/file-fits/fits.c:358 ../plug-ins/file-fli/fli-gimp.c:460 +#: ../plug-ins/file-fli/fli-gimp.c:497 ../plug-ins/file-ico/ico-load.c:661 +#: ../plug-ins/file-ico/ico-load.c:740 ../plug-ins/file-jpeg/jpeg-load.c:109 +#: ../plug-ins/file-jpeg/jpeg-load.c:831 ../plug-ins/file-psd/psd-load.c:131 +#: ../plug-ins/file-psd/psd-thumb-load.c:80 +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:272 +#: ../plug-ins/file-uri/uri-backend-libcurl.c:190 +#: ../plug-ins/file-xjt/xjt.c:2560 ../plug-ins/file-xjt/xjt.c:2568 +#: ../plug-ins/flame/flame.c:412 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1863 +#: ../plug-ins/fractal-explorer/fractal-explorer.c:929 +#: ../plug-ins/gfig/gfig.c:434 ../plug-ins/help/gimphelplocale.c:223 +#: ../plug-ins/help/gimphelplocale.c:239 +#: ../plug-ins/lighting/lighting-ui.c:1355 +#, c-format +msgid "Could not open '%s' for reading: %s" +msgstr "'%s' dosyası okumak için açılamadı: %s" + +#: ../plug-ins/common/channel-mixer.c:1005 +msgid "Save Channel Mixer Settings" +msgstr "Kanal Karıştırıcı Ayarlarını Kaydet" + +#: ../plug-ins/common/channel-mixer.c:1060 +#: ../plug-ins/common/cml-explorer.c:2005 ../plug-ins/common/curve-bend.c:833 +#: ../plug-ins/common/file-cel.c:583 ../plug-ins/common/file-compressor.c:426 +#: ../plug-ins/common/file-compressor.c:508 +#: ../plug-ins/common/file-compressor.c:590 +#: ../plug-ins/common/file-compressor.c:677 +#: ../plug-ins/common/file-csource.c:406 ../plug-ins/common/file-dicom.c:801 +#: ../plug-ins/common/file-gbr.c:647 ../plug-ins/common/file-gif-save.c:761 +#: ../plug-ins/common/file-gih.c:1275 ../plug-ins/common/file-html-table.c:236 +#: ../plug-ins/common/file-mng.c:610 ../plug-ins/common/file-mng.c:944 +#: ../plug-ins/common/file-pat.c:476 ../plug-ins/common/file-pcx.c:673 +#: ../plug-ins/common/file-pix.c:524 ../plug-ins/common/file-png.c:1271 +#: ../plug-ins/common/file-pnm.c:977 ../plug-ins/common/file-ps.c:1213 +#: ../plug-ins/common/file-raw.c:548 ../plug-ins/common/file-raw.c:576 +#: ../plug-ins/common/file-sunras.c:563 ../plug-ins/common/file-tga.c:1170 +#: ../plug-ins/common/file-tiff-save.c:683 ../plug-ins/common/file-xbm.c:1034 +#: ../plug-ins/common/file-xwd.c:614 ../plug-ins/common/sphere-designer.c:2114 +#: ../plug-ins/file-bmp/bmp-write.c:296 ../plug-ins/file-fits/fits.c:476 +#: ../plug-ins/file-fli/fli-gimp.c:750 ../plug-ins/file-ico/ico-save.c:1008 +#: ../plug-ins/file-jpeg/jpeg-save.c:325 ../plug-ins/file-psd/psd-save.c:1635 +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:283 +#: ../plug-ins/file-uri/uri-backend-libcurl.c:163 +#: ../plug-ins/file-xjt/xjt.c:1292 ../plug-ins/file-xjt/xjt.c:1729 +#: ../plug-ins/flame/flame.c:443 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1546 +#: ../plug-ins/gfig/gfig.c:794 ../plug-ins/ifs-compose/ifs-compose.c:2374 +#: ../plug-ins/lighting/lighting-ui.c:1211 +#, c-format +msgid "Could not open '%s' for writing: %s" +msgstr "'%s' dosyası yazma için açılamadı: %s" + +#: ../plug-ins/common/channel-mixer.c:1068 +#: ../plug-ins/common/cml-explorer.c:2060 +#, c-format +msgid "Parameters were saved to '%s'" +msgstr "Parametreler '%s' içine kaydedildi" + +#: ../plug-ins/common/checkerboard.c:89 +msgid "Create a checkerboard pattern" +msgstr "Bir dama tahtası deseni oluştur" + +#: ../plug-ins/common/checkerboard.c:94 +msgid "_Checkerboard..." +msgstr "_Dama tahtası..." + +#: ../plug-ins/common/checkerboard.c:161 +msgid "Adding checkerboard" +msgstr "Dama tahtası ekleniyor" + +#: ../plug-ins/common/checkerboard.c:346 +msgid "Checkerboard" +msgstr "Dama Tahtası" + +#: ../plug-ins/common/checkerboard.c:412 +#: ../plug-ins/gimpressionist/sizemap.c:511 +msgid "_Size:" +msgstr "Büyüklü_k:" + +#: ../plug-ins/common/checkerboard.c:421 +msgid "_Psychobilly" +msgstr "_Psychobilly" + +#: ../plug-ins/common/cml-explorer.c:129 +msgid "Keep image's values" +msgstr "Görüntü değerlerini koru" + +#: ../plug-ins/common/cml-explorer.c:130 +msgid "Keep the first value" +msgstr "İlk değeri koru" + +#: ../plug-ins/common/cml-explorer.c:131 +msgid "Fill with parameter k" +msgstr "k parametresi ile doldur" + +#: ../plug-ins/common/cml-explorer.c:132 +msgid "k{x(1-x)}^p" +msgstr "k{x(1-x)}^p" + +#: ../plug-ins/common/cml-explorer.c:133 +msgid "k{x(1-x)}^p stepped" +msgstr "k{x(1-x)}^p adımlı" + +#: ../plug-ins/common/cml-explorer.c:134 +msgid "kx^p" +msgstr "kx^p" + +#: ../plug-ins/common/cml-explorer.c:135 +msgid "kx^p stepped" +msgstr "kx^p geçildi" + +#: ../plug-ins/common/cml-explorer.c:136 +msgid "k(1-x^p)" +msgstr "k(1-x^p)" + +#: ../plug-ins/common/cml-explorer.c:137 +msgid "k(1-x^p) stepped" +msgstr "k(1-x^p) geçildi" + +#: ../plug-ins/common/cml-explorer.c:138 +msgid "Delta function" +msgstr "Delta işlevi" + +#: ../plug-ins/common/cml-explorer.c:139 +msgid "Delta function stepped" +msgstr "Delta işlevi geçildi" + +#: ../plug-ins/common/cml-explorer.c:140 +msgid "sin^p-based function" +msgstr "sin^p tabanlı işlev" + +#: ../plug-ins/common/cml-explorer.c:141 +msgid "sin^p, stepped" +msgstr "sin^p, geçildi" + +#: ../plug-ins/common/cml-explorer.c:167 +msgid "Max (x, -)" +msgstr "En çok (x, -)" + +#: ../plug-ins/common/cml-explorer.c:168 +msgid "Max (x+d, -)" +msgstr "En çok (x+d, -)" + +#: ../plug-ins/common/cml-explorer.c:169 +msgid "Max (x-d, -)" +msgstr "En çok (x-d, -)" + +#: ../plug-ins/common/cml-explorer.c:170 +msgid "Min (x, -)" +msgstr "En az (x, -)" + +#: ../plug-ins/common/cml-explorer.c:171 +msgid "Min (x+d, -)" +msgstr "En az (x+d, -)" + +#: ../plug-ins/common/cml-explorer.c:172 +msgid "Min (x-d, -)" +msgstr "En az (x-d, -)" + +#: ../plug-ins/common/cml-explorer.c:173 +msgid "Max (x+d, -), (x < 0.5)" +msgstr "En çok (x+d, -), (x < 0.5)" + +#: ../plug-ins/common/cml-explorer.c:174 +msgid "Max (x+d, -), (0.5 < x)" +msgstr "En çok (x+d, -), (0.5 < x)" + +#: ../plug-ins/common/cml-explorer.c:175 +msgid "Max (x-d, -), (x < 0.5)" +msgstr "En çok (x-d, -), (x < 0.5)" + +#: ../plug-ins/common/cml-explorer.c:176 +msgid "Max (x-d, -), (0.5 < x)" +msgstr "En çok (x-d, -), (0.5 < x)" + +#: ../plug-ins/common/cml-explorer.c:177 +msgid "Min (x+d, -), (x < 0.5)" +msgstr "En az (x+d, -), (x < 0.5)" + +#: ../plug-ins/common/cml-explorer.c:178 +msgid "Min (x+d, -), (0.5 < x)" +msgstr "En az (x+d, -), (0.5 < x)" + +#: ../plug-ins/common/cml-explorer.c:179 +msgid "Min (x-d, -), (x < 0.5)" +msgstr "En az (x-d, -), (x < 0.5)" + +#: ../plug-ins/common/cml-explorer.c:180 +msgid "Min (x-d, -), (0.5 < x)" +msgstr "En az (x-d, -), (0.5 < x)" + +#: ../plug-ins/common/cml-explorer.c:200 ../plug-ins/common/file-sunras.c:1651 +msgid "Standard" +msgstr "Standart" + +#: ../plug-ins/common/cml-explorer.c:201 +msgid "Use average value" +msgstr "Ortalama değeri kullan" + +#: ../plug-ins/common/cml-explorer.c:202 +msgid "Use reverse value" +msgstr "Ters değeri kullan" + +#: ../plug-ins/common/cml-explorer.c:203 +msgid "With random power (0,10)" +msgstr "Rastgele üssü ile (0,10)" + +#: ../plug-ins/common/cml-explorer.c:204 +msgid "With random power (0,1)" +msgstr "Rastgele üssü ile (0,1)" + +#: ../plug-ins/common/cml-explorer.c:205 +msgid "With gradient power (0,1)" +msgstr "Renk geçiş üssü ile (0,1)" + +#: ../plug-ins/common/cml-explorer.c:206 +msgid "Multiply rand. value (0,1)" +msgstr "Rastgele değeri çoğalt (0,1)" + +#: ../plug-ins/common/cml-explorer.c:207 +msgid "Multiply rand. value (0,2)" +msgstr "Rastgele değeri çoğalt (0,2)" + +#: ../plug-ins/common/cml-explorer.c:208 +msgid "Multiply gradient (0,1)" +msgstr "Renk geçişini çoğalt (0,1)" + +#: ../plug-ins/common/cml-explorer.c:209 +msgid "With p and random (0,1)" +msgstr "Rastgele ve p ile (0,1)" + +#: ../plug-ins/common/cml-explorer.c:223 +msgid "All black" +msgstr "Tümü siyah" + +#: ../plug-ins/common/cml-explorer.c:224 +msgid "All gray" +msgstr "Tümü gri" + +#: ../plug-ins/common/cml-explorer.c:225 +msgid "All white" +msgstr "Tümü beyaz" + +#: ../plug-ins/common/cml-explorer.c:226 +msgid "The first row of the image" +msgstr "Görüntünün ilk satırı" + +#: ../plug-ins/common/cml-explorer.c:227 +msgid "Continuous gradient" +msgstr "Sürekli renk geçişi" + +#: ../plug-ins/common/cml-explorer.c:228 +msgid "Continuous grad. w/o gap" +msgstr "Sürekli renk geçişi. w/o aralığında" + +#: ../plug-ins/common/cml-explorer.c:229 +msgid "Random, ch. independent" +msgstr "Kanal bağımsız, rastgele" + +#: ../plug-ins/common/cml-explorer.c:230 +msgid "Random shared" +msgstr "Rastgele paylaşılmış" + +#: ../plug-ins/common/cml-explorer.c:231 +msgid "Randoms from seed" +msgstr "Kaynaktan rastgele" + +#: ../plug-ins/common/cml-explorer.c:232 +msgid "Randoms from seed (shared)" +msgstr "Kaynaktan rastgele (paylaşılmış)" + +#: ../plug-ins/common/cml-explorer.c:300 ../plug-ins/common/cml-explorer.c:308 +#: ../plug-ins/common/decompose.c:188 +#: ../plug-ins/gimpressionist/orientation.c:180 +#: ../plug-ins/gimpressionist/size.c:183 +msgid "Hue" +msgstr "Renk Tonu" + +#: ../plug-ins/common/cml-explorer.c:301 ../plug-ins/common/cml-explorer.c:309 +#: ../plug-ins/common/decompose.c:189 +msgid "Saturation" +msgstr "Doygunluk" + +#: ../plug-ins/common/cml-explorer.c:302 ../plug-ins/common/cml-explorer.c:310 +#: ../plug-ins/common/decompose.c:190 +#: ../plug-ins/gimpressionist/orientation.c:156 +#: ../plug-ins/gimpressionist/size.c:159 +msgid "Value" +msgstr "Değer" + +#: ../plug-ins/common/cml-explorer.c:307 +msgid "(None)" +msgstr "(Hiçbiri)" + +#: ../plug-ins/common/cml-explorer.c:455 +msgid "Create abstract Coupled-Map Lattice patterns" +msgstr "Soyut eş harita çapraz kalıpları oluştur" + +#: ../plug-ins/common/cml-explorer.c:466 +msgid "CML _Explorer..." +msgstr "CML _Gezgini..." + +#: ../plug-ins/common/cml-explorer.c:756 +msgid "CML Explorer: evoluting" +msgstr "CML Tarayıcısı: Geliştiriliyor" + +#: ../plug-ins/common/cml-explorer.c:1177 +msgid "Coupled-Map-Lattice Explorer" +msgstr "Eşleşmiş - Örgü Tarayıcısı" + +#: ../plug-ins/common/cml-explorer.c:1224 +msgid "New Seed" +msgstr "Yeni Kaynak" + +#: ../plug-ins/common/cml-explorer.c:1235 +msgid "Fix Seed" +msgstr "Sabit kaynak" + +#: ../plug-ins/common/cml-explorer.c:1246 +msgid "Random Seed" +msgstr "Rastgele kaynak" + +#: ../plug-ins/common/cml-explorer.c:1288 ../plug-ins/common/filter-pack.c:700 +#: ../plug-ins/common/van-gogh-lic.c:671 +msgid "_Hue" +msgstr "_Renk Tonu" + +#: ../plug-ins/common/cml-explorer.c:1292 +msgid "Sat_uration" +msgstr "Doy_gunluk" + +#: ../plug-ins/common/cml-explorer.c:1296 ../plug-ins/common/filter-pack.c:708 +msgid "_Value" +msgstr "_Değer" + +#: ../plug-ins/common/cml-explorer.c:1300 +msgid "_Advanced" +msgstr "_Gelişmiş" + +#: ../plug-ins/common/cml-explorer.c:1315 +msgid "Channel Independent Parameters" +msgstr "Bağımsız Kanal Parametreleri" + +#: ../plug-ins/common/cml-explorer.c:1337 +msgid "Initial value:" +msgstr "Başlangıç değeri:" + +#: ../plug-ins/common/cml-explorer.c:1343 +msgid "Zoom scale:" +msgstr "Yakınlaştırma ölçeği:" + +#: ../plug-ins/common/cml-explorer.c:1352 +msgid "Start offset:" +msgstr "Başlama konumu:" + +#: ../plug-ins/common/cml-explorer.c:1361 +msgid "Seed of Random (only for \"From Seed\" Modes)" +msgstr "Rastgele kaynağı (sadece \"Kaynaktan\" modları için)" + +#: ../plug-ins/common/cml-explorer.c:1372 ../plug-ins/maze/maze-dialog.c:261 +msgid "Seed:" +msgstr "Kaynak:" + +#: ../plug-ins/common/cml-explorer.c:1385 +msgid "Switch to \"From seed\" With the Last Seed" +msgstr "Son Kaynak ile \"Kaynaktan\" moduna geçir" + +#: ../plug-ins/common/cml-explorer.c:1397 +msgid "" +"\"Fix seed\" button is an alias of me.\n" +"The same seed produces the same image, if (1) the widths of images are same " +"(this is the reason why image on drawable is different from preview), and " +"(2) all mutation rates equal to zero." +msgstr "" +"\"Kaynaktan\" butonu ile aynı görevi görür.\n" +"Aynı kaynak, aynı resmi üretir. (Eğer resimlerin genişliği aynı ise -" +"çizilebilirdeki resim ile önizlemedeki resmin farklı olmasının sebebi budur- " +"ve bütün değişim oranları sıfır ise)" + +#: ../plug-ins/common/cml-explorer.c:1405 +msgid "O_thers" +msgstr "_Diğer" + +#: ../plug-ins/common/cml-explorer.c:1420 +msgid "Copy Settings" +msgstr "Ayarları Kopyala" + +#: ../plug-ins/common/cml-explorer.c:1439 +msgid "Source channel:" +msgstr "Kaynak kanalı:" + +#: ../plug-ins/common/cml-explorer.c:1454 +#: ../plug-ins/common/cml-explorer.c:1502 +msgid "Destination channel:" +msgstr "Hedef kanal:" + +#: ../plug-ins/common/cml-explorer.c:1458 +msgid "Copy Parameters" +msgstr "Parametreleri Kopyala" + +#: ../plug-ins/common/cml-explorer.c:1467 +msgid "Selective Load Settings" +msgstr "Seçmeli Yükleme Ayarları" + +#: ../plug-ins/common/cml-explorer.c:1487 +msgid "Source channel in file:" +msgstr "Dosya içindeki kanal kaynağı:" + +#: ../plug-ins/common/cml-explorer.c:1508 +msgid "_Misc Ops." +msgstr "_Çeşitli Seçenekler" + +#: ../plug-ins/common/cml-explorer.c:1557 +msgid "Function type:" +msgstr "İşlev türü:" + +#: ../plug-ins/common/cml-explorer.c:1573 +msgid "Composition:" +msgstr "Kompozisyon:" + +#: ../plug-ins/common/cml-explorer.c:1587 +msgid "Misc arrange:" +msgstr "Çeşitli düzenleme:" + +#: ../plug-ins/common/cml-explorer.c:1591 +msgid "Use cyclic range" +msgstr "Dönüşsel erim kullan" + +#: ../plug-ins/common/cml-explorer.c:1601 +msgid "Mod. rate:" +msgstr "Mod. oranı" + +#: ../plug-ins/common/cml-explorer.c:1610 +msgid "Env. sensitivity:" +msgstr "Çevresel duyarlılık:" + +#: ../plug-ins/common/cml-explorer.c:1619 +msgid "Diffusion dist.:" +msgstr "Yayılma mesafesi:" + +#: ../plug-ins/common/cml-explorer.c:1628 +msgid "# of subranges:" +msgstr "altmenzil sayısı" + +#: ../plug-ins/common/cml-explorer.c:1637 +msgid "P(ower factor):" +msgstr "G(üç faktörü):" + +#: ../plug-ins/common/cml-explorer.c:1646 +msgid "Parameter k:" +msgstr "k değiştirgesi:" + +#: ../plug-ins/common/cml-explorer.c:1655 +msgid "Range low:" +msgstr "Düşük erim:" + +#: ../plug-ins/common/cml-explorer.c:1664 +msgid "Range high:" +msgstr "Yüksek erim:" + +#: ../plug-ins/common/cml-explorer.c:1676 +msgid "Plot a Graph of the Settings" +msgstr "Ayarların Bir Grafiğini Çiz" + +#: ../plug-ins/common/cml-explorer.c:1721 +msgid "Ch. sensitivity:" +msgstr "Kanal duyarlılığı:" + +#: ../plug-ins/common/cml-explorer.c:1731 +msgid "Mutation rate:" +msgstr "Başkalaşım oranı:" + +#: ../plug-ins/common/cml-explorer.c:1741 +msgid "Mutation dist.:" +msgstr "Değişim mesafesi:" + +#: ../plug-ins/common/cml-explorer.c:1819 +msgid "Graph of the Current Settings" +msgstr "Şimdiki Ayarların Çizgesi" + +#: ../plug-ins/common/cml-explorer.c:1890 +msgid "Warning: the source and the destination are the same channel." +msgstr "Uyarı: kaynak ve hedef, aynı kanal" + +#: ../plug-ins/common/cml-explorer.c:1949 +msgid "Save CML Explorer Parameters" +msgstr "CML Gezgini Değiştirgelerini Kaydet" + +#: ../plug-ins/common/cml-explorer.c:2082 +msgid "Load CML Explorer Parameters" +msgstr "CML Gezgini Değiştirgelerini Yükle" + +#: ../plug-ins/common/cml-explorer.c:2200 +msgid "Error: it's not CML parameter file." +msgstr "Hata: bu, CML değiştirge dosyası değil." + +#: ../plug-ins/common/cml-explorer.c:2207 +#, c-format +msgid "Warning: '%s' is an old format file." +msgstr "Uyarı: '%s', eski bir dosya biçimi." + +#: ../plug-ins/common/cml-explorer.c:2211 +#, c-format +msgid "" +"Warning: '%s' is a parameter file for a newer version of CML Explorer." +msgstr "" +"Uyarı: '%s', CML Gezgini'nin yeni bir sürümü için bir değiştirge dosyasıdır." + +#: ../plug-ins/common/cml-explorer.c:2274 +msgid "Error: failed to load parameters" +msgstr "Hata: değiştirgeleri yükleme başarısız" + +#: ../plug-ins/common/color-cube-analyze.c:106 +msgid "Analyze the set of colors in the image" +msgstr "Görüntüdeki renkler kümesini çözümle" + +#: ../plug-ins/common/color-cube-analyze.c:112 +msgid "Colorcube A_nalysis..." +msgstr "Renk Kübü Ç_özümleme..." + +#: ../plug-ins/common/color-cube-analyze.c:200 +#: ../plug-ins/common/color-cube-analyze.c:356 +msgid "Colorcube Analysis" +msgstr "Renk Kübü Çözümleme" + +#. output results +#: ../plug-ins/common/color-cube-analyze.c:384 +#: ../plug-ins/imagemap/imap_cmd_guides.c:231 +#, c-format +msgid "Image dimensions: %d × %d" +msgstr "Görüntü boyutları: %d × %d" + +#: ../plug-ins/common/color-cube-analyze.c:387 +msgid "No colors" +msgstr "Renksiz" + +#: ../plug-ins/common/color-cube-analyze.c:389 +msgid "Only one unique color" +msgstr "Sadece bir benzersiz renk" + +#: ../plug-ins/common/color-cube-analyze.c:391 +#, c-format +msgid "Number of unique colors: %d" +msgstr "Benzersiz renklerin sayısı: %d" + +#: ../plug-ins/common/color-enhance.c:69 +msgid "Stretch color saturation to cover maximum possible range" +msgstr "Renk doygunluğunu mümkün olan en yüksek erimi kapsaması için yay" + +#: ../plug-ins/common/color-enhance.c:81 +msgid "_Color Enhance" +msgstr "_Renk Arttırımı" + +#: ../plug-ins/common/color-enhance.c:115 +msgid "Color Enhance" +msgstr "Renk Arttırımı" + +#: ../plug-ins/common/color-exchange.c:122 +msgid "Swap one color with another" +msgstr "Bir rengi başkasıyla değiştir" + +#: ../plug-ins/common/color-exchange.c:128 +msgid "_Color Exchange..." +msgstr "_Renk Takası..." + +#: ../plug-ins/common/color-exchange.c:213 +#: ../plug-ins/common/color-exchange.c:287 +msgid "Color Exchange" +msgstr "Renk Takası" + +#: ../plug-ins/common/color-exchange.c:309 +msgid "Middle-Click Inside Preview to Pick \"From Color\"" +msgstr "i" + +#: ../plug-ins/common/color-exchange.c:347 +msgid "To Color" +msgstr "Renge" + +#: ../plug-ins/common/color-exchange.c:347 +msgid "From Color" +msgstr "Renkten" + +#: ../plug-ins/common/color-exchange.c:365 +msgid "Color Exchange: To Color" +msgstr "Renk Takası: Renge" + +#: ../plug-ins/common/color-exchange.c:366 +msgid "Color Exchange: From Color" +msgstr "Renk Takası: Renkten" + +#: ../plug-ins/common/color-exchange.c:424 +msgid "R_ed threshold:" +msgstr "K_ırmızı eşik:" + +#: ../plug-ins/common/color-exchange.c:484 +msgid "G_reen threshold:" +msgstr "Y_eşil eşik:" + +#: ../plug-ins/common/color-exchange.c:545 +msgid "B_lue threshold:" +msgstr "M_avi eşik:" + +#: ../plug-ins/common/color-exchange.c:573 +msgid "Lock _thresholds" +msgstr "_Eşikleri kilitle" + +#: ../plug-ins/common/color-to-alpha.c:94 +msgid "Convert a specified color to transparency" +msgstr "Belirli bir rengi saydamlığa dönüştür" + +#: ../plug-ins/common/color-to-alpha.c:101 +msgid "Color to _Alpha..." +msgstr "Renkten _Görünüre..." + +#: ../plug-ins/common/color-to-alpha.c:184 +msgid "Removing color" +msgstr "Renk kaldırılıyor" + +#: ../plug-ins/common/color-to-alpha.c:377 +msgid "Color to Alpha" +msgstr "Renkten Görünüre" + +#: ../plug-ins/common/color-to-alpha.c:414 +msgid "Color to Alpha Color Picker" +msgstr "Renkten Görünür Renk Seçicisine" + +#: ../plug-ins/common/color-to-alpha.c:429 +msgid "to alpha" +msgstr "görünüre" + +#: ../plug-ins/common/colorify.c:102 +msgid "Replace all colors with shades of a specified color" +msgstr "Tüm renkleri özel bir rengin gölgeleri yerine koy" + +#: ../plug-ins/common/colorify.c:108 +msgid "Colorif_y..." +msgstr "Renklendi_r..." + +#: ../plug-ins/common/colorify.c:169 +msgid "Colorifying" +msgstr "Renklendirme" + +#: ../plug-ins/common/colorify.c:255 +msgid "Colorify" +msgstr "Renklendir" + +#: ../plug-ins/common/colorify.c:289 +msgid "Custom color:" +msgstr "Özel renk:" + +#: ../plug-ins/common/colorify.c:294 +msgid "Colorify Custom Color" +msgstr "Özel Rengi Renklendir" + +#: ../plug-ins/common/colormap-remap.c:97 +msgid "Rearrange the colormap" +msgstr "Renk haritasını yeniden düzenle" + +#: ../plug-ins/common/colormap-remap.c:104 +msgid "R_earrange Colormap..." +msgstr "Renk Haritasını Yeniden D_üzenle..." + +#: ../plug-ins/common/colormap-remap.c:116 +msgid "Swap two colors in the colormap" +msgstr "Renk haritasındaki iki rengi değiştir" + +#: ../plug-ins/common/colormap-remap.c:123 +msgid "_Swap Colors" +msgstr "Renkleri _Değiştir" + +#: ../plug-ins/common/colormap-remap.c:286 +#: ../plug-ins/common/colormap-remap.c:297 +#: ../plug-ins/common/colormap-remap.c:308 +msgid "Invalid remap array was passed to remap function" +msgstr "Tekrar eşleme işlevinden geçen geçersiz tekrar eşleme dizisi" + +#: ../plug-ins/common/colormap-remap.c:332 +msgid "Rearranging the colormap" +msgstr "Renk haritası yeniden düzenleniyor" + +#: ../plug-ins/common/colormap-remap.c:481 +msgid "Sort on Hue" +msgstr "Renk Tonuna göre Sırala" + +#: ../plug-ins/common/colormap-remap.c:485 +msgid "Sort on Saturation" +msgstr "Doygunluk üzerine Sırala" + +#: ../plug-ins/common/colormap-remap.c:489 +msgid "Sort on Value" +msgstr "Değer üzerine Sırala" + +#: ../plug-ins/common/colormap-remap.c:493 +msgid "Reverse Order" +msgstr "Ters Düzen" + +#: ../plug-ins/common/colormap-remap.c:497 +msgid "Reset Order" +msgstr "Düzeni Sıfırla" + +#: ../plug-ins/common/colormap-remap.c:596 +msgid "Rearrange Colormap" +msgstr "Renk Haritasını Yeniden Düzenle" + +#: ../plug-ins/common/colormap-remap.c:699 +msgid "" +"Drag and drop colors to rearrange the colormap. The numbers shown are the " +"original indices. Right-click for a menu with sort options." +msgstr "" +"Renk haritasını yeniden düzenlemek için renkleri sürükle ve bırak. Numara " +"gösterimleri özgün göstergelerdir. Sıralama seçenekleri menüsü için sağ " +"tıklayın." + +#: ../plug-ins/common/compose.c:189 ../plug-ins/common/decompose.c:170 +#: ../plug-ins/common/file-raw.c:1025 +msgid "RGB" +msgstr "RGB" + +#: ../plug-ins/common/compose.c:200 ../plug-ins/common/decompose.c:178 +msgid "RGBA" +msgstr "RGBA" + +#: ../plug-ins/common/compose.c:204 ../plug-ins/common/noise-rgb.c:525 +#: ../plug-ins/common/noise-rgb.c:540 +msgid "_Alpha:" +msgstr "_Görünür:" + +#: ../plug-ins/common/compose.c:211 ../plug-ins/common/decompose.c:184 +msgid "HSV" +msgstr "HSV" + +#: ../plug-ins/common/compose.c:212 ../plug-ins/common/compose.c:220 +msgid "_Hue:" +msgstr "_Renk Tonu:" + +#: ../plug-ins/common/compose.c:213 ../plug-ins/common/compose.c:221 +#: ../plug-ins/common/noise-hsv.c:421 +msgid "_Saturation:" +msgstr "_Doygunluk:" + +#: ../plug-ins/common/compose.c:214 ../plug-ins/common/noise-hsv.c:433 +msgid "_Value:" +msgstr "_Değer:" + +#: ../plug-ins/common/compose.c:219 ../plug-ins/common/decompose.c:193 +msgid "HSL" +msgstr "HSL" + +#: ../plug-ins/common/compose.c:222 +msgid "_Lightness:" +msgstr "_Aydınlanma:" + +#: ../plug-ins/common/compose.c:227 ../plug-ins/common/decompose.c:202 +msgid "CMY" +msgstr "CMY" + +#: ../plug-ins/common/compose.c:228 ../plug-ins/common/compose.c:236 +msgid "_Cyan:" +msgstr "_Turkuaz:" + +#: ../plug-ins/common/compose.c:229 ../plug-ins/common/compose.c:237 +msgid "_Magenta:" +msgstr "_Macenta:" + +#: ../plug-ins/common/compose.c:230 ../plug-ins/common/compose.c:238 +msgid "_Yellow:" +msgstr "_Sarı:" + +#: ../plug-ins/common/compose.c:235 ../plug-ins/common/decompose.c:211 +msgid "CMYK" +msgstr "CMYK" + +#: ../plug-ins/common/compose.c:239 +msgid "_Black:" +msgstr "_Siyah:" + +#: ../plug-ins/common/compose.c:243 ../plug-ins/common/decompose.c:224 +msgid "LAB" +msgstr "LAB" + +#: ../plug-ins/common/compose.c:252 +msgid "_Luma y470:" +msgstr "_Luma y470:" + +#: ../plug-ins/common/compose.c:253 +msgid "_Blueness cb470:" +msgstr "_Mavilik cb470:" + +#: ../plug-ins/common/compose.c:254 +msgid "_Redness cr470:" +msgstr "_Kırmızılık cr470:" + +#: ../plug-ins/common/compose.c:260 +msgid "_Luma y709:" +msgstr "_Luma y709:" + +#: ../plug-ins/common/compose.c:261 +msgid "_Blueness cb709:" +msgstr "_Mavilik cb709:" + +#: ../plug-ins/common/compose.c:262 +msgid "_Redness cr709:" +msgstr "_Kırmızılık cr709:" + +#: ../plug-ins/common/compose.c:268 +msgid "_Luma y470f:" +msgstr "_Luma y470f:" + +#: ../plug-ins/common/compose.c:269 +msgid "_Blueness cb470f:" +msgstr "_Mavilik cb470f:" + +#: ../plug-ins/common/compose.c:270 +msgid "_Redness cr470f:" +msgstr "_Kırmızılık cr470f:" + +#: ../plug-ins/common/compose.c:276 +msgid "_Luma y709f:" +msgstr "_Luma y709f:" + +#: ../plug-ins/common/compose.c:277 +msgid "_Blueness cb709f:" +msgstr "_Mavilik cb709f:" + +#: ../plug-ins/common/compose.c:278 +msgid "_Redness cr709f:" +msgstr "_Kırmızılık cr709f:" + +#: ../plug-ins/common/compose.c:404 +msgid "Create an image using multiple gray images as color channels" +msgstr "" +"Çoklu gri görüntüleri renk kanalları olarak kullanan bir görüntü oluştur" + +#: ../plug-ins/common/compose.c:410 +msgid "C_ompose..." +msgstr "D_üzenle..." + +#: ../plug-ins/common/compose.c:434 +msgid "Recompose an image that was previously decomposed" +msgstr "Önceden ayrıştırılan bir görüntüyü yeniden düzenle" + +#: ../plug-ins/common/compose.c:442 +msgid "R_ecompose" +msgstr "Y_eniden düzenle" + +#: ../plug-ins/common/compose.c:488 +msgid "" +"You can only run 'Recompose' if the active image was originally produced by " +"'Decompose'." +msgstr "" +"'Yeniden Düzenle'yi sadece etkin görüntü 'Ayrıştırma' ile üretilmişse " +"çalıştırabilirsiniz." + +#: ../plug-ins/common/compose.c:512 +msgid "Error scanning 'decompose-data' parasite: too few layers found" +msgstr "'decompose-data' paraziti taranırken hata: birçok katman bulundu" + +#: ../plug-ins/common/compose.c:545 +#, c-format +msgid "Could not get layers for image %d" +msgstr "%d imgesinin katmanları alınamadı" + +#: ../plug-ins/common/compose.c:612 +msgid "Composing" +msgstr "Düzenleme" + +#: ../plug-ins/common/compose.c:697 ../plug-ins/common/compose.c:1728 +msgid "At least one image is needed to compose" +msgstr "Düzenleme için en az bir görüntü gerekiyor" + +#: ../plug-ins/common/compose.c:708 ../plug-ins/common/compose.c:722 +#, c-format +msgid "Specified layer %d not found" +msgstr "Belirlenen %d katmanı bulunamadı" + +#: ../plug-ins/common/compose.c:730 +msgid "Drawables have different size" +msgstr "Çizilebilirlerin boyutları farklı" + +#: ../plug-ins/common/compose.c:755 +msgid "Images have different size" +msgstr "Görüntülerin boyutları farklı" + +#: ../plug-ins/common/compose.c:773 +msgid "Error in getting layer IDs" +msgstr "Katman Kimliklerini almada hata" + +#: ../plug-ins/common/compose.c:796 +#, c-format +msgid "Image is not a gray image (bpp=%d)" +msgstr "Görüntü gri bir görüntü değil (bpp=%d)" + +#: ../plug-ins/common/compose.c:824 +msgid "Unable to recompose, source layer not found" +msgstr "Yeniden düzenlenemedi, kaynak katman bulunamadı" + +#: ../plug-ins/common/compose.c:1481 +msgid "Compose" +msgstr "Düzenle" + +#. Compose type combo +#: ../plug-ins/common/compose.c:1508 +msgid "Compose Channels" +msgstr "Kanalları Düzenle" + +#: ../plug-ins/common/compose.c:1518 ../plug-ins/common/decompose.c:1522 +msgid "Color _model:" +msgstr "Renk _modeli:" + +#. Channel representation table +#: ../plug-ins/common/compose.c:1550 +msgid "Channel Representations" +msgstr "Kanal Gösterimleri" + +#: ../plug-ins/common/compose.c:1613 +msgid "Mask value" +msgstr "Maske değeri" + +#: ../plug-ins/common/contrast-normalize.c:80 +msgid "Stretch brightness values to cover the full range" +msgstr "Parlaklık değerlerini tüm erimi kapsayacak şekilde yay" + +#: ../plug-ins/common/contrast-normalize.c:92 +#: ../plug-ins/common/edge-dog.c:361 +msgid "_Normalize" +msgstr "_Normalleştir" + +#: ../plug-ins/common/contrast-normalize.c:126 +msgid "Normalizing" +msgstr "Normalleştiriliyor" + +#: ../plug-ins/common/contrast-retinex.c:156 +msgid "Enhance contrast using the Retinex method" +msgstr "Retinex yöntemini kullanarak karşıtlığı arttır" + +#: ../plug-ins/common/contrast-retinex.c:166 +msgid "Retine_x..." +msgstr "Retine_x..." + +#: ../plug-ins/common/contrast-retinex.c:250 +msgid "Retinex" +msgstr "Retinex" + +#: ../plug-ins/common/contrast-retinex.c:286 +msgid "Retinex Image Enhancement" +msgstr "Retinex Görüntü Geliştirimi" + +#: ../plug-ins/common/contrast-retinex.c:321 +msgid "Uniform" +msgstr "Birörnek" + +#: ../plug-ins/common/contrast-retinex.c:322 +msgid "Low" +msgstr "Düşük" + +#: ../plug-ins/common/contrast-retinex.c:323 +msgid "High" +msgstr "Yüksek" + +#: ../plug-ins/common/contrast-retinex.c:334 +msgid "_Level:" +msgstr "_Düzey:" + +#: ../plug-ins/common/contrast-retinex.c:339 +msgid "_Scale:" +msgstr "Ö_lçek:" + +#: ../plug-ins/common/contrast-retinex.c:354 +msgid "Scale _division:" +msgstr "Ölçek _bölümü:" + +#: ../plug-ins/common/contrast-retinex.c:369 +msgid "Dy_namic:" +msgstr "D_inamik:" + +#: ../plug-ins/common/contrast-retinex.c:642 +msgid "Retinex: filtering" +msgstr "Retinex: süzülüyor" + +#: ../plug-ins/common/contrast-stretch-hsv.c:68 +msgid "Stretch image contrast to cover the maximum possible range" +msgstr "Mümkün olan en yüksek erimi kapsamak için görüntü karşıtlığını yay" + +#: ../plug-ins/common/contrast-stretch-hsv.c:81 +msgid "Stretch _HSV" +msgstr "_HSV'yi Yay" + +#: ../plug-ins/common/contrast-stretch-hsv.c:116 +msgid "Auto-Stretching HSV" +msgstr "HSV'yi Otomatik Yayma" + +#: ../plug-ins/common/contrast-stretch-hsv.c:192 +msgid "autostretch_hsv: cmap was NULL! Quitting...\n" +msgstr "autostretch_hsv: cmap NULL! Çıkıyor...\n" + +#: ../plug-ins/common/contrast-stretch.c:68 +msgid "Stretch contrast to cover the maximum possible range" +msgstr "Mümkün olan en yüksek erimi kapsamak için karşıtlığı yay" + +#: ../plug-ins/common/contrast-stretch.c:79 +msgid "_Stretch Contrast" +msgstr "Karşıtlığı _Yay" + +#: ../plug-ins/common/contrast-stretch.c:113 +msgid "Auto-stretching contrast" +msgstr "Karşıtlığı otomatik yayma" + +#: ../plug-ins/common/contrast-stretch.c:152 +msgid "c_astretch: cmap was NULL! Quitting...\n" +msgstr "c_astretch: cmap NULL! Çıkıyor...\n" + +#: ../plug-ins/common/convolution-matrix.c:64 +msgid "Gr_ey" +msgstr "G_ri" + +#: ../plug-ins/common/convolution-matrix.c:65 +msgid "Re_d" +msgstr "_Kırmızı" + +#: ../plug-ins/common/convolution-matrix.c:66 +#: ../plug-ins/common/newsprint.c:353 +msgid "_Green" +msgstr "Yeşi_l" + +#: ../plug-ins/common/convolution-matrix.c:67 +#: ../plug-ins/common/newsprint.c:361 +msgid "_Blue" +msgstr "Mav_i" + +#: ../plug-ins/common/convolution-matrix.c:68 +msgid "_Alpha" +msgstr "_Görünür" + +#: ../plug-ins/common/convolution-matrix.c:73 +msgid "E_xtend" +msgstr "G_enişlet" + +#: ../plug-ins/common/convolution-matrix.c:74 +#: ../plug-ins/common/displace.c:472 ../plug-ins/common/edge.c:709 +#: ../plug-ins/common/fractal-trace.c:736 ../plug-ins/common/ripple.c:564 +msgid "_Wrap" +msgstr "_Kaydır:" + +#: ../plug-ins/common/convolution-matrix.c:75 +msgid "Cro_p" +msgstr "Kı_rp" + +#: ../plug-ins/common/convolution-matrix.c:201 +msgid "Apply a generic 5x5 convolution matrix" +msgstr "Soysal bir 5x5 kıvrılma dizeyi uygula" + +#: ../plug-ins/common/convolution-matrix.c:206 +msgid "_Convolution Matrix..." +msgstr "_Kıvrılma Dizeyi..." + +#: ../plug-ins/common/convolution-matrix.c:241 +msgid "Convolution does not work on layers smaller than 3x3 pixels." +msgstr "Kıvrılma 3x3 benekten küçük katmanlar üzerinde çalışmıyor" + +#: ../plug-ins/common/convolution-matrix.c:314 +msgid "Applying convolution" +msgstr "Kıvrılma uygulanıyor" + +#: ../plug-ins/common/convolution-matrix.c:906 +msgid "Convolution Matrix" +msgstr "Kıvrılma Dizeyi" + +#: ../plug-ins/common/convolution-matrix.c:944 +msgid "Matrix" +msgstr "Matris" + +#: ../plug-ins/common/convolution-matrix.c:982 +msgid "D_ivisor:" +msgstr "B_ölen:" + +#: ../plug-ins/common/convolution-matrix.c:1008 +#: ../plug-ins/common/depth-merge.c:768 ../plug-ins/common/file-raw.c:1045 +msgid "O_ffset:" +msgstr "G_öreli konum:" + +#: ../plug-ins/common/convolution-matrix.c:1037 +msgid "N_ormalise" +msgstr "N_ormalleştir" + +#: ../plug-ins/common/convolution-matrix.c:1049 +msgid "A_lpha-weighting" +msgstr "Gö_rünür ağırlıklı" + +#: ../plug-ins/common/convolution-matrix.c:1068 +msgid "Border" +msgstr "Sınır" + +#: ../plug-ins/common/convolution-matrix.c:1095 +msgid "Channels" +msgstr "Kanallar" + +#: ../plug-ins/common/crop-auto.c:85 +msgid "Remove empty borders from the image" +msgstr "Boş sınırları görüntüden kaldır" + +#: ../plug-ins/common/crop-auto.c:90 +msgid "Autocrop Imag_e" +msgstr "_Görüntüyü kendiliğinden kırp" + +#: ../plug-ins/common/crop-auto.c:99 +msgid "Remove empty borders from the layer" +msgstr "Katmandan boş sınırları kaldır" + +#: ../plug-ins/common/crop-auto.c:104 +msgid "Autocrop Lay_er" +msgstr "Kat_manı kendiliğinden kırp" + +#: ../plug-ins/common/crop-auto.c:151 +msgid "Cropping" +msgstr "Kırpma" + +#: ../plug-ins/common/crop-zealous.c:85 +msgid "Autocrop unused space from edges and middle" +msgstr "Kenarlardan ve ortadan kullanılmayan alanı kendiliğinden kırp" + +#: ../plug-ins/common/crop-zealous.c:90 +msgid "_Zealous Crop" +msgstr "_İstekli Kırpım" + +#: ../plug-ins/common/crop-zealous.c:138 +msgid "Zealous cropping" +msgstr "İstekli kırpma" + +#: ../plug-ins/common/crop-zealous.c:239 +msgid "Nothing to crop." +msgstr "Kırpacak birşey yok" + +#: ../plug-ins/common/cubism.c:150 +msgid "Convert the image into randomly rotated square blobs" +msgstr "İmgeyi rasgele döndürülmüş dörtgen biçimsiz yığınlara dönüştür" + +#: ../plug-ins/common/cubism.c:155 +msgid "_Cubism..." +msgstr "_Kübizm..." + +#: ../plug-ins/common/cubism.c:268 +msgid "Cubism" +msgstr "Kübizm" + +#: ../plug-ins/common/cubism.c:305 +msgid "_Tile size:" +msgstr "_Döşeme boyutu:" + +#: ../plug-ins/common/cubism.c:318 +msgid "T_ile saturation:" +msgstr "D_öşeme doygunluğu:" + +#: ../plug-ins/common/cubism.c:329 +msgid "_Use background color" +msgstr "Artalan rengi k_ullan" + +#: ../plug-ins/common/cubism.c:419 +msgid "Cubistic transformation" +msgstr "Kübistik dönüştürme" + +#: ../plug-ins/common/curve-bend.c:520 +msgid "Bend the image using two control curves" +msgstr "İki denetim eğrisi kullanarak görüntüyü bük" + +#: ../plug-ins/common/curve-bend.c:541 +msgid "_Curve Bend..." +msgstr "_Eğri Bükümü..." + +#: ../plug-ins/common/curve-bend.c:677 ../plug-ins/common/edge-dog.c:178 +msgid "Can operate on layers only (but was called on channel or mask)." +msgstr "" +"Yalnızca katmanlar üzerinde işlenebiliyor (ama kanal ya da maske üzerinde " +"çağrıldı)." + +#: ../plug-ins/common/curve-bend.c:687 +msgid "Cannot operate on layers with masks." +msgstr "Katmanlar üzerinde maskelerle işlenemiyor." + +#: ../plug-ins/common/curve-bend.c:699 +msgid "Cannot operate on empty selections." +msgstr "Boş seçimler üzerinde işlenemiyor." + +#. Possibly retrieve data from a previous run +#. The shell and main vbox +#: ../plug-ins/common/curve-bend.c:1211 ../plug-ins/common/curve-bend.c:2932 +msgid "Curve Bend" +msgstr "Eğri Bükümü" + +#. Preview area, top of column +#. preview +#: ../plug-ins/common/curve-bend.c:1247 +#: ../plug-ins/gimpressionist/orientmap.c:592 +#: ../plug-ins/gimpressionist/sizemap.c:461 +#: ../plug-ins/print/print-page-layout.c:159 +msgid "Preview" +msgstr "Önizleme" + +#. The preview button +#: ../plug-ins/common/curve-bend.c:1276 +msgid "_Preview Once" +msgstr "Hemen Ö_nizle" + +#. The preview toggle +#: ../plug-ins/common/curve-bend.c:1285 +msgid "Automatic pre_view" +msgstr "Kendiliğinden öni_zle" + +#. Options area, bottom of column +#. Options section +#: ../plug-ins/common/curve-bend.c:1295 ../plug-ins/common/ripple.c:505 +#: ../plug-ins/gfig/gfig-dialog.c:1207 +msgid "Options" +msgstr "Seçenekler" + +#. Rotate spinbutton +#: ../plug-ins/common/curve-bend.c:1309 +msgid "Rotat_e:" +msgstr "Ç_evir:" + +#. The smoothing toggle +#: ../plug-ins/common/curve-bend.c:1328 +msgid "Smoo_thing" +msgstr "Yumu_şatma" + +#. The antialiasing toggle +#: ../plug-ins/common/curve-bend.c:1338 ../plug-ins/common/mosaic.c:727 +#: ../plug-ins/common/qbist.c:853 ../plug-ins/common/ripple.c:514 +msgid "_Antialiasing" +msgstr "_Kenar Düzeltme" + +#. The work_on_copy toggle +#: ../plug-ins/common/curve-bend.c:1348 +msgid "Work on cop_y" +msgstr "Ko_pya üzerinde çalış" + +#. The curves graph +#: ../plug-ins/common/curve-bend.c:1358 +msgid "Modify Curves" +msgstr "Eğrileri Düzenle" + +#: ../plug-ins/common/curve-bend.c:1386 +msgid "Curve for Border" +msgstr "Sınır için Eğ" + +#: ../plug-ins/common/curve-bend.c:1390 +msgid "_Upper" +msgstr "_Yukarı" + +#: ../plug-ins/common/curve-bend.c:1391 +msgid "_Lower" +msgstr "_Aşağı" + +#: ../plug-ins/common/curve-bend.c:1401 +msgid "Curve Type" +msgstr "Eğri Tipi" + +#: ../plug-ins/common/curve-bend.c:1405 +msgid "Smoot_h" +msgstr "Yumuşa_t" + +#: ../plug-ins/common/curve-bend.c:1406 +msgid "_Free" +msgstr "_Serbest" + +#. The Copy button +#: ../plug-ins/common/curve-bend.c:1421 +msgid "_Copy" +msgstr "_Kopyala" + +#: ../plug-ins/common/curve-bend.c:1426 +msgid "Copy the active curve to the other border" +msgstr "Etkin eğriyi diğer sınıra kopyala" + +#. The CopyInv button +#: ../plug-ins/common/curve-bend.c:1433 +msgid "_Mirror" +msgstr "_Yansıla" + +#: ../plug-ins/common/curve-bend.c:1438 +msgid "Mirror the active curve to the other border" +msgstr "Etkin eğriyi diğer sınıra yansıt" + +#. The Swap button +#: ../plug-ins/common/curve-bend.c:1446 +msgid "S_wap" +msgstr "_Değiştir" + +#: ../plug-ins/common/curve-bend.c:1451 +msgid "Swap the two curves" +msgstr "İki eğriyi değiştir" + +#: ../plug-ins/common/curve-bend.c:1463 +msgid "Reset the active curve" +msgstr "Etkin eğriyi sıfırla" + +#: ../plug-ins/common/curve-bend.c:1480 +msgid "Load the curves from a file" +msgstr "Eğrileri bir dosyadan yükle" + +#: ../plug-ins/common/curve-bend.c:1492 +msgid "Save the curves to a file" +msgstr "Eğrileri bir dosyaya kaydet" + +#: ../plug-ins/common/curve-bend.c:2030 +msgid "Load Curve Points from File" +msgstr "Eğri Noktalarını Dosyadan Yükle" + +#: ../plug-ins/common/curve-bend.c:2065 +msgid "Save Curve Points to File" +msgstr "Eğri Noktalarını Dosyaya Kaydet" + +#: ../plug-ins/common/decompose.c:170 ../plug-ins/common/decompose.c:174 +#: ../plug-ins/common/decompose.c:178 +msgid "red" +msgstr "kırmızı" + +#: ../plug-ins/common/decompose.c:171 ../plug-ins/common/decompose.c:175 +#: ../plug-ins/common/decompose.c:179 +msgid "green" +msgstr "yeşil" + +#: ../plug-ins/common/decompose.c:172 ../plug-ins/common/decompose.c:176 +#: ../plug-ins/common/decompose.c:180 +msgid "blue" +msgstr "mavi" + +#: ../plug-ins/common/decompose.c:181 ../plug-ins/common/decompose.c:221 +msgid "alpha" +msgstr "görünür" + +#: ../plug-ins/common/decompose.c:184 ../plug-ins/common/decompose.c:188 +msgid "hue" +msgstr "renk tonu" + +#: ../plug-ins/common/decompose.c:185 ../plug-ins/common/decompose.c:189 +msgid "saturation" +msgstr "doygunluk" + +#: ../plug-ins/common/decompose.c:186 ../plug-ins/common/decompose.c:190 +msgid "value" +msgstr "değer" + +#: ../plug-ins/common/decompose.c:193 ../plug-ins/common/decompose.c:197 +msgid "hue_l" +msgstr "renk tonu_I" + +#: ../plug-ins/common/decompose.c:194 ../plug-ins/common/decompose.c:198 +msgid "saturation_l" +msgstr "doygunluk_l" + +#: ../plug-ins/common/decompose.c:195 ../plug-ins/common/decompose.c:199 +msgid "lightness" +msgstr "aydınlanma" + +#: ../plug-ins/common/decompose.c:197 +msgid "Hue (HSL)" +msgstr "Renk Tonu (HSL)" + +#: ../plug-ins/common/decompose.c:198 +msgid "Saturation (HSL)" +msgstr "Doygunluk (HSL)" + +#: ../plug-ins/common/decompose.c:199 +msgid "Lightness" +msgstr "Aydınlanma" + +#: ../plug-ins/common/decompose.c:202 ../plug-ins/common/decompose.c:206 +msgid "cyan" +msgstr "turkuaz" + +#: ../plug-ins/common/decompose.c:203 ../plug-ins/common/decompose.c:207 +msgid "magenta" +msgstr "macenta" + +#: ../plug-ins/common/decompose.c:204 ../plug-ins/common/decompose.c:208 +msgid "yellow" +msgstr "sarı" + +#: ../plug-ins/common/decompose.c:206 +msgid "Cyan" +msgstr "Turkuaz" + +#: ../plug-ins/common/decompose.c:207 +msgid "Magenta" +msgstr "Macenta" + +#: ../plug-ins/common/decompose.c:208 +msgid "Yellow" +msgstr "Sarı" + +#: ../plug-ins/common/decompose.c:211 ../plug-ins/common/decompose.c:216 +msgid "cyan-k" +msgstr "turkuaz-k" + +#: ../plug-ins/common/decompose.c:212 ../plug-ins/common/decompose.c:217 +msgid "magenta-k" +msgstr "macenta-k" + +#: ../plug-ins/common/decompose.c:213 ../plug-ins/common/decompose.c:218 +msgid "yellow-k" +msgstr "sarı-k" + +#: ../plug-ins/common/decompose.c:214 +msgid "black" +msgstr "siyah" + +#: ../plug-ins/common/decompose.c:216 +msgid "Cyan_K" +msgstr "Turkuaz_K" + +#: ../plug-ins/common/decompose.c:217 +msgid "Magenta_K" +msgstr "Macenta_K" + +#: ../plug-ins/common/decompose.c:218 +msgid "Yellow_K" +msgstr "Sarı_K" + +#: ../plug-ins/common/decompose.c:221 +msgid "Alpha" +msgstr "Görünür" + +#: ../plug-ins/common/decompose.c:229 +msgid "luma-y470" +msgstr "luma-y470" + +#: ../plug-ins/common/decompose.c:230 +msgid "blueness-cb470" +msgstr "mavilik-cb470" + +#: ../plug-ins/common/decompose.c:231 +msgid "redness-cr470" +msgstr "kırmızılık-cr470" + +#: ../plug-ins/common/decompose.c:233 +msgid "luma-y709" +msgstr "luma-y709" + +#: ../plug-ins/common/decompose.c:234 +msgid "blueness-cb709" +msgstr "mavilik-cb709" + +#: ../plug-ins/common/decompose.c:235 +msgid "redness-cr709" +msgstr "kırmızılık-cr709" + +#: ../plug-ins/common/decompose.c:237 +msgid "luma-y470f" +msgstr "luma-y470f" + +#: ../plug-ins/common/decompose.c:238 +msgid "blueness-cb470f" +msgstr "mavilik-cb470f" + +#: ../plug-ins/common/decompose.c:239 +msgid "redness-cr470f" +msgstr "kırmızılık-cr470f" + +#: ../plug-ins/common/decompose.c:241 +msgid "luma-y709f" +msgstr "luma-y709f" + +#: ../plug-ins/common/decompose.c:242 +msgid "blueness-cb709f" +msgstr "mavilik-cb709f" + +#: ../plug-ins/common/decompose.c:243 +msgid "redness-cr709f" +msgstr "kırmızılık-cr709f" + +#: ../plug-ins/common/decompose.c:312 ../plug-ins/common/decompose.c:326 +msgid "Decompose an image into separate colorspace components" +msgstr "Bir görüntüyü ayrı renk uzayı bileşenlerine ayrıştır" + +#: ../plug-ins/common/decompose.c:318 ../plug-ins/common/decompose.c:336 +msgid "_Decompose..." +msgstr "_Ayrıştır..." + +#: ../plug-ins/common/decompose.c:429 +msgid "Decomposing" +msgstr "Ayrıştırma" + +#: ../plug-ins/common/decompose.c:1487 +msgid "Decompose" +msgstr "Ayrıştır" + +#: ../plug-ins/common/decompose.c:1510 +msgid "Extract Channels" +msgstr "Kanalları Çıkart" + +#: ../plug-ins/common/decompose.c:1557 +msgid "_Decompose to layers" +msgstr "Katmanlarına _ayrıştır" + +#: ../plug-ins/common/decompose.c:1568 +msgid "_Foreground as registration color" +msgstr "Kayıt rengi olarak _önalan" + +#: ../plug-ins/common/decompose.c:1569 +msgid "" +"Pixels in the foreground color will appear black in all output images. This " +"can be used for things like crop marks that have to show up on all channels." +msgstr "" +"Önalan renginde benekler, bütün çıkış görüntülerinde siyah görünecektir. Bu, " +"bütün kanalların göstermek zorunda olduğu kırpma işareti gibi şeylerde " +"kullanılabilir." + +#: ../plug-ins/common/deinterlace.c:91 +msgid "Fix images where every other row is missing" +msgstr "Diğer sıraların kayıp olduğu resimleri düzelt" + +#: ../plug-ins/common/deinterlace.c:100 +msgid "_Deinterlace..." +msgstr "_Netleştir..." + +#: ../plug-ins/common/deinterlace.c:157 ../plug-ins/common/deinterlace.c:325 +msgid "Deinterlace" +msgstr "Netleştir" + +#: ../plug-ins/common/deinterlace.c:357 +msgid "Keep o_dd fields" +msgstr "T_ek alanları koru" + +#: ../plug-ins/common/deinterlace.c:358 +msgid "Keep _even fields" +msgstr "_Çift alanları koru" + +#: ../plug-ins/common/depth-merge.c:184 +msgid "Combine two images using depth maps (z-buffers)" +msgstr "Derin eşlemler kullanarak iki görüntüyü birleştir (z-arabellekleri)" + +#: ../plug-ins/common/depth-merge.c:193 +msgid "_Depth Merge..." +msgstr "_Derin Birleştirme..." + +#: ../plug-ins/common/depth-merge.c:387 +msgid "Depth-merging" +msgstr "Derin birleştiriliyor" + +#: ../plug-ins/common/depth-merge.c:644 +msgid "Depth Merge" +msgstr "Derin Birleştirme" + +#: ../plug-ins/common/depth-merge.c:696 +msgid "Source 1:" +msgstr "Kaynak 1:" + +#: ../plug-ins/common/depth-merge.c:711 ../plug-ins/common/depth-merge.c:741 +msgid "Depth map:" +msgstr "Derin eşlem:" + +#: ../plug-ins/common/depth-merge.c:726 +msgid "Source 2:" +msgstr "Kaynak 2:" + +#: ../plug-ins/common/depth-merge.c:758 +msgid "O_verlap:" +msgstr "B_indirme:" + +#: ../plug-ins/common/depth-merge.c:778 +msgid "Sc_ale 1:" +msgstr "Ö_lçek 1:" + +#: ../plug-ins/common/depth-merge.c:788 +msgid "Sca_le 2:" +msgstr "Öl_çek 2:" + +#: ../plug-ins/common/despeckle.c:142 +msgid "Remove speckle noise from the image" +msgstr "Resimden benekliği kaldır" + +#: ../plug-ins/common/despeckle.c:148 +msgid "Des_peckle..." +msgstr "Benekliği _kaldır..." + +#: ../plug-ins/common/despeckle.c:425 ../plug-ins/common/despeckle.c:645 +msgid "Despeckle" +msgstr "Beneksizleştirme" + +#: ../plug-ins/common/despeckle.c:454 +msgid "Median" +msgstr "Ortanca" + +#: ../plug-ins/common/despeckle.c:462 +msgid "_Adaptive" +msgstr "_Uyarlamalı" + +#: ../plug-ins/common/despeckle.c:472 +msgid "R_ecursive" +msgstr "Ö_zyineli" + +#: ../plug-ins/common/despeckle.c:493 ../plug-ins/common/edge-neon.c:732 +#: ../plug-ins/common/nl-filter.c:1089 ../plug-ins/common/nova.c:366 +#: ../plug-ins/common/unsharp-mask.c:680 ../plug-ins/common/whirl-pinch.c:589 +#: ../plug-ins/gradient-flare/gradient-flare.c:2758 +#: ../plug-ins/imagemap/imap_circle.c:278 +msgid "_Radius:" +msgstr "_Yarıçap:" + +#: ../plug-ins/common/despeckle.c:509 +msgid "_Black level:" +msgstr "_Kara düzey:" + +#: ../plug-ins/common/despeckle.c:525 +msgid "_White level:" +msgstr "_Ak düzey:" + +#: ../plug-ins/common/destripe.c:103 +msgid "Remove vertical stripe artifacts from the image" +msgstr "Resimden, dikey çizgisel bozuklukları temizle" + +#: ../plug-ins/common/destripe.c:109 +msgid "Des_tripe..." +msgstr "Çiz_gisizleştir..." + +#: ../plug-ins/common/destripe.c:272 +msgid "Destriping" +msgstr "Şeritsizleştirme" + +#: ../plug-ins/common/destripe.c:438 +msgid "Destripe" +msgstr "Çizgisizleştir" + +#: ../plug-ins/common/destripe.c:473 ../plug-ins/common/file-html-table.c:595 +#: ../plug-ins/common/file-ps.c:3173 ../plug-ins/common/file-ps.c:3382 +#: ../plug-ins/common/file-raw.c:1058 ../plug-ins/common/smooth-palette.c:436 +#: ../plug-ins/common/tile-paper.c:302 ../plug-ins/common/tile.c:431 +#: ../plug-ins/imagemap/imap_cmd_guides.c:165 +#: ../plug-ins/imagemap/imap_rectangle.c:403 +#: ../plug-ins/print/print-page-layout.c:252 +msgid "_Width:" +msgstr "_Genişlik:" + +#: ../plug-ins/common/destripe.c:484 +msgid "Create _histogram" +msgstr "_Histogram Oluştur" + +#: ../plug-ins/common/diffraction.c:167 +msgid "Generate diffraction patterns" +msgstr "Kırınım desenleri üret" + +#: ../plug-ins/common/diffraction.c:172 +msgid "_Diffraction Patterns..." +msgstr "_Kırınım Desenleri..." + +#: ../plug-ins/common/diffraction.c:330 +msgid "Creating diffraction pattern" +msgstr "Kırınım deseni oluşturuluyor" + +#: ../plug-ins/common/diffraction.c:434 +msgid "Diffraction Patterns" +msgstr "Kırınım desenleri" + +#: ../plug-ins/common/diffraction.c:477 +#: ../plug-ins/map-object/map-object-ui.c:1388 +msgid "_Preview!" +msgstr "Ön_izleme" + +#: ../plug-ins/common/diffraction.c:527 +msgid "Frequencies" +msgstr "Sıklıklar" + +#: ../plug-ins/common/diffraction.c:565 +msgid "Contours" +msgstr "Çevre çizgileri" + +#: ../plug-ins/common/diffraction.c:603 +msgid "Sharp Edges" +msgstr "Keskin Kıyılar" + +#: ../plug-ins/common/diffraction.c:615 ../plug-ins/common/softglow.c:683 +#: ../plug-ins/flame/flame.c:1081 +msgid "_Brightness:" +msgstr "_Parlaklık:" + +#: ../plug-ins/common/diffraction.c:624 +msgid "Sc_attering:" +msgstr "_Dağılma:" + +#: ../plug-ins/common/diffraction.c:633 +msgid "Po_larization:" +msgstr "_Kutuplama" + +#: ../plug-ins/common/diffraction.c:641 +msgid "Other Options" +msgstr "Diğer Seçenekler" + +#: ../plug-ins/common/displace.c:142 +msgid "_X displacement" +msgstr "_X kovma" + +#: ../plug-ins/common/displace.c:142 +msgid "_Pinch" +msgstr "Tutam:" + +#: ../plug-ins/common/displace.c:143 +msgid "_Y displacement" +msgstr "_Y kovma" + +#: ../plug-ins/common/displace.c:143 +msgid "_Whirl" +msgstr "_Sarmal" + +#: ../plug-ins/common/displace.c:169 +msgid "Displace pixels as indicated by displacement maps" +msgstr "Kovma eşleminde gösterildiği gibi benekleri kov" + +#: ../plug-ins/common/displace.c:179 +msgid "_Displace..." +msgstr "_Yerini değiştir..." + +#: ../plug-ins/common/displace.c:290 +msgid "Displacing" +msgstr "Kovma" + +#: ../plug-ins/common/displace.c:326 +msgid "Displace" +msgstr "Yerini değiştir" + +#. X options +#: ../plug-ins/common/displace.c:362 +msgid "_X displacement:" +msgstr "_X uzaklığı:" + +#. Y Options +#: ../plug-ins/common/displace.c:409 +msgid "_Y displacement:" +msgstr "_Y uzaklığı:" + +#: ../plug-ins/common/displace.c:459 +msgid "Displacement Mode" +msgstr "Kovma Kipi" + +#: ../plug-ins/common/displace.c:462 +msgid "_Cartesian" +msgstr "_Kartezyen" + +#: ../plug-ins/common/displace.c:463 +msgid "_Polar" +msgstr "_Kutupsal" + +#: ../plug-ins/common/displace.c:468 +msgid "Edge Behavior" +msgstr "Kenar Davranışı" + +#: ../plug-ins/common/displace.c:474 ../plug-ins/common/edge.c:722 +#: ../plug-ins/common/ripple.c:565 ../plug-ins/common/waves.c:281 +msgid "_Smear" +msgstr "_Sıvama" + +#: ../plug-ins/common/displace.c:476 ../plug-ins/common/edge.c:735 +#: ../plug-ins/common/fractal-trace.c:740 ../plug-ins/common/newsprint.c:398 +msgid "_Black" +msgstr "_Siyah" + +#: ../plug-ins/common/edge-dog.c:135 +msgid "Edge detection with control of edge thickness" +msgstr "Kenar denetimi ile kenar algılama kalınlığı" + +#: ../plug-ins/common/edge-dog.c:142 +msgid "_Difference of Gaussians..." +msgstr "Gaussian _Farkı..." + +#: ../plug-ins/common/edge-dog.c:245 ../plug-ins/common/edge-dog.c:302 +msgid "DoG Edge Detect" +msgstr "DoG Kenar Algılayıcı" + +#: ../plug-ins/common/edge-dog.c:331 +msgid "Smoothing Parameters" +msgstr "Düzleştirme Değiştirgeleri" + +#: ../plug-ins/common/edge-dog.c:345 +msgid "_Radius 1:" +msgstr "_Yarıçap 1:" + +#: ../plug-ins/common/edge-dog.c:349 +msgid "R_adius 2:" +msgstr "Y_arıçap 2:" + +#: ../plug-ins/common/edge-dog.c:372 ../plug-ins/gimpressionist/paper.c:167 +msgid "_Invert" +msgstr "_Tersine Çevir" + +#: ../plug-ins/common/edge-laplace.c:75 +msgid "High-resolution edge detection" +msgstr "Yüksek çözünürlüklü kenar tespit etme" + +#: ../plug-ins/common/edge-laplace.c:85 +msgid "_Laplace" +msgstr "_Laplace" + +#: ../plug-ins/common/edge-laplace.c:243 ../plug-ins/common/edge.c:673 +msgid "Laplace" +msgstr "Laplace" + +#: ../plug-ins/common/edge-laplace.c:321 +msgid "Cleanup" +msgstr "Temizle" + +#: ../plug-ins/common/edge-neon.c:134 +msgid "Simulate the glowing boundary of a neon light" +msgstr "Neon ışığın parıltı sınırını benzetim yap" + +#: ../plug-ins/common/edge-neon.c:139 +msgid "_Neon..." +msgstr "_Neon..." + +#: ../plug-ins/common/edge-neon.c:211 +msgid "Neon" +msgstr "Neon" + +#: ../plug-ins/common/edge-neon.c:695 +msgid "Neon Detection" +msgstr "Neon Algılama" + +#: ../plug-ins/common/edge-neon.c:747 ../plug-ins/common/unsharp-mask.c:693 +msgid "_Amount:" +msgstr "_Miktar:" + +#: ../plug-ins/common/edge-sobel.c:108 +msgid "Specialized direction-dependent edge detection" +msgstr "Özelleştirilmiş, yön tabanlı kenar tespit etme" + +#: ../plug-ins/common/edge-sobel.c:121 +msgid "_Sobel..." +msgstr "_Çizimleştir..." + +#: ../plug-ins/common/edge-sobel.c:231 +msgid "Sobel Edge Detection" +msgstr "Sobel Kenar Algılama" + +#: ../plug-ins/common/edge-sobel.c:260 +msgid "Sobel _horizontally" +msgstr "Ufki" + +#: ../plug-ins/common/edge-sobel.c:272 +msgid "Sobel _vertically" +msgstr "Dikey çizimleştir" + +#: ../plug-ins/common/edge-sobel.c:284 +msgid "_Keep sign of result (one direction only)" +msgstr "_Sonucun izini koru (sadece tek yön)" + +#: ../plug-ins/common/edge-sobel.c:370 +msgid "Sobel edge detecting" +msgstr "Sobel kenar algılanıyor" + +#: ../plug-ins/common/edge.c:152 +msgid "Several simple methods for detecting edges" +msgstr "Kenar tespiti için bir kaç basit yöntem" + +#: ../plug-ins/common/edge.c:157 +msgid "_Edge..." +msgstr "_Kenar..." + +#: ../plug-ins/common/edge.c:229 +msgid "Edge detection" +msgstr "Kenar tespiti" + +#: ../plug-ins/common/edge.c:633 +msgid "Edge Detection" +msgstr "Kenar Tespiti" + +#: ../plug-ins/common/edge.c:668 +msgid "Sobel" +msgstr "Çizimleştir" + +#: ../plug-ins/common/edge.c:669 +msgid "Prewitt compass" +msgstr "Prewitt pusulası" + +#: ../plug-ins/common/edge.c:670 ../plug-ins/common/sinus.c:904 +msgid "Gradient" +msgstr "Renk Geçişi" + +#: ../plug-ins/common/edge.c:671 +msgid "Roberts" +msgstr "Roberts" + +#: ../plug-ins/common/edge.c:672 +msgid "Differential" +msgstr "Farklı Özellik" + +#: ../plug-ins/common/edge.c:682 +msgid "_Algorithm:" +msgstr "_Algoritma:" + +#: ../plug-ins/common/edge.c:690 +msgid "A_mount:" +msgstr "N_icelik:" + +#: ../plug-ins/common/emboss.c:124 +msgid "Simulate an image created by embossing" +msgstr "Basarak oluşturulan sahte görüntü" + +#: ../plug-ins/common/emboss.c:130 +msgid "_Emboss..." +msgstr "_Kabartma..." + +#: ../plug-ins/common/emboss.c:384 ../plug-ins/common/emboss.c:446 +msgid "Emboss" +msgstr "Kabartma" + +#: ../plug-ins/common/emboss.c:474 +msgid "Function" +msgstr "İşlev" + +#: ../plug-ins/common/emboss.c:478 +msgid "_Bumpmap" +msgstr "_Renkli Kabartma" + +#: ../plug-ins/common/emboss.c:479 +msgid "_Emboss" +msgstr "_Kabartma" + +#: ../plug-ins/common/emboss.c:511 +msgid "E_levation:" +msgstr "Y_ükseltme" + +#: ../plug-ins/common/engrave.c:101 +msgid "Simulate an antique engraving" +msgstr "Sahte antika oyma" + +#: ../plug-ins/common/engrave.c:106 +msgid "En_grave..." +msgstr "Oy_ma..." + +#: ../plug-ins/common/engrave.c:180 +msgid "Engraving" +msgstr "Oyma" + +#: ../plug-ins/common/engrave.c:209 +msgid "Engrave" +msgstr "Oyma" + +#: ../plug-ins/common/engrave.c:244 ../plug-ins/common/file-html-table.c:611 +#: ../plug-ins/common/file-ps.c:3183 ../plug-ins/common/file-ps.c:3391 +#: ../plug-ins/common/file-raw.c:1071 ../plug-ins/common/film.c:1003 +#: ../plug-ins/common/smooth-palette.c:441 ../plug-ins/common/tile-paper.c:313 +#: ../plug-ins/common/tile.c:435 ../plug-ins/imagemap/imap_cmd_guides.c:175 +#: ../plug-ins/imagemap/imap_rectangle.c:410 +#: ../plug-ins/print/print-page-layout.c:254 +msgid "_Height:" +msgstr "_Yükseklik:" + +#: ../plug-ins/common/engrave.c:255 +msgid "_Limit line width" +msgstr "Hat genişliği _sınırı" + +#: ../plug-ins/common/file-aa.c:98 +msgid "ASCII art" +msgstr "ASCII sanat" + +#. Create the actual window. +#: ../plug-ins/common/file-aa.c:349 +msgid "Save as Text" +msgstr "Metin Olarak Kaydet" + +#: ../plug-ins/common/file-aa.c:371 +msgid "_Format:" +msgstr "_Biçim:" + +#: ../plug-ins/common/file-cel.c:111 ../plug-ins/common/file-cel.c:129 +msgid "KISS CEL" +msgstr "KISS CEL" + +#: ../plug-ins/common/file-cel.c:191 +msgid "Load KISS Palette" +msgstr "KISS Paletini Yükle" + +#. max. rows allocated +#. column, highest column ever used +#. -1 assume fsel is not available (and not attached to any drawable) +#. -1 assume there is no floating selection +#: ../plug-ins/common/file-cel.c:317 ../plug-ins/common/file-dicom.c:330 +#: ../plug-ins/common/file-gbr.c:366 ../plug-ins/common/file-gif-load.c:345 +#: ../plug-ins/common/file-gih.c:667 ../plug-ins/common/file-pat.c:335 +#: ../plug-ins/common/file-pcx.c:366 ../plug-ins/common/file-pdf.c:586 +#: ../plug-ins/common/file-pix.c:348 ../plug-ins/common/file-png.c:728 +#: ../plug-ins/common/file-pnm.c:499 ../plug-ins/common/file-ps.c:1042 +#: ../plug-ins/common/file-raw.c:673 ../plug-ins/common/file-sunras.c:486 +#: ../plug-ins/common/file-tga.c:447 ../plug-ins/common/file-tiff-load.c:603 +#: ../plug-ins/common/file-wmf.c:994 ../plug-ins/common/file-xbm.c:741 +#: ../plug-ins/common/file-xpm.c:352 ../plug-ins/common/file-xwd.c:520 +#: ../plug-ins/file-bmp/bmp-read.c:161 ../plug-ins/file-faxg3/faxg3.c:217 +#: ../plug-ins/file-fli/fli-gimp.c:502 ../plug-ins/file-ico/ico-load.c:654 +#: ../plug-ins/file-jpeg/jpeg-load.c:115 ../plug-ins/file-psd/psd-load.c:136 +#: ../plug-ins/file-sgi/sgi.c:330 ../plug-ins/file-xjt/xjt.c:3363 +#, c-format +msgid "Opening '%s'" +msgstr "'%s' açılıyor" + +#: ../plug-ins/common/file-cel.c:354 +msgid "Can't create a new image" +msgstr "Yeni görüntü oluşturulamadı" + +#: ../plug-ins/common/file-cel.c:443 +#, c-format +msgid "Unsupported bit depth (%d)!" +msgstr "Desteklenmeyen bit derinliği (%d)!" + +#. init the progress meter +#. And let's begin the progress +#: ../plug-ins/common/file-cel.c:588 ../plug-ins/common/file-gbr.c:652 +#: ../plug-ins/common/file-gif-save.c:768 ../plug-ins/common/file-gih.c:1280 +#: ../plug-ins/common/file-html-table.c:256 ../plug-ins/common/file-pat.c:481 +#: ../plug-ins/common/file-pcx.c:634 ../plug-ins/common/file-pix.c:529 +#: ../plug-ins/common/file-png.c:1278 ../plug-ins/common/file-pnm.c:982 +#: ../plug-ins/common/file-ps.c:1218 ../plug-ins/common/file-sunras.c:568 +#: ../plug-ins/common/file-tga.c:1175 ../plug-ins/common/file-tiff-save.c:693 +#: ../plug-ins/common/file-xbm.c:1039 ../plug-ins/common/file-xpm.c:637 +#: ../plug-ins/common/file-xwd.c:619 ../plug-ins/file-bmp/bmp-write.c:307 +#: ../plug-ins/file-fits/fits.c:481 ../plug-ins/file-fli/fli-gimp.c:718 +#: ../plug-ins/file-ico/ico-save.c:1002 ../plug-ins/file-jpeg/jpeg-save.c:282 +#: ../plug-ins/file-psd/psd-save.c:1640 ../plug-ins/file-sgi/sgi.c:574 +#: ../plug-ins/file-xjt/xjt.c:1710 +#, c-format +msgid "Saving '%s'" +msgstr "'%s' kaydediliyor" + +#: ../plug-ins/common/file-compressor.c:160 +msgid "gzip archive" +msgstr "gzip arşivi" + +#: ../plug-ins/common/file-compressor.c:181 +msgid "bzip archive" +msgstr "bzip arşivi" + +#: ../plug-ins/common/file-compressor.c:390 +msgid "No sensible file extension, saving as compressed XCF." +msgstr "Anlaşılmaz dosya uzantısı,sıkıştırılmış XCF olarak kaydet." + +#: ../plug-ins/common/file-compressor.c:572 +msgid "No sensible file extension, attempting to load with file magic." +msgstr "Uyumlu dosya uzantısı bulunamadı, File-Magic ile yükleme deneniyor." + +#: ../plug-ins/common/file-csource.c:112 +msgid "C source code" +msgstr "C kaynak kodu" + +#: ../plug-ins/common/file-csource.c:660 +msgid "Save as C-Source" +msgstr "C Kaynak Kodu olarak Kaydet" + +#: ../plug-ins/common/file-csource.c:691 +msgid "_Prefixed name:" +msgstr "_Önekli ad:" + +#: ../plug-ins/common/file-csource.c:700 +msgid "Co_mment:" +msgstr "_Açıklama:" + +#. Use Comment +#. +#: ../plug-ins/common/file-csource.c:707 +msgid "_Save comment to file" +msgstr "Yorumu dosyaya _kaydet" + +#. GLib types +#. +#: ../plug-ins/common/file-csource.c:719 +msgid "_Use GLib types (guint8*)" +msgstr "GLib türleri kullan (guint8*)" + +#. Use Macros +#. +#: ../plug-ins/common/file-csource.c:731 +msgid "Us_e macros instead of struct" +msgstr "Yapı birimi yerine iriller kullan" + +#. Use RLE +#. +#: ../plug-ins/common/file-csource.c:743 +msgid "Use _1 byte Run-Length-Encoding" +msgstr "Kulan _1 bayt Çalışıtr-Uzunluk-Kodlama" + +#. Alpha +#. +#: ../plug-ins/common/file-csource.c:755 +msgid "Sa_ve alpha channel (RGBA/RGB)" +msgstr "Görünür kanalını kay_det (RGBA/RGB)" + +#: ../plug-ins/common/file-csource.c:773 +msgid "Op_acity:" +msgstr "_Işık geçirmezlik:" + +#: ../plug-ins/common/file-desktop-link.c:83 +msgid "Desktop Link" +msgstr "Masaüstü Bağlantısı" + +#: ../plug-ins/common/file-desktop-link.c:173 +#, c-format +msgid "Error loading desktop file '%s': %s" +msgstr "Masaüstü dosyası yüklemede '%s' sorunu: %s" + +#: ../plug-ins/common/file-dicom.c:146 +msgid "DICOM image" +msgstr "DICOM görüntüsü" + +#: ../plug-ins/common/file-dicom.c:171 +msgid "Digital Imaging and Communications in Medicine image" +msgstr "Tıp fikrinde Dijital Görüntüleme ve İletişimleri" + +#: ../plug-ins/common/file-dicom.c:352 +#, c-format +msgid "'%s' is not a DICOM file." +msgstr "'%s' DICOM dosyası değil." + +#: ../plug-ins/common/file-dicom.c:769 ../plug-ins/common/file-pcx.c:666 +#: ../plug-ins/common/file-pnm.c:967 +msgid "Cannot save images with alpha channel." +msgstr "Görünür kanalı ile görüntüler kaydedilemez." + +#: ../plug-ins/common/file-dicom.c:784 ../plug-ins/common/file-ps.c:1203 +#: ../plug-ins/common/file-xwd.c:604 ../plug-ins/file-fits/fits.c:466 +#: ../plug-ins/file-xjt/xjt.c:1705 +msgid "Cannot operate on unknown image types." +msgstr "Türü tanınmadığı için görüntü üzerinde işlem yapılamadı" + +#: ../plug-ins/common/file-gbr.c:154 ../plug-ins/common/file-gbr.c:175 +msgid "GIMP brush" +msgstr "GIMP fırçası" + +#: ../plug-ins/common/file-gbr.c:392 ../plug-ins/common/file-pat.c:411 +#, c-format +msgid "Invalid header data in '%s': width=%lu, height=%lu, bytes=%lu" +msgstr "" +"'%s' içinde geçersiz başlık verisi: genişlik=%lu, yükseklik=%lu, bayt=%lu" + +#: ../plug-ins/common/file-gbr.c:416 ../plug-ins/common/file-gbr.c:428 +msgid "Unsupported brush format" +msgstr "Desteklenmeyen fırça biçimi" + +#: ../plug-ins/common/file-gbr.c:440 +#, c-format +msgid "Error in GIMP brush file '%s'" +msgstr "GIMP fırça dosyası '%s'de sorun" + +#: ../plug-ins/common/file-gbr.c:448 +#, c-format +msgid "Invalid UTF-8 string in brush file '%s'." +msgstr "'%s' fırça dosyası içinde geçersiz UTF-8 dizgisi." + +#: ../plug-ins/common/file-gbr.c:454 ../plug-ins/common/file-gih.c:510 +#: ../plug-ins/common/file-gih.c:1173 +#: ../plug-ins/gradient-flare/gradient-flare.c:3063 +msgid "Unnamed" +msgstr "Isimsiz" + +#: ../plug-ins/common/file-gbr.c:637 +msgid "GIMP brushes are either GRAYSCALE or RGBA" +msgstr "GIMP fırçaları ya GRİTONLAMALI veya RGBA" + +#: ../plug-ins/common/file-gbr.c:735 +msgid "Save as Brush" +msgstr "Fırça Olarak Kaydet" + +#. attach labels +#: ../plug-ins/common/file-gbr.c:762 ../plug-ins/common/grid.c:790 +msgid "Spacing:" +msgstr "Boşluk:" + +#: ../plug-ins/common/file-gbr.c:773 ../plug-ins/common/file-gih.c:925 +#: ../plug-ins/common/file-pat.c:571 ../plug-ins/gimpressionist/presets.c:666 +msgid "Description:" +msgstr "Açıklama:" + +#: ../plug-ins/common/file-gif-load.c:142 +#: ../plug-ins/common/file-gif-save.c:168 +msgid "GIF image" +msgstr "GIF görüntüsü" + +#: ../plug-ins/common/file-gif-load.c:357 +msgid "This is not a GIF file" +msgstr "Bu GIF dosyası değil" + +#: ../plug-ins/common/file-gif-load.c:396 +msgid "Non-square pixels. Image might look squashed." +msgstr "Kare olmayan benekler. Resim düzgün görünmeyebilir." + +#: ../plug-ins/common/file-gif-load.c:913 +#, c-format +msgid "Background (%d%s)" +msgstr "Arkaplan (%d%s)" + +#: ../plug-ins/common/file-gif-load.c:936 +#, c-format +msgid "Opening '%s' (frame %d)" +msgstr "'%s' açılıyor (çerçeve %d)" + +#: ../plug-ins/common/file-gif-load.c:965 ../plug-ins/common/iwarp.c:791 +#: ../plug-ins/common/iwarp.c:826 +#, c-format +msgid "Frame %d" +msgstr "Çerçeve %d" + +#: ../plug-ins/common/file-gif-load.c:967 +#, c-format +msgid "Frame %d (%d%s)" +msgstr "Çerçeve %d (%d%s)" + +#: ../plug-ins/common/file-gif-load.c:998 +#, c-format +msgid "" +"GIF: Undocumented GIF composite type %d is not handled. Animation might not " +"play or re-save perfectly." +msgstr "" +"GIF: Belgelenmemiş GIF %d düzenleme biçimi kullanılamadı. Animasyon düzgün " +"oynatılamayabilir veya kaydedilemeyebilir." + +#: ../plug-ins/common/file-gif-save.c:447 +msgid "Couldn't simply reduce colors further. Saving as opaque." +msgstr "Renkleri daha fazla düşürülemiyor. Opak olarak kaydediyor." + +#: ../plug-ins/common/file-gif-save.c:562 +#, c-format +msgid "" +"Unable to save '%s'. The GIF file format does not support images that are " +"more than %d pixels wide or tall." +msgstr "" +"'%s' kaydedilemedi. GIF dosya biçimi, %d benekten daha geniş ya da uzun olan " +"resimleri desteklemez." + +#: ../plug-ins/common/file-gif-save.c:673 +msgid "" +"The GIF format only supports comments in 7bit ASCII encoding. No comment is " +"saved." +msgstr "" +"GIF dosya biçimi yorumları sadece 7bit ASCII kodlamasında destekler. Hiçbir " +"yorum kaydedilmedi." + +#: ../plug-ins/common/file-gif-save.c:732 +msgid "" +"Cannot save RGB color images. Convert to indexed color or grayscale first." +msgstr "" +"RGB renkli resimleri kaydedilemedi. Öncelikle ya sıralanmış ya da gri " +"tonlamaları renklere çevirin." + +#: ../plug-ins/common/file-gif-save.c:910 +msgid "Delay inserted to prevent evil CPU-sucking animation." +msgstr "Aşırı işlemci yüklemesini önlemek için ekli olanı geciktir." + +#: ../plug-ins/common/file-gif-save.c:950 +msgid "" +"The image you are trying to save as a GIF contains layers which extend " +"beyond the actual borders of the image." +msgstr "" +"GIF olarak saklamaya çalıştığınız resim normal sınırlarını aşan katmanlar " +"içermektedir." + +#: ../plug-ins/common/file-gif-save.c:967 +msgid "" +"The GIF file format does not allow this. You may choose whether to crop all " +"of the layers to the image borders, or cancel this save." +msgstr "" +"GIF dosya biçimi buna izin vermemektedir. Bütün katmanları resim sınırlarına " +"kırpabilir ya da kaydetmekten vazgeçebilirsiniz." + +#: ../plug-ins/common/file-gif-save.c:1008 +msgid "Save as GIF" +msgstr "GIF olarak kaydet" + +#. regular gif parameter settings +#: ../plug-ins/common/file-gif-save.c:1030 +msgid "GIF Options" +msgstr "GIF Seçenekleri" + +#: ../plug-ins/common/file-gif-save.c:1036 +msgid "I_nterlace" +msgstr "B_irleştirmek" + +#: ../plug-ins/common/file-gif-save.c:1052 +msgid "_GIF comment:" +msgstr "_GIF yorumu:" + +#. additional animated gif parameter settings +#: ../plug-ins/common/file-gif-save.c:1110 +msgid "Animated GIF Options" +msgstr "Canlandırmalı GIF Seçenekleri" + +#: ../plug-ins/common/file-gif-save.c:1116 +msgid "_Loop forever" +msgstr "Sonsuz _döngü" + +#: ../plug-ins/common/file-gif-save.c:1129 +msgid "_Delay between frames where unspecified:" +msgstr "_Belirtilmemiş kareler arasında gecikme uygula:" + +#: ../plug-ins/common/file-gif-save.c:1144 ../plug-ins/common/file-mng.c:1507 +msgid "milliseconds" +msgstr "milisaniye" + +#: ../plug-ins/common/file-gif-save.c:1154 +msgid "_Frame disposal where unspecified:" +msgstr "_Belirtilmemiş kareleri çıkar:" + +#: ../plug-ins/common/file-gif-save.c:1158 +msgid "I don't care" +msgstr "Umurumda değil" + +#: ../plug-ins/common/file-gif-save.c:1160 +msgid "Cumulative layers (combine)" +msgstr "Birikimli katmanlar (birleştirme)" + +#: ../plug-ins/common/file-gif-save.c:1162 +msgid "One frame per layer (replace)" +msgstr "Katman başına bir çerçeve (değiştirme)" + +#. The "Always use default values" toggles +#: ../plug-ins/common/file-gif-save.c:1178 +msgid "_Use delay entered above for all frames" +msgstr "_Yukarıda girilen gecikmeyi tüm karelere uygula" + +#: ../plug-ins/common/file-gif-save.c:1188 +msgid "U_se disposal entered above for all frames" +msgstr "Üstte girilen düzeni tüm karelerde k_ullan" + +#: ../plug-ins/common/file-gif-save.c:2341 +msgid "Error writing output file." +msgstr "Çıktı dosyası yazılırken hata." + +#: ../plug-ins/common/file-gif-save.c:2411 +#, c-format +msgid "The default comment is limited to %d characters." +msgstr "Varsayılan açıklama %d karakterle sınırlıdır." + +#: ../plug-ins/common/file-gih.c:209 ../plug-ins/common/file-gih.c:230 +msgid "GIMP brush (animated)" +msgstr "GIMP fırça (hareketli)" + +#: ../plug-ins/common/file-gih.c:324 +#, c-format +msgid "Layer %s doesn't have an alpha channel, skipped" +msgstr "%s katmanı görünür kanalına sahip değil, atlanıyor" + +#: ../plug-ins/common/file-gih.c:503 +msgid "Error in GIMP brush pipe file." +msgstr "GIMP fırça boru dosyasında hata." + +#: ../plug-ins/common/file-gih.c:569 +msgid "GIMP brush file appears to be corrupted." +msgstr "Hasarlı GIMP fırça dosyası." + +#: ../plug-ins/common/file-gih.c:718 +msgid "Couldn't load one brush in the pipe, giving up." +msgstr "Borudaki bir fırça yüklenemedi, vazgeçiliyor." + +#: ../plug-ins/common/file-gih.c:881 +msgid "Save as Brush Pipe" +msgstr "Fırça Borusu olarak kaydet." + +#: ../plug-ins/common/file-gih.c:911 +msgid "Spacing (percent):" +msgstr "Boşluk (yüzde):" + +#: ../plug-ins/common/file-gih.c:978 +msgid "Pixels" +msgstr "Piksel" + +#: ../plug-ins/common/file-gih.c:983 +msgid "Cell size:" +msgstr "Hücre boyutu:" + +#: ../plug-ins/common/file-gih.c:995 +msgid "Number of cells:" +msgstr "Hücre sayısı:" + +#: ../plug-ins/common/file-gih.c:1020 +msgid " Rows of " +msgstr " Dizisi " + +#: ../plug-ins/common/file-gih.c:1032 +msgid " Columns on each layer" +msgstr " Her katman üstündeki sütunlar" + +#: ../plug-ins/common/file-gih.c:1036 +msgid " (Width Mismatch!) " +msgstr " (Uyuşmayan Genişlik!) " + +#: ../plug-ins/common/file-gih.c:1040 +msgid " (Height Mismatch!) " +msgstr " (Uyuşmayan Yükseklik!) " + +#: ../plug-ins/common/file-gih.c:1045 +msgid "Display as:" +msgstr "Farklı göster:" + +#: ../plug-ins/common/file-gih.c:1054 +msgid "Dimension:" +msgstr "Boyut:" + +#: ../plug-ins/common/file-gih.c:1129 +msgid "Ranks:" +msgstr "Sıralamalar:" + +#: ../plug-ins/common/file-header.c:77 +msgid "C source code header" +msgstr "C kaynak kod başlığı" + +#: ../plug-ins/common/file-html-table.c:156 +msgid "HTML table" +msgstr "HTML tablosu" + +#: ../plug-ins/common/file-html-table.c:409 +msgid "Save as HTML table" +msgstr "HTML tablosu olarak kaydet" + +#: ../plug-ins/common/file-html-table.c:436 +msgid "Warning" +msgstr "Uyarı" + +#: ../plug-ins/common/file-html-table.c:447 +msgid "" +"You are about to create a huge\n" +"HTML file which will most likely\n" +"crash your browser." +msgstr "" +"Tarayıcınızın çökmesine neden\n" +"olacak büyük bir HTML dosyası\n" +"yaratmak üzeresiniz." + +#. HTML Page Options +#: ../plug-ins/common/file-html-table.c:456 +msgid "HTML Page Options" +msgstr "HTML Sayfa Seçenekleri" + +#: ../plug-ins/common/file-html-table.c:463 +msgid "_Generate full HTML document" +msgstr "_Tam HTML belgesi oluştur" + +#: ../plug-ins/common/file-html-table.c:469 +msgid "" +"If checked GTM will output a full HTML document with , , etc. " +"tags instead of just the table html." +msgstr "" +"Eğer GTM seçerseniz, belge tablo kodlarının yanında , , gibi " +"html kodları ile birlikte aktarılacaktır." + +#. HTML Table Creation Options +#: ../plug-ins/common/file-html-table.c:482 +msgid "Table Creation Options" +msgstr "Tablo Oluşturma Seçenekleri" + +#: ../plug-ins/common/file-html-table.c:490 +msgid "_Use cellspan" +msgstr "_Hücre genişliğini kullan" + +#: ../plug-ins/common/file-html-table.c:496 +msgid "" +"If checked GTM will replace any rectangular sections of identically colored " +"blocks with one large cell with ROWSPAN and COLSPAN values." +msgstr "" +"Eğer denetlenen GTM, ROWSPAN ve COLSPAN değelerini alan bir geniş hücre ile " +"aynı şekilde boyanmış engelleri olan herhangi bir bölümlenmiş dikdörtgen " +"yerine geçecekse." + +#: ../plug-ins/common/file-html-table.c:505 +msgid "Co_mpress TD tags" +msgstr "TD etiketlerini sı_Kıştır" + +#: ../plug-ins/common/file-html-table.c:511 +msgid "" +"Checking this tag will cause GTM to leave no whitespace between the TD tags " +"and the cellcontent. This is only necessary for pixel level positioning " +"control." +msgstr "" +"Bu etiketi denetlemek, GTM'nin TD etiketleri ve hücre içeriği arasında " +"beyazboşluk bırakmamasına neden olacaktır. Bu yalnızca benek konumlandırması " +"denetimi için gereklidir." + +#: ../plug-ins/common/file-html-table.c:521 +msgid "C_aption" +msgstr "Ba_şlık" + +#: ../plug-ins/common/file-html-table.c:527 +msgid "Check if you would like to have the table captioned." +msgstr "Başlıklı tablo oluşturmak istiyorsanız işaretleyin." + +#: ../plug-ins/common/file-html-table.c:542 +msgid "The text for the table caption." +msgstr "Çizelge başlığı için metin." + +#: ../plug-ins/common/file-html-table.c:555 +msgid "C_ell content:" +msgstr "H_ücre içeriği:" + +#: ../plug-ins/common/file-html-table.c:559 +msgid "The text to go into each cell." +msgstr "Her hücreye konacak metin." + +#. HTML Table Options +#: ../plug-ins/common/file-html-table.c:569 +msgid "Table Options" +msgstr "Tablo Seçenekleri" + +#: ../plug-ins/common/file-html-table.c:580 +msgid "_Border:" +msgstr "_Kenarlık:" + +#: ../plug-ins/common/file-html-table.c:584 +msgid "The number of pixels in the table border." +msgstr "Tablo kenarlıklarındaki benek sayısı" + +#: ../plug-ins/common/file-html-table.c:599 +msgid "The width for each table cell. Can be a number or a percent." +msgstr "Her tablo hücresi için genişlik. Sayı veya yüzde olabilir." + +#: ../plug-ins/common/file-html-table.c:615 +msgid "The height for each table cell. Can be a number or a percent." +msgstr "Her tablo hücresi için yükseklik. Sayı veya yüzde olabilir." + +#: ../plug-ins/common/file-html-table.c:626 +msgid "Cell-_padding:" +msgstr "Hücre-_dolgusu:" + +#: ../plug-ins/common/file-html-table.c:630 +msgid "The amount of cellpadding." +msgstr "Hücredolgusu miktarı." + +#: ../plug-ins/common/file-html-table.c:639 +msgid "Cell-_spacing:" +msgstr "Hücre-_aralığı:" + +#: ../plug-ins/common/file-html-table.c:643 +msgid "The amount of cellspacing." +msgstr "Hücre boşluğunun miktarı." + +#. Inform the user that we couldn't losslessly save the +#. * transparency & just use the full palette +#: ../plug-ins/common/file-mng.c:498 ../plug-ins/common/file-png.c:1761 +msgid "Couldn't losslessly save transparency, saving opacity instead." +msgstr "" +"Kayıp olmadan saydamlık kaydedilemedi, bunun yerine opaklık kaydediliyor." + +#: ../plug-ins/common/file-mng.c:1287 +msgid "Save as MNG" +msgstr "MNG olarak kaydet" + +#: ../plug-ins/common/file-mng.c:1307 +msgid "MNG Options" +msgstr "MNG seçenekleri" + +#: ../plug-ins/common/file-mng.c:1313 +msgid "Interlace" +msgstr "birleştirmek" + +#: ../plug-ins/common/file-mng.c:1325 +msgid "Save background color" +msgstr "Artalan rengini kaydet" + +#: ../plug-ins/common/file-mng.c:1336 +msgid "Save gamma" +msgstr "Gamayı kaydet" + +#: ../plug-ins/common/file-mng.c:1346 +msgid "Save resolution" +msgstr "Çözünürlüğü kaydet" + +#: ../plug-ins/common/file-mng.c:1357 +msgid "Save creation time" +msgstr "Oluşturulma zamanını kaydet" + +#: ../plug-ins/common/file-mng.c:1376 +msgid "PNG" +msgstr "PNG" + +#: ../plug-ins/common/file-mng.c:1377 +msgid "JNG" +msgstr "JNG" + +#: ../plug-ins/common/file-mng.c:1380 +msgid "PNG + delta PNG" +msgstr "PNG + delta PNG" + +#: ../plug-ins/common/file-mng.c:1381 +msgid "JNG + delta PNG" +msgstr "JNG + delta PNG" + +#: ../plug-ins/common/file-mng.c:1382 +msgid "All PNG" +msgstr "Tüm PNG" + +#: ../plug-ins/common/file-mng.c:1383 +msgid "All JNG" +msgstr "Tüm JNG" + +#: ../plug-ins/common/file-mng.c:1395 +msgid "Default chunks type:" +msgstr "Varsayılan parçalrın türü:" + +#: ../plug-ins/common/file-mng.c:1398 +msgid "Combine" +msgstr "Birleştir" + +#: ../plug-ins/common/file-mng.c:1399 +msgid "Replace" +msgstr "Üstüne yaz" + +#: ../plug-ins/common/file-mng.c:1410 +msgid "Default frame disposal:" +msgstr "Varsayılan çerçeve düzeni:" + +#: ../plug-ins/common/file-mng.c:1422 +msgid "PNG compression level:" +msgstr "PNG sıkıştırma seviyesi:" + +#: ../plug-ins/common/file-mng.c:1430 ../plug-ins/common/file-png.c:1909 +msgid "Choose a high compression level for small file size" +msgstr "Küçük dosya boyutu için yüksek sıkıştırma düzeyi seçin" + +#: ../plug-ins/common/file-mng.c:1444 +msgid "JPEG compression quality:" +msgstr "JPEG sıkıştırma kalitesi:" + +#: ../plug-ins/common/file-mng.c:1461 +msgid "JPEG smoothing factor:" +msgstr "JPEG yumuşatma çarpanı:" + +#: ../plug-ins/common/file-mng.c:1471 +msgid "Animated MNG Options" +msgstr "Hareketli MNG Seçenekleri" + +#: ../plug-ins/common/file-mng.c:1477 +msgid "Loop" +msgstr "Döngü" + +#: ../plug-ins/common/file-mng.c:1491 +msgid "Default frame delay:" +msgstr "Öntanımlı çerçeve gecikmesi:" + +#: ../plug-ins/common/file-mng.c:1564 +msgid "MNG animation" +msgstr "MNG animasyonu" + +#: ../plug-ins/common/file-pat.c:123 ../plug-ins/common/file-pat.c:145 +msgid "GIMP pattern" +msgstr "GIMP deseni" + +#: ../plug-ins/common/file-pat.c:371 +#, c-format +msgid "Invalid UTF-8 string in pattern file '%s'." +msgstr "'%s' desen dosyası içinde geçersiz UTF-8 dizgisi." + +#: ../plug-ins/common/file-pat.c:543 +msgid "Save as Pattern" +msgstr "Desen olarak Kaydet" + +#: ../plug-ins/common/file-pcx.c:133 ../plug-ins/common/file-pcx.c:152 +msgid "ZSoft PCX image" +msgstr "ZSoft PCX görüntüsü" + +#: ../plug-ins/common/file-pcx.c:372 +#, c-format +msgid "Could not read header from '%s'" +msgstr "'%s' içindeki başlık okunamadı" + +#: ../plug-ins/common/file-pcx.c:382 +#, c-format +msgid "'%s' is not a PCX file" +msgstr "'%s' PCX dosyası değil" + +#: ../plug-ins/common/file-pcx.c:395 ../plug-ins/file-bmp/bmp-read.c:638 +#: ../plug-ins/file-psd/psd-load.c:302 +#, c-format +msgid "Unsupported or invalid image width: %d" +msgstr "Desteklenmeyen veya geçersiz görüntü genişliği: %d" + +#: ../plug-ins/common/file-pcx.c:400 ../plug-ins/file-bmp/bmp-read.c:644 +#: ../plug-ins/file-psd/psd-load.c:294 +#, c-format +msgid "Unsupported or invalid image height: %d" +msgstr "Desteklenmeyen veya geçersiz görüntü yüksekliği: %d" + +#: ../plug-ins/common/file-pcx.c:405 +msgid "Invalid number of bytes per line in PCX header" +msgstr "PCX başlığındaki satır başına baytların geçersiz sayısı" + +#: ../plug-ins/common/file-pcx.c:412 +#, c-format +msgid "Image dimensions too large: width %d x height %d" +msgstr "Görüntü boyutları çok büyük: genişlik %d x yükseklik %d" + +#: ../plug-ins/common/file-pcx.c:460 +msgid "Unusual PCX flavour, giving up" +msgstr "Beklenmedik PCX davranışı, vaz geçiliyor" + +#: ../plug-ins/common/file-pcx.c:683 +#, c-format +msgid "Invalid X offset: %d" +msgstr "Geçersiz X konumu: %d" + +#: ../plug-ins/common/file-pcx.c:689 +#, c-format +msgid "Invalid Y offset: %d" +msgstr "Geçersiz Y konumu: %d" + +#: ../plug-ins/common/file-pcx.c:695 +#, c-format +msgid "Right border out of bounds (must be < %d): %d" +msgstr "Sağ kenarlık sınırlamaların dışında (olmalı < %d): %d" + +#: ../plug-ins/common/file-pcx.c:702 +#, c-format +msgid "Bottom border out of bounds (must be < %d): %d" +msgstr "Alt kenarlık sınırlamaların dışında (olmalı < %d): %d" + +#: ../plug-ins/common/file-pcx.c:759 +#, c-format +msgid "Writing to file '%s' failed: %s" +msgstr "'%s' dosyasına yazılamadı: %s" + +#: ../plug-ins/common/file-pdf.c:288 +msgid "Portable Document Format" +msgstr "Taşınabilir Belge Biçimi" + +#: ../plug-ins/common/file-pdf.c:620 +#, c-format +msgid "%s-%s" +msgstr "%s-%s" + +#: ../plug-ins/common/file-pdf.c:622 ../plug-ins/common/file-ps.c:1125 +#, c-format +msgid "%s-pages" +msgstr "%s-sayfa" + +#: ../plug-ins/common/file-pdf.c:808 +msgid "Import from PDF" +msgstr "PDF'den al" + +#: ../plug-ins/common/file-pdf.c:813 ../plug-ins/common/file-ps.c:3102 +#: ../plug-ins/common/file-tiff-load.c:483 +msgid "_Import" +msgstr "İçe _Aktar" + +#: ../plug-ins/common/file-pdf.c:880 +msgid "_Width (pixels):" +msgstr "_Genişlik (benek):" + +#: ../plug-ins/common/file-pdf.c:881 +msgid "_Height (pixels):" +msgstr "_Yükseklik (benek):" + +#: ../plug-ins/common/file-pdf.c:883 +msgid "_Resolution:" +msgstr "_Çözünürlük:" + +#: ../plug-ins/common/file-pdf.c:1157 +#, c-format +msgid "pixels/%s" +msgstr "benek/%s" + +#: ../plug-ins/common/file-pix.c:142 ../plug-ins/common/file-pix.c:159 +msgid "Alias Pix image" +msgstr "Pix görüntüsü kısaltması" + +#: ../plug-ins/common/file-png.c:263 ../plug-ins/common/file-png.c:284 +#: ../plug-ins/common/file-png.c:304 ../plug-ins/common/file-png.c:321 +msgid "PNG image" +msgstr "PNG görüntüsü" + +#: ../plug-ins/common/file-png.c:628 +#, c-format +msgid "Error loading PNG file: %s" +msgstr "PNG dosyasında yükleme hatası: %s" + +#: ../plug-ins/common/file-png.c:703 +#, c-format +msgid "Error while reading '%s'. File corrupted?" +msgstr "'%s' okunurken hata oluştu. Bozuk dosya mı?" + +#: ../plug-ins/common/file-png.c:834 +#, c-format +msgid "Unknown color model in PNG file '%s'." +msgstr "PNG dosyası '%s' içinde bilinmeyen renk modeli." + +#: ../plug-ins/common/file-png.c:889 +msgid "" +"The PNG file specifies an offset that caused the layer to be positioned " +"outside the image." +msgstr "" +"Png dosyası bir göreli konum belirtir katmanın resimin dışında da " +"hizalanabilmesi için." + +#: ../plug-ins/common/file-png.c:1255 +#, c-format +msgid "Error while saving '%s'. Could not save image." +msgstr "'%s' kaydedilirken hata oluştu. Görüntü kaydedilemedi." + +#: ../plug-ins/common/file-png.c:1786 +msgid "Save as PNG" +msgstr "PNG olarak kaydet" + +#: ../plug-ins/common/file-png.c:1818 +msgid "_Interlacing (Adam7)" +msgstr "_Birleştirme (Adam 7)" + +#: ../plug-ins/common/file-png.c:1829 +msgid "Save _background color" +msgstr "_Artalan rengini kaydet" + +#: ../plug-ins/common/file-png.c:1837 +msgid "Save _gamma" +msgstr "_Gamayı kaydet" + +#: ../plug-ins/common/file-png.c:1847 +msgid "Save layer o_ffset" +msgstr "O_fset baskı tabakasını kaydet" + +#: ../plug-ins/common/file-png.c:1856 +msgid "Save _resolution" +msgstr "_Çözünürlüğü kaydet" + +#: ../plug-ins/common/file-png.c:1866 +msgid "Save creation _time" +msgstr "Oluşturma _zamanını kaydet" + +#: ../plug-ins/common/file-png.c:1875 +msgid "Save comme_nt" +msgstr "Açıkla_mayı kaydet" + +#: ../plug-ins/common/file-png.c:1891 +msgid "Save color _values from transparent pixels" +msgstr "Saydam beneklerden renk _değerlerini kaydet" + +#: ../plug-ins/common/file-png.c:1905 +msgid "Co_mpression level:" +msgstr "Sı_kıştırma seviyesi:" + +#: ../plug-ins/common/file-png.c:1923 ../plug-ins/file-jpeg/jpeg-save.c:1186 +msgid "_Load Defaults" +msgstr "Öntanımlı Ayarları _Yükle" + +#: ../plug-ins/common/file-png.c:1931 +msgid "S_ave Defaults" +msgstr "Varsayılanları K_aydet" + +#: ../plug-ins/common/file-pnm.c:248 +msgid "PNM Image" +msgstr "PNM Görüntüsü" + +#: ../plug-ins/common/file-pnm.c:268 +msgid "PNM image" +msgstr "PNM görüntüsü" + +#: ../plug-ins/common/file-pnm.c:280 +msgid "PBM image" +msgstr "PBM görüntüsü" + +#: ../plug-ins/common/file-pnm.c:292 +msgid "PGM image" +msgstr "PGM görüntüsü" + +#: ../plug-ins/common/file-pnm.c:304 +msgid "PPM image" +msgstr "PPM görüntüsü" + +#: ../plug-ins/common/file-pnm.c:528 ../plug-ins/common/file-pnm.c:550 +#: ../plug-ins/common/file-pnm.c:559 ../plug-ins/common/file-pnm.c:570 +#: ../plug-ins/common/file-pnm.c:658 ../plug-ins/common/file-pnm.c:728 +msgid "Premature end of file." +msgstr "Dosyanın erken bitişi." + +#: ../plug-ins/common/file-pnm.c:530 +msgid "Invalid file." +msgstr "Geçersiz dosya." + +#: ../plug-ins/common/file-pnm.c:544 +msgid "File not in a supported format." +msgstr "Dosya desteklenecek biçimde değil." + +#: ../plug-ins/common/file-pnm.c:553 +msgid "Invalid X resolution." +msgstr "Geçersiz X çözünürlüğü" + +#: ../plug-ins/common/file-pnm.c:555 +msgid "Image width is larger than GIMP can handle." +msgstr "Görüntü genişliği GIMP'in kaldırabileceğinden daha büyük." + +#: ../plug-ins/common/file-pnm.c:562 +msgid "Invalid Y resolution." +msgstr "Geçersiz Y çözünürlüğü." + +#: ../plug-ins/common/file-pnm.c:564 +msgid "Image height is larger than GIMP can handle." +msgstr "Görüntü yüksekliği GIMP'in kaldırabileceğinden daha fazla." + +#: ../plug-ins/common/file-pnm.c:576 +msgid "Unsupported maximum value." +msgstr "Desteklenmeyen en yüksek değer." + +#: ../plug-ins/common/file-pnm.c:781 +msgid "Error reading file." +msgstr "Dosya okunurken hata:" + +#: ../plug-ins/common/file-pnm.c:1186 +msgid "Save as PNM" +msgstr "PNM olarak kaydet" + +#. file save type +#: ../plug-ins/common/file-pnm.c:1203 +msgid "Data formatting" +msgstr "Veri biçimlendirmesi" + +#: ../plug-ins/common/file-pnm.c:1207 +msgid "Raw" +msgstr "Ham" + +#: ../plug-ins/common/file-pnm.c:1208 +msgid "Ascii" +msgstr "Ascii" + +#: ../plug-ins/common/file-ps.c:599 ../plug-ins/common/file-ps.c:691 +msgid "PostScript document" +msgstr "PostScript belgesi" + +#: ../plug-ins/common/file-ps.c:618 ../plug-ins/common/file-ps.c:707 +msgid "Encapsulated PostScript image" +msgstr "Kısaltılmış DipNot görüntüsü" + +#: ../plug-ins/common/file-ps.c:638 +msgid "PDF document" +msgstr "PDF belgesi" + +#: ../plug-ins/common/file-ps.c:1050 +#, c-format +msgid "Could not interpret Postscript file '%s'" +msgstr "Postscript dosyası '%s' yorumlanamıyor." + +#: ../plug-ins/common/file-ps.c:1192 +#, c-format +msgid "PostScript save cannot handle images with alpha channels" +msgstr "PostScript kaydı görüntü görünür kanalları ile yapılamıyor" + +#: ../plug-ins/common/file-ps.c:1730 ../plug-ins/common/file-ps.c:1765 +#, c-format +msgid "" +"Error starting Ghostscript. Make sure that Ghostscript is installed and - if " +"necessary - use the environment variable GS_PROG to tell GIMP about its " +"location.\n" +"(%s)" +msgstr "" +"Ghostscript başlatılırken hata. Ghostscript'in yüklendiğinden ve -eğer " +"gerekliyse- GS_PROG ortam değişkeninin GIMP'e konumunu bildirmesi için " +"kullandığınızdan emin olun.\n" +"(%s)" + +#: ../plug-ins/common/file-ps.c:1932 ../plug-ins/common/file-tiff-load.c:999 +#, c-format +msgid "Page %d" +msgstr "Sayfa %d" + +#: ../plug-ins/common/file-ps.c:2602 ../plug-ins/common/file-ps.c:2735 +#: ../plug-ins/common/file-ps.c:2887 ../plug-ins/common/file-ps.c:3013 +#: ../plug-ins/common/file-sunras.c:1504 ../plug-ins/common/file-sunras.c:1612 +#: ../plug-ins/file-fits/fits.c:850 ../plug-ins/file-fits/fits.c:974 +msgid "Write error occurred" +msgstr "Yazım hatası oluştu" + +#: ../plug-ins/common/file-ps.c:3097 +msgid "Import from PostScript" +msgstr "PostScript' ten içeri aktar" + +#. Rendering +#: ../plug-ins/common/file-ps.c:3140 +msgid "Rendering" +msgstr "Taranıyor" + +#. Resolution +#: ../plug-ins/common/file-ps.c:3156 ../plug-ins/common/file-svg.c:929 +#: ../plug-ins/common/file-wmf.c:692 +msgid "Resolution:" +msgstr "Çözünürlük:" + +#: ../plug-ins/common/file-ps.c:3195 +msgid "Pages:" +msgstr "Sayfa:" + +#: ../plug-ins/common/file-ps.c:3202 +msgid "Pages to load (e.g.: 1-4 or 1,3,5-7)" +msgstr "Yüklenecek sayfalar (ör.: 1-4 veya 1,3,5-7)" + +#: ../plug-ins/common/file-ps.c:3206 ../plug-ins/common/sphere-designer.c:2646 +msgid "Layers" +msgstr "Katmanlar" + +#: ../plug-ins/common/file-ps.c:3208 +msgid "Images" +msgstr "Görüntüler" + +#: ../plug-ins/common/file-ps.c:3211 +msgid "Open as" +msgstr "Farklı aç" + +#: ../plug-ins/common/file-ps.c:3215 +msgid "Try Bounding Box" +msgstr "Çevreleyen Kutuyu Dene" + +#. Colouring +#: ../plug-ins/common/file-ps.c:3228 +msgid "Coloring" +msgstr "Renklendirme" + +#: ../plug-ins/common/file-ps.c:3232 +msgid "B/W" +msgstr "S/B" + +#: ../plug-ins/common/file-ps.c:3234 ../plug-ins/common/file-xpm.c:479 +#: ../plug-ins/gimpressionist/color.c:66 +#: ../plug-ins/gimpressionist/general.c:170 +#: ../plug-ins/imagemap/imap_menu.c:213 +msgid "Color" +msgstr "Renk" + +#: ../plug-ins/common/file-ps.c:3235 ../plug-ins/file-fits/fits.c:1033 +msgid "Automatic" +msgstr "Otomatik" + +#: ../plug-ins/common/file-ps.c:3245 +msgid "Text antialiasing" +msgstr "Metin yumuşatma" + +#: ../plug-ins/common/file-ps.c:3250 ../plug-ins/common/file-ps.c:3262 +msgid "Weak" +msgstr "Zayıf" + +#: ../plug-ins/common/file-ps.c:3251 ../plug-ins/common/file-ps.c:3263 +msgid "Strong" +msgstr "Güçlü" + +#: ../plug-ins/common/file-ps.c:3257 +msgid "Graphic antialiasing" +msgstr "Grafik yumuşatma" + +#: ../plug-ins/common/file-ps.c:3335 +msgid "Save as PostScript" +msgstr "PostScript olarak kaydet" + +#. Image Size +#: ../plug-ins/common/file-ps.c:3366 +msgid "Image Size" +msgstr "Görüntü Boyutu" + +#: ../plug-ins/common/file-ps.c:3415 +msgid "_Keep aspect ratio" +msgstr "En-Boy oranını _Sakla" + +#: ../plug-ins/common/file-ps.c:3421 +msgid "" +"When toggled, the resulting image will be scaled to fit into the given size " +"without changing the aspect ratio." +msgstr "" +"Seçildiği zaman, elde edilecek olan görüntü en-boy oranı değişmeden verilen " +"boyuta ölçeklenecek." + +#. Unit +#: ../plug-ins/common/file-ps.c:3431 +msgid "Unit" +msgstr "Birim" + +#: ../plug-ins/common/file-ps.c:3435 +msgid "_Inch" +msgstr "_İnç" + +#: ../plug-ins/common/file-ps.c:3436 +msgid "_Millimeter" +msgstr "_Milimetre" + +#. Rotation +#: ../plug-ins/common/file-ps.c:3447 +#: ../plug-ins/map-object/map-object-ui.c:1035 +msgid "Rotation" +msgstr "Döndürme" + +#. Format +#: ../plug-ins/common/file-ps.c:3462 +msgid "Output" +msgstr "Çıktı" + +#: ../plug-ins/common/file-ps.c:3468 +msgid "_PostScript level 2" +msgstr "_PostScript seviye 2" + +#: ../plug-ins/common/file-ps.c:3477 +msgid "_Encapsulated PostScript" +msgstr "_Kısaltılmış DipNot" + +#: ../plug-ins/common/file-ps.c:3486 +msgid "P_review" +msgstr "Ö_nizleme" + +#: ../plug-ins/common/file-ps.c:3507 +msgid "Preview _size:" +msgstr "Önizleme _boyutu:" + +#: ../plug-ins/common/file-psp.c:599 ../plug-ins/common/file-psp.c:623 +msgid "Paint Shop Pro image" +msgstr "Paint Shop Pro görüntüsü" + +#: ../plug-ins/common/file-psp.c:640 +msgid "Save as PSP" +msgstr "PSP olarak kaydet" + +#. file save type +#: ../plug-ins/common/file-psp.c:657 +msgid "Data Compression" +msgstr "Veri Sıkıştırma" + +#: ../plug-ins/common/file-psp.c:662 +msgid "RLE" +msgstr "RLE" + +#: ../plug-ins/common/file-psp.c:663 +msgid "LZ77" +msgstr "LZ77" + +#: ../plug-ins/common/file-raw.c:182 ../plug-ins/common/file-raw.c:197 +msgid "Raw image data" +msgstr "Ham görüntü verisi" + +#: ../plug-ins/common/file-raw.c:982 +msgid "Load Image from Raw Data" +msgstr "Görüntüyü Ham Veriden Yükle" + +#: ../plug-ins/common/file-raw.c:1015 +msgid "Image" +msgstr "Görüntü" + +#: ../plug-ins/common/file-raw.c:1026 +msgid "RGB Alpha" +msgstr "RGB Görünür" + +#: ../plug-ins/common/file-raw.c:1027 +msgid "Planar RGB" +msgstr "Düzlemsel RGB" + +#: ../plug-ins/common/file-raw.c:1028 +msgid "Indexed" +msgstr "Sıralanmış" + +#: ../plug-ins/common/file-raw.c:1029 +msgid "Indexed Alpha" +msgstr "Sıralanmış Görünür" + +#: ../plug-ins/common/file-raw.c:1034 +msgid "Image _Type:" +msgstr "Görüntü _Türü:" + +#: ../plug-ins/common/file-raw.c:1084 +msgid "Palette" +msgstr "Palet" + +#: ../plug-ins/common/file-raw.c:1094 ../plug-ins/common/file-raw.c:1193 +msgid "R, G, B (normal)" +msgstr "R, G, B (normal)" + +#: ../plug-ins/common/file-raw.c:1095 ../plug-ins/common/file-raw.c:1195 +msgid "B, G, R, X (BMP style)" +msgstr "B, G, R, X (BMP biçemi)" + +#: ../plug-ins/common/file-raw.c:1100 +msgid "_Palette Type:" +msgstr "_Palet Türü:" + +#: ../plug-ins/common/file-raw.c:1111 +msgid "Off_set:" +msgstr "Göreli _konum:" + +#: ../plug-ins/common/file-raw.c:1123 +msgid "Select Palette File" +msgstr "Palet Dosyasını Seç" + +#: ../plug-ins/common/file-raw.c:1129 +msgid "Pal_ette File:" +msgstr "Pal_et Dosyası:" + +#: ../plug-ins/common/file-raw.c:1157 +msgid "Raw Image Save" +msgstr "Ham Görüntü Kaydı" + +#: ../plug-ins/common/file-raw.c:1179 +msgid "RGB Save Type" +msgstr "RGB Kayıt Türü" + +#: ../plug-ins/common/file-raw.c:1183 +msgid "Standard (R,G,B)" +msgstr "Standart (R,G,B)" + +#: ../plug-ins/common/file-raw.c:1184 +msgid "Planar (RRR,GGG,BBB)" +msgstr "Düzlemsel (RRR,GGG,BBB)" + +#: ../plug-ins/common/file-raw.c:1189 +msgid "Indexed Palette Type" +msgstr "Sıralanmış Palet Türü" + +#: ../plug-ins/common/file-sunras.c:217 ../plug-ins/common/file-sunras.c:237 +msgid "SUN Rasterfile image" +msgstr "SUN ızgaradosya görüntüsü" + +#: ../plug-ins/common/file-sunras.c:402 +#, c-format +msgid "Could not open '%s' as SUN-raster-file" +msgstr "'%s', SUN-raster-file olarak açılamadı" + +#: ../plug-ins/common/file-sunras.c:412 +msgid "The type of this SUN-rasterfile is not supported" +msgstr "Bu SUN-rasterfile türü desteklenmiyor" + +#: ../plug-ins/common/file-sunras.c:441 +#, c-format +msgid "Could not read color entries from '%s'" +msgstr "'%s'den renk girişleri okunamadı" + +#: ../plug-ins/common/file-sunras.c:449 +msgid "Type of colormap not supported" +msgstr "Renk haritası türü destenlenmiyor" + +#: ../plug-ins/common/file-sunras.c:456 ../plug-ins/common/file-xbm.c:826 +#: ../plug-ins/common/file-xwd.c:489 +#, c-format +msgid "" +"'%s':\n" +"No image width specified" +msgstr "" +"'%s':\n" +"Görüntü genişliği belirtilmedi" + +#: ../plug-ins/common/file-sunras.c:464 ../plug-ins/common/file-xbm.c:833 +#: ../plug-ins/common/file-xwd.c:498 +#, c-format +msgid "" +"'%s':\n" +"Image width is larger than GIMP can handle" +msgstr "" +"'%s':\n" +"Görüntü genişliği GIMP'in kaldırabileceğinden daha büyük" + +#: ../plug-ins/common/file-sunras.c:472 ../plug-ins/common/file-xbm.c:840 +#: ../plug-ins/common/file-xwd.c:506 +#, c-format +msgid "" +"'%s':\n" +"No image height specified" +msgstr "" +"'%s':\n" +"Görüntü yüksekliği belirtilmedi" + +#: ../plug-ins/common/file-sunras.c:480 ../plug-ins/common/file-xbm.c:847 +#: ../plug-ins/common/file-xwd.c:514 +#, c-format +msgid "" +"'%s':\n" +"Image height is larger than GIMP can handle" +msgstr "" +"'%s':\n" +"Görüntü yüksekliği GIMP'in kaldırabileceğinden daha büyük" + +#: ../plug-ins/common/file-sunras.c:518 +msgid "This image depth is not supported" +msgstr "Bu görüntü derinliği desteklenmiyor" + +#: ../plug-ins/common/file-sunras.c:542 +#, c-format +msgid "SUNRAS save cannot handle images with alpha channels" +msgstr "SUNRAS kayıt biçimi görünür kanalını içeren resimleri saklayamaz." + +#: ../plug-ins/common/file-sunras.c:553 +msgid "Can't operate on unknown image types" +msgstr "Bilinmeyen görüntü türleri işlenemiyor" + +#: ../plug-ins/common/file-sunras.c:1082 ../plug-ins/common/file-sunras.c:1173 +#: ../plug-ins/common/file-sunras.c:1254 ../plug-ins/common/file-sunras.c:1349 +#: ../plug-ins/common/file-xwd.c:1348 ../plug-ins/common/file-xwd.c:1449 +#: ../plug-ins/common/file-xwd.c:1607 ../plug-ins/common/file-xwd.c:1807 +#: ../plug-ins/common/file-xwd.c:2064 ../plug-ins/file-fits/fits.c:697 +msgid "EOF encountered on reading" +msgstr "EOF okuma karşılaştırıldı" + +#: ../plug-ins/common/file-sunras.c:1629 +msgid "Save as SUNRAS" +msgstr "SUNRAS olarak kaydet" + +#. file save type +#: ../plug-ins/common/file-sunras.c:1646 +msgid "Data Formatting" +msgstr "Veri Biçimledirme" + +#: ../plug-ins/common/file-sunras.c:1650 +msgid "RunLength Encoded" +msgstr "Yürütme Uzunluğu Kodlandı" + +#: ../plug-ins/common/file-svg.c:140 +msgid "SVG image" +msgstr "Svg görüntüsü" + +#: ../plug-ins/common/file-svg.c:335 ../plug-ins/common/file-svg.c:733 +msgid "Unknown reason" +msgstr "Bilinmeyen sebep" + +#: ../plug-ins/common/file-svg.c:341 +msgid "Rendering SVG" +msgstr "SVG Taranıyor" + +#: ../plug-ins/common/file-svg.c:353 +msgid "Rendered SVG" +msgstr "SVG Tarandı" + +#: ../plug-ins/common/file-svg.c:567 ../plug-ins/common/file-wmf.c:358 +#, c-format +msgid "%d × %d" +msgstr "%d × %d" + +#: ../plug-ins/common/file-svg.c:575 +msgid "" +"SVG file does not\n" +"specify a size!" +msgstr "" +"SVG dosyası\n" +"boyut belirtmiyor!" + +#. Scalable Vector Graphics is SVG, should perhaps not be translated +#: ../plug-ins/common/file-svg.c:742 +msgid "Render Scalable Vector Graphics" +msgstr "Ölçeklenmiş Vektör Grafiği Tara" + +#. Width and Height +#: ../plug-ins/common/file-svg.c:808 ../plug-ins/common/file-wmf.c:571 +#: ../plug-ins/common/grid.c:724 +msgid "Width:" +msgstr "Genişlik:" + +#: ../plug-ins/common/file-svg.c:814 ../plug-ins/common/file-wmf.c:577 +msgid "Height:" +msgstr "Yükseklik:" + +#: ../plug-ins/common/file-svg.c:888 ../plug-ins/common/file-wmf.c:651 +msgid "_X ratio:" +msgstr "_X oran:" + +#: ../plug-ins/common/file-svg.c:910 ../plug-ins/common/file-wmf.c:673 +msgid "_Y ratio:" +msgstr "_Y oran:" + +#: ../plug-ins/common/file-svg.c:924 ../plug-ins/common/file-wmf.c:687 +msgid "Constrain aspect ratio" +msgstr "En-boy oranını sabitle" + +#: ../plug-ins/common/file-svg.c:935 ../plug-ins/common/file-wmf.c:698 +#: ../plug-ins/print/print-page-layout.c:273 +#, c-format +msgid "pixels/%a" +msgstr "benek/%a" + +#. Path Import +#: ../plug-ins/common/file-svg.c:955 +msgid "Import _paths" +msgstr "_Yolları içe aktar" + +#: ../plug-ins/common/file-svg.c:961 +msgid "" +"Import path elements of the SVG so they can be used with the GIMP path tool" +msgstr "" +"SVG elementlerinin yolunu içe aktar böylece bu elementler GIMP yol aracı ile " +"kullanılabilecek" + +#: ../plug-ins/common/file-svg.c:974 +msgid "Merge imported paths" +msgstr "İçe aktarılmış yolları _birleştir" + +#: ../plug-ins/common/file-tga.c:245 ../plug-ins/common/file-tga.c:264 +msgid "TarGA image" +msgstr "TarGA görüntüsü" + +#: ../plug-ins/common/file-tga.c:455 +#, c-format +msgid "Cannot read footer from '%s'" +msgstr "'%s'den sayfa altlığı okunamadı" + +#: ../plug-ins/common/file-tga.c:473 +#, c-format +msgid "Cannot read extension from '%s'" +msgstr "'%s'den uzantı okunamadı" + +#: ../plug-ins/common/file-tga.c:485 +#, c-format +msgid "Cannot read header from '%s'" +msgstr "'%s'den sayfa başlığı okunamadı" + +#: ../plug-ins/common/file-tga.c:1370 +msgid "Save as TGA" +msgstr "TGA olarak kaydet" + +#. rle +#: ../plug-ins/common/file-tga.c:1393 +msgid "_RLE compression" +msgstr "_RLE sıkıştırması" + +#: ../plug-ins/common/file-tga.c:1407 +msgid "Or_igin:" +msgstr "K_öken:" + +#: ../plug-ins/common/file-tga.c:1411 +msgid "Bottom left" +msgstr "Alt sol" + +#: ../plug-ins/common/file-tga.c:1412 +msgid "Top left" +msgstr "Üst sol" + +#: ../plug-ins/common/file-tiff-load.c:240 +#: ../plug-ins/common/file-tiff-save.c:182 +#: ../plug-ins/common/file-tiff-save.c:199 +msgid "TIFF image" +msgstr "TIFF görüntüsü" + +#: ../plug-ins/common/file-tiff-load.c:310 +#, c-format +msgid "TIFF '%s' does not contain any directories" +msgstr "TIFF '%s' her hangi bir dizin içermiyor" + +#: ../plug-ins/common/file-tiff-load.c:478 +msgid "Import from TIFF" +msgstr "TIFF'den al" + +#: ../plug-ins/common/file-tiff-load.c:780 +#, c-format +msgid "%s-%d-of-%d-pages" +msgstr "%s sayfanın %d %d si" + +#: ../plug-ins/common/file-tiff-load.c:1015 +msgid "TIFF Channel" +msgstr "TIFF Kanalı" + +#: ../plug-ins/common/file-tiff-load.c:1024 +#: ../plug-ins/file-psd/psd-load.c:334 +msgid "" +"Warning:\n" +"The image you are loading has 16 bits per channel. GIMP can only handle 8 " +"bit, so it will be converted for you. Information will be lost because of " +"this conversion." +msgstr "" +"Uyarı:\n" +"Yüklediğiniz görüntü kanal başına 16 bit'e sahip. GIMP sadece 8 bit " +"kullanabilir; bu yüzden, dönüştürülmesi gerekiyor. Bilgi, bu dönüşümden " +"dolayı kaybolacak." + +#: ../plug-ins/common/file-tiff-save.c:887 +msgid "" +"The TIFF format only supports comments in\n" +"7bit ASCII encoding. No comment is saved." +msgstr "" +"TIFF biçimi, yalnızca 7bit ASCII kodlaması\n" +"yorumlarını destekler. Hiç bir komut kaydedilmedi." + +#: ../plug-ins/common/file-tiff-save.c:1061 +msgid "Save as TIFF" +msgstr "TIFF olarak kaydet" + +#. compression +#: ../plug-ins/common/file-tiff-save.c:1083 +msgid "Compression" +msgstr "Sıkıştırma" + +#: ../plug-ins/common/file-tiff-save.c:1087 +msgid "_None" +msgstr "_Hiçbiri" + +#: ../plug-ins/common/file-tiff-save.c:1088 +msgid "_LZW" +msgstr "_LZW" + +#: ../plug-ins/common/file-tiff-save.c:1089 +msgid "_Pack Bits" +msgstr "_Paket Bitleri" + +#: ../plug-ins/common/file-tiff-save.c:1090 +msgid "_Deflate" +msgstr "_Söndür" + +#: ../plug-ins/common/file-tiff-save.c:1091 +msgid "_JPEG" +msgstr "_JPEG" + +#: ../plug-ins/common/file-tiff-save.c:1092 +msgid "CCITT Group _3 fax" +msgstr "CCITT Group _3 fax" + +#: ../plug-ins/common/file-tiff-save.c:1093 +msgid "CCITT Group _4 fax" +msgstr "CCITT Grup _4 faks" + +#: ../plug-ins/common/file-tiff-save.c:1115 +msgid "Save _color values from transparent pixels" +msgstr "Saydam beneklerden _renk değerlerini kaydedin" + +#: ../plug-ins/common/file-tiff-save.c:1131 ../plug-ins/common/file-xbm.c:1246 +msgid "Comment:" +msgstr "Yorum:" + +#: ../plug-ins/common/file-wmf.c:129 +msgid "Microsoft WMF file" +msgstr "Microsoft WMF dosyası" + +#: ../plug-ins/common/file-wmf.c:352 +msgid "" +"WMF file does not\n" +"specify a size!" +msgstr "" +"WMF dosyası\n" +"boyut belirtmiyor!" + +#: ../plug-ins/common/file-wmf.c:500 +msgid "Render Windows Metafile" +msgstr "Windows Meta Dosyasını Tarama" + +#: ../plug-ins/common/file-wmf.c:963 +#, c-format +msgid "Could not open '%s' for reading" +msgstr "'%s' dosyası okumak için açılamadı" + +#: ../plug-ins/common/file-wmf.c:1003 +msgid "Rendered WMF" +msgstr "WMF Tarandı" + +#: ../plug-ins/common/file-xbm.c:176 ../plug-ins/common/file-xbm.c:194 +msgid "X BitMap image" +msgstr "X Bit Eşlem görüntüsü" + +#: ../plug-ins/common/file-xbm.c:819 +#, c-format +msgid "" +"'%s':\n" +"Could not read header (ftell == %ld)" +msgstr "" +"'%s':\n" +"Başlık okunamadı (ftell == %ld)" + +#: ../plug-ins/common/file-xbm.c:854 +#, c-format +msgid "" +"'%s':\n" +"No image data type specified" +msgstr "" +"'%s':\n" +"Görüntü veri türü tanımlanmadı" + +#. The image is not black-and-white. +#: ../plug-ins/common/file-xbm.c:997 +msgid "" +"The image which you are trying to save as an XBM contains more than two " +"colors.\n" +"\n" +"Please convert it to a black and white (1-bit) indexed image and try again." +msgstr "" +"Bir XBM olarak kaydetmeye çalıştığınız görüntü iki renkten daha fazlasını " +"içeriyor.\n" +"\n" +"Lütfen siyah ve beyaz (1-bit) sıralı görüntüye dönüştürün ve yeniden deneyin." + +#: ../plug-ins/common/file-xbm.c:1008 +msgid "" +"You cannot save a cursor mask for an image\n" +"which has no alpha channel." +msgstr "" +"Hiçbir görünür kanalı olmayan bir görüntü için\n" +"imleç maskeyi kaydedemezsiniz." + +#: ../plug-ins/common/file-xbm.c:1185 +msgid "Save as XBM" +msgstr "XBM olarak kaydet" + +#. parameter settings +#: ../plug-ins/common/file-xbm.c:1202 +msgid "XBM Options" +msgstr "XBM Seçenekleri" + +#. X10 format +#: ../plug-ins/common/file-xbm.c:1212 +msgid "_X10 format bitmap" +msgstr "_X10 biçimli bit eşlem" + +#: ../plug-ins/common/file-xbm.c:1232 +msgid "_Identifier prefix:" +msgstr "_Tanıtıcı önek:" + +#. hotspot toggle +#: ../plug-ins/common/file-xbm.c:1254 +msgid "_Write hot spot values" +msgstr "Etkin nokta değerlerini _yaz" + +#: ../plug-ins/common/file-xbm.c:1276 +msgid "Hot spot _X:" +msgstr "Etkin nokta _X:" + +#: ../plug-ins/common/file-xbm.c:1286 +msgid "Hot spot _Y:" +msgstr "Etkin nokta _Y:" + +#. mask file +#: ../plug-ins/common/file-xbm.c:1293 +msgid "Mask File" +msgstr "Maske Dosyası" + +#: ../plug-ins/common/file-xbm.c:1303 +msgid "W_rite extra mask file" +msgstr "Fazla maske dosyasını yaz" + +#: ../plug-ins/common/file-xbm.c:1316 +msgid "_Mask file extension:" +msgstr "_Maske dosyası eklentisi:" + +#: ../plug-ins/common/file-xpm.c:174 ../plug-ins/common/file-xpm.c:199 +msgid "X PixMap image" +msgstr "X Pix Eşlem resmi" + +#: ../plug-ins/common/file-xpm.c:363 ../plug-ins/common/file-xpm.c:773 +#, c-format +msgid "Error opening file '%s'" +msgstr "'%s' dosya açılırken hata" + +#: ../plug-ins/common/file-xpm.c:369 ../plug-ins/common/file-xpm.c:779 +msgid "XPM file invalid" +msgstr "Geçersiz XPM dosyası" + +#: ../plug-ins/common/file-xpm.c:805 +msgid "Save as XPM" +msgstr "XPM olarak kaydet" + +#: ../plug-ins/common/file-xpm.c:829 +msgid "_Alpha threshold:" +msgstr "_Görünür eşiği:" + +#: ../plug-ins/common/file-xwd.c:278 ../plug-ins/common/file-xwd.c:298 +msgid "X window dump" +msgstr "X pencere yığını" + +#: ../plug-ins/common/file-xwd.c:442 +#, c-format +msgid "Could not read XWD header from '%s'" +msgstr "'%s' dosyasından XWD başlığı okunamadı" + +#: ../plug-ins/common/file-xwd.c:480 +msgid "Can't read color entries" +msgstr "Renk girdileri okunamıyor" + +#: ../plug-ins/common/file-xwd.c:570 +#, c-format +msgid "" +"XWD-file %s has format %d, depth %d and bits per pixel %d. Currently this is " +"not supported." +msgstr "" +"XWD-dosyası %s %d biçimi, %d derinlik ve benek başına düşen bit ise %d dir. " +"Şu anda bu biçim desteklenmiyor." + +#: ../plug-ins/common/file-xwd.c:593 +msgid "Cannot save images with alpha channels." +msgstr "Görüntüler görünür kanalıyla kaydedilemiyor." + +#: ../plug-ins/common/file-xwd.c:2195 +msgid "Error during writing indexed/gray image" +msgstr "Sıralanmış/gri görüntü yazma sırasında hata" + +#: ../plug-ins/common/file-xwd.c:2293 +msgid "Error during writing rgb image" +msgstr "rgb görüntü yazılırken hata" + +#: ../plug-ins/common/film.c:217 +msgid "Combine several images on a film strip" +msgstr "Bir film şeridi üzerinde değişik görüntüleri birleştirin" + +#: ../plug-ins/common/film.c:222 +msgid "_Filmstrip..." +msgstr "_Film şeridi..." + +#: ../plug-ins/common/film.c:307 +msgid "Composing images" +msgstr "Görüntüleri oluşturma" + +#: ../plug-ins/common/film.c:425 ../plug-ins/common/guillotine.c:216 +#: ../plug-ins/help-browser/dialog.c:1120 +msgid "Untitled" +msgstr "İsimsiz" + +#: ../plug-ins/common/film.c:879 +msgid "Available images:" +msgstr "Varolan görüntüler:" + +#: ../plug-ins/common/film.c:880 +msgid "On film:" +msgstr "Film üzerinde:" + +#. Film height/colour +#: ../plug-ins/common/film.c:976 ../plug-ins/common/film.c:1248 +msgid "Filmstrip" +msgstr "Film şeridi" + +#. Keep maximum image height +#: ../plug-ins/common/film.c:985 +msgid "_Fit height to images" +msgstr "Görüntülere _Uygun yükseklik" + +#. Film color +#: ../plug-ins/common/film.c:1021 +msgid "Select Film Color" +msgstr "Film Rengini Seç" + +#: ../plug-ins/common/film.c:1026 ../plug-ins/common/film.c:1076 +#: ../plug-ins/common/nova.c:353 +msgid "Co_lor:" +msgstr "_Renk:" + +#. Film numbering: Startindex/Font/colour +#: ../plug-ins/common/film.c:1035 +msgid "Numbering" +msgstr "Numaralandırma" + +#: ../plug-ins/common/film.c:1053 +msgid "Start _index:" +msgstr "_Dizini başlat:" + +#: ../plug-ins/common/film.c:1066 +msgid "_Font:" +msgstr "Yazıtipi:" + +#. Numbering color +#: ../plug-ins/common/film.c:1071 +msgid "Select Number Color" +msgstr "Renk Numarasını Seç" + +#: ../plug-ins/common/film.c:1086 +msgid "At _bottom" +msgstr "_Altta" + +#: ../plug-ins/common/film.c:1087 +msgid "At _top" +msgstr "_Üstte" + +#. ** The right frame keeps the image selection ** +#: ../plug-ins/common/film.c:1100 +msgid "Image Selection" +msgstr "Görüntü Seçimi" + +#: ../plug-ins/common/film.c:1128 +msgid "All Values are Fractions of the Strip Height" +msgstr "Tüm Değerler, Şerit Yüksekliğinin Parçalarıdır" + +#: ../plug-ins/common/film.c:1131 +msgid "Ad_vanced" +msgstr "_Gelişmiş" + +#: ../plug-ins/common/film.c:1150 +msgid "Image _height:" +msgstr "Görüntü _yüksekliği:" + +#: ../plug-ins/common/film.c:1161 +msgid "Image spac_ing:" +msgstr "Görüntü boşl_uğu:" + +#: ../plug-ins/common/film.c:1172 +msgid "_Hole offset:" +msgstr "_Boşluk konumu:" + +#: ../plug-ins/common/film.c:1183 +msgid "Ho_le width:" +msgstr "De_lik genişliği:" + +#: ../plug-ins/common/film.c:1194 +msgid "Hol_e height:" +msgstr "Deli_k yüksekliği:" + +#: ../plug-ins/common/film.c:1205 +msgid "Hole sp_acing:" +msgstr "Delik ar_alığı:" + +#: ../plug-ins/common/film.c:1216 +msgid "_Number height:" +msgstr "_Sayı yüksekliği" + +#. These values are translated for the GUI but also used internally +#. to figure out which button the user pushed, etc. +#. Not my design, please don't blame me -- njl +#: ../plug-ins/common/filter-pack.c:220 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:953 +msgid "Red:" +msgstr "Kırmızı:" + +#: ../plug-ins/common/filter-pack.c:221 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:963 +msgid "Green:" +msgstr "Yeşil:" + +#: ../plug-ins/common/filter-pack.c:222 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:973 +msgid "Blue:" +msgstr "Mavi:" + +#: ../plug-ins/common/filter-pack.c:223 +msgid "Cyan:" +msgstr "Turkuaz:" + +#: ../plug-ins/common/filter-pack.c:224 +msgid "Yellow:" +msgstr "Sarı:" + +#: ../plug-ins/common/filter-pack.c:225 +msgid "Magenta:" +msgstr "Macenta:" + +#: ../plug-ins/common/filter-pack.c:227 +msgid "Darker:" +msgstr "Daha koyu:" + +#: ../plug-ins/common/filter-pack.c:228 +msgid "Lighter:" +msgstr "Daha açık:" + +#: ../plug-ins/common/filter-pack.c:230 +msgid "More Sat:" +msgstr "Daha çok Doygunluk:" + +#: ../plug-ins/common/filter-pack.c:231 +msgid "Less Sat:" +msgstr "Daha az Doygunluk:" + +#: ../plug-ins/common/filter-pack.c:233 ../plug-ins/common/filter-pack.c:532 +msgid "Current:" +msgstr "Şimdiki:" + +#: ../plug-ins/common/filter-pack.c:317 +msgid "Interactively modify the image colors" +msgstr "Etkileşimli olarak görüntü renklerini düzenle" + +#: ../plug-ins/common/filter-pack.c:322 +msgid "_Filter Pack..." +msgstr "_Süzgeç Paketi..." + +#: ../plug-ins/common/filter-pack.c:372 +msgid "FP can only be used on RGB images." +msgstr "FP sadece RGB görüntülerinde kullanılabilir." + +#: ../plug-ins/common/filter-pack.c:382 +msgid "FP can only be run interactively." +msgstr "FP sadece etkileşimli olarak çalışabilir." + +#: ../plug-ins/common/filter-pack.c:400 +msgid "Applying filter pack" +msgstr "Süzgeç paketi uygulanıyor" + +#: ../plug-ins/common/filter-pack.c:524 +msgid "Original:" +msgstr "Özgün:" + +#: ../plug-ins/common/filter-pack.c:576 +msgid "Hue Variations" +msgstr "Renk Tonu Değişimleri" + +#: ../plug-ins/common/filter-pack.c:631 +msgid "Roughness" +msgstr "Pürüzlülük" + +#: ../plug-ins/common/filter-pack.c:674 ../plug-ins/common/filter-pack.c:1317 +msgid "Affected Range" +msgstr "Etkilenen Alan" + +#: ../plug-ins/common/filter-pack.c:678 +msgid "Sha_dows" +msgstr "_Gölgeler" + +#: ../plug-ins/common/filter-pack.c:679 +msgid "_Midtones" +msgstr "_Ortatonlar" + +#: ../plug-ins/common/filter-pack.c:680 +msgid "H_ighlights" +msgstr "V_urgulamalar" + +#: ../plug-ins/common/filter-pack.c:694 +msgid "Windows" +msgstr "Pencereler" + +#: ../plug-ins/common/filter-pack.c:704 ../plug-ins/common/van-gogh-lic.c:672 +msgid "_Saturation" +msgstr "_Doygunluk" + +#: ../plug-ins/common/filter-pack.c:712 +msgid "A_dvanced" +msgstr "_Gelişmiş" + +#: ../plug-ins/common/filter-pack.c:732 +msgid "Value Variations" +msgstr "Değer Değişimleri" + +#: ../plug-ins/common/filter-pack.c:777 +msgid "Saturation Variations" +msgstr "Doygunluk Değişimleri" + +#: ../plug-ins/common/filter-pack.c:830 +msgid "Select Pixels By" +msgstr "Şuna göre seç Benek'leri" + +#: ../plug-ins/common/filter-pack.c:835 +msgid "H_ue" +msgstr "Renk _Özü" + +#: ../plug-ins/common/filter-pack.c:836 +msgid "Satu_ration" +msgstr "D_oygunluk" + +#: ../plug-ins/common/filter-pack.c:837 +msgid "V_alue" +msgstr "D_eğer" + +#: ../plug-ins/common/filter-pack.c:863 +msgid "Show" +msgstr "Göster" + +#: ../plug-ins/common/filter-pack.c:868 +msgid "_Entire image" +msgstr "_Bütün görüntü" + +#: ../plug-ins/common/filter-pack.c:869 +msgid "Se_lection only" +msgstr "Sadece se_çim" + +#: ../plug-ins/common/filter-pack.c:870 +msgid "Selec_tion in context" +msgstr "İçerikten _seçim" + +#: ../plug-ins/common/filter-pack.c:1201 +msgid "Filter Pack Simulation" +msgstr "Süzgeç Paketi Benzetimi" + +#: ../plug-ins/common/filter-pack.c:1290 +msgid "Shadows:" +msgstr "Gölgeler:" + +#: ../plug-ins/common/filter-pack.c:1291 +msgid "Midtones:" +msgstr "Ortatonlar:" + +#: ../plug-ins/common/filter-pack.c:1292 +msgid "Highlights:" +msgstr "Vurgulamalar" + +#: ../plug-ins/common/filter-pack.c:1305 +msgid "Advanced Filter Pack Options" +msgstr "Gelişmiş Süzgeç Paketi Ayarları" + +#. ****************** MISC OPTIONS ************************** +#: ../plug-ins/common/filter-pack.c:1417 +msgid "Preview Size" +msgstr "Önizleme Boyutu" + +#: ../plug-ins/common/fractal-trace.c:116 +msgid "Transform image with the Mandelbrot Fractal" +msgstr "Mandelbrot Kesiri ile resimi dönüştür" + +#: ../plug-ins/common/fractal-trace.c:121 +msgid "_Fractal Trace..." +msgstr "_Kesir İzi..." + +#: ../plug-ins/common/fractal-trace.c:460 +#: ../plug-ins/common/fractal-trace.c:691 +msgid "Fractal Trace" +msgstr "Kesir İzi" + +#. Settings +#: ../plug-ins/common/fractal-trace.c:731 +msgid "Outside Type" +msgstr "Dış Tip" + +#: ../plug-ins/common/fractal-trace.c:742 +msgid "_White" +msgstr "_Beyaz" + +#: ../plug-ins/common/fractal-trace.c:749 +msgid "Mandelbrot Parameters" +msgstr "Mandelbrot Parametreleri" + +#: ../plug-ins/common/fractal-trace.c:760 +msgid "X_1:" +msgstr "X_1:" + +#: ../plug-ins/common/fractal-trace.c:769 +msgid "X_2:" +msgstr "X_2:" + +#: ../plug-ins/common/fractal-trace.c:778 +msgid "Y_1:" +msgstr "Y_1:" + +#: ../plug-ins/common/fractal-trace.c:787 +msgid "Y_2:" +msgstr "Y_2:" + +#: ../plug-ins/common/gee-zoom.c:121 ../plug-ins/common/gee.c:99 +msgid "A big hello from the GIMP team!" +msgstr "GIMP takımından kocaman bir merhaba!" + +#: ../plug-ins/common/gee-zoom.c:126 ../plug-ins/common/gee-zoom.c:186 +msgid "Gee Zoom" +msgstr "Gee Yakınlaştırması" + +#: ../plug-ins/common/gee-zoom.c:192 ../plug-ins/common/gee.c:166 +msgid "Thank You for Choosing GIMP" +msgstr "GIMP'i Seçtiğiniz için Teşekkürler" + +#: ../plug-ins/common/gee-zoom.c:200 +#, c-format +msgid "An obsolete creation by %s" +msgstr "%s ile eski oluşturma" + +#: ../plug-ins/common/gee.c:104 ../plug-ins/common/gee.c:160 +msgid "Gee Slime" +msgstr "Gee Çamurlaması" + +#: ../plug-ins/common/gee.c:173 +#, c-format +msgid "A less obsolete creation by %s" +msgstr "%s ile daha az eskimiş oluşturma" + +#: ../plug-ins/common/gradient-map.c:84 +msgid "Recolor the image using colors from the active gradient" +msgstr "Etkin değişimdeki renkleri kullanarak görüntüyü yeniden renklendir" + +#: ../plug-ins/common/gradient-map.c:97 +msgid "_Gradient Map" +msgstr "_Renk Geçişi Eşlemi" + +#: ../plug-ins/common/gradient-map.c:106 +msgid "Recolor the image using colors from the active palette" +msgstr "Etkin paletteki renkleri kullanarak görüntüyü yeniden renklendir" + +#: ../plug-ins/common/gradient-map.c:119 +msgid "_Palette Map" +msgstr "_Palet Haritası" + +#: ../plug-ins/common/gradient-map.c:162 +msgid "Gradient Map" +msgstr "Renk Geçişi Eşlemi" + +#: ../plug-ins/common/gradient-map.c:167 +msgid "Palette Map" +msgstr "Palet Haritası" + +#: ../plug-ins/common/grid.c:142 +msgid "Draw a grid on the image" +msgstr "Görüntü üzerine bir ızgara çiz" + +#: ../plug-ins/common/grid.c:148 +msgid "_Grid..." +msgstr "_Izgara..." + +#: ../plug-ins/common/grid.c:241 +msgid "Drawing grid" +msgstr "Izgara çiz" + +#: ../plug-ins/common/grid.c:635 ../plug-ins/gfig/gfig-dialog.c:1355 +#: ../plug-ins/imagemap/imap_menu.c:209 +msgid "Grid" +msgstr "Kılavuz" + +#. attach labels +#: ../plug-ins/common/grid.c:717 +msgid "Horizontal" +msgstr "Ufki" + +#: ../plug-ins/common/grid.c:719 +msgid "Vertical" +msgstr "Dikey" + +#: ../plug-ins/common/grid.c:721 +msgid "Intersection" +msgstr "Kesişim" + +#. attach labels +#: ../plug-ins/common/grid.c:857 +msgid "Offset:" +msgstr "Göreli Konum:" + +#. attach color selectors +#: ../plug-ins/common/grid.c:896 +msgid "Horizontal Color" +msgstr "Yatay Renk" + +#: ../plug-ins/common/grid.c:914 +msgid "Vertical Color" +msgstr "Dikey Renk" + +#: ../plug-ins/common/grid.c:932 +msgid "Intersection Color" +msgstr "Kesişim Rengi" + +#: ../plug-ins/common/guillotine.c:75 +msgid "Slice the image into subimages using guides" +msgstr "Kılavuzları kullanarak altgörüntü içinde görüntü dilimleme" + +#: ../plug-ins/common/guillotine.c:82 +msgid "_Guillotine" +msgstr "_Giyotin" + +#: ../plug-ins/common/guillotine.c:120 +msgid "Guillotine" +msgstr "Giyotin" + +#: ../plug-ins/common/hot.c:207 +msgid "Find and fix pixels that may be unsafely bright" +msgstr "Çok fazla parlak benekleri bul ve düzelt" + +#: ../plug-ins/common/hot.c:217 +msgid "_Hot..." +msgstr "_Sıcak..." + +#: ../plug-ins/common/hot.c:387 ../plug-ins/common/hot.c:586 +msgid "Hot" +msgstr "Sıcak" + +#: ../plug-ins/common/hot.c:623 +msgid "Create _new layer" +msgstr "_Yeni katman oluştur" + +#: ../plug-ins/common/hot.c:632 +msgid "Action" +msgstr "Eylem" + +#: ../plug-ins/common/hot.c:636 +msgid "Reduce _Luminance" +msgstr "_Parlaklığı Azalt" + +#: ../plug-ins/common/hot.c:637 +msgid "Reduce _Saturation" +msgstr "_Doygunluğu Azalt" + +#: ../plug-ins/common/hot.c:638 ../plug-ins/common/waves.c:282 +msgid "_Blacken" +msgstr "_Karartma" + +#: ../plug-ins/common/illusion.c:91 +msgid "Superimpose many altered copies of the image" +msgstr "Görüntünün bir çok değiştirilmiş kopyasının üzerine koy" + +#: ../plug-ins/common/illusion.c:96 +msgid "_Illusion..." +msgstr "_Hayal..." + +#: ../plug-ins/common/illusion.c:168 ../plug-ins/common/illusion.c:350 +msgid "Illusion" +msgstr "Hayal" + +#: ../plug-ins/common/illusion.c:388 +msgid "_Divisions:" +msgstr "_Bölümler:" + +#: ../plug-ins/common/illusion.c:398 +msgid "Mode _1" +msgstr "Kip _1" + +#: ../plug-ins/common/illusion.c:413 +msgid "Mode _2" +msgstr "Kip_2" + +#: ../plug-ins/common/iwarp.c:262 +msgid "Use mouse control to warp image areas" +msgstr "Görüntü alanlarını eğmek için fare yönetimini kullan" + +#: ../plug-ins/common/iwarp.c:267 +msgid "_IWarp..." +msgstr "_Boz..." + +#: ../plug-ins/common/iwarp.c:697 +msgid "Warping" +msgstr "Eğme" + +#: ../plug-ins/common/iwarp.c:802 +#, c-format +msgid "Warping Frame %d" +msgstr "Çerçeve Eğiliyor %d" + +#: ../plug-ins/common/iwarp.c:814 +msgid "Ping pong" +msgstr "Ping pong" + +#: ../plug-ins/common/iwarp.c:1020 +msgid "A_nimate" +msgstr "_Canlandır" + +#: ../plug-ins/common/iwarp.c:1039 +msgid "Number of _frames:" +msgstr "_Çerçeve Sayısı:" + +#: ../plug-ins/common/iwarp.c:1048 +msgid "R_everse" +msgstr "_Tersine Çevir" + +#: ../plug-ins/common/iwarp.c:1057 +msgid "_Ping pong" +msgstr "_Ping pong" + +#: ../plug-ins/common/iwarp.c:1070 +msgid "_Animate" +msgstr "_Canlandır" + +#: ../plug-ins/common/iwarp.c:1091 +msgid "Deform Mode" +msgstr "Bozma Kipi" + +#: ../plug-ins/common/iwarp.c:1104 +msgid "_Move" +msgstr "_Taşı" + +#: ../plug-ins/common/iwarp.c:1105 +msgid "_Grow" +msgstr "_Genişle" + +#: ../plug-ins/common/iwarp.c:1106 +msgid "S_wirl CCW" +msgstr "_Döndür CCW" + +#: ../plug-ins/common/iwarp.c:1107 +msgid "Remo_ve" +msgstr "K_aldır" + +#: ../plug-ins/common/iwarp.c:1108 +msgid "S_hrink" +msgstr "_Daralt" + +#: ../plug-ins/common/iwarp.c:1109 +msgid "Sw_irl CW" +msgstr "Döndü_r CW" + +#: ../plug-ins/common/iwarp.c:1138 +msgid "_Deform radius:" +msgstr "Yarıçapı _Boz:" + +#: ../plug-ins/common/iwarp.c:1148 +msgid "D_eform amount:" +msgstr "Miktarı B_oz:" + +#: ../plug-ins/common/iwarp.c:1157 +msgid "_Bilinear" +msgstr "_Çift Doğrusal" + +#: ../plug-ins/common/iwarp.c:1171 +msgid "Adaptive s_upersample" +msgstr "Uyumlu ü_stünörnekleme" + +#: ../plug-ins/common/iwarp.c:1191 +msgid "Ma_x depth:" +msgstr "Ma_ks derinlik:" + +#: ../plug-ins/common/iwarp.c:1201 +msgid "Thresho_ld:" +msgstr "Eşi_k" + +#: ../plug-ins/common/iwarp.c:1214 ../plug-ins/common/sinus.c:771 +#: ../plug-ins/gradient-flare/gradient-flare.c:2867 +msgid "_Settings" +msgstr "_Ayarlar" + +#: ../plug-ins/common/iwarp.c:1263 +msgid "IWarp" +msgstr "Boz" + +#: ../plug-ins/common/iwarp.c:1299 +msgid "" +"Click and drag in the preview to define the distortions to apply to the " +"image." +msgstr "" +"Önizlemede resimde uygulayarak bozulmayı tanımlamak için tıkla ve sürükle." + +#: ../plug-ins/common/jigsaw.c:356 +msgid "Add a jigsaw-puzzle pattern to the image" +msgstr "Resime yapboz deseni ekle" + +#: ../plug-ins/common/jigsaw.c:361 +msgid "_Jigsaw..." +msgstr "_Oyma Testeresi" + +#: ../plug-ins/common/jigsaw.c:414 +msgid "Assembling jigsaw" +msgstr "Oyma testeresi birleştiriliyor" + +#: ../plug-ins/common/jigsaw.c:2416 +msgid "Jigsaw" +msgstr "Oyma Testeresi" + +#: ../plug-ins/common/jigsaw.c:2445 +msgid "Number of Tiles" +msgstr "Döşemelerin Sayısı" + +#: ../plug-ins/common/jigsaw.c:2460 +msgid "Number of pieces going across" +msgstr "Karşıya geçen parçaların sayısı" + +#: ../plug-ins/common/jigsaw.c:2477 +msgid "Number of pieces going down" +msgstr "Batan parçaların sayısı" + +#: ../plug-ins/common/jigsaw.c:2491 +msgid "Bevel Edges" +msgstr "Konik Kenarlar" + +#: ../plug-ins/common/jigsaw.c:2501 +msgid "_Bevel width:" +msgstr "_Konik Genişliği" + +#: ../plug-ins/common/jigsaw.c:2505 +msgid "Degree of slope of each piece's edge" +msgstr "Her bir parça kenarının eğim derecesi" + +#: ../plug-ins/common/jigsaw.c:2518 +msgid "H_ighlight:" +msgstr "V_urgulama" + +#: ../plug-ins/common/jigsaw.c:2522 +msgid "The amount of highlighting on the edges of each piece" +msgstr "Her parçanın kenarlarında ki vurgulama miktarı" + +#. frame for primitive radio buttons +#: ../plug-ins/common/jigsaw.c:2539 +msgid "Jigsaw Style" +msgstr "Oyma Testeresi Tarzı" + +#: ../plug-ins/common/jigsaw.c:2543 +msgid "_Square" +msgstr "_Kare" + +#: ../plug-ins/common/jigsaw.c:2544 +msgid "C_urved" +msgstr "Eğik" + +#: ../plug-ins/common/jigsaw.c:2548 +msgid "Each piece has straight sides" +msgstr "Her parçanın düzgün köşesi var" + +#: ../plug-ins/common/jigsaw.c:2549 +msgid "Each piece has curved sides" +msgstr "Her parça eğri kenarlara sahip" + +#: ../plug-ins/common/lcms.c:218 +msgid "Set a color profile on the image" +msgstr "Görüntüde renk profili ayarla" + +#: ../plug-ins/common/lcms.c:225 +msgid "_Assign Color Profile..." +msgstr "Renk Profili _Ata" + +#: ../plug-ins/common/lcms.c:241 +msgid "Assign default RGB Profile" +msgstr "Öntanımlı RGB profili ata" + +#: ../plug-ins/common/lcms.c:248 +msgid "Apply a color profile on the image" +msgstr "Renk profilini görüntüye uygula" + +#: ../plug-ins/common/lcms.c:258 +msgid "_Convert to Color Profile..." +msgstr "Renk Profiline Çevir" + +#: ../plug-ins/common/lcms.c:276 +msgid "Convert to default RGB Profile" +msgstr "Öntanımlı RGB Profiline dönüştür" + +#: ../plug-ins/common/lcms.c:290 +msgid "Image Color Profile Information" +msgstr "Görüntü Renk Profil Bilgisi" + +#: ../plug-ins/common/lcms.c:304 +msgid "Color Profile Information" +msgstr "Renk Profil Bilgisi" + +#: ../plug-ins/common/lcms.c:572 +#, c-format +msgid "Color profile '%s' is not for RGB color space." +msgstr "Renk profili '%s' RGB renk alanı için değil." + +#: ../plug-ins/common/lcms.c:679 +msgid "Default RGB working space" +msgstr "Öntanımlı RGB çalışma alanı" + +#: ../plug-ins/common/lcms.c:775 +msgid "" +"Data attached as 'icc-profile' does not appear to be an ICC color profile" +msgstr "'icc-profili' olarak eklenmiş veri ICC renk profili değil" + +#: ../plug-ins/common/lcms.c:825 +#, c-format +msgid "'%s' does not appear to be an ICC color profile" +msgstr "'%s' bir ICC renk profili olarak görünmüyor" + +#. ICC color profile conversion +#: ../plug-ins/common/lcms.c:885 +#, c-format +msgid "Converting from '%s' to '%s'" +msgstr "`%s' >`%s' dönüştürülüyor" + +#: ../plug-ins/common/lcms.c:1129 +#, c-format +msgid "Could not load ICC profile from '%s'" +msgstr "'%s'den ICC profili yüklenemedi" + +#: ../plug-ins/common/lcms.c:1151 +#, c-format +msgid "The image '%s' has an embedded color profile:" +msgstr "'%s' resmi gömülü bir renk profiline sahip:" + +#: ../plug-ins/common/lcms.c:1195 +#, c-format +msgid "Convert the image to the RGB working space (%s)?" +msgstr "Görüntüyü RGB çalışma alanı '%s' dönüşsün mü?" + +#: ../plug-ins/common/lcms.c:1226 +msgid "Convert to RGB working space?" +msgstr "RGB çalışma alanına dönüşsün mü?" + +#: ../plug-ins/common/lcms.c:1231 +msgid "_Keep" +msgstr "_Tut" + +#: ../plug-ins/common/lcms.c:1236 +msgid "_Convert" +msgstr "Dönüş_tür" + +#: ../plug-ins/common/lcms.c:1263 ../plug-ins/file-jpeg/jpeg-exif.c:377 +msgid "_Don't ask me again" +msgstr "_Bana yeniden sorma." + +#: ../plug-ins/common/lcms.c:1327 +msgid "Select destination profile" +msgstr "Varış profili seçin" + +#: ../plug-ins/common/lcms.c:1354 +msgid "All files (*.*)" +msgstr "Tüm dosyalar (*.*)" + +#: ../plug-ins/common/lcms.c:1359 +msgid "ICC color profile (*.icc, *.icm)" +msgstr "ICC renk profili (*.icc, *.icm)" + +#: ../plug-ins/common/lcms.c:1402 +#, c-format +msgid "RGB workspace (%s)" +msgstr "RGB çalışma alanı (%s)" + +#: ../plug-ins/common/lcms.c:1452 +msgid "Convert to ICC Color Profile" +msgstr "ICC Renk Profiline Dönüştür" + +#: ../plug-ins/common/lcms.c:1453 +msgid "Assign ICC Color Profile" +msgstr "ICC Renk Profili Ata" + +#: ../plug-ins/common/lcms.c:1461 +msgid "_Assign" +msgstr "_Ata" + +#: ../plug-ins/common/lcms.c:1478 +msgid "Current Color Profile" +msgstr "Varolan Renk Profili" + +#: ../plug-ins/common/lcms.c:1493 +msgid "Convert to" +msgstr "Şuna dönüştür:" + +#: ../plug-ins/common/lcms.c:1493 +msgid "Assign" +msgstr "Ata" + +#: ../plug-ins/common/lcms.c:1517 +msgid "_Rendering Intent:" +msgstr "Sonuç _Taranıyor:" + +#: ../plug-ins/common/lcms.c:1533 +msgid "_Black Point Compensation" +msgstr "_Siyah Nokta Telafisi" + +#: ../plug-ins/common/lcms.c:1575 +msgid "Destination profile is not for RGB color space." +msgstr "Varış profili RGB renk alanı için değil" + +#: ../plug-ins/common/lens-apply.c:108 +msgid "Simulate an elliptical lens over the image" +msgstr "Resim üzerindeki oval merceklere benzetim yap" + +#: ../plug-ins/common/lens-apply.c:114 +msgid "Apply _Lens..." +msgstr "_Merceği Uygula..." + +#: ../plug-ins/common/lens-apply.c:181 +msgid "Applying lens" +msgstr "Mercek uygulanıyor" + +#: ../plug-ins/common/lens-apply.c:393 +msgid "Lens Effect" +msgstr "Mercek Etkisi" + +#: ../plug-ins/common/lens-apply.c:427 +msgid "_Keep original surroundings" +msgstr "Özgün ortamı _sakla" + +#: ../plug-ins/common/lens-apply.c:442 +msgid "_Set surroundings to index 0" +msgstr "Ortam göstergesini 0 _ayarla" + +#: ../plug-ins/common/lens-apply.c:443 +msgid "_Set surroundings to background color" +msgstr "Ortamı artalan rengine _ayarla" + +#: ../plug-ins/common/lens-apply.c:458 +msgid "_Make surroundings transparent" +msgstr "Ortamı saydam _Yap" + +#: ../plug-ins/common/lens-apply.c:475 +msgid "_Lens refraction index:" +msgstr "_Mercek sapma göstergesi:" + +#: ../plug-ins/common/lens-distortion.c:115 +msgid "Corrects lens distortion" +msgstr "Mercek bozulmasını düzelt" + +#: ../plug-ins/common/lens-distortion.c:120 +msgid "Lens Distortion..." +msgstr "Mercek Bozulması..." + +#: ../plug-ins/common/lens-distortion.c:383 +msgid "Lens distortion" +msgstr "Mercek bozulması" + +#: ../plug-ins/common/lens-distortion.c:483 +msgid "Lens Distortion" +msgstr "Mercek Bozulması" + +#: ../plug-ins/common/lens-distortion.c:521 +msgid "_Main:" +msgstr "_Ana:" + +#: ../plug-ins/common/lens-distortion.c:535 +msgid "_Edge:" +msgstr "_Kenar:" + +#: ../plug-ins/common/lens-distortion.c:549 ../plug-ins/flame/flame.c:1237 +msgid "_Zoom:" +msgstr "_Yakınlaştır:" + +#: ../plug-ins/common/lens-distortion.c:563 +msgid "_Brighten:" +msgstr "_Parlak:" + +#: ../plug-ins/common/lens-distortion.c:577 +msgid "_X shift:" +msgstr "_X kayması:" + +#: ../plug-ins/common/lens-distortion.c:591 +msgid "_Y shift:" +msgstr "_Y kayması" + +#: ../plug-ins/common/lens-flare.c:188 +msgid "Add a lens flare effect" +msgstr "Mercek parlaması etkisi ekle" + +#: ../plug-ins/common/lens-flare.c:195 +msgid "Lens _Flare..." +msgstr "Mercek Parlaması..." + +#: ../plug-ins/common/lens-flare.c:270 +msgid "Render lens flare" +msgstr "Mercek parlamayı tara" + +#: ../plug-ins/common/lens-flare.c:306 +msgid "Lens Flare" +msgstr "Mercek Parlaması" + +#: ../plug-ins/common/lens-flare.c:753 +msgid "Center of Flare Effect" +msgstr "Parlama Etkisi Merkezi" + +#: ../plug-ins/common/lens-flare.c:793 ../plug-ins/common/nova.c:484 +msgid "Show _position" +msgstr "_Konumu göster" + +#: ../plug-ins/common/mail.c:188 +msgid "Send the image by email" +msgstr "Görüntüyü eposta ile gönder" + +#: ../plug-ins/common/mail.c:194 +msgid "Send by E_mail..." +msgstr "_Posta ile Gönder..." + +#: ../plug-ins/common/mail.c:407 +msgid "Send by Email" +msgstr "E-posta ile Gönder" + +#: ../plug-ins/common/mail.c:412 +msgid "_Send" +msgstr "_Gönder" + +#: ../plug-ins/common/mail.c:444 +msgid "_Filename:" +msgstr "_Dosya adı:" + +#: ../plug-ins/common/mail.c:456 +msgid "_To:" +msgstr "_Kime:" + +#: ../plug-ins/common/mail.c:470 +msgid "_From:" +msgstr "Kim_den:" + +#: ../plug-ins/common/mail.c:482 +msgid "S_ubject:" +msgstr "K_onu:" + +#: ../plug-ins/common/mail.c:591 +msgid "some sort of error with the file extension or lack thereof" +msgstr "dosya uzantısı ya da eksiklik nedeniyle bazı hatalar" + +#: ../plug-ins/common/mail.c:725 +#, c-format +msgid "Could not start sendmail (%s)" +msgstr "(%s) posta gönderme başlatılamadı" + +#: ../plug-ins/common/max-rgb.c:90 +msgid "Reduce image to pure red, green, and blue" +msgstr "Görüntüyü saf kırmızı, yeşil, ve maviye azaltın" + +#: ../plug-ins/common/max-rgb.c:95 +msgid "Maxim_um RGB..." +msgstr "Maksim_um RGB..." + +#: ../plug-ins/common/max-rgb.c:134 ../plug-ins/common/noise-hsv.c:158 +msgid "Can only operate on RGB drawables." +msgstr "Sadece RGB çizimlerinde işlem görür" + +#: ../plug-ins/common/max-rgb.c:234 +msgid "Max RGB" +msgstr "Maks RGB" + +#: ../plug-ins/common/max-rgb.c:259 +msgid "Maximum RGB Value" +msgstr "Azami RGB Değeri" + +#: ../plug-ins/common/max-rgb.c:292 +msgid "_Hold the maximal channels" +msgstr "Azami kanalları _Tut" + +#: ../plug-ins/common/max-rgb.c:295 +msgid "Ho_ld the minimal channels" +msgstr "Asgari kanalları t_ut" + +#: ../plug-ins/common/mosaic.c:359 +msgid "Convert the image into irregular tiles" +msgstr "Resmi düzensiz zemine çevir" + +#: ../plug-ins/common/mosaic.c:364 +msgid "_Mosaic..." +msgstr "_Mozaik..." + +#. progress bar for gradient finding +#: ../plug-ins/common/mosaic.c:502 +msgid "Finding edges" +msgstr "Kenarları bulma" + +#. Progress bar for rendering tiles +#: ../plug-ins/common/mosaic.c:556 +msgid "Rendering tiles" +msgstr "Zemin taranıyor" + +#: ../plug-ins/common/mosaic.c:589 +msgid "Mosaic" +msgstr "Mozaik" + +#: ../plug-ins/common/mosaic.c:629 +msgid "Squares" +msgstr "Kareler" + +#: ../plug-ins/common/mosaic.c:630 +msgid "Hexagons" +msgstr "Altıgenler" + +#: ../plug-ins/common/mosaic.c:631 +msgid "Octagons & squares" +msgstr "Sekizgenler & kareler" + +#: ../plug-ins/common/mosaic.c:632 +msgid "Triangles" +msgstr "Üçgenler" + +#: ../plug-ins/common/mosaic.c:640 +msgid "_Tiling primitives:" +msgstr "_Döşeme basitliği:" + +#: ../plug-ins/common/mosaic.c:648 +msgid "Tile _size:" +msgstr "Döşeme _boyutu::" + +#: ../plug-ins/common/mosaic.c:660 ../plug-ins/common/tile-glass.c:303 +msgid "Tile _height:" +msgstr "Döşeme _yüksekliği:" + +#: ../plug-ins/common/mosaic.c:673 +msgid "Til_e spacing:" +msgstr "Döşem_e boşluğu:" + +#: ../plug-ins/common/mosaic.c:685 +msgid "Tile _neatness:" +msgstr "Döşeme _düzeni:" + +#: ../plug-ins/common/mosaic.c:698 +msgid "Light _direction:" +msgstr "Işık _yönü:" + +#: ../plug-ins/common/mosaic.c:710 +msgid "Color _variation:" +msgstr "Renk _Değişimi" + +#: ../plug-ins/common/mosaic.c:739 +msgid "Co_lor averaging" +msgstr "Re_nk ortalaması" + +#: ../plug-ins/common/mosaic.c:752 +msgid "Allo_w tile splitting" +msgstr "Döşeme bölünmesine İ_zin ver" + +#: ../plug-ins/common/mosaic.c:765 +msgid "_Pitted surfaces" +msgstr "_Çukurlaşmış yüzeyler" + +#: ../plug-ins/common/mosaic.c:778 +msgid "_FG/BG lighting" +msgstr "Artalan/Önalan ışıması" + +#: ../plug-ins/common/newsprint.c:127 +msgid "Round" +msgstr "Yuvarlama" + +#: ../plug-ins/common/newsprint.c:136 +msgid "Line" +msgstr "Çizgi" + +#: ../plug-ins/common/newsprint.c:145 ../plug-ins/flame/flame.c:760 +msgid "Diamond" +msgstr "Elmas" + +#: ../plug-ins/common/newsprint.c:153 +msgid "PS Square (Euclidean Dot)" +msgstr "PS karesi (Euclidean Nokta)" + +#: ../plug-ins/common/newsprint.c:162 +msgid "PS Diamond" +msgstr "PS Karo" + +#: ../plug-ins/common/newsprint.c:332 +msgid "_Grey" +msgstr "_Gri" + +#: ../plug-ins/common/newsprint.c:345 +msgid "R_ed" +msgstr "Kırmı_zı" + +#: ../plug-ins/common/newsprint.c:374 +msgid "C_yan" +msgstr "Tu_rkuaz" + +#: ../plug-ins/common/newsprint.c:382 +msgid "Magen_ta" +msgstr "Kırmızım_sı Mor" + +#: ../plug-ins/common/newsprint.c:390 +msgid "_Yellow" +msgstr "_Sarı" + +#: ../plug-ins/common/newsprint.c:411 +msgid "Luminance" +msgstr "Işıklılık" + +#: ../plug-ins/common/newsprint.c:517 +msgid "Halftone the image to give newspaper-like effect" +msgstr "Resmi klişeleştir gazete etkisi vermek için" + +#: ../plug-ins/common/newsprint.c:526 +msgid "Newsprin_t..." +msgstr "Gazete _Kağıdı" + +#: ../plug-ins/common/newsprint.c:627 ../plug-ins/common/newsprint.c:1188 +msgid "Newsprint" +msgstr "Gazete kağıdı" + +#: ../plug-ins/common/newsprint.c:1031 +msgid "_Spot function:" +msgstr "_Nokta işlevi" + +#. resolution settings +#: ../plug-ins/common/newsprint.c:1240 +msgid "Resolution" +msgstr "Çözünürlük" + +#: ../plug-ins/common/newsprint.c:1259 +msgid "_Input SPI:" +msgstr "_Girdi SPI:" + +#: ../plug-ins/common/newsprint.c:1273 +msgid "O_utput LPI:" +msgstr "Ç_ıktı LPI:" + +#: ../plug-ins/common/newsprint.c:1286 +msgid "C_ell size:" +msgstr "H_ücre boyutu:" + +#. screen settings +#: ../plug-ins/common/newsprint.c:1299 +#: ../plug-ins/gradient-flare/gradient-flare.c:554 +msgid "Screen" +msgstr "Ekran" + +#: ../plug-ins/common/newsprint.c:1318 +msgid "B_lack pullout (%):" +msgstr "_Siyah çekilme (%):" + +#: ../plug-ins/common/newsprint.c:1340 +msgid "Separate to:" +msgstr "Boşluk bırak:" + +#: ../plug-ins/common/newsprint.c:1344 +msgid "_RGB" +msgstr "_RGB" + +#: ../plug-ins/common/newsprint.c:1361 +msgid "C_MYK" +msgstr "C_MYK" + +#: ../plug-ins/common/newsprint.c:1378 +msgid "I_ntensity" +msgstr "_Yoğunluk" + +#: ../plug-ins/common/newsprint.c:1403 +msgid "_Lock channels" +msgstr "Kanalları _kilitle" + +#: ../plug-ins/common/newsprint.c:1416 +msgid "_Factory Defaults" +msgstr "_Fabrika Ayarları" + +#. anti-alias control +#: ../plug-ins/common/newsprint.c:1442 ../plug-ins/gfig/gfig-dialog.c:1256 +msgid "Antialiasing" +msgstr "Yumuşatma" + +#: ../plug-ins/common/newsprint.c:1450 +msgid "O_versample:" +msgstr "_Aşırı örnekleme:" + +#: ../plug-ins/common/nl-filter.c:118 +msgid "Nonlinear swiss army knife filter" +msgstr "Doğrusal olmayan İsviçre Çakısı süzgeci" + +#: ../plug-ins/common/nl-filter.c:124 +msgid "_NL Filter..." +msgstr "_NL Süzgeci..." + +#: ../plug-ins/common/nl-filter.c:952 ../plug-ins/common/nl-filter.c:1015 +msgid "NL Filter" +msgstr "NL Süzgeci" + +#: ../plug-ins/common/nl-filter.c:1044 +msgid "Filter" +msgstr "Süzgeç" + +#: ../plug-ins/common/nl-filter.c:1048 +msgid "_Alpha trimmed mean" +msgstr "_Görünür düzenlenmiş ortalama" + +#: ../plug-ins/common/nl-filter.c:1050 +msgid "Op_timal estimation" +msgstr "En _iyi tahmin" + +#: ../plug-ins/common/nl-filter.c:1052 +msgid "_Edge enhancement" +msgstr "_Kenar pekiştirme" + +#: ../plug-ins/common/nl-filter.c:1077 +msgid "A_lpha:" +msgstr "Gö_rünür:" + +#: ../plug-ins/common/noise-hsv.c:103 +msgid "Randomize hue/saturation/value independently" +msgstr "Renk tonu/doygunluk/değerler arasında bağımsız ve rasgele seç" + +#: ../plug-ins/common/noise-hsv.c:108 +msgid "HSV Noise..." +msgstr "HSV Gürültüsü..." + +#: ../plug-ins/common/noise-hsv.c:215 ../plug-ins/common/noise-hsv.c:361 +msgid "HSV Noise" +msgstr "HSV Gürültüsü" + +#: ../plug-ins/common/noise-hsv.c:397 +msgid "_Holdness:" +msgstr "_Kavranmama:" + +#: ../plug-ins/common/noise-hsv.c:409 +msgid "H_ue:" +msgstr "_Renk özü" + +#: ../plug-ins/common/noise-randomize.c:102 +msgid "Random Hurl" +msgstr "Rastgele Savurma" + +#: ../plug-ins/common/noise-randomize.c:103 +msgid "Random Pick" +msgstr "Rastgele Karıştırma" + +#: ../plug-ins/common/noise-randomize.c:104 +msgid "Random Slur" +msgstr "Rasgele Leke" + +#: ../plug-ins/common/noise-randomize.c:202 +msgid "Completely randomize a fraction of pixels" +msgstr "Benek kesirini tamamen rasgele dağıt" + +#: ../plug-ins/common/noise-randomize.c:204 +msgid "Randomly interchange some pixels with neighbors" +msgstr "Benekleri yanındakiler ile rasgele değiştir" + +#: ../plug-ins/common/noise-randomize.c:206 +msgid "Randomly slide some pixels downward (similar to melting)" +msgstr "Bazı benekleri rasgele aşağı kaydır (erimeye benzer)" + +#: ../plug-ins/common/noise-randomize.c:233 +msgid "_Hurl..." +msgstr "Savurma..." + +#: ../plug-ins/common/noise-randomize.c:245 +msgid "_Pick..." +msgstr "_Seç..." + +#: ../plug-ins/common/noise-randomize.c:257 +msgid "_Slur..." +msgstr "_Leke..." + +#: ../plug-ins/common/noise-randomize.c:771 +#: ../plug-ins/common/noise-solid.c:602 +msgid "_Random seed:" +msgstr "_Rasgele besleme" + +#: ../plug-ins/common/noise-randomize.c:780 +msgid "R_andomization (%):" +msgstr "R_assallık (%):" + +#: ../plug-ins/common/noise-randomize.c:783 +msgid "Percentage of pixels to be filtered" +msgstr "Süzülecek beneklerin yüzdesi" + +#: ../plug-ins/common/noise-randomize.c:795 +msgid "R_epeat:" +msgstr "_Tekrarlama:" + +#: ../plug-ins/common/noise-randomize.c:798 +msgid "Number of times to apply filter" +msgstr "Süzgecin uygulanacağı sayı" + +#: ../plug-ins/common/noise-rgb.c:144 +msgid "Distort colors by random amounts" +msgstr "Rasgele miktarda renkleri boz" + +#: ../plug-ins/common/noise-rgb.c:154 +msgid "_RGB Noise..." +msgstr "_RGB Gürültüsü..." + +#: ../plug-ins/common/noise-rgb.c:282 +msgid "Adding noise" +msgstr "Gürültü ekleme" + +#: ../plug-ins/common/noise-rgb.c:448 +msgid "RGB Noise" +msgstr "RGB Gürültüsü" + +#: ../plug-ins/common/noise-rgb.c:481 +msgid "Co_rrelated noise" +msgstr "İl_işkilendirilmiş gürültü" + +#: ../plug-ins/common/noise-rgb.c:496 +msgid "_Independent RGB" +msgstr "_Bağımsız RGB" + +#: ../plug-ins/common/noise-rgb.c:520 ../plug-ins/common/noise-rgb.c:524 +msgid "_Gray:" +msgstr "_Gri:" + +#: ../plug-ins/common/noise-rgb.c:550 +#, c-format +msgid "Channel #%d:" +msgstr "Kanal #%d:" + +#: ../plug-ins/common/noise-solid.c:176 +msgid "Create a random cloud-like texture" +msgstr "Rastgel bulut-benzeri bir doku oluştur" + +#: ../plug-ins/common/noise-solid.c:182 +msgid "_Solid Noise..." +msgstr "_Düz Gürültü..." + +#. Dialog initialization +#: ../plug-ins/common/noise-solid.c:315 ../plug-ins/common/noise-solid.c:563 +msgid "Solid Noise" +msgstr "Düz Gürültü" + +#: ../plug-ins/common/noise-solid.c:615 +msgid "_Detail:" +msgstr "_Ayrıntı:" + +#. Turbulent +#: ../plug-ins/common/noise-solid.c:625 +msgid "T_urbulent" +msgstr "_Çalkantı" + +#. Tilable +#: ../plug-ins/common/noise-solid.c:639 +msgid "T_ilable" +msgstr "_Döşenebilir" + +#: ../plug-ins/common/noise-solid.c:654 +msgid "_X size:" +msgstr "_X boyutu:" + +#: ../plug-ins/common/noise-solid.c:667 +msgid "_Y size:" +msgstr "_Y boyutu:" + +#: ../plug-ins/common/noise-spread.c:89 +msgid "Move pixels around randomly" +msgstr "Rasgele bir şekilde benekleri etrafında hareket ettir" + +#: ../plug-ins/common/noise-spread.c:98 +msgid "Sp_read..." +msgstr "Ya_y..." + +#: ../plug-ins/common/noise-spread.c:181 +msgid "Spreading" +msgstr "Yayılma" + +#: ../plug-ins/common/noise-spread.c:346 +msgid "Spread" +msgstr "Etrafa Yay" + +#: ../plug-ins/common/noise-spread.c:371 +msgid "Spread Amount" +msgstr "Yayılma Miktarı" + +#: ../plug-ins/common/nova.c:168 +msgid "Add a starburst to the image" +msgstr "Resmi yıldız yağmuru ekle" + +#: ../plug-ins/common/nova.c:177 +msgid "Super_nova..." +msgstr "Süper_nova..." + +#: ../plug-ins/common/nova.c:261 +msgid "Rendering supernova" +msgstr "Süpernova taranıyor" + +#: ../plug-ins/common/nova.c:304 +msgid "Supernova" +msgstr "Süpernova" + +#: ../plug-ins/common/nova.c:349 +msgid "Supernova Color Picker" +msgstr "Süpernova Renk Seçici" + +#: ../plug-ins/common/nova.c:378 +msgid "_Spokes:" +msgstr "_Tekerlek:" + +#: ../plug-ins/common/nova.c:393 +msgid "R_andom hue:" +msgstr "Ra_sgele renk tonu:" + +#: ../plug-ins/common/nova.c:446 +msgid "Center of Nova" +msgstr "Nova Merkezi" + +#: ../plug-ins/common/oilify.c:119 ../plug-ins/common/oilify.c:134 +msgid "Smear colors to simulate an oil painting" +msgstr "Yağlı boya benzetmesi yapmak için renkleri sıva" + +#: ../plug-ins/common/oilify.c:125 +msgid "Oili_fy..." +msgstr "Yağ_lama..." + +#: ../plug-ins/common/oilify.c:247 +msgid "Oil painting" +msgstr "Yağlı boya" + +#: ../plug-ins/common/oilify.c:777 +msgid "Oilify" +msgstr "Yağlama" + +#: ../plug-ins/common/oilify.c:815 +msgid "_Mask size:" +msgstr "_Maske boyutu:" + +#. +#. * Mask-size map check button +#. +#: ../plug-ins/common/oilify.c:830 +msgid "Use m_ask-size map:" +msgstr "M_aske-boyutu eşlemi kullan:" + +#: ../plug-ins/common/oilify.c:867 ../plug-ins/common/sinus.c:922 +msgid "_Exponent:" +msgstr "_Üst:" + +#. +#. * Exponent map check button +#. +#: ../plug-ins/common/oilify.c:882 +msgid "Use e_xponent map:" +msgstr "M_at eşlem kullan:" + +#. +#. * Intensity algorithm check button +#. +#: ../plug-ins/common/oilify.c:918 +msgid "_Use intensity algorithm" +msgstr "Yoğunluk algoritmasını _kullan" + +#: ../plug-ins/common/photocopy.c:153 +msgid "Simulate color distortion produced by a copy machine" +msgstr "Fotokopi makinesinden çıkmış gibi siyah-beyaz yap" + +#: ../plug-ins/common/photocopy.c:158 +msgid "_Photocopy..." +msgstr "_Fotokopi..." + +#: ../plug-ins/common/photocopy.c:839 +msgid "Photocopy" +msgstr "Fotokopi" + +#: ../plug-ins/common/photocopy.c:890 ../plug-ins/common/sharpen.c:511 +#: ../plug-ins/common/softglow.c:697 +msgid "_Sharpness:" +msgstr "_Keskinlik:" + +#: ../plug-ins/common/photocopy.c:904 +msgid "Percent _black:" +msgstr "_Siyah yüzdesi:" + +#: ../plug-ins/common/photocopy.c:918 +msgid "Percent _white:" +msgstr "_Beyaz yüzdesi:" + +#: ../plug-ins/common/pixelize.c:164 +msgid "Simplify image into an array of solid-colored squares" +msgstr "Resmi düz_renkli kareler dizisine basitleştir" + +#: ../plug-ins/common/pixelize.c:171 +msgid "_Pixelize..." +msgstr "_Benekleştir..." + +#: ../plug-ins/common/pixelize.c:273 +msgid "Pixelizing" +msgstr "Benekleştiriliyor" + +#: ../plug-ins/common/pixelize.c:316 +msgid "Pixelize" +msgstr "Benekleştir" + +#: ../plug-ins/common/pixelize.c:352 +msgid "Pixel _width:" +msgstr "Benek _genişliği:" + +#: ../plug-ins/common/pixelize.c:357 +msgid "Pixel _height:" +msgstr "Benek _yüksekliği:" + +#: ../plug-ins/common/plasma.c:176 +msgid "Create a random plasma texture" +msgstr "Rastgele plasma dokusu oluştur" + +#: ../plug-ins/common/plasma.c:181 +msgid "_Plasma..." +msgstr "_Plasma..." + +#: ../plug-ins/common/plasma.c:263 ../plug-ins/common/plasma.c:300 +msgid "Plasma" +msgstr "Plazma" + +#: ../plug-ins/common/plasma.c:337 +msgid "Random _seed:" +msgstr "Rasgele _besleme:" + +#: ../plug-ins/common/plasma.c:348 +msgid "T_urbulence:" +msgstr "Türbülans:" + +#: ../plug-ins/common/plugin-browser.c:134 +msgid "Display information about plug-ins" +msgstr "Eklentiler hakkındaki bilgiyi göster" + +#: ../plug-ins/common/plugin-browser.c:144 +msgid "_Plug-In Browser" +msgstr "Eklenti Tarayıcısı" + +#: ../plug-ins/common/plugin-browser.c:372 +msgid "Searching by name" +msgstr "Ada göre aranıyor" + +#: ../plug-ins/common/plugin-browser.c:386 +#, c-format +msgid "%d plug-in" +msgid_plural "%d plug-ins" +msgstr[0] "%d eklenti" + +#: ../plug-ins/common/plugin-browser.c:395 +msgid "No matches for your query" +msgstr "Sorgunuza uygun eşleşme yok" + +#: ../plug-ins/common/plugin-browser.c:398 +#, c-format +msgid "%d plug-in matches your query" +msgid_plural "%d plug-ins match your query" +msgstr[0] "Sorgunuzla eşleşen %d eklenti" + +#: ../plug-ins/common/plugin-browser.c:529 +msgid "No matches" +msgstr "Eşleşme yok" + +#: ../plug-ins/common/plugin-browser.c:554 +msgid "Plug-In Browser" +msgstr "Eklenti Tarayıcı" + +#: ../plug-ins/common/plugin-browser.c:597 +msgid "Name" +msgstr "İsim" + +#: ../plug-ins/common/plugin-browser.c:605 +#: ../plug-ins/common/plugin-browser.c:668 +msgid "Menu Path" +msgstr "Menü Yolu" + +#: ../plug-ins/common/plugin-browser.c:613 +#: ../plug-ins/common/plugin-browser.c:677 +msgid "Image Types" +msgstr "Görüntü Türleri" + +#: ../plug-ins/common/plugin-browser.c:623 +#: ../plug-ins/common/plugin-browser.c:686 +msgid "Installation Date" +msgstr "Kurulum Tarihi" + +#: ../plug-ins/common/plugin-browser.c:647 +msgid "List View" +msgstr "Liste Görünümü" + +#: ../plug-ins/common/plugin-browser.c:709 +msgid "Tree View" +msgstr "Ağaç Görünümü" + +#: ../plug-ins/common/polar-coords.c:156 +msgid "Convert image to or from polar coordinates" +msgstr "Görüntüyü kutupsal derinliğe ya da kutupsal derinlikten dönüştür" + +#: ../plug-ins/common/polar-coords.c:163 +msgid "P_olar Coordinates..." +msgstr "K_utupsal Derinlik..." + +#: ../plug-ins/common/polar-coords.c:360 +msgid "Polar coordinates" +msgstr "Kutupsal derinlik" + +#: ../plug-ins/common/polar-coords.c:592 +msgid "Polar Coordinates" +msgstr "Kutupsal Derinlik" + +#: ../plug-ins/common/polar-coords.c:631 +msgid "Circle _depth in percent:" +msgstr "Yüzde olarak daire _derinliği:" + +#: ../plug-ins/common/polar-coords.c:643 +msgid "Offset _angle:" +msgstr "Konum_açısı:" + +#: ../plug-ins/common/polar-coords.c:658 +msgid "_Map backwards" +msgstr "_Eşlem geçmişi" + +#: ../plug-ins/common/polar-coords.c:664 +msgid "" +"If checked the mapping will begin at the right side, as opposed to beginning " +"at the left." +msgstr "Eğer eşleme işaretliyse sağ tarafta başlayacak, değilse sol tarafta." + +#: ../plug-ins/common/polar-coords.c:675 +msgid "Map from _top" +msgstr "Ü_stten eşlem" + +#: ../plug-ins/common/polar-coords.c:681 +msgid "" +"If unchecked the mapping will put the bottom row in the middle and the top " +"row on the outside. If checked it will be the opposite." +msgstr "" +"Eğer işaretli değilse eşleme alt satırı dışarıda orta ve üst satıra koyacak. " +"İşaretli ise tam tersi." + +#: ../plug-ins/common/polar-coords.c:693 +msgid "To _polar" +msgstr "_Kutupsala" + +#: ../plug-ins/common/polar-coords.c:699 +msgid "" +"If unchecked the image will be circularly mapped onto a rectangle. If " +"checked the image will be mapped onto a circle." +msgstr "" +"Eğer işaretli değilse resim bir dikdörtgen içerisine dairesel olarak " +"eşlenecek. Eğer işaretli ise resim daire içerisine eşlenecek." + +#: ../plug-ins/common/procedure-browser.c:83 +msgid "List available procedures in the PDB" +msgstr "PDB'deki kullanılabilir yönergeleri listele" + +#: ../plug-ins/common/procedure-browser.c:88 +msgid "Procedure _Browser" +msgstr "Yönerge _Tarayıcı" + +#: ../plug-ins/common/procedure-browser.c:126 +msgid "Procedure Browser" +msgstr "Yönerge Tarayıcı" + +#: ../plug-ins/common/qbist.c:402 +msgid "Generate a huge variety of abstract patterns" +msgstr "Soyut desenlerin geniş bir çeşitliliğini oluştur" + +#: ../plug-ins/common/qbist.c:410 +msgid "_Qbist..." +msgstr "_Qbist..." + +#: ../plug-ins/common/qbist.c:511 +msgid "Qbist" +msgstr "Qbist" + +#: ../plug-ins/common/qbist.c:707 +msgid "Load QBE File" +msgstr "QBE Dosyasını Yükle" + +#: ../plug-ins/common/qbist.c:749 +msgid "Save as QBE File" +msgstr "QBE dosyası olarak kaydet" + +#: ../plug-ins/common/qbist.c:803 +msgid "G-Qbist" +msgstr "G-Qbist" + +#: ../plug-ins/common/red-eye-removal.c:105 +msgid "Remove the red eye effect caused by camera flashes" +msgstr "Kamera ışığından kaynaklanan gözlerdeki kırmızılığı kaldır" + +#: ../plug-ins/common/red-eye-removal.c:116 +msgid "_Red Eye Removal..." +msgstr "_Kırmızı Göz Kaldırma..." + +#: ../plug-ins/common/red-eye-removal.c:142 +msgid "Red Eye Removal" +msgstr "Kırmızı Göz Kaldırma" + +#: ../plug-ins/common/red-eye-removal.c:170 +#: ../plug-ins/common/unsharp-mask.c:706 ../plug-ins/common/wind.c:1008 +#: ../plug-ins/imagemap/imap_preferences.c:441 +#: ../plug-ins/map-object/map-object-ui.c:585 +msgid "_Threshold:" +msgstr "_Eşik:" + +#: ../plug-ins/common/red-eye-removal.c:176 +msgid "Threshold for the red eye color to remove." +msgstr "Kırmızı göz rengini kaldırma eşiği." + +#: ../plug-ins/common/red-eye-removal.c:181 +msgid "Manually selecting the eyes may improve the results." +msgstr "" +"Gözleri elle belirtmek daha iyi bir netice alınmasına imkan sağlayacaktır." + +#: ../plug-ins/common/red-eye-removal.c:301 +msgid "Removing red eye" +msgstr "Kırmızı göz kaldırılıyor" + +#: ../plug-ins/common/ripple.c:129 +msgid "Displace pixels in a ripple pattern" +msgstr "Dalga deseninde beneklerin yerini değiştirir" + +#: ../plug-ins/common/ripple.c:136 +msgid "_Ripple..." +msgstr "_Dalgacık..." + +#: ../plug-ins/common/ripple.c:226 +msgid "Rippling" +msgstr "Dalgacıklandırma" + +#: ../plug-ins/common/ripple.c:468 +msgid "Ripple" +msgstr "Dalgacık" + +#: ../plug-ins/common/ripple.c:526 +msgid "_Retain tilability" +msgstr "_Döşenebilirliği tut" + +#. Edges toggle box +#: ../plug-ins/common/ripple.c:560 +msgid "Edges" +msgstr "Kenarlar" + +#: ../plug-ins/common/ripple.c:566 +msgid "_Blank" +msgstr "_Sil" + +#. Wave toggle box +#: ../plug-ins/common/ripple.c:588 +msgid "Wave Type" +msgstr "Dalga Türü" + +#: ../plug-ins/common/ripple.c:592 +msgid "Saw_tooth" +msgstr "Testere_dişleri" + +#: ../plug-ins/common/ripple.c:593 +msgid "S_ine" +msgstr "S_inüs" + +#: ../plug-ins/common/ripple.c:616 +msgid "_Period:" +msgstr "_Dönem:" + +#: ../plug-ins/common/ripple.c:629 +msgid "A_mplitude:" +msgstr "G_enişlik:" + +#: ../plug-ins/common/ripple.c:642 +msgid "Phase _shift:" +msgstr "Faz _kayması:" + +#: ../plug-ins/common/rotate.c:413 +msgid "You can not rotate the whole image if there's a selection." +msgstr "Bütün resmi seçili bir alanda çeviremezsiniz." + +#: ../plug-ins/common/rotate.c:420 +msgid "You can not rotate the whole image if there's a floating selection." +msgstr "Eğer serbest seçim var ise tüm resmi döndüremezsiniz." + +#: ../plug-ins/common/rotate.c:431 +msgid "Sorry, channels and masks can not be rotated." +msgstr "Üzgünüz, kanal ve maskeler çevrilemez." + +#: ../plug-ins/common/rotate.c:437 +msgid "Rotating" +msgstr "Döndürme" + +#: ../plug-ins/common/sample-colorize.c:298 +msgid "Colorize image using a sample image as a guide" +msgstr "Örnek bir resmi rehber alarak resmi renklendirir" + +#: ../plug-ins/common/sample-colorize.c:303 +msgid "_Sample Colorize..." +msgstr "_Örnek Renklendirme..." + +#: ../plug-ins/common/sample-colorize.c:1318 +msgid "Sample Colorize" +msgstr "Örnek Renklendirme" + +#: ../plug-ins/common/sample-colorize.c:1323 +msgid "Get _Sample Colors" +msgstr "Örnek Renkler _Al" + +#. layer combo_box (Dst) +#: ../plug-ins/common/sample-colorize.c:1352 +msgid "Destination:" +msgstr "Hedef:" + +#. layer combo_box (Sample) +#: ../plug-ins/common/sample-colorize.c:1368 +msgid "Sample:" +msgstr "Örnek:" + +#: ../plug-ins/common/sample-colorize.c:1378 +msgid "From reverse gradient" +msgstr "Ters eğimden" + +#: ../plug-ins/common/sample-colorize.c:1383 +msgid "From gradient" +msgstr "Eğimden" + +#. check button +#: ../plug-ins/common/sample-colorize.c:1404 +#: ../plug-ins/common/sample-colorize.c:1431 +msgid "Show selection" +msgstr "Seçimi göster" + +#. check button +#: ../plug-ins/common/sample-colorize.c:1415 +#: ../plug-ins/common/sample-colorize.c:1442 +msgid "Show color" +msgstr "Rengi göster" + +#: ../plug-ins/common/sample-colorize.c:1555 +msgid "Input levels:" +msgstr "Girdi düzeyleri:" + +#: ../plug-ins/common/sample-colorize.c:1605 +msgid "Output levels:" +msgstr "Çıktı düzeyleri:" + +#. check button +#: ../plug-ins/common/sample-colorize.c:1645 +msgid "Hold intensity" +msgstr "Yoğunluğu sabitle" + +#. check button +#: ../plug-ins/common/sample-colorize.c:1656 +msgid "Original intensity" +msgstr "Özgün yoğunluk" + +#. check button +#: ../plug-ins/common/sample-colorize.c:1674 +msgid "Use subcolors" +msgstr "Yardımcı renkleri kullan" + +#. check button +#: ../plug-ins/common/sample-colorize.c:1685 +msgid "Smooth samples" +msgstr "Pürüzsüz örnekler" + +#: ../plug-ins/common/sample-colorize.c:2657 +msgid "Sample analyze" +msgstr "Basit çözümleme" + +#: ../plug-ins/common/sample-colorize.c:3035 +msgid "Remap colorized" +msgstr "Renklendirilen yeniden eşleme" + +#: ../plug-ins/common/screenshot.c:240 +msgid "Create an image from an area of the screen" +msgstr "Ekran alanında görüntü oluşutur" + +#: ../plug-ins/common/screenshot.c:253 +msgid "_Screenshot..." +msgstr "_Ekran Görüntüsü..." + +#: ../plug-ins/common/screenshot.c:417 +msgid "Error selecting the window" +msgstr "Pencere seçme hatası" + +#: ../plug-ins/common/screenshot.c:778 +msgid "Importing screenshot" +msgstr "Ekran görüntüsü içe aktarılıyor" + +#: ../plug-ins/common/screenshot.c:804 ../plug-ins/common/screenshot.c:1060 +msgid "Screenshot" +msgstr "Ekran Görüntüsü" + +#: ../plug-ins/common/screenshot.c:845 +msgid "Mouse Pointer" +msgstr "Fare İmleci" + +#: ../plug-ins/common/screenshot.c:949 +msgid "Specified window not found" +msgstr "Belirtilen pencere bulunamadı" + +#: ../plug-ins/common/screenshot.c:975 +msgid "There was an error taking the screenshot." +msgstr "Ekran görüntüsü almada bir hata oluştu" + +#: ../plug-ins/common/screenshot.c:1069 +msgid "S_nap" +msgstr "Enstantane fotoğraf" + +#: ../plug-ins/common/screenshot.c:1099 +msgid "After the delay, the screenshot is taken." +msgstr "Gecikmenin ardından ekran görüntüsü alınır." + +#: ../plug-ins/common/screenshot.c:1101 +msgid "" +"After the delay, drag your mouse to select the region for the screenshot." +msgstr "" +"Gecikmeden sonra, ekran görüntüsü alınacak bölgeyi seçmek için farenizi " +"sürükleyin." + +#: ../plug-ins/common/screenshot.c:1104 +msgid "At the end of the delay, click in a window to snap it." +msgstr "" +"Gecikme süresinin sonunda, görüntü almak için pencerenin içine tıkla." + +#. Area +#: ../plug-ins/common/screenshot.c:1110 +msgid "Area" +msgstr "Alan" + +#: ../plug-ins/common/screenshot.c:1121 +msgid "Take a screenshot of a single _window" +msgstr "T_ek bir pencerenin ekran görüntüsünü al" + +#: ../plug-ins/common/screenshot.c:1140 +msgid "Include window _decoration" +msgstr "Pencere süslemesini kapsa" + +#: ../plug-ins/common/screenshot.c:1158 +msgid "Take a screenshot of the entire _screen" +msgstr "_Tüm ekranın ekran görüntüsünü al" + +#: ../plug-ins/common/screenshot.c:1177 +msgid "Include _mouse pointer" +msgstr "_Fare imlecini kapsa" + +#: ../plug-ins/common/screenshot.c:1197 +msgid "Select a _region to grab" +msgstr "Yakanacak _bölge seç" + +#. Delay +#: ../plug-ins/common/screenshot.c:1212 +msgid "Delay" +msgstr "Gecikme" + +#. this is the unit label of a spinbutton +#: ../plug-ins/common/screenshot.c:1234 +msgid "seconds" +msgstr "saniye" + +#: ../plug-ins/common/semi-flatten.c:68 +msgid "Replace partial transparency with the current background color" +msgstr "Mevcut artalan rengini kısmi saydamlık ile değiştir" + +#: ../plug-ins/common/semi-flatten.c:75 +msgid "_Semi-Flatten" +msgstr "_Yarı-Düzleştir" + +#: ../plug-ins/common/semi-flatten.c:118 +msgid "Semi-Flattening" +msgstr "Yarı-Düzleştirme" + +#: ../plug-ins/common/sharpen.c:113 +msgid "Make image sharper (less powerful than Unsharp Mask)" +msgstr "Resmi keskinleştirir (Keskin Netleştirmeye göre daha güçsüzdür)" + +#: ../plug-ins/common/sharpen.c:120 +msgid "_Sharpen..." +msgstr "_Keskinleştir..." + +#. +#. * Let the user know what we're doing... +#. +#: ../plug-ins/common/sharpen.c:307 +msgid "Sharpening" +msgstr "Keskinleştiriliyor" + +#: ../plug-ins/common/sharpen.c:476 +msgid "Sharpen" +msgstr "Keskinleştir" + +#: ../plug-ins/common/shift.c:101 +msgid "Shift each row of pixels by a random amount" +msgstr "Her benek satırını rasgele miktarda kaydır" + +#: ../plug-ins/common/shift.c:108 +msgid "_Shift..." +msgstr "_Ötele..." + +#: ../plug-ins/common/shift.c:189 +msgid "Shifting" +msgstr "Öteleme" + +#: ../plug-ins/common/shift.c:355 +msgid "Shift" +msgstr "Ötele" + +#: ../plug-ins/common/shift.c:388 +msgid "Shift _horizontally" +msgstr "Yatay olarak _kaydır" + +#: ../plug-ins/common/shift.c:391 +msgid "Shift _vertically" +msgstr "_Dikey olarak kaydır" + +#: ../plug-ins/common/shift.c:422 +msgid "Shift _amount:" +msgstr "Kaydırma _miktarı:" + +#: ../plug-ins/common/sinus.c:186 +msgid "Generate complex sinusoidal textures" +msgstr "Karmaşık sinüsoid desen oluştur" + +#: ../plug-ins/common/sinus.c:191 +msgid "_Sinus..." +msgstr "_Sinüs..." + +#: ../plug-ins/common/sinus.c:284 +msgid "Sinus: rendering" +msgstr "Sinüs: taranıyor" + +#. Create Main window with a vbox +#. ============================== +#: ../plug-ins/common/sinus.c:648 +msgid "Sinus" +msgstr "Sinüs" + +#: ../plug-ins/common/sinus.c:690 +msgid "Drawing Settings" +msgstr "Çizim Ayarları" + +#: ../plug-ins/common/sinus.c:700 +msgid "_X scale:" +msgstr "_X ölçeği:" + +#: ../plug-ins/common/sinus.c:709 +msgid "_Y scale:" +msgstr "_Y ölçeği:" + +#: ../plug-ins/common/sinus.c:718 +msgid "Co_mplexity:" +msgstr "Ka_rmaşıklık:" + +#: ../plug-ins/common/sinus.c:728 +msgid "Calculation Settings" +msgstr "Hesaplama Ayarları" + +#: ../plug-ins/common/sinus.c:741 +msgid "R_andom seed:" +msgstr "R_astgele tohum:" + +#: ../plug-ins/common/sinus.c:750 +msgid "_Force tiling?" +msgstr "Döşemeye _zorlansın mı?" + +#: ../plug-ins/common/sinus.c:763 +msgid "_Ideal" +msgstr "_İdeal" + +#: ../plug-ins/common/sinus.c:764 +msgid "_Distorted" +msgstr "_Bozulmuş" + +#: ../plug-ins/common/sinus.c:782 ../plug-ins/common/sinus.c:798 +#: ../plug-ins/imagemap/imap_preferences.c:422 +msgid "Colors" +msgstr "Renkler" + +#. if in grey scale, the colors are necessarily black and white +#: ../plug-ins/common/sinus.c:791 +msgid "The colors are white and black." +msgstr "Renkler beyaz ve siyah." + +#: ../plug-ins/common/sinus.c:802 +msgid "Bl_ack & white" +msgstr "Si_yah & Beyaz" + +#: ../plug-ins/common/sinus.c:804 +msgid "_Foreground & background" +msgstr "_Önalan ve Artalan" + +#: ../plug-ins/common/sinus.c:806 +msgid "C_hoose here:" +msgstr "Burada s_eç:" + +#: ../plug-ins/common/sinus.c:819 +msgid "First color" +msgstr "İlk renk" + +#: ../plug-ins/common/sinus.c:829 +msgid "Second color" +msgstr "İkinci renk" + +#: ../plug-ins/common/sinus.c:842 +msgid "Alpha Channels" +msgstr "Görünür Kanalları" + +#: ../plug-ins/common/sinus.c:855 +msgid "F_irst color:" +msgstr "İ_lk renk:" + +#: ../plug-ins/common/sinus.c:870 +msgid "S_econd color:" +msgstr "İ_kinci renk:" + +#: ../plug-ins/common/sinus.c:886 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:904 +msgid "Co_lors" +msgstr "_Renkler" + +#: ../plug-ins/common/sinus.c:895 +msgid "Blend Settings" +msgstr "Harmanlama Ayarları" + +#: ../plug-ins/common/sinus.c:908 +msgid "L_inear" +msgstr "D_oğrusal" + +#: ../plug-ins/common/sinus.c:909 +msgid "Bili_near" +msgstr "Çift_doğrusal:" + +#: ../plug-ins/common/sinus.c:910 +msgid "Sin_usoidal" +msgstr "Sin_üs eğrisi şeklinde" + +#: ../plug-ins/common/sinus.c:932 +msgid "_Blend" +msgstr "_Harmanlama" + +#: ../plug-ins/common/sinus.c:1049 +msgid "Do _preview" +msgstr "Önizleme" + +#: ../plug-ins/common/smooth-palette.c:83 +msgid "Derive a smooth color palette from the image" +msgstr "Görüntüden düzgün renk paleti türet" + +#: ../plug-ins/common/smooth-palette.c:88 +msgid "Smoo_th Palette..." +msgstr "_Pürüzsüz Palet..." + +#: ../plug-ins/common/smooth-palette.c:179 +msgid "Deriving smooth palette" +msgstr "Düzgün palet türetme" + +#: ../plug-ins/common/smooth-palette.c:412 +msgid "Smooth Palette" +msgstr "Pürüzsüz Palet..." + +#: ../plug-ins/common/smooth-palette.c:452 +msgid "_Search depth:" +msgstr "_Arama derinliği:" + +#: ../plug-ins/common/softglow.c:134 +msgid "Simulate glow by making highlights intense and fuzzy" +msgstr "Vurgulamaları yoğun ve bulanık yaparak parıltı benzetimi yap" + +#: ../plug-ins/common/softglow.c:139 +msgid "_Softglow..." +msgstr "Hafif _Parıltı..." + +#: ../plug-ins/common/softglow.c:632 +msgid "Softglow" +msgstr "Hafif Parıltı" + +#: ../plug-ins/common/softglow.c:669 +msgid "_Glow radius:" +msgstr "Parıltı _yarıçapı:" + +#: ../plug-ins/common/sparkle.c:178 +msgid "Turn bright spots into starry sparkles" +msgstr "Aydınlık noktaları yıldızlı parıltıya çevir" + +#: ../plug-ins/common/sparkle.c:186 +msgid "_Sparkle..." +msgstr "_Parıltı..." + +#: ../plug-ins/common/sparkle.c:223 +msgid "Region selected for filter is empty" +msgstr "Süzgeç için seçilen alan boş" + +#: ../plug-ins/common/sparkle.c:299 +msgid "Sparkling" +msgstr "Parlak" + +#: ../plug-ins/common/sparkle.c:337 +msgid "Sparkle" +msgstr "Parıltı" + +#: ../plug-ins/common/sparkle.c:373 +msgid "Luminosity _threshold:" +msgstr "Işıklılık _eşiği:" + +#: ../plug-ins/common/sparkle.c:376 +msgid "Adjust the luminosity threshold" +msgstr "Işıklılık eşiğini ayarla" + +#: ../plug-ins/common/sparkle.c:386 +msgid "F_lare intensity:" +msgstr "I_şıma şiddeti:" + +#: ../plug-ins/common/sparkle.c:389 +msgid "Adjust the flare intensity" +msgstr "Parlama yoğunluğunu ayarla" + +#: ../plug-ins/common/sparkle.c:399 +msgid "_Spike length:" +msgstr "_Çivi uzunluğu:" + +#: ../plug-ins/common/sparkle.c:402 +msgid "Adjust the spike length" +msgstr "Çivi uzunluğunu ayarla" + +#: ../plug-ins/common/sparkle.c:412 +msgid "Sp_ike points:" +msgstr "Çivi _noktaları:" + +#: ../plug-ins/common/sparkle.c:415 +msgid "Adjust the number of spikes" +msgstr "Çivilerin sayısını ayarla" + +#: ../plug-ins/common/sparkle.c:425 +msgid "Spi_ke angle (-1: random):" +msgstr "Çivi a_çısı (-1: rasgele):" + +#: ../plug-ins/common/sparkle.c:428 +msgid "Adjust the spike angle (-1 causes a random angle to be chosen)" +msgstr "Çivi açısını ayarla (-1 rasgele açı seçilmesini sağlar)" + +#: ../plug-ins/common/sparkle.c:439 +msgid "Spik_e density:" +msgstr "Çiv_i kalınlığı:" + +#: ../plug-ins/common/sparkle.c:442 +msgid "Adjust the spike density" +msgstr "Çivi kalınlığını ayarla" + +#: ../plug-ins/common/sparkle.c:452 +msgid "Tr_ansparency:" +msgstr "S_aydamlık:" + +#: ../plug-ins/common/sparkle.c:455 +msgid "Adjust the opacity of the spikes" +msgstr "Çivilerin opaklığını ayarla" + +#: ../plug-ins/common/sparkle.c:465 +msgid "_Random hue:" +msgstr "_Rastgele renk tonu:" + +#: ../plug-ins/common/sparkle.c:468 +msgid "Adjust how much the hue should be changed randomly" +msgstr "Ne kadar renk tonunun rasgele olarak değişmesi gerektiğini ayarla" + +#: ../plug-ins/common/sparkle.c:478 +msgid "Rando_m saturation:" +msgstr "Rastgel_e doygunluk" + +#: ../plug-ins/common/sparkle.c:481 +msgid "Adjust how much the saturation should be changed randomly" +msgstr "Ne kadar doygunluğun rastgele değiştirilmesi gerektiğini ayarlayın" + +#: ../plug-ins/common/sparkle.c:498 +msgid "_Preserve luminosity" +msgstr "Işıklılığı _koru" + +#: ../plug-ins/common/sparkle.c:505 +msgid "Should the luminosity be preserved?" +msgstr "Işıklılık korunmalı mı?" + +#: ../plug-ins/common/sparkle.c:514 +msgid "In_verse" +msgstr "Te_rs" + +#: ../plug-ins/common/sparkle.c:520 +msgid "Should the effect be inversed?" +msgstr "Etkiler tersine çevrilsin mi?" + +#: ../plug-ins/common/sparkle.c:529 +msgid "A_dd border" +msgstr "Kenarlık e_kle" + +#: ../plug-ins/common/sparkle.c:535 +msgid "Draw a border of spikes around the image" +msgstr "Resmin çevresindeki çivilerin kenarlığını çiz" + +#: ../plug-ins/common/sparkle.c:549 +msgid "_Natural color" +msgstr "_Doğal renk" + +#: ../plug-ins/common/sparkle.c:550 +msgid "_Foreground color" +msgstr "_Önalan rengi" + +#: ../plug-ins/common/sparkle.c:551 +msgid "_Background color" +msgstr "_Artalan rengi" + +#: ../plug-ins/common/sparkle.c:558 +msgid "Use the color of the image" +msgstr "Görüntünün rengini kullan" + +#: ../plug-ins/common/sparkle.c:559 +msgid "Use the foreground color" +msgstr "Önplan rengini kullan" + +#: ../plug-ins/common/sparkle.c:560 +msgid "Use the background color" +msgstr "Artalan rengini kullan" + +#: ../plug-ins/common/sphere-designer.c:291 +#: ../plug-ins/gimpressionist/general.c:166 +msgid "Solid" +msgstr "Kesiksiz" + +#: ../plug-ins/common/sphere-designer.c:292 +msgid "Checker" +msgstr "Denetleyici" + +#: ../plug-ins/common/sphere-designer.c:293 +msgid "Marble" +msgstr "Mermer" + +#: ../plug-ins/common/sphere-designer.c:294 +msgid "Lizard" +msgstr "Kertenkele" + +#: ../plug-ins/common/sphere-designer.c:295 +msgid "Phong" +msgstr "Phong" + +#: ../plug-ins/common/sphere-designer.c:296 ../plug-ins/flame/flame.c:774 +msgid "Noise" +msgstr "Parazit" + +#: ../plug-ins/common/sphere-designer.c:297 +msgid "Wood" +msgstr "Ağaç" + +#: ../plug-ins/common/sphere-designer.c:298 ../plug-ins/flame/flame.c:758 +msgid "Spiral" +msgstr "Spiral" + +#: ../plug-ins/common/sphere-designer.c:299 +msgid "Spots" +msgstr "Lekeler" + +#: ../plug-ins/common/sphere-designer.c:1742 +#: ../plug-ins/common/sphere-designer.c:2693 +msgid "Texture" +msgstr "Doku" + +#: ../plug-ins/common/sphere-designer.c:1744 +msgid "Bumpmap" +msgstr "Derinlik etkisi" + +#: ../plug-ins/common/sphere-designer.c:1746 +#: ../plug-ins/common/sphere-designer.c:2695 +msgid "Light" +msgstr "Hafif" + +#: ../plug-ins/common/sphere-designer.c:2010 +#, c-format +msgid "File '%s' is not a valid save file." +msgstr "'%s' dosyası geçerli bir kayıt dosyası değil." + +#: ../plug-ins/common/sphere-designer.c:2190 +msgid "Open File" +msgstr "Dosya Aç" + +#: ../plug-ins/common/sphere-designer.c:2190 +msgid "Save File" +msgstr "Dosyayı Kaydet" + +#: ../plug-ins/common/sphere-designer.c:2547 +msgid "Sphere Designer" +msgstr "Küre Tasarımcısı" + +#: ../plug-ins/common/sphere-designer.c:2678 +msgid "Properties" +msgstr "Özellikler" + +#: ../plug-ins/common/sphere-designer.c:2694 +msgid "Bump" +msgstr "Tümsek" + +#. row labels +#: ../plug-ins/common/sphere-designer.c:2702 +#: ../plug-ins/lighting/lighting-ui.c:405 +msgid "Type:" +msgstr "Tür:" + +#: ../plug-ins/common/sphere-designer.c:2721 +msgid "Texture:" +msgstr "Doku:" + +#: ../plug-ins/common/sphere-designer.c:2726 +msgid "Colors:" +msgstr "Renkler:" + +#: ../plug-ins/common/sphere-designer.c:2729 +#: ../plug-ins/common/sphere-designer.c:2740 +msgid "Color Selection Dialog" +msgstr "Renk Seçim Kutusu" + +#. Scale +#: ../plug-ins/common/sphere-designer.c:2751 +#: ../plug-ins/gimpressionist/paper.c:194 +#: ../plug-ins/ifs-compose/ifs-compose.c:554 +msgid "Scale:" +msgstr "Ölçekle:" + +#: ../plug-ins/common/sphere-designer.c:2759 +msgid "Turbulence:" +msgstr "Türbülans:" + +#: ../plug-ins/common/sphere-designer.c:2766 +msgid "Amount:" +msgstr "Adet:" + +#: ../plug-ins/common/sphere-designer.c:2773 +msgid "Exp.:" +msgstr "Üstel:" + +#: ../plug-ins/common/sphere-designer.c:2780 +msgid "Transformations" +msgstr "Dönüşümler" + +#: ../plug-ins/common/sphere-designer.c:2796 +#: ../plug-ins/map-object/map-object-ui.c:1143 +msgid "Scale X:" +msgstr "X Ölçeği:" + +#: ../plug-ins/common/sphere-designer.c:2803 +msgid "Scale Y:" +msgstr "Y Ölçeği:" + +#: ../plug-ins/common/sphere-designer.c:2809 +msgid "Scale Z:" +msgstr "Z Ölçeği:" + +#: ../plug-ins/common/sphere-designer.c:2816 +msgid "Rotate X:" +msgstr "X Dönmesi:" + +#: ../plug-ins/common/sphere-designer.c:2823 +msgid "Rotate Y:" +msgstr "Y Dönmesi:" + +#: ../plug-ins/common/sphere-designer.c:2830 +msgid "Rotate Z:" +msgstr "Z Dönmesi:" + +#: ../plug-ins/common/sphere-designer.c:2837 +msgid "Position X:" +msgstr "X Konumu:" + +#: ../plug-ins/common/sphere-designer.c:2844 +msgid "Position Y:" +msgstr "Y Konumu:" + +#: ../plug-ins/common/sphere-designer.c:2851 +msgid "Position Z:" +msgstr "Z Konumu:" + +#: ../plug-ins/common/sphere-designer.c:2966 +msgid "Rendering sphere" +msgstr "Küre taranıyor" + +#: ../plug-ins/common/sphere-designer.c:3016 +msgid "Create an image of a textured sphere" +msgstr "Dokumalı küre resmi oluştur" + +#: ../plug-ins/common/sphere-designer.c:3023 +msgid "Sphere _Designer..." +msgstr "Küre _Tasarımcısı..." + +#: ../plug-ins/common/sphere-designer.c:3083 +msgid "Region selected for plug-in is empty" +msgstr "Eklenti için seçilen alan boş" + +#: ../plug-ins/common/threshold-alpha.c:85 +msgid "Make transparency all-or-nothing" +msgstr "Tümünü/hiçbirini saydamlaştır" + +#: ../plug-ins/common/threshold-alpha.c:90 +msgid "_Threshold Alpha..." +msgstr "_Görünür Eşik..." + +#: ../plug-ins/common/threshold-alpha.c:131 +msgid "The layer has its alpha channel locked." +msgstr "Görünür kanalı olan katman kilitlendi." + +#: ../plug-ins/common/threshold-alpha.c:137 +msgid "RGBA/GRAYA drawable is not selected." +msgstr "Çizilebilir RGBA/GRAYA seçili değil." + +#: ../plug-ins/common/threshold-alpha.c:165 +msgid "Coloring transparency" +msgstr "Saydamlığı renklendirme" + +#: ../plug-ins/common/threshold-alpha.c:248 +msgid "Threshold Alpha" +msgstr "Görünür Eşik" + +#: ../plug-ins/common/threshold-alpha.c:283 +msgid "Threshold:" +msgstr "Eşik:" + +#: ../plug-ins/common/tile-glass.c:124 +msgid "Simulate distortion caused by square glass tiles" +msgstr "Kare cam döşemeleri sebebiyle oluşan bozulma benzetimi yap" + +#: ../plug-ins/common/tile-glass.c:130 +msgid "_Glass Tile..." +msgstr "_Cam Döşeme..." + +#: ../plug-ins/common/tile-glass.c:210 ../plug-ins/common/tile-glass.c:250 +msgid "Glass Tile" +msgstr "Cam Döşeme" + +#: ../plug-ins/common/tile-glass.c:289 +msgid "Tile _width:" +msgstr "Döşeme _genişliği:" + +#: ../plug-ins/common/tile-paper.c:243 ../plug-ins/common/tile-paper.c:556 +msgid "Paper Tile" +msgstr "Parçalara Ayır" + +#: ../plug-ins/common/tile-paper.c:269 +msgid "Division" +msgstr "Bölme" + +#: ../plug-ins/common/tile-paper.c:319 +msgid "Fractional Pixels" +msgstr "Kesirli Benekler" + +#: ../plug-ins/common/tile-paper.c:324 +msgid "_Background" +msgstr "A_rtalan" + +#: ../plug-ins/common/tile-paper.c:326 +msgid "_Ignore" +msgstr "_Yoksay" + +#: ../plug-ins/common/tile-paper.c:328 +msgid "_Force" +msgstr "_Zorla" + +#: ../plug-ins/common/tile-paper.c:335 +msgid "C_entering" +msgstr "O_rtalama" + +#: ../plug-ins/common/tile-paper.c:350 +msgid "Movement" +msgstr "Hareket Yönü" + +#: ../plug-ins/common/tile-paper.c:363 +msgid "_Max (%):" +msgstr "_Azami (%):" + +#: ../plug-ins/common/tile-paper.c:369 +msgid "_Wrap around" +msgstr "Etrafını _sar" + +#: ../plug-ins/common/tile-paper.c:379 +msgid "Background Type" +msgstr "Artalan Türü" + +#: ../plug-ins/common/tile-paper.c:386 +msgid "I_nverted image" +msgstr "Te_rs görüntü" + +#: ../plug-ins/common/tile-paper.c:388 +msgid "Im_age" +msgstr "Gö_rüntü" + +#: ../plug-ins/common/tile-paper.c:390 +msgid "Fo_reground color" +msgstr "Ön_alan rengi" + +#: ../plug-ins/common/tile-paper.c:392 +msgid "Bac_kground color" +msgstr "Ar_talan rengi" + +#: ../plug-ins/common/tile-paper.c:394 +msgid "S_elect here:" +msgstr "Burayı s_eç:" + +#: ../plug-ins/common/tile-paper.c:401 +msgid "Background Color" +msgstr "Artalan Rengi" + +#: ../plug-ins/common/tile-paper.c:846 +msgid "Cut image into paper tiles, and slide them" +msgstr "Resmi dörtgen şeklinde parçalara ayırır ve onları rastgele döşer" + +#: ../plug-ins/common/tile-paper.c:851 +msgid "September 31, 1999" +msgstr "31 Eylül 1999" + +#: ../plug-ins/common/tile-paper.c:852 +msgid "_Paper Tile..." +msgstr "_Parçalara Ayır..." + +#: ../plug-ins/common/tile-seamless.c:67 +msgid "Alters edges to make the image seamlessly tileable" +msgstr "Resme, resmin kenarlarını yumuşak olarak döşer" + +#: ../plug-ins/common/tile-seamless.c:73 +msgid "_Make Seamless" +msgstr "_Yumuşak Döşe" + +#: ../plug-ins/common/tile-seamless.c:338 +msgid "Tiler" +msgstr "Döşeyici" + +#: ../plug-ins/common/tile-small.c:215 +msgid "Tile image into smaller versions of the original" +msgstr "Resmin küçük hallerini düzenli olarak döşer" + +#: ../plug-ins/common/tile-small.c:220 +msgid "_Small Tiles..." +msgstr "_Küçük Döşemeler..." + +#: ../plug-ins/common/tile-small.c:263 +msgid "Region selected for filter is empty." +msgstr "Süzgeç için seçilen alan boş." + +#. Set the tile cache size +#: ../plug-ins/common/tile-small.c:321 ../plug-ins/common/tile.c:190 +msgid "Tiling" +msgstr "Döşeme" + +#. Get the preview image +#: ../plug-ins/common/tile-small.c:364 +msgid "Small Tiles" +msgstr "Küçük Döşemeler" + +#. Area for buttons etc +#. Flip +#: ../plug-ins/common/tile-small.c:414 +#: ../plug-ins/ifs-compose/ifs-compose.c:610 +msgid "Flip" +msgstr "Çevir" + +#: ../plug-ins/common/tile-small.c:462 +msgid "A_ll tiles" +msgstr "T_üm parçalar" + +#: ../plug-ins/common/tile-small.c:476 +msgid "Al_ternate tiles" +msgstr "Değ_işimli parçalar" + +#: ../plug-ins/common/tile-small.c:490 +msgid "_Explicit tile" +msgstr "_Seçili parça" + +#: ../plug-ins/common/tile-small.c:496 +msgid "Ro_w:" +msgstr "Satı_r:" + +#: ../plug-ins/common/tile-small.c:520 +msgid "Col_umn:" +msgstr "Süt_un:" + +#: ../plug-ins/common/tile-small.c:572 +msgid "O_pacity:" +msgstr "I_şık geçirmezlik:" + +#. Lower frame saying howmany segments +#: ../plug-ins/common/tile-small.c:581 +msgid "Number of Segments" +msgstr "Parçaların Sayısı" + +#: ../plug-ins/common/tile.c:101 +msgid "Create an array of copies of the image" +msgstr "Görüntü kopyalarının dizisini oluştur" + +#: ../plug-ins/common/tile.c:111 +msgid "_Tile..." +msgstr "_Döşe..." + +#: ../plug-ins/common/tile.c:401 +msgid "Tile" +msgstr "Döşe" + +#: ../plug-ins/common/tile.c:422 +msgid "Tile to New Size" +msgstr "Yeni Boyuta Döşe" + +#: ../plug-ins/common/tile.c:444 +msgid "C_reate new image" +msgstr "Yeni görüntü o_luştur" + +#: ../plug-ins/common/unit-editor.c:94 +msgid "Saved" +msgstr "Kaydedildi" + +#: ../plug-ins/common/unit-editor.c:94 +msgid "" +"A unit definition will only be saved before GIMP exits if this column is " +"checked." +msgstr "" +"Öğe tanımı GIMP'ten çıkmadan önce eğer bu sütun işaretlenirse kaydedilecek." + +#: ../plug-ins/common/unit-editor.c:96 +msgid "ID" +msgstr "Kimlik" + +#: ../plug-ins/common/unit-editor.c:96 +msgid "" +"This string will be used to identify a unit in GIMP's configuration files." +msgstr "" +"Bu dizgi GIMP'in yapılandırma dosyasındaki bir birimi saptamak için " +"kullanılacaktır." + +#: ../plug-ins/common/unit-editor.c:98 +msgid "Factor" +msgstr "Etken" + +#: ../plug-ins/common/unit-editor.c:98 +msgid "How many units make up an inch." +msgstr "Kaç birim inç yapıyor." + +#: ../plug-ins/common/unit-editor.c:99 +msgid "Digits" +msgstr "Sayılar" + +#: ../plug-ins/common/unit-editor.c:99 +msgid "" +"This field is a hint for numerical input fields. It specifies how many " +"decimal digits the input field should provide to get approximately the same " +"accuracy as an \"inch\" input field with two decimal digits." +msgstr "" +"Bu alan, sayısal girdi alanları için bir tavsiyedir. Girdi alanının yaklaşık " +"olarak aynı doğrulukta olan iki ondalık haneli \"inç\" girdi alanı için ne " +"kadar ondalık hane sağlaması gerektiğini belirtir." + +#: ../plug-ins/common/unit-editor.c:104 +msgid "Symbol" +msgstr "Sembol" + +#: ../plug-ins/common/unit-editor.c:104 +msgid "" +"The unit's symbol if it has one (e.g. \"'\" for inches). The unit's " +"abbreviation is used if doesn't have a symbol." +msgstr "" +"Birim sembolü varsa kullanılır (örn. \"'\" inç'ler için). Eğer sembol yoksa " +"birim kısaltması kullanılır." + +#: ../plug-ins/common/unit-editor.c:107 +msgid "Abbreviation" +msgstr "Kısaltma" + +#: ../plug-ins/common/unit-editor.c:107 +msgid "The unit's abbreviation (e.g. \"cm\" for centimeters)." +msgstr "Birimin kısaltması (ör: santimetre için \"cm\")." + +#: ../plug-ins/common/unit-editor.c:109 +msgid "Singular" +msgstr "Tekil" + +#: ../plug-ins/common/unit-editor.c:109 +msgid "The unit's singular form." +msgstr "Birimin tekil formu." + +#: ../plug-ins/common/unit-editor.c:110 +msgid "Plural" +msgstr "Çoğul" + +#: ../plug-ins/common/unit-editor.c:110 +msgid "The unit's plural form." +msgstr "Birimin çoğul formu." + +#: ../plug-ins/common/unit-editor.c:121 +msgid "Create a new unit from scratch" +msgstr "BAştan yeni birim oluştur" + +#: ../plug-ins/common/unit-editor.c:127 +msgid "Create a new unit using the currently selected unit as template" +msgstr "Mevcut seçili birimi şablon olarak kullanıp yeni bir birim oluşturun" + +#: ../plug-ins/common/unit-editor.c:145 +msgid "Create or alter units used in GIMP" +msgstr "GIMP'de kullanılmış birimleri oluştur yada değiştir" + +#: ../plug-ins/common/unit-editor.c:150 +msgid "U_nits" +msgstr "B_irimler" + +#: ../plug-ins/common/unit-editor.c:208 +msgid "Add a New Unit" +msgstr "Yeni Birim Ekle" + +#: ../plug-ins/common/unit-editor.c:237 +msgid "_ID:" +msgstr "Ki_mlik:" + +#: ../plug-ins/common/unit-editor.c:248 +msgid "_Factor:" +msgstr "_Etken:" + +#: ../plug-ins/common/unit-editor.c:258 +msgid "_Digits:" +msgstr "_Sayılar:" + +#: ../plug-ins/common/unit-editor.c:270 +msgid "_Symbol:" +msgstr "_Sembol:" + +#: ../plug-ins/common/unit-editor.c:282 +msgid "_Abbreviation:" +msgstr "K_ısaltma:" + +#: ../plug-ins/common/unit-editor.c:294 +msgid "Si_ngular:" +msgstr "Te_kil:" + +#: ../plug-ins/common/unit-editor.c:306 +msgid "_Plural:" +msgstr "_Çoğul:" + +#: ../plug-ins/common/unit-editor.c:349 +msgid "Incomplete input" +msgstr "Tamamlanmamış girdi" + +#: ../plug-ins/common/unit-editor.c:352 +msgid "Please fill in all text fields." +msgstr "Lütfen tüm metin alanlarını doldurun." + +#: ../plug-ins/common/unit-editor.c:409 +msgid "Unit Editor" +msgstr "Birim Düzenleyici" + +#: ../plug-ins/common/unsharp-mask.c:128 +msgid "The most widely useful method for sharpening an image" +msgstr "Bir görüntüyü keskinleştirmek için kullanışlı en yaygın yöntem" + +#: ../plug-ins/common/unsharp-mask.c:138 +msgid "_Unsharp Mask..." +msgstr "_Keskin Netleştirme..." + +#: ../plug-ins/common/unsharp-mask.c:475 +msgid "Merging" +msgstr "Birleştiriliyor" + +#: ../plug-ins/common/unsharp-mask.c:644 +msgid "Unsharp Mask" +msgstr "Keskin Netleştirme" + +#: ../plug-ins/common/value-invert.c:90 +msgid "Invert the brightness of each pixel" +msgstr "Her bir beneğin parlaklığını tersine çevir" + +#: ../plug-ins/common/value-invert.c:104 +msgid "_Value Invert" +msgstr "_Değeri tersine çevir" + +#: ../plug-ins/common/value-invert.c:191 +msgid "Value Invert" +msgstr "Değeri tersine çevir" + +#: ../plug-ins/common/value-propagate.c:189 +msgid "More _white (larger value)" +msgstr "Daha fazla _beyaz (daha büyük değer)" + +#: ../plug-ins/common/value-propagate.c:192 +msgid "More blac_k (smaller value)" +msgstr "Daha fazla siya_h (daha az değer)" + +#: ../plug-ins/common/value-propagate.c:195 +msgid "_Middle value to peaks" +msgstr "_Orta değer en yüksek değere" + +#: ../plug-ins/common/value-propagate.c:198 +msgid "_Foreground to peaks" +msgstr "_Önalan en yüksek değere" + +#: ../plug-ins/common/value-propagate.c:201 +msgid "O_nly foreground" +msgstr "S_adece önplan" + +#: ../plug-ins/common/value-propagate.c:204 +msgid "Only b_ackground" +msgstr "Sadece a_rkaplan" + +#: ../plug-ins/common/value-propagate.c:207 +msgid "Mor_e opaque" +msgstr "Daha faz_la opak" + +#: ../plug-ins/common/value-propagate.c:210 +msgid "More t_ransparent" +msgstr "Daha fazla ş_effalık" + +#: ../plug-ins/common/value-propagate.c:233 +msgid "Propagate certain colors to neighboring pixels" +msgstr "Belirli renkleri komşu beneklere çoğalt" + +#: ../plug-ins/common/value-propagate.c:238 +msgid "_Value Propagate..." +msgstr "Yayılma _Değeri..." + +#: ../plug-ins/common/value-propagate.c:245 +msgid "Shrink lighter areas of the image" +msgstr "Görüntünün aydınlık alanlarını küçültmek" + +#: ../plug-ins/common/value-propagate.c:250 +msgid "E_rode" +msgstr "A_şındır" + +#: ../plug-ins/common/value-propagate.c:257 +msgid "Grow lighter areas of the image" +msgstr "Görüntünün aydınlık alanlarını büyütmek" + +#: ../plug-ins/common/value-propagate.c:262 +msgid "_Dilate" +msgstr "_Genişletme" + +#: ../plug-ins/common/value-propagate.c:473 +#: ../plug-ins/common/value-propagate.c:1086 +msgid "Value Propagate" +msgstr "Yayılma Değeri" + +#. Parameter settings +#: ../plug-ins/common/value-propagate.c:1152 +msgid "Propagate" +msgstr "Yayımla" + +#: ../plug-ins/common/value-propagate.c:1165 +msgid "Lower t_hreshold:" +msgstr "Alt eş_ik" + +#: ../plug-ins/common/value-propagate.c:1177 +msgid "_Upper threshold:" +msgstr "Üs_t eşik" + +#: ../plug-ins/common/value-propagate.c:1189 +msgid "_Propagating rate:" +msgstr "_Yayılma oranı:" + +#: ../plug-ins/common/value-propagate.c:1200 +msgid "To l_eft" +msgstr "S_ola" + +#: ../plug-ins/common/value-propagate.c:1203 +msgid "To _right" +msgstr "S_ağa" + +#: ../plug-ins/common/value-propagate.c:1206 +msgid "To _top" +msgstr "Ü_ste" + +#: ../plug-ins/common/value-propagate.c:1209 +msgid "To _bottom" +msgstr "A_lta" + +#: ../plug-ins/common/value-propagate.c:1218 +msgid "Propagating _alpha channel" +msgstr "_Görünür kanalı çoğaltılıyor" + +#: ../plug-ins/common/value-propagate.c:1229 +msgid "Propagating value channel" +msgstr "Değer kanalı çoğaltılıyor" + +#: ../plug-ins/common/van-gogh-lic.c:566 ../plug-ins/common/van-gogh-lic.c:641 +msgid "Van Gogh (LIC)" +msgstr "Van Gogh (LIC)" + +#: ../plug-ins/common/van-gogh-lic.c:666 +msgid "Effect Channel" +msgstr "Etki Kanalı" + +#: ../plug-ins/common/van-gogh-lic.c:673 +msgid "_Brightness" +msgstr "_Parlaklık" + +#: ../plug-ins/common/van-gogh-lic.c:679 +msgid "Effect Operator" +msgstr "Etki İşleci" + +#: ../plug-ins/common/van-gogh-lic.c:684 +msgid "_Derivative" +msgstr "_Türemiş" + +#: ../plug-ins/common/van-gogh-lic.c:685 +msgid "_Gradient" +msgstr "_Gradyan" + +#: ../plug-ins/common/van-gogh-lic.c:691 +msgid "Convolve" +msgstr "Evriştirme" + +#: ../plug-ins/common/van-gogh-lic.c:696 +msgid "_With white noise" +msgstr "Beyaz gürültü i_le" + +#: ../plug-ins/common/van-gogh-lic.c:697 +msgid "W_ith source image" +msgstr "Kaynak görüntü i_le" + +#: ../plug-ins/common/van-gogh-lic.c:716 +msgid "_Effect image:" +msgstr "_Etki görüntüsü:" + +#: ../plug-ins/common/van-gogh-lic.c:727 +msgid "_Filter length:" +msgstr "_Süzgeç uzunluğu:" + +#: ../plug-ins/common/van-gogh-lic.c:736 +msgid "_Noise magnitude:" +msgstr "_Gürültü büyüklüğü:" + +#: ../plug-ins/common/van-gogh-lic.c:745 +msgid "In_tegration steps:" +msgstr "Bü_tünleştirme adımları" + +#: ../plug-ins/common/van-gogh-lic.c:754 +msgid "_Minimum value:" +msgstr "_Asgari değer:" + +#: ../plug-ins/common/van-gogh-lic.c:763 +msgid "M_aximum value:" +msgstr "M_aksimum değer:" + +#: ../plug-ins/common/van-gogh-lic.c:809 +msgid "Special effects that nobody understands" +msgstr "Kimsenin anlamadığı özel etkiler" + +#: ../plug-ins/common/van-gogh-lic.c:814 +msgid "_Van Gogh (LIC)..." +msgstr "_Van Gogh (LIC)..." + +#: ../plug-ins/common/video.c:42 +msgid "_Staggered" +msgstr "_Aşamalı" + +#: ../plug-ins/common/video.c:43 +msgid "_Large staggered" +msgstr "_Geniş aşamalı" + +#: ../plug-ins/common/video.c:44 +msgid "S_triped" +msgstr "Ç_izgili" + +#: ../plug-ins/common/video.c:45 +msgid "_Wide-striped" +msgstr "_Geniş-çizgili" + +#: ../plug-ins/common/video.c:46 +msgid "Lo_ng-staggered" +msgstr "U_zun-aşamalı" + +#: ../plug-ins/common/video.c:47 +msgid "_3x3" +msgstr "_3x3" + +#: ../plug-ins/common/video.c:48 +msgid "Larg_e 3x3" +msgstr "Büyü_k 3x3" + +#: ../plug-ins/common/video.c:49 +msgid "_Hex" +msgstr "_Hex" + +#: ../plug-ins/common/video.c:50 +msgid "_Dots" +msgstr "_Noktalar" + +#: ../plug-ins/common/video.c:1807 +msgid "Simulate distortion produced by a fuzzy or low-res monitor" +msgstr "" +"Bulanıklık ya da düşük çözünürlüklü monitör üretimi bozulma benzetimi yap" + +#: ../plug-ins/common/video.c:1814 +msgid "Vi_deo..." +msgstr "Vi_deo..." + +#: ../plug-ins/common/video.c:1886 ../plug-ins/common/video.c:2017 +msgid "Video" +msgstr "Video" + +#. frame for the radio buttons +#: ../plug-ins/common/video.c:2039 +msgid "Video Pattern" +msgstr "Video Deseni" + +#: ../plug-ins/common/video.c:2083 +msgid "_Additive" +msgstr "_Katkı" + +#: ../plug-ins/common/video.c:2093 +msgid "_Rotated" +msgstr "_Döndürülmüş" + +#: ../plug-ins/common/warp.c:233 +msgid "Twist or smear image in many different ways" +msgstr "Resmi bir çok farklı biçimde bük ya da lekele" + +#: ../plug-ins/common/warp.c:241 +msgid "_Warp..." +msgstr "_Eğrilik..." + +#: ../plug-ins/common/warp.c:376 +msgid "Warp" +msgstr "Sapma" + +#: ../plug-ins/common/warp.c:397 +msgid "Basic Options" +msgstr "Temel Seçenekler" + +#: ../plug-ins/common/warp.c:419 +msgid "Step size:" +msgstr "Adım boyutu:" + +#: ../plug-ins/common/warp.c:433 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:770 +#: ../plug-ins/ifs-compose/ifs-compose.c:1212 +msgid "Iterations:" +msgstr "Yinelemeler:" + +#. Displacement map menu +#: ../plug-ins/common/warp.c:442 +msgid "Displacement map:" +msgstr "Yer değiştirme eşlemi:" + +#. ======================================================================= +#. Displacement Type +#: ../plug-ins/common/warp.c:460 +msgid "On edges:" +msgstr "Kenarlar üzerinde:" + +#: ../plug-ins/common/warp.c:471 +msgid "Wrap" +msgstr "Sarma" + +#: ../plug-ins/common/warp.c:486 +msgid "Smear" +msgstr "Yayma" + +#: ../plug-ins/common/warp.c:501 ../plug-ins/file-fits/fits.c:1021 +#: ../plug-ins/flame/flame.c:1175 ../plug-ins/gfig/gfig-dialog.c:1460 +msgid "Black" +msgstr "Siyah" + +#: ../plug-ins/common/warp.c:516 +msgid "Foreground color" +msgstr "Önalan rengi" + +#. -------------------------------------------------------------------- +#. --------- The secondary table -------------------------- +#: ../plug-ins/common/warp.c:536 +msgid "Advanced Options" +msgstr "Gelişmiş Seçenekler" + +#: ../plug-ins/common/warp.c:552 +msgid "Dither size:" +msgstr "Titreme boyutu:" + +#: ../plug-ins/common/warp.c:565 +msgid "Rotation angle:" +msgstr "Döndürme açısı:" + +#: ../plug-ins/common/warp.c:578 +msgid "Substeps:" +msgstr "Alt basamaklar:" + +#. Magnitude map menu +#: ../plug-ins/common/warp.c:587 +msgid "Magnitude map:" +msgstr "Büyüklük eşlemi:" + +#: ../plug-ins/common/warp.c:609 +msgid "Use magnitude map" +msgstr "Büyüklük eşlemini kullan" + +#. -------------------------------------------------------------------- +#. --------- The "other" table -------------------------- +#: ../plug-ins/common/warp.c:622 +msgid "More Advanced Options" +msgstr "Daha Fazla Gelişmiş Seçenekler" + +#: ../plug-ins/common/warp.c:639 +msgid "Gradient scale:" +msgstr "Eğim ölçeği:" + +#: ../plug-ins/common/warp.c:658 +msgid "Gradient map selection menu" +msgstr "Renk geçişi eşlemi seçim menüsü" + +#: ../plug-ins/common/warp.c:668 +msgid "Vector mag:" +msgstr "Vector mag:" + +#. Angle +#: ../plug-ins/common/warp.c:683 ../plug-ins/ifs-compose/ifs-compose.c:568 +msgid "Angle:" +msgstr "Açı:" + +#: ../plug-ins/common/warp.c:702 +msgid "Fixed-direction-vector map selection menu" +msgstr "Sabit-yönlü-vektör eşlemi seçme menüsü" + +#. make sure layer is visible +#: ../plug-ins/common/warp.c:1178 +msgid "Smoothing X gradient" +msgstr "Yumuşatma X eğimi" + +#: ../plug-ins/common/warp.c:1181 +msgid "Smoothing Y gradient" +msgstr "Yumuşatma Y eğimi" + +#. calculate new X,Y Displacement image maps +#: ../plug-ins/common/warp.c:1231 +msgid "Finding XY gradient" +msgstr "XY düşümleri bulunuyor" + +#: ../plug-ins/common/warp.c:1256 +#, c-format +msgid "Flow step %d" +msgstr "Akış adımı %d" + +#: ../plug-ins/common/waves.c:120 +msgid "Distort the image with waves" +msgstr "Dalgalarla görüntüyü boz" + +#: ../plug-ins/common/waves.c:125 +msgid "_Waves..." +msgstr "_Dalgalar..." + +#: ../plug-ins/common/waves.c:248 ../plug-ins/flame/flame.c:763 +msgid "Waves" +msgstr "Dalgalar" + +#: ../plug-ins/common/waves.c:294 +msgid "_Reflective" +msgstr "_Yansıtıcı" + +#: ../plug-ins/common/waves.c:313 +msgid "_Amplitude:" +msgstr "_Genlik:" + +#: ../plug-ins/common/waves.c:325 +msgid "_Phase:" +msgstr "_Evre:" + +#: ../plug-ins/common/waves.c:337 +msgid "_Wavelength:" +msgstr "_Dalgaboyu:" + +#: ../plug-ins/common/waves.c:448 +msgid "Waving" +msgstr "Dalgalanma" + +#: ../plug-ins/common/web-browser.c:206 +#, c-format +msgid "" +"Web browser not specified.\n" +"Please specify a web browser using the Preferences dialog." +msgstr "" +"Web tarayıcısı belirtilmemiş.\n" +"Lütfen, Tercihler iletişim kutusunu kullanarak bir web tarayıcısı belirleyin." + +#: ../plug-ins/common/web-browser.c:228 +#, c-format +msgid "" +"Could not parse the web browser command specified in the Preferences " +"dialog:\n" +"\n" +"%s" +msgstr "" +"Tercihler iletişim kutusunda belirtilen web tarayıcısı komutu " +"ayrıştırılamadı:\n" +"\n" +"%s" + +#: ../plug-ins/common/web-browser.c:246 +#, c-format +msgid "" +"Could not execute the web browser specified in the Preferences dialog:\n" +"\n" +"%s" +msgstr "" +"Tercihler iletişim kutusunda belirtilen web tarayıcısı komutu yürütülemedi:\n" +"\n" +"%s" + +#: ../plug-ins/common/whirl-pinch.c:138 +msgid "Distort an image by whirling and pinching" +msgstr "Görüntüyü döndürerek ve kıstırarak boz" + +#: ../plug-ins/common/whirl-pinch.c:149 +msgid "W_hirl and Pinch..." +msgstr "Dö_nme ve Kıstırma..." + +#: ../plug-ins/common/whirl-pinch.c:193 +msgid "Region affected by plug-in is empty" +msgstr "Eklentiden etkilenen alan boş" + +#: ../plug-ins/common/whirl-pinch.c:341 +msgid "Whirling and pinching" +msgstr "Döndürme ve kıstırma" + +#: ../plug-ins/common/whirl-pinch.c:528 +msgid "Whirl and Pinch" +msgstr "Dönme ve kıstırma" + +#: ../plug-ins/common/whirl-pinch.c:565 +msgid "_Whirl angle:" +msgstr "_Dönme açısı" + +#: ../plug-ins/common/whirl-pinch.c:577 +msgid "_Pinch amount:" +msgstr "Kıstırma adedi" + +#: ../plug-ins/common/wind.c:175 +msgid "Smear image to give windblown effect" +msgstr "Esme etkisi vermek için resmi yay" + +#: ../plug-ins/common/wind.c:180 +msgid "Wi_nd..." +msgstr "Rüz_gar..." + +#: ../plug-ins/common/wind.c:315 +msgid "Rendering blast" +msgstr "Rüzgar taranıyor" + +#: ../plug-ins/common/wind.c:447 +msgid "Rendering wind" +msgstr "Esinti taranıyor" + +#: ../plug-ins/common/wind.c:879 +msgid "Wind" +msgstr "Esinti" + +#. ******************************************************** +#. radio buttons for choosing wind rendering algorithm +#. ***************************************************** +#: ../plug-ins/common/wind.c:921 +msgid "Style" +msgstr "Biçem" + +#: ../plug-ins/common/wind.c:925 +msgid "_Wind" +msgstr "_Esinti" + +#: ../plug-ins/common/wind.c:926 +msgid "_Blast" +msgstr "_Rüzgar" + +#: ../plug-ins/common/wind.c:949 +msgid "_Left" +msgstr "So_l" + +#: ../plug-ins/common/wind.c:950 +msgid "_Right" +msgstr "_Sağ" + +#. **************************************************** +#. radio buttons for choosing BOTH, LEADING, TRAILING +#. ************************************************** +#: ../plug-ins/common/wind.c:969 +msgid "Edge Affected" +msgstr "Kenar Etkilendi" + +#: ../plug-ins/common/wind.c:973 +msgid "L_eading" +msgstr "Yö_nlendiriliyor" + +#: ../plug-ins/common/wind.c:974 +msgid "Tr_ailing" +msgstr "Sü_rükleniyor" + +#: ../plug-ins/common/wind.c:975 +msgid "Bot_h" +msgstr "_Her ikisi" + +#: ../plug-ins/common/wind.c:1012 +msgid "Higher values restrict the effect to fewer areas of the image" +msgstr "Yüksek değerler resmin daha az alanındaki etkiyi kısıtlıyor" + +#: ../plug-ins/common/wind.c:1027 ../plug-ins/gimpressionist/orientmap.c:694 +msgid "_Strength:" +msgstr "_Keskinlik:" + +#: ../plug-ins/common/wind.c:1031 +msgid "Higher values increase the magnitude of the effect" +msgstr "Yüksek değerler etkinin büyüklüğünü arttırıyor" + +#: ../plug-ins/file-bmp/bmp-read.c:88 +msgid "Bad colormap" +msgstr "Hatalı renk haritası" + +#: ../plug-ins/file-bmp/bmp-read.c:172 ../plug-ins/file-bmp/bmp-read.c:182 +#: ../plug-ins/file-bmp/bmp-read.c:189 ../plug-ins/file-bmp/bmp-read.c:198 +#: ../plug-ins/file-bmp/bmp-read.c:213 ../plug-ins/file-bmp/bmp-read.c:418 +#: ../plug-ins/file-bmp/bmp-read.c:439 ../plug-ins/file-bmp/bmp-read.c:450 +#: ../plug-ins/file-bmp/bmp-read.c:458 ../plug-ins/file-bmp/bmp-read.c:466 +#: ../plug-ins/file-bmp/bmp-read.c:478 +#, c-format +msgid "'%s' is not a valid BMP file" +msgstr "'%s' geçerli bir BMP dosyası değil" + +#: ../plug-ins/file-bmp/bmp-read.c:227 ../plug-ins/file-bmp/bmp-read.c:254 +#: ../plug-ins/file-bmp/bmp-read.c:282 ../plug-ins/file-bmp/bmp-read.c:347 +#: ../plug-ins/file-bmp/bmp-read.c:397 +#, c-format +msgid "Error reading BMP file header from '%s'" +msgstr "'%s'den BMP dosya başlığı okuma hatası" + +#: ../plug-ins/file-bmp/bmp-read.c:590 +msgid "Unrecognized or invalid BMP compression format." +msgstr "Tanınmayan neya geçersiz BMP sıkıştırma biçimi." + +#: ../plug-ins/file-bmp/bmp-read.c:632 +msgid "Unsupported or invalid bitdepth." +msgstr "Desteklenmeyen veya geçersiz bit derinliği." + +#: ../plug-ins/file-bmp/bmp-read.c:820 ../plug-ins/file-bmp/bmp-read.c:861 +#: ../plug-ins/file-bmp/bmp-read.c:911 +msgid "The bitmap ends unexpectedly." +msgstr "Bit eşlemi beklenmedik bir şekilde sonlandırıldı." + +#: ../plug-ins/file-bmp/bmp-write.c:188 ../plug-ins/file-bmp/bmp-write.c:210 +msgid "Cannot save indexed image with transparency in BMP file format." +msgstr "Saydamlık içeriği ile BMP dosya biçimi kaydedilemez." + +#: ../plug-ins/file-bmp/bmp-write.c:190 ../plug-ins/file-bmp/bmp-write.c:212 +msgid "Alpha channel will be ignored." +msgstr "Görünür kanalı yoksayılacak." + +#: ../plug-ins/file-bmp/bmp-write.c:794 +msgid "Save as BMP" +msgstr "BMP olarak kaydet" + +#: ../plug-ins/file-bmp/bmp-write.c:817 +msgid "_Run-Length Encoded" +msgstr "_Çalışma-Süresi Kodlandı" + +#: ../plug-ins/file-bmp/bmp-write.c:829 ../plug-ins/file-jpeg/jpeg-save.c:900 +msgid "_Advanced Options" +msgstr "_Gelişmiş Seçenekler" + +#: ../plug-ins/file-bmp/bmp-write.c:844 +msgid "16 bits" +msgstr "16 bit" + +#: ../plug-ins/file-bmp/bmp-write.c:880 +msgid "24 bits" +msgstr "24 bit" + +#: ../plug-ins/file-bmp/bmp-write.c:897 +msgid "32 bits" +msgstr "32 bit" + +#: ../plug-ins/file-bmp/bmp.c:124 ../plug-ins/file-bmp/bmp.c:143 +msgid "Windows BMP image" +msgstr "Windows BMP görüntüsü" + +#: ../plug-ins/file-faxg3/faxg3.c:103 +msgid "G3 fax image" +msgstr "G3 faks görüntüsü" + +#: ../plug-ins/file-fits/fits.c:168 ../plug-ins/file-fits/fits.c:188 +msgid "Flexible Image Transport System" +msgstr "Esnek Görüntü Aktarım Sistemi" + +#: ../plug-ins/file-fits/fits.c:368 +msgid "Error during open of FITS file" +msgstr "FITS dosyası açılırken hata oluştu" + +#: ../plug-ins/file-fits/fits.c:374 +msgid "FITS file keeps no displayable images" +msgstr "FITS dosyası görüntülenemez resimler barındırıyor" + +#: ../plug-ins/file-fits/fits.c:455 +msgid "FITS save cannot handle images with alpha channels" +msgstr "FITS görünür kanallı resimleri kaydedemez" + +#: ../plug-ins/file-fits/fits.c:993 +msgid "Load FITS File" +msgstr "FITS Dosyası Yükleme" + +#: ../plug-ins/file-fits/fits.c:1017 +msgid "Replacement for undefined pixels" +msgstr "Tanımlanmamış benekler için değiştirme" + +#: ../plug-ins/file-fits/fits.c:1022 ../plug-ins/gfig/gfig-dialog.c:1286 +#: ../plug-ins/gfig/gfig-dialog.c:1461 +msgid "White" +msgstr "Beyaz" + +#: ../plug-ins/file-fits/fits.c:1029 +msgid "Pixel value scaling" +msgstr "Benek değer ölçeklemesi" + +#: ../plug-ins/file-fits/fits.c:1034 +msgid "By DATAMIN/DATAMAX" +msgstr "DATAMIN/DATAMAX tarafından" + +#: ../plug-ins/file-fits/fits.c:1041 +msgid "Image Composing" +msgstr "Görüntü Oluşturma" + +#: ../plug-ins/file-fli/fli-gimp.c:166 ../plug-ins/file-fli/fli-gimp.c:186 +msgid "AutoDesk FLIC animation" +msgstr "AutoDesk FLIC canlandırması" + +#: ../plug-ins/file-fli/fli-gimp.c:562 +#, c-format +msgid "Frame (%i)" +msgstr "Çerçeve (%i)" + +#: ../plug-ins/file-fli/fli-gimp.c:714 +msgid "Sorry, I can save only INDEXED and GRAY images." +msgstr "Üzgünüm, sadece SIRALANMIŞ ve GRİ görüntüleri kaydedebilirim." + +#: ../plug-ins/file-fli/fli-gimp.c:846 +msgid "GFLI 1.3 - Load framestack" +msgstr "GFLI 1.3 - Çerçeve kümesini yükle" + +#: ../plug-ins/file-fli/fli-gimp.c:914 +msgid "GFLI 1.3 - Save framestack" +msgstr "GFLI 1.3 - Çerçeve kümesini kaydet" + +#: ../plug-ins/file-ico/ico-dialog.c:54 +msgid "Save as Windows Icon" +msgstr "Windows Simgesi olarak Kaydet" + +#: ../plug-ins/file-ico/ico-dialog.c:86 +msgid "Icon Details" +msgstr "Simge Detayları" + +#: ../plug-ins/file-ico/ico-dialog.c:106 +msgid "" +"Large icons and compression are not supported by all programs. Older " +"applications may not open this file correctly." +msgstr "" +"Geniş simgeler ve sıkıştırma tüm programlar tarafından desteklenmez. Daha " +"eski uygulamalar bu dosyayı düzgün bir şekilde açamayabilir." + +#: ../plug-ins/file-ico/ico-dialog.c:178 +msgid "1 bpp, 1-bit alpha, 2-slot palette" +msgstr "1 bpp, 1-bit görünür, 2-dilimli palet" + +#: ../plug-ins/file-ico/ico-dialog.c:179 +msgid "4 bpp, 1-bit alpha, 16-slot palette" +msgstr "4 bpp, 1-bit görünür, 16-dilimli palet" + +#: ../plug-ins/file-ico/ico-dialog.c:180 +msgid "8 bpp, 1-bit alpha, 256-slot palette" +msgstr "8 bpp, 1-bit görünür, 256-dilimli palet" + +#: ../plug-ins/file-ico/ico-dialog.c:181 +msgid "24 bpp, 1-bit alpha, no palette" +msgstr "24 bpp, 1-bit görünür, palet yok" + +#: ../plug-ins/file-ico/ico-dialog.c:182 +msgid "32 bpp, 8-bit alpha, no palette" +msgstr "32 bpp, 8-bit görünür, palet yok" + +#: ../plug-ins/file-ico/ico-dialog.c:196 +msgid "Compressed (PNG)" +msgstr "Sıkıştırılmış (PNG)" + +#. read successfully. add to image +#: ../plug-ins/file-ico/ico-load.c:624 +#, c-format +msgid "Icon #%i" +msgstr "Simge #%i" + +#: ../plug-ins/file-ico/ico-load.c:733 ../plug-ins/file-jpeg/jpeg-load.c:633 +#: ../plug-ins/file-psd/psd-thumb-load.c:85 +#, c-format +msgid "Opening thumbnail for '%s'" +msgstr "'%s' için önizleme açılıyor" + +#: ../plug-ins/file-ico/ico.c:103 ../plug-ins/file-ico/ico.c:137 +msgid "Microsoft Windows icon" +msgstr "Microsoft Windows simgesi" + +#: ../plug-ins/file-jpeg/jpeg-exif.c:293 +msgid "Rotate Image?" +msgstr "Görüntü Döndürülsün Mü?" + +#: ../plug-ins/file-jpeg/jpeg-exif.c:296 +msgid "_Keep Orientation" +msgstr "_Yönelimi Sakla" + +#: ../plug-ins/file-jpeg/jpeg-exif.c:352 +msgid "According to the EXIF data, this image is rotated." +msgstr "EXIF verisine göre bu resim döndürüldü." + +#: ../plug-ins/file-jpeg/jpeg-exif.c:367 +msgid "Would you like GIMP to rotate it into the standard orientation?" +msgstr "GIMP'in standart bir yönlenme ile döndürmesini ister misiniz?" + +#: ../plug-ins/file-jpeg/jpeg-load.c:241 +msgid "JPEG preview" +msgstr "JPEG önizleme" + +#: ../plug-ins/file-jpeg/jpeg-save.c:200 +#, c-format +msgid "File size: %02.01f kB" +msgstr "Dosya boyutu: %02.01f kB" + +#: ../plug-ins/file-jpeg/jpeg-save.c:682 +msgid "Calculating file size..." +msgstr "Dosya boyutu hesaplanıyor..." + +#: ../plug-ins/file-jpeg/jpeg-save.c:774 ../plug-ins/file-jpeg/jpeg-save.c:876 +msgid "File size: unknown" +msgstr "Dosya boyutu: bilinmiyor" + +#: ../plug-ins/file-jpeg/jpeg-save.c:827 +msgid "Save as JPEG" +msgstr "JPEG olarak kaydet" + +#: ../plug-ins/file-jpeg/jpeg-save.c:862 +msgid "_Quality:" +msgstr "_Kalite:" + +#: ../plug-ins/file-jpeg/jpeg-save.c:866 +msgid "JPEG quality parameter" +msgstr "JPEG kalite parametresi" + +#: ../plug-ins/file-jpeg/jpeg-save.c:885 +msgid "Enable preview to obtain the file size." +msgstr "Dosya boyutunu elde etmek için önizlemeye olanak tanı." + +#: ../plug-ins/file-jpeg/jpeg-save.c:888 +msgid "Sho_w preview in image window" +msgstr "Önizlemeyi görüntü penceresinde göste_r" + +#: ../plug-ins/file-jpeg/jpeg-save.c:929 +msgid "S_moothing:" +msgstr "D_üzgünleştirme:" + +#: ../plug-ins/file-jpeg/jpeg-save.c:942 +msgid "Frequency (rows):" +msgstr "Sıklık (satırlar):" + +#: ../plug-ins/file-jpeg/jpeg-save.c:958 +msgid "Use _restart markers" +msgstr "_Yeniden başlatma işaretçilerini kullan" + +#: ../plug-ins/file-jpeg/jpeg-save.c:974 +msgid "_Optimize" +msgstr "_Eniyile" + +#: ../plug-ins/file-jpeg/jpeg-save.c:988 +msgid "_Progressive" +msgstr "_İlerlemeli" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1004 +msgid "Save _EXIF data" +msgstr "_EXIF verisini kaydet" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1021 +msgid "Save _thumbnail" +msgstr "Ö_nizlemeyi kaydet" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1038 +msgid "Save _XMP data" +msgstr "_XMP verisini kaydet" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1053 +msgid "_Use quality settings from original image" +msgstr "Kalite ayarlarını özgün görüntüden _kullan" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1059 +msgid "" +"If the original image was loaded from a JPEG file using non-standard quality " +"settings (quantization tables), enable this option to get almost the same " +"quality and file size." +msgstr "" +"Eğer özgün resim standart olmayan kalite ayarları (niceleme tabloları) " +"kullanan bir JPEG dosyasından yüklenmişse; bu seçeneği, aynı kaliteye ve " +"dosya boyutuna yakın sonuçlar elde etmek için etkinleştirin." + +#. Subsampling +#: ../plug-ins/file-jpeg/jpeg-save.c:1083 +msgid "Su_bsampling:" +msgstr "Al_t Örnekleme" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1090 +msgid "1x1,1x1,1x1 (best quality)" +msgstr "1x1,1x1,1x1 (en iyi kalite)" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1092 +msgid "2x1,1x1,1x1 (4:2:2)" +msgstr "2x1,1x1,1x1 (4:2:2)" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1094 +msgid "1x2,1x1,1x1" +msgstr "1x2,1x1,1x1" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1096 +msgid "2x2,1x1,1x1 (smallest file)" +msgstr "2x2,1x1,1x1 (en küçük dosya)" + +#. DCT method +#: ../plug-ins/file-jpeg/jpeg-save.c:1126 +msgid "_DCT method:" +msgstr "_DCT yöntemi:" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1132 +msgid "Fast Integer" +msgstr "Sabit Tam Sayı" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1133 +msgid "Integer" +msgstr "Tamsayı" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1134 +msgid "Floating-Point" +msgstr "Yüzen-Nokta" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1150 +msgid "Comment" +msgstr "Açıklama" + +#: ../plug-ins/file-jpeg/jpeg-save.c:1195 +msgid "Sa_ve Defaults" +msgstr "Varsayılanları Ka_ydet" + +#: ../plug-ins/file-jpeg/jpeg.c:137 ../plug-ins/file-jpeg/jpeg.c:175 +msgid "JPEG image" +msgstr "JPEG görüntüsü" + +#: ../plug-ins/file-jpeg/jpeg.c:301 +msgid "Export Preview" +msgstr "Önizlemeyi dışa aktar" + +#: ../plug-ins/file-psd/psd-load.c:215 +#: ../plug-ins/file-psd/psd-thumb-load.c:131 +#, c-format +msgid "Error loading PSD file: %s" +msgstr "PSD dosyası yükleme hatası: %s" + +#: ../plug-ins/file-psd/psd-load.c:270 +#, c-format +msgid "Not a valid photoshop document file" +msgstr "Geçersiz photoshop belge dosyası" + +#: ../plug-ins/file-psd/psd-load.c:277 +#, c-format +msgid "Unsupported file format version: %d" +msgstr "Desteklenmeyen dosya biçim sürümü: %d" + +#: ../plug-ins/file-psd/psd-load.c:284 +#, c-format +msgid "Too many channels in file: %d" +msgstr "Dosyada çok fazla kanal var: %d" + +#: ../plug-ins/file-psd/psd-load.c:311 +#, c-format +msgid "Unsupported or invalid image size: %dx%d" +msgstr "Desteklenmeyen yada geçersiz görüntü boyutu: %dx%d" + +#: ../plug-ins/file-psd/psd-load.c:323 +#, c-format +msgid "Unsupported color mode: %s" +msgstr "Desteklenmeyen renk modu: %s" + +#: ../plug-ins/file-psd/psd-load.c:350 +#, c-format +msgid "Unsupported bit depth: %d" +msgstr "Desteklenmeyen bit derinliği: %d" + +#: ../plug-ins/file-psd/psd-load.c:384 ../plug-ins/file-psd/psd-load.c:394 +#: ../plug-ins/file-psd/psd-load.c:625 ../plug-ins/file-psd/psd-load.c:834 +#, c-format +msgid "The file is corrupt!" +msgstr "Bozuk dosya!" + +#: ../plug-ins/file-psd/psd-load.c:554 +#, c-format +msgid "Too many channels in layer: %d" +msgstr "%d katmanında çok fazla kanal var" + +#: ../plug-ins/file-psd/psd-load.c:562 +#, c-format +msgid "Unsupported or invalid layer height: %d" +msgstr "Desteklenmeyen veya geçersiz katman yüksekliği: %d" + +#: ../plug-ins/file-psd/psd-load.c:570 +#, c-format +msgid "Unsupported or invalid layer width: %d" +msgstr "Desteklenmeyen veya geçersiz katman genişliği: %d" + +#: ../plug-ins/file-psd/psd-load.c:579 +#, c-format +msgid "Unsupported or invalid layer size: %dx%d" +msgstr "Desteklenmeyen ya da geçersiz katman boyutu: %dx%d" + +#: ../plug-ins/file-psd/psd-load.c:763 +#, c-format +msgid "Unsupported or invalid layer mask height: %d" +msgstr "Desteklenmeyen veya geçersiz katman maskesi yüksekliği: %d" + +#: ../plug-ins/file-psd/psd-load.c:771 +#, c-format +msgid "Unsupported or invalid layer mask width: %d" +msgstr "Desteklenmeyen veya geçersiz katman maskesi genişliği: %d" + +#: ../plug-ins/file-psd/psd-load.c:780 +#, c-format +msgid "Unsupported or invalid layer mask size: %dx%d" +msgstr "Desteklenmeyen ya da geçersiz katman maskesi boyutu: %dx%d" + +#: ../plug-ins/file-psd/psd-load.c:1202 ../plug-ins/file-psd/psd-load.c:1551 +#, c-format +msgid "Unsupported compression mode: %d" +msgstr "Desteklenmeyen sıkıştırma biçimi. %d" + +#: ../plug-ins/file-psd/psd-load.c:1644 +msgid "Extra" +msgstr "Ek" + +#: ../plug-ins/file-psd/psd-load.c:1819 +#, c-format +msgid "Unsupported or invalid channel size" +msgstr "Desteklenmeyen veya geçersiz kanal boyutu" + +#: ../plug-ins/file-psd/psd-save.c:228 ../plug-ins/file-psd/psd.c:114 +#: ../plug-ins/file-psd/psd.c:153 +msgid "Photoshop image" +msgstr "Photoshop görüntüsü" + +#: ../plug-ins/file-psd/psd-save.c:371 +#, c-format +msgid "" +"Unable to save layer with mode '%s'. Either the PSD file format or the save " +"plug-in does not support that, using normal mode instead." +msgstr "" +"Katman '%s' biçiminde kaydedilemedi. Ayrıca PSD dosya biçimi ya da kaydetme " +"eklentisi bunu desteklemiyor, bunun yerine normal biçim kullanılıyor." + +#: ../plug-ins/file-psd/psd-save.c:631 +msgid "Error: Can't convert GIMP base imagetype to PSD mode" +msgstr "Hata: GIMP temel resim türü PSD biçimine dönüştürülemiyor." + +#: ../plug-ins/file-psd/psd-save.c:1605 +#, c-format +msgid "" +"Unable to save '%s'. The PSD file format does not support images that are " +"more than 30,000 pixels wide or tall." +msgstr "" +"'%s' Kaydedilemedi. PSD dosya biçimi 30,000 benek boyu ya da genişliğinden " +"büyük resimleri desteklemiyor." + +#: ../plug-ins/file-psd/psd-save.c:1620 +#, c-format +msgid "" +"Unable to save '%s'. The PSD file format does not support images with " +"layers that are more than 30,000 pixels wide or tall." +msgstr "" +"'%s' Kaydedilemedi. PSD dosya biçimi 30,000 benek boyu ya da genişliğinden " +"büyük katmanları olan resimleri desteklemiyor." + +#: ../plug-ins/file-psd/psd-util.c:51 +msgid "Unexpected end of file" +msgstr "Beklenmedik dosya sonlandırması" + +#: ../plug-ins/file-sgi/sgi.c:121 ../plug-ins/file-sgi/sgi.c:141 +msgid "Silicon Graphics IRIS image" +msgstr "Silicon Graphics IRIS görüntüsü" + +#: ../plug-ins/file-sgi/sgi.c:325 +#, c-format +msgid "Could not open '%s' for reading." +msgstr "'%s' dosyası okumak için açılamadı." + +#: ../plug-ins/file-sgi/sgi.c:341 +#, c-format +msgid "Invalid width: %hu" +msgstr "Geçersiz genişlik: %hu" + +#: ../plug-ins/file-sgi/sgi.c:348 +#, c-format +msgid "Invalid height: %hu" +msgstr "Geçersiz yükseklik: %hu" + +#: ../plug-ins/file-sgi/sgi.c:355 +#, c-format +msgid "Invalid number of channels: %hu" +msgstr "Geçersiz kanal sayısı: %hu" + +#: ../plug-ins/file-sgi/sgi.c:569 +#, c-format +msgid "Could not open '%s' for writing." +msgstr "`%s' yazmak için açılamadı." + +#: ../plug-ins/file-sgi/sgi.c:649 +msgid "Save as SGI" +msgstr "SGI olarak kaydet" + +#: ../plug-ins/file-sgi/sgi.c:665 +msgid "Compression type" +msgstr "Sıkıştırma türü" + +#: ../plug-ins/file-sgi/sgi.c:669 +msgid "No compression" +msgstr "Sıkıştırma yok" + +#: ../plug-ins/file-sgi/sgi.c:671 +msgid "RLE compression" +msgstr "RLE sıkıştırması" + +#: ../plug-ins/file-sgi/sgi.c:673 +msgid "" +"Aggressive RLE\n" +"(not supported by SGI)" +msgstr "" +"Agresif RLE\n" +"(SGI tarafından desteklenmiyor)" + +#: ../plug-ins/file-uri/gimpmountoperation.c:448 +msgid "Co_nnect" +msgstr "_Bağlan" + +#: ../plug-ins/file-uri/gimpmountoperation.c:492 +msgid "Connect _anonymously" +msgstr "_Kimliğini belirtmeden bağlan" + +#: ../plug-ins/file-uri/gimpmountoperation.c:501 +msgid "Connect as u_ser:" +msgstr "_Kullanıcı olarak bağlan:" + +#: ../plug-ins/file-uri/gimpmountoperation.c:538 +msgid "_Username:" +msgstr "_Kullanıcı Adı:" + +#: ../plug-ins/file-uri/gimpmountoperation.c:542 +msgid "_Domain:" +msgstr "_Etki Alanı:" + +#: ../plug-ins/file-uri/gimpmountoperation.c:547 +msgid "_Password:" +msgstr "_Parola:" + +#: ../plug-ins/file-uri/gimpmountoperation.c:562 +msgid "_Forget password immediately" +msgstr "_Parolayı hemen unut" + +#: ../plug-ins/file-uri/gimpmountoperation.c:570 +msgid "_Remember password until you logout" +msgstr "Çıkış yapana kadar _parolayı hatırla" + +#: ../plug-ins/file-uri/gimpmountoperation.c:578 +msgid "_Remember forever" +msgstr "_Her zaman hatırla" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:163 +#: ../plug-ins/file-uri/uri-backend-libcurl.c:129 +#: ../plug-ins/file-uri/uri-backend-wget.c:303 +#, c-format +msgid "Downloading %s of image data" +msgstr "Görüntü verisinin %s'i indiriliyor" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:164 +#: ../plug-ins/file-uri/uri-backend-gvfs.c:226 +#: ../plug-ins/file-uri/uri-backend-libcurl.c:136 +#: ../plug-ins/file-uri/uri-backend-wget.c:346 +#, c-format +msgid "Downloaded %s of image data" +msgstr "Görüntü verisinin %s'i indirildi" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:182 +#, c-format +msgid "Uploading %s of image data" +msgstr "Görüntü verisinin %s'i yükleniyor" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:183 +#: ../plug-ins/file-uri/uri-backend-gvfs.c:230 +#, c-format +msgid "Uploaded %s of image data" +msgstr "Görüntü verisinin %s'i yüklendi" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:253 +#: ../plug-ins/file-uri/uri-backend-gvfs.c:297 +#: ../plug-ins/file-uri/uri-backend-libcurl.c:158 +#: ../plug-ins/file-uri/uri-backend-wget.c:195 +msgid "Connecting to server" +msgstr "Sunucuya bağlanılıyor" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:312 +#, c-format +msgid "Failed to read %s from '%s': %s" +msgstr "'%s' dosyasından %s okuma başarısız: %s" + +#: ../plug-ins/file-uri/uri-backend-gnomevfs.c:361 +#, c-format +msgid "Failed to write %s to '%s': %s" +msgstr "'%s': %s üzerine %s yazılamadı." + +#: ../plug-ins/file-uri/uri-backend-gvfs.c:200 +#, c-format +msgid "Downloading image (%s of %s)" +msgstr "Resim indiriliyor (%s de %s)" + +#: ../plug-ins/file-uri/uri-backend-gvfs.c:204 +#, c-format +msgid "Uploading image (%s of %s)" +msgstr "Resim yükleniyor (%s de %s)" + +#: ../plug-ins/file-uri/uri-backend-libcurl.c:60 +msgid "Could not initialize libcurl" +msgstr "Libcurl başlatılamadı" + +#: ../plug-ins/file-uri/uri-backend-libcurl.c:202 +#, c-format +msgid "Opening '%s' for reading resulted in HTTP response code: %d" +msgstr "Neticelenen HTTP yanıt kodunu okumak için '%s' açılıyor: %d" + +#: ../plug-ins/file-uri/uri-backend-wget.c:162 +#: ../plug-ins/file-uri/uri-backend-wget.c:182 +#: ../plug-ins/file-uri/uri-backend-wget.c:201 +#: ../plug-ins/file-uri/uri-backend-wget.c:224 +#: ../plug-ins/file-uri/uri-backend-wget.c:253 +#, c-format +msgid "wget exited abnormally on URI '%s'" +msgstr "wget beklenmedik biçimde kapandı. URI '%s'" + +#. The third line is "Connecting to..." +#: ../plug-ins/file-uri/uri-backend-wget.c:190 +#, c-format +msgid "(timeout is %d second)" +msgid_plural "(timeout is %d seconds)" +msgstr[0] "(zaman aşımı %d saniye)" + +#. The fourth line is either the network request or an error +#: ../plug-ins/file-uri/uri-backend-wget.c:219 +msgid "Opening URI" +msgstr "URI açılıyor" + +#: ../plug-ins/file-uri/uri-backend-wget.c:230 +#: ../plug-ins/file-uri/uri-backend-wget.c:263 +#, c-format +msgid "A network error occurred: %s" +msgstr "Bir ağ hatası meydana geldi: %s" + +#: ../plug-ins/file-uri/uri-backend-wget.c:308 +msgid "Downloading unknown amount of image data" +msgstr "Görüntü verisinin bilinmeyen miktarı indiriliyor" + +#: ../plug-ins/file-uri/uri.c:119 ../plug-ins/file-uri/uri.c:140 +msgid "URI" +msgstr "Kaynak Tanımlayıcı" + +#: ../plug-ins/file-xjt/xjt.c:488 ../plug-ins/file-xjt/xjt.c:506 +msgid "GIMP compressed XJT image" +msgstr "GIMP sıkıştırmalı XJT görüntüsü" + +#: ../plug-ins/file-xjt/xjt.c:736 +#, c-format +msgid "XJT file contains unknown layermode %d" +msgstr "XJT dosyası bilinmeyen katmankipi %d içeriyor" + +#: ../plug-ins/file-xjt/xjt.c:773 +#, c-format +msgid "Warning: unsupported layermode %d saved to XJT" +msgstr "Uyarı: desteklenmeyen katmankipi %d XJT'ye kaydedildi" + +#: ../plug-ins/file-xjt/xjt.c:789 +#, c-format +msgid "XJT file contains unknown pathtype %d" +msgstr "XJT dosyası bilinmeyen yol biçimi içeriyor %d" + +#: ../plug-ins/file-xjt/xjt.c:805 +#, c-format +msgid "Warning: unsupported pathtype %d saved to XJT" +msgstr "Uyarı: desteklenmeyen yol biçimi %d kaydedildi XJT dosyasına" + +#: ../plug-ins/file-xjt/xjt.c:824 +#, c-format +msgid "XJT file contains unknown unittype %d" +msgstr "XJT dosyası bilinmeyen birim biçimi içeriyor %d" + +#: ../plug-ins/file-xjt/xjt.c:845 +#, c-format +msgid "Warning: unsupported unittype %d saved to XJT" +msgstr "Uyarı: bilinmeyen birim biçimi %d kaydedildi XJT dosyasına" + +#: ../plug-ins/file-xjt/xjt.c:866 +msgid "Save as XJT" +msgstr "XJT olarak kaydet" + +#: ../plug-ins/file-xjt/xjt.c:889 +msgid "Optimize" +msgstr "Eniyile" + +#: ../plug-ins/file-xjt/xjt.c:899 +msgid "Clear transparent" +msgstr "Saydamlığı temizle" + +#: ../plug-ins/file-xjt/xjt.c:911 +msgid "Quality:" +msgstr "Kalite:" + +#: ../plug-ins/file-xjt/xjt.c:920 +msgid "Smoothing:" +msgstr "Yumuşatma:" + +#: ../plug-ins/file-xjt/xjt.c:1719 ../plug-ins/file-xjt/xjt.c:3373 +#, c-format +msgid "Could not create working folder '%s': %s" +msgstr "'%s' çalışan dizini oluşturulamadı: %s" + +#: ../plug-ins/file-xjt/xjt.c:3239 +#, c-format +msgid "Error: Could not read XJT property file '%s'." +msgstr "Hata: XJT nitelik dosyası '%s' okunamadı." + +#: ../plug-ins/file-xjt/xjt.c:3246 +#, c-format +msgid "Error: XJT property file '%s' is empty." +msgstr "Hata: XJT özellik dosyası '%s' boş." + +#: ../plug-ins/flame/flame.c:129 +msgid "Create cosmic recursive fractal flames" +msgstr "Kozmik tekrarlamalı kesirli alevler oluştur" + +#: ../plug-ins/flame/flame.c:134 +msgid "_Flame..." +msgstr "_Alev..." + +#: ../plug-ins/flame/flame.c:227 +msgid "Drawing flame" +msgstr "Alev çizme" + +#: ../plug-ins/flame/flame.c:319 +msgid "Flame works only on RGB drawables." +msgstr "Alev sadece RGB çizilebilirliği üzerinde çalışır." + +#: ../plug-ins/flame/flame.c:402 +#, c-format +msgid "'%s' is not a regular file" +msgstr "'%s' normal bir dosya değil." + +#: ../plug-ins/flame/flame.c:646 +msgid "Edit Flame" +msgstr "Alevi düzenle" + +#: ../plug-ins/flame/flame.c:669 +msgid "Directions" +msgstr "Yönler" + +#: ../plug-ins/flame/flame.c:705 +msgid "Controls" +msgstr "Denetimler" + +#: ../plug-ins/flame/flame.c:719 +msgid "_Speed:" +msgstr "_Hız:" + +#: ../plug-ins/flame/flame.c:736 +msgid "_Randomize" +msgstr "_Rastgele" + +#: ../plug-ins/flame/flame.c:746 +msgid "Same" +msgstr "Benzer" + +#: ../plug-ins/flame/flame.c:747 ../plug-ins/gimpressionist/orientation.c:164 +#: ../plug-ins/gimpressionist/size.c:167 +msgid "Random" +msgstr "Rastgele" + +#: ../plug-ins/flame/flame.c:751 +msgid "Swirl" +msgstr "Girdap" + +#: ../plug-ins/flame/flame.c:752 +msgid "Horseshoe" +msgstr "Nal" + +#: ../plug-ins/flame/flame.c:753 ../plug-ins/gfig/gfig-dialog.c:1442 +msgid "Polar" +msgstr "Kutupsal" + +#: ../plug-ins/flame/flame.c:754 +msgid "Bent" +msgstr "Eğri" + +#: ../plug-ins/flame/flame.c:755 +msgid "Handkerchief" +msgstr "Mendil" + +#: ../plug-ins/flame/flame.c:756 +msgid "Heart" +msgstr "Kalp" + +#: ../plug-ins/flame/flame.c:757 +msgid "Disc" +msgstr "Disk" + +#: ../plug-ins/flame/flame.c:759 +msgid "Hyperbolic" +msgstr "Hiperbolik" + +#: ../plug-ins/flame/flame.c:761 +msgid "Ex" +msgstr "Eski" + +#: ../plug-ins/flame/flame.c:762 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:844 +msgid "Julia" +msgstr "Julia" + +#: ../plug-ins/flame/flame.c:764 +msgid "Fisheye" +msgstr "Balık gözü" + +#: ../plug-ins/flame/flame.c:765 +msgid "Popcorn" +msgstr "Patlamış mısır" + +#: ../plug-ins/flame/flame.c:766 +msgid "Exponential" +msgstr "Üstel" + +#: ../plug-ins/flame/flame.c:767 +msgid "Power" +msgstr "Güç" + +#: ../plug-ins/flame/flame.c:768 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:997 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1038 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1079 +msgid "Cosine" +msgstr "Kosinüs" + +#: ../plug-ins/flame/flame.c:769 +msgid "Rings" +msgstr "Çemberler" + +#: ../plug-ins/flame/flame.c:770 +msgid "Fan" +msgstr "Fan" + +#: ../plug-ins/flame/flame.c:771 +msgid "Eyefish" +msgstr "Balık gözü" + +#: ../plug-ins/flame/flame.c:772 +msgid "Bubble" +msgstr "Kabarcık" + +#: ../plug-ins/flame/flame.c:773 ../plug-ins/map-object/map-object-ui.c:491 +msgid "Cylinder" +msgstr "Silindir" + +#: ../plug-ins/flame/flame.c:775 +msgid "Blur" +msgstr "Bulanıklaştır" + +#: ../plug-ins/flame/flame.c:776 +msgid "Gaussian" +msgstr "Gaussian" + +#: ../plug-ins/flame/flame.c:789 +msgid "_Variation:" +msgstr "_Çeşitlilik:" + +#: ../plug-ins/flame/flame.c:811 +msgid "Load Flame" +msgstr "Alev Yükle" + +#: ../plug-ins/flame/flame.c:826 +msgid "Save Flame" +msgstr "Alevi Kaydet" + +#: ../plug-ins/flame/flame.c:968 +msgid "Flame" +msgstr "Alev" + +#: ../plug-ins/flame/flame.c:1069 +msgid "_Rendering" +msgstr "_Taranıyor" + +#: ../plug-ins/flame/flame.c:1095 +msgid "Co_ntrast:" +msgstr "Ka_rşıtlık:" + +#: ../plug-ins/flame/flame.c:1109 +msgid "_Gamma:" +msgstr "_Gama:" + +#: ../plug-ins/flame/flame.c:1123 +msgid "Sample _density:" +msgstr "Örnek _yoğunluk:" + +#: ../plug-ins/flame/flame.c:1134 +msgid "Spa_tial oversample:" +msgstr "U_zaysal üstünörnekleme:" + +#: ../plug-ins/flame/flame.c:1145 +msgid "Spatial _filter radius:" +msgstr "Uzaysal _süzgeç yarıçapı:" + +#: ../plug-ins/flame/flame.c:1164 +msgid "Color_map:" +msgstr "_Renk haritası:" + +#: ../plug-ins/flame/flame.c:1206 +msgid "Custom gradient" +msgstr "Özel renk geçişi" + +#: ../plug-ins/flame/flame.c:1232 +msgid "C_amera" +msgstr "K_amera" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:547 +#: ../plug-ins/gfig/gfig-dialog.c:274 ../plug-ins/gimpressionist/utils.c:143 +#: ../plug-ins/gradient-flare/gradient-flare.c:881 +#, c-format +msgid "" +"No %s in gimprc:\n" +"You need to add an entry like\n" +"(%s \"%s\")\n" +"to your %s file." +msgstr "" +"gimprc içinde %s yok:\n" +"Şöyle bir giriş eklemelisiniz\n" +"(%s \"%s\")\n" +"%s dosyanıza." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:638 +msgid "Realtime preview" +msgstr "Gerçek zamanlı önizleme" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:646 +msgid "If enabled the preview will be redrawn automatically" +msgstr "Eğer etkinleştirilirse önizleme otomatik olarak yeniden çizilecek." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:649 +msgid "R_edraw preview" +msgstr "Önizlemeyi _yeniden çiz" + +#. Zoom Options +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:657 +msgid "Zoom" +msgstr "Yakınlaştır" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:693 +msgid "Undo last zoom change" +msgstr "Son yakınlaştırma değişimini geri al" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:703 +msgid "Redo last zoom change" +msgstr "Son yakınlaştırma değişimini ileri al" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:718 +msgid "_Parameters" +msgstr "_Parametreler" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:721 +msgid "Fractal Parameters" +msgstr "Kesirli Katsayılar" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:734 +#: ../plug-ins/map-object/map-object-ui.c:1099 +msgid "Left:" +msgstr "Sol:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:743 +#: ../plug-ins/map-object/map-object-ui.c:1099 +msgid "Right:" +msgstr "Sağ:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:752 +#: ../plug-ins/map-object/map-object-ui.c:1098 +msgid "Top:" +msgstr "Tepe:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:761 +#: ../plug-ins/map-object/map-object-ui.c:1098 +msgid "Bottom:" +msgstr "Alt:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:773 +msgid "" +"The higher the number of iterations, the more details will be calculated" +msgstr "Yüksek tekrarlamların sayısı, daha fazla detay hesaplanacak." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:781 +msgid "CX:" +msgstr "CX:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:784 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:794 +msgid "Changes aspect of fractal" +msgstr "Kesir açısını değiştirir" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:791 +msgid "CY:" +msgstr "CY:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:809 +msgid "Load a fractal from file" +msgstr "Dosyadan kesir yükler" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:817 +msgid "Reset parameters to default values" +msgstr "Parametreleri temel değerlere ayarla." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:826 +msgid "Save active fractal to file" +msgstr "Aktif kesiri dosyaya kaydet" + +#. Fractal type toggle box +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:829 +msgid "Fractal Type" +msgstr "Kesir Türü" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:842 +msgid "Mandelbrot" +msgstr "Mandelbrot" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:846 +msgid "Barnsley 1" +msgstr "Barnsley 1" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:848 +msgid "Barnsley 2" +msgstr "Barnsley 2" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:850 +msgid "Barnsley 3" +msgstr "Barnsley 3" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:852 +msgid "Spider" +msgstr "Örümcek" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:854 +msgid "Man'o'war" +msgstr "Man'o'war" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:856 +msgid "Lambda" +msgstr "Lamda" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:858 +msgid "Sierpinski" +msgstr "Sierpinski" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:920 +msgid "Number of colors:" +msgstr "Renk sayısı:" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:923 +msgid "Change the number of colors in the mapping" +msgstr "Eşleme içindeki renk sayısını değiştir." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:930 +msgid "Use loglog smoothing" +msgstr "Günlük kayıdı düzgünleştirmesi kullan" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:937 +msgid "Use log log smoothing to eliminate \"banding\" in the result" +msgstr "" +"Sonuçlardaki \"şeritlemeyi\" kaldırmak için günlük kayıdı düzgünleştirmesini " +"kullan" + +#. Color Density frame +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:941 +msgid "Color Density" +msgstr "Renk Yoğunluğu" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:956 +msgid "Change the intensity of the red channel" +msgstr "Kırmızı kanalı yoğunluğunu değiştir" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:966 +msgid "Change the intensity of the green channel" +msgstr "Yeşil kanalı yoğunluğunu değiştir" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:976 +msgid "Change the intensity of the blue channel" +msgstr "Mavi kanalı yoğunluğunu değiştir" + +#. Color Function frame +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:982 +msgid "Color Function" +msgstr "Renk İşlevi" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:995 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1036 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1077 +msgid "Sine" +msgstr "Sinüs" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1004 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1045 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1086 +msgid "Use sine-function for this color component" +msgstr "Bu renk bileşeni için sine-işlevini kullan" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1007 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1048 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1089 +msgid "Use cosine-function for this color component" +msgstr "Bu renk bileşeni için cosine-işlevini kullan" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1010 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1051 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1092 +msgid "" +"Use linear mapping instead of any trigonometrical function for this color " +"channel" +msgstr "" +"Bu renk bileşeni için kullanılan herhangi bir trigonometrik işlev yerine " +"doğrusal eşlemeyi kullan" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1019 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1060 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1101 +msgid "Inversion" +msgstr "Tersine çevirme" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1027 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1068 +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1109 +msgid "" +"If you enable this option higher color values will be swapped with lower " +"ones and vice versa" +msgstr "" +"Eğer bu seçenek etkinleştirilirse yüksek renk değerleri düşük olanlarla " +"değiştirilecek." + +#. Colormode toggle box +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1114 +msgid "Color Mode" +msgstr "Renk Kipi" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1123 +msgid "As specified above" +msgstr "Yukarıda belirtildiği gibi" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1135 +msgid "" +"Create a color-map with the options you specified above (color " +"density/function). The result is visible in the preview image" +msgstr "" +"Aşağıda belirttiğiniz seçenekler ile (renk yoğunluğu/işlevi) renk haritası " +"oluşturun. Sonuç önizleme resminde görülür." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1145 +msgid "Apply active gradient to final image" +msgstr "Aktif gradyanı son resme uygula" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1157 +msgid "Create a color-map using a gradient from the gradient editor" +msgstr "" +"Artımlı geçiş düzenleyicisinden bir artımlı geçiş kullanarak renk haritası " +"oluştur." + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1168 +msgid "FractalExplorer Gradient" +msgstr "KesirTarayıcı Artımlı Geçişi" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1198 +msgid "_Fractals" +msgstr "_Kesirler" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1560 +#, c-format +msgid "Could not write '%s': %s" +msgstr "'%s' yazılamadı: %s" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1635 +msgid "Load Fractal Parameters" +msgstr "Kesir Katsayıları Yükle" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1673 +msgid "Save Fractal Parameters" +msgstr "Kesir Kaysayılarını Kaydet" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1871 +#, c-format +msgid "'%s' is not a FractalExplorer file" +msgstr "'%s' KesirTarayıcısı dosyası değil" + +#: ../plug-ins/fractal-explorer/fractal-explorer-dialogs.c:1877 +#, c-format +msgid "'%s' is corrupt. Line %d Option section incorrect" +msgstr "'%s' bozuk. Satır %d Option kısmı hatalı" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:239 +msgid "Render fractal art" +msgstr "Keslirli usul tara" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:244 +msgid "_Fractal Explorer..." +msgstr "_Kesirli Tarama..." + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:374 +msgid "Rendering fractal" +msgstr "Kesirli tarama" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:756 +#: ../plug-ins/gradient-flare/gradient-flare.c:3200 +#, c-format +msgid "Are you sure you want to delete \"%s\" from the list and from disk?" +msgstr "\"%s\", listeden ve diskinizden silmek istediğinize emin misiniz?" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:760 +msgid "Delete Fractal" +msgstr "Kesiri Sil" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:950 +#, c-format +msgid "File '%s' is not a FractalExplorer file" +msgstr "'%s' dosyası KesirTarayıcısı dosyası değil" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:959 +#, c-format +msgid "" +"File '%s' is corrupt.\n" +"Line %d Option section incorrect" +msgstr "" +"'%s' dosyası bozuk.\n" +"Satır %d Option kısmı hatalı" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:1003 +msgid "My first fractal" +msgstr "İlk Kesirli Taramam" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:1067 +msgid "Select folder and rescan collection" +msgstr "Dizini seçin ve koleksiyonu tekrar tarayın" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:1079 +msgid "Apply currently selected fractal" +msgstr "Şuan seçilen kesiri uygula" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:1091 +msgid "Delete currently selected fractal" +msgstr "Şuan seçilen kesiri sil" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:1114 +msgid "Rescan for Fractals" +msgstr "Kesirler için yeniden tara" + +#: ../plug-ins/fractal-explorer/fractal-explorer.c:1133 +msgid "Add FractalExplorer Path" +msgstr "KesirTarayıcısı Yolu Ekle" + +#: ../plug-ins/gfig/gfig-bezier.c:443 +msgid "Closed" +msgstr "Kapatıldı" + +#: ../plug-ins/gfig/gfig-bezier.c:448 +msgid "Close curve on completion" +msgstr "Sonuçlandığında kavisi kapat." + +#: ../plug-ins/gfig/gfig-bezier.c:453 +msgid "Show Line Frame" +msgstr "Çizgi çerçevesini göster" + +#: ../plug-ins/gfig/gfig-bezier.c:458 +msgid "Draws lines between the control points. Only during curve creation" +msgstr "" +"Denetim noktaları arasında çizgiler çizer. Sadece kavis oluşturma esnasında" + +#. Start building the dialog up +#: ../plug-ins/gfig/gfig-dialog.c:286 +msgid "Gfig" +msgstr "Gfig" + +#. Tool options notebook +#: ../plug-ins/gfig/gfig-dialog.c:337 +msgid "Tool Options" +msgstr "Araç Seçenekleri" + +#: ../plug-ins/gfig/gfig-dialog.c:354 +msgid "_Stroke" +msgstr "_Darbe" + +#. Fill frame on right side +#: ../plug-ins/gfig/gfig-dialog.c:401 +msgid "Fill" +msgstr "Doldur" + +#: ../plug-ins/gfig/gfig-dialog.c:415 +msgid "No fill" +msgstr "Dolgusuz" + +#: ../plug-ins/gfig/gfig-dialog.c:416 +msgid "Color fill" +msgstr "Renk doldurma" + +#: ../plug-ins/gfig/gfig-dialog.c:417 +msgid "Pattern fill" +msgstr "Desen doldurma" + +#: ../plug-ins/gfig/gfig-dialog.c:418 +msgid "Shape gradient" +msgstr "Şekilli renk geçiş" + +#: ../plug-ins/gfig/gfig-dialog.c:419 +msgid "Vertical gradient" +msgstr "Düşey renk geçişi" + +#: ../plug-ins/gfig/gfig-dialog.c:420 +msgid "Horizontal gradient" +msgstr "Yatay renk geçişi" + +#. "show image" checkbutton at bottom of style frame +#: ../plug-ins/gfig/gfig-dialog.c:480 +msgid "Show image" +msgstr "Resmi göster" + +#. "snap to grid" checkbutton at bottom of style frame +#: ../plug-ins/gfig/gfig-dialog.c:493 +msgctxt "checkbutton" +msgid "Snap to grid" +msgstr "Izgaraya uydur" + +#. "show grid" checkbutton at bottom of style frame +#: ../plug-ins/gfig/gfig-dialog.c:502 +msgid "Show grid" +msgstr "Izgarayı göster" + +#: ../plug-ins/gfig/gfig-dialog.c:637 +msgid "Load Gfig Object Collection" +msgstr "Gfig Nesne Koleksiyonunu Yükle" + +#: ../plug-ins/gfig/gfig-dialog.c:686 +msgid "Save Gfig Drawing" +msgstr "Gfig Çizimini Kaydet" + +#: ../plug-ins/gfig/gfig-dialog.c:831 +msgid "First Gfig" +msgstr "İlk Gfig" + +#: ../plug-ins/gfig/gfig-dialog.c:870 +msgid "_Undo" +msgstr "_Geri Al" + +#: ../plug-ins/gfig/gfig-dialog.c:874 +msgid "_Clear" +msgstr "_Temizle" + +#: ../plug-ins/gfig/gfig-dialog.c:878 ../plug-ins/imagemap/imap_menu.c:209 +msgid "_Grid" +msgstr "_Izgara" + +#: ../plug-ins/gfig/gfig-dialog.c:886 +msgid "Raise selected object" +msgstr "Seçilen nesne yükseltildi" + +#: ../plug-ins/gfig/gfig-dialog.c:890 +msgid "Lower selected object" +msgstr "Seçilen nesne alçaltıldı" + +#: ../plug-ins/gfig/gfig-dialog.c:894 +msgid "Raise selected object to top" +msgstr "Seçilen nesneyi en üste yükselt" + +#: ../plug-ins/gfig/gfig-dialog.c:898 +msgid "Lower selected object to bottom" +msgstr "Seçilen nesneyi en alta indir" + +#: ../plug-ins/gfig/gfig-dialog.c:902 +msgid "Show previous object" +msgstr "Önceki nesneyi göster" + +#: ../plug-ins/gfig/gfig-dialog.c:906 +msgid "Show next object" +msgstr "Sonraki nesneyi göster" + +#: ../plug-ins/gfig/gfig-dialog.c:910 ../plug-ins/gfig/gfig-stock.c:53 +msgid "Show all objects" +msgstr "Tüm nesneleri göster" + +#: ../plug-ins/gfig/gfig-dialog.c:916 ../plug-ins/gfig/gfig-stock.c:47 +msgid "Create line" +msgstr "Çizgi oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:919 ../plug-ins/gfig/gfig-stock.c:51 +msgid "Create rectangle" +msgstr "Dörtgen oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:922 ../plug-ins/gfig/gfig-stock.c:42 +msgid "Create circle" +msgstr "Daire oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:925 ../plug-ins/gfig/gfig-stock.c:46 +msgid "Create ellipse" +msgstr "Elips oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:928 ../plug-ins/gfig/gfig-stock.c:44 +msgid "Create arc" +msgstr "Arc oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:931 ../plug-ins/gfig/gfig-stock.c:50 +msgid "Create reg polygon" +msgstr "Reg poligonu oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:934 ../plug-ins/gfig/gfig-stock.c:55 +msgid "Create star" +msgstr "Yıldız oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:937 ../plug-ins/gfig/gfig-stock.c:54 +msgid "Create spiral" +msgstr "Spiral oluştur" + +#: ../plug-ins/gfig/gfig-dialog.c:940 +msgid "Create bezier curve. Shift + Button ends object creation." +msgstr "Bezier eğrisi oluştur. Shift + Tuş nesne oluşturmayı sonlandırır." + +#: ../plug-ins/gfig/gfig-dialog.c:944 ../plug-ins/gfig/gfig-stock.c:48 +msgid "Move an object" +msgstr "Bir nesneyi taşı" + +#: ../plug-ins/gfig/gfig-dialog.c:947 ../plug-ins/gfig/gfig-stock.c:49 +msgid "Move a single point" +msgstr "Tek nokta taşı" + +#: ../plug-ins/gfig/gfig-dialog.c:950 ../plug-ins/gfig/gfig-stock.c:43 +msgid "Copy an object" +msgstr "Bir nesne seç" + +#: ../plug-ins/gfig/gfig-dialog.c:953 ../plug-ins/gfig/gfig-stock.c:45 +msgid "Delete an object" +msgstr "Bir nesneyi sil" + +#: ../plug-ins/gfig/gfig-dialog.c:956 ../plug-ins/gfig/gfig-stock.c:52 +msgid "Select an object" +msgstr "Bir nesne seç" + +#: ../plug-ins/gfig/gfig-dialog.c:1038 +msgid "This tool has no options" +msgstr "Bu aracın seçeneği yok" + +#. Put buttons in +#: ../plug-ins/gfig/gfig-dialog.c:1228 +msgid "Show position" +msgstr "Konumu göster" + +#: ../plug-ins/gfig/gfig-dialog.c:1240 +msgid "Show control points" +msgstr "Denetim noktalarını göster" + +#: ../plug-ins/gfig/gfig-dialog.c:1274 +msgid "Max undo:" +msgstr "En Fazla Geri Alma:" + +#: ../plug-ins/gfig/gfig-dialog.c:1283 +#: ../plug-ins/gimpressionist/general.c:185 +msgid "Transparent" +msgstr "Şeffaf" + +#: ../plug-ins/gfig/gfig-dialog.c:1285 +msgid "Foreground" +msgstr "Önalan" + +#: ../plug-ins/gfig/gfig-dialog.c:1287 ../plug-ins/imagemap/imap_cmd_copy.c:54 +#: ../plug-ins/imagemap/imap_cmd_copy_object.c:55 +#: ../plug-ins/imagemap/imap_menu.c:160 +msgid "Copy" +msgstr "Kopyala" + +#: ../plug-ins/gfig/gfig-dialog.c:1296 +msgid "" +"Layer background type. Copy causes the previous layer to be copied before " +"the draw is performed." +msgstr "" +"Katman artalan biçimi. Kopyalama seçeneği, çizim gerçekleştirilmeden önce " +"önceki katmanın kopyalanmasına neden olur." + +#: ../plug-ins/gfig/gfig-dialog.c:1302 +msgid "Background:" +msgstr "Arkaplan:" + +#: ../plug-ins/gfig/gfig-dialog.c:1305 +msgid "Feather" +msgstr "Yumuşat" + +#: ../plug-ins/gfig/gfig-dialog.c:1329 +msgid "Radius:" +msgstr "Yarıçap:" + +#: ../plug-ins/gfig/gfig-dialog.c:1386 +msgid "Grid spacing:" +msgstr "Izgara aralığı:" + +#: ../plug-ins/gfig/gfig-dialog.c:1403 +msgid "Polar grid sectors desired:" +msgstr "İstenilen kutupsal ızgara dilimleri:" + +#: ../plug-ins/gfig/gfig-dialog.c:1425 +msgid "Polar grid radius interval:" +msgstr "Kutupsal ızgara yarıçapı aralığı:" + +#: ../plug-ins/gfig/gfig-dialog.c:1441 ../plug-ins/imagemap/imap_menu.c:220 +msgid "Rectangle" +msgstr "Dörtgen" + +#: ../plug-ins/gfig/gfig-dialog.c:1443 +msgid "Isometric" +msgstr "Izometrik" + +#: ../plug-ins/gfig/gfig-dialog.c:1452 +msgid "Grid type:" +msgstr "Izgara türü:" + +#: ../plug-ins/gfig/gfig-dialog.c:1459 +#: ../plug-ins/gradient-flare/gradient-flare.c:551 +msgid "Normal" +msgstr "Normal" + +#: ../plug-ins/gfig/gfig-dialog.c:1462 +msgid "Grey" +msgstr "Gri" + +#: ../plug-ins/gfig/gfig-dialog.c:1463 +msgid "Darker" +msgstr "Daha Koyu" + +#: ../plug-ins/gfig/gfig-dialog.c:1464 +msgid "Lighter" +msgstr "Daha Açık" + +#: ../plug-ins/gfig/gfig-dialog.c:1465 +msgid "Very dark" +msgstr "Çok koyu" + +#: ../plug-ins/gfig/gfig-dialog.c:1474 +msgid "Grid color:" +msgstr "Izgara rengi:" + +#: ../plug-ins/gfig/gfig-dialog.c:1697 +msgid "Sides:" +msgstr "Yanlar:" + +#: ../plug-ins/gfig/gfig-dialog.c:1707 +msgid "Right" +msgstr "Sağ" + +#: ../plug-ins/gfig/gfig-dialog.c:1708 +msgid "Left" +msgstr "Sol" + +#: ../plug-ins/gfig/gfig-dialog.c:1718 +#: ../plug-ins/gimpressionist/orientation.c:148 +msgid "Orientation:" +msgstr "Yöneliş:" + +#: ../plug-ins/gfig/gfig-dobject.c:585 +msgid "Hey where has the object gone ?" +msgstr "Hey cisim nereye gitti ?" + +#: ../plug-ins/gfig/gfig-dobject.c:955 +msgid "Error reading file" +msgstr "Dosya okunamıyor" + +#: ../plug-ins/gfig/gfig-dobject.c:1044 +msgid "Editing read-only object - you will not be able to save it" +msgstr "Salt okunur nesne düzenleniyor - dosyayı kaydedemeyeceksiniz." + +#: ../plug-ins/gfig/gfig-poly.c:51 +msgid "Regular Polygon Number of Sides" +msgstr "Kenarların Düzgün Çokgen Sayısı" + +#: ../plug-ins/gfig/gfig-preview.c:328 +msgid "Object Details" +msgstr "Nesne Özellikleri" + +#. Position labels +#: ../plug-ins/gfig/gfig-preview.c:378 +msgid "XY position:" +msgstr "XY konumu:" + +#: ../plug-ins/gfig/gfig-spiral.c:55 +msgid "Spiral Number of Turns" +msgstr "Dönüşlerin Sarmal Sayısı" + +#: ../plug-ins/gfig/gfig-star.c:52 +msgid "Star Number of Points" +msgstr "Yıldız Noktalarının Sayısı" + +#: ../plug-ins/gfig/gfig-stock.c:41 +msgid "Create bezier curve" +msgstr "Bezier eğrisi oluştur" + +#: ../plug-ins/gfig/gfig.c:124 +msgid "Create geometric shapes" +msgstr "Geometrik şekiller oluştur" + +#: ../plug-ins/gfig/gfig.c:135 +msgid "_Gfig..." +msgstr "_Gfig..." + +#: ../plug-ins/gfig/gfig.c:731 +msgid "" +"Error trying to save figure as a parasite: can't attach parasite to drawable." +msgstr "" +"Şekli parazit olarak kaydetmeye çalışırken hata: parazit çizilebilir olarak " +"eklenemiyor." + +#: ../plug-ins/gfig/gfig.c:758 +#, c-format +msgid "Error trying to open temporary file '%s' for parasite loading: %s" +msgstr "" +"Parazit yüklemesi için geçici dosya '%s' açılmaya çalışılırken hata: %s" + +#: ../plug-ins/gimpressionist/brush.c:247 +msgid "Can only save drawables!" +msgstr "Sadece çizilebilenler kaydedilebilir!" + +#: ../plug-ins/gimpressionist/brush.c:252 +msgid "Save Brush" +msgstr "Fırçayı Kaydet" + +#: ../plug-ins/gimpressionist/brush.c:507 +msgid "_Brush" +msgstr "_Fırça" + +#: ../plug-ins/gimpressionist/brush.c:544 +msgid "Gamma:" +msgstr "Gama:" + +#: ../plug-ins/gimpressionist/brush.c:562 +msgid "Changes the gamma (brightness) of the selected brush" +msgstr "Seçilen fırçada gamma (aydınlık) değişiklikleri" + +#: ../plug-ins/gimpressionist/brush.c:570 +msgid "Select:" +msgstr "Seç:" + +#: ../plug-ins/gimpressionist/brush.c:599 +msgid "Aspect ratio:" +msgstr "En-boy oranı:" + +#: ../plug-ins/gimpressionist/brush.c:603 +msgid "Specifies the aspect ratio of the brush" +msgstr "Fırçanın en-boy oranını belirler" + +#: ../plug-ins/gimpressionist/brush.c:612 +#: ../plug-ins/gimpressionist/paper.c:206 +msgid "Relief:" +msgstr "Kabartma:" + +#: ../plug-ins/gimpressionist/brush.c:616 +#: ../plug-ins/gimpressionist/paper.c:210 +msgid "Specifies the amount of embossing to apply to the image (in percent)" +msgstr "Resme uygulanacak kabartma miktarını belirtir (yüzde olarak)" + +#: ../plug-ins/gimpressionist/color.c:60 +msgid "Co_lor" +msgstr "R_enk" + +#: ../plug-ins/gimpressionist/color.c:70 +msgid "A_verage under brush" +msgstr "Fırça altı or_talaması" + +#: ../plug-ins/gimpressionist/color.c:72 +msgid "C_enter of brush" +msgstr "_Fırçayı ortala" + +#: ../plug-ins/gimpressionist/color.c:79 +msgid "Color is computed from the average of all pixels under the brush" +msgstr "Renk, fırça altındaki tüm beneklerin ortalamasından hesaplandı" + +#: ../plug-ins/gimpressionist/color.c:83 +msgid "Samples the color from the pixel in the center of the brush" +msgstr "Rengi fırçanın merkezindeki benekten örnekler" + +#: ../plug-ins/gimpressionist/color.c:94 +msgid "Color _noise:" +msgstr "Renk _gürültüsü:" + +#: ../plug-ins/gimpressionist/color.c:98 +msgid "Adds random noise to the color" +msgstr "Renge rasgele gürültü ekler" + +#: ../plug-ins/gimpressionist/general.c:134 +#: ../plug-ins/gradient-flare/gradient-flare.c:3529 +msgid "_General" +msgstr "_Genel" + +#: ../plug-ins/gimpressionist/general.c:150 +msgid "Keep original" +msgstr "Aslını koru" + +#: ../plug-ins/gimpressionist/general.c:151 +msgid "Preserve the original image as a background" +msgstr "Özgün resmi artalan olarak koru" + +#: ../plug-ins/gimpressionist/general.c:156 +msgid "From paper" +msgstr "Kağıttan" + +#: ../plug-ins/gimpressionist/general.c:157 +msgid "Copy the texture of the selected paper as a background" +msgstr "Seçilen kağıdın dokusunu artalan olarak kopyala" + +#: ../plug-ins/gimpressionist/general.c:167 +msgid "Solid colored background" +msgstr "Katı renkli artalan" + +#: ../plug-ins/gimpressionist/general.c:186 +msgid "" +"Use a transparent background; Only the strokes painted will be visible" +msgstr "Saydam artalan kullan; yalnızca boyanan darbeler görünür olacak" + +#: ../plug-ins/gimpressionist/general.c:203 +msgid "Paint edges" +msgstr "Boya kenarları" + +#: ../plug-ins/gimpressionist/general.c:208 +msgid "Selects if to place strokes all the way out to the edges of the image" +msgstr "Resimin kenarlarından dışa çıkması için darbeler seçer." + +#. Tileable checkbox +#: ../plug-ins/gimpressionist/general.c:213 ../plug-ins/maze/maze-dialog.c:278 +msgid "Tileable" +msgstr "Döşenebilir" + +#: ../plug-ins/gimpressionist/general.c:217 +msgid "Selects if the resulting image should be seamlessly tileable" +msgstr "" +"Sonuçlanan resmin kusursuz olarak döşenebilir olması istendiği için seçilir" + +#: ../plug-ins/gimpressionist/general.c:222 +msgid "Drop shadow" +msgstr "Gölge düşürme" + +#: ../plug-ins/gimpressionist/general.c:227 +msgid "Adds a shadow effect to each brush stroke" +msgstr "Her fırça darbesine bir gölge etkisi ekle" + +#: ../plug-ins/gimpressionist/general.c:240 +msgid "Edge darken:" +msgstr "Kenar karartma:" + +#: ../plug-ins/gimpressionist/general.c:244 +msgid "How much to \"darken\" the edges of each brush stroke" +msgstr "Her fırça darbesi için kenarlar ne kadar karartılacak" + +#: ../plug-ins/gimpressionist/general.c:249 +msgid "Shadow darken:" +msgstr "Gölge karartma:" + +#: ../plug-ins/gimpressionist/general.c:253 +msgid "How much to \"darken\" the drop shadow" +msgstr "Gölge düşürmenin ne kadar \"koyu\" olacağı" + +#: ../plug-ins/gimpressionist/general.c:258 +msgid "Shadow depth:" +msgstr "Gölge derinliği:" + +#: ../plug-ins/gimpressionist/general.c:262 +msgid "" +"The depth of the drop shadow, i.e. how far apart from the object it should be" +msgstr "" +"Gölge düşürmenin derinliği, örn. nesneden ne kadar uzaklıkta bulunmalı" + +#: ../plug-ins/gimpressionist/general.c:267 +msgid "Shadow blur:" +msgstr "Gölge bulanıklığı:" + +#: ../plug-ins/gimpressionist/general.c:271 +msgid "How much to blur the drop shadow" +msgstr "Gölge düşürme bulanıklılığının ne kadar olacağı" + +#: ../plug-ins/gimpressionist/general.c:276 +msgid "Deviation threshold:" +msgstr "Sapma eşiği:" + +#: ../plug-ins/gimpressionist/general.c:280 +msgid "A bailout-value for adaptive selections" +msgstr "Uyarlanabilir seçimler için bir kurtarma değeri" + +#: ../plug-ins/gimpressionist/gimp.c:90 +msgid "Performs various artistic operations" +msgstr "Çeşitli sanatsal işlemler gerçekleştirir" + +#: ../plug-ins/gimpressionist/gimp.c:95 +msgid "_GIMPressionist..." +msgstr "_GIMPressionist..." + +#: ../plug-ins/gimpressionist/gimp.c:371 +msgid "Painting" +msgstr "Boyama" + +#: ../plug-ins/gimpressionist/gimpressionist.c:139 +msgid "GIMPressionist" +msgstr "GIMPressionist" + +#: ../plug-ins/gimpressionist/orientation.c:92 +msgid "Or_ientation" +msgstr "_Yöneltme" + +#: ../plug-ins/gimpressionist/orientation.c:106 +msgid "Directions:" +msgstr "Yönler:" + +#: ../plug-ins/gimpressionist/orientation.c:110 +msgid "The number of directions (i.e. brushes) to use" +msgstr "Kullanıcılacak yönlerin sayısı (örn. fırçalar)" + +#: ../plug-ins/gimpressionist/orientation.c:118 +msgid "Start angle:" +msgstr "Başlangıç açısı:" + +#: ../plug-ins/gimpressionist/orientation.c:122 +msgid "The starting angle of the first brush to create" +msgstr "Oluşturulacak ilk fırçanın başlangıç açısı" + +#: ../plug-ins/gimpressionist/orientation.c:130 +msgid "Angle span:" +msgstr "Köşe kirişi:" + +#: ../plug-ins/gimpressionist/orientation.c:134 +msgid "The angle span of the first brush to create" +msgstr "İlk fırçanın oluşturulacak köşe kirişi" + +#: ../plug-ins/gimpressionist/orientation.c:157 +msgid "" +"Let the value (brightness) of the region determine the direction of the " +"stroke" +msgstr "Darbenin yönünü belirlemesi için alan değerine (parlaklık) izin ver" + +#: ../plug-ins/gimpressionist/orientation.c:160 +#: ../plug-ins/gimpressionist/size.c:163 +msgid "Radius" +msgstr "Yarıçap" + +#: ../plug-ins/gimpressionist/orientation.c:161 +msgid "" +"The distance from the center of the image determines the direction of the " +"stroke" +msgstr "Resmin ortasından gelen uzaklık darbenin yönünü belirler" + +#: ../plug-ins/gimpressionist/orientation.c:165 +msgid "Selects a random direction of each stroke" +msgstr "Her darbe için rasgele bir yön seçer" + +#: ../plug-ins/gimpressionist/orientation.c:168 +#: ../plug-ins/gimpressionist/size.c:171 +msgid "Radial" +msgstr "Dairesel" + +#: ../plug-ins/gimpressionist/orientation.c:169 +msgid "" +"Let the direction from the center determine the direction of the stroke" +msgstr "Darbenin merkezden gelen yöne göre yönünü belirlemesine izin ver" + +#: ../plug-ins/gimpressionist/orientation.c:176 +#: ../plug-ins/gimpressionist/size.c:179 +msgid "Flowing" +msgstr "Akış" + +#: ../plug-ins/gimpressionist/orientation.c:177 +#: ../plug-ins/gimpressionist/size.c:180 +msgid "The strokes follow a \"flowing\" pattern" +msgstr "Darbeler bir \"akıcı\" desen izler" + +#: ../plug-ins/gimpressionist/orientation.c:181 +msgid "The hue of the region determines the direction of the stroke" +msgstr "Alanın renk tonu darbenin yönünü belirler." + +#: ../plug-ins/gimpressionist/orientation.c:184 +#: ../plug-ins/gimpressionist/size.c:187 +msgid "Adaptive" +msgstr "Uyarlanır" + +#: ../plug-ins/gimpressionist/orientation.c:185 +msgid "The direction that matches the original image the closest is selected" +msgstr "Özgün resim ile en yakın eşleşen yön seçildi" + +#: ../plug-ins/gimpressionist/orientation.c:192 +#: ../plug-ins/gimpressionist/size.c:196 +msgid "Manual" +msgstr "Kılavuz" + +#: ../plug-ins/gimpressionist/orientation.c:193 +msgid "Manually specify the stroke orientation" +msgstr "Darbe yönlenmesini elle belirt" + +#: ../plug-ins/gimpressionist/orientation.c:204 +msgid "Opens up the Orientation Map Editor" +msgstr "Yönlendirme Eşlemi Düzenleyicisini açar" + +#: ../plug-ins/gimpressionist/orientmap.c:526 +msgid "Orientation Map Editor" +msgstr "Yönlendirme Eşlemi Düzenleyicisi" + +#: ../plug-ins/gimpressionist/orientmap.c:555 +msgid "Vectors" +msgstr "Vektörler" + +#: ../plug-ins/gimpressionist/orientmap.c:567 +msgid "" +"The vector-field. Left-click to move selected vector, Right-click to point " +"it towards mouse, Middle-click to add a new vector." +msgstr "" +"Vektör alanı. Seçilen vektörü taşımak için sol tıklayın, fareye göre " +"yönlendirmek için sağ tıklayın, yeni vektör eklemek için ortaya tıklayın." + +#: ../plug-ins/gimpressionist/orientmap.c:590 +#: ../plug-ins/gimpressionist/sizemap.c:459 +msgid "Adjust the preview's brightness" +msgstr "Önizlemenin parlaklığını ayarla" + +#: ../plug-ins/gimpressionist/orientmap.c:612 +msgid "Select previous vector" +msgstr "Önceki vektörü seç" + +#: ../plug-ins/gimpressionist/orientmap.c:618 +msgid "Select next vector" +msgstr "Sonraki vektörü seç" + +#: ../plug-ins/gimpressionist/orientmap.c:620 +#: ../plug-ins/gimpressionist/sizemap.c:490 +msgid "A_dd" +msgstr "_Ekle" + +#: ../plug-ins/gimpressionist/orientmap.c:624 +msgid "Add new vector" +msgstr "Yeni vektör ekle" + +#: ../plug-ins/gimpressionist/orientmap.c:626 +#: ../plug-ins/gimpressionist/sizemap.c:497 +msgid "_Kill" +msgstr "İşlemi Ö_ldür" + +#: ../plug-ins/gimpressionist/orientmap.c:630 +msgid "Delete selected vector" +msgstr "Seçilen vektörü sil" + +#: ../plug-ins/gimpressionist/orientmap.c:641 +msgid "Type" +msgstr "Tip" + +#: ../plug-ins/gimpressionist/orientmap.c:645 +msgid "_Normal" +msgstr "_Normal" + +#: ../plug-ins/gimpressionist/orientmap.c:646 +msgid "Vorte_x" +msgstr "_Girdap" + +#: ../plug-ins/gimpressionist/orientmap.c:647 +msgid "Vortex_2" +msgstr "Girdap_2" + +#: ../plug-ins/gimpressionist/orientmap.c:648 +msgid "Vortex_3" +msgstr "Girdap_3" + +#: ../plug-ins/gimpressionist/orientmap.c:654 +#: ../plug-ins/gimpressionist/sizemap.c:542 +msgid "_Voronoi" +msgstr "_Voronoi" + +#: ../plug-ins/gimpressionist/orientmap.c:662 +msgid "" +"Voronoi-mode makes only the vector closest to the given point have any " +"influence" +msgstr "" +"Voronoi-biçimi, verilen noktaya en yakın vektöre herhangi bir etki yapar" + +#: ../plug-ins/gimpressionist/orientmap.c:672 +msgid "A_ngle:" +msgstr "_Açı:" + +#: ../plug-ins/gimpressionist/orientmap.c:676 +msgid "Change the angle of the selected vector" +msgstr "Seçilen vektörün açısını değiştir" + +#: ../plug-ins/gimpressionist/orientmap.c:683 +msgid "Ang_le offset:" +msgstr "K_öşe konumu:" + +#: ../plug-ins/gimpressionist/orientmap.c:687 +msgid "Offset all vectors with a given angle" +msgstr "Tüm vektörleri bir açı ile dengele" + +#: ../plug-ins/gimpressionist/orientmap.c:698 +msgid "Change the strength of the selected vector" +msgstr "Seçilen vektörün keskinliğini değiştir" + +#: ../plug-ins/gimpressionist/orientmap.c:705 +msgid "S_trength exp.:" +msgstr "Keskinlik dışa aktarması:" + +#: ../plug-ins/gimpressionist/orientmap.c:709 +#: ../plug-ins/gimpressionist/sizemap.c:537 +msgid "Change the exponent of the strength" +msgstr "Keskinliğin şiddetini değiştir" + +#: ../plug-ins/gimpressionist/paper.c:138 +msgid "P_aper" +msgstr "K_ağıt" + +#: ../plug-ins/gimpressionist/paper.c:173 +msgid "Inverts the Papers texture" +msgstr "Kağıtların dokusunu tersine çevirir" + +#: ../plug-ins/gimpressionist/paper.c:177 +msgid "O_verlay" +msgstr "Ka_plama" + +#: ../plug-ins/gimpressionist/paper.c:182 +msgid "Applies the paper as it is (without embossing it)" +msgstr "Kağıdı olduğu gibi uygular (kabartma olmadan)" + +#: ../plug-ins/gimpressionist/paper.c:198 +msgid "Specifies the scale of the texture (in percent of original file)" +msgstr "Dokunun derecesini belirler (özgün dosyanın yüzdesi olarak)" + +#: ../plug-ins/gimpressionist/placement.c:67 +msgid "Pl_acement" +msgstr "Ye_rleşim" + +#: ../plug-ins/gimpressionist/placement.c:73 +msgid "Placement" +msgstr "Yerleştirme" + +#: ../plug-ins/gimpressionist/placement.c:77 +msgid "Randomly" +msgstr "Rastgele" + +#: ../plug-ins/gimpressionist/placement.c:81 +msgid "Evenly distributed" +msgstr "Eşit olarak dağıtılmış" + +#: ../plug-ins/gimpressionist/placement.c:89 +msgid "Place strokes randomly around the image" +msgstr "Darbeleri resmin çevresine rasgele yerleştir" + +#: ../plug-ins/gimpressionist/placement.c:93 +msgid "The strokes are evenly distributed across the image" +msgstr "Darbeler resim boyunca eşit bir şekilde dağıtılır" + +#: ../plug-ins/gimpressionist/placement.c:102 +msgid "Centered" +msgstr "Ortalanmış" + +#: ../plug-ins/gimpressionist/placement.c:108 +msgid "Focus the brush strokes around the center of the image" +msgstr "Fırça darbelerini resim merkezi etrafında odakla" + +#: ../plug-ins/gimpressionist/placement.c:120 +msgid "Stroke _density:" +msgstr "Darbe _yoğunluğu:" + +#: ../plug-ins/gimpressionist/placement.c:124 +msgid "The relative density of the brush strokes" +msgstr "Fırça darbelerinin göreceli yoğunluğu" + +#. +#. * gimp_filename_to_utf8 () and g_strerror () return temporary strings +#. * that need not and should not be freed. So this call is OK. +#. * +#: ../plug-ins/gimpressionist/ppmtool.c:650 +#, c-format +msgid "Failed to save PPM file '%s': %s" +msgstr "PPM dosyası '%s' kaydedilemedi: %s" + +#: ../plug-ins/gimpressionist/presets.c:640 +msgid "Save Current" +msgstr "Şimdikini Kaydet" + +#: ../plug-ins/gimpressionist/presets.c:894 +msgid "Gimpressionist Defaults" +msgstr "Gimpressionist Varsayılanları" + +#: ../plug-ins/gimpressionist/presets.c:1015 +msgid "_Presets" +msgstr "_Öntanımlı" + +#: ../plug-ins/gimpressionist/presets.c:1030 +msgid "Save Current..." +msgstr "Şimdikini Kaydet..." + +#: ../plug-ins/gimpressionist/presets.c:1038 +msgid "Save the current settings to the specified file" +msgstr "Geçerli ayarları belirtilen dosyaya kaydet" + +#: ../plug-ins/gimpressionist/presets.c:1066 +msgid "Reads the selected Preset into memory" +msgstr "Belleğe seçilen Öntanımı okur" + +#: ../plug-ins/gimpressionist/presets.c:1072 +msgid "Deletes the selected Preset" +msgstr "Seçili öntanımlı ayarı sil" + +#: ../plug-ins/gimpressionist/presets.c:1078 +msgid "Reread the folder of Presets" +msgstr "Öntanımlıların dizinlerini yeniden oku" + +#: ../plug-ins/gimpressionist/preview.c:174 +#: ../plug-ins/gimpressionist/repaint.c:1184 +#: ../plug-ins/imagemap/imap_polygon.c:515 +#: ../plug-ins/lighting/lighting-ui.c:1075 +msgid "_Update" +msgstr "_Güncelle" + +#: ../plug-ins/gimpressionist/preview.c:180 +msgid "Refresh the Preview window" +msgstr "Önizleme penceresini yenile" + +#: ../plug-ins/gimpressionist/preview.c:188 +msgid "Revert to the original image" +msgstr "Özgün resme geri döndür" + +#: ../plug-ins/gimpressionist/size.c:95 +msgid "_Size" +msgstr "_Boyut" + +#: ../plug-ins/gimpressionist/size.c:109 +msgid "Sizes:" +msgstr "Boyutlar:" + +#: ../plug-ins/gimpressionist/size.c:113 +msgid "The number of sizes of brushes to use" +msgstr "Kullanılacak fırçaların boyutlarının sayısı" + +#: ../plug-ins/gimpressionist/size.c:121 +msgid "Minimum size:" +msgstr "Asgari boyut:" + +#: ../plug-ins/gimpressionist/size.c:125 +msgid "The smallest brush to create" +msgstr "Oluşturulacak en küçük fırça" + +#: ../plug-ins/gimpressionist/size.c:133 +msgid "Maximum size:" +msgstr "Azami boyut:" + +#: ../plug-ins/gimpressionist/size.c:137 +msgid "The largest brush to create" +msgstr "Oluşturulacak en büyük fırça" + +#: ../plug-ins/gimpressionist/size.c:151 +msgid "Size:" +msgstr "Büyüklük:" + +#: ../plug-ins/gimpressionist/size.c:160 +msgid "" +"Let the value (brightness) of the region determine the size of the stroke" +msgstr "" +"Darbenin boyutunu belirlemesi için alan değerine (parlaklık) izin ver" + +#: ../plug-ins/gimpressionist/size.c:164 +msgid "" +"The distance from the center of the image determines the size of the stroke" +msgstr "Resmin ortasından gelen uzaklık darbenin boyutunu belirler" + +#: ../plug-ins/gimpressionist/size.c:168 +msgid "Selects a random size for each stroke" +msgstr "Her darbe için rasgele boyut seçer" + +#: ../plug-ins/gimpressionist/size.c:172 +msgid "Let the direction from the center determine the size of the stroke" +msgstr "Darbe boyutunun merkezden gelen yöne belirlenmesine izin ver" + +#: ../plug-ins/gimpressionist/size.c:184 +msgid "The hue of the region determines the size of the stroke" +msgstr "Alanın renk tonu darbenin boyutunu belirler" + +#: ../plug-ins/gimpressionist/size.c:188 +msgid "" +"The brush-size that matches the original image the closest is selected" +msgstr "Özgün resim ile eşleşen en yakın fırça boyutu seçildi" + +#: ../plug-ins/gimpressionist/size.c:197 +msgid "Manually specify the stroke size" +msgstr "Darbe boyutunu elle belirle" + +#: ../plug-ins/gimpressionist/size.c:208 +msgid "Opens up the Size Map Editor" +msgstr "Boyut Eşleme Düzenleyicisini açar" + +#: ../plug-ins/gimpressionist/sizemap.c:401 +msgid "Size Map Editor" +msgstr "Boyut Eşleme Düzenleyicisi" + +#: ../plug-ins/gimpressionist/sizemap.c:429 +msgid "Smvectors" +msgstr "Smvektörleri" + +#: ../plug-ins/gimpressionist/sizemap.c:439 +msgid "" +"The smvector-field. Left-click to move selected smvector, Right-click to " +"point it towards mouse, Middle-click to add a new smvector." +msgstr "" +"Smvektör alanı. smvektörü seçmek için ol tıklayın, fare istikametini " +"işaretlemek için sağ tıklayın, yeni bir smvektör oluşturmak için ortaya " +"tıklayın." + +#: ../plug-ins/gimpressionist/sizemap.c:481 +msgid "Select previous smvector" +msgstr "Önceki smvektörü seç" + +#: ../plug-ins/gimpressionist/sizemap.c:488 +msgid "Select next smvector" +msgstr "Sonraki smvektörü seç" + +#: ../plug-ins/gimpressionist/sizemap.c:495 +msgid "Add new smvector" +msgstr "Yeni smvektör ekle" + +#: ../plug-ins/gimpressionist/sizemap.c:502 +msgid "Delete selected smvector" +msgstr "Seçilen smvektörü sil" + +#: ../plug-ins/gimpressionist/sizemap.c:515 +msgid "Change the angle of the selected smvector" +msgstr "Seçilen smvektörün açısını değiştir" + +#: ../plug-ins/gimpressionist/sizemap.c:522 +msgid "S_trength:" +msgstr "Ke_skinlik" + +#: ../plug-ins/gimpressionist/sizemap.c:526 +msgid "Change the strength of the selected smvector" +msgstr "Seçilen smvektörün keskinliğini değiştir" + +#: ../plug-ins/gimpressionist/sizemap.c:533 +msgid "St_rength exp.:" +msgstr "Ke_skeinlik dışa aktarımı:" + +#: ../plug-ins/gimpressionist/sizemap.c:549 +msgid "" +"Voronoi-mode makes only the smvector closest to the given point have any " +"influence" +msgstr "" +"Voronoi-biçimi, verilen noktaya en yakın smvektöre herhangi bir etki yapar" + +#: ../plug-ins/gradient-flare/gradient-flare.c:552 +msgid "Addition" +msgstr "Ekleme" + +#: ../plug-ins/gradient-flare/gradient-flare.c:553 +msgid "Overlay" +msgstr "Üstekoyum" + +#: ../plug-ins/gradient-flare/gradient-flare.c:807 +msgid "Produce a lense flare effect using gradients" +msgstr "Artımlı geçiş kullanarak alev merceği etkisi üretir" + +#: ../plug-ins/gradient-flare/gradient-flare.c:812 +msgid "_Gradient Flare..." +msgstr "Alev A_rtımlı Geçişi..." + +#. +#. * Dialog Shell +#. +#: ../plug-ins/gradient-flare/gradient-flare.c:951 +#: ../plug-ins/gradient-flare/gradient-flare.c:2357 +msgid "Gradient Flare" +msgstr "Alev Artımlı Geçişi" + +#: ../plug-ins/gradient-flare/gradient-flare.c:1264 +#, c-format +msgid "Failed to open GFlare file '%s': %s" +msgstr "IşımaGeçişi dosyası '%s' açılamadı: %s" + +#: ../plug-ins/gradient-flare/gradient-flare.c:1272 +#, c-format +msgid "'%s' is not a valid GFlare file." +msgstr "'%s' geçerli bir IşımaGeçişi dosyası değil." + +#: ../plug-ins/gradient-flare/gradient-flare.c:1326 +#, c-format +msgid "invalid formatted GFlare file: %s\n" +msgstr "Geçersiz biçimli IşımaGeçişi dosyası: %s\n" + +#: ../plug-ins/gradient-flare/gradient-flare.c:1451 +#, c-format +msgid "" +"GFlare '%s' is not saved. If you add a new entry in '%s', like:\n" +"(gflare-path \"%s\")\n" +"and make a folder '%s', then you can save your own GFlares into that folder." +msgstr "" +"IşımaGeçişi '%s' kaydedilmedi. Eğer '%s' içerisine yeni bir girdi " +"ekleyecekseniz, örneğin:\n" +"(gflare-yolu \"%s\")\n" +"ve '%s' dizini oluşturacaksanız kendi IşımaGeçişlerinizi o dizine " +"kaydedebilirsiniz." + +#: ../plug-ins/gradient-flare/gradient-flare.c:1484 +#, c-format +msgid "Failed to write GFlare file '%s': %s" +msgstr "IşımaGeçişi dosyası '%s' yazılamadı: %s" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2414 +msgid "A_uto update preview" +msgstr "Önizlemeyi o_tomatik güncelleştir" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2465 +msgid "`Default' is created." +msgstr "`Varsayılan' yaratıldı." + +#: ../plug-ins/gradient-flare/gradient-flare.c:2466 +msgid "Default" +msgstr "Öntanımlı" + +#. +#. * Scales +#. +#. +#. * Scales +#. +#: ../plug-ins/gradient-flare/gradient-flare.c:2745 +#: ../plug-ins/gradient-flare/gradient-flare.c:3582 +#: ../plug-ins/gradient-flare/gradient-flare.c:3687 +#: ../plug-ins/gradient-flare/gradient-flare.c:3824 +msgid "Parameters" +msgstr "Parametreler" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2771 +msgid "Ro_tation:" +msgstr "Dö_ndürme:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2783 +msgid "_Hue rotation:" +msgstr "_Renk tonu dönüşü:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2795 +msgid "Vector _angle:" +msgstr "Vektör _açısı:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2807 +msgid "Vector _length:" +msgstr "Vektör _uzunluğu:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2828 +msgid "A_daptive supersampling" +msgstr "U_yarlamalı Üstün Örnekleme" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2847 +msgid "_Max depth:" +msgstr "A_zami derinlik:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2857 +msgid "_Threshold" +msgstr "_Eşik" + +#: ../plug-ins/gradient-flare/gradient-flare.c:2995 +msgid "S_elector" +msgstr "S_eçici" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3059 +msgid "New Gradient Flare" +msgstr "Yeni Artımlı Işıma Geçişi" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3062 +msgid "Enter a name for the new GFlare" +msgstr "Yeni IşımaGeçişi için isim girin" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3082 +#, c-format +msgid "The name '%s' is used already!" +msgstr "'%s' adı zaten kullanımda!" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3138 +msgid "Copy Gradient Flare" +msgstr "Artımlı Işıma Geçişini Kopyala" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3141 +msgid "Enter a name for the copied GFlare" +msgstr "Kopyalanan IşımaGeçişi için isim girin" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3163 +#, c-format +msgid "The name `%s' is used already!" +msgstr "`%s' adı zaten kullanımda!" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3194 +msgid "Cannot delete!! There must be at least one GFlare." +msgstr "Silinemiyor! En az bir IşımaGeçişi olmalı." + +#: ../plug-ins/gradient-flare/gradient-flare.c:3204 +msgid "Delete Gradient Flare" +msgstr "Artımlı Işıma Geçişini Sil" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3276 +#, c-format +msgid "not found %s in gflares_list" +msgstr "%s ışımageçişi_listesinde bulunamadı" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3317 +msgid "Gradient Flare Editor" +msgstr "Artımlı Işıma Geçişi Düzenleyicisi" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3321 +msgid "Rescan Gradients" +msgstr "Artımlı Geçişleri Yeniden Tara" + +#. Glow +#: ../plug-ins/gradient-flare/gradient-flare.c:3446 +msgid "Glow Paint Options" +msgstr "Parıltı Boyama Seçenekleri" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3457 +#: ../plug-ins/gradient-flare/gradient-flare.c:3485 +#: ../plug-ins/gradient-flare/gradient-flare.c:3513 +msgid "Opacity:" +msgstr "Opaklık:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3470 +#: ../plug-ins/gradient-flare/gradient-flare.c:3498 +#: ../plug-ins/gradient-flare/gradient-flare.c:3526 +msgid "Paint mode:" +msgstr "Boyama kipi:" + +#. Rays +#: ../plug-ins/gradient-flare/gradient-flare.c:3474 +msgid "Rays Paint Options" +msgstr "Işınların Boyama Seçenekleri" + +#. Rays +#: ../plug-ins/gradient-flare/gradient-flare.c:3502 +msgid "Second Flares Paint Options" +msgstr "İkinci Işıma Boyaması Seçenekleri" + +#. +#. * Gradient Menus +#. +#: ../plug-ins/gradient-flare/gradient-flare.c:3555 +#: ../plug-ins/gradient-flare/gradient-flare.c:3658 +#: ../plug-ins/gradient-flare/gradient-flare.c:3797 +msgid "Gradients" +msgstr "Renk Geçişleri" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3566 +#: ../plug-ins/gradient-flare/gradient-flare.c:3671 +#: ../plug-ins/gradient-flare/gradient-flare.c:3808 +msgid "Radial gradient:" +msgstr "Işınsal renk geçişi:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3570 +#: ../plug-ins/gradient-flare/gradient-flare.c:3675 +msgid "Angular gradient:" +msgstr "Açısal artımlı geçişi:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3574 +#: ../plug-ins/gradient-flare/gradient-flare.c:3679 +msgid "Angular size gradient:" +msgstr "Artımlı geçişin açısal boyutu:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3594 +#: ../plug-ins/gradient-flare/gradient-flare.c:3699 +#: ../plug-ins/gradient-flare/gradient-flare.c:3836 +msgid "Size (%):" +msgstr "Boyut (%):" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3606 +#: ../plug-ins/gradient-flare/gradient-flare.c:3711 +#: ../plug-ins/gradient-flare/gradient-flare.c:3848 +msgid "Rotation:" +msgstr "Döndürme:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3618 +#: ../plug-ins/gradient-flare/gradient-flare.c:3724 +#: ../plug-ins/gradient-flare/gradient-flare.c:3861 +msgid "Hue rotation:" +msgstr "Renk tonu dönüşü:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3632 +msgid "G_low" +msgstr "Pa_rıltı" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3736 +msgid "# of Spikes:" +msgstr "# Çivi:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3748 +msgid "Spike thickness:" +msgstr "Çivi kalınlığı:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3762 +msgid "_Rays" +msgstr "I_şınlar" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3812 +msgid "Size factor gradient:" +msgstr "Artımlı geçiş değişkeni boyutu:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3816 +msgid "Probability gradient:" +msgstr "Artımlı geçiş olasılığı:" + +#. +#. * Shape Radio Button Frame +#. +#: ../plug-ins/gradient-flare/gradient-flare.c:3878 +msgid "Shape of Second Flares" +msgstr "İkinci Işıma Şekli" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3886 +#: ../plug-ins/imagemap/imap_menu.c:222 +msgid "Circle" +msgstr "Daire" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3903 +#: ../plug-ins/imagemap/imap_menu.c:224 +msgid "Polygon" +msgstr "Çok kenarlı" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3936 +msgid "Random seed:" +msgstr "Rasgele besleme:" + +#: ../plug-ins/gradient-flare/gradient-flare.c:3950 +msgid "_Second Flares" +msgstr "İ_kinci Işımalar" + +#: ../plug-ins/help-browser/dialog.c:186 +#: ../plug-ins/help-browser/dialog.c:1121 +msgid "GIMP Help Browser" +msgstr "GIMP Yardım Gezgini" + +#: ../plug-ins/help-browser/dialog.c:564 +msgid "Go back one page" +msgstr "Bir sayfa geri git" + +#: ../plug-ins/help-browser/dialog.c:569 +msgid "Go forward one page" +msgstr "Bir sayfa ileri git" + +#: ../plug-ins/help-browser/dialog.c:574 +msgid "_Reload" +msgstr "_Yeniden Yükle" + +#: ../plug-ins/help-browser/dialog.c:574 +msgid "Reload current page" +msgstr "Şimdiki sayfayı yeniden yükle" + +#: ../plug-ins/help-browser/dialog.c:579 +msgid "_Stop" +msgstr "_Dur" + +#: ../plug-ins/help-browser/dialog.c:579 +msgid "Stop loading this page" +msgstr "Sayfanın yüklenmesini durdur" + +#: ../plug-ins/help-browser/dialog.c:584 +msgid "Go to the index page" +msgstr "İndeks sayfasına git" + +#: ../plug-ins/help-browser/dialog.c:589 +msgid "C_opy location" +msgstr "Yeri k_opyala" + +#: ../plug-ins/help-browser/dialog.c:590 +msgid "Copy the location of this page to the clipboard" +msgstr "Bu sayfanın yerini panoya kopyala" + +#: ../plug-ins/help-browser/dialog.c:610 +msgid "Find text in current page" +msgstr "Şimdiki sayfada metni bul" + +#: ../plug-ins/help-browser/dialog.c:615 +msgid "Find _Again" +msgstr "Y_eniden Bul" + +#: ../plug-ins/help-browser/dialog.c:634 +msgid "S_how Index" +msgstr "İndeksi _Göster" + +#: ../plug-ins/help-browser/dialog.c:635 +msgid "Toggle the visibility of the sidebar" +msgstr "Kenar çubuğu görünürlüğünü değiştir" + +#: ../plug-ins/help-browser/dialog.c:656 +msgid "Visit the GIMP documentation website" +msgstr "GIMP belgeleme sitesine git" + +#: ../plug-ins/help-browser/dialog.c:1162 +msgid "Find:" +msgstr "Bul:" + +#: ../plug-ins/help-browser/dialog.c:1179 +msgctxt "search" +msgid "_Previous" +msgstr "_Önceki" + +#: ../plug-ins/help-browser/dialog.c:1191 +msgctxt "search" +msgid "_Next" +msgstr "_Sonraki" + +#: ../plug-ins/help/gimphelpdomain.c:181 +#, c-format +msgid "The help pages for '%s' are not available." +msgstr "'%s' için yardım sayfalarına şu an bakılamıyor." + +#: ../plug-ins/help/gimphelpdomain.c:187 +msgid "The GIMP user manual is not available." +msgstr "GIMP kullanıcı rehberine şu an bakılamıyor." + +#: ../plug-ins/help/gimphelpdomain.c:188 +msgid "" +"Please make sure gimp-help-en is installed, or the appropriate gimp-help " +"package for your language." +msgstr "" +"Lütfen gimp-help-en ya da diliniz için uygun gimp-help paketi kurulu " +"olduğundan emin olun." + +#: ../plug-ins/help/gimphelpdomain.c:197 +msgid "Perhaps you are missing GIO backends and need to install GVFS?" +msgstr "GIO arkauçları eksik olabilir ve GVFS yüklemeniz gerekebilir?" + +#: ../plug-ins/help/gimphelpdomain.c:216 +#, c-format +msgid "Help ID '%s' unknown" +msgstr "'%s' yardım kimliği bilinmiyor" + +#: ../plug-ins/help/gimphelplocale.c:209 +#, c-format +msgid "Loading index from '%s'" +msgstr "İçerik '%s' üzerinden yükleniyor" + +#: ../plug-ins/help/gimphelplocale.c:267 +#, c-format +msgid "" +"Parse error in '%s':\n" +"%s" +msgstr "" +"'%s' içinde ayrıştırma hatası:\n" +"%s" + +#: ../plug-ins/ifs-compose/ifs-compose.c:334 +msgid "Create an Iterated Function System (IFS) fractal" +msgstr "Ötelenmiş İşlev Sistemi (IFS) kesiri oluştur" + +#: ../plug-ins/ifs-compose/ifs-compose.c:346 +msgid "_IFS Fractal..." +msgstr "_IFS Kesiri..." + +#. X +#: ../plug-ins/ifs-compose/ifs-compose.c:526 +#: ../plug-ins/lighting/lighting-ui.c:527 +#: ../plug-ins/map-object/map-object-ui.c:675 +#: ../plug-ins/map-object/map-object-ui.c:729 +#: ../plug-ins/map-object/map-object-ui.c:997 +#: ../plug-ins/map-object/map-object-ui.c:1046 +msgid "X:" +msgstr "X:" + +#. Y +#: ../plug-ins/ifs-compose/ifs-compose.c:540 +#: ../plug-ins/lighting/lighting-ui.c:541 +#: ../plug-ins/map-object/map-object-ui.c:689 +#: ../plug-ins/map-object/map-object-ui.c:742 +#: ../plug-ins/map-object/map-object-ui.c:1010 +#: ../plug-ins/map-object/map-object-ui.c:1057 +#: ../plug-ins/map-object/map-object-ui.c:1155 +msgid "Y:" +msgstr "Y:" + +#. Asym +#: ../plug-ins/ifs-compose/ifs-compose.c:582 +msgid "Asymmetry:" +msgstr "Asimetri:" + +#. Shear +#: ../plug-ins/ifs-compose/ifs-compose.c:596 +msgid "Shear:" +msgstr "Kesme:" + +#. Simple color control section +#: ../plug-ins/ifs-compose/ifs-compose.c:641 +msgid "Simple" +msgstr "Basit" + +#: ../plug-ins/ifs-compose/ifs-compose.c:650 +msgid "IFS Fractal: Target" +msgstr "IFS Kesiri: Hedef" + +#: ../plug-ins/ifs-compose/ifs-compose.c:656 +msgid "Scale hue by:" +msgstr "Renk tonunu şuna göre ölçekle:" + +#: ../plug-ins/ifs-compose/ifs-compose.c:671 +msgid "Scale value by:" +msgstr "Değeri şuna göre ayarla:" + +#. Full color control section +#: ../plug-ins/ifs-compose/ifs-compose.c:688 +msgid "Full" +msgstr "Tam" + +#: ../plug-ins/ifs-compose/ifs-compose.c:696 +msgid "IFS Fractal: Red" +msgstr "IFS Kesiri: Kırmızı" + +#: ../plug-ins/ifs-compose/ifs-compose.c:704 +msgid "IFS Fractal: Green" +msgstr "IFS Kesiri: Yeşil" + +#: ../plug-ins/ifs-compose/ifs-compose.c:712 +msgid "IFS Fractal: Blue" +msgstr "IFS Kesiri: Mavi" + +#: ../plug-ins/ifs-compose/ifs-compose.c:720 +msgid "IFS Fractal: Black" +msgstr "IFS Kesiri: Siyah" + +#: ../plug-ins/ifs-compose/ifs-compose.c:770 +msgid "IFS Fractal" +msgstr "IFS Kesiri" + +#: ../plug-ins/ifs-compose/ifs-compose.c:868 +msgid "Spatial Transformation" +msgstr "Uzaysal Dönüşüm" + +#: ../plug-ins/ifs-compose/ifs-compose.c:874 +msgid "Color Transformation" +msgstr "Renk Dönüşümü" + +#: ../plug-ins/ifs-compose/ifs-compose.c:884 +msgid "Relative probability:" +msgstr "Nispi olasılık:" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1059 +#: ../plug-ins/imagemap/imap_menu.c:163 +msgid "Select _All" +msgstr "Hepsini _Seç" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1063 +msgid "Re_center" +msgstr "Yeniden_ortala" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1063 +msgid "Recompute Center" +msgstr "Merkezi yeniden hesapla" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1067 +msgid "Render Options" +msgstr "Tarama Seçenekleri" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1073 +#: ../plug-ins/imagemap/imap_cmd_move.c:86 +#: ../plug-ins/imagemap/imap_cmd_object_move.c:57 +msgid "Move" +msgstr "Taşı" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1076 +msgid "Rotate" +msgstr "Döndür" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1076 +msgid "Rotate / Scale" +msgstr "Döndür / Ölçekle" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1079 +msgid "Stretch" +msgstr "Germe" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1177 +msgid "IFS Fractal Render Options" +msgstr "IFS Kesirli Tarama Seçenekleri" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1199 +msgid "Max. memory:" +msgstr "Azami hafıza:" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1226 +msgid "Subdivide:" +msgstr "Tekrar Bölme:" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1239 +msgid "Spot radius:" +msgstr "Nokta yarıçapı:" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1304 +#, c-format +msgid "Rendering IFS (%d/%d)" +msgstr "IFS taranıyor (%d/%d)" + +#: ../plug-ins/ifs-compose/ifs-compose.c:1470 +#, c-format +msgid "Transformation %s" +msgstr "Dönüştürme %s" + +#: ../plug-ins/ifs-compose/ifs-compose.c:2379 +msgid "Save failed" +msgstr "Kaydetme işlemi başarısız" + +#: ../plug-ins/ifs-compose/ifs-compose.c:2460 +#: ../plug-ins/ifs-compose/ifs-compose.c:2473 +msgid "Open failed" +msgstr "Açma işlemi başarısız" + +#: ../plug-ins/ifs-compose/ifs-compose.c:2468 +#, c-format +msgid "File '%s' doesn't seem to be an IFS Fractal file." +msgstr "'%s' dosyası bir IFS Kesir dosyası gibi görünmüyor." + +#: ../plug-ins/ifs-compose/ifs-compose.c:2508 +msgid "Save as IFS Fractal file" +msgstr "IFS Kesir dosyası olarak kaydet" + +#: ../plug-ins/ifs-compose/ifs-compose.c:2545 +msgid "Open IFS Fractal file" +msgstr "IFS Kesir dosyasını aç" + +#: ../plug-ins/imagemap/imap_about.c:43 +msgid "Image Map Plug-In" +msgstr "Resim Eşleme Eklentisi" + +#: ../plug-ins/imagemap/imap_about.c:47 +msgid "Copyright © 1999-2005 by Maurits Rijk" +msgstr "Telif Hakkı © 1999-2005 Maurits Rijk" + +#: ../plug-ins/imagemap/imap_about.c:49 +msgid "Released under the GNU General Public License" +msgstr "GNU Genel Kamu Lisansı ile yayımlanmıştır" + +#: ../plug-ins/imagemap/imap_circle.c:64 +msgid "C_ircle" +msgstr "D_aire" + +#: ../plug-ins/imagemap/imap_circle.c:264 +msgid "Center _x:" +msgstr "Merkez _x:" + +#: ../plug-ins/imagemap/imap_circle.c:269 +#: ../plug-ins/imagemap/imap_circle.c:276 +#: ../plug-ins/imagemap/imap_circle.c:282 ../plug-ins/imagemap/imap_grid.c:250 +#: ../plug-ins/imagemap/imap_grid.c:256 +#: ../plug-ins/imagemap/imap_polygon.c:505 +#: ../plug-ins/imagemap/imap_polygon.c:513 +#: ../plug-ins/imagemap/imap_rectangle.c:394 +#: ../plug-ins/imagemap/imap_rectangle.c:401 +#: ../plug-ins/imagemap/imap_rectangle.c:408 +#: ../plug-ins/imagemap/imap_rectangle.c:415 +msgid "pixels" +msgstr "piksel" + +#: ../plug-ins/imagemap/imap_circle.c:271 +msgid "Center _y:" +msgstr "Merkez _y:" + +#: ../plug-ins/imagemap/imap_cmd_clear.c:51 +msgid "Clear" +msgstr "Temizle" + +#: ../plug-ins/imagemap/imap_cmd_create.c:58 +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:151 +msgid "Create" +msgstr "Oluştur" + +#: ../plug-ins/imagemap/imap_cmd_cut.c:55 +#: ../plug-ins/imagemap/imap_cmd_cut_object.c:51 +#: ../plug-ins/imagemap/imap_menu.c:159 +msgid "Cut" +msgstr "Kes" + +#: ../plug-ins/imagemap/imap_cmd_delete.c:57 +#: ../plug-ins/imagemap/imap_menu.c:162 +msgid "Delete" +msgstr "Sil" + +#: ../plug-ins/imagemap/imap_cmd_delete_point.c:61 +#: ../plug-ins/imagemap/imap_menu.c:179 +msgid "Delete Point" +msgstr "Nokta sil" + +#: ../plug-ins/imagemap/imap_cmd_edit_object.c:54 +msgid "Edit Object" +msgstr "Nesneyi Düzenle" + +#. Create the areas +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:117 +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:147 +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:251 +msgid "Use Gimp Guides" +msgstr "Gimp Kılavuzlarını Kullan" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:160 +msgid "Al_ternate" +msgstr "Al_ternatif" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:165 +msgid "A_ll" +msgstr "T_ümü" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:169 +msgid "Add Additional Guides" +msgstr "Ek Klavuzlar Ekle" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:177 +msgid "L_eft border" +msgstr "S_ol sınır" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:181 +msgid "_Right border" +msgstr "S_ağ sınır" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:185 +msgid "_Upper border" +msgstr "_Üst sınır" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:189 +msgid "Lo_wer border" +msgstr "_Alt sınır" + +#: ../plug-ins/imagemap/imap_cmd_gimp_guides.c:197 +msgid "_Base URL:" +msgstr "_Ana Adres:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:74 +#: ../plug-ins/imagemap/imap_cmd_guides.c:140 +msgid "Create Guides" +msgstr "Kılavuz Oluştur" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:113 +#, c-format +msgid "Resulting Guide Bounds: %d,%d to %d,%d (%d areas)" +msgstr "Neticelendirme Klavuzu Sınırlamaları: %d,%d to %d,%d (%d alan)" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:144 +msgid "" +"Guides are pre-defined rectangles covering the image. You define them by " +"their width, height, and spacing from each other. This allows you to rapidly " +"create the most common image map type - image collection of \"thumbnails\", " +"suitable for navigation bars." +msgstr "" +"Rehberler resmi kaplayan ön tanımlı dikdörtgenlerdir. Onları genişliğine, " +"yüksekliğine ve birbirileri arasındaki mesafeye göre tanımlayabilirsiniz. Bu " +"sizin hızla en yakın resim eşleme biçimini, \"önizlemelerin\" resim " +"derlemesini oluşturmanıza olanak tanır, gezinti çubukları için uygundur." + +#: ../plug-ins/imagemap/imap_cmd_guides.c:170 +msgid "_Left start at:" +msgstr "_Sol başlangıç:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:180 +msgid "_Top start at:" +msgstr "_Üst başlangıç:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:185 +msgid "_Horz. spacing:" +msgstr "_Yatay aralık:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:191 +msgid "_No. across:" +msgstr "_Geçiş sayısı:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:197 +msgid "_Vert. spacing:" +msgstr "_Dikey aralık:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:203 +msgid "No. _down:" +msgstr "Düşey sayısı:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:212 +msgid "Base _URL:" +msgstr "Ana A_dres:" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:237 +msgid "Resulting Guide Bounds: 0,0 to 0,0 (0 areas)" +msgstr "Neticelendirme Klavuzu Sınırlamaları: 0,0 to 0,0 (0 alan)" + +#: ../plug-ins/imagemap/imap_cmd_guides.c:272 +msgid "Guides" +msgstr "Kılavuzlar" + +#: ../plug-ins/imagemap/imap_cmd_insert_point.c:62 +#: ../plug-ins/imagemap/imap_menu.c:178 +msgid "Insert Point" +msgstr "Nokta Ekle" + +#: ../plug-ins/imagemap/imap_cmd_move_down.c:53 +#: ../plug-ins/imagemap/imap_cmd_object_down.c:55 +#: ../plug-ins/imagemap/imap_menu.c:176 +msgid "Move Down" +msgstr "Aşağı Taşı" + +#: ../plug-ins/imagemap/imap_cmd_move_sash.c:68 +msgid "Move Sash" +msgstr "Kuşağı Taşı" + +#: ../plug-ins/imagemap/imap_cmd_move_selected.c:56 +msgid "Move Selected Objects" +msgstr "Seçilen NEsneyi Taşı" + +#: ../plug-ins/imagemap/imap_cmd_move_to_front.c:51 +msgid "Move To Front" +msgstr "Öne Taşı" + +#: ../plug-ins/imagemap/imap_cmd_move_up.c:53 +#: ../plug-ins/imagemap/imap_cmd_object_up.c:55 +#: ../plug-ins/imagemap/imap_menu.c:175 +msgid "Move Up" +msgstr "Yukarı Taşı" + +#: ../plug-ins/imagemap/imap_cmd_paste.c:51 +#: ../plug-ins/imagemap/imap_menu.c:161 +msgid "Paste" +msgstr "Yapıştır" + +#: ../plug-ins/imagemap/imap_cmd_select.c:53 +msgid "Select" +msgstr "Seç" + +#: ../plug-ins/imagemap/imap_cmd_select_next.c:51 +msgid "Select Next" +msgstr "Sonrakini Seç" + +#: ../plug-ins/imagemap/imap_cmd_select_prev.c:51 +msgid "Select Previous" +msgstr "Öncekini Seç" + +#: ../plug-ins/imagemap/imap_cmd_select_region.c:64 +msgid "Select Region" +msgstr "Bölge Seç" + +#: ../plug-ins/imagemap/imap_cmd_send_to_back.c:51 +msgid "Send To Back" +msgstr "Geri Gönder" + +#: ../plug-ins/imagemap/imap_cmd_unselect.c:53 +msgid "Unselect" +msgstr "Seçme" + +#: ../plug-ins/imagemap/imap_cmd_unselect_all.c:56 +msgid "Unselect All" +msgstr "Seçimi Temizle" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:196 +msgid "Link Type" +msgstr "Bağlantı Türü" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:205 +msgid "_Web Site" +msgstr "_Ağ Sayfası" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:211 +msgid "_Ftp Site" +msgstr "_Ftp Sitesi" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:217 +msgid "_Gopher" +msgstr "_Gopher" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:223 +msgid "Ot_her" +msgstr "D_iğer" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:229 +msgid "F_ile" +msgstr "_Dosya" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:235 +msgid "WAI_S" +msgstr "WAI_S" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:241 +msgid "Tel_net" +msgstr "Tel_net" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:247 +msgid "e-_mail" +msgstr "e-_posta" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:253 +msgid "_URL to activate when this area is clicked: (required)" +msgstr "Bu alana tıklandığında aktifleştirilecek _URL: (gerekli)" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:255 +msgid "Select HTML file" +msgstr "HTML dosyası seç" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:264 +msgid "Relati_ve link" +msgstr "Nis_pi bağlantı" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:270 +msgid "_Target frame name/ID: (optional - used for FRAMES only)" +msgstr "" +"_Hedef çerçeve adı/ID: (isteğe bağlı - sadece ÇERÇEVELER için kullanılır)" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:273 +msgid "ALT te_xt: (optional)" +msgstr "ALT me_tin: (isteğe bağlı)" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:276 +msgid "_Link" +msgstr "_Bağlantı" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:310 +msgid "Dimensions" +msgstr "Boyutlar" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:314 +msgid "Pre_view" +msgstr "Ön_izleme" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:352 +msgid "_JavaScript" +msgstr "_JavaScript" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:451 +msgid "Area Settings" +msgstr "Alan Ayarları" + +#: ../plug-ins/imagemap/imap_edit_area_info.c:493 +#, c-format +msgid "Area #%d Settings" +msgstr "Alan #%d Ayarları" + +#: ../plug-ins/imagemap/imap_file.c:48 ../plug-ins/imagemap/imap_menu.c:71 +msgid "Error opening file" +msgstr "Dosya açarken hata" + +#: ../plug-ins/imagemap/imap_file.c:68 +msgid "Load Image Map" +msgstr "Görüntü Eşlemini Yükle" + +#: ../plug-ins/imagemap/imap_file.c:123 +msgid "Save Image Map" +msgstr "Görüntü Eşlemini Kaydet" + +#: ../plug-ins/imagemap/imap_grid.c:197 +msgid "Grid Settings" +msgstr "Izgara Ayarları" + +#: ../plug-ins/imagemap/imap_grid.c:201 +msgid "_Snap-to grid enabled" +msgstr "Izgaraya hi_zalama etkinleştirildi" + +#: ../plug-ins/imagemap/imap_grid.c:207 +msgid "Grid Visibility and Type" +msgstr "Izgara Görünürlüğü ve Biçimi" + +#: ../plug-ins/imagemap/imap_grid.c:214 +msgid "_Hidden" +msgstr "_Gizli" + +#: ../plug-ins/imagemap/imap_grid.c:222 +msgid "_Lines" +msgstr "_Satırlar" + +#: ../plug-ins/imagemap/imap_grid.c:231 +msgid "C_rosses" +msgstr "Çap_razlar" + +#: ../plug-ins/imagemap/imap_grid.c:239 +msgid "Grid Granularity" +msgstr "Izgara ortalama öğe boyu" + +#: ../plug-ins/imagemap/imap_grid.c:246 +msgid "_Width" +msgstr "_Genişlik" + +#: ../plug-ins/imagemap/imap_grid.c:252 +msgid "_Height" +msgstr "_Yükseklik" + +#: ../plug-ins/imagemap/imap_grid.c:266 +msgid "Grid Offset" +msgstr "Izgara Konumu" + +#: ../plug-ins/imagemap/imap_grid.c:273 +msgid "pixels from l_eft" +msgstr "so_ldan benekler" + +#: ../plug-ins/imagemap/imap_grid.c:278 +msgid "pixels from _top" +msgstr "üs_tten benekler" + +#: ../plug-ins/imagemap/imap_grid.c:289 +msgid "_Preview" +msgstr "Ö_nizleme" + +#: ../plug-ins/imagemap/imap_main.c:122 +msgid "Create a clickable imagemap" +msgstr "Tıklanabilir resim eşlemi oluştur" + +#: ../plug-ins/imagemap/imap_main.c:127 +msgid "_Image Map..." +msgstr "_Görüntü Eşlemi..." + +#: ../plug-ins/imagemap/imap_main.c:517 +#: ../plug-ins/imagemap/imap_settings.c:171 +msgid "" +msgstr "" + +#: ../plug-ins/imagemap/imap_main.c:660 +msgid "Some data has been changed!" +msgstr "Bazı veriler değişti!" + +#: ../plug-ins/imagemap/imap_main.c:663 +msgid "Do you really want to discard your changes?" +msgstr "Yaptığınız değişikliklerden vazgeçmek istiyor musunuz?" + +#: ../plug-ins/imagemap/imap_main.c:873 +#, c-format +msgid "File \"%s\" saved." +msgstr "\"%s\" dosyası kaydedildi." + +#: ../plug-ins/imagemap/imap_main.c:877 +msgid "Couldn't save file:" +msgstr "Kaydedilemedi:" + +#: ../plug-ins/imagemap/imap_main.c:890 +msgid "Image size has changed." +msgstr "Şeklin boyutu değiştirildi." + +#: ../plug-ins/imagemap/imap_main.c:891 +msgid "Resize area's?" +msgstr "Alan yeniden boyutlandırılsın mı?" + +#: ../plug-ins/imagemap/imap_main.c:925 +msgid "Couldn't read file:" +msgstr "Dosya okunamadı:" + +#: ../plug-ins/imagemap/imap_main.c:972 +#, c-format +msgid "URL: %s" +msgstr "Adres: %s" + +#: ../plug-ins/imagemap/imap_menu.c:110 +#, c-format +msgid "_Undo %s" +msgstr "_Geri al %s" + +#: ../plug-ins/imagemap/imap_menu.c:123 +#, c-format +msgid "_Redo %s" +msgstr "_Yinele %s" + +#: ../plug-ins/imagemap/imap_menu.c:146 +msgid "_File" +msgstr "_Dosya" + +#: ../plug-ins/imagemap/imap_menu.c:147 +msgid "_Open..." +msgstr "_Aç..." + +#: ../plug-ins/imagemap/imap_menu.c:147 +msgid "Open" +msgstr "Aç" + +#: ../plug-ins/imagemap/imap_menu.c:149 +msgid "_Save..." +msgstr "_Kaydet..." + +#: ../plug-ins/imagemap/imap_menu.c:149 +msgid "Save" +msgstr "Kaydet" + +#: ../plug-ins/imagemap/imap_menu.c:151 +msgid "Save _As..." +msgstr "_Farklı Kaydet..." + +#: ../plug-ins/imagemap/imap_menu.c:156 +msgid "_Edit" +msgstr "_Düzenle" + +#: ../plug-ins/imagemap/imap_menu.c:157 +msgid "Undo" +msgstr "Geri al" + +#: ../plug-ins/imagemap/imap_menu.c:158 +msgid "Redo" +msgstr "İleri al" + +#: ../plug-ins/imagemap/imap_menu.c:164 +msgid "D_eselect All" +msgstr "Tüm Seçimi _Kaldır" + +#: ../plug-ins/imagemap/imap_menu.c:166 +msgid "Edit Area _Info..." +msgstr "Alan _Bilgisini Düzenle..." + +#: ../plug-ins/imagemap/imap_menu.c:167 +msgid "Edit selected area info" +msgstr "Seçilmiş alan bilgisini düzenle" + +#: ../plug-ins/imagemap/imap_menu.c:168 +msgid "Preferences" +msgstr "Tercihler" + +#: ../plug-ins/imagemap/imap_menu.c:170 +msgid "Move to Front" +msgstr "Öne al" + +#: ../plug-ins/imagemap/imap_menu.c:172 +msgid "Send to Back" +msgstr "Arkaya Gönder" + +#: ../plug-ins/imagemap/imap_menu.c:174 +msgid "Delete Area" +msgstr "Alanı sil" + +#: ../plug-ins/imagemap/imap_menu.c:181 +msgid "_View" +msgstr "_Görünüm" + +#: ../plug-ins/imagemap/imap_menu.c:182 +msgid "Source..." +msgstr "Kaynak..." + +#: ../plug-ins/imagemap/imap_menu.c:183 +msgid "Zoom in" +msgstr "Yakınlaş" + +#: ../plug-ins/imagemap/imap_menu.c:184 +msgid "Zoom out" +msgstr "Uzaklaş" + +#: ../plug-ins/imagemap/imap_menu.c:185 +msgid "_Zoom To" +msgstr "_Yaklaş" + +#: ../plug-ins/imagemap/imap_menu.c:187 +msgid "_Mapping" +msgstr "_Eşleme" + +#: ../plug-ins/imagemap/imap_menu.c:188 +msgid "Edit Map Info..." +msgstr "Eşlem Bilgisini Düzenle..." + +#: ../plug-ins/imagemap/imap_menu.c:189 +msgid "Edit Map Info" +msgstr "Eşlem Bilgisini Düzenle" + +#: ../plug-ins/imagemap/imap_menu.c:191 +msgid "_Tools" +msgstr "_Araçlar" + +#: ../plug-ins/imagemap/imap_menu.c:192 +msgid "Grid Settings..." +msgstr "Izgara Ayarları..." + +#: ../plug-ins/imagemap/imap_menu.c:194 +msgid "Use GIMP Guides..." +msgstr "GIMP kılavuzunu kullan" + +#: ../plug-ins/imagemap/imap_menu.c:196 +msgid "Create Guides..." +msgstr "Kılavuz oluştur" + +#: ../plug-ins/imagemap/imap_menu.c:199 +msgid "_Help" +msgstr "_Yardım" + +#: ../plug-ins/imagemap/imap_menu.c:200 +msgid "_Contents" +msgstr "_İçindekiler" + +#: ../plug-ins/imagemap/imap_menu.c:203 +msgid "_Zoom" +msgstr "_Yakınlaştır" + +#: ../plug-ins/imagemap/imap_menu.c:208 +msgid "Area List" +msgstr "Alan Listesi" + +#: ../plug-ins/imagemap/imap_menu.c:218 +msgid "Arrow" +msgstr "Ok" + +#: ../plug-ins/imagemap/imap_menu.c:219 +msgid "Select existing area" +msgstr "Mevcut alanı seç" + +#: ../plug-ins/imagemap/imap_menu.c:221 +msgid "Define Rectangle area" +msgstr "Dikdörtgen alanı tanımla" + +#: ../plug-ins/imagemap/imap_menu.c:223 +msgid "Define Circle/Oval area" +msgstr "Daire/oval alanı tanımla" + +#: ../plug-ins/imagemap/imap_menu.c:225 +msgid "Define Polygon area" +msgstr "Çokgen alanı tanımla" + +#: ../plug-ins/imagemap/imap_polygon.c:72 +msgid "_Polygon" +msgstr "_Çokgen" + +#: ../plug-ins/imagemap/imap_polygon.c:474 +msgid "x (pixels)" +msgstr "x (benek)" + +#: ../plug-ins/imagemap/imap_polygon.c:483 +msgid "y (pixels)" +msgstr "y (benek)" + +#: ../plug-ins/imagemap/imap_polygon.c:521 +msgid "_Insert" +msgstr "_Ekle" + +#: ../plug-ins/imagemap/imap_polygon.c:527 +msgid "A_ppend" +msgstr "So_na ekle" + +#: ../plug-ins/imagemap/imap_polygon.c:533 +msgid "_Remove" +msgstr "_Kaldır" + +#: ../plug-ins/imagemap/imap_preferences.c:236 +msgid "Couldn't save resource file:" +msgstr "Kaynak dosya kaydedilemez:" + +#: ../plug-ins/imagemap/imap_preferences.c:350 +msgid "General" +msgstr "Genel" + +#: ../plug-ins/imagemap/imap_preferences.c:354 +msgid "Default Map Type" +msgstr "Varsayılan Eşlem Türü" + +#: ../plug-ins/imagemap/imap_preferences.c:373 +msgid "_Prompt for area info" +msgstr "_Alan bilgisi için bilgi istemi" + +#: ../plug-ins/imagemap/imap_preferences.c:375 +msgid "_Require default URL" +msgstr "Öntanımlı URL gerekli" + +#: ../plug-ins/imagemap/imap_preferences.c:377 +msgid "Show area _handles" +msgstr "Alan _işleçlerini göster" + +#: ../plug-ins/imagemap/imap_preferences.c:379 +msgid "_Keep NCSA circles true" +msgstr "NCSA çemberlerini tam olarak _sakla" + +#: ../plug-ins/imagemap/imap_preferences.c:381 +msgid "Show area URL _tip" +msgstr "URL ö_nerisi alanını göster" + +#: ../plug-ins/imagemap/imap_preferences.c:384 +msgid "_Use double-sized grab handles" +msgstr "İki katı boyutlu tutacakları _kullan" + +#: ../plug-ins/imagemap/imap_preferences.c:391 +msgid "Menu" +msgstr "Menü" + +#: ../plug-ins/imagemap/imap_preferences.c:395 +msgid "Number of _undo levels (1 - 99):" +msgstr "Seviyeleri _geri alma sayısı (1-99)" + +#: ../plug-ins/imagemap/imap_preferences.c:400 +msgid "Number of M_RU entries (1 - 16):" +msgstr "M_RU girişleri sayısı (1 - 16):" + +#: ../plug-ins/imagemap/imap_preferences.c:409 +msgid "Select Color" +msgstr "Renk Seç" + +#: ../plug-ins/imagemap/imap_preferences.c:424 +msgid "Normal:" +msgstr "Normal:" + +#: ../plug-ins/imagemap/imap_preferences.c:428 +msgid "Selected:" +msgstr "Seçili:" + +#: ../plug-ins/imagemap/imap_preferences.c:437 +msgid "Co_ntiguous Region" +msgstr "Bi_tişik Bölge" + +#: ../plug-ins/imagemap/imap_preferences.c:443 +msgid "_Automatically convert" +msgstr "_Otomatik dönüştür" + +#: ../plug-ins/imagemap/imap_preferences.c:454 +msgid "General Preferences" +msgstr "Genel Yeğlenenler" + +#: ../plug-ins/imagemap/imap_rectangle.c:69 +msgid "_Rectangle" +msgstr "D_örtgen" + +#: ../plug-ins/imagemap/imap_rectangle.c:389 +msgid "Upper left _x:" +msgstr "Üst sol _x:" + +#: ../plug-ins/imagemap/imap_rectangle.c:396 +msgid "Upper left _y:" +msgstr "Üst sol _y:" + +#: ../plug-ins/imagemap/imap_selection.c:377 +msgid "#" +msgstr "#" + +#: ../plug-ins/imagemap/imap_selection.c:388 +msgid "URL" +msgstr "Adres" + +#: ../plug-ins/imagemap/imap_selection.c:406 +msgid "ALT Text" +msgstr "ALT Metni" + +#: ../plug-ins/imagemap/imap_selection.c:416 +msgid "Target" +msgstr "Hedef" + +#: ../plug-ins/imagemap/imap_settings.c:90 +msgid "Settings for this Mapfile" +msgstr "Bu Eşlem Dosyasının ayarları" + +#: ../plug-ins/imagemap/imap_settings.c:94 +msgid "Filename:" +msgstr "Dosya adı:" + +#: ../plug-ins/imagemap/imap_settings.c:97 +msgid "Image name:" +msgstr "Görüntü adı:" + +#: ../plug-ins/imagemap/imap_settings.c:98 +msgid "Select Image File" +msgstr "Görüntü Dosyası Seç" + +#: ../plug-ins/imagemap/imap_settings.c:102 +msgid "_Title:" +msgstr "_Başlık:" + +#: ../plug-ins/imagemap/imap_settings.c:104 +msgid "Aut_hor:" +msgstr "Ya_zar:" + +#: ../plug-ins/imagemap/imap_settings.c:106 +msgid "Default _URL:" +msgstr "Varsayılan _Adres:" + +#: ../plug-ins/imagemap/imap_settings.c:108 +msgid "_Description:" +msgstr "_Açıklama:" + +#: ../plug-ins/imagemap/imap_settings.c:130 +msgid "Map File Format" +msgstr "Eşlem Dosyası Biçimi" + +#: ../plug-ins/imagemap/imap_source.c:63 +msgid "View Source" +msgstr "Kaynağını Göster" + +#: ../plug-ins/lighting/lighting-apply.c:105 +#: ../plug-ins/lighting/lighting-ui.c:1019 +msgid "Lighting Effects" +msgstr "Işıklandırma Etkileri" + +#: ../plug-ins/lighting/lighting-main.c:192 +msgid "Apply various lighting effects to an image" +msgstr "Bir görüntüye çeşitli ışıklandırma etkileri uygula" + +#: ../plug-ins/lighting/lighting-main.c:197 +msgid "_Lighting Effects..." +msgstr "_Işıklandırma Etkileri..." + +#. General options +#: ../plug-ins/lighting/lighting-ui.c:295 +#: ../plug-ins/map-object/map-object-ui.c:472 +msgid "General Options" +msgstr "Genel Seçenekler" + +#: ../plug-ins/lighting/lighting-ui.c:303 +msgid "T_ransparent background" +msgstr "Sa_ydam artalan" + +#: ../plug-ins/lighting/lighting-ui.c:313 +msgid "Make destination image transparent where bump height is zero" +msgstr "Tümsek yüksekliğinin sıfır olduğu hedef resmi saydam yap" + +#: ../plug-ins/lighting/lighting-ui.c:316 +msgid "Cre_ate new image" +msgstr "Yeni görüntü _oluştur" + +#: ../plug-ins/lighting/lighting-ui.c:326 +#: ../plug-ins/map-object/map-object-ui.c:541 +msgid "Create a new image when applying filter" +msgstr "Süzgeç uygulanırken yeni bir görüntü oluştur" + +#: ../plug-ins/lighting/lighting-ui.c:328 +msgid "High _quality preview" +msgstr "Yüksek _kaliteli önizleme" + +#: ../plug-ins/lighting/lighting-ui.c:338 +msgid "Enable/disable high quality preview" +msgstr "Yüksek kaliteli önizlemeyi aktifleştir/pasifleştir" + +#: ../plug-ins/lighting/lighting-ui.c:345 +msgid "Distance:" +msgstr "Uzaklık:" + +#: ../plug-ins/lighting/lighting-ui.c:378 +#: ../plug-ins/map-object/map-object-ui.c:619 +msgid "Light Settings" +msgstr "Işık Ayarları" + +#: ../plug-ins/lighting/lighting-ui.c:391 +msgid "Light 1" +msgstr "Işık 1" + +#: ../plug-ins/lighting/lighting-ui.c:392 +msgid "Light 2" +msgstr "Işık 2" + +#: ../plug-ins/lighting/lighting-ui.c:393 +msgid "Light 3" +msgstr "Işık 3" + +#: ../plug-ins/lighting/lighting-ui.c:394 +msgid "Light 4" +msgstr "Işık 4" + +#: ../plug-ins/lighting/lighting-ui.c:395 +msgid "Light 5" +msgstr "Işık 5" + +#: ../plug-ins/lighting/lighting-ui.c:396 +msgid "Light 6" +msgstr "Işık 6" + +#: ../plug-ins/lighting/lighting-ui.c:410 +msgid "Color:" +msgstr "Renk:" + +#: ../plug-ins/lighting/lighting-ui.c:417 +msgid "Directional" +msgstr "Doğrusal" + +#: ../plug-ins/lighting/lighting-ui.c:418 +msgid "Point" +msgstr "Nokta" + +#: ../plug-ins/lighting/lighting-ui.c:432 +#: ../plug-ins/map-object/map-object-ui.c:642 +msgid "Type of light source to apply" +msgstr "Uygulanacak ışık kaynağının türü" + +#: ../plug-ins/lighting/lighting-ui.c:434 +#: ../plug-ins/map-object/map-object-ui.c:644 +msgid "Select lightsource color" +msgstr "Işıkkaynağı rengini seçin" + +#: ../plug-ins/lighting/lighting-ui.c:448 +#: ../plug-ins/map-object/map-object-ui.c:657 +msgid "Set light source color" +msgstr "Işık kaynağı rengini seçin" + +#: ../plug-ins/lighting/lighting-ui.c:456 +msgid "_Intensity:" +msgstr "_Yoğunluk:" + +#: ../plug-ins/lighting/lighting-ui.c:464 +msgid "Light intensity" +msgstr "Işık yoğunluğu" + +#: ../plug-ins/lighting/lighting-ui.c:467 +#: ../plug-ins/map-object/map-object-ui.c:659 +#: ../plug-ins/map-object/map-object-ui.c:986 +#: ../plug-ins/print/print-page-layout.c:343 +msgid "Position" +msgstr "Konum" + +#: ../plug-ins/lighting/lighting-ui.c:485 +#: ../plug-ins/map-object/map-object-ui.c:683 +msgid "Light source X position in XYZ space" +msgstr "XYZ alanındaki ışık kaynağının X konumu" + +#: ../plug-ins/lighting/lighting-ui.c:500 +#: ../plug-ins/map-object/map-object-ui.c:697 +msgid "Light source Y position in XYZ space" +msgstr "XYZ alanındaki ışık kaynağının Y konumu" + +#: ../plug-ins/lighting/lighting-ui.c:507 +msgid "_Z:" +msgstr "_Z:" + +#: ../plug-ins/lighting/lighting-ui.c:515 +#: ../plug-ins/map-object/map-object-ui.c:711 +msgid "Light source Z position in XYZ space" +msgstr "XYZ alanındaki ışık kaynağının Z konumu" + +#: ../plug-ins/lighting/lighting-ui.c:535 +#: ../plug-ins/map-object/map-object-ui.c:737 +msgid "Light source X direction in XYZ space" +msgstr "XYZ alanındaki ışık kaynağının X yönü" + +#: ../plug-ins/lighting/lighting-ui.c:549 +#: ../plug-ins/map-object/map-object-ui.c:750 +msgid "Light source Y direction in XYZ space" +msgstr "XYZ alanındaki ışık kaynağının Y yönü" + +#: ../plug-ins/lighting/lighting-ui.c:555 +#: ../plug-ins/map-object/map-object-ui.c:703 +#: ../plug-ins/map-object/map-object-ui.c:755 +#: ../plug-ins/map-object/map-object-ui.c:1023 +#: ../plug-ins/map-object/map-object-ui.c:1068 +#: ../plug-ins/map-object/map-object-ui.c:1167 +msgid "Z:" +msgstr "Z:" + +#: ../plug-ins/lighting/lighting-ui.c:563 +#: ../plug-ins/map-object/map-object-ui.c:763 +msgid "Light source Z direction in XYZ space" +msgstr "XYZ alanındaki ışık kaynağının Z yönü" + +#: ../plug-ins/lighting/lighting-ui.c:566 +msgid "I_solate" +msgstr "Ya_lıtma" + +#: ../plug-ins/lighting/lighting-ui.c:575 +msgid "Lighting preset:" +msgstr "Işıklandırma önayarı:" + +#: ../plug-ins/lighting/lighting-ui.c:621 +msgid "Material Properties" +msgstr "Malzeme özellikleri" + +#: ../plug-ins/lighting/lighting-ui.c:639 +msgid "_Glowing:" +msgstr "_Parıltı:" + +#: ../plug-ins/lighting/lighting-ui.c:658 +#: ../plug-ins/map-object/map-object-ui.c:824 +msgid "Amount of original color to show where no direct light falls" +msgstr "Doğrudan ışığın düşmediği yeri gösteren özgün renk miktarı" + +#: ../plug-ins/lighting/lighting-ui.c:672 +msgid "_Bright:" +msgstr "_Parlak:" + +#: ../plug-ins/lighting/lighting-ui.c:691 +#: ../plug-ins/map-object/map-object-ui.c:853 +msgid "Intensity of original color when lit by a light source" +msgstr "Hafif bir kaynak tarafından aydınlatılan özgün rengin yoğunluğu" + +#: ../plug-ins/lighting/lighting-ui.c:705 +msgid "_Shiny:" +msgstr "_Parlak:" + +#: ../plug-ins/lighting/lighting-ui.c:724 +#: ../plug-ins/map-object/map-object-ui.c:925 +msgid "Controls how intense the highlights will be" +msgstr "Vurgulamanın ne kadar yoğun olacağını denetler" + +#: ../plug-ins/lighting/lighting-ui.c:737 +msgid "_Polished:" +msgstr "_Cilalı:" + +#: ../plug-ins/lighting/lighting-ui.c:756 +#: ../plug-ins/map-object/map-object-ui.c:954 +msgid "Higher values makes the highlights more focused" +msgstr "Yüksek değerler daha fazla odaklanmış vurgular yapar" + +#. Metallic +#: ../plug-ins/lighting/lighting-ui.c:766 +msgid "_Metallic" +msgstr "_Metalik" + +#: ../plug-ins/lighting/lighting-ui.c:803 +msgid "E_nable bump mapping" +msgstr "Derinlik etkisini e_tkinleştir" + +#: ../plug-ins/lighting/lighting-ui.c:817 +msgid "Enable/disable bump-mapping (image depth)" +msgstr "Derinlik etkisini (resim derinliği) etkinleştir/etkisizleştir" + +#: ../plug-ins/lighting/lighting-ui.c:839 +msgid "Bumpm_ap image:" +msgstr "Derinlik e-tkisi resmi:" + +#: ../plug-ins/lighting/lighting-ui.c:843 +msgid "Logarithmic" +msgstr "Logaritmik" + +#: ../plug-ins/lighting/lighting-ui.c:855 +msgid "Cu_rve:" +msgstr "Eğri:" + +#: ../plug-ins/lighting/lighting-ui.c:860 +msgid "Ma_ximum height:" +msgstr "Mak_simum yükseklik" + +#: ../plug-ins/lighting/lighting-ui.c:870 +msgid "Maximum height for bumps" +msgstr "Tümsekler için en fazla yükseklik" + +#: ../plug-ins/lighting/lighting-ui.c:894 +msgid "E_nable environment mapping" +msgstr "Çevre eşlemesini e_tkinleştir" + +#: ../plug-ins/lighting/lighting-ui.c:908 +msgid "Enable/disable environment-mapping (reflection)" +msgstr "Çevre eşlemesini etkinleştir/iptal et (yansıma)" + +#: ../plug-ins/lighting/lighting-ui.c:925 +msgid "En_vironment image:" +msgstr "Or_tam görüntüsü:" + +#: ../plug-ins/lighting/lighting-ui.c:928 +msgid "Environment image to use" +msgstr "Kullanılacak ortam görüntüsü" + +#: ../plug-ins/lighting/lighting-ui.c:950 +msgid "Op_tions" +msgstr "Seçenekle_r" + +#: ../plug-ins/lighting/lighting-ui.c:954 +#: ../plug-ins/map-object/map-object-ui.c:1291 +msgid "_Light" +msgstr "_Işık" + +#: ../plug-ins/lighting/lighting-ui.c:958 +#: ../plug-ins/map-object/map-object-ui.c:1295 +msgid "_Material" +msgstr "_Madde" + +#: ../plug-ins/lighting/lighting-ui.c:962 +msgid "_Bump Map" +msgstr "_Derinlik Etkisi" + +#: ../plug-ins/lighting/lighting-ui.c:966 +msgid "_Environment Map" +msgstr "_Ortam Eşlemi" + +#: ../plug-ins/lighting/lighting-ui.c:1082 +#: ../plug-ins/map-object/map-object-ui.c:1397 +msgid "Recompute preview image" +msgstr "Önizleme remini yeniden hesapla" + +#: ../plug-ins/lighting/lighting-ui.c:1084 +msgid "I_nteractive" +msgstr "_Etkileşimli" + +#: ../plug-ins/lighting/lighting-ui.c:1098 +msgid "Enable/disable real time preview of changes" +msgstr "Değişikliklerin gerçek zamanlı önizlemelerini etkinleştir/iptal et" + +#: ../plug-ins/lighting/lighting-ui.c:1137 +msgid "Save Lighting Preset" +msgstr "Öntanımlı Aydınlatmayı Kaydet" + +#: ../plug-ins/lighting/lighting-ui.c:1281 +msgid "Load Lighting Preset" +msgstr "Öntanımlı Aydınlatmayı Yükle" + +#: ../plug-ins/map-object/map-object-apply.c:276 +msgid "Map to plane" +msgstr "Düzlem oluşturuluyor" + +#: ../plug-ins/map-object/map-object-apply.c:279 +msgid "Map to sphere" +msgstr "Küre oluşturuluyor" + +#: ../plug-ins/map-object/map-object-apply.c:282 +msgid "Map to box" +msgstr "Kutu oluşturuluyor" + +#: ../plug-ins/map-object/map-object-apply.c:285 +msgid "Map to cylinder" +msgstr "Silindir oluşturuluyor" + +#: ../plug-ins/map-object/map-object-main.c:193 +msgid "Map the image to an object (plane, sphere, box or cylinder)" +msgstr "Resmi bir nesneye eşle (düzlem, küre, kutu veya silindir)" + +#: ../plug-ins/map-object/map-object-main.c:198 +msgid "Map _Object..." +msgstr "_Nesne Eşleme..." + +#: ../plug-ins/map-object/map-object-ui.c:248 +#: ../plug-ins/map-object/map-object-ui.c:1305 +msgid "_Box" +msgstr "_Kutu" + +#: ../plug-ins/map-object/map-object-ui.c:266 +#: ../plug-ins/map-object/map-object-ui.c:1311 +msgid "C_ylinder" +msgstr "_Silindir" + +#: ../plug-ins/map-object/map-object-ui.c:484 +msgid "Map to:" +msgstr "Nesne" + +#: ../plug-ins/map-object/map-object-ui.c:488 +msgid "Plane" +msgstr "Düzlem" + +#: ../plug-ins/map-object/map-object-ui.c:489 +msgid "Sphere" +msgstr "Küre" + +#: ../plug-ins/map-object/map-object-ui.c:490 +msgid "Box" +msgstr "Kutu" + +#: ../plug-ins/map-object/map-object-ui.c:501 +msgid "Type of object to map to" +msgstr "Eşlenecek nesne biçimi" + +#: ../plug-ins/map-object/map-object-ui.c:503 +msgid "Transparent background" +msgstr "Şeffaf artalan" + +#: ../plug-ins/map-object/map-object-ui.c:514 +msgid "Make image transparent outside object" +msgstr "Görüntüyü nesnenin dışında saydam yap" + +#: ../plug-ins/map-object/map-object-ui.c:516 +msgid "Tile source image" +msgstr "Kaynak görüntüyü döşe" + +#: ../plug-ins/map-object/map-object-ui.c:527 +msgid "Tile source image: useful for infinite planes" +msgstr "Kaynak görüntüyü döşe: sonsuz düzlemler için kullanışlı" + +#: ../plug-ins/map-object/map-object-ui.c:530 +msgid "Create new image" +msgstr "Yeni görüntü oluştur" + +#: ../plug-ins/map-object/map-object-ui.c:549 +msgid "Enable _antialiasing" +msgstr "_Yumuşatmayı etkinleştir" + +#: ../plug-ins/map-object/map-object-ui.c:560 +msgid "Enable/disable jagged edges removal (antialiasing)" +msgstr "Aktif/pasif pürüzlü kenarları kaldırma (antialiasing)" + +#: ../plug-ins/map-object/map-object-ui.c:576 +msgid "Antialiasing quality. Higher is better, but slower" +msgstr "Yumuşatma kalitesi. Yüksek daha iyidir ama daha yavaştır" + +#: ../plug-ins/map-object/map-object-ui.c:593 +msgid "Stop when pixel differences are smaller than this value" +msgstr "Benek farklılıkları bu değerden daha küçük olduğu zaman dur" + +#: ../plug-ins/map-object/map-object-ui.c:628 +msgid "Point light" +msgstr "Noktadan ışık" + +#: ../plug-ins/map-object/map-object-ui.c:629 +msgid "Directional light" +msgstr "Yönlü ışık" + +#: ../plug-ins/map-object/map-object-ui.c:630 +msgid "No light" +msgstr "Işık yok" + +#: ../plug-ins/map-object/map-object-ui.c:635 +msgid "Lightsource type:" +msgstr "Işık kaynağı türü:" + +#: ../plug-ins/map-object/map-object-ui.c:649 +msgid "Lightsource color:" +msgstr "Işık kaynağı rengi:" + +#: ../plug-ins/map-object/map-object-ui.c:714 +msgid "Direction Vector" +msgstr "Doğrultu Vektörü" + +#: ../plug-ins/map-object/map-object-ui.c:790 +msgid "Intensity Levels" +msgstr "Yoğunluk Seviyeleri" + +#: ../plug-ins/map-object/map-object-ui.c:809 +msgid "Ambient:" +msgstr "Çevre:" + +#: ../plug-ins/map-object/map-object-ui.c:838 +#: ../plug-ins/map-object/map-object-ui.c:881 +msgid "Diffuse:" +msgstr "Dağıt:" + +#: ../plug-ins/map-object/map-object-ui.c:862 +msgid "Reflectivity" +msgstr "Yansıma" + +#: ../plug-ins/map-object/map-object-ui.c:896 +msgid "Higher values makes the object reflect more light (appear lighter)" +msgstr "" +"Yüksek değerler nesnenin daha fazla ışık yansıtmasını sağlar (daha aydınlık " +"görünür)" + +#: ../plug-ins/map-object/map-object-ui.c:910 +msgid "Specular:" +msgstr "Yansıtıcı:" + +#: ../plug-ins/map-object/map-object-ui.c:939 +msgid "Highlight:" +msgstr "Vurgulama:" + +#: ../plug-ins/map-object/map-object-ui.c:1000 +msgid "Object X position in XYZ space" +msgstr "XYZ alanında nesnenin X konumu" + +#: ../plug-ins/map-object/map-object-ui.c:1013 +msgid "Object Y position in XYZ space" +msgstr "XYZ alanında nesnenin Y konumu" + +#: ../plug-ins/map-object/map-object-ui.c:1026 +msgid "Object Z position in XYZ space" +msgstr "XYZ alanında nesnenin Z konumu" + +#: ../plug-ins/map-object/map-object-ui.c:1049 +msgid "Rotation angle about X axis" +msgstr "X eksenindeki döndürme açısı" + +#: ../plug-ins/map-object/map-object-ui.c:1060 +msgid "Rotation angle about Y axis" +msgstr "Y eksenindeki döndürme açısı" + +#: ../plug-ins/map-object/map-object-ui.c:1071 +msgid "Rotation angle about Z axis" +msgstr "Z eksenindeki döndürme açısı" + +#: ../plug-ins/map-object/map-object-ui.c:1097 +msgid "Front:" +msgstr "Yazıyüzü:" + +#: ../plug-ins/map-object/map-object-ui.c:1097 +msgid "Back:" +msgstr "Geri:" + +#: ../plug-ins/map-object/map-object-ui.c:1105 +msgid "Map Images to Box Faces" +msgstr "Resimleri Kutunun Yüzeylerine Eşle" + +#: ../plug-ins/map-object/map-object-ui.c:1146 +msgid "X scale (size)" +msgstr "X ölçeği (boyut)" + +#: ../plug-ins/map-object/map-object-ui.c:1158 +msgid "Y scale (size)" +msgstr "Y ölçeği (boyut)" + +#: ../plug-ins/map-object/map-object-ui.c:1170 +msgid "Z scale (size)" +msgstr "Z ölçeği (boyut)" + +#: ../plug-ins/map-object/map-object-ui.c:1193 +#: ../plug-ins/print/print-page-layout.c:402 +msgid "_Top:" +msgstr "_Tepe:" + +#: ../plug-ins/map-object/map-object-ui.c:1193 +#: ../plug-ins/print/print-page-layout.c:421 +msgid "_Bottom:" +msgstr "_Alt:" + +#: ../plug-ins/map-object/map-object-ui.c:1198 +msgid "Images for the Cap Faces" +msgstr "Kapak Yüzeyleri için resimler" + +#: ../plug-ins/map-object/map-object-ui.c:1227 +#: ../plug-ins/print/print-page-layout.c:219 +msgid "Size" +msgstr "Boyut" + +#: ../plug-ins/map-object/map-object-ui.c:1238 +msgid "R_adius:" +msgstr "Y_arıçap:" + +#: ../plug-ins/map-object/map-object-ui.c:1242 +msgid "Cylinder radius" +msgstr "Silindir yarıçapı" + +#: ../plug-ins/map-object/map-object-ui.c:1256 +msgid "Cylinder length" +msgstr "Silindir uzunluğu" + +#: ../plug-ins/map-object/map-object-ui.c:1287 +msgid "O_ptions" +msgstr "_Seçenekler" + +#: ../plug-ins/map-object/map-object-ui.c:1299 +msgid "O_rientation" +msgstr "_Konum" + +#: ../plug-ins/map-object/map-object-ui.c:1335 +msgid "Map to Object" +msgstr "Nesne Eşleme" + +#: ../plug-ins/map-object/map-object-ui.c:1415 +msgid "Show preview _wireframe" +msgstr "Kılavuz _çizgileri göster" + +#: ../plug-ins/maze/maze-algorithms.c:279 +msgid "Constructing maze using Prim's Algorithm" +msgstr "Prim Algoritması kullanarak labirent oluşturmak" + +#: ../plug-ins/maze/maze-algorithms.c:488 +msgid "Constructing tileable maze using Prim's Algorithm" +msgstr "Prim's Algoritması kullanılarak döşenebilir labirent inşa ediliyor" + +#: ../plug-ins/maze/maze-dialog.c:172 +msgid "Maze" +msgstr "Labirent" + +#. The maze size frame +#: ../plug-ins/maze/maze-dialog.c:194 +msgid "Maze Size" +msgstr "Labirent Boyutu" + +#. entscale == Entry and Scale pair function found in pixelize.c +#: ../plug-ins/maze/maze-dialog.c:208 +msgid "Width (pixels):" +msgstr "Genişlik (benek):" + +#: ../plug-ins/maze/maze-dialog.c:220 ../plug-ins/maze/maze-dialog.c:236 +msgid "Pieces:" +msgstr "Parçalar:" + +#: ../plug-ins/maze/maze-dialog.c:225 +msgid "Height (pixels):" +msgstr "Yükseklik (benek):" + +#. The maze algorithm frame +#: ../plug-ins/maze/maze-dialog.c:244 +msgid "Algorithm" +msgstr "Algoritma" + +#: ../plug-ins/maze/maze-dialog.c:270 +msgid "Depth first" +msgstr "Derinlemesine" + +#: ../plug-ins/maze/maze-dialog.c:271 +msgid "Prim's algorithm" +msgstr "Prim Algoritması" + +#: ../plug-ins/maze/maze-dialog.c:390 +msgid "" +"Selection size is not even.\n" +"Tileable maze won't work perfectly." +msgstr "" +"Seçim büyüklüğü dengeli değil.\n" +"Döşenebilir labirent düzgün çalışmayacak." + +#: ../plug-ins/maze/maze.c:123 +msgid "Draw a labyrinth" +msgstr "Bir labirent çiz" + +#: ../plug-ins/maze/maze.c:130 +msgid "_Maze..." +msgstr "_Labirent..." + +#: ../plug-ins/maze/maze.c:426 +msgid "Drawing maze" +msgstr "Labirent çizimi" + +#: ../plug-ins/metadata/xmp-parse.c:240 +#, c-format +msgid "Error: No XMP packet found" +msgstr "Hata: XMP paketi bulunamadı" + +#: ../plug-ins/metadata/xmp-parse.c:255 +#, c-format +msgid "Error on line %d char %d: %s" +msgstr "%d. satırda %d karakteri hatalı: %s" + +#: ../plug-ins/metadata/xmp-parse.c:277 +#, c-format +msgid "Expected text or optional element <%s>, found <%s> instead" +msgstr "Beklenen metin ya da seçimli öğe <%s>, <%s> yerine bulundu" + +#: ../plug-ins/metadata/xmp-parse.c:281 +#, c-format +msgid "Expected element <%s>, found <%s> instead" +msgstr "Beklenen eleman <%s>, <%s> yerine bulundu" + +#: ../plug-ins/metadata/xmp-parse.c:296 +#, c-format +msgid "Unknown element <%s>" +msgstr "Bilinmeyen öğe <%s>" + +#: ../plug-ins/metadata/xmp-parse.c:325 +#, c-format +msgid "Unknown attribute \"%s\"=\"%s\" in element <%s>" +msgstr "<%s> öğesinde \"%s\"=\"%s\" bilinmeyen özelliği" + +#: ../plug-ins/metadata/xmp-parse.c:655 +#, c-format +msgid "Required attribute rdf:about missing in <%s>" +msgstr "<%s> için rdf özelliği gerekiyor" + +#: ../plug-ins/metadata/xmp-parse.c:881 +#, c-format +msgid "Nested elements (<%s>) are not allowed in this context" +msgstr "İç içe öğelere (<%s>) bu durumda izin verilmiyor" + +#: ../plug-ins/metadata/xmp-parse.c:1010 +#, c-format +msgid "End of element <%s> not expected in this context" +msgstr "<%s> öğesinin sonu bu içerikte beklenmiyor" + +#: ../plug-ins/metadata/xmp-parse.c:1112 +#, c-format +msgid "The current element (<%s>) cannot contain text" +msgstr "Geçerli öğe (<%s>) metin içeremez" + +#: ../plug-ins/metadata/xmp-parse.c:1137 +msgid "XMP packets must start with " +msgstr "XMP paketleri ile başlamalıdır" + +#: ../plug-ins/metadata/xmp-parse.c:1151 +msgid "XMP packets must end with " +msgstr "XMP paketleri ile bitmelidir" + +#: ../plug-ins/metadata/xmp-parse.c:1164 +msgid "XMP cannot contain XML comments or processing instructions" +msgstr "XMP, XML yorumları veya işleme yönergeleri içeremez" + +#: ../plug-ins/pagecurl/pagecurl.c:216 +msgid "Curl up one of the image corners" +msgstr "Resmin köşelerinden birini kıvır" + +#: ../plug-ins/pagecurl/pagecurl.c:221 +msgid "_Pagecurl..." +msgstr "_Sayfa Kıvırma" + +#: ../plug-ins/pagecurl/pagecurl.c:440 +msgid "Pagecurl Effect" +msgstr "Sayfa Kıvırma Etkisi" + +#: ../plug-ins/pagecurl/pagecurl.c:462 +msgid "Curl Location" +msgstr "Kıvırma Yeri" + +#: ../plug-ins/pagecurl/pagecurl.c:481 +msgid "Lower right" +msgstr "Aşağı sağ" + +#: ../plug-ins/pagecurl/pagecurl.c:482 +msgid "Lower left" +msgstr "Aşağı sol" + +#: ../plug-ins/pagecurl/pagecurl.c:483 +msgid "Upper left" +msgstr "Yukarı sol" + +#: ../plug-ins/pagecurl/pagecurl.c:484 +msgid "Upper right" +msgstr "Yukarı sağ" + +#: ../plug-ins/pagecurl/pagecurl.c:524 +msgid "Curl Orientation" +msgstr "Kıvırma Yönlendirmesi" + +#: ../plug-ins/pagecurl/pagecurl.c:568 +msgid "_Shade under curl" +msgstr "_Kıvrımın altındaki gölge" + +#: ../plug-ins/pagecurl/pagecurl.c:581 +msgid "Current gradient (reversed)" +msgstr "Mevcut Artımlı Geçiş (ters çevrilmiş)" + +#: ../plug-ins/pagecurl/pagecurl.c:586 +msgid "Current gradient" +msgstr "Geçerli eğim" + +#: ../plug-ins/pagecurl/pagecurl.c:591 +msgid "Foreground / background colors" +msgstr "Önalan / artalan renkleri" + +#: ../plug-ins/pagecurl/pagecurl.c:611 +msgid "_Opacity:" +msgstr "_Opaklık:" + +#: ../plug-ins/pagecurl/pagecurl.c:734 +msgid "Curl Layer" +msgstr "Kıvrım Katmanı" + +#: ../plug-ins/pagecurl/pagecurl.c:1022 +msgid "Page Curl" +msgstr "Sayfa Kıvırma" + +#: ../plug-ins/print/print-page-layout.c:148 +msgid "Ignore Page _Margins" +msgstr "Sayfa _Kenarlarını Yoksay" + +#: ../plug-ins/print/print-page-layout.c:294 +msgid "_X resolution:" +msgstr "_X çözünürlüğü:" + +#: ../plug-ins/print/print-page-layout.c:298 +msgid "_Y resolution:" +msgstr "_Y çözünürlüğü:" + +#: ../plug-ins/print/print-page-layout.c:369 +msgid "_Left:" +msgstr "_Sol:" + +#: ../plug-ins/print/print-page-layout.c:388 +msgid "_Right:" +msgstr "_Sağ:" + +#: ../plug-ins/print/print-page-layout.c:442 +msgid "C_enter:" +msgstr "_Merkez:" + +#: ../plug-ins/print/print-page-layout.c:450 +msgid "Horizontally" +msgstr "Yatay olarak" + +#: ../plug-ins/print/print-page-layout.c:451 +msgid "Vertically" +msgstr "Dikeysel" + +#: ../plug-ins/print/print-page-layout.c:452 +msgid "Both" +msgstr "Her ikisi" + +#: ../plug-ins/print/print.c:102 +msgid "Print the image" +msgstr "Görüntüyü yazdır" + +#: ../plug-ins/print/print.c:107 +msgid "_Print..." +msgstr "_Yazdır..." + +#: ../plug-ins/print/print.c:118 +msgid "Adjust page size and orientation for printing" +msgstr "Yazdırma işlemi için sayfa boyutu ve oryantasyonu ayarla" + +#: ../plug-ins/print/print.c:124 +msgid "Page Set_up" +msgstr "Sayfa _Ayarı" + +#: ../plug-ins/print/print.c:265 +msgid "Image Settings" +msgstr "Görüntü Ayarları" + +#: ../plug-ins/print/print.c:348 +msgid "An error occurred while trying to print:" +msgstr "Yazdırmaya çalışırken bir hata oluştu" + +#: ../plug-ins/print/print.c:375 +msgid "Printing" +msgstr "Yazdırma" + +#. printf("width = %d, height = %d\n",BITMAP_WIDTH(marked),BITMAP_HEIGHT(marked)); +#: ../plug-ins/selection-to-path/pxl-outline.c:82 +msgid "Selection to Path" +msgstr "Yoldan Seçime" + +#: ../plug-ins/selection-to-path/selection-to-path.c:185 +msgid "No selection to convert" +msgstr "Çevrilecek bir seçim yok" + +#: ../plug-ins/selection-to-path/selection-to-path.c:302 +msgid "Selection to Path Advanced Settings" +msgstr "Gelişmiş Yol Ayarları Seçimi" + +#: ../plug-ins/twain/twain.c:87 +msgid "Capture an image from a TWAIN datasource" +msgstr "Bir TWAIN veri kaynağından bir görüntü alınıyor" + +#: ../plug-ins/twain/twain.c:352 +msgid "_Scanner/Camera..." +msgstr "_Tarayıcı/Kamera..." + +#. Initialize our progress dialog +#: ../plug-ins/twain/twain.c:486 +msgid "Transferring data from scanner/camera" +msgstr "Tarayıcıdan/kameradan veri aktarılıyor" + +#: ../plug-ins/win-snap/winsnap.c:865 +msgid "Grab" +msgstr "Yakala" + +#: ../plug-ins/win-snap/winsnap.c:881 +msgid "Grab a single window" +msgstr "Tek bir pencere tut" + +#: ../plug-ins/win-snap/winsnap.c:895 +msgid "Grab the whole screen" +msgstr "Tüm ekranı tut" + +#: ../plug-ins/win-snap/winsnap.c:911 +msgid "after" +msgstr "sonra" + +#: ../plug-ins/win-snap/winsnap.c:923 +msgid "Seconds delay" +msgstr "Saniye gecikmesi" + +#: ../plug-ins/win-snap/winsnap.c:930 +msgid "Include decorations" +msgstr "Süslemeleri içer" + +#: ../plug-ins/win-snap/winsnap.c:989 +msgid "Capture a window or desktop image" +msgstr "Bir pencere veya masaüstü resmi yakala" + +#: ../plug-ins/win-snap/winsnap.c:994 +msgid "_Screen Shot..." +msgstr "_Ekran Görüntüsü..." + +#: ../plug-ins/win-snap/winsnap.c:1142 +msgid "No data captured" +msgstr "Hiç veri yakalanmadı" diff --git a/multimedia/graphics/gimp/gimp/files/po-script-fu_gimp20-script-fu-tr.po b/multimedia/graphics/gimp/gimp/files/po-script-fu_gimp20-script-fu-tr.po new file mode 100644 index 0000000000..47476319ed --- /dev/null +++ b/multimedia/graphics/gimp/gimp/files/po-script-fu_gimp20-script-fu-tr.po @@ -0,0 +1,2775 @@ +# Copyright (C) 2001 Free Software Foundation, Inc. +# Ömer Fadıl USTA , 2002. +# Fatih Demir , 2001. +# Alper Ersoy , 2001. +# +msgid "" +msgstr "" +"Project-Id-Version: GIMP 1.3.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-08 20:00+0000\n" +"PO-Revision-Date: 2011-01-22 13:45+0000\n" +"Last-Translator: Ömer Fadıl USTA \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-08-09 06:12+0000\n" +"X-Generator: Launchpad (build 13628)\n" + +#: ../plug-ins/script-fu/script-fu-console.c:131 +#: ../plug-ins/script-fu/script-fu-console.c:198 +msgid "Script-Fu Console" +msgstr "Script-Fu Konsolu" + +#: ../plug-ins/script-fu/script-fu-console.c:194 +msgid "Welcome to TinyScheme" +msgstr "Minik şemaya hoşgeldiniz" + +#: ../plug-ins/script-fu/script-fu-console.c:200 +msgid "Interactive Scheme Development" +msgstr "Etkileşimli Şema Geliştirici" + +#: ../plug-ins/script-fu/script-fu-console.c:236 +msgid "_Browse..." +msgstr "_Gözat..." + +#: ../plug-ins/script-fu/script-fu-console.c:294 +msgid "Save Script-Fu Console Output" +msgstr "Script-Fu Uçbirimi Çıktısını Kaydet" + +#: ../plug-ins/script-fu/script-fu-console.c:341 +#, c-format +msgid "Could not open '%s' for writing: %s" +msgstr "Yazma için '%s' açılamadı: %s" + +#: ../plug-ins/script-fu/script-fu-console.c:370 +msgid "Script-Fu Procedure Browser" +msgstr "Script-Fu Yordamı Gezgini" + +#: ../plug-ins/script-fu/script-fu-eval.c:63 +msgid "Script-Fu evaluation mode only allows non-interactive invocation" +msgstr "Script-Fu değerlendirme kipi sadece etkileşimsiz çağrıma izin verir" + +#: ../plug-ins/script-fu/script-fu-interface.c:196 +msgid "Script-Fu cannot process two scripts at the same time." +msgstr "Script-Fu iki betiği aynı anda çalıştıramaz." + +#: ../plug-ins/script-fu/script-fu-interface.c:198 +#, c-format +msgid "You are already running the \"%s\" script." +msgstr "\"%s\" betiğini zaten çalıştırıyorsunuz." + +#: ../plug-ins/script-fu/script-fu-interface.c:224 +#, c-format +msgid "Script-Fu: %s" +msgstr "Script-Fu: %s" + +#. we add a colon after the label; +#. * some languages want an extra space here +#. +#: ../plug-ins/script-fu/script-fu-interface.c:288 +#, c-format +msgid "%s:" +msgstr "%s:" + +#: ../plug-ins/script-fu/script-fu-interface.c:336 +msgid "Script-Fu Color Selection" +msgstr "Script-Fu Renk Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:445 +msgid "Script-Fu File Selection" +msgstr "Script-Fu Dosya Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:448 +msgid "Script-Fu Folder Selection" +msgstr "Script-Fu Dizin Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:461 +msgid "Script-Fu Font Selection" +msgstr "Script-Fu Yazıtipi Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:469 +msgid "Script-Fu Palette Selection" +msgstr "Script-Fu Palet Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:478 +msgid "Script-Fu Pattern Selection" +msgstr "Script-Fu Desen Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:487 +msgid "Script-Fu Gradient Selection" +msgstr "Script-Fu Gradyan Secimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:496 +msgid "Script-Fu Brush Selection" +msgstr "Script-Fu Fırça Seçimi" + +#: ../plug-ins/script-fu/script-fu-interface.c:824 +#, c-format +msgid "Error while executing %s:" +msgstr "%s yürütülürken hata:" + +#: ../plug-ins/script-fu/script-fu-scripts.c:150 +msgid "Too few arguments to 'script-fu-register' call" +msgstr "'script-fu-register' çağrısında çok fazla bağımsız değişken" + +#: ../plug-ins/script-fu/script-fu-scripts.c:609 +#, c-format +msgid "Error while loading %s:" +msgstr "%s yüklenirken hata:" + +#: ../plug-ins/script-fu/script-fu-server.c:713 +msgid "Script-Fu Server Options" +msgstr "Script-Fu Sunucu Ayarları" + +#: ../plug-ins/script-fu/script-fu-server.c:718 +msgid "_Start Server" +msgstr "_Sunucuyu Başlat" + +#: ../plug-ins/script-fu/script-fu-server.c:746 +msgid "Server port:" +msgstr "Sunucu kapısı:" + +#: ../plug-ins/script-fu/script-fu-server.c:752 +msgid "Server logfile:" +msgstr "Sunucu günlük dosyası:" + +#: ../plug-ins/script-fu/script-fu.c:111 +msgid "Interactive console for Script-Fu development" +msgstr "Script-Fu geliştirmesi için etkileşimli uçbirim" + +#: ../plug-ins/script-fu/script-fu.c:117 +msgid "_Console" +msgstr "_Uçbirim" + +#: ../plug-ins/script-fu/script-fu.c:141 +msgid "Server for remote Script-Fu operation" +msgstr "Uzak Script-Fu işlemi için sunucu" + +#: ../plug-ins/script-fu/script-fu.c:146 +msgid "_Start Server..." +msgstr "Sunucuyu _Başlat..." + +#: ../plug-ins/script-fu/script-fu.c:302 +msgid "_GIMP Online" +msgstr "Çevrimiçi _GIMP" + +#: ../plug-ins/script-fu/script-fu.c:303 +msgid "_User Manual" +msgstr "_Kullanıcı Kılavuzu" + +#: ../plug-ins/script-fu/script-fu.c:306 +msgid "_Script-Fu" +msgstr "_Script-Fu" + +#: ../plug-ins/script-fu/script-fu.c:308 +msgid "_Test" +msgstr "_Dene" + +#: ../plug-ins/script-fu/script-fu.c:311 +msgid "_Buttons" +msgstr "_Düğmeler" + +#: ../plug-ins/script-fu/script-fu.c:313 +msgid "_Logos" +msgstr "_Logolar" + +#: ../plug-ins/script-fu/script-fu.c:315 +msgid "_Patterns" +msgstr "_Desenler" + +#: ../plug-ins/script-fu/script-fu.c:318 +msgid "_Web Page Themes" +msgstr "_Ağ Sayfası Temaları" + +#: ../plug-ins/script-fu/script-fu.c:320 +msgid "_Alien Glow" +msgstr "_Alien Glow" + +#: ../plug-ins/script-fu/script-fu.c:322 +msgid "_Beveled Pattern" +msgstr "_Eğimli Desen" + +#: ../plug-ins/script-fu/script-fu.c:324 +msgid "_Classic.Gimp.Org" +msgstr "_Classic.Gimp.Org" + +#: ../plug-ins/script-fu/script-fu.c:327 +msgid "Alpha to _Logo" +msgstr "_Logodan Görünüre" + +#: ../plug-ins/script-fu/script-fu.c:330 +msgid "Re-read all available Script-Fu scripts" +msgstr "Kullanılabilir tüm Script-Fu betiklerini yeniden oku" + +#: ../plug-ins/script-fu/script-fu.c:335 +msgid "_Refresh Scripts" +msgstr "Betikleri _Yenile" + +#: ../plug-ins/script-fu/script-fu.c:358 +msgid "" +"You can not use \"Refresh Scripts\" while a Script-Fu dialog box is open. " +"Please close all Script-Fu windows and try again." +msgstr "" +"Bir Script-Fu kutusu açıkken \"Betikleri Yenile\"yi kullanamazsınız. Lütfen " +"bütün Script-Fu pencerelerini kapatın ve yeniden deneyin." + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:1 +msgid "3D _Outline..." +msgstr "3B _Çerçeve..." + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:2 +msgid "Bumpmap (alpha layer) blur radius" +msgstr "Derinlik etkisi (görünür katman) bulanıklık yarıçapı" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:3 +msgid "Create a logo with outlined text and a drop shadow" +msgstr "Taslağı çizilmiş yazı ile bir logo ve gölge alanı oluştur" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:4 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:6 +msgid "Default bumpmap settings" +msgstr "Mevcut tümsek eşlem ayarları" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:5 +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:5 +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:4 +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:4 +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:3 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:3 +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:2 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:11 +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/chalk.scm.h:5 +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:8 +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:5 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:6 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:7 +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:2 +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/news-text.scm.h:7 +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:3 +#: ../plug-ins/script-fu/scripts/slide.scm.h:2 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:5 +#: ../plug-ins/script-fu/scripts/starscape-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:4 +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/title-header.scm.h:2 +msgid "Font" +msgstr "Yazıtipi" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:6 +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:6 +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:4 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:4 +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:3 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:12 +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/chalk.scm.h:6 +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:9 +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:6 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:7 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:8 +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:3 +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/news-text.scm.h:8 +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:4 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:6 +#: ../plug-ins/script-fu/scripts/starscape-logo.scm.h:3 +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:9 +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:5 +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/title-header.scm.h:3 +msgid "Font size (pixels)" +msgstr "Yazıyüzü boyutu (benek)" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:7 +msgid "Outline blur radius" +msgstr "Dış çizgi bulanıklık eğrisi" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:8 +msgid "" +"Outline the selected region (or alpha) with a pattern and add a drop shadow" +msgstr "" +"Seçilmiş bölge veya görünürün taslağını bir model ile çiz ve gölge alanı ekle" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:9 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:5 +#: ../plug-ins/script-fu/scripts/beveled-pattern-bullet.scm.h:3 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:5 +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:5 +#: ../plug-ins/script-fu/scripts/beveled-pattern-hrule.scm.h:3 +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:13 +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:11 +msgid "Pattern" +msgstr "Desen" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:10 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:16 +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:6 +msgid "Shadow X offset" +msgstr "X göreli konum gölgesi" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:11 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:17 +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:7 +msgid "Shadow Y offset" +msgstr "Y göreli konum gölgesi" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:12 +msgid "Shadow blur radius" +msgstr "Bulanık yarıçap gölgesi" + +#: ../plug-ins/script-fu/scripts/3d-outline.scm.h:13 +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:10 +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:10 +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:9 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:7 +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:6 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:17 +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:10 +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/chalk.scm.h:7 +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:14 +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:9 +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:11 +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:10 +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:13 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:17 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:18 +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:10 +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:7 +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:10 +#: ../plug-ins/script-fu/scripts/news-text.scm.h:10 +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:13 +#: ../plug-ins/script-fu/scripts/slide.scm.h:5 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:11 +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:8 +#: ../plug-ins/script-fu/scripts/starscape-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:11 +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:8 +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:14 +#: ../plug-ins/script-fu/scripts/title-header.scm.h:5 +msgid "Text" +msgstr "Metin" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:1 +msgid "3_D Truchet..." +msgstr "3_D Truchet..." + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:2 +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:1 +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:1 +#: ../plug-ins/script-fu/scripts/alien-glow-bullet.scm.h:1 +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:2 +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:3 +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:3 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:3 +#: ../plug-ins/script-fu/scripts/chalk.scm.h:1 +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:3 +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:1 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:2 +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:1 +#: ../plug-ins/script-fu/scripts/news-text.scm.h:1 +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:1 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:2 +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:1 +#: ../plug-ins/script-fu/scripts/truchet.scm.h:1 +msgid "Background color" +msgstr "Artalan rengi" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:3 +#: ../plug-ins/script-fu/scripts/truchet.scm.h:2 +msgid "Block size" +msgstr "Blok boyutu" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:4 +msgid "Create an image filled with a 3D Truchet pattern" +msgstr "3D Truchet şekli ile doldurulmuş bir resim oluştur" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:5 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:7 +msgid "End blend" +msgstr "Kaynaşımı sonlandır" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:6 +#: ../plug-ins/script-fu/scripts/truchet.scm.h:5 +msgid "Number of X tiles" +msgstr "X Kiremitlerinin sayısı" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:7 +#: ../plug-ins/script-fu/scripts/truchet.scm.h:6 +msgid "Number of Y tiles" +msgstr "Y kiremitlerinin sayısı" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:8 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:16 +msgid "Start blend" +msgstr "Kaynaşımı başlat" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:9 +msgid "Supersample" +msgstr "Üstörneklem" + +#: ../plug-ins/script-fu/scripts/3dTruchet.scm.h:10 +#: ../plug-ins/script-fu/scripts/add-bevel.scm.h:4 +#: ../plug-ins/script-fu/scripts/truchet.scm.h:8 +msgid "Thickness" +msgstr "Kalınlık" + +#: ../plug-ins/script-fu/scripts/add-bevel.scm.h:1 +msgid "Add B_evel..." +msgstr "E_ğim Ekle" + +#: ../plug-ins/script-fu/scripts/add-bevel.scm.h:2 +msgid "Add a beveled border to an image" +msgstr "Bir görüntüye eğimli bir sınır ekle" + +#: ../plug-ins/script-fu/scripts/add-bevel.scm.h:3 +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:12 +msgid "Keep bump layer" +msgstr "Tümsek katmanı koru" + +#: ../plug-ins/script-fu/scripts/add-bevel.scm.h:5 +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:10 +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:6 +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:8 +#: ../plug-ins/script-fu/scripts/slide.scm.h:6 +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:6 +msgid "Work on copy" +msgstr "Kopya üzerinde çalış" + +#: ../plug-ins/script-fu/scripts/addborder.scm.h:1 +msgid "Add _Border..." +msgstr "_Sınır Ekle..." + +#: ../plug-ins/script-fu/scripts/addborder.scm.h:2 +msgid "Add a border around an image" +msgstr "Bir görüntü etrafına bir sınır ekle" + +#: ../plug-ins/script-fu/scripts/addborder.scm.h:3 +msgid "Border X size" +msgstr "Sınırın X büyüklüğü" + +#: ../plug-ins/script-fu/scripts/addborder.scm.h:4 +msgid "Border Y size" +msgstr "Sınırın Y büyüklüğü" + +#: ../plug-ins/script-fu/scripts/addborder.scm.h:5 +msgid "Border color" +msgstr "Sınır rengi" + +#: ../plug-ins/script-fu/scripts/addborder.scm.h:6 +msgid "Delta value on color" +msgstr "Renk üzerindeki değişim değeri" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:2 +msgid "Create an arrow graphic with an eerie glow for web pages" +msgstr "Web sayfaları için tuhaf bir ışık ile ok şekli oluştur" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:3 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:2 +msgid "Down" +msgstr "Aşağı" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:4 +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:5 +#: ../plug-ins/script-fu/scripts/alien-glow-bullet.scm.h:3 +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:4 +#: ../plug-ins/script-fu/scripts/camo.scm.h:5 +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:6 +msgid "Flatten image" +msgstr "Görüntüyü düzleştir" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:5 +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:6 +#: ../plug-ins/script-fu/scripts/alien-glow-bullet.scm.h:4 +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:7 +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:6 +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:8 +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/starscape-logo.scm.h:4 +msgid "Glow color" +msgstr "Işık rengi" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:6 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:3 +msgid "Left" +msgstr "Sol" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:7 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:4 +msgid "Orientation" +msgstr "Konum" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:8 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:6 +msgid "Right" +msgstr "Sağ" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:9 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:7 +#: ../plug-ins/script-fu/scripts/lava.scm.h:7 +msgid "Size" +msgstr "Boyut" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:10 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:8 +msgid "Up" +msgstr "Yukarı" + +#: ../plug-ins/script-fu/scripts/alien-glow-arrow.scm.h:11 +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:9 +msgid "_Arrow..." +msgstr "_Ok..." + +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:2 +msgid "Bar height" +msgstr "Çubuk yüksekliği" + +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:3 +msgid "Bar length" +msgstr "Çubuk uzunluğu" + +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:4 +msgid "Create an Hrule graphic with an eerie glow for web pages" +msgstr "Web sayfaları için tuhaf bir ışık ile hrule şekli oluştur" + +#: ../plug-ins/script-fu/scripts/alien-glow-bar.scm.h:7 +#: ../plug-ins/script-fu/scripts/beveled-pattern-hrule.scm.h:5 +msgid "_Hrule..." +msgstr "_Hrule..." + +#: ../plug-ins/script-fu/scripts/alien-glow-bullet.scm.h:2 +msgid "Create a bullet graphic with an eerie glow for web pages" +msgstr "Web sayfaları için tuhaf bir ışık ile koyu nokta şekli oluştur" + +#: ../plug-ins/script-fu/scripts/alien-glow-bullet.scm.h:5 +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:6 +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:7 +msgid "Radius" +msgstr "Yarıçap" + +#: ../plug-ins/script-fu/scripts/alien-glow-bullet.scm.h:6 +#: ../plug-ins/script-fu/scripts/beveled-pattern-bullet.scm.h:5 +msgid "_Bullet..." +msgstr "_Koyu nokta..." + +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:1 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:1 +msgid "B_utton..." +msgstr "D_üğme..." + +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:3 +msgid "Create a button graphic with an eerie glow for web pages" +msgstr "Web sayfaları için tuhaf bir ışık ile buton şekli oluştur" + +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:8 +msgid "Glow radius" +msgstr "Işık yarıçapı" + +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:9 +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:6 +msgid "Padding" +msgstr "Tampon" + +#: ../plug-ins/script-fu/scripts/alien-glow-button.scm.h:11 +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:10 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:8 +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:18 +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:14 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:18 +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:8 +#: ../plug-ins/script-fu/scripts/news-text.scm.h:11 +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:14 +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:9 +msgid "Text color" +msgstr "Metin rengi" + +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:1 +msgid "Add an eerie glow around the selected region (or alpha)" +msgstr "Seçilmiş bölgenin veya görünürün etrafına tuhaf bir ışık ekle" + +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:2 +msgid "Alien _Glow..." +msgstr "Tuhaf _Işık" + +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:3 +msgid "Create a logo with an alien glow around the text" +msgstr "Tuhaf ışık ile yazının etrafına bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/alien-glow-logo.scm.h:7 +msgid "Glow size (pixels * 4)" +msgstr "Işık hacmi (benek * 4)" + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:1 +msgid "Add psychedelic outlines to the selected region (or alpha)" +msgstr "Seçilen bölge veya görünüre rengarenk dış çizgi ekle" + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:2 +msgid "Alien _Neon..." +msgstr "Tuhaf _Neon..." + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:4 +msgid "Create a logo with psychedelic outlines around the text" +msgstr "Yazının etrafında rengarenk çerçeveli bir logo oluşturun" + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:5 +msgid "Fade away" +msgstr "Karart" + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:9 +msgid "Number of bands" +msgstr "Şeritlerin sayısı" + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:11 +msgid "Width of bands" +msgstr "Bantların genişliği" + +#: ../plug-ins/script-fu/scripts/alien-neon-logo.scm.h:12 +msgid "Width of gaps" +msgstr "Aralıkların genişliği" + +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:1 +msgid "" +"Add a gradient effect, a drop shadow, and a background to the selected " +"region (or alpha)" +msgstr "" +"Eğimli bir etki, gölge ve artalanı seçili bölgeye (veya görünüre) ekleyin" + +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:3 +msgid "" +"Create a plain text logo with a gradient effect, a drop shadow, and a " +"background" +msgstr "Eğim etkili, gölge ve artalanlı bir düz yazı logosu oluşturun." + +#: ../plug-ins/script-fu/scripts/basic1-logo.scm.h:8 +msgid "_Basic I..." +msgstr "_Temel I..." + +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:1 +msgid "Add a shadow and a highlight to the selected region (or alpha)" +msgstr "Seçili bölge veya görünüre bir gölge veya vurgu ekleyin" + +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:2 +msgid "B_asic II..." +msgstr "T_emel II..." + +#: ../plug-ins/script-fu/scripts/basic2-logo.scm.h:4 +msgid "Create a simple logo with a shadow and a highlight" +msgstr "Bir gölgeli ve vurgulu basit bir logo oluşturun" + +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:1 +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:4 +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:1 +msgid "Bevel width" +msgstr "Eğimli genişlik" + +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:2 +msgid "Create a simple, beveled button graphic for webpages" +msgstr "Web sayfaları için basit, kabarık bir buton oluştur" + +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:5 +msgid "Lower-right color" +msgstr "Alt-sağ renk" + +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:7 +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:6 +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:11 +msgid "Pressed" +msgstr "Basılı" + +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:8 +msgid "Simple _Beveled Button..." +msgstr "Yalın _Eğimli Düğme..." + +#: ../plug-ins/script-fu/scripts/beveled-button.scm.h:11 +msgid "Upper-left color" +msgstr "Üst-sol renk" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-arrow.scm.h:1 +msgid "Create a beveled pattern arrow for webpages" +msgstr "Web sayfaları için kabarık ok deseni oluştur" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-bullet.scm.h:1 +msgid "Create a beveled pattern bullet for webpages" +msgstr "Web sayfaları için kabarık madde imi deseni oluştur" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-bullet.scm.h:2 +msgid "Diameter" +msgstr "Çevre" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-bullet.scm.h:4 +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:7 +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:4 +msgid "Transparent background" +msgstr "Saydam artalan" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-button.scm.h:2 +msgid "Create a beveled pattern button for webpages" +msgstr "Web sayfaları için kabarık madde imi deseni oluştur" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:1 +msgid "Create a beveled pattern heading for webpages" +msgstr "Web sayfaları için kabarık başlık deseni oluştur" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-heading.scm.h:4 +msgid "H_eading..." +msgstr "B_aşlık" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-hrule.scm.h:1 +msgid "Create a beveled pattern hrule for webpages" +msgstr "Web sayfaları için eğim desenli hrule oluştur" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-hrule.scm.h:2 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:8 +#: ../plug-ins/script-fu/scripts/gradient-example.scm.h:4 +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:7 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:7 +msgid "Height" +msgstr "Yükseklik" + +#: ../plug-ins/script-fu/scripts/beveled-pattern-hrule.scm.h:4 +#: ../plug-ins/script-fu/scripts/gradient-example.scm.h:5 +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:11 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:11 +msgid "Width" +msgstr "Genişlik" + +#: ../plug-ins/script-fu/scripts/blend-anim.scm.h:1 +msgid "Blend Animation needs at least three source layers" +msgstr "Kaynaşık Canlandırma için en az üç katman gerekli" + +#: ../plug-ins/script-fu/scripts/blend-anim.scm.h:2 +msgid "" +"Create intermediate layers to blend two or more layers over a background as " +"an animation" +msgstr "" +"İki ya da daha çok katmanı bir artalan üzerinde, canlandırma olarak " +"harmanlamak için ara katmanlar oluştur." + +#: ../plug-ins/script-fu/scripts/blend-anim.scm.h:3 +msgid "Intermediate frames" +msgstr "Ara çerçeveler" + +#: ../plug-ins/script-fu/scripts/blend-anim.scm.h:4 +msgid "Looped" +msgstr "Dönüşlü" + +#: ../plug-ins/script-fu/scripts/blend-anim.scm.h:5 +msgid "Max. blur radius" +msgstr "En yüksek bulanıklık yarıçapı" + +#: ../plug-ins/script-fu/scripts/blend-anim.scm.h:6 +msgid "_Blend..." +msgstr "_Kaynaşım..." + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:1 +msgid "" +"Add blended backgrounds, highlights, and shadows to the selected region (or " +"alpha)" +msgstr "" +"Seçilmiş bölgeye (ya da görünüre) kaynaşmış artalanlar, vurgular, ve " +"gölgeler ekle" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:3 +msgid "Blen_ded..." +msgstr "Kaynaş_tırıldı..." + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:4 +msgid "Blend mode" +msgstr "Kaynaşım kipi" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:5 +msgid "Create a logo with blended backgrounds, highlights, and shadows" +msgstr "Kaynaşmış artalanlar, vurgular, ve gölgelerle bir logo yap" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:6 +msgid "Custom Gradient" +msgstr "Seçimli Gradyan" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:8 +msgid "FG-BG-HSV" +msgstr "OP-AP-RDD" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:9 +msgid "FG-BG-RGB" +msgstr "ÖP-AP-KYM" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:10 +msgid "FG-Transparent" +msgstr "ÖP-Şeffaf" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:13 +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:7 +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/land.scm.h:3 +#: ../plug-ins/script-fu/scripts/lava.scm.h:2 +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:4 +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:9 +msgid "Gradient" +msgstr "Gradyan" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:14 +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:8 +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:9 +#: ../plug-ins/script-fu/scripts/gradient-example.scm.h:3 +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:5 +#: ../plug-ins/script-fu/scripts/title-header.scm.h:4 +msgid "Gradient reverse" +msgstr "Tersten renk geçişi" + +#: ../plug-ins/script-fu/scripts/blended-logo.scm.h:15 +msgid "Offset (pixels)" +msgstr "Ofset (piksel)" + +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:1 +msgid "Add 'cow spots' to the selected region (or alpha)" +msgstr "Seçilmiş bölgeye (ya da görünüre) 'sığır benekleri' ekle" + +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:2 +msgid "Background Color" +msgstr "Arkaplan Rengi" + +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:4 +msgid "Bo_vination..." +msgstr "Be_nekleme..." + +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:5 +msgid "Create a logo with text in the style of 'cow spots'" +msgstr "'Sığır benekleri' biçeminde üstünde yazı olan bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:8 +msgid "Spots density X" +msgstr "X'te Noktaların Yoğunluğu" + +#: ../plug-ins/script-fu/scripts/bovinated-logo.scm.h:9 +msgid "Spots density Y" +msgstr "Y'de Noktaların Yoğunluğu" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:1 +msgid "Add glowing" +msgstr "Korlama ekle" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:2 +msgid "After glow" +msgstr "Kordan sonra" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:3 +msgid "B_urn-In..." +msgstr "_İçine Yaz" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:4 +msgid "Corona width" +msgstr "Doruk genişliği" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:5 +msgid "" +"Create intermediate layers to produce an animated 'burn-in' transition " +"between two layers" +msgstr "" +"İki katman arasında 'burn-in' geçişi oluşturmak için ara katman oluştur" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:6 +msgid "Fadeout" +msgstr "Solma" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:7 +msgid "Fadeout width" +msgstr "Kararma Genişliği" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:9 +msgid "Prepare for GIF" +msgstr "GIF İçin Hazırla" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:10 +msgid "Speed (pixels/frame)" +msgstr "Hız (piksel/kare)" + +#: ../plug-ins/script-fu/scripts/burn-in-anim.scm.h:11 +msgid "" +"The Burn-In script needs two layers in total. A foreground layer with " +"transparency and a background layer." +msgstr "" +"Burn-In betiği transparan bir ön katman ve arka katman olmak üzere iki " +"katmana ihtiyaç duyar." + +#: ../plug-ins/script-fu/scripts/camo.scm.h:1 +msgid "Color 1" +msgstr "1. Renk" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:2 +msgid "Color 2" +msgstr "2. Renk" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:3 +msgid "Color 3" +msgstr "3. Renk" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:4 +msgid "Create an image filled with a camouflage pattern" +msgstr "Alalama örgüsüyle doldurulmuş bir görüntü oluştur" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:6 +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:6 +msgid "Granularity" +msgstr "Parçacıklılık" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:7 +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:7 +msgid "Image size" +msgstr "Görüntü boyutu" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:8 +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:3 +msgid "Smooth" +msgstr "Yumuşat" + +#: ../plug-ins/script-fu/scripts/camo.scm.h:9 +msgid "_Camouflage..." +msgstr "_Alalama" + +#: ../plug-ins/script-fu/scripts/carve-it.scm.h:1 +msgid "Carve white areas" +msgstr "Ak alanları oy" + +#: ../plug-ins/script-fu/scripts/carve-it.scm.h:2 +msgid "Image to carve" +msgstr "Oyulacak imge" + +#: ../plug-ins/script-fu/scripts/carve-it.scm.h:3 +msgid "Stencil C_arve..." +msgstr "Kalıp O_yma" + +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:1 +msgid "Background Image" +msgstr "Arkaplan Resmi" + +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:2 +msgid "Carve raised text" +msgstr "Kabarık yazıyı oy" + +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:3 +msgid "Carved..." +msgstr "Oyuldu..." + +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:4 +msgid "" +"Create a logo with text raised above or carved in to the specified " +"background image" +msgstr "Kabarık ya da belli bir imgenin içine oyulmuş yazılı bir logo yap" + +#: ../plug-ins/script-fu/scripts/carved-logo.scm.h:7 +msgid "Padding around text" +msgstr "Yazının etrafındaki boşluk" + +#: ../plug-ins/script-fu/scripts/chalk.scm.h:2 +msgid "Chalk color" +msgstr "Kireç taşı rengi" + +#: ../plug-ins/script-fu/scripts/chalk.scm.h:3 +msgid "Create a chalk drawing effect for the selected region (or alpha)" +msgstr "Seçilen bölge (ya da görünür) için kireçtaşı çizim etkisi oluştur" + +#: ../plug-ins/script-fu/scripts/chalk.scm.h:4 +msgid "Create a logo resembling chalk scribbled on a blackboard" +msgstr "Tebeşir karalamasına benzeyen logo oluştur." + +#: ../plug-ins/script-fu/scripts/chalk.scm.h:8 +msgid "_Chalk..." +msgstr "_Kireç taşı" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:1 +msgid "Add a chipped woodcarving effect to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) bir ağaç oyma etkisi ekle" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:2 +msgid "Blur amount" +msgstr "Bulanıklık niceliği" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:3 +msgid "Chip Awa_y..." +msgstr "Yont..." + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:4 +msgid "Chip amount" +msgstr "Yontma niceliği" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:5 +msgid "Create a logo resembling a chipped wood carving" +msgstr "Oyulmuş ağaca benzeyen bir imlek oluştur" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:6 +msgid "Drop shadow" +msgstr "Gölge düşür" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:7 +msgid "Fill BG with pattern" +msgstr "Artalanı örgüyle doldur" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:10 +msgid "Invert" +msgstr "Tersine Çevir" + +#: ../plug-ins/script-fu/scripts/chip-away.scm.h:11 +msgid "Keep background" +msgstr "Artalanı değiştirme" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:1 +msgid "" +"Add a chrome effect to the selected region (or alpha) using a specified " +"(grayscale) stencil" +msgstr "" +"Belirtilen kalıbı (gri ölçekli) kullanarak seçili bölgeye (ya da görünüre) " +"gümüş etkisi uygula" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:2 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:1 +msgid "Chrome balance" +msgstr "Krom dengesi" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:3 +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:2 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:2 +msgid "Chrome factor" +msgstr "Krom Katsayısı" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:4 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:3 +msgid "Chrome lightness" +msgstr "Krom parlaklığı" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:5 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:4 +msgid "Chrome saturation" +msgstr "Krom Doygunluğu" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:6 +msgid "Chrome white areas" +msgstr "Krom beyaz alanlar" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:7 +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:6 +msgid "Environment map" +msgstr "Ortam haritası" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:8 +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:9 +msgid "Highlight balance" +msgstr "Vurgu dengesi" + +#: ../plug-ins/script-fu/scripts/chrome-it.scm.h:9 +msgid "Stencil C_hrome..." +msgstr "Stencil C_hrome..." + +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:1 +msgid "Add a simple chrome effect to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) krom etkisi uygula" + +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:4 +msgid "C_hrome..." +msgstr "K_rom" + +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:5 +msgid "Create a simplistic, but cool, chromed logo" +msgstr "Basit ama hoş krom etkisi uygulanmış bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/chrome-logo.scm.h:8 +msgid "Offsets (pixels * 2)" +msgstr "Ofset (piksel * 2)" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:1 +msgid "Circuit seed" +msgstr "Devre tohumu" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:2 +msgid "" +"Fill the selected region (or alpha) with traces like those on a circuit board" +msgstr "" +"Seçili bölgeyi (ya da görünürü) daire üzerindeymiş gibi izlerle doldur" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:3 +#: ../plug-ins/script-fu/scripts/lava.scm.h:3 +#: ../plug-ins/script-fu/scripts/predator.scm.h:3 +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:11 +msgid "Keep selection" +msgstr "Seçileni tut" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:4 +msgid "No background (only for separate layer)" +msgstr "Artalan yok (yalnız ayrı katman için)" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:5 +msgid "Oilify mask size" +msgstr "Mask boyutunu yağlımsıla" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:6 +#: ../plug-ins/script-fu/scripts/lava.scm.h:6 +#: ../plug-ins/script-fu/scripts/predator.scm.h:6 +msgid "Separate layer" +msgstr "Ayrı katman" + +#: ../plug-ins/script-fu/scripts/circuit.scm.h:7 +msgid "_Circuit..." +msgstr "_Devre..." + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:1 +msgid "Add a cloth-like texture to the selected region (or alpha)" +msgstr "Seçilen bölgeye (ya da görünüre) bezimsi bir doku ekle" + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:2 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:1 +msgid "Azimuth" +msgstr "Azimut" + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:3 +msgid "Blur X" +msgstr "X Bulanıklığı" + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:4 +msgid "Blur Y" +msgstr "Y Bulanıklığı" + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:5 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:5 +msgid "Depth" +msgstr "Derinlik" + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:6 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:6 +msgid "Elevation" +msgstr "Kaldırma" + +#: ../plug-ins/script-fu/scripts/clothify.scm.h:7 +msgid "_Clothify..." +msgstr "_Bezimsileştir..." + +#: ../plug-ins/script-fu/scripts/coffee.scm.h:1 +msgid "Add realistic looking coffee stains to the image" +msgstr "Görüntüye gerçek gibi görünen kahve lekesi ekle" + +#: ../plug-ins/script-fu/scripts/coffee.scm.h:2 +msgid "Darken only" +msgstr "Sadece koyulaşan" + +#: ../plug-ins/script-fu/scripts/coffee.scm.h:3 +msgid "Stains" +msgstr "Lekeler" + +#: ../plug-ins/script-fu/scripts/coffee.scm.h:4 +msgid "_Coffee Stain..." +msgstr "_Kahve Lekesi..." + +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:1 +msgid "" +"Add a comic-book effect to the selected region (or alpha) by outlining and " +"filling with a gradient" +msgstr "" +"Seçili bölgeye (ya da görünüre) renk geçişi ile çevreleyen ve dolduran bir " +"çizgi roman etkisi uygula" + +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:3 +msgid "Comic Boo_k..." +msgstr "Karikatür Kitab_ı..." + +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:4 +msgid "" +"Create a comic-book style logo by outlining and filling with a gradient" +msgstr "" +"Kıyılarını çizerek ve içini bayırgıyla doldurarak, çizgi roman betiği " +"biçeminde bir imlek oluştur" + +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:9 +msgid "Outline color" +msgstr "Kıyı çizgisi rengi" + +#: ../plug-ins/script-fu/scripts/comic-logo.scm.h:10 +#: ../plug-ins/script-fu/scripts/glossy.scm.h:11 +msgid "Outline size" +msgstr "Kıyı çizgisi boyutu" + +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:1 +msgid "" +"Add a metallic effect to the selected region (or alpha) with reflections and " +"perspective shadows" +msgstr "" +"Yansımalarla ve gölgelerle seçili bölgeye (ya da görünüre) metalik etki ver" + +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:3 +msgid "Cool _Metal..." +msgstr "Soğuk _Metal..." + +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:4 +msgid "Create a metallic logo with reflections and perspective shadows" +msgstr "Yansımalarla ve gölgelerle metalik bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/coolmetal-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:4 +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:4 +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:5 +msgid "Effect size (pixels)" +msgstr "Etki boyutu (benek)" + +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:1 +msgid "Background image" +msgstr "Artalan görüntüsü" + +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:3 +msgid "" +"Create a logo with a crystal/gel effect displacing the image underneath" +msgstr "Resmin altından çıkartarak kristal/jel etkisi ile logo oluştur." + +#: ../plug-ins/script-fu/scripts/crystal-logo.scm.h:4 +msgid "Crystal..." +msgstr "Kristal..." + +#: ../plug-ins/script-fu/scripts/difference-clouds.scm.h:1 +msgid "Difference Clouds..." +msgstr "Farklı Bulutlar..." + +#: ../plug-ins/script-fu/scripts/difference-clouds.scm.h:2 +msgid "Solid noise applied with Difference layer mode" +msgstr "Değişik katman modu ile keskin ses uygulandı" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:1 +msgid "Distress the selection" +msgstr "Seçimi yıprat" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:2 +msgid "Granularity (1 is low)" +msgstr "Tanelilik (1 düşük)" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:4 +msgid "Smooth horizontally" +msgstr "Enine Yumuşalık" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:5 +msgid "Smooth vertically" +msgstr "Boyuna Yumuşalık" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:6 +msgid "Spread" +msgstr "Etrafa Saç" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:7 +msgid "Threshold (bigger 1<-->255 smaller)" +msgstr "Eşik (en büyük 1<-->255 en küçük)" + +#: ../plug-ins/script-fu/scripts/distress-selection.scm.h:8 +msgid "_Distort..." +msgstr "_Bük..." + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:1 +msgid "Add a drop shadow to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) gölge ekle" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:2 +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:2 +msgid "Allow resizing" +msgstr "Yeniden boyutlandırmaya izin ver" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:3 +#: ../plug-ins/script-fu/scripts/news-text.scm.h:2 +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:4 +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:3 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:3 +msgid "Blur radius" +msgstr "Bulanıklık yarıçapı" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:4 +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:5 +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:5 +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:5 +msgid "Color" +msgstr "Renk" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:5 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:11 +msgid "Offset X" +msgstr "X Ofset" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:6 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:12 +msgid "Offset Y" +msgstr "Y Ofset" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:7 +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:7 +msgid "Opacity" +msgstr "Saydamsızlık" + +#: ../plug-ins/script-fu/scripts/drop-shadow.scm.h:8 +msgid "_Drop Shadow..." +msgstr "Gölge _Düşür..." + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:1 +msgid "Columns" +msgstr "Sütunlar" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:2 +msgid "Erase" +msgstr "Sil" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:3 +msgid "Erase every other row or column" +msgstr "Diğer satır ve sütunları sil" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:4 +msgid "Erase/fill" +msgstr "Sil/doldur" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:5 +msgid "Even" +msgstr "Çift" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:6 +msgid "Even/odd" +msgstr "Tek/çift" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:7 +msgid "Fill with BG" +msgstr "Arkaplanla Doldur" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:8 +msgid "Odd" +msgstr "Tek" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:9 +msgid "Rows" +msgstr "Satırlar" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:10 +msgid "Rows/cols" +msgstr "Satırlar/Sütunlar" + +#: ../plug-ins/script-fu/scripts/erase-rows.scm.h:11 +msgid "_Erase Every Other Row..." +msgstr "Öteki Bütün Satırları _Sil..." + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:1 +msgid "Create an image filled with a Land Pattern" +msgstr "Toprak Örgüsüyle doldurulmuş bir imge oluştur" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:2 +#: ../plug-ins/script-fu/scripts/land.scm.h:2 +msgid "Detail level" +msgstr "Ayrıntı düzeyi" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:3 +#: ../plug-ins/script-fu/scripts/land.scm.h:4 +msgid "Image height" +msgstr "Görüntü yüksekliği" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:4 +#: ../plug-ins/script-fu/scripts/land.scm.h:5 +msgid "Image width" +msgstr "Görüntü genişliği" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:5 +#: ../plug-ins/script-fu/scripts/land.scm.h:7 +msgid "Random seed" +msgstr "Rasgele tohum" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:6 +#: ../plug-ins/script-fu/scripts/land.scm.h:8 +msgid "Scale X" +msgstr "X Ölçeği" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:7 +#: ../plug-ins/script-fu/scripts/land.scm.h:9 +msgid "Scale Y" +msgstr "Y Ölçeği" + +#: ../plug-ins/script-fu/scripts/flatland.scm.h:8 +msgid "_Flatland..." +msgstr "_Düztoprak..." + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:1 +msgid "Active colors" +msgstr "Etkin renkler" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:2 +msgid "Black on white" +msgstr "Beyaz üzerine siyah" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:3 +msgid "" +"Create an image filled with previews of fonts matching a fontname filter" +msgstr "" +"Yazıyüzü adı süzgecine karşılık gelen yazıyüzlerinin, önizlemeleriyle " +"doldurulmuş bir imge oluştur" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:4 +msgid "Font _size (pixels)" +msgstr "Yazıyüzü _boyutu (benek)" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:5 +msgid "Render _Font Map..." +msgstr "_Yazıyüzü Haritası İşle..." + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:6 +msgid "Use font _name as text" +msgstr "Yazıyüzü _adını metin olarak kullan" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:7 +msgid "_Border (pixels)" +msgstr "_Sınır (benek)" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:8 +msgid "_Color scheme" +msgstr "_Renk şeması" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:9 +msgid "_Filter (regexp)" +msgstr "_Süzgeç (düzenli anlatım)" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:10 +msgid "_Labels" +msgstr "_Etiketler" + +#: ../plug-ins/script-fu/scripts/font-map.scm.h:11 +msgid "_Text" +msgstr "_Metin" + +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:1 +msgid "" +"Add a frost effect to the selected region (or alpha) with an added drop " +"shadow" +msgstr "Ekli gölgeyle seçili bölgeye (ya da görünüre) donma etkisi uygula" + +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:3 +msgid "Create frozen logo with an added drop shadow" +msgstr "Ekli kabartı gölgesiyle donma etkisi uygulanmış bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/frosty-logo.scm.h:8 +msgid "_Frosty..." +msgstr "_Donuk..." + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:1 +msgid "Add a jagged, fuzzy border to an image" +msgstr "Resme çıkıntılı, donuk çerçeve uygula" + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:2 +msgid "Add shadow" +msgstr "Gölge ekle" + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:3 +msgid "Blur border" +msgstr "Bulanık sınır çizgisi" + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:4 +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:1 +msgid "Border size" +msgstr "Sınır boyutu" + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:7 +msgid "Granularity (1 is Low)" +msgstr "Parçacıklılık (1 Küçük Olmak Üzere)" + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:9 +#, no-c-format +msgid "Shadow weight (%)" +msgstr "Gölge kalınlığı" + +#: ../plug-ins/script-fu/scripts/fuzzyborder.scm.h:11 +msgid "_Fuzzy Border..." +msgstr "_Bulanık Sınır..." + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:1 +msgid "Autocrop" +msgstr "Otomatik Kırp" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:2 +msgid "Create an image of a large header using the gimp.org webpage theme" +msgstr "" +"gimp.org web sayfası desenini kullanarak, büyük bir üstbilgi imgesi oluşturun" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:3 +msgid "Create an image of a small header using the gimp.org webpage theme" +msgstr "" +"gimp.org web sayfası desenini kullanarak, küçük bir üstbilgi imgesi oluşturun" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:4 +msgid "Dark color" +msgstr "Koyu renk" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:7 +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:9 +msgid "Highlight color" +msgstr "Aydınlatma rengi" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:8 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:9 +msgid "Index image" +msgstr "Resim bilgisi" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:9 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:10 +msgid "Number of colors" +msgstr "Renk sayısı" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:10 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:13 +msgid "Remove background" +msgstr "Artalanı kaldır" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:11 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:14 +msgid "Select-by-color threshold" +msgstr "Renge göre seçim eşiği" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:12 +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:15 +msgid "Shadow color" +msgstr "Gölge rengi" + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:15 +msgid "_Big Header..." +msgstr "_Büyük Üstbilgi..." + +#: ../plug-ins/script-fu/scripts/gimp-headers.scm.h:16 +msgid "_Small Header..." +msgstr "_Küçük Üstbilgi..." + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:2 +msgid "" +"Create an image of a Tube Button Label Header using the gimp.org webpage " +"theme" +msgstr "" +"gimp.org web sayfa temasını kullanarak Tüp Düğme Etiket başlığı resmi " +"oluştur." + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:3 +msgid "" +"Create an image of a Tube Button Label using the gimp.org webpage theme" +msgstr "" +"gimp.org web sayfası temasını kullanarak Tüp Düğme Etiketi resmi oluştur" + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:4 +msgid "" +"Create an image of a second level Tube Button Label using the gimp.org " +"webpage theme" +msgstr "" +"gimp.org web sayfası teması kullanarak ikinci seviye Tüp Düğme etiketinin " +"resmini oluştur." + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:5 +msgid "" +"Create an image of a third level Tube Button Label using the gimp.org " +"webpage theme" +msgstr "" +"gimp.org web sayfası teması kullanarak üçüncü seviye Tüp Düğme etiketinin " +"resmini oluştur." + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:16 +msgid "T_ube Sub-Button Label..." +msgstr "T_üp Alt-Düğme Etiketi" + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:19 +msgid "Tub_e Sub-Sub-Button Label..." +msgstr "T_üp Alt-Alt-Düğme Etiketi" + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:20 +msgid "_General Tube Labels..." +msgstr "_Genel Tüp Etiketleri" + +#: ../plug-ins/script-fu/scripts/gimp-labels.scm.h:21 +msgid "_Tube Button Label..." +msgstr "_Tüp Düğme Etiketi ..." + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:1 +msgid "" +"Add gradients, patterns, shadows, and bump maps to the selected region (or " +"alpha)" +msgstr "" +"Seçilen bölgeye (ya da görünüre) renk geçişleri, desenler, gölgeler ve " +"derinlik etkisi ekle" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:3 +msgid "Blend gradient (outline)" +msgstr "Renk Geçişi Uygula(dış çizgi)" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:4 +msgid "Blend gradient (text)" +msgstr "Renk Geçişi Uygula(metin)" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:5 +msgid "Create a logo with gradients, patterns, shadows, and bump maps" +msgstr "" +"Renk geçişleri, desenler, gölgeler ve derinlik etkileri ile bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:9 +msgid "Glo_ssy..." +msgstr "Par_lak" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:10 +msgid "Outline gradient reverse" +msgstr "Dış çizginin renk geçişini tersine çevir" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:12 +msgid "Pattern (outline)" +msgstr "Desen(dış çizgi)" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:13 +msgid "Pattern (overlay)" +msgstr "Örüntü (bindirme)" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:14 +msgid "Pattern (text)" +msgstr "Desen(metin)" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:15 +msgid "Shadow" +msgstr "Gölge" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:19 +msgid "Text gradient reverse" +msgstr "Metinin renk geçişini tersine çevir" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:20 +msgid "Use pattern for outline instead of gradient" +msgstr "Dış çizgi için renk geçişi yerine desen kullan" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:21 +msgid "Use pattern for text instead of gradient" +msgstr "Metin için renk geçişi yerine desen kullan" + +#: ../plug-ins/script-fu/scripts/glossy.scm.h:22 +msgid "Use pattern overlay" +msgstr "Desen kaplaması kullan" + +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:1 +msgid "Add a glowing hot metal effect to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) kızgın bir metal etkisi ekleyin" + +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:3 +msgid "Create a logo that looks like glowing hot metal" +msgstr "Kızgın korlu ir gibi görünen bir imlek yap" + +#: ../plug-ins/script-fu/scripts/glowing-logo.scm.h:7 +msgid "Glo_wing Hot..." +msgstr "Kor Kızıl..." + +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:1 +msgid "Add a shiny look and bevel effect to the selected region (or alpha)" +msgstr "" +"Seçili bölgeye (ya da görünüre) parlak bir görünüm ve eğim etkisi ekle" + +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:3 +msgid "Bevel height (sharpness)" +msgstr "Eğim yüksekliği (keskinlik)" + +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:5 +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:4 +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:2 +msgid "Border size (pixels)" +msgstr "Sınır boyutu (benek)" + +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:6 +msgid "Create a logo with a shiny look and beveled edges" +msgstr "Parlak görünümlü ve eğik kıyılı bir logo yap" + +#: ../plug-ins/script-fu/scripts/gradient-bevel-logo.scm.h:9 +msgid "Gradient Beve_l..." +msgstr "Bayırgı_lı Renk Geçişi..." + +#: ../plug-ins/script-fu/scripts/gradient-example.scm.h:1 +msgid "Create an image filled with an example of the current gradient" +msgstr "Geçerli renk geçişi ile doldurulmuş bir resim oluştur" + +#: ../plug-ins/script-fu/scripts/gradient-example.scm.h:2 +msgid "Custom _Gradient..." +msgstr "Seçimlik _Bayırgı..." + +#: ../plug-ins/script-fu/scripts/grid-system.scm.h:1 +#: ../plug-ins/script-fu/scripts/guides-from-selection.scm.h:1 +msgid "" +"Draw a grid as specified by the lists of X and Y locations using the current " +"brush" +msgstr "" +"Şu anki fırçayı kullanarak, X ve Y konumlarınca belirlenmiş bir ızgara çiz" + +#: ../plug-ins/script-fu/scripts/grid-system.scm.h:2 +msgid "X divisions" +msgstr "X bölümleri" + +#: ../plug-ins/script-fu/scripts/grid-system.scm.h:3 +msgid "Y divisions" +msgstr "Y bölümleri" + +#: ../plug-ins/script-fu/scripts/grid-system.scm.h:4 +msgid "_Grid..." +msgstr "_Izgara..." + +#: ../plug-ins/script-fu/scripts/guides-from-selection.scm.h:2 +msgid "New Guides from _Selection" +msgstr "_Seçimden yeni kılavuzlar" + +#: ../plug-ins/script-fu/scripts/guides-new-percent.scm.h:1 +msgid "" +"Add a guide at the position specified as a percentage of the image size" +msgstr "İmge boyutunun yüzdesi olarak belirlenen konuma bir kılavuz ekle" + +#: ../plug-ins/script-fu/scripts/guides-new-percent.scm.h:2 +#: ../plug-ins/script-fu/scripts/guides-new.scm.h:2 +msgid "Direction" +msgstr "Yön" + +#: ../plug-ins/script-fu/scripts/guides-new-percent.scm.h:3 +#: ../plug-ins/script-fu/scripts/guides-new.scm.h:3 +msgid "Horizontal" +msgstr "Yatay" + +#: ../plug-ins/script-fu/scripts/guides-new-percent.scm.h:4 +msgid "New Guide (by _Percent)..." +msgstr "Yeni Kılavuz (_Yüzde olarak)" + +#: ../plug-ins/script-fu/scripts/guides-new-percent.scm.h:6 +#, no-c-format +msgid "Position (in %)" +msgstr "Konum (% içinde)" + +#: ../plug-ins/script-fu/scripts/guides-new-percent.scm.h:7 +#: ../plug-ins/script-fu/scripts/guides-new.scm.h:6 +msgid "Vertical" +msgstr "Dikey" + +#: ../plug-ins/script-fu/scripts/guides-new.scm.h:1 +msgid "Add a guide at the orientation and position specified (in pixels)" +msgstr "Belirlenen yön ve konuma (benek olarak) bir kılavuz ekle" + +#: ../plug-ins/script-fu/scripts/guides-new.scm.h:4 +msgid "New _Guide..." +msgstr "Yeni _Kılavuz..." + +#: ../plug-ins/script-fu/scripts/guides-new.scm.h:5 +msgid "Position" +msgstr "Konum" + +#: ../plug-ins/script-fu/scripts/guides-remove-all.scm.h:1 +msgid "Remove all horizontal and vertical guides" +msgstr "Bütün yatay ve dikey kılavuzları kaldır" + +#: ../plug-ins/script-fu/scripts/guides-remove-all.scm.h:2 +msgid "_Remove all Guides" +msgstr "Bütün Kılavuzları _Kaldır" + +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:1 +msgid "Create a logo in a two-color, scribbled text style" +msgstr "İki renkli, çiziktirilmiş yazı biçeminde bir logo yap" + +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:4 +msgid "Frame color" +msgstr "Çerçeve rengi" + +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:5 +msgid "Frame size" +msgstr "Çerçeve boyutu" + +#: ../plug-ins/script-fu/scripts/i26-gunya2.scm.h:6 +msgid "Imigre-_26..." +msgstr "Imigre-_26..." + +#: ../plug-ins/script-fu/scripts/land.scm.h:1 +msgid "Create an image filled with a topographic map pattern" +msgstr "Yerbetimsel eşlem örgüsüyle doldurulmuş bir imge oluştur" + +#: ../plug-ins/script-fu/scripts/land.scm.h:6 +msgid "Land height" +msgstr "Kara yüksekliği" + +#: ../plug-ins/script-fu/scripts/land.scm.h:10 +msgid "Sea depth" +msgstr "Deniz derinliği" + +#: ../plug-ins/script-fu/scripts/land.scm.h:11 +msgid "_Land..." +msgstr "_Kara..." + +#: ../plug-ins/script-fu/scripts/lava.scm.h:1 +msgid "Fill the current selection with lava" +msgstr "Seçilen alanı püskürtüyle doldur" + +#: ../plug-ins/script-fu/scripts/lava.scm.h:4 +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:8 +msgid "Roughness" +msgstr "Engebe Miktarı" + +#: ../plug-ins/script-fu/scripts/lava.scm.h:5 +msgid "Seed" +msgstr "Tohum" + +#: ../plug-ins/script-fu/scripts/lava.scm.h:8 +msgid "Use current gradient" +msgstr "Seçili renk geçişini kullan" + +#: ../plug-ins/script-fu/scripts/lava.scm.h:9 +msgid "_Lava..." +msgstr "_Püskürtü" + +#: ../plug-ins/script-fu/scripts/line-nova.scm.h:1 +msgid "" +"Fill a layer with rays emanating outward from its center using the FG color" +msgstr "" +"Bir katmanı FG renkleri kullanarak merkezden dışa doğru yayılan ışıkla doldur" + +#: ../plug-ins/script-fu/scripts/line-nova.scm.h:2 +msgid "Line _Nova..." +msgstr "_Nova çizgisi" + +#: ../plug-ins/script-fu/scripts/line-nova.scm.h:3 +msgid "Number of lines" +msgstr "Çizgi sayısı" + +#: ../plug-ins/script-fu/scripts/line-nova.scm.h:4 +msgid "Offset radius" +msgstr "Denge yarıçapı" + +#: ../plug-ins/script-fu/scripts/line-nova.scm.h:5 +msgid "Randomness" +msgstr "Raslantısallık" + +#: ../plug-ins/script-fu/scripts/line-nova.scm.h:6 +msgid "Sharpness (degrees)" +msgstr "Keskinlik (derece)" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:1 +msgid "Create a rectangular brush" +msgstr "Dikdörtgen bir fırça oluştur" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:2 +msgid "Create a rectangular brush with feathered edges" +msgstr "Tüylü kıyılı, dikdörtgen bir fırça oluştur" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:3 +msgid "Create an elliptical brush" +msgstr "Söbe bir fırça oluştur" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:4 +msgid "Create an elliptical brush with feathered edges" +msgstr "Tüylü kıyılı, söbe bir fırça oluştur" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:5 +msgid "Elli_ptical, Feathered..." +msgstr "Sö_be, Tüylü..." + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:6 +msgid "Feathering" +msgstr "Yumuşak Geçiş" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:8 +msgid "Name" +msgstr "Ad" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:9 +msgid "Re_ctangular, Feathered..." +msgstr "Dik_dörtgen, Tüylü..." + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:10 +#: ../plug-ins/script-fu/scripts/paste-as-brush.scm.h:5 +#: ../plug-ins/script-fu/scripts/select-to-brush.scm.h:4 +msgid "Spacing" +msgstr "Boşluk" + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:12 +msgid "_Elliptical..." +msgstr "_Söbe..." + +#: ../plug-ins/script-fu/scripts/mkbrush.scm.h:13 +msgid "_Rectangular..." +msgstr "_Dikdörtgen..." + +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:2 +msgid "Convert the selected region (or alpha) into a neon-sign like object" +msgstr "Seçilen bölgeyi (ya da görünürü) neon benzeri bir nesneye çevir" + +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:3 +msgid "Create a logo in the style of a neon sign" +msgstr "Neon biçeminde bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:4 +msgid "Create shadow" +msgstr "Gölge oluştur" + +#: ../plug-ins/script-fu/scripts/neon-logo.scm.h:9 +msgid "N_eon..." +msgstr "N_eon" + +#: ../plug-ins/script-fu/scripts/news-text.scm.h:3 +msgid "Cell size (pixels)" +msgstr "Hücre boyutu (benek)" + +#: ../plug-ins/script-fu/scripts/news-text.scm.h:4 +msgid "Create a logo in the style of newspaper printing" +msgstr "Gazete baskısı stilinde bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/news-text.scm.h:6 +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:4 +#, no-c-format +msgid "Density (%)" +msgstr "Yoğunluk (%)" + +#: ../plug-ins/script-fu/scripts/news-text.scm.h:9 +msgid "Newsprint Te_xt..." +msgstr "Gazete Ya_zısı" + +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:2 +msgid "Defocus" +msgstr "Odak Dışına Çıkar" + +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:3 +msgid "Make an image look like an old photo" +msgstr "Resmi eski fotoğraf görünümünde yap" + +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:4 +msgid "Mottle" +msgstr "Benekle" + +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:5 +msgid "Sepia" +msgstr "Renksiz" + +#: ../plug-ins/script-fu/scripts/old-photo.scm.h:7 +msgid "_Old Photo..." +msgstr "_Eski Fotoğraf..." + +#: ../plug-ins/script-fu/scripts/paste-as-brush.scm.h:1 +#: ../plug-ins/script-fu/scripts/select-to-brush.scm.h:1 +msgid "Brush name" +msgstr "Fırça adı" + +#: ../plug-ins/script-fu/scripts/paste-as-brush.scm.h:2 +#: ../plug-ins/script-fu/scripts/paste-as-pattern.scm.h:1 +#: ../plug-ins/script-fu/scripts/select-to-brush.scm.h:3 +#: ../plug-ins/script-fu/scripts/select-to-pattern.scm.h:2 +msgid "File name" +msgstr "Dosya adı" + +#: ../plug-ins/script-fu/scripts/paste-as-brush.scm.h:3 +msgid "New _Brush..." +msgstr "Yeni _Fırça" + +#: ../plug-ins/script-fu/scripts/paste-as-brush.scm.h:4 +msgid "Paste the clipboard contents into a new brush" +msgstr "Panodaki içeriği yeni fırçaya yapıştır" + +#: ../plug-ins/script-fu/scripts/paste-as-brush.scm.h:6 +#: ../plug-ins/script-fu/scripts/paste-as-pattern.scm.h:5 +msgid "There is no image data in the clipboard to paste." +msgstr "Panoda yapıştırılacak görüntü verisi yok." + +#: ../plug-ins/script-fu/scripts/paste-as-pattern.scm.h:2 +msgid "New _Pattern..." +msgstr "Yeni Desen" + +#: ../plug-ins/script-fu/scripts/paste-as-pattern.scm.h:3 +msgid "Paste the clipboard contents into a new pattern" +msgstr "Pano içeriğini yeni bir desene yapıştır" + +#: ../plug-ins/script-fu/scripts/paste-as-pattern.scm.h:4 +#: ../plug-ins/script-fu/scripts/select-to-pattern.scm.h:3 +msgid "Pattern name" +msgstr "Desen adı" + +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:1 +msgid "Add a perspective shadow to the selected region (or alpha)" +msgstr "Seçilen bölgeye (ya da görünüre) görüngesel gölge ekle" + +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:3 +msgid "Angle" +msgstr "Açı" + +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:6 +msgid "Interpolation" +msgstr "Ara değeri bulma" + +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:8 +msgid "Relative distance of horizon" +msgstr "Görüşün bağıl uzaklığı" + +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:9 +msgid "Relative length of shadow" +msgstr "Gölgenin bağıl uzunluğu" + +#: ../plug-ins/script-fu/scripts/perspective-shadow.scm.h:10 +msgid "_Perspective..." +msgstr "_Görünge..." + +#: ../plug-ins/script-fu/scripts/predator.scm.h:1 +msgid "Add a 'Predator' effect to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) 'Yırtıcı' etkisi uygula" + +#: ../plug-ins/script-fu/scripts/predator.scm.h:2 +msgid "Edge amount" +msgstr "Kenar miktarı" + +#: ../plug-ins/script-fu/scripts/predator.scm.h:4 +msgid "Pixel amount" +msgstr "Benek niceliği" + +#: ../plug-ins/script-fu/scripts/predator.scm.h:5 +msgid "Pixelize" +msgstr "Pikselleştir" + +#: ../plug-ins/script-fu/scripts/predator.scm.h:7 +msgid "_Predator..." +msgstr "_Yırtıcı..." + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:2 +msgid "Create images, each containing an oval button graphic" +msgstr "Herbiri bir oval düğme grafiği içeren resimler oluşturun" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:5 +msgid "Lower color" +msgstr "Alt renk" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:6 +msgid "Lower color (active)" +msgstr "Alt renk (etkin)" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:7 +msgid "Not pressed" +msgstr "Basılmadı" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:8 +msgid "Not pressed (active)" +msgstr "Basılmadı (etkin)" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:9 +msgid "Padding X" +msgstr "X'te Tampon" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:10 +msgid "Padding Y" +msgstr "Y'de Tampon" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:12 +msgid "Round ratio" +msgstr "Yuvarlak oranı" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:15 +msgid "Text color (active)" +msgstr "Yazı rengi (etkin)" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:16 +msgid "Upper color" +msgstr "Üst renk" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:17 +msgid "Upper color (active)" +msgstr "Daha yüksek renk (aktif)" + +#: ../plug-ins/script-fu/scripts/pupi-button.scm.h:18 +msgid "_Round Button..." +msgstr "_Yuvarlak Düğme..." + +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:1 +msgid "Behavior" +msgstr "Davranış" + +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:2 +msgid "Create an image filled with an Earth-like map pattern" +msgstr "Yeryüzü benzeri bir eşlem örüntüsüyle dolu bir imge oluşturun" + +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:3 +msgid "Detail in Middle" +msgstr "Detay Ortada" + +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:8 +msgid "Render _Map..." +msgstr "_Eşlem Oluştur..." + +#: ../plug-ins/script-fu/scripts/rendermap.scm.h:9 +msgid "Tile" +msgstr "Döşe" + +#: ../plug-ins/script-fu/scripts/reverse-layers.scm.h:1 +msgid "Reverse Layer Order" +msgstr "Katmanların Sırasını Tersine Çevir" + +#: ../plug-ins/script-fu/scripts/reverse-layers.scm.h:2 +msgid "Reverse the order of layers in the image" +msgstr "Resimdeki katmanların sırasını tersine çevir" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:1 +msgid "Black" +msgstr "Siyah" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:2 +msgid "" +"Create a multi-layer image by adding a ripple effect to the current image" +msgstr "" +"Geçerli resme dalgacık etkisi uygulayarak çok katmanlı yeni bir resim " +"oluştur." + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:3 +msgid "Edge behavior" +msgstr "Kıyı davranışı" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:4 +#: ../plug-ins/script-fu/scripts/waves-anim.scm.h:4 +msgid "Number of frames" +msgstr "Çerçeve sayısı" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:5 +msgid "Rippling strength" +msgstr "Dalgalanma gücü" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:6 +msgid "Smear" +msgstr "Yayma" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:7 +msgid "Wrap" +msgstr "Sarma" + +#: ../plug-ins/script-fu/scripts/ripply-anim.scm.h:8 +msgid "_Rippling..." +msgstr "_Dalgalanma..." + +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:1 +msgid "Add background" +msgstr "Artalan ekle" + +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:2 +msgid "Add drop-shadow" +msgstr "Kabartı gölgesi ekle" + +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:4 +msgid "Edge radius" +msgstr "Kenar yarıçapı" + +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:5 +msgid "" +"Round the corners of an image and optionally add a drop-shadow and background" +msgstr "" +"Bir imgenin köşelerini yuvarla, ve seçmeli olarak düşük gölge ve artalan ekle" + +#: ../plug-ins/script-fu/scripts/round-corners.scm.h:9 +msgid "_Round Corners..." +msgstr "Köşeleri _Yuvarla..." + +#: ../plug-ins/script-fu/scripts/script-fu-set-cmap.scm.h:1 +msgid "Change the colormap of an image to the colors in a specified palette." +msgstr "Resmin renk haritasını geçerli palet renklerine cevir." + +#: ../plug-ins/script-fu/scripts/script-fu-set-cmap.scm.h:2 +msgid "Palette" +msgstr "Palet" + +#: ../plug-ins/script-fu/scripts/script-fu-set-cmap.scm.h:3 +msgid "Se_t Colormap..." +msgstr "Renk Haritasını _Belirle..." + +#: ../plug-ins/script-fu/scripts/select-to-brush.scm.h:2 +msgid "Convert a selection to a brush" +msgstr "Seçimi fırçaya çevir" + +#: ../plug-ins/script-fu/scripts/select-to-brush.scm.h:5 +msgid "To _Brush..." +msgstr "_Fırçaya..." + +#: ../plug-ins/script-fu/scripts/select-to-image.scm.h:1 +msgid "Convert a selection to an image" +msgstr "Seçimi imgeye çevir" + +#: ../plug-ins/script-fu/scripts/select-to-image.scm.h:2 +msgid "To _Image" +msgstr "_Görüntüye" + +#: ../plug-ins/script-fu/scripts/select-to-pattern.scm.h:1 +msgid "Convert a selection to a pattern" +msgstr "Seçimi örüntüye çevir" + +#: ../plug-ins/script-fu/scripts/select-to-pattern.scm.h:4 +msgid "To _Pattern..." +msgstr "_Örüntüye" + +#: ../plug-ins/script-fu/scripts/selection-round.scm.h:1 +msgid "Concave" +msgstr "İç bükey" + +#: ../plug-ins/script-fu/scripts/selection-round.scm.h:3 +#, no-c-format +msgid "Radius (%)" +msgstr "Yarıçap (%)" + +#: ../plug-ins/script-fu/scripts/selection-round.scm.h:4 +msgid "Round the corners of the current selection" +msgstr "Şu anki seçimin köşelerini yuvarla" + +#: ../plug-ins/script-fu/scripts/selection-round.scm.h:5 +msgid "Rounded R_ectangle..." +msgstr "Yuvarlanmış D_ikdörtgen..." + +#: ../plug-ins/script-fu/scripts/slide.scm.h:1 +msgid "Add a slide-film like frame, sprocket holes, and labels to an image" +msgstr "Resme, çerçeve, dişli halkası ve etiketler gibi kaygan film ekle" + +#: ../plug-ins/script-fu/scripts/slide.scm.h:3 +msgid "Font color" +msgstr "Yazıyüzü rengi" + +#: ../plug-ins/script-fu/scripts/slide.scm.h:4 +msgid "Number" +msgstr "Sayı" + +#: ../plug-ins/script-fu/scripts/slide.scm.h:7 +msgid "_Slide..." +msgstr "_Kaydır..." + +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:5 +msgid "Create a State Of The Art chromed logo" +msgstr "Krom sanatı logosu oluştur." + +#: ../plug-ins/script-fu/scripts/sota-chrome-logo.scm.h:10 +msgid "SOTA Chrome..." +msgstr "SOTA krom" + +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:2 +msgid "Create a logo with a speedy text effect" +msgstr "Hızlı metin etkisi ile bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/speed-text.scm.h:7 +msgid "Speed Text..." +msgstr "Hızlı Metin..." + +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:1 +msgid "" +"Create an animation by mapping the current image onto a spinning sphere" +msgstr "Şu anki resmi dönen bir küreye uyarlayarak, bir canlandırma oluştur" + +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:2 +msgid "Frames" +msgstr "Kare Sayısı" + +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:3 +msgid "Index to n colors (0 = remain RGB)" +msgstr "n Renklerine içerik ( 0 = RGB kalan)" + +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:5 +msgid "Turn from left to right" +msgstr "Soldan sağa dön" + +#: ../plug-ins/script-fu/scripts/spinning-globe.scm.h:7 +msgid "_Spinning Globe..." +msgstr "_Dönen Küre..." + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:1 +msgid "" +"Add Spirographs, Epitrochoids, and Lissajous Curves to the current layer" +msgstr "" +"Geçerli katmana Spirografiler, Epitrokoidler ve Lissajous Eğrileri ekle" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:2 +msgid "Airbrush" +msgstr "Sprey" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:3 +msgid "Brush" +msgstr "Fırça" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:4 +msgid "Circle" +msgstr "Çember" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:6 +msgid "Color method" +msgstr "Renk yöntemi" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:7 +msgid "Epitrochoid" +msgstr "Epitrokoit" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:8 +msgid "Frame" +msgstr "Çerçeve" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:10 +msgid "Gradient: Loop Sawtooth" +msgstr "Renk Geçişi: Testere Dişi Dönüşlü" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:11 +msgid "Gradient: Loop Triangle" +msgstr "Renk Geçişi: Üçgen Dönüşlü" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:12 +msgid "Hexagon" +msgstr "Altıgen" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:13 +msgid "Hole ratio" +msgstr "Boşluk oranı" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:14 +msgid "Inner teeth" +msgstr "İç dişler" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:15 +msgid "Lissajous" +msgstr "Lissajous" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:16 +msgid "Margin (pixels)" +msgstr "Kenar (benek)" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:17 +msgid "Outer teeth" +msgstr "Dış dişler" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:18 +msgid "Pencil" +msgstr "Kalem" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:19 +msgid "Pentagon" +msgstr "Beşgen" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:20 +msgid "Polygon: 10 sides" +msgstr "Çokgen: 10 köşeli" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:21 +msgid "Polygon: 7 sides" +msgstr "Çokgen: 7 köşeli" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:22 +msgid "Polygon: 8 sides" +msgstr "Çokgen: 8 köşeli" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:23 +msgid "Polygon: 9 sides" +msgstr "Çokgen: 9 köşeli" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:24 +msgid "Rendering Spyro" +msgstr "Spyro İşleme" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:25 +msgid "Shape" +msgstr "Şekil" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:26 +msgid "Solid Color" +msgstr "Düz Renk" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:27 +msgid "Spyrograph" +msgstr "Spirograf" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:28 +msgid "Square" +msgstr "Kare" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:29 +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:7 +msgid "Start angle" +msgstr "Başlangıç açısı" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:30 +msgid "Tool" +msgstr "Araç" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:31 +msgid "Triangle" +msgstr "Üçgen" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:32 +msgid "Type" +msgstr "Tür" + +#: ../plug-ins/script-fu/scripts/spyrogimp.scm.h:33 +msgid "_Spyrogimp..." +msgstr "_Spyrogimp..." + +#: ../plug-ins/script-fu/scripts/starscape-logo.scm.h:1 +msgid "Create a logo using a rock-like texture, a nova glow, and shadow" +msgstr "" +"Kaya gibi bir doku, yıldız parlaklığı ve gölgelendirme kullanarak bir logo " +"oluşturun" + +#: ../plug-ins/script-fu/scripts/starscape-logo.scm.h:5 +msgid "Sta_rscape..." +msgstr "Yıl_dızalanı..." + +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:4 +msgid "Create an image filled with a swirled tile effect" +msgstr "Karo girdap etkisi ile doldurulmuş bir görüntü oluştur" + +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:9 +msgid "Swirl-_Tile..." +msgstr "Karo-_Girdap..." + +#: ../plug-ins/script-fu/scripts/swirltile.scm.h:10 +msgid "Whirl amount" +msgstr "Döndürme miktarı" + +#: ../plug-ins/script-fu/scripts/swirly-pattern.scm.h:1 +msgid "Create an image filled with a swirly pattern" +msgstr "Girdaplı model ile doldurulmuş bir görüntü oluştur" + +#: ../plug-ins/script-fu/scripts/swirly-pattern.scm.h:2 +msgid "Number of times to whirl" +msgstr "Döndürme sayısı" + +#: ../plug-ins/script-fu/scripts/swirly-pattern.scm.h:3 +msgid "Quarter size" +msgstr "Çeyrek boyut" + +#: ../plug-ins/script-fu/scripts/swirly-pattern.scm.h:4 +msgid "Whirl angle" +msgstr "Döndürme açısı" + +#: ../plug-ins/script-fu/scripts/swirly-pattern.scm.h:5 +msgid "_Swirly..." +msgstr "_Girdap..." + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:1 +msgid "Add a Trace of Particles effect to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) Parçacık İzi etkisi ekle" + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:3 +msgid "Base color" +msgstr "Temel renk" + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:5 +msgid "Create a logo using a Trace Of Particles effect" +msgstr "Parçacık İzi etkisi kullanarak bir logo oluştur" + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:6 +msgid "Edge only" +msgstr "Yalnız kıyı" + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:7 +msgid "Edge width" +msgstr "Kıyı genişliği" + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:10 +msgid "Hit rate" +msgstr "Vurma oranı" + +#: ../plug-ins/script-fu/scripts/t-o-p-logo.scm.h:12 +msgid "_Particle Trace..." +msgstr "_Parçacık İzi..." + +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:1 +msgid "Antialias" +msgstr "Örtüşmeönleyici" + +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:2 +msgid "" +"Create a logo by rendering the specified text along the perimeter of a circle" +msgstr "Bir çember çevresi boyunca belirlenen metini tarayarak logo oluştur" + +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:3 +msgid "Fill angle" +msgstr "Doldurma açısı" + +#: ../plug-ins/script-fu/scripts/text-circle.scm.h:9 +msgid "Text C_ircle..." +msgstr "Metin Çe_mberi..." + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:3 +msgid "" +"Create a textured logo with highlights, shadows, and a mosaic background" +msgstr "Vurgular, gölgeler ve mozaik artalan ile bir dokulu logo oluşturun" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:4 +msgid "Ending blend" +msgstr "Kaynaşım sonlandırılıyor" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:5 +msgid "" +"Fill the selected region (or alpha) with a texture and add highlights, " +"shadows, and a mosaic background" +msgstr "" +"Seçili bölgeyi (ya da görünürü) bir doku ile doldur ve vurgular, gölgeler ve " +"mozaik artalan ekle" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:8 +msgid "Hexagons" +msgstr "Altıgenler" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:9 +msgid "Mosaic tile type" +msgstr "Mozaik döşeme türü" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:10 +msgid "Octagons" +msgstr "Sekizgenler" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:12 +msgid "Squares" +msgstr "Kareler" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:13 +msgid "Starting blend" +msgstr "Kaynaşım başlatılıyor" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:15 +msgid "Text pattern" +msgstr "Yazı deseni" + +#: ../plug-ins/script-fu/scripts/textured-logo.scm.h:16 +msgid "_Textured..." +msgstr "_Dokulu..." + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:1 +msgid "Blur horizontally" +msgstr "Yatay bulandır" + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:2 +msgid "Blur the edges of an image so the result tiles seamlessly" +msgstr "" +"Resmin kesitlerini bulanıklaştır, böylece sonuç kusursuz biçimde döşenir" + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:3 +msgid "Blur type" +msgstr "Bulanıklık türü" + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:4 +msgid "Blur vertically" +msgstr "Dikey bulandır" + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:5 +msgid "IIR" +msgstr "IIR" + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:6 +msgid "RLE" +msgstr "RLE" + +#: ../plug-ins/script-fu/scripts/tileblur.scm.h:8 +msgid "_Tileable Blur..." +msgstr "_Döşenebilir Bulanıklaştırma..." + +#: ../plug-ins/script-fu/scripts/title-header.scm.h:1 +msgid "Create a decorative web title header" +msgstr "Süslü bir web başlığı oluştur" + +#: ../plug-ins/script-fu/scripts/title-header.scm.h:6 +msgid "Web Title Header..." +msgstr "Web Başlığı..." + +#: ../plug-ins/script-fu/scripts/truchet.scm.h:3 +msgid "Create an image filled with a Truchet pattern" +msgstr "Truchet deseni ile doldurulmuş bir resim oluştur" + +#: ../plug-ins/script-fu/scripts/truchet.scm.h:4 +msgid "Foreground color" +msgstr "Önalan rengi" + +#: ../plug-ins/script-fu/scripts/truchet.scm.h:7 +msgid "T_ruchet..." +msgstr "T_ruchet..." + +#: ../plug-ins/script-fu/scripts/unsharp-mask.scm.h:1 +msgid "Mask opacity" +msgstr "Maske matlığı" + +#: ../plug-ins/script-fu/scripts/unsharp-mask.scm.h:2 +msgid "Mask size" +msgstr "Maske boyutu" + +#: ../plug-ins/script-fu/scripts/waves-anim.scm.h:1 +msgid "Amplitude" +msgstr "Boyut" + +#: ../plug-ins/script-fu/scripts/waves-anim.scm.h:2 +msgid "" +"Create a multi-layer image with an effect like a stone was thrown into the " +"current image" +msgstr "" +"Geçerli görüntüye taş fırlatılmasına benzer bir etki vererek çoklu katman " +"görüntüsü oluştur" + +#: ../plug-ins/script-fu/scripts/waves-anim.scm.h:3 +msgid "Invert direction" +msgstr "Yönü Tersine Çevir" + +#: ../plug-ins/script-fu/scripts/waves-anim.scm.h:5 +msgid "Wavelength" +msgstr "Dalgaboyu" + +#: ../plug-ins/script-fu/scripts/waves-anim.scm.h:6 +msgid "_Waves..." +msgstr "_Dalgalar..." + +#: ../plug-ins/script-fu/scripts/weave.scm.h:1 +msgid "" +"Create a new layer filled with a weave effect to be used as an overlay or " +"bump map" +msgstr "Yeni bir katman oluşturarak resme hasır etkisi verir" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:2 +msgid "Ribbon spacing" +msgstr "Şerit aralığı" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:3 +msgid "Ribbon width" +msgstr "Şerit genişliği" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:4 +msgid "Shadow darkness" +msgstr "Gölge koyuluğu" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:5 +msgid "Shadow depth" +msgstr "Gölge derinliği" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:6 +msgid "Thread density" +msgstr "İşçik yoğunluğu" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:7 +msgid "Thread intensity" +msgstr "Parçacık yoğunluğu" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:8 +msgid "Thread length" +msgstr "İşçik uzunluğu" + +#: ../plug-ins/script-fu/scripts/weave.scm.h:9 +msgid "_Weave..." +msgstr "_Hasır..." + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:1 +msgid "Bookmark to the GIMP web site" +msgstr "GIMP web sitesinin yer imine ekleyin" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:2 +msgid "Bookmark to the user manual" +msgstr "Kullanıcı kılavuzunun yer imine ekleyin" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:3 +msgid "Create and Use _Selections" +msgstr "_Seçimleri Oluştur ve Kullan" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:4 +msgid "Create, Open and Save _Files" +msgstr "_Dosyaları Oluştur, Aç ve Kaydet" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:5 +msgid "Drawing _Simple Objects" +msgstr "_Yalın Nesne Çizimi" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:6 +msgid "How to Use _Dialogs" +msgstr "Nasıl Kullanılır _İletişim Kutuları" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:7 +msgid "Plug-in _Registry" +msgstr "Eklenti _Kayıt Defteri" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:8 +msgid "Using _Paths" +msgstr "_Yolları Kullanma" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:9 +msgid "_Basic Concepts" +msgstr "_Temel Kavramlar" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:10 +msgid "_Developer Web Site" +msgstr "_Geliştirici Web Sayfası" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:11 +msgid "_Main Web Site" +msgstr "_Ana Web Sayfası" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:12 +msgid "_Preparing your Images for the Web" +msgstr "Web için kendi İmgelerinizi _Hazırlama" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:13 +msgid "_User Manual Web Site" +msgstr "_Kullanıcı Kılavuzu Web Sayfası" + +#: ../plug-ins/script-fu/scripts/web-browser.scm.h:14 +msgid "_Working with Digital Camera Photos" +msgstr "Dijital Kamera Görüntüleri ile _çalışıyor" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:1 +msgid "Add a subtle translucent 3D effect to the selected region (or alpha)" +msgstr "Seçili bölgeye (ya da görünüre) 3 boyutlu cam etkisi ekle" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:2 +msgid "Drop shadow X offset" +msgstr "Gölgenin X konumu" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:3 +msgid "Drop shadow Y offset" +msgstr "Gölgenin Y konumu" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:4 +msgid "Drop shadow blur radius" +msgstr "Gölgenin bulanıklık yarıçapı" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:5 +msgid "Drop shadow color" +msgstr "Gölge rengi" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:6 +msgid "Drop shadow opacity" +msgstr "Gölge matlığı" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:7 +msgid "Highlight X offset" +msgstr "X konumunu aydınlat" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:8 +msgid "Highlight Y offset" +msgstr "Y konumunu aydınlat" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:10 +msgid "Highlight opacity" +msgstr "Aydınlatma şiddeti" + +#: ../plug-ins/script-fu/scripts/xach-effect.scm.h:12 +msgid "_Xach-Effect..." +msgstr "_Cam Etkisi" diff --git a/multimedia/graphics/gimp/gimp/files/po_gimp20-tr.po b/multimedia/graphics/gimp/gimp/files/po_gimp20-tr.po new file mode 100644 index 0000000000..7764af110a --- /dev/null +++ b/multimedia/graphics/gimp/gimp/files/po_gimp20-tr.po @@ -0,0 +1,12875 @@ +# Turkish translation of GIMP. +# Copyright (C) 2001,2003, 2004 Free Software Foundation, Inc. +# Fatih Demir , 2001. +# Ömer Fadıl USTA , 2001. +# Alper Ersoy , 2001. +# Görkem Çetin , 2003, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: gimp.gimp-2-0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-06-08 19:59+0000\n" +"PO-Revision-Date: 2011-01-22 14:58+0000\n" +"Last-Translator: Görkem Çetin \n" +"Language-Team: Türkçe \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Launchpad-Export-Date: 2011-08-09 06:12+0000\n" +"X-Generator: Launchpad (build 13628)\n" + +#: ../app/about.h:24 +msgid "GIMP" +msgstr "GIMP" + +#: ../app/about.h:27 +msgid "GNU Image Manipulation Program" +msgstr "GNU Resim Düzenleme Programı" + +#: ../app/about.h:30 +msgid "" +"Copyright © 1995-2008\n" +"Spencer Kimball, Peter Mattis and the GIMP Development Team" +msgstr "" +"Telif Hakkı © 1995-2008\n" +"Spencer Kimball, Peter Mattis ve the GIMP Geliştirme Takımı" + +#: ../app/about.h:34 +msgid "" +"GIMP is free software; you can redistribute it and/or modify it under the " +"terms of the GNU General Public License as published by the Free Software " +"Foundation; either version 2 of the License, or (at your option) any later " +"version.\n" +"\n" +"GIMP is distributed in the hope that it will be useful, but WITHOUT ANY " +"WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " +"FOR A PARTICULAR PURPOSE. See the GNU General Public License for more " +"details.\n" +"\n" +"You should have received a copy of the GNU General Public License along with " +"GIMP; if not, write to the Free Software Foundation, Inc., 59 Temple Place - " +"Suite 330, Boston, MA 02111-1307, USA." +msgstr "" +"GIMP özgür bir yazılımdır, Özgür Yazılım Vakfı'nın yayınladığı GNU Genel " +"Kamu Lisansı'nın 2. veya daha sonraki sürümlerindeki şartlar altında " +"dağıtılabilir ve/veya değiştirilebilir. \n" +"\n" +"GIMP faydalı olacağı umut edilerek dağıtılmaktadır, fakat HİÇBİR GARANTİSİ " +"YOKTUR; hatta ÜRÜN DEĞERİ ya da BİR AMACA UYGUNLUK gibi garantiler de " +"vermez. Lütfen daha fazla ayrıntı için GNU Genel Kamu Lisansı'nı inceleyin. " +"\n" +"\n" +"GIMP ile beraber GNU Genel Kamu Lisansını da almış olmalısınız; eğer " +"almadıysanız, Free Software Foundation, Inc., 59 Temple Place - Suite 330, " +"Boston, MA 02111-1307, USA adresine yazınız." + +#: ../app/app.c:214 +#, c-format +msgid "" +"Unable to open a test swap file.\n" +"\n" +"To avoid data loss, please check the location and permissions of the swap " +"directory defined in your Preferences (currently \"%s\")." +msgstr "" +"Bir deneme takas dosyası açılamadı.\n" +"\n" +"Veri kaybından kaçınmak için, takas dosyasının yerini ve izinlerini " +"Tercihler içinde kontrol edin (güncel olan \"%s\")." + +#: ../app/batch.c:75 +#, c-format +msgid "No batch interpreter specified, using the default '%s'.\n" +msgstr "Belirlenmiş toplu yorumlayıcı yok, öntanımlı '%s' kullanılıyor.\n" + +#: ../app/batch.c:93 ../app/batch.c:111 +#, c-format +msgid "The batch interpreter '%s' is not available. Batch mode disabled." +msgstr "Toplu yorumlayıcı '%s' kullanılır değil. Toplu kip etkin değil." + +#: ../app/main.c:144 ../tools/gimp-remote.c:60 +msgid "Show version information and exit" +msgstr "Sürüm bilgisini göster ve çık" + +#: ../app/main.c:149 +msgid "Show license information and exit" +msgstr "Lisans bilgisini göster ve çık" + +#: ../app/main.c:154 +msgid "Be more verbose" +msgstr "Daha çok bilgi ver" + +#: ../app/main.c:159 +msgid "Start a new GIMP instance" +msgstr "Yeni bir GIMP örneği başlat" + +#: ../app/main.c:164 +msgid "Open images as new" +msgstr "Görüntüleri yeni olarak aç" + +#: ../app/main.c:169 +msgid "Run without a user interface" +msgstr "Bir kullanıcı arabirimi olmadan çalıştır" + +#: ../app/main.c:174 +msgid "Do not load brushes, gradients, patterns, ..." +msgstr "Fırçaları, renk geçişlerini, desenleri, ... yükleme." + +#: ../app/main.c:179 +msgid "Do not load any fonts" +msgstr "Herhangi bir yazıyüzünü yükleme" + +#: ../app/main.c:184 +msgid "Do not show a startup window" +msgstr "Açılış penceresini gösterme." + +#: ../app/main.c:189 +msgid "Do not use shared memory between GIMP and plugins" +msgstr "GIMP ve eklentiler arasında paylaşımlı bellek kullanma" + +#: ../app/main.c:194 +msgid "Do not use special CPU acceleration functions" +msgstr "Özel işlemci hızlandırma işlevleri kullanma" + +#: ../app/main.c:199 +msgid "Use an alternate sessionrc file" +msgstr "Başka bir sessionrc dosyası kullan" + +#: ../app/main.c:204 +msgid "Use an alternate user gimprc file" +msgstr "Başka bir kullanıcının gimprc dosyasını kullan" + +#: ../app/main.c:209 +msgid "Use an alternate system gimprc file" +msgstr "Başka bir sistem gimprc dosyası kullan" + +#: ../app/main.c:214 +msgid "Batch command to run (can be used multiple times)" +msgstr "Çalıştırılacak toplu komut (birçok defa kullanılabilir)" + +#: ../app/main.c:219 +msgid "The procedure to process batch commands with" +msgstr "Çoklu komutlar sürecinin yordamı, şunlarla:" + +#: ../app/main.c:224 +msgid "Send messages to console instead of using a dialog" +msgstr "İletişim kutusu kullanmak yerine iletileri uçbirime gönder" + +#. don't translate the mode names (off|on|warn) +#: ../app/main.c:230 +msgid "PDB compatibility mode (off|on|warn)" +msgstr "PDB uyumluluk kipi (off|on|warn)" + +#. don't translate the mode names (never|query|always) +#: ../app/main.c:236 +msgid "Debug in case of a crash (never|query|always)" +msgstr "Çökme durumunda yanlış ayıkla (never|query|always)" + +#: ../app/main.c:241 +msgid "Enable non-fatal debugging signal handlers" +msgstr "Ölümcül olmayan yanlış ayıklama imi işleyicilerini etkinleştir" + +#: ../app/main.c:246 +msgid "Make all warnings fatal" +msgstr "Bütün uyarıları ölümcül yap" + +#: ../app/main.c:251 +msgid "Output a gimprc file with default settings" +msgstr "Çıktı, varsayılan ayarlarla birlikte gelen bir gimprc dosyasıdır." + +#: ../app/main.c:355 +msgid "[FILE|URI...]" +msgstr "[DOSYA|ADRES...]" + +#: ../app/main.c:373 +msgid "" +"GIMP could not initialize the graphical user interface.\n" +"Make sure a proper setup for your display environment exists." +msgstr "" +"GIMP, grafiksel kullanıcı arabirimini başlatamadı.\n" +"Görüntüleme ortamınız için uygun bir kurulumun var olduğundan emin olun." + +#: ../app/main.c:392 +msgid "Another GIMP instance is already running." +msgstr "Başka bir GIMP zaten çalışıyor." + +#: ../app/main.c:462 +msgid "GIMP output. Type any character to close this window." +msgstr "" +"GIMP çıktısı. Bu pencereyi kapatmak için herhangi bir karakter girin." + +#: ../app/main.c:463 +#, c-format +msgid "(Type any character to close this window)\n" +msgstr "(Bu pencereyi kapatmak için herhangi bir karakter girin)\n" + +#: ../app/main.c:480 +msgid "GIMP output. You can minimize this window, but don't close it." +msgstr "GIMP çıktısı. Bu pencereyi küçültebilirsiniz, fakat kapatmayın." + +#: ../app/sanity.c:365 +#, c-format +msgid "" +"The configured filename encoding cannot be converted to UTF-8: %s\n" +"\n" +"Please check the value of the environment variable G_FILENAME_ENCODING." +msgstr "" +"Yapılandırılmış dosya adı kodlaması UTF-8'e dönüştürülemedi: %s\n" +"\n" +"Lütfen ortam değişkeninin değerini denetleyin, G_FILENAME_ENCODING." + +#: ../app/sanity.c:384 +#, c-format +msgid "" +"The name of the directory holding the GIMP user configuration cannot be " +"converted to UTF-8: %s\n" +"\n" +"Your filesystem probably stores files in an encoding other than UTF-8 and " +"you didn't tell GLib about this. Please set the environment variable " +"G_FILENAME_ENCODING." +msgstr "" +"GIMP kullanıcı yapılandırmalarını içeren dizinin adı UTF-8 'e " +"dönüştürülememiş: %s Dosya sisteminiz muhtemelen UTF-8 den başka bir biçimde " +"dosyalar içeriyor ve Glib bundan habersiz. Lütfen G_FILENAME_ENCODING " +"çevresel değişkenini ayarlarınız." + +#. show versions of libraries used by GIMP +#: ../app/version.c:64 +#, c-format +msgid "using %s version %s (compiled against version %s)" +msgstr "%s kullanılıyor, sürüm %s (%s sürümüne karşı derlendi)" + +#: ../app/version.c:127 ../tools/gimp-remote.c:95 +#, c-format +msgid "%s version %s" +msgstr "%s sürüm %s" + +#: ../app/actions/actions.c:101 ../app/actions/dialogs-actions.c:123 +#: ../app/dialogs/dialogs.c:224 ../app/widgets/gimpbrusheditor.c:90 +msgid "Brush Editor" +msgstr "Fırça Düzenleyici" + +#. initialize the list of gimp brushes +#: ../app/actions/actions.c:104 ../app/core/gimp.c:838 +#: ../app/dialogs/dialogs.c:157 ../app/dialogs/preferences-dialog.c:2744 +msgid "Brushes" +msgstr "Fırçalar" + +#: ../app/actions/actions.c:107 ../app/dialogs/dialogs.c:169 +msgid "Buffers" +msgstr "Tamponlar" + +#: ../app/actions/actions.c:110 ../app/dialogs/dialogs.c:182 +msgid "Channels" +msgstr "Kanallar" + +#: ../app/actions/actions.c:113 ../app/dialogs/convert-dialog.c:174 +#: ../app/dialogs/dialogs.c:190 +msgid "Colormap" +msgstr "Renk haritası" + +#: ../app/actions/actions.c:116 +msgid "Configuration" +msgstr "Yapılandırma" + +#: ../app/actions/actions.c:119 +msgid "Context" +msgstr "Bağlam" + +#: ../app/actions/actions.c:122 ../app/dialogs/dialogs.c:150 +msgid "Pointer Information" +msgstr "İşaretçi Bilgisi" + +#: ../app/actions/actions.c:125 +msgid "Debug" +msgstr "Hata Ayıklama" + +#: ../app/actions/actions.c:128 +msgid "Dialogs" +msgstr "Pencereler" + +#: ../app/actions/actions.c:131 +msgid "Dock" +msgstr "Rıhtım" + +#: ../app/actions/actions.c:134 +msgid "Dockable" +msgstr "Gömülebilir" + +#. Document History +#: ../app/actions/actions.c:137 ../app/dialogs/dialogs.c:171 +#: ../app/dialogs/preferences-dialog.c:1595 +msgid "Document History" +msgstr "Belge Geçmişi" + +#: ../app/actions/actions.c:140 +msgid "Drawable" +msgstr "Çizilebilir" + +#: ../app/actions/actions.c:143 ../app/tools/tools-enums.c:300 +msgid "Edit" +msgstr "Düzenle" + +#: ../app/actions/actions.c:146 ../app/dialogs/dialogs.c:146 +msgid "Error Console" +msgstr "Hata Konsolu" + +#: ../app/actions/actions.c:149 +msgid "File" +msgstr "Dosya" + +#: ../app/actions/actions.c:152 ../app/dialogs/dialogs.c:165 +#: ../app/dialogs/preferences-dialog.c:2760 +msgid "Fonts" +msgstr "Yazıtipleri" + +#: ../app/actions/actions.c:155 ../app/actions/dialogs-actions.c:141 +#: ../app/dialogs/dialogs.c:228 ../app/widgets/gimpgradienteditor.c:276 +msgid "Gradient Editor" +msgstr "Gradyan Düzenleyici" + +#. initialize the list of gimp gradients +#: ../app/actions/actions.c:158 ../app/core/gimp.c:850 +#: ../app/dialogs/dialogs.c:161 ../app/dialogs/preferences-dialog.c:2756 +msgid "Gradients" +msgstr "Gradyanlar" + +#: ../app/actions/actions.c:161 +msgid "Help" +msgstr "Yardım" + +#: ../app/actions/actions.c:164 ../app/core/core-enums.c:212 +#: ../app/tools/tools-enums.c:242 +msgid "Image" +msgstr "Resim" + +#. list & grid views +#: ../app/actions/actions.c:167 ../app/dialogs/dialogs.c:155 +msgid "Images" +msgstr "Resimler" + +#: ../app/actions/actions.c:170 ../app/dialogs/dialogs.c:178 +#: ../app/dialogs/resize-dialog.c:286 +msgid "Layers" +msgstr "Katmanlar" + +#: ../app/actions/actions.c:173 ../app/actions/dialogs-actions.c:153 +#: ../app/dialogs/dialogs.c:232 ../app/widgets/gimppaletteeditor.c:155 +msgid "Palette Editor" +msgstr "Palet Düzenleyici" + +#. initialize the list of gimp palettes +#: ../app/actions/actions.c:176 ../app/core/gimp.c:846 +#: ../app/dialogs/dialogs.c:163 ../app/dialogs/preferences-dialog.c:2752 +msgid "Palettes" +msgstr "Paletler" + +#. initialize the list of gimp patterns +#: ../app/actions/actions.c:179 ../app/core/gimp.c:842 +#: ../app/dialogs/dialogs.c:159 ../app/dialogs/preferences-dialog.c:2748 +msgid "Patterns" +msgstr "Desenler" + +#: ../app/actions/actions.c:182 ../app/dialogs/preferences-dialog.c:2764 +msgid "Plug-Ins" +msgstr "Eklentiler" + +#: ../app/actions/actions.c:185 ../app/core/core-enums.c:860 +#: ../app/core/gimpchannel.c:362 +msgid "Quick Mask" +msgstr "Hızlı Maske" + +#: ../app/actions/actions.c:188 ../app/dialogs/dialogs.c:206 +msgid "Sample Points" +msgstr "Örnek Noktalar" + +#: ../app/actions/actions.c:191 +msgid "Select" +msgstr "Seç" + +#. initialize the template list +#: ../app/actions/actions.c:194 ../app/core/gimp.c:859 +#: ../app/dialogs/dialogs.c:173 +msgid "Templates" +msgstr "Şablonlar" + +#: ../app/actions/actions.c:197 +msgid "Text Editor" +msgstr "Metin Düzenleyici" + +#: ../app/actions/actions.c:200 ../app/dialogs/dialogs.c:138 +#: ../app/dialogs/preferences-dialog.c:1880 ../app/gui/gui.c:429 +msgid "Tool Options" +msgstr "Alet Seçenekleri" + +#: ../app/actions/actions.c:203 ../app/dialogs/dialogs.c:167 +msgid "Tools" +msgstr "Araçlar" + +#: ../app/actions/actions.c:206 ../app/dialogs/dialogs.c:186 +#: ../app/tools/gimpvectortool.c:160 +msgid "Paths" +msgstr "Yollar" + +#: ../app/actions/actions.c:209 +msgid "View" +msgstr "Görünüm" + +#: ../app/actions/actions.c:212 +msgid "Windows" +msgstr "Pencereler" + +#: ../app/actions/brush-editor-actions.c:43 +msgid "Brush Editor Menu" +msgstr "Fırça Düzenleyici Menüsü" + +#: ../app/actions/brush-editor-actions.c:50 +msgid "Edit Active Brush" +msgstr "Etkin Fırçayı Düzenle" + +#: ../app/actions/brushes-actions.c:43 +msgid "Brushes Menu" +msgstr "Fırçalar Menüsü" + +#: ../app/actions/brushes-actions.c:47 +msgid "_Open Brush as Image" +msgstr "Fırçayı Görüntü olarak _Aç" + +#: ../app/actions/brushes-actions.c:48 +msgid "Open brush as image" +msgstr "Fırçayı görüntü olarak aç" + +#: ../app/actions/brushes-actions.c:53 +msgid "_New Brush" +msgstr "Y_eni Fırça" + +#: ../app/actions/brushes-actions.c:54 +msgid "New brush" +msgstr "Yeni Fırça" + +#: ../app/actions/brushes-actions.c:59 +msgid "D_uplicate Brush" +msgstr "Fırçayı Ç_oğalt" + +#: ../app/actions/brushes-actions.c:60 +msgid "Duplicate brush" +msgstr "Fırçayı Ç_oğalt" + +#: ../app/actions/brushes-actions.c:65 +msgid "Copy Brush _Location" +msgstr "Fırça _Yerini Kopyala" + +#: ../app/actions/brushes-actions.c:66 +msgid "Copy brush file location to clipboard" +msgstr "Fırça dosyasının yerini panoya kopyala" + +#: ../app/actions/brushes-actions.c:71 +msgid "_Delete Brush" +msgstr "Fı_rçayı Sil" + +#: ../app/actions/brushes-actions.c:72 +msgid "Delete brush" +msgstr "Fırçayı sil" + +#: ../app/actions/brushes-actions.c:77 +msgid "_Refresh Brushes" +msgstr "_Fırçaları Tazele" + +#: ../app/actions/brushes-actions.c:78 +msgid "Refresh brushes" +msgstr "Fırçaları tazele" + +#: ../app/actions/brushes-actions.c:86 +msgid "_Edit Brush..." +msgstr "Fırçayı _Düzenle..." + +#: ../app/actions/brushes-actions.c:87 +msgid "Edit brush" +msgstr "/Fırçayı düzenle" + +#: ../app/actions/buffers-actions.c:42 +msgid "Buffers Menu" +msgstr "Tamponlar Menüsü" + +#: ../app/actions/buffers-actions.c:46 +msgid "_Paste Buffer" +msgstr "_Tamponu Yapıştır" + +#: ../app/actions/buffers-actions.c:47 +msgid "Paste the selected buffer" +msgstr "Seçili tamponu yapıştır" + +#: ../app/actions/buffers-actions.c:52 +msgid "Paste Buffer _Into" +msgstr "Arabelleği _İçine Yapıştır" + +#: ../app/actions/buffers-actions.c:53 +msgid "Paste the selected buffer into the selection" +msgstr "Seçili arabelleği seçimin içine yapıştır" + +#: ../app/actions/buffers-actions.c:58 +msgid "Paste Buffer as _New" +msgstr "Arabelleği _Yeni olarak Yapıştır" + +#: ../app/actions/buffers-actions.c:59 +msgid "Paste the selected buffer as new image" +msgstr "Seçili arabelleği yeni görüntü olarak yapıştır" + +#: ../app/actions/buffers-actions.c:64 +msgid "_Delete Buffer" +msgstr "Arabelleği _Sil" + +#: ../app/actions/buffers-actions.c:65 +msgid "Delete the selected buffer" +msgstr "Seçili arabelleği sil" + +#: ../app/actions/channels-actions.c:44 +msgid "Channels Menu" +msgstr "Kanallar Menüsü" + +#: ../app/actions/channels-actions.c:48 +msgid "_Edit Channel Attributes..." +msgstr "Kanal Öznitel_iklerini Düzenle..." + +#: ../app/actions/channels-actions.c:49 +msgid "Edit the channel's name, color and opacity" +msgstr "Kanal adını, rengini ve ışık geçirmezliğini düzenle" + +#: ../app/actions/channels-actions.c:54 +msgid "_New Channel..." +msgstr "Yeni Ka_nal..." + +#: ../app/actions/channels-actions.c:55 +msgid "Create a new channel" +msgstr "Yeni bir kanal oluştur" + +#: ../app/actions/channels-actions.c:60 +msgid "_New Channel" +msgstr "_Yeni Kanal" + +#: ../app/actions/channels-actions.c:61 +msgid "Create a new channel with last used values" +msgstr "Son kullanılan değerlerle yeni bir kanal oluştur" + +#: ../app/actions/channels-actions.c:66 +msgid "D_uplicate Channel" +msgstr "_Kanalı Çoğalt" + +#: ../app/actions/channels-actions.c:67 +msgid "Create a duplicate of this channel and add it to the image" +msgstr "Bu kanalın bir eşini oluştur ve görüntüye ekle" + +#: ../app/actions/channels-actions.c:72 +msgid "_Delete Channel" +msgstr "Kanalı _Sil" + +#: ../app/actions/channels-actions.c:73 +msgid "Delete this channel" +msgstr "Bu kanalı sil" + +#: ../app/actions/channels-actions.c:78 +msgid "_Raise Channel" +msgstr "Ka_nalı Yükselt" + +#: ../app/actions/channels-actions.c:79 +msgid "Raise this channel one step in the channel stack" +msgstr "Bu kanalı kanal yığınında bir adım yükselt" + +#: ../app/actions/channels-actions.c:84 +msgid "Raise Channel to _Top" +msgstr "K_analı En Tepeye Yükselt" + +#: ../app/actions/channels-actions.c:85 +msgid "Raise this channel to the top of the channel stack" +msgstr "Bu kanalı kanal yığınında en tepeye yükselt" + +#: ../app/actions/channels-actions.c:90 +msgid "_Lower Channel" +msgstr "Kan_alı Alçalt" + +#: ../app/actions/channels-actions.c:91 +msgid "Lower this channel one step in the channel stack" +msgstr "Bu kanalı kanal yığınında bir adım indir" + +#: ../app/actions/channels-actions.c:96 +msgid "Lower Channel to _Bottom" +msgstr "Kanalı _En Alta İndir" + +#: ../app/actions/channels-actions.c:97 +msgid "Lower this channel to the bottom of the channel stack" +msgstr "Bu kanalı kanal yığınının en altına indir" + +#: ../app/actions/channels-actions.c:105 +msgid "Channel to Sele_ction" +msgstr "Kanaldan Seçi_me" + +#: ../app/actions/channels-actions.c:106 +msgid "Replace the selection with this channel" +msgstr "Seçimi bu kanalın yerine koy" + +#: ../app/actions/channels-actions.c:111 ../app/actions/layers-actions.c:266 +#: ../app/actions/vectors-actions.c:173 +msgid "_Add to Selection" +msgstr "Seçime _Ekle" + +#: ../app/actions/channels-actions.c:112 +msgid "Add this channel to the current selection" +msgstr "Mevcut seçime bu kanalı ekle" + +#: ../app/actions/channels-actions.c:117 ../app/actions/layers-actions.c:272 +#: ../app/actions/layers-actions.c:299 ../app/actions/layers-actions.c:326 +#: ../app/actions/vectors-actions.c:179 +msgid "_Subtract from Selection" +msgstr "Seçimden Çık_ar" + +#: ../app/actions/channels-actions.c:118 +msgid "Subtract this channel from the current selection" +msgstr "Mevcut seçimden bu kanalı çıkar" + +#: ../app/actions/channels-actions.c:123 ../app/actions/layers-actions.c:278 +#: ../app/actions/layers-actions.c:305 ../app/actions/layers-actions.c:332 +#: ../app/actions/vectors-actions.c:185 +msgid "_Intersect with Selection" +msgstr "Seçimle Ke_siştir" + +#: ../app/actions/channels-actions.c:124 +msgid "Intersect this channel with the current selection" +msgstr "Mevcut seçimle bu kanalı kesiştir" + +#: ../app/actions/channels-commands.c:85 +#: ../app/actions/channels-commands.c:393 +msgid "Channel Attributes" +msgstr "Kanal Öznitelikleri" + +#: ../app/actions/channels-commands.c:88 +msgid "Edit Channel Attributes" +msgstr "Kanal Özniteliklerini Düzenle" + +#: ../app/actions/channels-commands.c:90 +msgid "Edit Channel Color" +msgstr "Kanal Rengini Düzenle" + +#: ../app/actions/channels-commands.c:91 +#: ../app/actions/channels-commands.c:123 +msgid "_Fill opacity:" +msgstr "Işık geçirmezliği _doldur:" + +#: ../app/actions/channels-commands.c:116 +#: ../app/actions/channels-commands.c:117 +#: ../app/actions/channels-commands.c:159 +#: ../app/actions/channels-commands.c:163 +#: ../app/widgets/gimpchanneltreeview.c:316 +msgid "New Channel" +msgstr "Yeni Kanal" + +#: ../app/actions/channels-commands.c:120 +msgid "New Channel Options" +msgstr "Yeni Kanal Seçenekleri" + +#: ../app/actions/channels-commands.c:122 +msgid "New Channel Color" +msgstr "Yeni Kanal Rengi" + +#: ../app/actions/channels-commands.c:243 +#: ../app/display/gimpdisplayshell-dnd.c:584 +#: ../app/widgets/gimpchanneltreeview.c:249 +#: ../app/widgets/gimplayertreeview.c:773 ../app/widgets/gimptoolbox-dnd.c:313 +#, c-format +msgid "%s Channel Copy" +msgstr "%s Kanal Kopyası" + +#: ../app/actions/channels-commands.c:307 ../app/core/gimpselection.c:549 +#: ../app/pdb/selection-cmds.c:454 ../app/pdb/selection-cmds.c:521 +msgid "Channel to Selection" +msgstr "Kanaldan Seçime" + +#: ../app/actions/colormap-actions.c:44 +msgid "Colormap Menu" +msgstr "Renk Haritası Menüsü" + +#: ../app/actions/colormap-actions.c:48 +#: ../app/actions/palette-editor-actions.c:48 +msgid "_Edit Color..." +msgstr "_Renk Düzenle..." + +#: ../app/actions/colormap-actions.c:49 +#: ../app/actions/palette-editor-actions.c:49 +msgid "Edit color" +msgstr "Rengi düzenle" + +#: ../app/actions/colormap-actions.c:57 +msgid "_Add Color from FG" +msgstr "_Önplandan Renk Ekle" + +#: ../app/actions/colormap-actions.c:58 +msgid "Add current foreground color" +msgstr "Mevcut önalan rengini ekle" + +#: ../app/actions/colormap-actions.c:63 +msgid "_Add Color from BG" +msgstr "_Arkaplandan Renk Ekle" + +#: ../app/actions/colormap-actions.c:64 +msgid "Add current background color" +msgstr "Mevcut artalan rengini ekle" + +#: ../app/actions/colormap-commands.c:73 +#, c-format +msgid "Edit colormap entry #%d" +msgstr "%d palet girdi rengini düzenle" + +#: ../app/actions/colormap-commands.c:80 +msgid "Edit Colormap Entry" +msgstr "Palet Girdi Rengini Düzenle" + +#: ../app/actions/config-actions.c:39 +msgid "Use _GEGL" +msgstr "_GEGL kullan" + +#: ../app/actions/config-actions.c:40 +msgid "If possible, use GEGL for image processing" +msgstr "Eğer mümkünse, görüntü işlemlerinde GEGL kullan" + +#: ../app/actions/context-actions.c:46 +msgid "_Context" +msgstr "İçeri_k" + +#: ../app/actions/context-actions.c:47 ../app/actions/image-actions.c:59 +msgid "_Colors" +msgstr "_Renkler" + +#: ../app/actions/context-actions.c:48 ../app/actions/layers-actions.c:58 +msgid "_Opacity" +msgstr "_Saydamsızlık" + +#: ../app/actions/context-actions.c:49 +msgid "Paint _Mode" +msgstr "Boyama _Kipi" + +#: ../app/actions/context-actions.c:50 +msgid "_Tool" +msgstr "_Araç" + +#: ../app/actions/context-actions.c:51 +#: ../app/dialogs/preferences-dialog.c:1940 +msgid "_Brush" +msgstr "_Fırça" + +#: ../app/actions/context-actions.c:52 ../app/actions/plug-in-actions.c:99 +#: ../app/dialogs/preferences-dialog.c:1943 +msgid "_Pattern" +msgstr "_Desen" + +#: ../app/actions/context-actions.c:53 +msgid "_Palette" +msgstr "_Palet" + +#: ../app/actions/context-actions.c:54 +#: ../app/dialogs/palette-import-dialog.c:216 +#: ../app/dialogs/preferences-dialog.c:1946 +msgid "_Gradient" +msgstr "_Gradyan" + +#: ../app/actions/context-actions.c:55 +msgid "_Font" +msgstr "_Yazıtipi" + +#: ../app/actions/context-actions.c:57 +msgid "_Shape" +msgstr "Ş_ekil" + +#: ../app/actions/context-actions.c:58 +msgid "_Radius" +msgstr "_Yarıçap" + +#: ../app/actions/context-actions.c:59 +msgid "S_pikes" +msgstr "Ar_tışlar" + +#: ../app/actions/context-actions.c:60 +msgid "_Hardness" +msgstr "_Sertlik" + +#: ../app/actions/context-actions.c:61 +msgid "_Aspect" +msgstr "_Görüntü Oranı" + +#: ../app/actions/context-actions.c:62 +msgid "A_ngle" +msgstr "_Açı" + +#: ../app/actions/context-actions.c:65 +msgid "_Default Colors" +msgstr "Öntanımlı _Renkler" + +#: ../app/actions/context-actions.c:66 +msgid "Set foreground color to black, background color to white" +msgstr "Önalan rengini siyah, artalan rengini beyaz olarak ayarla" + +#: ../app/actions/context-actions.c:71 +msgid "S_wap Colors" +msgstr "Renkleri _Değiştir" + +#: ../app/actions/context-actions.c:72 +msgid "Exchange foreground and background colors" +msgstr "Önalan ile artalan renklerini karşılıklı değiştir" + +#: ../app/actions/cursor-info-actions.c:40 +msgid "Pointer Information Menu" +msgstr "İmleç Bilgi Menüsü" + +#: ../app/actions/cursor-info-actions.c:47 +#: ../app/actions/sample-points-actions.c:47 +#: ../app/widgets/gimpcursorview.c:192 +msgid "_Sample Merged" +msgstr "_Örnek Birleştirildi" + +#: ../app/actions/cursor-info-actions.c:48 +#: ../app/actions/sample-points-actions.c:48 +msgid "Sample Merged" +msgstr "Örnek Birleştirildi" + +#: ../app/actions/data-commands.c:107 ../app/actions/documents-commands.c:344 +#: ../app/actions/file-commands.c:184 ../app/dialogs/file-open-dialog.c:229 +#: ../app/dialogs/file-open-dialog.c:273 +#: ../app/dialogs/file-open-location-dialog.c:213 +#: ../app/dialogs/file-open-location-dialog.c:225 +#: ../app/display/gimpdisplayshell-dnd.c:537 +#: ../app/widgets/gimplayertreeview.c:730 ../app/widgets/gimptoolbox-dnd.c:158 +#: ../app/widgets/gimptoolbox.c:981 +#, c-format +msgid "" +"Opening '%s' failed:\n" +"\n" +"%s" +msgstr "" +"%s dosyasını açma işlemi başarısız oldu:\n" +"\n" +"%s" + +#: ../app/actions/data-commands.c:133 +#: ../app/core/gimpbrushgenerated-load.c:125 ../app/core/gimpimage.c:1419 +#: ../app/core/gimppalette-import.c:211 ../app/core/gimppalette-load.c:222 +#: ../app/core/gimppalette.c:333 ../app/dialogs/palette-import-dialog.c:774 +#: ../app/pdb/image-cmds.c:2198 ../app/widgets/gimpdnd-xds.c:92 +msgid "Untitled" +msgstr "İsimsiz" + +#: ../app/actions/data-commands.c:231 +msgid "Delete Object" +msgstr "Nesneyi Sil" + +#: ../app/actions/data-commands.c:254 +#, c-format +msgid "Delete '%s'?" +msgstr "Sil '%s'?" + +#: ../app/actions/data-commands.c:257 +#, c-format +msgid "" +"Are you sure you want to remove '%s' from the list and delete it on disk?" +msgstr "" +"'%s', listeden kaldırmak ve diskten silmek istediğinize emin misiniz?" + +#: ../app/actions/dialogs-actions.c:39 +msgid "Tool _Options" +msgstr "Araç _Seçenekleri" + +#: ../app/actions/dialogs-actions.c:40 +msgid "Open the tool options dialog" +msgstr "Araç seçenekleri kutusunu aç" + +#: ../app/actions/dialogs-actions.c:45 +msgid "_Device Status" +msgstr "_Aygıt Durumu" + +#: ../app/actions/dialogs-actions.c:46 +msgid "Open the device status dialog" +msgstr "Aygıt durumu kutusunu aç" + +#: ../app/actions/dialogs-actions.c:51 +msgid "_Layers" +msgstr "_Katmanlar" + +#: ../app/actions/dialogs-actions.c:52 +msgid "Open the layers dialog" +msgstr "Katmanlar kutusunu aç" + +#: ../app/actions/dialogs-actions.c:57 +msgid "_Channels" +msgstr "_Kanallar" + +#: ../app/actions/dialogs-actions.c:58 +msgid "Open the channels dialog" +msgstr "Kanallar kutusunu aç" + +#: ../app/actions/dialogs-actions.c:63 +msgid "_Paths" +msgstr "_Yollar" + +#: ../app/actions/dialogs-actions.c:64 +msgid "Open the paths dialog" +msgstr "Yollar kutusunu aç" + +#: ../app/actions/dialogs-actions.c:69 +msgid "Color_map" +msgstr "_Renk haritası" + +#: ../app/actions/dialogs-actions.c:70 +msgid "Open the colormap dialog" +msgstr "Renk haritası kutusunu aç" + +#: ../app/actions/dialogs-actions.c:75 +msgid "Histogra_m" +msgstr "_Historgram" + +#: ../app/actions/dialogs-actions.c:76 +msgid "Open the histogram dialog" +msgstr "Histogram kutusunu aç" + +#: ../app/actions/dialogs-actions.c:81 +msgid "_Selection Editor" +msgstr "_Seçim Düzenleyici" + +#: ../app/actions/dialogs-actions.c:82 +msgid "Open the selection editor" +msgstr "Seçim düzenleyiciyi aç" + +#: ../app/actions/dialogs-actions.c:87 +msgid "Na_vigation" +msgstr "_Gezgin" + +#: ../app/actions/dialogs-actions.c:88 +msgid "Open the display navigation dialog" +msgstr "Dolaşma görüntüsü kutusunu aç" + +#: ../app/actions/dialogs-actions.c:93 +msgid "Undo _History" +msgstr "_Geri Alma Geçmişi" + +#: ../app/actions/dialogs-actions.c:94 +msgid "Open the undo history dialog" +msgstr "Geri alma geçmişi kutusunu aç" + +#: ../app/actions/dialogs-actions.c:99 ../app/dialogs/dialogs.c:150 +msgid "Pointer" +msgstr "İmleç" + +#: ../app/actions/dialogs-actions.c:100 +msgid "Open the pointer information dialog" +msgstr "İmleç bilgi kutusunu aç" + +#: ../app/actions/dialogs-actions.c:105 +msgid "_Sample Points" +msgstr "_Örnek Noktalar" + +#: ../app/actions/dialogs-actions.c:106 +msgid "Open the sample points dialog" +msgstr "Örnek noktalar kutusunu aç" + +#: ../app/actions/dialogs-actions.c:111 +msgid "Colo_rs" +msgstr "Renk_ler" + +#: ../app/actions/dialogs-actions.c:112 +msgid "Open the FG/BG color dialog" +msgstr "Önalan/Artalan renk kutusunu aç" + +#: ../app/actions/dialogs-actions.c:117 +msgid "_Brushes" +msgstr "_Fırçalar" + +#: ../app/actions/dialogs-actions.c:118 +msgid "Open the brushes dialog" +msgstr "Fırçalar kutusunu aç" + +#: ../app/actions/dialogs-actions.c:124 +msgid "Open the brush editor" +msgstr "Fırça düzenleyiciyi aç" + +#: ../app/actions/dialogs-actions.c:129 +msgid "P_atterns" +msgstr "_Desenler" + +#: ../app/actions/dialogs-actions.c:130 +msgid "Open the patterns dialog" +msgstr "Desenler kutusunu aç" + +#: ../app/actions/dialogs-actions.c:135 +msgid "_Gradients" +msgstr "_Gradyanlar" + +#: ../app/actions/dialogs-actions.c:136 +msgid "Open the gradients dialog" +msgstr "Renk geçişleri kutusunu aç" + +#: ../app/actions/dialogs-actions.c:142 +msgid "Open the gradient editor" +msgstr "Renk geçişi düzenleyicisini aç" + +#: ../app/actions/dialogs-actions.c:147 +msgid "Pal_ettes" +msgstr "_Paletler" + +#: ../app/actions/dialogs-actions.c:148 +msgid "Open the palettes dialog" +msgstr "Paletler kutusunu aç" + +#: ../app/actions/dialogs-actions.c:154 +msgid "Open the palette editor" +msgstr "Palet düzenleyicisini aç" + +#: ../app/actions/dialogs-actions.c:159 +msgid "_Fonts" +msgstr "_Yazıtipleri" + +#: ../app/actions/dialogs-actions.c:160 +msgid "Open the fonts dialog" +msgstr "Yazıyüzleri kutusunu aç" + +#: ../app/actions/dialogs-actions.c:165 +msgid "B_uffers" +msgstr "_Tamponlar" + +#: ../app/actions/dialogs-actions.c:166 +msgid "Open the named buffers dialog" +msgstr "Adlandırılan arabellekler kutusunu aç" + +#: ../app/actions/dialogs-actions.c:171 +msgid "_Images" +msgstr "_Resimler" + +#: ../app/actions/dialogs-actions.c:172 +msgid "Open the images dialog" +msgstr "Görüntüler kutusunu aç" + +#: ../app/actions/dialogs-actions.c:177 +msgid "Document Histor_y" +msgstr "_Belge Geçmişi" + +#: ../app/actions/dialogs-actions.c:178 +msgid "Open the document history dialog" +msgstr "Belge geçmişi kutusunu aç" + +#: ../app/actions/dialogs-actions.c:183 +msgid "_Templates" +msgstr "Ş_ablonlar" + +#: ../app/actions/dialogs-actions.c:184 +msgid "Open the image templates dialog" +msgstr "Görüntü şablonları kutusunu aç" + +#: ../app/actions/dialogs-actions.c:189 +msgid "T_ools" +msgstr "_Araçlar" + +#: ../app/actions/dialogs-actions.c:190 +msgid "Open the tools dialog" +msgstr "Araçlar kutusunu aç" + +#: ../app/actions/dialogs-actions.c:195 +msgid "Error Co_nsole" +msgstr "Hata _Konsolu" + +#: ../app/actions/dialogs-actions.c:196 +msgid "Open the error console" +msgstr "Hata uçbirimini aç" + +#: ../app/actions/dialogs-actions.c:206 +msgid "_Preferences" +msgstr "_Tercihler" + +#: ../app/actions/dialogs-actions.c:207 +msgid "Open the preferences dialog" +msgstr "Yeğlenenler kutusunu aç" + +#: ../app/actions/dialogs-actions.c:212 +msgid "_Keyboard Shortcuts" +msgstr "_Klavye Kısayolları" + +#: ../app/actions/dialogs-actions.c:213 +msgid "Open the keyboard shortcuts editor" +msgstr "Klavye kısayolları düzenleyiciyi aç" + +#: ../app/actions/dialogs-actions.c:218 +msgid "_Modules" +msgstr "_Birimler" + +#: ../app/actions/dialogs-actions.c:219 +msgid "Open the module manager dialog" +msgstr "Birim yöneticisi kutusunu aç" + +#: ../app/actions/dialogs-actions.c:224 +msgid "_Tip of the Day" +msgstr "_Günün İpucu" + +#: ../app/actions/dialogs-actions.c:225 +msgid "Show some helpful tips on using GIMP" +msgstr "GIMP kullanımı ile ilgili ipuçları göster" + +#: ../app/actions/dialogs-actions.c:230 +msgid "_About" +msgstr "_Hakkında" + +#: ../app/actions/dialogs-actions.c:231 ../app/dialogs/about-dialog.c:114 +#: ../app/gui/gui.c:479 +msgid "About GIMP" +msgstr "GIMP Hakkında" + +#: ../app/actions/dock-actions.c:43 +msgid "M_ove to Screen" +msgstr "_Ekrana Taşı" + +#: ../app/actions/dock-actions.c:47 +msgid "Close Dock" +msgstr "Rıhtımı Kapat" + +#: ../app/actions/dock-actions.c:52 ../app/actions/view-actions.c:123 +msgid "_Open Display..." +msgstr "Görüntülemeyi _Aç..." + +#: ../app/actions/dock-actions.c:53 ../app/actions/view-actions.c:124 +msgid "Connect to another display" +msgstr "Başka bir görüntülemeye bağlan" + +#: ../app/actions/dock-actions.c:61 +msgid "_Show Image Selection" +msgstr "Re_sim Seçimini Göster" + +#: ../app/actions/dock-actions.c:67 +msgid "Auto _Follow Active Image" +msgstr "Etkin _Resmi Otomatik Takip et" + +#: ../app/actions/dockable-actions.c:49 +msgid "Dialogs Menu" +msgstr "Pencereler Menüsü" + +#: ../app/actions/dockable-actions.c:53 +msgid "_Add Tab" +msgstr "_Sekme Ekle" + +#: ../app/actions/dockable-actions.c:54 +msgid "_Preview Size" +msgstr "Önceki _Boyut" + +#: ../app/actions/dockable-actions.c:55 +msgid "_Tab Style" +msgstr "Sekme _Stili" + +#: ../app/actions/dockable-actions.c:58 +msgid "_Close Tab" +msgstr "_Sekmeyi Kapat" + +#: ../app/actions/dockable-actions.c:63 +msgid "_Detach Tab" +msgstr "_Sekmeyi Ayır" + +#: ../app/actions/dockable-actions.c:81 +msgid "_Tiny" +msgstr "_Minik" + +#: ../app/actions/dockable-actions.c:82 +msgid "E_xtra Small" +msgstr "Ç_ok Küçük" + +#: ../app/actions/dockable-actions.c:83 +msgid "_Small" +msgstr "_Küçük" + +#: ../app/actions/dockable-actions.c:84 +msgid "_Medium" +msgstr "_Orta" + +#: ../app/actions/dockable-actions.c:85 +msgid "_Large" +msgstr "_Büyük" + +#: ../app/actions/dockable-actions.c:86 +msgid "Ex_tra Large" +msgstr "Ço_k Büyük" + +#: ../app/actions/dockable-actions.c:87 +msgid "_Huge" +msgstr "_Kocaman" + +#: ../app/actions/dockable-actions.c:88 +msgid "_Enormous" +msgstr "İ_nanılmaz" + +#: ../app/actions/dockable-actions.c:89 +msgid "_Gigantic" +msgstr "_Dev gibi" + +#: ../app/actions/dockable-actions.c:94 +msgid "_Icon" +msgstr "_Simge" + +#: ../app/actions/dockable-actions.c:95 +msgid "Current _Status" +msgstr "Geçerli _Durum" + +#: ../app/actions/dockable-actions.c:96 +msgid "_Text" +msgstr "_Metin" + +#: ../app/actions/dockable-actions.c:97 +msgid "I_con & Text" +msgstr "Simg_e ve Metin" + +#: ../app/actions/dockable-actions.c:98 +msgid "St_atus & Text" +msgstr "_Durum ve Metin" + +#: ../app/actions/dockable-actions.c:108 +msgid "Loc_k Tab to Dock" +msgstr "Sekmeyi Rıhtıma _Kilitle" + +#: ../app/actions/dockable-actions.c:109 +msgid "Protect this tab from being dragged with the mouse pointer" +msgstr "Bu sekmeyi fare imleci ile sürüklenmeye karşı koru" + +#: ../app/actions/dockable-actions.c:115 +msgid "Show _Button Bar" +msgstr "Düğme _Çubuğunu Göster" + +#: ../app/actions/dockable-actions.c:124 +msgid "View as _List" +msgstr "_Liste Olarak Göster" + +#: ../app/actions/dockable-actions.c:129 +msgid "View as _Grid" +msgstr "Kılavuz _Olarak Görüntüle" + +#: ../app/actions/documents-actions.c:42 +msgid "Documents Menu" +msgstr "Belgeler Menüsü" + +#: ../app/actions/documents-actions.c:46 +msgid "_Open Image" +msgstr "Resim _Aç" + +#: ../app/actions/documents-actions.c:47 +msgid "Open the selected entry" +msgstr "Seçili girdiyi aç" + +#: ../app/actions/documents-actions.c:52 +msgid "_Raise or Open Image" +msgstr "_Yükselt veya Görüntü Aç" + +#: ../app/actions/documents-actions.c:53 +msgid "Raise window if already open" +msgstr "Zaten açıksa pencereyi yükselt" + +#: ../app/actions/documents-actions.c:58 +msgid "File Open _Dialog" +msgstr "Dosya Açma _Kutusu" + +#: ../app/actions/documents-actions.c:59 +msgid "Open image dialog" +msgstr "Görüntü kutusunu aç" + +#: ../app/actions/documents-actions.c:64 +msgid "Copy Image _Location" +msgstr "Görüntü _Yerini Kopyala" + +#: ../app/actions/documents-actions.c:65 +msgid "Copy image location to clipboard" +msgstr "Görüntü yerini panoya kopyala" + +#: ../app/actions/documents-actions.c:70 +msgid "Remove _Entry" +msgstr "_Girdiyi Sil" + +#: ../app/actions/documents-actions.c:71 +msgid "Remove the selected entry" +msgstr "Seçili girdiyi sil" + +#: ../app/actions/documents-actions.c:76 +msgid "_Clear History" +msgstr "Geçmişi _Temizle" + +#: ../app/actions/documents-actions.c:77 +msgid "Clear the entire document history" +msgstr "Bütün belge geçmişini temizle" + +#: ../app/actions/documents-actions.c:82 +msgid "Recreate _Preview" +msgstr "Yeniden Önizleme _Oluştur" + +#: ../app/actions/documents-actions.c:83 +msgid "Recreate preview" +msgstr "Yeniden önizleme oluştur" + +#: ../app/actions/documents-actions.c:88 +msgid "Reload _all Previews" +msgstr "_Tüm Önizlemeleri Yeniden Yükle" + +#: ../app/actions/documents-actions.c:89 +msgid "Reload all previews" +msgstr "Tüm önizlemeleri yeniden yükle" + +#: ../app/actions/documents-actions.c:94 +msgid "Remove Dangling E_ntries" +msgstr "_Sallanan Girişleri Kaldır" + +#: ../app/actions/documents-actions.c:95 +msgid "Remove dangling entries" +msgstr "Sallanan girişleri kaldır" + +#: ../app/actions/documents-commands.c:198 +msgid "Clear Document History" +msgstr "Belge Geçmişini Temizle" + +#: ../app/actions/documents-commands.c:221 +msgid "Clear the Recent Documents list?" +msgstr "Son Belgeler listesi temizlensin mi?" + +#: ../app/actions/documents-commands.c:224 +msgid "" +"Clearing the document history will permanently remove all items from the " +"recent documents list in all applications." +msgstr "" +"Belge geçmişinin temizlenmesi, son belgeler listesindeki tüm uygulamaların " +"öğelerini tamamen kaldıracaktır." + +#: ../app/actions/drawable-actions.c:45 +msgid "_Equalize" +msgstr "_Eşitlendir" + +#: ../app/actions/drawable-actions.c:46 +msgid "Automatic contrast enhancement" +msgstr "Otomatik karşıtlık arttır" + +#: ../app/actions/drawable-actions.c:51 +msgid "In_vert" +msgstr "_Tersine Çevir" + +#: ../app/actions/drawable-actions.c:52 +msgid "Invert the colors" +msgstr "Renkleri tersine çevir" + +#: ../app/actions/drawable-actions.c:57 +msgid "_White Balance" +msgstr "_Beyaz Dengesi" + +#: ../app/actions/drawable-actions.c:58 +msgid "Automatic white balance correction" +msgstr "Beyaz dengesini otomatik düzelt" + +#: ../app/actions/drawable-actions.c:63 +msgid "_Offset..." +msgstr "_Ofset..." + +#: ../app/actions/drawable-actions.c:64 +msgid "Shift the pixels, optionally wrapping them at the borders" +msgstr "Benekleri öteleyin, isteğe bağlı olarak sınırlara kaydırın" + +#: ../app/actions/drawable-actions.c:72 ../app/actions/vectors-actions.c:153 +msgid "_Linked" +msgstr "_Bağlı" + +#: ../app/actions/drawable-actions.c:73 +msgid "Toggle the linked state" +msgstr "Bağlanmış durumu değiştir" + +#: ../app/actions/drawable-actions.c:79 ../app/actions/vectors-actions.c:147 +msgid "_Visible" +msgstr "_Görünür" + +#: ../app/actions/drawable-actions.c:80 +msgid "Toggle visibility" +msgstr "Görünürlüğü değiştir" + +#: ../app/actions/drawable-actions.c:89 ../app/actions/image-actions.c:159 +msgid "Flip _Horizontally" +msgstr "_Yatay Çevir" + +#: ../app/actions/drawable-actions.c:90 +msgid "Flip horizontally" +msgstr "Yatay çevir" + +#: ../app/actions/drawable-actions.c:95 ../app/actions/image-actions.c:165 +msgid "Flip _Vertically" +msgstr "D_ikey Çevir" + +#: ../app/actions/drawable-actions.c:96 +msgid "Flip vertically" +msgstr "Dikey çevir" + +#: ../app/actions/drawable-actions.c:104 ../app/actions/image-actions.c:174 +msgid "Rotate 90° _clockwise" +msgstr "_Saat yönünde 90° döndür" + +#: ../app/actions/drawable-actions.c:105 +msgid "Rotate 90 degrees to the right" +msgstr "90° sağa döndür" + +#: ../app/actions/drawable-actions.c:110 ../app/actions/image-actions.c:180 +msgid "Rotate _180°" +msgstr "_180° döndür" + +#: ../app/actions/drawable-actions.c:111 +msgid "Turn upside-down" +msgstr "Baş aşağı döndür" + +#: ../app/actions/drawable-actions.c:116 ../app/actions/image-actions.c:186 +msgid "Rotate 90° counter-clock_wise" +msgstr "Saat _yönünün tersine 90° döndür" + +#: ../app/actions/drawable-actions.c:117 +msgid "Rotate 90 degrees to the left" +msgstr "90° sola döndür" + +#: ../app/actions/drawable-commands.c:62 +msgid "Equalize does not operate on indexed layers." +msgstr "Eşitleme indisli katmanlara uygulanamaz." + +#: ../app/actions/drawable-commands.c:85 +msgid "Invert does not operate on indexed layers." +msgstr "Terse çevrim indisli katmanlara uygulanamaz." + +#: ../app/actions/drawable-commands.c:108 +msgid "White Balance operates only on RGB color layers." +msgstr "Beyaz Dengesi, sadece RGB renk katmanlarına uygulanır." + +#: ../app/actions/edit-actions.c:63 +msgid "_Edit" +msgstr "Dü_zenle" + +#: ../app/actions/edit-actions.c:64 +msgid "_Paste as" +msgstr "_olarak Yapıştır" + +#: ../app/actions/edit-actions.c:65 +msgid "_Buffer" +msgstr "_Tamponlar" + +#: ../app/actions/edit-actions.c:68 +msgid "Undo History Menu" +msgstr "Geçmiş Menüsünü Geri Al" + +#: ../app/actions/edit-actions.c:72 ../app/actions/edit-actions.c:313 +msgid "_Undo" +msgstr "_Geri al" + +#: ../app/actions/edit-actions.c:73 +msgid "Undo the last operation" +msgstr "Son işlemi geri al" + +#: ../app/actions/edit-actions.c:78 ../app/actions/edit-actions.c:314 +msgid "_Redo" +msgstr "_Yinele" + +#: ../app/actions/edit-actions.c:79 +msgid "Redo the last operation that was undone" +msgstr "Bitmemiş son işlemi tekrar yap" + +#: ../app/actions/edit-actions.c:84 +msgid "Strong Undo" +msgstr "Çok Geri Al" + +#: ../app/actions/edit-actions.c:85 +msgid "Undo the last operation, skipping visibility changes" +msgstr "Görünürlük değişikliklerini atlayarak, son işlemi geri al" + +#: ../app/actions/edit-actions.c:90 +msgid "Strong Redo" +msgstr "Çok Yinele" + +#: ../app/actions/edit-actions.c:91 +msgid "Redo the last operation that was undone, skipping visibility changes" +msgstr "Görünürlük değişikliklerini atlayarak, bitmemiş son işlemi yinele" + +#: ../app/actions/edit-actions.c:96 +msgid "_Clear Undo History" +msgstr "_Geri Alma Geçmişini Temizle" + +#: ../app/actions/edit-actions.c:97 +msgid "Remove all operations from the undo history" +msgstr "Geri alma geçmişineki bütün işlemleri kaldır" + +#: ../app/actions/edit-actions.c:102 ../app/actions/edit-actions.c:315 +msgid "_Fade..." +msgstr "_Soldur..." + +#: ../app/actions/edit-actions.c:103 +msgid "Modify paint mode and opacity of the last pixel manipulation" +msgstr "Son benek işlemesinin boyama kipini ve ışık geçirmezliğini değiştir" + +#: ../app/actions/edit-actions.c:108 +msgid "Cu_t" +msgstr "_Kes" + +#: ../app/actions/edit-actions.c:109 +msgid "Move the selected pixels to the clipboard" +msgstr "Seçilmiş benekleri panoya taşı" + +#: ../app/actions/edit-actions.c:114 +msgid "_Copy" +msgstr "_Kopyala" + +#: ../app/actions/edit-actions.c:115 +msgid "Copy the selected pixels to the clipboard" +msgstr "Seçilmiş benekleri panoya kopyala" + +#. GIMP_STOCK_COPY_VISIBLE, +#: ../app/actions/edit-actions.c:120 +msgid "Copy _Visible" +msgstr "_Görünür Kısmı Kopyala" + +#: ../app/actions/edit-actions.c:121 +msgid "Copy what is visible in the selected region" +msgstr "Seçili bölgede ne görünebilir ise kopyala" + +#: ../app/actions/edit-actions.c:126 +msgid "_Paste" +msgstr "_Yapıştır" + +#: ../app/actions/edit-actions.c:127 +msgid "Paste the content of the clipboard" +msgstr "Pano içeriğini yapıştır" + +#: ../app/actions/edit-actions.c:132 +msgid "Paste _Into" +msgstr "İçi_ne Yapıştır" + +#: ../app/actions/edit-actions.c:133 +msgid "Paste the content of the clipboard into the current selection" +msgstr "Pano içeriğini şimdiki seçimin içine yapıştır" + +#: ../app/actions/edit-actions.c:138 +msgid "From _Clipboard" +msgstr "_Panodan" + +#: ../app/actions/edit-actions.c:139 ../app/actions/edit-actions.c:145 +msgid "Create a new image from the content of the clipboard" +msgstr "Pano içeriğinden yeni bir görüntü oluştur" + +#: ../app/actions/edit-actions.c:144 +msgid "_New Image" +msgstr "_Yeni Görüntü" + +#: ../app/actions/edit-actions.c:150 +msgid "New _Layer" +msgstr "Yeni _Katman" + +#: ../app/actions/edit-actions.c:151 +msgid "Create a new layer from the content of the clipboard" +msgstr "Pano içeriğinden yeni bir katman oluştur" + +#: ../app/actions/edit-actions.c:156 +msgid "Cu_t Named..." +msgstr "İsimle _Kes..." + +#: ../app/actions/edit-actions.c:157 +msgid "Move the selected pixels to a named buffer" +msgstr "Seçilmiş benekleri adlandırılan bir arabelleğe taşı" + +#: ../app/actions/edit-actions.c:162 +msgid "_Copy Named..." +msgstr "İ_simle Kopyala..." + +#: ../app/actions/edit-actions.c:163 +msgid "Copy the selected pixels to a named buffer" +msgstr "Seçilmiş benekleri adlandırılan bir arabelleğe kopyala" + +#. GIMP_STOCK_COPY_VISIBLE, +#: ../app/actions/edit-actions.c:168 +msgid "Copy _Visible Named..." +msgstr "_Görünür Adlandırılanı Kopyala..." + +#: ../app/actions/edit-actions.c:169 +msgid "Copy the selected region to a named buffer" +msgstr "Seçilmiş bölgeyi adlandırılan bir arabelleğe kopyala" + +#: ../app/actions/edit-actions.c:174 +msgid "_Paste Named..." +msgstr "İsimle Ya_pıştır..." + +#: ../app/actions/edit-actions.c:175 +msgid "Paste the content of a named buffer" +msgstr "Adlandırılan bir arabelleğin içeriğini yapıştır" + +#: ../app/actions/edit-actions.c:180 +msgid "Cl_ear" +msgstr "_Temizle" + +#: ../app/actions/edit-actions.c:181 +msgid "Clear the selected pixels" +msgstr "Seçilmiş benekleri temizle" + +#: ../app/actions/edit-actions.c:189 +msgid "Fill with _FG Color" +msgstr "_ÖP rengiyle doldur" + +#: ../app/actions/edit-actions.c:190 +msgid "Fill the selection using the foreground color" +msgstr "Seçimi, önalan rengini kullanarak doldur" + +#: ../app/actions/edit-actions.c:195 +msgid "Fill with B_G Color" +msgstr "_AP rengiyle doldur" + +#: ../app/actions/edit-actions.c:196 +msgid "Fill the selection using the background color" +msgstr "Seçimi, artalan rengini kullanarak doldur" + +#: ../app/actions/edit-actions.c:201 +msgid "Fill with P_attern" +msgstr "_Desen ile Doldur" + +#: ../app/actions/edit-actions.c:202 +msgid "Fill the selection using the active pattern" +msgstr "Seçimi, etkin deseni kullanarak doldur" + +#: ../app/actions/edit-actions.c:279 +#, c-format +msgid "_Undo %s" +msgstr "_Geri al: %s" + +#: ../app/actions/edit-actions.c:286 +#, c-format +msgid "_Redo %s" +msgstr "_Yinele: %s" + +#: ../app/actions/edit-actions.c:301 +#, c-format +msgid "_Fade %s..." +msgstr "_Soldur %s..." + +#: ../app/actions/edit-commands.c:134 +msgid "Clear Undo History" +msgstr "Geri Alma Geçmişini Sil" + +#: ../app/actions/edit-commands.c:160 +msgid "Really clear image's undo history?" +msgstr "Görüntünün geri alma geçmişi gerçekten silinsin mi?" + +#: ../app/actions/edit-commands.c:172 +#, c-format +msgid "Clearing the undo history of this image will gain %s of memory." +msgstr "" +"Bu görüntünün geri alma geçmişini silmek bellekte %s yer kazandıracak." + +#: ../app/actions/edit-commands.c:201 +msgid "Cut pixels to the clipboard" +msgstr "Benekleri panoya kes" + +#: ../app/actions/edit-commands.c:228 ../app/actions/edit-commands.c:254 +msgid "Copied pixels to the clipboard" +msgstr "Panoya kopyalanmış benekler" + +#: ../app/actions/edit-commands.c:315 ../app/actions/edit-commands.c:349 +#: ../app/actions/edit-commands.c:525 +msgid "There is no image data in the clipboard to paste." +msgstr "Panoda yapıştırılacak görüntü verisi yok." + +#: ../app/actions/edit-commands.c:338 ../app/core/gimpbrushclipboard.c:181 +#: ../app/core/gimppatternclipboard.c:181 ../app/widgets/gimpclipboard.c:296 +msgid "Clipboard" +msgstr "Pano" + +#: ../app/actions/edit-commands.c:363 +msgid "Cut Named" +msgstr "İsimle Kes" + +#: ../app/actions/edit-commands.c:366 ../app/actions/edit-commands.c:407 +#: ../app/actions/edit-commands.c:427 +msgid "Enter a name for this buffer" +msgstr "Bu bellek için bir isim yazın" + +#: ../app/actions/edit-commands.c:404 +msgid "Copy Named" +msgstr "İsimle Kopyala" + +#: ../app/actions/edit-commands.c:424 +msgid "Copy Visible Named " +msgstr "Görünür Adlandırılanı Kopyala " + +#: ../app/actions/edit-commands.c:542 +msgid "There is no active layer or channel to cut from." +msgstr "Kesilecek etkin katman veya kanal yok." + +#: ../app/actions/edit-commands.c:547 ../app/actions/edit-commands.c:579 +#: ../app/actions/edit-commands.c:603 +msgid "(Unnamed Buffer)" +msgstr "(Isimli Tampon)" + +#: ../app/actions/edit-commands.c:574 +msgid "There is no active layer or channel to copy from." +msgstr "Kopyalanacak etkin katman veya kanal yok." + +#: ../app/actions/error-console-actions.c:40 +msgid "Error Console Menu" +msgstr "Hata Konsolu Menüsü" + +#: ../app/actions/error-console-actions.c:44 +msgid "_Clear" +msgstr "_Temizle" + +#: ../app/actions/error-console-actions.c:45 +msgid "Clear error console" +msgstr "Hata uçbirimini temizle" + +#: ../app/actions/error-console-actions.c:50 +msgid "Select _All" +msgstr "Tü_münü Seç" + +#: ../app/actions/error-console-actions.c:51 +msgid "Select all errors" +msgstr "Tüm hataları seç" + +#: ../app/actions/error-console-actions.c:59 +msgid "_Save Error Log to File..." +msgstr "Hata Günlüğünü Dosyaya _Kaydet..." + +#: ../app/actions/error-console-actions.c:60 +msgid "Save error log" +msgstr "Hata günlüğünü kaydet" + +#: ../app/actions/error-console-actions.c:65 +msgid "Save S_election to File..." +msgstr "Seçimi _Dosyaya Kaydet..." + +#: ../app/actions/error-console-actions.c:66 +msgid "Save selection" +msgstr "Seçimi kaydet" + +#: ../app/actions/error-console-commands.c:84 +msgid "Cannot save. Nothing is selected." +msgstr "Kaydedilemiyor, çünkü hiçbir şey seçili değil." + +#: ../app/actions/error-console-commands.c:95 +msgid "Save Error Log to File" +msgstr "Hata kaydını dosyaya kaydet..." + +#: ../app/actions/error-console-commands.c:156 +#, c-format +msgid "" +"Error writing file '%s':\n" +"%s" +msgstr "" +"%s dosyasına kaydedilemedi:\n" +"%s" + +#: ../app/actions/file-actions.c:66 +msgid "_File" +msgstr "_Dosya" + +#: ../app/actions/file-actions.c:67 +msgid "Create" +msgstr "Oluştur" + +#: ../app/actions/file-actions.c:68 +msgid "Open _Recent" +msgstr "Son _Kullanılanı Aç" + +#: ../app/actions/file-actions.c:71 +msgid "_Open..." +msgstr "_Aç..." + +#: ../app/actions/file-actions.c:72 +msgid "Open an image file" +msgstr "Bir görüntü dosyası aç" + +#: ../app/actions/file-actions.c:77 +msgid "Op_en as Layers..." +msgstr "Katman _olarak Aç..." + +#: ../app/actions/file-actions.c:78 +msgid "Open an image file as layers" +msgstr "Bir görüntü dosyasını katman olarak aç" + +#: ../app/actions/file-actions.c:83 +msgid "Open _Location..." +msgstr "Konum _Aç..." + +#: ../app/actions/file-actions.c:84 +msgid "Open an image file from a specified location" +msgstr "Belirlenmiş bir yerden bir görüntü dosyası aç" + +#: ../app/actions/file-actions.c:89 +msgid "Save as _Template..." +msgstr "Ş_ablon Olarak Kaydet..." + +#: ../app/actions/file-actions.c:90 +msgid "Create a new template from this image" +msgstr "Bu görüntüden yeni bir şablon oluştur" + +#: ../app/actions/file-actions.c:95 +msgid "Re_vert" +msgstr "_Geri al" + +#: ../app/actions/file-actions.c:96 +msgid "Reload the image file from disk" +msgstr "Görüntü dosyasını diskten yeniden yükle" + +#: ../app/actions/file-actions.c:101 +msgid "Close all" +msgstr "Hepsini kapat" + +#: ../app/actions/file-actions.c:102 +msgid "Close all opened images" +msgstr "Açılmış bütün görüntüleri kapat" + +#: ../app/actions/file-actions.c:107 +msgid "_Quit" +msgstr "Çı_k" + +#: ../app/actions/file-actions.c:108 +msgid "Quit the GNU Image Manipulation Program" +msgstr "GNU Görüntü İşleme Programı'ndan Çık" + +#: ../app/actions/file-actions.c:116 +msgid "_Save" +msgstr "_Kaydet" + +#: ../app/actions/file-actions.c:117 +msgid "Save this image" +msgstr "Bu görüntüyü kaydet" + +#: ../app/actions/file-actions.c:122 +msgid "Save _As..." +msgstr "_Farklı Kaydet..." + +#: ../app/actions/file-actions.c:123 +msgid "Save this image with a different name" +msgstr "Bu görüntüyü farklı bir adla kaydet" + +#: ../app/actions/file-actions.c:128 +msgid "Save a Cop_y..." +msgstr "Bir K_opyasını Kaydet..." + +#: ../app/actions/file-actions.c:129 +msgid "Save this image with a different name, but keep its current name" +msgstr "Bu görüntüyü farklı bir adla kaydet, ama şimdiki adını sakla" + +#: ../app/actions/file-actions.c:134 +msgid "Save and Close..." +msgstr "Kaydet ve Kapat..." + +#: ../app/actions/file-actions.c:135 +msgid "Save this image and close its window" +msgstr "Bu görüntüyü kaydet ve penceresini kapat" + +#: ../app/actions/file-commands.c:104 ../app/actions/file-commands.c:456 +#: ../app/dialogs/file-open-dialog.c:76 +msgid "Open Image" +msgstr "Resim Aç" + +#: ../app/actions/file-commands.c:125 +msgid "Open Image as Layers" +msgstr "Görüntüyü Katman olarak Aç" + +#: ../app/actions/file-commands.c:266 +msgid "Saving canceled" +msgstr "Kaydetmeden vazgeçildi" + +#: ../app/actions/file-commands.c:275 ../app/dialogs/file-save-dialog.c:513 +#: ../app/widgets/gimpdnd-xds.c:173 +#, c-format +msgid "" +"Saving '%s' failed:\n" +"\n" +"%s" +msgstr "" +"%s dosyasını kaydetme başarısız oldu.\n" +"\n" +"%s" + +#: ../app/actions/file-commands.c:300 +msgid "No changes need to be saved" +msgstr "Kaydedilmesi gereken değişiklik yok" + +#: ../app/actions/file-commands.c:307 ../app/dialogs/file-save-dialog.c:88 +msgid "Save Image" +msgstr "Resmi Kaydet" + +#: ../app/actions/file-commands.c:313 +msgid "Save a Copy of the Image" +msgstr "Görüntünün bir Kopyasını Kaydet" + +#: ../app/actions/file-commands.c:333 +msgid "Create New Template" +msgstr "Yeni Şablon Oluştur" + +#: ../app/actions/file-commands.c:337 +msgid "Enter a name for this template" +msgstr "Bu şablon için bir isim yazın" + +#: ../app/actions/file-commands.c:363 +msgid "Revert failed. No file name associated with this image." +msgstr "" +"Geri dönme başarısız. Bu görüntü ile ilişkilendirilmiş bir dosya adı yok." + +#: ../app/actions/file-commands.c:376 +msgid "Revert Image" +msgstr "Resmi Geri Al" + +#: ../app/actions/file-commands.c:402 +#, c-format +msgid "Revert '%s' to '%s'?" +msgstr "'%s'dan '%s'a geri dönsün mü?" + +#: ../app/actions/file-commands.c:408 +msgid "" +"By reverting the image to the state saved on disk, you will lose all " +"changes, including all undo information." +msgstr "" +"Görüntüyü diskte kaydedilmiş durumu geri döndürerek, tüm geri alma bilgisini " +"de içerecek şekilde bütün değişiklikleri kaybedeceksiniz," + +#: ../app/actions/file-commands.c:563 +msgid "(Unnamed Template)" +msgstr "(İsimsiz Şablon)" + +#: ../app/actions/file-commands.c:611 +#, c-format +msgid "" +"Reverting to '%s' failed:\n" +"\n" +"%s" +msgstr "" +"'%s' geri dönme başarısız:\n" +"\n" +"%s" + +#: ../app/actions/fonts-actions.c:44 +msgid "Fonts Menu" +msgstr "Yazıtipleri Menüsü" + +#: ../app/actions/fonts-actions.c:48 +msgid "_Rescan Font List" +msgstr "_Yazıtipi Listesini Yeniden Tara" + +#: ../app/actions/fonts-actions.c:49 +msgid "Rescan font list" +msgstr "Yazıtipi listesini yeniden tara" + +#: ../app/actions/gradient-editor-actions.c:46 +msgid "Gradient Editor Menu" +msgstr "Gradyan Düzenleyici Menüsü" + +#: ../app/actions/gradient-editor-actions.c:50 +msgid "Left Color Type" +msgstr "Sol Renk Tipi" + +#: ../app/actions/gradient-editor-actions.c:52 +msgid "_Load Left Color From" +msgstr "S_ol Rengi Yükle" + +#: ../app/actions/gradient-editor-actions.c:54 +msgid "_Save Left Color To" +msgstr "Sol Rengi K_aydet" + +#: ../app/actions/gradient-editor-actions.c:57 +msgid "Right Color Type" +msgstr "Sağ Renk Tipi" + +#: ../app/actions/gradient-editor-actions.c:59 +msgid "Load Right Color Fr_om" +msgstr "S_ağ Rengi Yükle" + +#: ../app/actions/gradient-editor-actions.c:61 +msgid "Sa_ve Right Color To" +msgstr "Sağ Rengi Ka_ydet" + +#: ../app/actions/gradient-editor-actions.c:67 +msgid "L_eft Endpoint's Color..." +msgstr "S_ol Bitim Noktasının Rengi..." + +#: ../app/actions/gradient-editor-actions.c:72 +msgid "R_ight Endpoint's Color..." +msgstr "S_ağ Bitim Noktasının Rengi..." + +#: ../app/actions/gradient-editor-actions.c:112 +msgid "Ble_nd Endpoints' Colors" +msgstr "Bitim Noktasının Rengini Ka_rıştır" + +#: ../app/actions/gradient-editor-actions.c:117 +msgid "Blend Endpoints' Opacit_y" +msgstr "Bitim Noktasının I_şık Geçirmezliğini Karıştır" + +#: ../app/actions/gradient-editor-actions.c:125 +msgid "Edit Active Gradient" +msgstr "Etkin Renk Geçişini Düzenle" + +#: ../app/actions/gradient-editor-actions.c:156 +msgid "_Left Neighbor's Right Endpoint" +msgstr "_Sol Bitişiğin Sağ Bitim Noktası" + +#: ../app/actions/gradient-editor-actions.c:161 +msgid "_Right Endpoint" +msgstr "S_ağ Bitim Noktası" + +#: ../app/actions/gradient-editor-actions.c:166 +#: ../app/actions/gradient-editor-actions.c:214 +msgid "_Foreground Color" +msgstr "Ö_nalan Rengi" + +#: ../app/actions/gradient-editor-actions.c:171 +#: ../app/actions/gradient-editor-actions.c:219 +#: ../app/actions/gradient-editor-actions.c:273 +#: ../app/actions/gradient-editor-actions.c:301 +msgid "_Background Color" +msgstr "_Artalan Rengi" + +#: ../app/actions/gradient-editor-actions.c:204 +msgid "_Right Neighbor's Left Endpoint" +msgstr "Sağ _Komşunun Sol Bitim Noktası" + +#: ../app/actions/gradient-editor-actions.c:209 +msgid "_Left Endpoint" +msgstr "_Sol Bitim Noktası" + +#: ../app/actions/gradient-editor-actions.c:258 +#: ../app/actions/gradient-editor-actions.c:286 +msgid "_Fixed" +msgstr "_Değişmez" + +#: ../app/actions/gradient-editor-actions.c:263 +#: ../app/actions/gradient-editor-actions.c:291 +msgid "F_oreground Color" +msgstr "Ö_nalan Rengi" + +#: ../app/actions/gradient-editor-actions.c:268 +#: ../app/actions/gradient-editor-actions.c:296 +msgid "Fo_reground Color (Transparent)" +msgstr "Ön_alan Rengi (Saydam)" + +#: ../app/actions/gradient-editor-actions.c:278 +#: ../app/actions/gradient-editor-actions.c:306 +msgid "B_ackground Color (Transparent)" +msgstr "Ar_talan Rengi (Saydam)" + +#: ../app/actions/gradient-editor-actions.c:314 +msgid "_Linear" +msgstr "_Doğrusal" + +#: ../app/actions/gradient-editor-actions.c:319 +msgid "_Curved" +msgstr "Eğ_risel" + +#: ../app/actions/gradient-editor-actions.c:324 +msgid "_Sinusoidal" +msgstr "_Sinüzoidal" + +#: ../app/actions/gradient-editor-actions.c:329 +msgid "Spherical (i_ncreasing)" +msgstr "Küresel (a_rtarak)" + +#: ../app/actions/gradient-editor-actions.c:334 +msgid "Spherical (_decreasing)" +msgstr "Küresel (_azalarak)" + +#: ../app/actions/gradient-editor-actions.c:339 +#: ../app/actions/gradient-editor-actions.c:362 +msgid "(Varies)" +msgstr "(Değişen)" + +#: ../app/actions/gradient-editor-actions.c:347 +#: ../app/actions/image-actions.c:141 +msgid "_RGB" +msgstr "_RGB" + +#: ../app/actions/gradient-editor-actions.c:352 +msgid "HSV (_counter-clockwise hue)" +msgstr "HSV (_saat yönünün tersine renk özü)" + +#: ../app/actions/gradient-editor-actions.c:357 +msgid "HSV (clockwise _hue)" +msgstr "HSV (saat yönünde _renk özü)" + +#: ../app/actions/gradient-editor-actions.c:370 +#: ../app/actions/view-actions.c:273 +msgid "Zoom In" +msgstr "Yakınlaş" + +#: ../app/actions/gradient-editor-actions.c:371 +#: ../app/actions/palette-editor-actions.c:88 +#: ../app/actions/view-actions.c:262 ../app/actions/view-actions.c:274 +msgid "Zoom in" +msgstr "Yakınlaş" + +#: ../app/actions/gradient-editor-actions.c:376 +#: ../app/actions/view-actions.c:267 +msgid "Zoom Out" +msgstr "Uzaklaş" + +#: ../app/actions/gradient-editor-actions.c:377 +#: ../app/actions/palette-editor-actions.c:94 +#: ../app/actions/view-actions.c:256 ../app/actions/view-actions.c:268 +msgid "Zoom out" +msgstr "Uzaklaş" + +#: ../app/actions/gradient-editor-actions.c:382 +msgid "Zoom All" +msgstr "Hepsine Yakınlaş" + +#: ../app/actions/gradient-editor-actions.c:383 +#: ../app/actions/palette-editor-actions.c:100 +msgid "Zoom all" +msgstr "Hepsine yakınlaş" + +#: ../app/actions/gradient-editor-actions.c:773 +msgid "_Blending Function for Segment" +msgstr "Kesim için _Karıştırma İşlevi" + +#: ../app/actions/gradient-editor-actions.c:775 +msgid "Coloring _Type for Segment" +msgstr "Kesim için Renklendirme _Tipi" + +#: ../app/actions/gradient-editor-actions.c:778 +msgid "_Flip Segment" +msgstr "Kesimi _Çevir" + +#: ../app/actions/gradient-editor-actions.c:780 +msgid "_Replicate Segment..." +msgstr "Kesimi _Tekrarla..." + +#: ../app/actions/gradient-editor-actions.c:782 +msgid "Split Segment at _Midpoint" +msgstr "Kesimi Orta _Noktadan Ayır" + +#: ../app/actions/gradient-editor-actions.c:784 +msgid "Split Segment _Uniformly..." +msgstr "Kesimi _Birörnek olarak Ayır..." + +#: ../app/actions/gradient-editor-actions.c:786 +msgid "_Delete Segment" +msgstr "Kesimi _Sil" + +#: ../app/actions/gradient-editor-actions.c:788 +msgid "Re-_center Segment's Midpoint" +msgstr "Kesimin Orta Noktasını Yeniden O_rtala" + +#: ../app/actions/gradient-editor-actions.c:790 +msgid "Re-distribute _Handles in Segment" +msgstr "Kesim içindeki _Tanıtıcıları Yeniden Dağıt" + +#: ../app/actions/gradient-editor-actions.c:795 +msgid "_Blending Function for Selection" +msgstr "Seçim için _Karıştırma İşlevi" + +#: ../app/actions/gradient-editor-actions.c:797 +msgid "Coloring _Type for Selection" +msgstr "Seçim için Renklendirme _Tipi" + +#: ../app/actions/gradient-editor-actions.c:800 +msgid "_Flip Selection" +msgstr "Seçimi _Çevir" + +#: ../app/actions/gradient-editor-actions.c:802 +msgid "_Replicate Selection..." +msgstr "Seçimi _Tekrarla..." + +#: ../app/actions/gradient-editor-actions.c:804 +msgid "Split Segments at _Midpoints" +msgstr "Kesimleri O_rta Noktalarından Ayır" + +#: ../app/actions/gradient-editor-actions.c:806 +msgid "Split Segments _Uniformly..." +msgstr "Kesimleri _Birörnek olarak Ayır..." + +#: ../app/actions/gradient-editor-actions.c:808 +msgid "_Delete Selection" +msgstr "_Seçimi sil" + +#: ../app/actions/gradient-editor-actions.c:810 +msgid "Re-_center Midpoints in Selection" +msgstr "Seçimdeki Orta Noktaları Yeniden O_rtala" + +#: ../app/actions/gradient-editor-actions.c:812 +msgid "Re-distribute _Handles in Selection" +msgstr "Seçim içindeki _Tanıtıcıları Yeniden Dağıt" + +#: ../app/actions/gradient-editor-commands.c:86 +msgid "Left Endpoint Color" +msgstr "Sol Bitim Noktası Rengi" + +#: ../app/actions/gradient-editor-commands.c:88 +msgid "Gradient Segment's Left Endpoint Color" +msgstr "Renk Geçişi Kesimlerinin Sol Bitim Noktası Rengi" + +#: ../app/actions/gradient-editor-commands.c:237 +msgid "Right Endpoint Color" +msgstr "Sağ Bitim Noktasının Rengi" + +#: ../app/actions/gradient-editor-commands.c:239 +msgid "Gradient Segment's Right Endpoint Color" +msgstr "Renk Geçişi Kesimlerinin Sağ Bitim Noktası Rengi" + +#: ../app/actions/gradient-editor-commands.c:453 +msgid "Replicate Segment" +msgstr "Kesimi Tekrarla" + +#: ../app/actions/gradient-editor-commands.c:454 +msgid "Replicate Gradient Segment" +msgstr "Renk Geçişi Kesimini Tekrarla" + +#: ../app/actions/gradient-editor-commands.c:458 +msgid "Replicate Selection" +msgstr "Seçimi Tekrarla" + +#: ../app/actions/gradient-editor-commands.c:459 +msgid "Replicate Gradient Selection" +msgstr "Renk Geçişi Seçimini Tekrarla" + +#: ../app/actions/gradient-editor-commands.c:472 +msgid "Replicate" +msgstr "Çoğalt" + +#: ../app/actions/gradient-editor-commands.c:492 +msgid "" +"Select the number of times\n" +"to replicate the selected segment." +msgstr "" +"Seçilmiş kesimin kaç kere \n" +"tekrarlanacağını seçin." + +#: ../app/actions/gradient-editor-commands.c:495 +msgid "" +"Select the number of times\n" +"to replicate the selection." +msgstr "" +"Seçimin kaç kere \n" +"tekrarlanacağını seçin." + +#: ../app/actions/gradient-editor-commands.c:554 +msgid "Split Segment Uniformly" +msgstr "Kesimi Birörnek olarak Ayır" + +#: ../app/actions/gradient-editor-commands.c:555 +msgid "Split Gradient Segment Uniformly" +msgstr "Renk Geçişi Kesimini Birörnek olarak Ayır" + +#: ../app/actions/gradient-editor-commands.c:559 +msgid "Split Segments Uniformly" +msgstr "Kesimleri Birörnek olarak Ayır" + +#: ../app/actions/gradient-editor-commands.c:560 +msgid "Split Gradient Segments Uniformly" +msgstr "Renk Geçişi Kesimlerini Birörnek olarak Ayır" + +#: ../app/actions/gradient-editor-commands.c:573 +msgid "Split" +msgstr "Ayır" + +#: ../app/actions/gradient-editor-commands.c:594 +msgid "" +"Select the number of uniform parts\n" +"in which to split the selected segment." +msgstr "" +"Seçilmiş kesimlerin ayrılacağı \n" +"birörnek parça sayısını seçin." + +#: ../app/actions/gradient-editor-commands.c:597 +msgid "" +"Select the number of uniform parts\n" +"in which to split the segments in the selection." +msgstr "" +"Seçim içindeki kesimlerin ayrılacağı \n" +"birörnek parça sayısını seçin." + +#: ../app/actions/gradients-actions.c:44 +msgid "Gradients Menu" +msgstr "Gradyanlar Menüsü" + +#: ../app/actions/gradients-actions.c:48 +msgid "_New Gradient" +msgstr "_Yeni Gradyan" + +#: ../app/actions/gradients-actions.c:49 +msgid "New gradient" +msgstr "Yeni gradyan" + +#: ../app/actions/gradients-actions.c:54 +msgid "D_uplicate Gradient" +msgstr "_Gradyanı Çoğalt" + +#: ../app/actions/gradients-actions.c:55 +msgid "Duplicate gradient" +msgstr "Gradyanı Çoğalt" + +#: ../app/actions/gradients-actions.c:60 +msgid "Copy Gradient _Location" +msgstr "Renk Geçişi _Yerini Kopyala" + +#: ../app/actions/gradients-actions.c:61 +msgid "Copy gradient file location to clipboard" +msgstr "Renk geçişi dosyasının yerini panoya kopyala" + +#: ../app/actions/gradients-actions.c:66 +msgid "Save as _POV-Ray..." +msgstr "_POV-Ray olarak kaydet..." + +#: ../app/actions/gradients-actions.c:67 +msgid "Save gradient as POV-Ray" +msgstr "Gradyanı POV-Ray olarak kaydet" + +#: ../app/actions/gradients-actions.c:72 +msgid "_Delete Gradient" +msgstr "Renk Geçişini _Sil..." + +#: ../app/actions/gradients-actions.c:73 +msgid "Delete gradient" +msgstr "Gradyanı sil" + +#: ../app/actions/gradients-actions.c:78 +msgid "_Refresh Gradients" +msgstr "_Gradyanları Tazele" + +#: ../app/actions/gradients-actions.c:79 +msgid "Refresh gradients" +msgstr "Gradyanları tazele" + +#: ../app/actions/gradients-actions.c:87 +msgid "_Edit Gradient..." +msgstr "Gradyanı _Düzenle..." + +#: ../app/actions/gradients-actions.c:88 +msgid "Edit gradient" +msgstr "Gradyanı düzenle" + +#: ../app/actions/gradients-commands.c:66 +#, c-format +msgid "Save '%s' as POV-Ray" +msgstr "'%s' dosyasını POV-Ray olarak kaydet" + +#: ../app/actions/help-actions.c:38 ../app/actions/help-actions.c:41 +msgid "_Help" +msgstr "_Yardım" + +#: ../app/actions/help-actions.c:42 +msgid "Open the GIMP user manual" +msgstr "GIMP kullanıcı el kitabını aç" + +#: ../app/actions/help-actions.c:47 +msgid "_Context Help" +msgstr "_Bağlam Yardımı" + +#: ../app/actions/help-actions.c:48 +msgid "Show the help for a specific user interface item" +msgstr "Belli bir kullanıcı arabirimi öğesi için yardımı göster" + +#: ../app/actions/image-actions.c:47 ../app/actions/image-actions.c:51 +msgid "Image Menu" +msgstr "Resim Menüsü" + +#: ../app/actions/image-actions.c:54 +msgid "_Image" +msgstr "_Resim" + +#: ../app/actions/image-actions.c:55 +msgid "_Mode" +msgstr "_Kip" + +#: ../app/actions/image-actions.c:56 ../app/actions/layers-actions.c:56 +msgid "_Transform" +msgstr "_Dönüştür" + +#: ../app/actions/image-actions.c:57 +msgid "_Guides" +msgstr "_Kılavuzlar" + +#: ../app/actions/image-actions.c:60 +msgid "I_nfo" +msgstr "B_ilgi" + +#: ../app/actions/image-actions.c:61 ../app/tools/gimplevelstool.c:653 +#: ../app/tools/gimpthresholdtool.c:264 +msgid "_Auto" +msgstr "_Otomatik" + +#: ../app/actions/image-actions.c:62 ../app/actions/plug-in-actions.c:95 +msgid "_Map" +msgstr "_Harita" + +#: ../app/actions/image-actions.c:63 +msgid "C_omponents" +msgstr "Bil_eşenler" + +#: ../app/actions/image-actions.c:66 +msgid "_New..." +msgstr "_Yeni..." + +#: ../app/actions/image-actions.c:67 +msgid "Create a new image" +msgstr "Yeni bir görüntü oluştur" + +#: ../app/actions/image-actions.c:72 +msgid "Can_vas Size..." +msgstr "Tuval _Boyutu..." + +#: ../app/actions/image-actions.c:73 +msgid "Adjust the image dimensions" +msgstr "Görüntü boyutlarını ayarla" + +#: ../app/actions/image-actions.c:78 +msgid "F_it Canvas to Layers" +msgstr "Tuvali Katmalara U_ydur" + +#: ../app/actions/image-actions.c:79 +msgid "Resize the image to enclose all layers" +msgstr "Tüm katmanları kapsayacak şekilde görüntüyü yeniden boyutlandır" + +#: ../app/actions/image-actions.c:84 +msgid "F_it Canvas to Selection" +msgstr "Tuvali Seçime _Uydur" + +#: ../app/actions/image-actions.c:85 +msgid "Resize the image to the extents of the selection" +msgstr "Görüntüyü, seçimin ölçülerine göre yeniden boyutlandır" + +#: ../app/actions/image-actions.c:90 +msgid "_Print Size..." +msgstr "_Yazdırma Boyutu..." + +#: ../app/actions/image-actions.c:91 +msgid "Adjust the print resolution" +msgstr "Yazdırma çözünürlüğünü ayarla" + +#: ../app/actions/image-actions.c:96 +msgid "_Scale Image..." +msgstr "_Resmi Ölçekle..." + +#: ../app/actions/image-actions.c:97 +msgid "Change the size of the image content" +msgstr "Görüntü içeriğinin boyutunu değiştir" + +#: ../app/actions/image-actions.c:102 ../app/actions/layers-actions.c:188 +msgid "_Crop to Selection" +msgstr "Seçime göre _Kırp" + +#: ../app/actions/image-actions.c:103 +msgid "Crop the image to the extents of the selection" +msgstr "Seçimin ölçülerine göre görüntüyü kırp" + +#: ../app/actions/image-actions.c:108 +msgid "_Duplicate" +msgstr "Çoğal_t" + +#: ../app/actions/image-actions.c:109 +msgid "Create a duplicate of this image" +msgstr "Bu görüntünün bir eşini oluştur" + +#: ../app/actions/image-actions.c:114 +msgid "Merge Visible _Layers..." +msgstr "_Görünen Katmanları Birleştir..." + +#: ../app/actions/image-actions.c:115 ../app/actions/layers-actions.c:141 +msgid "Merge all visible layers into one layer" +msgstr "Görünen bütün katmanları bir katmana birleştir" + +#: ../app/actions/image-actions.c:120 ../app/actions/layers-actions.c:146 +msgid "_Flatten Image" +msgstr "_Resmi Düzleştir" + +#: ../app/actions/image-actions.c:121 ../app/actions/layers-actions.c:147 +msgid "Merge all layers into one and remove transparency" +msgstr "Görünen bütün katmanları bir olarak birleştir ve saydamlığı kaldır" + +#: ../app/actions/image-actions.c:126 +msgid "Configure G_rid..." +msgstr "Kılavuzları _Yapılandır..." + +#: ../app/actions/image-actions.c:127 +msgid "Configure the grid for this image" +msgstr "Bu görüntü için ızgarayı yapılandır" + +#: ../app/actions/image-actions.c:132 +msgid "Image Pr_operties" +msgstr "Görüntü Özellikleri" + +#: ../app/actions/image-actions.c:133 +msgid "Display information about this image" +msgstr "Bu görüntü hakkındaki bilgiyi göster" + +#: ../app/actions/image-actions.c:142 +msgid "Convert the image to the RGB colorspace" +msgstr "Görüntüyü RGB renk alanına dönüştür" + +#: ../app/actions/image-actions.c:146 +msgid "_Grayscale" +msgstr "_Gri Ölçekli" + +#: ../app/actions/image-actions.c:147 +msgid "Convert the image to grayscale" +msgstr "Görüntüyü gri ölçeğe dönüştür" + +#: ../app/actions/image-actions.c:151 +msgid "_Indexed..." +msgstr "İ_ndisli..." + +#: ../app/actions/image-actions.c:152 +msgid "Convert the image to indexed colors" +msgstr "Görüntüyü sıralanmış renklere dönüştür" + +#: ../app/actions/image-actions.c:160 +msgid "Flip image horizontally" +msgstr "Görüntüyü yatay olarak çevir" + +#: ../app/actions/image-actions.c:166 +msgid "Flip image vertically" +msgstr "Görüntüyü dikey olarak çevir" + +#: ../app/actions/image-actions.c:175 +msgid "Rotate the image 90 degrees to the right" +msgstr "Görüntüyü 90 derece sağa döndür" + +#: ../app/actions/image-actions.c:181 +msgid "Turn the image upside-down" +msgstr "Görüntüyü baş aşağı çevir" + +#: ../app/actions/image-actions.c:187 +msgid "Rotate the image 90 degrees to the left" +msgstr "Görüntüyü 90 derece sola döndür" + +#: ../app/actions/image-commands.c:235 +msgid "Set Image Canvas Size" +msgstr "Resim Tuval Boyutunu Belirle" + +#: ../app/actions/image-commands.c:261 ../app/actions/image-commands.c:282 +#: ../app/actions/image-commands.c:559 +msgid "Resizing" +msgstr "Yeniden boyutlandırma" + +#: ../app/actions/image-commands.c:306 +msgid "Set Image Print Resolution" +msgstr "Görüntünün Yazdırma Çözünürlüğünü Ayarla" + +#: ../app/actions/image-commands.c:362 +#: ../app/pdb/drawable-transform-cmds.c:148 +#: ../app/pdb/drawable-transform-cmds.c:223 +msgid "Flipping" +msgstr "Çevirme" + +#: ../app/actions/image-commands.c:383 +#: ../app/pdb/drawable-transform-cmds.c:525 +#: ../app/pdb/drawable-transform-cmds.c:604 ../app/pdb/image-cmds.c:533 +#: ../app/pdb/transform-tools-cmds.c:215 ../app/tools/gimprotatetool.c:122 +msgid "Rotating" +msgstr "Döndürme" + +#: ../app/actions/image-commands.c:408 ../app/actions/layers-commands.c:642 +msgid "Cannot crop because the current selection is empty." +msgstr "Kırpma yapılamaz çünkü seçili alan boş." + +#: ../app/actions/image-commands.c:606 +msgid "Change Print Size" +msgstr "Yazdırma Boyutunu Değiştir" + +#: ../app/actions/image-commands.c:647 ../app/core/gimpimage-scale.c:82 +msgid "Scale Image" +msgstr "Resmi Ölçekle" + +#. Scaling +#: ../app/actions/image-commands.c:658 ../app/actions/layers-commands.c:1104 +#: ../app/dialogs/preferences-dialog.c:1925 +#: ../app/pdb/drawable-transform-cmds.c:682 +#: ../app/pdb/drawable-transform-cmds.c:758 ../app/pdb/image-cmds.c:405 +#: ../app/pdb/image-cmds.c:441 ../app/pdb/layer-cmds.c:292 +#: ../app/pdb/layer-cmds.c:337 ../app/pdb/transform-tools-cmds.c:291 +#: ../app/tools/gimpscaletool.c:107 +msgid "Scaling" +msgstr "Ölçekleme" + +#: ../app/actions/images-actions.c:43 +msgid "Images Menu" +msgstr "Resimler Menüsü" + +#: ../app/actions/images-actions.c:47 +msgid "_Raise Views" +msgstr "_Görünümleri Yükselt" + +#: ../app/actions/images-actions.c:48 +msgid "Raise this image's displays" +msgstr "Görüntülerin gösterimlerini yükselt" + +#: ../app/actions/images-actions.c:53 ../app/actions/view-actions.c:75 +msgid "_New View" +msgstr "Yeni _Görünüm" + +#: ../app/actions/images-actions.c:54 +msgid "Create a new display for this image" +msgstr "Bu resim için yeni bir görünüm oluştur" + +#: ../app/actions/images-actions.c:59 +msgid "_Delete Image" +msgstr "_Resmi Sil" + +#: ../app/actions/images-actions.c:60 +msgid "Delete this image" +msgstr "Bu resmi sil" + +#: ../app/actions/layers-actions.c:48 +msgid "Layers Menu" +msgstr "Katmanlar Menüsü" + +#: ../app/actions/layers-actions.c:51 +msgid "_Layer" +msgstr "_Katman" + +#: ../app/actions/layers-actions.c:52 +msgid "Stac_k" +msgstr "Kü_me" + +#: ../app/actions/layers-actions.c:53 +msgid "Te_xt to Selection" +msgstr "Me_tinden Seçime" + +#: ../app/actions/layers-actions.c:54 +msgid "_Mask" +msgstr "_Maske" + +#: ../app/actions/layers-actions.c:55 +msgid "Tr_ansparency" +msgstr "Ş_effaflık" + +#: ../app/actions/layers-actions.c:57 +msgid "_Properties" +msgstr "Ö_zellikler" + +#: ../app/actions/layers-actions.c:59 +msgid "Layer _Mode" +msgstr "Katman Ki_pi" + +#: ../app/actions/layers-actions.c:62 +msgid "Te_xt Tool" +msgstr "Metin _Aracı" + +#: ../app/actions/layers-actions.c:63 +msgid "Activate the text tool on this text layer" +msgstr "Bu metin katmanı üzerinde metin aracını etkinleştir" + +#: ../app/actions/layers-actions.c:68 +msgid "_Edit Layer Attributes..." +msgstr "Katma_n Özniteliklerini Düzenle..." + +#: ../app/actions/layers-actions.c:69 +msgid "Edit the layer's name" +msgstr "Katman adını düzenle" + +#: ../app/actions/layers-actions.c:74 +msgid "_New Layer..." +msgstr "Y_eni Katman..." + +#: ../app/actions/layers-actions.c:75 +msgid "Create a new layer and add it to the image" +msgstr "Yeni bir katman oluştur ve bunu görüntüye ekle" + +#: ../app/actions/layers-actions.c:80 +msgid "_New Layer" +msgstr "_Yeni Katman" + +#: ../app/actions/layers-actions.c:81 +msgid "Create a new layer with last used values" +msgstr "Son kullanılan değerler ile yeni bir katman oluştur" + +#: ../app/actions/layers-actions.c:86 +msgid "New from _Visible" +msgstr "_Görünürden Yeni" + +#: ../app/actions/layers-actions.c:87 +msgid "Create a new layer from what is visible in this image" +msgstr "Bu görüntüdeki bütün görünür öğelerden yeni bir katman oluştur" + +#: ../app/actions/layers-actions.c:92 +msgid "D_uplicate Layer" +msgstr "Katmanı Ç_oğalt" + +#: ../app/actions/layers-actions.c:93 +msgid "Create a duplicate of the layer and add it to the image" +msgstr "Katmanın bir eşini oluştur ve bunu görüntüye ekle" + +#: ../app/actions/layers-actions.c:98 +msgid "_Delete Layer" +msgstr "Katma_nı Sil" + +#: ../app/actions/layers-actions.c:99 +msgid "Delete this layer" +msgstr "Bu katmanı sil" + +#: ../app/actions/layers-actions.c:104 +msgid "_Raise Layer" +msgstr "K_atmanı Yükselt" + +#: ../app/actions/layers-actions.c:105 +msgid "Raise this layer one step in the layer stack" +msgstr "Katman yığını içinde bu katmanı bir sıra yükselt" + +#: ../app/actions/layers-actions.c:110 +msgid "Layer to _Top" +msgstr "_Katmanı En Üste Çıkart" + +#: ../app/actions/layers-actions.c:111 +msgid "Move this layer to the top of the layer stack" +msgstr "Katman yığınında bu katmanı en üste taşı" + +#: ../app/actions/layers-actions.c:116 +msgid "_Lower Layer" +msgstr "K_atmanı Alçalt" + +#: ../app/actions/layers-actions.c:117 +msgid "Lower this layer one step in the layer stack" +msgstr "Katman yığını içinde bu katmanı bir sıra alçalt" + +#: ../app/actions/layers-actions.c:122 +msgid "Layer to _Bottom" +msgstr "Katmanı _En Alta İndir" + +#: ../app/actions/layers-actions.c:123 +msgid "Move this layer to the bottom of the layer stack" +msgstr "Katman yığınında bu katmanı en alta taşı" + +#: ../app/actions/layers-actions.c:128 +msgid "_Anchor Layer" +msgstr "Kat_manı Çıpala" + +#: ../app/actions/layers-actions.c:129 +msgid "Anchor the floating layer" +msgstr "Yüzen katmanı çıpala" + +#: ../app/actions/layers-actions.c:134 +msgid "Merge Do_wn" +msgstr "Aşağı _Birleştir" + +#: ../app/actions/layers-actions.c:135 +msgid "Merge this layer with the one below it" +msgstr "Bu katmanı bir altındaki katmanla birleştir" + +#: ../app/actions/layers-actions.c:140 +msgid "Merge _Visible Layers..." +msgstr "_Görünen Katmanları Birleştir..." + +#: ../app/actions/layers-actions.c:152 +msgid "_Discard Text Information" +msgstr "_Metin Bilgisini Sil" + +#: ../app/actions/layers-actions.c:153 +msgid "Turn this text layer into a normal layer" +msgstr "Bu metin katmanını normal bir katmana çevir" + +#: ../app/actions/layers-actions.c:158 +msgid "Text to _Path" +msgstr "Metinden _Yola" + +#: ../app/actions/layers-actions.c:159 +msgid "Create a path from this text layer" +msgstr "Bu metin katmanından bir yol oluştur" + +#: ../app/actions/layers-actions.c:164 +msgid "Text alon_g Path" +msgstr "Yol boyunca metin" + +#: ../app/actions/layers-actions.c:165 +msgid "Warp this layer's text along the current path" +msgstr "Bu katmanın yazısını mevcut yol boyunca eğ" + +#: ../app/actions/layers-actions.c:170 +msgid "Layer B_oundary Size..." +msgstr "Katman Sınır _Boyutları..." + +#: ../app/actions/layers-actions.c:171 +msgid "Adjust the layer dimensions" +msgstr "Katman boyutlarını ayarla" + +#: ../app/actions/layers-actions.c:176 +msgid "Layer to _Image Size" +msgstr "_Katmanı Resim Boyutuna" + +#: ../app/actions/layers-actions.c:177 +msgid "Resize the layer to the size of the image" +msgstr "Katmanı görüntünün boyutuna göre yeniden boyutlandır" + +#: ../app/actions/layers-actions.c:182 +msgid "_Scale Layer..." +msgstr "Katmanı Ölçe_klendir..." + +#: ../app/actions/layers-actions.c:183 +msgid "Change the size of the layer content" +msgstr "Katman içeriğinin büyüklüğünü değiştir" + +#: ../app/actions/layers-actions.c:189 +msgid "Crop the layer to the extents of the selection" +msgstr "Katmanı seçimin ölçülerine göre kırp" + +#: ../app/actions/layers-actions.c:194 +msgid "Add La_yer Mask..." +msgstr "Katman Maske_si Ekle..." + +#: ../app/actions/layers-actions.c:195 +msgid "Add a mask that allows non-destructive editing of transparency" +msgstr "Yıkıcı olmadan düzenlenebilen saydamlığa izin veren bir maske ekle" + +#: ../app/actions/layers-actions.c:200 +msgid "Add Alpha C_hannel" +msgstr "Alfa Kan_alı Ekle" + +#: ../app/actions/layers-actions.c:201 +msgid "Add transparency information to the layer" +msgstr "Katmana saydamlık bilgisi ekle" + +#: ../app/actions/layers-actions.c:206 +msgid "_Remove Alpha Channel" +msgstr "Görünür Kanalını _Kaldır" + +#: ../app/actions/layers-actions.c:207 +msgid "Remove transparency information from the layer" +msgstr "Katmandaki saydamlık bilgisini kaldır" + +#: ../app/actions/layers-actions.c:215 +msgid "Lock Alph_a Channel" +msgstr "Gö_rünür Kanalını Kilitle" + +#: ../app/actions/layers-actions.c:216 +msgid "Keep transparency information on this layer from being modified" +msgstr "Bu katman üzerindeki saydamlık bilgisini değiştirilmeden koru." + +#: ../app/actions/layers-actions.c:222 +msgid "_Edit Layer Mask" +msgstr "_Katman Maskesini Düzenle" + +#: ../app/actions/layers-actions.c:223 +msgid "Work on the layer mask" +msgstr "Katman maskesi üzerinde çalış" + +#: ../app/actions/layers-actions.c:229 +msgid "S_how Layer Mask" +msgstr "K_atman Maskesini Göster" + +#: ../app/actions/layers-actions.c:235 +msgid "_Disable Layer Mask" +msgstr "Katman _Maskesini Etkisiz Yap" + +#: ../app/actions/layers-actions.c:236 +msgid "Dismiss the effect of the layer mask" +msgstr "Katman maskesini etkisiz yap" + +#: ../app/actions/layers-actions.c:245 +msgid "Apply Layer _Mask" +msgstr "Katm_an Maskesini Uygula" + +#: ../app/actions/layers-actions.c:246 +msgid "Apply the effect of the layer mask and remove it" +msgstr "Katman maskesi etkisini uygula ve bunu kaldır" + +#: ../app/actions/layers-actions.c:251 +msgid "Delete Layer Mas_k" +msgstr "K_atman Maskesini Sil" + +#: ../app/actions/layers-actions.c:252 +msgid "Remove the layer mask and its effect" +msgstr "Katman maskesini ve bunun etkisini kaldır" + +#: ../app/actions/layers-actions.c:260 +msgid "_Mask to Selection" +msgstr "Maskeden _Seçime" + +#: ../app/actions/layers-actions.c:261 +msgid "Replace the selection with the layer mask" +msgstr "Seçim ile katman maskesini birbirlerinin yerine koy" + +#: ../app/actions/layers-actions.c:267 +msgid "Add the layer mask to the current selection" +msgstr "Şimdiki seçime katman maskesini ekle" + +#: ../app/actions/layers-actions.c:273 +msgid "Subtract the layer mask from the current selection" +msgstr "Şimdiki seçimden katman maskesini çıkar" + +#: ../app/actions/layers-actions.c:279 +msgid "Intersect the layer mask with the current selection" +msgstr "Katman maskesi ile şimdiki seçimi kesiştir" + +#: ../app/actions/layers-actions.c:287 +msgid "Al_pha to Selection" +msgstr "Alfa_dan Seçime" + +#: ../app/actions/layers-actions.c:288 +msgid "Replace the selection with the layer's alpha channel" +msgstr "Seçim ile katmanın görünür kanalını birbirlerinin yerine koy" + +#: ../app/actions/layers-actions.c:293 ../app/actions/layers-actions.c:320 +msgid "A_dd to Selection" +msgstr "Seçime _Ekle" + +#: ../app/actions/layers-actions.c:294 +msgid "Add the layer's alpha channel to the current selection" +msgstr "Şimdiki seçime katmanın görünür kanalını ekle" + +#: ../app/actions/layers-actions.c:300 +msgid "Subtract the layer's alpha channel from the current selection" +msgstr "Şimdiki seçimden katmanın görünür kanalını çıkar" + +#: ../app/actions/layers-actions.c:306 +msgid "Intersect the layer's alpha channel with the current selection" +msgstr "Şimdiki seçim ile katmanın görünür kanalını kesiştir" + +#: ../app/actions/layers-actions.c:314 +msgid "_Text to Selection" +msgstr "_Metinden Seçime" + +#: ../app/actions/layers-actions.c:315 +msgid "Replace the selection with the text layer's outline" +msgstr "Seçim ile metin katmanı çerçevesini biribirlerinin yerine koy" + +#: ../app/actions/layers-actions.c:321 +msgid "Add the text layer's outline to the current selection" +msgstr "Metin katmanı çerçevesini şimdiki seçime ekle" + +#: ../app/actions/layers-actions.c:327 +msgid "Subtract the text layer's outline from the current selection" +msgstr "Şimdiki seçimden metin katmanı çerçevesini çıkar" + +#: ../app/actions/layers-actions.c:333 +msgid "Intersect the text layer's outline with the current selection" +msgstr "Şimdiki seçim ile metin katmanı çerçevesini kesiştir" + +#: ../app/actions/layers-actions.c:341 +msgid "Select _Top Layer" +msgstr "En Üs_tteki Katmanı Seç" + +#: ../app/actions/layers-actions.c:342 +msgid "Select the topmost layer" +msgstr "En üstteki katmanı seç" + +#: ../app/actions/layers-actions.c:347 +msgid "Select _Bottom Layer" +msgstr "_En Alttaki Katmanı Seç" + +#: ../app/actions/layers-actions.c:348 +msgid "Select the bottommost layer" +msgstr "En alttaki katmanı seç" + +#: ../app/actions/layers-actions.c:353 +msgid "Select _Previous Layer" +msgstr "Önceki Katmanı _Seç" + +#: ../app/actions/layers-actions.c:354 +msgid "Select the layer above the current layer" +msgstr "Şimdiki katmanın üstündeki katmanı seç" + +#: ../app/actions/layers-actions.c:359 +msgid "Select _Next Layer" +msgstr "Sonraki _Katmanı Seç" + +#: ../app/actions/layers-actions.c:360 +msgid "Select the layer below the current layer" +msgstr "Şimdiki katmanın altındaki katmanı seç" + +#: ../app/actions/layers-actions.c:368 +msgid "Set Opacity" +msgstr "Opaklığı Tanımla" + +#: ../app/actions/layers-commands.c:204 +msgid "Layer Attributes" +msgstr "Katman Öznitelikleri" + +#: ../app/actions/layers-commands.c:207 +msgid "Edit Layer Attributes" +msgstr "Katman Özniteliklerini Düzenle" + +#: ../app/actions/layers-commands.c:250 ../app/actions/layers-commands.c:252 +#: ../app/actions/layers-commands.c:320 ../app/actions/layers-commands.c:324 +#: ../app/widgets/gimpdrawabletreeview.c:326 +#: ../app/widgets/gimplayertreeview.c:835 +msgid "New Layer" +msgstr "Yeni Katman" + +#: ../app/actions/layers-commands.c:255 +msgid "Create a New Layer" +msgstr "Yeni Katman Oluştur" + +#: ../app/actions/layers-commands.c:355 +msgid "Visible" +msgstr "Görünür" + +#: ../app/actions/layers-commands.c:574 +msgid "Set Layer Boundary Size" +msgstr "Katman Sınırlarını Belirle" + +#: ../app/actions/layers-commands.c:615 ../app/core/gimplayer.c:251 +msgid "Scale Layer" +msgstr "Katmanı Ölçekle" + +#: ../app/actions/layers-commands.c:652 +msgid "Crop Layer" +msgstr "Katmanı Kırp" + +#: ../app/actions/layers-commands.c:791 +msgid "Layer Mask to Selection" +msgstr "Katman Maskesinden Seçime" + +#: ../app/actions/layers-commands.c:1039 +msgid "Please select a channel first" +msgstr "Lütfen önce bir kanal seçin" + +#: ../app/actions/layers-commands.c:1047 ../app/core/gimplayer.c:1283 +#: ../app/dialogs/layer-add-mask-dialog.c:81 +msgid "Add Layer Mask" +msgstr "Katman Maskesi Ekle" + +#: ../app/actions/palette-editor-actions.c:44 +msgid "Palette Editor Menu" +msgstr "Palet Düzenleyici Menüsü" + +#: ../app/actions/palette-editor-actions.c:54 +msgid "_Delete Color" +msgstr "_Rengi Sil" + +#: ../app/actions/palette-editor-actions.c:55 +msgid "Delete color" +msgstr "Rengi Sil" + +#: ../app/actions/palette-editor-actions.c:63 +msgid "Edit Active Palette" +msgstr "Etkin Paleti Düzenle" + +#: ../app/actions/palette-editor-actions.c:72 +msgid "New Color from _FG" +msgstr "Ö_nplandan yeni renk" + +#: ../app/actions/palette-editor-actions.c:73 +msgid "New color from foreground color" +msgstr "Önalan renginden yeni renk" + +#: ../app/actions/palette-editor-actions.c:78 +msgid "New Color from _BG" +msgstr "Arkaplandan _yeni renk" + +#: ../app/actions/palette-editor-actions.c:79 +msgid "New color from background color" +msgstr "Artalan renginden yeni renk" + +#: ../app/actions/palette-editor-actions.c:87 +#: ../app/actions/view-actions.c:261 +msgid "Zoom _In" +msgstr "_Yakınlaş" + +#: ../app/actions/palette-editor-actions.c:93 +#: ../app/actions/view-actions.c:255 +msgid "Zoom _Out" +msgstr "_Uzaklaş" + +#: ../app/actions/palette-editor-actions.c:99 +msgid "Zoom _All" +msgstr "_Tamamını Göster" + +#: ../app/actions/palette-editor-commands.c:69 +msgid "Edit Palette Color" +msgstr "Palet Rengini Düzenle" + +#: ../app/actions/palette-editor-commands.c:71 +msgid "Edit Color Palette Entry" +msgstr "Palet Girdi Rengini Düzenle" + +#: ../app/actions/palettes-actions.c:44 +msgid "Palettes Menu" +msgstr "Paletler Menüsü" + +#: ../app/actions/palettes-actions.c:48 +msgid "_New Palette" +msgstr "_Yeni Palet" + +#: ../app/actions/palettes-actions.c:49 +msgid "New palette" +msgstr "Yeni palet" + +#: ../app/actions/palettes-actions.c:54 +msgid "_Import Palette..." +msgstr "_Palet Al..." + +#: ../app/actions/palettes-actions.c:55 +msgid "Import palette" +msgstr "Palet Al" + +#: ../app/actions/palettes-actions.c:60 +msgid "D_uplicate Palette" +msgstr "_Paleti Çoğalt" + +#: ../app/actions/palettes-actions.c:61 +msgid "Duplicate palette" +msgstr "Paleti çoğalt" + +#: ../app/actions/palettes-actions.c:66 +msgid "_Merge Palettes..." +msgstr "_Paletleri Birleştir..." + +#: ../app/actions/palettes-actions.c:67 +msgid "Merge palettes" +msgstr "Paletleri birleştir" + +#: ../app/actions/palettes-actions.c:72 +msgid "Copy Palette _Location" +msgstr "Palet _Yerini Kopyala" + +#: ../app/actions/palettes-actions.c:73 +msgid "Copy palette file location to clipboard" +msgstr "Palet dosyası yerini panoya kopyala" + +#: ../app/actions/palettes-actions.c:78 +msgid "_Delete Palette" +msgstr "P_aleti Sil" + +#: ../app/actions/palettes-actions.c:79 +msgid "Delete palette" +msgstr "Paleti sil" + +#: ../app/actions/palettes-actions.c:84 +msgid "_Refresh Palettes" +msgstr "P_aletleri Tazele" + +#: ../app/actions/palettes-actions.c:85 +msgid "Refresh palettes" +msgstr "Paletleri tazele" + +#: ../app/actions/palettes-actions.c:93 +msgid "_Edit Palette..." +msgstr "Paleti _Düzenle..." + +#: ../app/actions/palettes-actions.c:94 +msgid "Edit palette" +msgstr "Paleti düzenle" + +#: ../app/actions/palettes-commands.c:74 +msgid "Merge Palette" +msgstr "Paletleri Birleştir" + +#: ../app/actions/palettes-commands.c:78 +msgid "Enter a name for the merged palette" +msgstr "Birleştirilmiş palet için bir isim belirle" + +#: ../app/actions/patterns-actions.c:43 +msgid "Patterns Menu" +msgstr "Desenler Menüsü" + +#: ../app/actions/patterns-actions.c:47 +msgid "_Open Pattern as Image" +msgstr "Deseni Görüntü olarak _Aç" + +#: ../app/actions/patterns-actions.c:48 +msgid "Open pattern as image" +msgstr "Deseni resim olarak aç" + +#: ../app/actions/patterns-actions.c:53 +msgid "_New Pattern" +msgstr "_Yeni Desen" + +#: ../app/actions/patterns-actions.c:54 +msgid "New pattern" +msgstr "Yeni Desen" + +#: ../app/actions/patterns-actions.c:59 +msgid "D_uplicate Pattern" +msgstr "_Deseni Çoğalt" + +#: ../app/actions/patterns-actions.c:60 +msgid "Duplicate pattern" +msgstr "Deseni çoğalt" + +#: ../app/actions/patterns-actions.c:65 +msgid "Copy Pattern _Location" +msgstr "Desen _Yerini Kopyala" + +#: ../app/actions/patterns-actions.c:66 +msgid "Copy pattern file location to clipboard" +msgstr "Desen dosyası yerini panoya kopyala" + +#: ../app/actions/patterns-actions.c:71 +msgid "_Delete Pattern" +msgstr "D_eseni Sil" + +#: ../app/actions/patterns-actions.c:72 +msgid "Delete pattern" +msgstr "Deseni sil" + +#: ../app/actions/patterns-actions.c:77 +msgid "_Refresh Patterns" +msgstr "_Desenleri Tazele" + +#: ../app/actions/patterns-actions.c:78 +msgid "Refresh patterns" +msgstr "Desenleri tazele" + +#: ../app/actions/patterns-actions.c:86 +msgid "_Edit Pattern..." +msgstr "_Deseni Düzenle..." + +#: ../app/actions/patterns-actions.c:87 +msgid "Edit pattern" +msgstr "Deseni düzenle" + +#: ../app/actions/plug-in-actions.c:83 +msgid "Filte_rs" +msgstr "_Filtreler" + +#: ../app/actions/plug-in-actions.c:84 +msgid "Recently Used" +msgstr "Son Kullanılan" + +#: ../app/actions/plug-in-actions.c:85 +msgid "_Blur" +msgstr "B_ulanıklaştır" + +#: ../app/actions/plug-in-actions.c:86 +msgid "_Noise" +msgstr "_Gürültü" + +#: ../app/actions/plug-in-actions.c:87 +msgid "Edge-De_tect" +msgstr "Kenar Tanı_ma" + +#: ../app/actions/plug-in-actions.c:88 +msgid "En_hance" +msgstr "Ar_ttır" + +#: ../app/actions/plug-in-actions.c:89 +msgid "C_ombine" +msgstr "B_irleştir" + +#: ../app/actions/plug-in-actions.c:90 +msgid "_Generic" +msgstr "_Genel" + +#: ../app/actions/plug-in-actions.c:91 +msgid "_Light and Shadow" +msgstr "_Işık ve Gölge" + +#: ../app/actions/plug-in-actions.c:92 +msgid "_Distorts" +msgstr "_Bozulma" + +#: ../app/actions/plug-in-actions.c:93 +msgid "_Artistic" +msgstr "_Sanatsal" + +#: ../app/actions/plug-in-actions.c:94 +msgid "_Decor" +msgstr "_Süsleme" + +#: ../app/actions/plug-in-actions.c:96 +msgid "_Render" +msgstr "_Tarama" + +#: ../app/actions/plug-in-actions.c:97 +msgid "_Clouds" +msgstr "_Bulutlar" + +#: ../app/actions/plug-in-actions.c:98 +msgid "_Nature" +msgstr "_Doğa" + +#: ../app/actions/plug-in-actions.c:100 +msgid "_Web" +msgstr "_Web" + +#: ../app/actions/plug-in-actions.c:101 +msgid "An_imation" +msgstr "_Canlandırma" + +#: ../app/actions/plug-in-actions.c:104 +msgid "Reset all _Filters" +msgstr "_Tüm Filtreleri Sıfırla" + +#: ../app/actions/plug-in-actions.c:105 +msgid "Reset all plug-ins to their default settings" +msgstr "Tüm eklentileri öntanımlı ayarlarına sıfırla" + +#: ../app/actions/plug-in-actions.c:113 +msgid "Re_peat Last" +msgstr "_Sonuncuyu Tekrarla" + +#: ../app/actions/plug-in-actions.c:114 +msgid "Rerun the last used plug-in using the same settings" +msgstr "Son kullanılan eklentiyi kullanılmış aynı ayarlarla yeniden çalıştır" + +#: ../app/actions/plug-in-actions.c:119 +msgid "R_e-Show Last" +msgstr "S_onuncuyu Yeniden Göster" + +#: ../app/actions/plug-in-actions.c:120 +msgid "Show the last used plug-in dialog again" +msgstr "Son kullanılan eklentinin iletişim kutusunu yine göster" + +#: ../app/actions/plug-in-actions.c:503 +#, c-format +msgid "Re_peat \"%s\"" +msgstr "Y_inele \"%s\"" + +#: ../app/actions/plug-in-actions.c:504 +#, c-format +msgid "R_e-Show \"%s\"" +msgstr "Yeniden _Göster \"%s\"" + +#: ../app/actions/plug-in-actions.c:520 +msgid "Repeat Last" +msgstr "Sonuncuyu Tekrarla" + +#: ../app/actions/plug-in-actions.c:522 +msgid "Re-Show Last" +msgstr "Sonuncuyu Yeniden Göster" + +#: ../app/actions/plug-in-commands.c:262 +msgid "Reset all Filters" +msgstr "Tüm Filtreleri Sıfıla" + +#: ../app/actions/plug-in-commands.c:281 +msgid "Do you really want to reset all filters to default values?" +msgstr "Tüm filtreleri öntanımlı değerlerine geri almak istiyor musunuz?" + +#: ../app/actions/quick-mask-actions.c:42 +msgid "Quick Mask Menu" +msgstr "Hızlı Maske Menüsü" + +#: ../app/actions/quick-mask-actions.c:46 +msgid "_Configure Color and Opacity..." +msgstr "Rengi ve Işık Geçirmezliği _Yapılandır..." + +#: ../app/actions/quick-mask-actions.c:54 +msgid "Toggle _Quick Mask" +msgstr "_Hızlı Maskeyi Değiştir" + +#: ../app/actions/quick-mask-actions.c:54 +#: ../app/display/gimpdisplayshell.c:1169 +msgid "Toggle Quick Mask" +msgstr "Hızlı Maskeyi Değiştir" + +#: ../app/actions/quick-mask-actions.c:63 +msgid "Mask _Selected Areas" +msgstr "Seçilmiş Alanları Maskele" + +#: ../app/actions/quick-mask-actions.c:68 +msgid "Mask _Unselected Areas" +msgstr "Seçilme_miş Alanları Maskele" + +#: ../app/actions/quick-mask-commands.c:105 +msgid "Quick Mask Attributes" +msgstr "Öznitelikleri Hızlı Maskele" + +#: ../app/actions/quick-mask-commands.c:108 +msgid "Edit Quick Mask Attributes" +msgstr "Öznitelikleri Hızlı Maskelemeyi Düzenle" + +#: ../app/actions/quick-mask-commands.c:110 +msgid "Edit Quick Mask Color" +msgstr "Rengi Hızlı Maskelemeyi Düzenle" + +#: ../app/actions/quick-mask-commands.c:111 +msgid "_Mask opacity:" +msgstr "_Maske Işık Geçirmezliği:" + +#: ../app/actions/sample-points-actions.c:40 +msgid "Sample Point Menu" +msgstr "Örnek Nokta Menüsü" + +#: ../app/actions/select-actions.c:44 +msgid "Selection Editor Menu" +msgstr "Seçim Düzenleyici Menüsü" + +#: ../app/actions/select-actions.c:47 +msgid "_Select" +msgstr "_Seç" + +#: ../app/actions/select-actions.c:50 +msgid "select|_All" +msgstr "_Tümünü Seç" + +#: ../app/actions/select-actions.c:51 +msgid "Select everything" +msgstr "Her şeyi seç" + +#: ../app/actions/select-actions.c:56 +msgid "select|_None" +msgstr "Hiçbirini Seçme" + +#: ../app/actions/select-actions.c:57 +msgid "Dismiss the selection" +msgstr "Seçimi kaldır" + +#: ../app/actions/select-actions.c:62 +msgid "_Invert" +msgstr "_Tersine Çevir" + +#: ../app/actions/select-actions.c:63 +msgid "Invert the selection" +msgstr "Seçimi tersine çevir" + +#: ../app/actions/select-actions.c:68 +msgid "_Float" +msgstr "_Yüzdür" + +#: ../app/actions/select-actions.c:69 +msgid "Create a floating selection" +msgstr "Yüzen bir seçim oluştur" + +#: ../app/actions/select-actions.c:74 +msgid "Fea_ther..." +msgstr "Y_umuşat..." + +#: ../app/actions/select-actions.c:75 +msgid "Blur the selection border so that it fades out smoothly" +msgstr "Seçimin kenarını hafifçe kaybolacak şekilde bulanıklaştır." + +#: ../app/actions/select-actions.c:80 +msgid "_Sharpen" +msgstr "_Keskinleştir" + +#: ../app/actions/select-actions.c:81 +msgid "Remove fuzzyness from the selection" +msgstr "Seçimden donukluğu kaldır" + +#: ../app/actions/select-actions.c:86 +msgid "S_hrink..." +msgstr "K_üçült..." + +#: ../app/actions/select-actions.c:87 +msgid "Contract the selection" +msgstr "Seçimi daralt" + +#: ../app/actions/select-actions.c:92 +msgid "_Grow..." +msgstr "_Büyüt..." + +#: ../app/actions/select-actions.c:93 +msgid "Enlarge the selection" +msgstr "Seçimi genişlet" + +#: ../app/actions/select-actions.c:98 +msgid "Bo_rder..." +msgstr "_Sınır..." + +#: ../app/actions/select-actions.c:99 +msgid "Replace the selection by its border" +msgstr "Seçimi sınırları ile değiştir" + +#: ../app/actions/select-actions.c:104 +msgid "Save to _Channel" +msgstr "_Kanala Kaydet" + +#: ../app/actions/select-actions.c:105 +msgid "Save the selection to a channel" +msgstr "Seçimi bir kanala kaydet" + +#: ../app/actions/select-actions.c:110 +msgid "_Stroke Selection..." +msgstr "S_eçimi Darbele..." + +#: ../app/actions/select-actions.c:111 +msgid "Paint along the selection outline" +msgstr "Seçim çerçevesi boyunca boya" + +#: ../app/actions/select-actions.c:116 +msgid "_Stroke Selection" +msgstr "_Seçimi Darbele" + +#: ../app/actions/select-actions.c:117 +msgid "Stroke the selection with last used values" +msgstr "Son kullanılmış değerlerle seçimi darbele" + +#: ../app/actions/select-commands.c:153 ../app/core/gimpselection.c:167 +msgid "Feather Selection" +msgstr "Seçimi Yumuşat" + +#: ../app/actions/select-commands.c:157 +msgid "Feather selection by" +msgstr "Seçimi yumuşat:" + +#: ../app/actions/select-commands.c:191 ../app/core/gimpselection.c:174 +msgid "Shrink Selection" +msgstr "Seçimi Küçült" + +#: ../app/actions/select-commands.c:195 +msgid "Shrink selection by" +msgstr "Seçimi küçült" + +#: ../app/actions/select-commands.c:203 +msgid "_Shrink from image border" +msgstr "Görüntü sınırlarından _küçült" + +#: ../app/actions/select-commands.c:228 ../app/core/gimpselection.c:173 +msgid "Grow Selection" +msgstr "Seçimi Büyüt" + +#: ../app/actions/select-commands.c:232 +msgid "Grow selection by" +msgstr "Seçimi büyüt" + +#: ../app/actions/select-commands.c:255 ../app/core/gimpselection.c:172 +msgid "Border Selection" +msgstr "Sınırdan Seçim" + +#: ../app/actions/select-commands.c:259 +msgid "Border selection by" +msgstr "Kenarlık seçimi" + +#. Feather button +#: ../app/actions/select-commands.c:268 +msgid "_Feather border" +msgstr "_Sınırı yumuşat" + +#. Edge lock button +#: ../app/actions/select-commands.c:281 +msgid "_Lock selection to image edges" +msgstr "Seçimden görüntü kenarlarına _kilitle" + +#: ../app/actions/select-commands.c:330 ../app/actions/select-commands.c:362 +#: ../app/actions/vectors-commands.c:379 ../app/actions/vectors-commands.c:412 +#: ../app/dialogs/stroke-dialog.c:299 +msgid "There is no active layer or channel to stroke to." +msgstr "Etkin katman ya da darbelenecek kanal yok." + +#: ../app/actions/select-commands.c:336 ../app/core/gimpselection.c:151 +msgid "Stroke Selection" +msgstr "Seçimi Darbele" + +#: ../app/actions/templates-actions.c:42 +msgid "Templates Menu" +msgstr "Şablonlar Menüsü" + +#: ../app/actions/templates-actions.c:46 +msgid "_Create Image from Template" +msgstr "Şablondan Görüntü _Oluştur" + +#: ../app/actions/templates-actions.c:47 +msgid "Create a new image from the selected template" +msgstr "Seçilmiş şablondan yeni bir görüntü oluştur" + +#: ../app/actions/templates-actions.c:52 +msgid "_New Template..." +msgstr "_Yeni Şablon..." + +#: ../app/actions/templates-actions.c:53 +msgid "Create a new template" +msgstr "Yeni şablon oluştur" + +#: ../app/actions/templates-actions.c:58 +msgid "D_uplicate Template..." +msgstr "Şablonu Ç_oğalt..." + +#: ../app/actions/templates-actions.c:59 +msgid "Duplicate the selected template" +msgstr "Seçilmiş şablonu çoğalt" + +#: ../app/actions/templates-actions.c:64 +msgid "_Edit Template..." +msgstr "Şablonu _Düzenle..." + +#: ../app/actions/templates-actions.c:65 +msgid "Edit the selected template" +msgstr "Seçilmiş şablonu düzenle" + +#: ../app/actions/templates-actions.c:70 +msgid "_Delete Template" +msgstr "Şablonu _Düzenle" + +#: ../app/actions/templates-actions.c:71 +msgid "Delete the selected template" +msgstr "Seçilmiş şablonu sil" + +#: ../app/actions/templates-commands.c:113 +msgid "New Template" +msgstr "Yeni Şablon" + +#: ../app/actions/templates-commands.c:116 +msgid "Create a New Template" +msgstr "Yeni bir Şablon Oluştur" + +#: ../app/actions/templates-commands.c:175 +#: ../app/actions/templates-commands.c:178 +msgid "Edit Template" +msgstr "Şablonu Düzenle" + +#: ../app/actions/templates-commands.c:213 +msgid "Delete Template" +msgstr "Şablonu Sil" + +#: ../app/actions/templates-commands.c:239 +#, c-format +msgid "" +"Are you sure you want to delete template '%s' from the list and from disk?" +msgstr "" +"'%s' şablonunu listeden ve diskinizden silmek istediğinize emin misiniz?" + +#: ../app/actions/text-editor-actions.c:44 +msgid "Open" +msgstr "Aç" + +#: ../app/actions/text-editor-actions.c:45 +msgid "Load text from file" +msgstr "Metin dosyasından yükle" + +#: ../app/actions/text-editor-actions.c:50 ../app/core/gimp-edit.c:445 +msgid "Clear" +msgstr "Temizle" + +#: ../app/actions/text-editor-actions.c:51 +msgid "Clear all text" +msgstr "Tüm metni temizle" + +#: ../app/actions/text-editor-actions.c:59 +msgid "LTR" +msgstr "Sol > Sağ" + +#: ../app/actions/text-editor-actions.c:60 +msgid "From left to right" +msgstr "Soldan sağa" + +#: ../app/actions/text-editor-actions.c:65 +msgid "RTL" +msgstr "Sağ > Sol" + +#: ../app/actions/text-editor-actions.c:66 +msgid "From right to left" +msgstr "Sağdan sola" + +#: ../app/actions/text-editor-commands.c:63 +msgid "Open Text File (UTF-8)" +msgstr "Metin Dosyasını Aç (UTF-8)" + +#: ../app/actions/text-editor-commands.c:144 +#: ../app/config/gimpconfig-file.c:59 ../app/core/gimpbrush-load.c:140 +#: ../app/core/gimpbrush-load.c:420 ../app/core/gimpbrushgenerated-load.c:73 +#: ../app/core/gimpbrushpipe-load.c:81 ../app/core/gimpcurve-load.c:55 +#: ../app/core/gimpgradient-load.c:62 ../app/core/gimppalette-load.c:76 +#: ../app/core/gimppalette-load.c:270 ../app/core/gimppalette-load.c:314 +#: ../app/core/gimppalette-load.c:368 ../app/core/gimppalette-load.c:456 +#: ../app/core/gimppalette-load.c:599 ../app/core/gimppattern-load.c:76 +#: ../app/tools/gimpcurvestool.c:623 ../app/tools/gimplevelstool.c:743 +#: ../app/xcf/xcf.c:329 +#, c-format +msgid "Could not open '%s' for reading: %s" +msgstr "'%s' dosyası okumak için açılamadı: %s" + +#: ../app/actions/tool-options-actions.c:56 +msgid "Tool Options Menu" +msgstr "Araç Seçenekleri Menüsü" + +#: ../app/actions/tool-options-actions.c:60 +msgid "_Save Options To" +msgstr "S_eçeneklerin Kaydedileceği Yer:" + +#: ../app/actions/tool-options-actions.c:64 +msgid "_Restore Options From" +msgstr "Seçeneklerin Geri Yükleneceği Yer:" + +#: ../app/actions/tool-options-actions.c:68 +msgid "Re_name Saved Options" +msgstr "K_ayıtlı Seçenekleri Yeniden Adlandır" + +#: ../app/actions/tool-options-actions.c:72 +msgid "_Delete Saved Options" +msgstr "Kayıtlı _Seçenekleri Sil" + +#: ../app/actions/tool-options-actions.c:76 +msgid "_New Entry..." +msgstr "_Yeni Girdi..." + +#: ../app/actions/tool-options-actions.c:81 +msgid "R_eset Tool Options" +msgstr "Alet Seçeneklerini _Sıfırla" + +#: ../app/actions/tool-options-actions.c:82 +msgid "Reset to default values" +msgstr "Öntanımlı değerlerine geri al" + +#: ../app/actions/tool-options-actions.c:87 +msgid "Reset _all Tool Options" +msgstr "T_üm Araç Seçeneklerini Sıfırla" + +#: ../app/actions/tool-options-actions.c:88 +msgid "Reset all tool options" +msgstr "Tüm araç seçeneklerini sıfırla" + +#: ../app/actions/tool-options-commands.c:72 +msgid "Save Tool Options" +msgstr "Kaydetme Aracı Seçenekleri" + +#: ../app/actions/tool-options-commands.c:76 +msgid "Enter a name for the saved options" +msgstr "Kaydedilen seçenekler için bir yol adı girin" + +#: ../app/actions/tool-options-commands.c:77 +#: ../app/actions/tool-options-commands.c:247 +#: ../app/actions/tool-options-commands.c:264 +msgid "Saved Options" +msgstr "Kayıtlı Seçenekler" + +#: ../app/actions/tool-options-commands.c:140 +msgid "Rename Saved Tool Options" +msgstr "Kaydedilmiş Araç Seçeneklerini Yeniden Adlandır" + +#: ../app/actions/tool-options-commands.c:144 +msgid "Enter a new name for the saved options" +msgstr "Kaydedilmeş seçenekler için yeni bir ad girin" + +#: ../app/actions/tool-options-commands.c:187 +msgid "Reset Tool Options" +msgstr "Alet Seçeneklerini Sıfırla" + +#: ../app/actions/tool-options-commands.c:210 +msgid "Do you really want to reset all tool options to default values?" +msgstr "" +"Tüm alet seçeneklerini öntanımlı değerlerine geri almak istiyor musunuz?" + +#: ../app/actions/tools-actions.c:47 +msgid "Tools Menu" +msgstr "Araçlar Menüsü" + +#: ../app/actions/tools-actions.c:50 +msgid "_Tools" +msgstr "_Araçlar" + +#: ../app/actions/tools-actions.c:51 +msgid "_Selection Tools" +msgstr "Seçim Araçla_rı" + +#: ../app/actions/tools-actions.c:52 +msgid "_Paint Tools" +msgstr "_Boyama Araçları" + +#: ../app/actions/tools-actions.c:53 +msgid "_Transform Tools" +msgstr "_Dönüşüm Araçları" + +#: ../app/actions/tools-actions.c:54 +msgid "_Color Tools" +msgstr "R_enk Araçları" + +#: ../app/actions/tools-actions.c:57 +msgid "R_aise Tool" +msgstr "A_leti Yükselt" + +#: ../app/actions/tools-actions.c:58 +msgid "Raise tool" +msgstr "Aracı yükselt" + +#: ../app/actions/tools-actions.c:63 +msgid "Ra_ise to Top" +msgstr "En üste yükselt" + +#: ../app/actions/tools-actions.c:64 +msgid "Raise tool to top" +msgstr "Aracı en üste yükselt" + +#: ../app/actions/tools-actions.c:69 +msgid "L_ower Tool" +msgstr "Aracı Al_çalt" + +#: ../app/actions/tools-actions.c:70 +msgid "Lower tool" +msgstr "Aracı alçalt" + +#: ../app/actions/tools-actions.c:75 +msgid "Lo_wer to Bottom" +msgstr "Alta A_lçalt" + +#: ../app/actions/tools-actions.c:76 +msgid "Lower tool to bottom" +msgstr "Katmanı alta alçalt" + +#: ../app/actions/tools-actions.c:81 +msgid "_Reset Order & Visibility" +msgstr "Düzeni ve Görünürlüğü _Sıfırla" + +#: ../app/actions/tools-actions.c:82 +msgid "Reset tool order and visibility" +msgstr "Araç düzenini ve görünürlüğü sıfırla" + +#: ../app/actions/tools-actions.c:90 +msgid "_Show in Toolbox" +msgstr "_Araç kutusunda göster" + +#: ../app/actions/tools-actions.c:99 +msgid "_By Color" +msgstr "_Renge Göre" + +#: ../app/actions/tools-actions.c:100 +msgid "Select regions with similar colors" +msgstr "Bölgeleri benzer renklerle seç" + +#: ../app/actions/tools-actions.c:105 +msgid "_Arbitrary Rotation..." +msgstr "_Rastgele Dönüşüm..." + +#: ../app/actions/tools-actions.c:106 +msgid "Rotate by an arbitrary angle" +msgstr "İsteğe bağlı bir açı ile döndür" + +#: ../app/actions/vectors-actions.c:44 +msgid "Paths Menu" +msgstr "Yollar Menüsü" + +#: ../app/actions/vectors-actions.c:48 +msgid "Path _Tool" +msgstr "Yol _Aracı" + +#: ../app/actions/vectors-actions.c:53 +msgid "_Edit Path Attributes..." +msgstr "Yol Özniteliklerini _Düzenle..." + +#: ../app/actions/vectors-actions.c:54 +msgid "Edit path attributes" +msgstr "Yol özniteliklerini düzenle" + +#: ../app/actions/vectors-actions.c:59 +msgid "_New Path..." +msgstr "_Yeni Yol..." + +#: ../app/actions/vectors-actions.c:60 +msgid "New path..." +msgstr "Yeni yol..." + +#: ../app/actions/vectors-actions.c:65 +msgid "_New Path" +msgstr "_Yeni Yol" + +#: ../app/actions/vectors-actions.c:66 +msgid "New path with last values" +msgstr "Son değerlerle yeni yol" + +#: ../app/actions/vectors-actions.c:71 +msgid "D_uplicate Path" +msgstr "Yolu _Çoğalt" + +#: ../app/actions/vectors-actions.c:72 +msgid "Duplicate path" +msgstr "Yolu çoğalt" + +#: ../app/actions/vectors-actions.c:77 +msgid "_Delete Path" +msgstr "Yolu _Sil" + +#: ../app/actions/vectors-actions.c:78 ../app/core/core-enums.c:920 +msgid "Delete path" +msgstr "Yolu sil" + +#: ../app/actions/vectors-actions.c:83 +msgid "Merge _Visible Paths" +msgstr "_Görünür Yolları Birleştir" + +#: ../app/actions/vectors-actions.c:88 +msgid "_Raise Path" +msgstr "Yolu Y_ükselt" + +#: ../app/actions/vectors-actions.c:89 +msgid "Raise path" +msgstr "Yolu yükselt" + +#: ../app/actions/vectors-actions.c:94 +msgid "Raise Path to _Top" +msgstr "Yolu En _Üste Yükselt" + +#: ../app/actions/vectors-actions.c:95 +msgid "Raise path to top" +msgstr "Yolu en üste yükselt" + +#: ../app/actions/vectors-actions.c:100 +msgid "_Lower Path" +msgstr "Yolu _Alçalt" + +#: ../app/actions/vectors-actions.c:101 +msgid "Lower path" +msgstr "Yolu alçalt" + +#: ../app/actions/vectors-actions.c:106 +msgid "Lower Path to _Bottom" +msgstr "Yolu Al_ta Alçalt" + +#: ../app/actions/vectors-actions.c:107 +msgid "Lower path to bottom" +msgstr "Yolu alta alçalt" + +#: ../app/actions/vectors-actions.c:112 +msgid "Stro_ke Path..." +msgstr "Yolu Dar_bele..." + +#: ../app/actions/vectors-actions.c:113 +msgid "Paint along the path" +msgstr "Yol boyunca boya" + +#: ../app/actions/vectors-actions.c:118 +msgid "Stro_ke Path" +msgstr "Yolu Dar_bele" + +#: ../app/actions/vectors-actions.c:119 +msgid "Paint along the path with last values" +msgstr "Son değerlerle yol boyunca boya" + +#: ../app/actions/vectors-actions.c:124 +msgid "Co_py Path" +msgstr "Yolu Ko_pyala" + +#: ../app/actions/vectors-actions.c:129 +msgid "Paste Pat_h" +msgstr "Yo_lu Yapıştır" + +#: ../app/actions/vectors-actions.c:134 +msgid "E_xport Path..." +msgstr "Yolu D_ışa Aktar..." + +#: ../app/actions/vectors-actions.c:139 +msgid "I_mport Path..." +msgstr "Yolu İ_çe Aktar..." + +#: ../app/actions/vectors-actions.c:162 +msgid "Path to Sele_ction" +msgstr "Yoldan S_eçime" + +#: ../app/actions/vectors-actions.c:163 ../app/tools/gimpvectortool.c:1912 +msgid "Path to selection" +msgstr "Yoldan seçime" + +#: ../app/actions/vectors-actions.c:168 +msgid "Fr_om Path" +msgstr "Y_oldan" + +#: ../app/actions/vectors-actions.c:174 +msgid "Add" +msgstr "Ekle" + +#: ../app/actions/vectors-actions.c:180 ../app/base/base-enums.c:119 +msgid "Subtract" +msgstr "Çıkar" + +#: ../app/actions/vectors-actions.c:186 +msgid "Intersect" +msgstr "Kesiştir" + +#: ../app/actions/vectors-actions.c:194 +msgid "Selecti_on to Path" +msgstr "Seçi_mden Yola" + +#: ../app/actions/vectors-actions.c:195 ../app/actions/vectors-actions.c:201 +msgid "Selection to path" +msgstr "Seçimden yola" + +#: ../app/actions/vectors-actions.c:200 +msgid "To _Path" +msgstr "Yol_a" + +#: ../app/actions/vectors-actions.c:206 +msgid "Selection to Path (_Advanced)" +msgstr "Seçimden Yola (_Gelişmiş)" + +#: ../app/actions/vectors-actions.c:207 +msgid "Advanced options" +msgstr "Gelişmiş seçenekler" + +#: ../app/actions/vectors-commands.c:138 +msgid "Path Attributes" +msgstr "Yol Öznitelikleri" + +#: ../app/actions/vectors-commands.c:141 +msgid "Edit Path Attributes" +msgstr "Yol Özniteliklerini Düzenle" + +#: ../app/actions/vectors-commands.c:165 ../app/actions/vectors-commands.c:166 +#: ../app/actions/vectors-commands.c:188 +msgid "New Path" +msgstr "Yeni Yol" + +#: ../app/actions/vectors-commands.c:169 +msgid "New Path Options" +msgstr "Yeni Yol Seçenekleri" + +#: ../app/actions/vectors-commands.c:305 ../app/pdb/paths-cmds.c:640 +#: ../app/pdb/vectors-cmds.c:1253 +msgid "Path to Selection" +msgstr "Yoldan Seçime" + +#: ../app/actions/vectors-commands.c:385 ../app/tools/gimpvectoroptions.c:199 +#: ../app/tools/gimpvectortool.c:1945 ../app/vectors/gimpvectors.c:200 +msgid "Stroke Path" +msgstr "Yolu Darbele" + +#: ../app/actions/view-actions.c:67 +msgid "_View" +msgstr "_Görünüm" + +#: ../app/actions/view-actions.c:68 +msgid "_Zoom" +msgstr "_Odakla" + +#: ../app/actions/view-actions.c:69 +msgid "_Padding Color" +msgstr "_Doldurma Rengi" + +#: ../app/actions/view-actions.c:71 +msgid "Move to Screen" +msgstr "Ekrana Taşı" + +#: ../app/actions/view-actions.c:76 +msgid "Create another view on this image" +msgstr "Bu görüntü üzerinde yeni bir görünüm oluştur" + +#: ../app/actions/view-actions.c:81 +msgid "_Close" +msgstr "_Kapat" + +#: ../app/actions/view-actions.c:82 +msgid "Close this image window" +msgstr "Bu görüntü penceresini kapat" + +#: ../app/actions/view-actions.c:87 +msgid "_Fit Image in Window" +msgstr "Görüntüyü Pencereye _Uydur" + +#: ../app/actions/view-actions.c:88 +msgid "Adjust the zoom ratio so that the image becomes fully visible" +msgstr "" +"Yakınlaşma oranını ayarlayın, böylelikle görüntü tamamen görünür olacak" + +#: ../app/actions/view-actions.c:93 +msgid "Fi_ll Window" +msgstr "Pencereyi Dold_ur" + +#: ../app/actions/view-actions.c:94 +msgid "Adjust the zoom ratio so that the entire window is used" +msgstr "Yakınlaştırma oranını ayarla böylece bütün pencere kullanılmış olur" + +#: ../app/actions/view-actions.c:99 ../app/actions/view-actions.c:579 +msgid "Re_vert Zoom" +msgstr "Yakınlaşmayı _Geri Al" + +#: ../app/actions/view-actions.c:100 +msgid "Restore the previous zoom level" +msgstr "Önceki yakınlaşma düzeyini geri yükle" + +#: ../app/actions/view-actions.c:105 +msgid "Na_vigation Window" +msgstr "Dolaşma Penceresi" + +#: ../app/actions/view-actions.c:106 +msgid "Show an overview window for this image" +msgstr "Bu görüntü için bir gözden geçirme penceresi aç" + +#: ../app/actions/view-actions.c:111 +msgid "Display _Filters..." +msgstr "Süzgeçleri G_örüntüle..." + +#: ../app/actions/view-actions.c:112 +msgid "Configure filters applied to this view" +msgstr "Bu görünüme uygulanan süzgeçleri yapılandır" + +#: ../app/actions/view-actions.c:117 +msgid "Shrink _Wrap" +msgstr "Daralt ve _Bük" + +#: ../app/actions/view-actions.c:118 +msgid "Reduce the image window to the size of the image display" +msgstr "Görüntü penceresini görüntü gösterimi boyutuna küçült" + +#: ../app/actions/view-actions.c:132 +msgid "_Dot for Dot" +msgstr "_Bire Bir" + +#: ../app/actions/view-actions.c:133 +msgid "A pixel on the screen represents an image pixel" +msgstr "Ekran üzerindeki bir benek görüntünün bir beneğini belirtiyor" + +#: ../app/actions/view-actions.c:139 +msgid "Show _Selection" +msgstr "_Seçimi Göster" + +#: ../app/actions/view-actions.c:140 +msgid "Display the selection outline" +msgstr "Seçim çerçevesini görüntüle" + +#: ../app/actions/view-actions.c:146 +msgid "Show _Layer Boundary" +msgstr "_Katman Sınırını Göster" + +#: ../app/actions/view-actions.c:147 +msgid "Draw a border around the active layer" +msgstr "Etkin katman etrafında bir sınır çiz" + +#: ../app/actions/view-actions.c:153 +msgid "Show _Guides" +msgstr "Kıla_vuzları Göster" + +#: ../app/actions/view-actions.c:154 +msgid "Display the image's guides" +msgstr "Görüntünün kılavuzlarını göster" + +#: ../app/actions/view-actions.c:160 +msgid "S_how Grid" +msgstr "Izgarayı G_öster" + +#: ../app/actions/view-actions.c:161 +msgid "Display the image's grid" +msgstr "Görüntünün ızgarasını göster" + +#: ../app/actions/view-actions.c:167 +msgid "Show Sample Points" +msgstr "Örnek Noktaları Göster" + +#: ../app/actions/view-actions.c:168 +msgid "Display the image's color sample points" +msgstr "Görüntünün örnek renk noktalarını göster" + +#: ../app/actions/view-actions.c:174 +msgid "Sn_ap to Guides" +msgstr "_Rehbere Yapıştır" + +#: ../app/actions/view-actions.c:175 +msgid "Tool operations snap to guides" +msgstr "Araç işlemleri kılavuza yaslanır" + +#: ../app/actions/view-actions.c:181 +msgid "Sna_p to Grid" +msgstr "I_zgaraya Yapıştır" + +#: ../app/actions/view-actions.c:182 +msgid "Tool operations snap to the grid" +msgstr "Araç işlemleri kılavuz çizgisine yaslanır" + +#: ../app/actions/view-actions.c:188 +msgid "Snap to _Canvas Edges" +msgstr "_Alan Kenarı'na yaslan" + +#: ../app/actions/view-actions.c:189 +msgid "Tool operations snap to the canvas edges" +msgstr "Araç işlemleri alan kenarlarına yaslanır" + +#: ../app/actions/view-actions.c:195 +msgid "Snap t_o Active Path" +msgstr "Aktif _Yola Yapıştır" + +#: ../app/actions/view-actions.c:196 +msgid "Tool operations snap to the active path" +msgstr "Geçerli yolu taşı" + +#: ../app/actions/view-actions.c:202 +msgid "Show _Menubar" +msgstr "_Menü Çubuğunu Göster" + +#: ../app/actions/view-actions.c:203 +msgid "Show this window's menubar" +msgstr "Bu pencerenin menü çubuğunu göster" + +#: ../app/actions/view-actions.c:209 +msgid "Show R_ulers" +msgstr "C_etvelleri Göster" + +#: ../app/actions/view-actions.c:210 +msgid "Show this window's rulers" +msgstr "Bu pencerenin cetvellerini göster" + +#: ../app/actions/view-actions.c:216 +msgid "Show Scroll_bars" +msgstr "Ka_ydırma Çubuklarını Göster" + +#: ../app/actions/view-actions.c:217 +msgid "Show this window's scrollbars" +msgstr "Bu pencerenin kaydırma çubuklarını göster" + +#: ../app/actions/view-actions.c:223 +msgid "Show S_tatusbar" +msgstr "_Durum Çubuğunu Göster" + +#: ../app/actions/view-actions.c:224 +msgid "Show this window's statusbar" +msgstr "Bu pencerenin durum çubuğunu göster" + +#: ../app/actions/view-actions.c:230 +msgid "Fullscr_een" +msgstr "Tam _Ekran" + +#: ../app/actions/view-actions.c:231 +msgid "Toggle fullscreen view" +msgstr "Tam ekran görünüm geçişi" + +#: ../app/actions/view-actions.c:292 +msgid "1_6:1 (1600%)" +msgstr "1_6:1 (%%1600)" + +#: ../app/actions/view-actions.c:293 +msgid "Zoom 16:1" +msgstr "16:1 Yakınlaş" + +#: ../app/actions/view-actions.c:298 +msgid "_8:1 (800%)" +msgstr "_8:1 (%%800)" + +#: ../app/actions/view-actions.c:299 +msgid "Zoom 8:1" +msgstr "8:1 Yakınlaş" + +#: ../app/actions/view-actions.c:304 +msgid "_4:1 (400%)" +msgstr "_4:1 (%%400)" + +#: ../app/actions/view-actions.c:305 +msgid "Zoom 4:1" +msgstr "4:1 Yakınlaş" + +#: ../app/actions/view-actions.c:310 +msgid "_2:1 (200%)" +msgstr "_2:1 (%200)" + +#: ../app/actions/view-actions.c:311 +msgid "Zoom 2:1" +msgstr "2:1 Yakınlaş" + +#: ../app/actions/view-actions.c:316 +msgid "_1:1 (100%)" +msgstr "_1:1 (%%100)" + +#: ../app/actions/view-actions.c:317 +msgid "Zoom 1:1" +msgstr "1:1 Yakınlaş" + +#: ../app/actions/view-actions.c:322 +msgid "1:_2 (50%)" +msgstr "1:_2 (%%50)" + +#: ../app/actions/view-actions.c:323 +msgid "Zoom 1:2" +msgstr "1:2 Yakınlaş" + +#: ../app/actions/view-actions.c:328 +msgid "1:_4 (25%)" +msgstr "1:_4 (%%25)" + +#: ../app/actions/view-actions.c:329 +msgid "Zoom 1:4" +msgstr "1:4 Yakınlaş" + +#: ../app/actions/view-actions.c:334 +msgid "1:_8 (12.5%)" +msgstr "1:_8 (%%12.5)" + +#: ../app/actions/view-actions.c:335 +msgid "Zoom 1:8" +msgstr "1:8 Yakınlaş" + +#: ../app/actions/view-actions.c:340 +msgid "1:1_6 (6.25%)" +msgstr "1:1_6 (%%6.25)" + +#: ../app/actions/view-actions.c:341 +msgid "Zoom 1:16" +msgstr "1:16 Yakınlaş" + +#: ../app/actions/view-actions.c:346 +msgid "Othe_r..." +msgstr "_Diğer..." + +#: ../app/actions/view-actions.c:347 +msgid "Set a custom zoom factor" +msgstr "Özel bir yakınlaşma katsayısı ayarla" + +#: ../app/actions/view-actions.c:355 +msgid "From _Theme" +msgstr "_Temadan" + +#: ../app/actions/view-actions.c:356 +msgid "Use the current theme's background color" +msgstr "Şimdiki tema artalanının rengini kullan" + +#: ../app/actions/view-actions.c:361 +msgid "_Light Check Color" +msgstr "_Açık Denetim Rengi" + +#: ../app/actions/view-actions.c:362 +msgid "Use the light check color" +msgstr "Açık denetim rengini kullan" + +#: ../app/actions/view-actions.c:367 +msgid "_Dark Check Color" +msgstr "_Koyu Denetim Rengi" + +#: ../app/actions/view-actions.c:368 +msgid "Use the dark check color" +msgstr "Koyu denetim rengini kullan" + +#: ../app/actions/view-actions.c:373 +msgid "Select _Custom Color..." +msgstr "Öze_l Renk Seç..." + +#: ../app/actions/view-actions.c:374 +msgid "Use an arbitrary color" +msgstr "İsteğe bağlı bir renk kullan" + +#: ../app/actions/view-actions.c:379 +msgid "As in _Preferences" +msgstr "Ter_cihlerdeki Gibi" + +#: ../app/actions/view-actions.c:380 +msgid "Reset padding color to what's configured in preferences" +msgstr "Doldurma rengini yeğlenenlerdeki yapılandırılana göre yeniden ayarla" + +#: ../app/actions/view-actions.c:571 +#, c-format +msgid "Re_vert Zoom (%d%%)" +msgstr "Yakınlaşmayı Ge_ri Al (%d%%)" + +#: ../app/actions/view-actions.c:708 +#, c-format +msgid "Othe_r (%s)..." +msgstr "Diğe_r (%s)..." + +#: ../app/actions/view-actions.c:717 +#, c-format +msgid "_Zoom (%s)" +msgstr "_Yakınlaş (%s)" + +#: ../app/actions/view-commands.c:613 +msgid "Set Canvas Padding Color" +msgstr "Tuval Doldurma Rengini Ayarla" + +#: ../app/actions/view-commands.c:615 +msgid "Set Custom Canvas Padding Color" +msgstr "Özel Tuval Doldurma Rengini Ayarla" + +#: ../app/actions/window-actions.c:168 +#, c-format +msgid "Screen %s" +msgstr "Ekran %s" + +#: ../app/actions/window-actions.c:170 +#, c-format +msgid "Move this window to screen %s" +msgstr "Bu pencereyi ekrana taşı %s" + +#: ../app/actions/windows-actions.c:79 +msgid "_Windows" +msgstr "_Pencereler" + +#: ../app/actions/windows-actions.c:80 +msgid "_Recently Closed Docks" +msgstr "_Son Kapatılan Rıhtımlar" + +#: ../app/actions/windows-actions.c:81 +msgid "_Dockable Dialogs" +msgstr "_Rıhtımlanabilir Kutular" + +#: ../app/actions/windows-actions.c:84 +msgid "Tool_box" +msgstr "Araç _kutusu" + +#: ../app/actions/windows-actions.c:85 +msgid "Raise the toolbox" +msgstr "Araç kutusunu yükselt" + +#: ../app/base/base-enums.c:23 +msgid "Smooth" +msgstr "Yumuşak" + +#: ../app/base/base-enums.c:24 +msgid "Freehand" +msgstr "Serbest Çizim" + +#: ../app/base/base-enums.c:55 ../app/base/base-enums.c:125 +#: ../app/core/core-enums.c:1202 +msgid "Value" +msgstr "Değer" + +#: ../app/base/base-enums.c:56 ../app/core/core-enums.c:1197 +#: ../app/tools/gimpcolorbalancetool.c:296 +#: ../app/tools/gimphuesaturationtool.c:252 +msgid "Red" +msgstr "Kırmızı" + +#: ../app/base/base-enums.c:57 ../app/core/core-enums.c:1198 +#: ../app/tools/gimpcolorbalancetool.c:305 +#: ../app/tools/gimphuesaturationtool.c:254 +msgid "Green" +msgstr "Yeşil" + +#: ../app/base/base-enums.c:58 ../app/core/core-enums.c:1199 +#: ../app/tools/gimpcolorbalancetool.c:314 +#: ../app/tools/gimphuesaturationtool.c:256 +msgid "Blue" +msgstr "Mavi" + +#: ../app/base/base-enums.c:59 +msgid "Alpha" +msgstr "Alfa" + +#: ../app/base/base-enums.c:60 ../app/display/gimpdisplayshell-title.c:233 +#: ../app/widgets/widgets-enums.c:84 +msgid "RGB" +msgstr "RGB" + +#: ../app/base/base-enums.c:111 +msgid "Normal" +msgstr "Normal" + +#: ../app/base/base-enums.c:112 +msgid "Dissolve" +msgstr "Çözülme" + +#: ../app/base/base-enums.c:113 +msgid "Behind" +msgstr "Arkada" + +#: ../app/base/base-enums.c:114 +msgid "Multiply" +msgstr "Çoklandır" + +#: ../app/base/base-enums.c:115 +msgid "Screen" +msgstr "Ekran" + +#: ../app/base/base-enums.c:116 +msgid "Overlay" +msgstr "Üstekoyum" + +#: ../app/base/base-enums.c:117 +msgid "Difference" +msgstr "Fark" + +#: ../app/base/base-enums.c:118 +msgid "Addition" +msgstr "Toplam" + +#: ../app/base/base-enums.c:120 +msgid "Darken only" +msgstr "Sadece Koyulaşan" + +#: ../app/base/base-enums.c:121 +msgid "Lighten only" +msgstr "Sadece Açıklaşan" + +#: ../app/base/base-enums.c:122 ../app/core/core-enums.c:1200 +msgid "Hue" +msgstr "Renk" + +#: ../app/base/base-enums.c:123 ../app/core/core-enums.c:1201 +msgid "Saturation" +msgstr "Doygunluk" + +#: ../app/base/base-enums.c:124 ../app/tools/gimppaintoptions-gui.c:174 +msgid "Color" +msgstr "Renk" + +#: ../app/base/base-enums.c:126 +msgid "Divide" +msgstr "Böl" + +#: ../app/base/base-enums.c:127 +msgid "Dodge" +msgstr "Temizleme" + +#: ../app/base/base-enums.c:128 +msgid "Burn" +msgstr "Yakma" + +#: ../app/base/base-enums.c:129 +msgid "Hard light" +msgstr "Şiddetli Işık" + +#: ../app/base/base-enums.c:130 +msgid "Soft light" +msgstr "Kısık Işık" + +#: ../app/base/base-enums.c:131 +msgid "Grain extract" +msgstr "Tane çıkarma" + +#: ../app/base/base-enums.c:132 +msgid "Grain merge" +msgstr "Tane birleştirme" + +#: ../app/base/base-enums.c:133 +msgid "Color erase" +msgstr "Renk silme" + +#: ../app/base/base-enums.c:134 +msgid "Erase" +msgstr "Sil" + +#: ../app/base/base-enums.c:135 +msgid "Replace" +msgstr "Yerine Koy" + +#: ../app/base/base-enums.c:136 +msgid "Anti erase" +msgstr "Karşı silme" + +#: ../app/base/tile-swap.c:553 +msgid "" +"Unable to open swap file. GIMP has run out of memory and cannot use the swap " +"file. Some parts of your images may be corrupted. Try to save your work " +"using different filenames, restart GIMP and check the location of the swap " +"directory in your Preferences." +msgstr "" +"Takas dosyası açılamadı. GIMP bellek üzerinden çalışıyor ve takas dosyasını " +"kullanamaz. Görüntünün bazı bölümleri bozulmuş olabilir. Çalışmanızı farklı " +"dosya adları kullanarak kaydetmeyi deneyin, GIMP'i yeniden başlatın ve " +"Yeğlenenleriniz içinden takas dizininin yerini denetleyin." + +#: ../app/base/tile-swap.c:568 +#, c-format +msgid "Failed to resize swap file: %s" +msgstr "Takas dosyası yeniden boyutlandırılamadı: %s" + +#: ../app/config/gimpconfig-file.c:68 ../app/core/gimpbrushgenerated-save.c:63 +#: ../app/core/gimpcurve-save.c:53 ../app/core/gimpgradient-save.c:51 +#: ../app/core/gimpgradient-save.c:145 ../app/core/gimppalette-save.c:56 +#: ../app/gui/themes.c:239 ../app/tools/gimpcurvestool.c:676 +#: ../app/tools/gimplevelstool.c:796 ../app/vectors/gimpvectors-export.c:83 +#: ../app/xcf/xcf.c:422 +#, c-format +msgid "Could not open '%s' for writing: %s" +msgstr "'%s' dosyası yazma için açılamadı: %s" + +#: ../app/config/gimpconfig-file.c:79 ../app/config/gimpconfig-file.c:102 +#, c-format +msgid "Error writing '%s': %s" +msgstr "'%s' yazarken hata: %s" + +#: ../app/config/gimpconfig-file.c:90 +#, c-format +msgid "Error reading '%s': %s" +msgstr "'%s' okunurken hata: %s" + +#: ../app/config/gimpconfig-file.c:132 +#, c-format +msgid "" +"There was an error parsing your '%s' file. Default values will be used. A " +"backup of your configuration has been created at '%s'." +msgstr "" +"'%s' dosyası ayrıştırılırken bir hata oldu. Öntanımlı değerler kullanılacak. " +"Yapılandırmanızın yedeğinin oluşturulduğu yer '%s'." + +#. Not all strings defined here are used in the user interface +#. * (the preferences dialog mainly) and only those that are should +#. * be marked for translation. +#. +#: ../app/config/gimprc-blurbs.h:13 +msgid "" +"When enabled, an image will become the active image when its image window " +"receives the focus. This is useful for window managers using \"click to " +"focus\"." +msgstr "" +"Bu özelliği etkinleştirdiğinizde, tıkladığınız resim penceresi aktif pencere " +"haline gelecek. Bu özellik tıklayarak etkinleştirme yapan pencere " +"yöneticilerini kullananlar için yararlıdır." + +#: ../app/config/gimprc-blurbs.h:23 +msgid "" +"Sets the canvas padding color used if the padding mode is set to custom " +"color." +msgstr "" +"Eğer doldurma rengi özel renge ayarlıysa, tuval doldurma rengi kullanılmış " +"olarak ayarlanır." + +#: ../app/config/gimprc-blurbs.h:27 +msgid "Specifies how the area around the image should be drawn." +msgstr "Görüntü etrafındaki alanın nasıl çizileceğini belirler." + +#: ../app/config/gimprc-blurbs.h:33 +msgid "How to handle embedded color profiles when opening a file." +msgstr "Gömülü kullanım profillerinin bir dosya açarken nasıl ele alınacağı." + +#: ../app/config/gimprc-blurbs.h:36 +msgid "Ask for confirmation before closing an image without saving." +msgstr "" +"Bir görüntünün kaydedilmeden kapatılmasından önce doğrulama için sorar." + +#: ../app/config/gimprc-blurbs.h:39 +msgid "Sets the pixel format to use for mouse pointers." +msgstr "Fare imleçleri için kullanılacak benek biçimini ayarlar." + +#: ../app/config/gimprc-blurbs.h:42 +msgid "Sets the type of mouse pointers to use." +msgstr "Kullanılacak fare imleçlerinin türünü ayarlar." + +#: ../app/config/gimprc-blurbs.h:45 +msgid "" +"Context-dependent mouse pointers are helpful. They are enabled by default. " +"However, they require overhead that you may want to do without." +msgstr "" +"İçerik-bağımlı fare imleçleri yararlıdır. Öntanımlı olarak etkindirler. " +"Bununla birlikte, getirecekleri ek yük nedeniyle tercih etmeyebilirsiniz." + +#: ../app/config/gimprc-blurbs.h:53 +msgid "" +"When enabled, this will ensure that each pixel of an image gets mapped to a " +"pixel on the screen." +msgstr "" +"Etkin olduğunda, bir görüntüdeki her beneğin ekran üzerindeki bir benek ile " +"eşlenmesini sağlayacak." + +#: ../app/config/gimprc-blurbs.h:75 +msgid "" +"This is the distance in pixels where Guide and Grid snapping activates." +msgstr "Bu uzaklık klavuz ve ızgara yanaştırmasının etkinleştiği uzaklıktır." + +#: ../app/config/gimprc-blurbs.h:79 +msgid "" +"Tools such as fuzzy-select and bucket fill find regions based on a seed-fill " +"algorithm. The seed fill starts at the initially selected pixel and " +"progresses in all directions until the difference of pixel intensity from " +"the original is greater than a specified threshold. This value represents " +"the default threshold." +msgstr "" +"Bulanıklık seçimi ve kova doldurma gibi araçlar, bir parçacık doldurma " +"algoritmasındaki bölge tabanında bulunur. Parçacık doldurma, seçilen beneğin " +"başlangıcında ve özgünün belirli eşik değerinden daha büyük olan piksel " +"yoğunluğunun farkına kadar tüm işlemlerle başlar. Bu değer, öntanımlı eşik " +"seviyesini belirtir." + +#: ../app/config/gimprc-blurbs.h:92 +msgid "" +"The window type hint that is set on dock windows. This may affect the way " +"your window manager decorates and handles dock windows." +msgstr "" +"Pencere türü ipucu panel pencereleri üzerinden ayarlanır. Bu işlem, sizin " +"pencere yöneticisi süslemelerinizi ve panel pencereleri işlemlerinizi " +"etkileyebilir." + +#: ../app/config/gimprc-blurbs.h:123 +msgid "When enabled, the selected brush will be used for all tools." +msgstr "Etkin olduğunda, seçilmiş fırça bütün araçlar için kullanılacak." + +#: ../app/config/gimprc-blurbs.h:129 +msgid "When enabled, the selected gradient will be used for all tools." +msgstr "" +"Etkin olduğunda, seçilmiş renk geçişi bütün araçlar için kullanılacak." + +#: ../app/config/gimprc-blurbs.h:132 +msgid "When enabled, the selected pattern will be used for all tools." +msgstr "Etkin olduğunda, seçilmiş desen bütün araçlar için kullanılacak." + +#: ../app/config/gimprc-blurbs.h:146 +msgid "Sets the browser used by the help system." +msgstr "Tarayıcının yardım sistemi tarafından kullanılacağını ayarlar." + +#: ../app/config/gimprc-blurbs.h:154 +msgid "Sets the text to appear in image window status bars." +msgstr "" +"Görüntü penceresi durum çubukları içindeki metnin görüleceğini ayarlar." + +#: ../app/config/gimprc-blurbs.h:157 +msgid "Sets the text to appear in image window titles." +msgstr "Görüntü penceresi başlıkları içindeki metnin görüleceğini ayarlar." + +#: ../app/config/gimprc-blurbs.h:160 +msgid "" +"When enabled, this will ensure that the full image is visible after a file " +"is opened, otherwise it will be displayed with a scale of 1:1." +msgstr "" +"Etkin olduğunda, bir dosya açıldıktan sonra tüm görüntünün görünebilir " +"olmasını sağlar, aksi halde 1:1 ölçek ile görüntülenecek." + +#: ../app/config/gimprc-blurbs.h:164 +msgid "" +"Install a private colormap; might be useful on 8-bit (256 colors) displays." +msgstr "" +"Özel bir renk haritası yüklemek: 8-ikil (256 renk) görüntülemeler üzerinde " +"yararlı olabilir." + +#: ../app/config/gimprc-blurbs.h:167 +msgid "" +"Sets the level of interpolation used for scaling and other transformations." +msgstr "" +"Diğer dönüşümler ve ölçeklemeler için kullanılacak ara değerleme düzeyini " +"ayarlar." + +#: ../app/config/gimprc-blurbs.h:174 +msgid "How many recently opened image filenames to keep on the File menu." +msgstr "" +"Dosya menüsünde tutulacak son açılmış görüntü dosyası adlarının sayısıdır." + +#: ../app/config/gimprc-blurbs.h:177 +msgid "" +"Speed of marching ants in the selection outline. This value is in " +"milliseconds (less time indicates faster marching)." +msgstr "" +"Seçim çerçevesi içinde yürüyen karıncaların hızı. Bu değer milisaniye " +"cinsindendir (düşük zaman hızlı yürümeyi belirtir)." + +#: ../app/config/gimprc-blurbs.h:181 +msgid "" +"GIMP will warn the user if an attempt is made to create an image that would " +"take more memory than the size specified here." +msgstr "" +"Eğer bir teşebbüs burada belirlenmiş boyuttan daha çok bellek kaplayacak bir " +"görüntü oluşturmaya çalışırsa, GIMP kullanıcıyı uyaracak." + +#: ../app/config/gimprc-blurbs.h:185 +msgid "When enabled, GIMP will show mnemonics in menus." +msgstr "" +"Etkin olduğunda, GIMP menüler içinde anımsama yöntemlerini gösterecek." + +#: ../app/config/gimprc-blurbs.h:188 +msgid "" +"Generally only a concern for 8-bit displays, this sets the minimum number of " +"system colors allocated for GIMP." +msgstr "" +"Genellikle sadece 8-ikil görüntülemeler için bir ilişkisi vardır, bu GIMP " +"için sistemde tahsis edilmiş renklerin asgari sayısını ayarlar." + +#: ../app/config/gimprc-blurbs.h:198 +msgid "" +"Sets the monitor's horizontal resolution, in dots per inch. If set to 0, " +"forces the X server to be queried for both horizontal and vertical " +"resolution information." +msgstr "" +"Monitörün yatay çözünürlüğünü inç başına nokta cinsinden ayarlar. Eğer 0 " +"ayarlanırsa, X sunucusunun her iki yatay ve dikey çözünürlük bilgisini " +"sorgulanması için zorlayacak." + +#: ../app/config/gimprc-blurbs.h:203 +msgid "" +"Sets the monitor's vertical resolution, in dots per inch. If set to 0, " +"forces the X server to be queried for both horizontal and vertical " +"resolution information." +msgstr "" +"Monitörün dikey çözünürlüğünü inç başına nokta cinsinden ayarlar. Eğer 0 " +"ayarlanırsa, X sunucusunun her iki yatay ve dikey çözünürlük bilgisini " +"sorgulanması için zorlayacak." + +#: ../app/config/gimprc-blurbs.h:208 +msgid "" +"If enabled, the move tool sets the edited layer or path as active. This " +"used to be the default behaviour in older versions." +msgstr "" +"Seçili olduğunda, taşıma aracı katman ya da yolu etkin olacak şekilde " +"ayarlar. Bu eski sürümlerde öntanımlı davranış olarak kullanılır." + +#: ../app/config/gimprc-blurbs.h:212 +msgid "" +"Sets the size of the navigation preview available in the lower right corner " +"of the image window." +msgstr "" +"Dolaşma önizlemesi boyutunu görüntü penceresinin sağ alt köşesinde " +"kullanılabilir olarak ayarlar." + +#: ../app/config/gimprc-blurbs.h:216 +msgid "Sets how many processors GIMP should try to use simultaneously." +msgstr "" +"GIMP'in eş zamanlı olarak kaç tane işlemci kullanmayı deneyeceğini ayarlar." + +#: ../app/config/gimprc-blurbs.h:229 +msgid "" +"When enabled, the X server is queried for the mouse's current position on " +"each motion event, rather than relying on the position hint. This means " +"painting with large brushes should be more accurate, but it may be slower. " +"Perversely, on some X servers enabling this option results in faster " +"painting." +msgstr "" +"Etkin olduğunda, X sunucusu her hareketli olayda, konum ipucuna dayanmaktan " +"ziyade farenin mevcut konumu için sorgulanacak. Bunun anlamı, geniş " +"fırçalarla boyama daha eksiksiz olacak, ama yavaş olabilir. Aksilikle, bazı " +"X sunucuları üzerinde bu seçeneği etkinleştirmek daha hızlı boyama ile " +"sonuçlanır." + +#: ../app/config/gimprc-blurbs.h:245 +msgid "" +"Sets whether GIMP should create previews of layers and channels. Previews in " +"the layers and channels dialog are nice to have but they can slow things " +"down when working with large images." +msgstr "" +"GIMP'in katmanların ve kanalların önizlemelerini oluşturup oluşturmayacağı. " +"Katmanlar ve kanallar kutusu içindeki önizlemelerin olması güzel ama geniş " +"görüntüler ile çalışırken nesneleri yavaşlatabilir." + +#: ../app/config/gimprc-blurbs.h:250 +msgid "" +"Sets the preview size used for layers and channel previews in newly created " +"dialogs." +msgstr "" +"Katmanların ve kanalların önizleme boyutları için kullanılacak yeni " +"oluşturulmuş iletişim kutularının önizlemelerini ayarlar." + +#: ../app/config/gimprc-blurbs.h:254 +msgid "" +"When enabled, the image window will automatically resize itself whenever the " +"physical image size changes." +msgstr "" +"Etkin olduğunda, görüntü penceresi her ne zaman fiziksel görüntü boyutu " +"değişirse otomatik olarak kendini yeniden boyutlandıracaktır." + +#: ../app/config/gimprc-blurbs.h:258 +msgid "" +"When enabled, the image window will automatically resize itself when zooming " +"into and out of images." +msgstr "" +"Etkin olduğunda, görüntü penceresi görüntülere yaklaştırıldığında ve " +"uzaklaştırıldığında otomatik olarak kendini yeniden boyutlandıracaktır." + +#: ../app/config/gimprc-blurbs.h:262 +msgid "Let GIMP try to restore your last saved session on each startup." +msgstr "" +"Her başlangıçta kaydedilmiş son oturumunuzu geri yüklemesini denemek için " +"GIMP'e izin verin." + +#: ../app/config/gimprc-blurbs.h:265 +msgid "" +"Remember the current tool, pattern, color, and brush across GIMP sessions." +msgstr "" +"GIMP oturumları arasında mevcut aracı, deseni, rengi ve fırçayı hatırla." + +#: ../app/config/gimprc-blurbs.h:269 +msgid "" +"Keep a permanent record of all opened and saved files in the Recent " +"Documents list." +msgstr "" +"Son Belgeler listesinde tüm açılmış ve kaydedilmiş dosyaların kalıcı bir " +"kaydını tut." + +#: ../app/config/gimprc-blurbs.h:273 +msgid "Save the positions and sizes of the main dialogs when GIMP exits." +msgstr "" +"GIMP'ten çıkılırken, ana kutuların konumlarını ve boyutlarını kaydet." + +#: ../app/config/gimprc-blurbs.h:276 +msgid "Save the tool options when GIMP exits." +msgstr "GIMP'ten çıkılırken, araç seçeneklerini kaydet." + +#: ../app/config/gimprc-blurbs.h:282 +msgid "" +"When enabled, all paint tools will show a preview of the current brush's " +"outline." +msgstr "" +"Etkin olduğunda, tüm boyama araçları mevcut fırça çerçevesinin bir " +"önizlemesini gösterecek." + +#: ../app/config/gimprc-blurbs.h:286 +msgid "" +"When enabled, dialogs will show a help button that gives access to the " +"related help page. Without this button, the help page can still be reached " +"by pressing F1." +msgstr "" +"Etkin olduğunda, iletişim kutuları ilgili sayfanın yardımına girebilmek için " +"bir yardım butonu gösterecek. Bu buton olmadan, bu yardım sayfasına F1'e " +"basılarak erişilebilir." + +#: ../app/config/gimprc-blurbs.h:291 +msgid "" +"When enabled, the mouse pointer will be shown over the image while using a " +"paint tool." +msgstr "" +"Etkin olduğunda, bir boyama aracı kullanıldığında fare imleci görüntü " +"üzerinde gösterilecek." + +#: ../app/config/gimprc-blurbs.h:295 +msgid "" +"When enabled, the menubar is visible by default. This can also be toggled " +"with the \"View->Show Menubar\" command." +msgstr "" +"Etkin olduğunda, menü çubuğu öntanımlı olarak görünür olacak. Bu, \"Görünüm-" +">Menü Çubuğunu Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:299 +msgid "" +"When enabled, the rulers are visible by default. This can also be toggled " +"with the \"View->Show Rulers\" command." +msgstr "" +"Etkin olduğunda, cetveller öntanımlı olarak görünür olacak. Bu, \"Görünüm-" +">Cetvelleri Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:303 +msgid "" +"When enabled, the scrollbars are visible by default. This can also be " +"toggled with the \"View->Show Scrollbars\" command." +msgstr "" +"Etkin olduğunda, kaydırma çubukları öntanımlı olarak görünür olacak. Bu, " +"\"Görünüm->Kaydırma Çubuklarını Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:307 +msgid "" +"When enabled, the statusbar is visible by default. This can also be toggled " +"with the \"View->Show Statusbar\" command." +msgstr "" +"Etkin olduğunda, durum çubuğu öntanımlı olarak görünür olacak. Bu, \"Görünüm-" +">Durum Çubuğunu Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:311 +msgid "" +"When enabled, the selection is visible by default. This can also be toggled " +"with the \"View->Show Selection\" command." +msgstr "" +"Etkin olduğunda, seçim öntanımlı olarak görünür olacak. Bu, \"Görünüm-" +">Seçimi Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:315 +msgid "" +"When enabled, the layer boundary is visible by default. This can also be " +"toggled with the \"View->Show Layer Boundary\" command." +msgstr "" +"Etkin olduğunda, katman sınırı öntanımlı olarak görünür olacak. Bu, " +"\"Görünüm->Katman Sınırını Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:319 +msgid "" +"When enabled, the guides are visible by default. This can also be toggled " +"with the \"View->Show Guides\" command." +msgstr "" +"Etkin olduğunda, kılavuzlar öntanımlı olarak görünür olacak. Bu, \"Görünüm-" +">Kılavuzları Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:323 +msgid "" +"When enabled, the grid is visible by default. This can also be toggled with " +"the \"View->Show Grid\" command." +msgstr "" +"Eğer etkinleştirilirse kılavuz çizgileri görüntülenir. Bu işlem aynı zamanda " +"\"Görüntüle - Kılavuzu Göster\" komutuyla da yapılabilir." + +#: ../app/config/gimprc-blurbs.h:327 +msgid "" +"When enabled, the sample points are visible by default. This can also be " +"toggled with the \"View->Show Sample Points\" command." +msgstr "" +"Etkin olduğunda, örnek noktalar öntanımlı olarak görünür olacak. Bu, " +"\"Görünüm->Örnek Noktaları Göster\" komutuyla da değiştirilebilir." + +#: ../app/config/gimprc-blurbs.h:331 +msgid "Show a tooltip when the pointer hovers over an item." +msgstr "İmleç bir öğe üzerinde durduğunda, bir araç ipucu göster." + +#: ../app/config/gimprc-blurbs.h:334 +msgid "What to do when the space bar is pressed in the image window." +msgstr "" +"Bir görüntü penceresi içinde ara çubuğuna basıldığında ne yapılacağı." + +#: ../app/config/gimprc-blurbs.h:337 +msgid "" +"Sets the swap file location. GIMP uses a tile based memory allocation " +"scheme. The swap file is used to quickly and easily swap tiles out to disk " +"and back in. Be aware that the swap file can easily get very large if GIMP " +"is used with large images. Also, things can get horribly slow if the swap " +"file is created on a folder that is mounted over NFS. For these reasons, it " +"may be desirable to put your swap file in \"/tmp\"." +msgstr "" +"Takas dosyası konumunu ayarlar. GIMP döşeme temelli bir bellek dağıtım " +"şeması kullanır. Takas dosyaları, döşemeleri çabuk ve kolayca disk dışına " +"takas etme ve geri almak için kullanılır. Eğer GIMP büyük görüntülerle " +"çalışırsa takas dosyalarının çabucak büyüyebileceğini unutmayın. Ayrıca " +"takas dosyası NFS üzerinde bir dizin oluşturursa bazı şeyler korkunç biçimde " +"yavaşlayabilir. Bu sebeplerden dolayı, takas dosyanızı \"/tmp\" içine koymak " +"daha iyi olabilir." + +#: ../app/config/gimprc-blurbs.h:346 +msgid "When enabled, menus can be torn off." +msgstr "Etkin olduğunda, menüler kapatılabilir." + +#: ../app/config/gimprc-blurbs.h:349 +msgid "" +"When enabled, dock windows (the toolbox and palettes) are set to be " +"transient to the active image window. Most window managers will keep the " +"dock windows above the image window then, but it may also have other effects." +msgstr "" +"Etkin olduğunda, rıhtım pencereleri (araç çubukları ve paletler) kullanılan " +"görüntü penceresi için geçici olarak ayarlı olacak. Çoğu pencere " +"yöneticileri rıhtım pencerelerini görüntü penceresinin altında tutacaktır, " +"ama bunun başka etkileri de olabilir." + +#: ../app/config/gimprc-blurbs.h:355 +msgid "" +"When enabled, you can change keyboard shortcuts for menu items by hitting a " +"key combination while the menu item is highlighted." +msgstr "" +"Etkin olduğunda, menü öğeleri için klavye kısayollarını, menü öğesi " +"aydınlatılmış olduğunda bir tuş birleşimi ile değiştirebilirsiniz." + +#: ../app/config/gimprc-blurbs.h:359 +msgid "Save changed keyboard shortcuts when GIMP exits." +msgstr "GIMP'ten çıkıldığında, değiştirilmiş klavye kısayollarını kaydet." + +#: ../app/config/gimprc-blurbs.h:362 +msgid "Restore saved keyboard shortcuts on each GIMP startup." +msgstr "Her GIMP başladığında kaydedilmiş klavye kısayollarını geri yükle." + +#: ../app/config/gimprc-blurbs.h:365 +msgid "" +"Sets the folder for temporary storage. Files will appear here during the " +"course of running GIMP. Most files will disappear when GIMP exits, but some " +"files are likely to remain, so it is best if this folder not be one that is " +"shared by other users." +msgstr "" +"Geçici depolama için dizin ayarlar. GIMP'in çalışması esnasında dosyalar " +"burada görülecek. Çoğu dosya GIMP'ten çıkıldığında kaybolacak, ama bazı " +"dosyalar muhtemelen duracak, bu yüzden en iyisi bu dizini diğer " +"kullanıcılarla paylaşmamak." + +#: ../app/config/gimprc-blurbs.h:377 +msgid "Sets the size of the thumbnail shown in the Open dialog." +msgstr "Açılış kutusunda gösterilecek küçük görüntü boyutunu ayarlar." + +#: ../app/config/gimprc-blurbs.h:380 +msgid "" +"The thumbnail in the Open dialog will be automatically updated if the file " +"being previewed is smaller than the size set here." +msgstr "" +"Eğer dosya önizlemesi burada ayarlanan boyuttan daha küçükse, Açılış " +"kutusundaki küçük görüntü otomatik olarak güncelleştirilecek." + +#: ../app/config/gimprc-blurbs.h:384 +msgid "" +"When the amount of pixel data exceeds this limit, GIMP will start to swap " +"tiles to disk. This is a lot slower but it makes it possible to work on " +"images that wouldn't fit into memory otherwise. If you have a lot of RAM, " +"you may want to set this to a higher value." +msgstr "" +"Benek verisi miktarı bu sınırı aşarsa, GIMP takas dosyasını diske yazmaya " +"başlayacak. Bu çok daha yavaştır, ama başka yolla belleğe uymayan " +"görüntülerde çalışılmasını mümkün kılar. Çok fazla rastgele erişimli " +"belleğiniz varsa, bu değeri daha yüksek olarak ayarlamak isteyebilirsiniz." + +#: ../app/config/gimprc-blurbs.h:390 +msgid "Show the current foreground and background colors in the toolbox." +msgstr "Mevcut önalan ve artalan renklerini araç kutusu içinde göster." + +#: ../app/config/gimprc-blurbs.h:393 +msgid "" +"Show the currently selected brush, pattern and gradient in the toolbox." +msgstr "" +"Mevcut seçilmiş fırçayı, deseni ve renk geçişini araç kutusu içinde göster." + +#: ../app/config/gimprc-blurbs.h:396 +msgid "Show the currently active image in the toolbox." +msgstr "Mevcut etkin görüntüyü araç kutusu içinde göster." + +#: ../app/config/gimprc-blurbs.h:402 +msgid "" +"The window type hint that is set on the toolbox. This may affect how your " +"window manager decorates and handles the toolbox window." +msgstr "" +"Araç kutusu üzerinde ayarlı pencere türü ipucudur. Bu, pencere yöneticisinin " +"araç kutusu penceresini nasıl ele alacağına ve süsleyeceğine etki edebilir." + +#: ../app/config/gimprc-blurbs.h:406 +msgid "Sets the manner in which transparency is displayed in images." +msgstr "Görüntülerde gösterilecek saydamlığın davranışını ayarlar." + +#: ../app/config/gimprc-blurbs.h:409 +msgid "Sets the size of the checkerboard used to display transparency." +msgstr "" +"Saydamlığı görüntülemek için kullanılan dama tahtasının boyutunu ayarlar." + +#: ../app/config/gimprc-blurbs.h:412 +msgid "" +"When enabled, GIMP will not save an image if it has not been changed since " +"it was opened." +msgstr "" +"Etkin olduğunda, eğer bir görüntü açıldıktan sonra değiştirilmemişse GIMP " +"bunu bunu kaydetmeyecek." + +#: ../app/config/gimprc-blurbs.h:416 +msgid "" +"Sets the minimal number of operations that can be undone. More undo levels " +"are kept available until the undo-size limit is reached." +msgstr "" +"Geri alınabilir işlemlerin asgari sayısını ayarlar. Daha çok geri alma " +"düzeyi, yapılmama-boyutu sınırına ulaşılana kadar kullanılabilir olarak " +"tutulur." + +#: ../app/config/gimprc-blurbs.h:420 +msgid "" +"Sets an upper limit to the memory that is used per image to keep operations " +"on the undo stack. Regardless of this setting, at least as many undo-levels " +"as configured can be undone." +msgstr "" +"Geri alma işlemleri için ayrılan belleğe üst limit belirleyin. Bu limitin " +"dikkatsizce belirlenmesi sonucunda değişiklikler geri alınamaz hale " +"gelebilir." + +#: ../app/config/gimprc-blurbs.h:425 +msgid "Sets the size of the previews in the Undo History." +msgstr "Geri Alma Geçmişindeki önizlemelerin boyutlarını ayarlar." + +#: ../app/config/gimprc-blurbs.h:428 +msgid "When enabled, pressing F1 will open the help browser." +msgstr "Etkin olduğunda, F1'e basmak yardım tarayıcısını açacak." + +#: ../app/config/gimprc-blurbs.h:439 +#, c-format +msgid "" +"Sets the external web browser to be used. This can be an absolute path or " +"the name of an executable to search for in the user's PATH. If the command " +"contains '%s' it will be replaced with the URL, else the URL will be " +"appended to the command with a space separating the two." +msgstr "" +"Kullanılacak harici web tarayıcıyı ayarlar. Bu, kullanıcının PATH'ında " +"aramak için, kesin bir yol veya yürütülebilir bir ad olabilir. Eğer komut " +"'%s' i içerirse, bu URL ile yer değiştirecek, aksi taktirde URL, iki boşluk " +"ayırıcı ile komuta eklenecektir." + +#: ../app/config/gimprc-deserialize.c:135 ../app/core/gimp-modules.c:134 +#: ../app/core/gimp-units.c:164 ../app/gui/session.c:206 +#: ../app/plug-in/plug-in-rc.c:213 +msgid "fatal parse error" +msgstr "ölümcül ayrıştırma hatası" + +#: ../app/config/gimprc-deserialize.c:163 +#, c-format +msgid "value for token %s is not a valid UTF-8 string" +msgstr "%s anahtarına verilen değer geçerli bir UTF-8 dizgesi değil" + +#. no undo (or redo) steps available +#: ../app/core/core-enums.c:53 ../app/core/core-enums.c:252 +#: ../app/core/core-enums.c:504 ../app/paint/paint-enums.c:81 +#: ../app/widgets/gimpimagepropview.c:416 +msgid "None" +msgstr "Yok" + +#: ../app/core/core-enums.c:54 +msgid "Floyd-Steinberg (normal)" +msgstr "Floyd-Steinberg (normal)" + +#: ../app/core/core-enums.c:55 +msgid "Floyd-Steinberg (reduced color bleeding)" +msgstr "Floyd-Steinberg (azaltılmış renk akması)" + +#: ../app/core/core-enums.c:56 +msgid "Positioned" +msgstr "Konumlandırılmış" + +#: ../app/core/core-enums.c:85 +msgid "Generate optimum palette" +msgstr "En iyi paleti üret" + +#: ../app/core/core-enums.c:86 +msgid "Use web-optimized palette" +msgstr "Ağ-ayarlı paleti kullan" + +#: ../app/core/core-enums.c:87 +msgid "Use black and white (1-bit) palette" +msgstr "Siyah ve beyaz (1-ikil) paleti kullan" + +#: ../app/core/core-enums.c:88 +msgid "Use custom palette" +msgstr "Özel palet kullan" + +#: ../app/core/core-enums.c:211 +msgid "First item" +msgstr "İlk öğe" + +#: ../app/core/core-enums.c:213 ../app/dialogs/dialogs.c:198 +#: ../app/tools/tools-enums.c:210 +msgid "Selection" +msgstr "Seçim" + +#: ../app/core/core-enums.c:214 +msgid "Active layer" +msgstr "Etkin katman" + +#: ../app/core/core-enums.c:215 +msgid "Active channel" +msgstr "Etkin kanal" + +#: ../app/core/core-enums.c:216 +msgid "Active path" +msgstr "Etkin yol" + +#: ../app/core/core-enums.c:247 +msgid "Foreground color" +msgstr "Önplan rengi" + +#: ../app/core/core-enums.c:248 +msgid "Background color" +msgstr "Arkaplan rengi" + +#: ../app/core/core-enums.c:249 +msgid "White" +msgstr "Beyaz" + +#. Transparency +#: ../app/core/core-enums.c:250 ../app/dialogs/preferences-dialog.c:2311 +msgid "Transparency" +msgstr "Şeffaflık" + +#: ../app/core/core-enums.c:251 ../app/core/core-enums.c:308 +msgid "Pattern" +msgstr "Desen" + +#: ../app/core/core-enums.c:279 +msgid "Stroke line" +msgstr "Darbeleme satırı" + +#: ../app/core/core-enums.c:280 +msgid "Stroke with a paint tool" +msgstr "Bir boyama aracı ile darbele" + +#: ../app/core/core-enums.c:307 +msgid "Solid color" +msgstr "Kesiksiz renk" + +#: ../app/core/core-enums.c:336 +msgid "Miter" +msgstr "Köşe" + +#: ../app/core/core-enums.c:337 ../app/core/core-enums.c:367 +msgid "Round" +msgstr "Yuvarla" + +#: ../app/core/core-enums.c:338 +msgid "Bevel" +msgstr "Kabarıklık" + +#: ../app/core/core-enums.c:366 +msgid "Butt" +msgstr "Buton" + +#: ../app/core/core-enums.c:368 ../app/core/core-enums.c:443 +msgid "Square" +msgstr "Kare" + +#: ../app/core/core-enums.c:404 +msgid "Custom" +msgstr "Özel" + +#: ../app/core/core-enums.c:405 +msgid "Line" +msgstr "Satır" + +#: ../app/core/core-enums.c:406 +msgid "Long dashes" +msgstr "Uzun çizgiler" + +#: ../app/core/core-enums.c:407 +msgid "Medium dashes" +msgstr "Orta çizgiler" + +#: ../app/core/core-enums.c:408 +msgid "Short dashes" +msgstr "Kısa çizgiler" + +#: ../app/core/core-enums.c:409 +msgid "Sparse dots" +msgstr "Dağınık noktalar" + +#: ../app/core/core-enums.c:410 +msgid "Normal dots" +msgstr "Normal noktalar" + +#: ../app/core/core-enums.c:411 +msgid "Dense dots" +msgstr "Sık noktalar" + +#: ../app/core/core-enums.c:412 +msgid "Stipples" +msgstr "Nokta çizimler" + +#: ../app/core/core-enums.c:413 +msgid "Dash, dot" +msgstr "Çizgi, nokta" + +#: ../app/core/core-enums.c:414 +msgid "Dash, dot, dot" +msgstr "Çizgi, nokta, nokta" + +#: ../app/core/core-enums.c:442 +msgid "Circle" +msgstr "Çember" + +#: ../app/core/core-enums.c:444 +msgid "Diamond" +msgstr "Elmas" + +#: ../app/core/core-enums.c:472 ../app/dialogs/preferences-dialog.c:2343 +msgid "Horizontal" +msgstr "Yatay" + +#: ../app/core/core-enums.c:473 ../app/dialogs/preferences-dialog.c:2345 +msgid "Vertical" +msgstr "Dikey" + +#: ../app/core/core-enums.c:474 +msgid "Unknown" +msgstr "Bilinmeyen" + +#: ../app/core/core-enums.c:505 +msgid "All layers" +msgstr "Bütün katmanlar" + +#: ../app/core/core-enums.c:506 +msgid "Image-sized layers" +msgstr "Görüntü-boyutlu katmanlar" + +#: ../app/core/core-enums.c:507 +msgid "All visible layers" +msgstr "Bütün görünür katmanlar" + +#: ../app/core/core-enums.c:508 +msgid "All linked layers" +msgstr "Bütün bağlanmış katmanlar" + +#: ../app/core/core-enums.c:572 +msgid "Tiny" +msgstr "Küçük" + +#: ../app/core/core-enums.c:573 +msgid "Very small" +msgstr "Çok küçük" + +#: ../app/core/core-enums.c:574 +msgid "Small" +msgstr "Ufak" + +#: ../app/core/core-enums.c:575 +msgid "Medium" +msgstr "Orta" + +#: ../app/core/core-enums.c:576 +msgid "Large" +msgstr "Büyük" + +#: ../app/core/core-enums.c:577 +msgid "Very large" +msgstr "Çok büyük" + +#: ../app/core/core-enums.c:578 +msgid "Huge" +msgstr "Kocaman" + +#: ../app/core/core-enums.c:579 +msgid "Enormous" +msgstr "Dev gibi" + +#: ../app/core/core-enums.c:580 +msgid "Gigantic" +msgstr "Dev gibi" + +#: ../app/core/core-enums.c:607 +msgid "View as list" +msgstr "Liste olarak göster" + +#: ../app/core/core-enums.c:608 +msgid "View as grid" +msgstr "Izgara olarak görüntüle" + +#: ../app/core/core-enums.c:672 +msgid "No thumbnails" +msgstr "Küçük resim yok" + +#: ../app/core/core-enums.c:673 +msgid "Normal (128x128)" +msgstr "Normal (128x128)" + +#: ../app/core/core-enums.c:674 +msgid "Large (256x256)" +msgstr "Büyük (256x256)" + +#: ../app/core/core-enums.c:850 +msgid "<>" +msgstr "<>" + +#: ../app/core/core-enums.c:851 +msgid "Scale image" +msgstr "Resmi ölçekle" + +#: ../app/core/core-enums.c:852 +msgid "Resize image" +msgstr "Resim boyutunu değiştir" + +#: ../app/core/core-enums.c:853 +msgid "Flip image" +msgstr "Görüntüyü çevir" + +#: ../app/core/core-enums.c:854 +msgid "Rotate image" +msgstr "Resmi Döndür" + +#: ../app/core/core-enums.c:855 +msgid "Crop image" +msgstr "Resmi kırp" + +#: ../app/core/core-enums.c:856 +msgid "Convert image" +msgstr "Resmi dönüştür" + +#: ../app/core/core-enums.c:857 +msgid "Remove item" +msgstr "Öğeyi sil" + +#: ../app/core/core-enums.c:858 +msgid "Merge layers" +msgstr "Katmanları birleştir" + +#: ../app/core/core-enums.c:859 +msgid "Merge paths" +msgstr "Yolları birleştir" + +#: ../app/core/core-enums.c:861 ../app/core/core-enums.c:892 +#: ../app/core/gimpimage-grid.c:58 ../app/dialogs/grid-dialog.c:152 +#: ../app/tools/tools-enums.c:241 +msgid "Grid" +msgstr "Kılavuz" + +#: ../app/core/core-enums.c:862 ../app/core/core-enums.c:894 +msgid "Guide" +msgstr "Rehber" + +#: ../app/core/core-enums.c:863 ../app/core/core-enums.c:895 +msgid "Sample Point" +msgstr "Örnek Nokta" + +#: ../app/core/core-enums.c:864 ../app/core/core-enums.c:896 +msgid "Layer/Channel" +msgstr "Katman/Kanal" + +#: ../app/core/core-enums.c:865 ../app/core/core-enums.c:897 +msgid "Layer/Channel modification" +msgstr "Katman/Kanal değişikliği" + +#: ../app/core/core-enums.c:866 ../app/core/core-enums.c:898 +msgid "Selection mask" +msgstr "Seçim maskesi" + +#: ../app/core/core-enums.c:867 ../app/core/core-enums.c:901 +msgid "Item visibility" +msgstr "Öğe görünürlüğü" + +#: ../app/core/core-enums.c:868 ../app/core/core-enums.c:902 +msgid "Link/Unlink item" +msgstr "Bağlı/Bağsız öğe" + +#: ../app/core/core-enums.c:869 +msgid "Item properties" +msgstr "Öğe özellikleri" + +#: ../app/core/core-enums.c:870 ../app/core/core-enums.c:900 +msgid "Move item" +msgstr "Öğeyi taşı" + +#: ../app/core/core-enums.c:871 +msgid "Scale item" +msgstr "Öğeyi ölçekle" + +#: ../app/core/core-enums.c:872 +msgid "Resize item" +msgstr "Öğeyi yeniden boyutlandır" + +#: ../app/core/core-enums.c:873 +msgid "Add layer" +msgstr "Katman ekle" + +#: ../app/core/core-enums.c:874 ../app/core/core-enums.c:911 +msgid "Add layer mask" +msgstr "Katman maskesi ekle" + +#: ../app/core/core-enums.c:875 ../app/core/core-enums.c:913 +msgid "Apply layer mask" +msgstr "Katman maskesini uygula" + +#: ../app/core/core-enums.c:876 ../app/core/core-enums.c:923 +msgid "Floating selection to layer" +msgstr "Katman için yüzdürme seçimi" + +#: ../app/core/core-enums.c:877 +msgid "Float selection" +msgstr "Yüzdürme seçimi" + +#: ../app/core/core-enums.c:878 +msgid "Anchor floating selection" +msgstr "Yüzen seçimi çıpala" + +#: ../app/core/core-enums.c:879 +msgid "Remove floating selection" +msgstr "Yüzdürme seçimini kaldır" + +#: ../app/core/core-enums.c:880 ../app/core/gimp-edit.c:262 +msgid "Paste" +msgstr "Yapıştır" + +#: ../app/core/core-enums.c:881 ../app/core/gimp-edit.c:557 +msgid "Cut" +msgstr "Kes" + +#: ../app/core/core-enums.c:882 ../app/tools/gimptexttool.c:161 +#: ../app/widgets/widgets-enums.c:265 +msgid "Text" +msgstr "Metin" + +#: ../app/core/core-enums.c:883 ../app/core/core-enums.c:926 +#: ../app/core/gimpdrawable-transform.c:567 +msgid "Transform" +msgstr "Dönüştür" + +#: ../app/core/core-enums.c:884 ../app/core/core-enums.c:927 +#: ../app/paint/gimppaintcore.c:137 +msgid "Paint" +msgstr "Boya" + +#: ../app/core/core-enums.c:885 ../app/core/core-enums.c:930 +msgid "Attach parasite" +msgstr "Parazit tuttur" + +#: ../app/core/core-enums.c:886 ../app/core/core-enums.c:931 +msgid "Remove parasite" +msgstr "Paraziti kaldır" + +#: ../app/core/core-enums.c:887 +msgid "Import paths" +msgstr "Yolları içe aktar" + +#: ../app/core/core-enums.c:888 ../app/pdb/drawable-cmds.c:885 +msgid "Plug-In" +msgstr "Eklentiler" + +#: ../app/core/core-enums.c:889 +msgid "Image type" +msgstr "Görüntü türü" + +#: ../app/core/core-enums.c:890 +msgid "Image size" +msgstr "Görüntü boyutu" + +#: ../app/core/core-enums.c:891 +msgid "Image resolution change" +msgstr "Görüntü çözünürlüğü değiştirme" + +#: ../app/core/core-enums.c:893 +msgid "Change indexed palette" +msgstr "Sıralanmış paleti değiştir" + +#: ../app/core/core-enums.c:899 +msgid "Rename item" +msgstr "Öğeyi yeniden adlandır" + +#: ../app/core/core-enums.c:903 +msgid "New layer" +msgstr "Yeni katman" + +#: ../app/core/core-enums.c:904 +msgid "Delete layer" +msgstr "Katmanı sil" + +#: ../app/core/core-enums.c:905 +msgid "Reposition layer" +msgstr "Katmanı yeniden konumlandır" + +#: ../app/core/core-enums.c:906 +msgid "Set layer mode" +msgstr "Katman kipini ayarla" + +#: ../app/core/core-enums.c:907 +msgid "Set layer opacity" +msgstr "Katman ışık geçirmezliğini ayarla" + +#: ../app/core/core-enums.c:908 +msgid "Lock/Unlock alpha channel" +msgstr "Görünür kanalını Kilitle/Kilidini aç" + +#: ../app/core/core-enums.c:909 +msgid "Text layer" +msgstr "Metin katmanı" + +#: ../app/core/core-enums.c:910 +msgid "Text layer modification" +msgstr "Metin katmanı değişikliği" + +#: ../app/core/core-enums.c:912 +msgid "Delete layer mask" +msgstr "Katman maskesini sil" + +#: ../app/core/core-enums.c:914 +msgid "Show layer mask" +msgstr "Katman maskesini göster" + +#: ../app/core/core-enums.c:915 +msgid "New channel" +msgstr "Yeni kanal" + +#: ../app/core/core-enums.c:916 +msgid "Delete channel" +msgstr "Kanalı sil" + +#: ../app/core/core-enums.c:917 +msgid "Reposition channel" +msgstr "Kanalı yeniden konumlandır" + +#: ../app/core/core-enums.c:918 +msgid "Channel color" +msgstr "Kanal rengi" + +#: ../app/core/core-enums.c:919 +msgid "New path" +msgstr "Yeni yol" + +#: ../app/core/core-enums.c:921 +msgid "Path modification" +msgstr "Yol değişikliği" + +#: ../app/core/core-enums.c:922 +msgid "Reposition path" +msgstr "Yolu yeniden konumlandır" + +#: ../app/core/core-enums.c:924 +msgid "Rigor floating selection" +msgstr "Özenli hareketli seçim" + +#: ../app/core/core-enums.c:925 +msgid "Relax floating selection" +msgstr "Gevşek hareketli seçim" + +#: ../app/core/core-enums.c:928 ../app/paint/gimpink.c:95 +#: ../app/tools/gimpinktool.c:55 +msgid "Ink" +msgstr "Mürekkep" + +#: ../app/core/core-enums.c:929 +msgid "Select foreground" +msgstr "Önalanı seç" + +#: ../app/core/core-enums.c:932 +msgid "Not undoable" +msgstr "Geri alınabilir değil" + +#: ../app/core/core-enums.c:1196 +msgid "Composite" +msgstr "Birleşik" + +#: ../app/core/core-enums.c:1230 +msgid "Message" +msgstr "İleti" + +#: ../app/core/core-enums.c:1231 +msgid "Warning" +msgstr "Uyarı" + +#: ../app/core/core-enums.c:1232 +msgid "Error" +msgstr "Hata" + +#: ../app/core/core-enums.c:1260 +msgid "Ask what to do" +msgstr "Ne yapılacağını sor" + +#: ../app/core/core-enums.c:1261 +msgid "Keep embedded profile" +msgstr "Gömülü profili sakla" + +#: ../app/core/core-enums.c:1262 +msgid "Convert to RGB workspace" +msgstr "Çalışma alanını RGB'ye dönüştür" + +#: ../app/core/gimp-contexts.c:155 ../app/core/gimptooloptions.c:231 +#: ../app/gui/session.c:307 ../app/menus/menus.c:433 +#: ../app/widgets/gimpdevices.c:258 +#, c-format +msgid "Deleting \"%s\" failed: %s" +msgstr "\"%s\" silme başarısız oldu: %s" + +#: ../app/core/gimp-edit.c:190 ../app/core/gimp-edit.c:326 +msgid "Pasted Layer" +msgstr "Yapıştırılan Katman" + +#: ../app/core/gimp-edit.c:464 +msgid "Fill with Foreground Color" +msgstr "Önalan Rengi ile Doldur" + +#: ../app/core/gimp-edit.c:468 +msgid "Fill with Background Color" +msgstr "Artalan Rengi ile Doldur" + +#: ../app/core/gimp-edit.c:472 +msgid "Fill with White" +msgstr "Beyaz ile Doldur" + +#: ../app/core/gimp-edit.c:476 +msgid "Fill with Transparency" +msgstr "Şeffaf doldur" + +#: ../app/core/gimp-edit.c:480 +msgid "Fill with Pattern" +msgstr "Desen ile Doldur" + +#: ../app/core/gimp-edit.c:573 +msgid "Global Buffer" +msgstr "Genel Arabellek" + +#: ../app/core/gimp-gradients.c:61 +msgid "FG to BG (RGB)" +msgstr "Önplandan Arkaplana (RGB)" + +#: ../app/core/gimp-gradients.c:66 +msgid "FG to BG (HSV counter-clockwise)" +msgstr "ÖA'dan AA'ya (HSV saat yönünün tersi)" + +#: ../app/core/gimp-gradients.c:71 +msgid "FG to BG (HSV clockwise hue)" +msgstr "ÖA'dan AA'ya (HSV saat yönünde renk özü)" + +#: ../app/core/gimp-gradients.c:76 +msgid "FG to Transparent" +msgstr "Önplandan Şeffafa" + +#: ../app/core/gimp-user-install.c:153 +#, c-format +msgid "" +"It seems you have used GIMP %s before. GIMP will now migrate your user " +"settings to '%s'." +msgstr "" +"GIMP %s daha önce kullanmış görünüyorsunuz. GIMP şimdi kullanıcı " +"ayarlarınızı '%s'a aktaracak." + +#: ../app/core/gimp-user-install.c:158 +#, c-format +msgid "" +"It appears that you are using GIMP for the first time. GIMP will now create " +"a folder named '%s' and copy some files to it." +msgstr "" +"GIMP'i ilk kez kullanıyor görünüyorsunuz. GIMP şimdi '%s' adında yeni bir " +"dizin oluşturacak ve bazı dosyaları içine kopyalayacak." + +#: ../app/core/gimp-user-install.c:309 +#, c-format +msgid "Copying file '%s' from '%s'..." +msgstr "'%s' dosyası '%s'dan kopyalanıyor..." + +#: ../app/core/gimp-user-install.c:324 ../app/core/gimp-user-install.c:350 +#, c-format +msgid "Creating folder '%s'..." +msgstr "'%s' dizini oluşturuluyor..." + +#: ../app/core/gimp-user-install.c:335 ../app/core/gimp-user-install.c:361 +#, c-format +msgid "Cannot create folder '%s': %s" +msgstr "'%s' dizini oluşturulamadı: %s" + +#: ../app/core/gimp.c:543 +msgid "Initialization" +msgstr "Başlangıç Durumuna Getirme" + +#. register all internal procedures +#: ../app/core/gimp.c:618 +msgid "Internal Procedures" +msgstr "İçsel İşlemler" + +#. initialize the global parasite table +#: ../app/core/gimp.c:834 +msgid "Looking for data files" +msgstr "Veri dosyaları taranıyor" + +#: ../app/core/gimp.c:834 +msgid "Parasites" +msgstr "Parazitler" + +#. initialize the list of fonts +#: ../app/core/gimp.c:854 +msgid "Fonts (this may take a while)" +msgstr "Yazıyüzleri (bu biraz zaman alabilir)" + +#. initialize the module list +#: ../app/core/gimp.c:863 ../app/dialogs/preferences-dialog.c:2772 +msgid "Modules" +msgstr "Modüller" + +#: ../app/core/gimpbrush-load.c:177 +#, c-format +msgid "Could not read %d bytes from '%s': %s" +msgstr "%d sekiz ikil '%s'dan okunamadı: %s" + +#: ../app/core/gimpbrush-load.c:197 +#, c-format +msgid "Fatal parse error in brush file '%s': Width = 0." +msgstr "'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Genişlik = 0." + +#: ../app/core/gimpbrush-load.c:206 +#, c-format +msgid "Fatal parse error in brush file '%s': Height = 0." +msgstr "'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Yükseklik = 0." + +#: ../app/core/gimpbrush-load.c:215 +#, c-format +msgid "Fatal parse error in brush file '%s': Bytes = 0." +msgstr "'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Sekiz ikil = 0." + +#: ../app/core/gimpbrush-load.c:239 +#, c-format +msgid "Fatal parse error in brush file '%s': Unknown depth %d." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Bilinmeyen derinlik %d." + +#: ../app/core/gimpbrush-load.c:252 +#, c-format +msgid "Fatal parse error in brush file '%s': Unknown version %d." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Bilinmeyen sürüm %d." + +#: ../app/core/gimpbrush-load.c:268 ../app/core/gimpbrush-load.c:388 +#: ../app/core/gimpbrush-load.c:720 +#, c-format +msgid "Fatal parse error in brush file '%s': File appears truncated." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Dosya kesilmiş " +"görünüyor." + +#: ../app/core/gimpbrush-load.c:276 ../app/core/gimpbrushgenerated-load.c:128 +#: ../app/core/gimpbrushpipe-load.c:97 +#, c-format +msgid "Invalid UTF-8 string in brush file '%s'." +msgstr "'%s' fırça dosyası içinde geçersiz UTF-8 dizgisi." + +#: ../app/core/gimpbrush-load.c:283 ../app/core/gimpitem.c:505 +#: ../app/core/gimppattern-load.c:146 +#: ../app/dialogs/template-options-dialog.c:83 +#: ../app/tools/gimpvectortool.c:299 +msgid "Unnamed" +msgstr "Isimsiz" + +#: ../app/core/gimpbrush-load.c:377 +#, c-format +msgid "" +"Fatal parse error in brush file '%s': Unsupported brush depth %d\n" +"GIMP brushes must be GRAY or RGBA." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Desteklenmeyen fırça " +"derinliği %d\n" +"GIMP fırçaları GRİ ya da RGBA olmalı." + +#: ../app/core/gimpbrush-load.c:448 +#, c-format +msgid "" +"Fatal parse error in brush file '%s': unable to decode abr format version %d." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: abr biçimli %d sürüm " +"kod çözümü olanaksız." + +#: ../app/core/gimpbrush-load.c:615 +#, c-format +msgid "Fatal parse error in brush file '%s': Wide brushes are not supported." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Geniş fırçalar " +"desteklenmemiş." + +#: ../app/core/gimpbrushgenerated-load.c:87 +#, c-format +msgid "Fatal parse error in brush file '%s': Not a GIMP brush file." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Bir GIMP fırçası " +"dosyası değil." + +#: ../app/core/gimpbrushgenerated-load.c:104 +#, c-format +msgid "" +"Fatal parse error in brush file '%s': Unknown GIMP brush version in line %d." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: %d satırında bilinmeyen " +"GIMP fırçası sürümü." + +#: ../app/core/gimpbrushgenerated-load.c:150 +#, c-format +msgid "" +"Fatal parse error in brush file '%s': Unknown GIMP brush shape in line %d." +msgstr "" +"'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: %d satırında bilinmeyen " +"GIMP fırçası şekli." + +#: ../app/core/gimpbrushgenerated-load.c:226 +#, c-format +msgid "Line %d: %s" +msgstr "Satır %d: %s" + +#: ../app/core/gimpbrushgenerated-load.c:228 +#, c-format +msgid "File is truncated in line %d" +msgstr "Dosya %d satırında kesilmiş" + +#: ../app/core/gimpbrushgenerated-load.c:231 +#, c-format +msgid "Error while reading brush file '%s': %s" +msgstr "'%s' fırça dosyasını okurken hata: %s" + +#: ../app/core/gimpbrushpipe-load.c:113 ../app/core/gimpbrushpipe-load.c:133 +#: ../app/core/gimpbrushpipe-load.c:223 +#, c-format +msgid "Fatal parse error in brush file '%s': File is corrupt." +msgstr "'%s' fırça dosyası içinde ölümcül ayrıştırma hatası: Dosya bozulmuş." + +#: ../app/core/gimpchannel-select.c:60 +msgctxt "command" +msgid "Rectangle Select" +msgstr "Dikdörtgen Seçimi" + +#: ../app/core/gimpchannel-select.c:111 +msgctxt "command" +msgid "Ellipse Select" +msgstr "Eliptik Seçim" + +#: ../app/core/gimpchannel-select.c:165 +msgctxt "command" +msgid "Rounded Rectangle Select" +msgstr "Yuvarlatılmış Dikdörtgen Seçimi" + +#: ../app/core/gimpchannel-select.c:434 +msgid "Alpha to Selection" +msgstr "Alfadan Seçime" + +#: ../app/core/gimpchannel-select.c:472 +#, c-format +msgid "%s Channel to Selection" +msgstr "%s Kanalından Seçime" + +#: ../app/core/gimpchannel-select.c:520 ../app/tools/gimpfuzzyselecttool.c:80 +msgctxt "command" +msgid "Fuzzy Select" +msgstr "Bulanık Seçim" + +#: ../app/core/gimpchannel-select.c:567 +#: ../app/tools/gimpbycolorselecttool.c:82 +msgctxt "command" +msgid "Select by Color" +msgstr "Renk ile Seç" + +#: ../app/core/gimpchannel.c:257 +msgid "Channel" +msgstr "Kanal" + +#: ../app/core/gimpchannel.c:258 +msgid "Rename Channel" +msgstr "Kanalı Yeniden Adlandır" + +#: ../app/core/gimpchannel.c:259 +msgid "Move Channel" +msgstr "Kanalı Taşı" + +#: ../app/core/gimpchannel.c:260 +msgid "Scale Channel" +msgstr "Kanalı Boyutlandır" + +#: ../app/core/gimpchannel.c:261 +msgid "Resize Channel" +msgstr "Kanalın Boyutunu Değiştir" + +#: ../app/core/gimpchannel.c:262 +msgid "Flip Channel" +msgstr "Kanalı Döndür" + +#: ../app/core/gimpchannel.c:263 +msgid "Rotate Channel" +msgstr "Kanalı Çevir" + +#: ../app/core/gimpchannel.c:264 ../app/core/gimpdrawable-transform.c:886 +msgid "Transform Channel" +msgstr "Kanalı Dönüştür" + +#: ../app/core/gimpchannel.c:265 +msgid "Stroke Channel" +msgstr "Kanalı Darbele" + +#: ../app/core/gimpchannel.c:286 +msgid "Feather Channel" +msgstr "Yumuşatma Kanalı" + +#: ../app/core/gimpchannel.c:287 +msgid "Sharpen Channel" +msgstr "Kanalı Keskinleştir" + +#: ../app/core/gimpchannel.c:288 +msgid "Clear Channel" +msgstr "Kanalı Temizle" + +#: ../app/core/gimpchannel.c:289 +msgid "Fill Channel" +msgstr "Kanalı Doldur" + +#: ../app/core/gimpchannel.c:290 +msgid "Invert Channel" +msgstr "Kanalı Ters Çevir" + +#: ../app/core/gimpchannel.c:291 +msgid "Border Channel" +msgstr "Kanalın Kenarlarını Tanımla" + +#: ../app/core/gimpchannel.c:292 +msgid "Grow Channel" +msgstr "Kanalı Büyüt" + +#: ../app/core/gimpchannel.c:293 +msgid "Shrink Channel" +msgstr "Kanalı Küçült" + +#: ../app/core/gimpchannel.c:710 +#, c-format +msgid "Cannot stroke empty channel." +msgstr "Boş kanal darbelenemedi." + +#: ../app/core/gimpchannel.c:1631 +msgid "Set Channel Color" +msgstr "Kanal Rengini Belirle" + +#: ../app/core/gimpchannel.c:1679 +msgid "Set Channel Opacity" +msgstr "Kanal Opaklığını Belirle" + +#: ../app/core/gimpchannel.c:1747 ../app/core/gimpselection.c:520 +msgid "Selection Mask" +msgstr "Seçim Maskesi" + +#: ../app/core/gimpdata.c:526 ../app/core/gimptoolpresets.c:279 +#, c-format +msgid "Could not delete '%s': %s" +msgstr "'%s' dosyası açılamadı: %s" + +#: ../app/core/gimpdatafactory.c:415 ../app/core/gimpdatafactory.c:575 +#: ../app/core/gimpdatafactory.c:595 +#, c-format +msgid "" +"Failed to save data:\n" +"\n" +"%s" +msgstr "" +"Veri kaydetme başarısız:\n" +"\n" +"%s" + +#: ../app/core/gimpdatafactory.c:494 ../app/core/gimpdatafactory.c:497 +#: ../app/core/gimpitem.c:312 ../app/core/gimpitem.c:315 +msgid "copy" +msgstr "kopyala" + +#: ../app/core/gimpdatafactory.c:506 ../app/core/gimpitem.c:324 +#, c-format +msgid "%s copy" +msgstr "%s kopyası" + +#: ../app/core/gimpdatafactory.c:576 +msgid "You don't have a writable data folder configured." +msgstr "Yapılandırılmış, yazılabilir bir veri dizinine sahip değilsiniz." + +#: ../app/core/gimpdatafactory.c:751 +#, c-format +msgid "" +"Failed to load data:\n" +"\n" +"%s" +msgstr "" +"Veri yükleme başarısız:\n" +"\n" +"%s" + +#: ../app/core/gimpdrawable-blend.c:245 ../app/tools/gimpblendtool.c:107 +msgid "Blend" +msgstr "Harmanlama" + +#: ../app/core/gimpdrawable-brightness-contrast.c:76 +msgid "Brightness_Contrast" +msgstr "Parlaklık_Karşıtlık" + +#: ../app/core/gimpdrawable-brightness-contrast.c:87 +#: ../app/tools/gimpbrightnesscontrasttool.c:111 +msgid "Brightness-Contrast" +msgstr "Parlaklık-Kontrast" + +#: ../app/core/gimpdrawable-bucket-fill.c:91 +#, c-format +msgid "No patterns available for this operation." +msgstr "Bu işlem için hiç desen yok." + +#: ../app/core/gimpdrawable-bucket-fill.c:286 +msgctxt "command" +msgid "Bucket Fill" +msgstr "Kovadan Dolum" + +#: ../app/core/gimpdrawable-color-balance.c:80 +#: ../app/core/gimpdrawable-color-balance.c:90 +#: ../app/tools/gimpcolorbalancetool.c:94 +msgid "Color Balance" +msgstr "Renk Dengesi" + +#: ../app/core/gimpdrawable-colorize.c:73 +#: ../app/core/gimpdrawable-colorize.c:85 ../app/tools/gimpcolorizetool.c:90 +msgid "Colorize" +msgstr "Renklendir" + +#: ../app/core/gimpdrawable-curves.c:165 ../app/core/gimpdrawable-curves.c:182 +#: ../app/tools/gimpcurvestool.c:140 +msgid "Curves" +msgstr "Eğriler" + +#: ../app/core/gimpdrawable-desaturate.c:71 +#: ../app/core/gimpdrawable-desaturate.c:77 +#: ../app/tools/gimpdesaturatetool.c:77 +msgid "Desaturate" +msgstr "Solgunlaştır" + +#: ../app/core/gimpdrawable-equalize.c:53 +msgid "Equalize" +msgstr "Eşitle" + +#: ../app/core/gimpdrawable-foreground-extract.c:138 +msgid "Foreground Extraction" +msgstr "Önalan Çıkarma" + +#: ../app/core/gimpdrawable-hue-saturation.c:78 +#: ../app/tools/gimphuesaturationtool.c:102 +msgid "Hue-Saturation" +msgstr "Renk-Doygunluk" + +#: ../app/core/gimpdrawable-hue-saturation.c:88 +msgid "Hue_Saturation" +msgstr "Renk Özü_Doygunluk" + +#: ../app/core/gimpdrawable-invert.c:60 ../app/core/gimpdrawable-invert.c:68 +msgid "Invert" +msgstr "Tersine Çevir" + +#: ../app/core/gimpdrawable-levels.c:154 ../app/core/gimpdrawable-levels.c:170 +#: ../app/tools/gimplevelstool.c:150 +msgid "Levels" +msgstr "Seviyeler" + +#: ../app/core/gimpdrawable-offset.c:316 +msgid "Offset Drawable" +msgstr "Göreli Konum Çizilebilirliği" + +#: ../app/core/gimpdrawable-posterize.c:70 +#: ../app/core/gimpdrawable-posterize.c:80 ../app/tools/gimpposterizetool.c:84 +msgid "Posterize" +msgstr "Posterleştirme" + +#: ../app/core/gimpdrawable-stroke.c:324 +msgid "Render Stroke" +msgstr "Darbeli Tarama" + +#: ../app/core/gimpdrawable-threshold.c:71 +#: ../app/core/gimpdrawable-threshold.c:82 ../app/tools/gimpthresholdtool.c:90 +msgid "Threshold" +msgstr "Alt Sınır" + +#: ../app/core/gimpdrawable-transform.c:645 ../app/tools/gimpfliptool.c:116 +msgctxt "command" +msgid "Flip" +msgstr "Çevir" + +#: ../app/core/gimpdrawable-transform.c:745 ../app/tools/gimprotatetool.c:121 +msgctxt "command" +msgid "Rotate" +msgstr "Döndür" + +#: ../app/core/gimpdrawable-transform.c:884 ../app/core/gimplayer.c:255 +msgid "Transform Layer" +msgstr "Katmanı Dönüştür" + +#: ../app/core/gimpdrawable-transform.c:899 +msgid "Transformation" +msgstr "Dönüştürme" + +#: ../app/core/gimpgradient-load.c:71 ../app/core/gimpgradient-load.c:96 +#: ../app/core/gimpgradient-load.c:117 ../app/core/gimpgradient-load.c:168 +#, c-format +msgid "Fatal parse error in gradient file '%s': Read error in line %d." +msgstr "" +"'%s' renk geçişi dosyasında ölümcül ayrıştırma hatası: %d. satırda okuma " +"hatası." + +#: ../app/core/gimpgradient-load.c:81 +#, c-format +msgid "Fatal parse error in gradient file '%s': Not a GIMP gradient file." +msgstr "" +"'%s' renk geçişi dosyasında ölümcül ayrıştırma hatası: bir GIMP renk geçişi " +"dosyası değil." + +#: ../app/core/gimpgradient-load.c:109 +#, c-format +msgid "Invalid UTF-8 string in gradient file '%s'." +msgstr "'%s' GIMP gradyan dosyasında geçersiz UTF-8 dizge." + +#: ../app/core/gimpgradient-load.c:136 +#, c-format +msgid "Fatal parse error in gradient file '%s': File is corrupt in line %d." +msgstr "" +"'%s' renk geçişi dosyasında ölümcül ayrıştırma hatası: %d. satırdaki dosya " +"bozulmuş." + +#: ../app/core/gimpgradient-load.c:218 ../app/core/gimpgradient-load.c:229 +#, c-format +msgid "" +"Fatal parse error in gradient file '%s': Corrupt segment %d in line %d." +msgstr "" +"'%s' renk geçişi dosyasında ölümcül ayrıştırma hatası: %d kesimi %d. satırda " +"bozulmuş." + +#: ../app/core/gimpgradient-load.c:241 ../app/core/gimpgradient-load.c:255 +#, c-format +msgid "Gradient file '%s' is corrupt: Segments do not span the range 0-1." +msgstr "" +"'%s' renk geçişi dosyası bozulmuş: Kesimler 0-1 aralığında yayılmıyor." + +#: ../app/core/gimpgradient-load.c:334 +#, c-format +msgid "No linear gradients found in '%s'" +msgstr "'%s' içinde doğrusal renk geçişleri yok" + +#: ../app/core/gimpgradient-load.c:344 +#, c-format +msgid "Failed to import gradients from '%s': %s" +msgstr "'%s'dan renk geçişleri içe aktarma başarısız oldu: %s" + +#: ../app/core/gimpgrid.c:84 +msgid "Line style used for the grid." +msgstr "Izgara için kullanılan satır biçemi." + +#: ../app/core/gimpgrid.c:90 +msgid "The foreground color of the grid." +msgstr "Izgaranın önalan rengi." + +#: ../app/core/gimpgrid.c:95 +msgid "" +"The background color of the grid; only used in double dashed line style." +msgstr "" +"Izgaranın artlalan rengi; sadece iki çizgili satır biçemi içinde kullanıldı." + +#: ../app/core/gimpgrid.c:101 +msgid "Horizontal spacing of grid lines." +msgstr "Izgara satırlarının yatay aralık boşluğu." + +#: ../app/core/gimpgrid.c:106 +msgid "Vertical spacing of grid lines." +msgstr "Izgara satırlarının dikey aralık boşluğu." + +#: ../app/core/gimpgrid.c:115 +msgid "" +"Horizontal offset of the first grid line; this may be a negative number." +msgstr "İlk ızgara satırının yatay göreli konumu; negatif bir sayı olabilir." + +#: ../app/core/gimpgrid.c:122 +msgid "" +"Vertical offset of the first grid line; this may be a negative number." +msgstr "İlk ızgara satırının dikey göreli konumu; negatif bir sayı olabilir." + +#: ../app/core/gimpimage-arrange.c:143 +msgid "Arrange Objects" +msgstr "Nesneleri Hazırla" + +#: ../app/core/gimpimage-colormap.c:63 +msgid "Set Colormap" +msgstr "Renk Haritasını Ayarla" + +#: ../app/core/gimpimage-colormap.c:118 +msgid "Change Colormap entry" +msgstr "Renk Haritası girişini Değiştir" + +#: ../app/core/gimpimage-colormap.c:138 +msgid "Add Color to Colormap" +msgstr "Renk Haritasına Renk Ekle" + +#: ../app/core/gimpimage-convert.c:792 +#, c-format +msgid "Cannot convert image: palette is empty." +msgstr "Görüntü dönüştürülemedi: palet boş." + +#: ../app/core/gimpimage-convert.c:806 +msgid "Convert Image to RGB" +msgstr "Görüntüyü RGB'ye Dönüştür" + +#: ../app/core/gimpimage-convert.c:810 +msgid "Convert Image to Grayscale" +msgstr "Resmi Gri Ölçeğe Çevir" + +#: ../app/core/gimpimage-convert.c:814 +msgid "Convert Image to Indexed" +msgstr "Resmi İndisliye Çevir" + +#: ../app/core/gimpimage-convert.c:896 +msgid "Converting to indexed colors (stage 2)" +msgstr "Sıralanmış renklere dönüştürme (aşama 2)" + +#: ../app/core/gimpimage-convert.c:941 +msgid "Converting to indexed colors (stage 3)" +msgstr "Sıralanmış renklere dönüştürme (aşama 3)" + +#: ../app/core/gimpimage-crop.c:130 +msgctxt "command" +msgid "Crop Image" +msgstr "Görüntüyü Kırp" + +#: ../app/core/gimpimage-crop.c:133 ../app/core/gimpimage-resize.c:90 +msgid "Resize Image" +msgstr "Resim Boyutunu Değiştir" + +#: ../app/core/gimpimage-guides.c:51 +msgid "Add Horizontal Guide" +msgstr "Yatay Kılavuz Ekle" + +#: ../app/core/gimpimage-guides.c:74 +msgid "Add Vertical Guide" +msgstr "Dikey Kılavuz Ekle" + +#: ../app/core/gimpimage-guides.c:115 ../app/tools/gimpmovetool.c:564 +msgid "Remove Guide" +msgstr "Kılavuzu Sil" + +#: ../app/core/gimpimage-guides.c:140 +msgid "Move Guide" +msgstr "Kılavuzu Taşı" + +#: ../app/core/gimpimage-item-list.c:53 +msgid "Translate Items" +msgstr "Öğeleri Tercüme Et" + +#: ../app/core/gimpimage-item-list.c:80 +msgid "Flip Items" +msgstr "Öğeleri Çevir" + +#: ../app/core/gimpimage-item-list.c:107 +msgid "Rotate Items" +msgstr "Öğeleri Döndür" + +#: ../app/core/gimpimage-item-list.c:137 +msgid "Transform Items" +msgstr "Öğeleri Dönüştür" + +#: ../app/core/gimpimage-merge.c:102 ../app/core/gimpimage-merge.c:114 +msgid "Merge Visible Layers" +msgstr "Görünen Katmanları Birleştir" + +#: ../app/core/gimpimage-merge.c:165 +msgid "Flatten Image" +msgstr "Resmi Düzleştir" + +#: ../app/core/gimpimage-merge.c:214 +msgid "Merge Down" +msgstr "Aşağı Birleştir" + +#: ../app/core/gimpimage-merge.c:254 +msgid "Merge Visible Paths" +msgstr "Görünen Katmanları Birleştir" + +#: ../app/core/gimpimage-merge.c:289 +#, c-format +msgid "Not enough visible paths for a merge. There must be at least two." +msgstr "" +"Birleştirme için yeterli sayıda görünür katman yok. En az iki tane olmalıdır." + +#: ../app/core/gimpimage-quick-mask.c:82 +msgid "Enable Quick Mask" +msgstr "Hızlı Maskeyi Etkinleştir" + +#: ../app/core/gimpimage-quick-mask.c:132 +msgid "Disable Quick Mask" +msgstr "Hızlı Maskeyi Etkisizleştir" + +#: ../app/core/gimpimage-sample-points.c:53 +msgid "Add Sample Point" +msgstr "Örnek Nokta Ekle" + +#: ../app/core/gimpimage-sample-points.c:98 ../app/tools/gimpcolortool.c:429 +msgid "Remove Sample Point" +msgstr "Örnek Noktayı Kaldır" + +#: ../app/core/gimpimage-sample-points.c:135 +msgid "Move Sample Point" +msgstr "Örnek Noktayı Taşı" + +#: ../app/core/gimpimage-undo-push.c:863 +#, c-format +msgid "Can't undo %s" +msgstr "Geriye alınamıyor: %s" + +#: ../app/core/gimpimage.c:1506 +msgid "Change Image Resolution" +msgstr "Resim Çözünürlüğünü Değiştir" + +#: ../app/core/gimpimage.c:1550 +msgid "Change Image Unit" +msgstr "Resim Birimini Değiştir" + +#: ../app/core/gimpimage.c:2384 +msgid "Attach Parasite to Image" +msgstr "Görüntüye Parazit İliştir" + +#: ../app/core/gimpimage.c:2422 +msgid "Remove Parasite from Image" +msgstr "Resimdeki Paraziti Kaldır" + +#: ../app/core/gimpimage.c:2875 +msgid "Add Layer" +msgstr "Katman Ekle" + +#: ../app/core/gimpimage.c:2935 ../app/core/gimpimage.c:2948 +msgid "Remove Layer" +msgstr "Katmanı Sil" + +#: ../app/core/gimpimage.c:3092 +msgid "Layer cannot be raised higher." +msgstr "Katman daha fazla yükseltilemez." + +#: ../app/core/gimpimage.c:3097 +msgid "Raise Layer" +msgstr "Katmanı Yükselt" + +#: ../app/core/gimpimage.c:3116 +msgid "Layer cannot be lowered more." +msgstr "Katman daha fazla alçaltılamaz." + +#: ../app/core/gimpimage.c:3121 +msgid "Lower Layer" +msgstr "Katmanı Alçalt" + +#: ../app/core/gimpimage.c:3132 +msgid "Raise Layer to Top" +msgstr "Katmanı En Üste Çıkart" + +#: ../app/core/gimpimage.c:3147 +msgid "Lower Layer to Bottom" +msgstr "Katmanı En Alta İndir" + +#: ../app/core/gimpimage.c:3209 +msgid "Add Channel" +msgstr "Kanal Ekle" + +#: ../app/core/gimpimage.c:3252 ../app/core/gimpimage.c:3263 +msgid "Remove Channel" +msgstr "Kanal Sil" + +#: ../app/core/gimpimage.c:3312 +msgid "Channel cannot be raised higher." +msgstr "Kanal daha fazla yükseltilemez." + +#: ../app/core/gimpimage.c:3317 +msgid "Raise Channel" +msgstr "Kanalı Yükselt" + +#: ../app/core/gimpimage.c:3328 +msgid "Raise Channel to Top" +msgstr "Kanalı En Tepeye Yükselt" + +#: ../app/core/gimpimage.c:3348 +msgid "Channel cannot be lowered more." +msgstr "Kanal daha fazla alçaltılamaz." + +#: ../app/core/gimpimage.c:3353 +msgid "Lower Channel" +msgstr "Kanalı Alçalt" + +#: ../app/core/gimpimage.c:3368 +msgid "Lower Channel to Bottom" +msgstr "Kanalı En Alta İndir" + +#: ../app/core/gimpimage.c:3432 +msgid "Add Path" +msgstr "Yol Ekle" + +#: ../app/core/gimpimage.c:3476 +msgid "Remove Path" +msgstr "Yolu Sil" + +#: ../app/core/gimpimage.c:3522 +msgid "Path cannot be raised higher." +msgstr "Yol daha fazla yükseltilemez." + +#: ../app/core/gimpimage.c:3527 +msgid "Raise Path" +msgstr "Yolu Yükselt" + +#: ../app/core/gimpimage.c:3538 +msgid "Raise Path to Top" +msgstr "Yolu En Üste Çıkar" + +#: ../app/core/gimpimage.c:3557 +msgid "Path cannot be lowered more." +msgstr "Yol daha fazla alçaltılamaz." + +#: ../app/core/gimpimage.c:3562 +msgid "Lower Path" +msgstr "Yolu Alçalt" + +#: ../app/core/gimpimage.c:3577 +msgid "Lower Path to Bottom" +msgstr "Yolu En Alta İndir" + +#: ../app/core/gimpimagefile.c:528 ../app/dialogs/preferences-dialog.c:1727 +msgid "Folder" +msgstr "Dizin" + +#: ../app/core/gimpimagefile.c:533 +msgid "Special File" +msgstr "Özel Dosya" + +#: ../app/core/gimpimagefile.c:549 +msgid "Remote File" +msgstr "Uzak Dosya" + +#: ../app/core/gimpimagefile.c:568 +msgid "Click to create preview" +msgstr "Önizleme oluşturmak için tıklayın" + +#: ../app/core/gimpimagefile.c:574 +msgid "Loading preview..." +msgstr "Önizleme yükleniyor..." + +#: ../app/core/gimpimagefile.c:580 +msgid "Preview is out of date" +msgstr "Önizlemenin tarihi geçmiş" + +#: ../app/core/gimpimagefile.c:586 +msgid "Cannot create preview" +msgstr "Önizleme oluşturulamıyor" + +#: ../app/core/gimpimagefile.c:596 +msgid "(Preview may be out of date)" +msgstr "(Önizleme geçerliliğini yitirmiş olabilir)" + +#. pixel size +#: ../app/core/gimpimagefile.c:605 ../app/widgets/gimpimagepropview.c:446 +#: ../app/widgets/gimpsizebox.c:438 ../app/widgets/gimptemplateeditor.c:566 +#, c-format +msgid "%d × %d pixel" +msgid_plural "%d × %d pixels" +msgstr[0] "%d x %d benek" + +#: ../app/core/gimpimagefile.c:628 ../app/display/gimpdisplayshell-title.c:325 +#, c-format +msgid "%d layer" +msgid_plural "%d layers" +msgstr[0] "%d katman" + +#: ../app/core/gimpimagefile.c:675 +#, c-format +msgid "Could not open thumbnail '%s': %s" +msgstr "Küçük görüntü '%s' açılamadı: %s" + +#: ../app/core/gimpitem.c:1138 +msgid "Attach Parasite" +msgstr "Parazit İlişkile" + +#: ../app/core/gimpitem.c:1148 +msgid "Attach Parasite to Item" +msgstr "Öğeye Parazit İliştir" + +#: ../app/core/gimpitem.c:1190 ../app/core/gimpitem.c:1197 +msgid "Remove Parasite from Item" +msgstr "Öğeden Paraziti Kaldır" + +#: ../app/core/gimplayer-floating-sel.c:99 +msgid "Remove Floating Selection" +msgstr "Yüzen Seçimi Sil" + +#: ../app/core/gimplayer-floating-sel.c:130 +msgid "Anchor Floating Selection" +msgstr "Yüzen Seçimi Çıpala" + +#: ../app/core/gimplayer-floating-sel.c:205 ../app/core/gimplayer.c:643 +#, c-format +msgid "" +"Cannot create a new layer from the floating selection because it belongs to " +"a layer mask or channel." +msgstr "" +"Yüzen seçimden yeni bir katman oluşturulamıyor çünkü bu bir katman maskesine " +"ya da kanala ait." + +#: ../app/core/gimplayer-floating-sel.c:211 +msgid "Floating Selection to Layer" +msgstr "Katmana Yüzen Seçim" + +#: ../app/core/gimplayer.c:248 ../app/tools/tools-enums.c:209 +msgid "Layer" +msgstr "Katman" + +#: ../app/core/gimplayer.c:249 +msgid "Rename Layer" +msgstr "Katmanın Adını Değiştir" + +#: ../app/core/gimplayer.c:250 ../app/pdb/layer-cmds.c:437 +#: ../app/pdb/layer-cmds.c:473 +msgid "Move Layer" +msgstr "Katmanı Taşı" + +#: ../app/core/gimplayer.c:252 +msgid "Resize Layer" +msgstr "Katman Boyutunu Değiştir" + +#: ../app/core/gimplayer.c:253 +msgid "Flip Layer" +msgstr "Katmanı Çevir" + +#: ../app/core/gimplayer.c:254 +msgid "Rotate Layer" +msgstr "Katmanı Döndür" + +#: ../app/core/gimplayer.c:405 ../app/core/gimplayer.c:1330 +#: ../app/core/gimplayermask.c:208 +#, c-format +msgid "%s mask" +msgstr "%s maskesi" + +#: ../app/core/gimplayer.c:446 +#, c-format +msgid "" +"Floating Selection\n" +"(%s)" +msgstr "" +"Yüzen Seçim\n" +"(%s)" + +#: ../app/core/gimplayer.c:1266 +#, c-format +msgid "Unable to add a layer mask since the layer already has one." +msgstr "" +"Katmanın zaten bir maskesi olduğundan bir katman maskesi eklemek olanaksız." + +#: ../app/core/gimplayer.c:1277 +#, c-format +msgid "Cannot add layer mask of different dimensions than specified layer." +msgstr "" +"Belirlenmiş katman hariç farklı boyutlardaki katman maskesi eklenemiyor." + +#: ../app/core/gimplayer.c:1385 +msgid "Transfer Alpha to Mask" +msgstr "Görünürü Maskeye Aktar" + +#: ../app/core/gimplayer.c:1557 ../app/core/gimplayermask.c:235 +msgid "Apply Layer Mask" +msgstr "Katman Maskesini Uygula" + +#: ../app/core/gimplayer.c:1558 +msgid "Delete Layer Mask" +msgstr "Katman Maskesini Sil" + +#: ../app/core/gimplayer.c:1670 +msgid "Add Alpha Channel" +msgstr "Alfa Kanalı Ekle" + +#: ../app/core/gimplayer.c:1724 +msgid "Remove Alpha Channel" +msgstr "Görünür Kanalını Kaldır" + +#: ../app/core/gimplayer.c:1746 +msgid "Layer to Image Size" +msgstr "Katmandan Görüntü Boyutuna" + +#: ../app/core/gimplayermask.c:105 +msgid "Move Layer Mask" +msgstr "Katman Maskesini Taşı" + +#. reject renaming, layer masks are always named " mask" +#: ../app/core/gimplayermask.c:160 +#, c-format +msgid "Cannot rename layer masks." +msgstr "Katman maskeleri yeniden adlandırılamıyor." + +#: ../app/core/gimplayermask.c:303 +msgid "Show Layer Mask" +msgstr "Katman Maskesini Göster" + +#: ../app/core/gimppalette-import.c:428 +#, c-format +msgid "Index %d" +msgstr "İçerik %d" + +#: ../app/core/gimppalette-import.c:532 +#, c-format +msgid "Unknown type of palette file: %s" +msgstr "Bilinmeyen palet dosyası tipi: %s" + +#: ../app/core/gimppalette-load.c:85 ../app/core/gimppalette-load.c:110 +#: ../app/core/gimppalette-load.c:131 ../app/core/gimppalette-load.c:160 +#: ../app/core/gimppalette-load.c:236 +#, c-format +msgid "Fatal parse error in palette file '%s': Read error in line %d." +msgstr "" +"'%s' palet dosyası içinde ölümcül ayrıştırma hatası: %d. satırda okuma " +"hatası." + +#: ../app/core/gimppalette-load.c:95 +#, c-format +msgid "Fatal parse error in palette file '%s': Missing magic header." +msgstr "" +"'%s' palet dosyası içinde ölümcül ayrıştırma hatası: Kayıp sihirli sayfa " +"başlığı." + +#: ../app/core/gimppalette-load.c:123 +#, c-format +msgid "Invalid UTF-8 string in palette file '%s'" +msgstr "'%s' palet dosyası içinde geçersiz UTF-8 dizgisi" + +#: ../app/core/gimppalette-load.c:147 +#, c-format +msgid "" +"Reading palette file '%s': Invalid number of columns in line %d. Using " +"default value." +msgstr "" +"'%s' palet dosyası okunuyor: %d. satır içindeki sütunların sayısı geçersiz. " +"Öntanımlı değer kullanılıyor." + +#: ../app/core/gimppalette-load.c:183 +#, c-format +msgid "Reading palette file '%s': Missing RED component in line %d." +msgstr "'%s' palet dosyası okunuyor: %d. satırda KIRMIZI bileşen kayıp." + +#: ../app/core/gimppalette-load.c:191 +#, c-format +msgid "Reading palette file '%s': Missing GREEN component in line %d." +msgstr "'%s' palet dosyası okunuyor: %d. satırda YEŞİL bileşen kayıp." + +#: ../app/core/gimppalette-load.c:199 +#, c-format +msgid "Reading palette file '%s': Missing BLUE component in line %d." +msgstr "'%s' palet dosyası okunuyor: %d. satırda MAVİ bileşen kayıp." + +#: ../app/core/gimppalette-load.c:209 +#, c-format +msgid "Reading palette file '%s': RGB value out of range in line %d." +msgstr "'%s' palet dosyası okunuyor: %d. satırda RGB değeri erim dışı." + +#: ../app/core/gimppattern-load.c:85 ../app/core/gimppattern-load.c:131 +#: ../app/core/gimppattern-load.c:162 +#, c-format +msgid "Fatal parse error in pattern file '%s': File appears truncated." +msgstr "" +"'%s' desen dosyası içinde ölümcül ayrıştırma hatası: Dosya kesilmiş " +"görünüyor." + +#: ../app/core/gimppattern-load.c:104 +#, c-format +msgid "" +"Fatal parse error in pattern file '%s': Unknown pattern format version %d." +msgstr "" +"'%s' desen dosyası içinde ölümcül ayrıştırma hatası: Bilinmeyen desen biçimi " +"%d sürümü." + +#: ../app/core/gimppattern-load.c:114 +#, c-format +msgid "" +"Fatal parse error in pattern file '%s: Unsupported pattern depth %d.\n" +"GIMP Patterns must be GRAY or RGB." +msgstr "" +"'%s' desen dosyası içinde ölümcül ayrıştırma hatası: Desteklenmemiş desen " +"derinliği %d.\n" +"GIMP Desenleri GRİ ya da RGB olmalı." + +#: ../app/core/gimppattern-load.c:139 +#, c-format +msgid "Invalid UTF-8 string in pattern file '%s'." +msgstr "'%s' desen dosyası içinde geçersiz UTF-8 dizgisi." + +#: ../app/core/gimppdbprogress.c:288 ../app/widgets/gimppdbdialog.c:352 +#, c-format +msgid "" +"Unable to run %s callback. The corresponding plug-in may have crashed." +msgstr "" +"%s geri çağırmasını çalıştırmak olanaksız. İlgili uyumlu ek çökmüş olabilir." + +#: ../app/core/gimpprogress.c:107 ../app/core/gimpprogress.c:154 +msgid "Please wait" +msgstr "Lütfen bekleyin" + +#: ../app/core/gimpselection.c:150 ../app/tools/gimpeditselectiontool.c:240 +msgid "Move Selection" +msgstr "Seçimi Taşı" + +#: ../app/core/gimpselection.c:168 +msgid "Sharpen Selection" +msgstr "Seçimi Keskinleştir" + +#: ../app/core/gimpselection.c:169 +msgid "Select None" +msgstr "Hiçbirisini Seçme" + +#: ../app/core/gimpselection.c:170 +msgid "Select All" +msgstr "Tümünü Seç" + +#: ../app/core/gimpselection.c:171 +msgid "Invert Selection" +msgstr "Seçimi Tersine Çevir" + +#: ../app/core/gimpselection.c:275 +#, c-format +msgid "There is no selection to stroke." +msgstr "Darbelenecek seçim yok." + +#: ../app/core/gimpselection.c:640 +#, c-format +msgid "Unable to cut or copy because the selected region is empty." +msgstr "Kesme veya kopyalama yapılamaz çünkü seçili alan boş." + +#: ../app/core/gimpselection.c:814 +#, c-format +msgid "Cannot float selection because the selected region is empty." +msgstr "Seçim yüzdürülemez çünkü seçili alan boş." + +#: ../app/core/gimpselection.c:821 +msgid "Float Selection" +msgstr "Seçimi Yüzdür" + +#: ../app/core/gimpselection.c:837 +msgid "Floated Layer" +msgstr "Yüzen Katman" + +#: ../app/core/gimpstrokeoptions.c:119 +msgid "" +"Convert a mitered join to a bevelled join if the miter would extend to a " +"distance of more than miter-limit * line-width from the actual join point." +msgstr "" +"Bir köşe girişi, eğer eğik, aktif giriş noktasındaki köşe sınırlayıcı * " +"satır genişliğinden daha uzakta ise, eğik girişe dönüştür." + +#: ../app/core/gimptemplate.c:106 +msgid "The unit used for coordinate display when not in dot-for-dot mode." +msgstr "" +"Nokta-için-nokta kipinde değilken, görüntülemeyi eşgüdümleme için " +"kullanılacak birim." + +#: ../app/core/gimptemplate.c:113 +msgid "The horizontal image resolution." +msgstr "Yatay görüntü çözünürlüğü." + +#: ../app/core/gimptemplate.c:119 +msgid "The vertical image resolution." +msgstr "Dikey resim çözünürlüğü." + +#: ../app/core/gimptemplate.c:405 ../app/widgets/widgets-enums.c:24 +msgid "Background" +msgstr "Arkaplan" + +#. pseudo unit +#: ../app/core/gimpunit.c:56 +msgid "pixel" +msgstr "piksel" + +#: ../app/core/gimpunit.c:56 ../app/tools/gimpmeasuretool.c:877 +#: ../app/tools/gimpmeasuretool.c:1020 ../app/tools/gimpmeasuretool.c:1076 +#: ../app/tools/gimpmeasuretool.c:1104 ../app/tools/gimppainttool.c:615 +msgid "pixels" +msgstr "piksel" + +#. standard units +#: ../app/core/gimpunit.c:59 +msgid "inch" +msgstr "inç" + +#: ../app/core/gimpunit.c:59 +msgid "inches" +msgstr "inç" + +#: ../app/core/gimpunit.c:60 +msgid "millimeter" +msgstr "milimetre" + +#: ../app/core/gimpunit.c:60 +msgid "millimeters" +msgstr "milimetre" + +#. professional units +#: ../app/core/gimpunit.c:63 +msgid "point" +msgstr "punto" + +#: ../app/core/gimpunit.c:63 +msgid "points" +msgstr "punto" + +#: ../app/core/gimpunit.c:64 +msgid "pica" +msgstr "pika" + +#: ../app/core/gimpunit.c:64 +msgid "picas" +msgstr "pika" + +#: ../app/core/gimpunit.c:71 +msgid "percent" +msgstr "yüzde" + +#: ../app/core/gimpunit.c:71 +msgid "plural|percent" +msgstr "yüzde" + +#: ../app/dialogs/about-dialog.c:123 +msgid "Visit the GIMP website" +msgstr "GIMP sitesini ziyaret edin" + +#. Translators: insert your names here, separated by newline +#: ../app/dialogs/about-dialog.c:128 +msgid "translator-credits" +msgstr "" +"Görkem Çetin\n" +"\n" +"Launchpad Contributions:\n" +" Angel Spy https://launchpad.net/~dilara.ekinci\n" +" Burak Yucesoy https://launchpad.net/~burakyucesoy\n" +" Caner Dağlı https://launchpad.net/~eldirr\n" +" Captain-G https://launchpad.net/~cihangiruluaslan\n" +" Egemen Özkan https://launchpad.net/~egozkan\n" +" EsatYuce https://launchpad.net/~esat\n" +" Görkem Çetin https://launchpad.net/~gorkem-kde\n" +" Hasan Yılmaz https://launchpad.net/~hasanyilmaz\n" +" Hasan İlingi https://launchpad.net/~hasanilingi1981-gmail\n" +" Jimi Green https://launchpad.net/~spevja\n" +" Kılıç Köken https://launchpad.net/~kilickoken\n" +" PolatArasan https://launchpad.net/~polat-talforum\n" +" Yiğit Ateş https://launchpad.net/~yigitates52\n" +" ergin üresin https://launchpad.net/~ergin012\n" +" erkuserdem https://launchpad.net/~erkuserdem\n" +" erokay https://launchpad.net/~erokayca\n" +" maydin95 https://launchpad.net/~mma-95\n" +" sagirbas https://launchpad.net/~soner-agirbas2\n" +" servetummetoglu https://launchpad.net/~servetummetoglu-hotmail" + +#: ../app/dialogs/about-dialog.c:529 +msgid "GIMP is brought to you by" +msgstr "GIMP'i sizlere sunanlar" + +#: ../app/dialogs/about-dialog.c:603 +msgid "This is an unstable development release." +msgstr "Bu, kararsız bir geliştirme yayımıdır." + +#: ../app/dialogs/channel-options-dialog.c:145 +msgid "Channel _name:" +msgstr "Kanal _adı:" + +#: ../app/dialogs/channel-options-dialog.c:174 +msgid "Initialize from _selection" +msgstr "_Seçilenden başla" + +#: ../app/dialogs/convert-dialog.c:125 +msgid "Indexed Color Conversion" +msgstr "İndisli Renk Dönüşümü" + +#: ../app/dialogs/convert-dialog.c:128 +msgid "Convert Image to Indexed Colors" +msgstr "Görüntüyü Sıralanmış Renklere Dönüştür" + +#: ../app/dialogs/convert-dialog.c:138 +msgid "C_onvert" +msgstr "D_önüştür" + +#: ../app/dialogs/convert-dialog.c:189 +msgid "_Maximum number of colors:" +msgstr "Renklerin a_zami sayısı:" + +#: ../app/dialogs/convert-dialog.c:216 +msgid "_Remove unused colors from colormap" +msgstr "Kullanılmayan renkleri renk haritasından _kaldır" + +#. dithering +#: ../app/dialogs/convert-dialog.c:232 ../app/tools/gimpblendoptions.c:247 +msgid "Dithering" +msgstr "Titreme" + +#: ../app/dialogs/convert-dialog.c:244 +msgid "Color _dithering:" +msgstr "Renk _titremesi:" + +#: ../app/dialogs/convert-dialog.c:259 +msgid "Enable dithering of _transparency" +msgstr "_Saydamlığın titremesini etkinleştir" + +#: ../app/dialogs/convert-dialog.c:286 +msgid "Converting to indexed colors" +msgstr "Sıralanmış renklere dönüştürülüyor" + +#: ../app/dialogs/convert-dialog.c:414 ../app/pdb/convert-cmds.c:150 +#, c-format +msgid "Cannot convert to a palette with more than 256 colors." +msgstr "256 renkten fazla bir palete dönüştürülemedi." + +#: ../app/dialogs/dialogs-constructors.c:184 ../app/gui/gui.c:161 +#: ../app/gui/gui-message.c:148 +msgid "GIMP Message" +msgstr "GIMP İletisi" + +#: ../app/dialogs/dialogs.c:142 +msgid "Devices" +msgstr "Aygıtlar" + +#: ../app/dialogs/dialogs.c:142 +msgid "Device Status" +msgstr "Aygıt Durumu" + +#: ../app/dialogs/dialogs.c:146 +msgid "Errors" +msgstr "Hatalar" + +#: ../app/dialogs/dialogs.c:171 +msgid "History" +msgstr "Geçmiş" + +#: ../app/dialogs/dialogs.c:173 +msgid "Image Templates" +msgstr "Resim Şablonları" + +#: ../app/dialogs/dialogs.c:194 +msgid "Histogram" +msgstr "Historgram" + +#: ../app/dialogs/dialogs.c:198 +msgid "Selection Editor" +msgstr "Seçim Düzenleyici" + +#: ../app/dialogs/dialogs.c:202 +msgid "Undo" +msgstr "Geri al" + +#: ../app/dialogs/dialogs.c:202 +msgid "Undo History" +msgstr "Geri Alma Geçmişi" + +#: ../app/dialogs/dialogs.c:212 +msgid "Navigation" +msgstr "Gezgin" + +#: ../app/dialogs/dialogs.c:212 +msgid "Display Navigation" +msgstr "Gezgini Görüntüle" + +#: ../app/dialogs/dialogs.c:218 +msgid "FG/BG" +msgstr "Önplan/Arkaplan" + +#: ../app/dialogs/dialogs.c:218 +msgid "FG/BG Color" +msgstr "Önplan/Arkaplan Rengi" + +#: ../app/dialogs/fade-dialog.c:110 +#, c-format +msgid "Fade %s" +msgstr "Soldur %s" + +#: ../app/dialogs/fade-dialog.c:123 +msgid "_Fade" +msgstr "_Soldur" + +#: ../app/dialogs/fade-dialog.c:157 +msgid "_Mode:" +msgstr "_Kip:" + +#: ../app/dialogs/fade-dialog.c:163 +msgid "_Opacity:" +msgstr "_Işık Geçirmezlik:" + +#: ../app/dialogs/file-open-dialog.c:262 +msgid "Open layers" +msgstr "Katmanları aç" + +#: ../app/dialogs/file-open-location-dialog.c:72 +msgid "Open Location" +msgstr "Yeri Aç" + +#: ../app/dialogs/file-open-location-dialog.c:110 +msgid "Enter location (URI):" +msgstr "Yeri gir (URI):" + +#: ../app/dialogs/file-save-dialog.c:302 ../app/dialogs/file-save-dialog.c:338 +msgid "" +"The given filename does not have any known file extension. Please enter a " +"known file extension or select a file format from the file format list." +msgstr "" +"Verilen dosya adı, bilinen bir dosya uzantısına sahip değil. Lütfen bilinen " +"bir dosya uzantısı girin veya dosya biçimi listesinden bir dosya biçimi " +"seçin." + +#: ../app/dialogs/file-save-dialog.c:371 +msgid "" +"Saving remote files needs to determine the file format from the file " +"extension. Please enter a file extension that matches the selected file " +"format or enter no file extension at all." +msgstr "" +"Uzak dosyalar kaydedilirken, dosya uzantısından dosya biçiminin " +"tanımlanmasına gerek duyuyor. Lütfen seçilmiş dosya biçimi ile eşleşen bir " +"dosya uzantısı girin ya da hiçbir dosya uzantısı girmeyin." + +#: ../app/dialogs/file-save-dialog.c:428 +msgid "Extension Mismatch" +msgstr "Uzantı Uyuşmazlığı" + +#: ../app/dialogs/file-save-dialog.c:444 +msgid "The given file extension does not match the chosen file type." +msgstr "Verilen dosya uzantısı seçilmiş dosya türü ile eşleşmiyor." + +#: ../app/dialogs/file-save-dialog.c:448 +msgid "Do you want to save the image using this name anyway?" +msgstr "" +"Görüntüyü her şeye rağmen bu adı kullanarak kaydetmek istiyor musunuz?" + +#: ../app/dialogs/grid-dialog.c:85 +msgid "Configure Grid" +msgstr "Kılavuzları Yapılandır" + +#: ../app/dialogs/grid-dialog.c:86 +msgid "Configure Image Grid" +msgstr "Görüntü Izgarasını Yapılandır" + +#: ../app/dialogs/image-merge-layers-dialog.c:64 +msgid "Merge Layers" +msgstr "Katmanları Birleştir" + +#: ../app/dialogs/image-merge-layers-dialog.c:66 +msgid "Layers Merge Options" +msgstr "Katman Birleştirme Seçenekleri" + +#: ../app/dialogs/image-merge-layers-dialog.c:72 +msgid "_Merge" +msgstr "_Birleştir" + +#: ../app/dialogs/image-merge-layers-dialog.c:91 +msgid "Final, Merged Layer should be:" +msgstr "Son, Birleşmiş katman:" + +#: ../app/dialogs/image-merge-layers-dialog.c:95 +msgid "Expanded as necessary" +msgstr "Gerektiği gibi genişletilmeli" + +#: ../app/dialogs/image-merge-layers-dialog.c:98 +msgid "Clipped to image" +msgstr "Resim boyunda kesilmeli" + +#: ../app/dialogs/image-merge-layers-dialog.c:101 +msgid "Clipped to bottom layer" +msgstr "En alt katman boyunda kesilmeli" + +#: ../app/dialogs/image-merge-layers-dialog.c:109 +msgid "_Discard invisible layers" +msgstr "Görünmeyen katmanları _at" + +#: ../app/dialogs/image-new-dialog.c:96 +msgid "Create a New Image" +msgstr "Yeni Bir Resim Oluştur" + +#: ../app/dialogs/image-new-dialog.c:144 +#: ../app/dialogs/preferences-dialog.c:2021 +msgid "_Template:" +msgstr "Ş_ablon:" + +#: ../app/dialogs/image-new-dialog.c:299 +msgid "Confirm Image Size" +msgstr "Resim Boyutunu Doğrula" + +#: ../app/dialogs/image-new-dialog.c:321 +#: ../app/dialogs/image-scale-dialog.c:239 +#, c-format +msgid "You are trying to create an image with a size of %s." +msgstr "%s boyutunda bir görüntü oluşturmayı deniyorsunuz." + +#: ../app/dialogs/image-new-dialog.c:328 +#, c-format +msgid "" +"An image of the chosen size will use more memory than what is configured as " +"\"Maximum Image Size\" in the Preferences dialog (currently %s)." +msgstr "" +"Seçilmiş boyuttaki bir görüntü, Yeğlenenler kutusundaki \"Azama Görüntü " +"Boyutu\" olan yapılandırmadan daha çok bellek kullanacak (şimdiki %s)." + +#: ../app/dialogs/image-properties-dialog.c:60 +#: ../app/dialogs/image-properties-dialog.c:63 +msgid "Image Properties" +msgstr "Resim Özellikleri" + +#: ../app/dialogs/image-properties-dialog.c:84 +msgid "Properties" +msgstr "Özellikler" + +#: ../app/dialogs/image-properties-dialog.c:89 +msgid "Color Profile" +msgstr "Renk Profili" + +#: ../app/dialogs/image-properties-dialog.c:94 +msgid "Comment" +msgstr "Yorum" + +#: ../app/dialogs/image-scale-dialog.c:111 +msgctxt "dialog-title" +msgid "Scale Image" +msgstr "Görüntüyü Ölçekle" + +#: ../app/dialogs/image-scale-dialog.c:205 +msgid "Confirm Scaling" +msgstr "Ölçeklemeyi Onayla" + +#: ../app/dialogs/image-scale-dialog.c:245 +#, c-format +msgid "" +"Scaling the image to the chosen size will make it use more memory than what " +"is configured as \"Maximum Image Size\" in the Preferences dialog (currently " +"%s)." +msgstr "" +"Seçilmiş boyuttaki bir görüntü, Yeğlenenler kutusundaki \"Azama Görüntü " +"Boyutu\" olan yapılandırmadan daha çok bellek kullanılmasını sağlayacak " +"(şimdiki %s)." + +#: ../app/dialogs/image-scale-dialog.c:260 +msgid "" +"Scaling the image to the chosen size will shrink some layers completely away." +msgstr "" +"İmajı seçilen boyuta ölçeklemek bazı katmanları tamamen alakasız şekilde " +"küçültecek." + +#: ../app/dialogs/image-scale-dialog.c:264 +msgid "Is this what you want to do?" +msgstr "Yapmak istediğiniz şey bu mu?" + +#: ../app/dialogs/keyboard-shortcuts-dialog.c:49 +msgid "Configure Keyboard Shortcuts" +msgstr "Klavye Kısayollarını Yapılandır" + +#: ../app/dialogs/keyboard-shortcuts-dialog.c:73 +msgid "" +"To edit a shortcut key, click on the corresponding row and type a new " +"accelerator, or press backspace to clear." +msgstr "" +"İstediğiniz bir kısayol tuşunu değiştirmek için, uygun satıra tıklayın ve " +"yeni hızlandırıcıyı tuşlayın, ya da temizlemek için \"Backspace\" tuşunu " +"kullanın." + +#: ../app/dialogs/keyboard-shortcuts-dialog.c:81 +msgid "S_ave keyboard shortcuts on exit" +msgstr "Çıkışta klavye kısayollarını _kaydet" + +#: ../app/dialogs/layer-add-mask-dialog.c:83 +msgid "Add a Mask to the Layer" +msgstr "Katmana Maske Ekle" + +#: ../app/dialogs/layer-add-mask-dialog.c:110 +msgid "Initialize Layer Mask to:" +msgstr "İlklendirilen Maske:" + +#: ../app/dialogs/layer-add-mask-dialog.c:138 +msgid "In_vert mask" +msgstr "Maskeyi _Tersine Çevir" + +#: ../app/dialogs/layer-options-dialog.c:125 +msgid "Layer _name:" +msgstr "Katman _adı:" + +#. The size labels +#: ../app/dialogs/layer-options-dialog.c:139 +#: ../app/tools/gimpmeasuretool.c:1065 +msgid "Width:" +msgstr "Genişlik:" + +#: ../app/dialogs/layer-options-dialog.c:145 +#: ../app/tools/gimpmeasuretool.c:1093 +msgid "Height:" +msgstr "Yükseklik:" + +#: ../app/dialogs/layer-options-dialog.c:202 +msgid "Layer Fill Type" +msgstr "Katman Doldurma Tipi" + +#: ../app/dialogs/layer-options-dialog.c:217 +msgid "Set name from _text" +msgstr "_Metinden ad ayarla" + +#: ../app/dialogs/module-dialog.c:127 +msgid "Module Manager" +msgstr "Modül Düzenleyici" + +#: ../app/dialogs/module-dialog.c:150 +msgid "You will have to restart GIMP for the changes to take effect." +msgstr "Değişikliklerin geçerli olması için GIMP'i yeniden başlatmalısınız." + +#: ../app/dialogs/module-dialog.c:191 +msgid "Module" +msgstr "Birim" + +#: ../app/dialogs/module-dialog.c:464 +msgid "Only in memory" +msgstr "Sadece bellekte" + +#: ../app/dialogs/module-dialog.c:469 +msgid "No longer available" +msgstr "Artık kullanılır değil" + +#: ../app/dialogs/module-dialog.c:498 +msgid "Author:" +msgstr "Yazar:" + +#: ../app/dialogs/module-dialog.c:499 +msgid "Version:" +msgstr "Sürüm:" + +#: ../app/dialogs/module-dialog.c:500 +msgid "Date:" +msgstr "Tarih:" + +#: ../app/dialogs/module-dialog.c:501 +msgid "Copyright:" +msgstr "Telif hakkı:" + +#: ../app/dialogs/module-dialog.c:502 +msgid "Location:" +msgstr "Adres:" + +#: ../app/dialogs/offset-dialog.c:108 +msgid "Offset Layer" +msgstr "Göreli Konum Katmanı" + +#: ../app/dialogs/offset-dialog.c:110 +msgid "Offset Layer Mask" +msgstr "Göreli Konum Katman Maskesi" + +#: ../app/dialogs/offset-dialog.c:112 +msgid "Offset Channel" +msgstr "Göreli Konum Kanalı" + +#. The offset frame +#: ../app/dialogs/offset-dialog.c:118 ../app/dialogs/offset-dialog.c:152 +#: ../app/dialogs/resize-dialog.c:197 ../app/widgets/gimpgrideditor.c:276 +msgid "Offset" +msgstr "Ofset" + +#. offset, used as a verb +#: ../app/dialogs/offset-dialog.c:127 +msgid "_Offset" +msgstr "_Konum" + +#: ../app/dialogs/offset-dialog.c:184 ../app/dialogs/resize-dialog.c:226 +msgid "_X:" +msgstr "_X:" + +#: ../app/dialogs/offset-dialog.c:186 ../app/dialogs/resize-dialog.c:227 +msgid "_Y:" +msgstr "_Y:" + +#: ../app/dialogs/offset-dialog.c:213 +msgid "Offset by x/_2, y/2" +msgstr "x/_2, y/2 ile göreli konum" + +#. The edge behavior frame +#: ../app/dialogs/offset-dialog.c:222 +msgid "Edge Behavior" +msgstr "Kenar Davranışı" + +#: ../app/dialogs/offset-dialog.c:226 +msgid "_Wrap around" +msgstr "_Sarmala" + +#: ../app/dialogs/offset-dialog.c:229 +msgid "Fill with _background color" +msgstr "_Artalan rengi ile doldur" + +#: ../app/dialogs/offset-dialog.c:232 +msgid "Make _transparent" +msgstr "_Saydam yap" + +#: ../app/dialogs/palette-import-dialog.c:156 +msgid "Import a New Palette" +msgstr "Yeni bir Palet İçe Aktar" + +#: ../app/dialogs/palette-import-dialog.c:166 +msgid "_Import" +msgstr "İçe _Aktar" + +#. The "Source" frame +#: ../app/dialogs/palette-import-dialog.c:205 +msgid "Select Source" +msgstr "Kaynak Seç" + +#: ../app/dialogs/palette-import-dialog.c:227 +msgid "I_mage" +msgstr "G_örüntü" + +#: ../app/dialogs/palette-import-dialog.c:241 +msgid "Sample _Merged" +msgstr "_Birleştirilmiş Örnek" + +#: ../app/dialogs/palette-import-dialog.c:253 +msgid "_Selected Pixels only" +msgstr "Sadece _Seçilmiş Benekler" + +#: ../app/dialogs/palette-import-dialog.c:265 +msgid "Palette _file" +msgstr "Palet _dosyası" + +#. Palette file name entry +#: ../app/dialogs/palette-import-dialog.c:294 +msgid "Select Palette File" +msgstr "Palet Dosyasını Seç" + +#. The "Import" frame +#: ../app/dialogs/palette-import-dialog.c:305 +msgid "Import Options" +msgstr "Alma Seçenekleri" + +#: ../app/dialogs/palette-import-dialog.c:319 +msgid "New import" +msgstr "Yeni İçe Aktarma" + +#: ../app/dialogs/palette-import-dialog.c:321 +msgid "Palette _name:" +msgstr "Palet _adı:" + +#: ../app/dialogs/palette-import-dialog.c:327 +msgid "N_umber of colors:" +msgstr "Renklerin sa_yısı:" + +#: ../app/dialogs/palette-import-dialog.c:340 +msgid "C_olumns:" +msgstr "S_ütun:" + +#: ../app/dialogs/palette-import-dialog.c:352 +msgid "I_nterval:" +msgstr "A_ralık:" + +#. The "Preview" frame +#: ../app/dialogs/palette-import-dialog.c:363 +msgid "Preview" +msgstr "Önizleme" + +#: ../app/dialogs/palette-import-dialog.c:384 +msgid "The selected source contains no colors." +msgstr "Seçilmiş kaynak hiçbir renk içermiyor." + +#: ../app/dialogs/preferences-dialog.c:267 +msgid "Reset All Preferences" +msgstr "Tüm Yeğlenenleri Sıfırla" + +#: ../app/dialogs/preferences-dialog.c:285 +msgid "Do you really want to reset all preferences to default values?" +msgstr "Tüm yeğlenenleri öntanımlı değerlere getirmek istiyor musunuz?" + +#: ../app/dialogs/preferences-dialog.c:355 +msgid "" +"You will have to restart GIMP for the following changes to take effect:" +msgstr "" +"İzleyen değişikliklerin etkin olabilmesi için GIMP'i yeniden başlatmalısınız:" + +#: ../app/dialogs/preferences-dialog.c:500 +msgid "Configure Input Devices" +msgstr "Giriş Aygıtlarını Yapılandır" + +#: ../app/dialogs/preferences-dialog.c:577 +msgid "" +"Your keyboard shortcuts will be reset to default values the next time you " +"start GIMP." +msgstr "" +"Klavye kısayollarınız GIMP'in bir sonraki zaman yeniden başlatılmasında " +"öntanımlı değerlere getirilecek." + +#: ../app/dialogs/preferences-dialog.c:588 +msgid "Remove all Keyboard Shortcuts" +msgstr "Tüm Klavye Kısayollarını Kaldır" + +#: ../app/dialogs/preferences-dialog.c:610 +msgid "Do you really want to remove all keyboard shortcuts from all menus?" +msgstr "Tüm klavye kısayollarını bütün menülerden kaldırmak istiyor musunuz?" + +#: ../app/dialogs/preferences-dialog.c:651 +msgid "" +"Your window setup will be reset to default values the next time you start " +"GIMP." +msgstr "" +"Pencere düzeniniz GIMP'in sonraki başlangıcında öntanımlı değerlere " +"getirilecek." + +#: ../app/dialogs/preferences-dialog.c:686 +msgid "" +"Your input device settings will be reset to default values the next time you " +"start GIMP." +msgstr "" +"Girdi aygıtı ayarlarınız GIMP'in sonraki başlangıcında öntanımlı değerlere " +"getirilecek." + +#: ../app/dialogs/preferences-dialog.c:721 +msgid "" +"Your tool options will be reset to default values the next time you start " +"GIMP." +msgstr "" +"Alet seçenekleriniz GIMP'in sonraki başlangıcında öntanımlı değerlere " +"getirilecek." + +#: ../app/dialogs/preferences-dialog.c:1289 +msgid "Show _menubar" +msgstr "_Menü çubuğunu göster" + +#: ../app/dialogs/preferences-dialog.c:1293 +msgid "Show _rulers" +msgstr "_Cetveli göster" + +#: ../app/dialogs/preferences-dialog.c:1296 +msgid "Show scroll_bars" +msgstr "Ka_ydırma çubuğunu göster" + +#: ../app/dialogs/preferences-dialog.c:1299 +msgid "Show s_tatusbar" +msgstr "D_urum çubuğunu göster" + +#: ../app/dialogs/preferences-dialog.c:1307 +msgid "Show s_election" +msgstr "S_eçimi göster" + +#: ../app/dialogs/preferences-dialog.c:1310 +msgid "Show _layer boundary" +msgstr "Ka_tman sınırını göster" + +#: ../app/dialogs/preferences-dialog.c:1313 +msgid "Show _guides" +msgstr "K_ılavuzları göster" + +#: ../app/dialogs/preferences-dialog.c:1316 +msgid "Show gri_d" +msgstr "Kılavuzu _göster" + +#: ../app/dialogs/preferences-dialog.c:1322 +msgid "Canvas _padding mode:" +msgstr "Tuval _doldurma kipi:" + +#: ../app/dialogs/preferences-dialog.c:1327 +msgid "Custom p_adding color:" +msgstr "Tuval doldurma _rengi:" + +#: ../app/dialogs/preferences-dialog.c:1328 +msgid "Select Custom Canvas Padding Color" +msgstr "Özel Tuval Doldurma Rengi Seç" + +#: ../app/dialogs/preferences-dialog.c:1417 +msgid "Preferences" +msgstr "Tercihler" + +#: ../app/dialogs/preferences-dialog.c:1529 +#: ../app/dialogs/preferences-dialog.c:2780 +msgid "Environment" +msgstr "Çevre" + +#: ../app/dialogs/preferences-dialog.c:1543 +msgid "Resource Consumption" +msgstr "Kaynak Harcaması" + +#: ../app/dialogs/preferences-dialog.c:1553 +msgid "Minimal number of _undo levels:" +msgstr "_Geri alma düzeyinin en düşük sayısı:" + +#: ../app/dialogs/preferences-dialog.c:1556 +msgid "Maximum undo _memory:" +msgstr "Azami geri alma _belleği:" + +#: ../app/dialogs/preferences-dialog.c:1559 +msgid "Tile cache _size:" +msgstr "Önbellek b_oyutunu döşe:" + +#: ../app/dialogs/preferences-dialog.c:1562 +msgid "Maximum _new image size:" +msgstr "En büyük _yeni görüntü boyutu:" + +#: ../app/dialogs/preferences-dialog.c:1567 +msgid "Number of _processors to use:" +msgstr "Kullanılacak _işlemci sayısı:" + +#. Image Thumbnails +#: ../app/dialogs/preferences-dialog.c:1572 +msgid "Image Thumbnails" +msgstr "Görüntü Minyatürleri" + +#: ../app/dialogs/preferences-dialog.c:1577 +msgid "Size of _thumbnails:" +msgstr "_Minyatürlerin boyutu:" + +#: ../app/dialogs/preferences-dialog.c:1581 +msgid "Maximum _filesize for thumbnailing:" +msgstr "Minyatürler için en büyük dosya _boyutu:" + +#. File Saving +#: ../app/dialogs/preferences-dialog.c:1585 +msgid "Saving Images" +msgstr "Görüntüler Kaydediliyor" + +#: ../app/dialogs/preferences-dialog.c:1588 +msgid "Confirm closing of unsa_ved images" +msgstr "Kaydedilme_miş görüntülerin kapatılmasını doğrula" + +#: ../app/dialogs/preferences-dialog.c:1598 +msgid "Keep record of used files in the Recent Documents list" +msgstr "Açılan Son Belgeler listesindeki kullanılmış dosyaların kaydını tut" + +#: ../app/dialogs/preferences-dialog.c:1607 +msgid "User Interface" +msgstr "Kullanıcı Arayüzü" + +#: ../app/dialogs/preferences-dialog.c:1610 +msgid "Interface" +msgstr "Arayüz" + +#. Previews +#: ../app/dialogs/preferences-dialog.c:1617 +msgid "Previews" +msgstr "Önizlemeler" + +#: ../app/dialogs/preferences-dialog.c:1620 +msgid "_Enable layer & channel previews" +msgstr "_Katman ve kanal önizlemelerini etkinleştir" + +#: ../app/dialogs/preferences-dialog.c:1626 +msgid "_Default layer & channel preview size:" +msgstr "_Öntanımlı katman ve kanal önizleme boyutu:" + +#: ../app/dialogs/preferences-dialog.c:1629 +msgid "Na_vigation preview size:" +msgstr "Gezgin önizleme _boyutu:" + +#. Keyboard Shortcuts +#: ../app/dialogs/preferences-dialog.c:1633 +msgid "Keyboard Shortcuts" +msgstr "Klavye Kısayolları" + +#: ../app/dialogs/preferences-dialog.c:1637 +msgid "Show menu _mnemonics (access keys)" +msgstr "Menü _anımsatıcılarını göster (erişim tuşları)" + +#: ../app/dialogs/preferences-dialog.c:1640 +msgid "_Use dynamic keyboard shortcuts" +msgstr "Dinamik kla_vye kısayollarını kullan" + +#: ../app/dialogs/preferences-dialog.c:1644 +msgid "Configure _Keyboard Shortcuts..." +msgstr "Klavye kısayollarını _yapılandır..." + +#: ../app/dialogs/preferences-dialog.c:1651 +msgid "_Save keyboard shortcuts on exit" +msgstr "Çıkışta klavye kısayollarını kayde_t" + +#: ../app/dialogs/preferences-dialog.c:1655 +msgid "Save Keyboard Shortcuts _Now" +msgstr "Klavye Kısayollarını _Şimdi Kaydet" + +#: ../app/dialogs/preferences-dialog.c:1662 +msgid "_Reset Keyboard Shortcuts to Default Values" +msgstr "Klavye Kısayollarını Ö_ntanımlı Değerlere Getir" + +#: ../app/dialogs/preferences-dialog.c:1671 +msgid "Remove _All Keyboard Shortcuts" +msgstr "_Tüm Klavye Kısayollarını Kaldır" + +#: ../app/dialogs/preferences-dialog.c:1683 +#: ../app/dialogs/preferences-dialog.c:1722 +msgid "Theme" +msgstr "Temalar" + +#: ../app/dialogs/preferences-dialog.c:1692 +msgid "Select Theme" +msgstr "Tema Seç" + +#: ../app/dialogs/preferences-dialog.c:1774 +msgid "Reload C_urrent Theme" +msgstr "_Güncel Temayı Yeniden Yükle" + +#: ../app/dialogs/preferences-dialog.c:1786 +msgid "Help System" +msgstr "Yardım Sistemi" + +#. General +#: ../app/dialogs/preferences-dialog.c:1798 +#: ../app/dialogs/preferences-dialog.c:1892 +#: ../app/dialogs/preferences-dialog.c:2079 +#: ../app/widgets/gimpcontrollereditor.c:189 +msgid "General" +msgstr "Genel" + +#: ../app/dialogs/preferences-dialog.c:1801 +msgid "Show _tooltips" +msgstr "Araç _ipuçlarını göster" + +#: ../app/dialogs/preferences-dialog.c:1804 +msgid "Show help _buttons" +msgstr "_Yardım düğmelerini göster" + +#: ../app/dialogs/preferences-dialog.c:1817 +msgid "Use the online version" +msgstr "Çevrimiçi sürümü kullan" + +#: ../app/dialogs/preferences-dialog.c:1818 +msgid "Use a locally installed copy" +msgstr "Yerel olarak yüklenmiş bir kopya kullan" + +#: ../app/dialogs/preferences-dialog.c:1819 +msgid "User manual:" +msgstr "Kullanıcı el kitabı:" + +#: ../app/dialogs/preferences-dialog.c:1826 +msgid "There's a local installation of the user manual." +msgstr "Kullanıcı el kitabının yerel bir yüklenmişi var." + +#: ../app/dialogs/preferences-dialog.c:1831 +msgid "The user manual is not installed locally." +msgstr "Kullanıcı el kitabı yerel olarak yüklenmemiş." + +#. Help Browser +#: ../app/dialogs/preferences-dialog.c:1854 +msgid "Help Browser" +msgstr "Yardım Gezgini" + +#: ../app/dialogs/preferences-dialog.c:1858 +msgid "H_elp browser to use:" +msgstr "_Kullanılacak yardım gezgini:" + +#: ../app/dialogs/preferences-dialog.c:1863 +msgid "Web Browser" +msgstr "Web Tarayıcı" + +#: ../app/dialogs/preferences-dialog.c:1867 +msgid "_Web browser to use:" +msgstr "_Kullanılacak web tarayıcı:" + +#: ../app/dialogs/preferences-dialog.c:1895 +msgid "_Save tool options on exit" +msgstr "Çıkar_ken araç seçeneklerini kaydet" + +#: ../app/dialogs/preferences-dialog.c:1899 +msgid "Save Tool Options _Now" +msgstr "Araç Seçeneklerini _Şimdi Kaydet" + +#: ../app/dialogs/preferences-dialog.c:1906 +msgid "_Reset Saved Tool Options to Default Values" +msgstr "Kaydedilmiş Araç Seçeneklerini Öntanımlı Değerlere _Getir" + +#. Snapping Distance +#: ../app/dialogs/preferences-dialog.c:1916 +msgid "Guide & Grid Snapping" +msgstr "Kılavuz & Izgara Yanaştırması" + +#: ../app/dialogs/preferences-dialog.c:1921 +msgid "_Snap distance:" +msgstr "_Yanaştırma uzaklığı:" + +#: ../app/dialogs/preferences-dialog.c:1929 +msgid "Default _interpolation:" +msgstr "Öntanımlı _aradeğerleme:" + +#. Global Brush, Pattern, ... +#: ../app/dialogs/preferences-dialog.c:1936 +msgid "Paint Options Shared Between Tools" +msgstr "Araçlarla Paylaşılan Boyama Seçenekleri" + +#: ../app/dialogs/preferences-dialog.c:1949 +msgid "Move Tool" +msgstr "Taşıma Aracı" + +#: ../app/dialogs/preferences-dialog.c:1953 +msgid "Set layer or path as active" +msgstr "Katmanı veya yolu etkin olarak ayarla" + +#: ../app/dialogs/preferences-dialog.c:1966 ../app/widgets/gimptoolbox.c:633 +msgid "Toolbox" +msgstr "Araç kutusu" + +#. Appearance +#: ../app/dialogs/preferences-dialog.c:1978 +#: ../app/dialogs/preferences-dialog.c:2152 +#: ../app/widgets/gimpgrideditor.c:204 +msgid "Appearance" +msgstr "Görünüm" + +#: ../app/dialogs/preferences-dialog.c:1982 +msgid "Show _foreground & background color" +msgstr "_Önalan ve artalan rengini göster" + +#: ../app/dialogs/preferences-dialog.c:1986 +msgid "Show active _brush, pattern & gradient" +msgstr "Etkin _fırçayı, deseni ve renk geçişini göster" + +#: ../app/dialogs/preferences-dialog.c:1990 +msgid "Show active _image" +msgstr "Etkin _görüntüyü göster" + +#: ../app/dialogs/preferences-dialog.c:2003 +msgid "Default New Image" +msgstr "Öntanımlı Yeni Resim" + +#: ../app/dialogs/preferences-dialog.c:2006 +msgid "Default Image" +msgstr "Öntanımlı Resim" + +#: ../app/dialogs/preferences-dialog.c:2043 +msgid "Default Image Grid" +msgstr "Öntanımlı Resim Kılavuzu" + +#: ../app/dialogs/preferences-dialog.c:2046 +msgid "Default Grid" +msgstr "Öntanımlı Kılavuz" + +#: ../app/dialogs/preferences-dialog.c:2067 +msgid "Image Windows" +msgstr "Resim Pencereleri" + +#: ../app/dialogs/preferences-dialog.c:2082 +msgid "Use \"_Dot for dot\" by default" +msgstr "Öntanımlı olarak \"_Noktadan noktaya\" kullan" + +#: ../app/dialogs/preferences-dialog.c:2088 +msgid "Marching _ants speed:" +msgstr "Yürüyen _karıncaların hızı:" + +#. Zoom & Resize Behavior +#: ../app/dialogs/preferences-dialog.c:2092 +msgid "Zoom & Resize Behavior" +msgstr "Odaklama ve Boyutlama Davranışı" + +#: ../app/dialogs/preferences-dialog.c:2096 +msgid "Resize window on _zoom" +msgstr "_Yakınlaştırırken pencereyi yeniden boyulandır" + +#: ../app/dialogs/preferences-dialog.c:2099 +msgid "Resize window on image _size change" +msgstr "Görüntü _boyutu değiştiğinde pencereyi yeniden boyulandır" + +#: ../app/dialogs/preferences-dialog.c:2105 +msgid "Fit to window" +msgstr "Pencereye uydur" + +#: ../app/dialogs/preferences-dialog.c:2107 +msgid "Initial zoom _ratio:" +msgstr "İlk yakınlaştırma _oranı:" + +#. Space Bar +#: ../app/dialogs/preferences-dialog.c:2111 +msgid "Space Bar" +msgstr "Ara Çubuğu" + +#: ../app/dialogs/preferences-dialog.c:2117 +msgid "_While space bar is pressed:" +msgstr "Ara _çubuğuna basıldığında:" + +#. Mouse Pointers +#: ../app/dialogs/preferences-dialog.c:2121 +msgid "Mouse Pointers" +msgstr "Fare İmleçleri" + +#: ../app/dialogs/preferences-dialog.c:2125 +msgid "Show _brush outline" +msgstr "_Fırçanın ana çizgilerini göster" + +#: ../app/dialogs/preferences-dialog.c:2128 +msgid "Show pointer for paint _tools" +msgstr "Boyama _araçları için imleci göster" + +#: ../app/dialogs/preferences-dialog.c:2134 +msgid "Pointer _mode:" +msgstr "İmleç _kipi:" + +#: ../app/dialogs/preferences-dialog.c:2137 +msgid "Pointer re_ndering:" +msgstr "İmleç i_şlemesi:" + +#: ../app/dialogs/preferences-dialog.c:2149 +msgid "Image Window Appearance" +msgstr "Resim Penceresi Görünümü" + +#: ../app/dialogs/preferences-dialog.c:2160 +msgid "Default Appearance in Normal Mode" +msgstr "Normal Kipte Öntanımlı Görünüm" + +#: ../app/dialogs/preferences-dialog.c:2165 +msgid "Default Appearance in Fullscreen Mode" +msgstr "Tam Ekrandaki Öntanımlı Görünüm" + +#: ../app/dialogs/preferences-dialog.c:2174 +msgid "Image Title & Statusbar Format" +msgstr "Resim Başlığı ve Durum Çubuğu Biçimi" + +#: ../app/dialogs/preferences-dialog.c:2177 +msgid "Title & Status" +msgstr "Başlık & Durum" + +#: ../app/dialogs/preferences-dialog.c:2195 +msgid "Current format" +msgstr "Geçerli biçim" + +#: ../app/dialogs/preferences-dialog.c:2196 +msgid "Default format" +msgstr "Öntanımlı biçim" + +#: ../app/dialogs/preferences-dialog.c:2197 +msgid "Show zoom percentage" +msgstr "Odak yüzdesini göster" + +#: ../app/dialogs/preferences-dialog.c:2198 +msgid "Show zoom ratio" +msgstr "Odaklama oranını göster" + +#: ../app/dialogs/preferences-dialog.c:2199 +msgid "Show image size" +msgstr "Görüntü boyutunu göster" + +#: ../app/dialogs/preferences-dialog.c:2212 +msgid "Image Title Format" +msgstr "Resim Başlık Formatı" + +#: ../app/dialogs/preferences-dialog.c:2214 +msgid "Image Statusbar Format" +msgstr "Resim Durum Çubuğu Formatı" + +#: ../app/dialogs/preferences-dialog.c:2299 +msgid "Display" +msgstr "Görünüm" + +#: ../app/dialogs/preferences-dialog.c:2315 +msgid "_Check style:" +msgstr "_Denetleme biçemi:" + +#: ../app/dialogs/preferences-dialog.c:2318 +msgid "Check _size:" +msgstr "_Boyutu denetle:" + +#: ../app/dialogs/preferences-dialog.c:2321 +msgid "Monitor Resolution" +msgstr "Monitör Çözünürlüğü" + +#: ../app/dialogs/preferences-dialog.c:2325 +#: ../app/widgets/gimpcursorview.c:124 ../app/widgets/gimpgrideditor.c:269 +#: ../app/widgets/gimpgrideditor.c:301 +msgid "Pixels" +msgstr "Piksel" + +#: ../app/dialogs/preferences-dialog.c:2347 +#: ../app/widgets/gimpimagepropview.c:476 +msgid "ppi" +msgstr "ppi" + +#: ../app/dialogs/preferences-dialog.c:2363 +#, c-format +msgid "_Detect automatically (currently %d × %d ppi)" +msgstr "_Kendiliğinden bul (şimdiki %d × %d ppi)" + +#: ../app/dialogs/preferences-dialog.c:2383 +msgid "_Enter manually" +msgstr "_Elle gir" + +#: ../app/dialogs/preferences-dialog.c:2398 +msgid "C_alibrate..." +msgstr "İ_nce ayarlama..." + +#: ../app/dialogs/preferences-dialog.c:2421 +msgid "Color Management" +msgstr "Renk Yönetimi" + +#: ../app/dialogs/preferences-dialog.c:2441 +msgid "_RGB profile:" +msgstr "_RGB profili:" + +#: ../app/dialogs/preferences-dialog.c:2442 +msgid "Select RGB Color Profile" +msgstr "RGB Renk Profilini Seç" + +#: ../app/dialogs/preferences-dialog.c:2443 +msgid "_CMYK profile:" +msgstr "_CMYK profili:" + +#: ../app/dialogs/preferences-dialog.c:2444 +msgid "Select CMYK Color Profile" +msgstr "CMYK Renk Profilini Seç" + +#: ../app/dialogs/preferences-dialog.c:2445 +msgid "_Monitor profile:" +msgstr "_Monitör profili:" + +#: ../app/dialogs/preferences-dialog.c:2446 +msgid "Select Monitor Color Profile" +msgstr "Monitör Renk Profilini Seç" + +#: ../app/dialogs/preferences-dialog.c:2447 +msgid "_Print simulation profile:" +msgstr "Benzetim profilini _yazdır:" + +#: ../app/dialogs/preferences-dialog.c:2448 +msgid "Select Printer Color Profile" +msgstr "Yazıcı Renk Profilini Seç" + +#: ../app/dialogs/preferences-dialog.c:2459 +msgid "_Mode of operation:" +msgstr "İşlem _Kipi:" + +#: ../app/dialogs/preferences-dialog.c:2489 +msgid "_Try to use the system monitor profile" +msgstr "Sistem monitörü profilini kullanmayı _deneyin" + +#: ../app/dialogs/preferences-dialog.c:2499 +msgid "_Display rendering intent:" +msgstr "_Görüntü işleme amacı:" + +#: ../app/dialogs/preferences-dialog.c:2508 +msgid "_Softproof rendering intent:" +msgstr "_Ön deney yapma amacı:" + +#: ../app/dialogs/preferences-dialog.c:2521 +msgid "Mark out of gamut colors" +msgstr "Dizi renklerinin dışındakileri işaretle" + +#: ../app/dialogs/preferences-dialog.c:2526 +msgid "Select Warning Color" +msgstr "Uyarı Rengini Seç" + +#: ../app/dialogs/preferences-dialog.c:2539 +msgid "File Open behaviour:" +msgstr "Dosya Açma davranışı:" + +#: ../app/dialogs/preferences-dialog.c:2551 +msgid "Input Devices" +msgstr "Giriş Aygıtları" + +#. Extended Input Devices +#: ../app/dialogs/preferences-dialog.c:2561 +msgid "Extended Input Devices" +msgstr "Gelişmiş Giriş Aygıtları" + +#: ../app/dialogs/preferences-dialog.c:2565 +msgid "Configure E_xtended Input Devices..." +msgstr "G_elişmiş Girdi Aygıtlarını Yapılandır..." + +#: ../app/dialogs/preferences-dialog.c:2572 +msgid "_Save input device settings on exit" +msgstr "Çıkarken girdi aygıtı ayarlarını _kaydet" + +#: ../app/dialogs/preferences-dialog.c:2576 +msgid "Save Input Device Settings _Now" +msgstr "Girdi Aygıtı Ayarlarını _Şimdi Kaydet" + +#: ../app/dialogs/preferences-dialog.c:2583 +msgid "_Reset Saved Input Device Settings to Default Values" +msgstr "Kaydedilmiş Girdi Aygıtı Ayarlarını Öntanımlı Değerlere _Getir" + +#: ../app/dialogs/preferences-dialog.c:2598 +msgid "Additional Input Controllers" +msgstr "Ek Girdi Denetleyicileri" + +#: ../app/dialogs/preferences-dialog.c:2601 +msgid "Input Controllers" +msgstr "Girdi Denetleyicileri" + +#: ../app/dialogs/preferences-dialog.c:2617 +msgid "Window Management" +msgstr "Pencere Yönetimi" + +#: ../app/dialogs/preferences-dialog.c:2626 +msgid "Window Manager Hints" +msgstr "Pencere Yöneticisi İpuçları" + +#: ../app/dialogs/preferences-dialog.c:2632 +msgid "Hint for the _toolbox:" +msgstr "_Araç çubuğu ipuçları:" + +#: ../app/dialogs/preferences-dialog.c:2636 +msgid "Hint for other _docks:" +msgstr "Diğer _rıhtımlar için ipuçları:" + +#: ../app/dialogs/preferences-dialog.c:2641 +msgid "Toolbox and other docks are transient to the active image window" +msgstr "" +"Araç kutusu ve diğer rıhtımlar, etkin görüntü penceresi için geçici durumda" + +#: ../app/dialogs/preferences-dialog.c:2646 +msgid "Focus" +msgstr "Odaklama" + +#: ../app/dialogs/preferences-dialog.c:2650 +msgid "Activate the _focused image" +msgstr "_Odaklanılmış görüntüyü etkinleştir" + +#. Window Positions +#: ../app/dialogs/preferences-dialog.c:2654 +msgid "Window Positions" +msgstr "Pencere Boyutları" + +#: ../app/dialogs/preferences-dialog.c:2657 +msgid "_Save window positions on exit" +msgstr "Çıkarken pencere konumlarını _kaydet" + +#: ../app/dialogs/preferences-dialog.c:2661 +msgid "Save Window Positions _Now" +msgstr "Pencere Konumlarını _Şimdi Kaydet" + +#: ../app/dialogs/preferences-dialog.c:2668 +msgid "_Reset Saved Window Positions to Default Values" +msgstr "Kaydedilmiş Pencere Konumlarını Öntanımlı Değerlere Getir" + +#: ../app/dialogs/preferences-dialog.c:2683 +msgid "Folders" +msgstr "Dizinler" + +#: ../app/dialogs/preferences-dialog.c:2703 +msgid "Temporary folder:" +msgstr "Geçici dizin:" + +#: ../app/dialogs/preferences-dialog.c:2704 +msgid "Select Folder for Temporary Files" +msgstr "Geçici Dosyalar için Dizin Seç" + +#: ../app/dialogs/preferences-dialog.c:2708 +msgid "Swap folder:" +msgstr "Takas dizini:" + +#: ../app/dialogs/preferences-dialog.c:2709 +msgid "Select Swap Folder" +msgstr "Takas Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2744 +msgid "Brush Folders" +msgstr "Fırça Dizini" + +#: ../app/dialogs/preferences-dialog.c:2746 +msgid "Select Brush Folders" +msgstr "Fırça Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2748 +msgid "Pattern Folders" +msgstr "Desen Dizini" + +#: ../app/dialogs/preferences-dialog.c:2750 +msgid "Select Pattern Folders" +msgstr "Desen Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2752 +msgid "Palette Folders" +msgstr "Palet Dizini" + +#: ../app/dialogs/preferences-dialog.c:2754 +msgid "Select Palette Folders" +msgstr "Palet Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2756 +msgid "Gradient Folders" +msgstr "Gradyan Dizini" + +#: ../app/dialogs/preferences-dialog.c:2758 +msgid "Select Gradient Folders" +msgstr "Gradyan Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2760 +msgid "Font Folders" +msgstr "Yazıtipi Dizinleri" + +#: ../app/dialogs/preferences-dialog.c:2762 +msgid "Select Font Folders" +msgstr "Yazıtipi Dizinlerini Seç" + +#: ../app/dialogs/preferences-dialog.c:2764 +msgid "Plug-In Folders" +msgstr "Eklenti Dizini" + +#: ../app/dialogs/preferences-dialog.c:2766 +msgid "Select Plug-In Folders" +msgstr "Eklenti Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2768 +msgid "Scripts" +msgstr "Betikler" + +#: ../app/dialogs/preferences-dialog.c:2768 +msgid "Script-Fu Folders" +msgstr "Betik Dizini" + +#: ../app/dialogs/preferences-dialog.c:2770 +msgid "Select Script-Fu Folders" +msgstr "Betik Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2772 +msgid "Module Folders" +msgstr "Modül Dizini" + +#: ../app/dialogs/preferences-dialog.c:2774 +msgid "Select Module Folders" +msgstr "Modül Dizinini Seç" + +#: ../app/dialogs/preferences-dialog.c:2776 +msgid "Interpreters" +msgstr "Yorumlayıcılar" + +#: ../app/dialogs/preferences-dialog.c:2776 +msgid "Interpreter Folders" +msgstr "Yorumlayıcı Dizinleri" + +#: ../app/dialogs/preferences-dialog.c:2778 +msgid "Select Interpreter Folders" +msgstr "Yorumlayıcı Dizinlerini Seç" + +#: ../app/dialogs/preferences-dialog.c:2780 +msgid "Environment Folders" +msgstr "Çevresel Dizinler" + +#: ../app/dialogs/preferences-dialog.c:2782 +msgid "Select Environment Folders" +msgstr "Çevresel Dizinleri Seç" + +#: ../app/dialogs/preferences-dialog.c:2784 +msgid "Themes" +msgstr "Temalar" + +#: ../app/dialogs/preferences-dialog.c:2784 +msgid "Theme Folders" +msgstr "Tema Dizinleri" + +#: ../app/dialogs/preferences-dialog.c:2786 +msgid "Select Theme Folders" +msgstr "Tema Dizinlerini Seç" + +#: ../app/dialogs/print-size-dialog.c:138 +msgid "Print Size" +msgstr "Yazdırma Boyutu" + +#. the image size labels +#: ../app/dialogs/print-size-dialog.c:165 ../app/widgets/gimpsizebox.c:202 +#: ../app/widgets/gimptemplateeditor.c:161 +msgid "_Width:" +msgstr "_Genişlik:" + +#: ../app/dialogs/print-size-dialog.c:172 ../app/widgets/gimpsizebox.c:206 +#: ../app/widgets/gimptemplateeditor.c:168 +msgid "H_eight:" +msgstr "_Yükseklik:" + +#. the resolution labels +#: ../app/dialogs/print-size-dialog.c:222 ../app/widgets/gimpsizebox.c:264 +#: ../app/widgets/gimptemplateeditor.c:288 +msgid "_X resolution:" +msgstr "_X çözünürlüğü:" + +#: ../app/dialogs/print-size-dialog.c:229 ../app/widgets/gimpsizebox.c:267 +#: ../app/widgets/gimptemplateeditor.c:295 +msgid "_Y resolution:" +msgstr "_Y çözünürlüğü:" + +#: ../app/dialogs/print-size-dialog.c:240 ../app/widgets/gimpsizebox.c:260 +#: ../app/widgets/gimptemplateeditor.c:308 +#, c-format +msgid "pixels/%a" +msgstr "piksel/%a" + +#: ../app/dialogs/quit-dialog.c:106 +msgid "Quit GIMP" +msgstr "GIMP'ten Çık" + +#: ../app/dialogs/quit-dialog.c:106 +msgid "Close All Images" +msgstr "Tüm Görüntüleri Kapat" + +#: ../app/dialogs/quit-dialog.c:165 +msgid "If you quit GIMP now, these changes will be lost." +msgstr "GIMP'ten şimdi çıkarsanız, değişiklikler kaybedilecektir." + +#: ../app/dialogs/quit-dialog.c:168 +msgid "If you close these images now, changes will be lost." +msgstr "Eğer görüntüleri şimdi kapatırsanız, değişiklikler kaybedilecektir." + +#: ../app/dialogs/quit-dialog.c:216 +#, c-format +msgid "There is one image with unsaved changes:" +msgid_plural "There are %d images with unsaved changes:" +msgstr[0] "Değişikliklerin kaydedilmediği %d görüntü:" + +#: ../app/dialogs/quit-dialog.c:238 +msgid "_Discard Changes" +msgstr "_Değişiklikleri Sil" + +#: ../app/dialogs/resize-dialog.c:119 +msgid "Canvas Size" +msgstr "Tuval Boyutu" + +#: ../app/dialogs/resize-dialog.c:130 ../app/dialogs/scale-dialog.c:109 +msgid "Layer Size" +msgstr "Katman Boyutu" + +#: ../app/dialogs/resize-dialog.c:294 +msgid "Resize _layers:" +msgstr "Ka_tmanları yeniden boyutlandır:" + +#: ../app/dialogs/resolution-calibrate-dialog.c:70 +msgid "Calibrate Monitor Resolution" +msgstr "Ekran Çözünürlüğünü Kalibre Et" + +#: ../app/dialogs/resolution-calibrate-dialog.c:128 +msgid "Measure the rulers and enter their lengths:" +msgstr "Cetvelleri ölçülendir ve uzunluklarını gir:" + +#: ../app/dialogs/resolution-calibrate-dialog.c:153 +msgid "_Horizontal:" +msgstr "_Yatay:" + +#: ../app/dialogs/resolution-calibrate-dialog.c:158 +msgid "_Vertical:" +msgstr "_Dikey:" + +#. Image size frame +#: ../app/dialogs/scale-dialog.c:98 ../app/widgets/gimptemplateeditor.c:139 +msgid "Image Size" +msgstr "Resim Boyutu" + +#: ../app/dialogs/scale-dialog.c:175 +msgid "Quality" +msgstr "Kalite" + +#: ../app/dialogs/scale-dialog.c:187 +msgid "I_nterpolation:" +msgstr "_Aradeğerleme:" + +#: ../app/dialogs/scale-dialog.c:206 +msgid "" +"Indexed color layers are always scaled without interpolation. The chosen " +"interpolation type will affect channels and layer masks only." +msgstr "" +"Sıralanmış renk katmanları her zaman ara değerleme olmadan ölçeklenir. " +"Seçilmiş ara değerleme tipi sadece kanalları ve katman maskelerini etkiler." + +#: ../app/dialogs/stroke-dialog.c:102 +msgid "Choose Stroke Style" +msgstr "Darbeleme Yöntemini Seç" + +#: ../app/dialogs/stroke-dialog.c:225 +msgid "Paint tool:" +msgstr "Boyama aleti:" + +#: ../app/dialogs/stroke-dialog.c:246 +msgid "_Emulate brush dynamics" +msgstr "_Fırça hareketine benzet" + +#: ../app/dialogs/tips-dialog.c:89 +msgid "The GIMP tips file is empty!" +msgstr "GIMP ipucu dosyası boş!" + +#: ../app/dialogs/tips-dialog.c:93 +msgid "The GIMP tips file appears to be missing!" +msgstr "GIMP ipucu dosyası kayıp görünüyor!" + +#: ../app/dialogs/tips-dialog.c:95 +#, c-format +msgid "There should be a file called '%s'. Please check your installation." +msgstr "" +"Burada '%s' adında bir dosya olmalıydı. Lütfen kurulumunuzu denetleyin." + +#: ../app/dialogs/tips-dialog.c:101 +msgid "The GIMP tips file could not be parsed!" +msgstr "GIMP ipuçları dosyası okunamadı!" + +#: ../app/dialogs/tips-dialog.c:129 +msgid "GIMP Tip of the Day" +msgstr "Günün GIMP İpucu" + +#: ../app/dialogs/tips-dialog.c:135 +msgid "_Previous Tip" +msgstr "Ö_nceki İpucu" + +#: ../app/dialogs/tips-dialog.c:141 +msgid "_Next Tip" +msgstr "_Sonraki İpucu" + +#. a link to the related section in the user manual +#: ../app/dialogs/tips-dialog.c:194 +msgid "Learn more" +msgstr "Daha çok öğren" + +#. This is a special string to specify the language identifier to +#. look for in the gimp-tips.xml file. Please translate the C in it +#. according to the name of the po file used for gimp-tips.xml. +#. E.g. for the german translation, that would be "tips-locale:de". +#. +#: ../app/dialogs/tips-parser.c:188 +msgid "tips-locale:C" +msgstr "tips-locale:tr" + +#: ../app/dialogs/user-install-dialog.c:85 +msgid "GIMP User Installation" +msgstr "GIMP Kullanıcı Kurulumu" + +#: ../app/dialogs/user-install-dialog.c:94 +msgid "User installation failed!" +msgstr "Kullanıcı kurulumu başarısız!" + +#: ../app/dialogs/user-install-dialog.c:96 +msgid "The GIMP user installation failed; see the log for details." +msgstr "Kullanıcı kurulumu başarısız; ayrıntılar için günlüğe bakın." + +#: ../app/dialogs/user-install-dialog.c:99 +msgid "Installation Log" +msgstr "Kurulum Günlüğü" + +#: ../app/dialogs/vectors-export-dialog.c:55 +msgid "Export Path to SVG" +msgstr "SVG için Dışa Aktarma Yolu" + +#: ../app/dialogs/vectors-export-dialog.c:90 +msgid "Export the active path" +msgstr "Geçerli yolu taşı" + +#: ../app/dialogs/vectors-export-dialog.c:91 +msgid "Export all paths from this image" +msgstr "Bu görüntüden tüm yolları dışa aktar" + +#: ../app/dialogs/vectors-import-dialog.c:58 +msgid "Import Paths from SVG" +msgstr "SVG'den Yolları İçe Aktar" + +#: ../app/dialogs/vectors-import-dialog.c:92 +#: ../app/widgets/gimpprofilechooserdialog.c:132 +msgid "All files (*.*)" +msgstr "Tüm dosyalar (*.*)" + +#: ../app/dialogs/vectors-import-dialog.c:97 +msgid "Scalable SVG image (*.svg)" +msgstr "Ölçeklenebilir SVG görüntüsü (*.svg)" + +#: ../app/dialogs/vectors-import-dialog.c:108 +msgid "_Merge imported paths" +msgstr "İçe aktarılmış yolları _birleştir" + +#: ../app/dialogs/vectors-import-dialog.c:118 +msgid "_Scale imported paths to fit image" +msgstr "Görüntüye uyması için içe aktarılmış yolları _ölçekle" + +#: ../app/dialogs/vectors-options-dialog.c:121 +msgid "Path name:" +msgstr "Yol adı:" + +#: ../app/display/display-enums.c:24 +msgid "Tool icon" +msgstr "Alet simgesi" + +#: ../app/display/display-enums.c:25 +msgid "Tool icon with crosshair" +msgstr "Artı imleci ile alet simgesi" + +#: ../app/display/display-enums.c:26 +msgid "Crosshair only" +msgstr "Sadece Kesişik Yollar" + +#: ../app/display/display-enums.c:85 +msgid "From theme" +msgstr "Temadan" + +#: ../app/display/display-enums.c:86 +msgid "Light check color" +msgstr "Açık denetleme rengi" + +#: ../app/display/display-enums.c:87 +msgid "Dark check color" +msgstr "Koyu denetleme rengi" + +#: ../app/display/display-enums.c:88 +msgid "Custom color" +msgstr "Özel renk" + +#: ../app/display/display-enums.c:116 +msgid "No action" +msgstr "Eylem Yok" + +#: ../app/display/display-enums.c:117 +msgid "Pan view" +msgstr "Engin Görünüm" + +#: ../app/display/display-enums.c:118 +msgid "Switch to Move tool" +msgstr "Taşıma aracına çevir" + +#: ../app/display/display-enums.c:145 +msgid "quality|Low" +msgstr "quality|Düşük" + +#: ../app/display/display-enums.c:146 +msgid "quality|High" +msgstr "quality|Yüksek" + +#: ../app/display/gimpdisplay-handlers.c:160 +#, c-format +msgid "Image saved to '%s'" +msgstr "Görüntünün kaydedildiği yer, '%s'" + +#: ../app/display/gimpdisplayshell.c:1035 +msgid "Access the image menu" +msgstr "Görüntü menüsüne erişim" + +#: ../app/display/gimpdisplayshell.c:1140 +msgid "Zoom image when window size changes" +msgstr "Pencere boyutu değiştiğinde görüntüye yakınlaştır" + +#: ../app/display/gimpdisplayshell.c:1190 +msgid "Navigate the image display" +msgstr "Resim ekranında dolaş" + +#: ../app/display/gimpdisplayshell.c:1285 +#: ../app/display/gimpdisplayshell.c:1375 ../app/widgets/gimptoolbox.c:222 +msgid "Drop image files here to open them" +msgstr "Görüntü dosyalarını açmak için buraya bırakın" + +#: ../app/display/gimpdisplayshell-close.c:147 +#: ../app/display/gimpdisplayshell-close.c:224 +#, c-format +msgid "Close %s" +msgstr "'%s' Dosyası Kapatılsın mı?" + +#: ../app/display/gimpdisplayshell-close.c:159 +msgid "Do_n't Save" +msgstr "Ka_ydetme" + +#: ../app/display/gimpdisplayshell-close.c:231 +#, c-format +msgid "Save the changes to image '%s' before closing?" +msgstr "%s resmi üzerinde yapılan değişiklikleri kaydetmek istiyor musunuz?" + +#: ../app/display/gimpdisplayshell-close.c:254 +#, c-format +msgid "If you don't save the image, changes from the last hour will be lost." +msgid_plural "" +"If you don't save the image, changes from the last %d hours will be lost." +msgstr[0] "" +"Eğer görüntüyü kaydetmezseniz son %d saatteki değişiklikler kaybedilecek." + +#: ../app/display/gimpdisplayshell-close.c:264 +#, c-format +msgid "" +"If you don't save the image, changes from the last hour and %d minute will " +"be lost." +msgid_plural "" +"If you don't save the image, changes from the last hour and %d minutes will " +"be lost." +msgstr[0] "" +"Eğer görüntüyü kaydetmezseniz son bir saat ve %d dakikadaki değişiklikler " +"kaybedilecek." + +#: ../app/display/gimpdisplayshell-close.c:275 +#, c-format +msgid "" +"If you don't save the image, changes from the last minute will be lost." +msgid_plural "" +"If you don't save the image, changes from the last %d minutes will be lost." +msgstr[0] "" +"Eğer görüntüyü kaydetmezseniz son %d dakikadaki değişiklikler kaybedilecek." + +#: ../app/display/gimpdisplayshell-dnd.c:255 +#: ../app/display/gimpdisplayshell-dnd.c:587 +#: ../app/display/gimpdisplayshell-dnd.c:658 +msgid "Drop New Layer" +msgstr "Yeni Katmanı Düşür" + +#: ../app/display/gimpdisplayshell-dnd.c:301 +msgid "Drop New Path" +msgstr "Yeni Yolu Düşür" + +#: ../app/display/gimpdisplayshell-dnd.c:497 +#: ../app/widgets/gimplayertreeview.c:719 +msgid "Drop layers" +msgstr "Katmanları Düşür" + +#: ../app/display/gimpdisplayshell-dnd.c:648 +#: ../app/widgets/gimplayertreeview.c:801 ../app/widgets/gimptoolbox-dnd.c:361 +msgid "Dropped Buffer" +msgstr "Düşürülmüş Arabellek" + +#: ../app/display/gimpdisplayshell-filter-dialog.c:75 +msgid "Color Display Filters" +msgstr "Renk Görünüm Filtreleri" + +#: ../app/display/gimpdisplayshell-filter-dialog.c:78 +msgid "Configure Color Display Filters" +msgstr "Renk Görünüm Süzgeçlerini Yapılandır" + +#: ../app/display/gimpdisplayshell-layer-select.c:120 +msgid "Layer Select" +msgstr "Katman Seçimi" + +#: ../app/display/gimpdisplayshell-scale-dialog.c:114 +msgid "Zoom Ratio" +msgstr "Ölçek Oranı" + +#: ../app/display/gimpdisplayshell-scale-dialog.c:116 +msgid "Select Zoom Ratio" +msgstr "Ölçek Oranını Seçin" + +#: ../app/display/gimpdisplayshell-scale-dialog.c:159 +msgid "Zoom ratio:" +msgstr "Yakınlaştırma oranı:" + +#: ../app/display/gimpdisplayshell-scale-dialog.c:184 +msgid "Zoom:" +msgstr "Odakla:" + +#: ../app/display/gimpdisplayshell-title.c:233 +msgid "RGB-empty" +msgstr "RGB-boş" + +#: ../app/display/gimpdisplayshell-title.c:236 +msgid "grayscale-empty" +msgstr "griölçek-boş" + +#: ../app/display/gimpdisplayshell-title.c:236 +msgid "grayscale" +msgstr "griölçek" + +#: ../app/display/gimpdisplayshell-title.c:239 +msgid "indexed-empty" +msgstr "indisli-boş" + +#: ../app/display/gimpdisplayshell-title.c:239 +msgid "indexed" +msgstr "indisli" + +#: ../app/display/gimpdisplayshell-title.c:293 +msgid "(modified)" +msgstr "(değiştirildi)" + +#: ../app/display/gimpdisplayshell-title.c:298 +msgid "(clean)" +msgstr "(temiz)" + +#: ../app/display/gimpdisplayshell-title.c:346 +#: ../app/display/gimpdisplayshell-title.c:359 +#: ../app/widgets/gimpactiongroup.c:805 +msgid "(none)" +msgstr "(hiçbiri)" + +#: ../app/display/gimpstatusbar.c:364 +#, c-format +msgid "Cancel %s" +msgstr "Vazgeç %s" + +#: ../app/file/file-open.c:131 ../app/file/file-save.c:111 +#, c-format +msgid "Not a regular file" +msgstr "Normal bir dosya değil" + +#: ../app/file/file-open.c:183 +#, c-format +msgid "%s plug-in returned SUCCESS but did not return an image" +msgstr "%s eklentisi BAŞARIYLA dönüştü. Fakat bir resme dönüşmedi" + +#: ../app/file/file-open.c:194 +#, c-format +msgid "%s plug-In could not open image" +msgstr "%s eklentisi görüntüyü açamadı" + +#: ../app/file/file-open.c:455 +#, c-format +msgid "Image doesn't contain any layers" +msgstr "Görüntü hiçbir katman içermiyor" + +#: ../app/file/file-open.c:505 +#, c-format +msgid "Opening '%s' failed: %s" +msgstr "%s dosyasını açma başarısız oldu: %s" + +#: ../app/file/file-open.c:613 +msgid "" +"Color management has been disabled. It can be enabled again in the " +"Preferences dialog." +msgstr "" +"Renk yönetimi etkisizleştirilmiş. Yeğlenenler kutusundan yeniden " +"etkinleştirilebilir." + +#: ../app/file/file-procedure.c:200 +#, c-format +msgid "Unknown file type" +msgstr "Bilinmeyen dosya türü" + +#: ../app/file/file-save.c:192 +#, c-format +msgid "%s plug-in could not save image" +msgstr "%s eklentisi görüntüyü kaydedemedi" + +#: ../app/file/file-utils.c:74 +#, c-format +msgid "'%s:' is not a valid URI scheme" +msgstr "'%s:' geçerli bir adres düzeni değil" + +#: ../app/file/file-utils.c:88 ../app/file/file-utils.c:122 +#, c-format +msgid "Invalid character sequence in URI" +msgstr "Adreste geçersiz karakter sırası" + +#: ../app/gegl/gimpcurvesconfig.c:384 +#, c-format +msgid "not a GIMP Curves file" +msgstr "GIMP Eğrileri dosyası değil" + +#: ../app/gegl/gimpcurvesconfig.c:398 ../app/gegl/gimplevelsconfig.c:711 +#, c-format +msgid "parse error" +msgstr "ayrıştırma hatası" + +#: ../app/gegl/gimplevelsconfig.c:664 +#, c-format +msgid "not a GIMP Levels file" +msgstr "bir GIMP Düzeyleri dosyası değil" + +#. initialize the document history +#: ../app/gui/gui.c:426 +msgid "Documents" +msgstr "Belgeler" + +#: ../app/gui/splash.c:116 +msgid "GIMP Startup" +msgstr "GIMP Başlangıcı" + +#: ../app/paint/gimpairbrush.c:69 ../app/tools/gimpairbrushtool.c:54 +msgid "Airbrush" +msgstr "Sprey" + +#: ../app/paint/gimpbrushcore.c:353 +#, c-format +msgid "No brushes available for use with this tool." +msgstr "Bu aletle kullanılabilecek fırça yok." + +#: ../app/paint/gimpclone.c:99 ../app/tools/gimpclonetool.c:61 +msgid "Clone" +msgstr "Kopyala" + +#: ../app/paint/gimpclone.c:140 +#, c-format +msgid "No patterns available for use with this tool." +msgstr "Bu aletle kullanılabilecek desen yok." + +#: ../app/paint/gimpconvolve.c:77 +msgid "Convolve" +msgstr "Evriştirme" + +#: ../app/paint/gimpdodgeburn.c:87 +msgid "Dodge/Burn" +msgstr "Temizle/Yak" + +#: ../app/paint/gimperaser.c:62 ../app/tools/gimperasertool.c:66 +msgid "Eraser" +msgstr "Silgi" + +#: ../app/paint/gimpheal.c:115 ../app/tools/gimphealtool.c:53 +msgid "Heal" +msgstr "İyileştir" + +#: ../app/paint/gimpheal.c:154 +#, c-format +msgid "Healing does not operate on indexed layers." +msgstr "İyileştirme, sıralanmış katmanlar üzerinde uygulanamaz." + +#: ../app/paint/gimppaintbrush.c:63 ../app/tools/gimppaintbrushtool.c:51 +msgid "Paintbrush" +msgstr "Boya Fırçası" + +#: ../app/paint/gimppaintcore-stroke.c:332 +#, c-format +msgid "Not enough points to stroke" +msgstr "İşaretlemek için yeterli nokta yok" + +#: ../app/paint/gimppencil.c:42 ../app/tools/gimppenciltool.c:51 +msgid "Pencil" +msgstr "Kalem" + +#: ../app/paint/gimpperspectiveclone.c:97 ../app/paint/paint-enums.c:52 +#: ../app/tools/gimpperspectiveclonetool.c:126 +msgid "Perspective Clone" +msgstr "Perspektif Kopya" + +#: ../app/paint/gimpperspectiveclone.c:162 +#, c-format +msgid "Perspective Clone does not operate on indexed layers." +msgstr "Perspektif Kopya sıralanmış katmanlar üzerinde uygulanamaz." + +#: ../app/paint/gimpsmudge.c:78 ../app/tools/gimpsmudgetool.c:53 +msgid "Smudge" +msgstr "Lekeleme" + +#: ../app/paint/gimpsourcecore.c:227 +#, c-format +msgid "Set a source image first." +msgstr "Önce bir kaynak görüntü ayarlayın." + +#: ../app/paint/paint-enums.c:51 +msgid "Modify Perspective" +msgstr "Perspektifi Değiştir" + +#: ../app/paint/paint-enums.c:82 +msgid "Aligned" +msgstr "Hizalı" + +#: ../app/paint/paint-enums.c:83 +msgid "Registered" +msgstr "Kayıtlı" + +#: ../app/paint/paint-enums.c:84 +msgid "Fixed" +msgstr "Sabitlendi" + +#: ../app/paint/paint-enums.c:111 +msgid "Blur" +msgstr "Bulanıklaştır" + +#: ../app/paint/paint-enums.c:112 +msgid "Sharpen" +msgstr "Keskinleştir" + +#: ../app/pdb/channel-cmds.c:183 +msgid "Combine Masks" +msgstr "Maskeleri Birleştir" + +#: ../app/pdb/drawable-transform-cmds.c:310 +#: ../app/pdb/drawable-transform-cmds.c:395 +#: ../app/pdb/transform-tools-cmds.c:146 ../app/tools/gimpperspectivetool.c:69 +msgid "Perspective" +msgstr "Perspektif" + +#: ../app/pdb/drawable-transform-cmds.c:832 +#: ../app/pdb/drawable-transform-cmds.c:904 +#: ../app/pdb/transform-tools-cmds.c:362 ../app/tools/gimpsheartool.c:111 +msgid "Shearing" +msgstr "Kesme" + +#: ../app/pdb/drawable-transform-cmds.c:989 +#: ../app/pdb/transform-tools-cmds.c:438 +msgid "2D Transform" +msgstr "2B Dönüşüm" + +#: ../app/pdb/drawable-transform-cmds.c:1072 +#: ../app/pdb/drawable-transform-cmds.c:1165 +#: ../app/pdb/drawable-transform-cmds.c:1256 +msgid "2D Transforming" +msgstr "2B Dönüştürme" + +#: ../app/pdb/edit-cmds.c:709 ../app/tools/gimpblendtool.c:225 +msgid "Blending" +msgstr "Harmanlama" + +#: ../app/pdb/floating-sel-cmds.c:63 +#, c-format +msgid "Cannot remove this layer because it is not a floating selection." +msgstr "Bu katman kaldırılamıyor çünkü bu yüzen bir seçim değil." + +#: ../app/pdb/floating-sel-cmds.c:95 +#, c-format +msgid "Cannot anchor this layer because it is not a floating selection." +msgstr "Bu katmana demir atılamıyor çünkü bu yüzen bir seçim değil." + +#: ../app/pdb/floating-sel-cmds.c:127 +#, c-format +msgid "" +"Cannot convert this layer to a normal layer because it is not a floating " +"selection." +msgstr "" +"Bu katman normal bir katmana dönüştürülemiyor çünkü bu yüzen bir seçim değil." + +#: ../app/pdb/floating-sel-cmds.c:188 +#, c-format +msgid "Cannot rigor this layer because it is not a floating selection." +msgstr "Bu katman katılaştırılamıyor çünkü bu yüzen bir seçim değil." + +#: ../app/pdb/floating-sel-cmds.c:222 +#, c-format +msgid "Cannot relax this layer because it is not a floating selection." +msgstr "Bu katman yumuşatılamıyor çünkü bu yüzen bir seçim değil." + +#: ../app/pdb/gimppdb-query.c:300 ../app/pdb/gimppdb.c:307 +#: ../app/pdb/gimppdb.c:377 +#, c-format +msgid "Procedure '%s' not found" +msgstr "'%s' yordamı bulunamadı" + +#: ../app/pdb/gimppdb-utils.c:61 +#, c-format +msgid "Invalid empty brush name" +msgstr "Geçersiz boş fırça adı" + +#: ../app/pdb/gimppdb-utils.c:71 +#, c-format +msgid "Brush '%s' not found" +msgstr "'%s' fırçası bulunamadı" + +#: ../app/pdb/gimppdb-utils.c:76 +#, c-format +msgid "Brush '%s' is not editable" +msgstr "'%s' fırçası düzenlenebilir değil" + +#: ../app/pdb/gimppdb-utils.c:102 +#, c-format +msgid "Brush '%s' is not a generated brush" +msgstr "'%s' fırçası oluşturulmuş bir fırça değil" + +#: ../app/pdb/gimppdb-utils.c:122 +#, c-format +msgid "Invalid empty pattern name" +msgstr "Geçersiz boş desen adı" + +#: ../app/pdb/gimppdb-utils.c:132 +#, c-format +msgid "Pattern '%s' not found" +msgstr "'%s' deseni bulunamadı" + +#: ../app/pdb/gimppdb-utils.c:152 +#, c-format +msgid "Invalid empty gradient name" +msgstr "Geçersiz boş renk geçişi adı" + +#: ../app/pdb/gimppdb-utils.c:162 +#, c-format +msgid "Gradient '%s' not found" +msgstr "'%s' renk geçişi bulunamadı" + +#: ../app/pdb/gimppdb-utils.c:167 +#, c-format +msgid "Gradient '%s' is not editable" +msgstr "'%s' renk geçişi düzenlenebilir değil" + +#: ../app/pdb/gimppdb-utils.c:188 +#, c-format +msgid "Invalid empty palette name" +msgstr "Geçersiz boş palet adı" + +#: ../app/pdb/gimppdb-utils.c:198 +#, c-format +msgid "Palette '%s' not found" +msgstr "'%s' paleti bulunamadı" + +#: ../app/pdb/gimppdb-utils.c:203 +#, c-format +msgid "Palette '%s' is not editable" +msgstr "'%s' paleti düzenlenebilir değil" + +#: ../app/pdb/gimppdb-utils.c:223 +#, c-format +msgid "Invalid empty font name" +msgstr "Geçersiz boş yazıyüzü adı" + +#: ../app/pdb/gimppdb-utils.c:233 +#, c-format +msgid "Font '%s' not found" +msgstr "'%s' yazıyüzü bulunamadı" + +#: ../app/pdb/gimppdb-utils.c:252 +#, c-format +msgid "Invalid empty buffer name" +msgstr "Geçersiz boş arabellek adı" + +#: ../app/pdb/gimppdb-utils.c:262 +#, c-format +msgid "Named buffer '%s' not found" +msgstr "'%s' adlandırılmış arabellek bulunanamadı" + +#: ../app/pdb/gimppdb-utils.c:281 +#, c-format +msgid "Invalid empty paint method name" +msgstr "Geçersiz boş boyama yöntemi adı" + +#: ../app/pdb/gimppdb-utils.c:291 +#, c-format +msgid "Paint method '%s' does not exist" +msgstr "'%s' boyama yöntemi mevcut değil" + +#: ../app/pdb/gimppdb-utils.c:307 +#, c-format +msgid "" +"Item '%s' (%d) can not be used because it has not been added to an image" +msgstr "'%s' (%d) öğesi kullanılamadı çünkü bir görüntüye eklenmemiş" + +#: ../app/pdb/gimppdb-utils.c:329 +#, c-format +msgid "Item '%s' (%d) has already been added to an image" +msgstr "'%s' (%d) öğesi zaten bir görüntüye eklenmiş" + +#: ../app/pdb/gimppdb-utils.c:337 +#, c-format +msgid "Trying to add item '%s' (%d) to wrong image" +msgstr "'%s' (%d) öğesi yanlış görünüye eklenmeye çalışılıyor" + +#: ../app/pdb/gimppdb-utils.c:356 +#, c-format +msgid "Layer '%s' (%d) can not be used because it is not a text layer" +msgstr "'%s' (%d) katmanı kullanılamadı çünkü bir metin katmanı değil" + +#: ../app/pdb/gimppdb-utils.c:401 +#, c-format +msgid "" +"Image '%s' (%d) is of type '%s', but an image of type '%s' is expected" +msgstr "" +"'%s' (%d) görüntüsü '%s' türünde, ancak '%s' türündeki bir görüntü bekleniyor" + +#: ../app/pdb/gimppdb-utils.c:430 +#, c-format +msgid "Image '%s' (%d) is already of type '%s'" +msgstr "'%s' (%d) görüntüsü zaten '%s' türünde" + +#: ../app/pdb/gimppdb-utils.c:455 +#, c-format +msgid "Vectors object %d does not contain stroke with ID %d" +msgstr "%d vektörel nesnesi %d kimliği ile bir vuruş içermiyor" + +#: ../app/pdb/gimppdb.c:411 +#, c-format +msgid "" +"Procedure '%s' has been called with a wrong type for argument #%d. Expected " +"%s, got %s." +msgstr "" +"'%s' yordamı, yanlış türdeki bir #%d bağımsız değişkeni için çağrıldı. " +"İstenen %s, olan %s." + +#: ../app/pdb/gimpprocedure.c:361 ../app/plug-in/gimppluginprocframe.c:209 +#, c-format +msgid "Procedure '%s' returned no return values" +msgstr "'%s' yöntemi, değeri olmayana dönüştü" + +#: ../app/pdb/gimpprocedure.c:585 +#, c-format +msgid "" +"Procedure '%s' returned a wrong value type for return value '%s' (#%d). " +"Expected %s, got %s." +msgstr "" +"'%s' yöntemi, '%s' dönüşüm değeri için yanlış bir değer türüne dönüştü " +"(#%d). Beklenen %s, alınan %s." + +#: ../app/pdb/gimpprocedure.c:597 +#, c-format +msgid "" +"Procedure '%s' has been called with a wrong value type for argument '%s' " +"(#%d). Expected %s, got %s." +msgstr "" +"'%s' yöntemi, '%s' argümanı için yanlış bir değer türü ile çağrıldı (#%d). " +"Beklenen %s, alınan %s." + +#: ../app/pdb/gimpprocedure.c:629 +#, c-format +msgid "" +"Procedure '%s' returned an invalid ID for argument '%s'. Most likely a plug-" +"in is trying to work on a layer that doesn't exist any longer." +msgstr "" +"'%s' yöntemi, '%s' argümanı için geçersiz bir kimliğe dönüştü. En çok benzer " +"eklenti, artık bulunmayan bir katmanda çalışacak şekilde deneniyor." + +#: ../app/pdb/gimpprocedure.c:641 +#, c-format +msgid "" +"Procedure '%s' has been called with an invalid ID for argument '%s'. Most " +"likely a plug-in is trying to work on a layer that doesn't exist any longer." +msgstr "" +"'%s' yöntemi, '%s' argümanı için geçersiz bir kimlik ile çağrıldı. En çok " +"benzer eklenti, artık bulunmayan bir katmanda çalışacak şekilde deneniyor." + +#: ../app/pdb/gimpprocedure.c:657 +#, c-format +msgid "" +"Procedure '%s' returned an invalid ID for argument '%s'. Most likely a plug-" +"in is trying to work on an image that doesn't exist any longer." +msgstr "" +"'%s' yöntemi, '%s' argümanı için geçersiz bir kimliğe dönüştü. En çok benzer " +"eklenti, artık bulunmayan bir resimde çalışacak şekilde deneniyor." + +#: ../app/pdb/gimpprocedure.c:669 +#, c-format +msgid "" +"Procedure '%s' has been called with an invalid ID for argument '%s'. Most " +"likely a plug-in is trying to work on an image that doesn't exist any longer." +msgstr "" +"'%s' yöntemi, '%s' argümanı için geçersiz bir kimlik ile çağrıldı. En çok " +"benzer eklenti, artık bulunmayan bir resimde çalışacak şekilde deneniyor." + +#: ../app/pdb/gimpprocedure.c:689 +#, c-format +msgid "" +"Procedure '%s' returned '%s' as return value '%s' (#%d, type %s). This value " +"is out of range." +msgstr "" +"'%s' yöntemi, '%s' e, '%s' dönüşüm değeri olarak dönüştü (#%d, %s türü). Bu " +"değer, istenenin dışındadır." + +#: ../app/pdb/gimpprocedure.c:702 +#, c-format +msgid "" +"Procedure '%s' has been called with value '%s' for argument '%s' (#%d, type " +"%s). This value is out of range." +msgstr "" +"'%s' yöntemi, '%s' ile, '%s' argümanı için çağrıldı (#%d,%s türü). Bu değer " +"istenenin dışındadır." + +#: ../app/pdb/image-cmds.c:2268 +#, c-format +msgid "" +"Image resolution is out of bounds, using the default resolution instead." +msgstr "" +"Resim çözünürlüğü izin verilen sınırların dışında, öntanımlı çözünürlük " +"kullanılacak" + +#: ../app/pdb/selection-tools-cmds.c:218 ../app/tools/gimpfreeselecttool.c:197 +msgid "Free Select" +msgstr "Serbest Seçim" + +#: ../app/pdb/text-layer-cmds.c:90 +#, c-format +msgid "Failed to create text layer" +msgstr "Metin katmanı oluşturma başarısız" + +#: ../app/pdb/text-layer-cmds.c:163 ../app/pdb/text-layer-cmds.c:235 +#: ../app/pdb/text-layer-cmds.c:314 ../app/pdb/text-layer-cmds.c:394 +#: ../app/pdb/text-layer-cmds.c:467 ../app/pdb/text-layer-cmds.c:539 +#: ../app/pdb/text-layer-cmds.c:611 ../app/pdb/text-layer-cmds.c:683 +#: ../app/pdb/text-layer-cmds.c:755 ../app/pdb/text-layer-cmds.c:825 +#: ../app/pdb/text-layer-cmds.c:897 ../app/pdb/text-layer-cmds.c:969 +#: ../app/pdb/text-layer-cmds.c:1041 +msgid "Set text layer attribute" +msgstr "Metin katmanı özniteliğini ayarla" + +#: ../app/plug-in/gimpenvirontable.c:282 +#, c-format +msgid "Empty variable name in environment file %s" +msgstr "%s çevresel dosya içinde boş değişken adı" + +#: ../app/plug-in/gimpenvirontable.c:300 +#, c-format +msgid "Illegal variable name in environment file %s: %s" +msgstr "%s çevresel dosya içinde geçersiz değişken adı: %s" + +#: ../app/plug-in/gimpinterpreterdb.c:264 +#, c-format +msgid "Bad interpreter referenced in interpreter file %s: %s" +msgstr "%s yorumlayıcı dosyası içinde kötü yorumlayıcı başvurusu: %s" + +#: ../app/plug-in/gimpinterpreterdb.c:323 +#, c-format +msgid "Bad binary format string in interpreter file %s" +msgstr "%s yorumlayıcı dosyası içinde kötü ikili biçimi dizgisi" + +#: ../app/plug-in/gimpplugin-message.c:423 +#, c-format +msgid "" +"Calling error for procedure '%s':\n" +"%s" +msgstr "" +"'%s' yordamı için çağırma hatası:\n" +"%s" + +#: ../app/plug-in/gimpplugin-message.c:432 +#, c-format +msgid "" +"Execution error for procedure '%s':\n" +"%s" +msgstr "" +"'%s' yordamı için uygulama hatası:\n" +"%s" + +#: ../app/plug-in/gimpplugin-progress.c:330 +msgid "Cancelled" +msgstr "Vazgeçildi" + +#: ../app/plug-in/gimpplugin.c:639 +#, c-format +msgid "" +"Plug-in crashed: \"%s\"\n" +"(%s)\n" +"\n" +"The dying plug-in may have messed up GIMP's internal state. You may want to " +"save your images and restart GIMP to be on the safe side." +msgstr "" +"Eklenti çöktü: \"%s\"\n" +"(%s)\n" +"\n" +"Ölen eklenti GIMP'in iç durumunu karıştırmış olabilir. Çalışmalarınızı " +"kaydedip GIMP'i yeniden başlatmanızı öneriririz." + +#: ../app/plug-in/gimppluginmanager-call.c:173 +#: ../app/plug-in/gimppluginmanager-call.c:223 +#: ../app/plug-in/gimppluginmanager-call.c:321 +#, c-format +msgid "Failed to run plug-in \"%s\"" +msgstr "\"%s\" eklentisini çalıştırma başarısız oldu" + +#: ../app/plug-in/gimppluginmanager-restore.c:222 +msgid "Searching Plug-Ins" +msgstr "Eklentiler Aranıyor" + +#: ../app/plug-in/gimppluginmanager-restore.c:271 +msgid "Resource configuration" +msgstr "Kaynak ayarları" + +#: ../app/plug-in/gimppluginmanager-restore.c:307 +msgid "Querying new Plug-ins" +msgstr "Yeni eklentiler aranıyor" + +#: ../app/plug-in/gimppluginmanager-restore.c:357 +msgid "Initializing Plug-ins" +msgstr "Eklentiler Çalıştırılıyor" + +#: ../app/plug-in/gimppluginmanager-restore.c:429 +msgid "Starting Extensions" +msgstr "Uzantılar Başlatılıyor" + +#: ../app/plug-in/gimppluginmanager.c:290 +msgid "Plug-In Interpreters" +msgstr "Eklenti yorumlayıcıları" + +#: ../app/plug-in/gimppluginmanager.c:297 +msgid "Plug-In Environment" +msgstr "Eklenti Sistemi" + +#: ../app/plug-in/gimppluginprocedure.c:989 +#, c-format +msgid "" +"Calling error for '%s':\n" +"%s" +msgstr "" +"'%s' için çağırma hatası:\n" +"%s" + +#: ../app/plug-in/gimppluginprocedure.c:1001 +#, c-format +msgid "" +"Execution error for '%s':\n" +"%s" +msgstr "" +"'%s' için uygulama hatası:\n" +"%s" + +#: ../app/plug-in/plug-in-icc-profile.c:113 +#: ../app/plug-in/plug-in-icc-profile.c:188 +#: ../app/plug-in/plug-in-icc-profile.c:247 +#, c-format +msgid "Error running '%s'" +msgstr "'%s' çalıştırılırkan hata" + +#: ../app/plug-in/plug-in-icc-profile.c:137 +#: ../app/plug-in/plug-in-icc-profile.c:198 +#: ../app/plug-in/plug-in-icc-profile.c:257 +#, c-format +msgid "Plug-In missing (%s)" +msgstr "Kayıp eklenti (%s)" + +#: ../app/plug-in/plug-in-rc.c:206 +#, c-format +msgid "Skipping '%s': wrong GIMP protocol version." +msgstr "'%s' atlanıyor: yanlış GIMP iletişim kuralı sürümü." + +#: ../app/plug-in/plug-in-rc.c:479 +#, c-format +msgid "invalid value '%s' for icon type" +msgstr "'%s' geçersiz değerinin olduğu simge türü" + +#: ../app/plug-in/plug-in-rc.c:494 +#, c-format +msgid "invalid value '%ld' for icon type" +msgstr "'%ld' geçersiz değerinin olduğu simge türü" + +#. This is a so-called pangram; it's supposed to +#. contain all characters found in the alphabet. +#: ../app/text/gimpfont.c:45 +msgid "" +"Pack my box with\n" +"five dozen liquor jugs." +msgstr "" +"Kutumu paketle\n" +"beş düzine demlik çayı." + +#: ../app/text/gimptext-compat.c:108 ../app/tools/gimptexttool.c:901 +msgid "Add Text Layer" +msgstr "Metin Katmanı Ekle" + +#: ../app/text/gimptextlayer.c:138 +msgid "Text Layer" +msgstr "Metin Katmanı" + +#: ../app/text/gimptextlayer.c:139 +msgid "Rename Text Layer" +msgstr "Metin Katmanını Yeniden Adlandır" + +#: ../app/text/gimptextlayer.c:140 +msgid "Move Text Layer" +msgstr "Metin Katmanını Taşı" + +#: ../app/text/gimptextlayer.c:141 +msgid "Scale Text Layer" +msgstr "Metin Katmanını Ölçekle" + +#: ../app/text/gimptextlayer.c:142 +msgid "Resize Text Layer" +msgstr "Metin Katmanını Yeniden Boyutlandır" + +#: ../app/text/gimptextlayer.c:143 +msgid "Flip Text Layer" +msgstr "Metin Katmanını Çevir" + +#: ../app/text/gimptextlayer.c:144 +msgid "Rotate Text Layer" +msgstr "Metin Katmanını Döndür" + +#: ../app/text/gimptextlayer.c:145 +msgid "Transform Text Layer" +msgstr "Metin Katmanını Dönüştür" + +#: ../app/text/gimptextlayer.c:492 +msgid "Discard Text Information" +msgstr "Metin Bilgisini Sil" + +#: ../app/text/gimptextlayer.c:543 +msgid "Due to lack of any fonts, text functionality is not available." +msgstr "" +"Bir yazıyüzü eksikliğinden dolayı, metin işlevselliği kullanılabilir değil." + +#: ../app/text/gimptextlayer.c:579 +msgid "Empty Text Layer" +msgstr "Boş Metin Katmanı" + +#: ../app/text/gimptextlayer-xcf.c:75 +#, c-format +msgid "" +"Problems parsing the text parasite for layer '%s':\n" +"%s\n" +"\n" +"Some text properties may be wrong. Unless you want to edit the text layer, " +"you don't need to worry about this." +msgstr "" +"'%s' katmanı için metin paraziti ayrıştırma problemleri:\n" +"%s\n" +"\n" +"Bazı metin özellikleri yanlış olabilir. Metin katmanını düzenlemek " +"istemedikçe, bunun hakkında endişelenmenize gerek yok." + +#: ../app/tools/gimp-tools.c:335 +msgid "" +"This tool has\n" +"no options." +msgstr "" +"Bu aletin\n" +"hiç seçeneği yok." + +#: ../app/tools/gimpairbrushtool.c:55 +msgid "Airbrush Tool: Paint using a brush, with variable pressure" +msgstr "" +"Hava Fırçası Aracı: Değişken basınç ile boyarken bir fırça kullanılır" + +#: ../app/tools/gimpairbrushtool.c:56 +msgid "_Airbrush" +msgstr "_Hava Fırçası" + +#: ../app/tools/gimpairbrushtool.c:92 ../app/tools/gimpconvolvetool.c:217 +#: ../app/tools/gimpsmudgetool.c:97 +msgid "Rate:" +msgstr "Oran:" + +#: ../app/tools/gimpairbrushtool.c:98 ../app/tools/gimppaintoptions-gui.c:198 +msgid "Pressure:" +msgstr "Basınç:" + +#: ../app/tools/gimpaligntool.c:134 ../app/tools/gimpaligntool.c:766 +msgid "Align" +msgstr "Hizala" + +#: ../app/tools/gimpaligntool.c:135 +msgid "Alignment Tool: Align or arrange layers and other objects" +msgstr "Hizalama Aracı: Katmanları ve diğer nesneleri hizala ya da sırala" + +#: ../app/tools/gimpaligntool.c:136 +msgid "_Align" +msgstr "_Hizala" + +#: ../app/tools/gimpaligntool.c:599 +msgid "Click on a layer, path or guide, or Click-Drag to pick several layers" +msgstr "" +"Bir katmanı, yolu veya kılavuzu tıklayın, ya da birkaç katman seçmek için " +"Sürüklemeyi-Tıklayın" + +#: ../app/tools/gimpaligntool.c:608 +msgid "Click to pick this layer as first item" +msgstr "Bu katmanı ilk öğe olarak seçmek için tıklayın" + +#: ../app/tools/gimpaligntool.c:616 +msgid "Click to add this layer to the list" +msgstr "Bu katmanı listeye eklemek için tıklayın" + +#: ../app/tools/gimpaligntool.c:620 +msgid "Click to pick this guide as first item" +msgstr "Bu kılavuzu ilk öğe olarak seçmek için tıklayın" + +#: ../app/tools/gimpaligntool.c:628 +msgid "Click to add this guide to the list" +msgstr "Bu kılavuzu listeye eklemek için tıklayın" + +#: ../app/tools/gimpaligntool.c:632 +msgid "Click to pick this path as first item" +msgstr "Bu yolu ilk öğe olarak seçmek için tıklayın" + +#: ../app/tools/gimpaligntool.c:640 +msgid "Click to add this path to the list" +msgstr "Bu yolu listeye eklemek için tıklayın" + +#: ../app/tools/gimpaligntool.c:778 +msgid "Relative to:" +msgstr "Göreli:" + +#: ../app/tools/gimpaligntool.c:796 +msgid "Align left edge of target" +msgstr "Hedefin sol kenarını hizala" + +#: ../app/tools/gimpaligntool.c:802 +msgid "Align center of target" +msgstr "Hedefin merkezini hizala" + +#: ../app/tools/gimpaligntool.c:808 +msgid "Align right edge of target" +msgstr "Hedefin sağ kenarını hizala" + +#: ../app/tools/gimpaligntool.c:818 +msgid "Align top edge of target" +msgstr "Hedefin üst kenarını hizala" + +#: ../app/tools/gimpaligntool.c:824 +msgid "Align middle of target" +msgstr "Hedefin ortasını hizala" + +#: ../app/tools/gimpaligntool.c:830 +msgid "Align bottom of target" +msgstr "Hedefin altını hizala" + +#: ../app/tools/gimpaligntool.c:834 +msgid "Distribute" +msgstr "Dağıt" + +#: ../app/tools/gimpaligntool.c:848 +msgid "Distribute left edges of targets" +msgstr "Hedeflerin sol kenarlarını dağıt" + +#: ../app/tools/gimpaligntool.c:855 +msgid "Distribute horizontal centers of targets" +msgstr "Hedeflerin yatay merkezlerini dağıt" + +#: ../app/tools/gimpaligntool.c:862 +msgid "Distribute right edges of targets" +msgstr "Hedeflerin sağ kenarlarını dağıt" + +#: ../app/tools/gimpaligntool.c:872 +msgid "Distribute top edges of targets" +msgstr "Hedeflerin üst kenarlarını dağıt" + +#: ../app/tools/gimpaligntool.c:879 +msgid "Distribute vertical centers of targets" +msgstr "Hedeflerin dikey merkezlerini dağıt" + +#: ../app/tools/gimpaligntool.c:885 +msgid "Distribute bottoms of targets" +msgstr "Hedeflerin altlarını dağıt" + +#: ../app/tools/gimpaligntool.c:893 ../app/tools/gimpblendoptions.c:222 +msgid "Offset:" +msgstr "Ofset:" + +#: ../app/tools/gimpblendoptions.c:216 ../app/tools/gimppaintoptions-gui.c:648 +msgid "Gradient:" +msgstr "Gradyan:" + +#: ../app/tools/gimpblendoptions.c:232 ../app/widgets/gimpbrusheditor.c:146 +msgid "Shape:" +msgstr "Şekil:" + +#: ../app/tools/gimpblendoptions.c:239 ../app/tools/gimppaintoptions-gui.c:672 +msgid "Repeat:" +msgstr "Tekrarlama:" + +#: ../app/tools/gimpblendoptions.c:257 +msgid "Adaptive supersampling" +msgstr "Süper örneklemeyi uyarla" + +#: ../app/tools/gimpblendoptions.c:265 +msgid "Max depth:" +msgstr "Azami derinlik:" + +#: ../app/tools/gimpblendoptions.c:272 +#: ../app/tools/gimpbucketfilloptions.c:287 +#: ../app/tools/gimpregionselectoptions.c:220 +msgid "Threshold:" +msgstr "Alt sınır:" + +#: ../app/tools/gimpblendtool.c:108 +msgid "Blend Tool: Fill selected area with a color gradient" +msgstr "Harmanlama Aracı: Seçilmiş alanı bir renk geçişi ile doldur" + +#: ../app/tools/gimpblendtool.c:109 +msgid "Blen_d" +msgstr "_Harmanlama" + +#: ../app/tools/gimpblendtool.c:164 +#, c-format +msgid "Blend does not operate on indexed layers." +msgstr "Harmanlama, sıralanmış katmanlarda uygulanamaz." + +#: ../app/tools/gimpblendtool.c:402 ../app/tools/gimppainttool.c:606 +#, c-format +msgid "%s for constrained angles" +msgstr "kısıtlanmış açılar için %s" + +#: ../app/tools/gimpblendtool.c:403 +#, c-format +msgid "%s to move the whole line" +msgstr "Bütün satırı taşımak için %s" + +#: ../app/tools/gimpblendtool.c:407 +msgid "Blend: " +msgstr "Harman: " + +#: ../app/tools/gimpbrightnesscontrasttool.c:112 +msgid "Brightness/Contrast Tool: Adjust brightness and contrast" +msgstr "Parlaklık/Karşıtlık Aracı: Parlaklık ve karşıtlığı ayarla" + +#: ../app/tools/gimpbrightnesscontrasttool.c:113 +msgid "B_rightness-Contrast..." +msgstr "_Parlaklık-Karşıtlık..." + +#: ../app/tools/gimpbrightnesscontrasttool.c:133 +msgid "Adjust Brightness and Contrast" +msgstr "Parlaklık ve Karşıtlığı Ayarla" + +#: ../app/tools/gimpbrightnesscontrasttool.c:135 +msgid "Import Brightness-Contrast settings" +msgstr "Parlaklık-Karşıtlık ayarlarını içe aktar" + +#: ../app/tools/gimpbrightnesscontrasttool.c:136 +msgid "Export Brightness-Contrast settings" +msgstr "Parlaklık-Karşıtlık ayarlarını dışa aktar" + +#: ../app/tools/gimpbrightnesscontrasttool.c:184 +#, c-format +msgid "Brightness-Contrast does not operate on indexed layers." +msgstr "Parlaklık-kontrast indisli katmanlar üzerinde kullanılamaz." + +#: ../app/tools/gimpbrightnesscontrasttool.c:325 +msgid "_Brightness:" +msgstr "_Parlaklık:" + +#: ../app/tools/gimpbrightnesscontrasttool.c:340 +msgid "Con_trast:" +msgstr "_Kontrast:" + +#: ../app/tools/gimpbrightnesscontrasttool.c:354 +msgid "Edit these Settings as Levels" +msgstr "Bu Ayarları, Düzey olarak düzenle" + +#: ../app/tools/gimpbucketfilloptions.c:100 +msgid "Allow completely transparent regions to be filled" +msgstr "Saydam bölgelerin tamamen doldurulmasına izin ver" + +#: ../app/tools/gimpbucketfilloptions.c:106 +msgid "Base filled area on all visible layers" +msgstr "Tüm görünür katmanlar üzerinde tabanı doldurulmuş alan" + +#: ../app/tools/gimpbucketfilloptions.c:112 +#: ../app/tools/gimpregionselectoptions.c:96 +msgid "Maximum color difference" +msgstr "Azami renk farklılığı" + +#. fill type +#: ../app/tools/gimpbucketfilloptions.c:226 +#, c-format +msgid "Fill Type (%s)" +msgstr "Doldurma Türü: (%s)" + +#. fill selection +#: ../app/tools/gimpbucketfilloptions.c:239 +#, c-format +msgid "Affected Area (%s)" +msgstr "Etkilenen Bölge (%s)" + +#: ../app/tools/gimpbucketfilloptions.c:243 +msgid "Fill whole selection" +msgstr "Tüm seçimi doldur" + +#: ../app/tools/gimpbucketfilloptions.c:244 +msgid "Fill similar colors" +msgstr "Benzer renklerle doldur" + +#: ../app/tools/gimpbucketfilloptions.c:253 +msgid "Finding Similar Colors" +msgstr "Benzer Renklerin Bulunması" + +#: ../app/tools/gimpbucketfilloptions.c:269 +msgid "Fill transparent areas" +msgstr "Saydam alanları doldur" + +#: ../app/tools/gimpbucketfilloptions.c:275 ../app/tools/gimpclonetool.c:114 +#: ../app/tools/gimpcolorpickeroptions.c:151 ../app/tools/gimphealtool.c:99 +#: ../app/tools/gimpperspectiveclonetool.c:941 +#: ../app/tools/gimpregionselectoptions.c:208 +msgid "Sample merged" +msgstr "Birleştirme örneği" + +#: ../app/tools/gimpbucketfilloptions.c:294 +msgid "Fill by:" +msgstr "Doldur:" + +#: ../app/tools/gimpbucketfilltool.c:81 +msgid "Bucket Fill" +msgstr "Kovadan Dolum" + +#: ../app/tools/gimpbucketfilltool.c:82 +msgid "Bucket Fill Tool: Fill selected area with a color or pattern" +msgstr "" +"Kovadan Dolum Aracı: Seçilmiş bölgeyi bir renkle ya da desenle doldur" + +#: ../app/tools/gimpbucketfilltool.c:83 +msgid "_Bucket Fill" +msgstr "_Kovadan Dolum" + +#: ../app/tools/gimpbycolorselecttool.c:67 +msgid "Select by Color" +msgstr "Renk ile Seç" + +#: ../app/tools/gimpbycolorselecttool.c:68 +msgid "Select by Color Tool: Select regions with similar colors" +msgstr "Renge göre Seçim Aracı: Bölgeleri benzer renklerle seç" + +#: ../app/tools/gimpbycolorselecttool.c:69 +msgid "_By Color Select" +msgstr "_Renk Seçimine Göre" + +#: ../app/tools/gimpclonetool.c:62 +msgid "Clone Tool: Selectively copy from an image or pattern, using a brush" +msgstr "" +"Kopyalama Aracı: Bir görüntüden ya da desenden, bir fırça kullanıp seçerek " +"kopyalayın" + +#: ../app/tools/gimpclonetool.c:63 +msgid "_Clone" +msgstr "_Kopyala" + +#: ../app/tools/gimpclonetool.c:86 ../app/tools/gimpclonetool.c:89 +msgid "Click to clone" +msgstr "Kopyalama için Tıklayın" + +#: ../app/tools/gimpclonetool.c:87 ../app/tools/gimpclonetool.c:91 +#, c-format +msgid "%s to set a new clone source" +msgstr "Yeni bir kopyalama kaynağı ayarlamak için %s" + +#: ../app/tools/gimpclonetool.c:90 +msgid "Click to set a new clone source" +msgstr "Yeni bir kopyalama aracı ayarlamak için tıklayın" + +#: ../app/tools/gimpclonetool.c:109 +#: ../app/tools/gimpperspectiveclonetool.c:936 +msgid "Source" +msgstr "Kaynak" + +#: ../app/tools/gimpclonetool.c:128 ../app/tools/gimphealtool.c:111 +#: ../app/tools/gimpperspectiveclonetool.c:955 +msgid "Alignment:" +msgstr "Hizalama:" + +#: ../app/tools/gimpcolorbalancetool.c:95 +msgid "Color Balance Tool: Adjust color distribution" +msgstr "Renk Dengesi Aracı: Renk dağılımını ayarlayın" + +#: ../app/tools/gimpcolorbalancetool.c:96 +msgid "Color _Balance..." +msgstr "Renk _Dengesi..." + +#: ../app/tools/gimpcolorbalancetool.c:113 +msgid "Adjust Color Balance" +msgstr "Renk Dengesini Ayarla" + +#: ../app/tools/gimpcolorbalancetool.c:115 +msgid "Import Color Balance Settings" +msgstr "Renk Dengesi Ayarlarını İçe Aktar" + +#: ../app/tools/gimpcolorbalancetool.c:116 +msgid "Export Color Balance Settings" +msgstr "Renk Dengesi Ayarlarını Dışa Aktar" + +#: ../app/tools/gimpcolorbalancetool.c:163 +#, c-format +msgid "Color Balance operates only on RGB color layers." +msgstr "Renk Dengesi sadece RGB renk katmanlarında uygulanabilir." + +#: ../app/tools/gimpcolorbalancetool.c:270 +msgid "Select Range to Adjust" +msgstr "Ayarlamak için Erim Seç" + +#: ../app/tools/gimpcolorbalancetool.c:279 ../app/tools/gimplevelstool.c:172 +msgid "Adjust Color Levels" +msgstr "Renk Seviyelerini Ayarla" + +#: ../app/tools/gimpcolorbalancetool.c:296 +#: ../app/tools/gimphuesaturationtool.c:255 +msgid "Cyan" +msgstr "Turkuaz" + +#: ../app/tools/gimpcolorbalancetool.c:305 +#: ../app/tools/gimphuesaturationtool.c:257 +msgid "Magenta" +msgstr "Pembe" + +#: ../app/tools/gimpcolorbalancetool.c:314 +#: ../app/tools/gimphuesaturationtool.c:253 +msgid "Yellow" +msgstr "Sarı" + +#: ../app/tools/gimpcolorbalancetool.c:325 +msgid "R_eset Range" +msgstr "Aralığı _Sıfırla" + +#: ../app/tools/gimpcolorbalancetool.c:334 +msgid "Preserve _luminosity" +msgstr "Parlaklığı _koru" + +#: ../app/tools/gimpcolorizetool.c:91 +msgid "Colorize Tool: Colorize the image" +msgstr "Renklendirme Aracı: Görüntüyü renklendir" + +#: ../app/tools/gimpcolorizetool.c:92 +msgid "Colori_ze..." +msgstr "_Renklendir..." + +#: ../app/tools/gimpcolorizetool.c:109 +msgid "Colorize the Image" +msgstr "Resmi Renklendir" + +#: ../app/tools/gimpcolorizetool.c:111 +msgid "Import Colorize Settings" +msgstr "Renklendirme Ayarlarını İçe Aktar" + +#: ../app/tools/gimpcolorizetool.c:112 +msgid "Export Colorize Settings" +msgstr "Renklendirme Ayarlarını Dışa Aktar" + +#: ../app/tools/gimpcolorizetool.c:156 +#, c-format +msgid "Colorize operates only on RGB color layers." +msgstr "Renklendirme sadece RGB renk katmanlarında uygulanabilir." + +#: ../app/tools/gimpcolorizetool.c:221 +msgid "Select Color" +msgstr "Rengi Seç" + +#: ../app/tools/gimpcolorizetool.c:238 +#: ../app/tools/gimphuesaturationtool.c:388 +msgid "_Hue:" +msgstr "Renk _Özü:" + +#: ../app/tools/gimpcolorizetool.c:253 +#: ../app/tools/gimphuesaturationtool.c:426 +msgid "_Saturation:" +msgstr "_Doygunluk:" + +#: ../app/tools/gimpcolorizetool.c:268 +#: ../app/tools/gimphuesaturationtool.c:407 +msgid "_Lightness:" +msgstr "_Aydınlanma:" + +#: ../app/tools/gimpcoloroptions.c:161 +msgid "Sample average" +msgstr "Örnek ortalama" + +#: ../app/tools/gimpcoloroptions.c:171 +#: ../app/tools/gimprectangleselectoptions.c:176 +#: ../app/tools/gimpselectionoptions.c:281 +#: ../app/widgets/gimpbrusheditor.c:154 +msgid "Radius:" +msgstr "Yarıçap:" + +#. the pick FG/BG frame +#: ../app/tools/gimpcolorpickeroptions.c:156 +#, c-format +msgid "Pick Mode (%s)" +msgstr "Seçme Kipi (%s)" + +#. the use_info_window toggle button +#: ../app/tools/gimpcolorpickeroptions.c:165 +#, c-format +msgid "Use info window (%s)" +msgstr "Bilgi penceresi kullan (%s)" + +#: ../app/tools/gimpcolorpickertool.c:96 +msgid "Color Picker" +msgstr "Renk Alıcı" + +#: ../app/tools/gimpcolorpickertool.c:97 +msgid "Color Picker Tool: Set colors from image pixels" +msgstr "Renk Seçme Aracı: Görüntü beneklerinden renk seç" + +#: ../app/tools/gimpcolorpickertool.c:98 +msgid "C_olor Picker" +msgstr "_Renk Alıcı" + +#: ../app/tools/gimpcolorpickertool.c:242 +msgid "Click in any image to view its color" +msgstr "Rengini görmek için herhangi bir görüntüye tıklayın" + +#: ../app/tools/gimpcolorpickertool.c:249 ../app/tools/gimppainttool.c:509 +msgid "Click in any image to pick the foreground color" +msgstr "Önalan rengini seçmek için herhangi bir görüntüye tıklayın" + +#: ../app/tools/gimpcolorpickertool.c:257 ../app/tools/gimppainttool.c:515 +msgid "Click in any image to pick the background color" +msgstr "Artalan rengini seçmek için herhangi bir görüntüye tıklayın" + +#: ../app/tools/gimpcolorpickertool.c:265 +msgid "Click in any image to add the color to the palette" +msgstr "Palete renk eklemek için herhangi bir görüntüye tıklayın" + +#. tool->display->shell +#: ../app/tools/gimpcolorpickertool.c:318 +msgid "Color Picker Information" +msgstr "Renk Alıcı Bilgisi" + +#: ../app/tools/gimpcolortool.c:258 ../app/tools/gimpcolortool.c:437 +msgid "Move Sample Point: " +msgstr "Örnek Noktayı Taşı: " + +#: ../app/tools/gimpcolortool.c:430 +msgid "Cancel Sample Point" +msgstr "Örnek Noktadan Vazgeç" + +#: ../app/tools/gimpcolortool.c:438 +msgid "Add Sample Point: " +msgstr "Örnek Nokta Ekle: " + +#: ../app/tools/gimpconvolvetool.c:73 +msgid "Blur / Sharpen" +msgstr "Bulanıklaştır / Keskinleştir" + +#: ../app/tools/gimpconvolvetool.c:74 +msgid "Blur / Sharpen Tool: Selective blurring or unblurring using a brush" +msgstr "" +"Bulanıklaştırma / Keskinleştirme Aracı: Fırça kullanarak seçici " +"bulanıklaştırma ya da tersi" + +#: ../app/tools/gimpconvolvetool.c:75 +msgid "Bl_ur / Sharpen" +msgstr "B_ulanıklaştır / Keskinleştir" + +#: ../app/tools/gimpconvolvetool.c:170 +msgid "Click to blur" +msgstr "Bulanıklaştırmak için tıklayın" + +#: ../app/tools/gimpconvolvetool.c:171 +msgid "Click to blur the line" +msgstr "Çizgiyi bulanıklaştırmak için tıklayın" + +#: ../app/tools/gimpconvolvetool.c:172 +#, c-format +msgid "%s to sharpen" +msgstr "Keskinleştirmek için %s" + +#: ../app/tools/gimpconvolvetool.c:176 +msgid "Click to sharpen" +msgstr "Keskinleştirmek için tıklayın" + +#: ../app/tools/gimpconvolvetool.c:177 +msgid "Click to sharpen the line" +msgstr "Çizgiyi keskinleştirmek için tıklayın" + +#: ../app/tools/gimpconvolvetool.c:178 +#, c-format +msgid "%s to blur" +msgstr "Bulanıklaştırmak için %s" + +#. the type radio box +#: ../app/tools/gimpconvolvetool.c:199 +#, c-format +msgid "Convolve Type (%s)" +msgstr "Evriştime Türü (%s)" + +#: ../app/tools/gimpcropoptions.c:161 +msgid "Current layer only" +msgstr "Sadece etkin katman" + +#: ../app/tools/gimpcropoptions.c:167 +msgid "Allow growing" +msgstr "Büyümeye izin ver" + +#: ../app/tools/gimpcroptool.c:126 +msgid "Crop" +msgstr "Kırp" + +#: ../app/tools/gimpcroptool.c:127 +msgid "Crop Tool: Remove edge areas from image or layer" +msgstr "Kırpma Aracı: Görüntüden ya da katmandan kenar alanlarını kaldır" + +#: ../app/tools/gimpcroptool.c:128 +msgid "_Crop" +msgstr "_Kırp" + +#: ../app/tools/gimpcroptool.c:269 +msgid "Click or press Enter to crop" +msgstr "Kırpma için \"Enter\" tuşuna basın" + +#: ../app/tools/gimpcurvestool.c:141 +msgid "Curves Tool: Adjust color curves" +msgstr "Eğri Aracı: Renk eğrilerini ayarla" + +#: ../app/tools/gimpcurvestool.c:142 +msgid "_Curves..." +msgstr "_Eğriler..." + +#: ../app/tools/gimpcurvestool.c:168 +msgid "Adjust Color Curves" +msgstr "Renk Eğrilerini Ayarla" + +#: ../app/tools/gimpcurvestool.c:170 +msgid "Import Curves" +msgstr "Eğrileri İçe Aktar" + +#: ../app/tools/gimpcurvestool.c:171 +msgid "Export Curves" +msgstr "Eğrileri Dışa Aktar" + +#: ../app/tools/gimpcurvestool.c:221 +#, c-format +msgid "Curves does not operate on indexed layers." +msgstr "Eğriler sıralanmış katmanlarda uygulanamaz." + +#: ../app/tools/gimpcurvestool.c:323 +msgid "Click to add a control point" +msgstr "Bir kontrol noktası eklemek için tıklayın" + +#: ../app/tools/gimpcurvestool.c:328 +msgid "Click to add control points to all channels" +msgstr "Tüm kanallara kontrol noktaları eklemek için tıklayın" + +#: ../app/tools/gimpcurvestool.c:441 ../app/tools/gimplevelstool.c:380 +msgid "Cha_nnel:" +msgstr "_Kanal:" + +#: ../app/tools/gimpcurvestool.c:467 ../app/tools/gimplevelstool.c:404 +msgid "R_eset Channel" +msgstr "Kanalı _Sıfırla" + +#: ../app/tools/gimpcurvestool.c:557 +msgid "Curve _type:" +msgstr "Eğri _tipi:" + +#: ../app/tools/gimpcurvestool.c:632 ../app/tools/gimplevelstool.c:752 +#, c-format +msgid "Could not read header from '%s': %s" +msgstr "'%s' başlığı okunamadı: %s" + +#: ../app/tools/gimpcurvestool.c:705 +msgid "Use _old curves file format" +msgstr "_Eski kavislerin dosya biçimini kullan" + +#: ../app/tools/gimpdesaturatetool.c:78 +msgid "Desaturate Tool: Turn colors into shades of gray" +msgstr "Solgunlaştırma Aracı: Renkleri gri tonlara dönüştür" + +#: ../app/tools/gimpdesaturatetool.c:79 +msgid "_Desaturate..." +msgstr "_Solgunlaştır..." + +#: ../app/tools/gimpdesaturatetool.c:93 +msgid "Desaturate (Remove Colors)" +msgstr "Solgunlaştırma (Renkleri Kaldır)" + +#: ../app/tools/gimpdesaturatetool.c:125 +#, c-format +msgid "Desaturate does only operate on RGB layers." +msgstr "Solgunlaştırma sadece RGB katmanlarında uygulanabilir." + +#: ../app/tools/gimpdesaturatetool.c:191 +msgid "Choose shade of gray based on:" +msgstr "Gri gölgelemeyi seç:" + +#: ../app/tools/gimpdodgeburntool.c:73 +msgid "Dodge / Burn" +msgstr "Temizle / Yak" + +#: ../app/tools/gimpdodgeburntool.c:74 +msgid "Dodge / Burn Tool: Selectively lighten or darken using a brush" +msgstr "" +"Temizleme / Yakma Aracı: Fırça kullanarak seçerek renk aç ya da koyulaştır" + +#: ../app/tools/gimpdodgeburntool.c:75 +msgid "Dod_ge / Burn" +msgstr "Te_mizle / Yak" + +#: ../app/tools/gimpdodgeburntool.c:173 +msgid "Click to dodge" +msgstr "Temizlemek için tıklayın" + +#: ../app/tools/gimpdodgeburntool.c:174 +msgid "Click to dodge the line" +msgstr "Çizgiyi temizlemek için tıklayın" + +#: ../app/tools/gimpdodgeburntool.c:175 +#, c-format +msgid "%s to burn" +msgstr "Yakmak için %s" + +#: ../app/tools/gimpdodgeburntool.c:179 +msgid "Click to burn" +msgstr "Yakmak için tıklayın" + +#: ../app/tools/gimpdodgeburntool.c:180 +msgid "Click to burn the line" +msgstr "Çizgiyi yakmak için tıklayın" + +#: ../app/tools/gimpdodgeburntool.c:181 +#, c-format +msgid "%s to dodge" +msgstr "Temizlemek için %s" + +#. the type (dodge or burn) +#: ../app/tools/gimpdodgeburntool.c:202 +#, c-format +msgid "Type (%s)" +msgstr "Tip (%s)" + +#. mode (highlights, midtones, or shadows) +#: ../app/tools/gimpdodgeburntool.c:213 +msgid "Range" +msgstr "Erim" + +#: ../app/tools/gimpdodgeburntool.c:225 +msgid "Exposure:" +msgstr "Belirlilik:" + +#: ../app/tools/gimpeditselectiontool.c:244 +#: ../app/tools/gimpeditselectiontool.c:1229 +msgid "Move Floating Selection" +msgstr "Yüzen Seçimi Taşı" + +#: ../app/tools/gimpeditselectiontool.c:457 +#: ../app/tools/gimpeditselectiontool.c:726 +msgid "Move: " +msgstr "Taşı: " + +#: ../app/tools/gimpellipseselecttool.c:68 +msgid "Ellipse Select" +msgstr "Eliptik Seçim" + +#: ../app/tools/gimpellipseselecttool.c:69 +msgid "Ellipse Select Tool: Select an elliptical region" +msgstr "Elips Seçim Aracı: Eliptik bir bölge seç" + +#: ../app/tools/gimpellipseselecttool.c:70 +msgid "_Ellipse Select" +msgstr "_Elips Seçimi" + +#: ../app/tools/gimperasertool.c:67 +msgid "Eraser Tool: Erase to background or transparency using a brush" +msgstr "" +"Silme Aracı: Bir fırça kullanarak artalana ya da saydamlığa yönelik sil" + +#: ../app/tools/gimperasertool.c:68 +msgid "_Eraser" +msgstr "_Silgi" + +#: ../app/tools/gimperasertool.c:97 +msgid "Click to erase" +msgstr "Silmek için tıklayın" + +#: ../app/tools/gimperasertool.c:98 +msgid "Click to erase the line" +msgstr "Çizgiyi silmek için tıklayın" + +#: ../app/tools/gimperasertool.c:99 +#, c-format +msgid "%s to pick a background color" +msgstr "Bir artalan rengi seçmek için %s" + +#. the anti_erase toggle +#: ../app/tools/gimperasertool.c:146 +#, c-format +msgid "Anti erase (%s)" +msgstr "Karşı silme (%s)" + +#: ../app/tools/gimpflipoptions.c:130 +msgid "Affect:" +msgstr "Etki:" + +#. tool toggle +#: ../app/tools/gimpflipoptions.c:139 +#, c-format +msgid "Flip Type (%s)" +msgstr "Çevirme Türü (%s)" + +#: ../app/tools/gimpfliptool.c:79 +msgid "Flip" +msgstr "Çevir" + +#: ../app/tools/gimpfliptool.c:80 +msgid "" +"Flip Tool: Reverse the layer, selection or path horizontally or vertically" +msgstr "" +"Çevirme Aracı: Katmanı, seçimi ya da yolu, yatay veya dikey olarak ters çevir" + +#: ../app/tools/gimpfliptool.c:82 +msgid "_Flip" +msgstr "_Çevir" + +#: ../app/tools/gimpforegroundselectoptions.c:79 +#: ../app/tools/gimpselectionoptions.c:79 +msgid "Smooth edges" +msgstr "Kenarları yumuşat" + +#: ../app/tools/gimpforegroundselectoptions.c:85 +msgid "Select a single contiguous area" +msgstr "Tek bir bitişik alan seç" + +#: ../app/tools/gimpforegroundselectoptions.c:96 +msgid "Size of the brush used for refinements" +msgstr "Saflık için kullanılacak fırçanın boyutu" + +#: ../app/tools/gimpforegroundselectoptions.c:102 +msgid "" +"Smaller values give a more accurate selection border but may introduce holes " +"in the selection" +msgstr "" +"Küçük değerler daha doğru bir seçim sınırı verir ama seçim içinde delikler " +"ortaya çıkabilir" + +#: ../app/tools/gimpforegroundselectoptions.c:121 +msgid "Sensitivity for brightness component" +msgstr "Parlaklık bileşeni için duyarlık" + +#: ../app/tools/gimpforegroundselectoptions.c:127 +msgid "Sensitivity for red/green component" +msgstr "Kırmızı/yeşil bileşen için duyarlık" + +#: ../app/tools/gimpforegroundselectoptions.c:133 +msgid "Sensitivity for yellow/blue component" +msgstr "Sarı/mave bileşen için duyarlık" + +#. single / multiple objects +#: ../app/tools/gimpforegroundselectoptions.c:276 +msgid "Contiguous" +msgstr "Sürekli" + +#. foreground / background +#: ../app/tools/gimpforegroundselectoptions.c:281 +#, c-format +msgid "Interactive refinement (%s)" +msgstr "Etkileşimli saflık (%s)" + +#: ../app/tools/gimpforegroundselectoptions.c:285 +msgid "Mark background" +msgstr "Artalanı imle" + +#: ../app/tools/gimpforegroundselectoptions.c:286 +msgid "Mark foreground" +msgstr "Önalanı imle" + +#: ../app/tools/gimpforegroundselectoptions.c:302 +msgid "Small brush" +msgstr "Küçük fırça" + +#: ../app/tools/gimpforegroundselectoptions.c:310 +msgid "Large brush" +msgstr "Geniş fırça" + +#: ../app/tools/gimpforegroundselectoptions.c:334 +msgid "Smoothing:" +msgstr "Yumuşatma:" + +#: ../app/tools/gimpforegroundselectoptions.c:340 +msgid "Preview color:" +msgstr "Renk önizleme:" + +#. granularity +#: ../app/tools/gimpforegroundselectoptions.c:343 +msgid "Color Sensitivity" +msgstr "Renk Duyarlığı" + +#: ../app/tools/gimpforegroundselecttool.c:145 +msgid "Foreground Select" +msgstr "Önalan Seçimi" + +#: ../app/tools/gimpforegroundselecttool.c:146 +msgid "Foreground Select Tool: Select a region containing foreground objects" +msgstr "Önalan Seçim Aracı: Önalan nesnelerini içeren bir bölge seçin" + +#: ../app/tools/gimpforegroundselecttool.c:147 +msgid "F_oreground Select" +msgstr "Önalan Seçimi" + +#: ../app/tools/gimpforegroundselecttool.c:314 +msgid "Add more strokes or press Enter to accept the selection" +msgstr "" +"Daha çok vuruş ekle ve seçimi kabul etmek için \"Enter\" tuşuna basın" + +#: ../app/tools/gimpforegroundselecttool.c:316 +msgid "Mark foreground by painting on the object to extract" +msgstr "Çıkarılacak nesne üzerini boyayarak önalanı imle" + +#: ../app/tools/gimpforegroundselecttool.c:327 +msgid "Rougly outline the object to extract" +msgstr "Kabaca çıkarılacak nesnenin çerçevesini çiz" + +#: ../app/tools/gimpforegroundselecttool.c:766 +msgctxt "command" +msgid "Foreground Select" +msgstr "Önalanı Seç" + +#: ../app/tools/gimpfreeselecttool.c:198 +msgid "" +"Free Select Tool: Select a hand-drawn region with free and polygonal segments" +msgstr "" +"Serbest Seçim Aracı: Serbest ve çok köşeli seçimlerle bir el-çizimi bölgesi " +"seç" + +#: ../app/tools/gimpfreeselecttool.c:199 +msgid "_Free Select" +msgstr "_Serbest Seçim" + +#: ../app/tools/gimpfreeselecttool.c:1117 +msgid "Click to complete selection" +msgstr "Seçimi tamamlamak için tıklayın" + +#: ../app/tools/gimpfreeselecttool.c:1121 +msgid "Click-Drag to move segment vertex" +msgstr "Kesimin tepe noktasına taşımak için sürükleyi tıklayın" + +#: ../app/tools/gimpfreeselecttool.c:1126 +msgid "Return commits, Escape cancels, Backspace removes last segment" +msgstr "" +"\"Return\" üstlenir, \"Escape\" vazgeçer, \"Backspace\" son kesimi kaldırır" + +#: ../app/tools/gimpfreeselecttool.c:1130 +msgid "Click-Drag adds a free segment, Click adds a polygonal segment" +msgstr "" +"Sürükleyi tıklamak serbest bir kesim ekler, tıklamak çok köşeli bir kesim " +"ekler" + +#: ../app/tools/gimpfreeselecttool.c:1582 +msgctxt "command" +msgid "Free Select" +msgstr "Serbest Seçim" + +#: ../app/tools/gimpfuzzyselecttool.c:65 +msgid "Fuzzy Select" +msgstr "Bulanık Seçim" + +#: ../app/tools/gimpfuzzyselecttool.c:66 +msgid "Fuzzy Select Tool: Select a contiguous region on the basis of color" +msgstr "Bulanık Seçim Aracı: Renk olarak sürekli bir bölge seçin" + +#: ../app/tools/gimpfuzzyselecttool.c:67 +msgid "Fu_zzy Select" +msgstr "_Bulanık Seçim" + +#: ../app/tools/gimpgegltool.c:92 ../app/tools/gimpgegltool.c:111 +msgid "GEGL Operation" +msgstr "GEGL İşlemi" + +#: ../app/tools/gimpgegltool.c:93 +msgid "GEGL Tool: Use an arbitrary GEGL operation" +msgstr "GEGL Aracı: İsteğe bağlı bir GEGL işlemi kullan" + +#: ../app/tools/gimpgegltool.c:94 +msgid "_GEGL Operation..." +msgstr "_GEGL İşlemi..." + +#: ../app/tools/gimpgegltool.c:158 +#, c-format +msgid "GEGL operations do not operate on indexed layers." +msgstr "GEGL işlemleri sıralanmış katmanlarda uygulanamaz." + +#: ../app/tools/gimpgegltool.c:339 +msgid "_Operation:" +msgstr "_İşlem:" + +#. The options vbox +#: ../app/tools/gimpgegltool.c:412 +msgid "Operation Settings" +msgstr "İşlem Ayarları" + +#: ../app/tools/gimphealtool.c:54 +msgid "Healing Tool: Heal image irregularities" +msgstr "İyileştirme Aracı: Görüntü düzensizliklerini iyileştir" + +#: ../app/tools/gimphealtool.c:55 +msgid "_Heal" +msgstr "_İyileştir" + +#: ../app/tools/gimphealtool.c:77 ../app/tools/gimphealtool.c:80 +msgid "Click to heal" +msgstr "İyileştirmek için tıklayın" + +#: ../app/tools/gimphealtool.c:78 ../app/tools/gimphealtool.c:82 +#, c-format +msgid "%s to set a new heal source" +msgstr "Yeni bir iyileştirme kaynağı ayarlamak için %s" + +#: ../app/tools/gimphealtool.c:81 +msgid "Click to set a new heal source" +msgstr "Yeni bir iyileştirme kaynağı ayarlamak için tıklayın" + +#: ../app/tools/gimphistogramoptions.c:127 +msgid "Histogram Scale" +msgstr "Histogram Ölçekleme" + +#: ../app/tools/gimphuesaturationtool.c:103 +msgid "Hue-Saturation Tool: Adjust hue, saturation, and lightness" +msgstr "" +"Renk Özü-Doygunluk Aracı: Renk özünü, doygunluğu ve hafifliği ayarlayın" + +#: ../app/tools/gimphuesaturationtool.c:104 +msgid "Hue-_Saturation..." +msgstr "_Renk-Doygunluk..." + +#: ../app/tools/gimphuesaturationtool.c:121 +msgid "Adjust Hue / Lightness / Saturation" +msgstr "Renk Özü / Hafiflik / Doygunluk Ayarı" + +#: ../app/tools/gimphuesaturationtool.c:123 +msgid "Import Hue-Saturation Settings" +msgstr "Renk Özü-Doygunluk Ayarlarını İçe Aktar" + +#: ../app/tools/gimphuesaturationtool.c:124 +msgid "Export Hue-Saturation Settings" +msgstr "Renk Özü-Doygunluk Ayarlarını Dışa Aktar" + +#: ../app/tools/gimphuesaturationtool.c:171 +#, c-format +msgid "Hue-Saturation operates only on RGB color layers." +msgstr "Renk Özü-Doygunluk sadece RGB renk katmanlarında uygulanabilir." + +#: ../app/tools/gimphuesaturationtool.c:251 +msgid "M_aster" +msgstr "_Ana" + +#: ../app/tools/gimphuesaturationtool.c:251 +msgid "Adjust all colors" +msgstr "Tüm renkleri ayarla" + +#: ../app/tools/gimphuesaturationtool.c:252 +msgid "_R" +msgstr "_R" + +#: ../app/tools/gimphuesaturationtool.c:253 +msgid "_Y" +msgstr "_Y" + +#: ../app/tools/gimphuesaturationtool.c:254 +msgid "_G" +msgstr "_G" + +#: ../app/tools/gimphuesaturationtool.c:255 +msgid "_C" +msgstr "_C" + +#: ../app/tools/gimphuesaturationtool.c:256 +msgid "_B" +msgstr "_B" + +#: ../app/tools/gimphuesaturationtool.c:257 +msgid "_M" +msgstr "_M" + +#: ../app/tools/gimphuesaturationtool.c:262 +msgid "Select Primary Color to Adjust" +msgstr "Ayarlanacak Birincil Renk Seçimi" + +#: ../app/tools/gimphuesaturationtool.c:352 +msgid "_Overlap:" +msgstr "_Örtüşme:" + +#: ../app/tools/gimphuesaturationtool.c:371 +msgid "Adjust Selected Color" +msgstr "Seçilen Rengi Ayarla" + +#: ../app/tools/gimphuesaturationtool.c:447 +msgid "R_eset Color" +msgstr "_Rengi Sıfırla" + +#: ../app/tools/gimpimagemaptool-settings.c:81 +msgid "Pre_sets:" +msgstr "Ön_ayarlar:" + +#: ../app/tools/gimpimagemaptool-settings.c:221 +#, c-format +msgid "Settings saved to '%s'" +msgstr "Ayararın kaydedildiği yer, '%s'" + +#: ../app/tools/gimpimagemaptool.c:318 +msgid "_Preview" +msgstr "Öniz_leme" + +#. adjust sliders +#: ../app/tools/gimpinkoptions-gui.c:56 +msgid "Adjustment" +msgstr "Ayarlama" + +#: ../app/tools/gimpinkoptions-gui.c:68 ../app/tools/gimpinkoptions-gui.c:93 +#: ../app/tools/gimprectangleoptions.c:973 ../app/tools/gimptextoptions.c:452 +msgid "Size:" +msgstr "Büyüklük:" + +#: ../app/tools/gimpinkoptions-gui.c:76 ../app/tools/gimpmeasuretool.c:1037 +#: ../app/widgets/gimpbrusheditor.c:208 +msgid "Angle:" +msgstr "Açı:" + +#. sens sliders +#: ../app/tools/gimpinkoptions-gui.c:81 +msgid "Sensitivity" +msgstr "Duyarlılık" + +#: ../app/tools/gimpinkoptions-gui.c:100 +msgid "Tilt:" +msgstr "Yatma:" + +#: ../app/tools/gimpinkoptions-gui.c:107 +msgid "Speed:" +msgstr "Hız:" + +#: ../app/tools/gimpinkoptions-gui.c:118 +msgid "Type" +msgstr "Tip" + +#. Blob shape widget +#: ../app/tools/gimpinkoptions-gui.c:149 +msgid "Shape" +msgstr "Şekil" + +#: ../app/tools/gimpinktool.c:56 +msgid "Ink Tool: Calligraphy-style painting" +msgstr "Mürekkep Aracı: Kaligrafi biçemle boyama" + +#: ../app/tools/gimpinktool.c:57 +msgid "In_k" +msgstr "_Mürekkep" + +#: ../app/tools/gimpiscissorsoptions.c:126 +msgid "Interactive boundary" +msgstr "Etkileşimli sınır" + +#: ../app/tools/gimpiscissorstool.c:278 +msgid "Scissors" +msgstr "Makas" + +#: ../app/tools/gimpiscissorstool.c:279 +msgid "Scissors Select Tool: Select shapes using intelligent edge-fitting" +msgstr "Makas Seçim Aracı:" + +#: ../app/tools/gimpiscissorstool.c:280 +msgid "Intelligent _Scissors" +msgstr "Akıllı _Makaslar" + +#: ../app/tools/gimpiscissorstool.c:940 ../app/tools/gimpmeasuretool.c:609 +msgid "Click-Drag to move this point" +msgstr "Bu noktayı taşımak için Sürükle'yi tıklayın" + +#: ../app/tools/gimpiscissorstool.c:942 ../app/tools/gimpiscissorstool.c:1007 +#, c-format +msgid "%s: disable auto-snap" +msgstr "%s: otomatik yanaştırma aktif değil" + +#: ../app/tools/gimpiscissorstool.c:959 +msgid "Click to close the curve" +msgstr "Eğriyi kapatmak için tıklayın" + +#: ../app/tools/gimpiscissorstool.c:965 +msgid "Click to add a point on this segment" +msgstr "Bu kesim üzerine bir nokta eklemek için tıklayın" + +#: ../app/tools/gimpiscissorstool.c:979 +msgid "Click or press Enter to convert to a selection" +msgstr "Bir seçime dönüştürmek için \"Enter\"a basın ya da tıklayın" + +#: ../app/tools/gimpiscissorstool.c:989 +msgid "Press Enter to convert to a selection" +msgstr "Bir seçime dönüştürmek için \"Enter\"a basın" + +#: ../app/tools/gimpiscissorstool.c:1004 +msgid "Click or Click-Drag to add a point" +msgstr "Bir nokta eklemek için tıklayın ya da Sürükle'ye tıklayın" + +#: ../app/tools/gimplevelstool.c:151 +msgid "Levels Tool: Adjust color levels" +msgstr "Düzey Aracı: Renk düzeylerini ayarla" + +#: ../app/tools/gimplevelstool.c:152 +msgid "_Levels..." +msgstr "_Seviyeler..." + +#: ../app/tools/gimplevelstool.c:174 +msgid "Import Levels" +msgstr "Düzeyleri İçe Aktar" + +#: ../app/tools/gimplevelstool.c:175 +msgid "Export Levels" +msgstr "Düzeyleri Dışa Aktar" + +#: ../app/tools/gimplevelstool.c:228 +#, c-format +msgid "Levels does not operate on indexed layers." +msgstr "Düzeyler sıralanmış katmanlar üzerinde uygulanamaz." + +#: ../app/tools/gimplevelstool.c:310 +msgid "Pick black point" +msgstr "Siyah nokta seç" + +#: ../app/tools/gimplevelstool.c:314 +msgid "Pick gray point" +msgstr "Gri nokta seç" + +#: ../app/tools/gimplevelstool.c:318 +msgid "Pick white point" +msgstr "Beyaz nokta seç" + +#. Input levels frame +#: ../app/tools/gimplevelstool.c:419 +msgid "Input Levels" +msgstr "Giriş Seviyeleri" + +#: ../app/tools/gimplevelstool.c:522 +msgid "Gamma" +msgstr "Gamma" + +#. Output levels frame +#: ../app/tools/gimplevelstool.c:564 +msgid "Output Levels" +msgstr "Çıkış Seviyeleri" + +#. all channels frame +#: ../app/tools/gimplevelstool.c:641 +msgid "All Channels" +msgstr "Tüm Kanallar" + +#: ../app/tools/gimplevelstool.c:655 +msgid "Adjust levels automatically" +msgstr "Seviyeleri otomatik ayarla" + +#: ../app/tools/gimplevelstool.c:682 +msgid "Edit these Settings as Curves" +msgstr "Bu Ayarları Eğri olarak düzenle" + +#: ../app/tools/gimplevelstool.c:825 +msgid "Use _old levels file format" +msgstr "_Eski seviyelerin dosya biçimini kullan" + +#: ../app/tools/gimpmagnifyoptions.c:167 +msgid "Auto-resize window" +msgstr "Pencereyi otomatik boyutlandır" + +#. tool toggle +#: ../app/tools/gimpmagnifyoptions.c:172 ../app/tools/gimpmoveoptions.c:188 +#, c-format +msgid "Tool Toggle (%s)" +msgstr "Araç Geçişi (%s)" + +#: ../app/tools/gimpmagnifytool.c:86 +msgid "Zoom" +msgstr "Yakınlaştır" + +#: ../app/tools/gimpmagnifytool.c:87 +msgid "Zoom Tool: Adjust the zoom level" +msgstr "Yakınlaştırma Aracı: Yakınlaştırma düzeyini ayarla" + +#: ../app/tools/gimpmagnifytool.c:88 +msgid "tool|_Zoom" +msgstr "_Yakınlaştır" + +#: ../app/tools/gimpmeasureoptions.c:124 +msgid "Use info window" +msgstr "Bilgi penceresini kullan" + +#: ../app/tools/gimpmeasuretool.c:121 +msgid "Measure" +msgstr "Ölçüm" + +#: ../app/tools/gimpmeasuretool.c:122 +msgid "Measure Tool: Measure distances and angles" +msgstr "Ölçüm Aracı: Açıları ve uzaklıkları ölç" + +#: ../app/tools/gimpmeasuretool.c:123 +msgid "_Measure" +msgstr "Ö_lçüm" + +#: ../app/tools/gimpmeasuretool.c:241 +msgid "Add Guides" +msgstr "Kılavuz Ekle" + +#: ../app/tools/gimpmeasuretool.c:561 +msgid "Click to place vertical and horizontal guides" +msgstr "Dikey ve yatay kılavuzları yerleştirmek için tıklayın" + +#: ../app/tools/gimpmeasuretool.c:570 +msgid "Click to place a horizontal guide" +msgstr "Yatay bir kılavuz yerleştirmek için tıklayın" + +#: ../app/tools/gimpmeasuretool.c:584 +msgid "Click to place a vertical guide" +msgstr "Dikey bir kılavuz yerleştirmek için tıklayın" + +#: ../app/tools/gimpmeasuretool.c:598 +msgid "Click-Drag to add a new point" +msgstr "Yeni bir nokta eklemek için Sürükle'ye tıklayın" + +#: ../app/tools/gimpmeasuretool.c:628 +msgid "Click-Drag to move all points" +msgstr "Tüm noktaları taşımak için Sürükle'ye tıklayın" + +#. tool->display->shell +#: ../app/tools/gimpmeasuretool.c:989 +msgid "Measure Distances and Angles" +msgstr "Açı ve Uzunlukları Ölç" + +#: ../app/tools/gimpmeasuretool.c:1009 +msgid "Distance:" +msgstr "Uzaklık:" + +#: ../app/tools/gimpmoveoptions.c:140 +msgid "Pick a layer or guide" +msgstr "Bir katman ya da kılavuz seçin" + +#: ../app/tools/gimpmoveoptions.c:141 +msgid "Move the active layer" +msgstr "Etkin katmanı taşı" + +#: ../app/tools/gimpmoveoptions.c:145 +msgid "Move selection" +msgstr "Seçimi taşı" + +#: ../app/tools/gimpmoveoptions.c:149 +msgid "Pick a path" +msgstr "Bir yol seç" + +#: ../app/tools/gimpmoveoptions.c:150 +msgid "Move the active path" +msgstr "Etkin yolu taşı" + +#: ../app/tools/gimpmoveoptions.c:179 +msgid "Move:" +msgstr "Taşı:" + +#: ../app/tools/gimpmovetool.c:127 +msgctxt "tool" +msgid "Move" +msgstr "Taşı" + +#: ../app/tools/gimpmovetool.c:128 +msgid "Move Tool: Move layers, selections, and other objects" +msgstr "Taşıma Aracı: Katmanları, seçimleri ve diğer nesneleri taşı" + +#: ../app/tools/gimpmovetool.c:129 +msgid "_Move" +msgstr "_Taşı" + +#: ../app/tools/gimpmovetool.c:276 ../app/tools/gimpmovetool.c:570 +msgid "Move Guide: " +msgstr "Kılavuzu Taşı: " + +#: ../app/tools/gimpmovetool.c:564 +msgid "Cancel Guide" +msgstr "İptal Et" + +#: ../app/tools/gimpmovetool.c:570 +msgid "Add Guide: " +msgstr "Kılavuz Ekle: " + +#: ../app/tools/gimppaintbrushtool.c:52 +msgid "Paintbrush Tool: Paint smooth strokes using a brush" +msgstr "Boya Fırçası Aracı: Bir fırça kullaranak yumuşak vuruşlarla boya" + +#: ../app/tools/gimppaintbrushtool.c:53 +msgid "_Paintbrush" +msgstr "_Boya Fırçası" + +#: ../app/tools/gimppaintoptions-gui.c:112 +#: ../app/tools/gimpselectionoptions.c:211 +#: ../app/widgets/gimpbrushselect.c:191 ../app/widgets/gimplayertreeview.c:269 +msgid "Mode:" +msgstr "Kip:" + +#: ../app/tools/gimppaintoptions-gui.c:127 +#: ../app/tools/gimptransformoptions.c:348 +#: ../app/widgets/gimpbrushselect.c:178 ../app/widgets/gimplayertreeview.c:284 +msgid "Opacity:" +msgstr "Saydamsızlık:" + +#: ../app/tools/gimppaintoptions-gui.c:137 +msgid "Brush:" +msgstr "Fırça:" + +#: ../app/tools/gimppaintoptions-gui.c:142 +msgid "Scale:" +msgstr "Ölçek:" + +#: ../app/tools/gimppaintoptions-gui.c:150 +msgid "Opacity" +msgstr "Saydamsızlık" + +#: ../app/tools/gimppaintoptions-gui.c:156 +msgid "Hardness" +msgstr "Sertlik" + +#: ../app/tools/gimppaintoptions-gui.c:162 +msgid "Rate" +msgstr "Oran" + +#: ../app/tools/gimppaintoptions-gui.c:168 ../app/tools/tools-enums.c:151 +msgid "Size" +msgstr "Boyut" + +#: ../app/tools/gimppaintoptions-gui.c:186 +msgid "Brush Dynamics" +msgstr "Fırça Dinamikleri" + +#: ../app/tools/gimppaintoptions-gui.c:204 +msgid "Velocity:" +msgstr "Hızlılık:" + +#: ../app/tools/gimppaintoptions-gui.c:210 +msgid "Random:" +msgstr "Rastgele:" + +#: ../app/tools/gimppaintoptions-gui.c:264 +msgid "Incremental" +msgstr "Artımlı" + +#: ../app/tools/gimppaintoptions-gui.c:280 +msgid "Hard edge" +msgstr "Kalın kenar" + +#: ../app/tools/gimppaintoptions-gui.c:565 +msgid "Fade out" +msgstr "Soldurma Uygula" + +#: ../app/tools/gimppaintoptions-gui.c:574 +#: ../app/tools/gimppaintoptions-gui.c:657 +msgid "Length:" +msgstr "Uzunluk:" + +#: ../app/tools/gimppaintoptions-gui.c:601 +msgid "Apply Jitter" +msgstr "Kararsızlık Uygula" + +#: ../app/tools/gimppaintoptions-gui.c:606 +msgid "Amount:" +msgstr "Miktar:" + +#: ../app/tools/gimppaintoptions-gui.c:631 +msgid "Use color from gradient" +msgstr "Renk geçişinden renk kullan" + +#: ../app/tools/gimppainttool.c:136 +msgid "Click to paint" +msgstr "Boyamak için tıklayın" + +#: ../app/tools/gimppainttool.c:137 +msgid "Click to draw the line" +msgstr "Çizgi çekmek için tıklayın" + +#: ../app/tools/gimppainttool.c:138 +#, c-format +msgid "%s to pick a color" +msgstr "Bir renk seçmek için %s" + +#: ../app/tools/gimppainttool.c:662 +#, c-format +msgid "%s for a straight line" +msgstr "Düz bir çizgi için %s" + +#: ../app/tools/gimppenciltool.c:52 +msgid "Pencil Tool: Hard edge painting using a brush" +msgstr "Kalem Aracı:" + +#: ../app/tools/gimppenciltool.c:53 +msgid "Pe_ncil" +msgstr "_Kalem" + +#: ../app/tools/gimpperspectiveclonetool.c:127 +msgid "" +"Perspective Clone Tool: Clone from an image source after applying a " +"perspective transformation" +msgstr "" +"Perspektif Kopyalama Aracı: Bir perspektif dönüşümü uyguladıktan sonra bir " +"görüntü kaynağından kopyala" + +#: ../app/tools/gimpperspectiveclonetool.c:129 +msgid "_Perspective Clone" +msgstr "_Perspektif Kopyalama" + +#: ../app/tools/gimpperspectiveclonetool.c:692 +msgid "Ctrl-Click to set a clone source" +msgstr "Bir kopya kaynağı ayarlamak için \"Ctrl\" ile tıklayın" + +#: ../app/tools/gimpperspectivetool.c:70 +msgid "Perspective Tool: Change perspective of the layer, selection or path" +msgstr "" +"Perspektif Aracı: Katmanın, seçimin ya da yolun perspektifini değiştir" + +#: ../app/tools/gimpperspectivetool.c:72 +msgid "_Perspective" +msgstr "_Perspektif" + +#: ../app/tools/gimpperspectivetool.c:99 +msgctxt "command" +msgid "Perspective" +msgstr "Perspektif" + +#: ../app/tools/gimpperspectivetool.c:100 +msgid "Perspective transformation" +msgstr "Perspektif Dönüşümü" + +#: ../app/tools/gimpperspectivetool.c:115 +msgid "Transformation Matrix" +msgstr "Dönüşüm Dizeyi" + +#: ../app/tools/gimpposterizetool.c:85 +msgid "Posterize Tool: Reduce to a limited set of colors" +msgstr "Posterleştirme Aracı: Sınırlı bir renk grubuna küçült" + +#: ../app/tools/gimpposterizetool.c:86 +msgid "_Posterize..." +msgstr "_Posterleştir.." + +#: ../app/tools/gimpposterizetool.c:103 +msgid "Posterize (Reduce Number of Colors)" +msgstr "Posterleştir (Renk Sayısını Azalt)" + +#: ../app/tools/gimpposterizetool.c:151 +#, c-format +msgid "Posterize does not operate on indexed layers." +msgstr "Posterleştirme indisli katmanlarda çalışmaz." + +#: ../app/tools/gimpposterizetool.c:226 +msgid "Posterize _levels:" +msgstr "Seviyeleri _posterleştir:" + +#: ../app/tools/gimprectangleoptions.c:112 +msgid "Use all visible layers when shrinking the selection" +msgstr "Seçimi küçültürken tüm görünür katmanları kullan" + +#. Current, as in what is currently in use. +#: ../app/tools/gimprectangleoptions.c:729 +msgid "Current" +msgstr "Şimdiki" + +#: ../app/tools/gimprectangleoptions.c:807 +msgid "Expand from center" +msgstr "Merkezden genişlet" + +#: ../app/tools/gimprectangleoptions.c:830 +msgid "Fixed:" +msgstr "Değişmez:" + +#: ../app/tools/gimprectangleoptions.c:963 +msgid "Position:" +msgstr "Konum:" + +#: ../app/tools/gimprectangleoptions.c:981 +msgid "Highlight" +msgstr "Vurgulama" + +#. Auto Shrink +#: ../app/tools/gimprectangleoptions.c:991 +msgid "Auto Shrink" +msgstr "Otomatik Küçült" + +#: ../app/tools/gimprectangleoptions.c:998 +msgid "Shrink merged" +msgstr "Birleştirip küçült" + +#: ../app/tools/gimprectangleselectoptions.c:164 +msgid "Rounded corners" +msgstr "Yuvarlatılmış köşeler" + +#: ../app/tools/gimprectangleselecttool.c:167 +msgid "Rectangle Select" +msgstr "Dikdörtgen Seçimi" + +#: ../app/tools/gimprectangleselecttool.c:168 +msgid "Rectangle Select Tool: Select a rectangular region" +msgstr "Dikdörtgen Seçim Aracı: Dikdörtgen bir bölge seçin" + +#: ../app/tools/gimprectangleselecttool.c:169 +msgid "_Rectangle Select" +msgstr "D_ikdörtgen Seçimi" + +#: ../app/tools/gimprectangletool.c:1085 ../app/tools/gimprectangletool.c:1981 +msgid "Rectangle: " +msgstr "Dikdörtgen: " + +#: ../app/tools/gimpregionselectoptions.c:83 +msgid "Allow completely transparent regions to be selected" +msgstr "Tamamen saydam bölgelerin seçilebilmesine izin ver" + +#: ../app/tools/gimpregionselectoptions.c:90 +msgid "Base region_select on all visible layers" +msgstr "Tüm görünür katmanlar üzerinde taban bölge _seçimi" + +#: ../app/tools/gimpregionselectoptions.c:202 +msgid "Select transparent areas" +msgstr "Şeffaf alanları seç" + +#: ../app/tools/gimpregionselectoptions.c:227 +msgid "Select by:" +msgstr "Seçme göreliği:" + +#: ../app/tools/gimpregionselecttool.c:162 +msgid "Move the mouse to change threshold" +msgstr "Eşiği değiştirmek için fareyi taşıyın" + +#: ../app/tools/gimprotatetool.c:90 +msgid "Rotate" +msgstr "Döndür" + +#: ../app/tools/gimprotatetool.c:91 +msgid "Rotate Tool: Rotate the layer, selection or path" +msgstr "Döndürme Aracı: Katmanı, seçimi ya da yolu döndür" + +#: ../app/tools/gimprotatetool.c:92 +msgid "_Rotate" +msgstr "_Döndür" + +#: ../app/tools/gimprotatetool.c:188 +msgid "_Angle:" +msgstr "_Açı:" + +#: ../app/tools/gimprotatetool.c:204 +msgid "Center _X:" +msgstr "Merkez _X:" + +#: ../app/tools/gimprotatetool.c:213 +msgid "Center _Y:" +msgstr "Merkez _Y:" + +#: ../app/tools/gimpscaletool.c:78 +msgid "Scale" +msgstr "Ölçeklendir" + +#: ../app/tools/gimpscaletool.c:79 +msgid "Scale Tool: Scale the layer, selection or path" +msgstr "Ölçeklendirme Aracı: Katmanı, seçimi ya da yolu ölçeklendir" + +#: ../app/tools/gimpscaletool.c:80 +msgid "_Scale" +msgstr "Ö_lçeklendir" + +#: ../app/tools/gimpscaletool.c:106 +msgctxt "command" +msgid "Scale" +msgstr "Ölçeklendir" + +#: ../app/tools/gimpselectionoptions.c:258 ../app/tools/gimptextoptions.c:473 +msgid "Antialiasing" +msgstr "Yazıtipi yumuşatma" + +#: ../app/tools/gimpselectionoptions.c:273 +msgid "Feather edges" +msgstr "Kenarları yumuşat" + +#: ../app/tools/gimpselectiontool.c:251 +msgid "Click-Drag to replace the current selection" +msgstr "Şimdiki seçimin yerine koymak için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:259 +msgid "Click-Drag to create a new selection" +msgstr "Yeni bir seçim oluşturmak için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:264 +msgid "Click-Drag to add to the current selection" +msgstr "Şimdiki seçime eklemek için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:273 +msgid "Click-Drag to subtract from the current selection" +msgstr "Şimdiki seçimden çıkartmak için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:282 +msgid "Click-Drag to intersect with the current selection" +msgstr "Şimdiki seçimle kesiştirmek için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:292 +msgid "Click-Drag to move the selection mask" +msgstr "Seçim maskesini taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:300 +msgid "Click-Drag to move the selected pixels" +msgstr "Seçilmiş benekleri taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:304 +msgid "Click-Drag to move a copy of the selected pixels" +msgstr "Seçilmiş beneklerin bir kopyasını taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpselectiontool.c:308 +msgid "Click to anchor the floating selection" +msgstr "Yüzen seçimi çapalamak için tıklayın" + +#: ../app/tools/gimpsheartool.c:82 +msgid "Shear" +msgstr "Eğme" + +#: ../app/tools/gimpsheartool.c:83 +msgid "Shear Tool: Shear the layer, selection or path" +msgstr "Eğme Aracı: Katmanı, seçimi ya da yolu eğ" + +#: ../app/tools/gimpsheartool.c:84 +msgid "S_hear" +msgstr "_Eğme" + +#: ../app/tools/gimpsheartool.c:110 +msgctxt "command" +msgid "Shear" +msgstr "Eğ" + +#: ../app/tools/gimpsheartool.c:134 +msgid "Shear magnitude _X:" +msgstr "_X eğme büyüklüğü:" + +#: ../app/tools/gimpsheartool.c:144 +msgid "Shear magnitude _Y:" +msgstr "_Y eğme büyüklüğü:" + +#: ../app/tools/gimpsmudgetool.c:54 +msgid "Smudge Tool: Smudge selectively using a brush" +msgstr "Lekeleme Aracı: Bir fırça kullanıp seçerek lekeleyin" + +#: ../app/tools/gimpsmudgetool.c:55 +msgid "_Smudge" +msgstr "_Lekeleme" + +#: ../app/tools/gimpsmudgetool.c:74 +msgid "Click to smudge" +msgstr "Lekelemek için tıklayın" + +#: ../app/tools/gimpsmudgetool.c:75 +msgid "Click to smudge the line" +msgstr "Çizgiyi lekelemek için tıklayın" + +#: ../app/tools/gimptextoptions.c:127 +msgid "" +"Hinting alters the font outline to produce a crisp bitmap at small sizes" +msgstr "" +"Dokunma, yazıyüzü dış çizgisini, küçük boyutlu canlı bit eşlem oluşturmak " +"için değiştirir" + +#: ../app/tools/gimptextoptions.c:134 +msgid "" +"If available, hints from the font are used but you may prefer to always use " +"the automatic hinter" +msgstr "" +"Eğer kullanılır ise, yazıyüzlerindeki ipuçları kullanılır ama otomatik ipucu " +"vericiyi kullanmayı tercih edebilirsiniz" + +#: ../app/tools/gimptextoptions.c:159 +msgid "Indentation of the first line" +msgstr "İlk satırın girintili yazımı" + +#: ../app/tools/gimptextoptions.c:165 +msgid "Adjust line spacing" +msgstr "Satır boşluğunu ayarla" + +#: ../app/tools/gimptextoptions.c:171 +msgid "Adjust letter spacing" +msgstr "Harf boşluğunu ayarla" + +#: ../app/tools/gimptextoptions.c:445 +msgid "Font:" +msgstr "Yazıtipi:" + +#: ../app/tools/gimptextoptions.c:461 +msgid "Hinting" +msgstr "İpucu Verme" + +#: ../app/tools/gimptextoptions.c:466 +msgid "Force auto-hinter" +msgstr "Otomatik ipucu vermeyi zorla" + +#: ../app/tools/gimptextoptions.c:487 +msgid "Text Color" +msgstr "Metin Rengi" + +#: ../app/tools/gimptextoptions.c:492 +msgid "Color:" +msgstr "Renk:" + +#: ../app/tools/gimptextoptions.c:498 +msgid "Justify:" +msgstr "Hizalama:" + +#. Create a path from the current text +#: ../app/tools/gimptextoptions.c:520 +msgid "Path from Text" +msgstr "Metinden Yola" + +#: ../app/tools/gimptextoptions.c:527 +msgid "Text along Path" +msgstr "Yol boyunca metin" + +#: ../app/tools/gimptexttool.c:162 +msgid "Text Tool: Create or edit text layers" +msgstr "Metin Aracı: Metin katmanları oluştur ya da düzenle" + +#: ../app/tools/gimptexttool.c:163 +msgid "Te_xt" +msgstr "_Metin" + +#: ../app/tools/gimptexttool.c:987 +msgid "GIMP Text Editor" +msgstr "GIMP Metin Düzenleyici" + +#: ../app/tools/gimptexttool.c:1103 ../app/tools/gimptexttool.c:1106 +msgid "Confirm Text Editing" +msgstr "Metin Düzenlemeyi Onayla" + +#: ../app/tools/gimptexttool.c:1110 +msgid "Create _New Layer" +msgstr "_Yeni Katman Oluştur" + +#: ../app/tools/gimptexttool.c:1134 +msgid "" +"The layer you selected is a text layer but it has been modified using other " +"tools. Editing the layer with the text tool will discard these " +"modifications.\n" +"\n" +"You can edit the layer or create a new text layer from its text attributes." +msgstr "" +"Seçtiğiniz katman bir metin katmanı ama başka araçlar kullanılarak " +"değiştirilmiş. Katmanı bir metin aracı ile düzenlemek bu değişikliklerden " +"vazgeçilmesini sağlayacaktır.\n" +"\n" +"Katmanı düzenleyebilirsiniz ya da metin özniteliklerinden yeni bir metin " +"katmanı oluşturabilirsiniz." + +#: ../app/tools/gimptexttool.c:1356 +msgid "Reshape Text Layer" +msgstr "Metin Katmanını Yeniden Şekillendir" + +#: ../app/tools/gimpthresholdtool.c:91 +msgid "Threshold Tool: Reduce image to two colors using a threshold" +msgstr "Eşik Aracı: Bir eşik kullanarak görüntüyü iki renge düşürün" + +#: ../app/tools/gimpthresholdtool.c:92 +msgid "_Threshold..." +msgstr "_Eşik..." + +#: ../app/tools/gimpthresholdtool.c:109 +msgid "Apply Threshold" +msgstr "Sınırı Uygula" + +#: ../app/tools/gimpthresholdtool.c:111 +msgid "Import Threshold Settings" +msgstr "Eşik Ayarlarını İçe Aktar" + +#: ../app/tools/gimpthresholdtool.c:112 +msgid "Export Threshold Settings" +msgstr "Eşik Ayarlarını Dışa Aktar" + +#: ../app/tools/gimpthresholdtool.c:161 +#, c-format +msgid "Threshold does not operate on indexed layers." +msgstr "Alt sınır işlemi indisli katmanlarda çalışamaz." + +#: ../app/tools/gimpthresholdtool.c:266 +msgid "Automatically adjust to optimal binarization threshold" +msgstr "Otomatik olarak en uygun ikili eşiğe göre ayarla" + +#: ../app/tools/gimptransformoptions.c:273 +msgid "Transform:" +msgstr "Dönüştür:" + +#: ../app/tools/gimptransformoptions.c:282 +msgid "Direction" +msgstr "Yön" + +#. the interpolation menu +#: ../app/tools/gimptransformoptions.c:287 +msgid "Interpolation:" +msgstr "Aradeğerleme:" + +#: ../app/tools/gimptransformoptions.c:300 +msgid "Clipping:" +msgstr "Kırpma:" + +#: ../app/tools/gimptransformoptions.c:318 +msgid "Preview:" +msgstr "Önizleme:" + +#: ../app/tools/gimptransformoptions.c:389 +#, c-format +msgid "15 degrees (%s)" +msgstr "15 derece (%s)" + +#: ../app/tools/gimptransformoptions.c:393 +#, c-format +msgid "Keep aspect (%s)" +msgstr "Görünüşü koru (%s)" + +#: ../app/tools/gimptransformtool.c:238 +msgid "Transforming" +msgstr "Dönüştürme" + +#: ../app/tools/gimptransformtool.c:1165 +msgid "There is no layer to transform." +msgstr "Dönüştürmek için hiçbir katman yok." + +#: ../app/tools/gimptransformtool.c:1176 +msgid "There is no path to transform." +msgstr "Dönüştürülecek hiçbir yol yok." + +#: ../app/tools/gimpvectoroptions.c:77 +msgid "Restrict editing to polygons" +msgstr "Düzenlemeyi çokgenlerle kısıtla" + +#: ../app/tools/gimpvectoroptions.c:156 +msgid "Edit Mode" +msgstr "Düzenleme Kipi" + +#: ../app/tools/gimpvectoroptions.c:174 +msgid "Polygonal" +msgstr "Poligonal" + +#: ../app/tools/gimpvectoroptions.c:178 +#, c-format +msgid "" +"Path to Selection\n" +"%s Add\n" +"%s Subtract\n" +"%s Intersect" +msgstr "" +"Seçimden Yola\n" +"%s Ekle\n" +"%s Çıkar\n" +"%s Kesiştir" + +#. Create a selection from the current path +#: ../app/tools/gimpvectoroptions.c:189 +msgid "Selection from Path" +msgstr "Yoldan Seçim" + +#: ../app/tools/gimpvectortool.c:161 +msgid "Paths Tool: Create and edit paths" +msgstr "Yol Aracı: Yol oluştur ve düzenle" + +#: ../app/tools/gimpvectortool.c:162 +msgid "Pat_hs" +msgstr "Y_ollar" + +#: ../app/tools/gimpvectortool.c:322 +msgid "Add Stroke" +msgstr "Darbe Ekle" + +#: ../app/tools/gimpvectortool.c:345 +msgid "Add Anchor" +msgstr "Çıpa Ekle" + +#: ../app/tools/gimpvectortool.c:370 +msgid "Insert Anchor" +msgstr "Çıpayı Araya Ekle" + +#: ../app/tools/gimpvectortool.c:400 +msgid "Drag Handle" +msgstr "Tanıtıcıyı Sürükle" + +#: ../app/tools/gimpvectortool.c:429 +msgid "Drag Anchor" +msgstr "Çıpayı Sürükle" + +#: ../app/tools/gimpvectortool.c:446 +msgid "Drag Anchors" +msgstr "Çıpaları Sürükle" + +#: ../app/tools/gimpvectortool.c:468 +msgid "Drag Curve" +msgstr "Eğriyi Sürükle" + +#: ../app/tools/gimpvectortool.c:496 +msgid "Connect Strokes" +msgstr "Vuruşları Bağla" + +#: ../app/tools/gimpvectortool.c:527 +msgid "Drag Path" +msgstr "Yolu Sürükle" + +#: ../app/tools/gimpvectortool.c:537 +msgid "Convert Edge" +msgstr "Kenarları Dönüştür" + +#: ../app/tools/gimpvectortool.c:567 +msgid "Delete Anchor" +msgstr "Çıpayı Sil" + +#: ../app/tools/gimpvectortool.c:589 +msgid "Delete Segment" +msgstr "Segmenti Sil" + +#: ../app/tools/gimpvectortool.c:807 +msgid "Move Anchors" +msgstr "Çıpaları Taşı" + +#: ../app/tools/gimpvectortool.c:1167 +msgid "Click to pick path to edit" +msgstr "Yolu seçip düzenlemek için tıklayın" + +#: ../app/tools/gimpvectortool.c:1171 +msgid "Click to create a new path" +msgstr "Yeni yol oluşturmak için tıklayın" + +#: ../app/tools/gimpvectortool.c:1175 +msgid "Click to create a new component of the path" +msgstr "Yolun yeni bir bileşenini oluşturmak için tıklayın" + +#: ../app/tools/gimpvectortool.c:1179 +msgid "Click or Click-Drag to create a new anchor" +msgstr "Yeni bir çıpa oluşturmak için tıklayın ya da tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1189 ../app/tools/gimpvectortool.c:1196 +msgid "Click-Drag to move the anchor around" +msgstr "Çıpayı etrafında taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1200 ../app/tools/gimpvectortool.c:1213 +msgid "Click-Drag to move the anchors around" +msgstr "Çıpaları etraflarında taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1204 +msgid "Click-Drag to move the handle around" +msgstr "Tanıtıcıyı etrafında döndürmek için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1218 +msgid "Click-Drag to change the shape of the curve" +msgstr "Eğrinin şeklini değiştirmek için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1221 +#, c-format +msgid "%s: symmetrical" +msgstr "%s: simetrik" + +#: ../app/tools/gimpvectortool.c:1226 +msgid "Click-Drag to move the component around" +msgstr "Bileşeni etrafında taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1234 +msgid "Click-Drag to move the path around" +msgstr "Yolu etrafında taşımak için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1238 +msgid "Click-Drag to insert an anchor on the path" +msgstr "Yol üzerine bir çıpa eklemek için tıklayıp sürükleyin" + +#: ../app/tools/gimpvectortool.c:1246 +msgid "Click to delete this anchor" +msgstr "Bu çıpayı silmek için tıklayın" + +#: ../app/tools/gimpvectortool.c:1250 +msgid "Click to connect this anchor with the selected endpoint" +msgstr "Bu çıpa ile seçilmiş bitim noktasını bağlamak için tıklayın" + +#: ../app/tools/gimpvectortool.c:1255 +msgid "Click to open up the path" +msgstr "Yolu açmak için tıklayın" + +#: ../app/tools/gimpvectortool.c:1259 +msgid "Click to make this node angular" +msgstr "Bu düğümü köşeli yapmak için tıklayın" + +#: ../app/tools/gimpvectortool.c:1766 +msgid "Delete Anchors" +msgstr "Çıpaları Sil" + +#: ../app/tools/gimpvectortool.c:1939 +msgid "There is no active layer or channel to stroke to" +msgstr "Vuruş yapılacak etkin bir katman ya da kanal yok" + +#: ../app/tools/tools-enums.c:58 +msgid "No guides" +msgstr "Kılavuz yok" + +#: ../app/tools/tools-enums.c:59 +msgid "Center lines" +msgstr "Orta çizgiler" + +#: ../app/tools/tools-enums.c:60 +msgid "Rule of thirds" +msgstr "Üçlü Kuralı" + +#: ../app/tools/tools-enums.c:61 +msgid "Golden sections" +msgstr "Altın bölümler" + +#: ../app/tools/tools-enums.c:148 +msgid "Aspect ratio" +msgstr "En boy oranı" + +#: ../app/tools/tools-enums.c:149 ../app/widgets/gimpgrideditor.c:265 +#: ../app/widgets/gimpgrideditor.c:297 +msgid "Width" +msgstr "Genişlik" + +#: ../app/tools/tools-enums.c:150 ../app/widgets/gimpgrideditor.c:267 +#: ../app/widgets/gimpgrideditor.c:299 +msgid "Height" +msgstr "Yükseklik" + +#: ../app/tools/tools-enums.c:179 +msgid "Free select" +msgstr "Serbest seçim" + +#: ../app/tools/tools-enums.c:180 +msgid "Fixed size" +msgstr "Sabit boyut" + +#: ../app/tools/tools-enums.c:181 +msgid "Fixed aspect ratio" +msgstr "Sabit görünüm oranı" + +#: ../app/tools/tools-enums.c:211 ../app/vectors/gimpvectors.c:192 +msgid "Path" +msgstr "Yol" + +#: ../app/tools/tools-enums.c:240 +msgid "Outline" +msgstr "Çerçeve" + +#: ../app/tools/tools-enums.c:243 +msgid "Image + Grid" +msgstr "Görüntü + Izgara" + +#: ../app/tools/tools-enums.c:270 +msgid "Number of grid lines" +msgstr "Izgara çizgilerinin sayısı" + +#: ../app/tools/tools-enums.c:271 +msgid "Grid line spacing" +msgstr "Izgara çizgisi boşluğu" + +#: ../app/tools/tools-enums.c:299 +msgid "Design" +msgstr "Tasarım" + +#: ../app/tools/tools-enums.c:301 +msgid "Move" +msgstr "Taşı" + +#: ../app/vectors/gimpvectors.c:193 +msgid "Rename Path" +msgstr "Yolu Yeniden Adlandır" + +#: ../app/vectors/gimpvectors.c:194 ../app/vectors/gimpvectors.c:316 +msgid "Move Path" +msgstr "Yolu Taşı" + +#: ../app/vectors/gimpvectors.c:195 +msgid "Scale Path" +msgstr "Yolu Ölçeklendir" + +#: ../app/vectors/gimpvectors.c:196 +msgid "Resize Path" +msgstr "Yolu Boyutlandır" + +#: ../app/vectors/gimpvectors.c:197 ../app/vectors/gimpvectors.c:415 +msgid "Flip Path" +msgstr "Yolu Çevir" + +#: ../app/vectors/gimpvectors.c:198 ../app/vectors/gimpvectors.c:446 +msgid "Rotate Path" +msgstr "Yolu Döndür" + +#: ../app/vectors/gimpvectors.c:199 ../app/vectors/gimpvectors.c:476 +msgid "Transform Path" +msgstr "Yolu Dönüştür" + +#: ../app/vectors/gimpvectors-export.c:96 +#, c-format +msgid "Error while writing '%s': %s" +msgstr "'%s' yazılırken hata: %s" + +#: ../app/vectors/gimpvectors-import.c:296 +msgid "Import Paths" +msgstr "Yolları Al" + +#: ../app/vectors/gimpvectors-import.c:307 +msgid "Imported Path" +msgstr "İçe Aktarılmış Yol" + +#: ../app/vectors/gimpvectors-import.c:336 +#, c-format +msgid "No paths found in '%s'" +msgstr "%s içinde yol bulunamadı" + +#: ../app/vectors/gimpvectors-import.c:339 +#, c-format +msgid "No paths found in the buffer" +msgstr "Tamponda yol bulunamadı" + +#: ../app/vectors/gimpvectors-import.c:349 +#, c-format +msgid "Failed to import paths from '%s': %s" +msgstr "%s dosyasından yol okunurken hata: %s" + +#: ../app/widgets/gimpactioneditor.c:71 +msgid "_Search:" +msgstr "_Ara:" + +#: ../app/widgets/gimpactiongroup.c:802 +#, c-format +msgid "RGBA (%0.3f, %0.3f, %0.3f, %0.3f)" +msgstr "RGBA (%0.3f, %0.3f, %0.3f, %0.3f)" + +#: ../app/widgets/gimpactionview.c:346 +#: ../app/widgets/gimpcontrollereditor.c:348 +msgid "Action" +msgstr "Eylem" + +#: ../app/widgets/gimpactionview.c:375 +msgid "Shortcut" +msgstr "Kısayol" + +#: ../app/widgets/gimpactionview.c:401 +msgid "Name" +msgstr "İsim" + +#: ../app/widgets/gimpactionview.c:641 ../app/widgets/gimpactionview.c:846 +msgid "Changing shortcut failed." +msgstr "Kısayol değişimi başarısız oldu." + +#: ../app/widgets/gimpactionview.c:683 +msgid "Conflicting Shortcuts" +msgstr "Çelişen Kısayollar" + +#: ../app/widgets/gimpactionview.c:689 +msgid "_Reassign shortcut" +msgstr "Kısayolu Yeniden A_ta" + +#: ../app/widgets/gimpactionview.c:704 +#, c-format +msgid "Shortcut \"%s\" is already taken by \"%s\" from the \"%s\" group." +msgstr "" +"\"%s\" kısayolu zaten \"%s\" tarafından \"%s\" grubundan alınmış durumda." + +#: ../app/widgets/gimpactionview.c:708 +#, c-format +msgid "Reassigning the shortcut will cause it to be removed from \"%s\"." +msgstr "" +"Kısayolu yeniden atamak \"%s\" üzerinden kaldırılmasına neden olacak." + +#: ../app/widgets/gimpactionview.c:781 +msgid "Invalid shortcut." +msgstr "Geçersiz kısayol." + +#: ../app/widgets/gimpactionview.c:870 +msgid "Removing shortcut failed." +msgstr "Kısayolu kaldırma başarısız oldu." + +#: ../app/widgets/gimpbrusheditor.c:169 +msgid "Spikes:" +msgstr "Artışlar:" + +#: ../app/widgets/gimpbrusheditor.c:182 +msgid "Hardness:" +msgstr "Sertlik:" + +#: ../app/widgets/gimpbrusheditor.c:195 +msgid "Aspect ratio:" +msgstr "Görüntü oranı:" + +#: ../app/widgets/gimpbrusheditor.c:221 +#: ../app/widgets/gimpbrushfactoryview.c:82 +msgid "Spacing:" +msgstr "Boşluk:" + +#: ../app/widgets/gimpbrusheditor.c:224 +#: ../app/widgets/gimpbrushfactoryview.c:85 +msgid "Percentage of width of brush" +msgstr "Fırça genişliğinin yüzdesi" + +#: ../app/widgets/gimpbufferview.c:173 ../app/widgets/gimpbufferview.c:257 +#: ../app/widgets/gimpeditor.c:754 +msgid "(None)" +msgstr "(Hiçbiri)" + +#: ../app/widgets/gimpchanneltreeview.c:119 +msgid "Reorder Channel" +msgstr "Kanalı Yeniden Düzenle" + +#: ../app/widgets/gimpchanneltreeview.c:321 +msgid "Empty Channel" +msgstr "Kanalı Boşalt" + +#: ../app/widgets/gimpcolordialog.c:150 +msgid "Add the current color to the color history" +msgstr "Renk geçmişine şimdiki rengi ekle" + +#: ../app/widgets/gimpcolordisplayeditor.c:152 +msgid "Available Filters" +msgstr "Mevcut Filtreler" + +#: ../app/widgets/gimpcolordisplayeditor.c:213 +msgid "Move the selected filter up" +msgstr "Seçilmiş süzgeci yükselt" + +#: ../app/widgets/gimpcolordisplayeditor.c:222 +msgid "Move the selected filter down" +msgstr "Seçilmiş süzgeci indir" + +#: ../app/widgets/gimpcolordisplayeditor.c:268 +msgid "Active Filters" +msgstr "Etkin Filtreler" + +#: ../app/widgets/gimpcolordisplayeditor.c:319 +msgid "Reset the selected filter to default values" +msgstr "Seçili filtreleri öntanımlı değerlerine geri al" + +#: ../app/widgets/gimpcolordisplayeditor.c:493 +#, c-format +msgid "Add '%s' to the list of active filters" +msgstr "Etkin süzgeçler listesine '%s' ekle" + +#: ../app/widgets/gimpcolordisplayeditor.c:530 +#, c-format +msgid "Remove '%s' from the list of active filters" +msgstr "Etkin süzgeçler listesinden '%s' kaldır" + +#: ../app/widgets/gimpcolordisplayeditor.c:561 +msgid "No filter selected" +msgstr "Seçilmiş süzgeç yok" + +#: ../app/widgets/gimpcoloreditor.c:263 +msgid "" +"Hexadecimal color notation as used in HTML and CSS. This entry also accepts " +"CSS color names." +msgstr "" +"HTML ve CSS içinde kullanılıan onaltılı renk gösterimi. Bu giriş ayrıca CSS " +"renk adlarını da kabul eder." + +#: ../app/widgets/gimpcolorframe.c:501 +msgid "Index:" +msgstr "Sıra:" + +#: ../app/widgets/gimpcolorframe.c:514 ../app/widgets/gimpcolorframe.c:540 +msgid "Red:" +msgstr "Kırmızı:" + +#: ../app/widgets/gimpcolorframe.c:515 ../app/widgets/gimpcolorframe.c:541 +msgid "Green:" +msgstr "Yeşil:" + +#: ../app/widgets/gimpcolorframe.c:516 ../app/widgets/gimpcolorframe.c:542 +msgid "Blue:" +msgstr "Mavi:" + +#: ../app/widgets/gimpcolorframe.c:529 ../app/widgets/gimpcolorframe.c:562 +msgid "Value:" +msgstr "Değer:" + +#: ../app/widgets/gimpcolorframe.c:553 +msgid "Hex:" +msgstr "Onaltılı:" + +#: ../app/widgets/gimpcolorframe.c:560 +msgid "Hue:" +msgstr "Renk Özü:" + +#: ../app/widgets/gimpcolorframe.c:561 +msgid "Sat.:" +msgstr "Doyg.:" + +#: ../app/widgets/gimpcolorframe.c:579 +msgid "Cyan:" +msgstr "Turkuaz:" + +#: ../app/widgets/gimpcolorframe.c:580 +msgid "Magenta:" +msgstr "Magenta:" + +#: ../app/widgets/gimpcolorframe.c:581 +msgid "Yellow:" +msgstr "Sarı:" + +#: ../app/widgets/gimpcolorframe.c:582 +msgid "Black:" +msgstr "Siyah:" + +#: ../app/widgets/gimpcolorframe.c:602 +msgid "Alpha:" +msgstr "Alfa:" + +#: ../app/widgets/gimpcolorframe.c:623 ../app/widgets/gimpcursorview.c:134 +#: ../app/widgets/gimpcursorview.c:140 ../app/widgets/gimpcursorview.c:156 +#: ../app/widgets/gimpcursorview.c:162 ../app/widgets/gimpcursorview.c:444 +#: ../app/widgets/gimpcursorview.c:445 ../app/widgets/gimpcursorview.c:446 +#: ../app/widgets/gimpcursorview.c:447 +msgid "n/a" +msgstr "mevcut değil" + +#: ../app/widgets/gimpcolormapeditor.c:225 +msgid "Color index:" +msgstr "Renk indisi:" + +#: ../app/widgets/gimpcolormapeditor.c:235 +msgid "HTML notation:" +msgstr "HTML gösterim:" + +#: ../app/widgets/gimpcolormapeditor.c:492 +msgid "Only indexed images have a colormap." +msgstr "Sadece sıralanmış görüntülerin bir renk haritası olabilir." + +#: ../app/widgets/gimpcolorselectorpalette.c:59 +msgid "Palette" +msgstr "Palet" + +#: ../app/widgets/gimpcontainerpopup.c:571 +msgid "Smaller Previews" +msgstr "Daha Küçük Önizlemeler" + +#: ../app/widgets/gimpcontainerpopup.c:576 +msgid "Larger Previews" +msgstr "Daha Büyük Önizlemeler" + +#: ../app/widgets/gimpcontrollereditor.c:202 +msgid "_Dump events from this controller" +msgstr "Bu denetleyiciden olayların _dökümünü al" + +#: ../app/widgets/gimpcontrollereditor.c:207 +msgid "_Enable this controller" +msgstr "Bu denetleyiciyi _etkinleştir" + +#: ../app/widgets/gimpcontrollereditor.c:228 +msgid "Name:" +msgstr "İsim:" + +#: ../app/widgets/gimpcontrollereditor.c:234 +msgid "State:" +msgstr "Durum:" + +#: ../app/widgets/gimpcontrollereditor.c:342 +msgid "Event" +msgstr "Olay" + +#: ../app/widgets/gimpcontrollereditor.c:367 +msgid "_Grab event" +msgstr "_Olayı Yakala" + +#: ../app/widgets/gimpcontrollereditor.c:377 +msgid "Select the next event arriving from the controller" +msgstr "Denetleyiciden gelen sonraki olayı seç" + +#: ../app/widgets/gimpcontrollereditor.c:535 +#, c-format +msgid "Remove the action assigned to '%s'" +msgstr "'%s' olayına atanan eylemi kaldır" + +#: ../app/widgets/gimpcontrollereditor.c:540 +#, c-format +msgid "Assign an action to '%s'" +msgstr "'%s' olayına bir eylem ata" + +#: ../app/widgets/gimpcontrollereditor.c:661 +#, c-format +msgid "Select Action for Event '%s'" +msgstr "'%s' Olayı için Eylem Seç" + +#: ../app/widgets/gimpcontrollereditor.c:666 +msgid "Select Controller Event Action" +msgstr "Denetleyici Olayı Eylemi Seç" + +#: ../app/widgets/gimpcontrollerkeyboard.c:70 +#: ../app/widgets/gimpcontrollerkeyboard.c:73 +#: ../app/widgets/gimpcontrollerkeyboard.c:76 +#: ../app/widgets/gimpcontrollerkeyboard.c:79 +#: ../app/widgets/gimpcontrollerkeyboard.c:82 +#: ../app/widgets/gimpcontrollerkeyboard.c:85 +#: ../app/widgets/gimpcontrollerkeyboard.c:88 +#: ../app/widgets/gimpcontrollerkeyboard.c:91 +msgid "Cursor Up" +msgstr "Üst İmleç" + +#: ../app/widgets/gimpcontrollerkeyboard.c:95 +#: ../app/widgets/gimpcontrollerkeyboard.c:98 +#: ../app/widgets/gimpcontrollerkeyboard.c:101 +#: ../app/widgets/gimpcontrollerkeyboard.c:104 +#: ../app/widgets/gimpcontrollerkeyboard.c:107 +#: ../app/widgets/gimpcontrollerkeyboard.c:110 +#: ../app/widgets/gimpcontrollerkeyboard.c:113 +#: ../app/widgets/gimpcontrollerkeyboard.c:116 +msgid "Cursor Down" +msgstr "Alt İmleç" + +#: ../app/widgets/gimpcontrollerkeyboard.c:120 +#: ../app/widgets/gimpcontrollerkeyboard.c:123 +#: ../app/widgets/gimpcontrollerkeyboard.c:126 +#: ../app/widgets/gimpcontrollerkeyboard.c:129 +#: ../app/widgets/gimpcontrollerkeyboard.c:132 +#: ../app/widgets/gimpcontrollerkeyboard.c:135 +#: ../app/widgets/gimpcontrollerkeyboard.c:138 +#: ../app/widgets/gimpcontrollerkeyboard.c:141 +msgid "Cursor Left" +msgstr "Sol İmleç" + +#: ../app/widgets/gimpcontrollerkeyboard.c:145 +#: ../app/widgets/gimpcontrollerkeyboard.c:148 +#: ../app/widgets/gimpcontrollerkeyboard.c:151 +#: ../app/widgets/gimpcontrollerkeyboard.c:154 +#: ../app/widgets/gimpcontrollerkeyboard.c:157 +#: ../app/widgets/gimpcontrollerkeyboard.c:160 +#: ../app/widgets/gimpcontrollerkeyboard.c:163 +#: ../app/widgets/gimpcontrollerkeyboard.c:166 +msgid "Cursor Right" +msgstr "Sağ İmleç" + +#: ../app/widgets/gimpcontrollerkeyboard.c:178 +msgid "Keyboard" +msgstr "Klavye" + +#: ../app/widgets/gimpcontrollerkeyboard.c:222 +msgid "Keyboard Events" +msgstr "Klavye Olayları" + +#: ../app/widgets/gimpcontrollerkeyboard.c:223 +#: ../app/widgets/gimpcontrollerwheel.c:225 +msgid "Ready" +msgstr "Hazır" + +#: ../app/widgets/gimpcontrollerlist.c:182 +msgid "Available Controllers" +msgstr "Mevcut Denetleyiciler" + +#: ../app/widgets/gimpcontrollerlist.c:274 +msgid "Active Controllers" +msgstr "Etkin Denetleyiciler" + +#: ../app/widgets/gimpcontrollerlist.c:290 +msgid "Configure the selected controller" +msgstr "Seçili denetleyiciyi yapılandır" + +#: ../app/widgets/gimpcontrollerlist.c:298 +msgid "Move the selected controller up" +msgstr "Seçili denetleyiciyi yukarı taşı" + +#: ../app/widgets/gimpcontrollerlist.c:306 +msgid "Move the selected controller down" +msgstr "Seçili denetleyiciyi aşağı taşı" + +#: ../app/widgets/gimpcontrollerlist.c:430 +#, c-format +msgid "Add '%s' to the list of active controllers" +msgstr "Etkin denetleyiciler listesine '%s' ekle" + +#: ../app/widgets/gimpcontrollerlist.c:481 +#, c-format +msgid "Remove '%s' from the list of active controllers" +msgstr "Etkin denetleyiciler listesinden '%s' kaldır" + +#: ../app/widgets/gimpcontrollerlist.c:514 +msgid "" +"There can only be one active keyboard controller.\n" +"\n" +"You already have a keyboard controller in your list of active controllers." +msgstr "" +"Etkin sadece bir klavye denetleyicisi olabilir.\n" +"\n" +"Etkin denetleyiciler listenizde zaten bir klavye denetleyiciniz var." + +#: ../app/widgets/gimpcontrollerlist.c:524 +msgid "" +"There can only be one active wheel controller.\n" +"\n" +"You already have a wheel controller in your list of active controllers." +msgstr "" +"Etkin sadece bir teker denetleyicisi olabilir.\n" +"\n" +"Etkin denetleyiciler listenizde zaten bir teker denetleyiciniz var." + +#: ../app/widgets/gimpcontrollerlist.c:551 +msgid "Remove Controller?" +msgstr "Denetleyiciyi Sil?" + +#: ../app/widgets/gimpcontrollerlist.c:556 +msgid "Disable Controller" +msgstr "Denetleyiciyi Kapat" + +#: ../app/widgets/gimpcontrollerlist.c:558 +msgid "Remove Controller" +msgstr "Denetleyiciyi Sil" + +#: ../app/widgets/gimpcontrollerlist.c:569 +#, c-format +msgid "Remove Controller '%s'?" +msgstr "%s Denetleyicisini Sil?" + +#: ../app/widgets/gimpcontrollerlist.c:573 +#, c-format +msgid "" +"Removing this controller from the list of active controllers will " +"permanently delete all event mappings you have configured.\n" +"\n" +"Selecting \"Disable Controller\" will disable the controller without " +"removing it." +msgstr "" +"Bu denetleyicinin etkin denetleyiciler listesinden silinmesi, " +"yapılandırdığınız olay eşlemlerinin tümünü kalıcı olarak silecektir.\n" +"\n" +"\"Denetleyiciyi Kapat\" seçimini yapmak denetleyicinin kaldırmadan " +"kapatılmasını sağlar." + +#: ../app/widgets/gimpcontrollerlist.c:633 +msgid "Configure Input Controller" +msgstr "Girdi Denetleyicisini Yapılandır" + +#: ../app/widgets/gimpcontrollerwheel.c:72 +#: ../app/widgets/gimpcontrollerwheel.c:75 +#: ../app/widgets/gimpcontrollerwheel.c:78 +#: ../app/widgets/gimpcontrollerwheel.c:81 +#: ../app/widgets/gimpcontrollerwheel.c:84 +#: ../app/widgets/gimpcontrollerwheel.c:87 +#: ../app/widgets/gimpcontrollerwheel.c:90 +#: ../app/widgets/gimpcontrollerwheel.c:93 +msgid "Scroll Up" +msgstr "Yukarı Kaydır" + +#: ../app/widgets/gimpcontrollerwheel.c:97 +#: ../app/widgets/gimpcontrollerwheel.c:100 +#: ../app/widgets/gimpcontrollerwheel.c:103 +#: ../app/widgets/gimpcontrollerwheel.c:106 +#: ../app/widgets/gimpcontrollerwheel.c:109 +#: ../app/widgets/gimpcontrollerwheel.c:112 +#: ../app/widgets/gimpcontrollerwheel.c:115 +#: ../app/widgets/gimpcontrollerwheel.c:118 +msgid "Scroll Down" +msgstr "Aşağı Kaydır" + +#: ../app/widgets/gimpcontrollerwheel.c:122 +#: ../app/widgets/gimpcontrollerwheel.c:125 +#: ../app/widgets/gimpcontrollerwheel.c:128 +#: ../app/widgets/gimpcontrollerwheel.c:131 +#: ../app/widgets/gimpcontrollerwheel.c:134 +#: ../app/widgets/gimpcontrollerwheel.c:137 +#: ../app/widgets/gimpcontrollerwheel.c:140 +#: ../app/widgets/gimpcontrollerwheel.c:143 +msgid "Scroll Left" +msgstr "Sola Kaydır" + +#: ../app/widgets/gimpcontrollerwheel.c:147 +#: ../app/widgets/gimpcontrollerwheel.c:150 +#: ../app/widgets/gimpcontrollerwheel.c:153 +#: ../app/widgets/gimpcontrollerwheel.c:156 +#: ../app/widgets/gimpcontrollerwheel.c:159 +#: ../app/widgets/gimpcontrollerwheel.c:162 +#: ../app/widgets/gimpcontrollerwheel.c:165 +#: ../app/widgets/gimpcontrollerwheel.c:168 +msgid "Scroll Right" +msgstr "Sağa Kaydır" + +#: ../app/widgets/gimpcontrollerwheel.c:180 +msgid "Mouse Wheel" +msgstr "Fare Tekerleği" + +#: ../app/widgets/gimpcontrollerwheel.c:224 +msgid "Mouse Wheel Events" +msgstr "Fare Tekerleği Olayları" + +#: ../app/widgets/gimpcursorview.c:137 ../app/widgets/gimpcursorview.c:159 +msgid "X" +msgstr "X" + +#: ../app/widgets/gimpcursorview.c:143 ../app/widgets/gimpcursorview.c:165 +msgid "Y" +msgstr "Y" + +#: ../app/widgets/gimpcursorview.c:146 +msgid "Units" +msgstr "Birim" + +#: ../app/widgets/gimpdataeditor.c:220 +msgid "Save" +msgstr "Kaydet" + +#: ../app/widgets/gimpdataeditor.c:228 +msgid "Revert" +msgstr "Geri al" + +#: ../app/widgets/gimpdataeditor.c:444 +#, c-format +msgid "%s (read only)" +msgstr "%s (sadece oku)" + +#: ../app/widgets/gimpdevicestatus.c:138 +msgid "Save device status" +msgstr "Aygıt durumunu kaydet" + +#: ../app/widgets/gimpdevicestatus.c:448 +#, c-format +msgid "Foreground: %d, %d, %d" +msgstr "Önplan: %d, %d, %d" + +#: ../app/widgets/gimpdevicestatus.c:453 +#, c-format +msgid "Background: %d, %d, %d" +msgstr "Arkaplan: %d, %d, %d" + +#: ../app/widgets/gimpdnd-xds.c:190 +msgid "The given filename does not have any known file extension." +msgstr "Verilen dosya adı bilinen hiçbir dosya uzantısına sahip değil." + +#: ../app/widgets/gimpdnd-xds.c:208 +msgid "File Exists" +msgstr "Dosya Mevcut" + +#: ../app/widgets/gimpdnd-xds.c:213 +msgid "_Replace" +msgstr "_Yerine Koy" + +#: ../app/widgets/gimpdnd-xds.c:224 +#, c-format +msgid "A file named '%s' already exists." +msgstr "'%s' adında bir dosya zaten mevcut." + +#: ../app/widgets/gimpdnd-xds.c:229 +msgid "Do you want to replace it with the image you are saving?" +msgstr "Varolan görüntüyü kaydettiğinizle değiştirmek istiyor musunuz?" + +#: ../app/widgets/gimpdockable.c:194 +msgid "Configure this tab" +msgstr "Bu sekmeyi yapılandır" + +#: ../app/widgets/gimpdockseparator.c:44 +msgid "You can drop dockable dialogs here" +msgstr "Rıhtımlanabilir kutuları buraya bırakabilirsiniz" + +#: ../app/widgets/gimperrordialog.c:151 +msgid "Too many error messages!" +msgstr "Çok fazla hata mesajı!" + +#: ../app/widgets/gimperrordialog.c:152 +msgid "Messages are redirected to stderr." +msgstr "İletiler stderr'e yönlendirilmiş." + +#: ../app/widgets/gimperrordialog.c:171 +#, c-format +msgid "%s Message" +msgstr "%s Mesajı" + +#: ../app/widgets/gimpfiledialog.c:310 +msgid "Automatically Detected" +msgstr "Otomatik Tanıma" + +#: ../app/widgets/gimpfiledialog.c:320 +msgid "By Extension" +msgstr "Uzantıya Göre" + +#: ../app/widgets/gimpfiledialog.c:652 +msgid "All files" +msgstr "Tüm dosyalar" + +#: ../app/widgets/gimpfiledialog.c:657 +msgid "All images" +msgstr "Tüm görüntüler" + +#: ../app/widgets/gimpfiledialog.c:786 +#, c-format +msgid "Select File _Type (%s)" +msgstr "_Dosya Türünü Seç (%s)" + +#: ../app/widgets/gimpfileprocview.c:187 +msgid "File Type" +msgstr "Dosya Türü" + +#: ../app/widgets/gimpfileprocview.c:199 +msgid "Extensions" +msgstr "Uzantılar" + +#. Instant update toggle +#: ../app/widgets/gimpgradienteditor.c:414 +msgid "Instant update" +msgstr "Anında tazeleme" + +#: ../app/widgets/gimpgradienteditor.c:775 +#, c-format +msgid "Zoom factor: %d:1" +msgstr "Odaklama oranı: %d: 1" + +#: ../app/widgets/gimpgradienteditor.c:778 +#, c-format +msgid "Displaying [%0.4f, %0.4f]" +msgstr "Görüntüleme [%0.4f, %0.4f]" + +#: ../app/widgets/gimpgradienteditor.c:997 +#, c-format +msgid "Position: %0.4f" +msgstr "Konum: %0.4f" + +#: ../app/widgets/gimpgradienteditor.c:998 +#, c-format +msgid "RGB (%0.3f, %0.3f, %0.3f)" +msgstr "RGB (%0.3f, %0.3f, %0.3f)" + +#: ../app/widgets/gimpgradienteditor.c:1000 +#, c-format +msgid "HSV (%0.1f, %0.1f, %0.1f)" +msgstr "HSV (%0.1f, %0.1f, %0.1f)" + +#: ../app/widgets/gimpgradienteditor.c:1002 +#, c-format +msgid "Luminance: %0.1f Opacity: %0.1f" +msgstr "Parlaklık: %0.1f Işık Geçirmezlik: %0.1f" + +#: ../app/widgets/gimpgradienteditor.c:1033 +#, c-format +msgid "RGB (%d, %d, %d)" +msgstr "RGB (%d, %d, %d)" + +#: ../app/widgets/gimpgradienteditor.c:1044 +msgid "Foreground color set to:" +msgstr "Önplan rengi değiştirildi:" + +#: ../app/widgets/gimpgradienteditor.c:1051 +msgid "Background color set to:" +msgstr "Arkaplan rengi değiştirildi:" + +#: ../app/widgets/gimpgradienteditor.c:1285 +#: ../app/widgets/gimpgradienteditor.c:1351 +#, c-format +msgid "%s%sDrag: move & compress" +msgstr "%s%sSürükle: taşı ve sıkıştır" + +#: ../app/widgets/gimpgradienteditor.c:1291 +msgid "Drag: move" +msgstr "Sürükle: taşı" + +#: ../app/widgets/gimpgradienteditor.c:1298 +#: ../app/widgets/gimpgradienteditor.c:1312 +#: ../app/widgets/gimpgradienteditor.c:1326 +#: ../app/widgets/gimpgradienteditor.c:1348 +#, c-format +msgid "%s%sClick: extend selection" +msgstr "%s%sTıkla: seçimi genişlet" + +#: ../app/widgets/gimpgradienteditor.c:1304 +#: ../app/widgets/gimpgradienteditor.c:1318 +msgid "Click: select" +msgstr "Tıkla: seç" + +#: ../app/widgets/gimpgradienteditor.c:1332 +#: ../app/widgets/gimpgradienteditor.c:1356 +msgid "Click: select Drag: move" +msgstr "Tıkla: seç Sürükle: taşı" + +#: ../app/widgets/gimpgradienteditor.c:1571 +#: ../app/widgets/gimpgradienteditor.c:1579 +#, c-format +msgid "Handle position: %0.4f" +msgstr "Tanıtıcı konumu: %0.4f" + +#: ../app/widgets/gimpgradienteditor.c:1596 +#, c-format +msgid "Distance: %0.4f" +msgstr "Uzaklık: %0.4f" + +#: ../app/widgets/gimpgrideditor.c:217 +msgid "Line _style:" +msgstr "Çizgi _biçemi:" + +#: ../app/widgets/gimpgrideditor.c:221 +msgid "Change grid foreground color" +msgstr "Izgaranın önalan rengini değiştir" + +#: ../app/widgets/gimpgrideditor.c:228 +msgid "_Foreground color:" +msgstr "Ö_nplan rengi:" + +#: ../app/widgets/gimpgrideditor.c:232 +msgid "Change grid background color" +msgstr "Izgaranın artalan rengini değiştir" + +#: ../app/widgets/gimpgrideditor.c:239 +msgid "_Background color:" +msgstr "_Arkaplan rengi:" + +#: ../app/widgets/gimpgrideditor.c:244 +msgid "Spacing" +msgstr "Boşluk" + +#: ../app/widgets/gimphelp.c:294 +msgid "Help browser is missing" +msgstr "Yardım gezgini kayıp" + +#: ../app/widgets/gimphelp.c:295 +msgid "The GIMP help browser is not available." +msgstr "GIMP yardım gezgini kullanılır durumda değil." + +#: ../app/widgets/gimphelp.c:296 +msgid "" +"The GIMP help browser plug-in appears to be missing from your installation. " +"You may instead use the web browser for reading the help pages." +msgstr "" +"GIMP yardım gezgini eklentisi kurulumunuzda kayıp görünüyor. Bunun yerine " +"yardım sayfalarını okumak için ağ tarayıcınızı kullanabilirsiniz." + +#: ../app/widgets/gimphelp.c:337 +msgid "Help browser doesn't start" +msgstr "Yardım gezgini başlatılamıyor" + +#: ../app/widgets/gimphelp.c:338 +msgid "Could not start the GIMP help browser plug-in." +msgstr "GIMP Yardımcısı başlatılamadı." + +#: ../app/widgets/gimphelp.c:365 +msgid "Use _Web Browser" +msgstr "A_ğ Tarayıcısını Kullan" + +#: ../app/widgets/gimphelp.c:614 +msgid "GIMP user manual is missing" +msgstr "GIMP kullanıcı kılavuzu kayıp" + +#: ../app/widgets/gimphelp.c:621 +msgid "_Read Online" +msgstr "Çevrimiçi _Oku" + +#: ../app/widgets/gimphelp.c:645 +msgid "The GIMP user manual is not installed on your computer." +msgstr "GIMP kullanıcı kılavuzu bilgisayarınızda yüklü değil." + +#: ../app/widgets/gimphelp.c:648 +msgid "" +"You may either install the additional help package or change your " +"preferences to use the online version." +msgstr "" +"Eklenebilir yardım paketini kurabilirsiniz ya da yeğlenenlerinizi " +"değiştirerek çevrimiçi sürümü kullanabilirsiniz." + +#: ../app/widgets/gimphistogrameditor.c:99 +msgid "Mean:" +msgstr "Ortalama:" + +#: ../app/widgets/gimphistogrameditor.c:100 +msgid "Std dev:" +msgstr "Standart Sapma:" + +#: ../app/widgets/gimphistogrameditor.c:101 +msgid "Median:" +msgstr "Ortanca:" + +#: ../app/widgets/gimphistogrameditor.c:102 +msgid "Pixels:" +msgstr "Piksel:" + +#: ../app/widgets/gimphistogrameditor.c:103 +msgid "Count:" +msgstr "Adet:" + +#: ../app/widgets/gimphistogrameditor.c:104 +msgid "Percentile:" +msgstr "Yüzde:" + +#: ../app/widgets/gimphistogrameditor.c:122 +msgid "Channel:" +msgstr "Kanal:" + +#: ../app/widgets/gimpimageprofileview.c:200 +msgid "Querying..." +msgstr "Sorguluyor..." + +#: ../app/widgets/gimpimagepropview.c:122 +msgid "Pixel dimensions:" +msgstr "Piksel ölçüleri:" + +#: ../app/widgets/gimpimagepropview.c:125 +msgid "Print size:" +msgstr "Yazdırma boyutu:" + +#: ../app/widgets/gimpimagepropview.c:128 +msgid "Resolution:" +msgstr "Çözünürlük:" + +#: ../app/widgets/gimpimagepropview.c:131 +msgid "Color space:" +msgstr "Renk uzayı:" + +#: ../app/widgets/gimpimagepropview.c:136 +msgid "File Name:" +msgstr "Dosya Adı:" + +#: ../app/widgets/gimpimagepropview.c:142 +msgid "File Size:" +msgstr "Dosya Boyutu:" + +#: ../app/widgets/gimpimagepropview.c:145 +msgid "File Type:" +msgstr "Dosya Türü:" + +#: ../app/widgets/gimpimagepropview.c:150 +msgid "Size in memory:" +msgstr "Bellekte kapladığı yer:" + +#: ../app/widgets/gimpimagepropview.c:153 +msgid "Undo steps:" +msgstr "Geri alma adımları:" + +#: ../app/widgets/gimpimagepropview.c:156 +msgid "Redo steps:" +msgstr "Yineleme adımları:" + +#: ../app/widgets/gimpimagepropview.c:161 +msgid "Number of pixels:" +msgstr "Benek sayısı:" + +#: ../app/widgets/gimpimagepropview.c:164 +msgid "Number of layers:" +msgstr "Katman sayısı:" + +#: ../app/widgets/gimpimagepropview.c:167 +msgid "Number of channels:" +msgstr "Kanal sayısı:" + +#: ../app/widgets/gimpimagepropview.c:170 +msgid "Number of paths:" +msgstr "Yol sayısı:" + +#: ../app/widgets/gimpimagepropview.c:471 +#, c-format +msgid "pixels/%s" +msgstr "piksel/%s" + +#: ../app/widgets/gimpimagepropview.c:473 +#, c-format +msgid "%g × %g %s" +msgstr "%g × %g %s" + +#: ../app/widgets/gimpimagepropview.c:494 +msgid "colors" +msgstr "renk" + +#: ../app/widgets/gimpitemtreeview.c:980 +msgid "Set Item Exclusive Visible" +msgstr "Öğeyi Özel Görünür Ayarla" + +#: ../app/widgets/gimpitemtreeview.c:988 +msgid "Set Item Exclusive Linked" +msgstr "Öğeyi Özel Bağlanmış Ayarla" + +#: ../app/widgets/gimplayertreeview.c:218 +msgid "Reorder Layer" +msgstr "Katmanı Yeniden Sırala" + +#: ../app/widgets/gimplayertreeview.c:306 +msgid "Lock alpha channel" +msgstr "Görünür kanalını kilitle" + +#: ../app/widgets/gimplayertreeview.c:318 +msgid "Lock:" +msgstr "Kilitle:" + +#: ../app/widgets/gimplayertreeview.c:841 +msgid "Empty Layer" +msgstr "Boş Katman" + +#: ../app/widgets/gimpmenudock.c:159 +msgid "Auto" +msgstr "Otomatik" + +#: ../app/widgets/gimpmenudock.c:170 +msgid "" +"When enabled the dialog automatically follows the image you are working on." +msgstr "" +"Etkinleştirildiğinde iletişim kutusu otomatik olarak çalıştığınız görüntüyü " +"takip eder." + +#: ../app/widgets/gimpmessagebox.c:443 +#, c-format +msgid "Message repeated %d times." +msgstr "İleti %d kere yinelendi." + +#: ../app/widgets/gimpmessagebox.c:445 +msgid "Message repeated once." +msgstr "Mesaj bir kez tekrarlandı." + +#: ../app/widgets/gimppaletteeditor.c:255 +#: ../app/widgets/gimppaletteeditor.c:741 +msgid "Undefined" +msgstr "Tanımsız" + +#: ../app/widgets/gimppaletteeditor.c:263 +msgid "Columns:" +msgstr "Sütunlar:" + +#: ../app/widgets/gimpprofilechooserdialog.c:137 +msgid "ICC color profile (*.icc, *.icm)" +msgstr "ICC renk profili (*.icc, *.icm)" + +#: ../app/widgets/gimpprogressdialog.c:220 +msgid "Progress" +msgstr "İşlem" + +#: ../app/widgets/gimpselectiondata.c:242 +#, c-format +msgid "" +"The filename '%s' couldn't be converted to a valid URI:\n" +"\n" +"%s" +msgstr "" +"'%s' dosya adı geçerli bir adrese dönüştürelemedi:\n" +"\n" +"%s" + +#: ../app/widgets/gimpselectiondata.c:246 +msgid "Invalid UTF-8" +msgstr "Geçersiz UTF-8" + +#: ../app/widgets/gimpsettingsbox.c:239 +msgid "Pick a setting from the list" +msgstr "Listeden bir ayar seçin" + +#: ../app/widgets/gimpsettingsbox.c:260 +msgid "Add settings to favorites" +msgstr "Ayarları favorilerinize ekleyin" + +#: ../app/widgets/gimpsettingsbox.c:288 +msgid "_Import Settings from File..." +msgstr "Dosyadan Ayarları _İçe Aktar..." + +#: ../app/widgets/gimpsettingsbox.c:294 +msgid "_Export Settings to File..." +msgstr "Ayarları (Dosyaya) _Dışa Aktar..." + +#: ../app/widgets/gimpsettingsbox.c:301 +msgid "_Manage Settings..." +msgstr "Ayarları _Yönet..." + +#: ../app/widgets/gimpsettingsbox.c:588 +msgid "Add Settings to Favorites" +msgstr "Ayarları Favorilere Ekle" + +#: ../app/widgets/gimpsettingsbox.c:591 +msgid "Enter a name for the settings" +msgstr "Ayarları için bir ad girin" + +#: ../app/widgets/gimpsettingsbox.c:592 +msgid "Saved Settings" +msgstr "Kaydedilmiş Ayarlar" + +#: ../app/widgets/gimpsettingsbox.c:627 +msgid "Manage Saved Settings" +msgstr "Kaydedilmiş Ayarları Yönet" + +#: ../app/widgets/gimpsettingseditor.c:174 +msgid "Import settings from a file" +msgstr "Bir dosyadan ayarları içe aktar" + +#: ../app/widgets/gimpsettingseditor.c:183 +msgid "Export the selected settings to a file" +msgstr "Seçilmiş ayarları (bir dosyaya) dışa aktar" + +#: ../app/widgets/gimpsettingseditor.c:192 +msgid "Delete the selected settings" +msgstr "Seçilmiş ayarları sil" + +#: ../app/widgets/gimpsizebox.c:464 +#, c-format +msgid "%d × %d ppi" +msgstr "%d × %d ppi" + +#: ../app/widgets/gimpsizebox.c:466 +#, c-format +msgid "%d ppi" +msgstr "%d ppi" + +#: ../app/widgets/gimpstrokeeditor.c:185 +msgid "Line width:" +msgstr "Çizgi genişliği:" + +#: ../app/widgets/gimpstrokeeditor.c:202 +msgid "_Line Style" +msgstr "Çizgi _Biçemi" + +#: ../app/widgets/gimpstrokeeditor.c:221 +msgid "_Cap style:" +msgstr "_Tepe biçemi:" + +#: ../app/widgets/gimpstrokeeditor.c:227 +msgid "_Join style:" +msgstr "_Birleştirme biçemi:" + +#: ../app/widgets/gimpstrokeeditor.c:232 +msgid "_Miter limit:" +msgstr "_Köşe sınırı:" + +#: ../app/widgets/gimpstrokeeditor.c:239 +msgid "Dash pattern:" +msgstr "Çizgi deseni:" + +#: ../app/widgets/gimpstrokeeditor.c:302 +msgid "Dash _preset:" +msgstr "Çizgi _önayarı:" + +#: ../app/widgets/gimpstrokeeditor.c:323 +msgid "_Antialiasing" +msgstr "_Yazıtipi Yumuşatma" + +#: ../app/widgets/gimptemplateeditor.c:180 +#, c-format +msgid "%p" +msgstr "%p" + +#: ../app/widgets/gimptemplateeditor.c:255 +msgid "_Advanced Options" +msgstr "_Gelişmiş Seçenekler" + +#: ../app/widgets/gimptemplateeditor.c:362 +msgid "Color _space:" +msgstr "Renk _uzayı:" + +#: ../app/widgets/gimptemplateeditor.c:370 +msgid "_Fill with:" +msgstr "_Doldur:" + +#: ../app/widgets/gimptemplateeditor.c:380 +msgid "Comme_nt:" +msgstr "_Açıklama:" + +#: ../app/widgets/gimptemplateeditor.c:530 +msgid "_Name:" +msgstr "İsi_m:" + +#: ../app/widgets/gimptemplateeditor.c:543 +msgid "_Icon:" +msgstr "_Simge:" + +#: ../app/widgets/gimptemplateeditor.c:671 +#, c-format +msgid "%d × %d ppi, %s" +msgstr "%d × %d ppi, %s" + +#: ../app/widgets/gimptemplateeditor.c:673 +#, c-format +msgid "%d ppi, %s" +msgstr "%d ppi, %s" + +#: ../app/widgets/gimptexteditor.c:188 +msgid "_Language:" +msgstr "_Dil:" + +#: ../app/widgets/gimptexteditor.c:234 +msgid "_Use selected font" +msgstr "_Seçili yazıtipini kullan" + +#: ../app/widgets/gimpthumbbox.c:344 +#, c-format +msgid "" +"Click to update preview\n" +"%s%sClick to force update even if preview is up-to-date" +msgstr "" +"Görüntüyü güncelleştirmek için tıklayın\n" +"%s%sGörüntü güncel olsa bile hızlı yenileme için tıklayın" + +#: ../app/widgets/gimpthumbbox.c:362 +msgid "Pr_eview" +msgstr "Ön_izleme" + +#: ../app/widgets/gimpthumbbox.c:417 ../app/widgets/gimpthumbbox.c:481 +msgid "No selection" +msgstr "Seçim yok" + +#: ../app/widgets/gimpthumbbox.c:609 ../app/widgets/gimpthumbbox.c:630 +#, c-format +msgid "Thumbnail %d of %d" +msgstr "Küçük Önizleme %d of %d" + +#: ../app/widgets/gimpthumbbox.c:743 ../app/widgets/gimpthumbbox.c:753 +msgid "Creating preview..." +msgstr "Önizleme oluşturuluyor..." + +#: ../app/widgets/gimptoolbox-color-area.c:80 +msgid "" +"Foreground & background colors.\n" +"The black and white squares reset colors.\n" +"The arrows swap colors.\n" +"Click to open the color selection dialog." +msgstr "" +"Önalan ve artalan renkleri.\n" +"Siyah ve beyaz karelerin sıfırlama renkleri.\n" +"Okların takas renkleri.\n" +"Renk seçme kutusunu açmak için tıklayın." + +#: ../app/widgets/gimptoolbox-color-area.c:141 +msgid "Change Foreground Color" +msgstr "Önplan Resmini Değiştir" + +#: ../app/widgets/gimptoolbox-color-area.c:146 +msgid "Change Background Color" +msgstr "Arkaplan Resmini Değiştir" + +#: ../app/widgets/gimptoolbox-image-area.c:112 +#: ../app/widgets/gimptoolbox-image-area.c:117 +msgid "" +"The active image.\n" +"Click to open the Image Dialog." +msgstr "" +"Etkin görüntü.\n" +"Görüntü Kutusunu açmak için tıklayın." + +#: ../app/widgets/gimptoolbox-image-area.c:114 +msgid "Drag to an XDS enabled file-manager to save the image." +msgstr "" +"Etkin XDS olan bir dosya yöneticisine görüntüyü kaydetmek için sürükleyin." + +#: ../app/widgets/gimptoolbox-indicator-area.c:150 +msgid "" +"The active brush.\n" +"Click to open the Brush Dialog." +msgstr "" +"Etkin fırça.\n" +"Fırça Kutusu'nu açmak için tıklayın." + +#: ../app/widgets/gimptoolbox-indicator-area.c:182 +msgid "" +"The active pattern.\n" +"Click to open the Pattern Dialog." +msgstr "" +"Etkin desen.\n" +"Desen Kutusu'nu açmak için tıklayın." + +#: ../app/widgets/gimptoolbox-indicator-area.c:214 +msgid "" +"The active gradient.\n" +"Click to open the Gradient Dialog." +msgstr "" +"Etkin renk geçişi.\n" +"Renk Geçişi Kutusu'nu açmak için tıklayın." + +#: ../app/widgets/gimptooloptionseditor.c:165 +msgid "Save options to..." +msgstr "Seçenekleri kaydet..." + +#: ../app/widgets/gimptooloptionseditor.c:173 +msgid "Restore options from..." +msgstr "Seçenekleri geri yükle..." + +#: ../app/widgets/gimptooloptionseditor.c:181 +msgid "Delete saved options..." +msgstr "Kayıtlı seçenekleri sil..." + +#: ../app/widgets/gimptooloptionseditor.c:480 +#, c-format +msgid "Error saving tool options presets: %s" +msgstr "Araç seçenekleri önayarları kaydedilirken hata: %s" + +#: ../app/widgets/gimpuimanager.c:738 +msgid "Your GIMP installation is incomplete:" +msgstr "GIMP kurulumu tamamlanamadı:" + +#: ../app/widgets/gimpuimanager.c:740 +msgid "Plase make sure the menu XML files are correctly installed." +msgstr "Lütfen XML dosyalarının doğru yüklendiğine emin olun." + +#: ../app/widgets/gimpuimanager.c:746 +#, c-format +msgid "There was an error parsing the menu definition from %s: %s" +msgstr "%s içinden menü tanımı ayrıştırılırken bir hata meydana geldi: %s" + +#: ../app/widgets/gimpundoeditor.c:270 +msgid "[ Base Image ]" +msgstr "[ Temel Resim ]" + +#: ../app/widgets/gimpvectorstreeview.c:110 +msgid "Reorder path" +msgstr "Yolu yeniden düzenle" + +#: ../app/widgets/gimpvectorstreeview.c:253 +msgid "Empty Path" +msgstr "Boş Yol" + +#: ../app/widgets/gimpviewablebox.c:81 +msgid "Open the brush selection dialog" +msgstr "Fırça seçim kutusunu aç" + +#: ../app/widgets/gimpviewablebox.c:138 +msgid "Open the pattern selection dialog" +msgstr "Desen seçim kutusunu aç" + +#: ../app/widgets/gimpviewablebox.c:204 +msgid "Open the gradient selection dialog" +msgstr "Renk geçişi seçim kutusunu aç" + +#: ../app/widgets/gimpviewablebox.c:224 +msgid "Reverse" +msgstr "Ters" + +#: ../app/widgets/gimpviewablebox.c:306 +msgid "Open the palette selection dialog" +msgstr "Palet seçim kutusunu aç" + +#: ../app/widgets/gimpviewablebox.c:364 +msgid "Open the font selection dialog" +msgstr "Yazıtipi seçim penceresini aç" + +#: ../app/widgets/gimpwidgets-utils.c:608 +#, c-format +msgid "%s (try %s)" +msgstr "%s (%s dene)" + +#: ../app/widgets/gimpwidgets-utils.c:608 +#, c-format +msgid "%s (%s)" +msgstr "%s (%s)" + +#: ../app/widgets/gimpwidgets-utils.c:612 +#, c-format +msgid "%s (try %s, %s)" +msgstr "%s (%s, %s dene)" + +#: ../app/widgets/gimpwidgets-utils.c:616 +#, c-format +msgid "%s (try %s, %s, %s)" +msgstr "%s (%s, %s, %s dene)" + +#: ../app/widgets/gimpwidgets-utils.c:882 +#, c-format +msgid "Invalid UTF-8 data in file '%s'." +msgstr "'%s' dosyası içinde geçersiz UTF-8 verisi." + +#: ../app/widgets/widgets-enums.c:23 +msgid "Foreground" +msgstr "Önplan" + +#: ../app/widgets/widgets-enums.c:83 +msgid "Pixel" +msgstr "Piksel" + +#: ../app/widgets/widgets-enums.c:85 +msgid "HSV" +msgstr "HSV" + +#: ../app/widgets/widgets-enums.c:86 +msgid "CMYK" +msgstr "CMYK" + +#: ../app/widgets/widgets-enums.c:115 +msgid "Pick only" +msgstr "Sadece al" + +#: ../app/widgets/widgets-enums.c:116 +msgid "Set foreground color" +msgstr "Önplan rengini tanımla" + +#: ../app/widgets/widgets-enums.c:117 +msgid "Set background color" +msgstr "Arkaplan rengini tanımla" + +#: ../app/widgets/widgets-enums.c:118 +msgid "Add to palette" +msgstr "Palete ekle" + +#: ../app/widgets/widgets-enums.c:173 +msgid "Black & white" +msgstr "Siyah ve beyaz" + +#: ../app/widgets/widgets-enums.c:174 +msgid "Fancy" +msgstr "Süslü" + +#: ../app/widgets/widgets-enums.c:201 +msgid "GIMP help browser" +msgstr "GIMP yardım gezgini" + +#: ../app/widgets/widgets-enums.c:202 +msgid "Web browser" +msgstr "Web tarayıcı" + +#: ../app/widgets/widgets-enums.c:229 +msgid "Linear histogram" +msgstr "Doğrusal histogram" + +#: ../app/widgets/widgets-enums.c:230 +msgid "Logarithmic histogram" +msgstr "Logaritmik histogram" + +#: ../app/widgets/widgets-enums.c:263 +msgid "Icon" +msgstr "Simge" + +#: ../app/widgets/widgets-enums.c:264 +msgid "Current status" +msgstr "Geçerli durum" + +#: ../app/widgets/widgets-enums.c:266 +msgid "Description" +msgstr "Açıklama" + +#: ../app/widgets/widgets-enums.c:267 +msgid "Icon & text" +msgstr "Simge ve metin" + +#: ../app/widgets/widgets-enums.c:268 +msgid "Icon & desc" +msgstr "Simge ve açıklama" + +#: ../app/widgets/widgets-enums.c:269 +msgid "Status & text" +msgstr "Durum ve metin" + +#: ../app/widgets/widgets-enums.c:270 +msgid "Status & desc" +msgstr "Durum ve betimleme" + +#: ../app/widgets/widgets-enums.c:298 +msgid "Normal window" +msgstr "Normal pencere" + +#: ../app/widgets/widgets-enums.c:299 +msgid "Utility window" +msgstr "Yardımcı pencere" + +#: ../app/widgets/widgets-enums.c:300 +msgid "Keep above" +msgstr "Üzerinde tut" + +#: ../app/xcf/xcf-load.c:277 +msgid "" +"This XCF file is corrupt! I have loaded as much of it as I can, but it is " +"incomplete." +msgstr "" +"Bu XCF dosyası bozulmuş! Yapabildiğim kadar çok yükledim, ama tamamlanamadı." + +#: ../app/xcf/xcf-load.c:286 +#, c-format +msgid "" +"This XCF file is corrupt! I could not even salvage any partial image data " +"from it." +msgstr "" +"Bu XCF dosyası bozulmuş! Herhangi bir kısmi görüntü verisi kurtaramadım." + +#: ../app/xcf/xcf-load.c:324 +msgid "" +"XCF warning: version 0 of XCF file format\n" +"did not save indexed colormaps correctly.\n" +"Substituting grayscale map." +msgstr "" +"XCF uyarısı: XCF dosya biçiminin 0. sürümü\n" +"indisli renk haritalarını düzgün saklamaz.\n" +"Griölçekli palet ile değiştiriliyor." + +#: ../app/xcf/xcf-read.c:109 +msgid "Invalid UTF-8 string in XCF file" +msgstr "XCF dosyasında geçersiz UTF-8 dizge." + +#: ../app/xcf/xcf-write.c:87 +#, c-format +msgid "Error writing XCF: %s" +msgstr "XCF dosyasına yazılırken bir hata oldu: %s" + +#: ../app/xcf/xcf-seek.c:44 ../app/xcf/xcf-seek.c:61 ../app/xcf/xcf-seek.c:72 +#, c-format +msgid "Could not seek in XCF file: %s" +msgstr "XCF dosyası açılamadı: %s" + +#: ../app/xcf/xcf.c:99 ../app/xcf/xcf.c:167 +msgid "GIMP XCF image" +msgstr "GIMP XCF dosyası" + +#: ../app/xcf/xcf.c:271 +#, c-format +msgid "Opening '%s'" +msgstr "'%s' açılıyor" + +#: ../app/xcf/xcf.c:313 +#, c-format +msgid "XCF error: unsupported XCF file version %d encountered" +msgstr "XCF hatası: desteklenmeyen %d XCF dosya sürümüyle karşılaşıldı" + +#: ../app/xcf/xcf.c:383 +#, c-format +msgid "Saving '%s'" +msgstr "'%s' kaydediliyor" + +#: ../app/xcf/xcf.c:403 +#, c-format +msgid "Error saving XCF file: %s" +msgstr "XCF dosyası kaydedilirken bir hata oldu: %s" + +#: ../desktop/gimp.desktop.in.in.h:1 +msgid "Create images and edit photographs" +msgstr "Resim ya da fotoğrafları oluşturun ve düzenleyin" + +#: ../desktop/gimp.desktop.in.in.h:2 +msgid "GIMP Image Editor" +msgstr "GIMP Görüntü Düzenleyici" + +#: ../desktop/gimp.desktop.in.in.h:3 +msgid "Image Editor" +msgstr "Resim Düzenleyici" + +#: ../tools/gimp-remote.c:65 +msgid "Use a running GIMP only, never start a new one" +msgstr "Sadece bir tane çalışan GIMP kullan, yenisini başlatma" + +#: ../tools/gimp-remote.c:70 +msgid "Only check if GIMP is running, then quit" +msgstr "Sadece GIMP çalışıyor mu diye bak, sonra çık" + +#: ../tools/gimp-remote.c:76 +msgid "Print X window ID of GIMP toolbox window, then quit" +msgstr "" +"GIMP araç kutusu penceresinin X penceresi kimliğini yazdır, sonra çık" + +#: ../tools/gimp-remote.c:82 +msgid "Start GIMP without showing the startup window" +msgstr "GIMP'i başlangıç penceresi olmadan başlat" + +#: ../tools/gimp-remote-x11.c:67 +msgid "Could not connect to GIMP." +msgstr "GIMP'e bağlanılamadı." + +#: ../tools/gimp-remote-x11.c:68 +msgid "Make sure that the Toolbox is visible!" +msgstr "Araç kutusunun görünür olduğundan emin olun!" + +#. if execv and execvp return, there was an error +#: ../tools/gimp-remote-x11.c:248 +#, c-format +msgid "Couldn't start '%s': %s" +msgstr "'%s' başlatılamadı: %s" diff --git a/multimedia/graphics/gimp/gimp/pspec.xml b/multimedia/graphics/gimp/gimp/pspec.xml new file mode 100644 index 0000000000..388797d8ce --- /dev/null +++ b/multimedia/graphics/gimp/gimp/pspec.xml @@ -0,0 +1,1206 @@ + + + + + gimp + http://www.gimp.org/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + GNU Image Manipulation Program + GIMP is a mature image editor with many advanced features and plugin support. + http://download.gimp.org/pub/gimp/v2.8/gimp-2.8.14.tar.bz2 + + gtk-doc + atk-devel + xdg-utils + pkgconfig + tiff-devel + zlib-devel + lcms-devel + gegl-devel + babl-devel + dbus-devel + gtk2-devel + aalib-devel + bzip2-devel + pango-devel + cairo-devel + glib2-devel + libwmf-devel + jasper-devel + libX11-devel + libmng-devel + libpng-devel + libXpm-devel + libXmu-devel + libXext-devel + librsvg-devel + libexif-devel + alsa-lib-devel + freetype-devel + dbus-glib-devel + libXfixes-devel + libgudev1-devel + libXcursor-devel + fontconfig-devel + python-gtk-devel + gdk-pixbuf-devel + ghostscript-devel + webkit-gtk2-devel + poppler-glib-devel + libjpeg-turbo-devel + + + + + gimp-devel + data + data:doc + Development header and documents for GIMP + + gtk2-devel + cairo-devel + gdk-pixbuf-devel + gimp + + + /usr/include + /usr/share/gtk-doc + /usr/lib/pkgconfig + /usr/share/aclocal + + + + + gimp + app:gui + + atk + gegl + babl + dbus + gtk2 + tiff + zlib + lcms + aalib + bzip2 + pango + cairo + glib2 + libwmf + libXpm + libmng + libpng + libXmu + jasper + libX11 + libXext + librsvg + libexif + alsa-lib + freetype + dbus-glib + libXfixes + libgudev1 + xdg-utils + libXcursor + fontconfig + python-gtk + gdk-pixbuf + ghostscript + webkit-gtk2 + poppler-glib + libjpeg-turbo + + + /etc + /usr/lib + /usr/share/man + /usr/share/doc + /usr/bin + /usr/share/gimp + /usr/share/icons + /usr/share/appdata + /usr/share/mime-info + /usr/share/applications + /usr/share/application-registry + + + gimp-splash-colors.png + + + + + gimp-i18n-tr + locale:tr + multimedia.graphics.gimp.l10n + Gimp translation files for Turkish + + gimp + + + /usr/share/locale/tr + + + + + gimp-i18n-ast + locale:ast + multimedia.graphics.gimp.l10n + Gimp translation files for Asturian + + gimp + + + /usr/share/locale/ast + + + + + gimp-i18n-my + locale:my + multimedia.graphics.gimp.l10n + Gimp translation files for Burmese + + gimp + + + /usr/share/locale/my + + + + + gimp-i18n-nds + locale:nds + multimedia.graphics.gimp.l10n + Gimp translation files for Low Saxon + + gimp + + + /usr/share/locale/nds + + + + + gimp-i18n-el + locale:el + multimedia.graphics.gimp.l10n + Gimp translation files for Greek + + gimp + + + /usr/share/locale/el + + + + + gimp-i18n-gu + locale:gu + multimedia.graphics.gimp.l10n + Gimp translation files for Gujarati + + gimp + + + /usr/share/locale/gu + + + + + gimp-i18n-be + locale:be + multimedia.graphics.gimp.l10n + Gimp translation files for Belarusian + + gimp + + + /usr/share/locale/be + + + + + gimp-i18n-vi + locale:vi + multimedia.graphics.gimp.l10n + Gimp translation files for Vietnamese + + gimp + + + /usr/share/locale/vi + + + + + gimp-i18n-ca + locale:ca + multimedia.graphics.gimp.l10n + Gimp translation files for Catalan + + gimp + + + /usr/share/locale/ca + + + + + gimp-i18n-eo + locale:eo + multimedia.graphics.gimp.l10n + Gimp translation files for Esperanto + + gimp + + + /usr/share/locale/eo + + + + + gimp-i18n-cs + locale:cs + multimedia.graphics.gimp.l10n + Gimp translation files for Czech + + gimp + + + /usr/share/locale/cs + + + + + gimp-i18n-ca_valencia + locale:ca@valencia + multimedia.graphics.gimp.l10n + Gimp translation files for Catalan (Valencia) + + gimp + + + /usr/share/locale/ca@valencia + + + + + gimp-i18n-ar + locale:ar + multimedia.graphics.gimp.l10n + Gimp translation files for Arabic + + gimp + + + /usr/share/locale/ar + + + + + gimp-i18n-km + locale:km + multimedia.graphics.gimp.l10n + Gimp translation files for Khmer + + gimp + + + /usr/share/locale/km + + + + + gimp-i18n-ga + locale:ga + multimedia.graphics.gimp.l10n + Gimp translation files for Irish Gaelic + + gimp + + + /usr/share/locale/ga + + + + + gimp-i18n-fi + locale:fi + multimedia.graphics.gimp.l10n + Gimp translation files for Finnish + + gimp + + + /usr/share/locale/fi + + + + + gimp-i18n-eu + locale:eu + multimedia.graphics.gimp.l10n + Gimp translation files for Basque + + gimp + + + /usr/share/locale/eu + + + + + gimp-i18n-et + locale:et + multimedia.graphics.gimp.l10n + Gimp translation files for Estonian + + gimp + + + /usr/share/locale/et + + + + + gimp-i18n-xh + locale:xh + multimedia.graphics.gimp.l10n + Gimp translation files for Xhosa + + gimp + + + /usr/share/locale/xh + + + + + gimp-i18n-gl + locale:gl + multimedia.graphics.gimp.l10n + Gimp translation files for Galician + + gimp + + + /usr/share/locale/gl + + + + + gimp-i18n-id + locale:id + multimedia.graphics.gimp.l10n + Gimp translation files for Indonesian + + gimp + + + /usr/share/locale/id + + + + + gimp-i18n-es + locale:es + multimedia.graphics.gimp.l10n + Gimp translation files for Spanish + + gimp + + + /usr/share/locale/es + + + + + gimp-i18n-ru + locale:ru + multimedia.graphics.gimp.l10n + Gimp translation files for Russian + + gimp + + + /usr/share/locale/ru + + + + + gimp-i18n-rw + locale:rw + multimedia.graphics.gimp.l10n + Gimp translation files for Kinyarwanda + + gimp + + + /usr/share/locale/rw + + + + + gimp-i18n-nl + locale:nl + multimedia.graphics.gimp.l10n + Gimp translation files for Dutch + + gimp + + + /usr/share/locale/nl + + + + + gimp-i18n-nn + locale:nn + multimedia.graphics.gimp.l10n + Gimp translation files for Norwegian Nynorsk + + gimp + + + /usr/share/locale/nn + + + + + gimp-i18n-nb + locale:nb + multimedia.graphics.gimp.l10n + Gimp translation files for Norwegian Bookmal + + gimp + + + /usr/share/locale/nb + + + + + gimp-i18n-ne + locale:ne + multimedia.graphics.gimp.l10n + Gimp translation files for Nepali + + gimp + + + /usr/share/locale/ne + + + + + gimp-i18n-lt + locale:lt + multimedia.graphics.gimp.l10n + Gimp translation files for Lithuanian + + gimp + + + /usr/share/locale/lt + + + + + gimp-i18n-pa + locale:pa + multimedia.graphics.gimp.l10n + Gimp translation files for Punjabi + + gimp + + + /usr/share/locale/pa + + + + + gimp-i18n-ro + locale:ro + multimedia.graphics.gimp.l10n + Gimp translation files for Romanian + + gimp + + + /usr/share/locale/ro + + + + + gimp-i18n-en_GB + locale:en_GB + multimedia.graphics.gimp.l10n + Gimp translation files for British English + + gimp + + + /usr/share/locale/en_GB + + + + + gimp-i18n-yi + locale:yi + multimedia.graphics.gimp.l10n + Gimp translation files for Yi + + gimp + + + /usr/share/locale/yi + + + + + gimp-i18n-en_CA + locale:en_CA + multimedia.graphics.gimp.l10n + Gimp translation files for Catalan (en) + + gimp + + + /usr/share/locale/en_CA + + + + + gimp-i18n-fr + locale:fr + multimedia.graphics.gimp.l10n + Gimp translation files for French + + gimp + + + /usr/share/locale/fr + + + + + gimp-i18n-bg + locale:bg + multimedia.graphics.gimp.l10n + Gimp translation files for Bulgarian + + gimp + + + /usr/share/locale/bg + + + + + gimp-i18n-ms + locale:ms + multimedia.graphics.gimp.l10n + Gimp translation files for Malay + + gimp + + + /usr/share/locale/ms + + + + + gimp-i18n-pt_BR + locale:pt_BR + multimedia.graphics.gimp.l10n + Gimp translation files for Brazilian Portuguese + + gimp + + + /usr/share/locale/pt_BR + + + + + gimp-i18n-hr + locale:hr + multimedia.graphics.gimp.l10n + Gimp translation files for Croatian (Hrvatski) + + gimp + + + /usr/share/locale/hr + + + + + gimp-i18n-zh_TW + locale:zh_TW + multimedia.graphics.gimp.l10n + Gimp translation files for Chinese Traditional + + gimp + + + /usr/share/locale/zh_TW + + + + + gimp-i18n-ko + locale:ko + multimedia.graphics.gimp.l10n + Gimp translation files for Korean + + gimp + + + /usr/share/locale/ko + + + + + gimp-i18n-it + locale:it + multimedia.graphics.gimp.l10n + Gimp translation files for Italian + + gimp + + + /usr/share/locale/it + + + + + gimp-i18n-fa + locale:fa + multimedia.graphics.gimp.l10n + Gimp translation files for Farsi (Persian) + + gimp + + + /usr/share/locale/fa + + + + + gimp-i18n-dz + locale:dz + multimedia.graphics.gimp.l10n + Gimp translation files for Dzongkha + + gimp + + + /usr/share/locale/dz + + + + + gimp-i18n-sr_Latn + locale:sr@Latn + multimedia.graphics.gimp.l10n + Gimp translation files for Serbian Latin + + gimp + + + /usr/share/locale/sr@latin + + + + + gimp-i18n-da + locale:da + multimedia.graphics.gimp.l10n + Gimp translation files for Danish + + gimp + + + /usr/share/locale/da + + + + + gimp-i18n-ja + locale:ja + multimedia.graphics.gimp.l10n + Gimp translation files for Japanese + + gimp + + + /usr/share/locale/ja + + + + + gimp-i18n-he + locale:he + multimedia.graphics.gimp.l10n + Gimp translation files for Hebrew + + gimp + + + /usr/share/locale/he + + + + + gimp-i18n-pt + locale:pt + multimedia.graphics.gimp.l10n + Gimp translation files for Portuguese + + gimp + + + /usr/share/locale/pt + + + + + gimp-i18n-zh_CN + locale:zh_CN + multimedia.graphics.gimp.l10n + Gimp translation files for Chinese Simplified + + gimp + + + /usr/share/locale/zh_CN + + + + + gimp-i18n-sr + locale:sr + multimedia.graphics.gimp.l10n + Gimp translation files for Serbian + + gimp + + + /usr/share/locale/sr + + + + + gimp-i18n-oc + locale:oc + multimedia.graphics.gimp.l10n + Gimp translation files for Occitan + + gimp + + + /usr/share/locale/oc + + + + + gimp-i18n-sv + locale:sv + multimedia.graphics.gimp.l10n + Gimp translation files for Swedish + + gimp + + + /usr/share/locale/sv + + + + + gimp-i18n-mk + locale:mk + multimedia.graphics.gimp.l10n + Gimp translation files for Macedonian + + gimp + + + /usr/share/locale/mk + + + + + gimp-i18n-sk + locale:sk + multimedia.graphics.gimp.l10n + Gimp translation files for Slovak + + gimp + + + /usr/share/locale/sk + + + + + gimp-i18n-de + locale:de + multimedia.graphics.gimp.l10n + Gimp translation files for German + + gimp + + + /usr/share/locale/de + + + + + gimp-i18n-pl + locale:pl + multimedia.graphics.gimp.l10n + Gimp translation files for Polish + + gimp + + + /usr/share/locale/pl + + + + + gimp-i18n-uk + locale:uk + multimedia.graphics.gimp.l10n + Gimp translation files for Ukrainian + + gimp + + + /usr/share/locale/uk + + + + + gimp-i18n-sl + locale:sl + multimedia.graphics.gimp.l10n + Gimp translation files for Slovenian + + gimp + + + /usr/share/locale/sl + + + + + gimp-i18n-hu + locale:hu + multimedia.graphics.gimp.l10n + Gimp translation files for Hungarian + + gimp + + + /usr/share/locale/hu + + + + + gimp-i18n-tt + locale:tt + multimedia.graphics.gimp.l10n + Gimp translation files for Tatarish + + gimp + + + /usr/share/locale/tt + + + + + gimp-i18n-az + locale:az + multimedia.graphics.gimp.l10n + Gimp translation files for Azerbaijani + + gimp + + + /usr/share/locale/az + + + + + gimp-i18n-am + locale:am + multimedia.graphics.gimp.l10n + Gimp translation files for Amharic + + gimp + + + /usr/share/locale/am + + + + + gimp-i18n-is + locale:is + multimedia.graphics.gimp.l10n + Gimp translation files for Icelandic + + gimp + + + /usr/share/locale/is + + + + + gimp-i18n-lv + locale:lv + multimedia.graphics.gimp.l10n + Gimp translation files for Latvia + + gimp + + + /usr/share/locale/lv + + + + + gimp-i18n-th + locale:th + multimedia.graphics.gimp.l10n + Gimp translation files for Thai + + gimp + + + /usr/share/locale/th + + + + + gimp-i18n-ka + locale:ka + multimedia.graphics.gimp.l10n + Gimp translation files for Georgian + + gimp + + + /usr/share/locale/ka + + + + + gimp-i18n-hi + locale:hi + multimedia.graphics.gimp.l10n + Gimp translation files for Hindi + + gimp + + + /usr/share/locale/hi + + + + + gimp-i18n-zh_HK + locale:zh_HK + multimedia.graphics.gimp.l10n + Gimp translation files for Chinese Hong Kong + + gimp + + + /usr/share/locale/zh_HK + + + + + gimp-i18n-ml + locale:ml + multimedia.graphics.gimp.l10n + Gimp translation files for Malayalam + + gimp + + + /usr/share/locale/ml + + + + + gimp-i18n-ta + locale:ta + multimedia.graphics.gimp.l10n + Gimp translation files for Tamil + + gimp + + + /usr/share/locale/ta + + + + + gimp-i18n-kn + locale:kn + multimedia.graphics.gimp.l10n + Gimp translation files for Kannada + + gimp + + + /usr/share/locale/kn + + + + + gimp-i18n-si + locale:si + multimedia.graphics.gimp.l10n + Gimp translation files for Sinhala + + gimp + + + /usr/share/locale/si + + + + + gimp-i18n-kk + locale:kk + multimedia.graphics.gimp.l10n + Gimp translation files for Kazakh + + gimp + + + /usr/share/locale/kk + + + + + gimp-i18n-br + locale:br + multimedia.graphics.gimp.l10n + Gimp translation files for Breton + + gimp + + + /usr/share/locale/br + + + + gimp-i18n-te + locale:te + multimedia.graphics.gimp.l10n + Gimp translation files for Telugu + + gimp + + + /usr/share/locale/te + + + + gimp-i18n-csb + locale:csb + multimedia.graphics.gimp.l10n + Gimp translation files for Kashubian + + gimp + + + /usr/share/locale/csb + + + + gimp-i18n-gd + locale:gd + multimedia.graphics.gimp.l10n + Gimp translation files for Scottish Gaelic + + gimp + + + /usr/share/locale/gd + + + + + + 2015-02-21 + 2.8.14 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2014-06-19 + 2.8.10 + Rebuild for gcc + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-02-27 + 2.8.10 + Rebuild Unused + Varol Maksutoğlu + waroi@pisilinux.org + + + 2013-12-13 + 2.8.10 + Release bump. + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-08-17 + 2.8.6 + Release bump. + Osman Erkan + osman.erkan@pisilinux.org + + + 2013-06-23 + 2.8.6 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2013-01-16 + 2.8.4 + Updated + Osman Erkan + osman.erkan@pisilinux.org + + + 2012-08-25 + 2.8.2 + First release + Fatih Turgel + admins@pisilinux.org + + + diff --git a/multimedia/graphics/gimp/gimp/translations.xml b/multimedia/graphics/gimp/gimp/translations.xml new file mode 100644 index 0000000000..53e41f6046 --- /dev/null +++ b/multimedia/graphics/gimp/gimp/translations.xml @@ -0,0 +1,317 @@ + + + + gimp + Bir resim işleme programı + Piksel düzeyinde işlem yapılabilen gelişmiş bir grafik düzenleme programı + Programme de Manipulation d'Image GNU. + + + + gimp-devel + GIMP için geliştirme belgeleri ve başlık dosyaları + Documents et entêtes de développement pour GIMP. + + + + gimp-i18n-tr + Türkçe için GIMP yerelleştirme dosyaları + + + gimp-i18n-ast + Asturya dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-my + Burmese dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-nds + Aşağı Saxon dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-el + Yunanca için GIMP yerelleştirme dosyaları + + + gimp-i18n-gu + Gujarati dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-be + Belarusça için GIMP yerelleştirme dosyaları + + + gimp-i18n-vi + Viyetnamca için GIMP yerelleştirme dosyaları + + + gimp-i18n-ca + Katalanca için GIMP yerelleştirme dosyaları + + + gimp-i18n-eo + Esperanto için GIMP yerelleştirme dosyaları + + + gimp-i18n-cs + Çekçe için GIMP yerelleştirme dosyaları + + + gimp-i18n-ca_valencia + Valensiya Katalancası için GIMP yerelleştirme dosyaları + + + gimp-i18n-ar + Arapça için GIMP yerelleştirme dosyaları + + + gimp-i18n-km + Khmer dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-ga + Gaelik İrlandacası için GIMP yerelleştirme dosyaları + + + gimp-i18n-fi + Fince için GIMP yerelleştirme dosyaları + + + gimp-i18n-eu + Baskça için GIMP yerelleştirme dosyaları + + + gimp-i18n-et + Estonyaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-xh + Xhosa dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-gl + Galiçya dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-id + Endonezyaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-es + İspanyolca için GIMP yerelleştirme dosyaları + + + gimp-i18n-ru + Rusça için GIMP yerelleştirme dosyaları + + + gimp-i18n-rw + Kinyarwanda dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-nl + Hollandaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-nn + Norveç Nynorsk dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-nb + Norveç Bookmal dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-ne + Nepali dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-lt + Litvanyaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-pa + Punjabi dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-ro + Rumence için GIMP yerelleştirme dosyaları + + + gimp-i18n-en_GB + İngiliz İngilizcesi için GIMP yerelleştirme dosyaları + + + gimp-i18n-yi + Yi dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-en_CA + Katalanca için GIMP yerelleştirme dosyaları + + + gimp-i18n-fr + Fransızca için GIMP yerelleştirme dosyaları + + + gimp-i18n-bg + Bulgarca için GIMP yerelleştirme dosyaları + + + gimp-i18n-ms + Malay dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-pt_BR + Brezilya Portekizcesi için GIMP yerelleştirme dosyaları + + + gimp-i18n-hr + Hırvatça için GIMP yerelleştirme dosyaları + + + gimp-i18n-zh_TW + Geleneksel Çince için GIMP yerelleştirme dosyaları + + + gimp-i18n-ko + Korece için GIMP yerelleştirme dosyaları + + + gimp-i18n-it + İtalyanca için GIMP yerelleştirme dosyaları + + + gimp-i18n-fa + Farsça için GIMP yerelleştirme dosyaları + + + gimp-i18n-dz + Dzongkha dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-sr_Latn + Latin sırpça için GIMP yerelleştirme dosyaları + + + gimp-i18n-da + Danimarkaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-ja + Japonca için GIMP yerelleştirme dosyaları + + + gimp-i18n-he + İbranice için GIMP yerelleştirme dosyaları + + + gimp-i18n-pt + Portekizce için GIMP yerelleştirme dosyaları + + + gimp-i18n-zh_CN + Basitleştirilmiş Çince için GIMP yerelleştirme dosyaları + + + gimp-i18n-sr + Sırpça için GIMP yerelleştirme dosyaları + + + gimp-i18n-oc + Occitan dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-sv + İsveççe için GIMP yerelleştirme dosyaları + + + gimp-i18n-mk + Makedonyaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-sk + Slovakça için GIMP yerelleştirme dosyaları + + + gimp-i18n-de + Almanca için GIMP yerelleştirme dosyaları + + + gimp-i18n-pl + Lehçe için GIMP yerelleştirme dosyaları + + + gimp-i18n-uk + Ukraynaca için GIMP yerelleştirme dosyaları + + + gimp-i18n-sl + Slovence için GIMP yerelleştirme dosyaları + + + gimp-i18n-hu + Macarca için GIMP yerelleştirme dosyaları + + + gimp-i18n-tt + Tatarca için GIMP yerelleştirme dosyaları + + + gimp-i18n-az + Azerice için GIMP yerelleştirme dosyaları + + + gimp-i18n-am + Amharic dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-is + İzlanda dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-lv + Latvia dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-th + Thai dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-ka + Gürcüce için GIMP yerelleştirme dosyaları + + + gimp-i18n-hi + Hindi dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-zh_HK + Hong Kong Çincesi için GIMP yerelleştirme dosyaları + + + gimp-i18n-ml + Malayalam dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-ta + Tamil dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-kn + Kannada dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-si + Sinhala dili için GIMP yerelleştirme dosyaları + + + gimp-i18n-kk + Kazakça için GIMP yerelleştirme dosyaları + + + gimp-i18n-br + Breton dili için GIMP yerelleştirme dosyaları + + + diff --git a/multimedia/graphics/gimp/l10n/component.xml b/multimedia/graphics/gimp/l10n/component.xml new file mode 100644 index 0000000000..b941842b8e --- /dev/null +++ b/multimedia/graphics/gimp/l10n/component.xml @@ -0,0 +1,3 @@ + + multimedia.graphics.gimp.l10n + diff --git a/multimedia/graphics/imlib2/actions.py b/multimedia/graphics/imlib2/actions.py new file mode 100644 index 0000000000..6d02891c2e --- /dev/null +++ b/multimedia/graphics/imlib2/actions.py @@ -0,0 +1,37 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import shelltools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +optimizationtype = "--enable-amd64" if get.ARCH() == "x86_64" else "--enable-mmx" + +def setup(): + autotools.autoreconf("-fi") + autotools.configure("--disable-static \ + --with-x \ + --with-jpeg \ + --with-png \ + --with-tiff \ + --with-gif \ + --with-zlib \ + --with-bzip2 \ + %s \ + --enable-visibility-hiding" % optimizationtype) + #--with-id3 \ + shelltools.system("sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool") + shelltools.system("sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dohtml("doc/*") + pisitools.dodoc("AUTHORS", "ChangeLog", "README", "TODO") diff --git a/multimedia/graphics/imlib2/files/imlib2-1.3.0-multilib.patch b/multimedia/graphics/imlib2/files/imlib2-1.3.0-multilib.patch new file mode 100644 index 0000000000..ebf55acadb --- /dev/null +++ b/multimedia/graphics/imlib2/files/imlib2-1.3.0-multilib.patch @@ -0,0 +1,12 @@ +--- imlib2-config.in~ 2006-10-27 00:17:29.000000000 +0200 ++++ imlib2-config.in 2006-10-27 00:17:29.000000000 +0200 +@@ -45,8 +45,7 @@ + echo $includes + ;; + --libs) +- libdirs=-L@libdir@ +- echo $libdirs -lImlib2 @my_libs@ ++ echo -lImlib2 @my_libs@ + ;; + *) + echo "${usage}" 1>&2 \ No newline at end of file diff --git a/multimedia/graphics/imlib2/files/imlib2-1.4.5-no-my-libs.patch b/multimedia/graphics/imlib2/files/imlib2-1.4.5-no-my-libs.patch new file mode 100644 index 0000000000..55afb38bf2 --- /dev/null +++ b/multimedia/graphics/imlib2/files/imlib2-1.4.5-no-my-libs.patch @@ -0,0 +1,28 @@ +From 5dde234b2d3caf067ea827858c53adc5d4c56c13 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Sat, 18 Jan 2014 13:56:54 -0500 +Subject: [PATCH] imlib2-config: delete old reference to @my_libs@ + +This was cleaned up a while ago, but this file was missed. + +URL: https://bugs.gentoo.org/497894 +--- + imlib2-config.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/imlib2-config.in b/imlib2-config.in +index cf814c6..965f7c3 100644 +--- a/imlib2-config.in ++++ b/imlib2-config.in +@@ -46,7 +46,7 @@ while test $# -gt 0; do + ;; + --libs) + libdirs=-L@libdir@ +- echo $libdirs -lImlib2 @my_libs@ ++ echo $libdirs -lImlib2 + ;; + *) + echo "${usage}" 1>&2 +-- +1.8.4.3 + diff --git a/multimedia/graphics/imlib2/files/imlib2-giflib5.patch b/multimedia/graphics/imlib2/files/imlib2-giflib5.patch new file mode 100644 index 0000000000..966c6e4a75 --- /dev/null +++ b/multimedia/graphics/imlib2/files/imlib2-giflib5.patch @@ -0,0 +1,14 @@ +--- src/modules/loaders/loader_gif.c.orig ++++ src/modules/loaders/loader_gif.c +@@ -40,7 +40,11 @@ load(ImlibImage * im, ImlibProgressFunct + #endif + if (fd < 0) + return 0; ++#if defined(GIFLIB_MAJOR) && (GIFLIB_MAJOR >= 5) ++ gif = DGifOpenFileHandle(fd, NULL); ++#else + gif = DGifOpenFileHandle(fd); ++#endif + if (!gif) + { + close(fd); diff --git a/multimedia/graphics/imlib2/pspec.xml b/multimedia/graphics/imlib2/pspec.xml new file mode 100644 index 0000000000..b33719a67d --- /dev/null +++ b/multimedia/graphics/imlib2/pspec.xml @@ -0,0 +1,94 @@ + + + + + imlib2 + http://enlightenment.org/Libraries/Imlib2 + + PisiLinux Community + admins@pisilinux.org + + BSD + library + Second version of the general image loading and rendering library + Imlib 2 is the successor to Imlib. It is not just a newer version - it is a completely new library. Imlib2 can be installed alongside Imlib 1.x without any problems since they are effectively different libraries - but they Have very similar functionality. + http://sourceforge.net/projects/enlightenment/files/imlib2-src/1.4.6/imlib2-1.4.6.tar.gz + + giflib-devel + libid3tag-devel + libXext-devel + libjpeg-turbo-devel + tiff-devel + + + imlib2-1.4.5-no-my-libs.patch + imlib2-giflib5.patch + + + + + + imlib2 + + giflib + libid3tag + libXext + libjpeg-turbo + tiff + zlib + bzip2 + libX11 + libpng + freetype + + + /usr/bin + /usr/lib + /usr/share/imlib2 + /usr/share/doc + + + + + imlib2-devel + Development files for imlib2 + + imlib2 + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-05-25 + 1.4.6 + Fix build. + Marcin Bojara + marcin@pisilinux.org + + + 2014-05-21 + 1.4.6 + Rebuild. + Kamil Atlı + suvarice@gmail.com + + + 2014-01-26 + 1.4.6 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-08-29 + 1.4.5 + First release + PisiLinux Community + namsp-01@hotmail.it + + + diff --git a/multimedia/graphics/imlib2/translations.xml b/multimedia/graphics/imlib2/translations.xml new file mode 100644 index 0000000000..3d36f89320 --- /dev/null +++ b/multimedia/graphics/imlib2/translations.xml @@ -0,0 +1,15 @@ + + + + imlib2 + Genel resim yükleme ve tarama kütüphanesi'nin ikinci versiyonu + Imlib 2, Imlib'in gelişmişidir. Sadece ileri bir sürümü değildir, tamamen yeni bir kütüphanedir. Imlib2 ve Imlib 1.x tamamen farklı oldukları için bir arada kurulu bulunabilirler. İkisi de aynı amaçla yapılmıştır. + Imlib 2 est le successeur de Imlib. Il ne s'agit pas là juste d'une version plus récente d'imlib 1, mais vraiment d'une librairie complètement différente. S'agissant effectivement d'une différente librairie - même si elles ont des fonctionnalités similaires, Imlib2 peut être installée aux côtés de Imlib1.x sans aucun problème. + Imlib 2 es el sucesor de Imlib. no es simplemente una versión actualizada - es una librería completamente nueva. Imlib2 puede instalarse junto con Imlib 1.x sin problemas, ya que efectivamente son librerías diferentes - sin embargo tienen una funcionalidad similar. + + + + imlib2-devel + imlib2 için geliştirme dosyaları + + diff --git a/multimedia/graphics/lcms/actions.py b/multimedia/graphics/lcms/actions.py new file mode 100644 index 0000000000..d3d79f9756 --- /dev/null +++ b/multimedia/graphics/lcms/actions.py @@ -0,0 +1,42 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + #needed by mozilla patch + autotools.autoreconf("-vfi") + options = "--disable-dependency-tracking \ + --disable-static \ + --with-jpeg \ + --with-tiff \ + --with-zlib \ + --with-python" + + if get.buildTYPE() == "emul32": + options += " --without-python" + + autotools.configure(options) + +def build(): + #needed by mozilla patch, swig must be run again + shelltools.cd("python") + shelltools.system("./swig_lcms") + shelltools.cd("..") + + autotools.make() + +def install(): + autotools.rawInstall('DESTDIR=%s \ + BINDIR=%s/usr/bin \ + includedir=/usr/include' % (get.installDIR(), get.installDIR())) + + pisitools.insinto("/usr/share/lcms/profiles", "testbed/*.icm") + + pisitools.dodoc("AUTHORS", "README*", "NEWS", "doc/*") diff --git a/multimedia/graphics/lcms/files/CVE-2009-0793.patch b/multimedia/graphics/lcms/files/CVE-2009-0793.patch new file mode 100644 index 0000000000..d147b93c86 --- /dev/null +++ b/multimedia/graphics/lcms/files/CVE-2009-0793.patch @@ -0,0 +1,22 @@ +--- src/cmsxform.c~ 2009-03-26 17:53:27.000000000 +0000 ++++ src/cmsxform.c 2009-03-26 18:31:41.000000000 +0000 +@@ -689,6 +689,9 @@ + GrayTRC = cmsReadICCGamma(hProfile, icSigGrayTRCTag); + FromLstarToXYZ(GrayTRC, Shapes1); + ++ if (GrayTRC == NULL) ++ return NULL; ++ + // Reversing must be done after curve translation + + Shapes[0] = cmsReverseGamma(Shapes1[0]->nEntries, Shapes1[0]); +@@ -704,6 +707,9 @@ + + GrayTRC = cmsReadICCGammaReversed(hProfile, icSigGrayTRCTag); // Y + ++ if (GrayTRC == NULL) ++ return NULL; ++ + Shapes[0] = cmsDupGamma(GrayTRC); + Shapes[1] = cmsDupGamma(GrayTRC); + Shapes[2] = cmsDupGamma(GrayTRC); diff --git a/multimedia/graphics/lcms/pspec.xml b/multimedia/graphics/lcms/pspec.xml new file mode 100644 index 0000000000..5c6a481351 --- /dev/null +++ b/multimedia/graphics/lcms/pspec.xml @@ -0,0 +1,91 @@ + + + + + lcms + http://www.littlecms.com/ + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + app:console + library + A lightweight, speed optimized color management engine + LittleCMS intends to be a small-footprint, speed optimized color management engine in open source form. + + mirrors://sourceforge/project/lcms/lcms/1.19/lcms-1.19.tar.gz + + tiff-devel + libjpeg-turbo-devel + + + CVE-2009-0793.patch + + + + + lcms + + tiff + libjpeg-turbo + + + /usr/bin + /usr/lib + /usr/share/lcms + /usr/share/doc + /usr/share/man + + + + + lcms-devel + + lcms + + + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/include + + + + + lcms-32bit + emul32 + 32-bit shared libraries for lcms + emul32 + + tiff-32bit + libjpeg-turbo-32bit + + + lcms + tiff-32bit + libjpeg-turbo-32bit + + + /usr/lib32 + + + + + + 2014-05-19 + 1.19 + Release bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2011-05-04 + 1.19 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/graphics/lcms/translations.xml b/multimedia/graphics/lcms/translations.xml new file mode 100644 index 0000000000..09f1798698 --- /dev/null +++ b/multimedia/graphics/lcms/translations.xml @@ -0,0 +1,18 @@ + + + + lcms + Hız geliştirmesi yapılmış, hafif bir renk yönetim motoru + Moteur de gestion de couleurs léger et optimisé pour la vitesse. + + + + lcms-devel + lcms için geliştirme dosyaları + + + + lcms-32bit + lcms için 32-bit paylaşımlı kitaplıklar + + diff --git a/multimedia/graphics/libmng/pspec.xml b/multimedia/graphics/libmng/pspec.xml index c381ad2c9b..d986b728d7 100644 --- a/multimedia/graphics/libmng/pspec.xml +++ b/multimedia/graphics/libmng/pspec.xml @@ -14,7 +14,8 @@ Libmng -The reference library for reading, displaying, writing and examining Multiple-Image Network Graphics. MNG is the animation extension to the popular PNG image-format. http://sourceforge.net/projects/libmng/files/libmng-devel/2.0.2/libmng-2.0.2.tar.gz - lcms-devel + zlib-devel + lcms2-devel libjpeg-turbo-devel @@ -22,6 +23,7 @@ libmng + zlib libjpeg-turbo lcms2 @@ -47,10 +49,17 @@ emul32 32-bit shared libraries for libmng emul32 + + zlib-32bit + lcms2-32bit + libjpeg-turbo-32bit + glibc-32bit + zlib-32bit lcms2-32bit libjpeg-turbo-32bit + glibc-32bit libmng diff --git a/multimedia/graphics/libwmf/actions.py b/multimedia/graphics/libwmf/actions.py new file mode 100644 index 0000000000..75d26c2a46 --- /dev/null +++ b/multimedia/graphics/libwmf/actions.py @@ -0,0 +1,46 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools + +def setup(): + shelltools.unlink("configure.ac") + shelltools.sym("patches/acconfig.h", "acconfig.h") + + autotools.autoreconf("-fi") + pisitools.dosed("src/Makefile.in", "@LIBWMF_GDK_PIXBUF_TRUE@", "#") + autotools.configure("--without-expat \ + --with-libxml2 \ + --with-jpeg \ + --with-x \ + --with-gsfontdir=/usr/share/fonts/default/ghostscript \ + --with-fontdir=/usr/share/libwmf/fonts \ + --with-docdir=/usr/share/doc/%s \ + --disable-static" % get.srcNAME() ) +def build(): + autotools.make("LIBTOOL=/usr/bin/libtool") + +def install(): + pisitools.dosed("fonts/fontmap", "libwmf/fonts", "fonts/default/ghostscript") + + autotools.rawInstall("DESTDIR=%s \ + fontdir=/usr/share/libwmf/fonts \ + wmfonedocdir=/usr/share/doc/%s/caolan \ + wmfdocdir=/usr/share/doc/%s" % + ( get.installDIR(), get.srcNAME(), get.srcNAME() ) ) + + if shelltools.isDirectory("%s/usr/lib/gtk-2.0" % get.installDIR()): + # seems "/usr/lib/gtk-2.0" no longer exists, so need check + pisitools.removeDir("/usr/lib/gtk-2.0") + + # These fonts included in gnu-gs-fonts-std package. + pisitools.remove("/usr/share/libwmf/fonts/*afm") + pisitools.remove("/usr/share/libwmf/fonts/*pfb") + + pisitools.dodoc("README", "AUTHORS", "CREDITS", "ChangeLog", "NEWS", "TODO") diff --git a/multimedia/graphics/libwmf/pspec.xml b/multimedia/graphics/libwmf/pspec.xml new file mode 100644 index 0000000000..6e57b30b84 --- /dev/null +++ b/multimedia/graphics/libwmf/pspec.xml @@ -0,0 +1,72 @@ + + + + + libwmf + http://wvware.sourceforge.net/libwmf.html + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + Library for reading and converting WMF files + A library for reading and converting Windows MetaFile vector graphics (WMF). + mirrors://sourceforge/wvware/libwmf-0.2.8.4.tar.gz + + libjpeg-turbo-devel + harfbuzz-devel + + + + + libwmf + + libjpeg-turbo + harfbuzz + + + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/libwmf + + + + + libwmf-devel + Development files for libwmf + + libwmf + + + /usr/bin/libwmf-config + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-05-24 + 0.2.8.4 + Rebuild. + Alihan Öztürk + alihan@pisilinux.org + + + 2014-02-01 + 0.2.8.4 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2010-10-12 + 0.2.8.4 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/graphics/libwmf/translations.xml b/multimedia/graphics/libwmf/translations.xml new file mode 100644 index 0000000000..720176f23d --- /dev/null +++ b/multimedia/graphics/libwmf/translations.xml @@ -0,0 +1,14 @@ + + + + libwmf + WMF (Windows metafile) okuma ve dönüştürme kitaplığı + Microsoft Word gibi uygulamaların kullandığı WMF (Windows metafile) dosyalarını standart formatlara (PNG, JPEG, PS, EPS, SVG gibi) dönüştürebilmek ve gösterebilmek için gereken kütüphanedir. + Librairie pour convertir les fichiers WMF. + + + + libwmf-devel + libwmf için geliştirme dosyaları + + diff --git a/multimedia/graphics/webp/pspec.xml b/multimedia/graphics/webp/pspec.xml index 8c429afb5f..a1409f8319 100644 --- a/multimedia/graphics/webp/pspec.xml +++ b/multimedia/graphics/webp/pspec.xml @@ -15,9 +15,10 @@ http://downloads.webmproject.org/releases/webp/libwebp-0.4.3.tar.gz mesa-devel + mesa-glu-devel + libpng-devel tiff-devel giflib-devel - mesa-glu-devel freeglut-devel libjpeg-turbo-devel diff --git a/multimedia/misc/DirectFB/actions.py b/multimedia/misc/DirectFB/actions.py index 9c928c1a20..f785a5d01d 100644 --- a/multimedia/misc/DirectFB/actions.py +++ b/multimedia/misc/DirectFB/actions.py @@ -18,7 +18,6 @@ def setup(): --enable-gif \ --enable-freetype \ --enable-multi \ - --enable-sysfs \ --disable-sdl \ --disable-multi \ --disable-debug \ diff --git a/multimedia/misc/DirectFB/pspec.xml b/multimedia/misc/DirectFB/pspec.xml index aeaba3efcd..c44b2a2afb 100644 --- a/multimedia/misc/DirectFB/pspec.xml +++ b/multimedia/misc/DirectFB/pspec.xml @@ -14,15 +14,25 @@ DirectFB is a thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system with support for translucent windows and multiple display layers. http://www.directfb.org/downloads/Core/DirectFB-1.7/DirectFB-1.7.1.tar.gz + libgcc giflib-devel libX11-devel + zlib-devel + tiff-devel + jasper-devel + freetype-devel + libpng-devel libXext-devel mesa-devel + webp-devel mesa-glu-devel libdrm-devel libjpeg-turbo-devel libmng-devel + lcms2-devel libvdpau-devel + libmad-devel + libvorbis-devel @@ -41,14 +51,15 @@ DirectFB - giflib + zlib + libgcc + libpng + freetype libX11 libXext mesa - mesa-glu libdrm libjpeg-turbo - libmng libvdpau webp tiff diff --git a/multimedia/misc/fribidi/actions.py b/multimedia/misc/fribidi/actions.py new file mode 100644 index 0000000000..5f0ea62f37 --- /dev/null +++ b/multimedia/misc/fribidi/actions.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--disable-static \ + --with-pic") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("AUTHORS", "NEWS", "README", "ChangeLog", "THANKS", "TODO") diff --git a/multimedia/misc/fribidi/pspec.xml b/multimedia/misc/fribidi/pspec.xml new file mode 100644 index 0000000000..4e97359b8a --- /dev/null +++ b/multimedia/misc/fribidi/pspec.xml @@ -0,0 +1,65 @@ + + + + + fribidi + http://fribidi.sourceforge.net/ + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + app:console + library + A free implementation of the unicode bidirectional algorithm + GNU FriBidi is the Free Implementation of the Unicode Bidirectional Algorithm. + http://fribidi.org/download/fribidi-0.19.6.tar.bz2 + + + + fribidi + + /usr/bin + /usr/lib + /usr/share/man + /usr/share/doc + + + + + fribidi-devel + Development files for fribidi + + fribidi + + + /usr/include + /usr/share/man/man3 + /usr/lib/pkgconfig + + + + + + 2014-02-23 + 0.19.6 + Version bump. + Alihan Öztürk + alihan@pisilinux.org + + + 2013-07-06 + 0.19.5 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2012-08-29 + 0.19.4 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/multimedia/misc/fribidi/translations.xml b/multimedia/misc/fribidi/translations.xml new file mode 100644 index 0000000000..96516445a0 --- /dev/null +++ b/multimedia/misc/fribidi/translations.xml @@ -0,0 +1,15 @@ + + + + fribidi + Çift yönlü unikod algoritmanın özgür bir uyarlaması + GNU FriBidi, Çift Yönlü Unicode Algoritması'nın özgür uygulamasıdır. + GNU FriBidi est l'implémentation libre de l'algorithme bidirectionnel Unicode. + GNU FriBidi es la implementación libre del algoritmo Unicode Bidirectional. + + + + fribidi-devel + fribidi için geliştirme dosyaları + + diff --git a/multimedia/misc/libexif/actions.py b/multimedia/misc/libexif/actions.py new file mode 100644 index 0000000000..0f2bc598b3 --- /dev/null +++ b/multimedia/misc/libexif/actions.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--enable-nls \ + --disable-static") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("ChangeLog", "README") diff --git a/multimedia/misc/libexif/files/libexif-0.6.13-pkgconfig.patch b/multimedia/misc/libexif/files/libexif-0.6.13-pkgconfig.patch new file mode 100644 index 0000000000..391025c2bf --- /dev/null +++ b/multimedia/misc/libexif/files/libexif-0.6.13-pkgconfig.patch @@ -0,0 +1,11 @@ +--- libexif.pc.in ++++ libexif.pc.in +@@ -1,7 +1,7 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ +-includedir=@includedir@ ++includedir=@includedir@/libexif + + Name: libexif + Description: Library for easy access to EXIF data diff --git a/multimedia/misc/libexif/pspec.xml b/multimedia/misc/libexif/pspec.xml new file mode 100644 index 0000000000..88232f0069 --- /dev/null +++ b/multimedia/misc/libexif/pspec.xml @@ -0,0 +1,69 @@ + + + + + libexif + http://libexif.sourceforge.net/ + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + library + Library for parsing, editing, and saving EXIF data + Most digital cameras produce EXIF files, which are JPEG files with extra tags that contain information about the image. The EXIF library allows you to parse an EXIF file and read the data from those tags. + mirrors://sourceforge/libexif/libexif-0.6.21.tar.bz2 + + doxygen + + + libexif-0.6.13-pkgconfig.patch + + + + + libexif + + /usr/lib + /usr/share/doc + /usr/share/locale + + + + + libexif-devel + Development files for libexif + + libexif + + + /usr/include + /usr/lib/pkgconfig + /usr/share/doc/libexif/libexif-api.html + + + + + + 2014-05-24 + 0.6.21 + Rebuild + Alihan Öztürk + alihan@pisilinux.org + + + 2014-01-30 + 0.6.21 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-08-29 + 0.6.21 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/multimedia/misc/libexif/translations.xml b/multimedia/misc/libexif/translations.xml new file mode 100644 index 0000000000..92916b416a --- /dev/null +++ b/multimedia/misc/libexif/translations.xml @@ -0,0 +1,13 @@ + + + + libexif + EXIF verilerini işlemek, değiştirmek ve kaydetmek için bir kütüphane + Librairie pour analyser, éditer et sauvegarder des données EXIF. + + + + libexif-devel + libexif için geliştirme dosyaları + + diff --git a/multimedia/misc/libid3tag/actions.py b/multimedia/misc/libid3tag/actions.py new file mode 100644 index 0000000000..c767c9502d --- /dev/null +++ b/multimedia/misc/libid3tag/actions.py @@ -0,0 +1,22 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--with-gnu-ld \ + --disable-debugging \ + --disable-static") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall('DESTDIR="%s"' % get.installDIR()) + + pisitools.dodoc("CHANGES", "COPYRIGHT", "CREDITS", "README", "TODO", "VERSION") diff --git a/multimedia/misc/libid3tag/files/id3tag.pc b/multimedia/misc/libid3tag/files/id3tag.pc new file mode 100644 index 0000000000..2f15c6f068 --- /dev/null +++ b/multimedia/misc/libid3tag/files/id3tag.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: id3tag +Description: ID3 tag reading library +Requires: +Version: 0.15.1b +Libs: -L${libdir} -lid3tag -lz +Cflags: -L${includedir} diff --git a/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-fix_overflow.patch b/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-fix_overflow.patch new file mode 100644 index 0000000000..26c54c5d2c --- /dev/null +++ b/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-fix_overflow.patch @@ -0,0 +1,11 @@ +--- field.c.orig 2008-05-05 09:49:15.000000000 -0400 ++++ field.c 2008-05-05 09:49:25.000000000 -0400 +@@ -291,7 +291,7 @@ + + end = *ptr + length; + +- while (end - *ptr > 0) { ++ while (end - *ptr > 0 && **ptr != '\0') { + ucs4 = id3_parse_string(ptr, end - *ptr, *encoding, 0); + if (ucs4 == 0) + goto fail; diff --git a/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-unknown-encoding.patch b/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-unknown-encoding.patch new file mode 100644 index 0000000000..7c70d00203 --- /dev/null +++ b/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-unknown-encoding.patch @@ -0,0 +1,27 @@ +diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf +--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000 ++++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000 +@@ -236,6 +236,10 @@ + + encoding = id3_parse_uint(&data, 1); + string = id3_parse_string(&data, end - data, encoding, 0); ++ if (!string) ++ { ++ continue; ++ } + + if (id3_ucs4_length(string) < 4) { + free(string); +diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c +--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000 ++++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000 +@@ -165,6 +165,9 @@ + case ID3_FIELD_TEXTENCODING_UTF_8: + ucs4 = id3_utf8_deserialize(ptr, length); + break; ++ default: ++ /* FIXME: Unknown encoding! Print warning? */ ++ return NULL; + } + + if (ucs4 && !full) { diff --git a/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-utf16.patchlibid3tag-0.15.1b-utf16.patch b/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-utf16.patchlibid3tag-0.15.1b-utf16.patch new file mode 100644 index 0000000000..e2e6eaeb6d --- /dev/null +++ b/multimedia/misc/libid3tag/files/libid3tag-0.15.1b-utf16.patchlibid3tag-0.15.1b-utf16.patch @@ -0,0 +1,21 @@ +--- libid3tag-0.15.1b/utf16.c ++++ libid3tag-0.15.1b/utf16.c +@@ -282,5 +282,18 @@ + + free(utf16); + ++ if (end == *ptr && length % 2 != 0) ++ { ++ /* We were called with a bogus length. It should always ++ * be an even number. We can deal with this in a few ways: ++ * - Always give an error. ++ * - Try and parse as much as we can and ++ * - return an error if we're called again when we ++ * already tried to parse everything we can. ++ * - tell that we parsed it, which is what we do here. ++ */ ++ (*ptr)++; ++ } ++ + return ucs4; + } diff --git a/multimedia/misc/libid3tag/pspec.xml b/multimedia/misc/libid3tag/pspec.xml new file mode 100644 index 0000000000..bf87431683 --- /dev/null +++ b/multimedia/misc/libid3tag/pspec.xml @@ -0,0 +1,71 @@ + + + + + libid3tag + http://mad.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + The MAD id3tag library + libid3tag is a library for reading and (eventually) writing ID3 tags, both ID3v1 and the various versions of ID3v2. + mirrors://sourceforge/mad/libid3tag-0.15.1b.tar.gz + + libid3tag-0.15.1b-fix_overflow.patch + libid3tag-0.15.1b-unknown-encoding.patch + libid3tag-0.15.1b-utf16.patchlibid3tag-0.15.1b-utf16.patch + + + + + libid3tag + + zlib + + + /usr/lib + /usr/share/doc + + + + + libid3tag-devel + + libid3tag + + + /usr/include + /usr/lib/pkgconfig + + + id3tag.pc + + + + + + 2014-05-20 + 0.15.1b + Rebuild + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-28 + 0.15.1b + Rebuild + Kamil Atlı + suvarice@gmail.com + + + 2010-10-12 + 0.15.1b + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/misc/libid3tag/translations.xml b/multimedia/misc/libid3tag/translations.xml new file mode 100644 index 0000000000..ae1ee5f8fd --- /dev/null +++ b/multimedia/misc/libid3tag/translations.xml @@ -0,0 +1,9 @@ + + + + libid3tag + MAD id3tag kütüphanesi + La librairie id3tag MAD. + Die MAD id3tag Bibliothek + + diff --git a/multimedia/misc/liblqr/actions.py b/multimedia/misc/liblqr/actions.py new file mode 100644 index 0000000000..3dbc0069e1 --- /dev/null +++ b/multimedia/misc/liblqr/actions.py @@ -0,0 +1,24 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt. + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +WorkDir = "%s-1-%s" % (get.srcNAME(), get.srcVERSION()) + +def setup(): + autotools.configure("--disable-static") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.removeDir("/usr/share/man") + + pisitools.dodoc("AUTHORS", "COPYING*", "ChangeLog", "README", "NEWS") diff --git a/multimedia/misc/liblqr/pspec.xml b/multimedia/misc/liblqr/pspec.xml new file mode 100644 index 0000000000..750e05d35d --- /dev/null +++ b/multimedia/misc/liblqr/pspec.xml @@ -0,0 +1,62 @@ + + + + + liblqr + http://liblqr.wikidot.com + + PisiLinux Community + admins@pisilinux.org + + GPLv3 + LGPLv3 + library + An easy to use C/C++ seam carving library + liblqr is a free, open source implementation of a seam carving algorithm which aims at resizing pictures non uniformly while preserving their features. + http://liblqr.wdfiles.com/local--files/en:download-page/liblqr-1-0.4.2.tar.bz2 + + + + liblqr + + /usr/lib + /usr/share/doc + + + + + liblqr-devel + Development files for liblqr + + liblqr + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-05-24 + 0.4.2 + Rebuild. + Alihan Öztürk + alihan@pisilinux.org + + + 2014-01-31 + 0.4.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2010-10-12 + 0.4.1 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/misc/liblqr/translations.xml b/multimedia/misc/liblqr/translations.xml new file mode 100644 index 0000000000..c3002a4c1b --- /dev/null +++ b/multimedia/misc/liblqr/translations.xml @@ -0,0 +1,13 @@ + + + + liblqr + Görüntü boyutlandırma kütüphanesi + liblqr, yeniden boyutlandırılacak resimlerin özelliklerini koruyan liquid rescale algoritmasının bir gerçeklemesidir. + + + + liblqr-devel + liblqr için geliştirme dosyaları + + diff --git a/multimedia/misc/openexr/actions.py b/multimedia/misc/openexr/actions.py new file mode 100644 index 0000000000..80932f975f --- /dev/null +++ b/multimedia/misc/openexr/actions.py @@ -0,0 +1,28 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + pisitools.flags.add("-pthread -I/usr/include/OpenEXR -I/usr/include/libdrm") + pisitools.ldflags.add("-lImath -lHalf -lIex -lIexMath -lIlmThread -lpthread") + shelltools.system("./bootstrap") + autotools.configure("--enable-shared \ + --disable-static") + +def build(): + autotools.make() + +def install(): + # documents and examples go to "/usr/share/OpenEXR" without these parameters + docdir = "/usr/share/doc/%s" % get.srcNAME() + examplesdir = "%s/examples" % docdir + autotools.rawInstall("DESTDIR=%s docdir=%s examplesdir=%s" % (get.installDIR(), docdir, examplesdir)) + + pisitools.dodoc("AUTHORS", "ChangeLog","NEWS", "README","LICENSE") diff --git a/multimedia/misc/openexr/pspec.xml b/multimedia/misc/openexr/pspec.xml new file mode 100644 index 0000000000..c6fbfad9cb --- /dev/null +++ b/multimedia/misc/openexr/pspec.xml @@ -0,0 +1,90 @@ + + + + + openexr + http://www.openexr.com + + PisiLinux Community + admins@pisilinux.org + + as-is + app:console + library + A high dynamic-range (HDR) image file format library + OpenEXR is a high dynamic-range (HDR) image file format for use in computer imaging applications. OpenEXR's features include: Higher dynamic range and color precision than existing 8- and 10-bit image file formats; support for 16-bit floating-point, 32-bit floating-point, and 32-bit integer pixels; multiple lossless image compression algorithms; extensibility. + http://download.savannah.nongnu.org/releases/openexr/openexr-2.1.0.tar.gz + + ilmbase-devel + + + + + openexr + + ilmbase + openexr-libs + + + /usr/bin + + + + + openexr-libs + OpenEXR runtime libraries + + ilmbase + + + /usr/lib/lib* + /usr/share/doc + + + + + openexr-docs + OpenEXR example files + + /usr/share/doc/openexr/examples + + + + + openexr-devel + Development files for openexr + + openexr + ilmbase-devel + + + /usr/include + /usr/lib/pkgconfig + /usr/share/aclocal + + + + + + 2014-05-25 + 2.1.0 + Rebuild + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-01-16 + 2.1.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2010-10-12 + 1.7.0 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/misc/openexr/translations.xml b/multimedia/misc/openexr/translations.xml new file mode 100644 index 0000000000..5c87c8c370 --- /dev/null +++ b/multimedia/misc/openexr/translations.xml @@ -0,0 +1,24 @@ + + + + openexr + OpenEXR, bilgisayar görüntüleme uygulamalarında kullanılan yüksek dinamik görüntü erimidir. OpenEXR özellikleri şunları içerir: Mevcut 8 ve 10 bitlik görüntü dosya formatlarından daha yüksek dinamik görüntü erişimi, 16 ya da 32 bit piksel desteği ve kayıpsız görüntü sıkıştırma algoritması + OpenEXR est un formation de fichier d'image à haut rang dynamique (HDR - High Dynamic Range) utilisable pour les applications d'imagerie sur ordinateur. OpenEXR inclus notamment : Un rang dynamique plus grand que les formats d'image existants de 8 et 10 bit; le support pour pixel de 16 bit à virgule flottante, 32 bit à virgule flottante et d'entiers à 32 bit; de nombreux algorithmes de compression d'image sans perte, le fait d'être extensible. + OpenEXR es un formato de archivo de imagen de alto fango dinámico (HDR) para uso en aplicaciones de computación de imágenes. OpenEXR contiene facilidades: rango dinámico y precisión de colores más alto que formatos existentes de 8- y 10-bit; soporta para punto flotante 16-bit, punto flotante 32-bit, y entero 32-bit pixels; algoritmos de compresión múltiple sin pérdida; extensible. + + + + openexr-devel + OpenEXR için geliştirme dosyaları + + + + openexr-libs + OpenEXR çalışma zamanı kitaplıkları + + + + openexr-docs + OpenEXR örnek dosyalar + + diff --git a/multimedia/misc/orc/actions.py b/multimedia/misc/orc/actions.py new file mode 100644 index 0000000000..53ba05240b --- /dev/null +++ b/multimedia/misc/orc/actions.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--disable-static") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) diff --git a/multimedia/misc/orc/pspec.xml b/multimedia/misc/orc/pspec.xml new file mode 100644 index 0000000000..49248409d0 --- /dev/null +++ b/multimedia/misc/orc/pspec.xml @@ -0,0 +1,91 @@ + + + + + orc + http://code.entropywave.com/projects/orc/ + + PisiLinux Community + admins@pisilinux.org + + BSD + BSD-2 + app:console + The Oil Runtime Compiler + Optimized Inner Loop Runtime Compiler + http://gstreamer.freedesktop.org/src/orc/orc-0.4.19.tar.gz + + + + + + + orc + + /usr/bin/ + /usr/lib/ + /usr/share/ + + + + + orc-32bit + emul32 + 32-bit shared libraries for orc + emul32 + + glibc-32bit + + + glibc-32bit + orc + + + /usr/lib32 + + + + + orc-devel + orc için geliştirme dosyaları + + orc + + + /usr/include/ + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + + + + + + 2014-05-20 + 0.4.19 + Version bump, fix version. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-11-24 + 4.18 + Version bump + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2013-02-14 + 4.16 + Add emul32 + Marcin Bojara + marcin@pisilinux.org + + + 2012-08-29 + 4.16 + First release + PisiLinux Community + admins@pisilinux.org + + + \ No newline at end of file diff --git a/multimedia/misc/orc/translations.xml b/multimedia/misc/orc/translations.xml new file mode 100644 index 0000000000..1d5f6d7748 --- /dev/null +++ b/multimedia/misc/orc/translations.xml @@ -0,0 +1,14 @@ + + + + ocr + The Oil Runtime Compiler + Optimized Inner Loop Runtime Compiler + + + + orc-devel + orc için geliştirme dosyaları + + + diff --git a/multimedia/sound/flac/actions.py b/multimedia/sound/flac/actions.py new file mode 100644 index 0000000000..0794824e66 --- /dev/null +++ b/multimedia/sound/flac/actions.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get +from pisi.actionsapi import shelltools + +def setup(): + options = "--with-pic \ + --enable-ogg \ + --enable-sse \ + --disable-doxygen-docs \ + --disable-dependency-tracking \ + --disable-xmms-plugin \ + --disable-static" + + autotools.autoconf() + autotools.configure(options) + +def build(): + autotools.make() + +#def check(): + #autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.removeDir("/usr/share/doc/") + + pisitools.dohtml("doc/html/*") diff --git a/multimedia/sound/flac/pspec.xml b/multimedia/sound/flac/pspec.xml new file mode 100644 index 0000000000..7f34135441 --- /dev/null +++ b/multimedia/sound/flac/pspec.xml @@ -0,0 +1,111 @@ + + + + + flac + http://flac.sourceforge.net/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + LGPLv2.1 + app:console + An encoder/decoder for the Free Lossless Audio Codec + flac is the Free Lossless Audio Codec. The FLAC format supports streaming, seeking, and archival, and gives 25-75% compression on typical CD audio. This package contains tools and libraries to work with and support for files in FLAC format. + http://downloads.xiph.org/releases/flac/flac-1.3.1.tar.xz + + libogg-devel + + + + + flac + + libogg + libgcc + + + /usr/bin + /usr/lib + /usr/share/man + + + + + flac-docs + Documentation for flac + + flac + + + /usr/share/doc + + + + + flac-devel + Development files for flac + + libogg-devel + flac + + + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/share/aclocal + + + + + flac-32bit + emul32 + 32-bit shared libraries for flac + emul32 + + libogg-32bit + glibc-32bit + + + libogg-32bit + libgcc + glibc-32bit + flac + + + /usr/lib32 + + + + + + 2014-12-03 + 1.3.1 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2014-05-21 + 1.3.0 + Rebuild + Kamil Atlı + suvarice@gmail.com + + + 2013-11-16 + 1.3.0 + Version bump + Burak Fazıl Ertürk + burakerturk@pisilinux.org + + + 2011-03-01 + 1.2.1 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/sound/flac/translations.xml b/multimedia/sound/flac/translations.xml new file mode 100644 index 0000000000..1755e43723 --- /dev/null +++ b/multimedia/sound/flac/translations.xml @@ -0,0 +1,23 @@ + + + + flac + Özgür Kayıpsız Ses Kodlaması için kodlayıcı/çözücü araçları + flac bir Özgür Kayıpsız Ses Kodlaması'dır. (Free Lossless Audio Codec) FLAC biçemi akan görüntü, arama ve arşivleme ve tipik bir Ses CD'sinde %25-75 sıkıştırmayı destekler. + + + + flac-docs + flac ile ilgili belgeler + + + + flac-devel + flac için geliştirme dosyaları + + + + flac-32bit + flac için 32-bit paylaşımlı kitaplıklar + + diff --git a/multimedia/sound/libao/actions.py b/multimedia/sound/libao/actions.py new file mode 100644 index 0000000000..69eaa6bae8 --- /dev/null +++ b/multimedia/sound/libao/actions.py @@ -0,0 +1,35 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import libtools +from pisi.actionsapi import get + +def setup(): + autotools.autoreconf("-vfi") + # libtools.libtoolize("--force --install") + autotools.configure("--disable-dependency-tracking \ + --enable-alsa \ + --enable-alsa-mmap \ + --enable-pulse \ + --disable-arts \ + --disable-esd \ + --disable-nas \ + --enable-shared \ + --disable-static") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + pisitools.removeDir("/usr/share/doc") + + pisitools.dohtml("doc/*") + pisitools.dodoc("AUTHORS", "CHANGES", "README", "TODO") diff --git a/multimedia/sound/libao/pspec.xml b/multimedia/sound/libao/pspec.xml new file mode 100644 index 0000000000..3e5aba7aa7 --- /dev/null +++ b/multimedia/sound/libao/pspec.xml @@ -0,0 +1,82 @@ + + + + + libao + http://www.xiph.org/ao/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + The audio output library + Libao is a cross platform audio output library. It currently supports ESD, OSS, Solaris, and IRIX. + http://downloads.xiph.org/releases/ao/libao-1.2.0.tar.gz + + alsa-lib-devel + pulseaudio-libs-devel + + + + + + libao + + alsa-lib + pulseaudio-libs + + + /usr/lib + /usr/share/doc + /usr/share/man + + + + + libao-devel + Development files for libao + + libao + + + /usr/include/ao + /usr/lib/pkgconfig + /usr/share/aclocal + /usr/share/doc/libao/html + + + + + + 2014-05-26 + 1.2.0 + version bump + Kamil Atlı + suvarice@gmail.com + + + 2014-02-25 + 1.1.0 + Rebuild Unused + Varol Maksutoğlu + waroi@pisilinux.org + + + 2013-10-14 + 1.1.0 + Rebuild + PisiLinux Community + admins@pisilinux.org + + + 2012-08-31 + 1.1.0 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/multimedia/sound/libao/translations.xml b/multimedia/sound/libao/translations.xml new file mode 100644 index 0000000000..8d0f51c2c7 --- /dev/null +++ b/multimedia/sound/libao/translations.xml @@ -0,0 +1,13 @@ + + + + libao + Ses çıktısı kütüphanesi + La librairie de rendu (sortie) audio. + + + + libao-devel + libao için geliştirme dosyaları + + diff --git a/multimedia/sound/libmad/actions.py b/multimedia/sound/libmad/actions.py new file mode 100644 index 0000000000..379741c6f4 --- /dev/null +++ b/multimedia/sound/libmad/actions.py @@ -0,0 +1,27 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + +def setup(): + pisitools.cflags.add("-ftree-vectorize -ftree-vectorizer-verbose=1") + for i in ["NEWS", "AUTHORS", "ChangeLog"]: + shelltools.touch(i) + + autotools.autoreconf("-vfi") + + autotools.configure("--disable-debugging \ + --disable-static") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("CHANGES", "COPYRIGHT", "CREDITS", "README", "TODO", "VERSION") diff --git a/multimedia/sound/libmad/files/amd64-64bit.diff b/multimedia/sound/libmad/files/amd64-64bit.diff new file mode 100644 index 0000000000..fd36a6f20a --- /dev/null +++ b/multimedia/sound/libmad/files/amd64-64bit.diff @@ -0,0 +1,10 @@ +--- configure.ac.orig 2004-01-23 11:41:32.000000000 +0200 ++++ configure.ac 2014-05-21 14:28:19.470907858 +0300 +@@ -298,6 +298,7 @@ + case "$host" in + i?86-*) FPM="INTEL" ;; + arm*-*) FPM="ARM" ;; ++ x86_64*) FPM="64BIT" ;; + mips*-*) FPM="MIPS" ;; + sparc*-*) FPM="SPARC" ;; + powerpc*-*) FPM="PPC" ;; diff --git a/multimedia/sound/libmad/files/libmad-0.15.1b-cflags-O2.patch b/multimedia/sound/libmad/files/libmad-0.15.1b-cflags-O2.patch new file mode 100644 index 0000000000..61b4b13bd7 --- /dev/null +++ b/multimedia/sound/libmad/files/libmad-0.15.1b-cflags-O2.patch @@ -0,0 +1,12 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-07-01 12:58:13.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-07-01 12:59:13.000000000 -0600 +@@ -105,7 +105,7 @@ + shift + ;; + -O2) +- optimize="-O" ++ optimize="-O2" + shift + ;; + -fomit-frame-pointer) diff --git a/multimedia/sound/libmad/files/libmad-0.15.1b-cflags.patch b/multimedia/sound/libmad/files/libmad-0.15.1b-cflags.patch new file mode 100644 index 0000000000..2ec44e3445 --- /dev/null +++ b/multimedia/sound/libmad/files/libmad-0.15.1b-cflags.patch @@ -0,0 +1,146 @@ +diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac +--- libmad-0.15.1b-orig/configure.ac 2007-06-30 20:22:31.000000000 -0600 ++++ libmad-0.15.1b/configure.ac 2007-06-30 20:25:31.000000000 -0600 +@@ -122,74 +122,74 @@ + esac + done + +-if test "$GCC" = yes +-then +- if test -z "$arch" +- then +- case "$host" in +- i386-*) ;; +- i?86-*) arch="-march=i486" ;; +- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; +- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; +- powerpc-*) ;; +- mips*-agenda-*) arch="-mcpu=vr4100" ;; +- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; +- esac +- fi +- +- case "$optimize" in +- -O|"-O "*) +- optimize="-O" +- optimize="$optimize -fforce-mem" +- optimize="$optimize -fforce-addr" +- : #x optimize="$optimize -finline-functions" +- : #- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -fthread-jumps" +- optimize="$optimize -fcse-follow-jumps" +- optimize="$optimize -fcse-skip-blocks" +- : #x optimize="$optimize -frerun-cse-after-loop" +- : #x optimize="$optimize -frerun-loop-opt" +- : #x optimize="$optimize -fgcse" +- optimize="$optimize -fexpensive-optimizations" +- optimize="$optimize -fregmove" +- : #* optimize="$optimize -fdelayed-branch" +- : #x optimize="$optimize -fschedule-insns" +- optimize="$optimize -fschedule-insns2" +- : #? optimize="$optimize -ffunction-sections" +- : #? optimize="$optimize -fcaller-saves" +- : #> optimize="$optimize -funroll-loops" +- : #> optimize="$optimize -funroll-all-loops" +- : #x optimize="$optimize -fmove-all-movables" +- : #x optimize="$optimize -freduce-all-givs" +- : #? optimize="$optimize -fstrict-aliasing" +- : #* optimize="$optimize -fstructure-noalias" +- +- case "$host" in +- arm*-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- mips*-*) +- optimize="$optimize -fstrength-reduce" +- optimize="$optimize -finline-functions" +- ;; +- i?86-*) +- optimize="$optimize -fstrength-reduce" +- ;; +- powerpc-apple-*) +- # this triggers an internal compiler error with gcc2 +- : #optimize="$optimize -fstrength-reduce" +- +- # this is really only beneficial with gcc3 +- : #optimize="$optimize -finline-functions" +- ;; +- *) +- # this sometimes provokes bugs in gcc 2.95.2 +- : #optimize="$optimize -fstrength-reduce" +- ;; +- esac +- ;; +- esac +-fi ++#if test "$GCC" = yes ++#then ++# if test -z "$arch" ++# then ++# case "$host" in ++# i386-*) ;; ++# i?86-*) arch="-march=i486" ;; ++# arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;; ++# armv4*-*) arch="-march=armv4 -mtune=strongarm" ;; ++# powerpc-*) ;; ++# mips*-agenda-*) arch="-mcpu=vr4100" ;; ++# mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;; ++# esac ++# fi ++# ++# case "$optimize" in ++# -O|"-O "*) ++# optimize="-O" ++# optimize="$optimize -fforce-mem" ++# optimize="$optimize -fforce-addr" ++# : #x optimize="$optimize -finline-functions" ++# : #- optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -fthread-jumps" ++# optimize="$optimize -fcse-follow-jumps" ++# optimize="$optimize -fcse-skip-blocks" ++# : #x optimize="$optimize -frerun-cse-after-loop" ++# : #x optimize="$optimize -frerun-loop-opt" ++# : #x optimize="$optimize -fgcse" ++# optimize="$optimize -fexpensive-optimizations" ++# optimize="$optimize -fregmove" ++# : #* optimize="$optimize -fdelayed-branch" ++# : #x optimize="$optimize -fschedule-insns" ++# optimize="$optimize -fschedule-insns2" ++# : #? optimize="$optimize -ffunction-sections" ++# : #? optimize="$optimize -fcaller-saves" ++# : #> optimize="$optimize -funroll-loops" ++# : #> optimize="$optimize -funroll-all-loops" ++# : #x optimize="$optimize -fmove-all-movables" ++# : #x optimize="$optimize -freduce-all-givs" ++# : #? optimize="$optimize -fstrict-aliasing" ++# : #* optimize="$optimize -fstructure-noalias" ++# ++# case "$host" in ++# arm*-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# mips*-*) ++# optimize="$optimize -fstrength-reduce" ++# optimize="$optimize -finline-functions" ++# ;; ++# i?86-*) ++# optimize="$optimize -fstrength-reduce" ++# ;; ++# powerpc-apple-*) ++# # this triggers an internal compiler error with gcc2 ++# : #optimize="$optimize -fstrength-reduce" ++# ++# # this is really only beneficial with gcc3 ++# : #optimize="$optimize -finline-functions" ++# ;; ++# *) ++# # this sometimes provokes bugs in gcc 2.95.2 ++# : #optimize="$optimize -fstrength-reduce" ++# ;; ++# esac ++# ;; ++# esac ++#fi + + case "$host" in + mips*-agenda-*) diff --git a/multimedia/sound/libmad/files/mad.pc b/multimedia/sound/libmad/files/mad.pc new file mode 100644 index 0000000000..14a66f5525 --- /dev/null +++ b/multimedia/sound/libmad/files/mad.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: mad +Description: MPEG Audio Decoder +Requires: +Version: 0.15.0b +Libs: -L${libdir} -lmad -lm +Cflags: -I${includedir} diff --git a/multimedia/sound/libmad/pspec.xml b/multimedia/sound/libmad/pspec.xml new file mode 100644 index 0000000000..f4d18e6d38 --- /dev/null +++ b/multimedia/sound/libmad/pspec.xml @@ -0,0 +1,69 @@ + + + + + libmad + http://mad.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + "M"peg "A"udio "D"ecoder library + libmad is an audio decoder library for MPEG based content. + mirrors://sourceforge/mad/libmad-0.15.1b.tar.gz + + amd64-64bit.diff + libmad-0.15.1b-cflags-O2.patch + libmad-0.15.1b-cflags.patch + + + + + libmad + + /usr/lib + /usr/share/doc + + + + + libmad-devel + Development files for libmad + + libmad + + + /usr/include + /usr/lib/pkgconfig + + + mad.pc + + + + + + 2014-05-20 + 0.15.1b + Rebuild, cleanup. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-28 + 0.15.1b + Rebuild + Kamil Atlı + suvarice@gmail.com + + + 2010-10-12 + 0.15.1b + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/sound/libmad/translations.xml b/multimedia/sound/libmad/translations.xml new file mode 100644 index 0000000000..63edea7853 --- /dev/null +++ b/multimedia/sound/libmad/translations.xml @@ -0,0 +1,14 @@ + + + + libmad + Yüksek kaliteli MPEG ses çözücü kütüphanesi + Librairie de "D"écompression "A"udio "M"peg ("M"peg "A"udio "D"ecoder") + libmad MPEG tabanlı ses çözüm kitaplığıdır. + + + + libmad-devel + libmad için geliştirme dosyaları + + diff --git a/multimedia/sound/libogg/actions.py b/multimedia/sound/libogg/actions.py new file mode 100644 index 0000000000..34c743bc80 --- /dev/null +++ b/multimedia/sound/libogg/actions.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import pisitools +from pisi.actionsapi import autotools +from pisi.actionsapi import get + + +def setup(): + autotools.configure("--disable-static") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "CHANGES", "COPYING", "README") diff --git a/multimedia/sound/libogg/pspec.xml b/multimedia/sound/libogg/pspec.xml new file mode 100644 index 0000000000..a068718df0 --- /dev/null +++ b/multimedia/sound/libogg/pspec.xml @@ -0,0 +1,82 @@ + + + + + libogg + http://www.vorbis.com + + PisiLinux Community + admins@pisilinux.org + + as-is + library + The Ogg media file format library + libogg is a library for manipulating Ogg bitstream file formats. libogg supports both making Ogg bitstreams and getting packets from Ogg bitstreams. + http://downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.xz + + + + libogg + + /usr/lib + /usr/share/doc + + + + + libogg-devel + + libogg + + + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/include + /usr/share/aclocal + /usr/share/doc/libogg/*html + /usr/share/doc/libogg/*png + /usr/share/doc/libogg/ogg + + + + + libogg-32bit + emul32 + 32-bit shared libraries for libogg + emul32 + + glibc-32bit + + + glibc-32bit + libogg + + + /usr/lib32 + + + + + + 2014-05-20 + 1.3.1 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-11-16 + 1.3.1 + Version bump + Burak Fazıl Ertürk + burakerturk@pisilinux.org + + + 2012-08-31 + 1.3.0 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/multimedia/sound/libogg/translations.xml b/multimedia/sound/libogg/translations.xml new file mode 100644 index 0000000000..c701ce291e --- /dev/null +++ b/multimedia/sound/libogg/translations.xml @@ -0,0 +1,14 @@ + + + + libogg + Ogg dosya biçimi kütüphanesi + libogg Ogg biçimli dosyalara erişmek için kullanılan bir kütüphanedir. Hem Ogg biçimli dosya oluşturmak için hem de Ogg dosyalarından paket ayıklamak için kullanılabilir. + La librairie pour fichiers au format média Ogg. + + + + libogg-32bit + libogg için 32-bit paylaşımlı kitaplıklar + + diff --git a/multimedia/sound/libsamplerate/actions.py b/multimedia/sound/libsamplerate/actions.py new file mode 100644 index 0000000000..cb5572601a --- /dev/null +++ b/multimedia/sound/libsamplerate/actions.py @@ -0,0 +1,30 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import libtools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--with-pic \ + --enable-sndfile \ + --disable-static \ + --enable-shared \ + --disable-fftw \ + --disable-dependency-tracking") + + # Remove RPATH + pisitools.dosed("libtool", "^hardcode_libdir_flag_spec=.*", "hardcode_libdir_flag_spec=\"\"") + pisitools.dosed("libtool", "^runpath_var=LD_RUN_PATH", "runpath_var=DIE_RPATH_DIE") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "NEWS", "README") diff --git a/multimedia/sound/libsamplerate/files/dontbuild-tests-examples.patch b/multimedia/sound/libsamplerate/files/dontbuild-tests-examples.patch new file mode 100644 index 0000000000..23cf5897a5 --- /dev/null +++ b/multimedia/sound/libsamplerate/files/dontbuild-tests-examples.patch @@ -0,0 +1,32 @@ +Index: libsamplerate-0.1.3/examples/Makefile.am +=================================================================== +--- libsamplerate-0.1.3.orig/examples/Makefile.am ++++ libsamplerate-0.1.3/examples/Makefile.am +@@ -3,7 +3,7 @@ + + bin_PROGRAMS = sndfile-resample + +-noinst_PROGRAMS = varispeed-play timewarp-file ++EXTRA_PROGRAMS = varispeed-play timewarp-file + + SAMPLERATEDIR =../src + INCLUDES = -I$(srcdir)/$(SAMPLERATEDIR) @OS_SPECIFIC_INCLUDES@ +Index: libsamplerate-0.1.3/tests/Makefile.am +=================================================================== +--- libsamplerate-0.1.3.orig/tests/Makefile.am ++++ libsamplerate-0.1.3/tests/Makefile.am +@@ -1,4 +1,4 @@ +-noinst_PROGRAMS = misc_test termination_test simple_test callback_test \ ++EXTRA_PROGRAMS = misc_test termination_test simple_test callback_test \ + reset_test multi_channel_test snr_bw_test \ + float_short_test varispeed_test callback_hang_test \ + src-evaluate throughput_test +@@ -55,7 +55,7 @@ throughput_test_LDADD = $(SAMPLRATEDIR) + + #=============================================================================== + +-check: $(noinst_PROGRAMS) ++check: $(EXTRA_PROGRAMS) + date + uname -a + ./misc_test diff --git a/multimedia/sound/libsamplerate/pspec.xml b/multimedia/sound/libsamplerate/pspec.xml new file mode 100644 index 0000000000..63fe397eaf --- /dev/null +++ b/multimedia/sound/libsamplerate/pspec.xml @@ -0,0 +1,71 @@ + + + + + libsamplerate + http://www.mega-nerd.com/SRC/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + app:console + Secret Rabbit Code (aka libsamplerate) is a Sample Rate Converter for audio + Secret Rabbit Code is a sample rate converter for audio. It is capable of arbitrary and time varying conversions. It can downsample by a factor of 12 and upsample by the same factor. The ratio of input and output sample rates can be a real number. The conversion ratio can also vary with time for speeding up and slowing down effects. + http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz + + libsndfile-devel + + + dontbuild-tests-examples.patch + + + + + libsamplerate + + libsndfile + + + /usr/bin + /usr/lib + /usr/share/doc + + + + + libsamplerate-devel + Development files for libsamplerate + + libsamplerate + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-05-25 + 0.1.8 + Rebuild + Alihan Öztürk + alihan@pisilinux.org + + + 2014-02-01 + 0.1.8 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2011-10-17 + 0.1.8 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/sound/libsamplerate/translations.xml b/multimedia/sound/libsamplerate/translations.xml new file mode 100644 index 0000000000..5b080133f4 --- /dev/null +++ b/multimedia/sound/libsamplerate/translations.xml @@ -0,0 +1,15 @@ + + + + libsamplerate + libsamplerate ses dosyaları için basit bir örnekleme oranı dönüştürücü + Secret Rabbit Code (alias libsamplerate) est un convertisseur audio de taux de Sample (Sample Rate Converter). + libsamplerate (Seceret Rabbit Code) ses dosyaları için basit bir örnekleme oranı dönüştürücüsüdür. Zaman ya da tercih edilen başka bir yapıya bağlı olarak 12 kata kadar dönüşüm yapabilir. Örnekleme oranı değiştirebildiği gibi hızlandırma ve yavaşlatma filtreleri de uygulayabilir. + + + + libsamplerate-devel + libsamplerate için geliştirme dosyaları + libsamplerate için geliştirme dosyaları + + diff --git a/multimedia/sound/libsndfile/actions.py b/multimedia/sound/libsndfile/actions.py new file mode 100644 index 0000000000..34a9b9700e --- /dev/null +++ b/multimedia/sound/libsndfile/actions.py @@ -0,0 +1,44 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import libtools +from pisi.actionsapi import get + +def setup(): + options = "--disable-static \ + --disable-sqlite \ + --enable-flac \ + --enable-alsa \ + --enable-largefile \ + --disable-gcc-pipe \ + --disable-jack \ + --disable-octave \ + --disable-gcc-werror \ + --disable-dependency-tracking" + + pisitools.dosed("examples/Makefile.am", "noinst_PROGRAMS", "check_PROGRAMS") + pisitools.dosed("tests/Makefile.am", "noinst_PROGRAMS", "check_PROGRAMS") + + shelltools.unlink("M4/libtool.m4") + + for i in shelltools.ls("M4/lt*.m4"): + shelltools.unlink(i) + + autotools.autoreconf("-fi -I M4") + autotools.configure(options) + + pisitools.dosed("doc/Makefile", "^htmldocdir.*", "htmldocdir = /usr/share/doc/%s/html" % get.srcNAME()) + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "NEWS", "README") diff --git a/multimedia/sound/libsndfile/files/libsndfile-1.0.17-regtests-need-sqlite.patch b/multimedia/sound/libsndfile/files/libsndfile-1.0.17-regtests-need-sqlite.patch new file mode 100644 index 0000000000..85d628000f --- /dev/null +++ b/multimedia/sound/libsndfile/files/libsndfile-1.0.17-regtests-need-sqlite.patch @@ -0,0 +1,25 @@ +Index: libsndfile-1.0.17/configure.ac +=================================================================== +--- libsndfile-1.0.17.orig/configure.ac ++++ libsndfile-1.0.17/configure.ac +@@ -268,6 +268,7 @@ else + fi + + AC_DEFINE_UNQUOTED([HAVE_SQLITE3],$HAVE_SQLITE3,[Set to 1 if you have libsqlite3.]) ++AM_CONDITIONAL(HAVE_SQLITE3, [test "x$ac_cv_sqlite3" = "xyes"]) + + #==================================================================================== + # Determine if the processor can do clipping on float to int conversions. +Index: libsndfile-1.0.17/regtest/Makefile.am +=================================================================== +--- libsndfile-1.0.17.orig/regtest/Makefile.am ++++ libsndfile-1.0.17/regtest/Makefile.am +@@ -1,6 +1,8 @@ + ## Process this file with automake to produce Makefile.in + ++if HAVE_SQLITE3 + bin_PROGRAMS = sndfile-regtest ++endif + + noinst_HEADERS = regtest.h + diff --git a/multimedia/sound/libsndfile/files/libsndfile-1.0.18-less_strict_tests.patch b/multimedia/sound/libsndfile/files/libsndfile-1.0.18-less_strict_tests.patch new file mode 100644 index 0000000000..f2a264c54f --- /dev/null +++ b/multimedia/sound/libsndfile/files/libsndfile-1.0.18-less_strict_tests.patch @@ -0,0 +1,26 @@ +This one fails on amd64; vorbis is lossy anyway so just increase the tolerance +for now. + + +Index: libsndfile-1.0.18/tests/floating_point_test.tpl +=================================================================== +--- libsndfile-1.0.18.orig/tests/floating_point_test.tpl ++++ libsndfile-1.0.18/tests/floating_point_test.tpl +@@ -111,7 +111,7 @@ main (int argc, char *argv []) + float_scaled_test ("flac_16.flac", allow_exit, SF_FALSE, SF_FORMAT_FLAC | SF_FORMAT_PCM_16, -87.0) ; + float_scaled_test ("flac_24.flac", allow_exit, SF_FALSE, SF_FORMAT_FLAC | SF_FORMAT_PCM_24, -138.0) ; + +- float_scaled_test ("vorbis.oga", allow_exit, SF_FALSE, SF_FORMAT_OGG | SF_FORMAT_VORBIS, -31.0) ; ++ float_scaled_test ("vorbis.oga", allow_exit, SF_FALSE, SF_FORMAT_OGG | SF_FORMAT_VORBIS, -21.0) ; + #endif + + float_scaled_test ("replace_float.raw", allow_exit, SF_TRUE, SF_ENDIAN_LITTLE | SF_FORMAT_RAW | SF_FORMAT_FLOAT, -163.0) ; +@@ -163,7 +163,7 @@ main (int argc, char *argv []) + double_scaled_test ("flac_16.flac", allow_exit, SF_FALSE, SF_FORMAT_FLAC | SF_FORMAT_PCM_16, -87.0) ; + double_scaled_test ("flac_24.flac", allow_exit, SF_FALSE, SF_FORMAT_FLAC | SF_FORMAT_PCM_24, -138.0) ; + +- double_scaled_test ("vorbis.oga", allow_exit, SF_FALSE, SF_FORMAT_OGG | SF_FORMAT_VORBIS, -29.0) ; ++ double_scaled_test ("vorbis.oga", allow_exit, SF_FALSE, SF_FORMAT_OGG | SF_FORMAT_VORBIS, -19.0) ; + #endif + + double_scaled_test ("replace_double.raw", allow_exit, SF_TRUE, SF_FORMAT_RAW | SF_FORMAT_DOUBLE, -300.0) ; diff --git a/multimedia/sound/libsndfile/files/m4dir.patch b/multimedia/sound/libsndfile/files/m4dir.patch new file mode 100644 index 0000000000..0ad839cf4d --- /dev/null +++ b/multimedia/sound/libsndfile/files/m4dir.patch @@ -0,0 +1,11 @@ +diff -Nur libsndfile-1.0.20-old/Makefile.am libsndfile-1.0.20/Makefile.am +--- libsndfile-1.0.20-old/Makefile.am 2009-06-01 15:18:00.043146693 +0300 ++++ libsndfile-1.0.20/Makefile.am 2009-06-01 15:18:12.023269283 +0300 +@@ -1,6 +1,7 @@ + ## Process this file with automake to produce Makefile.in + + DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror ++ACLOCAL_AMFLAGS = -I M4 + + if BUILD_OCTAVE_MOD + octave_dir = Octave diff --git a/multimedia/sound/libsndfile/pspec.xml b/multimedia/sound/libsndfile/pspec.xml new file mode 100644 index 0000000000..8da1a6dac9 --- /dev/null +++ b/multimedia/sound/libsndfile/pspec.xml @@ -0,0 +1,108 @@ + + + + + libsndfile + http://www.mega-nerd.com/libsndfile/ + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + library + app:console + A C library for reading and writing files containing sampled sound + Libsndfile is a C library for reading and writing files containing sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface. + http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz + + flac-devel + libogg-devel + alsa-lib-devel + libvorbis-devel + + + libsndfile-1.0.18-less_strict_tests.patch + libsndfile-1.0.17-regtests-need-sqlite.patch + m4dir.patch + + + + + libsndfile + + flac + libogg + alsa-lib + libvorbis + + + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/man + /usr/share/octave + + + + + libsndfile-devel + Development files for libsndfile + + libsndfile + + + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + + + + + libsndfile-32bit + emul32 + 32-bit shared libraries for libsndfile + emul32 + + glibc-32bit + flac-32bit + alsa-lib-32bit + libogg-32bit + libvorbis-32bit + + + glibc-32bit + flac-32bit + alsa-lib-32bit + libogg-32bit + libvorbis-32bit + libsndfile + + + /usr/lib32 + + + + + + 2014-05-25 + 1.0.25 + Rebuild + Alihan Öztürk + alihan@pisilinux.org + + + 2014-02-01 + 1.0.25 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2011-07-17 + 1.0.25 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/sound/libsndfile/translations.xml b/multimedia/sound/libsndfile/translations.xml new file mode 100644 index 0000000000..b7b5784916 --- /dev/null +++ b/multimedia/sound/libsndfile/translations.xml @@ -0,0 +1,20 @@ + + + + libsndfile + Örneklenmiş ses verileri içeren dosyalar yazmak ve okumak için C dili kütüphanesi. + Libsndfile, standart bir kütüphane arayüzü vasıtası ile (MS Windows WAV ve Apple/SGI AIFF biçimi gibi)örneklenmiş ses içeren dosyalar yazmak ve okumak için bir C dili kütüphanesidir. + Libsndfile est une librairie C pour lire et écrire des fichiers contenant des échantillons sonores (tels que les fichiers aux formats MS Windows WAV et Apple/SGI AIFF) à travers une seule interface de librairie standard. + Libsndfile es una librería C de lectura y escritura para archivos de sonido (como MS Windows WAV y el formato Apple/SGI AIFF) con una interfaz estándar de libería. + + + + libsndfile-devel + libsndfile için geliştirme dosyaları + + + + libsndfile-32bit + libsndfile için 32-bit paylaşımlı kitaplıklar + + diff --git a/multimedia/sound/libvorbis/actions.py b/multimedia/sound/libvorbis/actions.py new file mode 100644 index 0000000000..7a676e3957 --- /dev/null +++ b/multimedia/sound/libvorbis/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--disable-static") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.removeDir("/usr/share/doc") + + pisitools.dodoc("AUTHORS", "README", "todo.txt", "doc/*.txt") + pisitools.dohtml("doc/*") diff --git a/multimedia/sound/libvorbis/pspec.xml b/multimedia/sound/libvorbis/pspec.xml new file mode 100644 index 0000000000..7c962c84c9 --- /dev/null +++ b/multimedia/sound/libvorbis/pspec.xml @@ -0,0 +1,90 @@ + + + + + libvorbis + http://www.vorbis.com + + PisiLinux Community + admins@pisilinux.org + + BSD + library + The Vorbis general audio compression codec + libvorbis is a fully open, non-proprietary, patent- and royalty-free, general-purpose compressed audio format for audio and music at fixed variable bitrates from 16 to 128 kbps/channel. + http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.xz + + libogg-devel + + + + + libvorbis + + libogg + + + /usr/lib + /usr/share/doc/libvorbis/AUTHORS + /usr/share/doc/libvorbis/README + + + + + libvorbis-devel + + libvorbis + libogg-devel + + + /usr/include + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + /usr/share/aclocal + /usr/share/doc/libvorbis + + + + + libvorbis-32bit + emul32 + 32-bit shared libraries for libvorbis + emul32 + + glibc-32bit + libogg-32bit + + + libvorbis + glibc-32bit + libogg-32bit + + + /usr/lib32 + + + + + + 2014-05-20 + 1.3.4 + Rebuild, cleanup. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-02-01 + 1.3.4 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-08-31 + 1.3.3 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/multimedia/sound/libvorbis/translations.xml b/multimedia/sound/libvorbis/translations.xml new file mode 100644 index 0000000000..533c21748b --- /dev/null +++ b/multimedia/sound/libvorbis/translations.xml @@ -0,0 +1,14 @@ + + + + libvorbis + Vorbis genel ses sıkıştırma kodlaması + libvorbis tamamen açık, sahipsiz, genel amaçlı sıkıştırılmış ses biçimidir. + Librairie de formatage de fichier son Ogg Vorbis libre. + + + + libvorbis-32bit + libvorbis için 32-bit paylaşımlı kitaplıklar + + diff --git a/multimedia/sound/openal/pspec.xml b/multimedia/sound/openal/pspec.xml index a062aa84bc..5be9b05392 100644 --- a/multimedia/sound/openal/pspec.xml +++ b/multimedia/sound/openal/pspec.xml @@ -16,6 +16,7 @@ alsa-lib-devel pulseaudio-libs-devel + cmake pthread.patch @@ -57,7 +58,11 @@ emul32 32-bit shared libraries for openal emul32 - + + glibc-32bit + + + glibc-32bit openal diff --git a/multimedia/sound/pulseaudio/pspec.xml b/multimedia/sound/pulseaudio/pspec.xml index 28430f1a28..0e0932dcfc 100644 --- a/multimedia/sound/pulseaudio/pspec.xml +++ b/multimedia/sound/pulseaudio/pspec.xml @@ -23,8 +23,8 @@ doxygen xcb-proto gtk2-devel - lirc-devel - gconf-devel + + avahi-devel speex-devel libSM-devel @@ -33,12 +33,14 @@ libXtst-devel xcb-util-devel alsa-lib-devel - bluez-libs-devel libsndfile-devel libasyncns-devel libatomic_ops-devel - libsamplerate-devel - libasyncns-devel + eudev-devel + dbus-devel + intltool + libcap-devel + json-c-devel @@ -46,9 +48,17 @@ pulseaudio-libs Libraries for PulseAudio clients + dbus + glib2 + json-c + libX11 + libxcb + eudev + + libtool-ltdl orc sbc - lirc + fftw3 libSM speex @@ -58,6 +68,7 @@ avahi-libs libasyncns libsndfile + bluez /usr/bin/pa* @@ -100,6 +111,10 @@ pulseaudio + dbus + libX11 + libcap + libtool-ltdl orc speex libtdb @@ -155,7 +170,7 @@ - + pulseaudio-libs-32bit @@ -181,6 +196,7 @@ libcap-32bit libsndfile-32bit libtool-ltdl-32bit + glibc-32bit pulseaudio-libs @@ -188,6 +204,7 @@ glib2-32bit libsndfile-32bit json-c-32bit + glibc-32bit /usr/lib32 diff --git a/multimedia/sound/speex/actions.py b/multimedia/sound/speex/actions.py new file mode 100644 index 0000000000..bca5a90e5e --- /dev/null +++ b/multimedia/sound/speex/actions.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + shelltools.export("CFLAGS", "%s -D_FILE_OFFSET_BITS=64" % get.CFLAGS()) + + pisitools.dosed("libspeex/Makefile.am", "noinst_PROGRAMS", "check_PROGRAMS") + + options = "--enable-ogg \ + --enable-sse \ + --disable-static" + + if get.buildTYPE() == "emul32": + # ogg only affects the executables so it's safe to disable for emul32 + options += " --libdir=/usr/lib32 --disable-ogg" + shelltools.export("CFLAGS", "%s -m32" % get.CFLAGS()) + + autotools.autoreconf("-vif") + autotools.configure(options) + + # Remove rpath from speexenc and speexdec + pisitools.dosed("libtool", "^hardcode_libdir_flag_spec=.*", "hardcode_libdir_flag_spec=\"\"") + pisitools.dosed("libtool", "^runpath_var=LD_RUN_PATH", "runpath_var=DIE_RPATH_DIE") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s docdir=/usr/share/doc/speex" % get.installDIR()) + + pisitools.dodoc("README") diff --git a/multimedia/sound/speex/files/configure.patch b/multimedia/sound/speex/files/configure.patch new file mode 100644 index 0000000000..17457576b6 --- /dev/null +++ b/multimedia/sound/speex/files/configure.patch @@ -0,0 +1,32 @@ +Index: speex-1.2rc1/configure.ac +=================================================================== +--- speex-1.2rc1.orig/configure.ac ++++ speex-1.2rc1/configure.ac +@@ -112,9 +112,6 @@ AC_MSG_RESULT($has_visibility) + + AC_CHECK_HEADERS(sys/soundcard.h sys/audioio.h) + +-XIPH_PATH_OGG([src="src"], [src=""]) +-AC_SUBST(src) +- + AC_CHECK_LIB(m, sin) + + # Check for getopt_long; if not found, use included source. +@@ -139,10 +136,16 @@ AC_ARG_ENABLE(valgrind, [ --enable-valg + AC_DEFINE([ENABLE_VALGRIND], , [Enable valgrind extra checks]) + fi]) + ++AC_ARG_ENABLE(ogg, [ --enable-ogg Enable OGG support], [if test "$enableval" = yes; then ++ XIPH_PATH_OGG([src="src"], [src=""]) ++ AC_SUBST(src) ++fi ++]) ++ + AC_ARG_ENABLE(sse, [ --enable-sse Enable SSE support], [ + if test "x$enableval" != xno; then + has_sse=yes +-CFLAGS="$CFLAGS -O3 -msse" ++CFLAGS="$CFLAGS -msse" + else + has_sse=no + fi diff --git a/multimedia/sound/speex/files/constant.patch b/multimedia/sound/speex/files/constant.patch new file mode 100644 index 0000000000..5f881333c6 --- /dev/null +++ b/multimedia/sound/speex/files/constant.patch @@ -0,0 +1,83 @@ +Index: speex-1.2beta3/libspeex/resample.c +=================================================================== +--- speex-1.2beta3.orig/libspeex/resample.c ++++ speex-1.2beta3/libspeex/resample.c +@@ -130,7 +130,7 @@ struct SpeexResamplerState_ { + int out_stride; + } ; + +-static double kaiser12_table[68] = { ++static const double kaiser12_table[68] = { + 0.99859849, 1.00000000, 0.99859849, 0.99440475, 0.98745105, 0.97779076, + 0.96549770, 0.95066529, 0.93340547, 0.91384741, 0.89213598, 0.86843014, + 0.84290116, 0.81573067, 0.78710866, 0.75723148, 0.72629970, 0.69451601, +@@ -144,7 +144,7 @@ static double kaiser12_table[68] = { + 0.00105297, 0.00069463, 0.00043489, 0.00025272, 0.00013031, 0.0000527734, + 0.00001000, 0.00000000}; + /* +-static double kaiser12_table[36] = { ++static const double kaiser12_table[36] = { + 0.99440475, 1.00000000, 0.99440475, 0.97779076, 0.95066529, 0.91384741, + 0.86843014, 0.81573067, 0.75723148, 0.69451601, 0.62920216, 0.56287762, + 0.49704014, 0.43304576, 0.37206735, 0.31506490, 0.26276832, 0.21567274, +@@ -152,7 +152,7 @@ static double kaiser12_table[36] = { + 0.03111947, 0.02127838, 0.01402878, 0.00886058, 0.00531256, 0.00298291, + 0.00153438, 0.00069463, 0.00025272, 0.0000527734, 0.00000500, 0.00000000}; + */ +-static double kaiser10_table[36] = { ++static const double kaiser10_table[36] = { + 0.99537781, 1.00000000, 0.99537781, 0.98162644, 0.95908712, 0.92831446, + 0.89005583, 0.84522401, 0.79486424, 0.74011713, 0.68217934, 0.62226347, + 0.56155915, 0.50119680, 0.44221549, 0.38553619, 0.33194107, 0.28205962, +@@ -160,7 +160,7 @@ static double kaiser10_table[36] = { + 0.05731132, 0.04193980, 0.02979584, 0.02044510, 0.01345224, 0.00839739, + 0.00488951, 0.00257636, 0.00115101, 0.00035515, 0.00000000, 0.00000000}; + +-static double kaiser8_table[36] = { ++static const double kaiser8_table[36] = { + 0.99635258, 1.00000000, 0.99635258, 0.98548012, 0.96759014, 0.94302200, + 0.91223751, 0.87580811, 0.83439927, 0.78875245, 0.73966538, 0.68797126, + 0.63451750, 0.58014482, 0.52566725, 0.47185369, 0.41941150, 0.36897272, +@@ -168,7 +168,7 @@ static double kaiser8_table[36] = { + 0.10562887, 0.08273982, 0.06335451, 0.04724088, 0.03412321, 0.02369490, + 0.01563093, 0.00959968, 0.00527363, 0.00233883, 0.00050000, 0.00000000}; + +-static double kaiser6_table[36] = { ++static const double kaiser6_table[36] = { + 0.99733006, 1.00000000, 0.99733006, 0.98935595, 0.97618418, 0.95799003, + 0.93501423, 0.90755855, 0.87598009, 0.84068475, 0.80211977, 0.76076565, + 0.71712752, 0.67172623, 0.62508937, 0.57774224, 0.53019925, 0.48295561, +@@ -177,19 +177,19 @@ static double kaiser6_table[36] = { + 0.05031820, 0.03607231, 0.02432151, 0.01487334, 0.00752000, 0.00000000}; + + struct FuncDef { +- double *table; ++ const double *table; + int oversample; + }; + +-static struct FuncDef _KAISER12 = {kaiser12_table, 64}; ++static const struct FuncDef _KAISER12 = {kaiser12_table, 64}; + #define KAISER12 (&_KAISER12) + /*static struct FuncDef _KAISER12 = {kaiser12_table, 32}; + #define KAISER12 (&_KAISER12)*/ +-static struct FuncDef _KAISER10 = {kaiser10_table, 32}; ++static const struct FuncDef _KAISER10 = {kaiser10_table, 32}; + #define KAISER10 (&_KAISER10) +-static struct FuncDef _KAISER8 = {kaiser8_table, 32}; ++static const struct FuncDef _KAISER8 = {kaiser8_table, 32}; + #define KAISER8 (&_KAISER8) +-static struct FuncDef _KAISER6 = {kaiser6_table, 32}; ++static const struct FuncDef _KAISER6 = {kaiser6_table, 32}; + #define KAISER6 (&_KAISER6) + + struct QualityMapping { +@@ -197,7 +197,7 @@ struct QualityMapping { + int oversample; + float downsample_bandwidth; + float upsample_bandwidth; +- struct FuncDef *window_func; ++ const struct FuncDef *window_func; + }; + + diff --git a/multimedia/sound/speex/pspec.xml b/multimedia/sound/speex/pspec.xml new file mode 100644 index 0000000000..d339e4b2e1 --- /dev/null +++ b/multimedia/sound/speex/pspec.xml @@ -0,0 +1,85 @@ + + + + + speex + http://www.speex.org/ + + PisiLinux Community + admins@pisilinux.org + + xiph + app:console + Audio compression format designed for speech and its converter application + speex is an Open Source/Free Software patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. The package also contains a command-line tool to convert to/from Speex codec. + http://downloads.us.xiph.org/releases/speex/speex-1.2rc1.tar.gz + + libogg-devel + + + constant.patch + configure.patch + + + + + speex + + libogg + + + /usr/bin + /usr/share/man + /usr/lib + /usr/share/doc + + + + + speex-devel + Development files for speex + + speex + + + /usr/include + /usr/share/aclocal + /usr/lib/pkgconfig + /usr/lib32/pkgconfig + + + + + speex-32bit + emul32 + 32-bit shared libraries for speex + emul32 + + glibc-32bit + + + speex + glibc-32bit + + + /usr/lib32 + + + + + + 2014-05-20 + 1.2_rc1 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2011-03-01 + 1.2_rc1 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/sound/speex/translations.xml b/multimedia/sound/speex/translations.xml new file mode 100644 index 0000000000..384d450765 --- /dev/null +++ b/multimedia/sound/speex/translations.xml @@ -0,0 +1,18 @@ + + + + speex + Konuşma için tasarlanmış bir ses sıkıştırma biçimi kütüphanesi ve araçları + speex, konuşma için tasarlanmış özgür ve açık kaynaklı bir ses sıkıştırma biçimidir. Paket kütüphanenin yanında speex biçimine/biçiminden dönüştürme yapmak için gerekli araçları içerir. + + + + speex-devel + speex için geliştirme dosyaları + + + + speex-32bit + speex için 32-bit paylaşımlı kitaplıklar + + diff --git a/multimedia/sound/vorbis-tools/actions.py b/multimedia/sound/vorbis-tools/actions.py new file mode 100644 index 0000000000..0af2405b79 --- /dev/null +++ b/multimedia/sound/vorbis-tools/actions.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + shelltools.export("AT_M4DIR", "m4") + autotools.autoreconf("-vfi") + + autotools.configure('--disable-dependency-tracking \ + --enable-nls \ + --enable-vcut \ + --enable-ogg123 \ + --with-flac \ + --with-speex \ + --with-kate \ + --docdir="/%s/%s"' % (get.docDIR(), get.srcNAME())) + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.removeDir("/usr/share/doc") + pisitools.dodoc("CHANGES", "COPYING", "AUTHORS", "README", "ogg123/ogg123rc-example") diff --git a/multimedia/sound/vorbis-tools/pspec.xml b/multimedia/sound/vorbis-tools/pspec.xml new file mode 100644 index 0000000000..b105920878 --- /dev/null +++ b/multimedia/sound/vorbis-tools/pspec.xml @@ -0,0 +1,60 @@ + + + + + vorbis-tools + http://www.vorbis.com/ + + PisiLinux Community + admins@pisilinux.org + + as-is + app:console + Tools for using the Ogg Vorbis sound file format + This set of tools allow you to play and encode Ogg Vorbis files. + http://downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz + + libvorbis-devel + libao-devel + flac-devel + speex-devel + libogg-devel + libkate-devel + + + + + vorbis-tools + + libvorbis + libao + flac + speex + libogg + libkate + + + /usr/bin + /usr/share/doc + /usr/share/locale + /usr/share/man + + + + + + 2014-01-28 + 1.4.0 + Rebuild + Alihan Öztürk + alihan@pisilinux.org + + + 2010-10-12 + 1.4.0 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/multimedia/sound/vorbis-tools/translations.xml b/multimedia/sound/vorbis-tools/translations.xml new file mode 100644 index 0000000000..a043010dba --- /dev/null +++ b/multimedia/sound/vorbis-tools/translations.xml @@ -0,0 +1,8 @@ + + + + vorbis-tools + Ogg Vorbis ses dosyaları için araçlar paketi. + vorbis-tools Ogg Vorbis dosyaları oluşturabilmenize ve oynatabilmenize olanak tanır. + + diff --git a/multimedia/video/gstreamer/pspec.xml b/multimedia/video/gstreamer/pspec.xml index 87a1071184..09b0d18ee2 100644 --- a/multimedia/video/gstreamer/pspec.xml +++ b/multimedia/video/gstreamer/pspec.xml @@ -14,6 +14,11 @@ GStreamer streaming media framework runtime GStreamer is a streaming media framework, based on graphs of filters which operate on media data. Applications using this library can do anything from real-time sound processing to playing videos, and just about anything else media-related. http://ftp.gnome.org/pub/gnome/sources/gstreamer/0.10/gstreamer-0.10.36.tar.xz + + glib2-devel + gobject-introspection-devel + libxml2-devel + wrapper-plugins.patch @@ -23,6 +28,10 @@ gstreamer + + glib2 + libxml2 + /usr/bin /usr/lib @@ -55,11 +64,13 @@ emul32 glib2-32bit + glibc-32bit libxml2-32bit gstreamer glib2-32bit + glibc-32bit libxml2-32bit @@ -68,6 +79,13 @@ + + 2015-06-26 + 0.10.36 + Rebuild, fixed. + Hakan Yıldız + hknyldz93@gmail.com + 2014-05-19 0.10.36 diff --git a/network/analyzer/avahi/actions.py b/network/analyzer/avahi/actions.py new file mode 100644 index 0000000000..dad0acc9da --- /dev/null +++ b/network/analyzer/avahi/actions.py @@ -0,0 +1,65 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + pisitools.dosed("avahi-daemon/avahi-daemon.conf", "^#(disallow-other-stacks=)no", "\\1yes") + + # fix avahi socket path + pisitools.dosed('configure.ac', '^(avahi_runtime_dir=")\$\{localstatedir\}(\/run")', r'\1\2') + + autotools.autoreconf("-fi") + # --with-systemdsystemunitdir=/lib/systemd/system + autotools.configure("\ + --with-distro=none \ + --disable-monodoc \ + --disable-static \ + --disable-xmltoman \ + --disable-qt3 \ + --disable-qt4 \ + --disable-doxygen-doc \ + --enable-glib \ + --enable-gobject \ + --enable-introspection \ + --disable-mono \ + --disable-python \ + --enable-gtk3 \ + --enable-compat-howl \ + --enable-compat-libdns_sd \ + --with-avahi-user=avahi \ + --with-avahi-group=avahi \ + --with-autoipd-user=avahi-autoipd \ + --with-autoipd-group=avahi-autoipd \ + --with-avahi-priv-access-group=avahi \ + --with-dbus-system-address=unix:path=/run/dbus/system_bus_socket \ + ") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + # Add missing symlinks for avahi-compat-howl and avahi-compat-dns-sd + pisitools.dosym("/usr/lib/pkgconfig/avahi-compat-howl.pc", "/usr/lib/pkgconfig/howl.pc") + pisitools.dosym("/usr/lib/pkgconfig/avahi-compat-libdns_sd.pc", "/usr/lib/pkgconfig/libdns_sd.pc") + pisitools.dosym("/usr/include/avahi-compat-libdns_sd/dns_sd.h", "/usr/include/dns_sd.h") + + # Remove example + pisitools.remove("/etc/avahi/services/sftp-ssh.service") + + pisitools.dodir("/run/avahi-daemon") + pisitools.dodir("/var/lib/avahi-autoipd") + + pisitools.dodoc("docs/AUTHORS", "docs/README", "docs/TODO") + + pisitools.removeDir("var/run") + pisitools.removeDir("/usr/lib/avahi") \ No newline at end of file diff --git a/network/analyzer/avahi/comar/avahi-daemon-package.py b/network/analyzer/avahi/comar/avahi-daemon-package.py new file mode 100644 index 0000000000..2c2248ef21 --- /dev/null +++ b/network/analyzer/avahi/comar/avahi-daemon-package.py @@ -0,0 +1,19 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +import shutil + +ownerships = { + "/run/avahi-daemon" : "avahi:avahi", + } + +def postInstall(fromVersion, fromRelease, toVersion, toRelease): + for directory,owners in ownerships.items(): + if os.path.exists(directory): + os.system("/bin/chown %s %s" % (owners, directory)) + + if os.path.exists("/etc/localtime"): + if not os.path.isdir("/etc/avahi/etc"): + os.makedirs("/etc/avahi/etc") + shutil.copy("/etc/localtime", "/etc/avahi/etc/localtime") diff --git a/network/analyzer/avahi/comar/avahi-daemon-service.py b/network/analyzer/avahi/comar/avahi-daemon-service.py new file mode 100644 index 0000000000..1414adf72b --- /dev/null +++ b/network/analyzer/avahi/comar/avahi-daemon-service.py @@ -0,0 +1,25 @@ +from comar.service import * + +serviceType="server" +serviceDesc = _({"en": "Avahi Server", + "tr": "Avahi Hizmeti"}) + +@synchronized +def start(): + startService(command="/usr/sbin/avahi-daemon", + args="-D", + donotify=True) + +@synchronized +def stop(): + stopService(command="/usr/sbin/avahi-daemon", + args="-k", + donotify=True) + +def reload(): + stopService(command="/usr/sbin/avahi-daemon", + args="-r", + donotify=True) + +def status(): + return isServiceRunning("/run/avahi-daemon/pid") diff --git a/network/analyzer/avahi/comar/avahi-dnsconfd-service.py b/network/analyzer/avahi/comar/avahi-dnsconfd-service.py new file mode 100644 index 0000000000..bcf46320d9 --- /dev/null +++ b/network/analyzer/avahi/comar/avahi-dnsconfd-service.py @@ -0,0 +1,29 @@ +from comar.service import * +import signal + +serviceType="server" +serviceDesc = _({"en": "Avahi DNS Configuration Daemon", + "tr": "Avahi DNS Yapılandırma Hizmeti"}) + +PIDFILE = "/run/avahi-dnsconfd.pid" +DAEMON = "/usr/sbin/avahi-dnsconfd" + +@synchronized +def start(): + startDependencies("avahi") + startService(command=DAEMON, + args="-D", + donotify=True) + +@synchronized +def stop(): + stopService(pidfile=PIDFILE, + donotify=True) + +@synchronized +def reload(): + stopService(command=DAEMON, + signal=signal.SIGHUP) + +def status(): + return isServiceRunning(pidfile=PIDFILE) diff --git a/network/analyzer/avahi/files/avahi-0.6.31-no-deprecations.patch b/network/analyzer/avahi/files/avahi-0.6.31-no-deprecations.patch new file mode 100644 index 0000000000..9ca9d38dec --- /dev/null +++ b/network/analyzer/avahi/files/avahi-0.6.31-no-deprecations.patch @@ -0,0 +1,22 @@ +--- avahi-0.6.31/avahi-ui/Makefile.am.orig 2013-09-21 16:47:28.677659361 +0200 ++++ avahi-0.6.31/avahi-ui/Makefile.am 2013-09-21 16:47:34.852520537 +0200 +@@ -15,7 +15,7 @@ + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + # USA. + +-AM_CFLAGS=-I$(top_srcdir) -DG_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGTK_DISABLE_DEPRECATED=1 ++AM_CFLAGS=-I$(top_srcdir) + + # This cool debug trap works on i386/gcc only + AM_CFLAGS+='-DDEBUG_TRAP=__asm__("int $$3")' +--- avahi-0.6.31/configure.ac.orig 2013-09-21 16:46:43.750669413 +0200 ++++ avahi-0.6.31/configure.ac 2013-09-21 16:47:02.566246400 +0200 +@@ -92,7 +92,7 @@ + AC_MSG_CHECKING([whether stack-smashing protection is available]) + ssp_old_cflags="$CFLAGS" + ssp_old_ldflags="$LDFLAGS" +- CFLAGS="$CFLAGS -Werror -fstack-protector-all -fPIC" ++ CFLAGS="$CFLAGS -fstack-protector-all -fPIC" + LDFLAGS="$LDFLAGS -Wl,-z,defs" + cat confdefs.h > conftest.c + cat >>conftest.c <<_ACEOF diff --git a/network/analyzer/avahi/files/avahi.conf b/network/analyzer/avahi/files/avahi.conf new file mode 100644 index 0000000000..0abe0e5732 --- /dev/null +++ b/network/analyzer/avahi/files/avahi.conf @@ -0,0 +1 @@ +d /run/avahi-daemon 0755 avahi avahi \ No newline at end of file diff --git a/network/analyzer/avahi/pspec.xml b/network/analyzer/avahi/pspec.xml new file mode 100644 index 0000000000..c4cceb34db --- /dev/null +++ b/network/analyzer/avahi/pspec.xml @@ -0,0 +1,422 @@ + + + + + avahi + http://avahi.org/ + + PisiLinux Community + admins@pisilinux.org + + LGPLv2 + app:console + Local network service discovery + avahi is a system which facilitates service discovery on a local network. This means that you can plug your laptop or computer into a network and instantly be able to view other people who you can chat with, find printers to print to or find files being shared. + http://avahi.org/download/avahi-0.6.31.tar.gz + + gtk2-devel + gtk3-devel + libcap-devel + libdaemon-devel + gobject-introspection-devel + libepoxy-devel + at-spi2-core-devel + gdbm-devel + intltool + + + + + avahi-0.6.31-no-deprecations.patch + + + + + avahi-glib + Libraries for easy use of avahi from glib applications + + glib2 + avahi + avahi-libs + + + /usr/lib/libavahi-glib.* + /usr/lib/libavahi-gobject.* + + + + avahi-glib-devel + Development files for avahi-glib + + avahi-glib + avahi-devel + + + /usr/include/avahi-glib + /usr/include/avahi-gobject + /usr/lib/pkgconfig/avahi-glib.pc + /usr/lib/pkgconfig/avahi-gobject.pc + + + + + + + avahi-ui + Gtk user interface library for Avahi + + gdbm + gtk2 + glib2 + avahi-libs + avahi-glib + atk + cairo + pango + gdk-pixbuf + fontconfig + + + /usr/lib/libavahi-ui.so* + + + + + avahi-ui-devel + Development files for avahi-ui + + gtk2-devel + avahi-ui + avahi-devel + avahi-glib-devel + + + /usr/include/avahi-ui + /usr/lib/pkgconfig/avahi-ui.pc + + + + + avahi-ui-gtk3 + Gtk3 user interface library for Avahi + + gdbm + glib2 + gtk3 + avahi-libs + avahi-glib + atk + cairo + pango + gdk-pixbuf + + + /usr/lib/libavahi-ui-gtk3.so* + + + + + avahi-ui-gtk3-devel + Development files for avahi-ui-gtk3 + + gtk2-devel + avahi-ui-gtk3 + avahi-devel + avahi-glib-devel + gtk3-devel + + + /usr/lib/pkgconfig/avahi-ui-gtk3.pc + + + + + avahi-ui-tools + UI tools for mDNS browsing + + gtk3 + glib2 + + avahi + avahi-ui + avahi-glib + avahi-ui-gtk3 + avahi-libs + gtk3 + + + /usr/lib/python*/site-packages + /usr/bin/b* + /usr/bin/avahi-discover* + /usr/bin/avahi-bookmarks + /usr/share/man/man1/b* + /usr/share/man/man1/avahi-discover* + /usr/share/man/man1/avahi-bookmarks* + /usr/share/avahi/interfaces + /usr/share/applications/b* + /usr/share/applications/avahi-discover.desktop + + + + + avahi-compat-howl + Libraries for howl compatibility + + avahi + avahi-libs + + + /usr/lib/libhowl.so* + + + + + avahi-compat-howl-devel + Development files for avahi-compat-howl + + avahi-compat-howl + + + /usr/include/avahi-compat-howl + /usr/lib/pkgconfig/avahi-compat-howl.pc + /usr/lib/pkgconfig/howl.pc + + + + + avahi-compat-libdns_sd + Libraries for Apple Bonjour mDNSResponder compatibility + + avahi + avahi-libs + + + /usr/lib/libdns_sd.so* + + + + + avahi-compat-libdns_sd-devel + Development files for avahi-compat-libdns_sd + + avahi-compat-libdns_sd + + + /usr/include/avahi-compat-libdns_sd + /usr/include/dns_sd.h + /usr/lib/pkgconfig/avahi-compat-libdns_sd.pc + /usr/lib/pkgconfig/libdns_sd.pc + + + + + avahi-libs + Libraries needed to run programs that use avahi + + dbus + + + /usr/lib/libavahi-common.so* + /usr/lib/libavahi-client.so* + + + + + avahi + + dbus + expat + libcap + libdaemon + avahi-libs + + + /usr/sbin/avahi-daemon + /usr/lib/libavahi-core.so* + /etc/avahi/avahi-daemon.conf + /etc/avahi/hosts + /etc/avahi/services/ssh.service + /etc/dbus-1/system.d/avahi-dbus.conf + /usr/share/avahi + /usr/share/dbus-1/interfaces/*.xml + /usr/share/dbus-1/system-services + /usr/lib/avahi/service* + /lib/systemd/system + /usr/share/locale + /usr/share/doc + /usr/share/man/man5/* + /usr/share/man/man8/avahi-daemon.* + /run/avahi-daemon + /usr/lib/tmpfiles.d/avahi.conf + + + avahi.conf + + + System.Service + System.Package + + + + + avahi-autoipd + Link-local IPv4 address automatic configuration daemon (IPv4LL) + + libdaemon + + + /etc/avahi/avahi-autoipd.action + /usr/sbin/avahi-autoipd + /usr/share/man/man8/avahi-autoipd.* + /var/lib/avahi-autoipd + + + + + avahi-dnsconfd + Configure local unicast DNS settings based on information published in mDNS + + libdaemon + avahi + avahi-libs + + + /etc/avahi/avahi-dnsconfd.action + /usr/sbin/avahi-dnsconfd + /usr/share/man/man8/avahi-dnsconfd.* + + + System.Service + + + + + avahi-tools + Command line tools for mDNS browsing and publishing + + gdbm + avahi + avahi-libs + + + /usr/bin + /usr/share/man/man1 + + + + + avahi-devel + Development files for avahi + + avahi-libs + + + /usr/lib/pkgconfig/avahi-core.pc + /usr/lib/pkgconfig/avahi-client.pc + /usr/lib/girepository-1.0 + /usr/share/gir-1.0 + /usr/include/avahi-client + /usr/include/avahi-common + /usr/include/avahi-core + + + + + + 2014-05-20 + 0.6.31 + Rebuild. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-01-24 + 0.6.31 + rebuild for unused + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-01-08 + 0.6.31 + Add avahi.conf, fix build + Marcin Bojara + marcin@pisilinux.org + + + 2013-08-17 + 0.6.31 + Fix deps + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2013-06-27 + 0.6.31 + Fix avahi-daemon.conf + Marcin Bojara + marcin@pisilinux.org + + + 2013-05-03 + 0.6.31 + Avahi-ui-gtk3 added + PisiLinux Community + admins@pisilinux.org + + + 2013-04-23 + 0.6.31 + Dep fixed + PisiLinux Community + admins@pisilinux.org + + + 2012-10-05 + 0.6.31 + First release + Erdem Artan + admins@pisilinux.org + + + diff --git a/network/analyzer/avahi/translations.xml b/network/analyzer/avahi/translations.xml new file mode 100644 index 0000000000..0a955989d2 --- /dev/null +++ b/network/analyzer/avahi/translations.xml @@ -0,0 +1,103 @@ + + + + avahi + Yerel ağ hizmeti bulma sistemi + avahi yerel ağ üzerindeki hizmetleri tespit etmeyi kolaylaştıran bir sistemdir. Bu sayede, bilgisayarınızı ağa dahil ettikten sonra anında mevcut bilgisayarları ve yazıcıları görebilir ve kullanabilirsiniz. + + + + avahi-devel + avahi için geliştirme dosyaları + + + + avahi-glib + Glib uygulamalarında avahi kullanımını kolaylaştıran kitaplıklar + + + + avahi-glib-devel + avahi-glib için geliştirme dosyaları + + + + avahi-sharp + Mono uygulamalarında avahi kullanımını kolaylaştıran kitaplıklar + + + + avahi-ui-sharp + avahi-ui için Mono dil bağlayıcıları + + + + avahi-ui-sharp-devel + avahi-ui-sharp için geliştirme dosyaları + + + + avahi-ui + avahi için geliştirme dosyaları + + + + avahi-ui-devel + avahi-ui için geliştirme dosyaları + + + + avahi-ui-gtk3 + avahi-gtk3, Gtk3 user interface library for Avahi + + + + avahi-ui-gtk3-devel + avahi-ui-gtk3 için geliştirme dosyaları + + + + avahi-ui-tools + Grafiksel mDNS tarama araçları + + + + avahi-compat-howl + howl uyumluluk kitaplıkları + + + + avahi-compat-howl-devel + avahi-compat-howl için geliştirme dosyaları + + + + avahi-compat-libdns_sd + libdns_sd uyumluluk kitaplıkları + + + + avahi-compat-libdns_sd-devel + avahi-compat-libdns_sd için geliştirme dosyaları + + + + avahi-libs + Avahi kullanan uygulamaları çalıştırmak için gerekli kitaplıklar + + + + avahi-autoipd + Link-local IPv4 adresi otomatik yapılandırma hizmeti (IPv4LL) + + + + avahi-dnsconfd + Yerel unicast DNS ayarlarını mDNS üzerinden gelen bilgilere göre yapılandırma hizmeti + + + + avahi-tools + mDNS taramak ve yayınlamak için komut satırı araçları + + diff --git a/network/analyzer/component.xml b/network/analyzer/component.xml new file mode 100644 index 0000000000..8f39797520 --- /dev/null +++ b/network/analyzer/component.xml @@ -0,0 +1,3 @@ + + network.analyzer + diff --git a/network/connection/ModemManager/actions.py b/network/connection/ModemManager/actions.py new file mode 100644 index 0000000000..9fd3f51af4 --- /dev/null +++ b/network/connection/ModemManager/actions.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import shelltools +from pisi.actionsapi import pisitools +from pisi.actionsapi import autotools +from pisi.actionsapi import get + +def setup(): + #shelltools.system("./autogen.sh") + autotools.configure("--disable-static \ + --enable-more-warnings=yes \ + --with-udev-base-dir=/lib/udev \ + --with-tests=yes \ + --with-polkit=no") + +def build(): + autotools.make() + +def check(): + autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("README", "COPYING") diff --git a/network/connection/ModemManager/pspec.xml b/network/connection/ModemManager/pspec.xml new file mode 100644 index 0000000000..ac51366c1f --- /dev/null +++ b/network/connection/ModemManager/pspec.xml @@ -0,0 +1,107 @@ + + + + + ModemManager + http://projects.gnome.org/NetworkManager + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + app:console + service + A manager framework for mobile broadband modems + ModemManager provides a unified high level API for communicating with mobile broadband modems. + http://www.freedesktop.org/software/ModemManager/ModemManager-1.2.0.tar.xz + + ppp-devel + libqmi-devel + libmbim-devel + + + + + ModemManager + + ppp + libqmi + libmbim + libmm-glib + + + /usr/share/doc + /usr/sbin + /usr/share/icons + /usr/share/locale + /usr/share/dbus-1 + /usr/share/gir-1.0/ModemManager-1.0.gir + /lib/udev/rules.d/ + /etc/dbus-1/system.d/ + /usr/lib/ModemManager + /usr/lib/girepository-1.0/ModemManager-1.0.typelib + /usr/share/man/man8/ModemManager.8 + + + + + ModemManager-devel + Development files for ModemManager + + ModemManager + + + /usr/include/ModemManager/ + /usr/lib/pkgconfig/ModemManager.pc + + + + + libmm-glib + D-Bus service for managing modems - shared libraries + + /usr/bin + /usr/share/vala/vapi/libmm-glib.vapi + /usr/share/vala/vapi/libmm-glib.deps + /usr/lib/libmm-glib.so* + /usr/share/man/man8/mmcli.8 + + + + + libmm-glib-devel + Development files for libmm-glib + + ModemManager-devel + libmm-glib + + + /usr/include/libmm-glib/ + /usr/lib/pkgconfig/mm-glib.pc + + + + + + 2014-02-17 + 1.2.0 + Version bump. + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2014-01-20 + 1.0.0 + Version Bump + PisiLinux Community + admins@pisilinux.org + + + 2012-08-28 + 5.3.96 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/connection/ModemManager/translations.xml b/network/connection/ModemManager/translations.xml new file mode 100644 index 0000000000..1ab9c10893 --- /dev/null +++ b/network/connection/ModemManager/translations.xml @@ -0,0 +1,24 @@ + + + + ModemManager + Mobil modemler için yönetim katmanı + ModemManager, 3G ve GSM gibi mobil genişbant modemlerle D-Bus üzerinden iletişimi sağlayan bir sistem hizmetidir. + + + + ModemManager-devel + ModemManager için geliştirme dosyaları + + + + libmm-glib + D-Bus service for managing modems - shared libraries + + + + libmm-glib-devel + Development files for libmm-glib + libmm-glib için geliştirme dosyaları + + \ No newline at end of file diff --git a/network/connection/NetworkManager/actions.py b/network/connection/NetworkManager/actions.py new file mode 100644 index 0000000000..9718f9c8ef --- /dev/null +++ b/network/connection/NetworkManager/actions.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 2. +# See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + + +def setup(): + # /var/run => /run + for f in ["configure.ac", "src/Makefile.am", "src/Makefile.in"]: + pisitools.dosed(f, "\$\(?localstatedir\)?(\/run\/(\$PACKAGE|NetworkManager))", "\\1") + pisitools.dosed("configure.ac", "\/var(\/run\/ConsoleKit)", "\\1") + pisitools.dosed("configure.ac", "^initscript", deleteLine=True) + autotools.autoreconf("-fi") + shelltools.system("intltoolize --force --copy --automake") + + autotools.configure("--disable-static \ + --disable-silent-rules \ + --disable-wimax \ + --disable-lto \ + --disable-config-plugin-ibft \ + --disable-ifnet \ + --disable-more-warnings \ + --enable-modify-system \ + --enable-ppp=yes \ + --enable-bluez5=yes \ + --enable-concheck \ + --without-netconfig \ + --with-modem-manager-1 \ + --with-libsoup=yes \ + --with-session-tracking=consolekit \ + --with-suspend-resume=upower \ + --with-system-ca-path=/etc/ssl/certs \ + --with-crypto=nss \ + --with-dhcpcd=/sbin/dhcpcd \ + --with-pppd=/usr/sbin/pppd \ + --with-pppd-plugin-dir=/usr/lib/pppd/2.4.6 \ + --with-dbus-sys-dir=/etc/dbus-1/system.d \ + --with-dhclient=/usr/sbin/dhclient \ + --with-kernel-firmware-dir=/lib/firmware \ + --with-udev-dir=/lib/udev \ + --with-resolvconf=/etc/resolv.default.conf \ + --with-iptables=/usr/sbin/iptables \ + --with-dnsmasq=/usr/sbin/dnsmasq \ + --localstatedir=/var \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib/NetworkManager \ + ") + + pisitools.dosed("libtool", " -shared ", " -Wl,--as-needed -shared ") + +def build(): + autotools.make() + +#def check(): +# autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodir("/etc/NetworkManager/VPN") + + pisitools.dodoc("AUTHORS", "ChangeLog", "CONTRIBUTING", "COPYING", "NEWS", "README") diff --git a/network/connection/NetworkManager/comar/service.py b/network/connection/NetworkManager/comar/service.py new file mode 100644 index 0000000000..52f2d23b94 --- /dev/null +++ b/network/connection/NetworkManager/comar/service.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from comar.service import * +import os + +serviceType = "local" +serviceDesc = _({"en": "Network Manager", + "tr": "Ağ Yöneticisi Hizmeti"}) +serviceDefault = "conditional" + +MSG_BACKEND_WARNING = _({ + "en" : "NetworkManager is not enabled by default. You can change this from /etc/conf.d/NetworkManager.", + "tr" : "NetworkManager öntanımlı olarak etkin değil. /etc/conf.d/NetworkManager dosyasından bu ayarı değiştirebilirsiniz." + }) + +PIDFILE="/run/NetworkManager/NetworkManager.pid" +USETHIS=eval(config.get("DEFAULT", "True")) + +@synchronized +def start(): + if not USETHIS: + fail(MSG_BACKEND_WARNING) + + startService(command="/usr/sbin/NetworkManager", + args="--pid-file=%s" % PIDFILE, + donotify=True) + +@synchronized +def stop(): + stopService(pidfile=PIDFILE, + donotify=True) + + try: + os.unlink(PIDFILE) + except: + pass + +def ready(): + if not USETHIS: + fail(MSG_BACKEND_WARNING) + else: + start() + +def status(): + return isServiceRunning(pidfile=PIDFILE) \ No newline at end of file diff --git a/network/connection/NetworkManager/files/0001-dns-Fix-falling-back-in-the-resolv.conf-methods.patch b/network/connection/NetworkManager/files/0001-dns-Fix-falling-back-in-the-resolv.conf-methods.patch new file mode 100644 index 0000000000..a729b2d25c --- /dev/null +++ b/network/connection/NetworkManager/files/0001-dns-Fix-falling-back-in-the-resolv.conf-methods.patch @@ -0,0 +1,34 @@ +From 35c9e8d5321b6451fb74f8e7231a690c940a6e69 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Wed, 6 May 2015 20:49:57 +0200 +Subject: [PATCH] dns: Fix falling back in the resolv.conf methods + +--- + src/dns-manager/nm-dns-manager.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c +index 2f8ceab..eade2a0 100644 +--- a/src/dns-manager/nm-dns-manager.c ++++ b/src/dns-manager/nm-dns-manager.c +@@ -782,13 +782,16 @@ update_dns (NMDnsManager *self, + + #ifdef NETCONFIG_PATH + if (success == FALSE) { ++ g_clear_error (error); + success = dispatch_netconfig (searches, nameservers, + nis_domain, nis_servers, error); + } + #endif + +- if (success == FALSE) ++ if (success == FALSE) { ++ g_clear_error (error); + success = update_resolv_conf (searches, nameservers, error); ++ } + + /* signal that resolv.conf was changed */ + if (success) +-- +2.4.0 + diff --git a/network/connection/NetworkManager/files/01-org.freedesktop.ModemManager1.rules b/network/connection/NetworkManager/files/01-org.freedesktop.ModemManager1.rules new file mode 100644 index 0000000000..6df2427c54 --- /dev/null +++ b/network/connection/NetworkManager/files/01-org.freedesktop.ModemManager1.rules @@ -0,0 +1,6 @@ +polkit.addRule(function(action, subject) { + if (/^org\.freedesktop\.ModemManager1\.(Device\.Control|Contacts|Messaging|Location)$/.test(action.id) && + subject.isInGroup("network")) { + return "yes"; + } +}); diff --git a/network/connection/NetworkManager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules b/network/connection/NetworkManager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules new file mode 100644 index 0000000000..ed4a41f9d2 --- /dev/null +++ b/network/connection/NetworkManager/files/01-org.freedesktop.NetworkManager.settings.modify.system.rules @@ -0,0 +1,6 @@ +polkit.addRule(function(action, subject) { + if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" && + subject.isInGroup("network")) { + return "yes"; + } +}); diff --git a/network/connection/NetworkManager/files/NetworkManager.conf b/network/connection/NetworkManager/files/NetworkManager.conf new file mode 100644 index 0000000000..002534833b --- /dev/null +++ b/network/connection/NetworkManager/files/NetworkManager.conf @@ -0,0 +1,4 @@ +[main] +plugins=keyfile +dhcp=internal +dns=default \ No newline at end of file diff --git a/network/connection/NetworkManager/files/NetworkManager.confd b/network/connection/NetworkManager/files/NetworkManager.confd new file mode 100644 index 0000000000..c5b43e5be8 --- /dev/null +++ b/network/connection/NetworkManager/files/NetworkManager.confd @@ -0,0 +1,2 @@ +# Set this to False for disabling NM startup on boot +DEFAULT="True" diff --git a/network/connection/NetworkManager/files/disable_set_hostname.patch b/network/connection/NetworkManager/files/disable_set_hostname.patch new file mode 100644 index 0000000000..ee95dd0e1c --- /dev/null +++ b/network/connection/NetworkManager/files/disable_set_hostname.patch @@ -0,0 +1,19 @@ +diff -Nur NetworkManager-0.9.0.orig/src/nm-policy.c NetworkManager-0.9.0/src/nm-policy.c +--- NetworkManager-0.9.0.orig/src/nm-policy.c 2011-08-23 06:41:02.099686450 +0000 ++++ NetworkManager-0.9.0/src/nm-policy.c 2011-08-23 06:43:38.227791737 +0000 +@@ -302,6 +302,7 @@ + return; + } + ++#if 0 + /* Try automatically determined hostname from the best device's IP config */ + if (!best4) + best4 = get_best_ip4_device (policy->manager, &best_req4); +@@ -356,6 +357,7 @@ + } + } + ++#endif + /* If no automatically-configured hostname, try using the hostname from + * when NM started up. + */ diff --git a/network/connection/NetworkManager/files/gentoo/01-org.freedesktop.NetworkManager.settings.modify.system.pkla b/network/connection/NetworkManager/files/gentoo/01-org.freedesktop.NetworkManager.settings.modify.system.pkla new file mode 100644 index 0000000000..24f8d0bd17 --- /dev/null +++ b/network/connection/NetworkManager/files/gentoo/01-org.freedesktop.NetworkManager.settings.modify.system.pkla @@ -0,0 +1,6 @@ +[Let users in removable group modify NetworkManager] +Identity=unix-group:removable +Action=org.freedesktop.NetworkManager.settings.* +ResultAny=no +ResultInactive=no +ResultActive=yes \ No newline at end of file diff --git a/network/connection/NetworkManager/files/migrate-comar-network-profiles b/network/connection/NetworkManager/files/migrate-comar-network-profiles new file mode 100644 index 0000000000..6c96382bec --- /dev/null +++ b/network/connection/NetworkManager/files/migrate-comar-network-profiles @@ -0,0 +1,606 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# Copyright 2009-2010 TUBITAK/UEKAE +# Licensed under the GNU General Public License, version 2. +# See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt +# +# +# +# A migration script to transform COMAR based network profiles into NetworkManager based network profiles. +# +# The main purpose of the script is help Pardus 2009 users to be able to use their network profiles in Pardus 2011 +# without any effort when they upgrade their system. +# +# A few words about how stuff works. COMAR based network manager keeps profile settings under /etc/network with two +# files: net_tools which includes ethernet profile settings and wireless_tools which includes wireless profile settings. +# On the other hand, NetworkManager keeps each profile settings in an individual file under /etc/NetworkManager/system-connections. +# +# This script simply reads your old profile files and try to create a new profile file compatible with NetworkManager for each profile. +# +# + + +import os +import ConfigParser + + +default_nameservers = [] +default_resolv_conf_file = "/etc/resolv.default.conf" +lan_config_file = "/etc/network/net_tools" +wlan_config_file = "/etc/network/wireless_tools" +migration_sign = "/etc/network/.migrated" +NetworkManager_conf_dir = "/etc/NetworkManager/system-connections" + +def is_migrated_before(): + """Make this tool run once; so after migration, touch a file named '.migrated' + under old network manager profiles dir. Check it first and then try to migrate profiles. + """ + + global migration_sign + if os.path.exists(migration_sign): + return True + else: + return False + +def get_default_nameservers(): + """Read once default name servers in resolve.default.conf, if 'name_mode' in + given profile was set to default, supply these values in the new profile file + """ + global default_nameservers + if len(default_nameservers) == 0: + if os.path.exists(default_resolv_conf_file): + with open(default_resolv_conf_file) as f: + nameservers_file = f.readlines() + + for line in nameservers_file: + if not line.startswith("#") and line.startswith("nameserver"): + ns = line.split()[-1] + default_nameservers.append(ns) + + #If we can't find default.resolv.conf, supply default Pardus DNS servers + else: + default_nameservers = ["193.140.100.210", "193.140.100.215", "193.140.100.220"] + + return default_nameservers + + +class PardusNetworkProfile: + """Represents COMAR based network profiles that we have been using in Pardus' network + manager. We have two types of network profiles specified: wired or wireless + """ + + def __init__(self, name, connection_type, settings): + + self.profile_name = name + self.connection_type = connection_type + self.device = "none" + self.net_mode = "none" + self.name_mode = "none" + self.state = "none" + self.name_server = "none" + self.net_address = "none" + self.net_mask = "none" + self.net_gateway = "none" + self.remote = "none" + self.auth = "none" + self.auth_password = "none" + + self.set_attributes(settings) + + def set_attributes(self, settings): + """We receive profile settings as dictionary type in 'settings' + Map each key-value pairs for each object. + """ + + for key, value in settings.items(): + self.__dict__[key] = value + + def get_profile_name(self): + return self.profile_name + + def get_connection_type(self): + return self.connection_type + + def get_device(self): + return self.device + + def get_net_mode(self): + return self.net_mode + + def get_name_mode(self): + return self.name_mode + + def get_state(self): + return self.state + + def get_name_server(self): + return self.name_server + + def get_net_address(self): + return self.net_address + + def get_net_mask(self): + return self.net_mask + + def get_net_gateway(self): + return self.net_gateway + + def get_remote(self): + return self.remote + + def get_auth(self): + return self.auth + + def get_auth_password(self): + return self.auth_password + + +class NetworkManagerProfile: + """Represents network profiles used in NetworkManager. In NetworkManager, + settings are kept in a seperate file for each profile. + """ + + def __init__(self, name, pardus_profile): + """Each section is kept in corresponding class attribute""" + + self.cfg = ConfigParser.ConfigParser() + self.connection = Connection(pardus_profile) + self.ipv4 = IpV4(pardus_profile) + self.ipv6 = IpV6(pardus_profile) + self._802_3_ethernet = self.set_802_3_ethernet(pardus_profile) + self._802_11_wireless = self.set_802_11_wireless(pardus_profile) + self._802_11_wireless_security = self.set_802_11_wireless_security(pardus_profile) + + self.create_config() + + def set_802_3_ethernet(self, pardus_profile): + """If this is a wired (802-3-ethernet) profile, set _802_3_ethernet + attribute. + """ + + if pardus_profile.connection_type == "802-3-ethernet": + return _802_3_Ethernet(pardus_profile) + else: + return "none" + + def set_802_11_wireless(self, pardus_profile): + """If this is a wireless (802-11-wirelesss) profile, set + _802_11_wireless attribute.""" + if pardus_profile.connection_type == "802-11-wireless": + return _802_11_Wireless(pardus_profile) + else: + return "none" + + def set_802_11_wireless_security(self, pardus_profile): + """If the wireless connection has any security restrictions, create a + 802-11-wireless-security section with corresponding values. + """ + + if pardus_profile.get_connection_type() == "802-11-wireless": #Check if it is a wlan profile + if pardus_profile.get_auth() == "none": + self._802_11_wireless.security = "none" + return "none" + else: + self._802_11_wireless.security = "802-11-wireless-security" + return _802_11_Wireless_Security(pardus_profile) + else: + return "none" + + def create_config(self): + """Create sections and options in the prfoile's config file by calling + each options corresponding method. + """ + + #FIXME: Try to do it over loops ie. self[attr].set_config() + for attr, value in self.__dict__.items(): + if attr == "connection": + self.connection.set_config(self.cfg) + if attr == "ipv4": + self.ipv4.set_config(self.cfg) + if attr == "ipv6": + self.ipv6.set_config(self.cfg) + if attr == "_802_3_ethernet" and not value == "none": + self._802_3_ethernet.set_config(self.cfg) + if attr == "_802_11_wireless" and not value == "none": + self._802_11_wireless.set_config(self.cfg) + if attr == "_802_11_wireless_security" and not value == "none": + self._802_11_wireless_security.set_config(self.cfg) + + def write_config(self): + """Write settings to profile file""" + + #Before writing to file we must convert underscores to dashes, moreover _id must be written as id, and _type as type + + if not os.path.exists(NetworkManager_conf_dir): + os.makedirs(NetworkManager_conf_dir, mode=0755) + + profile_path = os.path.join("%s" % NetworkManager_conf_dir, self.connection._id) + with open(profile_path, "wb") as configfile: + self.cfg.write(configfile) + + def set_ownership(self): + """NetworkManager is smart enough to understand whether a configuration file is valid + by checking its permissions""" + + os.chmod(os.path.join("%s" % NetworkManager_conf_dir, self.connection._id), 0600) + + +class Connection: + """Instances of Connection class represent essential properties of a network connection to identify itself.""" + + def __init__(self, pardus_profile): + self.name = "connection" + self._id = pardus_profile.get_profile_name() + self.uuid = self.set_uuid(device = pardus_profile.get_device()) + self._type = pardus_profile.get_connection_type() + self.autoconnect = self.set_autoconnect(pardus_profile) + self.timestamp = "none" + self.read_only = "false" + + def set_autoconnect(self, profile): + """Set profile activation at startup""" + + if str(profile.get_state()) == "down": + return "false" + else: + return "none" #NM set this 'true' as default if we dont set anything + + def set_uuid(self, device): + """Generate random type UUID""" + import uuid + + return str(uuid.uuid4()) + + def set_config(self, cfg): + """One single config file will be used to write settings""" + + cfg.add_section(self.name) + for attr, value in self.__dict__.items(): + if value not in ["false", "none"] and attr != "name": + #Before creating config file _id must be id, and _type must be type + if attr == "_id" or attr == "_type" : attr = attr.split("_")[-1] + #There isnt any underscore in config options, replace them with dashes if found any + attr = attr.replace("_", "-") + cfg.set(self.name, attr, value) + + +class IpV4: + """Instances of IpV4 class represent IPv4 based properties of a connection.""" + + def __init__(self, pardus_profile): + self.name = "ipv4" + self.dns_search = "none" + self.routes = "none" + self.ignore_auto_routes = "false" + self.ignore_auto_dns = "false" + self.dhcp_client_id = "none" + self.dhcp_send_hostname = "false" + self.dhcp_hostname = "none" + self.never_default = "false" + self.method = pardus_profile.get_net_mode() # auto or manual, same as in NM + self.addresses1 = self.set_addresses(pardus_profile) # NM uses array of IPv4 address structures. We have only one for each iface + self.dns = self.set_dns(pardus_profile) + + def set_dns(self, pardus_profile): + """Decide whether to use default, custom or auto (DHCP assigned) nameservers""" + + if pardus_profile.get_name_mode() == "default": + default_nameservers = ";".join( get_default_nameservers()) + default_nameservers = default_nameservers + ";" # Make sure addresses end with ';' + self.ignore_auto_dns = "true" + return str(default_nameservers) + elif pardus_profile.get_name_mode() == "custom": + name_server = str(pardus_profile.get_name_server()) + name_server = name_server + ";" + self.ignore_auto_dns = "true" + return str(name_server) + else: + # Nothing done in auto option + return "none" + + def set_addresses(self, pardus_profile): + """Set network addresses from given settings""" + + addresses = [] + if self.method == "manual": + net_mask = self.calculate_prefix(pardus_profile.get_net_mask()) + addresses.append(str(pardus_profile.get_net_address())) + addresses.append(str(net_mask)) + addresses.append(str(pardus_profile.get_net_gateway())) + addresses = ";".join(addresses) + addresses = addresses + ";" # Make sure addresses end with ';' + return addresses + else: + return "none" + + def decimal2binary(self, n): + """Convert decimal octet value to binary format""" + + octet = ["0", "0", "0", "0", "0", "0", "0", "0"] + index = 0 + if n < 0 or n > 255: + raise ValueError, "Octet value must be between [0-255]" + if n == 0: + return "".join(octet) + while n > 0: + octet[index] = str((n % 2)) + index += 1 + n = n >> 1 + octet.reverse() + return "".join(octet) + + def calculate_prefix(self, net_mask): + """Convert netmask value to CIDR prefix type which is between [1-32] as told in NM spec + See http://mail.gnome.org/archives/networkmanager-list/2008-August/msg00076.html""" + + octets = net_mask.split(".") + octet_in_binary = [] + netmask_value = 0 + for octet in octets: + ret = self.decimal2binary(int(octet)) + octet_in_binary.append(ret) + for i in "".join(octet_in_binary): + if int(i) == 1 : netmask_value += 1 + return netmask_value + + def set_config(self, cfg): + """One single config file will be used to write settings""" + + cfg.add_section(self.name) + for attr, value in self.__dict__.items(): + if value not in ["false", "none"] and attr != "name": + attr = attr.replace("_", "-") + cfg.set(self.name, attr, value) + + +class IpV6: + """Instances of IpV6 class represent IPv6 based properties of a connection.""" + + def __init__(self, pardus_profile): + self.name = "ipv6" + self.method = "none" + self.dns = "none" + self.dns_search = "none" + self.addresses = "none" + self.routes = "none" + self.ignore_auto_routes = "false" + self.ignore_auto_dns = "false" + self.dhcp_client_id = "none" + self.dhcp_send_hostname = "none" + self.dhcp_hostname = "none" + self.never_default = "false" + + self.set_method() + + def set_method(self): + """Ignoring by default for nowadays""" + self.method = "ignore" + + def set_config(self, cfg): + """One single config file will be used to write settings""" + + cfg.add_section(self.name) + for attr, value in self.__dict__.items(): + if value not in ["false", "none"] and attr != "name": + attr = attr.replace("_", "-") + cfg.set(self.name, attr, value) + +class _802_3_Ethernet: + """Instances of _802_3_Ethernet class represent options related with ethernet device.""" + + def __init__(self, pardus_profile): + self.name = "802-3-ethernet" + self.port = "none" + self.speed = "none" #0 + self.duplex = "full" + self.auto_negotiate = "false" + self.mac_address = self.set_mac_address(pardus_profile.get_device()) + self.mtu = "none" #0 + + def set_mac_address(self, iface): + """Return MAC addresses of given interface on the machine""" + if os.path.exists("/sys/class/net/%s" % iface): + return open("/sys/class/net/%s/address" % iface).read().strip() + return "none" + + def set_config(self, cfg): + """One single config file will be used to write settings""" + + cfg.add_section(self.name) + for attr, value in self.__dict__.items(): + if value not in ["false", "none"] and attr != "name": + attr = attr.replace("_", "-") + cfg.set(self.name, attr, value) + + +class _802_11_Wireless: + """Instances of _802_11_Wireless class represent options related with wireless device.""" + + def __init__(self, pardus_profile): + self.name = "802-11-wireless" + self.ssid = self.set_ssid(pardus_profile) + self.band = "none" + self.channel = "0" + self.bssid = "none" + self.rate = "0" + self.tx_power = "0" + self.mtu = "0" + self.seen_bssids = "none" + self.security = "none" + self.mode = self.set_mode(pardus_profile) + self.mac_address = self.set_mac_address(pardus_profile.get_device()) + + def set_mac_address(self, iface): + """Return MAC addresses of given interface on the machine""" + if os.path.exists("/sys/class/net/%s" % iface): + return open("/sys/class/net/%s/address" % iface).read().strip() + return "none" + + def set_mode(self, pardus_profile): + """One of 'infrastructure' or 'adhoc'. If blank, infrastructure is assumed""" + + #TODO: How to determine mode (adhoc or infrastructure) from old profile settings + return "infrastructure" + + def set_ssid(self, pardus_profile): + """Set ssid value""" + + if pardus_profile.connection_type == "802-11-wireless": + return str(pardus_profile.get_remote()) + else: + return "none" + + def set_config(self, cfg): + """One single config file will be used to write settings""" + + cfg.add_section(self.name) + for attr, value in self.__dict__.items(): + if value not in ["false", "none", "0"] and attr != "name": + attr = attr.replace("_", "-") + cfg.set(self.name, attr, value) + + +class _802_11_Wireless_Security: + """Instances of _802_11_Wireless_Security class represent authentication properties and operations + used in order to be included in networks requiring them. + """ + + def __init__(self, pardus_profile): + self.name = "802-11-wireless-security" + self.key_mgmt = "none" + self.wep_tx_keyidx = "0" + self.auth_alg = "none" + self.proto = "none" + self.pairwise = "none" + self.group = "none" + self.leap_username = "none" + self.wep_key0 = "none" + self.wep_key1 = "none" + self.wep_key2 = "none" + self.wep_key3 = "none" + self.psk = "none" + self.leap_password = "none" + self.wep_key_type = "0" + + self.set_up_wireless_security(pardus_profile) + + def set_up_wireless_security(self, pardus_profile): + """WEP, WPA or none type security based operations""" + + if pardus_profile.get_auth() in ["wep", "wepascii"]: + self.set_wep(pardus_profile) + elif pardus_profile.get_auth() == "wpa-psk": + self.set_wpa(pardus_profile) + else: + return + + def set_wpa(self, pardus_profile): + """Set up WPA based networks""" + + self.key_mgmt = "wpa-psk" + self.psk = str(pardus_profile.get_auth_password()) + + def set_wep(self, pardus_profile): + """Set up WEP based networks""" + + self.auth_alg = "open" #TODO: or 'shared' ?? + self.key_mgmt = "None" # Which stands for WEP based key management + self.wep_key0 = str(pardus_profile.get_auth_password()) # Default index + self.wep_key_type = "1" # Interpret WEP keys as hex or ascii keys + + + def set_config(self, cfg): + """One single config file will be used to write settings""" + + cfg.add_section(self.name) + for attr, value in self.__dict__.items(): + if value not in ["false", "none", "0"] and attr != "name": + attr = attr.replace("_", "-") + + # key-mgmt=none is a mandatory assignment for WEP based + # configurations. As we set all class members' default value + # to 'none', and then filter to set config file with non-none + # values, key-mgmt is set to 'None' intentionally to pass that + # filtering, and its value is set later on by lowercasing to + # hack around this situation. + if attr == "key-mgmt": + value = value.lower() + cfg.set(self.name, attr, value) + + +class Migrator: + """Read COMAR based network profiles we have been using in Pardus' network manager and + transform them into NetworkManager profile type. + """ + + def __init__(self): + + self.pardus_profiles = [] + self.network_manager_profiles = [] + self.lan_config_path = lan_config_file + self.wlan_config_path = wlan_config_file + self.read_pardus_profiles() + + def read_pardus_profiles(self): + """Read wired/wireless profile settings, create PardusNetworkProfile + object for each one, and store them in a list. + """ + + self.lan_config = ConfigParser.ConfigParser() + self.lan_config.read(self.lan_config_path) + connection_type = "802-3-ethernet" + for section in self.lan_config.sections(): + lan_settings = {} + for option in self.lan_config.options(section): + if option == "device": + #To strip device name from long device string + lan_settings[option] = self.lan_config.get(section, option).split("_")[-1] + else: + lan_settings[option] = self.lan_config.get(section, option) + p = PardusNetworkProfile(section, connection_type, lan_settings) + self.pardus_profiles.append(p) + + self.wlan_config = ConfigParser.ConfigParser() + self.wlan_config.read(self.wlan_config_path) + connection_type = "802-11-wireless" + for section in self.wlan_config.sections(): + wlan_settings = {} + for option in self.wlan_config.options(section): + if option == "device": + wlan_settings[option] = self.wlan_config.get(section, option).split("_")[-1] + else: + wlan_settings[option] = self.wlan_config.get(section, option) + p = PardusNetworkProfile(section, connection_type, wlan_settings) + self.pardus_profiles.append(p) + + def transform_profiles(self): + """Convert Pardus' network profiles to NetworkManager profiles""" + + if len(self.pardus_profiles) > 0: # Make sure we have some profiles to migrate + for profile in self.pardus_profiles: + network_manager_profile = NetworkManagerProfile(profile.get_profile_name, profile) + self.network_manager_profiles.append(network_manager_profile) + + def write_network_manager_profiles(self): + """Create profile file for each NetworkManager profile and change ownerships to 0600""" + + if len(self.network_manager_profiles) > 0: # Make sure we have some profiles to migrate + for profile in self.network_manager_profiles: + profile.write_config() + profile.set_ownership() + with open(migration_sign, "w") as f: + pass + + +if __name__ == "__main__": + + print "DEBUG: Checking whether network profiles migrated..." + if not is_migrated_before(): + m = Migrator() + m.transform_profiles() + m.write_network_manager_profiles() + print "DEBUG: Network profiles migration completed successfully!" + else: + print "DEBUG: Network profiles migration seems already done before. Nothing done this time!" + diff --git a/network/connection/NetworkManager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch b/network/connection/NetworkManager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch new file mode 100644 index 0000000000..b41bbb0aa0 --- /dev/null +++ b/network/connection/NetworkManager/files/networkmanager-0.9.8.9-fix-crash-on-wifi-rescan.patch @@ -0,0 +1,48 @@ +From 4099c9242b091604466dda081dc5f6909354258b Mon Sep 17 00:00:00 2001 +From: M. Vefa Bicakci +Date: Sat, 24 May 2014 23:37:00 +0000 +Subject: core: fix crash during Wi-Fi rescan by emitting NM_DEVICE_AUTH_REQUEST signal correctly + +Fixes regression introduced by commit da59b6d2229b85afbb9e14846931376340dc6030. + +https://mail.gnome.org/archives/networkmanager-list/2014-May/msg00038.html + +Backport-of: d9653484859c426f707b4759bc9882f7a57c1152 +[thaller@redhat.com: original patch modified in nm-device-wifi.c to pass no + connection, as it is done on master] +Signed-off-by: Thomas Haller +--- +diff --git a/src/nm-device-wifi.c b/src/nm-device-wifi.c +index 8ca5278..052d68f 100644 +--- a/zsrc/nm-device-wifi.c ++++ b/src/nm-device-wifi.c +@@ -1563,6 +1563,7 @@ impl_device_request_scan (NMDeviceWifi *self, + g_signal_emit_by_name (device, + NM_DEVICE_AUTH_REQUEST, + context, ++ NULL, + NM_AUTH_PERMISSION_NETWORK_CONTROL, + TRUE, + request_scan_cb, +diff --git a/src/nm-manager.c b/src/nm-manager.c +index 9037e64..96bf3b4 100644 +--- a/src/nm-manager.c ++++ b/src/nm-manager.c +@@ -1874,10 +1874,10 @@ device_auth_request_cb (NMDevice *device, + } + + /* Ensure the subject has permissions for this connection */ +- if (!nm_auth_uid_in_acl (connection, +- priv->session_monitor, +- sender_uid, +- &error_desc)) { ++ if (connection != NULL && !nm_auth_uid_in_acl (connection, ++ priv->session_monitor, ++ sender_uid, ++ &error_desc)) { + error = g_error_new_literal (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_PERMISSION_DENIED, + error_desc); +-- +cgit v0.9.0.2-2-gbebe + diff --git a/network/connection/NetworkManager/files/tmpfiles.conf b/network/connection/NetworkManager/files/tmpfiles.conf new file mode 100644 index 0000000000..2ba9393f63 --- /dev/null +++ b/network/connection/NetworkManager/files/tmpfiles.conf @@ -0,0 +1 @@ +d /root/NetworkManager 0755 root root diff --git a/network/connection/NetworkManager/files/tr.po b/network/connection/NetworkManager/files/tr.po new file mode 100644 index 0000000000..b4ddee6604 --- /dev/null +++ b/network/connection/NetworkManager/files/tr.po @@ -0,0 +1,1933 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Ozan Çağlayan , 2010. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-12-22 13:45+0000\n" +"PO-Revision-Date: 2010-04-30 10:28+0300\n" +"Last-Translator: Ozan Çağlayan \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../cli/src/connections.c:60 ../cli/src/connections.c:76 +#: ../cli/src/devices.c:89 ../cli/src/devices.c:102 ../cli/src/devices.c:112 +#: ../cli/src/devices.c:122 ../cli/src/devices.c:135 ../cli/src/devices.c:146 +#: ../cli/src/devices.c:157 ../cli/src/devices.c:166 ../cli/src/devices.c:175 +msgid "NAME" +msgstr "" + +#. 0 +#: ../cli/src/connections.c:61 ../cli/src/connections.c:77 +msgid "UUID" +msgstr "UUID" + +#. 1 +#: ../cli/src/connections.c:62 +msgid "DEVICES" +msgstr "" + +#. 2 +#: ../cli/src/connections.c:63 ../cli/src/connections.c:79 +msgid "SCOPE" +msgstr "" + +#. 3 +#: ../cli/src/connections.c:64 +msgid "DEFAULT" +msgstr "" + +#. 4 +#: ../cli/src/connections.c:65 +msgid "DBUS-SERVICE" +msgstr "" + +#. 5 +#: ../cli/src/connections.c:66 +msgid "SPEC-OBJECT" +msgstr "" + +#. 6 +#: ../cli/src/connections.c:67 +msgid "VPN" +msgstr "" + +#. 7 +#. 2 +#: ../cli/src/connections.c:68 ../cli/src/connections.c:84 +#: ../cli/src/devices.c:64 +msgid "DBUS-PATH" +msgstr "" + +#. 1 +#. 0 +#. 1 +#: ../cli/src/connections.c:78 ../cli/src/devices.c:62 ../cli/src/devices.c:91 +msgid "TYPE" +msgstr "" + +#. 3 +#: ../cli/src/connections.c:80 +msgid "TIMESTAMP" +msgstr "" + +#. 4 +#: ../cli/src/connections.c:81 +msgid "TIMESTAMP-REAL" +msgstr "" + +#. 5 +#: ../cli/src/connections.c:82 +msgid "AUTOCONNECT" +msgstr "" + +#. 6 +#: ../cli/src/connections.c:83 +msgid "READONLY" +msgstr "" + +#: ../cli/src/connections.c:160 +#, c-format +msgid "" +"Usage: nmcli con { COMMAND | help }\n" +" COMMAND := { list | status | up | down }\n" +"\n" +" list [id | uuid | system | user]\n" +" status\n" +" up id | uuid [iface ] [ap ] [--nowait] [--timeout " +"]\n" +" down id | uuid \n" +msgstr "" +"Kullanım: nmcli con { KOMUT | help }\n" +" KOMUT := { list | status | up | down }\n" +"\n" +" list [id | uuid | system | user]\n" +" status\n" +" up id | uuid [iface ] [ap ] [--nowait] " +"[--timeout ]\n" +" down id | uuid \n" + +#: ../cli/src/connections.c:200 ../cli/src/connections.c:541 +#, c-format +msgid "Error: 'con list': %s" +msgstr "" + +#: ../cli/src/connections.c:202 ../cli/src/connections.c:543 +#, c-format +msgid "Error: 'con list': %s; allowed fields: %s" +msgstr "" + +#: ../cli/src/connections.c:210 +#, fuzzy +msgid "Connection details" +msgstr "Bağlantılar" + +#: ../cli/src/connections.c:385 ../cli/src/connections.c:606 +#, fuzzy +msgid "system" +msgstr "Sistem" + +#: ../cli/src/connections.c:385 ../cli/src/connections.c:606 +msgid "user" +msgstr "" + +#: ../cli/src/connections.c:387 +msgid "never" +msgstr "" + +#. "CAPABILITIES" +#. Print header +#. "WIFI-PROPERTIES" +#: ../cli/src/connections.c:388 ../cli/src/connections.c:389 +#: ../cli/src/connections.c:607 ../cli/src/connections.c:610 +#: ../cli/src/devices.c:433 ../cli/src/devices.c:558 ../cli/src/devices.c:584 +#: ../cli/src/devices.c:585 ../cli/src/devices.c:586 ../cli/src/devices.c:587 +#: ../cli/src/devices.c:588 ../cli/src/settings.c:508 +#: ../cli/src/settings.c:551 ../cli/src/settings.c:652 +#: ../cli/src/settings.c:926 ../cli/src/settings.c:927 +#: ../cli/src/settings.c:929 ../cli/src/settings.c:931 +#: ../cli/src/settings.c:1056 ../cli/src/settings.c:1057 +#: ../cli/src/settings.c:1058 ../cli/src/settings.c:1137 +#: ../cli/src/settings.c:1138 ../cli/src/settings.c:1139 +#: ../cli/src/settings.c:1140 ../cli/src/settings.c:1141 +#: ../cli/src/settings.c:1142 ../cli/src/settings.c:1143 +#: ../cli/src/settings.c:1144 ../cli/src/settings.c:1145 +#: ../cli/src/settings.c:1146 ../cli/src/settings.c:1147 +#: ../cli/src/settings.c:1148 ../cli/src/settings.c:1149 +#: ../cli/src/settings.c:1224 +msgid "yes" +msgstr "evet" + +#: ../cli/src/connections.c:388 ../cli/src/connections.c:389 +#: ../cli/src/connections.c:607 ../cli/src/connections.c:610 +#: ../cli/src/devices.c:433 ../cli/src/devices.c:558 ../cli/src/devices.c:584 +#: ../cli/src/devices.c:585 ../cli/src/devices.c:586 ../cli/src/devices.c:587 +#: ../cli/src/devices.c:588 ../cli/src/settings.c:508 +#: ../cli/src/settings.c:510 ../cli/src/settings.c:551 +#: ../cli/src/settings.c:652 ../cli/src/settings.c:926 +#: ../cli/src/settings.c:927 ../cli/src/settings.c:929 +#: ../cli/src/settings.c:931 ../cli/src/settings.c:1056 +#: ../cli/src/settings.c:1057 ../cli/src/settings.c:1058 +#: ../cli/src/settings.c:1137 ../cli/src/settings.c:1138 +#: ../cli/src/settings.c:1139 ../cli/src/settings.c:1140 +#: ../cli/src/settings.c:1141 ../cli/src/settings.c:1142 +#: ../cli/src/settings.c:1143 ../cli/src/settings.c:1144 +#: ../cli/src/settings.c:1145 ../cli/src/settings.c:1146 +#: ../cli/src/settings.c:1147 ../cli/src/settings.c:1148 +#: ../cli/src/settings.c:1149 ../cli/src/settings.c:1224 +msgid "no" +msgstr "hayır" + +#: ../cli/src/connections.c:462 ../cli/src/connections.c:505 +#, fuzzy +msgid "System connections" +msgstr "Sistem bağlantıları:\n" + +#: ../cli/src/connections.c:467 ../cli/src/connections.c:518 +msgid "User connections" +msgstr "Kullanıcı bağlantıları" + +#: ../cli/src/connections.c:479 ../cli/src/connections.c:1342 +#: ../cli/src/connections.c:1358 ../cli/src/connections.c:1367 +#: ../cli/src/connections.c:1378 ../cli/src/connections.c:1463 +#: ../cli/src/devices.c:964 ../cli/src/devices.c:974 ../cli/src/devices.c:1076 +#: ../cli/src/devices.c:1083 +#, c-format +msgid "Error: %s argument is missing." +msgstr "Hata: %s argümanı eksik." + +#: ../cli/src/connections.c:492 +#, c-format +msgid "Error: %s - no such connection." +msgstr "Error: %s isminde bir bağlantı yok." + +#: ../cli/src/connections.c:524 ../cli/src/connections.c:1391 +#: ../cli/src/connections.c:1481 ../cli/src/devices.c:787 +#: ../cli/src/devices.c:854 ../cli/src/devices.c:988 ../cli/src/devices.c:1089 +#, c-format +msgid "Unknown parameter: %s\n" +msgstr "Bilinmeyen parametre:%s\n" + +#: ../cli/src/connections.c:533 +#, c-format +msgid "Error: no valid parameter specified." +msgstr "Hata: Geçerli parametre verilmedi." + +#: ../cli/src/connections.c:548 ../cli/src/connections.c:1584 +#: ../cli/src/devices.c:1295 ../cli/src/network-manager.c:359 +#, c-format +msgid "Error: %s." +msgstr "" + +#: ../cli/src/connections.c:655 +#, c-format +msgid "Error: 'con status': %s" +msgstr "" + +#: ../cli/src/connections.c:657 +#, c-format +msgid "Error: 'con status': %s; allowed fields: %s" +msgstr "" + +#: ../cli/src/connections.c:664 +msgid "Active connections" +msgstr "Etkin bağlantılar" + +#: ../cli/src/connections.c:1034 +#, c-format +msgid "no active connection on device '%s'" +msgstr "'%s' aygıtı için etkin bağlantı yok" + +#: ../cli/src/connections.c:1042 +#, c-format +msgid "no active connection or device" +msgstr "etkin bağlantı veya aygıt yok" + +#: ../cli/src/connections.c:1092 +#, c-format +msgid "device '%s' not compatible with connection '%s'" +msgstr "" + +#: ../cli/src/connections.c:1094 +#, fuzzy, c-format +msgid "no device found for connection '%s'" +msgstr "'%s' aygıtı için etkin bağlantı yok" + +#: ../cli/src/connections.c:1105 +msgid "activating" +msgstr "etkinleştiriliyor" + +#: ../cli/src/connections.c:1107 +msgid "activated" +msgstr "etkinleştirildi" + +#: ../cli/src/connections.c:1110 ../cli/src/connections.c:1133 +#: ../cli/src/connections.c:1166 ../cli/src/devices.c:247 +#: ../cli/src/devices.c:559 ../cli/src/network-manager.c:94 +#: ../cli/src/network-manager.c:149 ../cli/src/settings.c:473 +msgid "unknown" +msgstr "bilinmeyen" + +#: ../cli/src/connections.c:1119 +msgid "VPN connecting (prepare)" +msgstr "VPN bağlantısı kuruluyor (hazırlanıyor)" + +#: ../cli/src/connections.c:1121 +msgid "VPN connecting (need authentication)" +msgstr "VPN bağlantısı kuruluyor (kimlik doğrulama gerekiyor)" + +#: ../cli/src/connections.c:1123 +msgid "VPN connecting" +msgstr "VPN bağlantısı kuruluyor" + +#: ../cli/src/connections.c:1125 +msgid "VPN connecting (getting IP configuration)" +msgstr "VPN bağlantısı kuruluyor (IP yapılandırması alınıyor)" + +#: ../cli/src/connections.c:1127 +msgid "VPN connected" +msgstr "VPN bağlantısı kuruldu" + +#: ../cli/src/connections.c:1129 +msgid "VPN connection failed" +msgstr "VPN bağlantısı kurulamadı" + +#: ../cli/src/connections.c:1131 +msgid "VPN disconnected" +msgstr "VPN bağlantısı kesildi" + +#: ../cli/src/connections.c:1142 +msgid "unknown reason" +msgstr "bilinmeyen sebep" + +#: ../cli/src/connections.c:1144 +msgid "none" +msgstr "hiçbiri" + +#: ../cli/src/connections.c:1146 +msgid "the user was disconnected" +msgstr "kullanıcının bağlantısı kesildi" + +#: ../cli/src/connections.c:1148 +msgid "the base network connection was interrupted" +msgstr "Temel ağ bağlantısı kesildi" + +#: ../cli/src/connections.c:1150 +msgid "the VPN service stopped unexpectedly" +msgstr "VPN hizmeti beklenmeyen bir şekilde durdu" + +#: ../cli/src/connections.c:1152 +msgid "the VPN service returned invalid configuration" +msgstr "VPN hizmeti geçersiz yapılandırma hatası bildirdi" + +#: ../cli/src/connections.c:1154 +msgid "the connection attempt timed out" +msgstr "Bağlantı denemesi zaman aşımına uğradı" + +#: ../cli/src/connections.c:1156 +msgid "the VPN service did not start in time" +msgstr "VPN hizmeti zamanında başlamadı" + +#: ../cli/src/connections.c:1158 +msgid "the VPN service failed to start" +msgstr "VPN hizmeti başlatılamadı" + +#: ../cli/src/connections.c:1160 +msgid "no valid VPN secrets" +msgstr "geçerli VPN parola dosyası bulunamadı" + +#: ../cli/src/connections.c:1162 +msgid "invalid VPN secrets" +msgstr "geçersiz VPN parola dosyaları" + +#: ../cli/src/connections.c:1164 +msgid "the connection was removed" +msgstr "bağlantı kaldırıldı" + +#: ../cli/src/connections.c:1178 +#, c-format +msgid "state: %s\n" +msgstr "durum:%s\n" + +#: ../cli/src/connections.c:1181 ../cli/src/connections.c:1207 +#, c-format +msgid "Connection activated\n" +msgstr "Bağlantı etkinleştirildi\n" + +#: ../cli/src/connections.c:1184 +#, c-format +msgid "Error: Connection activation failed." +msgstr "Hata: Bağlantı etkinleştirilemedi." + +#: ../cli/src/connections.c:1203 +#, c-format +msgid "state: %s (%d)\n" +msgstr "durum: %s (%d)\n" + +#: ../cli/src/connections.c:1213 +#, c-format +msgid "Error: Connection activation failed: %s." +msgstr "Hata: Bağlantı etkinleştirilemedi: %s." + +#: ../cli/src/connections.c:1230 ../cli/src/devices.c:911 +#, c-format +msgid "Error: Timeout %d sec expired." +msgstr "Hata: %d saniye zaman aşımı süresi doldu." + +#: ../cli/src/connections.c:1273 +#, c-format +msgid "Error: Connection activation failed: %s" +msgstr "Hata: Bağlantı etkinleştirilemedi: %s" + +#: ../cli/src/connections.c:1287 +#, c-format +msgid "Error: Obtaining active connection for '%s' failed." +msgstr "Hata: '%s' için etkin bağlantı bilgisi alınamadı." + +#: ../cli/src/connections.c:1296 +#, c-format +msgid "Active connection state: %s\n" +msgstr "Etkin bağlantı durumu: %s\n" + +#: ../cli/src/connections.c:1297 +#, c-format +msgid "Active connection path: %s\n" +msgstr "Etkin bağlantı yolu: %s\n" + +#: ../cli/src/connections.c:1351 ../cli/src/connections.c:1472 +#, c-format +msgid "Error: Unknown connection: %s." +msgstr "Hata: Bilinmeyen bağlantı: %s." + +#: ../cli/src/connections.c:1386 ../cli/src/devices.c:982 +#, c-format +msgid "Error: timeout value '%s' is not valid." +msgstr "Hata: '%s' zaman aşımı için geçerli bir değer değil." + +#: ../cli/src/connections.c:1399 ../cli/src/connections.c:1489 +#, c-format +msgid "Error: id or uuid has to be specified." +msgstr "Hata: id veya uuid verilmeli." + +#: ../cli/src/connections.c:1419 +#, c-format +msgid "Error: No suitable device found: %s." +msgstr "Hata: Uygun bir aygıt bulunamadı: %s." + +#: ../cli/src/connections.c:1421 +#, c-format +msgid "Error: No suitable device found." +msgstr "Hata: Uygun bir aygıt bulunamadı." + +#: ../cli/src/connections.c:1516 +#, c-format +msgid "Warning: Connection not active\n" +msgstr "Uyarı: Bağlantı etkin değil\n" + +#: ../cli/src/connections.c:1573 +#, c-format +msgid "Error: 'con' command '%s' is not valid." +msgstr "Hata: 'con' komutu '%s' geçerli değil." + +#: ../cli/src/connections.c:1609 +#, c-format +msgid "Error: could not connect to D-Bus." +msgstr "Hata: D-Bus'a bağlanılamadı." + +#: ../cli/src/connections.c:1616 +#, c-format +msgid "Error: Could not get system settings." +msgstr "Hata: Sistem ayarları alınamadı." + +#: ../cli/src/connections.c:1624 +#, c-format +msgid "Error: Could not get user settings." +msgstr "Hata: Kullanıcı ayarları alınamadı." + +#: ../cli/src/connections.c:1634 +#, c-format +msgid "Error: Can't obtain connections: settings services are not running." +msgstr "Hata: Bağlantılar alınamadı: ayar hizmeti çalışmıyor." + +#. 0 +#. 9 +#: ../cli/src/devices.c:61 ../cli/src/devices.c:90 ../cli/src/devices.c:185 +msgid "DEVICE" +msgstr "" + +#. 1 +#. 4 +#. 0 +#: ../cli/src/devices.c:63 ../cli/src/devices.c:94 +#: ../cli/src/network-manager.c:36 +msgid "STATE" +msgstr "" + +#: ../cli/src/devices.c:73 +msgid "GENERAL" +msgstr "" + +#. 0 +#: ../cli/src/devices.c:74 +msgid "CAPABILITIES" +msgstr "" + +#. 1 +#: ../cli/src/devices.c:75 +msgid "WIFI-PROPERTIES" +msgstr "" + +#. 2 +#: ../cli/src/devices.c:76 +msgid "AP" +msgstr "" + +#. 3 +#: ../cli/src/devices.c:77 +msgid "WIRED-PROPERTIES" +msgstr "" + +#. 4 +#: ../cli/src/devices.c:78 +msgid "IP4-SETTINGS" +msgstr "" + +#. 5 +#: ../cli/src/devices.c:79 +msgid "IP4-DNS" +msgstr "" + +#. 6 +#: ../cli/src/devices.c:80 +msgid "IP6-SETTINGS" +msgstr "" + +#. 7 +#: ../cli/src/devices.c:81 +msgid "IP6-DNS" +msgstr "" + +#. 2 +#: ../cli/src/devices.c:92 +msgid "DRIVER" +msgstr "" + +#. 3 +#: ../cli/src/devices.c:93 +msgid "HWADDR" +msgstr "" + +#. 0 +#: ../cli/src/devices.c:103 +msgid "CARRIER-DETECT" +msgstr "" + +#. 1 +#: ../cli/src/devices.c:104 +msgid "SPEED" +msgstr "" + +#. 0 +#: ../cli/src/devices.c:113 +msgid "CARRIER" +msgstr "" + +#. 0 +#: ../cli/src/devices.c:123 +#, fuzzy +msgid "WEP" +msgstr "WEP" + +#. 1 +#: ../cli/src/devices.c:124 +#, fuzzy +msgid "WPA" +msgstr " WPA" + +#. 2 +#: ../cli/src/devices.c:125 +#, fuzzy +msgid "WPA2" +msgstr " WPA2" + +#. 3 +#: ../cli/src/devices.c:126 +msgid "TKIP" +msgstr "" + +#. 4 +#: ../cli/src/devices.c:127 +msgid "CCMP" +msgstr "" + +#. 0 +#: ../cli/src/devices.c:136 ../cli/src/devices.c:147 +msgid "ADDRESS" +msgstr "" + +#. 1 +#: ../cli/src/devices.c:137 ../cli/src/devices.c:148 +msgid "PREFIX" +msgstr "" + +#. 2 +#: ../cli/src/devices.c:138 ../cli/src/devices.c:149 +msgid "GATEWAY" +msgstr "" + +#. 0 +#: ../cli/src/devices.c:158 ../cli/src/devices.c:167 +msgid "DNS" +msgstr "DNS" + +#. 0 +#: ../cli/src/devices.c:176 +#, fuzzy +msgid "SSID" +msgstr "SSID:" + +#. 1 +#: ../cli/src/devices.c:177 +#, fuzzy +msgid "BSSID" +msgstr "BSSID:" + +#. 2 +#: ../cli/src/devices.c:178 +msgid "MODE" +msgstr "" + +#. 3 +#: ../cli/src/devices.c:179 +msgid "FREQ" +msgstr "" + +#. 4 +#: ../cli/src/devices.c:180 +msgid "RATE" +msgstr "" + +#. 5 +#: ../cli/src/devices.c:181 +msgid "SIGNAL" +msgstr "" + +#. 6 +#: ../cli/src/devices.c:182 +msgid "SECURITY" +msgstr "" + +#. 7 +#: ../cli/src/devices.c:183 +msgid "WPA-FLAGS" +msgstr "" + +#. 8 +#: ../cli/src/devices.c:184 +msgid "RSN-FLAGS" +msgstr "" + +#. 10 +#: ../cli/src/devices.c:186 +msgid "ACTIVE" +msgstr "" + +#: ../cli/src/devices.c:209 +#, fuzzy, c-format +msgid "" +"Usage: nmcli dev { COMMAND | help }\n" +"\n" +" COMMAND := { status | list | disconnect | wifi }\n" +"\n" +" status\n" +" list [iface ]\n" +" disconnect iface [--nowait] [--timeout ]\n" +" wifi [list [iface ] [hwaddr ]]\n" +"\n" +msgstr "" +"Kullanım: nmcli dev { KOMUT | help }\n" +"\n" +" KOMUT := { status | list | disconnect | wifi }\n" +"\n" +" status\n" +" list [iface ]\n" +" disconnect iface [--nowait] [--timeout ]\n" +" wifi [list [iface ] | apinfo iface hwaddr ]\n" +"\n" + +#: ../cli/src/devices.c:229 +msgid "unmanaged" +msgstr "yönetilmiyor" + +#: ../cli/src/devices.c:231 +msgid "unavailable" +msgstr "mevcut değil" + +#: ../cli/src/devices.c:233 ../cli/src/network-manager.c:91 +msgid "disconnected" +msgstr "bağlı değil" + +#: ../cli/src/devices.c:235 +msgid "connecting (prepare)" +msgstr "bağlanıyor (hazırlanıyor)" + +#: ../cli/src/devices.c:237 +msgid "connecting (configuring)" +msgstr "bağlanıyor (yapılandırılıyor)" + +#: ../cli/src/devices.c:239 +msgid "connecting (need authentication)" +msgstr "bağlanıyor (kimlik doğrulama gerekiyor)" + +#: ../cli/src/devices.c:241 +msgid "connecting (getting IP configuration)" +msgstr "bağlanıyor (IP yapılandırması alınıyor)" + +#: ../cli/src/devices.c:243 ../cli/src/network-manager.c:89 +msgid "connected" +msgstr "bağlandı" + +#: ../cli/src/devices.c:245 +msgid "connection failed" +msgstr "bağlantı başarısız" + +#: ../cli/src/devices.c:268 ../cli/src/devices.c:425 +msgid "Unknown" +msgstr "Bilinmeyen" + +#: ../cli/src/devices.c:300 +msgid "(none)" +msgstr "(hiçbiri)" + +#: ../cli/src/devices.c:325 +#, c-format +msgid "%s: error converting IP4 address 0x%X" +msgstr "%s: 0x%X IP4 adresi dönüştürülemedi" + +#: ../cli/src/devices.c:394 +#, c-format +msgid "%u MHz" +msgstr "%u MHz" + +#: ../cli/src/devices.c:395 +#, c-format +msgid "%u MB/s" +msgstr "%u MB/s" + +#: ../cli/src/devices.c:404 +#, fuzzy +msgid "Encrypted: " +msgstr ", Şifreli:" + +#: ../cli/src/devices.c:409 +msgid "WEP " +msgstr "" + +#: ../cli/src/devices.c:411 +msgid "WPA " +msgstr "" + +#: ../cli/src/devices.c:413 +#, fuzzy +msgid "WPA2 " +msgstr " WPA2" + +#: ../cli/src/devices.c:416 +#, fuzzy +msgid "Enterprise " +msgstr " Enterprise" + +#: ../cli/src/devices.c:425 +msgid "Ad-Hoc" +msgstr "Ad-Hoc" + +#: ../cli/src/devices.c:425 +msgid "Infrastructure" +msgstr "Infrastructure" + +#: ../cli/src/devices.c:487 +#, c-format +msgid "Error: 'dev list': %s" +msgstr "" + +#: ../cli/src/devices.c:489 +#, fuzzy, c-format +msgid "Error: 'dev list': %s; allowed fields: %s" +msgstr "Hata: '%s' aygıtının (%s) bağlantısı kesilemedi: %s" + +#: ../cli/src/devices.c:498 +#, fuzzy +msgid "Device details" +msgstr "Aygıtlar" + +#: ../cli/src/devices.c:528 ../cli/src/devices.c:927 +msgid "(unknown)" +msgstr "(bilinmeyen)" + +#: ../cli/src/devices.c:529 +#, fuzzy +msgid "unknown)" +msgstr "(bilinmeyen)" + +#: ../cli/src/devices.c:555 +#, c-format +msgid "%u Mb/s" +msgstr "%u Mb/s" + +#. Print header +#. "WIRED-PROPERTIES" +#: ../cli/src/devices.c:628 +msgid "on" +msgstr "açık" + +#: ../cli/src/devices.c:628 +msgid "off" +msgstr "kapalı" + +#: ../cli/src/devices.c:810 +#, c-format +msgid "Error: 'dev status': %s" +msgstr "" + +#: ../cli/src/devices.c:812 +#, c-format +msgid "Error: 'dev status': %s; allowed fields: %s" +msgstr "" + +#: ../cli/src/devices.c:819 +msgid "Status of devices" +msgstr "Aygıtların Durumları" + +#: ../cli/src/devices.c:847 +#, c-format +msgid "Error: '%s' argument is missing." +msgstr "Hata: '%s' argümanı eksik." + +#: ../cli/src/devices.c:876 ../cli/src/devices.c:1015 +#: ../cli/src/devices.c:1138 +#, c-format +msgid "Error: Device '%s' not found." +msgstr "Hata: '%s' aygıtı bulunamadı." + +#: ../cli/src/devices.c:899 +#, c-format +msgid "Success: Device '%s' successfully disconnected." +msgstr "'%s' aygıtının bağlantısı başarıyla kesildi." + +#: ../cli/src/devices.c:924 +#, c-format +msgid "Error: Device '%s' (%s) disconnecting failed: %s" +msgstr "Hata: '%s' aygıtının (%s) bağlantısı kesilemedi: %s" + +#: ../cli/src/devices.c:932 +#, c-format +msgid "Device state: %d (%s)\n" +msgstr "Aygıt durumu: %d (%s)\n" + +#: ../cli/src/devices.c:996 +#, c-format +msgid "Error: iface has to be specified." +msgstr "Hata: arayüz belirtilmeli." + +#: ../cli/src/devices.c:1114 +#, fuzzy, c-format +msgid "Error: 'dev wifi': %s" +msgstr "Hata: '%s' 'dev wifi' komutu geçersiz." + +#: ../cli/src/devices.c:1116 +#, c-format +msgid "Error: 'dev wifi': %s; allowed fields: %s" +msgstr "" + +#: ../cli/src/devices.c:1123 +msgid "WiFi scan list" +msgstr "Kablosuz tarama listesi" + +#: ../cli/src/devices.c:1158 ../cli/src/devices.c:1212 +#, c-format +msgid "Error: Access point with hwaddr '%s' not found." +msgstr "Hata: donanım adresi '%s' olan erişim noktası bulunamadı." + +#: ../cli/src/devices.c:1175 +#, c-format +msgid "Error: Device '%s' is not a WiFi device." +msgstr "Hata: '%s' aygıtı kablosuz bir aygıt değil." + +#: ../cli/src/devices.c:1239 +#, c-format +msgid "Error: 'dev wifi' command '%s' is not valid." +msgstr "Hata: '%s' 'dev wifi' komutu geçersiz." + +#: ../cli/src/devices.c:1286 +#, c-format +msgid "Error: 'dev' command '%s' is not valid." +msgstr "Hata: '%s' 'dev' komutu geçersiz." + +#: ../cli/src/network-manager.c:35 +msgid "RUNNING" +msgstr "" + +#. 1 +#: ../cli/src/network-manager.c:37 +msgid "NET-ENABLED" +msgstr "" + +#. 2 +#: ../cli/src/network-manager.c:38 +msgid "WIFI-HARDWARE" +msgstr "" + +#. 3 +#: ../cli/src/network-manager.c:39 +msgid "WIFI" +msgstr "" + +#. 4 +#: ../cli/src/network-manager.c:40 +msgid "WWAN-HARDWARE" +msgstr "" + +#. 5 +#: ../cli/src/network-manager.c:41 +#, fuzzy +msgid "WWAN" +msgstr "NM WWAN:" + +#: ../cli/src/network-manager.c:64 +#, fuzzy, c-format +msgid "" +"Usage: nmcli nm { COMMAND | help }\n" +"\n" +" COMMAND := { status | enable | sleep | wifi | wwan }\n" +"\n" +" status\n" +" enable [true|false]\n" +" sleep [true|false]\n" +" wifi [on|off]\n" +" wwan [on|off]\n" +"\n" +msgstr "" +"Kullanım: nmcli nm { KOMUT | help }\n" +"\n" +" KOMUT := { status | sleep | wakeup | wifi | wwan }\n" +"\n" +" status\n" +" sleep\n" +" wakeup\n" +" wifi [on|off]\n" +" wwan [on|off]\n" +"\n" + +#: ../cli/src/network-manager.c:85 +msgid "asleep" +msgstr "uykuda" + +#: ../cli/src/network-manager.c:87 +msgid "connecting" +msgstr "bağlanıyor" + +#: ../cli/src/network-manager.c:128 +#, c-format +msgid "Error: 'nm status': %s" +msgstr "" + +#: ../cli/src/network-manager.c:130 +#, c-format +msgid "Error: 'nm status': %s; allowed fields: %s" +msgstr "" + +#: ../cli/src/network-manager.c:137 +msgid "NetworkManager status" +msgstr "NetworkManager durumu" + +#. Print header +#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145 +#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147 +#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247 +#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328 +msgid "enabled" +msgstr "etkin" + +#: ../cli/src/network-manager.c:144 ../cli/src/network-manager.c:145 +#: ../cli/src/network-manager.c:146 ../cli/src/network-manager.c:147 +#: ../cli/src/network-manager.c:154 ../cli/src/network-manager.c:247 +#: ../cli/src/network-manager.c:296 ../cli/src/network-manager.c:328 +msgid "disabled" +msgstr "etkin değil" + +#: ../cli/src/network-manager.c:152 +msgid "running" +msgstr "çalışıyor" + +#: ../cli/src/network-manager.c:152 +msgid "not running" +msgstr "çalışmıyor" + +#: ../cli/src/network-manager.c:175 +#, fuzzy, c-format +msgid "Error: Couldn't connect to system bus: %s" +msgstr "Hata: D-Bus'a bağlanılamadı." + +#: ../cli/src/network-manager.c:186 +#, fuzzy, c-format +msgid "Error: Couldn't create D-Bus object proxy." +msgstr "Hata: D-Bus'a bağlanılamadı." + +#: ../cli/src/network-manager.c:192 +#, c-format +msgid "Error in sleep: %s" +msgstr "" + +#: ../cli/src/network-manager.c:237 ../cli/src/network-manager.c:286 +#: ../cli/src/network-manager.c:318 +#, fuzzy, c-format +msgid "Error: '--fields' value '%s' is not valid here; allowed fields: %s" +msgstr "Hata: '%s' zaman aşımı için geçerli bir değer değil." + +#: ../cli/src/network-manager.c:245 +msgid "Networking enabled" +msgstr "" + +#: ../cli/src/network-manager.c:256 +#, fuzzy, c-format +msgid "Error: invalid 'enable' parameter: '%s'; use 'true' or 'false'." +msgstr "Hata: geçersiz 'wwan' parametresi: '%s'." + +#: ../cli/src/network-manager.c:265 +#, fuzzy, c-format +msgid "Error: Sleeping status is not exported by NetworkManager." +msgstr "Hata: NetworkManager'a bağlanılamadı." + +#: ../cli/src/network-manager.c:273 +#, fuzzy, c-format +msgid "Error: invalid 'sleep' parameter: '%s'; use 'true' or 'false'." +msgstr "Hata: geçersiz 'wifi' parametresi: '%s'." + +#: ../cli/src/network-manager.c:294 +#, fuzzy +msgid "WiFi enabled" +msgstr "etkin" + +#: ../cli/src/network-manager.c:305 +#, c-format +msgid "Error: invalid 'wifi' parameter: '%s'." +msgstr "Hata: geçersiz 'wifi' parametresi: '%s'." + +#: ../cli/src/network-manager.c:326 +#, fuzzy +msgid "WWAN enabled" +msgstr "etkin" + +#: ../cli/src/network-manager.c:337 +#, c-format +msgid "Error: invalid 'wwan' parameter: '%s'." +msgstr "Hata: geçersiz 'wwan' parametresi: '%s'." + +#: ../cli/src/network-manager.c:348 +#, c-format +msgid "Error: 'nm' command '%s' is not valid." +msgstr "Hata: 'nm' komutu '%s' geçersiz." + +#: ../cli/src/nmcli.c:69 +#, fuzzy, c-format +msgid "" +"Usage: %s [OPTIONS] OBJECT { COMMAND | help }\n" +"\n" +"OPTIONS\n" +" -t[erse] terse output\n" +" -p[retty] pretty output\n" +" -m[ode] tabular|multiline output mode\n" +" -f[ields] |all|common specify fields to output\n" +" -e[scape] yes|no escape columns separators in " +"values\n" +" -v[ersion] show program version\n" +" -h[elp] print this help\n" +"\n" +"OBJECT\n" +" nm NetworkManager status\n" +" con NetworkManager connections\n" +" dev devices managed by NetworkManager\n" +"\n" +msgstr "" +"Kullanım: %s [SEÇENEKLER] NESNE { KOMUT | help }\n" +"\n" +"SEÇENEKLER\n" +" -t[erse] düz çıktı\n" +" -p[retty] süslü çıktı\n" +" -v[ersion] program sürümünü göster\n" +" -h[elp] bu yardımı göster\n" +"\n" +"NESNE\n" +" nm NetworkManager durumu\n" +" con NetworkManager bağlantıları\n" +" dev NetworkManager tarafından yönetilen aygıtlar\n" +"\n" + +#: ../cli/src/nmcli.c:113 +#, fuzzy, c-format +msgid "Error: Object '%s' is unknown, try 'nmcli help'." +msgstr "'%s' nesnesi bilinmiyor, 'nmcli help' ile yardım alın." + +#: ../cli/src/nmcli.c:143 +#, c-format +msgid "Error: Option '--terse' is specified the second time." +msgstr "" + +#: ../cli/src/nmcli.c:148 +#, c-format +msgid "Error: Option '--terse' is mutually exclusive with '--pretty'." +msgstr "" + +#: ../cli/src/nmcli.c:156 +#, c-format +msgid "Error: Option '--pretty' is specified the second time." +msgstr "" + +#: ../cli/src/nmcli.c:161 +#, c-format +msgid "Error: Option '--pretty' is mutually exclusive with '--terse'." +msgstr "" + +#: ../cli/src/nmcli.c:171 ../cli/src/nmcli.c:187 +#, fuzzy, c-format +msgid "Error: missing argument for '%s' option." +msgstr "Hata: %s argümanı eksik." + +#: ../cli/src/nmcli.c:180 ../cli/src/nmcli.c:196 +#, fuzzy, c-format +msgid "Error: '%s' is not valid argument for '%s' option." +msgstr "Hata: '%s' argümanı eksik." + +#: ../cli/src/nmcli.c:203 +#, fuzzy, c-format +msgid "Error: fields for '%s' options are missing." +msgstr "Hata: '%s' argümanı eksik." + +#: ../cli/src/nmcli.c:209 +#, c-format +msgid "nmcli tool, version %s\n" +msgstr "nmcli aracı, sürüm %s\n" + +#: ../cli/src/nmcli.c:215 +#, fuzzy, c-format +msgid "Error: Option '%s' is unknown, try 'nmcli -help'." +msgstr "'%s' seçeneği bilinmiyor, 'nmcli -help' ile yardım alın." + +#: ../cli/src/nmcli.c:234 +#, c-format +msgid "Caught signal %d, shutting down..." +msgstr "%d sinyali yakalandı, sonlandırılıyor..." + +#: ../cli/src/nmcli.c:259 +#, c-format +msgid "Error: Could not connect to NetworkManager." +msgstr "Hata: NetworkManager'a bağlanılamadı." + +#: ../cli/src/nmcli.c:275 +msgid "Success" +msgstr "Başarılı" + +#: ../cli/src/settings.c:411 +#, c-format +msgid "%d (hex-ascii-key)" +msgstr "" + +#: ../cli/src/settings.c:413 +#, c-format +msgid "%d (104/128-bit passphrase)" +msgstr "" + +#: ../cli/src/settings.c:416 +#, fuzzy, c-format +msgid "%d (unknown)" +msgstr "(bilinmeyen)" + +#: ../cli/src/settings.c:442 +#, fuzzy +msgid "0 (unknown)" +msgstr "(bilinmeyen)" + +#: ../cli/src/settings.c:448 +msgid "any, " +msgstr "" + +#: ../cli/src/settings.c:450 +msgid "900 MHz, " +msgstr "" + +#: ../cli/src/settings.c:452 +msgid "1800 MHz, " +msgstr "" + +#: ../cli/src/settings.c:454 +msgid "1900 MHz, " +msgstr "" + +#: ../cli/src/settings.c:456 +msgid "850 MHz, " +msgstr "" + +#: ../cli/src/settings.c:458 +msgid "WCDMA 3GPP UMTS 2100 MHz, " +msgstr "" + +#: ../cli/src/settings.c:460 +msgid "WCDMA 3GPP UMTS 1800 MHz, " +msgstr "" + +#: ../cli/src/settings.c:462 +msgid "WCDMA 3GPP UMTS 1700/2100 MHz, " +msgstr "" + +#: ../cli/src/settings.c:464 +msgid "WCDMA 3GPP UMTS 800 MHz, " +msgstr "" + +#: ../cli/src/settings.c:466 +msgid "WCDMA 3GPP UMTS 850 MHz, " +msgstr "" + +#: ../cli/src/settings.c:468 +msgid "WCDMA 3GPP UMTS 900 MHz, " +msgstr "" + +#: ../cli/src/settings.c:470 +msgid "WCDMA 3GPP UMTS 1700 MHz, " +msgstr "" + +#: ../cli/src/settings.c:554 ../cli/src/settings.c:721 +msgid "auto" +msgstr "" + +#: ../cli/src/settings.c:716 ../cli/src/settings.c:719 +#: ../cli/src/settings.c:720 ../cli/src/utils.c:172 +msgid "not set" +msgstr "" + +#: ../cli/src/utils.c:124 +#, c-format +msgid "field '%s' has to be alone" +msgstr "" + +#: ../cli/src/utils.c:127 +#, c-format +msgid "invalid field '%s'" +msgstr "" + +#: ../cli/src/utils.c:146 +#, c-format +msgid "Option '--terse' requires specifying '--fields'" +msgstr "" + +#: ../cli/src/utils.c:150 +#, c-format +msgid "Option '--terse' requires specific '--fields' option values , not '%s'" +msgstr "" + +#: ../libnm-util/crypto.c:121 +#, c-format +msgid "PEM key file had no end tag '%s'." +msgstr "PEM anahtar dosyası '%s' kapatma etiketine sahip değil." + +#: ../libnm-util/crypto.c:131 +#, c-format +msgid "Doesn't look like a PEM private key file." +msgstr "PEM özel anahtar dosyasına benzemiyor." + +#: ../libnm-util/crypto.c:139 +#, c-format +msgid "Not enough memory to store PEM file data." +msgstr "PEM dosya verisini saklayacak yeterli bellek yok." + +#: ../libnm-util/crypto.c:155 +#, c-format +msgid "Malformed PEM file: Proc-Type was not first tag." +msgstr "Bozuk PEM dosyası: Proc-Type ilk etiket değil." + +#: ../libnm-util/crypto.c:163 +#, c-format +msgid "Malformed PEM file: unknown Proc-Type tag '%s'." +msgstr "Bozuk PEM dosyası: bilinmeyen Proc-Type etiketi '%s'." + +#: ../libnm-util/crypto.c:173 +#, c-format +msgid "Malformed PEM file: DEK-Info was not the second tag." +msgstr "Bozuk PEM dosyası: DEK-Info ikinci etiket değil." + +#: ../libnm-util/crypto.c:184 +#, c-format +msgid "Malformed PEM file: no IV found in DEK-Info tag." +msgstr "Bozuk PEM dosyası: DEK-Info etiketinde IV bulunamadı." + +#: ../libnm-util/crypto.c:191 +#, c-format +msgid "Malformed PEM file: invalid format of IV in DEK-Info tag." +msgstr "Bozuk PEM dosyası: DEK-Info etiketindeki IV biçimi geçersiz." + +#: ../libnm-util/crypto.c:204 +#, c-format +msgid "Malformed PEM file: unknown private key cipher '%s'." +msgstr "Bozuk PEM dosyası: bilinmeyen özel anahtar şifresi '%s'." + +#: ../libnm-util/crypto.c:223 +#, c-format +msgid "Could not decode private key." +msgstr "Özel anahtar çözülemiyor." + +#: ../libnm-util/crypto.c:268 +#, c-format +msgid "PEM certificate '%s' had no end tag '%s'." +msgstr "PEM sertifikası '%s', '%s' kapatma etiketine sahip değil." + +#: ../libnm-util/crypto.c:278 +#, c-format +msgid "Failed to decode certificate." +msgstr "Sertifika çözülemedi." + +#: ../libnm-util/crypto.c:287 +#, c-format +msgid "Not enough memory to store certificate data." +msgstr "Sertifika verisini saklayacak yeterli bellek yok." + +#: ../libnm-util/crypto.c:295 +#, c-format +msgid "Not enough memory to store file data." +msgstr "Dosya verisini saklayacak yeterli bellek yok." + +#: ../libnm-util/crypto.c:325 +#, c-format +msgid "IV must be an even number of bytes in length." +msgstr "IV uzunluğu bayt cinsinden çift sayı olmalı." + +#: ../libnm-util/crypto.c:334 +#, c-format +msgid "Not enough memory to store the IV." +msgstr "IV'yi saklayacak yeterli bellek yok." + +#: ../libnm-util/crypto.c:345 +#, c-format +msgid "IV contains non-hexadecimal digits." +msgstr "IV onaltılık olmayan rakamlar içeriyor." + +#: ../libnm-util/crypto.c:383 ../libnm-util/crypto_gnutls.c:148 +#: ../libnm-util/crypto_gnutls.c:266 ../libnm-util/crypto_nss.c:171 +#: ../libnm-util/crypto_nss.c:336 +#, c-format +msgid "Private key cipher '%s' was unknown." +msgstr "Özel anahtar şifresi '%s' bilinmiyor." + +#: ../libnm-util/crypto.c:392 +#, c-format +msgid "Not enough memory to decrypt private key." +msgstr "Özel anahtarın şifresini çözecek yeterli bellek yok." + +#: ../libnm-util/crypto.c:512 +#, c-format +msgid "Unable to determine private key type." +msgstr "Özel anahtar türü belirlenemiyor." + +#: ../libnm-util/crypto.c:531 +#, c-format +msgid "Not enough memory to store decrypted private key." +msgstr "Çözülmüş özel anahtarı saklayacak yeterli bellek yok." + +#: ../libnm-util/crypto_gnutls.c:49 +msgid "Failed to initialize the crypto engine." +msgstr "Şifreleme motoru başlatılamadı." + +#: ../libnm-util/crypto_gnutls.c:93 +#, c-format +msgid "Failed to initialize the MD5 engine: %s / %s." +msgstr "MD5 motoru başlatılamadı: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:156 +#, c-format +msgid "Invalid IV length (must be at least %zd)." +msgstr "Geçersiz IV uzunluğu (en az %zd olmalı)." + +#: ../libnm-util/crypto_gnutls.c:165 ../libnm-util/crypto_nss.c:188 +#, c-format +msgid "Not enough memory for decrypted key buffer." +msgstr "Çözülmüş anahtar tamponu için yetersiz bellek." + +#: ../libnm-util/crypto_gnutls.c:173 +#, c-format +msgid "Failed to initialize the decryption cipher context: %s / %s." +msgstr "" +"Şifre çözme şifre içeriği (decryption cipher context) ilklendirilemedi: %s / " +"%s." + +#: ../libnm-util/crypto_gnutls.c:182 +#, c-format +msgid "Failed to set symmetric key for decryption: %s / %s." +msgstr "Şifre çözme için simetrik anahtar ayarlanamadı: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:191 +#, c-format +msgid "Failed to set IV for decryption: %s / %s." +msgstr "Şifre çözme için IV ayarlanamadı: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:200 +#, c-format +msgid "Failed to decrypt the private key: %s / %s." +msgstr "Özel anahtar çözülemedi: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:210 ../libnm-util/crypto_nss.c:267 +#, c-format +msgid "Failed to decrypt the private key: unexpected padding length." +msgstr "Özel anahtar çözülemedi: beklenmeyen doldurma (padding) uzunluğu." + +#: ../libnm-util/crypto_gnutls.c:221 ../libnm-util/crypto_nss.c:278 +#, c-format +msgid "Failed to decrypt the private key." +msgstr "Özel anahtar çözülemedi." + +#: ../libnm-util/crypto_gnutls.c:286 ../libnm-util/crypto_nss.c:356 +#, c-format +msgid "Could not allocate memory for encrypting." +msgstr "Şifreleme için bellek ayrılamadı." + +#: ../libnm-util/crypto_gnutls.c:294 +#, c-format +msgid "Failed to initialize the encryption cipher context: %s / %s." +msgstr "Şifreleme içeriği ilklendirilemedi: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:303 +#, c-format +msgid "Failed to set symmetric key for encryption: %s / %s." +msgstr "Şifreleme için simetrik anahtar ayarlanamadı: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:313 +#, c-format +msgid "Failed to set IV for encryption: %s / %s." +msgstr "Şifreleme için IV ayarlanamadı: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:322 +#, c-format +msgid "Failed to encrypt the data: %s / %s." +msgstr "Veri şifrelenemedi: %s / %s." + +#: ../libnm-util/crypto_gnutls.c:362 +#, c-format +msgid "Error initializing certificate data: %s" +msgstr "Sertifika verisi ilklendirilemedi: %s" + +#: ../libnm-util/crypto_gnutls.c:384 +#, c-format +msgid "Couldn't decode certificate: %s" +msgstr "Sertifika çözülemiyor: %s" + +#: ../libnm-util/crypto_gnutls.c:408 +#, c-format +msgid "Couldn't initialize PKCS#12 decoder: %s" +msgstr "PKCS#12 çözücüsü başlatılamadı: %s" + +#: ../libnm-util/crypto_gnutls.c:421 +#, c-format +msgid "Couldn't decode PKCS#12 file: %s" +msgstr "PKCS#12 dosyası '%s' çözülemedi" + +#: ../libnm-util/crypto_gnutls.c:433 +#, c-format +msgid "Couldn't verify PKCS#12 file: %s" +msgstr "PKCS#12 dosyası '%s' doğrulanamadı" + +#: ../libnm-util/crypto_nss.c:56 +#, c-format +msgid "Failed to initialize the crypto engine: %d." +msgstr "Şifreleme motoru başlatılamadı: %d." + +#: ../libnm-util/crypto_nss.c:111 +#, c-format +msgid "Failed to initialize the MD5 context: %d." +msgstr "MD5 içeriği ilklendirilemedi: %d." + +#: ../libnm-util/crypto_nss.c:179 +#, c-format +msgid "Invalid IV length (must be at least %d)." +msgstr "Geçersiz IV uzunluğu (en az %d olmalı)." + +#: ../libnm-util/crypto_nss.c:196 +#, c-format +msgid "Failed to initialize the decryption cipher slot." +msgstr "Şifre çözme şifre yuvası ilklendirilemedi." + +#: ../libnm-util/crypto_nss.c:206 +#, c-format +msgid "Failed to set symmetric key for decryption." +msgstr "Şifre çözme için simetrik anahtar ayarlanamadı." + +#: ../libnm-util/crypto_nss.c:216 +#, c-format +msgid "Failed to set IV for decryption." +msgstr "Şifre çözme için IV ayarlanamadı." + +#: ../libnm-util/crypto_nss.c:224 +#, c-format +msgid "Failed to initialize the decryption context." +msgstr "Şifre çözme içeriği ilklendirilemedi." + +#: ../libnm-util/crypto_nss.c:237 +#, c-format +msgid "Failed to decrypt the private key: %d." +msgstr "Özel anahtarın şifresi çözülemedi: %d." + +#: ../libnm-util/crypto_nss.c:245 +#, c-format +msgid "Failed to decrypt the private key: decrypted data too large." +msgstr "Özel anahtarın şifresi çözülemedi: şifresi çözülen veri çok büyük." + +#: ../libnm-util/crypto_nss.c:256 +#, c-format +msgid "Failed to finalize decryption of the private key: %d." +msgstr "Özel anahtarın şifresinin çözülme işlemi sonlandırılamadı: %d." + +#: ../libnm-util/crypto_nss.c:364 +#, c-format +msgid "Failed to initialize the encryption cipher slot." +msgstr "Şifreleme şifre yuvası (encryption cipher slot) ilklendirilemedi." + +#: ../libnm-util/crypto_nss.c:372 +#, c-format +msgid "Failed to set symmetric key for encryption." +msgstr "Şifreleme için simetrik anahtar ayarlanamadı." + +#: ../libnm-util/crypto_nss.c:380 +#, c-format +msgid "Failed to set IV for encryption." +msgstr "Şifreleme için IV ayarlanamadı." + +#: ../libnm-util/crypto_nss.c:388 +#, c-format +msgid "Failed to initialize the encryption context." +msgstr "Şifreleme içeriği ilklendirilemedi." + +#: ../libnm-util/crypto_nss.c:396 +#, c-format +msgid "Failed to encrypt: %d." +msgstr "Şifreleme başarısız: %d." + +#: ../libnm-util/crypto_nss.c:404 +#, c-format +msgid "Unexpected amount of data after encrypting." +msgstr "Şifrelemeden sonra beklenmeyen veri boyutu." + +#: ../libnm-util/crypto_nss.c:447 +#, c-format +msgid "Couldn't decode certificate: %d" +msgstr "Sertifika çözülemedi: %d" + +#: ../libnm-util/crypto_nss.c:482 +#, c-format +msgid "Couldn't convert password to UCS2: %d" +msgstr "Parola UCS2 biçimine dönüştürülemedi: %d" + +#: ../libnm-util/crypto_nss.c:510 +#, c-format +msgid "Couldn't initialize PKCS#12 decoder: %d" +msgstr "PKCS#12 çözücüsü başlatılamadı: %d" + +#: ../libnm-util/crypto_nss.c:519 +#, c-format +msgid "Couldn't decode PKCS#12 file: %d" +msgstr "PKCS#12 dosyası çözülemedi: %d" + +#: ../libnm-util/crypto_nss.c:528 +#, c-format +msgid "Couldn't verify PKCS#12 file: %d" +msgstr "PKCS#12 dosyası doğrulanamadı: %d" + +#: ../libnm-util/crypto_nss.c:557 +msgid "Could not generate random data." +msgstr "Rastgele veri üretilemedi." + +#: ../libnm-util/nm-utils.c:1975 +#, c-format +msgid "Not enough memory to make encryption key." +msgstr "Şifreleme anahtarı üretecek yeterli bellek yok." + +#: ../libnm-util/nm-utils.c:2085 +msgid "Could not allocate memory for PEM file creation." +msgstr "PEM dosyası üretimi için bellek ayrılamıyor." + +#: ../libnm-util/nm-utils.c:2097 +#, c-format +msgid "Could not allocate memory for writing IV to PEM file." +msgstr "IV'nin PEM dosyasına yazılması için bellek ayrılamıyor." + +#: ../libnm-util/nm-utils.c:2109 +#, c-format +msgid "Could not allocate memory for writing encrypted key to PEM file." +msgstr "Şifreli anahtarın PEM dosyasına yazılması için bellek ayrılamıyor." + +#: ../libnm-util/nm-utils.c:2128 +#, c-format +msgid "Could not allocate memory for PEM file data." +msgstr "PEM dosyası verisi için bellek ayrılamıyor." + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:1 +msgid "Connection sharing via a protected WiFi network" +msgstr "Güvenli kablosuz ağ üzerinden bağlantı paylaşımı" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:2 +msgid "Connection sharing via an open WiFi network" +msgstr "Açık kablosuz ağ üzerinden bağlantı paylaşımı" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:3 +msgid "Modify persistent system hostname" +msgstr "Sistemin kalıcı makine adını değiştir" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:4 +msgid "Modify system connections" +msgstr "Sistem bağlantılarını değiştir" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:5 +msgid "System policy prevents modification of system settings" +msgstr "Sistem politikası sistem ayarlarının değiştirilmesini engelliyor" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:6 +msgid "System policy prevents modification of the persistent system hostname" +msgstr "" +"Sistem politikası sistemin kalıcı makine adının değiştirilmesini engelliyor" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:7 +msgid "System policy prevents sharing connections via a protected WiFi network" +msgstr "" +"Sistem politikası güvenli kablosuz ağ üzerinden bağlantı paylaşımını " +"engelliyor" + +#: ../policy/org.freedesktop.network-manager-settings.system.policy.in.h:8 +msgid "System policy prevents sharing connections via an open WiFi network" +msgstr "" +"Sistem politikası açık kablosuz ağ üzerinden bağlantı paylaşımını engelliyor" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:1 +msgid "Allow control of network connections" +msgstr "Ağ bağlantılarının kontrolüne izin ver" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:2 +msgid "Allow use of user-specific connections" +msgstr "Kullanıcı temelli bağlantıların kullanımına izin ver" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:3 +msgid "Enable or disable WiFi devices" +msgstr "WiFi aygıtları etkinleştir/kapat" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:4 +msgid "Enable or disable mobile broadband devices" +msgstr "Mobil geniş bant aygıtları etkinleştir/kapat" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:5 +msgid "Enable or disable system networking" +msgstr "Ağ iletişimini etkinleştir/kapat" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:6 +msgid "" +"Put NetworkManager to sleep or wake it up (should only be used by system " +"power management)" +msgstr "" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:7 +msgid "System policy prevents control of network connections" +msgstr "Sistem politikası ağ bağlantılarının kontrolünü engelliyor" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:8 +msgid "System policy prevents enabling or disabling WiFi devices" +msgstr "" +"Sistem politikası WiFi aygıtlarının etkinleştirilmesini/kapatılmasını engelliyor" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:9 +msgid "System policy prevents enabling or disabling mobile broadband devices" +msgstr "Sistem politikası mobil geniş bant aygıtlarının etkinleştirilmesini/kapatılmasını engelliyor" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:10 +msgid "System policy prevents enabling or disabling system networking" +msgstr "Sistem politikası ağ iletişiminin etkinleştirilmesini/kapanmasını engelliyor" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:11 +msgid "System policy prevents putting NetworkManager to sleep or waking it up" +msgstr "Sistem politikası NetworkManager'ın uyku moduna geçmesini veya uyanmasını engelliyor" + +#: ../policy/org.freedesktop.NetworkManager.policy.in.h:12 +msgid "System policy prevents use of user-specific connections" +msgstr "Sistem politikası kullanıcı temelli bağlantıların kullanılmasını engelliyor" + +#: ../src/nm-netlink-monitor.c:100 ../src/nm-netlink-monitor.c:231 +#: ../src/nm-netlink-monitor.c:653 +#, c-format +msgid "error processing netlink message: %s" +msgstr "netlink iletisinin işlenmesinde hata: %s" + +#: ../src/nm-netlink-monitor.c:214 +msgid "error occurred while waiting for data on socket" +msgstr "soketten veri beklenirken hata oluştu" + +#: ../src/nm-netlink-monitor.c:254 +#, c-format +msgid "unable to connect to netlink for monitoring link status: %s" +msgstr "hat durumunu gözlemlemek için netlink'e bağlanılamadı: %s" + +#: ../src/nm-netlink-monitor.c:265 +#, c-format +msgid "unable to enable netlink handle credential passing: %s" +msgstr "" +"hat durumunu gözlemlemek için netlink tanımlayıcısı etkinleştirilemedi: %s" + +#: ../src/nm-netlink-monitor.c:291 ../src/nm-netlink-monitor.c:353 +#, c-format +msgid "unable to allocate netlink handle for monitoring link status: %s" +msgstr "hat durumunu gözlemlemek için netlink tanımlayıcısı ayrılamadı: %s" + +#: ../src/nm-netlink-monitor.c:376 +#, c-format +msgid "unable to allocate netlink link cache for monitoring link status: %s" +msgstr "hat durumunu gözlemlemek için netlink hat önbelleği ayrılamadı: %s" + +#: ../src/nm-netlink-monitor.c:502 +#, c-format +msgid "unable to join netlink group: %s" +msgstr "netlink grubuna bağlanılamadı: %s" + +#: ../src/nm-netlink-monitor.c:629 ../src/nm-netlink-monitor.c:642 +#, c-format +msgid "error updating link cache: %s" +msgstr "Hat önbelleği güncellenemedi: %s" + +#: ../src/main.c:502 +#, c-format +msgid "Invalid option. Please use --help to see a list of valid options.\n" +msgstr "" +"Geçersiz seçenek. Lütfen --help kullanarak geçerli seçeneklere göz atın.\n" + +#: ../src/main.c:573 +#, c-format +msgid "%s. Please use --help to see a list of valid options.\n" +msgstr "%s. --help parametresiyle geçerli seçenekleri görebilirsiniz.\n" + +#: ../src/dhcp-manager/nm-dhcp-dhclient.c:328 +msgid "# Created by NetworkManager\n" +msgstr "# NetworkManager tarafından oluşturuldu\n" + +#: ../src/dhcp-manager/nm-dhcp-dhclient.c:344 +#, c-format +msgid "" +"# Merged from %s\n" +"\n" +msgstr "" +"# %s'ten birleştirildi\n" +"\n" + +#: ../src/dhcp-manager/nm-dhcp-manager.c:284 +msgid "no usable DHCP client could be found." +msgstr "Kullanılabilecek DHCP istemcisi bulunamadı." + +#: ../src/dhcp-manager/nm-dhcp-manager.c:293 +msgid "'dhclient' could be found." +msgstr "'dhclient' bulunamadı." + +#: ../src/dhcp-manager/nm-dhcp-manager.c:303 +msgid "'dhcpcd' could be found." +msgstr "'dhcpcd' bulunamadı." + +#: ../src/dhcp-manager/nm-dhcp-manager.c:311 +#, c-format +msgid "unsupported DHCP client '%s'" +msgstr "Desteklenmeyen DHCP istemcisi '%s'" + +#: ../src/logging/nm-logging.c:146 +#, c-format +msgid "Unknown log level '%s'" +msgstr "Bilinmeyen günlük seviyesi '%s'" + +#: ../src/logging/nm-logging.c:171 +#, c-format +msgid "Unknown log domain '%s'" +msgstr "Bilinmeyen günlük alanı '%s'" + +#: ../src/dns-manager/nm-dns-manager.c:367 +msgid "NOTE: the libc resolver may not support more than 3 nameservers." +msgstr "" +"NOT: libc alan adı çözücüsü 3'ten fazla isim sunucuyu desteklemeyebilir." + +#: ../src/dns-manager/nm-dns-manager.c:369 +msgid "The nameservers listed below may not be recognized." +msgstr "Aşağıda listelenen isim sunucuları tanınmayabilir." + +#: ../src/system-settings/nm-sysconfig-connection.c:354 +#: ../src/system-settings/nm-sysconfig-connection.c:469 +#: ../src/system-settings/nm-sysconfig-connection.c:561 +msgid "Insufficient privileges." +msgstr "Bu işlemi yapmak için yeterli yetkiniz yok." + +#: ../src/system-settings/nm-default-wired-connection.c:157 +#, c-format +msgid "Auto %s" +msgstr "Oto %s" + +#: ../system-settings/plugins/ifcfg-rh/reader.c:3413 +#: ../system-settings/plugins/ifnet/connection_parser.c:49 +msgid "System" +msgstr "Sistem" + +#~ msgid "Type" +#~ msgstr "Tür" + +#~ msgid "Name" +#~ msgstr "İsim" + +#~ msgid "User connections:\n" +#~ msgstr "Kullanıcı bağlantıları:\n" + +#~ msgid "System-wide connections" +#~ msgstr "Sistem-geneli bağlantılar" + +#~ msgid "Default" +#~ msgstr "Öntanımlı" + +#~ msgid "Service" +#~ msgstr "Hizmet" + +#~ msgid "%s, %s, Freq %d MHz, Rate %d Mb/s, Strength %d" +#~ msgstr "%s, %s, Frekans %d MHz, Hız %d Mb/s, Sinyal %d" + +#~ msgid "Device" +#~ msgstr "Aygıt" + +#~ msgid "Driver" +#~ msgstr "Sürücü" + +#~ msgid "State" +#~ msgstr "Durum" + +#~ msgid "HW Address" +#~ msgstr "Donanım Adresi" + +#~ msgid "" +#~ "\n" +#~ " Capabilities:\n" +#~ msgstr "" +#~ "\n" +#~ " Yetenekler:\n" + +#~ msgid "Carrier Detect" +#~ msgstr "Taşıyıcı Tanıma" + +#~ msgid "Speed" +#~ msgstr "Hız" + +#~ msgid "" +#~ "\n" +#~ " Wireless Properties\n" +#~ msgstr "" +#~ "\n" +#~ " Kablosuz Seçenekler\n" + +#~ msgid "WEP Encryption" +#~ msgstr "WEP Şifreleme" + +#~ msgid "WPA Encryption" +#~ msgstr "WPA Şifreleme" + +#~ msgid "WPA2 Encryption" +#~ msgstr "WPA2 Şifreleme" + +#~ msgid "TKIP cipher" +#~ msgstr "TKIP şifresi" + +#~ msgid "CCMP cipher" +#~ msgstr "CCMP şifresi" + +#~ msgid "" +#~ "\n" +#~ " Wireless Access Points %s\n" +#~ msgstr "" +#~ "\n" +#~ " Kablosuz Erişim Noktaları %s\n" + +#~ msgid "(* = current AP)" +#~ msgstr "(* şimdiki AP)" + +#~ msgid "" +#~ "\n" +#~ " Wired Properties\n" +#~ msgstr "" +#~ "\n" +#~ " Kablolu Ağ Seçenekleri\n" + +#~ msgid "Carrier" +#~ msgstr "Taşıyıcı" + +#~ msgid "" +#~ "\n" +#~ " IPv4 Settings:\n" +#~ msgstr "" +#~ "\n" +#~ " IPv4 Ayarları:\n" + +#~ msgid "Address" +#~ msgstr "Adres" + +#~ msgid "Prefix" +#~ msgstr "Ön ek" + +#~ msgid "Gateway" +#~ msgstr "Ağ Geçidi" + +#~ msgid "Device:" +#~ msgstr "Aygıt:" + +#~ msgid "Error: hwaddr has to be specified." +#~ msgstr "Hata: donanım adresi verilmeli." + +#~ msgid "AP parameters" +#~ msgstr "AP parametreleri" + +#~ msgid "Frequency:" +#~ msgstr "Frekans:" + +#~ msgid "Mode:" +#~ msgstr "Mod:" + +#~ msgid "Ad-hoc" +#~ msgstr "Ad-hoc" + +#~ msgid "Maximal bitrate:" +#~ msgstr "Azami bit oranı:" + +#~ msgid "Strength:" +#~ msgstr "Şiddet:" + +#~ msgid "Flags:" +#~ msgstr "Bayraklar:" + +#~ msgid "privacy" +#~ msgstr "gizlilik" + +#~ msgid "WPA flags:" +#~ msgstr "WPA bayrakları:" + +#~ msgid "RSN flags:" +#~ msgstr "RSN bayrakları:" + +#~ msgid "NM running:" +#~ msgstr "NM çalışıyor:" + +#~ msgid "NM state:" +#~ msgstr "NM durumu:" + +#~ msgid "NM wireless hardware:" +#~ msgstr "NM kablosuz donanım:" + +#~ msgid "NM wireless:" +#~ msgstr "NM kablosuz:" + +#~ msgid "NM WWAN hardware:" +#~ msgstr "NM WWAN donanım:" diff --git a/network/connection/NetworkManager/pspec.xml b/network/connection/NetworkManager/pspec.xml new file mode 100644 index 0000000000..77f81cc48d --- /dev/null +++ b/network/connection/NetworkManager/pspec.xml @@ -0,0 +1,213 @@ + + + + + NetworkManager + http://projects.gnome.org/NetworkManager + + Pisi Linux Admins + admins@pisilinux.org + + GPLv2+ + app:console + Network connection manager powered by D-Bus and UDEV + NetworkManager attempts to keep an active network connection available at all times. + https://download.gnome.org/sources/NetworkManager/1.0/NetworkManager-1.0.2.tar.xz + + tr.po + + + intltool + dhclient + ppp-devel + nss-devel + newt-devel + nspr-devel + libnl-devel + libsoup-devel + bluez-libs-devel + iptables-devel + wpa_supplicant + dbus-glib-devel + gobject-introspection + libndp-devel + libmm-glib-devel + dbus-devel + glib2-devel + polkit-devel + readline-devel + libuuid-devel + libgudev1-devel + ConsoleKit-devel + + + 0001-dns-Fix-falling-back-in-the-resolv.conf-methods.patch + disable_set_hostname.patch + + + + + NetworkManager + + dbus + nspr + glib2 + polkit + readline + dbus-glib + libuuid + libgudev1 + nss + newt + ppp + libnl + libsoup + bluez-libs + iproute2 + iptables + libmm-glib + ModemManager + avahi-autoipd + wpa_supplicant + libndp + ConsoleKit + mobile-broadband-provider-info + + + /etc + /usr/share + /etc/dbus-1 + /usr/lib + /usr/share/man + /usr/share/doc + /usr/bin + /lib/udev + /usr/sbin + /lib/udev/rules.d + /usr/libexec + /run/NetworkManager + /lib/systemd/system + /usr/share/locale + /var/lib/NetworkManager + /etc/NetworkManager/system-connections + /usr/lib/tmpfiles.d/NetworkManager.conf + /etc/polkit-1/localauthority/10-vendor.d + + + NetworkManager.confd + tmpfiles.conf + NetworkManager.conf + migrate-comar-network-profiles + gentoo/01-org.freedesktop.NetworkManager.settings.modify.system.pkla + 01-org.freedesktop.ModemManager1.rules + 01-org.freedesktop.NetworkManager.settings.modify.system.rules + + + System.Service + + + + + NetworkManager-devel + Development files for NetworkManager + + dbus-glib-devel + NetworkManager + + + /usr/include + /usr/lib/pkgconfig/ + + + + + + 2015-06-14 + 1.0.2 + fixed missing dep and added rules files + + systemRestart + + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2015-05-14 + 1.0.2 + Version bump. + + systemRestart + + Vedat Demir + vedat@pisilinux.org + + + 2015-01-07 + 1.0 + Version bump. + + systemRestart + + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2014-05-17 + 0.9.8.10 + Version bump. + + systemRestart + + Vedat Demir + vedat@pisilinux.org + + + 2014-01-10 + 0.9.8.8 + Version bump. Add tmpfiles.conf + + systemRestart + + Marcin Bojara + marcin@pisilinux.org + + + 2013-09-08 + 0.9.8.2 + /var/run => /run + + systemRestart + + Marcin Bojara + marcin@pisilinux.org + + + 2013-07-27 + 0.9.8.2 + Version bump. + PisiLinux Community + admins@pisilinux.org + + + 2013-02-21 + 0.9.8.0 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-01-23 + 0.9.7.995 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-01-13 + 0.9.6.4 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/connection/NetworkManager/translations.xml b/network/connection/NetworkManager/translations.xml new file mode 100644 index 0000000000..8d13fe3b6f --- /dev/null +++ b/network/connection/NetworkManager/translations.xml @@ -0,0 +1,13 @@ + + + + NetworkManager + D-Bus üzerinden yapılandırmaya izin veren, gelişmiş bir ağ yönetim altyapısı + NetworkManager, etkin bir bağlantı kurmak ve onu sürekli ayakta tutmak üzere tasarlanmış, D-Bus ve UDEV teknolojilerini kullanan bir ağ yönetim altyapısıdır. + + + + NetworkManager-devel + NetworkManager için geliştirme dosyaları + + diff --git a/network/connection/linux-atm/actions.py b/network/connection/linux-atm/actions.py new file mode 100644 index 0000000000..ceb82be774 --- /dev/null +++ b/network/connection/linux-atm/actions.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--disable-static") + +def build(): + autotools.make("-j1") + +def install(): + autotools.rawInstall("DESTDIR=%s man_prefix=/usr/share/man" % get.installDIR()) + pisitools.insinto("/etc", "src/config/hosts.atm") + + pisitools.dodoc("AUTHORS", "THANKS", "ChangeLog", "BUGS", "NEWS", "README") diff --git a/network/connection/linux-atm/files/gcc43.patch b/network/connection/linux-atm/files/gcc43.patch new file mode 100644 index 0000000000..51b10a7328 --- /dev/null +++ b/network/connection/linux-atm/files/gcc43.patch @@ -0,0 +1,11 @@ +diff -Nur linux-atm-2.5.0-old/src/led/main.c linux-atm-2.5.0/src/led/main.c +--- linux-atm-2.5.0-old/src/led/main.c 2008-04-25 03:39:28.000000000 +0300 ++++ linux-atm-2.5.0/src/led/main.c 2008-04-25 03:39:43.000000000 +0300 +@@ -46,6 +46,7 @@ + #include + + #include ++#include + + /* Local incs */ + #include "join.h" diff --git a/network/connection/linux-atm/files/linux-atm-2.5.0-disable-ilmidiag.patch b/network/connection/linux-atm/files/linux-atm-2.5.0-disable-ilmidiag.patch new file mode 100644 index 0000000000..c420be9c58 --- /dev/null +++ b/network/connection/linux-atm/files/linux-atm-2.5.0-disable-ilmidiag.patch @@ -0,0 +1,11 @@ +--- linux-atm/src/ilmid/Makefile.am~ 2007-07-11 17:07:57.000000000 +0100 ++++ linux-atm/src/ilmid/Makefile.am 2007-08-23 09:22:45.000000000 +0100 +@@ -2,7 +2,7 @@ SUBDIRS = asn1 + + INCLUDES = -I$(srcdir)/../ilmid/asn1 + +-sbin_PROGRAMS = ilmid ilmidiag ++sbin_PROGRAMS = ilmid + + ilmid_SOURCES = rfc1157_snmp.c rfc1157_snmp.h rfc1155_smi.c rfc1155_smi.h \ + util.c util.h io.c io.h message.c message.h \ diff --git a/network/connection/linux-atm/files/linux-atm-2.5.0-open-macro.patch b/network/connection/linux-atm/files/linux-atm-2.5.0-open-macro.patch new file mode 100644 index 0000000000..928222fa28 --- /dev/null +++ b/network/connection/linux-atm/files/linux-atm-2.5.0-open-macro.patch @@ -0,0 +1,11 @@ +--- linux-atm/src/maint/atmtcp.c~ 2007-08-22 14:59:21.000000000 +0100 ++++ linux-atm/src/maint/atmtcp.c 2007-08-22 18:27:24.000000000 +0100 +@@ -109,7 +109,7 @@ static void control(int in_link,struct a + switch (msg->type) { + case ATMTCP_CTRL_OPEN: + if (out->ops->open) +- changed += out->ops->open(out,in_link,msg); ++ changed += (out->ops->open)(out,in_link,msg); + break; + case ATMTCP_CTRL_CLOSE: + if (out->ops->close) diff --git a/network/connection/linux-atm/files/man-pages.patch b/network/connection/linux-atm/files/man-pages.patch new file mode 100644 index 0000000000..c504cfe87d --- /dev/null +++ b/network/connection/linux-atm/files/man-pages.patch @@ -0,0 +1,45 @@ +diff -up linux-atm-2.5.1/src/led/zeppelin.8.fixman linux-atm-2.5.1/src/led/zeppelin.8 +--- linux-atm-2.5.1/src/led/zeppelin.8.fixman 2003-05-02 19:35:04.000000000 +0200 ++++ linux-atm-2.5.1/src/led/zeppelin.8 2010-10-13 12:58:18.000000000 +0200 +@@ -99,7 +99,7 @@ Ring and ATM parts of the ELAN, so using + recommended. Token Ring support has received less testing than its + Ethernet counterpart. + .SH FILES +-.IP \fI/var/run/lec[interface number].pid\fP ++\fI/var/run/lec[interface number].pid\fP + The file containing the process id of zeppelin. + .SH BUGS + John Bonham died 1980 and Led Zeppelin broke. +diff -up linux-atm-2.5.1/src/mpoad/mpcd.8.fixman linux-atm-2.5.1/src/mpoad/mpcd.8 +--- linux-atm-2.5.1/src/mpoad/mpcd.8.fixman 2001-10-10 00:33:07.000000000 +0200 ++++ linux-atm-2.5.1/src/mpoad/mpcd.8 2010-10-13 12:59:14.000000000 +0200 +@@ -28,7 +28,7 @@ mpcd \- ATM MPOA (Multi\-Protocol Over A + .B ]] + .SH DESCRIPTION + MPOA client +-.SM(MPC) is responsible for creating and receiving ++.SM (MPC) is responsible for creating and receiving + internetwork layer shortcuts. Using these shortcuts MPCs forward + unicast internetwork layer packets effectively over ATM without need + for routing protocols. +@@ -43,7 +43,7 @@ accepts shortcuts and packets arriving o + shortcuts is done with the help of + .SM MPOA + server +-.SM(MPS). ++.SM (MPS). + .PP + Just as the Linux + .SM LAN +diff -up linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman linux-atm-2.5.1/src/sigd/atmsigd.conf.4 +--- linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman 2001-10-10 00:33:07.000000000 +0200 ++++ linux-atm-2.5.1/src/sigd/atmsigd.conf.4 2010-10-13 12:58:49.000000000 +0200 +@@ -125,7 +125,7 @@ a comment. The `#' character cannot be e + .P + If an option is specified in \fBatmsigd.conf\fP and on the command + line, the command line has priority. +-.COMPATIBILITY ++.SH COMPATIBILITY + Certain options used by past versions of \fBatmsigd\fP but no longer documented + on the man page are still recognized and supported, but they also yield a + warning message. Future versions of \fBatmsigd\fP will not recognize those diff --git a/network/connection/linux-atm/files/netdevice.patch b/network/connection/linux-atm/files/netdevice.patch new file mode 100644 index 0000000000..22af6ef27f --- /dev/null +++ b/network/connection/linux-atm/files/netdevice.patch @@ -0,0 +1,33 @@ +diff -Nur linux-atm-2.5.0-old/src/arpd/arp.c linux-atm-2.5.0/src/arpd/arp.c +--- linux-atm-2.5.0-old/src/arpd/arp.c 2008-04-25 03:34:35.000000000 +0300 ++++ linux-atm-2.5.0/src/arpd/arp.c 2008-04-25 03:34:51.000000000 +0300 +@@ -15,7 +15,6 @@ + #include + #include /* for linux/if_arp.h */ + #include /* for ntohs, etc. */ +-#define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */ + #include + #include + #include +diff -Nur linux-atm-2.5.0-old/src/arpd/io.c linux-atm-2.5.0/src/arpd/io.c +--- linux-atm-2.5.0-old/src/arpd/io.c 2008-04-25 03:34:35.000000000 +0300 ++++ linux-atm-2.5.0/src/arpd/io.c 2008-04-25 03:34:51.000000000 +0300 +@@ -21,7 +21,6 @@ + #include + #include /* for CLIP_DEFAULT_IDLETIMER */ + #include +-#define _LINUX_NETDEVICE_H /* glibc2 */ + #include + #include + +diff -Nur linux-atm-2.5.0-old/src/arpd/itf.c linux-atm-2.5.0/src/arpd/itf.c +--- linux-atm-2.5.0-old/src/arpd/itf.c 2008-04-25 03:34:35.000000000 +0300 ++++ linux-atm-2.5.0/src/arpd/itf.c 2008-04-25 03:34:51.000000000 +0300 +@@ -12,7 +12,6 @@ + #include + #include + #include +-#define _LINUX_NETDEVICE_H /* glibc2 */ + #include + #include + diff --git a/network/connection/linux-atm/files/sandbox.patch b/network/connection/linux-atm/files/sandbox.patch new file mode 100644 index 0000000000..69939638fa --- /dev/null +++ b/network/connection/linux-atm/files/sandbox.patch @@ -0,0 +1,17 @@ +Index: linux-atm-2.5.1/src/config/Makefile.in +=================================================================== +--- linux-atm-2.5.1.orig/src/config/Makefile.in ++++ linux-atm-2.5.1/src/config/Makefile.in +@@ -413,10 +413,10 @@ uninstall-am: uninstall-local uninstall- + + + install-exec-local: +- -cp hosts.atm /etc ++ -cp hosts.atm $(DESTDIR)$(sysconfdir) + + uninstall-local: +- -rm /etc/hosts.atm ++ -rm $(DESTDIR)$(sysconfdir)/hosts.atm + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/network/connection/linux-atm/pspec.xml b/network/connection/linux-atm/pspec.xml new file mode 100644 index 0000000000..8b5e594b4e --- /dev/null +++ b/network/connection/linux-atm/pspec.xml @@ -0,0 +1,72 @@ + + + + + linux-atm + http://linux-atm.sourceforge.net/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + app:console + library + Tools to support ATM networking under Liunx + linux-atm contains tools for Asynchronous Transfer Mode. Supports raw ATM connections (PVCs and SVCs), IP over ATM, LAN emulation, MPOA, Arequipa, and some others. + mirrors://sourceforge/project/linux-atm/linux-atm/2.5.2/linux-atm-2.5.2.tar.gz + + flex + + + man-pages.patch + + + + + + linux-atm + + flex + + + /lib/firmware + /usr/sbin + /usr/bin + /etc + /usr/lib + /usr/share/man + /usr/share/doc + + + + + linux-atm-devel + Development files for linux-atm + + linux-atm + + + /usr/include + + + + + + 2015-04-13 + 2.5.2 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2010-10-13 + 2.5.1 + First release + Gökcen Eraslan + admins@pisilinux.org + + + diff --git a/network/connection/linux-atm/translations.xml b/network/connection/linux-atm/translations.xml new file mode 100644 index 0000000000..57d274cb46 --- /dev/null +++ b/network/connection/linux-atm/translations.xml @@ -0,0 +1,13 @@ + + + + linux-atm + ATM ağ bağlantısı desteği için araçlar + linux-atm ATM (Asynchronous Transfer Mode) bağlantısı için gerekli çeşitli araçlar ve kitaplıklarını içerir. + + + + linux-atm-devel + linux-atm için geliştirme dosyaları + + diff --git a/network/connection/mobile-broadband-provider-info/actions.py b/network/connection/mobile-broadband-provider-info/actions.py new file mode 100644 index 0000000000..5a90665eaf --- /dev/null +++ b/network/connection/mobile-broadband-provider-info/actions.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt. + +from pisi.actionsapi import pisitools +from pisi.actionsapi import autotools +from pisi.actionsapi import get + +def setup(): + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("ChangeLog", "COPYING", "README*") diff --git a/network/connection/mobile-broadband-provider-info/pspec.xml b/network/connection/mobile-broadband-provider-info/pspec.xml new file mode 100644 index 0000000000..23ae65e547 --- /dev/null +++ b/network/connection/mobile-broadband-provider-info/pspec.xml @@ -0,0 +1,34 @@ + + + + + mobile-broadband-provider-info + http://live.gnome.org/NetworkManager/MobileBroadband/ServiceProviders + + PisiLinux Community + admins@pisilinux.org + + public-domain + data + Service provider specific settings of mobile broadband providers in different countries + The mobile-broadband-provider-info package contains listings of mobile broadband (3G) providers and associated network and plan information. + ftp://ftp.gnome.org/pub/gnome/sources/mobile-broadband-provider-info/20120614/mobile-broadband-provider-info-20120614.tar.xz + + + + mobile-broadband-provider-info + + /usr/share + + + + + + 2012-08-28 + 20120614 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/connection/mobile-broadband-provider-info/translations.xml b/network/connection/mobile-broadband-provider-info/translations.xml new file mode 100644 index 0000000000..2d8e6b2f8e --- /dev/null +++ b/network/connection/mobile-broadband-provider-info/translations.xml @@ -0,0 +1,8 @@ + + + + mobile-broadband-provider-info + Çeşitli ülkelerdeki mobil genişbant servis sağlayıcıları hakkında bilgileri içeren ayar veritabanı + mobile-broadband-provider-info paketi, dünya üzerindeki mobil genişbant sağlayıcılarının ve ilgili tarifelerinin listesini tutan bir veritabanıdır. + + diff --git a/network/connection/ppp/actions.py b/network/connection/ppp/actions.py new file mode 100644 index 0000000000..fc5fe5bed2 --- /dev/null +++ b/network/connection/ppp/actions.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + +def setup(): + pisitools.cflags.add("-fPIC", "-D_GNU_SOURCE") + shelltools.copytree("%s/dhcp" % get.workDIR(), "pppd/plugins") + pisitools.dosed("pppd/plugins/dhcp/Makefile.linux", "^(CFLAGS=.+)\s-O2", "\\1 %s" % get.CFLAGS()) + + # Enable atm + pisitools.dosed("pppd/Makefile.linux", "^#(HAVE_LIBATM=yes)", "\\1") + # Enable pam + pisitools.dosed("pppd/Makefile.linux", "^#(USE_PAM=y)", "\\1") + # Enable CBCP + pisitools.dosed("pppd/Makefile.linux", "^#(CBCP=y)", "\\1") + # Enable IPv6 + pisitools.dosed("pppd/Makefile.linux", "^#(HAVE_INET6)", "\\1") + # Enable dhcp + pisitools.dosed("pppd/plugins/Makefile.linux", "^(SUBDIRS\s:=.+)", "\\1 dhcp") + + autotools.configure() + +def build(): + autotools.make() + +def install(): + # The build mechanism is crap. Don't remove \/usr from DESTDIR or else the paths will fail + autotools.rawInstall("DESTDIR=%s/usr INSTROOT=%s install-etcppp" % ((get.installDIR(),)*2)) + + # No suid libraries + shelltools.chmod("%s/usr/lib/pppd/%s/*.so" % (get.installDIR(),get.srcVERSION()), 0755) + + # Install Radius config files + pisitools.insinto("/etc/radiusclient", "pppd/plugins/radius/etc/*") + + # Create peers directory + pisitools.dodir("/run/ppp") + pisitools.dodir("/etc/ppp/peers") + + pisitools.dodoc("Changes*", "README*", "FAQ") diff --git a/network/connection/ppp/files/chat-default b/network/connection/ppp/files/chat-default new file mode 100644 index 0000000000..72435c136a --- /dev/null +++ b/network/connection/ppp/files/chat-default @@ -0,0 +1,14 @@ +# /etc/ppp/chat-default: + +'ABORT' 'BUSY' +'ABORT' 'ERROR' +'ABORT' 'NO ANSWER' +'ABORT' 'NO CARRIER' +'ABORT' 'NO DIALTONE' +'ABORT' 'Invalid Login' +'ABORT' 'Login incorrect' +'' 'ATZ' +'OK' 'ATDT$NUMBER' +'CONNECT' '' +'TIMEOUT' '5' +'~--' '' diff --git a/network/connection/ppp/files/confd.ppp0 b/network/connection/ppp/files/confd.ppp0 new file mode 100644 index 0000000000..f54ef449b1 --- /dev/null +++ b/network/connection/ppp/files/confd.ppp0 @@ -0,0 +1,48 @@ +# /etc/conf.d/net.ppp0: + +# Config file for /etc/init.d/net.ppp0 + +PEER="MyPeer" # Define peer (aka ISP) +DEBUG="no" # Turn on debugging +PERSIST="no" # Redial after being dropped +ONDEMAND="no" # Only bring the interface up on demand? +MODEMPORT="/dev/ttyS1" # TTY device modem is connected to +LINESPEED="115200" # Speed pppd should try to connect at +INITSTRING="" # Extra init string for the modem +DEFROUTE="yes" # Must pppd set the default route? +HARDFLOWCTL="yes" # Use hardware flow control? +ESCAPECHARS="yes" # Use escape caracters ? +PPPOPTIONS="" # Extra options for pppd +USERNAME="user" # The PAP/CHAP username +PASSWORD="passwd" # Your password/secret. Ugly I know, but i + # will work on something more secure later + # on. 700 permission on /etc/init.d/net.ppp0 + # should be enouth for now. +NUMBER="9180000" # The telephone number of your ISP + # leave blank for leased-line operation. +REMIP="" # The ip of the remote box if it should be set +NETMASK="" # Netmask +IPADDR="" # Our IP if we have a static one +MRU="768" # Sets the MRU +MTU="768" # Sets the MTU +RETRYTIMEOUT="60" # Retry timeout for when ONDEMAND="yes" or + # PERSIST="yes" +IDLETIMEOUT="600" # Idle timeout for when ONDEMAND="yes" +PEERDNS="no" # Should pppd set the peer dns? + +AUTOCFGFILES="yes" # By default this scripts will generate + # /etc/ppp/chat-isp, /etc/ppp/chap-secrets, + # /etc/ppp/pap-secrets and /etc/ppp/peers/isp + # automatically. Set to "no" if you experience + # problems, or need specialized scripts. You + # will have to create these files by hand then. + +AUTOCHATSCRIPT="yes" # By default this script iwll generate + # /etc/ppp/chat-${PEER} automatically. Set to "no" + # if you experience problems, or need specialized + # scripts. You will have to create these files by + # hand then. + + +# Directory where the templates is stored +TEMPLATEDIR=/etc/ppp diff --git a/network/connection/ppp/files/gentoo/02_all_make-vars.patch b/network/connection/ppp/files/gentoo/02_all_make-vars.patch new file mode 100644 index 0000000000..e6898b2b0d --- /dev/null +++ b/network/connection/ppp/files/gentoo/02_all_make-vars.patch @@ -0,0 +1,194 @@ +diff -ur ppp-2.4.5.orig/chat/Makefile.linux ppp-2.4.5/chat/Makefile.linux +--- ppp-2.4.5.orig/chat/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/chat/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -10,7 +10,6 @@ + CDEF4= -DFNDELAY=O_NDELAY # Old name value + CDEFS= $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4) + +-COPTS= -O2 -g -pipe + CFLAGS= $(COPTS) $(CDEFS) + + INSTALL= install +@@ -18,7 +17,7 @@ + all: chat + + chat: chat.o +- $(CC) -o chat chat.o ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ + + chat.o: chat.c + $(CC) -c $(CFLAGS) -o chat.o chat.c +diff -ur ppp-2.4.5.orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux +--- ppp-2.4.5.orig/pppd/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -32,7 +32,7 @@ + + # CC = gcc + # +-COPTS = -O2 -pipe -Wall -g ++COPTS+= -Wall + LIBS = + + # Uncomment the next 2 lines to include support for Microsoft's +diff -ur ppp-2.4.5.orig/pppd/plugins/Makefile.linux ppp-2.4.5/pppd/plugins/Makefile.linux +--- ppp-2.4.5.orig/pppd/plugins/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/plugins/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -1,7 +1,11 @@ + #CC = gcc +-COPTS = -O2 -g + CFLAGS = $(COPTS) -I.. -I../../include -fPIC +-LDFLAGS = -shared ++LDFLAGS_PROG := $(LDFLAGS) ++export LDFLAGS LDFLAGS_PROG ++LDFLAGS += -shared ++# need the following option, otherwise linking plugins might fail with undef errors (Gentoo bug 210837) ++LDFLAGS += -Wl,--allow-shlib-undefined ++LIBS = + INSTALL = install + + DESTDIR = $(INSTROOT)@DESTDIR@ +@@ -23,7 +27,7 @@ + for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all; done + + %.so: %.c +- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^ ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ $(LIBS) + + VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../patchlevel.h) + +diff -ur ppp-2.4.5.orig/pppd/plugins/pppoatm/Makefile.linux ppp-2.4.5/pppd/plugins/pppoatm/Makefile.linux +--- ppp-2.4.5.orig/pppd/plugins/pppoatm/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/plugins/pppoatm/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -1,7 +1,5 @@ + #CC = gcc +-COPTS = -O2 -g + CFLAGS = $(COPTS) -I../.. -I../../../include -fPIC +-LDFLAGS = -shared + INSTALL = install + + #*********************************************************************** +@@ -33,7 +31,7 @@ + all: $(PLUGIN) + + $(PLUGIN): $(PLUGIN_OBJS) +- $(CC) $(CFLAGS) -o $@ -shared $^ $(LIBS) ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ $(LIBS) + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +diff -ur ppp-2.4.5.orig/pppd/plugins/pppol2tp/Makefile.linux ppp-2.4.5/pppd/plugins/pppol2tp/Makefile.linux +--- ppp-2.4.5.orig/pppd/plugins/pppol2tp/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/plugins/pppol2tp/Makefile.linux 2010-08-08 09:20:02.000000000 +0200 +@@ -1,7 +1,5 @@ + #CC = gcc +-COPTS = -O2 -g + CFLAGS = $(COPTS) -I. -I../.. -I../../../include -fPIC +-LDFLAGS = -shared + INSTALL = install + + #*********************************************************************** +@@ -16,7 +14,7 @@ + all: $(PLUGINS) + + %.so: %.o +- $(CC) $(CFLAGS) -o $@ -shared $^ $(LIBS) ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ $(LIBS) + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +diff -ur ppp-2.4.5.orig/pppd/plugins/radius/Makefile.linux ppp-2.4.5/pppd/plugins/radius/Makefile.linux +--- ppp-2.4.5.orig/pppd/plugins/radius/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/plugins/radius/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -12,7 +12,7 @@ + INSTALL = install + + PLUGIN=radius.so radattr.so radrealms.so +-CFLAGS=-I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON ++CFLAGS=$(COPTS) -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON + + # Uncomment the next line to include support for Microsoft's + # MS-CHAP authentication protocol. +@@ -43,13 +43,13 @@ + $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR) + + radius.so: radius.o libradiusclient.a +- $(CC) -o radius.so -shared radius.o libradiusclient.a ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ + + radattr.so: radattr.o +- $(CC) -o radattr.so -shared radattr.o ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ + + radrealms.so: radrealms.o +- $(CC) -o radrealms.so -shared radrealms.o ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ + + CLIENTOBJS = avpair.o buildreq.o config.o dict.o ip_util.o \ + clientid.o sendserver.o lock.o util.o md5.o +diff -ur ppp-2.4.5.orig/pppd/plugins/rp-pppoe/Makefile.linux ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux +--- ppp-2.4.5.orig/pppd/plugins/rp-pppoe/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -25,12 +25,11 @@ + # Version is set ONLY IN THE MAKEFILE! Don't delete this! + RP_VERSION=3.8p + +-COPTS=-O2 -g + CFLAGS=$(COPTS) -I../../../include '-DRP_VERSION="$(RP_VERSION)"' + all: rp-pppoe.so pppoe-discovery + + pppoe-discovery: pppoe-discovery.o debug.o +- $(CC) -o pppoe-discovery pppoe-discovery.o debug.o ++ $(CC) $(LDFLAGS_PROG) $(CFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o + + pppoe-discovery.o: pppoe-discovery.c + $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c +@@ -39,7 +38,7 @@ + $(CC) $(CFLAGS) -c -o debug.o debug.c + + rp-pppoe.so: plugin.o discovery.o if.o common.o +- $(CC) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o ++ $(CC) $(LDFLAGS) $(CFLAGS) -o rp-pppoe.so plugin.o discovery.o if.o common.o + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +diff -ur ppp-2.4.5.orig/pppdump/Makefile.linux ppp-2.4.5/pppdump/Makefile.linux +--- ppp-2.4.5.orig/pppdump/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppdump/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -2,7 +2,7 @@ + BINDIR = $(DESTDIR)/sbin + MANDIR = $(DESTDIR)/share/man/man8 + +-CFLAGS= -O -I../include/net ++CFLAGS=$(COPTS) -I../include/net + OBJS = pppdump.o bsd-comp.o deflate.o zlib.o + + INSTALL= install +@@ -10,7 +10,7 @@ + all: pppdump + + pppdump: $(OBJS) +- $(CC) -o pppdump $(OBJS) ++ $(CC) $(LDFLAGS) -o pppdump $(OBJS) + + clean: + rm -f pppdump $(OBJS) *~ +diff -ur ppp-2.4.5.orig/pppstats/Makefile.linux ppp-2.4.5/pppstats/Makefile.linux +--- ppp-2.4.5.orig/pppstats/Makefile.linux 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppstats/Makefile.linux 2010-08-08 09:19:38.000000000 +0200 +@@ -10,7 +10,6 @@ + PPPSTATOBJS = pppstats.o + + #CC = gcc +-COPTS = -O + COMPILE_FLAGS = -I../include + LIBS = + +@@ -26,7 +25,7 @@ + $(INSTALL) -c -m 444 pppstats.8 $(MANDIR) + + pppstats: $(PPPSTATSRCS) +- $(CC) $(CFLAGS) -o pppstats pppstats.c $(LIBS) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o pppstats pppstats.c $(LIBS) + + clean: + rm -f pppstats *~ #* core diff --git a/network/connection/ppp/files/gentoo/04_all_mpls.patch b/network/connection/ppp/files/gentoo/04_all_mpls.patch new file mode 100644 index 0000000000..86d79ef557 --- /dev/null +++ b/network/connection/ppp/files/gentoo/04_all_mpls.patch @@ -0,0 +1,431 @@ +diff -Nur ppp-2.4.5.orig/pppd/main.c ppp-2.4.5/pppd/main.c +--- ppp-2.4.5.orig/pppd/main.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/main.c 2010-08-08 09:30:23.000000000 +0200 +@@ -96,6 +96,9 @@ + #include "fsm.h" + #include "lcp.h" + #include "ipcp.h" ++ ++#include "mplscp.h" ++ + #ifdef INET6 + #include "ipv6cp.h" + #endif +@@ -283,6 +286,7 @@ + &cbcp_protent, + #endif + &ipcp_protent, ++ &mplscp_protent, + #ifdef INET6 + &ipv6cp_protent, + #endif +diff -Nur ppp-2.4.5.orig/pppd/Makefile.linux ppp-2.4.5/pppd/Makefile.linux +--- ppp-2.4.5.orig/pppd/Makefile.linux 2010-08-08 09:22:22.000000000 +0200 ++++ ppp-2.4.5/pppd/Makefile.linux 2010-08-08 09:31:43.000000000 +0200 +@@ -13,16 +13,16 @@ + + PPPDSRCS = main.c magic.c fsm.c lcp.c ipcp.c upap.c chap-new.c md5.c ccp.c \ + ecp.c ipxcp.c auth.c options.c sys-linux.c md4.c chap_ms.c \ +- demand.c utils.c tty.c eap.c chap-md5.c session.c ++ demand.c utils.c tty.c eap.c chap-md5.c session.c mplscp.c + + HEADERS = ccp.h session.h chap-new.h ecp.h fsm.h ipcp.h \ + ipxcp.h lcp.h magic.h md5.h patchlevel.h pathnames.h pppd.h \ +- upap.h eap.h ++ upap.h eap.h mplscp.h + + MANPAGES = pppd.8 + PPPDOBJS = main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o \ + ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o \ +- eap.o chap-md5.o session.o ++ eap.o chap-md5.o session.o mplscp.o + + # + # include dependencies if present +diff -Nur ppp-2.4.5.orig/pppd/mplscp.c ppp-2.4.5/pppd/mplscp.c +--- ppp-2.4.5.orig/pppd/mplscp.c 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5/pppd/mplscp.c 2010-08-08 09:30:23.000000000 +0200 +@@ -0,0 +1,371 @@ ++ ++/* MPLSCP - Serge.Krier@advalvas.be (C) 2001 */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "pppd.h" ++#include "fsm.h" ++#include "mplscp.h" ++ ++ ++/* local vars */ ++/* static int mplscp_is_up; */ /* have called np_up() */ ++ ++/* ++ * Callbacks for fsm code. (CI = Configuration Information) ++ */ ++static void mplscp_resetci __P((fsm *)); /* Reset our CI */ ++static int mplscp_cilen __P((fsm *)); /* Return length of our CI */ ++static void mplscp_addci __P((fsm *, u_char *, int *)); /* Add our CI */ ++static int mplscp_ackci __P((fsm *, u_char *, int)); /* Peer ack'd our CI */ ++static int mplscp_nakci __P((fsm *, u_char *, int)); /* Peer nak'd our CI */ ++static int mplscp_rejci __P((fsm *, u_char *, int)); /* Peer rej'd our CI */ ++static int mplscp_reqci __P((fsm *, u_char *, int *, int)); /* Rcv CI */ ++static void mplscp_up __P((fsm *)); /* We're UP */ ++static void mplscp_down __P((fsm *)); /* We're DOWN */ ++static void mplscp_finished __P((fsm *)); /* Don't need lower layer */ ++ ++fsm mplscp_fsm[NUM_PPP]; /* MPLSCP fsm structure */ ++ ++static fsm_callbacks mplscp_callbacks = { /* MPLSCP callback routines */ ++ mplscp_resetci, /* Reset our Configuration Information */ ++ mplscp_cilen, /* Length of our Configuration Information */ ++ mplscp_addci, /* Add our Configuration Information */ ++ mplscp_ackci, /* ACK our Configuration Information */ ++ mplscp_nakci, /* NAK our Configuration Information */ ++ mplscp_rejci, /* Reject our Configuration Information */ ++ mplscp_reqci, /* Request peer's Configuration Information */ ++ mplscp_up, /* Called when fsm reaches OPENED state */ ++ mplscp_down, /* Called when fsm leaves OPENED state */ ++ NULL, /* Called when we want the lower layer up */ ++ mplscp_finished, /* Called when we want the lower layer down */ ++ NULL, /* Called when Protocol-Reject received */ ++ NULL, /* Retransmission is necessary */ ++ NULL, /* Called to handle protocol-specific codes */ ++ "MPLSCP" /* String name of protocol */ ++}; ++ ++static option_t mplscp_option_list[] = { ++ { "mpls", o_bool, &mplscp_protent.enabled_flag, ++ "Enable MPLSCP (and MPLS)", 1 }, ++ { NULL } }; ++ ++/* ++ * Protocol entry points from main code. ++ */ ++ ++static void mplscp_init __P((int)); ++static void mplscp_open __P((int)); ++static void mplscp_close __P((int, char *)); ++static void mplscp_lowerup __P((int)); ++static void mplscp_lowerdown __P((int)); ++static void mplscp_input __P((int, u_char *, int)); ++static void mplscp_protrej __P((int)); ++static int mplscp_printpkt __P((u_char *, int, ++ void (*) __P((void *, char *, ...)), void *)); ++ ++struct protent mplscp_protent = { ++ PPP_MPLSCP, ++ mplscp_init, ++ mplscp_input, ++ mplscp_protrej, ++ mplscp_lowerup, ++ mplscp_lowerdown, ++ mplscp_open, ++ mplscp_close, ++ mplscp_printpkt, ++ NULL, ++ 0, /* MPLS not enabled by default */ ++ "MPLSCP", ++ "MPLS", ++ mplscp_option_list, ++ NULL, ++ NULL, ++ NULL ++}; ++ ++/* ++ * mplscp_init - Initialize MPLSCP. ++ */ ++static void ++mplscp_init(int unit) { ++ ++ fsm *f = &mplscp_fsm[unit]; ++ ++ f->unit = unit; ++ f->protocol = PPP_MPLSCP; ++ f->callbacks = &mplscp_callbacks; ++ fsm_init(&mplscp_fsm[unit]); ++ ++} ++ ++/* ++ * mplscp_open - MPLSCP is allowed to come up. ++ */ ++static void ++mplscp_open(int unit) { ++ ++ fsm_open(&mplscp_fsm[unit]); ++ ++} ++ ++/* ++ * mplscp_close - Take MPLSCP down. ++ */ ++static void ++mplscp_close(int unit, char *reason) { ++ ++ fsm_close(&mplscp_fsm[unit], reason); ++ ++} ++ ++/* ++ * mplscp_lowerup - The lower layer is up. ++ */ ++static void ++mplscp_lowerup(int unit) { ++ ++ fsm_lowerup(&mplscp_fsm[unit]); ++} ++ ++/* ++ * mplscp_lowerdown - The lower layer is down. ++ */ ++static void ++mplscp_lowerdown(int unit) { ++ ++ fsm_lowerdown(&mplscp_fsm[unit]); ++} ++ ++/* ++ * mplscp_input - Input MPLSCP packet. ++ */ ++static void ++mplscp_input(int unit, u_char *p, int len) { ++ ++ fsm_input(&mplscp_fsm[unit], p, len); ++} ++ ++/* ++ * mplscp_protrej - A Protocol-Reject was received for MPLSCP. ++ * Pretend the lower layer went down, so we shut up. ++ */ ++static void ++mplscp_protrej(int unit) { ++ ++ fsm_lowerdown(&mplscp_fsm[unit]); ++} ++ ++/* ++ * mplscp_resetci - Reset our CI. ++ * Called by fsm_sconfreq, Send Configure Request. ++ */ ++static void ++mplscp_resetci(fsm *f) { ++ ++ return; ++} ++ ++/* ++ * mplscp_cilen - Return length of our CI. ++ * Called by fsm_sconfreq, Send Configure Request. ++ */ ++static int ++mplscp_cilen(fsm *f) { ++ ++ return 0; ++} ++ ++/* ++ * mplscp_addci - Add our desired CIs to a packet. ++ * Called by fsm_sconfreq, Send Configure Request. ++ */ ++static void ++mplscp_addci(fsm *f, u_char *ucp, int *lenp) { ++ ++} ++ ++/* ++ * ipcp_ackci - Ack our CIs. ++ * Called by fsm_rconfack, Receive Configure ACK. ++ * ++ * Returns: ++ * 0 - Ack was bad. ++ * 1 - Ack was good. ++ */ ++static int ++mplscp_ackci(fsm *f, u_char *p, int len) { ++ ++ return 1; ++ ++} ++ ++/* ++ * mplscp_nakci - Peer has sent a NAK for some of our CIs. ++ * This should not modify any state if the Nak is bad ++ * or if MPLSCP is in the OPENED state. ++ * Calback from fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject. ++ * ++ * Returns: ++ * 0 - Nak was bad. ++ * 1 - Nak was good. ++ */ ++static int ++mplscp_nakci(fsm *f, u_char *p, int len) { ++ ++ return 1; ++} ++ ++/* ++ * MPLSVP_rejci - Reject some of our CIs. ++ * Callback from fsm_rconfnakrej. ++ */ ++static int ++mplscp_rejci(fsm *f, u_char *p, int len) { ++ ++ return 1; ++ ++} ++ ++/* ++ * mplscp_reqci - Check the peer's requested CIs and send appropriate response. ++ * Callback from fsm_rconfreq, Receive Configure Request ++ * ++ * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified ++ * appropriately. If reject_if_disagree is non-zero, doesn't return ++ * CONFNAK; returns CONFREJ if it can't return CONFACK. ++ */ ++static int ++mplscp_reqci(fsm *f, u_char *inp, int *len, int reject_if_disagree) { ++ ++ ++ int rc = CONFACK; /* Final packet return code */ ++ ++ PUTCHAR(CONFACK,inp); ++ ++ return rc; ++ ++} ++ ++static void ++mplscp_up(fsm *f) { ++ ++ sifnpmode(f->unit, PPP_MPLS_UC, NPMODE_PASS); ++ /* sifnpmode(f->unit, PPP_MPLS_MC, NPMODE_PASS);*/ ++ ++ np_up(f->unit, PPP_MPLS_UC); ++ /* np_up(f->unit, PPP_MPLS_MC);*/ ++ /* ipcp_is_up = 1;*/ ++ ++ ++#if 1 ++ printf("MPLSCP is OPENED\n"); ++#endif ++ ++} ++ ++static void ++mplscp_down(fsm *f) { ++ ++ sifnpmode(f->unit, PPP_MPLS_UC, NPMODE_DROP); ++ /* sifnpmode(f->unit, PPP_MPLS_MC, NPMODE_DROP);*/ ++ ++ sifdown(f->unit); ++ ++#if 1 ++ printf("MPLSCP is CLOSED\n"); ++#endif ++ ++ ++} ++ ++static void ++mplscp_finished(fsm *f) { ++ ++ np_finished(f->unit, PPP_MPLS_UC); ++ /* np_finished(f->unit, PPP_MPLS_MC);*/ ++ ++} ++ ++/* ++ * mpls_printpkt - print the contents of an MPLSCP packet. ++ */ ++static char *mplscp_codenames[] = { ++ "ConfReq", "ConfAck", "ConfNak", "ConfRej", ++ "TermReq", "TermAck", "CodeRej" ++}; ++ ++static int ++mplscp_printpkt(u_char *p, int plen, ++ void (*printer) __P((void *, char *, ...)), ++ void *arg) { ++ ++ int code, id, len, olen; ++ u_char *pstart, *optend; ++ ++ if (plen < HEADERLEN) ++ return 0; ++ pstart = p; ++ GETCHAR(code, p); ++ GETCHAR(id, p); ++ GETSHORT(len, p); ++ if (len < HEADERLEN || len > plen) ++ return 0; ++ ++ if (code >= 1 && code <= sizeof(mplscp_codenames) / sizeof(char *)) ++ printer(arg, " %s", mplscp_codenames[code-1]); ++ else ++ printer(arg, " code=0x%x", code); ++ printer(arg, " id=0x%x", id); ++ len -= HEADERLEN; ++ switch (code) { ++ case CONFREQ: ++ case CONFACK: ++ case CONFNAK: ++ case CONFREJ: ++ /* print option list */ ++ while (len >= 2) { ++ GETCHAR(code, p); ++ GETCHAR(olen, p); ++ p -= 2; ++ if (olen < 2 || olen > len) { ++ break; ++ } ++ printer(arg, " <"); ++ len -= olen; ++ optend = p + olen; ++ while (p < optend) { ++ GETCHAR(code, p); ++ printer(arg, " %.2x", code); ++ } ++ printer(arg, ">"); ++ } ++ break; ++ ++ case TERMACK: ++ case TERMREQ: ++ if (len > 0 && *p >= ' ' && *p < 0x7f) { ++ printer(arg, " "); ++ print_string((char *)p, len, printer, arg); ++ p += len; ++ len = 0; ++ } ++ break; ++ } ++ ++ /* print the rest of the bytes in the packet */ ++ for (; len > 0; --len) { ++ GETCHAR(code, p); ++ printer(arg, " %.2x", code); ++ } ++ ++ return p - pstart; ++ ++} +diff -Nur ppp-2.4.5.orig/pppd/mplscp.h ppp-2.4.5/pppd/mplscp.h +--- ppp-2.4.5.orig/pppd/mplscp.h 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5/pppd/mplscp.h 2010-08-08 09:30:23.000000000 +0200 +@@ -0,0 +1,8 @@ ++ ++/* MPLSCP - Serge.Krier@advalvas.be (C) 2001 */ ++ ++#define PPP_MPLSCP 0x8281 ++#define PPP_MPLS_UC 0x0281 ++#define PPP_MPLS_MC 0x0283 ++ ++extern struct protent mplscp_protent; diff --git a/network/connection/ppp/files/gentoo/06_all_killaddr-smarter.patch b/network/connection/ppp/files/gentoo/06_all_killaddr-smarter.patch new file mode 100644 index 0000000000..6d12dd9edf --- /dev/null +++ b/network/connection/ppp/files/gentoo/06_all_killaddr-smarter.patch @@ -0,0 +1,134 @@ +diff -Nur ppp-2.4.5.orig/pppd/options.c ppp-2.4.5/pppd/options.c +--- ppp-2.4.5.orig/pppd/options.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/options.c 2010-08-08 09:43:47.000000000 +0200 +@@ -100,6 +100,9 @@ + char user[MAXNAMELEN]; /* Username for PAP */ + char passwd[MAXSECRETLEN]; /* Password for PAP */ + bool persist = 0; /* Reopen link after it goes down */ ++bool killoldaddr = 0; /* If our IP is reassigned on ++ reconnect, kill active TCP ++ connections using the old IP. */ + char our_name[MAXNAMELEN]; /* Our name for authentication purposes */ + bool demand = 0; /* do dial-on-demand */ + char *ipparam = NULL; /* Extra parameter for ip up/down scripts */ +@@ -231,6 +234,11 @@ + { "demand", o_bool, &demand, + "Dial on demand", OPT_INITONLY | 1, &persist }, + ++ { "killoldaddr", o_bool, &killoldaddr, ++ "Kill connections from an old source address", 1}, ++ { "nokilloldaddr", o_bool,&killoldaddr, ++ "Don't kill connections from an old source address" }, ++ + { "--version", o_special_noarg, (void *)showversion, + "Show version number" }, + { "--help", o_special_noarg, (void *)showhelp, +diff -Nur ppp-2.4.5.orig/pppd/pppd.h ppp-2.4.5/pppd/pppd.h +--- ppp-2.4.5.orig/pppd/pppd.h 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/pppd.h 2010-08-08 09:43:47.000000000 +0200 +@@ -298,6 +298,9 @@ + extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */ + extern bool explicit_remote;/* remote_name specified with remotename opt */ + extern bool demand; /* Do dial-on-demand */ ++extern bool killoldaddr; /* If our IP is reassigned on ++ reconnect, kill active TCP ++ connections using the old IP. */ + extern char *ipparam; /* Extra parameter for ip up/down scripts */ + extern bool cryptpap; /* Others' PAP passwords are encrypted */ + extern int idle_time_limit;/* Shut down link if idle for this long */ +diff -Nur ppp-2.4.5.orig/pppd/sys-linux.c ppp-2.4.5/pppd/sys-linux.c +--- ppp-2.4.5.orig/pppd/sys-linux.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/sys-linux.c 2010-08-08 09:43:47.000000000 +0200 +@@ -165,6 +165,10 @@ + + #endif /* INET6 */ + ++#ifndef SIOCKILLADDR ++#define SIOCKILLADDR 0x8939 ++#endif ++ + /* We can get an EIO error on an ioctl if the modem has hung up */ + #define ok_error(num) ((num)==EIO) + +@@ -209,6 +213,7 @@ + static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */ + static char proxy_arp_dev[16]; /* Device for proxy arp entry */ + static u_int32_t our_old_addr; /* for detecting address changes */ ++static u_int32_t our_current_addr; + static int dynaddr_set; /* 1 if ip_dynaddr set */ + static int looped; /* 1 if using loop */ + static int link_mtu; /* mtu for the link (not bundle) */ +@@ -537,6 +542,27 @@ + return -1; + } + ++static void do_killaddr(u_int32_t oldaddr) ++{ ++ struct ifreq ifr; ++ ++ memset(&ifr,0,sizeof ifr); ++ ++ SET_SA_FAMILY (ifr.ifr_addr, AF_INET); ++ SET_SA_FAMILY (ifr.ifr_dstaddr, AF_INET); ++ SET_SA_FAMILY (ifr.ifr_netmask, AF_INET); ++ ++ SIN_ADDR(ifr.ifr_addr) = oldaddr; ++ ++ strlcpy(ifr.ifr_name, ifname, sizeof (ifr.ifr_name)); ++ ++ if(ioctl(sock_fd,SIOCKILLADDR,&ifr) < 0) { ++ if (!ok_error (errno)) ++ error("ioctl(SIOCKILLADDR): %m(%d)", errno); ++ return; ++ } ++} ++ + /******************************************************************** + * + * tty_disestablish_ppp - Restore the serial port to normal operation. +@@ -2385,21 +2411,29 @@ + } + } + +- /* set ip_dynaddr in demand mode if address changes */ +- if (demand && tune_kernel && !dynaddr_set +- && our_old_addr && our_old_addr != our_adr) { ++ if(persist && our_old_addr && our_old_addr != our_adr) { ++ ++ if(killoldaddr) ++ do_killaddr(our_old_addr); ++ ++ ++ /* set ip_dynaddr in persist mode if address changes */ ++ if (tune_kernel && !dynaddr_set) { + /* set ip_dynaddr if possible */ + char *path; + int fd; + + path = path_to_procfs("/sys/net/ipv4/ip_dynaddr"); + if (path != 0 && (fd = open(path, O_WRONLY)) >= 0) { +- if (write(fd, "1", 1) != 1) +- error("Couldn't enable dynamic IP addressing: %m"); +- close(fd); ++ if (write(fd, "1", 1) != 1) ++ error("Couldn't enable dynamic IP addressing: %m"); ++ close(fd); + } + dynaddr_set = 1; /* only 1 attempt */ ++ } + } ++ ++ our_current_addr = our_adr; + our_old_addr = 0; + + return 1; +@@ -2455,7 +2489,8 @@ + } + + our_old_addr = our_adr; +- ++ our_current_addr = 0; ++ + return 1; + } + diff --git a/network/connection/ppp/files/gentoo/08_all_wait-children.patch b/network/connection/ppp/files/gentoo/08_all_wait-children.patch new file mode 100644 index 0000000000..3a204ea4ed --- /dev/null +++ b/network/connection/ppp/files/gentoo/08_all_wait-children.patch @@ -0,0 +1,77 @@ +diff -Nur ppp-2.4.5.orig/pppd/main.c ppp-2.4.5/pppd/main.c +--- ppp-2.4.5.orig/pppd/main.c 2010-08-08 09:34:32.000000000 +0200 ++++ ppp-2.4.5/pppd/main.c 2010-08-08 09:46:00.000000000 +0200 +@@ -249,6 +249,7 @@ + static void forget_child __P((int pid, int status)); + static int reap_kids __P((void)); + static void childwait_end __P((void *)); ++static void wait_children __P((void)); + + #ifdef USE_TDB + static void update_db_entry __P((void)); +@@ -580,25 +581,11 @@ + if (!persist) + break; + } ++ ++ wait_children(); + } + +- /* Wait for scripts to finish */ +- reap_kids(); +- if (n_children > 0) { +- if (child_wait > 0) +- TIMEOUT(childwait_end, NULL, child_wait); +- if (debug) { +- struct subprocess *chp; +- dbglog("Waiting for %d child processes...", n_children); +- for (chp = children; chp != NULL; chp = chp->next) +- dbglog(" script %s, pid %d", chp->prog, chp->pid); +- } +- while (n_children > 0 && !childwait_done) { +- handle_events(); +- if (kill_link && !childwait_done) +- childwait_end(NULL); +- } +- } ++ wait_children(); + + die(status); + return 0; +@@ -1794,6 +1781,36 @@ + } + + /* ++ * wait_children - wait for scripts to finish. ++ * if child_wait is 0, wait indefinitely. ++ * else, kill'em all at the end of timeout ++ */ ++static void ++wait_children() ++{ ++ /* Wait for scripts to finish */ ++ reap_kids(); ++ if (n_children > 0) { ++ childwait_done = 0; ++ if (child_wait > 0) ++ TIMEOUT(childwait_end, NULL, child_wait); ++ if (debug) { ++ struct subprocess *chp; ++ dbglog("Waiting for %d child processes...", n_children); ++ for (chp = children; chp != NULL; chp = chp->next) ++ dbglog(" script %s, pid %d", chp->prog, chp->pid); ++ } ++ while (n_children > 0 && !childwait_done) { ++ handle_events(); ++ if (asked_to_quit && !childwait_done) ++ childwait_end(NULL); ++ } ++ if (child_wait > 0) ++ UNTIMEOUT(childwait_end, NULL); ++ } ++} ++ ++/* + * childwait_end - we got fed up waiting for the child processes to + * exit, send them all a SIGTERM. + */ diff --git a/network/connection/ppp/files/gentoo/10_all_defaultgateway.patch b/network/connection/ppp/files/gentoo/10_all_defaultgateway.patch new file mode 100644 index 0000000000..799e852c66 --- /dev/null +++ b/network/connection/ppp/files/gentoo/10_all_defaultgateway.patch @@ -0,0 +1,90 @@ +This patch reverses revision 1.114 of the pppd/sys-linux.c file. +The default gateway is needed by the openswan's %defaultroute. +diff -Nur ppp-2.4.5.orig/pppd/sys-linux.c ppp-2.4.5/pppd/sys-linux.c +--- ppp-2.4.5.orig/pppd/sys-linux.c 2010-08-08 09:44:29.000000000 +0200 ++++ ppp-2.4.5/pppd/sys-linux.c 2010-08-08 09:53:02.000000000 +0200 +@@ -209,7 +209,7 @@ + static unsigned char inbuf[512]; /* buffer for chars read from loopback */ + + static int if_is_up; /* Interface has been marked up */ +-static int have_default_route; /* Gateway for default route added */ ++static u_int32_t default_route_gateway; /* Gateway for default route added */ + static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */ + static char proxy_arp_dev[16]; /* Device for proxy arp entry */ + static u_int32_t our_old_addr; /* for detecting address changes */ +@@ -346,8 +346,8 @@ + /* + * Delete any routes through the device. + */ +- if (have_default_route) +- cifdefaultroute(0, 0, 0); ++ if (default_route_gateway != 0) ++ cifdefaultroute(0, 0, default_route_gateway); + + if (has_proxy_arp) + cifproxyarp(0, proxy_arp_addr); +@@ -1639,17 +1639,17 @@ + struct rtentry rt; + + if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) { +- if (rt.rt_flags & RTF_GATEWAY) +- error("not replacing existing default route via %I", +- SIN_ADDR(rt.rt_gateway)); +- else +- error("not replacing existing default route through %s", +- rt.rt_dev); ++ u_int32_t old_gateway = SIN_ADDR(rt.rt_gateway); ++ ++ if (old_gateway != gateway) ++ error("not replacing existing default route to %s [%I]", ++ rt.rt_dev, old_gateway); + return 0; + } + +- memset (&rt, 0, sizeof (rt)); +- SET_SA_FAMILY (rt.rt_dst, AF_INET); ++ memset (&rt, '\0', sizeof (rt)); ++ SET_SA_FAMILY (rt.rt_dst, AF_INET); ++ SET_SA_FAMILY (rt.rt_gateway, AF_INET); + + rt.rt_dev = ifname; + +@@ -1658,14 +1658,16 @@ + SIN_ADDR(rt.rt_genmask) = 0L; + } + +- rt.rt_flags = RTF_UP; ++ SIN_ADDR(rt.rt_gateway) = gateway; ++ ++ rt.rt_flags = RTF_UP | RTF_GATEWAY; + if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) { + if ( ! ok_error ( errno )) + error("default route ioctl(SIOCADDRT): %m"); + return 0; + } + +- have_default_route = 1; ++ default_route_gateway = gateway; + return 1; + } + +@@ -1678,7 +1680,7 @@ + { + struct rtentry rt; + +- have_default_route = 0; ++ default_route_gateway = 0; + + memset (&rt, '\0', sizeof (rt)); + SET_SA_FAMILY (rt.rt_dst, AF_INET); +@@ -1691,7 +1693,9 @@ + SIN_ADDR(rt.rt_genmask) = 0L; + } + +- rt.rt_flags = RTF_UP; ++ SIN_ADDR(rt.rt_gateway) = gateway; ++ ++ rt.rt_flags = RTF_UP | RTF_GATEWAY; + if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) { + if (still_ppp()) { + if ( ! ok_error ( errno )) diff --git a/network/connection/ppp/files/gentoo/12_all_linkpidfile.patch b/network/connection/ppp/files/gentoo/12_all_linkpidfile.patch new file mode 100644 index 0000000000..887597aeef --- /dev/null +++ b/network/connection/ppp/files/gentoo/12_all_linkpidfile.patch @@ -0,0 +1,97 @@ +diff -Nru ppp-2.4.5.orig/pppd/auth.c ppp-2.4.5/pppd/auth.c +--- ppp-2.4.5.orig/pppd/auth.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/auth.c 2010-08-08 09:57:01.000000000 +0200 +@@ -637,7 +637,7 @@ + * we delete its pid file. + */ + if (!doing_multilink && !demand) +- remove_pidfiles(); ++ remove_pidfile(pidfilename); + + /* + * If we may want to bring the link up again, transfer +diff -Nru ppp-2.4.5.orig/pppd/main.c ppp-2.4.5/pppd/main.c +--- ppp-2.4.5.orig/pppd/main.c 2010-08-08 09:46:42.000000000 +0200 ++++ ppp-2.4.5/pppd/main.c 2010-08-08 09:57:01.000000000 +0200 +@@ -134,7 +134,7 @@ + + char *progname; /* Name of this program */ + char hostname[MAXNAMELEN]; /* Our hostname */ +-static char pidfilename[MAXPATHLEN]; /* name of pid file */ ++char pidfilename[MAXPATHLEN]; /* name of pid file */ + static char linkpidfile[MAXPATHLEN]; /* name of linkname pid file */ + char ppp_devnam[MAXPATHLEN]; /* name of PPP tty (maybe ttypx) */ + uid_t uid; /* Our real user-id */ +@@ -245,6 +245,7 @@ + static void toggle_debug __P((int)); + static void open_ccp __P((int)); + static void bad_signal __P((int)); ++static void remove_pidfilenames __P((void)); + static void holdoff_end __P((void *)); + static void forget_child __P((int pid, int status)); + static int reap_kids __P((void)); +@@ -835,16 +836,24 @@ + } + + /* +- * remove_pidfile - remove our pid files ++ * remove_pidfile - remove one of the 2 pidfiles (pidfilename or linkpidfile) + */ +-void remove_pidfiles() ++void ++remove_pidfile(filename) ++ char* filename; + { +- if (pidfilename[0] != 0 && unlink(pidfilename) < 0 && errno != ENOENT) +- warn("unable to delete pid file %s: %m", pidfilename); +- pidfilename[0] = 0; +- if (linkpidfile[0] != 0 && unlink(linkpidfile) < 0 && errno != ENOENT) +- warn("unable to delete pid file %s: %m", linkpidfile); +- linkpidfile[0] = 0; ++ if (filename[0] != 0 && unlink(filename) < 0 && errno != ENOENT) ++ warn("unable to delete pid file %s: %m", filename); ++ filename[0] = 0; ++} ++ ++/* ++ * remove_pidfiles - remove our pid files ++ */ ++static void remove_pidfiles() ++{ ++ remove_pidfile(pidfilename); ++ remove_pidfile(linkpidfile); + } + + /* +diff -Nru ppp-2.4.5.orig/pppd/multilink.c ppp-2.4.5/pppd/multilink.c +--- ppp-2.4.5.orig/pppd/multilink.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/multilink.c 2010-08-08 09:57:01.000000000 +0200 +@@ -267,7 +267,7 @@ + notice("Connection terminated."); + print_link_stats(); + if (!demand) { +- remove_pidfiles(); ++ remove_pidfile(pidfilename); + script_unsetenv("IFNAME"); + } + +diff -Nru ppp-2.4.5.orig/pppd/pppd.h ppp-2.4.5/pppd/pppd.h +--- ppp-2.4.5.orig/pppd/pppd.h 2010-08-08 09:44:29.000000000 +0200 ++++ ppp-2.4.5/pppd/pppd.h 2010-08-08 09:57:01.000000000 +0200 +@@ -214,6 +214,7 @@ + extern int ifunit; /* Interface unit number */ + extern char ifname[]; /* Interface name */ + extern char hostname[]; /* Our hostname */ ++extern char pidfilename[]; /* name of pid file */ + extern u_char outpacket_buf[]; /* Buffer for outgoing packets */ + extern int devfd; /* fd of underlying device */ + extern int fd_ppp; /* fd for talking PPP */ +@@ -497,7 +498,7 @@ + int ppp_send_config __P((int, int, u_int32_t, int, int)); + int ppp_recv_config __P((int, int, u_int32_t, int, int)); + const char *protocol_name __P((int)); +-void remove_pidfiles __P((void)); ++void remove_pidfile __P((char *)); + void lock_db __P((void)); + void unlock_db __P((void)); + diff --git a/network/connection/ppp/files/gentoo/16_all_auth-fail.patch b/network/connection/ppp/files/gentoo/16_all_auth-fail.patch new file mode 100644 index 0000000000..92487d17e7 --- /dev/null +++ b/network/connection/ppp/files/gentoo/16_all_auth-fail.patch @@ -0,0 +1,141 @@ +diff -Nru ppp-2.4.5.orig/pppd/auth.c ppp-2.4.5/pppd/auth.c +--- ppp-2.4.5.orig/pppd/auth.c 2010-08-08 09:58:19.000000000 +0200 ++++ ppp-2.4.5/pppd/auth.c 2010-08-08 10:06:06.000000000 +0200 +@@ -259,7 +259,7 @@ + struct wordlist **, struct wordlist **, + char *, int)); + static void free_wordlist __P((struct wordlist *)); +-static void auth_script __P((char *)); ++static void auth_script __P((char *, int)); + static void auth_script_done __P((void *)); + static void set_allowed_addrs __P((int, struct wordlist *, struct wordlist *)); + static int some_ip_ok __P((struct wordlist *)); +@@ -690,7 +690,7 @@ + if (auth_script_state == s_up && auth_script_pid == 0) { + update_link_stats(unit); + auth_script_state = s_down; +- auth_script(_PATH_AUTHDOWN); ++ auth_script(_PATH_AUTHDOWN, 0); + } + } + if (!doing_multilink) { +@@ -822,7 +822,7 @@ + auth_state = s_up; + if (auth_script_state == s_down && auth_script_pid == 0) { + auth_script_state = s_up; +- auth_script(_PATH_AUTHUP); ++ auth_script(_PATH_AUTHUP, 0); + } + } + +@@ -923,6 +923,7 @@ + * Authentication failure: take the link down + */ + status = EXIT_PEER_AUTH_FAILED; ++ auth_script(_PATH_AUTHFAIL, 1); + lcp_close(unit, "Authentication failed"); + } + +@@ -1001,6 +1002,7 @@ + * authentication secrets. + */ + status = EXIT_AUTH_TOPEER_FAILED; ++ auth_script(_PATH_AUTHFAIL, 1); + lcp_close(unit, "Failed to authenticate ourselves to peer"); + } + +@@ -1233,6 +1235,8 @@ + if (user[0] == 0 && !explicit_user) + strlcpy(user, our_name, sizeof(user)); + ++ script_setenv("LOCALNAME", user, 0); ++ + /* + * If we have a default route, require the peer to authenticate + * unless the noauth option was given or the real user is root. +@@ -2314,13 +2318,13 @@ + case s_up: + if (auth_state == s_down) { + auth_script_state = s_down; +- auth_script(_PATH_AUTHDOWN); ++ auth_script(_PATH_AUTHDOWN, 0); + } + break; + case s_down: + if (auth_state == s_up) { + auth_script_state = s_up; +- auth_script(_PATH_AUTHUP); ++ auth_script(_PATH_AUTHUP, 0); + } + break; + } +@@ -2331,8 +2335,9 @@ + * interface-name peer-name real-user tty speed + */ + static void +-auth_script(script) ++auth_script(script, wait) + char *script; ++ int wait; + { + char strspeed[32]; + struct passwd *pw; +@@ -2356,5 +2361,8 @@ + argv[5] = strspeed; + argv[6] = NULL; + +- auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL, 0); ++ if (wait) ++ run_program(script, argv, 0, NULL, NULL, 1); ++ else ++ auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL, 0); + } +diff -Nru ppp-2.4.5.orig/pppd/pathnames.h ppp-2.4.5/pppd/pathnames.h +--- ppp-2.4.5.orig/pppd/pathnames.h 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/pathnames.h 2010-08-08 10:06:06.000000000 +0200 +@@ -27,6 +27,7 @@ + #define _PATH_IPPREUP _ROOT_PATH "/etc/ppp/ip-pre-up" + #define _PATH_AUTHUP _ROOT_PATH "/etc/ppp/auth-up" + #define _PATH_AUTHDOWN _ROOT_PATH "/etc/ppp/auth-down" ++#define _PATH_AUTHFAIL _ROOT_PATH "/etc/ppp/auth-fail" + #define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options." + #define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors" + #define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/" +diff -Nru ppp-2.4.5.orig/pppd/pppd.8 ppp-2.4.5/pppd/pppd.8 +--- ppp-2.4.5.orig/pppd/pppd.8 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/pppd.8 2010-08-08 10:06:06.000000000 +0200 +@@ -1553,8 +1553,8 @@ + Pppd invokes scripts at various stages in its processing which can be + used to perform site-specific ancillary processing. These scripts are + usually shell scripts, but could be executable code files instead. +-Pppd does not wait for the scripts to finish (except for the ip-pre-up +-script). The scripts are ++Pppd does not wait for the scripts to finish (except for the ip-pre-up, ++and auth-fail scripts). The scripts are + executed as root (with the real and effective user-id set to 0), so + that they can do things such as update routing tables or run + privileged daemons. Be careful that the contents of these scripts do +@@ -1582,6 +1582,11 @@ + The authenticated name of the peer. This is only set if the peer + authenticates itself. + .TP ++.B LOCALNAME ++The username passed to the user option of the pppd daemon. This is ++handy to identify which account was used for authentication purposes ++when multiple accounts are available. ++.TP + .B SPEED + The baud rate of the tty device. + .TP +@@ -1634,6 +1639,11 @@ + /etc/ppp/auth\-up was previously executed. It is executed in the same + manner with the same parameters as /etc/ppp/auth\-up. + .TP ++.B /etc/ppp/auth\-fail ++A program or script which is executed should authentication fail. pppd ++waits for this script to finish. It is executed in the same manner, with ++the same parameters as /etc/ppp/auth\-up. ++.TP + .B /etc/ppp/ip\-pre\-up + A program or script which is executed just before the ppp network + interface is brought up. It is executed with the same parameters as diff --git a/network/connection/ppp/files/gentoo/18_all_defaultmetric.patch b/network/connection/ppp/files/gentoo/18_all_defaultmetric.patch new file mode 100644 index 0000000000..c71bf324ba --- /dev/null +++ b/network/connection/ppp/files/gentoo/18_all_defaultmetric.patch @@ -0,0 +1,108 @@ +diff -Nru ppp-2.4.5.orig/pppd/options.c ppp-2.4.5/pppd/options.c +--- ppp-2.4.5.orig/pppd/options.c 2010-08-08 09:44:29.000000000 +0200 ++++ ppp-2.4.5/pppd/options.c 2010-08-08 10:07:50.000000000 +0200 +@@ -94,6 +94,7 @@ + int kdebugflag = 0; /* Tell kernel to print debug messages */ + int default_device = 1; /* Using /dev/tty or equivalent */ + char devnam[MAXPATHLEN]; /* Device name */ ++int defaultmetric = 0; /* Metric of the default route */ + bool nodetach = 0; /* Don't detach from controlling tty */ + bool updetach = 0; /* Detach once link is up */ + int maxconnect = 0; /* Maximum connect time */ +@@ -289,6 +290,10 @@ + "Number of seconds to wait for child processes at exit", + OPT_PRIO }, + ++ { "defaultmetric", o_int, &defaultmetric, ++ "The metric of the default route", ++ OPT_LIMITS, 0, 32766 }, ++ + #ifdef HAVE_MULTILINK + { "multilink", o_bool, &multilink, + "Enable multilink operation", OPT_PRIO | 1 }, +diff -Nru ppp-2.4.5.orig/pppd/pppd.8 ppp-2.4.5/pppd/pppd.8 +--- ppp-2.4.5.orig/pppd/pppd.8 2010-08-08 10:06:57.000000000 +0200 ++++ ppp-2.4.5/pppd/pppd.8 2010-08-08 10:07:50.000000000 +0200 +@@ -121,6 +121,9 @@ + This entry is removed when the PPP connection is broken. This option + is privileged if the \fInodefaultroute\fR option has been specified. + .TP ++.B defaultmetric \fIn ++The metric of the default route configured by pppd; default is 0. ++.TP + .B disconnect \fIscript + Execute the command specified by \fIscript\fR, by passing it to a + shell, after +diff -Nru ppp-2.4.5.orig/pppd/pppd.h ppp-2.4.5/pppd/pppd.h +--- ppp-2.4.5.orig/pppd/pppd.h 2010-08-08 09:58:19.000000000 +0200 ++++ ppp-2.4.5/pppd/pppd.h 2010-08-08 10:07:50.000000000 +0200 +@@ -276,6 +276,7 @@ + extern int kdebugflag; /* Tell kernel to print debug messages */ + extern int default_device; /* Using /dev/tty or equivalent */ + extern char devnam[MAXPATHLEN]; /* Device name */ ++extern int defaultmetric; /* Metric of the default route */ + extern int crtscts; /* Use hardware flow control */ + extern bool modem; /* Use modem control lines */ + extern int inspeed; /* Input/Output speed requested */ +diff -Nru ppp-2.4.5.orig/pppd/sys-linux.c ppp-2.4.5/pppd/sys-linux.c +--- ppp-2.4.5.orig/pppd/sys-linux.c 2010-08-08 09:53:56.000000000 +0200 ++++ ppp-2.4.5/pppd/sys-linux.c 2010-08-08 10:07:50.000000000 +0200 +@@ -1465,7 +1465,7 @@ + FILE *route_fd = (FILE *) 0; + static char route_buffer[512]; + static int route_dev_col, route_dest_col, route_gw_col; +-static int route_flags_col, route_mask_col; ++static int route_flags_col, route_mask_col, route_metric_col; + static int route_num_cols; + + static int open_route_table (void); +@@ -1508,6 +1508,7 @@ + route_dest_col = 1; + route_gw_col = 2; + route_flags_col = 3; ++ route_metric_col = 6; + route_mask_col = 7; + route_num_cols = 8; + +@@ -1527,6 +1528,8 @@ + route_gw_col = col; + else if (strcasecmp(q, "flags") == 0) + route_flags_col = col; ++ else if (strcasecmp(q, "metric") == 0) ++ route_metric_col = col; + else if (strcasecmp(q, "mask") == 0) + route_mask_col = col; + else +@@ -1569,6 +1572,7 @@ + + rt->rt_flags = (short) strtoul(cols[route_flags_col], NULL, 16); + rt->rt_dev = cols[route_dev_col]; ++ rt->rt_metric = (short) strtoul(cols[route_metric_col], NULL, 16); + + return 1; + } +@@ -1591,6 +1595,8 @@ + + if (kernel_version > KVERSION(2,1,0) && SIN_ADDR(rt->rt_genmask) != 0) + continue; ++ if (rt->rt_metric != defaultmetric) /* consider only routes with the same metric */ ++ continue; + if (SIN_ADDR(rt->rt_dst) == 0L) { + result = 1; + break; +@@ -1661,6 +1667,7 @@ + SIN_ADDR(rt.rt_gateway) = gateway; + + rt.rt_flags = RTF_UP | RTF_GATEWAY; ++ rt.rt_metric = defaultmetric + 1; /* +1 for binary compatibility */ + if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) { + if ( ! ok_error ( errno )) + error("default route ioctl(SIOCADDRT): %m"); +@@ -1696,6 +1703,7 @@ + SIN_ADDR(rt.rt_gateway) = gateway; + + rt.rt_flags = RTF_UP | RTF_GATEWAY; ++ rt.rt_metric = defaultmetric + 1; /* +1 for binary compatibility */ + if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) { + if (still_ppp()) { + if ( ! ok_error ( errno )) diff --git a/network/connection/ppp/files/gentoo/20_all_dev-ppp.patch b/network/connection/ppp/files/gentoo/20_all_dev-ppp.patch new file mode 100644 index 0000000000..eff3e37f08 --- /dev/null +++ b/network/connection/ppp/files/gentoo/20_all_dev-ppp.patch @@ -0,0 +1,20 @@ +--- ppp-2.4.6/pppd/sys-linux.c ++++ ppp-2.4.6/pppd/sys-linux.c +@@ -2031,6 +2031,17 @@ + kernel_version = KVERSION(osmaj, osmin, ospatch); + + fd = open("/dev/ppp", O_RDWR); ++ if (fd < 0) { ++ /* try making it and see if that helps. */ ++ if (errno == ENOENT && mknod("/dev/ppp", S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP, ++ makedev(108, 0)) >= 0) { ++ fd = open("/dev/ppp", O_RDWR); ++ if (fd >= 0) ++ info("Created /dev/ppp device node"); ++ else ++ unlink("/dev/ppp"); /* didn't work, undo the mknod */ ++ } ++ } + if (fd >= 0) { + new_style_driver = 1; + diff --git a/network/connection/ppp/files/gentoo/24_all_passwordfd-read-early.patch b/network/connection/ppp/files/gentoo/24_all_passwordfd-read-early.patch new file mode 100644 index 0000000000..f64f09366f --- /dev/null +++ b/network/connection/ppp/files/gentoo/24_all_passwordfd-read-early.patch @@ -0,0 +1,85 @@ +diff -Nru ppp-2.4.5.orig/pppd/plugins/passwordfd.c ppp-2.4.5/pppd/plugins/passwordfd.c +--- ppp-2.4.5.orig/pppd/plugins/passwordfd.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/plugins/passwordfd.c 2010-08-08 10:41:39.000000000 +0200 +@@ -16,11 +16,11 @@ + + char pppd_version[] = VERSION; + +-static int passwdfd = -1; + static char save_passwd[MAXSECRETLEN]; + ++static int readpassword __P((char **)); + static option_t options[] = { +- { "passwordfd", o_int, &passwdfd, ++ { "passwordfd", o_special, (void *)readpassword, + "Receive password on this file descriptor" }, + { NULL } + }; +@@ -30,43 +30,39 @@ + return 1; + } + +-static int pwfd_passwd (char *user, char *passwd) ++static int readpassword(char **argv) + { +- int readgood, red; +- +- if (passwdfd == -1) +- return -1; +- +- if (passwd == NULL) +- return 1; +- +- if (passwdfd == -2) { +- strcpy (passwd, save_passwd); +- return 1; ++ char *arg = *argv; ++ int passwdfd = -1; ++ int chunk, len; ++ ++ if (sscanf(arg, "%d", &passwdfd) != 1 || passwdfd < 0) ++ { ++ error ("\"%s\" is not a valid file descriptor number", arg); ++ return 0; + } + +- readgood = 0; ++ len = 0; + do { +- red = read (passwdfd, passwd + readgood, MAXSECRETLEN - 1 - readgood); +- if (red == 0) +- break; +- if (red < 0) { +- error ("Can't read secret from fd\n"); +- readgood = -1; ++ chunk = read (passwdfd, save_passwd + len, MAXSECRETLEN - 1 - len); ++ if (chunk == 0) + break; ++ if (chunk < 0) { ++ error ("Can't read secret from fd %d", passwdfd); ++ return 0; + } +- readgood += red; +- } while (readgood < MAXSECRETLEN - 1); +- ++ len += chunk; ++ } while (len < MAXSECRETLEN - 1); ++ save_passwd[len] = 0; + close (passwdfd); + +- if (readgood < 0) +- return 0; +- +- passwd[readgood] = 0; +- strcpy (save_passwd, passwd); +- passwdfd = -2; ++ return 1; ++} + ++static int pwfd_passwd (char *user, char *passwd) ++{ ++ if (passwd != NULL) ++ strcpy (passwd, save_passwd); + return 1; + } + diff --git a/network/connection/ppp/files/gentoo/26_all_pppd-usepeerwins.patch b/network/connection/ppp/files/gentoo/26_all_pppd-usepeerwins.patch new file mode 100644 index 0000000000..d66fbe0b1c --- /dev/null +++ b/network/connection/ppp/files/gentoo/26_all_pppd-usepeerwins.patch @@ -0,0 +1,256 @@ +--- ppp-2.4.6/pppd/ipcp.c ++++ ppp-2.4.6/pppd/ipcp.c +@@ -91,6 +91,7 @@ + static int default_route_set[NUM_PPP]; /* Have set up a default route */ + static int proxy_arp_set[NUM_PPP]; /* Have created proxy arp entry */ + static bool usepeerdns; /* Ask peer for DNS addrs */ ++static bool usepeerwins; /* Ask peer for WINS addrs */ + static int ipcp_is_up; /* have called np_up() */ + static int ipcp_is_open; /* haven't called np_finished() */ + static bool ask_for_local; /* request our address from peer */ +@@ -210,6 +211,9 @@ + { "usepeerdns", o_bool, &usepeerdns, + "Ask peer for DNS address(es)", 1 }, + ++ { "usepeerwins", o_bool, &usepeerwins, ++ "Ask peer for WINS address(es)", 1 }, ++ + { "netmask", o_special, (void *)setnetmask, + "set netmask", OPT_PRIO | OPT_A2STRVAL | OPT_STATIC, netmask_str }, + +@@ -703,6 +707,8 @@ + wo->accept_remote = 1; + wo->req_dns1 = usepeerdns; /* Request DNS addresses from the peer */ + wo->req_dns2 = usepeerdns; ++ wo->req_wins1 = usepeerwins; /* Request WINS addresses from the peer */ ++ wo->req_wins2 = usepeerwins; + *go = *wo; + if (!ask_for_local) + go->ouraddr = 0; +@@ -755,8 +761,8 @@ + LENCIADDR(go->neg_addr) + + LENCIDNS(go->req_dns1) + + LENCIDNS(go->req_dns2) + +- LENCIWINS(go->winsaddr[0]) + +- LENCIWINS(go->winsaddr[1])) ; ++ LENCIWINS(go->req_wins1) + ++ LENCIWINS(go->req_wins2)) ; + } + + +@@ -830,8 +836,8 @@ + neg = 0; \ + } + +-#define ADDCIWINS(opt, addr) \ +- if (addr) { \ ++#define ADDCIWINS(opt, neg, addr) \ ++ if (neg) { \ + if (len >= CILEN_ADDR) { \ + u_int32_t l; \ + PUTCHAR(opt, ucp); \ +@@ -840,7 +846,7 @@ + PUTLONG(l, ucp); \ + len -= CILEN_ADDR; \ + } else \ +- addr = 0; \ ++ neg = 0; \ + } + + ADDCIADDRS(CI_ADDRS, !go->neg_addr && go->old_addrs, go->ouraddr, +@@ -855,9 +861,9 @@ + + ADDCIDNS(CI_MS_DNS2, go->req_dns2, go->dnsaddr[1]); + +- ADDCIWINS(CI_MS_WINS1, go->winsaddr[0]); ++ ADDCIWINS(CI_MS_WINS1, go->req_wins1, go->winsaddr[0]); + +- ADDCIWINS(CI_MS_WINS2, go->winsaddr[1]); ++ ADDCIWINS(CI_MS_WINS2, go->req_wins2, go->winsaddr[1]); + + *lenp -= len; + } +@@ -962,8 +968,8 @@ + goto bad; \ + } + +-#define ACKCIWINS(opt, addr) \ +- if (addr) { \ ++#define ACKCIWINS(opt, neg, addr) \ ++ if (neg) { \ + u_int32_t l; \ + if ((len -= CILEN_ADDR) < 0) \ + goto bad; \ +@@ -989,9 +995,9 @@ + + ACKCIDNS(CI_MS_DNS2, go->req_dns2, go->dnsaddr[1]); + +- ACKCIWINS(CI_MS_WINS1, go->winsaddr[0]); ++ ACKCIWINS(CI_MS_WINS1, go->req_wins1, go->winsaddr[0]); + +- ACKCIWINS(CI_MS_WINS2, go->winsaddr[1]); ++ ACKCIWINS(CI_MS_WINS2, go->req_wins2, go->winsaddr[1]); + + /* + * If there are any remaining CIs, then this packet is bad. +@@ -1026,7 +1032,7 @@ + u_char cimaxslotindex, cicflag; + u_char citype, cilen, *next; + u_short cishort; +- u_int32_t ciaddr1, ciaddr2, l, cidnsaddr; ++ u_int32_t ciaddr1, ciaddr2, l, cidnsaddr, ciwinsaddr; + ipcp_options no; /* options we've seen Naks for */ + ipcp_options try; /* options to request next time */ + +@@ -1091,6 +1097,19 @@ + code \ + } + ++#define NAKCIWINS(opt, neg, code) \ ++ if (go->neg && \ ++ ((cilen = p[1]) == CILEN_ADDR) && \ ++ len >= cilen && \ ++ p[0] == opt) { \ ++ len -= cilen; \ ++ INCPTR(2, p); \ ++ GETLONG(l, p); \ ++ ciwinsaddr = htonl(l); \ ++ no.neg = 1; \ ++ code \ ++ } ++ + /* + * Accept the peer's idea of {our,his} address, if different + * from our idea, only if the accept_{local,remote} flag is set. +@@ -1167,6 +1186,22 @@ + } + ); + ++ NAKCIWINS(CI_MS_WINS1, req_wins1, ++ if (treat_as_reject) { ++ try.req_wins1 = 0; ++ } else { ++ try.winsaddr[0] = ciwinsaddr; ++ } ++ ); ++ ++ NAKCIWINS(CI_MS_WINS2, req_wins2, ++ if (treat_as_reject) { ++ try.req_wins2 = 0; ++ } else { ++ try.winsaddr[1] = ciwinsaddr; ++ } ++ ); ++ + /* + * There may be remaining CIs, if the peer is requesting negotiation + * on an option that we didn't include in our request packet. +@@ -1259,7 +1294,6 @@ + return 0; + } + +- + /* + * ipcp_rejci - Reject some of our CIs. + * Callback from fsm_rconfnakrej. +@@ -1357,8 +1391,8 @@ + try.neg = 0; \ + } + +-#define REJCIWINS(opt, addr) \ +- if (addr && \ ++#define REJCIWINS(opt, neg, addr) \ ++ if (go->neg && \ + ((cilen = p[1]) == CILEN_ADDR) && \ + len >= cilen && \ + p[0] == opt) { \ +@@ -1370,7 +1404,7 @@ + /* Check rejected value. */ \ + if (cilong != addr) \ + goto bad; \ +- try.winsaddr[opt == CI_MS_WINS2] = 0; \ ++ try.neg = 0; \ + } + + REJCIADDRS(CI_ADDRS, !go->neg_addr && go->old_addrs, +@@ -1385,9 +1419,9 @@ + + REJCIDNS(CI_MS_DNS2, req_dns2, go->dnsaddr[1]); + +- REJCIWINS(CI_MS_WINS1, go->winsaddr[0]); ++ REJCIWINS(CI_MS_WINS1, req_wins1, go->winsaddr[0]); + +- REJCIWINS(CI_MS_WINS2, go->winsaddr[1]); ++ REJCIWINS(CI_MS_WINS2, req_wins2, go->winsaddr[1]); + + /* + * If there are any remaining CIs, then this packet is bad. +@@ -1581,7 +1615,7 @@ + /* Microsoft primary or secondary WINS request */ + d = citype == CI_MS_WINS2; + +- /* If we do not have a DNS address then we cannot send it */ ++ /* If we do not have a WINS address then we cannot send it */ + if (ao->winsaddr[d] == 0 || + cilen != CILEN_ADDR) { /* Check CI length */ + orc = CONFREJ; /* Reject CI */ +@@ -1830,6 +1864,13 @@ + create_resolv(go->dnsaddr[0], go->dnsaddr[1]); + } + ++ if (go->winsaddr[0]) ++ script_setenv("WINS1", ip_ntoa(go->winsaddr[0]), 0); ++ if (go->winsaddr[1]) ++ script_setenv("WINS2", ip_ntoa(go->winsaddr[1]), 0); ++ if (usepeerwins && (go->winsaddr[0] || go->winsaddr[1])) ++ script_setenv("USEPEERWINS", "1", 0); ++ + /* + * Check that the peer is allowed to use the IP address it wants. + */ +--- ppp-2.4.6/pppd/ipcp.h ++++ ppp-2.4.6/pppd/ipcp.h +@@ -77,6 +77,8 @@ + bool accept_remote; /* accept peer's value for hisaddr */ + bool req_dns1; /* Ask peer to send primary DNS address? */ + bool req_dns2; /* Ask peer to send secondary DNS address? */ ++ bool req_wins1; /* Ask peer to send primary WINS address? */ ++ bool req_wins2; /* Ask peer to send secondary WINS address? */ + int vj_protocol; /* protocol value to use in VJ option */ + int maxslotindex; /* values for RFC1332 VJ compression neg. */ + bool cflag; +--- ppp-2.4.6/pppd/pppd.8 ++++ ppp-2.4.6/pppd/pppd.8 +@@ -1102,6 +1102,16 @@ + /etc/ppp/resolv.conf file containing one or two nameserver lines with + the address(es) supplied by the peer. + .TP ++.B usepeerwins ++Ask the peer for up to 2 WINS server addresses. The addresses supplied ++by the peer (if any) are passed to the /etc/ppp/ip\-up script in the ++environment variables WINS1 and WINS2, and the environment variable ++USEPEERWINS will be set to 1. ++.LP ++Please note that some modems (like the Huawei E220) requires this option in ++order to avoid a race condition that results in the incorrect DNS servers ++being assigned. ++.TP + .B user \fIname + Sets the name used for authenticating the local system to the peer to + \fIname\fR. +@@ -1650,6 +1660,15 @@ + If the peer supplies DNS server addresses, this variable is set to the + second DNS server address supplied (whether or not the usepeerdns + option was given). ++.TP ++.B WINS1 ++If the peer supplies WINS server addresses, this variable is set to the ++first WINS server address supplied. ++.TP ++.B WINS2 ++If the peer supplies WINS server addresses, this variable is set to the ++second WINS server address supplied. ++.P + .P + Pppd invokes the following scripts, if they exist. It is not an error + if they don't exist. diff --git a/network/connection/ppp/files/gentoo/28_all_connect-errors.patch b/network/connection/ppp/files/gentoo/28_all_connect-errors.patch new file mode 100644 index 0000000000..f3b7b18cb6 --- /dev/null +++ b/network/connection/ppp/files/gentoo/28_all_connect-errors.patch @@ -0,0 +1,12 @@ +diff -Nru ppp-2.4.5.orig/pppd/pathnames.h ppp-2.4.5/pppd/pathnames.h +--- ppp-2.4.5.orig/pppd/pathnames.h 2010-08-08 10:06:57.000000000 +0200 ++++ ppp-2.4.5/pppd/pathnames.h 2010-08-08 10:53:51.000000000 +0200 +@@ -29,7 +29,7 @@ + #define _PATH_AUTHDOWN _ROOT_PATH "/etc/ppp/auth-down" + #define _PATH_AUTHFAIL _ROOT_PATH "/etc/ppp/auth-fail" + #define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options." +-#define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors" ++#define _PATH_CONNERRS _ROOT_PATH "/var/log/ppp-connect-errors" + #define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/" + #define _PATH_RESOLV _ROOT_PATH "/etc/ppp/resolv.conf" + diff --git a/network/connection/ppp/files/gentoo/30_all_Makefile.patch b/network/connection/ppp/files/gentoo/30_all_Makefile.patch new file mode 100644 index 0000000000..e3a406240e --- /dev/null +++ b/network/connection/ppp/files/gentoo/30_all_Makefile.patch @@ -0,0 +1,37 @@ +Ensure that the build process aborts if there is an error in one of +the plugin subdirectories. + +2010-09-01 Martin von Gagern + +References: +http://bugs.gentoo.org/334727 + +Index: ppp-2.4.5/pppd/plugins/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/pppd/plugins/Makefile.linux ++++ ppp-2.4.5/pppd/plugins/Makefile.linux +@@ -20,7 +20,7 @@ include .depend + endif + + all: $(PLUGINS) +- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all; done ++ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d all || exit $?; done + + %.so: %.c + $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^ +@@ -30,12 +30,12 @@ VERSION = $(shell awk -F '"' '/VERSION/ + install: $(PLUGINS) + $(INSTALL) -d $(LIBDIR) + $(INSTALL) $? $(LIBDIR) +- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d install; done ++ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d install || exit $?; done + + clean: + rm -f *.o *.so *.a +- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d clean; done ++ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d clean || exit $?; done + + depend: + $(CPP) -M $(CFLAGS) *.c >.depend +- for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d depend; done ++ for d in $(SUBDIRS); do $(MAKE) $(MFLAGS) -C $$d depend || exit $?; done diff --git a/network/connection/ppp/files/gentoo/32_all_pado-timeout.patch b/network/connection/ppp/files/gentoo/32_all_pado-timeout.patch new file mode 100644 index 0000000000..72f1adbb1e --- /dev/null +++ b/network/connection/ppp/files/gentoo/32_all_pado-timeout.patch @@ -0,0 +1,254 @@ +--- ppp-2.4.6/pppd/plugins/rp-pppoe/discovery.c ++++ ppp-2.4.6/pppd/plugins/rp-pppoe/discovery.c +@@ -39,6 +39,7 @@ + #endif + + #include ++#include + + /* Calculate time remaining until *exp, return 0 if now >= *exp */ + static int time_left(struct timeval *diff, struct timeval *exp) +@@ -251,6 +252,80 @@ + } + + /*********************************************************************** ++*%FUNCTION: recvPacketForMe ++*%ARGUMENTS: ++* packet -- output parameter ++* len -- output parameter length ++* conn -- connection ++* start -- operation startup timestamp ++* timeout -- how long to wait (in seconds) ++*%RETURNS: ++* -1: error ++* 0: timed out ++* 1: packet received ++*%DESCRIPTION: ++* receive and filter junk packets ++***********************************************************************/ ++ ++static int ++recvPacketForMe(PPPoEPacket *packet, int *len, PPPoEConnection *conn, time_t start, int timeout) ++{ ++ fd_set readable; ++ int r; ++ struct timeval tv; ++ time_t now; ++ int time_remain; ++ ++ do { ++ time(&now); ++ time_remain = timeout - (int)difftime(now, start); ++ if (time_remain <= 0) return 0; /* Timed out */ ++ ++ if (BPF_BUFFER_IS_EMPTY) { ++ tv.tv_sec = time_remain; ++ tv.tv_usec = 0; ++ ++ FD_ZERO(&readable); ++ FD_SET(conn->discoverySocket, &readable); ++ ++ r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv); ++ if (r < 0) ++ { ++ if (errno == EINTR) ++ { ++ continue; /* interrupted, so retry */ ++ }else ++ { ++ error("pppoe: recvPacketForMe: select: %m"); ++ return -1; ++ } ++ } ++ ++ if (r == 0) return 0; /* Timed out */ ++ } ++ ++ /* Get the packet */ ++ receivePacket(conn->discoverySocket, packet, len); ++ ++ /* Check length */ ++ if (ntohs(packet->length) + HDR_SIZE > *len) { ++ error("Bogus PPPoE length field (%u)", ++ (unsigned int) ntohs(packet->length)); ++ continue; ++ } ++ ++#ifdef USE_BPF ++ /* If it's not a Discovery packet, loop again */ ++ if (etherType(&packet) != Eth_PPPOE_Discovery) continue; ++#endif ++ /* If it's not for us, loop again */ ++ }while ( ! packetIsForMe(conn, packet)); ++ ++ return 1; ++} ++ ++ ++/*********************************************************************** + *%FUNCTION: sendPADI + *%ARGUMENTS: + * conn -- PPPoEConnection structure +@@ -344,13 +419,12 @@ + void + waitForPADO(PPPoEConnection *conn, int timeout) + { +- fd_set readable; + int r; +- struct timeval tv; + struct timeval expire_at; + + PPPoEPacket packet; + int len; ++ time_t start; + + struct PacketCriteria pc; + pc.conn = conn; +@@ -367,43 +441,10 @@ + } + expire_at.tv_sec += timeout; + ++ time(&start); + do { +- if (BPF_BUFFER_IS_EMPTY) { +- if (!time_left(&tv, &expire_at)) +- return; /* Timed out */ +- +- FD_ZERO(&readable); +- FD_SET(conn->discoverySocket, &readable); +- +- while(1) { +- r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv); +- if (r >= 0 || errno != EINTR) break; +- } +- if (r < 0) { +- error("select (waitForPADO): %m"); +- return; +- } +- if (r == 0) +- return; /* Timed out */ +- } +- +- /* Get the packet */ +- receivePacket(conn->discoverySocket, &packet, &len); +- +- /* Check length */ +- if (ntohs(packet.length) + HDR_SIZE > len) { +- error("Bogus PPPoE length field (%u)", +- (unsigned int) ntohs(packet.length)); +- continue; +- } +- +-#ifdef USE_BPF +- /* If it's not a Discovery packet, loop again */ +- if (etherType(&packet) != Eth_PPPOE_Discovery) continue; +-#endif +- +- /* If it's not for us, loop again */ +- if (!packetIsForMe(conn, &packet)) continue; ++ r = recvPacketForMe(&packet, &len, conn, start, timeout); ++ if (r<=0) return; /* Timed out or error */ + + if (packet.code == CODE_PADO) { + if (NOT_UNICAST(packet.ethHdr.h_source)) { +@@ -537,13 +578,12 @@ + static void + waitForPADS(PPPoEConnection *conn, int timeout) + { +- fd_set readable; + int r; +- struct timeval tv; + struct timeval expire_at; + + PPPoEPacket packet; + int len; ++ time_t start; + + if (gettimeofday(&expire_at, NULL) < 0) { + error("gettimeofday (waitForPADS): %m"); +@@ -551,48 +591,15 @@ + } + expire_at.tv_sec += timeout; + ++ time(&start); + conn->error = 0; + do { +- if (BPF_BUFFER_IS_EMPTY) { +- if (!time_left(&tv, &expire_at)) +- return; /* Timed out */ +- +- FD_ZERO(&readable); +- FD_SET(conn->discoverySocket, &readable); +- +- while(1) { +- r = select(conn->discoverySocket+1, &readable, NULL, NULL, &tv); +- if (r >= 0 || errno != EINTR) break; +- } +- if (r < 0) { +- error("select (waitForPADS): %m"); +- return; +- } +- if (r == 0) +- return; /* Timed out */ +- } +- +- /* Get the packet */ +- receivePacket(conn->discoverySocket, &packet, &len); +- +- /* Check length */ +- if (ntohs(packet.length) + HDR_SIZE > len) { +- error("Bogus PPPoE length field (%u)", +- (unsigned int) ntohs(packet.length)); +- continue; +- } +- +-#ifdef USE_BPF +- /* If it's not a Discovery packet, loop again */ +- if (etherType(&packet) != Eth_PPPOE_Discovery) continue; +-#endif ++ r = recvPacketForMe(&packet, &len, conn, start, timeout); ++ if (r<=0) return; /* Timed out or error */ + + /* If it's not from the AC, it's not for me */ + if (memcmp(packet.ethHdr.h_source, conn->peerEth, ETH_ALEN)) continue; + +- /* If it's not for us, loop again */ +- if (!packetIsForMe(conn, &packet)) continue; +- + /* Is it PADS? */ + if (packet.code == CODE_PADS) { + /* Parse for goodies */ +--- ppp-2.4.6/pppd/plugins/rp-pppoe/pppoe-discovery.c ++++ ppp-2.4.6/pppd/plugins/rp-pppoe/pppoe-discovery.c +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + + #include "pppoe.h" + +@@ -513,6 +514,8 @@ + struct timeval tv; + PPPoEPacket packet; + int len; ++ time_t start, now; ++ int time_remain; + + struct PacketCriteria pc; + pc.conn = conn; +@@ -522,9 +525,13 @@ + pc.seenServiceName = 0; + conn->error = 0; + ++ time(&start); + do { ++ time(&now); ++ time_remain = timeout - (int)difftime(now, start); ++ if (time_remain <= 0) return; /* Timed out */ + if (BPF_BUFFER_IS_EMPTY) { +- tv.tv_sec = timeout; ++ tv.tv_sec = time_remain; + tv.tv_usec = 0; + + FD_ZERO(&readable); diff --git a/network/connection/ppp/files/gentoo/34_all_lcp-echo-adaptive.patch b/network/connection/ppp/files/gentoo/34_all_lcp-echo-adaptive.patch new file mode 100644 index 0000000000..b1549deb38 --- /dev/null +++ b/network/connection/ppp/files/gentoo/34_all_lcp-echo-adaptive.patch @@ -0,0 +1,58 @@ +diff -Nru ppp-2.4.5.orig/pppd/lcp.c ppp-2.4.5/pppd/lcp.c +--- ppp-2.4.5.orig/pppd/lcp.c 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/lcp.c 2010-11-27 10:46:26.000000000 +0100 +@@ -73,6 +73,7 @@ + */ + int lcp_echo_interval = 0; /* Interval between LCP echo-requests */ + int lcp_echo_fails = 0; /* Tolerance to unanswered echo-requests */ ++bool lcp_echo_adaptive = 0; /* request echo only if the link was idle */ + bool lax_recv = 0; /* accept control chars in asyncmap */ + bool noendpoint = 0; /* don't send/accept endpoint discriminator */ + +@@ -151,6 +152,8 @@ + OPT_PRIO }, + { "lcp-echo-interval", o_int, &lcp_echo_interval, + "Set time in seconds between LCP echo requests", OPT_PRIO }, ++ { "lcp-echo-adaptive", o_bool, &lcp_echo_adaptive, ++ "Suppress LCP echo requests if traffic was received", 1 }, + { "lcp-restart", o_int, &lcp_fsm[0].timeouttime, + "Set time in seconds between LCP retransmissions", OPT_PRIO }, + { "lcp-max-terminate", o_int, &lcp_fsm[0].maxtermtransmits, +@@ -2322,6 +2325,22 @@ + } + + /* ++ * If adaptive echos have been enabled, only send the echo request if ++ * no traffic was received since the last one. ++ */ ++ if (lcp_echo_adaptive) { ++ static unsigned int last_pkts_in = 0; ++ ++ update_link_stats(f->unit); ++ link_stats_valid = 0; ++ ++ if (link_stats.pkts_in != last_pkts_in) { ++ last_pkts_in = link_stats.pkts_in; ++ return; ++ } ++ } ++ ++ /* + * Make and send the echo request frame. + */ + if (f->state == OPENED) { +diff -Nru ppp-2.4.5.orig/pppd/pppd.8 ppp-2.4.5/pppd/pppd.8 +--- ppp-2.4.5.orig/pppd/pppd.8 2009-11-16 23:26:07.000000000 +0100 ++++ ppp-2.4.5/pppd/pppd.8 2010-11-27 10:44:58.000000000 +0100 +@@ -549,6 +549,11 @@ + dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to + 1) in demand mode if the local address changes. + .TP ++.B lcp\-echo\-adaptive ++If this option is used with the \fIlcp\-echo\-failure\fR option then ++pppd will send LCP echo\-request frames only if no traffic was received ++from the peer since the last echo\-request was sent. ++.TP + .B lcp\-echo\-failure \fIn + If this option is given, pppd will presume the peer to be dead + if \fIn\fR LCP echo\-requests are sent without receiving a valid LCP diff --git a/network/connection/ppp/files/gentoo/80_all_eaptls-mppe-0.994-gentoo.patch b/network/connection/ppp/files/gentoo/80_all_eaptls-mppe-0.994-gentoo.patch new file mode 100644 index 0000000000..3735e0c264 --- /dev/null +++ b/network/connection/ppp/files/gentoo/80_all_eaptls-mppe-0.994-gentoo.patch @@ -0,0 +1,2898 @@ +Taken from http://www.nikhef.nl/~janjust/ppp/ and modified to fit for +ppp-2.4.6 + +--- ppp-2.4.6/etc.ppp/eaptls-client ++++ ppp-2.4.6/etc.ppp/eaptls-client +@@ -0,0 +1,10 @@ ++# Parameters for authentication using EAP-TLS (client) ++ ++# client name (can be *) ++# server name (can be *) ++# client certificate file (required) ++# server certificate file (optional, if unused put '-') ++# CA certificate file (required) ++# client private key file (required) ++ ++#client server /root/cert/client.crt - /root/cert/ca.crt /root/cert/client.key +--- ppp-2.4.6/etc.ppp/eaptls-server ++++ ppp-2.4.6/etc.ppp/eaptls-server +@@ -0,0 +1,11 @@ ++# Parameters for authentication using EAP-TLS (server) ++ ++# client name (can be *) ++# server name (can be *) ++# client certificate file (optional, if unused put '-') ++# server certificate file (required) ++# CA certificate file (required) ++# server private key file (required) ++# allowed addresses (required, can be *) ++ ++#client server - /root/cert/server.crt /root/cert/ca.crt /root/cert/server.key 192.168.1.0/24 +--- ppp-2.4.6/etc.ppp/openssl.cnf ++++ ppp-2.4.6/etc.ppp/openssl.cnf +@@ -0,0 +1,14 @@ ++openssl_conf = openssl_def ++ ++[ openssl_def ] ++engines = engine_section ++ ++[ engine_section ] ++pkcs11 = pkcs11_section ++ ++[ pkcs11_section ] ++engine_id = pkcs11 ++dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so ++MODULE_PATH = /usr/lib64/libeTPkcs11.so ++init = 0 ++ +--- ppp-2.4.6/linux/Makefile.top ++++ ppp-2.4.6/linux/Makefile.top +@@ -26,7 +26,7 @@ + cd pppdump; $(MAKE) $(MFLAGS) install + + install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \ +- $(ETCDIR)/chap-secrets ++ $(ETCDIR)/chap-secrets $(ETCDIR)/eaptls-server $(ETCDIR)/eaptls-client + + install-devel: + cd pppd; $(MAKE) $(MFLAGS) install-devel +@@ -37,6 +37,10 @@ + $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@ + $(ETCDIR)/chap-secrets: + $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@ ++$(ETCDIR)/eaptls-server: ++ $(INSTALL) -c -m 600 etc.ppp/eaptls-server $@ ++$(ETCDIR)/eaptls-client: ++ $(INSTALL) -c -m 600 etc.ppp/eaptls-client $@ + + $(BINDIR): + $(INSTALL) -d -m 755 $@ +--- ppp-2.4.6/pppd/auth.c ++++ ppp-2.4.6/pppd/auth.c +@@ -109,6 +109,9 @@ + #include "upap.h" + #include "chap-new.h" + #include "eap.h" ++#ifdef USE_EAPTLS ++#include "eap-tls.h" ++#endif + #ifdef CBCP_SUPPORT + #include "cbcp.h" + #endif +@@ -183,6 +186,11 @@ + /* Hook for a plugin to get the CHAP password for authenticating us */ + int (*chap_passwd_hook) __P((char *user, char *passwd)) = NULL; + ++#ifdef USE_EAPTLS ++/* Hook for a plugin to get the EAP-TLS password for authenticating us */ ++int (*eaptls_passwd_hook) __P((char *user, char *passwd)) = NULL; ++#endif ++ + /* Hook for a plugin to say whether it is OK if the peer + refuses to authenticate. */ + int (*null_auth_hook) __P((struct wordlist **paddrs, +@@ -238,6 +246,13 @@ + bool explicit_user = 0; /* Set if "user" option supplied */ + bool explicit_passwd = 0; /* Set if "password" option supplied */ + char remote_name[MAXNAMELEN]; /* Peer's name for authentication */ ++#ifdef USE_EAPTLS ++char *cacert_file = NULL; /* CA certificate file (pem format) */ ++char *cert_file = NULL; /* client certificate file (pem format) */ ++char *privkey_file = NULL; /* client private key file (pem format) */ ++char *crl_dir = NULL; /* directory containing CRL files */ ++bool need_peer_eap = 0; /* Require peer to authenticate us */ ++#endif + + static char *uafname; /* name of most recent +ua file */ + +@@ -254,6 +269,19 @@ + static int have_chap_secret __P((char *, char *, int, int *)); + static int have_srp_secret __P((char *client, char *server, int need_ip, + int *lacks_ipp)); ++ ++#ifdef USE_EAPTLS ++static int have_eaptls_secret_server ++__P((char *client, char *server, int need_ip, int *lacks_ipp)); ++static int have_eaptls_secret_client __P((char *client, char *server)); ++static int scan_authfile_eaptls __P((FILE * f, char *client, char *server, ++ char *cli_cert, char *serv_cert, ++ char *ca_cert, char *pk, ++ struct wordlist ** addrs, ++ struct wordlist ** opts, ++ char *filename, int flags)); ++#endif ++ + static int ip_addr_check __P((u_int32_t, struct permitted_ip *)); + static int scan_authfile __P((FILE *, char *, char *, char *, + struct wordlist **, struct wordlist **, +@@ -401,6 +429,14 @@ + "Set telephone number(s) which are allowed to connect", + OPT_PRIV | OPT_A2LIST }, + ++#ifdef USE_EAPTLS ++ { "ca", o_string, &cacert_file, "EAP-TLS CA certificate in PEM format" }, ++ { "cert", o_string, &cert_file, "EAP-TLS client certificate in PEM format" }, ++ { "key", o_string, &privkey_file, "EAP-TLS client private key in PEM format" }, ++ { "crl-dir", o_string, &crl_dir, "Use CRLs in directory" }, ++ { "need-peer-eap", o_bool, &need_peer_eap, ++ "Require the peer to authenticate us", 1 }, ++#endif /* USE_EAPTLS */ + { NULL } + }; + +@@ -730,6 +766,9 @@ + lcp_options *wo = &lcp_wantoptions[unit]; + lcp_options *go = &lcp_gotoptions[unit]; + lcp_options *ho = &lcp_hisoptions[unit]; ++#ifdef USE_EAPTLS ++ lcp_options *ao = &lcp_allowoptions[unit]; ++#endif + int i; + struct protent *protp; + +@@ -764,6 +803,22 @@ + } + } + ++#ifdef USE_EAPTLS ++ if (need_peer_eap && !ao->neg_eap) { ++ warn("eap required to authenticate us but no suitable secrets"); ++ lcp_close(unit, "couldn't negotiate eap"); ++ status = EXIT_AUTH_TOPEER_FAILED; ++ return; ++ } ++ ++ if (need_peer_eap && !ho->neg_eap) { ++ warn("peer doesn't want to authenticate us with eap"); ++ lcp_close(unit, "couldn't negotiate eap"); ++ status = EXIT_PEER_AUTH_FAILED; ++ return; ++ } ++#endif ++ + new_phase(PHASE_AUTHENTICATE); + auth = 0; + if (go->neg_eap) { +@@ -1277,6 +1332,15 @@ + our_name, 1, &lacks_ip); + } + ++#ifdef USE_EAPTLS ++ if (!can_auth && wo->neg_eap) { ++ can_auth = ++ have_eaptls_secret_server((explicit_remote ? remote_name : ++ NULL), our_name, 1, &lacks_ip); ++ ++ } ++#endif ++ + if (auth_required && !can_auth && noauth_addrs == NULL) { + if (default_auth) { + option_error( +@@ -1331,7 +1395,11 @@ + passwd[0] != 0 || + (hadchap == 1 || (hadchap == -1 && have_chap_secret(user, + (explicit_remote? remote_name: NULL), 0, NULL))) || +- have_srp_secret(user, (explicit_remote? remote_name: NULL), 0, NULL)); ++ have_srp_secret(user, (explicit_remote? remote_name: NULL), 0, NULL) ++#ifdef USE_EAPTLS ++ || have_eaptls_secret_client(user, (explicit_remote? remote_name: NULL)) ++#endif ++ ); + + hadchap = -1; + if (go->neg_upap && !uselogin && !have_pap_secret(NULL)) +@@ -1346,8 +1414,14 @@ + !have_chap_secret((explicit_remote? remote_name: NULL), our_name, + 1, NULL))) && + !have_srp_secret((explicit_remote? remote_name: NULL), our_name, 1, +- NULL)) ++ NULL) ++#ifdef USE_EAPTLS ++ && !have_eaptls_secret_server((explicit_remote? remote_name: NULL), ++ our_name, 1, NULL) ++#endif ++ ) + go->neg_eap = 0; ++ + } + + +@@ -1707,6 +1781,7 @@ + } + + ++ + /* + * get_secret - open the CHAP secret file and return the secret + * for authenticating the given client on the given server. +@@ -2359,3 +2434,335 @@ + + auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL, 0); + } ++ ++ ++#ifdef USE_EAPTLS ++static int ++have_eaptls_secret_server(client, server, need_ip, lacks_ipp) ++ char *client; ++ char *server; ++ int need_ip; ++ int *lacks_ipp; ++{ ++ FILE *f; ++ int ret; ++ char *filename; ++ struct wordlist *addrs; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ ++ filename = _PATH_EAPTLSSERVFILE; ++ f = fopen(filename, "r"); ++ if (f == NULL) ++ return 0; ++ ++ if (client != NULL && client[0] == 0) ++ client = NULL; ++ else if (server != NULL && server[0] == 0) ++ server = NULL; ++ ++ ret = ++ scan_authfile_eaptls(f, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, &addrs, NULL, filename, ++ 0); ++ ++ fclose(f); ++ ++/* ++ if (ret >= 0 && !eaptls_init_ssl(1, cacertfile, servcertfile, ++ clicertfile, pkfile)) ++ ret = -1; ++*/ ++ ++ if (ret >= 0 && need_ip && !some_ip_ok(addrs)) { ++ if (lacks_ipp != 0) ++ *lacks_ipp = 1; ++ ret = -1; ++ } ++ if (addrs != 0) ++ free_wordlist(addrs); ++ ++ return ret >= 0; ++} ++ ++ ++static int ++have_eaptls_secret_client(client, server) ++ char *client; ++ char *server; ++{ ++ FILE *f; ++ int ret; ++ char *filename; ++ struct wordlist *addrs = NULL; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ ++ if (client != NULL && client[0] == 0) ++ client = NULL; ++ else if (server != NULL && server[0] == 0) ++ server = NULL; ++ ++ if (cacert_file && cert_file && privkey_file) ++ return 1; ++ ++ filename = _PATH_EAPTLSCLIFILE; ++ f = fopen(filename, "r"); ++ if (f == NULL) ++ return 0; ++ ++ ret = ++ scan_authfile_eaptls(f, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, &addrs, NULL, filename, ++ 0); ++ fclose(f); ++ ++/* ++ if (ret >= 0 && !eaptls_init_ssl(0, cacertfile, clicertfile, ++ servcertfile, pkfile)) ++ ret = -1; ++*/ ++ ++ if (addrs != 0) ++ free_wordlist(addrs); ++ ++ return ret >= 0; ++} ++ ++ ++static int ++scan_authfile_eaptls(f, client, server, cli_cert, serv_cert, ca_cert, pk, ++ addrs, opts, filename, flags) ++ FILE *f; ++ char *client; ++ char *server; ++ char *cli_cert; ++ char *serv_cert; ++ char *ca_cert; ++ char *pk; ++ struct wordlist **addrs; ++ struct wordlist **opts; ++ char *filename; ++ int flags; ++{ ++ int newline; ++ int got_flag, best_flag; ++ struct wordlist *ap, *addr_list, *alist, **app; ++ char word[MAXWORDLEN]; ++ ++ if (addrs != NULL) ++ *addrs = NULL; ++ if (opts != NULL) ++ *opts = NULL; ++ addr_list = NULL; ++ if (!getword(f, word, &newline, filename)) ++ return -1; /* file is empty??? */ ++ newline = 1; ++ best_flag = -1; ++ for (;;) { ++ /* ++ * Skip until we find a word at the start of a line. ++ */ ++ while (!newline && getword(f, word, &newline, filename)); ++ if (!newline) ++ break; /* got to end of file */ ++ ++ /* ++ * Got a client - check if it's a match or a wildcard. ++ */ ++ got_flag = 0; ++ if (client != NULL && strcmp(word, client) != 0 && !ISWILD(word)) { ++ newline = 0; ++ continue; ++ } ++ if (!ISWILD(word)) ++ got_flag = NONWILD_CLIENT; ++ ++ /* ++ * Now get a server and check if it matches. ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ if (!ISWILD(word)) { ++ if (server != NULL && strcmp(word, server) != 0) ++ continue; ++ got_flag |= NONWILD_SERVER; ++ } ++ ++ /* ++ * Got some sort of a match - see if it's better than what ++ * we have already. ++ */ ++ if (got_flag <= best_flag) ++ continue; ++ ++ /* ++ * Get the cli_cert ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ if (strcmp(word, "-") != 0) { ++ strlcpy(cli_cert, word, MAXWORDLEN); ++ } else ++ cli_cert[0] = 0; ++ ++ /* ++ * Get serv_cert ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ if (strcmp(word, "-") != 0) { ++ strlcpy(serv_cert, word, MAXWORDLEN); ++ } else ++ serv_cert[0] = 0; ++ ++ /* ++ * Get ca_cert ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ strlcpy(ca_cert, word, MAXWORDLEN); ++ ++ /* ++ * Get pk ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ strlcpy(pk, word, MAXWORDLEN); ++ ++ ++ /* ++ * Now read address authorization info and make a wordlist. ++ */ ++ app = &alist; ++ for (;;) { ++ if (!getword(f, word, &newline, filename) || newline) ++ break; ++ ap = (struct wordlist *) ++ malloc(sizeof(struct wordlist) + strlen(word) + 1); ++ if (ap == NULL) ++ novm("authorized addresses"); ++ ap->word = (char *) (ap + 1); ++ strcpy(ap->word, word); ++ *app = ap; ++ app = &ap->next; ++ } ++ *app = NULL; ++ /* ++ * This is the best so far; remember it. ++ */ ++ best_flag = got_flag; ++ if (addr_list) ++ free_wordlist(addr_list); ++ addr_list = alist; ++ ++ if (!newline) ++ break; ++ } ++ ++ /* scan for a -- word indicating the start of options */ ++ for (app = &addr_list; (ap = *app) != NULL; app = &ap->next) ++ if (strcmp(ap->word, "--") == 0) ++ break; ++ /* ap = start of options */ ++ if (ap != NULL) { ++ ap = ap->next; /* first option */ ++ free(*app); /* free the "--" word */ ++ *app = NULL; /* terminate addr list */ ++ } ++ if (opts != NULL) ++ *opts = ap; ++ else if (ap != NULL) ++ free_wordlist(ap); ++ if (addrs != NULL) ++ *addrs = addr_list; ++ else if (addr_list != NULL) ++ free_wordlist(addr_list); ++ ++ return best_flag; ++} ++ ++ ++int ++get_eaptls_secret(unit, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, am_server) ++ int unit; ++ char *client; ++ char *server; ++ char *clicertfile; ++ char *servcertfile; ++ char *cacertfile; ++ char *pkfile; ++ int am_server; ++{ ++ FILE *fp; ++ int ret; ++ char *filename = NULL; ++ struct wordlist *addrs = NULL; ++ struct wordlist *opts = NULL; ++ ++ /* in client mode the ca+cert+privkey can also be specified as options */ ++ if (!am_server && cacert_file && cert_file && privkey_file ) ++ { ++ strlcpy( clicertfile, cert_file, MAXWORDLEN ); ++ strlcpy( cacertfile, cacert_file, MAXWORDLEN ); ++ strlcpy( pkfile, privkey_file, MAXWORDLEN ); ++ servcertfile[0] = '\0'; ++ } ++ else ++ { ++ filename = (am_server ? _PATH_EAPTLSSERVFILE : _PATH_EAPTLSCLIFILE); ++ addrs = NULL; ++ ++ fp = fopen(filename, "r"); ++ if (fp == NULL) ++ { ++ error("Can't open eap-tls secret file %s: %m", filename); ++ return 0; ++ } ++ ++ check_access(fp, filename); ++ ++ ret = scan_authfile_eaptls(fp, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, &addrs, &opts, filename, 0); ++ ++ fclose(fp); ++ ++ if (ret < 0) return 0; ++ } ++ ++ if (eaptls_passwd_hook) ++ { ++ dbglog( "Calling eaptls password hook" ); ++ if ( (*eaptls_passwd_hook)(pkfile, passwd) < 0) ++ { ++ error("Unable to obtain EAP-TLS password for %s (%s) from plugin", ++ client, pkfile); ++ return 0; ++ } ++ } ++ if (am_server) ++ set_allowed_addrs(unit, addrs, opts); ++ else if (opts != NULL) ++ free_wordlist(opts); ++ if (addrs != NULL) ++ free_wordlist(addrs); ++ ++ return 1; ++} ++#endif ++ +--- ppp-2.4.6/pppd/ccp.c ++++ ppp-2.4.6/pppd/ccp.c +@@ -540,6 +540,9 @@ + if (go->mppe) { + ccp_options *ao = &ccp_allowoptions[f->unit]; + int auth_mschap_bits = auth_done[f->unit]; ++#ifdef USE_EAPTLS ++ int auth_eap_bits = auth_done[f->unit]; ++#endif + int numbits; + + /* +@@ -567,8 +570,23 @@ + lcp_close(f->unit, "MPPE required but not available"); + return; + } ++ ++#ifdef USE_EAPTLS ++ /* ++ * MPPE is also possible in combination with EAP-TLS. ++ * It is not possible to detect if we're doing EAP or EAP-TLS ++ * at this stage, hence we accept all forms of EAP. If TLS is ++ * not used then the MPPE keys will not be derived anyway. ++ */ ++ /* Leave only the eap auth bits set */ ++ auth_eap_bits &= (EAP_WITHPEER | EAP_PEER ); ++ ++ if ((numbits == 0) && (auth_eap_bits == 0)) { ++ error("MPPE required, but MS-CHAP[v2] nor EAP-TLS auth are performed."); ++#else + if (!numbits) { +- error("MPPE required, but MS-CHAP[v2] auth not performed."); ++ error("MPPE required, but MS-CHAP[v2] auth not performed."); ++#endif + lcp_close(f->unit, "MPPE required but not available"); + return; + } +--- ppp-2.4.6/pppd/chap-md5.c ++++ ppp-2.4.6/pppd/chap-md5.c +@@ -36,7 +36,11 @@ + #include "chap-new.h" + #include "chap-md5.h" + #include "magic.h" ++#ifdef USE_EAPTLS ++#include "eap-tls.h" ++#else + #include "md5.h" ++#endif /* USE_EAPTLS */ + + #define MD5_HASH_SIZE 16 + #define MD5_MIN_CHALLENGE 16 +--- ppp-2.4.6/pppd/eap.c ++++ ppp-2.4.6/pppd/eap.c +@@ -43,6 +43,11 @@ + * Based on draft-ietf-pppext-eap-srp-03.txt. + */ + ++/* ++ * Modification by Beniamino Galvani, Mar 2005 ++ * Implemented EAP-TLS authentication ++ */ ++ + #define RCSID "$Id: eap.c,v 1.4 2004/11/09 22:39:25 paulus Exp $" + + /* +@@ -62,8 +67,12 @@ + + #include "pppd.h" + #include "pathnames.h" +-#include "md5.h" + #include "eap.h" ++#ifdef USE_EAPTLS ++#include "eap-tls.h" ++#else ++#include "md5.h" ++#endif /* USE_EAPTLS */ + + #ifdef USE_SRP + #include +@@ -209,6 +218,9 @@ + esp->es_server.ea_id = (u_char)(drand48() * 0x100); + esp->es_client.ea_timeout = EAP_DEFREQTIME; + esp->es_client.ea_maxrequests = EAP_DEFALLOWREQ; ++#ifdef USE_EAPTLS ++ esp->es_client.ea_using_eaptls = 0; ++#endif /* USE_EAPTLS */ + } + + /* +@@ -436,8 +448,16 @@ + u_char vals[2]; + struct b64state bs; + #endif /* USE_SRP */ ++#ifdef USE_EAPTLS ++ struct eaptls_session *ets; ++ int secret_len; ++ char secret[MAXWORDLEN]; ++#endif /* USE_EAPTLS */ + + esp->es_server.ea_timeout = esp->es_savedtime; ++#ifdef USE_EAPTLS ++ esp->es_server.ea_prev_state = esp->es_server.ea_state; ++#endif /* USE_EAPTLS */ + switch (esp->es_server.ea_state) { + case eapBadAuth: + return; +@@ -562,9 +582,81 @@ + break; + } + #endif /* USE_SRP */ ++#ifdef USE_EAPTLS ++ if (!get_secret(esp->es_unit, esp->es_server.ea_peer, ++ esp->es_server.ea_name, secret, &secret_len, 1)) { ++ ++ esp->es_server.ea_state = eapTlsStart; ++ break; ++ } ++#endif /* USE_EAPTLS */ ++ + esp->es_server.ea_state = eapMD5Chall; + break; + ++#ifdef USE_EAPTLS ++ case eapTlsStart: ++ /* Initialize ssl session */ ++ if(!eaptls_init_ssl_server(esp)) { ++ esp->es_server.ea_state = eapBadAuth; ++ break; ++ } ++ ++ esp->es_server.ea_state = eapTlsRecv; ++ break; ++ ++ case eapTlsRecv: ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ ++ if(ets->alert_sent) { ++ esp->es_server.ea_state = eapTlsSendAlert; ++ break; ++ } ++ ++ if (status) { ++ esp->es_server.ea_state = eapBadAuth; ++ break; ++ } ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ ++ if(ets->frag) ++ esp->es_server.ea_state = eapTlsSendAck; ++ else ++ esp->es_server.ea_state = eapTlsSend; ++ break; ++ ++ case eapTlsSend: ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ ++ if(SSL_is_init_finished(ets->ssl)) { ++ esp->es_server.ea_state = eapTlsRecvClient; ++ break; ++ } ++ ++ if(ets->frag) ++ esp->es_server.ea_state = eapTlsRecvAck; ++ else ++ esp->es_server.ea_state = eapTlsRecv; ++ break; ++ ++ case eapTlsSendAck: ++ esp->es_server.ea_state = eapTlsRecv; ++ break; ++ ++ case eapTlsRecvAck: ++ if (status) { ++ esp->es_server.ea_state = eapBadAuth; ++ break; ++ } ++ ++ esp->es_server.ea_state = eapTlsSend; ++ break; ++ ++ case eapTlsSendAlert: ++ esp->es_server.ea_state = eapTlsRecvAlertAck; ++ break; ++#endif /* USE_EAPTLS */ ++ + case eapSRP1: + #ifdef USE_SRP + ts = (struct t_server *)esp->es_server.ea_session; +@@ -718,6 +810,30 @@ + INCPTR(esp->es_server.ea_namelen, outp); + break; + ++#ifdef USE_EAPTLS ++ case eapTlsStart: ++ PUTCHAR(EAPT_TLS, outp); ++ PUTCHAR(EAP_TLS_FLAGS_START, outp); ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsSend: ++ eaptls_send(esp->es_server.ea_session, &outp); ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsSendAck: ++ PUTCHAR(EAPT_TLS, outp); ++ PUTCHAR(0, outp); ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsSendAlert: ++ eaptls_send(esp->es_server.ea_session, &outp); ++ eap_figure_next_state(esp, 0); ++ break; ++#endif /* USE_EAPTLS */ ++ + #ifdef USE_SRP + case eapSRP1: + PUTCHAR(EAPT_SRP, outp); +@@ -904,11 +1020,57 @@ + eap_server_timeout(arg) + void *arg; + { ++#ifdef USE_EAPTLS ++ u_char *outp; ++ u_char *lenloc; ++ int outlen; ++#endif /* USE_EAPTLS */ ++ + eap_state *esp = (eap_state *) arg; + + if (!eap_server_active(esp)) + return; + ++#ifdef USE_EAPTLS ++ switch(esp->es_server.ea_prev_state) { ++ ++ /* ++ * In eap-tls the state changes after a request, so we return to ++ * previous state ... ++ */ ++ case(eapTlsStart): ++ case(eapTlsSendAck): ++ esp->es_server.ea_state = esp->es_server.ea_prev_state; ++ break; ++ ++ /* ++ * ... or resend the stored data ++ */ ++ case(eapTlsSend): ++ case(eapTlsSendAlert): ++ outp = outpacket_buf; ++ MAKEHEADER(outp, PPP_EAP); ++ PUTCHAR(EAP_REQUEST, outp); ++ PUTCHAR(esp->es_server.ea_id, outp); ++ lenloc = outp; ++ INCPTR(2, outp); ++ ++ eaptls_retransmit(esp->es_server.ea_session, &outp); ++ ++ outlen = (outp - outpacket_buf) - PPP_HDRLEN; ++ PUTSHORT(outlen, lenloc); ++ output(esp->es_unit, outpacket_buf, outlen + PPP_HDRLEN); ++ esp->es_server.ea_requests++; ++ ++ if (esp->es_server.ea_timeout > 0) ++ TIMEOUT(eap_server_timeout, esp, esp->es_server.ea_timeout); ++ ++ return; ++ default: ++ break; ++ } ++#endif /* USE_EAPTLS */ ++ + /* EAP ID number must not change on timeout. */ + eap_send_request(esp); + } +@@ -1166,6 +1328,81 @@ + } + #endif /* USE_SRP */ + ++#ifdef USE_EAPTLS ++/* ++ * Send an EAP-TLS response message with tls data ++ */ ++static void ++eap_tls_response(esp, id) ++eap_state *esp; ++u_char id; ++{ ++ u_char *outp; ++ int outlen; ++ u_char *lenloc; ++ ++ outp = outpacket_buf; ++ ++ MAKEHEADER(outp, PPP_EAP); ++ ++ PUTCHAR(EAP_RESPONSE, outp); ++ PUTCHAR(id, outp); ++ ++ lenloc = outp; ++ INCPTR(2, outp); ++ ++ /* ++ If the id in the request is unchanged, we must retransmit ++ the old data ++ */ ++ if(id == esp->es_client.ea_id) ++ eaptls_retransmit(esp->es_client.ea_session, &outp); ++ else ++ eaptls_send(esp->es_client.ea_session, &outp); ++ ++ outlen = (outp - outpacket_buf) - PPP_HDRLEN; ++ PUTSHORT(outlen, lenloc); ++ ++ output(esp->es_unit, outpacket_buf, PPP_HDRLEN + outlen); ++ ++ esp->es_client.ea_id = id; ++ ++} ++ ++/* ++ * Send an EAP-TLS ack ++ */ ++static void ++eap_tls_sendack(esp, id) ++eap_state *esp; ++u_char id; ++{ ++ u_char *outp; ++ int outlen; ++ u_char *lenloc; ++ ++ outp = outpacket_buf; ++ ++ MAKEHEADER(outp, PPP_EAP); ++ ++ PUTCHAR(EAP_RESPONSE, outp); ++ PUTCHAR(id, outp); ++ esp->es_client.ea_id = id; ++ ++ lenloc = outp; ++ INCPTR(2, outp); ++ ++ PUTCHAR(EAPT_TLS, outp); ++ PUTCHAR(0, outp); ++ ++ outlen = (outp - outpacket_buf) - PPP_HDRLEN; ++ PUTSHORT(outlen, lenloc); ++ ++ output(esp->es_unit, outpacket_buf, PPP_HDRLEN + outlen); ++ ++} ++#endif /* USE_EAPTLS */ ++ + static void + eap_send_nak(esp, id, type) + eap_state *esp; +@@ -1320,6 +1557,11 @@ + char rhostname[256]; + MD5_CTX mdContext; + u_char hash[MD5_SIGNATURE_SIZE]; ++#ifdef USE_EAPTLS ++ u_char flags; ++ struct eaptls_session *ets = esp->es_client.ea_session; ++#endif /* USE_EAPTLS */ ++ + #ifdef USE_SRP + struct t_client *tc; + struct t_num sval, gval, Nval, *Ap, Bval; +@@ -1456,6 +1698,90 @@ + esp->es_client.ea_namelen); + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ ++ switch(esp->es_client.ea_state) { ++ ++ case eapListen: ++ ++ GETCHAR(flags, inp); ++ if(flags & EAP_TLS_FLAGS_START){ ++ ++ esp->es_client.ea_using_eaptls = 1; ++ ++ if (explicit_remote){ ++ esp->es_client.ea_peer = strdup(remote_name); ++ esp->es_client.ea_peerlen = strlen(remote_name); ++ } else ++ esp->es_client.ea_peer = NULL; ++ ++ /* Init ssl session */ ++ if(!eaptls_init_ssl_client(esp)) { ++ dbglog("cannot init ssl"); ++ eap_send_nak(esp, id, EAPT_TLS); ++ esp->es_client.ea_using_eaptls = 0; ++ break; ++ } ++ ++ ets = esp->es_client.ea_session; ++ eap_tls_response(esp, id); ++ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck : ++ eapTlsRecv); ++ break; ++ } ++ ++ /* The server has sent a bad start packet. */ ++ eap_send_nak(esp, id, EAPT_TLS); ++ break; ++ ++ case eapTlsRecvAck: ++ eap_tls_response(esp, id); ++ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck : ++ eapTlsRecv); ++ break; ++ ++ case eapTlsRecv: ++ eaptls_receive(ets, inp, len); ++ ++ if(ets->frag) { ++ eap_tls_sendack(esp, id); ++ esp->es_client.ea_state = eapTlsRecv; ++ break; ++ } ++ ++ if(ets->alert_recv) { ++ eap_tls_sendack(esp, id); ++ esp->es_client.ea_state = eapTlsRecvFailure; ++ break; ++ } ++ ++ /* Check if TLS handshake is finished */ ++ if(SSL_is_init_finished(ets->ssl)){ ++#ifdef MPPE ++ eaptls_gen_mppe_keys( ets, "client EAP encryption", 1 ); ++#endif ++ eaptls_free_session(ets); ++ eap_tls_sendack(esp, id); ++ esp->es_client.ea_state = eapTlsRecvSuccess; ++ break; ++ } ++ ++ eap_tls_response(esp,id); ++ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck : ++ eapTlsRecv); ++ ++ break; ++ ++ default: ++ eap_send_nak(esp, id, EAPT_TLS); ++ esp->es_client.ea_using_eaptls = 0; ++ break; ++ } ++ ++ break; ++#endif /* USE_EAPTLS */ ++ + #ifdef USE_SRP + case EAPT_SRP: + if (len < 1) { +@@ -1737,6 +2063,11 @@ + u_char dig[SHA_DIGESTSIZE]; + #endif /* USE_SRP */ + ++#ifdef USE_EAPTLS ++ struct eaptls_session *ets; ++ u_char flags; ++#endif /* USE_EAPTLS */ ++ + if (esp->es_server.ea_id != id) { + dbglog("EAP: discarding Response %d; expected ID %d", id, + esp->es_server.ea_id); +@@ -1776,6 +2107,60 @@ + eap_figure_next_state(esp, 0); + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ switch(esp->es_server.ea_state) { ++ ++ case eapTlsRecv: ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ eap_figure_next_state(esp, ++ eaptls_receive(esp->es_server.ea_session, inp, len)); ++ ++ if(ets->alert_recv) { ++ eap_send_failure(esp); ++ break; ++ } ++ break; ++ ++ case eapTlsRecvAck: ++ if(len > 1) { ++ dbglog("EAP-TLS ACK with extra data"); ++ } ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsRecvClient: ++ /* Receive authentication response from client */ ++ ++ GETCHAR(flags, inp); ++ ++ if(len == 1 && !flags) { /* Ack = ok */ ++#ifdef MPPE ++ eaptls_gen_mppe_keys( esp->es_server.ea_session, "client EAP encryption", 0 ); ++#endif ++ eap_send_success(esp); ++ } ++ else { /* failure */ ++ eaptls_receive(esp->es_server.ea_session, inp, len); ++ warn("Server authentication failed"); ++ eap_send_failure(esp); ++ } ++ ++ eaptls_free_session(esp->es_server.ea_session); ++ ++ break; ++ ++ case eapTlsRecvAlertAck: ++ eap_send_failure(esp); ++ break; ++ ++ default: ++ eap_figure_next_state(esp, 1); ++ break; ++ } ++ break; ++#endif /* USE_EAPTLS */ ++ + case EAPT_NOTIFICATION: + dbglog("EAP unexpected Notification; response discarded"); + break; +@@ -1807,6 +2192,13 @@ + esp->es_server.ea_state = eapMD5Chall; + break; + ++#ifdef USE_EAPTLS ++ /* Send EAP-TLS start packet */ ++ case EAPT_TLS: ++ esp->es_server.ea_state = eapTlsStart; ++ break; ++#endif /* USE_EAPTLS */ ++ + default: + dbglog("EAP: peer requesting unknown Type %d", vallen); + switch (esp->es_server.ea_state) { +@@ -2018,13 +2410,27 @@ + int id; + int len; + { +- if (esp->es_client.ea_state != eapOpen && !eap_client_active(esp)) { ++ if (esp->es_client.ea_state != eapOpen && !eap_client_active(esp) ++#ifdef USE_EAPTLS ++ && esp->es_client.ea_state != eapTlsRecvSuccess ++#endif /* USE_EAPTLS */ ++ ) { + dbglog("EAP unexpected success message in state %s (%d)", + eap_state_name(esp->es_client.ea_state), + esp->es_client.ea_state); + return; + } + ++#ifdef USE_EAPTLS ++ if(esp->es_client.ea_using_eaptls && esp->es_client.ea_state != ++ eapTlsRecvSuccess) { ++ dbglog("EAP-TLS unexpected success message in state %s (%d)", ++ eap_state_name(esp->es_client.ea_state), ++ esp->es_client.ea_state); ++ return; ++ } ++#endif /* USE_EAPTLS */ ++ + if (esp->es_client.ea_timeout > 0) { + UNTIMEOUT(eap_client_timeout, (void *)esp); + } +@@ -2150,6 +2556,9 @@ + int code, id, len, rtype, vallen; + u_char *pstart; + u_int32_t uval; ++#ifdef USE_EAPTLS ++ u_char flags; ++#endif /* USE_EAPTLS */ + + if (inlen < EAP_HEADERLEN) + return (0); +@@ -2214,6 +2623,24 @@ + } + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ if (len < 1) ++ break; ++ GETCHAR(flags, inp); ++ len--; ++ ++ if(flags == 0 && len == 0){ ++ printer(arg, " Ack"); ++ break; ++ } ++ ++ printer(arg, flags & EAP_TLS_FLAGS_LI ? " L":" -"); ++ printer(arg, flags & EAP_TLS_FLAGS_MF ? "M":"-"); ++ printer(arg, flags & EAP_TLS_FLAGS_START ? "S":"- "); ++ break; ++#endif /* USE_EAPTLS */ ++ + case EAPT_SRP: + if (len < 3) + goto truncated; +@@ -2325,6 +2752,25 @@ + } + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ if (len < 1) ++ break; ++ GETCHAR(flags, inp); ++ len--; ++ ++ if(flags == 0 && len == 0){ ++ printer(arg, " Ack"); ++ break; ++ } ++ ++ printer(arg, flags & EAP_TLS_FLAGS_LI ? " L":" -"); ++ printer(arg, flags & EAP_TLS_FLAGS_MF ? "M":"-"); ++ printer(arg, flags & EAP_TLS_FLAGS_START ? "S":"- "); ++ ++ break; ++#endif /* USE_EAPTLS */ ++ + case EAPT_NAK: + if (len <= 0) { + printer(arg, " "); +@@ -2426,3 +2872,4 @@ + + return (inp - pstart); + } ++ +--- ppp-2.4.6/pppd/eap.h ++++ ppp-2.4.6/pppd/eap.h +@@ -84,6 +84,16 @@ + eapClosed, /* Authentication not in use */ + eapListen, /* Client ready (and timer running) */ + eapIdentify, /* EAP Identify sent */ ++ eapTlsStart, /* Send EAP-TLS start packet */ ++ eapTlsRecv, /* Receive EAP-TLS tls data */ ++ eapTlsSendAck, /* Send EAP-TLS ack */ ++ eapTlsSend, /* Send EAP-TLS tls data */ ++ eapTlsRecvAck, /* Receive EAP-TLS ack */ ++ eapTlsRecvClient, /* Receive EAP-TLS auth response from client*/ ++ eapTlsSendAlert, /* Send EAP-TLS tls alert (server)*/ ++ eapTlsRecvAlertAck, /* Receive EAP-TLS ack after sending alert */ ++ eapTlsRecvSuccess, /* Receive EAP success */ ++ eapTlsRecvFailure, /* Receive EAP failure */ + eapSRP1, /* Sent EAP SRP-SHA1 Subtype 1 */ + eapSRP2, /* Sent EAP SRP-SHA1 Subtype 2 */ + eapSRP3, /* Sent EAP SRP-SHA1 Subtype 3 */ +@@ -95,9 +105,18 @@ + + #define EAP_STATES \ + "Initial", "Pending", "Closed", "Listen", "Identify", \ ++ "TlsStart", "TlsRecv", "TlsSendAck", "TlsSend", "TlsRecvAck", "TlsRecvClient",\ ++ "TlsSendAlert", "TlsRecvAlertAck" , "TlsRecvSuccess", "TlsRecvFailure", \ + "SRP1", "SRP2", "SRP3", "MD5Chall", "Open", "SRP4", "BadAuth" + +-#define eap_client_active(esp) ((esp)->es_client.ea_state == eapListen) ++#ifdef USE_EAPTLS ++#define eap_client_active(esp) ((esp)->es_client.ea_state != eapInitial ||\ ++ (esp)->es_client.ea_state != eapPending ||\ ++ (esp)->es_client.ea_state != eapClosed) ++#else ++#define eap_client_active(esp) ((esp)->es_client.ea_state == eapListen) ++#endif /* USE_EAPTLS */ ++ + #define eap_server_active(esp) \ + ((esp)->es_server.ea_state >= eapIdentify && \ + (esp)->es_server.ea_state <= eapMD5Chall) +@@ -112,11 +131,17 @@ + u_short ea_namelen; /* Length of our name */ + u_short ea_peerlen; /* Length of peer's name */ + enum eap_state_code ea_state; ++#ifdef USE_EAPTLS ++ enum eap_state_code ea_prev_state; ++#endif + u_char ea_id; /* Current id */ + u_char ea_requests; /* Number of Requests sent/received */ + u_char ea_responses; /* Number of Responses */ + u_char ea_type; /* One of EAPT_* */ + u_int32_t ea_keyflags; /* SRP shared key usage flags */ ++#ifdef USE_EAPTLS ++ bool ea_using_eaptls; ++#endif + }; + + /* +@@ -139,7 +164,12 @@ + * Timeouts. + */ + #define EAP_DEFTIMEOUT 3 /* Timeout (seconds) for rexmit */ ++#ifdef USE_EAPTLS ++#define EAP_DEFTRANSMITS 30 /* max # times to transmit */ ++ /* certificates can be long ... */ ++#else + #define EAP_DEFTRANSMITS 10 /* max # times to transmit */ ++#endif /* USE_EAPTLS */ + #define EAP_DEFREQTIME 20 /* Time to wait for peer request */ + #define EAP_DEFALLOWREQ 20 /* max # times to accept requests */ + +--- ppp-2.4.6/pppd/eap-tls.c ++++ ppp-2.4.6/pppd/eap-tls.c +@@ -0,0 +1,1174 @@ ++/* ++ * eap-tls.c - EAP-TLS implementation for PPP ++ * ++ * Copyright (c) Beniamino Galvani 2005 All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * 3. The name(s) of the authors of this software must not be used to ++ * endorse or promote products derived from this software without ++ * prior written permission. ++ * ++ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO ++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "pppd.h" ++#include "eap.h" ++#include "eap-tls.h" ++#include "fsm.h" ++#include "lcp.h" ++#include "pathnames.h" ++ ++/* The openssl configuration file and engines can be loaded only once */ ++static CONF *ssl_config = NULL; ++static ENGINE *cert_engine = NULL; ++static ENGINE *pkey_engine = NULL; ++ ++#ifdef MPPE ++ ++/* ++ * TLS PRF from RFC 2246 ++ */ ++static void P_hash(const EVP_MD *evp_md, ++ const unsigned char *secret, unsigned int secret_len, ++ const unsigned char *seed, unsigned int seed_len, ++ unsigned char *out, unsigned int out_len) ++{ ++ HMAC_CTX ctx_a, ctx_out; ++ unsigned char a[HMAC_MAX_MD_CBLOCK]; ++ unsigned int size; ++ ++ HMAC_CTX_init(&ctx_a); ++ HMAC_CTX_init(&ctx_out); ++ HMAC_Init_ex(&ctx_a, secret, secret_len, evp_md, NULL); ++ HMAC_Init_ex(&ctx_out, secret, secret_len, evp_md, NULL); ++ ++ size = HMAC_size(&ctx_out); ++ ++ /* Calculate A(1) */ ++ HMAC_Update(&ctx_a, seed, seed_len); ++ HMAC_Final(&ctx_a, a, NULL); ++ ++ while (1) { ++ /* Calculate next part of output */ ++ HMAC_Update(&ctx_out, a, size); ++ HMAC_Update(&ctx_out, seed, seed_len); ++ ++ /* Check if last part */ ++ if (out_len < size) { ++ HMAC_Final(&ctx_out, a, NULL); ++ memcpy(out, a, out_len); ++ break; ++ } ++ ++ /* Place digest in output buffer */ ++ HMAC_Final(&ctx_out, out, NULL); ++ HMAC_Init_ex(&ctx_out, NULL, 0, NULL, NULL); ++ out += size; ++ out_len -= size; ++ ++ /* Calculate next A(i) */ ++ HMAC_Init_ex(&ctx_a, NULL, 0, NULL, NULL); ++ HMAC_Update(&ctx_a, a, size); ++ HMAC_Final(&ctx_a, a, NULL); ++ } ++ ++ HMAC_CTX_cleanup(&ctx_a); ++ HMAC_CTX_cleanup(&ctx_out); ++ memset(a, 0, sizeof(a)); ++} ++ ++static void PRF(const unsigned char *secret, unsigned int secret_len, ++ const unsigned char *seed, unsigned int seed_len, ++ unsigned char *out, unsigned char *buf, unsigned int out_len) ++{ ++ unsigned int i; ++ unsigned int len = (secret_len + 1) / 2; ++ const unsigned char *s1 = secret; ++ const unsigned char *s2 = secret + (secret_len - len); ++ ++ P_hash(EVP_md5(), s1, len, seed, seed_len, out, out_len); ++ P_hash(EVP_sha1(), s2, len, seed, seed_len, buf, out_len); ++ ++ for (i=0; i < out_len; i++) { ++ out[i] ^= buf[i]; ++ } ++} ++ ++#define EAPTLS_MPPE_KEY_LEN 32 ++ ++/* ++ * Generate keys according to RFC 2716 and add to reply ++ */ ++void eaptls_gen_mppe_keys(struct eaptls_session *ets, const char *prf_label, ++ int client) ++{ ++ unsigned char out[4*EAPTLS_MPPE_KEY_LEN], buf[4*EAPTLS_MPPE_KEY_LEN]; ++ unsigned char seed[64 + 2*SSL3_RANDOM_SIZE]; ++ unsigned char *p = seed; ++ SSL *s = ets->ssl; ++ size_t prf_size; ++ ++ prf_size = strlen(prf_label); ++ ++ memcpy(p, prf_label, prf_size); ++ p += prf_size; ++ ++ memcpy(p, s->s3->client_random, SSL3_RANDOM_SIZE); ++ p += SSL3_RANDOM_SIZE; ++ prf_size += SSL3_RANDOM_SIZE; ++ ++ memcpy(p, s->s3->server_random, SSL3_RANDOM_SIZE); ++ prf_size += SSL3_RANDOM_SIZE; ++ ++ PRF(s->session->master_key, s->session->master_key_length, ++ seed, prf_size, out, buf, sizeof(out)); ++ ++ /* ++ * We now have the master send and receive keys. ++ * From these, generate the session send and receive keys. ++ * (see RFC3079 / draft-ietf-pppext-mppe-keys-03.txt for details) ++ */ ++ if (client) ++ { ++ p = out; ++ BCOPY( p, mppe_send_key, sizeof(mppe_send_key) ); ++ p += EAPTLS_MPPE_KEY_LEN; ++ BCOPY( p, mppe_recv_key, sizeof(mppe_recv_key) ); ++ } ++ else ++ { ++ p = out; ++ BCOPY( p, mppe_recv_key, sizeof(mppe_recv_key) ); ++ p += EAPTLS_MPPE_KEY_LEN; ++ BCOPY( p, mppe_send_key, sizeof(mppe_send_key) ); ++ } ++ ++ mppe_keys_set = 1; ++} ++ ++#endif ++ ++void log_ssl_errors( void ) ++{ ++ unsigned long ssl_err = ERR_get_error(); ++ ++ if (ssl_err != 0) ++ dbglog("EAP-TLS SSL error stack:"); ++ while (ssl_err != 0) { ++ dbglog( ERR_error_string( ssl_err, NULL ) ); ++ ssl_err = ERR_get_error(); ++ } ++} ++ ++ ++int password_callback (char *buf, int size, int rwflag, void *u) ++{ ++ if (buf) ++ { ++ strncpy (buf, passwd, size); ++ return strlen (buf); ++ } ++ return 0; ++} ++ ++ ++CONF *eaptls_ssl_load_config( void ) ++{ ++ CONF *config; ++ int ret_code; ++ long error_line = 33; ++ ++ config = NCONF_new( NULL ); ++ dbglog( "Loading OpenSSL config file" ); ++ ret_code = NCONF_load( config, _PATH_OPENSSLCONFFILE, &error_line ); ++ if (ret_code == 0) ++ { ++ warn( "EAP-TLS: Error in OpenSSL config file %s at line %d", _PATH_OPENSSLCONFFILE, error_line ); ++ NCONF_free( config ); ++ config = NULL; ++ ERR_clear_error(); ++ } ++ ++ dbglog( "Loading OpenSSL built-ins" ); ++ ENGINE_load_builtin_engines(); ++ OPENSSL_load_builtin_modules(); ++ ++ dbglog( "Loading OpenSSL configured modules" ); ++ if (CONF_modules_load( config, NULL, 0 ) <= 0 ) ++ { ++ warn( "EAP-TLS: Error loading OpenSSL modules" ); ++ log_ssl_errors(); ++ config = NULL; ++ } ++ ++ return config; ++} ++ ++ENGINE *eaptls_ssl_load_engine( char *engine_name ) ++{ ++ ENGINE *e = NULL; ++ ++ dbglog( "Enabling OpenSSL auto engines" ); ++ ENGINE_register_all_complete(); ++ ++ dbglog( "Loading OpenSSL '%s' engine support", engine_name ); ++ e = ENGINE_by_id( engine_name ); ++ if (!e) ++ { ++ dbglog( "EAP-TLS: Cannot load '%s' engine support, trying 'dynamic'", engine_name ); ++ e = ENGINE_by_id( "dynamic" ); ++ if (e) ++ { ++ if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", engine_name, 0) ++ || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0)) ++ { ++ warn( "EAP-TLS: Error loading dynamic engine '%s'", engine_name ); ++ log_ssl_errors(); ++ ENGINE_free(e); ++ e = NULL; ++ } ++ } ++ else ++ { ++ warn( "EAP-TLS: Cannot load dynamic engine support" ); ++ } ++ } ++ ++ if (e) ++ { ++ dbglog( "Initialising engine" ); ++ if(!ENGINE_set_default(e, ENGINE_METHOD_ALL)) ++ { ++ warn( "EAP-TLS: Cannot use that engine" ); ++ log_ssl_errors(); ++ ENGINE_free(e); ++ e = NULL; ++ } ++ } ++ ++ return e; ++} ++ ++/* ++ * Initialize the SSL stacks and tests if certificates, key and crl ++ * for client or server use can be loaded. ++ */ ++SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, ++ char *certfile, char *peer_certfile, char *privkeyfile) ++{ ++ char *cert_engine_name = NULL; ++ char *cert_identifier = NULL; ++ char *pkey_engine_name = NULL; ++ char *pkey_identifier = NULL; ++ SSL_CTX *ctx; ++ X509_STORE *certstore; ++ X509_LOOKUP *lookup; ++ X509 *tmp; ++ ++ /* ++ * Without these can't continue ++ */ ++ if (!cacertfile[0]) ++ { ++ error("EAP-TLS: CA certificate missing"); ++ return NULL; ++ } ++ ++ if (!certfile[0]) ++ { ++ error("EAP-TLS: User certificate missing"); ++ return NULL; ++ } ++ ++ if (!privkeyfile[0]) ++ { ++ error("EAP-TLS: User private key missing"); ++ return NULL; ++ } ++ ++ SSL_library_init(); ++ SSL_load_error_strings(); ++ ++ ctx = SSL_CTX_new(TLSv1_method()); ++ ++ if (!ctx) { ++ error("EAP-TLS: Cannot initialize SSL CTX context"); ++ goto fail; ++ } ++ ++ /* if the certificate filename is of the form engine:id. e.g. ++ pkcs11:12345 ++ then we try to load and use this engine. ++ If the certificate filename starts with a / or . then we ++ ALWAYS assume it is a file and not an engine/pkcs11 identifier ++ */ ++ if ( index( certfile, '/' ) == NULL && index( certfile, '.') == NULL ) ++ { ++ cert_identifier = index( certfile, ':' ); ++ ++ if (cert_identifier) ++ { ++ cert_engine_name = certfile; ++ *cert_identifier = '\0'; ++ cert_identifier++; ++ ++ dbglog( "Found certificate engine '%s'", cert_engine_name ); ++ dbglog( "Found certificate identifier '%s'", cert_identifier ); ++ } ++ } ++ ++ /* if the privatekey filename is of the form engine:id. e.g. ++ pkcs11:12345 ++ then we try to load and use this engine. ++ If the privatekey filename starts with a / or . then we ++ ALWAYS assume it is a file and not an engine/pkcs11 identifier ++ */ ++ if ( index( privkeyfile, '/' ) == NULL && index( privkeyfile, '.') == NULL ) ++ { ++ pkey_identifier = index( privkeyfile, ':' ); ++ ++ if (pkey_identifier) ++ { ++ pkey_engine_name = privkeyfile; ++ *pkey_identifier = '\0'; ++ pkey_identifier++; ++ ++ dbglog( "Found privatekey engine '%s'", pkey_engine_name ); ++ dbglog( "Found privatekey identifier '%s'", pkey_identifier ); ++ } ++ } ++ ++ if (cert_identifier && pkey_identifier) ++ { ++ if (strlen( cert_identifier ) == 0) ++ { ++ if (strlen( pkey_identifier ) == 0) ++ error( "EAP-TLS: both the certificate and privatekey identifiers are missing!" ); ++ else ++ { ++ dbglog( "Substituting privatekey identifier for certificate identifier" ); ++ cert_identifier = pkey_identifier; ++ } ++ } ++ else ++ { ++ if (strlen( pkey_identifier ) == 0) ++ { ++ dbglog( "Substituting certificate identifier for privatekey identifier" ); ++ pkey_identifier = cert_identifier; ++ } ++ } ++ ++ } ++ ++ /* load the openssl config file only once */ ++ if (!ssl_config) ++ { ++ if (cert_engine_name || pkey_engine_name) ++ ssl_config = eaptls_ssl_load_config(); ++ ++ if (ssl_config && cert_engine_name) ++ cert_engine = eaptls_ssl_load_engine( cert_engine_name ); ++ ++ if (ssl_config && pkey_engine_name) ++ { ++ /* don't load the same engine twice */ ++ if ( strcmp( cert_engine_name, pkey_engine_name) == 0 ) ++ pkey_engine = cert_engine; ++ else ++ pkey_engine = eaptls_ssl_load_engine( pkey_engine_name ); ++ } ++ } ++ ++ SSL_CTX_set_default_passwd_cb (ctx, password_callback); ++ ++ if (!SSL_CTX_load_verify_locations(ctx, cacertfile, NULL)) ++ { ++ error("EAP-TLS: Cannot load or verify CA file %s", cacertfile); ++ goto fail; ++ } ++ ++ if (init_server) ++ SSL_CTX_set_client_CA_list(ctx, SSL_load_client_CA_file(cacertfile)); ++ ++ if (cert_engine) ++ { ++ struct ++ { ++ const char *s_slot_cert_id; ++ X509 *cert; ++ } cert_info; ++ ++ cert_info.s_slot_cert_id = cert_identifier; ++ cert_info.cert = NULL; ++ ++ if (!ENGINE_ctrl_cmd( cert_engine, "LOAD_CERT_CTRL", 0, &cert_info, NULL, 0 ) ) ++ { ++ error( "EAP-TLS: Error loading certificate with id '%s' from engine", cert_identifier ); ++ goto fail; ++ } ++ ++ if (cert_info.cert) ++ { ++ dbglog( "Got the certificate, adding it to SSL context" ); ++ dbglog( "subject = %s", X509_NAME_oneline( X509_get_subject_name( cert_info.cert ), NULL, 0 ) ); ++ if (SSL_CTX_use_certificate(ctx, cert_info.cert) <= 0) ++ { ++ error("EAP-TLS: Cannot use PKCS11 certificate %s", cert_identifier); ++ goto fail; ++ } ++ } ++ else ++ { ++ warn("EAP-TLS: Cannot load PKCS11 key %s", cert_identifier); ++ log_ssl_errors(); ++ } ++ } ++ else ++ { ++ if (!SSL_CTX_use_certificate_file(ctx, certfile, SSL_FILETYPE_PEM)) ++ { ++ error( "EAP-TLS: Cannot use public certificate %s", certfile ); ++ goto fail; ++ } ++ } ++ ++ if (pkey_engine) ++ { ++ EVP_PKEY *pkey = NULL; ++ PW_CB_DATA cb_data; ++ ++ cb_data.password = passwd; ++ cb_data.prompt_info = pkey_identifier; ++ ++ dbglog( "Loading private key '%s' from engine", pkey_identifier ); ++ pkey = ENGINE_load_private_key(pkey_engine, pkey_identifier, NULL, &cb_data); ++ if (pkey) ++ { ++ dbglog( "Got the private key, adding it to SSL context" ); ++ if (SSL_CTX_use_PrivateKey(ctx, pkey) <= 0) ++ { ++ error("EAP-TLS: Cannot use PKCS11 key %s", pkey_identifier); ++ goto fail; ++ } ++ } ++ else ++ { ++ warn("EAP-TLS: Cannot load PKCS11 key %s", pkey_identifier); ++ log_ssl_errors(); ++ } ++ } ++ else ++ { ++ if (!SSL_CTX_use_PrivateKey_file(ctx, privkeyfile, SSL_FILETYPE_PEM)) ++ { ++ error("EAP-TLS: Cannot use private key %s", privkeyfile); ++ goto fail; ++ } ++ } ++ ++ if (SSL_CTX_check_private_key(ctx) != 1) { ++ error("EAP-TLS: Private key %s fails security check", privkeyfile); ++ goto fail; ++ } ++ ++ SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); ++ SSL_CTX_set_verify_depth(ctx, 5); ++ SSL_CTX_set_verify(ctx, ++ SSL_VERIFY_PEER | ++ SSL_VERIFY_FAIL_IF_NO_PEER_CERT, ++ &ssl_verify_callback); ++ ++ if (crl_dir) { ++ if (!(certstore = SSL_CTX_get_cert_store(ctx))) { ++ error("EAP-TLS: Failed to get certificate store"); ++ goto fail; ++ } ++ ++ if (!(lookup = ++ X509_STORE_add_lookup(certstore, X509_LOOKUP_hash_dir()))) { ++ error("EAP-TLS: Store lookup for CRL failed"); ++ ++ goto fail; ++ } ++ ++ X509_LOOKUP_add_dir(lookup, crl_dir, X509_FILETYPE_PEM); ++ X509_STORE_set_flags(certstore, X509_V_FLAG_CRL_CHECK); ++ } ++ ++ /* ++ * If a peer certificate file was specified, it must be valid, else fail ++ */ ++ if (peer_certfile[0]) { ++ if (!(tmp = get_X509_from_file(peer_certfile))) { ++ error("EAP-TLS: Error loading client certificate from file %s", ++ peer_certfile); ++ goto fail; ++ } ++ X509_free(tmp); ++ } ++ ++ return ctx; ++ ++fail: ++ log_ssl_errors(); ++ SSL_CTX_free(ctx); ++ return NULL; ++} ++ ++/* ++ * Determine the maximum packet size by looking at the LCP handshake ++ */ ++ ++int eaptls_get_mtu(int unit) ++{ ++ int mtu, mru; ++ ++ lcp_options *wo = &lcp_wantoptions[unit]; ++ lcp_options *go = &lcp_gotoptions[unit]; ++ lcp_options *ho = &lcp_hisoptions[unit]; ++ lcp_options *ao = &lcp_allowoptions[unit]; ++ ++ mtu = ho->neg_mru? ho->mru: PPP_MRU; ++ mru = go->neg_mru? MAX(wo->mru, go->mru): PPP_MRU; ++ mtu = MIN(MIN(mtu, mru), ao->mru)- PPP_HDRLEN - 10; ++ ++ dbglog("MTU = %d", mtu); ++ return mtu; ++} ++ ++ ++/* ++ * Init the ssl handshake (server mode) ++ */ ++int eaptls_init_ssl_server(eap_state * esp) ++{ ++ struct eaptls_session *ets; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ /* ++ * Allocate new eaptls session ++ */ ++ esp->es_server.ea_session = malloc(sizeof(struct eaptls_session)); ++ if (!esp->es_server.ea_session) ++ fatal("Allocation error"); ++ ets = esp->es_server.ea_session; ++ ++ if (!esp->es_server.ea_peer) { ++ error("EAP-TLS: Error: client name not set (BUG)"); ++ return 0; ++ } ++ ++ strncpy(ets->peer, esp->es_server.ea_peer, MAXWORDLEN); ++ ++ dbglog( "getting eaptls secret" ); ++ if (!get_eaptls_secret(esp->es_unit, esp->es_server.ea_peer, ++ esp->es_server.ea_name, clicertfile, ++ servcertfile, cacertfile, pkfile, 1)) { ++ error( "EAP-TLS: Cannot get secret/password for client \"%s\", server \"%s\"", ++ esp->es_server.ea_peer, esp->es_server.ea_name ); ++ return 0; ++ } ++ ++ ets->mtu = eaptls_get_mtu(esp->es_unit); ++ ++ ets->ctx = eaptls_init_ssl(1, cacertfile, servcertfile, clicertfile, pkfile); ++ if (!ets->ctx) ++ goto fail; ++ ++ if (!(ets->ssl = SSL_new(ets->ctx))) ++ goto fail; ++ ++ /* ++ * Set auto-retry to avoid timeouts on BIO_read ++ */ ++ SSL_set_mode(ets->ssl, SSL_MODE_AUTO_RETRY); ++ ++ /* ++ * Initialize the BIOs we use to read/write to ssl engine ++ */ ++ ets->into_ssl = BIO_new(BIO_s_mem()); ++ ets->from_ssl = BIO_new(BIO_s_mem()); ++ SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl); ++ ++ SSL_set_msg_callback(ets->ssl, ssl_msg_callback); ++ SSL_set_msg_callback_arg(ets->ssl, ets); ++ ++ /* ++ * Attach the session struct to the connection, so we can later ++ * retrieve it when doing certificate verification ++ */ ++ SSL_set_ex_data(ets->ssl, 0, ets); ++ ++ SSL_set_accept_state(ets->ssl); ++ ++ ets->data = NULL; ++ ets->datalen = 0; ++ ets->alert_sent = 0; ++ ets->alert_recv = 0; ++ ++ /* ++ * If we specified the client certificate file, store it in ets->peercertfile, ++ * so we can check it later in ssl_verify_callback() ++ */ ++ if (clicertfile[0]) ++ strncpy(&ets->peercertfile[0], clicertfile, MAXWORDLEN); ++ else ++ ets->peercertfile[0] = 0; ++ ++ return 1; ++ ++fail: ++ SSL_CTX_free(ets->ctx); ++ return 0; ++} ++ ++/* ++ * Init the ssl handshake (client mode) ++ */ ++int eaptls_init_ssl_client(eap_state * esp) ++{ ++ struct eaptls_session *ets; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ ++ /* ++ * Allocate new eaptls session ++ */ ++ esp->es_client.ea_session = malloc(sizeof(struct eaptls_session)); ++ if (!esp->es_client.ea_session) ++ fatal("Allocation error"); ++ ets = esp->es_client.ea_session; ++ ++ /* ++ * If available, copy server name in ets; it will be used in cert ++ * verify ++ */ ++ if (esp->es_client.ea_peer) ++ strncpy(ets->peer, esp->es_client.ea_peer, MAXWORDLEN); ++ else ++ ets->peer[0] = 0; ++ ++ ets->mtu = eaptls_get_mtu(esp->es_unit); ++ ++ dbglog( "calling get_eaptls_secret" ); ++ if (!get_eaptls_secret(esp->es_unit, esp->es_client.ea_name, ++ esp->es_client.ea_peer, clicertfile, ++ servcertfile, cacertfile, pkfile, 0)) { ++ error( "EAP-TLS: Cannot get secret/password for client \"%s\", server \"%s\"", ++ esp->es_client.ea_name, esp->es_client.ea_peer ); ++ return 0; ++ } ++ ++ dbglog( "calling eaptls_init_ssl" ); ++ ets->ctx = eaptls_init_ssl(0, cacertfile, clicertfile, servcertfile, pkfile); ++ if (!ets->ctx) ++ goto fail; ++ ++ ets->ssl = SSL_new(ets->ctx); ++ ++ if (!ets->ssl) ++ goto fail; ++ ++ /* ++ * Initialize the BIOs we use to read/write to ssl engine ++ */ ++ dbglog( "Initializing SSL BIOs" ); ++ ets->into_ssl = BIO_new(BIO_s_mem()); ++ ets->from_ssl = BIO_new(BIO_s_mem()); ++ SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl); ++ ++ SSL_set_msg_callback(ets->ssl, ssl_msg_callback); ++ SSL_set_msg_callback_arg(ets->ssl, ets); ++ ++ /* ++ * Attach the session struct to the connection, so we can later ++ * retrieve it when doing certificate verification ++ */ ++ SSL_set_ex_data(ets->ssl, 0, ets); ++ ++ SSL_set_connect_state(ets->ssl); ++ ++ ets->data = NULL; ++ ets->datalen = 0; ++ ets->alert_sent = 0; ++ ets->alert_recv = 0; ++ ++ /* ++ * If we specified the server certificate file, store it in ++ * ets->peercertfile, so we can check it later in ++ * ssl_verify_callback() ++ */ ++ if (servcertfile[0]) ++ strncpy(ets->peercertfile, servcertfile, MAXWORDLEN); ++ else ++ ets->peercertfile[0] = 0; ++ ++ return 1; ++ ++fail: ++ dbglog( "eaptls_init_ssl_client: fail" ); ++ SSL_CTX_free(ets->ctx); ++ return 0; ++ ++} ++ ++void eaptls_free_session(struct eaptls_session *ets) ++{ ++ if (ets->ssl) ++ SSL_free(ets->ssl); ++ ++ if (ets->ctx) ++ SSL_CTX_free(ets->ctx); ++ ++ free(ets); ++} ++ ++/* ++ * Handle a received packet, reassembling fragmented messages and ++ * passing them to the ssl engine ++ */ ++int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len) ++{ ++ u_char flags; ++ u_int tlslen; ++ u_char dummy[65536]; ++ ++ GETCHAR(flags, inp); ++ len--; ++ ++ if (flags & EAP_TLS_FLAGS_LI && !ets->data) { ++ ++ /* ++ * This is the first packet of a message ++ */ ++ ++ GETLONG(tlslen, inp); ++ len -= 4; ++ ++ if (tlslen > EAP_TLS_MAX_LEN) { ++ error("Error: tls message length > %d, truncated", ++ EAP_TLS_MAX_LEN); ++ tlslen = EAP_TLS_MAX_LEN; ++ } ++ ++ /* ++ * Allocate memory for the whole message ++ */ ++ ets->data = malloc(tlslen); ++ if (!ets->data) ++ fatal("EAP TLS: allocation error\n"); ++ ++ ets->datalen = 0; ++ ets->tlslen = tlslen; ++ ++ } ++ else if (flags & EAP_TLS_FLAGS_LI && ets->data) { ++ /* ++ * Non first with LI (strange...) ++ */ ++ ++ GETLONG(tlslen, inp); ++ len -= 4; ++ ++ } ++ else if (!ets->data) { ++ /* ++ * A non fragmented message without LI flag ++ */ ++ ++ ets->data = malloc(len); ++ if (!ets->data) ++ fatal("EAP TLS: allocation error\n"); ++ ++ ets->datalen = 0; ++ ets->tlslen = len; ++ } ++ ++ if (flags & EAP_TLS_FLAGS_MF) ++ ets->frag = 1; ++ else ++ ets->frag = 0; ++ ++ if (len + ets->datalen > ets->tlslen) { ++ warn("EAP TLS: received data > TLS message length"); ++ return 1; ++ } ++ ++ BCOPY(inp, ets->data + ets->datalen, len); ++ ets->datalen += len; ++ ++ if (!ets->frag) { ++ ++ /* ++ * If we have the whole message, pass it to ssl ++ */ ++ ++ if (ets->datalen != ets->tlslen) { ++ warn("EAP TLS: received data != TLS message length"); ++ return 1; ++ } ++ ++ if (BIO_write(ets->into_ssl, ets->data, ets->datalen) == -1) ++ log_ssl_errors(); ++ ++ SSL_read(ets->ssl, dummy, 65536); ++ ++ free(ets->data); ++ ets->data = NULL; ++ ets->datalen = 0; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Return an eap-tls packet in outp. ++ * A TLS message read from the ssl engine is buffered in ets->data. ++ * At each call we control if there is buffered data and send a ++ * packet of mtu bytes. ++ */ ++int eaptls_send(struct eaptls_session *ets, u_char ** outp) ++{ ++ bool first = 0; ++ int size; ++ u_char fromtls[65536]; ++ int res; ++ u_char *start; ++ ++ start = *outp; ++ ++ if (!ets->data) { ++ ++ if(!ets->alert_sent) ++ SSL_read(ets->ssl, fromtls, 65536); ++ ++ /* ++ * Read from ssl ++ */ ++ if ((res = BIO_read(ets->from_ssl, fromtls, 65536)) == -1) ++ fatal("No data from BIO_read"); ++ ++ ets->datalen = res; ++ ++ ets->data = malloc(ets->datalen); ++ BCOPY(fromtls, ets->data, ets->datalen); ++ ++ ets->offset = 0; ++ first = 1; ++ ++ } ++ ++ size = ets->datalen - ets->offset; ++ ++ if (size > ets->mtu) { ++ size = ets->mtu; ++ ets->frag = 1; ++ } else ++ ets->frag = 0; ++ ++ PUTCHAR(EAPT_TLS, *outp); ++ ++ /* ++ * Set right flags and length if necessary ++ */ ++ if (ets->frag && first) { ++ PUTCHAR(EAP_TLS_FLAGS_LI | EAP_TLS_FLAGS_MF, *outp); ++ PUTLONG(ets->datalen, *outp); ++ } else if (ets->frag) { ++ PUTCHAR(EAP_TLS_FLAGS_MF, *outp); ++ } else ++ PUTCHAR(0, *outp); ++ ++ /* ++ * Copy the data in outp ++ */ ++ BCOPY(ets->data + ets->offset, *outp, size); ++ INCPTR(size, *outp); ++ ++ /* ++ * Copy the packet in retransmission buffer ++ */ ++ BCOPY(start, &ets->rtx[0], *outp - start); ++ ets->rtx_len = *outp - start; ++ ++ ets->offset += size; ++ ++ if (ets->offset >= ets->datalen) { ++ ++ /* ++ * The whole message has been sent ++ */ ++ ++ free(ets->data); ++ ets->data = NULL; ++ ets->datalen = 0; ++ ets->offset = 0; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Get the sent packet from the retransmission buffer ++ */ ++void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp) ++{ ++ BCOPY(ets->rtx, *outp, ets->rtx_len); ++ INCPTR(ets->rtx_len, *outp); ++} ++ ++/* ++ * Verify a certificate. ++ * Most of the work (signatures and issuer attributes checking) ++ * is done by ssl; we check the CN in the peer certificate ++ * against the peer name. ++ */ ++int ssl_verify_callback(int preverify_ok, X509_STORE_CTX * ctx) ++{ ++ char subject[256]; ++ char cn_str[256]; ++ X509 *peer_cert; ++ int err, depth; ++ int ok = preverify_ok; ++ SSL *ssl; ++ struct eaptls_session *ets; ++ ++ peer_cert = X509_STORE_CTX_get_current_cert(ctx); ++ err = X509_STORE_CTX_get_error(ctx); ++ depth = X509_STORE_CTX_get_error_depth(ctx); ++ ++ dbglog("certificate verify depth: %d", depth); ++ ++ if (auth_required && !ok) { ++ X509_NAME_oneline(X509_get_subject_name(peer_cert), ++ subject, 256); ++ ++ X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert), ++ NID_commonName, cn_str, 256); ++ ++ dbglog("Certificate verification error:\n depth: %d CN: %s" ++ "\n err: %d (%s)\n", depth, cn_str, err, ++ X509_verify_cert_error_string(err)); ++ ++ return 0; ++ } ++ ++ ssl = X509_STORE_CTX_get_ex_data(ctx, ++ SSL_get_ex_data_X509_STORE_CTX_idx()); ++ ++ ets = (struct eaptls_session *)SSL_get_ex_data(ssl, 0); ++ ++ if (ets == NULL) { ++ error("Error: SSL_get_ex_data returned NULL"); ++ return 0; ++ } ++ ++ log_ssl_errors(); ++ ++ if (!depth) { /* This is the peer certificate */ ++ ++ X509_NAME_oneline(X509_get_subject_name(peer_cert), ++ subject, 256); ++ ++ X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert), ++ NID_commonName, cn_str, 256); ++ ++ /* ++ * If acting as client and the name of the server wasn't specified ++ * explicitely, we can't verify the server authenticity ++ */ ++ if (!ets->peer[0]) { ++ warn("Peer name not specified: no check"); ++ return 1; ++ } ++ ++ /* ++ * Check the CN ++ */ ++ if (strcmp(cn_str, ets->peer)) { ++ error ++ ("Certificate verification error: CN (%s) != peer_name (%s)", ++ cn_str, ets->peer); ++ return 0; ++ } ++ ++ warn("Certificate CN: %s , peer name %s", cn_str, ets->peer); ++ ++ /* ++ * If a peer certificate file was specified, here we check it ++ */ ++ if (ets->peercertfile[0]) { ++ if (ssl_cmp_certs(&ets->peercertfile[0], peer_cert) ++ != 0) { ++ error ++ ("Peer certificate doesn't match stored certificate"); ++ return 0; ++ } ++ } ++ } ++ ++ return 1; ++} ++ ++/* ++ * Compare a certificate with the one stored in a file ++ */ ++int ssl_cmp_certs(char *filename, X509 * a) ++{ ++ X509 *b; ++ int ret; ++ ++ if (!(b = get_X509_from_file(filename))) ++ return 1; ++ ++ ret = X509_cmp(a, b); ++ X509_free(b); ++ ++ return ret; ++ ++} ++ ++X509 *get_X509_from_file(char *filename) ++{ ++ FILE *fp; ++ X509 *ret; ++ ++ if (!(fp = fopen(filename, "r"))) ++ return NULL; ++ ++ ret = PEM_read_X509(fp, NULL, NULL, NULL); ++ ++ fclose(fp); ++ ++ return ret; ++} ++ ++/* ++ * Every sent & received message this callback function is invoked, ++ * so we know when alert messages have arrived or are sent and ++ * we can print debug information about TLS handshake. ++ */ ++void ++ssl_msg_callback(int write_p, int version, int content_type, ++ const void *buf, size_t len, SSL * ssl, void *arg) ++{ ++ char string[256]; ++ struct eaptls_session *ets = (struct eaptls_session *)arg; ++ unsigned char code; ++ ++ if(write_p) ++ strcpy(string, " -> "); ++ else ++ strcpy(string, " <- "); ++ ++ ++ switch(content_type) { ++ ++ case SSL3_RT_ALERT: ++ strcat(string, "Alert: "); ++ code = ((const unsigned char *)buf)[1]; ++ ++ if (write_p) { ++ ets->alert_sent = 1; ++ ets->alert_sent_desc = code; ++ } else { ++ ets->alert_recv = 1; ++ ets->alert_recv_desc = code; ++ } ++ ++ strcat(string, SSL_alert_desc_string_long(code)); ++ break; ++ ++ case SSL3_RT_CHANGE_CIPHER_SPEC: ++ strcat(string, "ChangeCipherSpec"); ++ break; ++ ++ case SSL3_RT_HANDSHAKE: ++ ++ strcat(string, "Handshake: "); ++ code = ((const unsigned char *)buf)[0]; ++ ++ switch(code) { ++ case SSL3_MT_HELLO_REQUEST: ++ strcat(string,"Hello Request"); ++ break; ++ case SSL3_MT_CLIENT_HELLO: ++ strcat(string,"Client Hello"); ++ break; ++ case SSL3_MT_SERVER_HELLO: ++ strcat(string,"Server Hello"); ++ break; ++ case SSL3_MT_CERTIFICATE: ++ strcat(string,"Certificate"); ++ break; ++ case SSL3_MT_SERVER_KEY_EXCHANGE: ++ strcat(string,"Server Key Exchange"); ++ break; ++ case SSL3_MT_CERTIFICATE_REQUEST: ++ strcat(string,"Certificate Request"); ++ break; ++ case SSL3_MT_SERVER_DONE: ++ strcat(string,"Server Hello Done"); ++ break; ++ case SSL3_MT_CERTIFICATE_VERIFY: ++ strcat(string,"Certificate Verify"); ++ break; ++ case SSL3_MT_CLIENT_KEY_EXCHANGE: ++ strcat(string,"Client Key Exchange"); ++ break; ++ case SSL3_MT_FINISHED: ++ strcat(string,"Finished"); ++ break; ++ ++ default: ++ sprintf( string, "Handshake: Unknown SSL3 code received: %d", code ); ++ } ++ break; ++ ++ default: ++ sprintf( string, "SSL message contains unknown content type: %d", content_type ); ++ ++ } ++ ++ /* Alert messages must always be displayed */ ++ if(content_type == SSL3_RT_ALERT) ++ error("%s", string); ++ else ++ dbglog("%s", string); ++} ++ +--- ppp-2.4.6/pppd/eap-tls.h ++++ ppp-2.4.6/pppd/eap-tls.h +@@ -0,0 +1,107 @@ ++/* ++ * eap-tls.h ++ * ++ * Copyright (c) Beniamino Galvani 2005 All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * 3. The name(s) of the authors of this software must not be used to ++ * endorse or promote products derived from this software without ++ * prior written permission. ++ * ++ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO ++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ * ++ */ ++ ++#ifndef __EAP_TLS_H__ ++#define __EAP_TLS_H__ ++ ++#include "eap.h" ++ ++#include ++#include ++#include ++ ++#define EAP_TLS_FLAGS_LI 128 /* length included flag */ ++#define EAP_TLS_FLAGS_MF 64 /* more fragments flag */ ++#define EAP_TLS_FLAGS_START 32 /* start flag */ ++ ++#define EAP_TLS_MAX_LEN 65536 /* max eap tls packet size */ ++ ++struct eaptls_session ++{ ++ u_char *data; /* buffered data */ ++ int datalen; /* buffered data len */ ++ int offset; /* from where to send */ ++ int tlslen; /* total length of tls data */ ++ bool frag; /* packet is fragmented */ ++ SSL_CTX *ctx; ++ SSL *ssl; /* ssl connection */ ++ BIO *from_ssl; ++ BIO *into_ssl; ++ char peer[MAXWORDLEN]; /* peer name */ ++ char peercertfile[MAXWORDLEN]; ++ bool alert_sent; ++ u_char alert_sent_desc; ++ bool alert_recv; ++ u_char alert_recv_desc; ++ char rtx[65536]; /* retransmission buffer */ ++ int rtx_len; ++ int mtu; /* unit mtu */ ++}; ++ ++typedef struct pw_cb_data ++{ ++ const void *password; ++ const char *prompt_info; ++} PW_CB_DATA; ++ ++ ++int ssl_verify_callback(int, X509_STORE_CTX *); ++void ssl_msg_callback(int write_p, int version, int ct, const void *buf, ++ size_t len, SSL * ssl, void *arg); ++ ++X509 *get_X509_from_file(char *filename); ++int ssl_cmp_certs(char *filename, X509 * a); ++ ++SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, ++ char *certfile, char *peer_certfile, char *privkeyfile); ++int eaptls_init_ssl_server(eap_state * esp); ++int eaptls_init_ssl_client(eap_state * esp); ++void eaptls_free_session(struct eaptls_session *ets); ++ ++int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len); ++int eaptls_send(struct eaptls_session *ets, u_char ** outp); ++void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp); ++ ++int get_eaptls_secret(int unit, char *client, char *server, ++ char *clicertfile, char *servcertfile, char *cacertfile, ++ char *pkfile, int am_server); ++ ++#ifdef MPPE ++#include "mppe.h" /* MPPE_MAX_KEY_LEN */ ++extern u_char mppe_send_key[MPPE_MAX_KEY_LEN]; ++extern u_char mppe_recv_key[MPPE_MAX_KEY_LEN]; ++extern int mppe_keys_set; ++ ++void eaptls_gen_mppe_keys(struct eaptls_session *ets, const char *prf_label, int client); ++ ++#endif ++ ++#endif +--- ppp-2.4.6/pppd/Makefile.linux ++++ ppp-2.4.6/pppd/Makefile.linux +@@ -76,6 +76,9 @@ + # Use libutil + USE_LIBUTIL=y + ++# Enable EAP-TLS authentication (requires libssl and libcrypto) ++USE_EAPTLS=y ++ + MAXOCTETS=y + + INCLUDE_DIRS= -I../include +@@ -115,6 +118,15 @@ + PPPDOBJS += sha1.o + endif + ++# EAP-TLS ++ifdef USE_EAPTLS ++CFLAGS += -DUSE_EAPTLS=1 -I/usr/kerberos/include ++LIBS += -lssl -lcrypto ++PPPDSRC += eap-tls.c ++HEADERS += eap-tls.h ++PPPDOBJS += eap-tls.o ++endif ++ + ifdef HAS_SHADOW + CFLAGS += -DHAS_SHADOW + #LIBS += -lshadow $(LIBS) +--- ppp-2.4.6/pppd/md5.c ++++ ppp-2.4.6/pppd/md5.c +@@ -33,6 +33,8 @@ + *********************************************************************** + */ + ++#ifndef USE_EAPTLS ++ + #include + #include "md5.h" + +@@ -305,3 +307,5 @@ + ** End of md5.c ** + ******************************** (cut) ******************************** + */ ++#endif /* USE_EAPTLS */ ++ +--- ppp-2.4.6/pppd/md5.h ++++ ppp-2.4.6/pppd/md5.h +@@ -36,6 +36,7 @@ + ** documentation and/or software. ** + *********************************************************************** + */ ++#ifndef USE_EAPTLS + + #ifndef __MD5_INCLUDE__ + +@@ -63,3 +64,5 @@ + + #define __MD5_INCLUDE__ + #endif /* __MD5_INCLUDE__ */ ++ ++#endif /* USE_EAPTLS */ +--- ppp-2.4.6/pppd/options.c ++++ ppp-2.4.6/pppd/options.c +@@ -122,6 +122,11 @@ + int child_wait = 5; /* # seconds to wait for children at exit */ + struct userenv *userenv_list; /* user environment variables */ + ++#ifdef USE_EAPTLS ++bool only_update_crl_server = 0; /* update server crl and exit */ ++bool only_update_crl_client = 0; /* update client crl and exit */ ++#endif /* USE_EAPTLS */ ++ + #ifdef MAXOCTETS + unsigned int maxoctets = 0; /* default - no limit */ + int maxoctets_dir = 0; /* default - sum of traffic */ +@@ -338,6 +343,12 @@ + { "mo-timeout", o_int, &maxoctets_timeout, + "Check for traffic limit every N seconds", OPT_PRIO | OPT_LLIMIT | 1 }, + #endif ++#ifdef USE_EAPTLS ++ { "only-update-crl-server", o_bool, &only_update_crl_server, ++ "Update server CA CRLs and exit", 1 }, ++ { "only-update-crl-client", o_bool, &only_update_crl_client, ++ "Update client CA CRLs and exit", 1 }, ++#endif /* USE_EAPTLS */ + + { NULL } + }; +--- ppp-2.4.6/pppd/pathnames.h ++++ ppp-2.4.6/pppd/pathnames.h +@@ -21,6 +21,13 @@ + #define _PATH_UPAPFILE _ROOT_PATH "/etc/ppp/pap-secrets" + #define _PATH_CHAPFILE _ROOT_PATH "/etc/ppp/chap-secrets" + #define _PATH_SRPFILE _ROOT_PATH "/etc/ppp/srp-secrets" ++ ++#ifdef USE_EAPTLS ++#define _PATH_EAPTLSCLIFILE _ROOT_PATH "/etc/ppp/eaptls-client" ++#define _PATH_EAPTLSSERVFILE _ROOT_PATH "/etc/ppp/eaptls-server" ++#define _PATH_OPENSSLCONFFILE _ROOT_PATH "/etc/ppp/openssl.cnf" ++#endif /* USE_EAPTLS */ ++ + #define _PATH_SYSOPTIONS _ROOT_PATH "/etc/ppp/options" + #define _PATH_IPUP _ROOT_PATH "/etc/ppp/ip-up" + #define _PATH_IPDOWN _ROOT_PATH "/etc/ppp/ip-down" +--- ppp-2.4.6/pppd/plugins/Makefile.linux ++++ ppp-2.4.6/pppd/plugins/Makefile.linux +@@ -4,6 +4,9 @@ + LDFLAGS = -shared + INSTALL = install + ++# EAP-TLS ++CFLAGS += -DUSE_EAPTLS=1 ++ + DESTDIR = $(INSTROOT)@DESTDIR@ + BINDIR = $(DESTDIR)/sbin + MANDIR = $(DESTDIR)/share/man/man8 +--- ppp-2.4.6/pppd/plugins/passprompt.c ++++ ppp-2.4.6/pppd/plugins/passprompt.c +@@ -107,4 +107,7 @@ + { + add_options(options); + pap_passwd_hook = promptpass; ++#ifdef USE_EAPTLS ++ eaptls_passwd_hook = promptpass; ++#endif + } +--- ppp-2.4.6/pppd/plugins/passwordfd.c ++++ ppp-2.4.6/pppd/plugins/passwordfd.c +@@ -79,4 +79,8 @@ + + chap_check_hook = pwfd_check; + chap_passwd_hook = pwfd_passwd; ++ ++#ifdef USE_EAPTLS ++ eaptls_passwd_hook = pwfd_passwd; ++#endif + } +--- ppp-2.4.6/pppd/pppd.h ++++ ppp-2.4.6/pppd/pppd.h +@@ -324,6 +324,10 @@ + extern bool dryrun; /* check everything, print options, exit */ + extern int child_wait; /* # seconds to wait for children at end */ + ++#ifdef USE_EAPTLS ++extern char *crl_dir; ++#endif /* USE_EAPTLS */ ++ + #ifdef MAXOCTETS + extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */ + extern int maxoctets_dir; /* Direction : +@@ -738,6 +742,10 @@ + extern int (*chap_passwd_hook) __P((char *user, char *passwd)); + extern void (*multilink_join_hook) __P((void)); + ++#ifdef USE_EAPTLS ++extern int (*eaptls_passwd_hook) __P((char *user, char *passwd)); ++#endif ++ + /* Let a plugin snoop sent and received packets. Useful for L2TP */ + extern void (*snoop_recv_hook) __P((unsigned char *p, int len)); + extern void (*snoop_send_hook) __P((unsigned char *p, int len)); +--- ppp-2.4.6/README.eap-tls ++++ ppp-2.4.6/README.eap-tls +@@ -0,0 +1,169 @@ ++EAP-TLS authentication support for PPP ++====================================== ++ ++1. Intro ++ ++ The Extensible Authentication Protocol (EAP; RFC 3748) is a ++ security protocol that can be used with PPP. It provides a means ++ to plug in multiple optional authentication methods. ++ ++ Transport Level Security (TLS; RFC 2246) provides for mutual ++ authentication, integrity-protected ciphersuite negotiation and ++ key exchange between two endpoints. It also provides for optional ++ MPPE encryption. ++ ++ EAP-TLS (RFC 2716) incapsulates the TLS messages in EAP packets, ++ allowing TLS mutual authentication to be used as a generic EAP ++ mechanism. It also provides optional encryption using the MPPE ++ protocol. ++ ++ This patch provide EAP-TLS support to pppd. ++ This authentication method can be used in both client or server ++ mode. ++ ++2. Building ++ ++ To build pppd with EAP-TLS support, OpenSSL (http://www.openssl.org) ++ is required. Any version from 0.9.7 should work. ++ ++ Configure, compile, and install as usual. ++ ++3. Configuration ++ ++ On the client side there are two ways to configure EAP-TLS: ++ ++ 1. supply the appropriate 'ca', 'cert' and 'key' command-line parameters ++ ++ 2. edit the /etc/ppp/eaptls-client file. ++ Insert a line for each system with which you use EAP-TLS. ++ The line is composed of this fields separated by tab: ++ ++ - Client name ++ The name used by the client for authentication, can be * ++ - Server name ++ The name of the server, can be * ++ - Client certificate file ++ The file containing the certificate chain for the ++ client in PEM format ++ - Server certificate file ++ If you want to specify the certificate that the ++ server is allowed to use, put the certificate file name. ++ Else put a dash '-'. ++ - CA certificate file ++ The file containing the trusted CA certificates in PEM ++ format. ++ - Client private key file ++ The file containing the client private key in PEM format. ++ ++ ++ On the server side edit the /etc/ppp/eaptls-server file. ++ Insert a line for each system with which you use EAP-TLS. ++ The line is composed of this fields separated by tab: ++ ++ - Client name ++ The name used by the client for authentication, can be * ++ - Server name ++ The name of the server, can be * ++ - Client certificate file ++ If you want to specify the certificate that the ++ client is allowed to use, put the certificate file name. ++ Else put a dash '-'. ++ - Server certificate file ++ The file containing the certificate chain for the ++ server in PEM format ++ - CA certificate file ++ The file containing the trusted CA certificates in PEM ++ format. ++ - Client private key file ++ The file containing the server private key in PEM format. ++ - addresses ++ A list of IP addresses the client is allowed to use. ++ ++ ++ OpenSSL engine support is included starting with v0.95 of this patch. ++ Currently the only engine tested is the 'pkcs11' engine (hardware token ++ support). To use the 'pksc11' engine: ++ - Use a special private key fileiname in the /etc/ppp/eaptls-client file: ++ : ++ e.g. ++ pkcs11:123456 ++ ++ - The certificate can also be loaded from the 'pkcs11' engine using ++ a special client certificate filename in the /etc/ppp/eaptls-client file: ++ : ++ e.g. ++ pkcs11:123456 ++ ++ - Create an /etc/ppp/openssl.cnf file to load the right OpenSSL engine prior ++ to starting 'pppd'. A sample openssl.cnf file is ++ ++ openssl_conf = openssl_def ++ ++ [ openssl_def ] ++ engines = engine_section ++ ++ [ engine_section ] ++ pkcs11 = pkcs11_section ++ ++ [ pkcs11_section ] ++ engine_id = pkcs11 ++ dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so ++ MODULE_PATH = /usr/lib64/libeTPkcs11.so ++ init = 0 ++ ++ - There are two ways to specify a password/PIN for the PKCS11 engine: ++ - inside the openssl.cnf file using ++ PIN = your-secret-pin ++ Note The keyword 'PIN' is case sensitive! ++ - Using the 'password' in the ppp options file. ++ From v0.97 of the eap-tls patch the password can also be supplied ++ using the appropriate 'eaptls_passwd_hook' (see plugins/passprompt.c ++ for an example). ++ ++ ++4. Options ++ ++ These pppd options are available: ++ ++ ca ++ Use the CA public certificate found in in PEM format ++ cert ++ Use the client public certificate found in in PEM format ++ or in engine:engine_id format ++ key ++ Use the client private key found in in PEM format ++ or in engine:engine_id format ++ crl-dir ++ Use CRL files from dir. It contains CRL files in PEM ++ format and each file contains a CRL. The files are looked up ++ by the issuer name hash value. Use the c_rehash utility ++ to create necessary links. ++ need-peer-eap ++ If the peer doesn't ask us to authenticate or doesn't use eap ++ to authenticate us, disconnect. ++ ++ Note: ++ password-encrypted certificates can be used as of v0.94 of this ++ patch. The password for the eap-tls.key file is specified using ++ the regular ++ password .... ++ statement in the ppp options file, or by using the appropriate ++ plugin which supplies a 'eaptls_passwd_hook' routine. ++ ++5. Connecting ++ ++ If you're setting up a pppd server, edit the EAP-TLS configuration file ++ as written above and then run pppd with the 'auth' option to authenticate ++ the client. The EAP-TLS method will be used if the other eap methods can't ++ be used (no secrets). ++ ++ If you're setting up a client, edit the configuration file and then run ++ pppd with 'remotename' option to specify the server name. Add the ++ 'need-peer-eap' option if you want to be sure the peer ask you to ++ authenticate (and to use eap) and to disconnect if it doesn't. ++ ++6. Notes ++ ++ This is experimental code. ++ Send suggestions and comments to Jan Just Keijser ++ diff --git a/network/connection/ppp/files/gentoo/85_all_dhcp-make-vars.patch b/network/connection/ppp/files/gentoo/85_all_dhcp-make-vars.patch new file mode 100644 index 0000000000..68af3aaf30 --- /dev/null +++ b/network/connection/ppp/files/gentoo/85_all_dhcp-make-vars.patch @@ -0,0 +1,19 @@ +--- ppp-2.4.3/pppd/plugins/dhcp/Makefile.linux ++++ ppp-2.4.3/pppd/plugins/dhcp/Makefile.linux +@@ -1,6 +1,6 @@ + + PLUGIN=dhcpc.so +-CFLAGS=-I../.. -I../../../include -O2 ++CFLAGS=$(COPTS) -I../.. -I../../../include -fPIC + + all: $(PLUGIN) + +@@ -9,7 +9,7 @@ + $(INSTALL) -s -c -m 755 dhcpc.so $(LIBDIR) + + dhcpc.so: dhcpc.o clientpacket.o packet.o socket.o options.o +- gcc -o dhcpc.so -shared dhcpc.o clientpacket.o packet.o socket.o options.o ++ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^ + + + clean: diff --git a/network/connection/ppp/files/gentoo/86_all_dhcp-sys_error_to_strerror.patch b/network/connection/ppp/files/gentoo/86_all_dhcp-sys_error_to_strerror.patch new file mode 100644 index 0000000000..e0d0937b2f --- /dev/null +++ b/network/connection/ppp/files/gentoo/86_all_dhcp-sys_error_to_strerror.patch @@ -0,0 +1,128 @@ +--- ppp-2.4.2/pppd/plugins/dhcp/dhcpc.c ++++ ppp-2.4.2/pppd/plugins/dhcp/dhcpc.c +@@ -144,7 +144,7 @@ + fd = raw_socket(client_config.ifindex); + + if (listen_mode != LISTEN_NONE && fd < 0) { +- fatal("DHCPC: couldn't listen on socket, %s", sys_errlist[errno]); ++ fatal("DHCPC: couldn't listen on socket, %s", strerror(errno)); + } + + } +@@ -208,7 +208,7 @@ + len = get_packet(&packet, fd); + + if (len == -1 && errno != EINTR) { +- dbglog("DHCPC: error on read, %s, reopening socket", sys_errlist[errno]); ++ dbglog("DHCPC: error on read, %s, reopening socket", strerror(errno)); + change_mode(LISTEN_KERNEL); + } + if (len < 0) continue; +@@ -380,7 +380,7 @@ + else len = get_raw_packet(&packet, fd); + + if (len == -1 && errno != EINTR) { +- dbglog("DHCPC: error on read, %s, reopening socket", sys_errlist[errno]); ++ dbglog("DHCPC: error on read, %s, reopening socket", strerror(errno)); + change_mode(listen_mode); /* just close and reopen */ + } + if (len < 0) continue; +@@ -445,7 +445,7 @@ + + } else { + /* An error occured */ +- dbglog("DHCPC: error on select, %s, reopening socket", sys_errlist[errno]); ++ dbglog("DHCPC: error on select, %s, reopening socket", strerror(errno)); + change_mode(listen_mode); /* just close and reopen */ + } + +--- ppp-2.4.2/pppd/plugins/dhcp/packet.c ++++ ppp-2.4.2/pppd/plugins/dhcp/packet.c +@@ -125,7 +125,7 @@ + return kernel_packet(payload,payload->giaddr,CLIENT_PORT,dest_ip,dest_port); + + if ((fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))) < 0) { +- DEBUG(LOG_ERR, "socket call failed: %s", sys_errlist[errno]); ++ DEBUG(LOG_ERR, "socket call failed: %s", strerror(errno)); + return -1; + } + +@@ -138,7 +138,7 @@ + dest.sll_halen = 6; + memcpy(dest.sll_addr, dest_arp, 6); + if (bind(fd, (struct sockaddr *)&dest, sizeof(struct sockaddr_ll)) < 0) { +- DEBUG(LOG_ERR, "bind call failed: %s", sys_errlist[errno]); ++ DEBUG(LOG_ERR, "bind call failed: %s", strerror(errno)); + close(fd); + return -1; + } +@@ -161,7 +161,7 @@ + + result = sendto(fd, &packet, sizeof(struct udp_dhcp_packet), 0, (struct sockaddr *) &dest, sizeof(dest)); + if (result <= 0) { +- DEBUG(LOG_ERR, "write on socket failed: %s", sys_errlist[errno]); ++ DEBUG(LOG_ERR, "write on socket failed: %s", strerror(errno)); + } + close(fd); + return result; +--- ppp-2.4.2/pppd/plugins/dhcp/socket.c ++++ ppp-2.4.2/pppd/plugins/dhcp/socket.c +@@ -60,7 +60,7 @@ + *addr = sin->sin_addr.s_addr; + DEBUG(LOG_INFO, "%s (our ip) = %s", ifr.ifr_name, inet_ntoa(sin->sin_addr)); + } else { +- LOG(LOG_ERR, "SIOCGIFADDR failed!: %s", sys_errlist[errno]); ++ LOG(LOG_ERR, "SIOCGIFADDR failed!: %s", strerror(errno)); + return -1; + } + } +@@ -69,7 +69,7 @@ + DEBUG(LOG_INFO, "adapter index %d", ifr.ifr_ifindex); + *ifindex = ifr.ifr_ifindex; + } else { +- LOG(LOG_ERR, "SIOCGIFINDEX failed!: %s", sys_errlist[errno]); ++ LOG(LOG_ERR, "SIOCGIFINDEX failed!: %s", strerror(errno)); + return -1; + } + if (ioctl(fd, SIOCGIFHWADDR, &ifr) == 0) { +@@ -77,11 +77,11 @@ + DEBUG(LOG_INFO, "adapter hardware address %02x:%02x:%02x:%02x:%02x:%02x", + arp[0], arp[1], arp[2], arp[3], arp[4], arp[5]); + } else { +- LOG(LOG_ERR, "SIOCGIFHWADDR failed!: %s", sys_errlist[errno]); ++ LOG(LOG_ERR, "SIOCGIFHWADDR failed!: %s", strerror(errno)); + return -1; + } + } else { +- LOG(LOG_ERR, "socket failed!: %s", sys_errlist[errno]); ++ LOG(LOG_ERR, "socket failed!: %s", strerror(errno)); + return -1; + } + close(fd); +@@ -98,7 +98,7 @@ + + DEBUG(LOG_INFO, "Opening listen socket on 0x%08x:%d %s\n", ip, port, inf ? inf : "*"); + if ((fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) { +- DEBUG(LOG_ERR, "socket call failed: %s", sys_errlist[errno]); ++ DEBUG(LOG_ERR, "socket call failed: %s", strerror(errno)); + return -1; + } + +@@ -144,7 +144,7 @@ + + DEBUG(LOG_INFO, "Opening raw socket on ifindex %d\n", ifindex); + if ((fd = socket(PF_PACKET, SOCK_DGRAM, htons(ETH_P_IP))) < 0) { +- DEBUG(LOG_ERR, "socket call failed: %s", sys_errlist[errno]); ++ DEBUG(LOG_ERR, "socket call failed: %s", strerror(errno)); + return -1; + } + +@@ -152,7 +152,7 @@ + sock.sll_protocol = htons(ETH_P_IP); + sock.sll_ifindex = ifindex; + if (bind(fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) { +- DEBUG(LOG_ERR, "bind call failed: %s", sys_errlist[errno]); ++ DEBUG(LOG_ERR, "bind call failed: %s", strerror(errno)); + close(fd); + return -1; + } diff --git a/network/connection/ppp/files/ip-down b/network/connection/ppp/files/ip-down new file mode 100644 index 0000000000..77e05655a5 --- /dev/null +++ b/network/connection/ppp/files/ip-down @@ -0,0 +1,37 @@ +#!/bin/sh + +# this is a script which is executed after disconnecting the ppp interface. +# look at man pppd for details + +# the followings parameters are available: +# $1 = interface-name +# $2 = tty-device +# $3 = speed +# $4 = local-IP-address +# $5 = remote-IP-address +# $6 = ipparam + +if [ "$USEPEERDNS" ]; then + + # taken from debian's 0000usepeerdns + # follow any symlink to find the real file + REALRESOLVCONF=$(readlink --canonicalize /etc/resolv.conf) + + if [ "$REALRESOLVCONF" != "/etc/ppp/resolv.conf" ]; then + + # if an old resolv.conf file exists, restore it + if [ -e $REALRESOLVCONF.pppd-backup ]; then + mv $REALRESOLVCONF.pppd-backup $REALRESOLVCONF + fi + + fi + +fi + +# Recreate the default route so autodial works +[ -s /etc/conf.d/net ] && . /etc/conf.d/net +if [ -n "${gateway}" ] && [ "${gateway%/*}" = "$1" ]; then + /sbin/route add default dev ${gateway%/*} +fi + +[ -f /etc/ppp/ip-down.local ] && . /etc/ppp/ip-down.local "$@" diff --git a/network/connection/ppp/files/ip-up b/network/connection/ppp/files/ip-up new file mode 100644 index 0000000000..81fee89ec6 --- /dev/null +++ b/network/connection/ppp/files/ip-up @@ -0,0 +1,42 @@ +#!/bin/sh + +# this is a script which is executed after connecting the ppp interface. +# look at man pppd for details + +# the followings parameters are available: +# $1 = interface-name +# $2 = tty-device +# $3 = speed +# $4 = local-IP-address +# $5 = remote-IP-address +# $6 = ipparam + +if [ "$USEPEERDNS" ]; then + + # add the server supplied DNS entries to /etc/resolv.conf + # (taken from debian's 0000usepeerdns) + + # follow any symlink to find the real file + REALRESOLVCONF=$(readlink --canonicalize /etc/resolv.conf) + + if [ "$REALRESOLVCONF" != "/etc/ppp/resolv.conf" ]; then + + # merge the new nameservers with the other options from the old configuration + { + grep '^nameserver[[:space:]]' $REALRESOLVCONF + cat /etc/ppp/resolv.conf + } > $REALRESOLVCONF.tmp + + # backup the old configuration and install the new one + cp -a $REALRESOLVCONF $REALRESOLVCONF.pppd-backup + mv $REALRESOLVCONF.tmp $REALRESOLVCONF + + # correct permissions + chmod 0644 /etc/resolv.conf + chown root:root /etc/resolv.conf + + fi + +fi + +[ -f /etc/ppp/ip-up.local ] && . /etc/ppp/ip-up.local "$@" diff --git a/network/connection/ppp/files/nostrip.patch b/network/connection/ppp/files/nostrip.patch new file mode 100644 index 0000000000..342eb04f72 --- /dev/null +++ b/network/connection/ppp/files/nostrip.patch @@ -0,0 +1,92 @@ +Index: ppp-2.4.5/chat/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/chat/Makefile.linux ++++ ppp-2.4.5/chat/Makefile.linux +@@ -25,7 +25,7 @@ chat.o: chat.c + + install: chat + mkdir -p $(BINDIR) $(MANDIR) +- $(INSTALL) -s -c chat $(BINDIR) ++ $(INSTALL) -c chat $(BINDIR) + $(INSTALL) -c -m 644 chat.8 $(MANDIR) + + clean: +Index: ppp-2.4.5/pppd/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/pppd/Makefile.linux ++++ ppp-2.4.5/pppd/Makefile.linux +@@ -100,7 +100,7 @@ ifdef USE_SRP + CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include + LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto + TARGETS += srp-entry +-EXTRAINSTALL = $(INSTALL) -s -c -m 555 srp-entry $(BINDIR)/srp-entry ++EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry + MANPAGES += srp-entry.8 + EXTRACLEAN += srp-entry.o + NEEDDES=y +@@ -201,7 +201,7 @@ all: $(TARGETS) + install: pppd + mkdir -p $(BINDIR) $(MANDIR) + $(EXTRAINSTALL) +- $(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd ++ $(INSTALL) -c -m 555 pppd $(BINDIR)/pppd + if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \ + chmod o-rx,u+s $(BINDIR)/pppd; fi + $(INSTALL) -c -m 444 pppd.8 $(MANDIR) +Index: ppp-2.4.5/pppd/plugins/radius/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/pppd/plugins/radius/Makefile.linux ++++ ppp-2.4.5/pppd/plugins/radius/Makefile.linux +@@ -36,9 +36,9 @@ all: $(PLUGIN) + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +- $(INSTALL) -s -c -m 755 radius.so $(LIBDIR) +- $(INSTALL) -s -c -m 755 radattr.so $(LIBDIR) +- $(INSTALL) -s -c -m 755 radrealms.so $(LIBDIR) ++ $(INSTALL) -c -m 755 radius.so $(LIBDIR) ++ $(INSTALL) -c -m 755 radattr.so $(LIBDIR) ++ $(INSTALL) -c -m 755 radrealms.so $(LIBDIR) + $(INSTALL) -c -m 444 pppd-radius.8 $(MANDIR) + $(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR) + +Index: ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/pppd/plugins/rp-pppoe/Makefile.linux ++++ ppp-2.4.5/pppd/plugins/rp-pppoe/Makefile.linux +@@ -43,9 +43,9 @@ rp-pppoe.so: plugin.o discovery.o if.o c + + install: all + $(INSTALL) -d -m 755 $(LIBDIR) +- $(INSTALL) -s -c -m 4550 rp-pppoe.so $(LIBDIR) ++ $(INSTALL) -c -m 4550 rp-pppoe.so $(LIBDIR) + $(INSTALL) -d -m 755 $(BINDIR) +- $(INSTALL) -s -c -m 555 pppoe-discovery $(BINDIR) ++ $(INSTALL) -c -m 555 pppoe-discovery $(BINDIR) + + clean: + rm -f *.o *.so pppoe-discovery +Index: ppp-2.4.5/pppdump/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/pppdump/Makefile.linux ++++ ppp-2.4.5/pppdump/Makefile.linux +@@ -17,5 +17,5 @@ clean: + + install: + mkdir -p $(BINDIR) $(MANDIR) +- $(INSTALL) -s -c pppdump $(BINDIR) ++ $(INSTALL) -c pppdump $(BINDIR) + $(INSTALL) -c -m 444 pppdump.8 $(MANDIR) +Index: ppp-2.4.5/pppstats/Makefile.linux +=================================================================== +--- ppp-2.4.5.orig/pppstats/Makefile.linux ++++ ppp-2.4.5/pppstats/Makefile.linux +@@ -22,7 +22,7 @@ all: pppstats + + install: pppstats + -mkdir -p $(MANDIR) +- $(INSTALL) -s -c pppstats $(BINDIR) ++ $(INSTALL) -c pppstats $(BINDIR) + $(INSTALL) -c -m 444 pppstats.8 $(MANDIR) + + pppstats: $(PPPSTATSRCS) diff --git a/network/connection/ppp/files/options-pppoe b/network/connection/ppp/files/options-pppoe new file mode 100644 index 0000000000..5988ee2d66 --- /dev/null +++ b/network/connection/ppp/files/options-pppoe @@ -0,0 +1,6 @@ +noipdefault +hide-password +defaultroute +persist +lock + diff --git a/network/connection/ppp/files/options-pptp b/network/connection/ppp/files/options-pptp new file mode 100644 index 0000000000..af5749aac3 --- /dev/null +++ b/network/connection/ppp/files/options-pptp @@ -0,0 +1,18 @@ +#192.168.1.0: +netmask 255.255.255.0 +#debug +#kdebug 1 +lock +mtu 1490 +mru 1490 +proxyarp +auth +require-chap +passive +ipcp-accept-local +ipcp-accept-remote +lcp-echo-failure 3 +lcp-echo-interval 5 +deflate 0 +#ms-dns 192.168.1.1 +#ms-wins 192.168.1.1 diff --git a/network/connection/ppp/files/ppp-2.3.6-sample.patch b/network/connection/ppp/files/ppp-2.3.6-sample.patch new file mode 100644 index 0000000000..92eee6c0e3 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.3.6-sample.patch @@ -0,0 +1,295 @@ +--- ppp-2.3.3/sample/auth-down.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/auth-down Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,17 @@ ++#!/bin/sh ++# ++# A program or script which is executed after the remote system ++# successfully authenticates itself. It is executed with the parameters ++# ++# ++ ++# ++# The environment is cleared before executing this script ++# so the path must be reset ++# ++PATH=/usr/sbin:/sbin:/usr/bin:/bin ++export PATH ++ ++echo auth-down `date +'%y/%m/%d %T'` $* >> /var/log/pppstats ++ ++# last line +--- ppp-2.3.3/sample/auth-up.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/auth-up Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,17 @@ ++#!/bin/sh ++# ++# A program or script which is executed after the remote system ++# successfully authenticates itself. It is executed with the parameters ++# ++# ++ ++# ++# The environment is cleared before executing this script ++# so the path must be reset ++# ++PATH=/usr/sbin:/sbin:/usr/bin:/bin ++export PATH ++ ++echo auth-up `date +'%y/%m/%d %T'` $* >> /var/log/pppstats ++ ++# last line +--- ppp-2.3.3/sample/ip-down.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/ip-down Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,22 @@ ++#!/bin/sh ++# ++# This script is run by the pppd _after_ the link is brought down. ++# It should be used to delete routes, unset IP addresses etc. ++# ++# This script is called with the following arguments: ++# Arg Name Example ++# $1 Interface name ppp0 ++# $2 The tty ttyS1 ++# $3 The link speed 38400 ++# $4 Local IP number 12.34.56.78 ++# $5 Peer IP number 12.34.56.99 ++# ++ ++# ++# The environment is cleared before executing this script ++# so the path must be reset ++# ++PATH=/usr/sbin:/sbin:/usr/bin:/bin ++export PATH ++ ++# last line +--- ppp-2.3.3/sample/ip-up.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/ip-up Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,23 @@ ++#!/bin/sh ++# ++# This script is run by the pppd after the link is established. ++# It should be used to add routes, set IP address, run the mailq ++# etc. ++# ++# This script is called with the following arguments: ++# Arg Name Example ++# $1 Interface name ppp0 ++# $2 The tty ttyS1 ++# $3 The link speed 38400 ++# $4 Local IP number 12.34.56.78 ++# $5 Peer IP number 12.34.56.99 ++# ++ ++# ++# The environment is cleared before executing this script ++# so the path must be reset ++# ++PATH=/usr/sbin:/sbin:/usr/bin:/bin ++export PATH ++ ++# last line +--- ppp-2.3.3/sample/options.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/options Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,153 @@ ++# /etc/ppp/options ++ ++# The name of this server. Often, the FQDN is used here. ++#name ++ ++# Enforce the use of the hostname as the name of the local system for ++# authentication purposes (overrides the name option). ++usehostname ++ ++# If no local IP address is given, pppd will use the first IP address ++# that belongs to the local hostname. If "noipdefault" is given, this ++# is disabled and the peer will have to supply an IP address. ++noipdefault ++ ++# With this option, pppd will accept the peer's idea of our local IP ++# address, even if the local IP address was specified in an option. ++#ipcp-accept-local ++ ++# With this option, pppd will accept the peer's idea of its (remote) IP ++# address, even if the remote IP address was specified in an option. ++#ipcp-accept-remote ++ ++# Specify which DNS Servers the incoming Win95 or WinNT Connection should use ++# Two Servers can be remotely configured ++#ms-dns 192.168.1.1 ++#ms-dns 192.168.1.2 ++ ++# Specify which WINS Servers the incoming connection Win95 or WinNT should use ++#wins-addr 192.168.1.50 ++#wins-addr 192.168.1.51 ++ ++# enable this on a server that already has a permanent default route ++#nodefaultroute ++ ++# Run the executable or shell command specified after pppd has terminated ++# the link. This script could, for example, issue commands to the modem ++# to cause it to hang up if hardware modem control signals were not ++# available. ++# If mgetty is running, it will reset the modem anyway. So there is no need ++# to do it here. ++#disconnect "chat -- \d+++\d\c OK ath0 OK" ++ ++# Increase debugging level (same as -d). The debug output is written ++# to syslog LOG_LOCAL2. ++debug ++ ++# Enable debugging code in the kernel-level PPP driver. The argument n ++# is a number which is the sum of the following values: 1 to enable ++# general debug messages, 2 to request that the contents of received ++# packets be printed, and 4 to request that the contents of transmitted ++# packets be printed. ++#kdebug n ++ ++# Require the peer to authenticate itself before allowing network ++# packets to be sent or received. ++# Please do not disable this setting. It is expected to be standard in ++# future releases of pppd. Use the call option (see manpage) to disable ++# authentication for specific peers. ++#auth ++ ++# authentication can either be pap or chap. As most people only want to ++# use pap, you can also disable chap: ++#require-pap ++#refuse-chap ++ ++# Use hardware flow control (i.e. RTS/CTS) to control the flow of data ++# on the serial port. ++crtscts ++ ++# Specifies that pppd should use a UUCP-style lock on the serial device ++# to ensure exclusive access to the device. ++lock ++ ++# Use the modem control lines. ++modem ++ ++# async character map -- 32-bit hex; each bit is a character ++# that needs to be escaped for pppd to receive it. 0x00000001 ++# represents '\x01', and 0x80000000 represents '\x1f'. ++# To allow pppd to work over a rlogin/telnet connection, ou should escape ++# XON (^Q), XOFF (^S) and ^]: (The peer should use "escape ff".) ++#asyncmap 200a0000 ++asyncmap 0 ++ ++# Specifies that certain characters should be escaped on transmission ++# (regardless of whether the peer requests them to be escaped with its ++# async control character map). The characters to be escaped are ++# specified as a list of hex numbers separated by commas. Note that ++# almost any character can be specified for the escape option, unlike ++# the asyncmap option which only allows control characters to be ++# specified. The characters which may not be escaped are those with hex ++# values 0x20 - 0x3f or 0x5e. ++#escape 11,13,ff ++ ++# Set the MRU [Maximum Receive Unit] value to for negotiation. pppd ++# will ask the peer to send packets of no more than bytes. The ++# minimum MRU value is 128. The default MRU value is 1500. A value of ++# 296 is recommended for slow links (40 bytes for TCP/IP header + 256 ++# bytes of data). ++#mru 542 ++ ++# Set the MTU [Maximum Transmit Unit] value to . Unless the peer ++# requests a smaller value via MRU negotiation, pppd will request that ++# the kernel networking code send data packets of no more than n bytes ++# through the PPP network interface. ++#mtu ++ ++# Set the interface netmask to , a 32 bit netmask in "decimal dot" ++# notation (e.g. 255.255.255.0). ++#netmask 255.255.255.0 ++ ++# Don't fork to become a background process (otherwise pppd will do so ++# if a serial device is specified). ++nodetach ++ ++# Set the assumed name of the remote system for authentication purposes ++# to . ++#remotename ++ ++# Add an entry to this system's ARP [Address Resolution Protocol] ++# table with the IP address of the peer and the Ethernet address of this ++# system. {proxyarp,noproxyarp} ++proxyarp ++ ++# Use the system password database for authenticating the peer using ++# PAP. Note: mgetty already provides this option. If this is specified ++# then dialin from users using a script under Linux to fire up ppp wont work. ++#login ++ ++# If this option is given, pppd will send an LCP echo-request frame to ++# the peer every n seconds. Under Linux, the echo-request is sent when ++# no packets have been received from the peer for n seconds. Normally ++# the peer should respond to the echo-request by sending an echo-reply. ++# This option can be used with the lcp-echo-failure option to detect ++# that the peer is no longer connected. ++lcp-echo-interval 30 ++ ++# If this option is given, pppd will presume the peer to be dead if n ++# LCP echo-requests are sent without receiving a valid LCP echo-reply. ++# If this happens, pppd will terminate the connection. Use of this ++# option requires a non-zero value for the lcp-echo-interval parameter. ++# This option can be used to enable pppd to terminate after the physical ++# connection has been broken (e.g., the modem has hung up) in ++# situations where no hardware modem control lines are available. ++lcp-echo-failure 4 ++ ++# Specifies that pppd should disconnect if the link is idle for n seconds. ++idle 600 ++ ++# Disable the IPXCP and IPX protocols. ++noipx ++ ++# ------ +--- ppp-2.3.3/sample/options.ttyXX.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/options.ttyXX Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,14 @@ ++# If you need to set up multiple serial lines then copy this file to ++# options. for each tty with a modem on it. ++# ++# The options.tty file will assign an IP address to each PPP connection ++# as it comes up. They must all be distinct! ++# ++# Example: ++# options.ttyS1 for com2 under DOS. ++# ++# Edit the following line so that the first IP address ++# mentioned is the ip address of the serial port while the second ++# is the IP address of your host ++# ++hostname-s1:hostname +--- ppp-2.3.3/sample/pap-secrets.sample Tue Jan 6 17:53:27 1998 ++++ ppp-2.3.3/sample/pap-secrets Tue Jan 6 17:53:27 1998 +@@ -0,0 +1,28 @@ ++# Secrets for authentication using PAP ++# client server secret IP addresses ++ ++# OUTBOUND CONNECTIONS ++# Here you should add your userid password to connect to your providers via ++# pap. The * means that the password is to be used for ANY host you connect ++# to. Thus you do not have to worry about the foreign machine name. Just ++# replace password with your password. ++# If you have different providers with different passwords then you better ++# remove the following line. ++#hostname * password ++ ++# INBOUND CONNECTIONS ++#client hostname 192.168.1.1 ++ ++# If you add "auth login -chap +pap" to /etc/mgetty+sendfax/login.config, ++# all users in /etc/passwd can use their password for pap-authentication. ++# ++# Every regular user can use PPP and has to use passwords from /etc/passwd ++#* hostname "" ++# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any ++# other accounts that should not be able to use pppd! Replace hostname ++# with your local hostname. ++#guest hostname "*" - ++#master hostname "*" - ++#root hostname "*" - ++#support hostname "*" - ++#stats hostname "*" - diff --git a/network/connection/ppp/files/ppp-2.4.2-change_resolv_conf.patch b/network/connection/ppp/files/ppp-2.4.2-change_resolv_conf.patch new file mode 100644 index 0000000000..9674f1af74 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.2-change_resolv_conf.patch @@ -0,0 +1,61 @@ +diff -urNp --exclude-from=/mdomsch2/excludes --minimal ppp-2.4.3.orig/pppd/pppd.8 ppp-2.4.3/pppd/pppd.8 +--- ppp-2.4.3.orig/pppd/pppd.8 2004-11-13 06:22:49.000000000 -0600 ++++ ppp-2.4.3/pppd/pppd.8 2005-08-03 22:10:34.000000000 -0500 +@@ -1035,7 +1035,7 @@ Ask the peer for up to 2 DNS server addr + by the peer (if any) are passed to the /etc/ppp/ip\-up script in the + environment variables DNS1 and DNS2, and the environment variable + USEPEERDNS will be set to 1. In addition, pppd will create an +-/etc/ppp/resolv.conf file containing one or two nameserver lines with ++/run/ppp/resolv.conf file containing one or two nameserver lines with + the address(es) supplied by the peer. + .TP + .B user \fIname +--- ppp-2.4.2/scripts/ip-down.local.add.change_resolv_conf 1999-02-27 05:32:42.000000000 +0100 ++++ ppp-2.4.2/scripts/ip-down.local.add 2004-09-14 14:36:20.058008752 +0200 +@@ -9,12 +9,13 @@ + # + # Nick Walker (nickwalker@email.com) + # ++. /etc/sysconfig/network-scripts/network-functions + +-if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then +- if [ -f /etc/ppp/resolv.prev ]; then +- cp -f /etc/ppp/resolv.prev /etc/resolv.conf ++if [ -n "$USEPEERDNS" -a -f /run/ppp/resolv.conf ]; then ++ if [ -f /run/ppp/resolv.prev ]; then ++ change_resolv_conf /run/ppp/resolv.prev + else +- rm -f /etc/resolv.conf ++ change_resolv_conf + fi + fi + +--- ppp-2.4.2/scripts/ip-up.local.add.change_resolv_conf 1999-11-15 04:28:10.000000000 +0100 ++++ ppp-2.4.2/scripts/ip-up.local.add 2004-09-14 14:37:39.129061828 +0200 +@@ -9,16 +9,19 @@ + # + # Nick Walker (nickwalker@email.com) + # ++. /etc/sysconfig/network-scripts/network-functions + +-if [ -n "$USEPEERDNS" -a -f /etc/ppp/resolv.conf ]; then +- rm -f /etc/ppp/resolv.prev ++if [ -n "$USEPEERDNS" -a -f /run/ppp/resolv.conf ]; then ++ rm -f /run/ppp/resolv.prev + if [ -f /etc/resolv.conf ]; then +- cp /etc/resolv.conf /etc/ppp/resolv.prev +- grep domain /etc/ppp/resolv.prev > /etc/resolv.conf +- grep search /etc/ppp/resolv.prev >> /etc/resolv.conf +- cat /etc/ppp/resolv.conf >> /etc/resolv.conf ++ cp /etc/resolv.conf /run/ppp/resolv.prev ++ rscf=/run/ppp/resolv.new ++ grep domain /run/ppp/resolv.prev > $rscf ++ grep search /run/ppp/resolv.prev >> $rscf ++ change_resolv_conf $rscf ++ rm -f $rscf + else +- cp /etc/ppp/resolv.conf /etc ++ change_resolv_conf /run/ppp/resolv.conf + fi + fi + diff --git a/network/connection/ppp/files/ppp-2.4.3-fix64.patch b/network/connection/ppp/files/ppp-2.4.3-fix64.patch new file mode 100644 index 0000000000..8a2c794d14 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.3-fix64.patch @@ -0,0 +1,10 @@ +--- ppp-2.4.3/pppd/sha1.c.fix64 2004-10-25 01:28:02.000000000 +0200 ++++ ppp-2.4.3/pppd/sha1.c 2004-11-22 16:44:16.850768926 +0100 +@@ -18,6 +18,7 @@ + + #include + #include /* htonl() */ ++#include /* u_int32_t */ + #include + #include "sha1.h" + diff --git a/network/connection/ppp/files/ppp-2.4.3-ipv6-accept-remote.patch b/network/connection/ppp/files/ppp-2.4.3-ipv6-accept-remote.patch new file mode 100644 index 0000000000..2bc82338cd --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.3-ipv6-accept-remote.patch @@ -0,0 +1,40 @@ +--- ppp-2.4.3/pppd/ipv6cp.c~ 2005-11-04 09:40:10.000000000 +0000 ++++ ppp-2.4.3/pppd/ipv6cp.c 2005-11-04 10:20:14.000000000 +0000 +@@ -235,6 +235,8 @@ static option_t ipv6cp_option_list[] = { + + { "ipv6cp-accept-local", o_bool, &ipv6cp_allowoptions[0].accept_local, + "Accept peer's interface identifier for us", 1 }, ++ { "ipv6cp-accept-remote", o_bool, &ipv6cp_allowoptions[0].accept_remote, ++ "Accept peer's interface identifier for itself", 1 }, + + { "ipv6cp-use-ipaddr", o_bool, &ipv6cp_allowoptions[0].use_ip, + "Use (default) IPv4 address as interface identifier", 1 }, +@@ -427,6 +429,7 @@ ipv6cp_init(unit) + memset(ao, 0, sizeof(*ao)); + + wo->accept_local = 1; ++ wo->accept_remote = 1; + wo->neg_ifaceid = 1; + ao->neg_ifaceid = 1; + +@@ -952,7 +955,7 @@ ipv6cp_reqci(f, inp, len, reject_if_disa + orc = CONFREJ; /* Reject CI */ + break; + } +- if (!eui64_iszero(wo->hisid) && ++ if (!eui64_iszero(wo->hisid) && !wo->accept_remote && + !eui64_equals(ifaceid, wo->hisid) && + eui64_iszero(go->hisid)) { + +--- ppp-2.4.3/pppd/ipv6cp.h~ 2002-12-04 23:03:32.000000000 +0000 ++++ ppp-2.4.3/pppd/ipv6cp.h 2005-11-04 10:20:55.000000000 +0000 +@@ -150,7 +150,8 @@ + typedef struct ipv6cp_options { + int neg_ifaceid; /* Negotiate interface identifier? */ + int req_ifaceid; /* Ask peer to send interface identifier? */ +- int accept_local; /* accept peer's value for iface id? */ ++ int accept_local; /* accept peer's value for our iface id? */ ++ int accept_remote; /* accept peer's value for his iface id? */ + int opt_local; /* ourtoken set by option */ + int opt_remote; /* histoken set by option */ + int use_ip; /* use IP as interface identifier */ diff --git a/network/connection/ppp/files/ppp-2.4.3-local.patch b/network/connection/ppp/files/ppp-2.4.3-local.patch new file mode 100644 index 0000000000..3288cba223 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.3-local.patch @@ -0,0 +1,68 @@ +diff -up ppp-2.4.4/configure.local ppp-2.4.4/configure +--- ppp-2.4.4/configure.local 2005-07-08 20:23:05.000000000 -0400 ++++ ppp-2.4.4/configure 2008-08-28 17:38:04.000000000 -0400 +@@ -2,7 +2,7 @@ + # $Id: configure,v 1.38 2008/06/15 07:08:49 paulus Exp $ + + # Where to install stuff by default +-DESTDIR=/usr/local ++DESTDIR=/usr + SYSCONF=/etc + + # if [ -d /NextApps ]; then +diff -up ppp-2.4.4/pppd/Makefile.linux.local ppp-2.4.4/pppd/Makefile.linux +--- ppp-2.4.4/pppd/Makefile.linux.local 2008-08-28 17:37:33.000000000 -0400 ++++ ppp-2.4.4/pppd/Makefile.linux 2008-08-28 17:37:33.000000000 -0400 +@@ -97,8 +97,8 @@ endif + + # EAP SRP-SHA1 + ifdef USE_SRP +-CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include +-LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto ++CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/include/openssl ++LIBS += -lsrp -L/usr/lib -lcrypto + TARGETS += srp-entry + EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry + MANPAGES += srp-entry.8 +diff -up ppp-2.4.4/scripts/ppp-on-rsh.local ppp-2.4.4/scripts/ppp-on-rsh +--- ppp-2.4.4/scripts/ppp-on-rsh.local 2000-04-15 05:49:28.000000000 -0400 ++++ ppp-2.4.4/scripts/ppp-on-rsh 2008-08-28 17:37:33.000000000 -0400 +@@ -26,7 +26,7 @@ PPPD_RHOST=myremotehost + # For this example, we assume that pppd on both local and remote + # machines reside in the same place, /usr/local/bin/pppd + # +-PPPD_LOC=/usr/local/bin/pppd ++PPPD_LOC=/usr/sbin/pppd + + # + # The location of local options file (where rsh client is running). +diff -up ppp-2.4.4/scripts/ppp-on-ssh.local ppp-2.4.4/scripts/ppp-on-ssh +--- ppp-2.4.4/scripts/ppp-on-ssh.local 2000-04-15 05:49:42.000000000 -0400 ++++ ppp-2.4.4/scripts/ppp-on-ssh 2008-08-28 17:37:33.000000000 -0400 +@@ -26,7 +26,7 @@ PPPD_RHOST=myremotehost + # For this example, we assume that pppd on both local and remote + # machines reside in the same place, /usr/local/bin/pppd + # +-PPPD_LOC=/usr/local/bin/pppd ++PPPD_LOC=/usr/sbin/pppd + + # + # The location of local options file (where ssh client is running). +@@ -52,7 +52,7 @@ PPPD_REM_OPT=/etc/ppp/options-ssh-rem + # + # The location of ssh client on the local machine + # +-SSH_LOC=/usr/local/bin/ssh ++SSH_LOC=/usr/bin/ssh + + export PPPD_LOC PPPD_LOC_OPT PPPD_REM_OPT PPPD_RHOST SSH_LOC + +diff -up ppp-2.4.4/scripts/secure-card.local ppp-2.4.4/scripts/secure-card +--- ppp-2.4.4/scripts/secure-card.local 2004-02-01 22:36:46.000000000 -0500 ++++ ppp-2.4.4/scripts/secure-card 2008-08-28 17:37:33.000000000 -0400 +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/expect -f ++#!/usr/bin/expect -f + # + # This script was written by Jim Isaacson . It is + # designed to work as a script to use the SecureCARD(tm) device. This diff --git a/network/connection/ppp/files/ppp-2.4.5-ppp_resolv.patch b/network/connection/ppp/files/ppp-2.4.5-ppp_resolv.patch new file mode 100644 index 0000000000..f0cc7c63a3 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.5-ppp_resolv.patch @@ -0,0 +1,13 @@ +diff -up ppp-2.4.5/scripts/ip-up.local.add.ppp_resolv ppp-2.4.5/scripts/ip-up.local.add +--- ppp-2.4.5/scripts/ip-up.local.add.ppp_resolv 2010-07-13 10:29:23.227943994 +0200 ++++ ppp-2.4.5/scripts/ip-up.local.add 2010-07-13 10:32:27.729695487 +0200 +@@ -18,6 +18,9 @@ if [ -n "$USEPEERDNS" -a -f /run/ppp + rscf=/run/ppp/resolv.new + grep domain /run/ppp/resolv.prev > $rscf + grep search /run/ppp/resolv.prev >> $rscf ++ if [ -f /run/ppp/resolv.conf ]; then ++ cat /run/ppp/resolv.conf >> $rscf ++ fi + change_resolv_conf $rscf + rm -f $rscf + else diff --git a/network/connection/ppp/files/ppp-2.4.5-var_run_ppp.patch b/network/connection/ppp/files/ppp-2.4.5-var_run_ppp.patch new file mode 100644 index 0000000000..5caca49615 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.5-var_run_ppp.patch @@ -0,0 +1,30 @@ +diff -up ppp-2.4.5/pppd/pathnames.h.var_run_ppp ppp-2.4.5/pppd/pathnames.h +--- ppp-2.4.5/pppd/pathnames.h.var_run_ppp 2010-02-12 16:36:14.479362718 +0100 ++++ ppp-2.4.5/pppd/pathnames.h 2010-02-12 16:38:24.995330994 +0100 +@@ -7,9 +7,13 @@ + #ifdef HAVE_PATHS_H + #include + ++#define _SUBPATH_PPP "ppp/" + #else /* HAVE_PATHS_H */ + #ifndef _PATH_VARRUN + #define _PATH_VARRUN "/etc/ppp/" ++#define _SUBPATH_PPP ++#else ++#define _SUBPATH_PPP "ppp/" + #endif + #define _PATH_DEVNULL "/dev/null" + #endif /* HAVE_PATHS_H */ +@@ -46,10 +50,10 @@ + #endif /* IPX_CHANGE */ + + #ifdef __STDC__ +-#define _PATH_PPPDB _ROOT_PATH _PATH_VARRUN "pppd2.tdb" ++#define _PATH_PPPDB _ROOT_PATH _PATH_VARRUN _SUBPATH_PPP "pppd2.tdb" + #else /* __STDC__ */ + #ifdef HAVE_PATHS_H +-#define _PATH_PPPDB "/var/run/pppd2.tdb" ++#define _PATH_PPPDB "/run/ppp/pppd2.tdb" + #else + #define _PATH_PPPDB "/etc/ppp/pppd2.tdb" + #endif diff --git a/network/connection/ppp/files/ppp-2.4.6-eaptls-mppe-0.99.patch b/network/connection/ppp/files/ppp-2.4.6-eaptls-mppe-0.99.patch new file mode 100644 index 0000000000..2fb48bd572 --- /dev/null +++ b/network/connection/ppp/files/ppp-2.4.6-eaptls-mppe-0.99.patch @@ -0,0 +1,2919 @@ +diff -Naur ppp-2.4.5/etc.ppp/eaptls-client ppp-2.4.5-eaptls-mppe-0.99/etc.ppp/eaptls-client +--- ppp-2.4.5/etc.ppp/eaptls-client 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5-eaptls-mppe-0.99/etc.ppp/eaptls-client 2010-10-01 15:17:54.205272328 +0200 +@@ -0,0 +1,10 @@ ++# Parameters for authentication using EAP-TLS (client) ++ ++# client name (can be *) ++# server name (can be *) ++# client certificate file (required) ++# server certificate file (optional, if unused put '-') ++# CA certificate file (required) ++# client private key file (required) ++ ++#client server /root/cert/client.crt - /root/cert/ca.crt /root/cert/client.key +diff -Naur ppp-2.4.5/etc.ppp/eaptls-server ppp-2.4.5-eaptls-mppe-0.99/etc.ppp/eaptls-server +--- ppp-2.4.5/etc.ppp/eaptls-server 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5-eaptls-mppe-0.99/etc.ppp/eaptls-server 2010-10-01 15:17:54.205272328 +0200 +@@ -0,0 +1,11 @@ ++# Parameters for authentication using EAP-TLS (server) ++ ++# client name (can be *) ++# server name (can be *) ++# client certificate file (optional, if unused put '-') ++# server certificate file (required) ++# CA certificate file (required) ++# server private key file (required) ++# allowed addresses (required, can be *) ++ ++#client server - /root/cert/server.crt /root/cert/ca.crt /root/cert/server.key 192.168.1.0/24 +diff -Naur ppp-2.4.5/etc.ppp/openssl.cnf ppp-2.4.5-eaptls-mppe-0.99/etc.ppp/openssl.cnf +--- ppp-2.4.5/etc.ppp/openssl.cnf 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5-eaptls-mppe-0.99/etc.ppp/openssl.cnf 2010-10-01 15:17:54.206272162 +0200 +@@ -0,0 +1,14 @@ ++openssl_conf = openssl_def ++ ++[ openssl_def ] ++engines = engine_section ++ ++[ engine_section ] ++pkcs11 = pkcs11_section ++ ++[ pkcs11_section ] ++engine_id = pkcs11 ++dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so ++MODULE_PATH = /usr/lib64/libeTPkcs11.so ++init = 0 ++ +diff -aur ppp-2.4.6.orig/linux/Makefile.top ppp-2.4.6/linux/Makefile.top +--- ppp-2.4.6.orig/linux/Makefile.top 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/linux/Makefile.top 2014-04-03 21:32:29.076627151 +0200 +@@ -26,7 +26,7 @@ + cd pppdump; $(MAKE) $(MFLAGS) install + + install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \ +- $(ETCDIR)/chap-secrets ++ $(ETCDIR)/chap-secrets $(ETCDIR)/eaptls-server $(ETCDIR)/eaptls-client + + install-devel: + cd pppd; $(MAKE) $(MFLAGS) install-devel +@@ -37,6 +37,10 @@ + $(INSTALL) -c -m 600 etc.ppp/pap-secrets $@ + $(ETCDIR)/chap-secrets: + $(INSTALL) -c -m 600 etc.ppp/chap-secrets $@ ++$(ETCDIR)/eaptls-server: ++ $(INSTALL) -c -m 600 etc.ppp/eaptls-server $@ ++$(ETCDIR)/eaptls-client: ++ $(INSTALL) -c -m 600 etc.ppp/eaptls-client $@ + + $(BINDIR): + $(INSTALL) -d -m 755 $@ +diff -aur ppp-2.4.6.orig/pppd/auth.c ppp-2.4.6/pppd/auth.c +--- ppp-2.4.6.orig/pppd/auth.c 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/auth.c 2014-04-03 21:32:29.076627151 +0200 +@@ -109,6 +109,9 @@ + #include "upap.h" + #include "chap-new.h" + #include "eap.h" ++#ifdef USE_EAPTLS ++#include "eap-tls.h" ++#endif + #ifdef CBCP_SUPPORT + #include "cbcp.h" + #endif +@@ -183,6 +186,12 @@ + /* Hook for a plugin to get the CHAP password for authenticating us */ + int (*chap_passwd_hook) __P((char *user, char *passwd)) = NULL; + ++#ifdef USE_EAPTLS ++/* Hook for a plugin to get the EAP-TLS password for authenticating us */ ++int (*eaptls_passwd_hook) __P((char *user, char *passwd)) = NULL; ++int (*eaptls_check_hook) __P((void)) = NULL; ++#endif ++ + /* Hook for a plugin to say whether it is OK if the peer + refuses to authenticate. */ + int (*null_auth_hook) __P((struct wordlist **paddrs, +@@ -238,6 +247,13 @@ + bool explicit_user = 0; /* Set if "user" option supplied */ + bool explicit_passwd = 0; /* Set if "password" option supplied */ + char remote_name[MAXNAMELEN]; /* Peer's name for authentication */ ++#ifdef USE_EAPTLS ++char *cacert_file = NULL; /* CA certificate file (pem format) */ ++char *cert_file = NULL; /* client certificate file (pem format) */ ++char *privkey_file = NULL; /* client private key file (pem format) */ ++char *crl_dir = NULL; /* directory containing CRL files */ ++bool need_peer_eap = 0; /* Require peer to authenticate us */ ++#endif + + static char *uafname; /* name of most recent +ua file */ + +@@ -254,6 +270,19 @@ + static int have_chap_secret __P((char *, char *, int, int *)); + static int have_srp_secret __P((char *client, char *server, int need_ip, + int *lacks_ipp)); ++ ++#ifdef USE_EAPTLS ++static int have_eaptls_secret_server ++__P((char *client, char *server, int need_ip, int *lacks_ipp)); ++static int have_eaptls_secret_client __P((char *client, char *server)); ++static int scan_authfile_eaptls __P((FILE * f, char *client, char *server, ++ char *cli_cert, char *serv_cert, ++ char *ca_cert, char *pk, ++ struct wordlist ** addrs, ++ struct wordlist ** opts, ++ char *filename, int flags)); ++#endif ++ + static int ip_addr_check __P((u_int32_t, struct permitted_ip *)); + static int scan_authfile __P((FILE *, char *, char *, char *, + struct wordlist **, struct wordlist **, +@@ -401,6 +430,14 @@ + "Set telephone number(s) which are allowed to connect", + OPT_PRIV | OPT_A2LIST }, + ++#ifdef USE_EAPTLS ++ { "ca", o_string, &cacert_file, "EAP-TLS CA certificate in PEM format" }, ++ { "cert", o_string, &cert_file, "EAP-TLS client certificate in PEM format" }, ++ { "key", o_string, &privkey_file, "EAP-TLS client private key in PEM format" }, ++ { "crl-dir", o_string, &crl_dir, "Use CRLs in directory" }, ++ { "need-peer-eap", o_bool, &need_peer_eap, ++ "Require the peer to authenticate us", 1 }, ++#endif /* USE_EAPTLS */ + { NULL } + }; + +@@ -730,6 +767,9 @@ + lcp_options *wo = &lcp_wantoptions[unit]; + lcp_options *go = &lcp_gotoptions[unit]; + lcp_options *ho = &lcp_hisoptions[unit]; ++#ifdef USE_EAPTLS ++ lcp_options *ao = &lcp_allowoptions[unit]; ++#endif + int i; + struct protent *protp; + +@@ -764,6 +804,22 @@ + } + } + ++#ifdef USE_EAPTLS ++ if (need_peer_eap && !ao->neg_eap) { ++ warn("eap required to authenticate us but no suitable secrets"); ++ lcp_close(unit, "couldn't negotiate eap"); ++ status = EXIT_AUTH_TOPEER_FAILED; ++ return; ++ } ++ ++ if (need_peer_eap && !ho->neg_eap) { ++ warn("peer doesn't want to authenticate us with eap"); ++ lcp_close(unit, "couldn't negotiate eap"); ++ status = EXIT_PEER_AUTH_FAILED; ++ return; ++ } ++#endif ++ + new_phase(PHASE_AUTHENTICATE); + auth = 0; + if (go->neg_eap) { +@@ -1281,6 +1337,15 @@ + our_name, 1, &lacks_ip); + } + ++#ifdef USE_EAPTLS ++ if (!can_auth && wo->neg_eap) { ++ can_auth = ++ have_eaptls_secret_server((explicit_remote ? remote_name : ++ NULL), our_name, 1, &lacks_ip); ++ ++ } ++#endif ++ + if (auth_required && !can_auth && noauth_addrs == NULL) { + if (default_auth) { + option_error( +@@ -1335,7 +1400,11 @@ + passwd[0] != 0 || + (hadchap == 1 || (hadchap == -1 && have_chap_secret(user, + (explicit_remote? remote_name: NULL), 0, NULL))) || +- have_srp_secret(user, (explicit_remote? remote_name: NULL), 0, NULL)); ++ have_srp_secret(user, (explicit_remote? remote_name: NULL), 0, NULL) ++#ifdef USE_EAPTLS ++ || have_eaptls_secret_client(user, (explicit_remote? remote_name: NULL)) ++#endif ++ ); + + hadchap = -1; + if (go->neg_upap && !uselogin && !have_pap_secret(NULL)) +@@ -1350,8 +1419,14 @@ + !have_chap_secret((explicit_remote? remote_name: NULL), our_name, + 1, NULL))) && + !have_srp_secret((explicit_remote? remote_name: NULL), our_name, 1, +- NULL)) ++ NULL) ++#ifdef USE_EAPTLS ++ && !have_eaptls_secret_server((explicit_remote? remote_name: NULL), ++ our_name, 1, NULL) ++#endif ++ ) + go->neg_eap = 0; ++ + } + + +@@ -1711,6 +1786,7 @@ + } + + ++ + /* + * get_secret - open the CHAP secret file and return the secret + * for authenticating the given client on the given server. +@@ -2367,3 +2443,335 @@ + else + auth_script_pid = run_program(script, argv, 0, auth_script_done, NULL, 0); + } ++ ++ ++#ifdef USE_EAPTLS ++static int ++have_eaptls_secret_server(client, server, need_ip, lacks_ipp) ++ char *client; ++ char *server; ++ int need_ip; ++ int *lacks_ipp; ++{ ++ FILE *f; ++ int ret; ++ char *filename; ++ struct wordlist *addrs; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ ++ filename = _PATH_EAPTLSSERVFILE; ++ f = fopen(filename, "r"); ++ if (f == NULL) ++ return 0; ++ ++ if (client != NULL && client[0] == 0) ++ client = NULL; ++ else if (server != NULL && server[0] == 0) ++ server = NULL; ++ ++ ret = ++ scan_authfile_eaptls(f, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, &addrs, NULL, filename, ++ 0); ++ ++ fclose(f); ++ ++/* ++ if (ret >= 0 && !eaptls_init_ssl(1, cacertfile, servcertfile, ++ clicertfile, pkfile)) ++ ret = -1; ++*/ ++ ++ if (ret >= 0 && need_ip && !some_ip_ok(addrs)) { ++ if (lacks_ipp != 0) ++ *lacks_ipp = 1; ++ ret = -1; ++ } ++ if (addrs != 0) ++ free_wordlist(addrs); ++ ++ return ret >= 0; ++} ++ ++ ++static int ++have_eaptls_secret_client(client, server) ++ char *client; ++ char *server; ++{ ++ FILE *f; ++ int ret; ++ char *filename; ++ struct wordlist *addrs = NULL; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ ++ if (client != NULL && client[0] == 0) ++ client = NULL; ++ else if (server != NULL && server[0] == 0) ++ server = NULL; ++ ++ if (cacert_file && cert_file && privkey_file) ++ return 1; ++ ++ filename = _PATH_EAPTLSCLIFILE; ++ f = fopen(filename, "r"); ++ if (f == NULL) ++ return 0; ++ ++ ret = ++ scan_authfile_eaptls(f, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, &addrs, NULL, filename, ++ 0); ++ fclose(f); ++ ++/* ++ if (ret >= 0 && !eaptls_init_ssl(0, cacertfile, clicertfile, ++ servcertfile, pkfile)) ++ ret = -1; ++*/ ++ ++ if (addrs != 0) ++ free_wordlist(addrs); ++ ++ return ret >= 0; ++} ++ ++ ++static int ++scan_authfile_eaptls(f, client, server, cli_cert, serv_cert, ca_cert, pk, ++ addrs, opts, filename, flags) ++ FILE *f; ++ char *client; ++ char *server; ++ char *cli_cert; ++ char *serv_cert; ++ char *ca_cert; ++ char *pk; ++ struct wordlist **addrs; ++ struct wordlist **opts; ++ char *filename; ++ int flags; ++{ ++ int newline; ++ int got_flag, best_flag; ++ struct wordlist *ap, *addr_list, *alist, **app; ++ char word[MAXWORDLEN]; ++ ++ if (addrs != NULL) ++ *addrs = NULL; ++ if (opts != NULL) ++ *opts = NULL; ++ addr_list = NULL; ++ if (!getword(f, word, &newline, filename)) ++ return -1; /* file is empty??? */ ++ newline = 1; ++ best_flag = -1; ++ for (;;) { ++ /* ++ * Skip until we find a word at the start of a line. ++ */ ++ while (!newline && getword(f, word, &newline, filename)); ++ if (!newline) ++ break; /* got to end of file */ ++ ++ /* ++ * Got a client - check if it's a match or a wildcard. ++ */ ++ got_flag = 0; ++ if (client != NULL && strcmp(word, client) != 0 && !ISWILD(word)) { ++ newline = 0; ++ continue; ++ } ++ if (!ISWILD(word)) ++ got_flag = NONWILD_CLIENT; ++ ++ /* ++ * Now get a server and check if it matches. ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ if (!ISWILD(word)) { ++ if (server != NULL && strcmp(word, server) != 0) ++ continue; ++ got_flag |= NONWILD_SERVER; ++ } ++ ++ /* ++ * Got some sort of a match - see if it's better than what ++ * we have already. ++ */ ++ if (got_flag <= best_flag) ++ continue; ++ ++ /* ++ * Get the cli_cert ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ if (strcmp(word, "-") != 0) { ++ strlcpy(cli_cert, word, MAXWORDLEN); ++ } else ++ cli_cert[0] = 0; ++ ++ /* ++ * Get serv_cert ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ if (strcmp(word, "-") != 0) { ++ strlcpy(serv_cert, word, MAXWORDLEN); ++ } else ++ serv_cert[0] = 0; ++ ++ /* ++ * Get ca_cert ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ strlcpy(ca_cert, word, MAXWORDLEN); ++ ++ /* ++ * Get pk ++ */ ++ if (!getword(f, word, &newline, filename)) ++ break; ++ if (newline) ++ continue; ++ strlcpy(pk, word, MAXWORDLEN); ++ ++ ++ /* ++ * Now read address authorization info and make a wordlist. ++ */ ++ app = &alist; ++ for (;;) { ++ if (!getword(f, word, &newline, filename) || newline) ++ break; ++ ap = (struct wordlist *) ++ malloc(sizeof(struct wordlist) + strlen(word) + 1); ++ if (ap == NULL) ++ novm("authorized addresses"); ++ ap->word = (char *) (ap + 1); ++ strcpy(ap->word, word); ++ *app = ap; ++ app = &ap->next; ++ } ++ *app = NULL; ++ /* ++ * This is the best so far; remember it. ++ */ ++ best_flag = got_flag; ++ if (addr_list) ++ free_wordlist(addr_list); ++ addr_list = alist; ++ ++ if (!newline) ++ break; ++ } ++ ++ /* scan for a -- word indicating the start of options */ ++ for (app = &addr_list; (ap = *app) != NULL; app = &ap->next) ++ if (strcmp(ap->word, "--") == 0) ++ break; ++ /* ap = start of options */ ++ if (ap != NULL) { ++ ap = ap->next; /* first option */ ++ free(*app); /* free the "--" word */ ++ *app = NULL; /* terminate addr list */ ++ } ++ if (opts != NULL) ++ *opts = ap; ++ else if (ap != NULL) ++ free_wordlist(ap); ++ if (addrs != NULL) ++ *addrs = addr_list; ++ else if (addr_list != NULL) ++ free_wordlist(addr_list); ++ ++ return best_flag; ++} ++ ++ ++int ++get_eaptls_secret(unit, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, am_server) ++ int unit; ++ char *client; ++ char *server; ++ char *clicertfile; ++ char *servcertfile; ++ char *cacertfile; ++ char *pkfile; ++ int am_server; ++{ ++ FILE *fp; ++ int ret; ++ char *filename = NULL; ++ struct wordlist *addrs = NULL; ++ struct wordlist *opts = NULL; ++ ++ /* in client mode the ca+cert+privkey can also be specified as options */ ++ if (!am_server && cacert_file && cert_file && privkey_file ) ++ { ++ strlcpy( clicertfile, cert_file, MAXWORDLEN ); ++ strlcpy( cacertfile, cacert_file, MAXWORDLEN ); ++ strlcpy( pkfile, privkey_file, MAXWORDLEN ); ++ servcertfile[0] = '\0'; ++ } ++ else ++ { ++ filename = (am_server ? _PATH_EAPTLSSERVFILE : _PATH_EAPTLSCLIFILE); ++ addrs = NULL; ++ ++ fp = fopen(filename, "r"); ++ if (fp == NULL) ++ { ++ error("Can't open eap-tls secret file %s: %m", filename); ++ return 0; ++ } ++ ++ check_access(fp, filename); ++ ++ ret = scan_authfile_eaptls(fp, client, server, clicertfile, servcertfile, ++ cacertfile, pkfile, &addrs, &opts, filename, 0); ++ ++ fclose(fp); ++ ++ if (ret < 0) return 0; ++ } ++ ++ if (eaptls_passwd_hook) ++ { ++ dbglog( "Calling eaptls password hook" ); ++ if ( (*eaptls_passwd_hook)(pkfile, passwd) < 0) ++ { ++ error("Unable to obtain EAP-TLS password for %s (%s) from plugin", ++ client, pkfile); ++ return 0; ++ } ++ } ++ if (am_server) ++ set_allowed_addrs(unit, addrs, opts); ++ else if (opts != NULL) ++ free_wordlist(opts); ++ if (addrs != NULL) ++ free_wordlist(addrs); ++ ++ return 1; ++} ++#endif ++ +diff -aur ppp-2.4.6.orig/pppd/ccp.c ppp-2.4.6/pppd/ccp.c +--- ppp-2.4.6.orig/pppd/ccp.c 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/ccp.c 2014-04-03 21:32:29.076627151 +0200 +@@ -540,6 +540,9 @@ + if (go->mppe) { + ccp_options *ao = &ccp_allowoptions[f->unit]; + int auth_mschap_bits = auth_done[f->unit]; ++#ifdef USE_EAPTLS ++ int auth_eap_bits = auth_done[f->unit]; ++#endif + int numbits; + + /* +@@ -567,8 +570,23 @@ + lcp_close(f->unit, "MPPE required but not available"); + return; + } ++ ++#ifdef USE_EAPTLS ++ /* ++ * MPPE is also possible in combination with EAP-TLS. ++ * It is not possible to detect if we're doing EAP or EAP-TLS ++ * at this stage, hence we accept all forms of EAP. If TLS is ++ * not used then the MPPE keys will not be derived anyway. ++ */ ++ /* Leave only the eap auth bits set */ ++ auth_eap_bits &= (EAP_WITHPEER | EAP_PEER ); ++ ++ if ((numbits == 0) && (auth_eap_bits == 0)) { ++ error("MPPE required, but MS-CHAP[v2] nor EAP-TLS auth are performed."); ++#else + if (!numbits) { +- error("MPPE required, but MS-CHAP[v2] auth not performed."); ++ error("MPPE required, but MS-CHAP[v2] auth not performed."); ++#endif + lcp_close(f->unit, "MPPE required but not available"); + return; + } +diff -aur ppp-2.4.6.orig/pppd/chap-md5.c ppp-2.4.6/pppd/chap-md5.c +--- ppp-2.4.6.orig/pppd/chap-md5.c 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/chap-md5.c 2014-04-03 21:32:29.079960484 +0200 +@@ -36,7 +36,11 @@ + #include "chap-new.h" + #include "chap-md5.h" + #include "magic.h" ++#ifdef USE_EAPTLS ++#include "eap-tls.h" ++#else + #include "md5.h" ++#endif /* USE_EAPTLS */ + + #define MD5_HASH_SIZE 16 + #define MD5_MIN_CHALLENGE 16 +diff -aur ppp-2.4.6.orig/pppd/eap.c ppp-2.4.6/pppd/eap.c +--- ppp-2.4.6.orig/pppd/eap.c 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/eap.c 2014-04-03 21:32:29.079960484 +0200 +@@ -43,6 +43,11 @@ + * Based on draft-ietf-pppext-eap-srp-03.txt. + */ + ++/* ++ * Modification by Beniamino Galvani, Mar 2005 ++ * Implemented EAP-TLS authentication ++ */ ++ + #define RCSID "$Id: eap.c,v 1.4 2004/11/09 22:39:25 paulus Exp $" + + /* +@@ -62,8 +67,12 @@ + + #include "pppd.h" + #include "pathnames.h" +-#include "md5.h" + #include "eap.h" ++#ifdef USE_EAPTLS ++#include "eap-tls.h" ++#else ++#include "md5.h" ++#endif /* USE_EAPTLS */ + + #ifdef USE_SRP + #include +@@ -209,6 +218,9 @@ + esp->es_server.ea_id = (u_char)(drand48() * 0x100); + esp->es_client.ea_timeout = EAP_DEFREQTIME; + esp->es_client.ea_maxrequests = EAP_DEFALLOWREQ; ++#ifdef USE_EAPTLS ++ esp->es_client.ea_using_eaptls = 0; ++#endif /* USE_EAPTLS */ + } + + /* +@@ -436,8 +448,16 @@ + u_char vals[2]; + struct b64state bs; + #endif /* USE_SRP */ ++#ifdef USE_EAPTLS ++ struct eaptls_session *ets; ++ int secret_len; ++ char secret[MAXWORDLEN]; ++#endif /* USE_EAPTLS */ + + esp->es_server.ea_timeout = esp->es_savedtime; ++#ifdef USE_EAPTLS ++ esp->es_server.ea_prev_state = esp->es_server.ea_state; ++#endif /* USE_EAPTLS */ + switch (esp->es_server.ea_state) { + case eapBadAuth: + return; +@@ -562,9 +582,81 @@ + break; + } + #endif /* USE_SRP */ ++#ifdef USE_EAPTLS ++ if (!get_secret(esp->es_unit, esp->es_server.ea_peer, ++ esp->es_server.ea_name, secret, &secret_len, 1)) { ++ ++ esp->es_server.ea_state = eapTlsStart; ++ break; ++ } ++#endif /* USE_EAPTLS */ ++ + esp->es_server.ea_state = eapMD5Chall; + break; + ++#ifdef USE_EAPTLS ++ case eapTlsStart: ++ /* Initialize ssl session */ ++ if(!eaptls_init_ssl_server(esp)) { ++ esp->es_server.ea_state = eapBadAuth; ++ break; ++ } ++ ++ esp->es_server.ea_state = eapTlsRecv; ++ break; ++ ++ case eapTlsRecv: ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ ++ if(ets->alert_sent) { ++ esp->es_server.ea_state = eapTlsSendAlert; ++ break; ++ } ++ ++ if (status) { ++ esp->es_server.ea_state = eapBadAuth; ++ break; ++ } ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ ++ if(ets->frag) ++ esp->es_server.ea_state = eapTlsSendAck; ++ else ++ esp->es_server.ea_state = eapTlsSend; ++ break; ++ ++ case eapTlsSend: ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ ++ if(SSL_is_init_finished(ets->ssl)) { ++ esp->es_server.ea_state = eapTlsRecvClient; ++ break; ++ } ++ ++ if(ets->frag) ++ esp->es_server.ea_state = eapTlsRecvAck; ++ else ++ esp->es_server.ea_state = eapTlsRecv; ++ break; ++ ++ case eapTlsSendAck: ++ esp->es_server.ea_state = eapTlsRecv; ++ break; ++ ++ case eapTlsRecvAck: ++ if (status) { ++ esp->es_server.ea_state = eapBadAuth; ++ break; ++ } ++ ++ esp->es_server.ea_state = eapTlsSend; ++ break; ++ ++ case eapTlsSendAlert: ++ esp->es_server.ea_state = eapTlsRecvAlertAck; ++ break; ++#endif /* USE_EAPTLS */ ++ + case eapSRP1: + #ifdef USE_SRP + ts = (struct t_server *)esp->es_server.ea_session; +@@ -718,6 +810,30 @@ + INCPTR(esp->es_server.ea_namelen, outp); + break; + ++#ifdef USE_EAPTLS ++ case eapTlsStart: ++ PUTCHAR(EAPT_TLS, outp); ++ PUTCHAR(EAP_TLS_FLAGS_START, outp); ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsSend: ++ eaptls_send(esp->es_server.ea_session, &outp); ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsSendAck: ++ PUTCHAR(EAPT_TLS, outp); ++ PUTCHAR(0, outp); ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsSendAlert: ++ eaptls_send(esp->es_server.ea_session, &outp); ++ eap_figure_next_state(esp, 0); ++ break; ++#endif /* USE_EAPTLS */ ++ + #ifdef USE_SRP + case eapSRP1: + PUTCHAR(EAPT_SRP, outp); +@@ -904,11 +1020,57 @@ + eap_server_timeout(arg) + void *arg; + { ++#ifdef USE_EAPTLS ++ u_char *outp; ++ u_char *lenloc; ++ int outlen; ++#endif /* USE_EAPTLS */ ++ + eap_state *esp = (eap_state *) arg; + + if (!eap_server_active(esp)) + return; + ++#ifdef USE_EAPTLS ++ switch(esp->es_server.ea_prev_state) { ++ ++ /* ++ * In eap-tls the state changes after a request, so we return to ++ * previous state ... ++ */ ++ case(eapTlsStart): ++ case(eapTlsSendAck): ++ esp->es_server.ea_state = esp->es_server.ea_prev_state; ++ break; ++ ++ /* ++ * ... or resend the stored data ++ */ ++ case(eapTlsSend): ++ case(eapTlsSendAlert): ++ outp = outpacket_buf; ++ MAKEHEADER(outp, PPP_EAP); ++ PUTCHAR(EAP_REQUEST, outp); ++ PUTCHAR(esp->es_server.ea_id, outp); ++ lenloc = outp; ++ INCPTR(2, outp); ++ ++ eaptls_retransmit(esp->es_server.ea_session, &outp); ++ ++ outlen = (outp - outpacket_buf) - PPP_HDRLEN; ++ PUTSHORT(outlen, lenloc); ++ output(esp->es_unit, outpacket_buf, outlen + PPP_HDRLEN); ++ esp->es_server.ea_requests++; ++ ++ if (esp->es_server.ea_timeout > 0) ++ TIMEOUT(eap_server_timeout, esp, esp->es_server.ea_timeout); ++ ++ return; ++ default: ++ break; ++ } ++#endif /* USE_EAPTLS */ ++ + /* EAP ID number must not change on timeout. */ + eap_send_request(esp); + } +@@ -1166,6 +1328,81 @@ + } + #endif /* USE_SRP */ + ++#ifdef USE_EAPTLS ++/* ++ * Send an EAP-TLS response message with tls data ++ */ ++static void ++eap_tls_response(esp, id) ++eap_state *esp; ++u_char id; ++{ ++ u_char *outp; ++ int outlen; ++ u_char *lenloc; ++ ++ outp = outpacket_buf; ++ ++ MAKEHEADER(outp, PPP_EAP); ++ ++ PUTCHAR(EAP_RESPONSE, outp); ++ PUTCHAR(id, outp); ++ ++ lenloc = outp; ++ INCPTR(2, outp); ++ ++ /* ++ If the id in the request is unchanged, we must retransmit ++ the old data ++ */ ++ if(id == esp->es_client.ea_id) ++ eaptls_retransmit(esp->es_client.ea_session, &outp); ++ else ++ eaptls_send(esp->es_client.ea_session, &outp); ++ ++ outlen = (outp - outpacket_buf) - PPP_HDRLEN; ++ PUTSHORT(outlen, lenloc); ++ ++ output(esp->es_unit, outpacket_buf, PPP_HDRLEN + outlen); ++ ++ esp->es_client.ea_id = id; ++ ++} ++ ++/* ++ * Send an EAP-TLS ack ++ */ ++static void ++eap_tls_sendack(esp, id) ++eap_state *esp; ++u_char id; ++{ ++ u_char *outp; ++ int outlen; ++ u_char *lenloc; ++ ++ outp = outpacket_buf; ++ ++ MAKEHEADER(outp, PPP_EAP); ++ ++ PUTCHAR(EAP_RESPONSE, outp); ++ PUTCHAR(id, outp); ++ esp->es_client.ea_id = id; ++ ++ lenloc = outp; ++ INCPTR(2, outp); ++ ++ PUTCHAR(EAPT_TLS, outp); ++ PUTCHAR(0, outp); ++ ++ outlen = (outp - outpacket_buf) - PPP_HDRLEN; ++ PUTSHORT(outlen, lenloc); ++ ++ output(esp->es_unit, outpacket_buf, PPP_HDRLEN + outlen); ++ ++} ++#endif /* USE_EAPTLS */ ++ + static void + eap_send_nak(esp, id, type) + eap_state *esp; +@@ -1320,6 +1557,11 @@ + char rhostname[256]; + MD5_CTX mdContext; + u_char hash[MD5_SIGNATURE_SIZE]; ++#ifdef USE_EAPTLS ++ u_char flags; ++ struct eaptls_session *ets = esp->es_client.ea_session; ++#endif /* USE_EAPTLS */ ++ + #ifdef USE_SRP + struct t_client *tc; + struct t_num sval, gval, Nval, *Ap, Bval; +@@ -1456,6 +1698,90 @@ + esp->es_client.ea_namelen); + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ ++ switch(esp->es_client.ea_state) { ++ ++ case eapListen: ++ ++ GETCHAR(flags, inp); ++ if(flags & EAP_TLS_FLAGS_START){ ++ ++ esp->es_client.ea_using_eaptls = 1; ++ ++ if (explicit_remote){ ++ esp->es_client.ea_peer = strdup(remote_name); ++ esp->es_client.ea_peerlen = strlen(remote_name); ++ } else ++ esp->es_client.ea_peer = NULL; ++ ++ /* Init ssl session */ ++ if(!eaptls_init_ssl_client(esp)) { ++ dbglog("cannot init ssl"); ++ eap_send_nak(esp, id, EAPT_TLS); ++ esp->es_client.ea_using_eaptls = 0; ++ break; ++ } ++ ++ ets = esp->es_client.ea_session; ++ eap_tls_response(esp, id); ++ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck : ++ eapTlsRecv); ++ break; ++ } ++ ++ /* The server has sent a bad start packet. */ ++ eap_send_nak(esp, id, EAPT_TLS); ++ break; ++ ++ case eapTlsRecvAck: ++ eap_tls_response(esp, id); ++ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck : ++ eapTlsRecv); ++ break; ++ ++ case eapTlsRecv: ++ eaptls_receive(ets, inp, len); ++ ++ if(ets->frag) { ++ eap_tls_sendack(esp, id); ++ esp->es_client.ea_state = eapTlsRecv; ++ break; ++ } ++ ++ if(ets->alert_recv) { ++ eap_tls_sendack(esp, id); ++ esp->es_client.ea_state = eapTlsRecvFailure; ++ break; ++ } ++ ++ /* Check if TLS handshake is finished */ ++ if(SSL_is_init_finished(ets->ssl)){ ++#ifdef MPPE ++ eaptls_gen_mppe_keys( ets, "client EAP encryption", 1 ); ++#endif ++ eaptls_free_session(ets); ++ eap_tls_sendack(esp, id); ++ esp->es_client.ea_state = eapTlsRecvSuccess; ++ break; ++ } ++ ++ eap_tls_response(esp,id); ++ esp->es_client.ea_state = (ets->frag ? eapTlsRecvAck : ++ eapTlsRecv); ++ ++ break; ++ ++ default: ++ eap_send_nak(esp, id, EAPT_TLS); ++ esp->es_client.ea_using_eaptls = 0; ++ break; ++ } ++ ++ break; ++#endif /* USE_EAPTLS */ ++ + #ifdef USE_SRP + case EAPT_SRP: + if (len < 1) { +@@ -1737,6 +2063,11 @@ + u_char dig[SHA_DIGESTSIZE]; + #endif /* USE_SRP */ + ++#ifdef USE_EAPTLS ++ struct eaptls_session *ets; ++ u_char flags; ++#endif /* USE_EAPTLS */ ++ + if (esp->es_server.ea_id != id) { + dbglog("EAP: discarding Response %d; expected ID %d", id, + esp->es_server.ea_id); +@@ -1776,6 +2107,60 @@ + eap_figure_next_state(esp, 0); + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ switch(esp->es_server.ea_state) { ++ ++ case eapTlsRecv: ++ ets = (struct eaptls_session *) esp->es_server.ea_session; ++ eap_figure_next_state(esp, ++ eaptls_receive(esp->es_server.ea_session, inp, len)); ++ ++ if(ets->alert_recv) { ++ eap_send_failure(esp); ++ break; ++ } ++ break; ++ ++ case eapTlsRecvAck: ++ if(len > 1) { ++ dbglog("EAP-TLS ACK with extra data"); ++ } ++ eap_figure_next_state(esp, 0); ++ break; ++ ++ case eapTlsRecvClient: ++ /* Receive authentication response from client */ ++ ++ GETCHAR(flags, inp); ++ ++ if(len == 1 && !flags) { /* Ack = ok */ ++#ifdef MPPE ++ eaptls_gen_mppe_keys( esp->es_server.ea_session, "client EAP encryption", 0 ); ++#endif ++ eap_send_success(esp); ++ } ++ else { /* failure */ ++ eaptls_receive(esp->es_server.ea_session, inp, len); ++ warn("Server authentication failed"); ++ eap_send_failure(esp); ++ } ++ ++ eaptls_free_session(esp->es_server.ea_session); ++ ++ break; ++ ++ case eapTlsRecvAlertAck: ++ eap_send_failure(esp); ++ break; ++ ++ default: ++ eap_figure_next_state(esp, 1); ++ break; ++ } ++ break; ++#endif /* USE_EAPTLS */ ++ + case EAPT_NOTIFICATION: + dbglog("EAP unexpected Notification; response discarded"); + break; +@@ -1807,6 +2192,13 @@ + esp->es_server.ea_state = eapMD5Chall; + break; + ++#ifdef USE_EAPTLS ++ /* Send EAP-TLS start packet */ ++ case EAPT_TLS: ++ esp->es_server.ea_state = eapTlsStart; ++ break; ++#endif /* USE_EAPTLS */ ++ + default: + dbglog("EAP: peer requesting unknown Type %d", vallen); + switch (esp->es_server.ea_state) { +@@ -2018,13 +2410,27 @@ + int id; + int len; + { +- if (esp->es_client.ea_state != eapOpen && !eap_client_active(esp)) { ++ if (esp->es_client.ea_state != eapOpen && !eap_client_active(esp) ++#ifdef USE_EAPTLS ++ && esp->es_client.ea_state != eapTlsRecvSuccess ++#endif /* USE_EAPTLS */ ++ ) { + dbglog("EAP unexpected success message in state %s (%d)", + eap_state_name(esp->es_client.ea_state), + esp->es_client.ea_state); + return; + } + ++#ifdef USE_EAPTLS ++ if(esp->es_client.ea_using_eaptls && esp->es_client.ea_state != ++ eapTlsRecvSuccess) { ++ dbglog("EAP-TLS unexpected success message in state %s (%d)", ++ eap_state_name(esp->es_client.ea_state), ++ esp->es_client.ea_state); ++ return; ++ } ++#endif /* USE_EAPTLS */ ++ + if (esp->es_client.ea_timeout > 0) { + UNTIMEOUT(eap_client_timeout, (void *)esp); + } +@@ -2150,6 +2556,9 @@ + int code, id, len, rtype, vallen; + u_char *pstart; + u_int32_t uval; ++#ifdef USE_EAPTLS ++ u_char flags; ++#endif /* USE_EAPTLS */ + + if (inlen < EAP_HEADERLEN) + return (0); +@@ -2214,6 +2623,24 @@ + } + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ if (len < 1) ++ break; ++ GETCHAR(flags, inp); ++ len--; ++ ++ if(flags == 0 && len == 0){ ++ printer(arg, " Ack"); ++ break; ++ } ++ ++ printer(arg, flags & EAP_TLS_FLAGS_LI ? " L":" -"); ++ printer(arg, flags & EAP_TLS_FLAGS_MF ? "M":"-"); ++ printer(arg, flags & EAP_TLS_FLAGS_START ? "S":"- "); ++ break; ++#endif /* USE_EAPTLS */ ++ + case EAPT_SRP: + if (len < 3) + goto truncated; +@@ -2325,6 +2752,25 @@ + } + break; + ++#ifdef USE_EAPTLS ++ case EAPT_TLS: ++ if (len < 1) ++ break; ++ GETCHAR(flags, inp); ++ len--; ++ ++ if(flags == 0 && len == 0){ ++ printer(arg, " Ack"); ++ break; ++ } ++ ++ printer(arg, flags & EAP_TLS_FLAGS_LI ? " L":" -"); ++ printer(arg, flags & EAP_TLS_FLAGS_MF ? "M":"-"); ++ printer(arg, flags & EAP_TLS_FLAGS_START ? "S":"- "); ++ ++ break; ++#endif /* USE_EAPTLS */ ++ + case EAPT_NAK: + if (len <= 0) { + printer(arg, " "); +@@ -2426,3 +2872,4 @@ + + return (inp - pstart); + } ++ +diff -aur ppp-2.4.6.orig/pppd/eap.h ppp-2.4.6/pppd/eap.h +--- ppp-2.4.6.orig/pppd/eap.h 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/eap.h 2014-04-03 21:32:29.079960484 +0200 +@@ -84,6 +84,16 @@ + eapClosed, /* Authentication not in use */ + eapListen, /* Client ready (and timer running) */ + eapIdentify, /* EAP Identify sent */ ++ eapTlsStart, /* Send EAP-TLS start packet */ ++ eapTlsRecv, /* Receive EAP-TLS tls data */ ++ eapTlsSendAck, /* Send EAP-TLS ack */ ++ eapTlsSend, /* Send EAP-TLS tls data */ ++ eapTlsRecvAck, /* Receive EAP-TLS ack */ ++ eapTlsRecvClient, /* Receive EAP-TLS auth response from client*/ ++ eapTlsSendAlert, /* Send EAP-TLS tls alert (server)*/ ++ eapTlsRecvAlertAck, /* Receive EAP-TLS ack after sending alert */ ++ eapTlsRecvSuccess, /* Receive EAP success */ ++ eapTlsRecvFailure, /* Receive EAP failure */ + eapSRP1, /* Sent EAP SRP-SHA1 Subtype 1 */ + eapSRP2, /* Sent EAP SRP-SHA1 Subtype 2 */ + eapSRP3, /* Sent EAP SRP-SHA1 Subtype 3 */ +@@ -95,9 +105,18 @@ + + #define EAP_STATES \ + "Initial", "Pending", "Closed", "Listen", "Identify", \ ++ "TlsStart", "TlsRecv", "TlsSendAck", "TlsSend", "TlsRecvAck", "TlsRecvClient",\ ++ "TlsSendAlert", "TlsRecvAlertAck" , "TlsRecvSuccess", "TlsRecvFailure", \ + "SRP1", "SRP2", "SRP3", "MD5Chall", "Open", "SRP4", "BadAuth" + +-#define eap_client_active(esp) ((esp)->es_client.ea_state == eapListen) ++#ifdef USE_EAPTLS ++#define eap_client_active(esp) ((esp)->es_client.ea_state != eapInitial ||\ ++ (esp)->es_client.ea_state != eapPending ||\ ++ (esp)->es_client.ea_state != eapClosed) ++#else ++#define eap_client_active(esp) ((esp)->es_client.ea_state == eapListen) ++#endif /* USE_EAPTLS */ ++ + #define eap_server_active(esp) \ + ((esp)->es_server.ea_state >= eapIdentify && \ + (esp)->es_server.ea_state <= eapMD5Chall) +@@ -112,11 +131,17 @@ + u_short ea_namelen; /* Length of our name */ + u_short ea_peerlen; /* Length of peer's name */ + enum eap_state_code ea_state; ++#ifdef USE_EAPTLS ++ enum eap_state_code ea_prev_state; ++#endif + u_char ea_id; /* Current id */ + u_char ea_requests; /* Number of Requests sent/received */ + u_char ea_responses; /* Number of Responses */ + u_char ea_type; /* One of EAPT_* */ + u_int32_t ea_keyflags; /* SRP shared key usage flags */ ++#ifdef USE_EAPTLS ++ bool ea_using_eaptls; ++#endif + }; + + /* +@@ -139,7 +164,12 @@ + * Timeouts. + */ + #define EAP_DEFTIMEOUT 3 /* Timeout (seconds) for rexmit */ ++#ifdef USE_EAPTLS ++#define EAP_DEFTRANSMITS 30 /* max # times to transmit */ ++ /* certificates can be long ... */ ++#else + #define EAP_DEFTRANSMITS 10 /* max # times to transmit */ ++#endif /* USE_EAPTLS */ + #define EAP_DEFREQTIME 20 /* Time to wait for peer request */ + #define EAP_DEFALLOWREQ 20 /* max # times to accept requests */ + +diff -Naur ppp-2.4.5/pppd/eap-tls.c ppp-2.4.5-eaptls-mppe-0.99/pppd/eap-tls.c +--- ppp-2.4.5/pppd/eap-tls.c 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5-eaptls-mppe-0.99/pppd/eap-tls.c 2010-10-05 15:12:45.881615580 +0200 +@@ -0,0 +1,1174 @@ ++/* ++ * eap-tls.c - EAP-TLS implementation for PPP ++ * ++ * Copyright (c) Beniamino Galvani 2005 All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * 3. The name(s) of the authors of this software must not be used to ++ * endorse or promote products derived from this software without ++ * prior written permission. ++ * ++ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO ++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "pppd.h" ++#include "eap.h" ++#include "eap-tls.h" ++#include "fsm.h" ++#include "lcp.h" ++#include "pathnames.h" ++ ++/* The openssl configuration file and engines can be loaded only once */ ++static CONF *ssl_config = NULL; ++static ENGINE *cert_engine = NULL; ++static ENGINE *pkey_engine = NULL; ++ ++#ifdef MPPE ++ ++/* ++ * TLS PRF from RFC 2246 ++ */ ++static void P_hash(const EVP_MD *evp_md, ++ const unsigned char *secret, unsigned int secret_len, ++ const unsigned char *seed, unsigned int seed_len, ++ unsigned char *out, unsigned int out_len) ++{ ++ HMAC_CTX ctx_a, ctx_out; ++ unsigned char a[HMAC_MAX_MD_CBLOCK]; ++ unsigned int size; ++ ++ HMAC_CTX_init(&ctx_a); ++ HMAC_CTX_init(&ctx_out); ++ HMAC_Init_ex(&ctx_a, secret, secret_len, evp_md, NULL); ++ HMAC_Init_ex(&ctx_out, secret, secret_len, evp_md, NULL); ++ ++ size = HMAC_size(&ctx_out); ++ ++ /* Calculate A(1) */ ++ HMAC_Update(&ctx_a, seed, seed_len); ++ HMAC_Final(&ctx_a, a, NULL); ++ ++ while (1) { ++ /* Calculate next part of output */ ++ HMAC_Update(&ctx_out, a, size); ++ HMAC_Update(&ctx_out, seed, seed_len); ++ ++ /* Check if last part */ ++ if (out_len < size) { ++ HMAC_Final(&ctx_out, a, NULL); ++ memcpy(out, a, out_len); ++ break; ++ } ++ ++ /* Place digest in output buffer */ ++ HMAC_Final(&ctx_out, out, NULL); ++ HMAC_Init_ex(&ctx_out, NULL, 0, NULL, NULL); ++ out += size; ++ out_len -= size; ++ ++ /* Calculate next A(i) */ ++ HMAC_Init_ex(&ctx_a, NULL, 0, NULL, NULL); ++ HMAC_Update(&ctx_a, a, size); ++ HMAC_Final(&ctx_a, a, NULL); ++ } ++ ++ HMAC_CTX_cleanup(&ctx_a); ++ HMAC_CTX_cleanup(&ctx_out); ++ memset(a, 0, sizeof(a)); ++} ++ ++static void PRF(const unsigned char *secret, unsigned int secret_len, ++ const unsigned char *seed, unsigned int seed_len, ++ unsigned char *out, unsigned char *buf, unsigned int out_len) ++{ ++ unsigned int i; ++ unsigned int len = (secret_len + 1) / 2; ++ const unsigned char *s1 = secret; ++ const unsigned char *s2 = secret + (secret_len - len); ++ ++ P_hash(EVP_md5(), s1, len, seed, seed_len, out, out_len); ++ P_hash(EVP_sha1(), s2, len, seed, seed_len, buf, out_len); ++ ++ for (i=0; i < out_len; i++) { ++ out[i] ^= buf[i]; ++ } ++} ++ ++#define EAPTLS_MPPE_KEY_LEN 32 ++ ++/* ++ * Generate keys according to RFC 2716 and add to reply ++ */ ++void eaptls_gen_mppe_keys(struct eaptls_session *ets, const char *prf_label, ++ int client) ++{ ++ unsigned char out[4*EAPTLS_MPPE_KEY_LEN], buf[4*EAPTLS_MPPE_KEY_LEN]; ++ unsigned char seed[64 + 2*SSL3_RANDOM_SIZE]; ++ unsigned char *p = seed; ++ SSL *s = ets->ssl; ++ size_t prf_size; ++ ++ prf_size = strlen(prf_label); ++ ++ memcpy(p, prf_label, prf_size); ++ p += prf_size; ++ ++ memcpy(p, s->s3->client_random, SSL3_RANDOM_SIZE); ++ p += SSL3_RANDOM_SIZE; ++ prf_size += SSL3_RANDOM_SIZE; ++ ++ memcpy(p, s->s3->server_random, SSL3_RANDOM_SIZE); ++ prf_size += SSL3_RANDOM_SIZE; ++ ++ PRF(s->session->master_key, s->session->master_key_length, ++ seed, prf_size, out, buf, sizeof(out)); ++ ++ /* ++ * We now have the master send and receive keys. ++ * From these, generate the session send and receive keys. ++ * (see RFC3079 / draft-ietf-pppext-mppe-keys-03.txt for details) ++ */ ++ if (client) ++ { ++ p = out; ++ BCOPY( p, mppe_send_key, sizeof(mppe_send_key) ); ++ p += EAPTLS_MPPE_KEY_LEN; ++ BCOPY( p, mppe_recv_key, sizeof(mppe_recv_key) ); ++ } ++ else ++ { ++ p = out; ++ BCOPY( p, mppe_recv_key, sizeof(mppe_recv_key) ); ++ p += EAPTLS_MPPE_KEY_LEN; ++ BCOPY( p, mppe_send_key, sizeof(mppe_send_key) ); ++ } ++ ++ mppe_keys_set = 1; ++} ++ ++#endif ++ ++void log_ssl_errors( void ) ++{ ++ unsigned long ssl_err = ERR_get_error(); ++ ++ if (ssl_err != 0) ++ dbglog("EAP-TLS SSL error stack:"); ++ while (ssl_err != 0) { ++ dbglog( ERR_error_string( ssl_err, NULL ) ); ++ ssl_err = ERR_get_error(); ++ } ++} ++ ++ ++int password_callback (char *buf, int size, int rwflag, void *u) ++{ ++ if (buf) ++ { ++ strncpy (buf, passwd, size); ++ return strlen (buf); ++ } ++ return 0; ++} ++ ++ ++CONF *eaptls_ssl_load_config( void ) ++{ ++ CONF *config; ++ int ret_code; ++ long error_line = 33; ++ ++ config = NCONF_new( NULL ); ++ dbglog( "Loading OpenSSL config file" ); ++ ret_code = NCONF_load( config, _PATH_OPENSSLCONFFILE, &error_line ); ++ if (ret_code == 0) ++ { ++ warn( "EAP-TLS: Error in OpenSSL config file %s at line %d", _PATH_OPENSSLCONFFILE, error_line ); ++ NCONF_free( config ); ++ config = NULL; ++ ERR_clear_error(); ++ } ++ ++ dbglog( "Loading OpenSSL built-ins" ); ++ ENGINE_load_builtin_engines(); ++ OPENSSL_load_builtin_modules(); ++ ++ dbglog( "Loading OpenSSL configured modules" ); ++ if (CONF_modules_load( config, NULL, 0 ) <= 0 ) ++ { ++ warn( "EAP-TLS: Error loading OpenSSL modules" ); ++ log_ssl_errors(); ++ config = NULL; ++ } ++ ++ return config; ++} ++ ++ENGINE *eaptls_ssl_load_engine( char *engine_name ) ++{ ++ ENGINE *e = NULL; ++ ++ dbglog( "Enabling OpenSSL auto engines" ); ++ ENGINE_register_all_complete(); ++ ++ dbglog( "Loading OpenSSL '%s' engine support", engine_name ); ++ e = ENGINE_by_id( engine_name ); ++ if (!e) ++ { ++ dbglog( "EAP-TLS: Cannot load '%s' engine support, trying 'dynamic'", engine_name ); ++ e = ENGINE_by_id( "dynamic" ); ++ if (e) ++ { ++ if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", engine_name, 0) ++ || !ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0)) ++ { ++ warn( "EAP-TLS: Error loading dynamic engine '%s'", engine_name ); ++ log_ssl_errors(); ++ ENGINE_free(e); ++ e = NULL; ++ } ++ } ++ else ++ { ++ warn( "EAP-TLS: Cannot load dynamic engine support" ); ++ } ++ } ++ ++ if (e) ++ { ++ dbglog( "Initialising engine" ); ++ if(!ENGINE_set_default(e, ENGINE_METHOD_ALL)) ++ { ++ warn( "EAP-TLS: Cannot use that engine" ); ++ log_ssl_errors(); ++ ENGINE_free(e); ++ e = NULL; ++ } ++ } ++ ++ return e; ++} ++ ++/* ++ * Initialize the SSL stacks and tests if certificates, key and crl ++ * for client or server use can be loaded. ++ */ ++SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, ++ char *certfile, char *peer_certfile, char *privkeyfile) ++{ ++ char *cert_engine_name = NULL; ++ char *cert_identifier = NULL; ++ char *pkey_engine_name = NULL; ++ char *pkey_identifier = NULL; ++ SSL_CTX *ctx; ++ X509_STORE *certstore; ++ X509_LOOKUP *lookup; ++ X509 *tmp; ++ ++ /* ++ * Without these can't continue ++ */ ++ if (!cacertfile[0]) ++ { ++ error("EAP-TLS: CA certificate missing"); ++ return NULL; ++ } ++ ++ if (!certfile[0]) ++ { ++ error("EAP-TLS: User certificate missing"); ++ return NULL; ++ } ++ ++ if (!privkeyfile[0]) ++ { ++ error("EAP-TLS: User private key missing"); ++ return NULL; ++ } ++ ++ SSL_library_init(); ++ SSL_load_error_strings(); ++ ++ ctx = SSL_CTX_new(TLSv1_method()); ++ ++ if (!ctx) { ++ error("EAP-TLS: Cannot initialize SSL CTX context"); ++ goto fail; ++ } ++ ++ /* if the certificate filename is of the form engine:id. e.g. ++ pkcs11:12345 ++ then we try to load and use this engine. ++ If the certificate filename starts with a / or . then we ++ ALWAYS assume it is a file and not an engine/pkcs11 identifier ++ */ ++ if ( index( certfile, '/' ) == NULL && index( certfile, '.') == NULL ) ++ { ++ cert_identifier = index( certfile, ':' ); ++ ++ if (cert_identifier) ++ { ++ cert_engine_name = certfile; ++ *cert_identifier = '\0'; ++ cert_identifier++; ++ ++ dbglog( "Found certificate engine '%s'", cert_engine_name ); ++ dbglog( "Found certificate identifier '%s'", cert_identifier ); ++ } ++ } ++ ++ /* if the privatekey filename is of the form engine:id. e.g. ++ pkcs11:12345 ++ then we try to load and use this engine. ++ If the privatekey filename starts with a / or . then we ++ ALWAYS assume it is a file and not an engine/pkcs11 identifier ++ */ ++ if ( index( privkeyfile, '/' ) == NULL && index( privkeyfile, '.') == NULL ) ++ { ++ pkey_identifier = index( privkeyfile, ':' ); ++ ++ if (pkey_identifier) ++ { ++ pkey_engine_name = privkeyfile; ++ *pkey_identifier = '\0'; ++ pkey_identifier++; ++ ++ dbglog( "Found privatekey engine '%s'", pkey_engine_name ); ++ dbglog( "Found privatekey identifier '%s'", pkey_identifier ); ++ } ++ } ++ ++ if (cert_identifier && pkey_identifier) ++ { ++ if (strlen( cert_identifier ) == 0) ++ { ++ if (strlen( pkey_identifier ) == 0) ++ error( "EAP-TLS: both the certificate and privatekey identifiers are missing!" ); ++ else ++ { ++ dbglog( "Substituting privatekey identifier for certificate identifier" ); ++ cert_identifier = pkey_identifier; ++ } ++ } ++ else ++ { ++ if (strlen( pkey_identifier ) == 0) ++ { ++ dbglog( "Substituting certificate identifier for privatekey identifier" ); ++ pkey_identifier = cert_identifier; ++ } ++ } ++ ++ } ++ ++ /* load the openssl config file only once */ ++ if (!ssl_config) ++ { ++ if (cert_engine_name || pkey_engine_name) ++ ssl_config = eaptls_ssl_load_config(); ++ ++ if (ssl_config && cert_engine_name) ++ cert_engine = eaptls_ssl_load_engine( cert_engine_name ); ++ ++ if (ssl_config && pkey_engine_name) ++ { ++ /* don't load the same engine twice */ ++ if ( strcmp( cert_engine_name, pkey_engine_name) == 0 ) ++ pkey_engine = cert_engine; ++ else ++ pkey_engine = eaptls_ssl_load_engine( pkey_engine_name ); ++ } ++ } ++ ++ SSL_CTX_set_default_passwd_cb (ctx, password_callback); ++ ++ if (!SSL_CTX_load_verify_locations(ctx, cacertfile, NULL)) ++ { ++ error("EAP-TLS: Cannot load or verify CA file %s", cacertfile); ++ goto fail; ++ } ++ ++ if (init_server) ++ SSL_CTX_set_client_CA_list(ctx, SSL_load_client_CA_file(cacertfile)); ++ ++ if (cert_engine) ++ { ++ struct ++ { ++ const char *s_slot_cert_id; ++ X509 *cert; ++ } cert_info; ++ ++ cert_info.s_slot_cert_id = cert_identifier; ++ cert_info.cert = NULL; ++ ++ if (!ENGINE_ctrl_cmd( cert_engine, "LOAD_CERT_CTRL", 0, &cert_info, NULL, 0 ) ) ++ { ++ error( "EAP-TLS: Error loading certificate with id '%s' from engine", cert_identifier ); ++ goto fail; ++ } ++ ++ if (cert_info.cert) ++ { ++ dbglog( "Got the certificate, adding it to SSL context" ); ++ dbglog( "subject = %s", X509_NAME_oneline( X509_get_subject_name( cert_info.cert ), NULL, 0 ) ); ++ if (SSL_CTX_use_certificate(ctx, cert_info.cert) <= 0) ++ { ++ error("EAP-TLS: Cannot use PKCS11 certificate %s", cert_identifier); ++ goto fail; ++ } ++ } ++ else ++ { ++ warn("EAP-TLS: Cannot load PKCS11 key %s", cert_identifier); ++ log_ssl_errors(); ++ } ++ } ++ else ++ { ++ if (!SSL_CTX_use_certificate_file(ctx, certfile, SSL_FILETYPE_PEM)) ++ { ++ error( "EAP-TLS: Cannot use public certificate %s", certfile ); ++ goto fail; ++ } ++ } ++ ++ if (pkey_engine) ++ { ++ EVP_PKEY *pkey = NULL; ++ PW_CB_DATA cb_data; ++ ++ cb_data.password = passwd; ++ cb_data.prompt_info = pkey_identifier; ++ ++ dbglog( "Loading private key '%s' from engine", pkey_identifier ); ++ pkey = ENGINE_load_private_key(pkey_engine, pkey_identifier, NULL, &cb_data); ++ if (pkey) ++ { ++ dbglog( "Got the private key, adding it to SSL context" ); ++ if (SSL_CTX_use_PrivateKey(ctx, pkey) <= 0) ++ { ++ error("EAP-TLS: Cannot use PKCS11 key %s", pkey_identifier); ++ goto fail; ++ } ++ } ++ else ++ { ++ warn("EAP-TLS: Cannot load PKCS11 key %s", pkey_identifier); ++ log_ssl_errors(); ++ } ++ } ++ else ++ { ++ if (!SSL_CTX_use_PrivateKey_file(ctx, privkeyfile, SSL_FILETYPE_PEM)) ++ { ++ error("EAP-TLS: Cannot use private key %s", privkeyfile); ++ goto fail; ++ } ++ } ++ ++ if (SSL_CTX_check_private_key(ctx) != 1) { ++ error("EAP-TLS: Private key %s fails security check", privkeyfile); ++ goto fail; ++ } ++ ++ SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); ++ SSL_CTX_set_verify_depth(ctx, 5); ++ SSL_CTX_set_verify(ctx, ++ SSL_VERIFY_PEER | ++ SSL_VERIFY_FAIL_IF_NO_PEER_CERT, ++ &ssl_verify_callback); ++ ++ if (crl_dir) { ++ if (!(certstore = SSL_CTX_get_cert_store(ctx))) { ++ error("EAP-TLS: Failed to get certificate store"); ++ goto fail; ++ } ++ ++ if (!(lookup = ++ X509_STORE_add_lookup(certstore, X509_LOOKUP_hash_dir()))) { ++ error("EAP-TLS: Store lookup for CRL failed"); ++ ++ goto fail; ++ } ++ ++ X509_LOOKUP_add_dir(lookup, crl_dir, X509_FILETYPE_PEM); ++ X509_STORE_set_flags(certstore, X509_V_FLAG_CRL_CHECK); ++ } ++ ++ /* ++ * If a peer certificate file was specified, it must be valid, else fail ++ */ ++ if (peer_certfile[0]) { ++ if (!(tmp = get_X509_from_file(peer_certfile))) { ++ error("EAP-TLS: Error loading client certificate from file %s", ++ peer_certfile); ++ goto fail; ++ } ++ X509_free(tmp); ++ } ++ ++ return ctx; ++ ++fail: ++ log_ssl_errors(); ++ SSL_CTX_free(ctx); ++ return NULL; ++} ++ ++/* ++ * Determine the maximum packet size by looking at the LCP handshake ++ */ ++ ++int eaptls_get_mtu(int unit) ++{ ++ int mtu, mru; ++ ++ lcp_options *wo = &lcp_wantoptions[unit]; ++ lcp_options *go = &lcp_gotoptions[unit]; ++ lcp_options *ho = &lcp_hisoptions[unit]; ++ lcp_options *ao = &lcp_allowoptions[unit]; ++ ++ mtu = ho->neg_mru? ho->mru: PPP_MRU; ++ mru = go->neg_mru? MAX(wo->mru, go->mru): PPP_MRU; ++ mtu = MIN(MIN(mtu, mru), ao->mru)- PPP_HDRLEN - 10; ++ ++ dbglog("MTU = %d", mtu); ++ return mtu; ++} ++ ++ ++/* ++ * Init the ssl handshake (server mode) ++ */ ++int eaptls_init_ssl_server(eap_state * esp) ++{ ++ struct eaptls_session *ets; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ /* ++ * Allocate new eaptls session ++ */ ++ esp->es_server.ea_session = malloc(sizeof(struct eaptls_session)); ++ if (!esp->es_server.ea_session) ++ fatal("Allocation error"); ++ ets = esp->es_server.ea_session; ++ ++ if (!esp->es_server.ea_peer) { ++ error("EAP-TLS: Error: client name not set (BUG)"); ++ return 0; ++ } ++ ++ strncpy(ets->peer, esp->es_server.ea_peer, MAXWORDLEN); ++ ++ dbglog( "getting eaptls secret" ); ++ if (!get_eaptls_secret(esp->es_unit, esp->es_server.ea_peer, ++ esp->es_server.ea_name, clicertfile, ++ servcertfile, cacertfile, pkfile, 1)) { ++ error( "EAP-TLS: Cannot get secret/password for client \"%s\", server \"%s\"", ++ esp->es_server.ea_peer, esp->es_server.ea_name ); ++ return 0; ++ } ++ ++ ets->mtu = eaptls_get_mtu(esp->es_unit); ++ ++ ets->ctx = eaptls_init_ssl(1, cacertfile, servcertfile, clicertfile, pkfile); ++ if (!ets->ctx) ++ goto fail; ++ ++ if (!(ets->ssl = SSL_new(ets->ctx))) ++ goto fail; ++ ++ /* ++ * Set auto-retry to avoid timeouts on BIO_read ++ */ ++ SSL_set_mode(ets->ssl, SSL_MODE_AUTO_RETRY); ++ ++ /* ++ * Initialize the BIOs we use to read/write to ssl engine ++ */ ++ ets->into_ssl = BIO_new(BIO_s_mem()); ++ ets->from_ssl = BIO_new(BIO_s_mem()); ++ SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl); ++ ++ SSL_set_msg_callback(ets->ssl, ssl_msg_callback); ++ SSL_set_msg_callback_arg(ets->ssl, ets); ++ ++ /* ++ * Attach the session struct to the connection, so we can later ++ * retrieve it when doing certificate verification ++ */ ++ SSL_set_ex_data(ets->ssl, 0, ets); ++ ++ SSL_set_accept_state(ets->ssl); ++ ++ ets->data = NULL; ++ ets->datalen = 0; ++ ets->alert_sent = 0; ++ ets->alert_recv = 0; ++ ++ /* ++ * If we specified the client certificate file, store it in ets->peercertfile, ++ * so we can check it later in ssl_verify_callback() ++ */ ++ if (clicertfile[0]) ++ strncpy(&ets->peercertfile[0], clicertfile, MAXWORDLEN); ++ else ++ ets->peercertfile[0] = 0; ++ ++ return 1; ++ ++fail: ++ SSL_CTX_free(ets->ctx); ++ return 0; ++} ++ ++/* ++ * Init the ssl handshake (client mode) ++ */ ++int eaptls_init_ssl_client(eap_state * esp) ++{ ++ struct eaptls_session *ets; ++ char servcertfile[MAXWORDLEN]; ++ char clicertfile[MAXWORDLEN]; ++ char cacertfile[MAXWORDLEN]; ++ char pkfile[MAXWORDLEN]; ++ ++ /* ++ * Allocate new eaptls session ++ */ ++ esp->es_client.ea_session = malloc(sizeof(struct eaptls_session)); ++ if (!esp->es_client.ea_session) ++ fatal("Allocation error"); ++ ets = esp->es_client.ea_session; ++ ++ /* ++ * If available, copy server name in ets; it will be used in cert ++ * verify ++ */ ++ if (esp->es_client.ea_peer) ++ strncpy(ets->peer, esp->es_client.ea_peer, MAXWORDLEN); ++ else ++ ets->peer[0] = 0; ++ ++ ets->mtu = eaptls_get_mtu(esp->es_unit); ++ ++ dbglog( "calling get_eaptls_secret" ); ++ if (!get_eaptls_secret(esp->es_unit, esp->es_client.ea_name, ++ esp->es_client.ea_peer, clicertfile, ++ servcertfile, cacertfile, pkfile, 0)) { ++ error( "EAP-TLS: Cannot get secret/password for client \"%s\", server \"%s\"", ++ esp->es_client.ea_name, esp->es_client.ea_peer ); ++ return 0; ++ } ++ ++ dbglog( "calling eaptls_init_ssl" ); ++ ets->ctx = eaptls_init_ssl(0, cacertfile, clicertfile, servcertfile, pkfile); ++ if (!ets->ctx) ++ goto fail; ++ ++ ets->ssl = SSL_new(ets->ctx); ++ ++ if (!ets->ssl) ++ goto fail; ++ ++ /* ++ * Initialize the BIOs we use to read/write to ssl engine ++ */ ++ dbglog( "Initializing SSL BIOs" ); ++ ets->into_ssl = BIO_new(BIO_s_mem()); ++ ets->from_ssl = BIO_new(BIO_s_mem()); ++ SSL_set_bio(ets->ssl, ets->into_ssl, ets->from_ssl); ++ ++ SSL_set_msg_callback(ets->ssl, ssl_msg_callback); ++ SSL_set_msg_callback_arg(ets->ssl, ets); ++ ++ /* ++ * Attach the session struct to the connection, so we can later ++ * retrieve it when doing certificate verification ++ */ ++ SSL_set_ex_data(ets->ssl, 0, ets); ++ ++ SSL_set_connect_state(ets->ssl); ++ ++ ets->data = NULL; ++ ets->datalen = 0; ++ ets->alert_sent = 0; ++ ets->alert_recv = 0; ++ ++ /* ++ * If we specified the server certificate file, store it in ++ * ets->peercertfile, so we can check it later in ++ * ssl_verify_callback() ++ */ ++ if (servcertfile[0]) ++ strncpy(ets->peercertfile, servcertfile, MAXWORDLEN); ++ else ++ ets->peercertfile[0] = 0; ++ ++ return 1; ++ ++fail: ++ dbglog( "eaptls_init_ssl_client: fail" ); ++ SSL_CTX_free(ets->ctx); ++ return 0; ++ ++} ++ ++void eaptls_free_session(struct eaptls_session *ets) ++{ ++ if (ets->ssl) ++ SSL_free(ets->ssl); ++ ++ if (ets->ctx) ++ SSL_CTX_free(ets->ctx); ++ ++ free(ets); ++} ++ ++/* ++ * Handle a received packet, reassembling fragmented messages and ++ * passing them to the ssl engine ++ */ ++int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len) ++{ ++ u_char flags; ++ u_int tlslen; ++ u_char dummy[65536]; ++ ++ GETCHAR(flags, inp); ++ len--; ++ ++ if (flags & EAP_TLS_FLAGS_LI && !ets->data) { ++ ++ /* ++ * This is the first packet of a message ++ */ ++ ++ GETLONG(tlslen, inp); ++ len -= 4; ++ ++ if (tlslen > EAP_TLS_MAX_LEN) { ++ error("Error: tls message length > %d, truncated", ++ EAP_TLS_MAX_LEN); ++ tlslen = EAP_TLS_MAX_LEN; ++ } ++ ++ /* ++ * Allocate memory for the whole message ++ */ ++ ets->data = malloc(tlslen); ++ if (!ets->data) ++ fatal("EAP TLS: allocation error\n"); ++ ++ ets->datalen = 0; ++ ets->tlslen = tlslen; ++ ++ } ++ else if (flags & EAP_TLS_FLAGS_LI && ets->data) { ++ /* ++ * Non first with LI (strange...) ++ */ ++ ++ GETLONG(tlslen, inp); ++ len -= 4; ++ ++ } ++ else if (!ets->data) { ++ /* ++ * A non fragmented message without LI flag ++ */ ++ ++ ets->data = malloc(len); ++ if (!ets->data) ++ fatal("EAP TLS: allocation error\n"); ++ ++ ets->datalen = 0; ++ ets->tlslen = len; ++ } ++ ++ if (flags & EAP_TLS_FLAGS_MF) ++ ets->frag = 1; ++ else ++ ets->frag = 0; ++ ++ if (len + ets->datalen > ets->tlslen) { ++ warn("EAP TLS: received data > TLS message length"); ++ return 1; ++ } ++ ++ BCOPY(inp, ets->data + ets->datalen, len); ++ ets->datalen += len; ++ ++ if (!ets->frag) { ++ ++ /* ++ * If we have the whole message, pass it to ssl ++ */ ++ ++ if (ets->datalen != ets->tlslen) { ++ warn("EAP TLS: received data != TLS message length"); ++ return 1; ++ } ++ ++ if (BIO_write(ets->into_ssl, ets->data, ets->datalen) == -1) ++ log_ssl_errors(); ++ ++ SSL_read(ets->ssl, dummy, 65536); ++ ++ free(ets->data); ++ ets->data = NULL; ++ ets->datalen = 0; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Return an eap-tls packet in outp. ++ * A TLS message read from the ssl engine is buffered in ets->data. ++ * At each call we control if there is buffered data and send a ++ * packet of mtu bytes. ++ */ ++int eaptls_send(struct eaptls_session *ets, u_char ** outp) ++{ ++ bool first = 0; ++ int size; ++ u_char fromtls[65536]; ++ int res; ++ u_char *start; ++ ++ start = *outp; ++ ++ if (!ets->data) { ++ ++ if(!ets->alert_sent) ++ SSL_read(ets->ssl, fromtls, 65536); ++ ++ /* ++ * Read from ssl ++ */ ++ if ((res = BIO_read(ets->from_ssl, fromtls, 65536)) == -1) ++ fatal("No data from BIO_read"); ++ ++ ets->datalen = res; ++ ++ ets->data = malloc(ets->datalen); ++ BCOPY(fromtls, ets->data, ets->datalen); ++ ++ ets->offset = 0; ++ first = 1; ++ ++ } ++ ++ size = ets->datalen - ets->offset; ++ ++ if (size > ets->mtu) { ++ size = ets->mtu; ++ ets->frag = 1; ++ } else ++ ets->frag = 0; ++ ++ PUTCHAR(EAPT_TLS, *outp); ++ ++ /* ++ * Set right flags and length if necessary ++ */ ++ if (ets->frag && first) { ++ PUTCHAR(EAP_TLS_FLAGS_LI | EAP_TLS_FLAGS_MF, *outp); ++ PUTLONG(ets->datalen, *outp); ++ } else if (ets->frag) { ++ PUTCHAR(EAP_TLS_FLAGS_MF, *outp); ++ } else ++ PUTCHAR(0, *outp); ++ ++ /* ++ * Copy the data in outp ++ */ ++ BCOPY(ets->data + ets->offset, *outp, size); ++ INCPTR(size, *outp); ++ ++ /* ++ * Copy the packet in retransmission buffer ++ */ ++ BCOPY(start, &ets->rtx[0], *outp - start); ++ ets->rtx_len = *outp - start; ++ ++ ets->offset += size; ++ ++ if (ets->offset >= ets->datalen) { ++ ++ /* ++ * The whole message has been sent ++ */ ++ ++ free(ets->data); ++ ets->data = NULL; ++ ets->datalen = 0; ++ ets->offset = 0; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Get the sent packet from the retransmission buffer ++ */ ++void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp) ++{ ++ BCOPY(ets->rtx, *outp, ets->rtx_len); ++ INCPTR(ets->rtx_len, *outp); ++} ++ ++/* ++ * Verify a certificate. ++ * Most of the work (signatures and issuer attributes checking) ++ * is done by ssl; we check the CN in the peer certificate ++ * against the peer name. ++ */ ++int ssl_verify_callback(int preverify_ok, X509_STORE_CTX * ctx) ++{ ++ char subject[256]; ++ char cn_str[256]; ++ X509 *peer_cert; ++ int err, depth; ++ int ok = preverify_ok; ++ SSL *ssl; ++ struct eaptls_session *ets; ++ ++ peer_cert = X509_STORE_CTX_get_current_cert(ctx); ++ err = X509_STORE_CTX_get_error(ctx); ++ depth = X509_STORE_CTX_get_error_depth(ctx); ++ ++ dbglog("certificate verify depth: %d", depth); ++ ++ if (auth_required && !ok) { ++ X509_NAME_oneline(X509_get_subject_name(peer_cert), ++ subject, 256); ++ ++ X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert), ++ NID_commonName, cn_str, 256); ++ ++ dbglog("Certificate verification error:\n depth: %d CN: %s" ++ "\n err: %d (%s)\n", depth, cn_str, err, ++ X509_verify_cert_error_string(err)); ++ ++ return 0; ++ } ++ ++ ssl = X509_STORE_CTX_get_ex_data(ctx, ++ SSL_get_ex_data_X509_STORE_CTX_idx()); ++ ++ ets = (struct eaptls_session *)SSL_get_ex_data(ssl, 0); ++ ++ if (ets == NULL) { ++ error("Error: SSL_get_ex_data returned NULL"); ++ return 0; ++ } ++ ++ log_ssl_errors(); ++ ++ if (!depth) { /* This is the peer certificate */ ++ ++ X509_NAME_oneline(X509_get_subject_name(peer_cert), ++ subject, 256); ++ ++ X509_NAME_get_text_by_NID(X509_get_subject_name(peer_cert), ++ NID_commonName, cn_str, 256); ++ ++ /* ++ * If acting as client and the name of the server wasn't specified ++ * explicitely, we can't verify the server authenticity ++ */ ++ if (!ets->peer[0]) { ++ warn("Peer name not specified: no check"); ++ return 1; ++ } ++ ++ /* ++ * Check the CN ++ */ ++ if (strcmp(cn_str, ets->peer)) { ++ error ++ ("Certificate verification error: CN (%s) != peer_name (%s)", ++ cn_str, ets->peer); ++ return 0; ++ } ++ ++ warn("Certificate CN: %s , peer name %s", cn_str, ets->peer); ++ ++ /* ++ * If a peer certificate file was specified, here we check it ++ */ ++ if (ets->peercertfile[0]) { ++ if (ssl_cmp_certs(&ets->peercertfile[0], peer_cert) ++ != 0) { ++ error ++ ("Peer certificate doesn't match stored certificate"); ++ return 0; ++ } ++ } ++ } ++ ++ return 1; ++} ++ ++/* ++ * Compare a certificate with the one stored in a file ++ */ ++int ssl_cmp_certs(char *filename, X509 * a) ++{ ++ X509 *b; ++ int ret; ++ ++ if (!(b = get_X509_from_file(filename))) ++ return 1; ++ ++ ret = X509_cmp(a, b); ++ X509_free(b); ++ ++ return ret; ++ ++} ++ ++X509 *get_X509_from_file(char *filename) ++{ ++ FILE *fp; ++ X509 *ret; ++ ++ if (!(fp = fopen(filename, "r"))) ++ return NULL; ++ ++ ret = PEM_read_X509(fp, NULL, NULL, NULL); ++ ++ fclose(fp); ++ ++ return ret; ++} ++ ++/* ++ * Every sent & received message this callback function is invoked, ++ * so we know when alert messages have arrived or are sent and ++ * we can print debug information about TLS handshake. ++ */ ++void ++ssl_msg_callback(int write_p, int version, int content_type, ++ const void *buf, size_t len, SSL * ssl, void *arg) ++{ ++ char string[256]; ++ struct eaptls_session *ets = (struct eaptls_session *)arg; ++ unsigned char code; ++ ++ if(write_p) ++ strcpy(string, " -> "); ++ else ++ strcpy(string, " <- "); ++ ++ ++ switch(content_type) { ++ ++ case SSL3_RT_ALERT: ++ strcat(string, "Alert: "); ++ code = ((const unsigned char *)buf)[1]; ++ ++ if (write_p) { ++ ets->alert_sent = 1; ++ ets->alert_sent_desc = code; ++ } else { ++ ets->alert_recv = 1; ++ ets->alert_recv_desc = code; ++ } ++ ++ strcat(string, SSL_alert_desc_string_long(code)); ++ break; ++ ++ case SSL3_RT_CHANGE_CIPHER_SPEC: ++ strcat(string, "ChangeCipherSpec"); ++ break; ++ ++ case SSL3_RT_HANDSHAKE: ++ ++ strcat(string, "Handshake: "); ++ code = ((const unsigned char *)buf)[0]; ++ ++ switch(code) { ++ case SSL3_MT_HELLO_REQUEST: ++ strcat(string,"Hello Request"); ++ break; ++ case SSL3_MT_CLIENT_HELLO: ++ strcat(string,"Client Hello"); ++ break; ++ case SSL3_MT_SERVER_HELLO: ++ strcat(string,"Server Hello"); ++ break; ++ case SSL3_MT_CERTIFICATE: ++ strcat(string,"Certificate"); ++ break; ++ case SSL3_MT_SERVER_KEY_EXCHANGE: ++ strcat(string,"Server Key Exchange"); ++ break; ++ case SSL3_MT_CERTIFICATE_REQUEST: ++ strcat(string,"Certificate Request"); ++ break; ++ case SSL3_MT_SERVER_DONE: ++ strcat(string,"Server Hello Done"); ++ break; ++ case SSL3_MT_CERTIFICATE_VERIFY: ++ strcat(string,"Certificate Verify"); ++ break; ++ case SSL3_MT_CLIENT_KEY_EXCHANGE: ++ strcat(string,"Client Key Exchange"); ++ break; ++ case SSL3_MT_FINISHED: ++ strcat(string,"Finished"); ++ break; ++ ++ default: ++ sprintf( string, "Handshake: Unknown SSL3 code received: %d", code ); ++ } ++ break; ++ ++ default: ++ sprintf( string, "SSL message contains unknown content type: %d", content_type ); ++ ++ } ++ ++ /* Alert messages must always be displayed */ ++ if(content_type == SSL3_RT_ALERT) ++ error("%s", string); ++ else ++ dbglog("%s", string); ++} ++ +diff -Naur ppp-2.4.5/pppd/eap-tls.h ppp-2.4.5-eaptls-mppe-0.99/pppd/eap-tls.h +--- ppp-2.4.5/pppd/eap-tls.h 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5-eaptls-mppe-0.99/pppd/eap-tls.h 2010-10-01 15:17:54.213271816 +0200 +@@ -0,0 +1,107 @@ ++/* ++ * eap-tls.h ++ * ++ * Copyright (c) Beniamino Galvani 2005 All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * 3. The name(s) of the authors of this software must not be used to ++ * endorse or promote products derived from this software without ++ * prior written permission. ++ * ++ * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO ++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY ++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN ++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING ++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ * ++ */ ++ ++#ifndef __EAP_TLS_H__ ++#define __EAP_TLS_H__ ++ ++#include "eap.h" ++ ++#include ++#include ++#include ++ ++#define EAP_TLS_FLAGS_LI 128 /* length included flag */ ++#define EAP_TLS_FLAGS_MF 64 /* more fragments flag */ ++#define EAP_TLS_FLAGS_START 32 /* start flag */ ++ ++#define EAP_TLS_MAX_LEN 65536 /* max eap tls packet size */ ++ ++struct eaptls_session ++{ ++ u_char *data; /* buffered data */ ++ int datalen; /* buffered data len */ ++ int offset; /* from where to send */ ++ int tlslen; /* total length of tls data */ ++ bool frag; /* packet is fragmented */ ++ SSL_CTX *ctx; ++ SSL *ssl; /* ssl connection */ ++ BIO *from_ssl; ++ BIO *into_ssl; ++ char peer[MAXWORDLEN]; /* peer name */ ++ char peercertfile[MAXWORDLEN]; ++ bool alert_sent; ++ u_char alert_sent_desc; ++ bool alert_recv; ++ u_char alert_recv_desc; ++ char rtx[65536]; /* retransmission buffer */ ++ int rtx_len; ++ int mtu; /* unit mtu */ ++}; ++ ++typedef struct pw_cb_data ++{ ++ const void *password; ++ const char *prompt_info; ++} PW_CB_DATA; ++ ++ ++int ssl_verify_callback(int, X509_STORE_CTX *); ++void ssl_msg_callback(int write_p, int version, int ct, const void *buf, ++ size_t len, SSL * ssl, void *arg); ++ ++X509 *get_X509_from_file(char *filename); ++int ssl_cmp_certs(char *filename, X509 * a); ++ ++SSL_CTX *eaptls_init_ssl(int init_server, char *cacertfile, ++ char *certfile, char *peer_certfile, char *privkeyfile); ++int eaptls_init_ssl_server(eap_state * esp); ++int eaptls_init_ssl_client(eap_state * esp); ++void eaptls_free_session(struct eaptls_session *ets); ++ ++int eaptls_receive(struct eaptls_session *ets, u_char * inp, int len); ++int eaptls_send(struct eaptls_session *ets, u_char ** outp); ++void eaptls_retransmit(struct eaptls_session *ets, u_char ** outp); ++ ++int get_eaptls_secret(int unit, char *client, char *server, ++ char *clicertfile, char *servcertfile, char *cacertfile, ++ char *pkfile, int am_server); ++ ++#ifdef MPPE ++#include "mppe.h" /* MPPE_MAX_KEY_LEN */ ++extern u_char mppe_send_key[MPPE_MAX_KEY_LEN]; ++extern u_char mppe_recv_key[MPPE_MAX_KEY_LEN]; ++extern int mppe_keys_set; ++ ++void eaptls_gen_mppe_keys(struct eaptls_session *ets, const char *prf_label, int client); ++ ++#endif ++ ++#endif +diff -aur ppp-2.4.6.orig/pppd/Makefile.linux ppp-2.4.6/pppd/Makefile.linux +--- ppp-2.4.6.orig/pppd/Makefile.linux 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/Makefile.linux 2014-04-03 21:32:29.076627151 +0200 +@@ -76,6 +76,9 @@ + # Use libutil + USE_LIBUTIL=y + ++# Enable EAP-TLS authentication (requires libssl and libcurl) ++USE_EAPTLS=y ++ + MAXOCTETS=y + + INCLUDE_DIRS= -I../include +@@ -115,6 +118,15 @@ + PPPDOBJS += sha1.o + endif + ++# EAP-TLS ++ifdef USE_EAPTLS ++CFLAGS += -DUSE_EAPTLS=1 -I/usr/kerberos/include ++LIBS += -lssl -lcrypto ++PPPDSRC += eap-tls.c ++HEADERS += eap-tls.h ++PPPDOBJS += eap-tls.o ++endif ++ + ifdef HAS_SHADOW + CFLAGS += -DHAS_SHADOW + #LIBS += -lshadow $(LIBS) +diff -aur ppp-2.4.6.orig/pppd/md5.c ppp-2.4.6/pppd/md5.c +--- ppp-2.4.6.orig/pppd/md5.c 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/md5.c 2014-04-03 21:32:29.079960484 +0200 +@@ -33,6 +33,8 @@ + *********************************************************************** + */ + ++#ifndef USE_EAPTLS ++ + #include + #include "md5.h" + +@@ -305,3 +307,5 @@ + ** End of md5.c ** + ******************************** (cut) ******************************** + */ ++#endif /* USE_EAPTLS */ ++ +diff -aur ppp-2.4.6.orig/pppd/md5.h ppp-2.4.6/pppd/md5.h +--- ppp-2.4.6.orig/pppd/md5.h 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/md5.h 2014-04-03 21:32:29.079960484 +0200 +@@ -36,6 +36,7 @@ + ** documentation and/or software. ** + *********************************************************************** + */ ++#ifndef USE_EAPTLS + + #ifndef __MD5_INCLUDE__ + +@@ -63,3 +64,5 @@ + + #define __MD5_INCLUDE__ + #endif /* __MD5_INCLUDE__ */ ++ ++#endif /* USE_EAPTLS */ +diff -aur ppp-2.4.6.orig/pppd/options.c ppp-2.4.6/pppd/options.c +--- ppp-2.4.6.orig/pppd/options.c 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/options.c 2014-04-03 21:33:58.363293525 +0200 +@@ -126,6 +126,11 @@ + int child_wait = 5; /* # seconds to wait for children at exit */ + struct userenv *userenv_list; /* user environment variables */ + ++#ifdef USE_EAPTLS ++bool only_update_crl_server = 0; /* update server crl and exit */ ++bool only_update_crl_client = 0; /* update client crl and exit */ ++#endif /* USE_EAPTLS */ ++ + #ifdef MAXOCTETS + unsigned int maxoctets = 0; /* default - no limit */ + int maxoctets_dir = 0; /* default - sum of traffic */ +@@ -351,6 +356,12 @@ + { "mo-timeout", o_int, &maxoctets_timeout, + "Check for traffic limit every N seconds", OPT_PRIO | OPT_LLIMIT | 1 }, + #endif ++#ifdef USE_EAPTLS ++ { "only-update-crl-server", o_bool, &only_update_crl_server, ++ "Update server CA CRLs and exit", 1 }, ++ { "only-update-crl-client", o_bool, &only_update_crl_client, ++ "Update client CA CRLs and exit", 1 }, ++#endif /* USE_EAPTLS */ + + { NULL } + }; +diff -aur ppp-2.4.6.orig/pppd/pathnames.h ppp-2.4.6/pppd/pathnames.h +--- ppp-2.4.6.orig/pppd/pathnames.h 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/pathnames.h 2014-04-03 21:32:29.083293817 +0200 +@@ -25,6 +25,13 @@ + #define _PATH_UPAPFILE _ROOT_PATH "/etc/ppp/pap-secrets" + #define _PATH_CHAPFILE _ROOT_PATH "/etc/ppp/chap-secrets" + #define _PATH_SRPFILE _ROOT_PATH "/etc/ppp/srp-secrets" ++ ++#ifdef USE_EAPTLS ++#define _PATH_EAPTLSCLIFILE _ROOT_PATH "/etc/ppp/eaptls-client" ++#define _PATH_EAPTLSSERVFILE _ROOT_PATH "/etc/ppp/eaptls-server" ++#define _PATH_OPENSSLCONFFILE _ROOT_PATH "/etc/ppp/openssl.cnf" ++#endif /* USE_EAPTLS */ ++ + #define _PATH_SYSOPTIONS _ROOT_PATH "/etc/ppp/options" + #define _PATH_IPUP _ROOT_PATH "/etc/ppp/ip-up" + #define _PATH_IPDOWN _ROOT_PATH "/etc/ppp/ip-down" +diff -aur ppp-2.4.6.orig/pppd/plugins/Makefile.linux ppp-2.4.6/pppd/plugins/Makefile.linux +--- ppp-2.4.6.orig/pppd/plugins/Makefile.linux 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/plugins/Makefile.linux 2014-04-03 21:32:29.083293817 +0200 +@@ -8,6 +8,9 @@ + LIBS = + INSTALL = install + ++# EAP-TLS ++CFLAGS += -DUSE_EAPTLS=1 ++ + DESTDIR = $(INSTROOT)@DESTDIR@ + BINDIR = $(DESTDIR)/sbin + MANDIR = $(DESTDIR)/share/man/man8 +diff -aur ppp-2.4.6.orig/pppd/plugins/passprompt.c ppp-2.4.6/pppd/plugins/passprompt.c +--- ppp-2.4.6.orig/pppd/plugins/passprompt.c 2014-01-02 05:42:08.000000000 +0100 ++++ ppp-2.4.6/pppd/plugins/passprompt.c 2014-04-03 21:32:29.083293817 +0200 +@@ -107,4 +107,7 @@ + { + add_options(options); + pap_passwd_hook = promptpass; ++#ifdef USE_EAPTLS ++ eaptls_passwd_hook = promptpass; ++#endif + } +diff -aur ppp-2.4.6.orig/pppd/plugins/passwordfd.c ppp-2.4.6/pppd/plugins/passwordfd.c +--- ppp-2.4.6.orig/pppd/plugins/passwordfd.c 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/plugins/passwordfd.c 2014-04-03 21:32:29.083293817 +0200 +@@ -75,4 +75,9 @@ + + chap_check_hook = pwfd_check; + chap_passwd_hook = pwfd_passwd; ++ ++#ifdef USE_EAPTLS ++ eaptls_check_hook = pwfd_check; ++ eaptls_passwd_hook = pwfd_passwd; ++#endif + } +diff -aur ppp-2.4.6.orig/pppd/pppd.h ppp-2.4.6/pppd/pppd.h +--- ppp-2.4.6.orig/pppd/pppd.h 2014-04-03 21:31:37.000000000 +0200 ++++ ppp-2.4.6/pppd/pppd.h 2014-04-03 21:32:29.083293817 +0200 +@@ -329,6 +329,10 @@ + extern bool dryrun; /* check everything, print options, exit */ + extern int child_wait; /* # seconds to wait for children at end */ + ++#ifdef USE_EAPTLS ++extern char *crl_dir; ++#endif /* USE_EAPTLS */ ++ + #ifdef MAXOCTETS + extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */ + extern int maxoctets_dir; /* Direction : +@@ -743,6 +747,11 @@ + extern int (*chap_passwd_hook) __P((char *user, char *passwd)); + extern void (*multilink_join_hook) __P((void)); + ++#ifdef USE_EAPTLS ++extern int (*eaptls_check_hook) __P((void)); ++extern int (*eaptls_passwd_hook) __P((char *user, char *passwd)); ++#endif ++ + /* Let a plugin snoop sent and received packets. Useful for L2TP */ + extern void (*snoop_recv_hook) __P((unsigned char *p, int len)); + extern void (*snoop_send_hook) __P((unsigned char *p, int len)); +diff -Naur ppp-2.4.5/README.eap-tls ppp-2.4.5-eaptls-mppe-0.99/README.eap-tls +--- ppp-2.4.5/README.eap-tls 1970-01-01 01:00:00.000000000 +0100 ++++ ppp-2.4.5-eaptls-mppe-0.99/README.eap-tls 2010-10-01 15:17:54.205272328 +0200 +@@ -0,0 +1,169 @@ ++EAP-TLS authentication support for PPP ++====================================== ++ ++1. Intro ++ ++ The Extensible Authentication Protocol (EAP; RFC 3748) is a ++ security protocol that can be used with PPP. It provides a means ++ to plug in multiple optional authentication methods. ++ ++ Transport Level Security (TLS; RFC 2246) provides for mutual ++ authentication, integrity-protected ciphersuite negotiation and ++ key exchange between two endpoints. It also provides for optional ++ MPPE encryption. ++ ++ EAP-TLS (RFC 2716) incapsulates the TLS messages in EAP packets, ++ allowing TLS mutual authentication to be used as a generic EAP ++ mechanism. It also provides optional encryption using the MPPE ++ protocol. ++ ++ This patch provide EAP-TLS support to pppd. ++ This authentication method can be used in both client or server ++ mode. ++ ++2. Building ++ ++ To build pppd with EAP-TLS support, OpenSSL (http://www.openssl.org) ++ is required. Any version from 0.9.7 should work. ++ ++ Configure, compile, and install as usual. ++ ++3. Configuration ++ ++ On the client side there are two ways to configure EAP-TLS: ++ ++ 1. supply the appropriate 'ca', 'cert' and 'key' command-line parameters ++ ++ 2. edit the /etc/ppp/eaptls-client file. ++ Insert a line for each system with which you use EAP-TLS. ++ The line is composed of this fields separated by tab: ++ ++ - Client name ++ The name used by the client for authentication, can be * ++ - Server name ++ The name of the server, can be * ++ - Client certificate file ++ The file containing the certificate chain for the ++ client in PEM format ++ - Server certificate file ++ If you want to specify the certificate that the ++ server is allowed to use, put the certificate file name. ++ Else put a dash '-'. ++ - CA certificate file ++ The file containing the trusted CA certificates in PEM ++ format. ++ - Client private key file ++ The file containing the client private key in PEM format. ++ ++ ++ On the server side edit the /etc/ppp/eaptls-server file. ++ Insert a line for each system with which you use EAP-TLS. ++ The line is composed of this fields separated by tab: ++ ++ - Client name ++ The name used by the client for authentication, can be * ++ - Server name ++ The name of the server, can be * ++ - Client certificate file ++ If you want to specify the certificate that the ++ client is allowed to use, put the certificate file name. ++ Else put a dash '-'. ++ - Server certificate file ++ The file containing the certificate chain for the ++ server in PEM format ++ - CA certificate file ++ The file containing the trusted CA certificates in PEM ++ format. ++ - Client private key file ++ The file containing the server private key in PEM format. ++ - addresses ++ A list of IP addresses the client is allowed to use. ++ ++ ++ OpenSSL engine support is included starting with v0.95 of this patch. ++ Currently the only engine tested is the 'pkcs11' engine (hardware token ++ support). To use the 'pksc11' engine: ++ - Use a special private key fileiname in the /etc/ppp/eaptls-client file: ++ : ++ e.g. ++ pkcs11:123456 ++ ++ - The certificate can also be loaded from the 'pkcs11' engine using ++ a special client certificate filename in the /etc/ppp/eaptls-client file: ++ : ++ e.g. ++ pkcs11:123456 ++ ++ - Create an /etc/ppp/openssl.cnf file to load the right OpenSSL engine prior ++ to starting 'pppd'. A sample openssl.cnf file is ++ ++ openssl_conf = openssl_def ++ ++ [ openssl_def ] ++ engines = engine_section ++ ++ [ engine_section ] ++ pkcs11 = pkcs11_section ++ ++ [ pkcs11_section ] ++ engine_id = pkcs11 ++ dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so ++ MODULE_PATH = /usr/lib64/libeTPkcs11.so ++ init = 0 ++ ++ - There are two ways to specify a password/PIN for the PKCS11 engine: ++ - inside the openssl.cnf file using ++ PIN = your-secret-pin ++ Note The keyword 'PIN' is case sensitive! ++ - Using the 'password' in the ppp options file. ++ From v0.97 of the eap-tls patch the password can also be supplied ++ using the appropriate 'eaptls_passwd_hook' (see plugins/passprompt.c ++ for an example). ++ ++ ++4. Options ++ ++ These pppd options are available: ++ ++ ca ++ Use the CA public certificate found in in PEM format ++ cert ++ Use the client public certificate found in in PEM format ++ or in engine:engine_id format ++ key ++ Use the client private key found in in PEM format ++ or in engine:engine_id format ++ crl-dir ++ Use CRL files from dir. It contains CRL files in PEM ++ format and each file contains a CRL. The files are looked up ++ by the issuer name hash value. Use the c_rehash utility ++ to create necessary links. ++ need-peer-eap ++ If the peer doesn't ask us to authenticate or doesn't use eap ++ to authenticate us, disconnect. ++ ++ Note: ++ password-encrypted certificates can be used as of v0.94 of this ++ patch. The password for the eap-tls.key file is specified using ++ the regular ++ password .... ++ statement in the ppp options file, or by using the appropriate ++ plugin which supplies a 'eaptls_passwd_hook' routine. ++ ++5. Connecting ++ ++ If you're setting up a pppd server, edit the EAP-TLS configuration file ++ as written above and then run pppd with the 'auth' option to authenticate ++ the client. The EAP-TLS method will be used if the other eap methods can't ++ be used (no secrets). ++ ++ If you're setting up a client, edit the configuration file and then run ++ pppd with 'remotename' option to specify the server name. Add the ++ 'need-peer-eap' option if you want to be sure the peer ask you to ++ authenticate (and to use eap) and to disconnect if it doesn't. ++ ++6. Notes ++ ++ This is experimental code. ++ Send suggestions and comments to Jan Just Keijser ++ diff --git a/network/connection/ppp/files/ppp.logrotate b/network/connection/ppp/files/ppp.logrotate new file mode 100644 index 0000000000..7a72979ca9 --- /dev/null +++ b/network/connection/ppp/files/ppp.logrotate @@ -0,0 +1,10 @@ +# Logrotate file for ppp RPM + +/var/log/ppp/connect-errors { + missingok + compress + notifempty + daily + rotate 5 + create 0600 root root +} diff --git a/network/connection/ppp/files/ppp.pamd b/network/connection/ppp/files/ppp.pamd new file mode 100644 index 0000000000..280a77a2a6 --- /dev/null +++ b/network/connection/ppp/files/ppp.pamd @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth include system-auth +account required pam_nologin.so +account include system-auth +session include system-auth diff --git a/network/connection/ppp/files/tmpfiles.conf b/network/connection/ppp/files/tmpfiles.conf new file mode 100644 index 0000000000..5ecd2ee8ce --- /dev/null +++ b/network/connection/ppp/files/tmpfiles.conf @@ -0,0 +1 @@ +d /run/ppp 0755 root root diff --git a/network/connection/ppp/pspec.xml b/network/connection/ppp/pspec.xml new file mode 100644 index 0000000000..52c0e7b3ab --- /dev/null +++ b/network/connection/ppp/pspec.xml @@ -0,0 +1,124 @@ + + + + + ppp + http://samba.org/ppp + + PisiLinux Community + admins@pisilinux.org + + BSD + GPLv2 + service + Point-to-point protocol - patched for PPPOE + The Point-to-Point Protocol (PPP) provides a standard way to transmit datagrams over a serial link. + http://samba.org/ftp/ppp/ppp-2.4.6.tar.gz + http://www.netservers.net.uk/gpl/ppp-dhcpc.tgz + + libpcap-devel + + + gentoo/02_all_make-vars.patch + gentoo/04_all_mpls.patch + gentoo/06_all_killaddr-smarter.patch + gentoo/08_all_wait-children.patch + gentoo/10_all_defaultgateway.patch + gentoo/12_all_linkpidfile.patch + gentoo/16_all_auth-fail.patch + gentoo/18_all_defaultmetric.patch + gentoo/20_all_dev-ppp.patch + gentoo/24_all_passwordfd-read-early.patch + gentoo/26_all_pppd-usepeerwins.patch + gentoo/28_all_connect-errors.patch + gentoo/30_all_Makefile.patch + gentoo/32_all_pado-timeout.patch + gentoo/34_all_lcp-echo-adaptive.patch + ppp-2.3.6-sample.patch + ppp-2.4.3-fix64.patch + ppp-2.4.2-change_resolv_conf.patch + nostrip.patch + ppp-2.4.3-local.patch + ppp-2.4.3-ipv6-accept-remote.patch + ppp-2.4.5-ppp_resolv.patch + ppp-2.4.5-var_run_ppp.patch + ppp-2.4.6-eaptls-mppe-0.99.patch + + + + + ppp + + libpcap + + + /etc + /usr/lib/tmpfiles.d/ppp.conf + /usr/lib + /usr/sbin + /usr/share/doc + /usr/share/man + /run/ppp + + + tmpfiles.conf + options-pptp + options-pppoe + chat-default + ip-up + ip-down + confd.ppp0 + ppp.pamd + ppp.logrotate + + + + + ppp-devel + Development files for ppp + + ppp + + + /usr/include + + + + + + 2014-04-03 + 2.4.6 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2014-01-10 + 2.4.5 + Add tmpfiles.conf + Marcin Bojara + marcin@pisilinux.org + + + 2013-09-12 + 2.4.5 + service.py no longer needed. + Marcin Bojara + marcin@pisilinux.org + + + 2013-05-23 + 2.4.5 + Add service.py + Marcin Bojara + marcin@pisilinux.org + + + 2010-10-13 + 2.4.5 + First release + Gökcen Eraslan + admins@pisilinux.org + + + diff --git a/network/connection/ppp/translations.xml b/network/connection/ppp/translations.xml new file mode 100644 index 0000000000..3790632cfc --- /dev/null +++ b/network/connection/ppp/translations.xml @@ -0,0 +1,13 @@ + + + + ppp + Modem ile internet erişimi için PPP (point to point protocol) noktadan noktaya erişim protokolü + PPP protokolü veriyi seri bir bağlantı üzerinden transfer etmek için standart bir yol sağlar. + + + + ppp-devel + ppp için geliştirme dosyaları + + diff --git a/network/connection/wpa_supplicant/actions.py b/network/connection/wpa_supplicant/actions.py new file mode 100644 index 0000000000..405c8c3936 --- /dev/null +++ b/network/connection/wpa_supplicant/actions.py @@ -0,0 +1,36 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def build(): + shelltools.cd("wpa_supplicant") + + #Enable syslog output + cflags = get.CFLAGS() + " -DCONFIG_DEBUG_SYSLOG" + shelltools.export("CFLAGS", cflags) + + autotools.make("V=1") + autotools.make("eapol_test") + +def install(): + shelltools.cd("wpa_supplicant") + + for bin in ["wpa_supplicant", "wpa_cli", "wpa_passphrase", "eapol_test"]: + pisitools.dosbin(bin) + + # Install dbus files + pisitools.insinto("/usr/share/dbus-1/system-services", "dbus/*.service") + pisitools.insinto("/etc/dbus-1/system.d", "dbus/dbus-wpa_supplicant.conf", "wpa_supplicant.conf") + + pisitools.doman("doc/docbook/*.5") + pisitools.doman("doc/docbook/*.8") + pisitools.newdoc("wpa_supplicant.conf", "wpa_supplicant.conf.example") + + pisitools.dodoc("ChangeLog", "../COPYING", "eap_testing.txt", "../README", "todo.txt") \ No newline at end of file diff --git a/network/connection/wpa_supplicant/comar/service.py b/network/connection/wpa_supplicant/comar/service.py new file mode 100644 index 0000000000..6b5016e823 --- /dev/null +++ b/network/connection/wpa_supplicant/comar/service.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from comar.service import * + +serviceType = "local" +serviceDefault = "off" #NM starts wpa_supp automatically. Use at your own risk if you start manually +serviceDesc = _({"en": "WPA Daemon", + "tr": "WPA Hizmeti"}) + +PIDFILE = "/run/wpa_supplicant.pid" + +@synchronized +def start(): + startService(command="/usr/sbin/wpa_supplicant", + args="-WuB -P%s %s" % (PIDFILE, config.get("OPTS", "")), + pidfile=PIDFILE, + donotify=True) + +@synchronized +def stop(): + stopService(pidfile=PIDFILE, + donotify=True) + +def status(): + return isServiceRunning(PIDFILE) diff --git a/network/connection/wpa_supplicant/files/0001-AP-Verify-that-HT40-secondary-channel-is-supported.patch b/network/connection/wpa_supplicant/files/0001-AP-Verify-that-HT40-secondary-channel-is-supported.patch new file mode 100644 index 0000000000..b2fef12c1a --- /dev/null +++ b/network/connection/wpa_supplicant/files/0001-AP-Verify-that-HT40-secondary-channel-is-supported.patch @@ -0,0 +1,52 @@ +From dea50507861b79f522c70500fe978072f143af8f Mon Sep 17 00:00:00 2001 +From: Jouni Malinen +Date: Fri, 12 Nov 2010 18:31:56 +0200 +Subject: [PATCH 1/3] AP: Verify that HT40 secondary channel is supported + +Refuse to enable HT40 mode AP unless both the primary and secondary +channels are enabled for AP use. +(cherry picked from commit 8ea3dd21d2e8b760612af0c7b6a3bb5b89ba7304) +--- + src/ap/hw_features.c | 26 ++++++++++++++++++++++++++ + 1 files changed, 26 insertions(+), 0 deletions(-) + +diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c +index 0159c72..7fc5b83 100644 +--- a/src/ap/hw_features.c ++++ b/src/ap/hw_features.c +@@ -642,6 +642,32 @@ int hostapd_select_hw_mode(struct hostapd_iface *iface) + break; + } + } ++ if (ok && iface->conf->secondary_channel) { ++ int sec_ok = 0; ++ int sec_chan = iface->conf->channel + ++ iface->conf->secondary_channel * 4; ++ for (j = 0; j < iface->current_mode->num_channels; j++) { ++ struct hostapd_channel_data *chan = ++ &iface->current_mode->channels[j]; ++ if (!(chan->flag & HOSTAPD_CHAN_DISABLED) && ++ (chan->chan == sec_chan)) { ++ sec_ok = 1; ++ break; ++ } ++ } ++ if (!sec_ok) { ++ hostapd_logger(iface->bss[0], NULL, ++ HOSTAPD_MODULE_IEEE80211, ++ HOSTAPD_LEVEL_WARNING, ++ "Configured HT40 secondary channel " ++ "(%d) not found from the channel list " ++ "of current mode (%d) %s", ++ sec_chan, iface->current_mode->mode, ++ hostapd_hw_mode_txt( ++ iface->current_mode->mode)); ++ ok = 0; ++ } ++ } + if (iface->conf->channel == 0) { + /* TODO: could request a scan of neighboring BSSes and select + * the channel automatically */ +-- +1.7.3.4 + diff --git a/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-assoc-timeout.patch b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-assoc-timeout.patch new file mode 100644 index 0000000000..c3b3568c6b --- /dev/null +++ b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-assoc-timeout.patch @@ -0,0 +1,16 @@ +diff -up wpa_supplicant-0.7.3/wpa_supplicant/wpa_supplicant.c.assoc-timeout wpa_supplicant-0.7.3/wpa_supplicant/wpa_supplicant.c +--- wpa_supplicant-0.7.3/wpa_supplicant/wpa_supplicant.c.assoc-timeout 2010-09-07 10:43:39.000000000 -0500 ++++ wpa_supplicant-0.7.3/wpa_supplicant/wpa_supplicant.c 2010-12-07 18:57:45.163457000 -0600 +@@ -1262,10 +1262,10 @@ void wpa_supplicant_associate(struct wpa + + if (assoc_failed) { + /* give IBSS a bit more time */ +- timeout = ssid->mode == WPAS_MODE_IBSS ? 10 : 5; ++ timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 10; + } else if (wpa_s->conf->ap_scan == 1) { + /* give IBSS a bit more time */ +- timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 10; ++ timeout = ssid->mode == WPAS_MODE_IBSS ? 20 : 20; + } + wpa_supplicant_req_auth_timeout(wpa_s, timeout, 0); + } diff --git a/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-flush-debug-output.patch b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-flush-debug-output.patch new file mode 100644 index 0000000000..a686851867 --- /dev/null +++ b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-flush-debug-output.patch @@ -0,0 +1,49 @@ +--- wpa_supplicant-0.6.3/src/utils/wpa_debug.c.flush-debug 2007-07-30 23:15:34.000000000 -0400 ++++ wpa_supplicant-0.6.3/src/utils/wpa_debug.c 2007-07-30 23:17:06.000000000 -0400 +@@ -157,6 +157,7 @@ void wpa_debug_print_timestamp(void) + if (out_file) { + fprintf(out_file, "%ld.%06u: ", (long) tv.sec, + (unsigned int) tv.usec); ++ fflush(out_file); + } else + #endif /* CONFIG_DEBUG_FILE */ + printf("%ld.%06u: ", (long) tv.sec, (unsigned int) tv.usec); +@@ -185,6 +186,7 @@ void wpa_printf(int level, char *fmt, .. + if (out_file) { + vfprintf(out_file, fmt, ap); + fprintf(out_file, "\n"); ++ fflush(out_file); + } else { + #endif /* CONFIG_DEBUG_FILE */ + vprintf(fmt, ap); +@@ -217,6 +219,7 @@ static void _wpa_hexdump(int level, cons + fprintf(out_file, " [REMOVED]"); + } + fprintf(out_file, "\n"); ++ fflush(out_file); + } else { + #endif /* CONFIG_DEBUG_FILE */ + printf("%s - hexdump(len=%lu):", title, (unsigned long) len); +@@ -262,12 +265,14 @@ static void _wpa_hexdump_ascii(int level + fprintf(out_file, + "%s - hexdump_ascii(len=%lu): [REMOVED]\n", + title, (unsigned long) len); ++ fflush(out_file); + return; + } + if (buf == NULL) { + fprintf(out_file, + "%s - hexdump_ascii(len=%lu): [NULL]\n", + title, (unsigned long) len); ++ fflush(out_file); + return; + } + fprintf(out_file, "%s - hexdump_ascii(len=%lu):\n", +@@ -292,6 +297,7 @@ static void _wpa_hexdump_ascii(int level + pos += llen; + len -= llen; + } ++ fflush(out_file); + } else { + #endif /* CONFIG_DEBUG_FILE */ + if (!show) { diff --git a/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-openssl-more-algs.patch b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-openssl-more-algs.patch new file mode 100644 index 0000000000..cd058837c0 --- /dev/null +++ b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-openssl-more-algs.patch @@ -0,0 +1,15 @@ +diff -up wpa_supplicant-0.7.3/src/crypto/tls_openssl.c.more-openssl-algs wpa_supplicant-0.7.3/src/crypto/tls_openssl.c +--- wpa_supplicant-0.7.3/src/crypto/tls_openssl.c.more-openssl-algs 2010-09-07 10:43:39.000000000 -0500 ++++ wpa_supplicant-0.7.3/src/crypto/tls_openssl.c 2010-12-08 10:01:02.967664004 -0600 +@@ -710,6 +710,11 @@ void * tls_init(const struct tls_config + #endif /* OPENSSL_FIPS */ + #endif /* CONFIG_FIPS */ + SSL_load_error_strings(); ++ /* Only add potentially weak hashes and encryption algorithms ++ * when FIPS mode is not enabled. ++ */ ++ if (!conf || !conf->fips_mode) ++ OpenSSL_add_all_algorithms(); + SSL_library_init(); + #ifndef OPENSSL_NO_SHA256 + EVP_add_digest(EVP_sha256()); diff --git a/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-quiet-scan-results-message.patch b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-quiet-scan-results-message.patch new file mode 100644 index 0000000000..afabdf6ec8 --- /dev/null +++ b/network/connection/wpa_supplicant/files/fedora/wpa_supplicant-quiet-scan-results-message.patch @@ -0,0 +1,12 @@ +diff -up wpa_supplicant-0.6.7/wpa_supplicant/events.c.scan-results-msg wpa_supplicant-0.6.7/wpa_supplicant/events.c +--- wpa_supplicant-0.6.7/wpa_supplicant/events.c.scan-results-msg 2009-01-30 12:08:34.000000000 -0500 ++++ wpa_supplicant-0.6.7/wpa_supplicant/events.c 2009-01-30 12:08:37.000000000 -0500 +@@ -911,7 +911,7 @@ static void wpa_supplicant_event_scan_re + } + + wpa_dbg(wpa_s, MSG_DEBUG, "New scan results available"); +- wpa_msg_ctrl(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS); ++ wpa_msg_ctrl(wpa_s, MSG_DEBUG, WPA_EVENT_SCAN_RESULTS); + wpas_notify_scan_results(wpa_s); + + wpas_notify_scan_done(wpa_s, 1); \ No newline at end of file diff --git a/network/connection/wpa_supplicant/files/mandriva/wpa_supplicant-0.6.3-WEP232.patch b/network/connection/wpa_supplicant/files/mandriva/wpa_supplicant-0.6.3-WEP232.patch new file mode 100644 index 0000000000..bbb5b8f4f6 --- /dev/null +++ b/network/connection/wpa_supplicant/files/mandriva/wpa_supplicant-0.6.3-WEP232.patch @@ -0,0 +1,12 @@ +diff -p -up wpa_supplicant-0.6.3/wpa_supplicant/config_ssid.h.WEP232 wpa_supplicant-0.6.3/wpa_supplicant/config_ssid.h +--- wpa_supplicant-0.6.3/wpa_supplicant/config_ssid.h.WEP232 2008-02-23 03:45:24.000000000 +0100 ++++ wpa_supplicant-0.6.3/wpa_supplicant/config_ssid.h 2008-03-31 22:28:29.000000000 +0200 +@@ -189,7 +189,7 @@ struct wpa_ssid { + #endif /* IEEE8021X_EAPOL */ + + #define NUM_WEP_KEYS 4 +-#define MAX_WEP_KEY_LEN 16 ++#define MAX_WEP_KEY_LEN 32 + /** + * wep_key - WEP keys + */ diff --git a/network/connection/wpa_supplicant/files/suse/wpa_supplicant-driver-wext-debug.patch b/network/connection/wpa_supplicant/files/suse/wpa_supplicant-driver-wext-debug.patch new file mode 100644 index 0000000000..343c8168ff --- /dev/null +++ b/network/connection/wpa_supplicant/files/suse/wpa_supplicant-driver-wext-debug.patch @@ -0,0 +1,143 @@ +Index: src/drivers/driver_wext.c +=================================================================== +--- src/drivers/driver_wext.c.orig ++++ src/drivers/driver_wext.c +@@ -1901,19 +1901,26 @@ int wpa_driver_wext_associate(void *priv + * SIOCSIWENCODE here. + */ + if (drv->auth_alg_fallback && +- wpa_driver_wext_auth_alg_fallback(drv, params) < 0) ++ wpa_driver_wext_auth_alg_fallback(drv, params) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because auth_alg_fallback failed", __FUNCTION__); + ret = -1; ++ } + + if (!params->bssid && +- wpa_driver_wext_set_bssid(drv, NULL) < 0) ++ wpa_driver_wext_set_bssid(drv, NULL) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_bssid failed", __FUNCTION__); + ret = -1; ++ } + + /* TODO: should consider getting wpa version and cipher/key_mgmt suites + * from configuration, not from here, where only the selected suite is + * available */ + if (wpa_driver_wext_set_gen_ie(drv, params->wpa_ie, params->wpa_ie_len) +- < 0) ++ < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_gen_ie failed", __FUNCTION__); + ret = -1; ++ } ++ + if (params->wpa_ie == NULL || params->wpa_ie_len == 0) + value = IW_AUTH_WPA_VERSION_DISABLED; + else if (params->wpa_ie[0] == WLAN_EID_RSN) +@@ -1921,27 +1928,41 @@ int wpa_driver_wext_associate(void *priv + else + value = IW_AUTH_WPA_VERSION_WPA; + if (wpa_driver_wext_set_auth_param(drv, +- IW_AUTH_WPA_VERSION, value) < 0) ++ IW_AUTH_WPA_VERSION, value) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(WPA_VERSION) failed", __FUNCTION__); + ret = -1; ++ } ++ + value = wpa_driver_wext_cipher2wext(params->pairwise_suite); + if (wpa_driver_wext_set_auth_param(drv, +- IW_AUTH_CIPHER_PAIRWISE, value) < 0) ++ IW_AUTH_CIPHER_PAIRWISE, value) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(CIPHER_PAIRWISE) failed", __FUNCTION__); + ret = -1; ++ } ++ + value = wpa_driver_wext_cipher2wext(params->group_suite); + if (wpa_driver_wext_set_auth_param(drv, +- IW_AUTH_CIPHER_GROUP, value) < 0) ++ IW_AUTH_CIPHER_GROUP, value) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(CIPHER_GROUP) failed", __FUNCTION__); + ret = -1; ++ } ++ + value = wpa_driver_wext_keymgmt2wext(params->key_mgmt_suite); + if (wpa_driver_wext_set_auth_param(drv, +- IW_AUTH_KEY_MGMT, value) < 0) ++ IW_AUTH_KEY_MGMT, value) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(KEY_MGMT) failed", __FUNCTION__); + ret = -1; ++ } ++ + value = params->key_mgmt_suite != KEY_MGMT_NONE || + params->pairwise_suite != CIPHER_NONE || + params->group_suite != CIPHER_NONE || + params->wpa_ie_len; + if (wpa_driver_wext_set_auth_param(drv, +- IW_AUTH_PRIVACY_INVOKED, value) < 0) ++ IW_AUTH_PRIVACY_INVOKED, value) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(PRIVACY_INVOKED) failed", __FUNCTION__); + ret = -1; ++ } + + /* Allow unencrypted EAPOL messages even if pairwise keys are set when + * not using WPA. IEEE 802.1X specifies that these frames are not +@@ -1952,12 +1973,18 @@ int wpa_driver_wext_associate(void *priv + else + allow_unencrypted_eapol = 1; + +- if (wpa_driver_wext_set_psk(drv, params->psk) < 0) ++ if (wpa_driver_wext_set_psk(drv, params->psk) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_psk failed", __FUNCTION__); + ret = -1; ++ } ++ + if (wpa_driver_wext_set_auth_param(drv, + IW_AUTH_RX_UNENCRYPTED_EAPOL, +- allow_unencrypted_eapol) < 0) ++ allow_unencrypted_eapol) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(RX_UNENCRYPTED_EAPOL) failed", __FUNCTION__); + ret = -1; ++ } ++ + #ifdef CONFIG_IEEE80211W + switch (params->mgmt_frame_protection) { + case NO_MGMT_FRAME_PROTECTION: +@@ -1970,17 +1997,25 @@ int wpa_driver_wext_associate(void *priv + value = IW_AUTH_MFP_REQUIRED; + break; + }; +- if (wpa_driver_wext_set_auth_param(drv, IW_AUTH_MFP, value) < 0) ++ if (wpa_driver_wext_set_auth_param(drv, IW_AUTH_MFP, value) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_auth_param(IW_AUTH_MFP) failed", __FUNCTION__); + ret = -1; ++ } + #endif /* CONFIG_IEEE80211W */ +- if (params->freq && wpa_driver_wext_set_freq(drv, params->freq) < 0) ++ if (params->freq && wpa_driver_wext_set_freq(drv, params->freq) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_freq failed", __FUNCTION__); + ret = -1; ++ } + if (!drv->cfg80211 && +- wpa_driver_wext_set_ssid(drv, params->ssid, params->ssid_len) < 0) ++ wpa_driver_wext_set_ssid(drv, params->ssid, params->ssid_len) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_ssid failed", __FUNCTION__); + ret = -1; ++ } + if (params->bssid && +- wpa_driver_wext_set_bssid(drv, params->bssid) < 0) ++ wpa_driver_wext_set_bssid(drv, params->bssid) < 0) { ++ wpa_printf(MSG_DEBUG, "%s: assoc failed because set_bssid failed", __FUNCTION__); + ret = -1; ++ } + if (drv->cfg80211 && + wpa_driver_wext_set_ssid(drv, params->ssid, params->ssid_len) < 0) + ret = -1; +@@ -2008,6 +2043,10 @@ static int wpa_driver_wext_set_auth_alg( + res = wpa_driver_wext_set_auth_param(drv, IW_AUTH_80211_AUTH_ALG, + algs); + drv->auth_alg_fallback = res == -2; ++ ++ if (res == -2) ++ wpa_printf(MSG_DEBUG, "%s: falling back to ENCODE for AUTH", __FUNCTION__); ++ + return res; + } + diff --git a/network/connection/wpa_supplicant/files/suse/wpa_supplicant-errormsg.patch b/network/connection/wpa_supplicant/files/suse/wpa_supplicant-errormsg.patch new file mode 100644 index 0000000000..f2ac0cb707 --- /dev/null +++ b/network/connection/wpa_supplicant/files/suse/wpa_supplicant-errormsg.patch @@ -0,0 +1,19 @@ +Index: src/drivers/driver_wext.c +=================================================================== +--- src/drivers/driver_wext.c.orig ++++ src/drivers/driver_wext.c +@@ -54,12 +54,13 @@ int wpa_driver_wext_set_auth_param(struc + iwr.u.param.value = value; + + if (ioctl(drv->ioctl_sock, SIOCSIWAUTH, &iwr) < 0) { ++ int saved_errno = errno; + if (errno != EOPNOTSUPP) { + wpa_printf(MSG_DEBUG, "WEXT: SIOCSIWAUTH(param %d " + "value 0x%x) failed: %s)", + idx, value, strerror(errno)); + } +- ret = errno == EOPNOTSUPP ? -2 : -1; ++ ret = saved_errno == EOPNOTSUPP ? -2 : -1; + } + + return ret; diff --git a/network/connection/wpa_supplicant/files/ubuntu/01_use_pkg-config_for_pcsc-lite_module.patch b/network/connection/wpa_supplicant/files/ubuntu/01_use_pkg-config_for_pcsc-lite_module.patch new file mode 100644 index 0000000000..d41a507a1e --- /dev/null +++ b/network/connection/wpa_supplicant/files/ubuntu/01_use_pkg-config_for_pcsc-lite_module.patch @@ -0,0 +1,17 @@ +From: Reinhard Tartler +References: none +Description: Use pkg-config for libpcsclite linkage flags + At least in debian, we can rely on pkg-config being available and + returning more accurate ldflags. + +--- a/wpa_supplicant/Makefile ++++ b/wpa_supplicant/Makefile +@@ -691,7 +691,7 @@ ifdef CONFIG_NATIVE_WINDOWS + #dynamic symbol loading that is now used in pcsc_funcs.c + #LIBS += -lwinscard + else +-LIBS += -lpcsclite -lpthread ++LIBS += $(shell pkg-config --libs libpcsclite) + endif + endif + diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-dbus-path-fix.patch b/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-dbus-path-fix.patch new file mode 100644 index 0000000000..976d71b0ec --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-dbus-path-fix.patch @@ -0,0 +1,20 @@ +diff -aurp a/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in b/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in +--- a/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in 2012-05-15 09:00:03.048545044 +0000 ++++ b/wpa_supplicant/dbus/fi.epitest.hostap.WPASupplicant.service.in 2012-05-15 09:01:19.759550509 +0000 +@@ -1,5 +1,5 @@ + [D-BUS Service] + Name=fi.epitest.hostap.WPASupplicant +-Exec=@BINDIR@/wpa_supplicant -u ++Exec=/usr/sbin/wpa_supplicant -u + User=root + SystemdService=wpa_supplicant.service +diff -aurp a/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in b/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in +--- a/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in 2012-05-15 09:00:03.048545044 +0000 ++++ b/wpa_supplicant/dbus/fi.w1.wpa_supplicant1.service.in 2012-05-15 09:01:28.727551913 +0000 +@@ -1,5 +1,5 @@ + [D-BUS Service] + Name=fi.w1.wpa_supplicant1 +-Exec=@BINDIR@/wpa_supplicant -u ++Exec=/usr/sbin/wpa_supplicant -u + User=root + SystemdService=wpa_supplicant.service diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-do-not-call-dbus-functions-with-NULL-path.patch b/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-do-not-call-dbus-functions-with-NULL-path.patch new file mode 100644 index 0000000000..bbff73e13d --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-do-not-call-dbus-functions-with-NULL-path.patch @@ -0,0 +1,60 @@ +diff -aurp a/wpa_supplicant/dbus/dbus_new_helpers.c b/wpa_supplicant/dbus/dbus_new_helpers.c +--- a/wpa_supplicant/dbus/dbus_new_helpers.c 2012-05-15 07:28:37.616150164 +0000 ++++ b/wpa_supplicant/dbus/dbus_new_helpers.c 2012-05-15 07:30:21.904157611 +0000 +@@ -882,7 +882,7 @@ void wpa_dbus_mark_property_changed(stru + const struct wpa_dbus_property_desc *dsc; + int i = 0; + +- if (iface == NULL) ++ if (iface == NULL || path == NULL) + return; + + dbus_connection_get_object_path_data(iface->con, path, +diff -aurp a/wpa_supplicant/dbus/dbus_old.c b/wpa_supplicant/dbus/dbus_old.c +--- a/wpa_supplicant/dbus/dbus_old.c 2012-05-15 07:28:29.502149373 +0000 ++++ b/wpa_supplicant/dbus/dbus_old.c 2012-05-15 07:30:48.859162441 +0000 +@@ -379,7 +379,7 @@ void wpa_supplicant_dbus_notify_scan_res + DBusMessage *_signal; + + /* Do nothing if the control interface is not turned on */ +- if (iface == NULL) ++ if (iface == NULL || wpa_s->dbus_path == NULL) + return; + + _signal = dbus_message_new_signal(wpa_s->dbus_path, +@@ -419,7 +419,7 @@ void wpa_supplicant_dbus_notify_state_ch + if (wpa_s->global == NULL) + return; + iface = wpa_s->global->dbus; +- if (iface == NULL) ++ if (iface == NULL || wpa_s->dbus_path == NULL) + return; + + /* Only send signal if state really changed */ +@@ -478,7 +478,7 @@ void wpa_supplicant_dbus_notify_scanning + dbus_bool_t scanning = wpa_s->scanning ? TRUE : FALSE; + + /* Do nothing if the control interface is not turned on */ +- if (iface == NULL) ++ if (iface == NULL || wpa_s->dbus_path == NULL) + return; + + _signal = dbus_message_new_signal(wpa_s->dbus_path, +@@ -513,7 +513,7 @@ void wpa_supplicant_dbus_notify_wps_cred + if (wpa_s->global == NULL) + return; + iface = wpa_s->global->dbus; +- if (iface == NULL) ++ if (iface == NULL || wpa_s->dbus_path == NULL) + return; + + _signal = dbus_message_new_signal(wpa_s->dbus_path, +@@ -564,7 +564,7 @@ void wpa_supplicant_dbus_notify_certific + if (wpa_s->global == NULL) + return; + iface = wpa_s->global->dbus; +- if (iface == NULL) ++ if (iface == NULL || wpa_s->dbus_path == NULL) + return; + + _signal = dbus_message_new_signal(wpa_s->dbus_path, diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-generate-libeap-peer.patch b/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-generate-libeap-peer.patch new file mode 100644 index 0000000000..c84e51dfde --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant-1.0-generate-libeap-peer.patch @@ -0,0 +1,347 @@ +diff -Naurp a/src/eap_peer/eap_methods.c b/src/eap_peer/eap_methods.c +--- a/src/eap_peer/eap_methods.c 2012-05-15 08:23:17.151386999 +0000 ++++ b/src/eap_peer/eap_methods.c 2012-05-15 08:23:57.403389760 +0000 +@@ -342,6 +342,120 @@ int eap_peer_method_register(struct eap_ + + + /** ++ * eap_peer_register_methods - Register all known EAP peer methods ++ * ++ * This function is called at program start to register all compiled ++ * in EAP peer methods. ++ */ ++int eap_peer_register_methods(void) ++{ ++ int ret = 0; ++ ++#ifdef EAP_MD5 ++ if (ret == 0) ++ ret = eap_peer_md5_register(); ++#endif /* EAP_MD5 */ ++ ++#ifdef EAP_TLS ++ if (ret == 0) ++ ret = eap_peer_tls_register(); ++#endif /* EAP_TLS */ ++ ++#ifdef EAP_MSCHAPv2 ++ if (ret == 0) ++ ret = eap_peer_mschapv2_register(); ++#endif /* EAP_MSCHAPv2 */ ++ ++#ifdef EAP_PEAP ++ if (ret == 0) ++ ret = eap_peer_peap_register(); ++#endif /* EAP_PEAP */ ++ ++#ifdef EAP_TTLS ++ if (ret == 0) ++ ret = eap_peer_ttls_register(); ++#endif /* EAP_TTLS */ ++ ++#ifdef EAP_GTC ++ if (ret == 0) ++ ret = eap_peer_gtc_register(); ++#endif /* EAP_GTC */ ++ ++#ifdef EAP_OTP ++ if (ret == 0) ++ ret = eap_peer_otp_register(); ++#endif /* EAP_OTP */ ++ ++#ifdef EAP_SIM ++ if (ret == 0) ++ ret = eap_peer_sim_register(); ++#endif /* EAP_SIM */ ++ ++#ifdef EAP_LEAP ++ if (ret == 0) ++ ret = eap_peer_leap_register(); ++#endif /* EAP_LEAP */ ++ ++#ifdef EAP_PSK ++ if (ret == 0) ++ ret = eap_peer_psk_register(); ++#endif /* EAP_PSK */ ++ ++#ifdef EAP_AKA ++ if (ret == 0) ++ ret = eap_peer_aka_register(); ++#endif /* EAP_AKA */ ++ ++#ifdef EAP_AKA_PRIME ++ if (ret == 0) ++ ret = eap_peer_aka_prime_register(); ++#endif /* EAP_AKA_PRIME */ ++ ++#ifdef EAP_FAST ++ if (ret == 0) ++ ret = eap_peer_fast_register(); ++#endif /* EAP_FAST */ ++ ++#ifdef EAP_PAX ++ if (ret == 0) ++ ret = eap_peer_pax_register(); ++#endif /* EAP_PAX */ ++ ++#ifdef EAP_SAKE ++ if (ret == 0) ++ ret = eap_peer_sake_register(); ++#endif /* EAP_SAKE */ ++ ++#ifdef EAP_GPSK ++ if (ret == 0) ++ ret = eap_peer_gpsk_register(); ++#endif /* EAP_GPSK */ ++ ++#ifdef EAP_WSC ++ if (ret == 0) ++ ret = eap_peer_wsc_register(); ++#endif /* EAP_WSC */ ++ ++#ifdef EAP_IKEV2 ++ if (ret == 0) ++ ret = eap_peer_ikev2_register(); ++#endif /* EAP_IKEV2 */ ++ ++#ifdef EAP_VENDOR_TEST ++ if (ret == 0) ++ ret = eap_peer_vendor_test_register(); ++#endif /* EAP_VENDOR_TEST */ ++ ++#ifdef EAP_TNC ++ if (ret == 0) ++ ret = eap_peer_tnc_register(); ++#endif /* EAP_TNC */ ++ ++ return ret; ++} ++ ++ ++/** + * eap_peer_unregister_methods - Unregister EAP peer methods + * + * This function is called at program termination to unregister all EAP peer +diff -Naurp a/src/eap_peer/eap_methods.h b/src/eap_peer/eap_methods.h +--- a/src/eap_peer/eap_methods.h 2012-05-15 08:23:17.151386999 +0000 ++++ b/src/eap_peer/eap_methods.h 2012-05-15 08:23:57.404389735 +0000 +@@ -32,6 +32,7 @@ EapType eap_peer_get_type(const char *na + const char * eap_get_name(int vendor, EapType type); + size_t eap_get_names(char *buf, size_t buflen); + char ** eap_get_names_as_string_array(size_t *num); ++int eap_peer_register_methods(void); + void eap_peer_unregister_methods(void); + + #else /* IEEE8021X_EAPOL */ +diff -Naurp a/src/eap_peer/libeap0.pc b/src/eap_peer/libeap0.pc +--- a/src/eap_peer/libeap0.pc 1970-01-01 00:00:00.000000000 +0000 ++++ b/src/eap_peer/libeap0.pc 2012-05-15 08:23:57.404389735 +0000 +@@ -0,0 +1,10 @@ ++prefix=/usr ++exec_prefix=/usr ++libdir=${exec_prefix}/lib ++includedir=${prefix}/include/eap_peer ++ ++Name: libeap0 ++Description: EAP Peer Library API ++Version: 0.7.2 ++Libs: -L${libdir} -leap ++Cflags: -I${includedir} +diff -Naurp a/src/eap_peer/Makefile b/src/eap_peer/Makefile +--- a/src/eap_peer/Makefile 2012-05-15 08:23:17.152386964 +0000 ++++ b/src/eap_peer/Makefile 2012-05-15 08:23:57.403389760 +0000 +@@ -1,11 +1,186 @@ +-all: +- @echo Nothing to be made. ++LIBEAP_NAME = libeap ++LIBEAP_CURRENT = 0 ++LIBEAP_REVISION = 0 ++LIBEAP_AGE = 0 ++ ++LIBEAP = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT).$(LIBEAP_REVISION).$(LIBEAP_AGE) ++LIBEAP_SO = $(LIBEAP_NAME).so.$(LIBEAP_CURRENT) ++ ++.PHONY: all clean install uninstall ++ ++all: $(LIBEAP) ++ ++ifndef CC ++CC=gcc ++endif ++ ++ifndef CFLAGS ++CFLAGS = -MMD -O0 -Wall -g ++endif ++ ++CONFIG_TLS=openssl ++ ++INCLUDE_INSTALL_DIR=/usr/include/eap_peer ++ ++# Got to use override all across the board, otherwise a 'make ++# CFLAGS=XX' will kill us because the command line's CFLAGS will ++# overwrite Make's and we'll loose all the infrastructure it sets. ++override CFLAGS += -I. -I.. -I../crypto -I../utils -I../common ++ ++# at least for now, need to include config_ssid.h and config_blob.h from ++# wpa_supplicant directory ++override CFLAGS += -I ../../wpa_supplicant ++ ++OBJS_both += ../utils/common.o ++OBJS_both += ../utils/os_unix.o ++OBJS_both += ../utils/wpa_debug.o ++OBJS_both += ../utils/base64.o ++OBJS_both += ../utils/wpabuf.o ++OBJS_both += ../crypto/md5.o ++OBJS_both += ../crypto/sha1.o ++OBJS_both += ../crypto/sha1-tlsprf.o ++OBJS_both += ../crypto/aes-encblock.o ++OBJS_both += ../crypto/aes-wrap.o ++OBJS_both += ../crypto/aes-ctr.o ++OBJS_both += ../crypto/aes-eax.o ++OBJS_both += ../crypto/aes-omac1.o ++OBJS_both += ../crypto/ms_funcs.o ++OBJS_both += ../crypto/sha256.o ++ ++ ++OBJS_both += ../eap_common/eap_peap_common.o ++OBJS_both += ../eap_common/eap_psk_common.o ++OBJS_both += ../eap_common/eap_pax_common.o ++OBJS_both += ../eap_common/eap_sake_common.o ++OBJS_both += ../eap_common/eap_gpsk_common.o ++OBJS_both += ../eap_common/chap.o ++ ++OBJS_peer += ../eap_peer/eap_tls.o ++OBJS_peer += ../eap_peer/eap_peap.o ++OBJS_peer += ../eap_peer/eap_ttls.o ++OBJS_peer += ../eap_peer/eap_md5.o ++OBJS_peer += ../eap_peer/eap_mschapv2.o ++OBJS_peer += ../eap_peer/mschapv2.o ++OBJS_peer += ../eap_peer/eap_otp.o ++OBJS_peer += ../eap_peer/eap_gtc.o ++OBJS_peer += ../eap_peer/eap_leap.o ++OBJS_peer += ../eap_peer/eap_psk.o ++OBJS_peer += ../eap_peer/eap_pax.o ++OBJS_peer += ../eap_peer/eap_sake.o ++OBJS_peer += ../eap_peer/eap_gpsk.o ++OBJS_peer += ../eap_peer/eap.o ++OBJS_peer += ../eap_common/eap_common.o ++OBJS_peer += ../eap_peer/eap_methods.o ++OBJS_peer += ../eap_peer/eap_tls_common.o ++ ++override CFLAGS += -DEAP_TLS ++override CFLAGS += -DEAP_PEAP ++override CFLAGS += -DEAP_TTLS ++override CFLAGS += -DEAP_MD5 ++override CFLAGS += -DEAP_MSCHAPv2 ++override CFLAGS += -DEAP_GTC ++override CFLAGS += -DEAP_OTP ++override CFLAGS += -DEAP_LEAP ++override CFLAGS += -DEAP_PSK ++override CFLAGS += -DEAP_PAX ++override CFLAGS += -DEAP_SAKE ++override CFLAGS += -DEAP_GPSK -DEAP_GPSK_SHA256 ++override CFLAGS += -DEAP_TLS_FUNCS ++ ++override CFLAGS += -DIEEE8021X_EAPOL ++ ++ifeq ($(CONFIG_TLS), openssl) ++override CFLAGS += -DEAP_TLS_OPENSSL ++OBJS_both += ../crypto/tls_openssl.o ++OBJS_both += ../crypto/crypto_openssl.o ++LIBS += -lssl -lcrypto ++override CFLAGS += -DINTERNAL_SHA256 ++endif ++ ++ifeq ($(CONFIG_TLS), internal) ++OBJS_both += ../crypto/tls_internal.o ++OBJS_both += ../tls/tlsv1_common.o ../../tls/tlsv1_record.o ++OBJS_both += ../tls/tlsv1_cred.o ++OBJS_both += ../tls/asn1.o ../../tls/x509v3.o ++OBJS_both += ../crypto/crypto_internal.o ../../tls/rsa.o ../../tls/bignum.o ++ ++OBJS_peer += ../tls/tlsv1_client.o ++OBJS_peer += ../tls/tlsv1_client_write.o ../../tls/tlsv1_client_read.o ++override CFLAGS += -DCONFIG_TLS_INTERNAL_CLIENT ++ ++OBJS_server += ../tls/tlsv1_server.o ++OBJS_server += ../tls/tlsv1_server_write.o ../../tls/tlsv1_server_read.o ++override CFLAGS += -DCONFIG_TLS_INTERNAL_SERVER ++ ++override CFLAGS += -DCONFIG_TLS_INTERNAL ++override CFLAGS += -DCONFIG_CRYPTO_INTERNAL ++override CFLAGS += -DCONFIG_INTERNAL_X509 ++override CFLAGS += -DINTERNAL_AES ++override CFLAGS += -DINTERNAL_SHA1 ++override CFLAGS += -DINTERNAL_SHA256 ++override CFLAGS += -DINTERNAL_MD5 ++override CFLAGS += -DINTERNAL_MD4 ++override CFLAGS += -DINTERNAL_DES ++ifdef CONFIG_INTERNAL_LIBTOMMATH ++override CFLAGS += -DCONFIG_INTERNAL_LIBTOMMATH ++else ++LIBS += -ltommath ++endif ++endif ++ ++ifndef LDO ++LDO=$(CC) ++endif ++ ++ ++OBJS_lib=$(OBJS_both) $(OBJS_peer) ++ ++ #$(OBJS_server) ++ ++override CFLAGS += -fPIC -DPIC ++LDFLAGS += -shared ++ ++$(LIBEAP): $(OBJS_lib) ++ $(LDO) $(LDFLAGS) $(OBJS_lib) -Wl,-soname -Wl,$(LIBEAP_SO) -o $(LIBEAP) $(LIBS) ++ ++ ++UTIL_HEADERS = ../utils/includes.h ../utils/common.h \ ++ ../utils/wpabuf.h ../utils/build_config.h \ ++ ../utils/os.h ../utils/wpa_debug.h ++COMMON_HEADERS = ../common/defs.h ++EAP_COMMON_HEADERS = ../eap_common/eap_defs.h ++MAIN_HEADERS = eap.h eap_methods.h eap_config.h ++CRYPTO_HEADERS = ../crypto/tls.h ++ ++install: ++ ++ mkdir -p $(DESTDIR)/usr/lib ++# copy the lib file to std lib location ++ cp $(LIBEAP) $(DESTDIR)/usr/lib ++ ln -fs $(LIBEAP_SO) $(DESTDIR)/usr/lib/$(LIBEAP_NAME).so ++ ln -fs $(LIBEAP_NAME).so.0.0.0 $(DESTDIR)/usr/lib/$(LIBEAP_NAME).so.0 ++ ++# copy the headers reqd by apps using eap peer library in its own subfolder under /usr/include ++ mkdir -p \ ++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common \ ++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common \ ++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util \ ++ $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto ++ install -m 0644 $(EAP_COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/eap_common ++ install -m 0644 $(COMMON_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/common ++ install -m 0644 $(CRYPTO_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/crypto ++ install -m 0644 $(UTIL_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/util ++ install -m 0644 $(MAIN_HEADERS) $(DESTDIR)/$(INCLUDE_INSTALL_DIR)/ ++ ++ mkdir -p $(DESTDIR)/usr/lib/pkgconfig ++ cp libeap0.pc $(DESTDIR)/usr/lib/pkgconfig ++ ++uninstall: ++ ++ rm $(DESTDIR)/usr/lib/$(LIBEAP) ++ rm -fr $(DESTDIR)/$(INCLUDE_INSTALL_DIR) ++ rm -f $(DESTDIR)/usr/lib/pkgconfig/libeap0.pc + + clean: +- rm -f *~ *.o *.so *.d ++ rm -f *~ *.o *.so *.d libeap.a $(LIBEAP) $(OBJS_lib) + +-install: +- if ls *.so >/dev/null 2>&1; then \ +- install -d $(DESTDIR)$(LIBDIR)/wpa_supplicant && \ +- cp *.so $(DESTDIR)$(LIBDIR)/wpa_supplicant \ +- ; fi diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant.conf b/network/connection/wpa_supplicant/files/wpa_supplicant.conf new file mode 100644 index 0000000000..97f44c1632 --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant.conf @@ -0,0 +1,35 @@ +# wpa_supplicant.conf +# WPA-PSK ile kimlikleme yapılmasını zorunlu kılan kablosuz erişim noktaları ile +# Microsoft IAS Radius sunucu kimliklemesinin wpa_supplicant ile nasıl yapılacağını +# örnekleyen ayar dosyası. İlgili yerleri doldurmanız gerekir. +# +# wpa_supplicant'ın desteklediği diğer ayar işlemleri için: +# /usr/share/doc/wpasupplicant/wpa_supplicant.conf.example dosyasına bakınız. + +# Root'un wpa_cli ile bağlantıyı izlemesi için +ctrl_interface=/run/wpa_supplicant + +eapol_version=1 +ap_scan=1 +fast_reauth=1 + +# WPA-PSK kimlikleme gerektiren kablosuz erişim noktaları için ayarlar +network={ +# Erişim noktasının SSID'si + ssid="SSID" +# Erişim cihazının WPA parolası + psk="Parola1234" +# Bu bağlantının önceliğinin 1. sırada olduğu belirtiliyor + priority=1 +} + +# MS IAS Radius sunucusunda kimlikleme için gereken ayarlar +network={ + ssid="SSID" + key_mgmt=WPA-EAP + eap=PEAP + identity="ALAN_ADI\KULLANICI" + password="Parola1234" + phase1="auth=MSCHAPV2" + priority=2 +} diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant.conf.fedora b/network/connection/wpa_supplicant/files/wpa_supplicant.conf.fedora new file mode 100644 index 0000000000..e3d3cac784 --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant.conf.fedora @@ -0,0 +1,3 @@ +ctrl_interface=/run/wpa_supplicant +ctrl_interface_group=wheel + diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant.confd b/network/connection/wpa_supplicant/files/wpa_supplicant.confd new file mode 100644 index 0000000000..3333e8a2d8 --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant.confd @@ -0,0 +1,16 @@ +# Use the flag "-i" before each of your interfaces, like so: +# INTERFACES="-ieth1 -iwlan0" +INTERFACES="" + +# Use the flag "-D" before each driver, like so: +# DRIVERS="-Dwext" +DRIVERS="" + +# Other arguments +# -u Enable the D-Bus interface (required for use with NetworkManager) +# -f Log to /var/log/wpa_supplicant.log +# -P Write pid file to /run/wpa_supplicant.pid +# required to return proper codes by init scripts (e.g. double "start" action) +# -B to daemonize that has to be used together with -P is already in wpa_supplicant.init.d +OTHER_ARGS="-u -f /var/log/wpa_supplicant.log -P /run/wpa_supplicant.pid" + diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant.config b/network/connection/wpa_supplicant/files/wpa_supplicant.config new file mode 100644 index 0000000000..e95469fe2b --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant.config @@ -0,0 +1,47 @@ + CONFIG_CTRL_IFACE=y + CONFIG_CTRL_IFACE_DBUS=y + CONFIG_CTRL_IFACE_DBUS_NEW=y + CONFIG_CTRL_IFACE_DBUS_INTRO=y + #CONFIG_DRIVER_HOSTAP=y + #CONFIG_DRIVER_HERMES=y + #CONFIG_DRIVER_MADWIFI=y + CONFIG_DRIVER_ATMEL=y + CONFIG_DRIVER_WEXT=y + CONFIG_DRIVER_NL80211=y + CONFIG_DRIVER_NDISWRAPPER=y + #CONFIG_DRIVER_PRISM54=y + CONFIG_DRIVER_WIRED=y + #CONFIG_DRIVER_BROADCOM=y + #CONFIG_DRIVER_IPW=y + #CONFIG_DRIVER_BSD=y + #CONFIG_DRIVER_NDIS=y + CONFIG_WIRELESS_EXTENSION=y + CONFIG_IEEE8021X_EAPOL=y + CONFIG_EAP_MD5=y + CONFIG_EAP_MSCHAPV2=y + CONFIG_EAP_TLS=y + CONFIG_EAP_PEAP=y + CONFIG_EAP_TTLS=y + CONFIG_EAP_FAST=y + CONFIG_EAP_GTC=y + CONFIG_EAP_OTP=y + CONFIG_EAP_SIM=y + CONFIG_EAP_AKA=y + CONFIG_EAP_PSK=y + CONFIG_EAP_PAX=y + CONFIG_EAP_LEAP=y + #CONFIG_PCSC=y + CONFIG_EAP_SAKE=y + CONFIG_EAP_GPSK=y + CONFIG_EAP_GPSK_SHA256=y + CONFIG_EAP_TNC=y + CONFIG_WPS=y + CONFIG_EAP_IKEV2=y + CONFIG_PKCS12=y + CONFIG_SMARTCARD=y + CONFIG_DEBUG_FILE=y + CFLAGS += -I/usr/include/libnl3 + CONFIG_IPV6=y + CONFIG_LIBNL32=y + CONFIG_PEERKEY=y + CONFIG_READLINE=y \ No newline at end of file diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant.logrotate b/network/connection/wpa_supplicant/files/wpa_supplicant.logrotate new file mode 100644 index 0000000000..bd7ef91cc3 --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant.logrotate @@ -0,0 +1,6 @@ +/var/log/wpa_supplicant.log { + missingok + notifempty + size 30k + create 0600 root root +} diff --git a/network/connection/wpa_supplicant/files/wpa_supplicant.py b/network/connection/wpa_supplicant/files/wpa_supplicant.py new file mode 100644 index 0000000000..d079729b43 --- /dev/null +++ b/network/connection/wpa_supplicant/files/wpa_supplicant.py @@ -0,0 +1,250 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import dbus + +WPAS_DBUS_OPATH = "/fi/epitest/hostap/WPASupplicant" +WPAS_DBUS_INTERFACES_OPATH = "/fi/epitest/hostap/WPASupplicant/Interfaces" + +WPAS_DBUS_SERVICE = "fi.epitest.hostap.WPASupplicant" +WPAS_DBUS_INTERFACE = "fi.epitest.hostap.WPASupplicant" +WPAS_DBUS_INTERFACES_INTERFACE = "fi.epitest.hostap.WPASupplicant.Interface" +WPAS_DBUS_NETWORK_INTERFACE = "fi.epitest.hostap.WPASupplicant.Network" +WPAS_DBUS_BSSID_INTERFACE = "fi.epitest.hostap.WPASupplicant.BSSID" + +TIMEOUT = 60 + +class PasswordLengthError(Exception): + pass + +class WPA_Supplicant_Network: + def __init__(self, bus, path): + self.bus = bus + self.path = path + self.net_obj = self.bus.get_object(WPAS_DBUS_SERVICE, path) + self.net = dbus.Interface(self.net_obj, WPAS_DBUS_NETWORK_INTERFACE) + + # dict keys: ssid, bssid, key_mgmt, psk, scan_ssid, pairwise, group, eap, identity, + # anonymous_identity, ca_cert, ca_cert2, client_cert, client_cert2, private_key, private_key2, + # private_key_passwd, private_key2_passwd, phase1, phase2, eapol_flags + # + # Example: setNetwork({"ssid":dbus.String("MySSID", variant_level=1)), + # "psk":dbus.String("MyPassword", variant_level=1))}) + def setNetwork(self, options): + self.net.set(options) + + def enableNetwork(self): + self.net.enable() + + def disableNetwork(self): + self.net.disable() + +class WPA_Supplicant_Interface: + def __init__(self, bus, ifname, path): + self.bus = bus + self.ifname = ifname + self.path = path + self.if_obj = self.bus.get_object(WPAS_DBUS_SERVICE, path) + self.iface = dbus.Interface(self. if_obj, WPAS_DBUS_INTERFACES_INTERFACE) + + def scan(self): + self.iface.scan() + + def scanResults(self): + return self.iface.scanResults() + + def addNetwork(self): + path = self.iface.addNetwork() + return self.getNetwork(path) + + def removeNetwork(self, network): + self.iface.removeNetwork(network) + + def selectNetwork(self, network): + self.iface.selectNetwork(network) + + def getNetworkPath(self, network_id): + return "%s/Networks/%d" % (self.path, network_id) + + def getNetworkById(self, network_id): + return WPA_Supplicant_Network(self.bus, self.getNetworkPath(network_id)) + + def getNetwork(self, network): + return WPA_Supplicant_Network(self.bus, network) + + # mode should be between 0 and 2 + def setAPScan(self, mode): + self.iface.setAPScan(dbus.UInt32(mode)) + + def disconnect(self): + self.iface.disconnect() + + def getState(self): + return self.iface.state() + + def getCapabilities(self): + return self.iface.capabilities() + +class WPA_Supplicant: + def __init__(self): + self.bus = dbus.SystemBus() + self.wpas_obj = self.bus.get_object(WPAS_DBUS_SERVICE, WPAS_DBUS_OPATH) + self.wpas = dbus.Interface(self.wpas_obj, WPAS_DBUS_INTERFACE) + + def getInterface(self, ifname): + path = self.wpas.getInterface(ifname) + return WPA_Supplicant_Interface(self.bus, ifname, path) + + # driver=wext, hostap, prism54, madwifi, atmel, ndiswrapper, ipw, wired + def addInterface(self, ifname, driver): + self.wpas.addInterface(ifname, {'driver': dbus.String(driver, variant_level=1)}) + return self.getInterface(ifname) + + def removeInterface(self, ifname): + try: + iface_path = self.wpas.getInterface(ifname) + except dbus.DBusException: + iface_path = None + if iface_path: + self.wpas.removeInterface(dbus.ObjectPath(iface_path)) + +def detectWpaDriver(ifname): + import os + import sys + import pardus.netutils + # if device is an ethernet device, driver is "wired" + device = pardus.netutils.IF(ifname) + if (device.isEthernet()) and (not device.isWireless()): + return "wired" + path = os.path.join("/sys/class/net/", ifname, "device/driver/module") + modname = None + if os.path.exists(path): + modname = os.readlink(path).split("/")[-1] + if "hostap" in modname: + return "hostap" + if "prism54" in modname: + return "prism54" + if "atmel" in modname: + return "atmel" + # we fallback to wext + # wext is the generic driver for ipw2100, ipw2200, ndiswrapper > 1.12, madwifi etc... + return "wext" + +def getWpaInterface(ifname): + wpa = WPA_Supplicant() + try: + iface = wpa.getInterface(ifname) + except dbus.DBusException: + driver = detectWpaDriver(ifname) + iface = wpa.addInterface(ifname, driver) + return iface + +def waitForAuthenticationComplete(iface, timeout, wait = 0.1): + import time + while timeout > 0: + if iface.getState() == "COMPLETED": + return True + else: + timeout -= wait + time.sleep(wait) + return False + +def checkServiceState(serviceName): + bus = dbus.SystemBus() + obj = bus.get_object("tr.org.pardus.comar", "/package/%s" % serviceName) + state = obj.info(dbus_interface="tr.org.pardus.comar.System.Service")[2] + return state in ("on", "started") + +def isDBusServiceActive(): + return True + +def isWpaServiceActive(): + return checkServiceState("wpa_supplicant") + +def isWpaServiceUsable(): + return isDBusServiceActive() and isWpaServiceActive() + +def startWpaService(): + if not isWpaServiceActive(): + bus = dbus.SystemBus() + obj = bus.get_object("tr.org.pardus.comar", "/package/wpa_supplicant") + obj.start(dbus_interface="tr.org.pardus.comar.System.Service") + import time + timeout = 10 + while timeout > 0: + try: + bus = dbus.SystemBus() + net_obj = bus.get_object(WPAS_DBUS_SERVICE, WPAS_DBUS_OPATH) + net = dbus.Interface(net_obj, WPAS_DBUS_NETWORK_INTERFACE) + except dbus.DBusException: + time.sleep(0.1) + timeout -= 0.2 + continue + return True + return False + +def setWpaAuthentication(ifname, ssid, password, timeout = TIMEOUT): + password_length = len(password) + if (password_length < 8) or (password_length > 63): + raise PasswordLengthError("Password length should be between 8 and 63") + iface = getWpaInterface(ifname) + network = iface.addNetwork() + network.setNetwork({"ssid": dbus.String(ssid, variant_level=1), "psk": dbus.String(password, variant_level=1)}) + iface.selectNetwork(network.path) + authentication = waitForAuthenticationComplete(iface, timeout) + if not authentication: + disableAuthentication(ifname) + return authentication + +def disableAuthentication(ifname): + wpa = WPA_Supplicant() + wpa.removeInterface(ifname) + bus = dbus.SystemBus() + obj = bus.get_object("tr.org.pardus.comar", "/package/wpa_supplicant") + obj.stop(dbus_interface="tr.org.pardus.comar.System.Service") + +class Wpa_EAP: + ssid = "" + phase1 = "" + phase2 = "" + key_mgmt = "IEEE8021X" + eap = "PEAP" + anonymous_identity = "" + ca_cert = "" + client_cert = "" + private_key = "" + private_key_passwd = "" + + def __init__(self, ifname): + self.ifname = ifname + self.iface = getWpaInterface(ifname) + self.network = self.iface.addNetwork() + + def authenticate(self, username, password, timeout = TIMEOUT): + basic = {"ssid": dbus.String(self.ssid, variant_level=1), + "key_mgmt": dbus.String(self.key_mgmt, variant_level=1), + "eap": dbus.String(self.eap, variant_level=1), + "identity": dbus.String(username, variant_level=1)} + + if self.client_cert: + basic["client_cert"] = dbus.String(self.client_cert, variant_level=1) + if self.ca_cert: + basic["ca_cert"] = dbus.String(self.ca_cert, variant_level=1) + if self.private_key: + basic["private_key"] = dbus.String(self.private_key, variant_level=1) + if self.private_key_passwd: + basic["private_key_passwd"] = dbus.String(self.private_key_passwd, variant_level=1) + if self.phase2: + basic["phase2"] = dbus.String("auth=%s"%self.phase2, variant_level=1) + if password: + basic["password"] = dbus.String(password, variant_level=1) + if self.anonymous_identity: + basic["anonymous_identity"] = dbus.String(self.anonymous_identity, variant_level=1) + + self.network.setNetwork(basic) + + self.iface.selectNetwork(self.network.path) + authentication = waitForAuthenticationComplete(self.iface, timeout) + if not authentication: + disableAuthentication(self.ifname) + return authentication diff --git a/network/connection/wpa_supplicant/pspec.xml b/network/connection/wpa_supplicant/pspec.xml new file mode 100644 index 0000000000..f2e9f7ff8d --- /dev/null +++ b/network/connection/wpa_supplicant/pspec.xml @@ -0,0 +1,100 @@ + + + + + wpa_supplicant + http://hostap.epitest.fi/wpa_supplicant/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + BSD + service + IEEE 802.1X/WPA supplicant for secure wireless transfers + wpa_supplicant is a WPA supplicant with support for WPA and WPA2. + http://hostap.epitest.fi/releases/wpa_supplicant-2.1.tar.gz + + wpa_supplicant.config + + + libnl-devel + + + ubuntu/01_use_pkg-config_for_pcsc-lite_module.patch + + wpa_supplicant-1.0-dbus-path-fix.patch + wpa_supplicant-1.0-do-not-call-dbus-functions-with-NULL-path.patch + mandriva/wpa_supplicant-0.6.3-WEP232.patch + fedora/wpa_supplicant-openssl-more-algs.patch + fedora/wpa_supplicant-flush-debug-output.patch + + + fedora/wpa_supplicant-assoc-timeout.patch + + + + suse/wpa_supplicant-errormsg.patch + + + + + + + + + + wpa_supplicant + + libnl + + + /etc + /etc/dbus-1 + /usr/sbin + /usr/bin + /usr/lib + /usr/share/doc + /usr/share/man + /usr/share/dbus-1/system-services + /run + + + wpa_supplicant.conf + + wpa_supplicant.confd + wpa_supplicant.logrotate + wpa_supplicant.py + + + + System.Service + + + + + + 2014-06-02 + 2.1 + Version Bump. + Aydın Demirel + aydin.demirel@pisilinux.org + + + 2013-03-02 + 2.0 + V.Bump + PisiLinux Community + admins@pisilinux.org + + + 2012-10-14 + 1.0 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/connection/wpa_supplicant/translations.xml b/network/connection/wpa_supplicant/translations.xml new file mode 100644 index 0000000000..23e5f8b874 --- /dev/null +++ b/network/connection/wpa_supplicant/translations.xml @@ -0,0 +1,8 @@ + + + + wpa_supplicant + Güvenli kablosuz erişim için IEEE 802.1X/WPA sağlayıcı + WPA ve WPA2 desteği olan ve Linux, BSD ve Windows ortamları için bir WPA istemcisidir. + + diff --git a/network/filter/component.xml b/network/filter/component.xml new file mode 100644 index 0000000000..898a0b6bd9 --- /dev/null +++ b/network/filter/component.xml @@ -0,0 +1,3 @@ + + network.filter + diff --git a/network/filter/iproute2/actions.py b/network/filter/iproute2/actions.py new file mode 100644 index 0000000000..e12f5fe31b --- /dev/null +++ b/network/filter/iproute2/actions.py @@ -0,0 +1,25 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + autotools.configure() + +def build(): + autotools.make('CC="%s" RPM_OPT_FLAGS="%s"' % (get.CC(), get.CFLAGS())) + +def install(): + autotools.rawInstall("DESTDIR=\"%s\" \ + SBINDIR=/sbin \ + DOCDIR=/%s/%s \ + MANDIR=/usr/share/man \ + " % (get.installDIR(), get.docDIR(), get.srcNAME())) + + pisitools.dodir("/usr/sbin") + pisitools.dodir("/var/lib/arpd") diff --git a/network/filter/iproute2/files/iproute2-2.6.29-IPPROTO_IP_for_SA.patch b/network/filter/iproute2/files/iproute2-2.6.29-IPPROTO_IP_for_SA.patch new file mode 100644 index 0000000000..48ffcb4274 --- /dev/null +++ b/network/filter/iproute2/files/iproute2-2.6.29-IPPROTO_IP_for_SA.patch @@ -0,0 +1,11 @@ +diff -up iproute2-2.6.29/ip/ipxfrm.c.old iproute2-2.6.29/ip/ipxfrm.c +--- iproute2-2.6.29/ip/ipxfrm.c.old 2009-03-24 23:15:14.000000000 +0100 ++++ iproute2-2.6.29/ip/ipxfrm.c 2009-04-24 09:35:58.203735119 +0200 +@@ -1156,6 +1156,7 @@ static int xfrm_selector_upspec_parse(st + case IPPROTO_UDP: + case IPPROTO_SCTP: + case IPPROTO_DCCP: ++ case IPPROTO_IP: /* to allow shared SA for different protocols */ + break; + default: + fprintf(stderr, "\"sport\" and \"dport\" are invalid with proto=%s\n", strxf_proto(sel->proto)); diff --git a/network/filter/iproute2/files/iproute2-2.6.29-kernel.patch b/network/filter/iproute2/files/iproute2-2.6.29-kernel.patch new file mode 100644 index 0000000000..df9125ac0c --- /dev/null +++ b/network/filter/iproute2/files/iproute2-2.6.29-kernel.patch @@ -0,0 +1,11 @@ +diff -up iproute2-20091009/Makefile.kernel iproute2-20091009/Makefile +--- iproute2-20091009/Makefile.kernel 2009-09-21 10:26:11.000000000 +0200 ++++ iproute2-20091009/Makefile 2009-10-09 12:27:03.687382422 +0200 +@@ -6,6 +6,7 @@ CONFDIR=/etc/iproute2 + DOCDIR=/share/doc/iproute2 + MANDIR=/share/man + ARPDDIR=/var/lib/arpd ++KERNEL_INCLUDE=/usr/include + + # Path to db_185.h include + DBM_INCLUDE:=$(ROOTDIR)/usr/include diff --git a/network/filter/iproute2/files/iproute2-2.6.31-tc_modules.patch b/network/filter/iproute2/files/iproute2-2.6.31-tc_modules.patch new file mode 100644 index 0000000000..0daa17bf8e --- /dev/null +++ b/network/filter/iproute2/files/iproute2-2.6.31-tc_modules.patch @@ -0,0 +1,12 @@ +diff -up iproute2-2.6.31/Makefile.old iproute2-2.6.31/Makefile +--- iproute2-2.6.31/Makefile.old 2010-01-04 12:46:47.000000000 +0100 ++++ iproute2-2.6.31/Makefile 2010-01-04 12:50:17.396384644 +0100 +@@ -13,7 +13,7 @@ DBM_INCLUDE:=$(ROOTDIR)/usr/include + + SHARED_LIBS = y + +-DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" ++DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" -DIPT_LIB_DIR=\"$(IPT_LIB_DIR)\" + ifneq ($(SHARED_LIBS),y) + DEFINES+= -DNO_SHARED_LIBS + endif diff --git a/network/filter/iproute2/files/iproute2-example-cbq-service.patch b/network/filter/iproute2/files/iproute2-example-cbq-service.patch new file mode 100644 index 0000000000..f8b4978161 --- /dev/null +++ b/network/filter/iproute2/files/iproute2-example-cbq-service.patch @@ -0,0 +1,22 @@ +diff -up iproute2-20091106/examples/cbq.init-v0.7.3.fix iproute2-20091106/examples/cbq.init-v0.7.3 +--- iproute2-20091106/examples/cbq.init-v0.7.3.fix 2009-11-10 19:41:44.000000000 +0100 ++++ iproute2-20091106/examples/cbq.init-v0.7.3 2009-11-27 13:36:07.957310549 +0100 +@@ -579,14 +579,14 @@ cbq_show () { + ### Check configuration and load DEVICES, DEVFIELDS and CLASSLIST from $1 + cbq_init () { + ### Get a list of configured classes +- CLASSLIST=`find $1 \( -type f -or -type l \) -name 'cbq-*' \ +- -not -name '*~' -maxdepth 1 -printf "%f\n"| sort` ++ CLASSLIST=`find $1 -maxdepth 1 \( -type f -or -type l \) -name 'cbq-*' \ ++ -not -name '*~' -printf "%f\n"| sort` + [ -z "$CLASSLIST" ] && + cbq_failure "no configuration files found in $1!" + + ### Gather all DEVICE fields from $1/cbq-* +- DEVFIELDS=`find $1 \( -type f -or -type l \) -name 'cbq-*' \ +- -not -name '*~' -maxdepth 1| xargs sed -n 's/#.*//; \ ++ DEVFIELDS=`find $1 -maxdepth 1 \( -type f -or -type l \) -name 'cbq-*' \ ++ -not -name '*~' | xargs sed -n 's/#.*//; \ + s/[[:space:]]//g; /^DEVICE=[^,]*,[^,]*\(,[^,]*\)\?/ \ + { s/.*=//; p; }'| sort -u` + [ -z "$DEVFIELDS" ] && diff --git a/network/filter/iproute2/files/iproute2-libxtables6.diff b/network/filter/iproute2/files/iproute2-libxtables6.diff new file mode 100644 index 0000000000..ed2e16a397 --- /dev/null +++ b/network/filter/iproute2/files/iproute2-libxtables6.diff @@ -0,0 +1,31 @@ +From: Jan Engelhardt +Date: 2011-06-01 00:52:29+0200 + +--- + tc/m_xt.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +Index: iproute2-2.6.38/tc/m_xt.c +=================================================================== +--- iproute2-2.6.38.orig/tc/m_xt.c ++++ iproute2-2.6.38/tc/m_xt.c +@@ -162,7 +162,8 @@ static int parse_ipt(struct action_util + return -1; + } + tcipt_globals.opts = +- xtables_merge_options(tcipt_globals.opts, ++ xtables_merge_options(tcipt_globals.orig_opts, ++ tcipt_globals.opts, + m->extra_opts, + &m->option_offset); + } else { +@@ -307,7 +308,8 @@ print_ipt(struct action_util *au,FILE * + } + + tcipt_globals.opts = +- xtables_merge_options(tcipt_globals.opts, ++ xtables_merge_options(tcipt_globals.orig_opts, ++ tcipt_globals.opts, + m->extra_opts, + &m->option_offset); + } else { diff --git a/network/filter/iproute2/files/iproute2-xt.diff b/network/filter/iproute2/files/iproute2-xt.diff new file mode 100644 index 0000000000..181d44050e --- /dev/null +++ b/network/filter/iproute2/files/iproute2-xt.diff @@ -0,0 +1,22 @@ +From: Jan Engelhardt +Date: 2011-06-01 00:52:07+0200 + +--- + tc/m_xt.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: iproute2-2.6.37/tc/m_xt.c +=================================================================== +--- iproute2-2.6.37.orig/tc/m_xt.c ++++ iproute2-2.6.37/tc/m_xt.c +@@ -343,8 +343,8 @@ print_ipt(struct action_util *au,FILE * + return 0; + } + +-struct action_util ipt_action_util = { +- .id = "ipt", ++struct action_util xt_action_util = { ++ .id = "xt", + .parse_aopt = parse_ipt, + .print_aopt = print_ipt, + }; diff --git a/network/filter/iproute2/pspec.xml b/network/filter/iproute2/pspec.xml new file mode 100644 index 0000000000..9a22b3e6d8 --- /dev/null +++ b/network/filter/iproute2/pspec.xml @@ -0,0 +1,65 @@ + + + + + iproute2 + http://linux-net.osdl.org/index.php/Iproute2 + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + app:console + Kernel routing and traffic control utilities + Iproute2 is a collection of utilites for controlling TCP/IP networking and traffic control in Linux. + https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.0.0.tar.xz + + iptables-devel + linux-atm-devel + db-devel + + + + + iproute2 + + linux-atm + iptables + db + + + /etc + /sbin + /usr/sbin + /lib + /usr/lib + /usr/share/man + /usr/share/doc + /var/lib + + + + + + 2015-04-13 + 4.0.0 + Version bump. + Ertuğrul Erata + ertugrulerata@gmail.com + + + 2013-11-23 + 3.12.0 + Version bump + Richard de Bruin + richdb@pisilinux.org + + + 2012-09-01 + 3.5.1 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/filter/iproute2/translations.xml b/network/filter/iproute2/translations.xml new file mode 100644 index 0000000000..3281e88d0b --- /dev/null +++ b/network/filter/iproute2/translations.xml @@ -0,0 +1,8 @@ + + + + iproute2 + Çekirdek içinde yer alan ağ trafiği yönlendirme ve trafik kontrol araçları. + Iproute2 TCP/IP ağları ve trafik kontrolü için araçlar içeren bir koolleksiyondur. + + diff --git a/network/filter/iptables/actions.py b/network/filter/iptables/actions.py new file mode 100644 index 0000000000..be96668983 --- /dev/null +++ b/network/filter/iptables/actions.py @@ -0,0 +1,32 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +def setup(): + autotools.configure("--sbindir=/sbin \ + --libexecdir=/usr/lib \ + --without-kernel \ + --enable-devel \ + --enable-libipq \ + --enable-shared \ + --enable-static") + +def build(): + autotools.make("V=1") + +def install(): + autotools.rawInstall('DESTDIR="%s"' % get.installDIR()) + + pisitools.insinto("/usr/include", "include/iptables.h") + pisitools.insinto("/usr/include", "include/ip6tables.h") + pisitools.insinto("/usr/include/libiptc", "include/libiptc/*.h") + + pisitools.dodir("/var/lib/iptables") + pisitools.dodir("/etc/iptables") diff --git a/network/filter/iptables/comar/firewall.py b/network/filter/iptables/comar/firewall.py new file mode 100644 index 0000000000..7939b7a53b --- /dev/null +++ b/network/filter/iptables/comar/firewall.py @@ -0,0 +1,528 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# i18n + +MSG_CONNECTION_NAME = { + "en": "Internet Sharing", + "tr": "Internet Paylaşımı", + "sv": "Internetdelning", + "fr": "Partage de connexion Internet", + "es": "Compartir Internet", + "de": "Internet Freigabe", + "nl": "Internetverbinding delen", +} + +MSG_ALLOWED_PORTS = { + "en": "Allowed Port Numbers", + "tr": "İzin Verilen Port Numaraları", + "sv": "Tillåtna portar", + "fr": "Numéros de port autorisés", + "es": "Números de puertos permitidos", + "de": "Erlaubte Ports", + "nl": "Toegestane poortnummers", +} + +MSG_FORBIDDEN_PORTS = { + "en": "Forbidden Port Numbers", + "tr": "İzin Verilmeyen Port Numaraları", + "sv": "Otillåtna portar", + "nl": "Verboden poortnummers", +} + +MSG_GATEWAY_HOME = { + "en": "Gate to Home Network", + "tr": "Ev Ağına Çıkış", + "sv": "Länk till lokalt nätverk", + "fr": "Passerelle vers le réseau local", + "es": "Enlace a la red doméstica", + "de": "Gateway zum Haus-Netzwerk", + "nl": "Gateway naar thuisnetwerk", +} + +MSG_GATEWAY_INTERNET = { + "en": "Gate to Internet", + "tr": "Internet'e Çıkış", + "sv": "Länk till internet", + "fr": "Passerelle vers Internet", + "es": "Enlace a Internet", + "de": "Gateway zum Internet", + "nl": "Gateway naar Internet", +} + +TITLE_BLOCK_INCOMING = { + "en": "Block Incoming Connections", + "tr": "Gelen Bağlantıları Engelle", + "sv": "Blockera inkommande anslutningar", + "fr": "Bloquer les connexions entrantes", + "es": "Bloquear conexiones entrantes", + "de": "Eingehende Verbindungen blockieren", + "nl": "Inkomende verbindingen blokkeren", +} +DESCRIPTION_BLOCK_INCOMING = { + "en": "Blocks all incoming connections to the computer. Exceptions can be set from configuration dialog.", + "tr": "Bilgisayara gelen tüm bağlantıları engeller. İstisnalar ayarlar penceresinden belirlenebilir.", + "sv": "Blockerar alla inkommande anslutningar till datorn. Undantag kan läggas till under inställningar.", + "fr": "Bloque toute les connexions entrantes dans l'ordinateur. Des exceptions peuvent être définies dans la fenêtre de configuration.", + "es": "Bloquea todas las conexiones entrantes a la computadora. Se puede especificar excepciones desde el dialogo de configuración.", + "de": "Blockiert alle eingehenden Verbindungen. Im Konfigurations-Dialog können Ausnahmen angegeben werden.", + "nl": "Alle inkomende verbindingen naar deze computer blokkeren. Uitzonderingen kunnen in een configuratiedialoog ingesteld worden.", +} + +TITLE_BLOCK_OUTGOING = { + "en": "Block Outgoing Connections", + "tr": "Giden Bağlantıları Engelle", + "sv": "Blockera utgående anslutningar", + "fr": "Bloquer les connexions sortantes", + "es": "Bloquear conexiones salientes", + "de": "Ausgehende Verbindungen blockieren", + "nl": "Uitgaande verbindingen blokkeren", +} +DESCRIPTION_BLOCK_OUTGOING = { + "en": "Blocks outgoing connections. Forbidden ports can be set from configuration dialog.", + "tr": "Dışarı yapılan bağlantıları engeller. Yasaklı port numaraları ayarlar penceresinden belirlenebilir.", + "sv": "Blockerar alla utgående anslutningar till datorn. Undantag kan läggas till under inställningar.", + "nl": "Uitgaande verbindingen blokkeren. Verboden poorten kunnen in een configuratiedialoog ingesteld worden.", +} + +TITLE_INTERNET_SHARING = { + "en": "Internet Sharing", + "tr": "Internet Paylaşımı", + "sv": "Internetdelning", + "fr": "Partage de connexion Internet", + "es": "Compartir Internet", + "de": "Internet Freigabe", + "nl": "Internetverbinding delen", +} +DESCRIPTION_INTERNET_SHARING = { + "en": "Allows computers in your local network to connect Internet through this computer.", + "tr": "Yerel ağınızdaki bilgisayarların, bu bilgisayarı kullanarak Internet'e bağlanmalarını sağlar.", + "sv": "Låter datorer i det lokala nätverket ansluta till internet via den här datorn.", + "fr": "Permet aux ordinateurs de votre réseau domestique de se connecter à Internet via cet ordinateur.", + "es": "Permitir a otros computadoras en su red local acceder a la Internet, a través de ésta computadora", + "de": "Gibt anderen Computern aus dem lokalen Netzwer die Mäglichkeit, Internet durch diesen Computer hier zu benutzen.", + "nl": "Geeft andere computers in het lokale netwerk via deze computer toegang tot het internet.", +} + + +# Don't touch below, if you don't know what you're doing. + +# Module configuration settings and templates + +FIREWALL_CONF = "/etc/firewall.conf" + +IPTABLES_RULES = { + 'filter': [ + '-P INPUT DROP', # Default policies + '-P FORWARD DROP', + '-P OUTPUT ACCEPT', + '-N PARDUS-IN', # Module container table for INPUT + '-N PARDUS-IN-MOD-BLOCK', # Table for BlockIncoming rules + '-N PARDUS-FW', # Module container table for FORWARD + '-N PARDUS-FW-MOD-SHARING', # Table for InternetSharingModule rules + '-N PARDUS-FW-MOD-BLOCK', # Table for BlockOutgoing rules + '-N PARDUS-OUT', # Module container table for OUTPUT + '-N PARDUS-OUT-MOD-BLOCK', # Table for BlockOutgoing rules + '-A INPUT -i lo -j ACCEPT', # Accept local + '-A FORWARD -o lo -j ACCEPT', + '-A INPUT -m state --state INVALID -j DROP', + '-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT', + '-A INPUT -j PARDUS-IN', # Jump into container tables + '-A FORWARD -j PARDUS-FW', + '-A OUTPUT -j PARDUS-OUT', + '-A PARDUS-IN -j PARDUS-IN-MOD-BLOCK' , # Jump into module tables + '-A PARDUS-FW -j PARDUS-FW-MOD-BLOCK', + '-A PARDUS-FW -j PARDUS-FW-MOD-SHARING', + '-A PARDUS-OUT -j PARDUS-OUT-MOD-BLOCK', + '-A INPUT -m state --state NEW -j ACCEPT', + ], + 'nat': [ + '-P PREROUTING ACCEPT', + '-P POSTROUTING ACCEPT', + '-P OUTPUT ACCEPT', + '-N PARDUS-POST', + '-N PARDUS-POST-MOD-SHARING', + '-A POSTROUTING -j PARDUS-POST', + '-A PARDUS-POST -j PARDUS-POST-MOD-SHARING', + ], +} + +DHCPD_CONF = """ +ddns-update-style interim; +ignore client-updates; +max-lease-time 500; +default-lease-time 500; +option domain-name-servers 193.140.100.220; +option routers 172.16.0.1; +option subnet-mask 255.255.255.0; +subnet 172.16.0.0 netmask 255.255.255.0 { + range 172.16.0.2 172.16.0.254; +} +""" + +# Utils + +import os +import subprocess + +from pardus import iniutils +from pardus import netutils +from pardus import netfilterutils + +INI = iniutils.iniParser(FIREWALL_CONF) + +def listModuleConfigs(): + """ + Returns a list of modules that are configured. + """ + try: + modules = INI.listSections() + except iniutils.iniParserError: + return + if "general" in modules: + modules.remove("general") + return modules + +class ModuleConfig: + """ + Module configuration parser. + """ + def __init__(self, name): + self.name = name + try: + self.info = INI.getSection(name) + except iniutils.iniParserError: + self.info = {} + + def delete(self): + INI.removeSection(self.name) + + def save(self): + is_new = self.name not in listModuleConfigs() + INI.setSection(self.name, self.info) + +def getServiceState(package): + """ + Returns state of a service. + """ + return call(package, "System.Service", "info")[2] in ["on", "started"] + +def stopService(package, permanent=False): + """ + Stops a service. + """ + call(package, "System.Service", "stop") + if permanent: + call(package, "System.Service", "setState", ("off")) + +def startService(package, restart=False, auto_start=False): + """ + Starts a service. + """ + if restart: + stopService(package) + if not getServiceState(package): + call(package, "System.Service", "start") + if auto_start: + call(package, "System.Service", "setState", ("on")) + +def initializeIPTables(): + """ + Initializes IPTables. + """ + # Active rules + rules_active = netfilterutils.parseConf(netfilterutils.getRules()) + + # Compare rules + for chain, rules in IPTABLES_RULES.iteritems(): + if chain not in rules_active or len(set(rules) - set(rules_active[chain])): + # At least one different rule, need re-initialization + netfilterutils.clear() + conf = netfilterutils.makeConf(IPTABLES_RULES) + netfilterutils.restoreRules(conf) + break + +def execRule(rule): + """ + Executes IPTables rule + """ + rule = rule.split() + rule.insert(0, "/sbin/iptables") + subprocess.call(rule) + +def createConnection(package, device): + import comar + link = comar.Link() + connection = _(MSG_CONNECTION_NAME) + link.Network.Link[package].setDevice(connection, device) + link.Network.Link[package].setAddress(connection, "manual", "172.16.0.1", "255.255.255.0", "") + return connection + +def findOrCreateConnection(link, device): + o_package, o_connecion = None, None + for package in link.Network.Link: + if device in link.Network.Link[package].deviceList(): + for connection in link.Network.Link[package].connections(): + info = link.Network.Link[package].connectionInfo(connection) + if info.get("net_address", "") == "172.16.0.1": + return package, connection + return package, createConnection(package, device) + +def makeDHCPConf(interface): + file("/etc/dhcp/dhcpd.conf", "w").write(DHCPD_CONF) + file("/etc/conf.d/dhcpd", "w").write("DHCPD_IFACE=%s" % interface) + +# Modules + +class BlockIncoming: + def __init__(self): + self.parametersLast = {} + + def getInfo(self): + title = _(TITLE_BLOCK_INCOMING) + description = _(DESCRIPTION_BLOCK_INCOMING) + icon = "network-server" + return (title, description, icon) + + def getParameters(self): + parameters = [ + ("port_exceptions", _(MSG_ALLOWED_PORTS), "editlist", {"format": "[0-9\-]+"}), + ] + return parameters + + def checkModule(self, parameters={}, quiet=False): + pass + + def loadModule(self, parameters={}): + # Initialize IPTables + initializeIPTables() + # Flush rules + self.unloadModule() + # Load rules + for port in parameters.get("port_exceptions", "").split(): + if "-" in port: + port = port.replace("-", ":") + execRule("-A PARDUS-IN-MOD-BLOCK -p tcp -m multiport --dports %s -j ACCEPT" % port) + execRule("-A PARDUS-IN-MOD-BLOCK -p udp -m multiport --dports %s -j ACCEPT" % port) + # Block else... + execRule("-A PARDUS-IN-MOD-BLOCK -p tcp -m multiport --dports 0:1024 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable") + execRule("-A PARDUS-IN-MOD-BLOCK -p udp -m multiport --dports 0:1024 -j REJECT --reject-with icmp-port-unreachable") + execRule("-A PARDUS-IN-MOD-BLOCK -j REJECT --reject-with icmp-host-prohibited") + + def unloadModule(self, shutdown=False): + if not shutdown: + # Unload rules + execRule("-F PARDUS-IN-MOD-BLOCK") + + +class BlockOutgoing: + def __init__(self): + self.parametersLast = {} + + def getInfo(self): + title = _(TITLE_BLOCK_OUTGOING) + description = _(DESCRIPTION_BLOCK_OUTGOING) + icon = "security-medium" + return (title, description, icon) + + def getParameters(self): + parameters = [ + ("port_exceptions", _(MSG_FORBIDDEN_PORTS), "editlist", {"format": "[0-9\-]+"}), + ] + return parameters + + def checkModule(self, parameters={}, quiet=False): + pass + + def loadModule(self, parameters={}): + # Initialize IPTables + initializeIPTables() + # Flush rules + self.unloadModule() + # Load rules + for port in parameters.get("port_exceptions", "").split(): + if "-" in port: + port = port.replace("-", ":") + execRule("-A PARDUS-OUT-MOD-BLOCK -p tcp -m multiport --dports %s -j DROP" % port) + execRule("-A PARDUS-OUT-MOD-BLOCK -p udp -m multiport --dports %s -j DROP" % port) + execRule("-A PARDUS-FW-MOD-BLOCK -p tcp -m multiport --dports %s -j DROP" % port) + execRule("-A PARDUS-FW-MOD-BLOCK -p udp -m multiport --dports %s -j DROP" % port) + + def unloadModule(self, shutdown=False): + if not shutdown: + # Unload rules + execRule("-F PARDUS-OUT-MOD-BLOCK") + execRule("-F PARDUS-FW-MOD-BLOCK") + + +class InternetSharingModule: + def __init__(self): + self.parametersLast = {} + + def getInfo(self): + title = _(TITLE_INTERNET_SHARING) + description = _(DESCRIPTION_INTERNET_SHARING) + icon = "network-workgroup" + return (title, description, icon) + + def getParameters(self): + def findInterfaces(wireless=True): + ifaces = [] + for iface in netutils.interfaces(): + if iface.name.startswith("lo") or iface.name.startswith("pan"): + continue + if not wireless and iface.isWireless(): + continue + if iface.isEthernet(): + dev_id = iface.deviceUID() + dev_name = netutils.deviceName(iface.deviceUID()) + if " - " in dev_name: + dev_name = dev_name.split(" - ")[1] + ifaces.append("%s\t%s" % (dev_id, dev_name)) + return ifaces + options_in = { + "choose": "\n".join(findInterfaces()) + } + options_out = { + "choose": "\n".join(findInterfaces(wireless=False)) + } + parameters = [ + ("device-input", _(MSG_GATEWAY_INTERNET), "combo", options_in), + ("device-output", _(MSG_GATEWAY_HOME), "combo", options_out), + ] + return parameters + + def checkModule(self, parameters={}, quiet=False): + pass + + def loadModule(self, parameters={}): + # Initialize IPTables + initializeIPTables() + # Flush rules + self.unloadModule() + # Enable forwarding + os.system("echo 1 > /proc/sys/net/ipv4/ip_forward") + os.system("echo 1 > /proc/sys/net/ipv4/ip_dynaddr") + # Load rules + input = parameters.get("device-input", "") + output = parameters.get("device-output", "") + if input and output and input != output: + in_name = input.split("_")[-1] + out_name = output.split("_")[-1] + execRule("-A PARDUS-FW-MOD-SHARING -i %s -o %s -m state --state ESTABLISHED,RELATED -j ACCEPT" % (in_name, out_name)) + execRule("-A PARDUS-FW-MOD-SHARING -i %s -o %s -j ACCEPT" % (out_name, in_name)) + execRule("-t nat -A PARDUS-POST-MOD-SHARING -o %s -j MASQUERADE" % in_name) + # Create local NAT profile + import comar + link = comar.Link() + package, connection = findOrCreateConnection(link, output) + link.Network.Link[package].setState(connection, "up") + # Configure DHCP + makeDHCPConf(out_name) + # Start DHCP + startService("dhcpd", restart=True) + + def unloadModule(self, shutdown=False): + # Stop DHCP + stopService("dhcpd") + if not shutdown: + # Unload rules + execRule("-F PARDUS-FW-MOD-SHARING") + execRule("-P PARDUS-FW-MOD-SHARING ACCEPT") + execRule("-t nat -F PARDUS-POST-MOD-SHARING") + + +# Usable modules +MODULES = { + "internet_sharing": InternetSharingModule, + "block_incoming": BlockIncoming, + "block_outgoing": BlockOutgoing, +} + +# Network.Firewall model + +def listModules(): + return MODULES.keys() + +def moduleInfo(module): + inst = MODULES[module]() + return inst.getInfo() + +def moduleParameters(module): + inst = MODULES[module]() + return inst.getParameters() + +def getModuleState(module): + info = ModuleConfig(module).info + return info.get("state", "off") + +def setModuleState(name, state): + if state in ["on", "off"]: + # Save state + module = ModuleConfig(name) + module.info["state"] = state + module.save() + # Execute module if firewall is active + if getState() == "on": + inst = MODULES[name]() + if state == "on": + inst.loadModule(getModuleParameters(name)) + else: + inst.unloadModule() + # Notify clients + notify("Network.Firewall", "moduleStateChanged", (name, state)) + +def getModuleParameters(module): + info = ModuleConfig(module).info + return info + +def setModuleParameters(name, parameters): + # Save module parameters + module = ModuleConfig(name) + for key, value in parameters.iteritems(): + module.info[key] = value + module.save() + # Execute module if it's active + if getState() == "on" and getModuleState(name) == "on": + inst = MODULES[name]() + inst.checkModule(parameters) + inst.loadModule(parameters) + # Notify clients + notify("Network.Firewall", "moduleSettingsChanged", (name)) + +def getState(): + state = ModuleConfig("general").info.get("state", "off") + if state not in ["on", "off"] or not getServiceState(script()): + return "off" + return state + +def setState(state): + if state in ["on", "off"]: + # Save state + general = ModuleConfig("general") + general.info["state"] = state + general.save() + if state == "on": + # Start IPTables + startService(script(), auto_start=True) + # Execute active modules + for module in listModuleConfigs(): + if module not in MODULES: + continue + info = ModuleConfig(module).info + if info.get("state", "off") == "on": + inst = MODULES[module]() + inst.loadModule(getModuleParameters(module)) + else: + # Flush IPTables since every module depends on it + netfilterutils.clear() + # Stop IPTables + stopService(script(), permanent=True) + # Unload modules + for module in listModuleConfigs(): + if module not in MODULES: + continue + inst = MODULES[module]() + inst.unloadModule(shutdown=True) + # Notify clients + notify("Network.Firewall", "stateChanged", (state)) diff --git a/network/filter/iptables/comar/service.py b/network/filter/iptables/comar/service.py new file mode 100644 index 0000000000..103f24dffb --- /dev/null +++ b/network/filter/iptables/comar/service.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from comar.service import * + +serviceType = "local" +serviceDesc = _({"en": "Firewall", + "tr": "Güvenlik Duvarı"}) + +LOCK_FILE = "/var/lock/subsys/iptables" +FIREWALL_PATH = "/etc/firewall.conf" + +import os +import pardus.netfilterutils as iptables +from pardus import iniutils + +def writeFile(filename, content="", mode=0600): + '''Writes content to filename and sets file mode.''' + file(filename, "w").write(content) + os.chmod(filename, mode) + +def readFile(filename): + """Return content of a file""" + return file(filename, "r").read() + +def startNetworkFirewall(): + INI = iniutils.iniParser(FIREWALL_PATH) + try: + info = INI.getSection("general") + except iniutils.iniParserError: + return + if info.get("state", "off") == "on": + call(script(), "Network.Firewall", "setState", ("on")) + +def stop(): + # Save rules + writeFile("/var/lib/iptables/rules", iptables.getRules()) + + # Clear chains & rules + iptables.clear() + + # Remove lock file + if os.access(LOCK_FILE, os.F_OK): + os.unlink(LOCK_FILE) + + # Notify clients + notify("System.Service", "Changed", (script(), "stopped")) + +def start(): + # Clear chains & rules + iptables.clear() + + # Load rules + profile_file = "/var/lib/iptables/rules" + if os.path.exists(profile_file): + rules = readFile(profile_file) + iptables.restoreRules(rules) + + # Create lock file + writeFile(LOCK_FILE, "") + + # Initialize Network.Firewall, if necessary + startNetworkFirewall() + + # Notify clients + notify("System.Service", "Changed", (script(), "started")) + +def status(): + return os.access(LOCK_FILE, os.F_OK) diff --git a/network/filter/iptables/pspec.xml b/network/filter/iptables/pspec.xml new file mode 100644 index 0000000000..0c035659e5 --- /dev/null +++ b/network/filter/iptables/pspec.xml @@ -0,0 +1,89 @@ + + + + + iptables + http://www.iptables.org/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + app:console + Firewall, NAT and packet mangling tools + Contains iptables firewall, NAT and packet mangling tools. + ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.21.tar.bz2 + + libnfnetlink-devel + + + + + + + + + iptables + + libnfnetlink + + + /usr/bin + /sbin + /lib + /usr/lib + /usr/share/man + /etc + /var + /usr/share/xtables + + + System.Service + Network.Firewall + + + + + iptables-devel + Development files for iptables + + iptables + + + /usr/include + /usr/lib/*.a + /usr/lib/pkgconfig + /usr/share/man/man3 + + + + + + 2013-11-23 + 1.4.21 + Version bump + Richard de Bruin + richdb@pisilinux.org + + + 2013-03-04 + 1.4.17 + Version bump + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + 2012-10-21 + 1.4.16.3 + First release + + reverseDependencyUpdate + + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/filter/iptables/translations.xml b/network/filter/iptables/translations.xml new file mode 100644 index 0000000000..c56f16daf1 --- /dev/null +++ b/network/filter/iptables/translations.xml @@ -0,0 +1,13 @@ + + + + iptables + Güvenlik duvarı, ağ adres çevrimi ve paket çevrimi aracı + Iptables kural tabanlı gelişmiş güvenlik duvarı uygulamasıdır. + + + + iptables-devel + iptables için geliştirme dosyaları + + diff --git a/network/library/component.xml b/network/library/component.xml new file mode 100644 index 0000000000..4e017e10ad --- /dev/null +++ b/network/library/component.xml @@ -0,0 +1,3 @@ + + network.library + diff --git a/network/library/glib-networking/actions.py b/network/library/glib-networking/actions.py new file mode 100644 index 0000000000..43ba527a00 --- /dev/null +++ b/network/library/glib-networking/actions.py @@ -0,0 +1,27 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--disable-static \ + --disable-installed-tests \ + --with-ca-certificates=/etc/ssl/certs/ca-certificates.crt \ + --without-libproxy \ + --with-gnutls \ + --with-pkcs11") + +def build(): + autotools.make() + +def check(): + autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README") \ No newline at end of file diff --git a/network/library/glib-networking/pspec.xml b/network/library/glib-networking/pspec.xml new file mode 100644 index 0000000000..45b5cef2b5 --- /dev/null +++ b/network/library/glib-networking/pspec.xml @@ -0,0 +1,57 @@ + + + + + glib-networking + http://git.gnome.org/browse/glib-networking/ + + PisiLinux Community + admins@pisilinux.org + + GPLv2+ + library + Network-related giomodules for glib + This package contains various network related extensions for the GIO library. + mirrors://gnome/glib-networking/2.38/glib-networking-2.38.2.tar.xz + + gnutls-devel + p11-kit-devel + ca-certificates + intltool + glib2-devel + + + + + glib-networking + + gnutls + p11-kit + glib2 + ca-certificates + + + /usr/lib/gio/modules + /usr/libexec + /usr/share + /usr/share/doc/glib-networking + + + + + + 2014-03-30 + 2.38.2 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-01-27 + 2.34.2 + First release. + Marcin Bojara + marcin@pisilinux.org + + + diff --git a/network/library/glib-networking/translations.xml b/network/library/glib-networking/translations.xml new file mode 100644 index 0000000000..a366fdd11f --- /dev/null +++ b/network/library/glib-networking/translations.xml @@ -0,0 +1,8 @@ + + + + glib-networking + Moduły GIO dotyczące sieci do glib + Pakiet zawiera różne rozszerzenia dotyczące sieci do biblioteki GIO. + + diff --git a/network/misc/component.xml b/network/misc/component.xml new file mode 100644 index 0000000000..f2e57834ca --- /dev/null +++ b/network/misc/component.xml @@ -0,0 +1,3 @@ + + network.misc + diff --git a/network/misc/libasyncns/actions.py b/network/misc/libasyncns/actions.py new file mode 100644 index 0000000000..0848e6e5df --- /dev/null +++ b/network/misc/libasyncns/actions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure("--enable-static=no \ + --disable-lynx \ + --disable-static") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.install() + + pisitools.dodoc("LICENSE") diff --git a/network/misc/libasyncns/pspec.xml b/network/misc/libasyncns/pspec.xml new file mode 100644 index 0000000000..826c214d60 --- /dev/null +++ b/network/misc/libasyncns/pspec.xml @@ -0,0 +1,55 @@ + + + + + libasyncns + http://0pointer.de/lennart/projects/libasyncns + + PisiLinux Community + admins@pisilinux.org + + LGPLv2.1 + library + A C library for asynchronous name service queries + libasyncns is a C library for Linux/Unix for executing name service queries asynchronously. It is an asynchronous wrapper around getaddrinfo(), getnameinfo(), res_query() and res_search() from libc and libresolv. + http://0pointer.de/lennart/projects/libasyncns/libasyncns-0.8.tar.gz + + + + libasyncns + + /usr/lib + /usr/share/doc + + + + + libasyncns-devel + Development files for libasyncns + + libasyncns + + + /usr/include + /usr/lib/pkgconfig + /usr/share/man/man3 + + + + + + 2014-01-29 + 0.8 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2010-10-13 + 0.8 + First release + Gökcen Eraslan + admins@pisilinux.org + + + diff --git a/network/misc/libasyncns/translations.xml b/network/misc/libasyncns/translations.xml new file mode 100644 index 0000000000..33345246db --- /dev/null +++ b/network/misc/libasyncns/translations.xml @@ -0,0 +1,13 @@ + + + + libasyncns + Asenkron isim servisi sorguları için C kitaplığı + libasyncns, Linux/Unix üzerinde isim servisi sorgularını asenkron olarak gerçekleştirme imkanı veren bir C kitaplığıdır. + + + + libasyncns-devel + libasyncns için geliştirme dosyaları + + diff --git a/network/misc/libndp/actions.py b/network/misc/libndp/actions.py new file mode 100644 index 0000000000..aed4e19ed5 --- /dev/null +++ b/network/misc/libndp/actions.py @@ -0,0 +1,28 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 2. +# See the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + + +def setup(): + autotools.configure("--prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --libexecdir=/usr/lib") + +def build(): + autotools.make() + +#def check(): +# autotools.make("check") + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + pisitools.dodoc("COPYING", "README") diff --git a/network/misc/libndp/pspec.xml b/network/misc/libndp/pspec.xml new file mode 100644 index 0000000000..14d00d7fbc --- /dev/null +++ b/network/misc/libndp/pspec.xml @@ -0,0 +1,55 @@ + + + + + libndp + http://libndp.org/ + + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + GPLv2+ + library + Library for Neighbor Discovery Protocol + Library for Neighbor Discovery Protocol + http://libndp.org/files/libndp-1.4.tar.gz + + glibc-devel + + + + + libndp + + /etc + /usr/share + /etc/dbus-1 + /usr/lib + /usr/share/man + /usr/share/doc + /usr/bin + + + + + libndp-devel + Development files for NetworkManager + + libndp + + + /usr/include + /usr/lib/pkgconfig/ + + + + + + 2015-01-07 + 1.4 + First release + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + \ No newline at end of file diff --git a/network/misc/libndp/translations.xml b/network/misc/libndp/translations.xml new file mode 100644 index 0000000000..390bb5d79a --- /dev/null +++ b/network/misc/libndp/translations.xml @@ -0,0 +1,13 @@ + + + + libndp + Ağ tarama protokolü için kitaplık + Ağ tarama protokolü için kitaplık + + + + libndp + libndp için geliştirme dosyaları + + diff --git a/network/misc/libnl/actions.py b/network/misc/libnl/actions.py new file mode 100644 index 0000000000..d7192153cf --- /dev/null +++ b/network/misc/libnl/actions.py @@ -0,0 +1,22 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools + +def setup(): + autotools.configure() + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + pisitools.dodoc("COPYING", "ChangeLog") \ No newline at end of file diff --git a/network/misc/libnl/pspec.xml b/network/misc/libnl/pspec.xml new file mode 100644 index 0000000000..beddc165b2 --- /dev/null +++ b/network/misc/libnl/pspec.xml @@ -0,0 +1,71 @@ + + + + + libnl + http://people.suug.ch/~tgr/libnl + + PisiLinux Community + admins@pisilinux.org + + GPLv2 + library + A library for applications dealing with netlink sockets + libnl is a convenience library to simplify the usage of the Linux kernel's netlink sockets interface for network manipulation. + http://www.infradead.org/~tgr/libnl/files/libnl-3.2.24.tar.gz + + + + libnl + + /usr/lib + /usr/share/doc + /usr/share/man + /etc/libnl + /usr/sbin + + + + + libnl-devel + Development files for libnl + + libnl + + + /usr/include + /usr/lib/pkgconfig + + + + + + 2014-04-03 + 3.2.24 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2014-03-13 + 3.2.23 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2013-11-19 + 3.2.23 + Version bump + Richard de Bruin + richdb@pisilinux.org + + + 2012-10-14 + 3.2.13 + First release + PisiLinux Community + admins@pisilinux.org + + + diff --git a/network/misc/libnl/translations.xml b/network/misc/libnl/translations.xml new file mode 100644 index 0000000000..68c4e95a31 --- /dev/null +++ b/network/misc/libnl/translations.xml @@ -0,0 +1,13 @@ + + + + libnl + Netlink soketleri erişimi için bir kitaplığı + libnl Linux çekirdeğinin netlink soket arayüzünü ağ ile ilgili çeşitli işlemleri kolaylaştırmak için kullanan bir kitaplığıdır. + + + + libnl-devel + libnl için geliştirme dosyaları + + \ No newline at end of file diff --git a/network/misc/webkit-gtk2/actions.py b/network/misc/webkit-gtk2/actions.py new file mode 100644 index 0000000000..8dfed9b57a --- /dev/null +++ b/network/misc/webkit-gtk2/actions.py @@ -0,0 +1,47 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import get +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools + +shelltools.export("XDG_DATA_HOME", get.workDIR()) +pisitools.flags.replace("-ggdb3", "-g") + +paths = ["JavaScriptCore", "WebCore", "WebKit"] +docs = ["AUTHORS", "ChangeLog", "COPYING.LIB", "THANKS", \ + "LICENSE-LGPL-2", "LICENSE-LGPL-2.1", "LICENSE"] + +def setup(): + autotools.configure("\ + --disable-gtk-doc \ + --disable-silent-rules \ + --disable-webkit2 \ + --enable-dependency-tracking \ + --enable-introspection \ + --enable-video \ + --with-gnu-ld \ + --with-gtk=2.0 \ + ") + + pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("-j1 DESTDIR=%s" % get.installDIR()) + + pisitools.domove("/usr/share/gtk-doc/html", "/usr/share/doc/webkit-gtk2") + + pisitools.dodoc("NEWS") + shelltools.cd("Source") + for path in paths: + for doc in docs: + if shelltools.isFile("%s/%s" % (path, doc)): + pisitools.insinto("%s/%s/%s" % (get.docDIR(), get.srcNAME(), path), + "%s/%s" % (path, doc)) diff --git a/network/misc/webkit-gtk2/files/webkitgtk-2.4.8-gcc5.patch b/network/misc/webkit-gtk2/files/webkitgtk-2.4.8-gcc5.patch new file mode 100644 index 0000000000..73f6855e40 --- /dev/null +++ b/network/misc/webkit-gtk2/files/webkitgtk-2.4.8-gcc5.patch @@ -0,0 +1,33 @@ +diff -up webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4.gcc5 webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4 +--- webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4.gcc5 2015-01-07 10:45:43.000000000 +0100 ++++ webkitgtk-2.4.8/Source/autotools/CheckSystemAndBasicDependencies.m4 2015-02-18 13:09:57.359888184 +0100 +@@ -87,12 +87,12 @@ AC_SYS_LARGEFILE + c_compiler="unknown" + AC_LANG_PUSH([C]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 7) ++#if !(defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #error Not a supported GCC compiler + #endif + ])], [c_compiler="gcc"], []) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__clang__) && __clang_major__ >= 3 && __clang_minor__ >= 3) ++#if !(defined(__clang__) && (__apple_build_version__ >= 4250024 || (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))) + #error Not a supported Clang compiler + #endif + ])], [c_compiler="clang"], []) +@@ -106,12 +106,12 @@ fi + cxx_compiler="unknown" + AC_LANG_PUSH([C++]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__GNUG__) && defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 7) ++#if !(defined(__GNUG__) && defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) + #error Not a supported G++ compiler + #endif + ])], [cxx_compiler="g++"], []) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ +-#if !(defined(__clang__) && __clang_major__ >= 3 && __clang_minor__ >= 3) ++#if !(defined(__clang__) && (__apple_build_version__ >= 4250024 || (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))) + #error Not a supported Clang++ compiler + #endif + ])], [cxx_compiler="clang++"], []) diff --git a/network/misc/webkit-gtk2/files/webkitgtk-2.4.8-gmutexlocker.patch b/network/misc/webkit-gtk2/files/webkitgtk-2.4.8-gmutexlocker.patch new file mode 100644 index 0000000000..81455bdd7d --- /dev/null +++ b/network/misc/webkit-gtk2/files/webkitgtk-2.4.8-gmutexlocker.patch @@ -0,0 +1,281 @@ +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.gmutexlocker 2015-02-18 15:40:21.851816374 +0100 ++++ Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp 2015-02-18 15:45:58.560092191 +0100 +@@ -316,7 +316,7 @@ void MediaPlayerPrivateGStreamerBase::mu + #if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) && !USE(COORDINATED_GRAPHICS) + PassRefPtr MediaPlayerPrivateGStreamerBase::updateTexture(TextureMapper* textureMapper) + { +- GMutexLocker lock(m_bufferMutex); ++ WebCore::GMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return nullptr; + +@@ -366,7 +366,7 @@ void MediaPlayerPrivateGStreamerBase::tr + g_return_if_fail(GST_IS_BUFFER(buffer)); + + { +- GMutexLocker lock(m_bufferMutex); ++ WebCore::GMutexLocker lock(m_bufferMutex); + gst_buffer_replace(&m_buffer, buffer); + } + +@@ -398,7 +398,7 @@ void MediaPlayerPrivateGStreamerBase::pa + if (!m_player->visible()) + return; + +- GMutexLocker lock(m_bufferMutex); ++ WebCore::GMutexLocker lock(m_bufferMutex); + if (!m_buffer) + return; + +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp.gmutexlocker 2015-02-18 15:16:11.995228731 +0100 ++++ Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp 2015-02-18 15:45:42.686843477 +0100 +@@ -118,7 +118,7 @@ static gboolean webkitVideoSinkTimeoutCa + WebKitVideoSink* sink = reinterpret_cast(data); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + GstBuffer* buffer = priv->buffer; + priv->buffer = 0; + priv->timeoutId = 0; +@@ -140,7 +140,7 @@ static GstFlowReturn webkitVideoSinkRend + WebKitVideoSink* sink = WEBKIT_VIDEO_SINK(baseSink); + WebKitVideoSinkPrivate* priv = sink->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + + if (priv->unlocked) + return GST_FLOW_OK; +@@ -279,7 +279,7 @@ static void webkitVideoSinkGetProperty(G + + static void unlockBufferMutex(WebKitVideoSinkPrivate* priv) + { +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + + if (priv->buffer) { + gst_buffer_unref(priv->buffer); +@@ -305,7 +305,7 @@ static gboolean webkitVideoSinkUnlockSto + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + + { +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + } + +@@ -330,7 +330,7 @@ static gboolean webkitVideoSinkStart(Gst + { + WebKitVideoSinkPrivate* priv = WEBKIT_VIDEO_SINK(baseSink)->priv; + +- GMutexLocker lock(priv->bufferMutex); ++ WebCore::GMutexLocker lock(priv->bufferMutex); + priv->unlocked = false; + return TRUE; + } +diff -up webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.gmutexlocker webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp +--- webkitgtk-2.4.8/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp.gmutexlocker 2015-02-18 15:16:40.954678407 +0100 ++++ Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp 2015-02-18 15:45:19.567481225 +0100 +@@ -346,7 +346,7 @@ static void webKitWebSrcSetProperty(GObj + + switch (propID) { + case PROP_IRADIO_MODE: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->iradioMode = g_value_get_boolean(value); + break; + } +@@ -364,7 +364,7 @@ static void webKitWebSrcGetProperty(GObj + WebKitWebSrc* src = WEBKIT_WEB_SRC(object); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (propID) { + case PROP_IRADIO_MODE: + g_value_set_boolean(value, priv->iradioMode); +@@ -417,7 +417,7 @@ static gboolean webKitWebSrcStop(WebKitW + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + bool seeking = priv->seekID; + +@@ -476,7 +476,7 @@ static gboolean webKitWebSrcStart(WebKit + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->startID = 0; + priv->corsAccessCheck = CORSNoCheck; +@@ -573,7 +573,7 @@ static GstStateChangeReturn webKitWebSrc + return ret; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT(src, "READY->PAUSED"); +@@ -604,7 +604,7 @@ static gboolean webKitWebSrcQueryWithPar + gst_query_parse_duration(query, &format, NULL); + + GST_DEBUG_OBJECT(src, "duration query in format %s", gst_format_get_name(format)); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (format == GST_FORMAT_BYTES && src->priv->size > 0) { + gst_query_set_duration(query, format, src->priv->size); + result = TRUE; +@@ -612,7 +612,7 @@ static gboolean webKitWebSrcQueryWithPar + break; + } + case GST_QUERY_URI: { +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + gst_query_set_uri(query, src->priv->uri); + result = TRUE; + break; +@@ -653,7 +653,7 @@ static gchar* webKitWebSrcGetUri(GstURIH + WebKitWebSrc* src = WEBKIT_WEB_SRC(handler); + gchar* ret; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + ret = g_strdup(src->priv->uri); + return ret; + } +@@ -668,7 +668,7 @@ static gboolean webKitWebSrcSetUri(GstUR + return FALSE; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + g_free(priv->uri); + priv->uri = 0; +@@ -704,7 +704,7 @@ static gboolean webKitWebSrcNeedDataMain + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->needDataID) + return FALSE; +@@ -725,7 +725,7 @@ static void webKitWebSrcNeedDataCb(GstAp + + GST_DEBUG_OBJECT(src, "Need more data: %u", length); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->needDataID || !priv->paused) { + return; + } +@@ -739,7 +739,7 @@ static gboolean webKitWebSrcEnoughDataMa + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->enoughDataID) + return FALSE; +@@ -760,7 +760,7 @@ static void webKitWebSrcEnoughDataCb(Gst + + GST_DEBUG_OBJECT(src, "Have enough data"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (priv->enoughDataID || priv->paused) { + return; + } +@@ -774,7 +774,7 @@ static gboolean webKitWebSrcSeekMainCb(W + + ASSERT(isMainThread()); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + // already stopped + if (!priv->seekID) + return FALSE; +@@ -792,7 +792,7 @@ static gboolean webKitWebSrcSeekDataCb(G + WebKitWebSrcPrivate* priv = src->priv; + + GST_DEBUG_OBJECT(src, "Seeking to offset: %" G_GUINT64_FORMAT, offset); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (offset == priv->offset && priv->requestedOffset == priv->offset) + return TRUE; + +@@ -811,7 +811,7 @@ static gboolean webKitWebSrcSeekDataCb(G + void webKitWebSrcSetMediaPlayer(WebKitWebSrc* src, WebCore::MediaPlayer* player) + { + ASSERT(player); +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + src->priv->player = player; + } + +@@ -841,7 +841,7 @@ char* StreamingClient::createReadBuffer( + + mapGstBuffer(buffer); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + priv->buffer = adoptGRef(buffer); + locker.unlock(); + +@@ -867,7 +867,7 @@ void StreamingClient::handleResponseRece + return; + } + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + priv->corsAccessCheck = corsAccessCheck; + +@@ -966,7 +966,7 @@ void StreamingClient::handleDataReceived + WebKitWebSrc* src = WEBKIT_WEB_SRC(m_src); + WebKitWebSrcPrivate* priv = src->priv; + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + + GST_LOG_OBJECT(src, "Have %lld bytes of data", priv->buffer ? static_cast(gst_buffer_get_size(priv->buffer.get())) : length); + +@@ -1035,7 +1035,7 @@ void StreamingClient::handleNotifyFinish + + GST_DEBUG_OBJECT(src, "Have EOS"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + if (!priv->seekID) { + locker.unlock(); + gst_app_src_end_of_stream(priv->appsrc); +@@ -1194,7 +1194,7 @@ void ResourceHandleStreamingClient::wasB + + GST_ERROR_OBJECT(src, "Request was blocked"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + +@@ -1208,7 +1208,7 @@ void ResourceHandleStreamingClient::cann + + GST_ERROR_OBJECT(src, "Cannot show URL"); + +- GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); ++ WebCore::GMutexLocker locker(GST_OBJECT_GET_LOCK(src)); + uri.reset(g_strdup(src->priv->uri)); + locker.unlock(); + +diff -up webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h.gmutexlocker webkitgtk-2.4.8/Source/WTF/wtf/gobject/GMutexLocker.h diff --git a/network/misc/webkit-gtk2/pspec.xml b/network/misc/webkit-gtk2/pspec.xml new file mode 100644 index 0000000000..90003d9c83 --- /dev/null +++ b/network/misc/webkit-gtk2/pspec.xml @@ -0,0 +1,174 @@ + + + + + webkit-gtk2 + http://webkitgtk.org + + PisiLinux Community + admins@pisilinux.org + + LGPLv2 + LGPLv2.1 + BSD + library + An opensource web browser engine for GTK+ applications + The GTK+ port of WebKit is intended to provide a browser component primarily for users of the portable GTK+ UI toolkit on platforms like Linux. + http://www.webkitgtk.org/releases/webkitgtk-2.4.8.tar.xz + + mesa-devel + gtk-doc + atk-devel + zlib-devel + glib2-devel + gtk2-devel + ruby-devel + webp-devel + cairo-devel + icu4c-devel + libXt-devel + pango-devel + enchant-devel + sqlite-devel + geoclue-devel + libsoup-devel + fontconfig-devel + libxslt-devel + harfbuzz-devel + libsecret-devel + gdk-pixbuf-devel + libXcomposite-devel + libjpeg-turbo-devel + gstreamer-next-devel + gobject-introspection-devel + gst-plugins-base-next-devel + which + icon-theme-hicolor + + + + webkitgtk-2.4.8-gmutexlocker.patch + + + + + webkit-gtk2 + + atk + zlib + glib2 + gtk2 + mesa + webp + cairo + icu4c + libXt + libX11 + libgcc + libpng + libxml2 + pango + sqlite + enchant + libsoup + libxslt + harfbuzz + freetype + libsecret + fontconfig + gdk-pixbuf + libXdamage + libXrender + libXcomposite + libjpeg-turbo + gstreamer-next + gst-plugins-base-next + + + /usr/lib + /usr/share + /usr/share/doc + + + + + webkit-gtk2-devel + library + data:doc + Development files for GTK+ port of WebKit + + libgcc + gtk2-devel + glib2-devel + webkit-gtk2 + libsoup-devel + + + /usr/bin + /usr/include + /usr/lib/pkgconfig + /usr/share/doc/webkit-gtk/Web* + /usr/share/doc/webkit-gtk2/html + /usr/share/doc/webkit-gtk/JavaScriptCore + + + + + + 2015-04-07 + 2.4.8 + Version Bump + Ayhan Yalçınsoy + ayhanyalcinsoy@pisilinux.org + + + 2015-01-16 + 2.4.8 + Version Bump + Rebuild. + Osman Erkan + osman.erkan@pisilinux.org + + + 2014-05-24 + 2.4.1 + Rebuild. + Kamil Atlı + suvarice@gmail.com + + + 2014-04-21 + 2.4.1 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2013-10-14 + 1.10.2 + Rebuild for icu4c + PisiLinux Community + admins@pisilinux.org + + + 2013-07-29 + 1.10.2 + Dep Fixed + PisiLinux Community + admins@pisilinux.org + + + 2013-02-25 + 1.10.2 + Version bump. + Marcin Bojara + marcin@pisilinux.org + + + 2012-11-23 + 1.10.1 + First release + Marcin Bojara + marcin@pisilinux.org + + + diff --git a/office/docbook/component.xml b/office/docbook/component.xml new file mode 100644 index 0000000000..b70cd087f6 --- /dev/null +++ b/office/docbook/component.xml @@ -0,0 +1,3 @@ + + office.docbook + diff --git a/office/docbook/itstool/actions.py b/office/docbook/itstool/actions.py new file mode 100644 index 0000000000..5d45ff97eb --- /dev/null +++ b/office/docbook/itstool/actions.py @@ -0,0 +1,16 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/copyleft/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import get + +def setup(): + autotools.configure() + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) diff --git a/office/docbook/itstool/pspec.xml b/office/docbook/itstool/pspec.xml new file mode 100644 index 0000000000..ebfa577345 --- /dev/null +++ b/office/docbook/itstool/pspec.xml @@ -0,0 +1,48 @@ + + + + + itstool + http://itstool.org/ + + PisiLinux Community + admins@pisilinux.org + + GPLv3 + XML to PO and back again + XML to PO and back again + http://files.itstool.org/itstool/itstool-2.0.2.tar.bz2 + + + + + itstool + + /usr + + + + + + 2014-05-18 + 2.0.2 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-01-26 + 2.0.2 + Version bump. + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-09-12 + 1.2.0 + First release + Yusuf Aydemir + yusuf.aydemir@pisilinux.org + + + diff --git a/office/docbook/openjade/actions.py b/office/docbook/openjade/actions.py new file mode 100644 index 0000000000..c14529829f --- /dev/null +++ b/office/docbook/openjade/actions.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import libtools +from pisi.actionsapi import pisitools +from pisi.actionsapi import shelltools +from pisi.actionsapi import get + +docname = get.srcNAME() + +def setup(): + shelltools.export("ALLOWED_FLAGS", "-O -O1 -O2 -pipe -g") + shelltools.sym("config/configure.in", "configure.in") + shelltools.export("SGML_PREFIX", "/usr/share/sgml") + autotools.configure("--enable-http \ + --enable-default-catalog=/etc/sgml/catalog \ + --enable-default-search-path=/usr/share/sgml:/usr/share/xml \ + --disable-static \ + --enable-splibdir=/usr/lib \ + --libdir=/usr/lib \ + --datadir=/usr/share/sgml/%s" % docname) + +def build(): + autotools.make() + +def install(): + pisitools.dodir("/usr") + pisitools.dodir("/usr/lib") + + autotools.rawInstall("prefix=%s/usr \ + libdir=%s/usr/lib \ + datadir=%s/usr/share/sgml/%s " \ + % (get.installDIR(), \ + get.installDIR(), \ + get.installDIR(), \ + docname)) + + pisitools.dosym("openjade", "/usr/bin/jade") + pisitools.dosym("onsgmls", "/usr/bin/nsgmls") + pisitools.dosym("osgmlnorm", "/usr/bin/sgmlnorm") + pisitools.dosym("ospam", "/usr/bin/spam") + pisitools.dosym("ospent", "/usr/bin/spent") + pisitools.dosym("osx", "/usr/bin/sgml2xml") + + pisitools.insinto("/usr/share/sgml/%s" % docname, "dsssl/builtins.dsl") + for i in ["dsssl/dsssl.dtd", "dsssl/style-sheet.dtd", "dsssl/fot.dtd"]: + pisitools.insinto("/usr/share/sgml/%s/dsssl" % docname, i) + pisitools.insinto("/usr/share/sgml/%s/pubtext" % docname, "pubtext/*") + + pisitools.dodoc("COPYING", "NEWS", "README", "VERSION") + pisitools.dohtml("doc/*.htm") + + pisitools.insinto("/usr/share/doc/%s/jadedoc" % get.srcNAME(), "jadedoc/*.htm") + pisitools.insinto("/usr/share/doc/%s/jadedoc/images" % get.srcNAME(), "jadedoc/images/*") + + diff --git a/office/docbook/openjade/comar/package.py b/office/docbook/openjade/comar/package.py new file mode 100644 index 0000000000..dc5c51dde8 --- /dev/null +++ b/office/docbook/openjade/comar/package.py @@ -0,0 +1,19 @@ +#!/usr/bin/python + +import os + +def postInstall(fromVersion, fromRelease, toVersion, toRelease): + os.system("/usr/bin/install-catalog --add /etc/sgml/openjade.cat \ + /usr/share/sgml/openjade/catalog") + os.system("/usr/bin/install-catalog --add /etc/sgml/openjade.cat \ + /usr/share/sgml/openjade/dsssl/catalog") + os.system("/usr/bin/install-catalog --add /etc/sgml/sgml-docbook.cat \ + /etc/sgml/openjade.cat") + +def preRemove(): + os.system("/usr/bin/install-catalog --remove /etc/sgml/openjade.cat \ + /usr/share/sgml/openjade/catalog") + os.system("/usr/bin/install-catalog --remove /etc/sgml/openjade.cat \ + /usr/share/sgml/openjade/dsssl/catalog") + os.system("/usr/bin/install-catalog --remove /etc/sgml/sgml-docbook.cat \ + /etc/sgml/openjade.cat") diff --git a/office/docbook/openjade/files/openjade-1.3.2-deplibs.patch b/office/docbook/openjade/files/openjade-1.3.2-deplibs.patch new file mode 100644 index 0000000000..3466ad7d85 --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2-deplibs.patch @@ -0,0 +1,40 @@ +diff -urNp openjade-1.3.2/grove/Makefile.sub devel/grove/Makefile.sub +--- openjade-1.3.2/grove/Makefile.sub 2002-10-20 23:47:24.000000000 +0200 ++++ devel/grove/Makefile.sub 2007-07-23 15:39:23.000000000 +0200 +@@ -1,4 +1,4 @@ + LTVERSION=0:1:0 + LIB=ogrove +-DEPLIBS=-lm ++DEPLIBS=-lm -lstdc++ + OBJS=Node.o LocNode.o +diff -urNp openjade-1.3.2/spgrove/Makefile.sub devel/spgrove/Makefile.sub +--- openjade-1.3.2/spgrove/Makefile.sub 2002-11-15 23:46:50.000000000 +0100 ++++ devel/spgrove/Makefile.sub 2007-07-23 16:06:13.000000000 +0200 +@@ -1,9 +1,10 @@ + LTVERSION=0:1:0 + LIB=ospgrove + INCLUDE=-I$(srcdir)/../grove +-DEPLIBS=-lm -L$(TOP)/grove -L$(TOP)/grove/.libs \ ++DEPLIBS=$(TOP)/grove/libogrove.la \ ++ -lm -losp -L$(TOP)/grove/.libs \ + -L$(TOP)/lib -L$(TOP)/lib/.libs \ +- $(LIB_THREADS) ++ $(LIB_THREADS) -lstdc++ + OBJS=GroveApp.o GroveBuilder.o SdNode.o + GENSRCS=grove_inst.cxx + +diff -urNp openjade-1.3.2/style/Makefile.sub devel/style/Makefile.sub +--- openjade-1.3.2/style/Makefile.sub 2003-04-18 19:18:10.000000000 +0200 ++++ devel/style/Makefile.sub 2007-07-23 16:08:26.000000000 +0200 +@@ -1,8 +1,8 @@ + LTVERSION=0:1:0 + LIB=ostyle +-DEPLIBS=-lm -L$(TOP)/grove -L$(TOP)/grove/.libs \ +- -L$(TOP)/lib -L$(TOP)/lib/.libs \ +- -L$(TOP)/spgrove -L$(TOP)/spgrove/.libs ++DEPLIBS=$(TOP)/grove/libogrove.la $(TOP)/spgrove/libospgrove.la \ ++ -lm -losp -L$(TOP)/lib -L$(TOP)/lib/.libs -L$(TOP)/grove/.libs \ ++ -L$(TOP)/spgrove -L$(TOP)/spgrove/.libs -lstdc++ + OBJS=LangObj.o \ + Collector.o \ + DssslApp.o \ diff --git a/office/docbook/openjade/files/openjade-1.3.2-ldflags.patch b/office/docbook/openjade/files/openjade-1.3.2-ldflags.patch new file mode 100644 index 0000000000..abe17545d6 --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2-ldflags.patch @@ -0,0 +1,13 @@ +Index: openjade-1.3.2/jade/Makefile.sub +=================================================================== +--- openjade-1.3.2.orig/jade/Makefile.sub ++++ openjade-1.3.2/jade/Makefile.sub +@@ -4,7 +4,7 @@ OBJS=jade.o SgmlFOTBuilder.o RtfFOTBuild + INCLUDE=-I$(srcdir)/../grove -I$(srcdir)/../spgrove -I$(srcdir)/../style + # XLIBS=../style/libostyle.a ../spgrove/libospgrove.a ../grove/libogrove.a \ + # ../lib/libosp.a +-XLIBS=../style/libostyle.a ../spgrove/libospgrove.a ../grove/libogrove.a $(splibdir)/libosp.a ++XLIBS=../style/libostyle.a ../grove/libogrove.a ../spgrove/libospgrove.a $(splibdir)/libosp.so + GENSRCS=JadeMessages.h HtmlMessages.h RtfMessages.h TeXMessages.h \ + HtmlFOTBuilder_inst.cxx RtfFOTBuilder_inst.cxx TeXFOTBuilder_inst.cxx \ + TransformFOTBuilder_inst.cxx MifMessages.h MifFOTBuilder_inst.cxx diff --git a/office/docbook/openjade/files/openjade-1.3.2-lib64-fix.patch b/office/docbook/openjade/files/openjade-1.3.2-lib64-fix.patch new file mode 100644 index 0000000000..773e9b8087 --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2-lib64-fix.patch @@ -0,0 +1,24 @@ +See https://bugs.gentoo.org/show_bug.cgi?id=235610 + +--- config/configure.in ++++ config/configure.in +@@ -53,7 +53,7 @@ + esac + # On PPC64 libosp is to be found in /usr/lib64; thus + # fall back to this directory +-test -d ${osplibdir}64 && osplibdir=${osplibdir}64 ++test -f ${osplibdir}64/libosp.la && osplibdir=${osplibdir}64 + AC_MSG_CHECKING(location of OpenSP Library) + AC_ARG_ENABLE(splibdir, + [ --enable-splibdir=pathlist +--- configure ++++ configure +@@ -1753,7 +1753,7 @@ + esac + # On PPC64 libosp is to be found in /usr/lib64; thus + # fall back to this directory +-test -d ${osplibdir}64 && osplibdir=${osplibdir}64 ++test -f ${osplibdir}64/libosp.la && osplibdir=${osplibdir}64 + echo "$as_me:$LINENO: checking location of OpenSP Library" >&5 + echo $ECHO_N "checking location of OpenSP Library... $ECHO_C" >&6 + # Check whether --enable-splibdir or --disable-splibdir was given. diff --git a/office/docbook/openjade/files/openjade-1.3.2-msggen.pl.patch b/office/docbook/openjade/files/openjade-1.3.2-msggen.pl.patch new file mode 100644 index 0000000000..1afe68b800 --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2-msggen.pl.patch @@ -0,0 +1,32 @@ +Use Getopt::Std in place of getopts.pl. +https://bugs.gentoo.org/show_bug.cgi?id=420083 + +--- a/msggen.pl ++++ b/msggen.pl +@@ -4,6 +4,7 @@ + # See the file COPYING for copying permission. + + use POSIX; ++use Getopt::Std; + + # Package and version. + $package = 'openjade'; +@@ -18,8 +19,7 @@ + undef $opt_l; + undef $opt_p; + undef $opt_t; +-do 'getopts.pl'; +-&Getopts('l:p:t:'); ++getopts('l:p:t:'); + $module = $opt_l; + $pot_file = $opt_p; + +@@ -72,7 +72,7 @@ + else { + $field[0] =~ /^[IWQXE][0-9]$/ || &error("invalid first field");; + $type[$num] = substr($field[0], 0, 1); +- $argc = int(substr($field[0], 1, 1)); ++ $argc = substr($field[0], 1, 1); + } + $nargs[$num] = $argc; + $field[1] =~ /^[a-zA-Z_][a-zA-Z0-9_]+$/ || &error("invalid tag"); diff --git a/office/docbook/openjade/files/openjade-1.3.2-respect-ldflags.patch b/office/docbook/openjade/files/openjade-1.3.2-respect-ldflags.patch new file mode 100644 index 0000000000..51bd0b27dd --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2-respect-ldflags.patch @@ -0,0 +1,12 @@ +diff -ru a/Makefile.lib.in b/Makefile.lib.in +--- a/Makefile.lib.in 2002-01-22 05:57:53.000000000 -0600 ++++ b/Makefile.lib.in 2009-01-04 16:15:41.000000000 -0600 +@@ -23,7 +23,7 @@ + echo 'LT_OBJS='`echo $(OBJS)|sed 's/\.o/.lo/g'` >Makefile.lt + + lib$(LIB).la: $(LT_OBJS) +- $(LIBTOOL) --mode=link $(CC) $(LINKFLAGS) -o lib$(LIB).la $(LT_OBJS) \ ++ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(LINKFLAGS) -o lib$(LIB).la $(LT_OBJS) \ + -rpath $(libdir) -version-info $(LTVERSION) $(DEPLIBS) + + install: diff --git a/office/docbook/openjade/files/openjade-1.3.2.catalog b/office/docbook/openjade/files/openjade-1.3.2.catalog new file mode 100644 index 0000000000..818af59205 --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2.catalog @@ -0,0 +1 @@ +SYSTEM "builtins.dsl" "builtins.dsl" diff --git a/office/docbook/openjade/files/openjade-1.3.2.dsssl-catalog b/office/docbook/openjade/files/openjade-1.3.2.dsssl-catalog new file mode 100644 index 0000000000..11bc0425af --- /dev/null +++ b/office/docbook/openjade/files/openjade-1.3.2.dsssl-catalog @@ -0,0 +1,4 @@ +PUBLIC "-//James Clark//DTD DSSSL Flow Object Tree//EN" "fot.dtd" +PUBLIC "ISO/IEC 10179:1996//DTD DSSSL Architecture//EN" "dsssl.dtd" +PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" "style-sheet.dtd" +PUBLIC "-//OpenJade//DTD DSSSL Style Sheet//EN" "style-sheet.dtd" diff --git a/office/docbook/openjade/pspec.xml b/office/docbook/openjade/pspec.xml new file mode 100644 index 0000000000..25b64a7797 --- /dev/null +++ b/office/docbook/openjade/pspec.xml @@ -0,0 +1,75 @@ + + + + + openjade + http://openjade.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + as-is + app:console + An implementation of DSSSL + OpenJade is an implementation of Document Style Semantics and Specification Language (DSSSL), a style language to format Standard Generalized Markup Language (SGML) or Extensible Markup Language (XML) documents. + http://downloads.sourceforge.net/openjade/openjade-1.3.2.tar.gz + + sgml-common + opensp-devel + libgcc + + + + openjade-1.3.2-ldflags.patch + openjade-1.3.2-respect-ldflags.patch + openjade-1.3.2-msggen.pl.patch + + + + + + openjade + + sgml-common + opensp + libgcc + + + /usr/bin + /usr/lib + /usr/share/doc/openjade + /usr/share/sgml + + + openjade-1.3.2.dsssl-catalog + openjade-1.3.2.catalog + + + System.Package + + + + + + 2014-05-18 + 1.3.2 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-02-01 + 1.3.2 + Rebuild. + Alihan Öztürk + alihan@pisilinux.org + + + 2012-10-18 + 1.3.2 + First release + Marcin Bojara + marcin@pisilinux.org + + + diff --git a/office/docbook/openjade/translations.xml b/office/docbook/openjade/translations.xml new file mode 100644 index 0000000000..2fe3519cfd --- /dev/null +++ b/office/docbook/openjade/translations.xml @@ -0,0 +1,8 @@ + + + + openjade + Bir DSSSL uyarlaması + OpenJade SGML ya da XML belgelerinin biçimlendirilmesine yarayan bir biçem lisanı olan DSSSL'nin bir uyarlamasıdır. + + diff --git a/office/docbook/opensp/actions.py b/office/docbook/opensp/actions.py new file mode 100644 index 0000000000..5c8f7e3dd7 --- /dev/null +++ b/office/docbook/opensp/actions.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import get +from pisi.actionsapi import libtools +from pisi.actionsapi import shelltools +from pisi.actionsapi import pisitools + +WorkDir = "OpenSP-%s" % get.srcVERSION() + +def setup(): + libtools.gnuconfig_update() + shelltools.export("ALLOWED_FLAGS", "-O -O1 -O2 -pipe -g") + autotools.configure("--enable-nls \ + --enable-http \ + --disable-doc-build \ + --disable-static \ + --enable-default-catalog=/etc/sgml/catalog \ + --enable-default-search-path=/usr/share/sgml:/usr/share/xml \ + --datadir=/usr/share/sgml") + +def build(): + autotools.make("pkgdocdir=/usr/share/doc/%s" % get.srcNAME()) + +def install(): + autotools.rawInstall('DESTDIR="%s" pkgdocdir=/usr/share/doc/%s' % (get.installDIR(), get.srcNAME())) + + pisitools.dodoc("AUTHORS", "BUGS", "ChangeLog", "NEWS", "README") + pisitools.domove("/usr/share/sgml/locale", "/usr/share") + diff --git a/office/docbook/opensp/files/opensp-1.5-gcc34.patch b/office/docbook/opensp/files/opensp-1.5-gcc34.patch new file mode 100644 index 0000000000..60ee560853 --- /dev/null +++ b/office/docbook/opensp/files/opensp-1.5-gcc34.patch @@ -0,0 +1,10 @@ +--- include/RangeMap.h~ 2004-04-22 20:34:13.729541096 +0300 ++++ include/RangeMap.h 2004-04-22 20:31:48.473049702 +0300 +@@ -8,6 +8,7 @@ + #include "Boolean.h" + #include "ISet.h" + #include "types.h" ++#include "constant.h" + #include + + #ifdef SP_NAMESPACE diff --git a/office/docbook/opensp/files/opensp-sigsegv.patch b/office/docbook/opensp/files/opensp-sigsegv.patch new file mode 100644 index 0000000000..69bd3a94ec --- /dev/null +++ b/office/docbook/opensp/files/opensp-sigsegv.patch @@ -0,0 +1,20 @@ +--- OpenSP-1.5.2/lib/ExtendEntityManager.cxx 2005-11-05 10:05:20.000000000 +0100 ++++ OpenSP-1.5.2.new/lib/ExtendEntityManager.cxx 2007-06-21 12:56:26.000000000 +0200 +@@ -1238,7 +1238,8 @@ StorageObjectSpec::StorageObjectSpec() + } + + StorageObjectSpec::StorageObjectSpec(const StorageObjectSpec& x) +-: codingSystemName(x.codingSystemName), ++: storageManager(x.storageManager), ++ codingSystemName(x.codingSystemName), + codingSystem(x.codingSystem), + specId(x.specId), + baseId(x.baseId), +@@ -1253,6 +1254,7 @@ StorageObjectSpec::StorageObjectSpec(con + StorageObjectSpec& StorageObjectSpec::operator=(const StorageObjectSpec& x) + { + if (this != &x) { ++ storageManager = x.storageManager; + codingSystemName = x.codingSystemName; + codingSystem = x.codingSystem; + specId = x.specId; diff --git a/office/docbook/opensp/pspec.xml b/office/docbook/opensp/pspec.xml new file mode 100644 index 0000000000..c69fe8eb47 --- /dev/null +++ b/office/docbook/opensp/pspec.xml @@ -0,0 +1,75 @@ + + + + + opensp + http://openjade.sourceforge.net + + PisiLinux Community + admins@pisilinux.org + + as-is + app:console + A SGML parsing and entity management toolkit + OpenSP is a free, object-oriented toolkit for Standard Generalized Markup Language (SGML) parsing and entity management maintained by the OpenJade project. + mirrors://sourceforge/openjade/OpenSP-1.5.2.tar.gz + + docbook-xml + libgcc + + + opensp-1.5-gcc34.patch + opensp-sigsegv.patch + + + + + opensp + + libgcc + + + /usr/bin + /usr/share/doc/opensp + /usr/share/man + /usr/lib + /usr/share/locale + /usr/share/sgml + + + + + opensp-devel + Development files for opensp + + opensp + + + /usr/include + + + + + + 2014-05-18 + 1.5.2 + Rebuild. + Serdar Soytetir + kaptan@pisilinux.org + + + 2014-02-01 + 1.5.2 + Rebuild + Alihan Öztürk + alihan@pisilinux.org + + + 2010-10-13 + 1.5.2 + First release + Pisi Linux Admins + admins@pisilinux.org + + + diff --git a/office/docbook/opensp/translations.xml b/office/docbook/opensp/translations.xml new file mode 100644 index 0000000000..f721b7d231 --- /dev/null +++ b/office/docbook/opensp/translations.xml @@ -0,0 +1,13 @@ + + + + opensp + SGML ayrıştırma araç seti + OpenSP SGML sözdizimsel ayrıştırma ve içerik yönetimi için nesne-odaklı bir araç setidir ve OpenJade projesinin bir parçasıdır. + + + + opensp-devel + opensp için geliştirme dosyaları + + diff --git a/office/misc/component.xml b/office/misc/component.xml new file mode 100644 index 0000000000..9e752cd532 --- /dev/null +++ b/office/misc/component.xml @@ -0,0 +1,3 @@ + + office.misc + diff --git a/office/misc/doxygen/actions.py b/office/misc/doxygen/actions.py new file mode 100644 index 0000000000..5a2720be33 --- /dev/null +++ b/office/misc/doxygen/actions.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +def setup(): + # --shared and --release are default parameters, however we just write them + # to down to avoid confusing wheter it's a static/shared or release/debug + # package at the first look :) + autotools.rawConfigure("--shared \ + --release \ + --dot dot \ + --prefix /usr") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + #pisitools.doman("doc/doxywizard.1") + + # The makefile included is there to generate the html files + # The user itself should execute it + pisitools.insinto(get.docDIR() + "/doxygen" , "examples") + + pisitools.dodoc("LANGUAGE.HOWTO", "LICENSE", "README*", "VERSION") diff --git a/office/misc/doxygen/files/doxywizard.desktop b/office/misc/doxygen/files/doxywizard.desktop new file mode 100644 index 0000000000..f3d0a4ffcb --- /dev/null +++ b/office/misc/doxygen/files/doxywizard.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=Application +Exec=doxywizard +Name=Doxygen Wizard +Icon=doxywizard +Categories=Qt;Development; diff --git a/office/misc/doxygen/files/doxywizard.png b/office/misc/doxygen/files/doxywizard.png new file mode 100644 index 0000000000..1ba163f7f7 Binary files /dev/null and b/office/misc/doxygen/files/doxywizard.png differ diff --git a/office/misc/doxygen/files/fedora/doxygen-1.8.3-multilib.patch b/office/misc/doxygen/files/fedora/doxygen-1.8.3-multilib.patch new file mode 100644 index 0000000000..7cb1c9255c --- /dev/null +++ b/office/misc/doxygen/files/fedora/doxygen-1.8.3-multilib.patch @@ -0,0 +1,43 @@ +diff -up doxygen-1.8.3/src/htmlgen.cpp.multilib doxygen-1.8.3/src/htmlgen.cpp +--- doxygen-1.8.3/src/htmlgen.cpp.multilib 2012-12-25 11:27:52.000000000 +0100 ++++ doxygen-1.8.3/src/htmlgen.cpp 2013-01-02 17:08:57.559028518 +0100 +@@ -125,6 +125,17 @@ static unsigned char tab_b_png[36] = + 205, 207, 209, 211, 213, 217, 219, 206, 188 + }; + ++static unsigned char nav_g_png[95] = { ++0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, ++0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, ++0x08, 0x06, 0x00, 0x00, 0x00, 0x02, 0x10, 0xf4, 0x31, 0x00, 0x00, 0x00, ++0x26, 0x49, 0x44, 0x41, 0x54, 0x78, 0x01, 0xed, 0xdd, 0x31, 0x0d, 0x00, ++0x00, 0x08, 0x03, 0xc1, 0x4f, 0x48, 0x17, 0x66, 0x84, 0xe1, 0x5f, 0x0d, ++0x2d, 0x3e, 0x7e, 0xb8, 0xe5, 0x4d, 0x20, 0x69, 0xcb, 0x4d, 0xe8, 0xc0, ++0x83, 0x07, 0x07, 0x0f, 0x53, 0x00, 0xbd, 0xfc, 0x82, 0x3c, 0x05, 0x00, ++0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, ++}; ++ + // hovering tab background luma + static unsigned char tab_h_png[36] = + { +@@ -824,6 +835,7 @@ static ColoredImgDataItem colored_tab_da + { "tab_s.png", 1, 36, tab_s_png, 0 }, + { "nav_h.png", 1, 12, header_png, 0 }, + { "nav_f.png", 1, 56, func_header_png, 0 }, ++ { "nav_g.png", 1, 6, nav_g_png, 0 }, + { "bc_s.png", 8, 30, bc_s_png, bc_s_a_png }, + { "doxygen.png", 104,31, doxygen_png, doxygen_a_png }, + { "closed.png", 9, 9, closed_png, closed_a_png }, +@@ -1502,13 +1514,6 @@ void HtmlGenerator::writeTabData() + Doxygen::indexList->addStyleSheetFile("tabs.css"); + QCString dname=Config_getString("HTML_OUTPUT"); + writeColoredImgData(dname,colored_tab_data); +- +- { +- unsigned char shadow[6] = { 5, 5, 5, 5, 5, 5 }; +- unsigned char shadow_alpha[6] = { 80, 60, 40, 20, 10, 0 }; +- ColoredImage img(1,6,shadow,shadow_alpha,0,0,100); +- img.save(dname+"/nav_g.png"); +- } + } + + void HtmlGenerator::writeSearchData(const char *dir) diff --git a/office/misc/doxygen/files/fedora/doxygen-1.8.5-html_timestamp_default_false.patch b/office/misc/doxygen/files/fedora/doxygen-1.8.5-html_timestamp_default_false.patch new file mode 100644 index 0000000000..fd90b4d95a --- /dev/null +++ b/office/misc/doxygen/files/fedora/doxygen-1.8.5-html_timestamp_default_false.patch @@ -0,0 +1,12 @@ +diff -up doxygen-1.8.5/src/configoptions.cpp.html_timestamp_default_false doxygen-1.8.5/src/configoptions.cpp +--- doxygen-1.8.5/src/configoptions.cpp.html_timestamp_default_false 2013-08-26 16:07:23.000000000 +0200 ++++ doxygen-1.8.5/src/configoptions.cpp 2013-08-26 18:31:40.000000000 +0200 +@@ -1499,7 +1499,7 @@ void addConfigOptions(Config *cfg) + "to NO can help when comparing the output of multiple runs.\n" + "The default value is: YES.\n" + "This tag requires that the tag GENERATE_HTML is set to YES.", +- TRUE ++ FALSE + ); + cb->addDependency("GENERATE_HTML"); + //---- diff --git a/office/misc/doxygen/files/fedora/doxygen-1.8.6-config.patch b/office/misc/doxygen/files/fedora/doxygen-1.8.6-config.patch new file mode 100644 index 0000000000..c0b205571c --- /dev/null +++ b/office/misc/doxygen/files/fedora/doxygen-1.8.6-config.patch @@ -0,0 +1,78 @@ +diff -up doxygen-1.8.6/addon/doxywizard/Makefile.in.config doxygen-1.8.6/addon/doxywizard/Makefile.in +--- doxygen-1.8.6/addon/doxywizard/Makefile.in.config 2013-12-26 12:17:57.281368574 -0700 ++++ doxygen-1.8.6/addon/doxywizard/Makefile.in 2013-12-26 12:20:44.673513404 -0700 +@@ -10,7 +10,6 @@ + # See the GNU General Public License for more details. + # + +-QMAKE=$(QTDIR)/bin/qmake $(MKSPECS) + INCBUFSIZE=$(PYTHON) ../../src/increasebuffer.py + + all: Makefile.doxywizard +diff -up doxygen-1.8.6/configure.config doxygen-1.8.6/configure +--- doxygen-1.8.6/configure.config 2013-12-24 09:14:46.000000000 -0700 ++++ doxygen-1.8.6/configure 2013-12-26 12:20:20.542636493 -0700 +@@ -326,9 +326,10 @@ if test "$f_wizard" = YES; then + if test -z "$QTDIR"; then + echo " QTDIR environment variable not set!" + printf " Checking for Qt..." +- for d in /usr/{lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do ++ for d in /usr/{lib64,lib,share,qt}/{qt-4,qt4,qt,qt*,4} /usr; do + if test -x "$d/bin/qmake"; then + QTDIR=$d ++ QMAKE=$d/bin/qmake + break 2 + fi + done +@@ -704,6 +705,8 @@ INSTTOOL = $f_insttool + DOXYDOCS = .. + DOCDIR = $f_docdir + QTDIR = $QTDIR ++QMAKE = $QMAKE ++MAN1DIR = share/man/man1 + EOF + + if test "$f_dot" != NO; then +diff -up doxygen-1.8.6/Makefile.in.config doxygen-1.8.6/Makefile.in +--- doxygen-1.8.6/Makefile.in.config 2013-12-26 12:17:57.283368564 -0700 ++++ doxygen-1.8.6/Makefile.in 2013-12-26 12:19:17.796956667 -0700 +@@ -78,8 +78,6 @@ realclean: clean + + DATE=$(shell date "+%B %Y") + +-MAN1DIR = man/man1 +- + install: doxywizard_install doxysearch_install + $(INSTTOOL) -d $(DESTDIR)$(INSTALL)/bin + $(INSTTOOL) -m 755 bin/doxygen $(DESTDIR)$(INSTALL)/bin +diff -up doxygen-1.8.6/tmake/lib/linux-g++/tmake.conf.config doxygen-1.8.6/tmake/lib/linux-g++/tmake.conf +--- doxygen-1.8.6/tmake/lib/linux-g++/tmake.conf.config 2013-11-02 08:18:53.000000000 -0600 ++++ doxygen-1.8.6/tmake/lib/linux-g++/tmake.conf 2013-12-26 12:18:38.268158455 -0700 +@@ -11,7 +11,7 @@ TMAKE_CC = gcc + TMAKE_CFLAGS = -pipe -fsigned-char + TMAKE_CFLAGS_WARN_ON = -Wall -W + TMAKE_CFLAGS_WARN_OFF = +-TMAKE_CFLAGS_RELEASE = -O2 ++TMAKE_CFLAGS_RELEASE = $(RPM_OPT_FLAGS) + TMAKE_CFLAGS_DEBUG = -g + TMAKE_CFLAGS_SHLIB = -fPIC + TMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses +@@ -27,12 +27,12 @@ TMAKE_CXXFLAGS_YACC = $$TMAKE_CFLAGS_YAC + + TMAKE_INCDIR = + TMAKE_LIBDIR = +-TMAKE_INCDIR_X11 = /usr/X11R6/include +-TMAKE_LIBDIR_X11 = /usr/X11R6/lib +-TMAKE_INCDIR_QT = $(QTDIR)/include +-TMAKE_LIBDIR_QT = $(QTDIR)/lib +-TMAKE_INCDIR_OPENGL = /usr/X11R6/include +-TMAKE_LIBDIR_OPENGL = /usr/X11R6/lib ++TMAKE_INCDIR_X11 = ++TMAKE_LIBDIR_X11 = ++TMAKE_INCDIR_QT = ++TMAKE_LIBDIR_QT = ++TMAKE_INCDIR_OPENGL = ++TMAKE_LIBDIR_OPENGL = + + TMAKE_LINK = g++ + TMAKE_LINK_SHLIB = g++ diff --git a/office/misc/doxygen/files/fedora/doxygen-1.8.7-html_timestamp_default_false.patch b/office/misc/doxygen/files/fedora/doxygen-1.8.7-html_timestamp_default_false.patch new file mode 100644 index 0000000000..abb03dd917 --- /dev/null +++ b/office/misc/doxygen/files/fedora/doxygen-1.8.7-html_timestamp_default_false.patch @@ -0,0 +1,21 @@ +diff -up doxygen-1.8.7/src/config.xml.than doxygen-1.8.7/src/config.xml +--- doxygen-1.8.7/src/config.xml.than 2014-05-12 13:54:38.000000000 +0200 ++++ doxygen-1.8.7/src/config.xml 2014-05-12 13:56:31.000000000 +0200 +@@ -1617,7 +1617,7 @@ to disable this feature. + + + +- +-