create core package

This commit is contained in:
aydemir
2015-02-24 11:18:35 +02:00
parent 0e4b743b82
commit 70b25d0f95
1098 changed files with 169545 additions and 0 deletions
Executable
+2336
View File
File diff suppressed because it is too large Load Diff
+367
View File
@@ -0,0 +1,367 @@
<PISI>
<SourceName>PisiLinux</SourceName>
<Version>1.0</Version>
<Description xml:lang="tr">PisiLinux 1.0 Deposu</Description>
<Description xml:lang="en">PisiLinux 1.0 Repository</Description>
<Description xml:lang="es">PisiLinux 1.0 Repositorio</Description>
<Description xml:lang="nl">PisiLinux 1.0 Opslagplaats</Description>
<Type>Core</Type>
<BinaryName>PisiLinux</BinaryName>
<Obsoletes>
<Package>kdeadmin</Package>
<Package>kdenetwork</Package>
<Package>kdenetwork-devel</Package>
<Package>kdesdk</Package>
<Package>kdesdk-devel</Package>
<Package>kdeplasma-applets-fancytasks</Package>
<Package>kdetoys</Package>
<Package>libfakeley</Package>
<Package>libfakeley-devel</Package>
<Package>libstreams</Package>
<Package>libstreamanalyzer</Package>
<Package>libstreams-devel</Package>
<Package>libstreamanalyzer-devel</Package>
<Package>strigi-libs</Package>
<Package>strigi-common</Package>
<Package>workspace-strap</Package>
<Package>gtk-qt-engine</Package>
<Package>kdevplatform-l10n-nds</Package>
<Package>kdevplatform-l10n-en_GB</Package>
<Package>db5</Package>
<Package>db5-devel</Package>
<Package>db5-docs</Package>
<Package>ntfs_3g</Package>
<Package>db4-java</Package>
<Package>db5-java</Package>
<Package>jpeg</Package>
<Package>openthreads</Package>
<Package>aufs-progs</Package>
<Package>python-cherrypy</Package>
<Package>hd2u</Package>
<Package>mmpython</Package>
<Package>libtextcat</Package>
<Package>xorg-input-fpit</Package>
<Package>xorg-input-hyperpen</Package>
<Package>xorg-input-mutouch</Package>
<Package>xorg-input-penmount</Package>
<Package>xorg-video-ark</Package>
<Package>xorg-video-ast</Package>
<Package>xorg-video-chips</Package>
<Package>xorg-video-nv</Package>
<Package>xorg-video-s3</Package>
<Package>xorg-video-tseng</Package>
<Package>libXp-devel</Package>
<Package>ijs</Package>
<Package>ijs-devel</Package>
<Package>xfce-utils</Package>
<Package>lxsession-edit</Package>
<Package>zeitgeist-datahub</Package>
<Package>soundKonverter</Package>
<Package>module-fglrx-legacy</Package>
<Package>module-fglrx-legacy-userspace</Package>
<Package>module-fglrx-legacy-devel</Package>
<Package>fglrx-legacy-devel</Package>
<Package>fglrx-legacy-opencl</Package>
<Package>fglrx-legacy-opencl-32bit</Package>
<Package>xorg-video-fglrx-legacy</Package>
<Package>xorg-video-fglrx-legacy-32bit</Package>
<Package>fglrx-devel</Package>
<Package>fglrx-opencl-32bit</Package>
<Package>fglrx-opencl</Package>
<Package>module-fglrx-userspace</Package>
<Package>plex-media-server</Package>
<Package>libreoffice-bsh</Package>
<Package>libreoffice-ure</Package>
<Package>libreoffice-pyuno</Package>
<Package>libreoffice-nlpsolver</Package>
<Package>libreoffice-pdfimport</Package>
<Package>libreoffice-xsltfilter</Package>
<Package>libreoffice-java-common</Package>
<Package>libreoffice-graphicfilter</Package>
<Package>libreoffice-wiki-publisher</Package>
<Package>libreoffice-presentation-minimizer</Package>
<Package>libreoffice-javafilter</Package>
<Package>libreoffice-report-builder</Package>
<Package>glest</Package>
<Package>glest-data</Package>
<Package>liboldX</Package>
<Package>liboldX-devel</Package>
<Package>glitz-devel</Package>
<Package>glitz-32bit</Package>
<Package>glitz</Package>
<Package>mate-bluetooth</Package>
<Package>mate-bluetooth-devel</Package>
<Package>mate-bluetooth-doc</Package>
<Package>glade-xfce</Package>
<Package>eatmonkey</Package>
<Package>gnome-activity-journal</Package>
<Package>gnome-mime-data</Package>
<Package>libgnomecups</Package>
<Package>libgnomecups-devel</Package>
<Package>libgnomeprint</Package>
<Package>libgnomeprint-devel</Package>
<Package>libgnomeprint-docs</Package>
<Package>libgnomeprintui</Package>
<Package>libgnomeprintui-devel</Package>
<Package>libgnomeprintui-docs</Package>
<Package>gnome-desktop-sharp</Package>
<Package>gnome-desktop-sharp-devel</Package>
<Package>gnome-print-sharp</Package>
<Package>gnome-print-sharp-devel</Package>
<Package>gtksourceview-sharp</Package>
<Package>gtksourceview-sharp-devel</Package>
<Package>vte-sharp</Package>
<Package>vte-sharp-devel</Package>
<Package>wnck-sharp</Package>
<Package>wnck-sharp-devel</Package>
<Package>rsvg-sharp</Package>
<Package>rsvg-sharp-devel</Package>
<Package>gsettings-desktop-schemas3</Package>
<Package>gsettings-desktop-schemas3-devel</Package>
<Package>libgee-8</Package>
<Package>libgee-8-devel</Package>
<Package>gnutls-guile</Package>
<Package>liborcus</Package>
<Package>liborcus-devel</Package>
<Package>libixion</Package>
<Package>epdfview</Package>
<Package>libixion-devel</Package>
<Package>lv2core</Package>
<Package>lv2core-devel</Package>
<Package>amd-ucode</Package>
<Package>akonadi-facebook</Package>
<Package>perl-Email-Simple-Creator</Package>
<Package>licq-autoreply</Package>
<Package>licq-console</Package>
<Package>licq-msn</Package>
<Package>licq-forwarder</Package>
<Package>licq-osd</Package>
<Package>licq-rms</Package>
<Package>licq-devel</Package>
<Package>perl-IO-via-symlink</Package>
<Package>SVK</Package>
<Package>avidemux</Package>
<Package>qsvn</Package>
<Package>libsvnqt</Package>
<Package>libsvnqt-devel</Package>
<Package>cups-php</Package>
<Package>metalink</Package>
<Package>foomatic-filters</Package>
<Package>pisilinux-default-settings</Package>
<Package>mysql-client</Package>
<Package>mysql-lib</Package>
<Package>mysql-man-pages</Package>
<Package>mysql-server</Package>
<Package>sun-jre</Package>
<Package>sun-jdk</Package>
<Package>gnash</Package>
<Package>gnash-devel</Package>
<Package>gnash-klash</Package>
<Package>gst-buzztard</Package>
<Package>gst-buzztard-doc</Package>
<Package>libgst-buzztard</Package>
<Package>libgst-buzztard-devel</Package>
<Package>tv-viewer</Package>
<Package>module-nvidia-current-userspace</Package>
<Package>module-nvidia304-userspace</Package>
<Package>module-nvidia173-userspace</Package>
<Package>module-nvidia96-userspace</Package>
<Package>samba-swat</Package>
<Package>comp-scale</Package>
<Package>ntrack</Package>
<Package>ntrack-devel</Package>
<Package>ntrack-glib</Package>
<Package>ntrack-glib-devel</Package>
<Package>ntrack-gobject</Package>
<Package>ntrack-gobject-devel</Package>
<Package>ntrack-qt4</Package>
<Package>ntrack-qt4-devel</Package>
<Package>python-ntrack</Package>
<Package>qzion</Package>
<Package>qzion-devel</Package>
<Package>qedje-devel</Package>
<Package>qedje</Package>
<Package>ushare</Package>
<Package>udev-32bit</Package>
<Package>kde-l10n-fa</Package>
<Package>kde-l10n-si</Package>
<Package>kde-l10n-si-doc</Package>
<Package>kde-l10n-tg</Package>
<Package>kde-l10n-tg-doc</Package>
<Package>kde-l10n-th</Package>
<Package>kde-l10n-th-doc</Package>
<Package>kdnssd</Package>
<Package>mate-file-manager</Package>
<Package>mate-file-manager-devel</Package>
<Package>mate-file-manager-doc</Package>
<Package>mate-window-manager</Package>
<Package>mate-window-manager-devel</Package>
<Package>mate-doc-utils</Package>
<Package>libmatewnck-devel</Package>
<Package>libmatewnck-doc</Package>
<Package>libmatewnck</Package>
<Package>libmatekeyring</Package>
<Package>libmatekeyring-devel</Package>
<Package>libmatekeyring-doc</Package>
<Package>mate-keyring</Package>
<Package>mate-keyring-devel</Package>
<Package>mate-keyring-doc</Package>
<Package>mate-character-map</Package>
<Package>mate-character-map-devel</Package>
<Package>mate-document-viewer</Package>
<Package>mate-document-viewer-devel</Package>
<Package>mate-document-viewer-doc</Package>
<Package>mate-file-archiver</Package>
<Package>mate-image-viewer</Package>
<Package>mate-image-viewer-devel</Package>
<Package>mate-image-viewer-doc</Package>
<Package>mate-file-manager-gksu</Package>
<Package>mate-file-manager-sendto</Package>
<Package>mate-file-manager-sendto-devel</Package>
<Package>mate-file-manager-sendto-doc</Package>
<Package>mate-file-manager-share</Package>
<Package>mate-file-manager-open-terminal</Package>
<Package>mate-file-manager-image-converter</Package>
<Package>mate-text-editor</Package>
<Package>mate-text-editor-devel</Package>
<Package>mate-text-editor-gtk-doc</Package>
<Package>mate-menu-editor</Package>
<Package>kio-afc</Package>
<Package>epson-alc1100</Package>
<Package>thunderbird-lang-es-CL</Package>
<Package>emacs-emms</Package>
<Package>ecore</Package>
<Package>ecore-devel</Package>
<Package>edje</Package>
<Package>edje-devel</Package>
<Package>eet</Package>
<Package>eet-devel</Package>
<Package>eeze</Package>
<Package>eeze-devel</Package>
<Package>efreet</Package>
<Package>efreet-devel</Package>
<Package>eina</Package>
<Package>eina-devel</Package>
<Package>eio</Package>
<Package>eio-devel</Package>
<Package>emap</Package>
<Package>emap-devel</Package>
<Package>embryo</Package>
<Package>embryo-devel</Package>
<Package>epdf</Package>
<Package>epdf-devel</Package>
<Package>ethumb</Package>
<Package>ethumb-devel</Package>
<Package>evas</Package>
<Package>evas-devel</Package>
<Package>emotion-devel</Package>
<Package>emotion</Package>
<Package>firefox-devel</Package>
<Package>chipmunk</Package>
<Package>chipmunk-devel</Package>
<Package>e-module-alarm</Package>
<Package>e-module-calendar</Package>
<Package>e-module-comp-scale</Package>
<Package>e-module-cpu</Package>
<Package>e-module-deskshow</Package>
<Package>e-module-diskio</Package>
<Package>e-module-drawer</Package>
<Package>e-module-eektool</Package>
<Package>e-module-eenvader-fractal</Package>
<Package>e-module-elfe</Package>
<Package>e-module-empris</Package>
<Package>e-module-engage</Package>
<Package>e-module-eooorg</Package>
<Package>e-module-everything-aspell</Package>
<Package>e-module-everything-pidgin</Package>
<Package>e-module-everything-places</Package>
<Package>e-module-everything-shotgun</Package>
<Package>e-module-everything-skeleton</Package>
<Package>e-module-everything-tracker</Package>
<Package>e-module-everything-wallpaper</Package>
<Package>e-module-everything-websearch</Package>
<Package>e-module-eweather</Package>
<Package>e-module-exebuf</Package>
<Package>e-module-execwatch</Package>
<Package>e-module-flame</Package>
<Package>e-module-forecasts</Package>
<Package>e-module-iiirk</Package>
<Package>e-module-itask</Package>
<Package>e-module-mail</Package>
<Package>e-module-mem</Package>
<Package>e-module-moon</Package>
<Package>e-module-mpdule</Package>
<Package>e-module-net</Package>
<Package>e-module-news</Package>
<Package>e-module-penguins</Package>
<Package>e-module-photo</Package>
<Package>e-module-places</Package>
<Package>e-module-rain</Package>
<Package>e-module-screenshot</Package>
<Package>e-module-skel</Package>
<Package>e-module-snow</Package>
<Package>e-module-taskbar</Package>
<Package>e-module-tclock</Package>
<Package>e-module-uptime</Package>
<Package>e-module-weather</Package>
<Package>e-module-winlist-ng</Package>
<Package>e-module-winselector</Package>
<Package>e-module-wlan</Package>
<Package>econcentration</Package>
<Package>editje</Package>
<Package>emprint</Package>
<Package>enki</Package>
<Package>enlil</Package>
<Package>enlil-devel</Package>
<Package>etrophy</Package>
<Package>etrophy-devel</Package>
<Package>expedite</Package>
<Package>lightmediascanner</Package>
<Package>lightmediascanner-devel</Package>
<Package>libeweather</Package>
<Package>libeweather-devel</Package>
<Package>python-elementary-devel</Package>
<Package>python-elementary</Package>
<Package>python-edje-devel</Package>
<Package>python-edje</Package>
<Package>python-evas-devel</Package>
<Package>python-evas</Package>
<Package>python-ethumb-devel</Package>
<Package>python-ethumb</Package>
<Package>python-ecore-devel</Package>
<Package>python-ecore</Package>
<Package>python-speech-dispatcher</Package>
<Package>nepomuk-core</Package>
<Package>nepomuk-core-devel</Package>
<Package>nepomuk-widgets</Package>
<Package>nepomuk-widgets-devel</Package>
<Package>wine-gecko64</Package>
<Package>wine64</Package>
<Package>glade3</Package>
<Package>glade3-devel</Package>
<Package>glade3-docs</Package>
<Package>goocanvas</Package>
<Package>goocanvas-docs</Package>
<Package>goocanvas-devel</Package>
<Package>goocanvasmm</Package>
<Package>goocanvasmm-doc</Package>
<Package>goocanvasmm-devel</Package>
<Package>libgtkhtml2</Package>
<Package>libgtkhtml2-devel</Package>
<Package>bluez-compat</Package>
<Package>bluedevil-devel</Package>
<Package>akonadi-facebook</Package>
<Package>python-PyMT</Package>
<Package>python-PyMT-docs</Package>
<Package>OpenGTL</Package>
<Package>OpenGTL-devel</Package>
<Package>gtkdatabox-glade</Package>
<Package>gtkdatabox-docs</Package>
<Package>vo-aacenc</Package>
<Package>lxshortcut</Package>
<Package>libusbx</Package>
<Package>libusbx-devel</Package>
<Package>libusbx-32bit</Package>
<Package>labltk</Package>
</Obsoletes>
</PISI>
Executable
+524
View File
@@ -0,0 +1,524 @@
<PISI>
<Groups>
<Group>
<Name>mate.desktop</Name>
<LocalName xml:lang="en">Mate Desktop</LocalName>
<LocalName xml:lang="nl">Mate Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, GNOME</LocalName>
<LocalName xml:lang="tr">Mate Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau Mate</LocalName>
<LocalName xml:lang="es">Escritorio Mate</LocalName>
<LocalName xml:lang="de">Mate</LocalName>
<LocalName xml:lang="it">Mate</LocalName>
<Icon>preferences-desktop-wallpaper</Icon> <!-- FIXME: Mate Desktop Icon -->
</Group>
<Group>
<Name>mate.desktop.extras</Name>
<LocalName xml:lang="en">Mate Desktop Addons</LocalName>
<LocalName xml:lang="tr">Mate Masaüstü Araçları</LocalName>
<Icon>preferences-desktop-wallpaper</Icon> <!-- FIXME: Mate Desktop Icon -->
</Group>
<Group>
<Name>accessibility</Name>
<LocalName xml:lang="en">Accessibility</LocalName>
<LocalName xml:lang="nl">Toegankelijkheid</LocalName>
<LocalName xml:lang="sv">Handikappstöd</LocalName>
<LocalName xml:lang="tr">Erişilebilirlik</LocalName>
<LocalName xml:lang="fr">Accessibilité</LocalName>
<LocalName xml:lang="es">Accesibilidad</LocalName>
<LocalName xml:lang="de">Eingabehilfen</LocalName>
<LocalName xml:lang="it">Accessibilità</LocalName>
<Icon>preferences-desktop-accessibility</Icon>
</Group>
<Group>
<Name>accessories</Name>
<LocalName xml:lang="en">Accessories</LocalName>
<LocalName xml:lang="nl">Toebehoren</LocalName>
<LocalName xml:lang="sv">Tillbehör</LocalName>
<LocalName xml:lang="tr">Donatılar</LocalName>
<LocalName xml:lang="fr">Accessoires</LocalName>
<LocalName xml:lang="es">Accesorios</LocalName>
<LocalName xml:lang="de">Zubehör</LocalName>
<LocalName xml:lang="it">Accessori</LocalName>
<Icon>applications-accessories</Icon>
</Group>
<Group>
<Name>education</Name>
<LocalName xml:lang="en">Education</LocalName>
<LocalName xml:lang="nl">Educatie</LocalName>
<LocalName xml:lang="sv">Utbildning</LocalName>
<LocalName xml:lang="tr">Eğitim</LocalName>
<LocalName xml:lang="fr">Éducation</LocalName>
<LocalName xml:lang="es">Educación</LocalName>
<LocalName xml:lang="de">Lernen</LocalName>
<LocalName xml:lang="it">Educazione</LocalName>
<Icon>applications-education</Icon>
</Group>
<Group>
<Name>games</Name>
<LocalName xml:lang="en">Games</LocalName>
<LocalName xml:lang="nl">Spelen</LocalName>
<LocalName xml:lang="sv">Spel</LocalName>
<LocalName xml:lang="tr">Oyunlar</LocalName>
<LocalName xml:lang="fr">Jeux</LocalName>
<LocalName xml:lang="es">Juegos</LocalName>
<LocalName xml:lang="de">Spiele</LocalName>
<LocalName xml:lang="it">Giochi</LocalName>
<Icon>applications-games</Icon>
</Group>
<Group>
<Name>graphics</Name>
<LocalName xml:lang="en">Graphics</LocalName>
<LocalName xml:lang="nl">Grafisch</LocalName>
<LocalName xml:lang="sv">Grafik</LocalName>
<LocalName xml:lang="tr">Grafik</LocalName>
<LocalName xml:lang="fr">Graphisme</LocalName>
<LocalName xml:lang="es">Gráficos</LocalName>
<LocalName xml:lang="de">Design</LocalName>
<LocalName xml:lang="it">Grafica</LocalName>
<Icon>applications-graphics</Icon>
</Group>
<Group>
<Name>internet</Name>
<LocalName xml:lang="en">Internet</LocalName>
<LocalName xml:lang="nl">Internet</LocalName>
<LocalName xml:lang="sv">Internet</LocalName>
<LocalName xml:lang="tr">İnternet</LocalName>
<LocalName xml:lang="fr">Internet</LocalName>
<LocalName xml:lang="es">Internet</LocalName>
<LocalName xml:lang="de">Internet</LocalName>
<LocalName xml:lang="it">Internet</LocalName>
<Icon>applications-internet</Icon>
</Group>
<Group>
<Name>office</Name>
<LocalName xml:lang="en">Office</LocalName>
<LocalName xml:lang="nl">Kantoor</LocalName>
<LocalName xml:lang="sv">Kontor</LocalName>
<LocalName xml:lang="tr">Ofis</LocalName>
<LocalName xml:lang="fr">Bureautique</LocalName>
<LocalName xml:lang="es">Oficina</LocalName>
<LocalName xml:lang="de">Büro</LocalName>
<LocalName xml:lang="it">Ufficio</LocalName>
<Icon>applications-office</Icon>
</Group>
<Group>
<Name>other</Name>
<LocalName xml:lang="en">Other</LocalName>
<LocalName xml:lang="nl">Overige</LocalName>
<LocalName xml:lang="sv">Övrigt</LocalName>
<LocalName xml:lang="tr">Diğer</LocalName>
<LocalName xml:lang="fr">Autres</LocalName>
<LocalName xml:lang="es">Otros</LocalName>
<LocalName xml:lang="de">Sonstiges</LocalName>
<LocalName xml:lang="it">Altro</LocalName>
<Icon>applications-other</Icon>
</Group>
<Group>
<Name>programming</Name>
<LocalName xml:lang="en">Programming</LocalName>
<LocalName xml:lang="nl">Programmeren</LocalName>
<LocalName xml:lang="sv">Utveckling</LocalName>
<LocalName xml:lang="tr">Programlama</LocalName>
<LocalName xml:lang="fr">Programmation</LocalName>
<LocalName xml:lang="es">Programación</LocalName>
<LocalName xml:lang="de">Programmierung</LocalName>
<LocalName xml:lang="it">Programmazione</LocalName>
<Icon>applications-development</Icon>
</Group>
<Group>
<Name>multimedia</Name>
<LocalName xml:lang="en">Multimedia</LocalName>
<LocalName xml:lang="nl">Multimedia</LocalName>
<LocalName xml:lang="sv">Multimedia</LocalName>
<LocalName xml:lang="tr">Çoklu Ortam</LocalName>
<LocalName xml:lang="fr">Multimédia</LocalName>
<LocalName xml:lang="es">Multimedia</LocalName>
<LocalName xml:lang="de">Multimedia</LocalName>
<LocalName xml:lang="it">Multimedia</LocalName>
<Icon>applications-multimedia</Icon>
</Group>
<Group>
<Name>system</Name>
<LocalName xml:lang="en">System</LocalName>
<LocalName xml:lang="nl">Systeem</LocalName>
<LocalName xml:lang="sv">System</LocalName>
<LocalName xml:lang="tr">Sistem</LocalName>
<LocalName xml:lang="fr">Système</LocalName>
<LocalName xml:lang="es">Sistema</LocalName>
<LocalName xml:lang="de">System</LocalName>
<LocalName xml:lang="it">Sistema</LocalName>
<Icon>applications-system</Icon>
</Group>
<Group>
<Name>gnome2.desktop</Name>
<LocalName xml:lang="en">Gnome2 Desktop</LocalName>
<LocalName xml:lang="nl">Gnome2 Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, GNOME2</LocalName>
<LocalName xml:lang="tr">Gnome2 Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau Gnome2</LocalName>
<LocalName xml:lang="es">Escritorio Gnome</LocalName>
<LocalName xml:lang="de">Gnome2</LocalName>
<LocalName xml:lang="it">Gnome2</LocalName>
<Icon>preferences-desktop</Icon> <!-- FIXME: Gnome Desktop Icon -->
</Group>
<Group>
<Name>gnome.desktop</Name>
<LocalName xml:lang="en">Gnome3 Desktop</LocalName>
<LocalName xml:lang="nl">Gnome3 Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, GNOME3</LocalName>
<LocalName xml:lang="tr">Gnome3 Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau Gnome3</LocalName>
<LocalName xml:lang="es">Escritorio Gnome3</LocalName>
<LocalName xml:lang="de">Gnome3</LocalName>
<LocalName xml:lang="it">Gnome3</LocalName>
<Icon>preferences-desktop</Icon> <!-- FIXME: Gnome Desktop Icon -->
</Group>
<Group>
<Name>gnome.desktop.addons</Name>
<LocalName xml:lang="en">Gnome3 Desktop Addons</LocalName>
<LocalName xml:lang="tr">Gnome3 Masaüstü Araçları</LocalName>
<Icon>preferences-desktop</Icon> <!-- FIXME: Gnome Desktop Icon -->
</Group>
<Group>
<Name>kde.desktop</Name>
<LocalName xml:lang="en">KDE Desktop</LocalName>
<LocalName xml:lang="nl">KDE Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, KDE</LocalName>
<LocalName xml:lang="tr">KDE Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau KDE</LocalName>
<LocalName xml:lang="es">Escritorio KDE</LocalName>
<LocalName xml:lang="de">KDE</LocalName>
<LocalName xml:lang="it">KDE</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdeaccessibility</Name>
<LocalName xml:lang="en">KDE Accessibility</LocalName>
<LocalName xml:lang="nl">KDE Toegankelijkheid</LocalName>
<LocalName xml:lang="tr">KDE Erişilebilirlik</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdebindings</Name>
<LocalName xml:lang="en">KDE Bindings</LocalName>
<LocalName xml:lang="nl">KDE Bindingen</LocalName>
<LocalName xml:lang="tr">KDE Bağlayıcıları</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdeedu</Name>
<LocalName xml:lang="en">KDE Education</LocalName>
<LocalName xml:lang="nl">KDE Onderwijs</LocalName>
<LocalName xml:lang="tr">KDE Eğitim</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdegraphics</Name>
<LocalName xml:lang="en">KDE Graphics</LocalName>
<LocalName xml:lang="nl">KDE Grafisch</LocalName>
<LocalName xml:lang="tr">KDE Grafik</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdeutils</Name>
<LocalName xml:lang="en">KDE Tools</LocalName>
<LocalName xml:lang="nl">KDE Gereedschap</LocalName>
<LocalName xml:lang="tr">KDE Araçları</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdemultimedia</Name>
<LocalName xml:lang="en">KDE Multimedia</LocalName>
<LocalName xml:lang="nl">KDE Multimedia</LocalName>
<LocalName xml:lang="tr">KDE Çoklu Ortam</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>kde.kdegames</Name>
<LocalName xml:lang="en">KDE Games</LocalName>
<LocalName xml:lang="nl">KDE Games</LocalName>
<LocalName xml:lang="tr">KDE Oyunları</LocalName>
<LocalName xml:lang="es">KDE Juegos</LocalName>
<Icon>kde</Icon>
</Group>
<Group>
<Name>enlightenment.desktop</Name>
<LocalName xml:lang="en">e17 Desktop</LocalName>
<LocalName xml:lang="nl">e17 Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, e17</LocalName>
<LocalName xml:lang="tr">e17 Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau e17</LocalName>
<LocalName xml:lang="es">Escritorio e17</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>enlightenment.addon</Name>
<LocalName xml:lang="en">e17 Addon</LocalName>
<LocalName xml:lang="nl">e17 Addon</LocalName>
<LocalName xml:lang="sv">e17 Addon</LocalName>
<LocalName xml:lang="tr">e17 Eklentileri</LocalName>
<LocalName xml:lang="fr">e17 Addon</LocalName>
<LocalName xml:lang="es">e17 Addon</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>xfce.desktop</Name>
<LocalName xml:lang="en">Xfce Desktop</LocalName>
<LocalName xml:lang="nl">Xfce Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, Xfce</LocalName>
<LocalName xml:lang="tr">Xfce Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau Xfce</LocalName>
<LocalName xml:lang="es">Escritorio Xfce</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>xfce.addon</Name>
<LocalName xml:lang="en">Xfce Desktop Addons</LocalName>
<LocalName xml:lang="tr">Xfce Masaüstü Araçları</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>razor-qt.desktop</Name>
<LocalName xml:lang="en">Razor-qt Desktop</LocalName>
<LocalName xml:lang="nl">Razor-qt Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, Razor-qt</LocalName>
<LocalName xml:lang="tr">Razor-qt Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau Razor-qt</LocalName>
<LocalName xml:lang="es">Escritorio Razor-qt</LocalName>
<Icon>razor-qt</Icon>
</Group>
<Group>
<Name>lxde.desktop</Name>
<LocalName xml:lang="en">LXDE Desktop</LocalName>
<LocalName xml:lang="nl">LXDE Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, LXDE</LocalName>
<LocalName xml:lang="tr">LXDE Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau LXDE</LocalName>
<LocalName xml:lang="es">Escritorio LXDE</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>lxde.addon</Name>
<LocalName xml:lang="en">Lxde Desktop Addons</LocalName>
<LocalName xml:lang="tr">Lxde Masaüstü Araçları</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>lxqt.desktop</Name>
<LocalName xml:lang="en">LXQT Desktop</LocalName>
<LocalName xml:lang="nl">LXQT Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, LXQT</LocalName>
<LocalName xml:lang="tr">LXQT Masaüstü</LocalName>
<LocalName xml:lang="fr">Bureau LXQT</LocalName>
<LocalName xml:lang="es">Escritorio LXQT</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>lxqt.addon</Name>
<LocalName xml:lang="en">Lxqt Desktop Addons</LocalName>
<LocalName xml:lang="tr">Lxqt Masaüstü Araçları</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>other.desktop</Name>
<LocalName xml:lang="en">Other Desktops</LocalName>
<LocalName xml:lang="nl">Overige Desktop</LocalName>
<LocalName xml:lang="sv">Skrivbord, Övrigt</LocalName>
<LocalName xml:lang="tr">Diğer Masaüstü Ortamları</LocalName>
<LocalName xml:lang="fr">Autres bureaux</LocalName>
<LocalName xml:lang="es">Otros escritorios</LocalName>
<LocalName xml:lang="de">Andere Desktopumgebungen</LocalName>
<LocalName xml:lang="it">Altri desktop</LocalName>
<Icon>preferences-desktop</Icon>
</Group>
<Group>
<Name>publishing</Name>
<LocalName xml:lang="en">Publishing</LocalName>
<LocalName xml:lang="nl">Publiceren</LocalName>
<LocalName xml:lang="sv">Publicering</LocalName>
<LocalName xml:lang="tr">Yayıncılık</LocalName>
<LocalName xml:lang="fr">Publication</LocalName>
<LocalName xml:lang="es">Publicación</LocalName>
<LocalName xml:lang="it">Pubblicazione</LocalName>
<Icon>accessories-dictionary</Icon>
</Group>
<Group>
<Name>servers</Name>
<LocalName xml:lang="en">Servers</LocalName>
<LocalName xml:lang="nl">Servers</LocalName>
<LocalName xml:lang="sv">Servrar</LocalName>
<LocalName xml:lang="tr">Sunucular</LocalName>
<LocalName xml:lang="fr">Serveurs</LocalName>
<LocalName xml:lang="es">Servidores</LocalName>
<LocalName xml:lang="de">Server</LocalName>
<LocalName xml:lang="it">Server</LocalName>
<Icon>network-server</Icon>
</Group>
<Group>
<Name>fonts</Name>
<LocalName xml:lang="en">Fonts</LocalName>
<LocalName xml:lang="nl">Lettertypen</LocalName>
<LocalName xml:lang="sv">Teckensnitt</LocalName>
<LocalName xml:lang="tr">Fontlar</LocalName>
<LocalName xml:lang="fr">Polices</LocalName>
<LocalName xml:lang="es">Fuentes</LocalName>
<LocalName xml:lang="de">Fonts</LocalName>
<LocalName xml:lang="it">Caratteri</LocalName>
<Icon>preferences-desktop-font</Icon>
</Group>
<Group>
<Name>admin.tools</Name>
<LocalName xml:lang="en">Admin Tools</LocalName>
<LocalName xml:lang="nl">Administratie Gereedschap</LocalName>
<LocalName xml:lang="sv">Administrativa verktyg</LocalName>
<LocalName xml:lang="tr">Yönetici Araçları</LocalName>
<LocalName xml:lang="fr">Outils d'administration</LocalName>
<LocalName xml:lang="es">Administración</LocalName>
<LocalName xml:lang="de">Admin Tools</LocalName>
<LocalName xml:lang="it">Strumenti d'amministrazione</LocalName>
<Icon>application-x-shellscript</Icon>
</Group>
<Group>
<Name>legacy</Name>
<LocalName xml:lang="en">Legacy</LocalName>
<LocalName xml:lang="nl">Legacy</LocalName>
<LocalName xml:lang="sv">Legat</LocalName>
<LocalName xml:lang="tr">Uyumluluk</LocalName>
<LocalName xml:lang="fr">Anciens</LocalName>
<LocalName xml:lang="it">Obsoleti/in disuso</LocalName>
<LocalName xml:lang="es">Legacy</LocalName>
<Icon>media-floppy</Icon>
</Group>
<Group>
<Name>localization</Name>
<LocalName xml:lang="en">Localization</LocalName>
<LocalName xml:lang="nl">Lokalisatie</LocalName>
<LocalName xml:lang="sv">Internationalisering</LocalName>
<LocalName xml:lang="tr">Yerelleştirme</LocalName>
<LocalName xml:lang="fr">Internationalisation</LocalName>
<LocalName xml:lang="es">Localización</LocalName>
<LocalName xml:lang="it">Localizzazione</LocalName>
<Icon>preferences-desktop-locale</Icon>
</Group>
<Group>
<Name>virtualization</Name>
<LocalName xml:lang="en">Virtualization</LocalName>
<LocalName xml:lang="nl">Virtualisatie</LocalName>
<LocalName xml:lang="sv">Virtualisering</LocalName>
<LocalName xml:lang="tr">Sanallaştırma</LocalName>
<LocalName xml:lang="fr">Virtualisation</LocalName>
<LocalName xml:lang="es">Virtualización</LocalName>
<LocalName xml:lang="de">Virtualisierung</LocalName>
<LocalName xml:lang="it">Virtualizzazione</LocalName>
<Icon>video-display</Icon>
</Group>
<Group>
<Name>power.management</Name>
<LocalName xml:lang="en">Power Management</LocalName>
<LocalName xml:lang="nl">Stroombeheer</LocalName>
<LocalName xml:lang="sv">Strömsparhantering</LocalName>
<LocalName xml:lang="tr">Güç Yönetimi</LocalName>
<LocalName xml:lang="fr">Gestion de l'énergie</LocalName>
<LocalName xml:lang="es">Gestión de energía</LocalName>
<LocalName xml:lang="it">Gestione energetica</LocalName>
<Icon>preferences-system-power-management</Icon>
</Group>
<Group>
<Name>security</Name>
<LocalName xml:lang="en">Security</LocalName>
<LocalName xml:lang="nl">Veiligheid</LocalName>
<LocalName xml:lang="sv">Säkerhet</LocalName>
<LocalName xml:lang="tr">Güvenlik</LocalName>
<LocalName xml:lang="fr">Sécurité</LocalName>
<LocalName xml:lang="es">Seguridad</LocalName>
<LocalName xml:lang="de">Sicherheit</LocalName>
<LocalName xml:lang="it">Sicurezza</LocalName>
<Icon>preferences-desktop-cryptography</Icon>
</Group>
<Group>
<Name>communication</Name>
<LocalName xml:lang="en">Communication</LocalName>
<LocalName xml:lang="nl">Communicatie</LocalName>
<LocalName xml:lang="sv">Kommunikation</LocalName>
<LocalName xml:lang="tr">İletişim</LocalName>
<LocalName xml:lang="fr">Communication</LocalName>
<LocalName xml:lang="es">Comunicación</LocalName>
<LocalName xml:lang="de">Kommunikation</LocalName>
<LocalName xml:lang="it">Comunicazione</LocalName>
<Icon>internet-telephony</Icon>
</Group>
<Group>
<Name>network</Name>
<LocalName xml:lang="en">Network</LocalName>
<LocalName xml:lang="nl">Netwerk</LocalName>
<LocalName xml:lang="sv">Nätverk</LocalName>
<LocalName xml:lang="tr"></LocalName>
<LocalName xml:lang="fr">Réseau</LocalName>
<LocalName xml:lang="es">Red</LocalName>
<LocalName xml:lang="de">Netzwerk</LocalName>
<LocalName xml:lang="it">Rete</LocalName>
<Icon>network-workgroup</Icon>
</Group>
<Group>
<Name>science</Name>
<LocalName xml:lang="en">Science</LocalName>
<LocalName xml:lang="nl">Wetenschap</LocalName>
<LocalName xml:lang="sv">Vetenskap</LocalName>
<LocalName xml:lang="tr">Bilim</LocalName>
<LocalName xml:lang="fr">Science</LocalName>
<LocalName xml:lang="es">Ciencia</LocalName>
<LocalName xml:lang="de">Wissenschaft</LocalName>
<LocalName xml:lang="it">Scienze</LocalName>
<Icon>applications-science</Icon>
</Group>
<Group>
<Name>documentation</Name>
<LocalName xml:lang="en">Documentation</LocalName>
<LocalName xml:lang="nl">Documentatie</LocalName>
<LocalName xml:lang="sv">Dokumentation</LocalName>
<LocalName xml:lang="tr">Belgeleme</LocalName>
<LocalName xml:lang="fr">Documentation</LocalName>
<LocalName xml:lang="es">Documentación</LocalName>
<LocalName xml:lang="de">Dokumentation</LocalName>
<LocalName xml:lang="it">Documentazione</LocalName>
<Icon>graphics-viewer-document</Icon>
</Group>
<Group>
<Name>electronics</Name>
<LocalName xml:lang="en">Electronics</LocalName>
<LocalName xml:lang="nl">Elektronica</LocalName>
<LocalName xml:lang="sv">Elektroniskt</LocalName>
<LocalName xml:lang="tr">Elektronik</LocalName>
<LocalName xml:lang="fr">Électronique</LocalName>
<LocalName xml:lang="es">Electrónica</LocalName>
<LocalName xml:lang="de">Elektronik</LocalName>
<LocalName xml:lang="it">Elettronica</LocalName>
<Icon>utilities-system-monitor</Icon>
</Group>
<Group>
<Name>unknown</Name>
<LocalName xml:lang="en">Unknown</LocalName>
<LocalName xml:lang="nl">Onbekend</LocalName>
<LocalName xml:lang="sv">Okända</LocalName>
<LocalName xml:lang="tr">Bilinmeyen</LocalName>
<LocalName xml:lang="fr">Inconnu</LocalName>
<LocalName xml:lang="es">Desconocido</LocalName>
<LocalName xml:lang="de">Unbekannt</LocalName>
<LocalName xml:lang="it">Sconosciuto</LocalName>
<Icon>unknown</Icon>
</Group>
<Group>
<Name>all</Name>
<LocalName xml:lang="en">All</LocalName>
<LocalName xml:lang="nl">Alles</LocalName>
<LocalName xml:lang="sv">Samtliga</LocalName>
<LocalName xml:lang="tr">Tümü</LocalName>
<LocalName xml:lang="fr">Tout</LocalName>
<LocalName xml:lang="es">Todos</LocalName>
<LocalName xml:lang="de">Alle</LocalName>
<LocalName xml:lang="it">Tutti</LocalName>
<Icon>media-optical</Icon>
</Group>
</Groups>
</PISI>
+22118
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
2706ca17146fbaf0f782335332a3e46b83b5fec0
BIN
View File
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
5f7a0fd6c2ca07ef51c5221429012c362840a547
+44
View File
@@ -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 get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
def setup():
# /var/run => /run
#pisitools.dosed("configure.ac", "^(\s+CONSOLE_KIT_PID_FILE=)\$\{localstatedir\}(\/run\/ConsoleKit\/pid)", r"\1\2")
#pisitools.dosed("src/Makefile.am", "\$\(localstatedir\)(\/run\/ConsoleKit)", r"\1")
shelltools.system("sed -i -e '/SystemdService/d' data/org.freedesktop.ConsoleKit.service.in")
autotools.autoreconf("-fi")
autotools.configure("\
--libexecdir=/usr/libexec/ConsoleKit \
--localstatedir=/var \
--with-pid-file=/run/ConsoleKit/pid \
--with-systemdsystemunitdir=no \
--disable-static \
--enable-pam-module \
--enable-udev-acl \
--enable-pam-module \
--with-dbus-services=/usr/share/dbus-1/services \
--with-logrotate-dir=/etc/logrotate.d \
--with-xinitrc-dir=/etc/X11/xinit/xinitrc \
--with-pam-module-dir=/lib/security \
--without-systemdsystemunitdir \
XMLTO_FLAGS='--skip-validation' \
")
def build():
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%s/" % get.installDIR())
pisitools.dodir("/run/console")
pisitools.dodoc("AUTHORS", "README", "COPYING", "HACKING", "NEWS", "TODO")
@@ -0,0 +1,2 @@
d /run/ConsoleKit 0755 root root
d /run/console 0755 root root
@@ -0,0 +1,17 @@
#!/bin/sh
TAGDIR=/run/console
[ -n "$CK_SESSION_USER_UID" ] || exit 1
[ "$CK_SESSION_IS_LOCAL" = "true" ] || exit 0
TAGFILE="$TAGDIR/`getent passwd $CK_SESSION_USER_UID | cut -f 1 -d:`"
if [ "$1" = "session_added" ]; then
mkdir -p "$TAGDIR"
echo "$CK_SESSION_ID" >> "$TAGFILE"
fi
if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then
sed -i "\%^$CK_SESSION_ID\$%d" "$TAGFILE"
[ -s "$TAGFILE" ] || rm -f "$TAGFILE"
fi
+134
View File
@@ -0,0 +1,134 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>ConsoleKit2</Name>
<Homepage>http://freedesktop.org/Software/Hal</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>library</IsA>
<Summary>A framework for defining and tracking users, login sessions, and seats</Summary>
<Description>ConsoleKit is a system daemon for tracking what users are logged into the system and how they interact with the computer (e.g. which keyboard and mouse they use).</Description>
<Archive sha1sum="64163e35e2622dc7666af933557595ce104e32c1" type="zip">https://github.com/ConsoleKit2/ConsoleKit2/archive/master.zip</Archive>
<BuildDependencies>
<Dependency>acl-devel</Dependency>
<Dependency>pam-devel</Dependency>
<Dependency>dbus-devel</Dependency>
<Dependency>udev-devel</Dependency>
<Dependency>zlib-devel</Dependency>
<Dependency>glib2-devel</Dependency>
<Dependency>libX11-devel</Dependency>
<Dependency>polkit-devel</Dependency>
<Dependency>dbus-glib-devel</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>ConsoleKit</Name>
<RuntimeDependencies>
<Dependency>acl</Dependency>
<Dependency>pam</Dependency>
<Dependency>dbus</Dependency>
<Dependency>zlib</Dependency>
<Dependency>glib2</Dependency>
<Dependency>libX11</Dependency>
<Dependency>polkit</Dependency>
<Dependency>libudev</Dependency>
<Dependency>dbus-glib</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="config">/usr/lib/tmpfiles.d/ConsoleKit.conf</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="library">/usr/libexec</Path>
<Path fileType="library">/lib</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="data">/usr/share/dbus-1</Path>
<Path fileType="data">/usr/share/polkit-1/actions</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/var</Path>
<Path fileType="data">/run</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/tmpfiles.d/ConsoleKit.conf">ConsoleKit.conf</AdditionalFile>
<AdditionalFile owner="root" permission="0755" target="/usr/lib/ConsoleKit/run-session.d/pam-foreground-compat.ck">pam-foreground-compat.ck</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
<Name>ConsoleKit-devel</Name>
<PartOf>system.devel</PartOf>
<Summary>Development files for ConsoleKit</Summary>
<RuntimeDependencies>
<Dependency release="current">ConsoleKit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="data">/usr/lib/pkgconfig</Path>
</Files>
</Package>
<History>
<Update release="8">
<Date>2015-02-05</Date>
<Version>0.9.2</Version>
<Comment>Version bump.</Comment>
<Name>Vedat Demir</Name>
<Email>vedat@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2014-08-01</Date>
<Version>0.4.6</Version>
<Comment>Rebuild.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2014-05-11</Date>
<Version>0.4.6</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-03-06</Date>
<Version>0.4.6</Version>
<Comment>Dep Fix</Comment>
<Name>Varol Maksutoğlu</Name>
<Email>waroi@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-01-09</Date>
<Version>0.4.6</Version>
<Comment>Add gentoo patches and ConsoleKit.conf</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-09-08</Date>
<Version>0.4.6</Version>
<Comment>/var/run => /run</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-03-04</Date>
<Version>0.4.6</Version>
<Comment>Version bump</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-08-23</Date>
<Version>0.4.5</Version>
<Comment>First release</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>ConsoleKit</Name>
<Summary xml:lang="tr">Kullanıcıları, giriş oturumlarını ve koltukları takip etmek ve tanımlamak için bir altyapı</Summary>
<Description xml:lang="tr">ConsoleKit, sisteme giriş yapmış kullanıcıları ve bu kullanıcıların bilgisayar ile nasıl etkileştiğini izleyen bir sistem hizmetidir.</Description>
</Source>
<Package>
<Name>ConsoleKit-devel</Name>
<Summary xml:lang="tr">ConsoleKit için geliştirme dosyaları</Summary>
</Package>
</PISI>
+30
View File
@@ -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 shelltools
from pisi.actionsapi import get
def setup():
shelltools.export("OPTIMIZER", get.CFLAGS())
shelltools.export("DEBUG", "-DNDEBUG")
autotools.rawConfigure("--libdir=/lib \
--mandir=/usr/share/man \
--libexecdir=/lib \
--bindir=/bin")
def build():
autotools.make()
def install():
autotools.make("DESTDIR=%s install install-lib install-dev" % get.installDIR())
pisitools.remove("/lib/*.a")
shelltools.chmod("%s/lib/libacl.so.*.*.*" % get.installDIR(), 0755)
pisitools.dodoc("README")
+78
View File
@@ -0,0 +1,78 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>acl</Name>
<Homepage>http://acl.bestbits.at/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2+</License>
<License>LGPLv2.1</License>
<IsA>app:console</IsA>
<IsA>library</IsA>
<Summary>Access control list utilities</Summary>
<Description>acl contains the getfacl and setfacl utilities needed for manipulating access control lists along with the needed libraries.</Description>
<Archive sha1sum="537dddc0ee7b6aa67960a3de2d36f1e2ff2059d9" type="targz">http://download.savannah.gnu.org/releases-noredirect/acl/acl-2.2.52.src.tar.gz</Archive>
<BuildDependencies>
<Dependency>attr</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>acl</Name>
<RuntimeDependencies>
<Dependency>attr</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/bin</Path>
<Path fileType="library">/lib</Path>
<Path fileType="localedata">/usr/share/locale</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
</Package>
<Package>
<Name>acl-devel</Name>
<PartOf>system.devel</PartOf>
<Summary>Development files for acl</Summary>
<RuntimeDependencies>
<Dependency release="current">acl</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="man">/usr/share/man/man3</Path>
</Files>
</Package>
<History>
<Update release="4">
<Date>2014-09-30</Date>
<Version>2.2.52</Version>
<Comment>Rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-05-11</Date>
<Version>2.2.52</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-08-28</Date>
<Version>2.2.52</Version>
<Comment>Version bump, clean acl.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-06-04</Date>
<Version>2.2.51</Version>
<Comment>First release</Comment>
<Name>Erdem Artan</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>acl</Name>
<Summary xml:lang="tr">Erişim denetim listesi için çeşitli araçlar</Summary>
<Description xml:lang="tr">acl erişim denetim listelerini yönetmeye yarayan getfacl ve setfacl araçlarıyla gerekli kütüphaneleri içeren bir pakettir.</Description>
<Summary xml:lang="fr">Utilitaires, librairies et fichiers d'entête de liste de contrôle d'accès.</Summary>
</Source>
<Package>
<Name>acl-devel</Name>
<Summary xml:lang="tr">acl için geliştirme dosyaları</Summary>
</Package>
</PISI>
+25
View File
@@ -0,0 +1,25 @@
# -*- 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 build():
pisitools.dosed("Makefile", "MANDIR = /usr/man", "MANDIR = /usr/share/man")
autotools.make("-C po update-po")
autotools.make()
def install():
autotools.rawInstall("DESTDIR=%s" % get.installDIR())
pisitools.remove("/usr/sbin/ntsysv")
pisitools.remove("/sbin/chkconfig")
pisitools.remove("/usr/share/man/man8/chkconfig.8")
pisitools.remove("/usr/share/man/man8/ntsysv.8")
pisitools.removeDir("/usr/share/man/man5")
pisitools.removeDir("/sbin")
pisitools.dodoc("COPYING")
+60
View File
@@ -0,0 +1,60 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>alternatives</Name>
<Homepage>http://git.fedorahosted.org/git/?p=chkconfig.git;a=summary</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>Alternative management system</Summary>
<Description>alternatives creates, removes, maintains and displays information about the symbolic links comprising the alternatives system. Alternatives system determines the defaults when several programs fulfilling the same or similar functions to be installed on a single system at the same time.</Description>
<Archive sha1sum="e02a02a0fbc14bcabded474f19bff715b7db8fb1" type="tarxz">https://git.fedorahosted.org/cgit/chkconfig.git/snapshot/chkconfig-1.3.62.tar.xz</Archive>
</Source>
<Package>
<Name>alternatives</Name>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="localedata">/usr/share/locale</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/var</Path>
</Files>
</Package>
<History>
<Update release="4">
<Date>2014-05-11</Date>
<Version>1.3.62</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2014-05-11</Date>
<Version>1.3.58</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-10-28</Date>
<Version>1.3.58</Version>
<Comment>rebuild.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-05-03</Date>
<Version>1.3.58</Version>
<Comment>First release</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
</History>
</PISI>
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>alternatives</Name>
<Summary xml:lang="tr">Alternatif yönetim sistemi</Summary>
<Description xml:lang="tr">alternatives, alternatives sisteminin parçası olan sembolik bağlantıları oluşturan, silen, yöneten ve bunlar hakkında bilgi gösteren araçtır. Alternatives sistemi, birbirine benzer ya da aynı işlevleri sunan programların aynı anda aynı sisteme kurulduğu zamanlarda öntanımlıları belirler.</Description>
</Source>
</PISI>
+26
View File
@@ -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
suffix = "32" if get.buildTYPE() == "emul32" else ""
bindir = "/tmp" if get.buildTYPE() == "emul32" else "/bin"
def setup():
autotools.rawConfigure("--libdir=/lib%s \
--mandir=/usr/share/man \
--libexecdir=/lib%s \
--bindir=%s" % (suffix, suffix, bindir))
def build():
autotools.make()
def install():
autotools.make("DIST_ROOT=%s install install-lib install-dev" % get.installDIR())
if get.buildTYPE() == "emul32":
pisitools.removeDir("/tmp")
pisitools.remove("/lib%s/libattr.a" % suffix)
+93
View File
@@ -0,0 +1,93 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>attr</Name>
<Homepage>http://acl.bestbits.at/</Homepage>
<Packager>
<Name>Pisi Linux Admins</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>LGPLv2.1</License>
<IsA>app:console</IsA>
<IsA>library</IsA>
<Summary>Utilities for managing filesystems extended attributes</Summary>
<Description>attr contains a set of tools for manipulating extended attributes on filesystem objects, in particular getfattr and setfattr.</Description>
<Archive sha1sum="5060f0062baee6439f41a433325b8b3671f8d2d8" type="targz">http://download.savannah.gnu.org/releases-noredirect/attr/attr-2.4.47.src.tar.gz</Archive>
</Source>
<Package>
<Name>attr</Name>
<Files>
<Path fileType="executable">/bin</Path>
<Path fileType="library">/lib</Path>
<Path fileType="localedata">/usr/share/locale</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
</Package>
<Package>
<Name>attr-devel</Name>
<PartOf>system.devel</PartOf>
<Summary>Development files for attr</Summary>
<RuntimeDependencies>
<Dependency release="current">attr</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="man">/usr/share/man/man3</Path>
</Files>
</Package>
<Package>
<Name>attr-32bit</Name>
<PartOf>emul32</PartOf>
<Summary>32-bit shared libraries for attr</Summary>
<BuildType>emul32</BuildType>
<RuntimeDependencies>
<Dependency release="current">attr</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/lib32</Path>
</Files>
</Package>
<History>
<Update release="5">
<Date>2014-09-30</Date>
<Version>2.4.47</Version>
<Comment>Rebuild.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-05-11</Date>
<Version>2.4.47</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-08-28</Date>
<Version>2.4.47</Version>
<Comment>Version bump, clean attr.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-01-24</Date>
<Version>2.4.46</Version>
<Comment>Add emul32</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-06-04</Date>
<Version>2.4.46</Version>
<Comment>First release</Comment>
<Name>Erdem Artan</Name>
<Email>admins@pisilinux.org</Email>
</Update>
</History>
</PISI>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>attr</Name>
<Summary xml:lang="tr">Gelişkin öznitelikler araçları</Summary>
<Description xml:lang="tr">attr dosya sistemi nesnelerinin özniteliklerini değiştirmek için gerekli bir dizi araç sunar.</Description>
<Description xml:lang="fr">attr offre des utilitaires qui servent à manipuler les attributs étendus des objects de système de fichier.</Description>
</Source>
<Package>
<Name>attr-devel</Name>
<Summary xml:lang="tr">attr için geliştirme dosyaları</Summary>
</Package>
</PISI>
+40
View File
@@ -0,0 +1,40 @@
#!/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("--with-libcap-ng=yes \
--enable-gssapi-krb5=no \
--enable-systemd=no \
--with-python=yes \
--disable-static")
def build():
autotools.make()
def check():
autotools.make("-j1 check")
def install():
autotools.rawInstall('DESTDIR="%s"' % get.installDIR())
# remove RH specific bits
pisitools.removeDir("/etc/sysconfig")
pisitools.removeDir("/etc/rc.d")
# Create data directories
pisitools.dodir("/var/log/audit")
pisitools.dodir("/var/spool/audit")
# Disable zos-remote plugin to get rid of deps. like cyrus-sasl
pisitools.remove("/usr/share/man/man8/audispd-zos-remote.8")
pisitools.remove("/usr/share/man/man5/zos-remote.conf.5")
pisitools.dodoc("AUTHORS", "ChangeLog", "THANKS", "TODO", "README", "COPYING")
+9
View File
@@ -0,0 +1,9 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
os.system("ln -s /usr/sbin/audispd /sbin/audispd")
os.system("ln -s /usr/sbin/auditd /sbin/auditd")
os.system("/bin/systemctl enable auditd.service")
+24
View File
@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from comar.service import *
serviceType = "server"
serviceDesc = _({"en": "AUDIT Daemon",
"tr": "AUDIT Servisi"})
serviceDefault = "on"
@synchronized
def start():
reply = startService(command="/usr/sbin/auditd",
pidfile="/run/auditd.pid",
donotify=True)
if reply == 0:
run("/usr/sbin/auditctl -R /etc/audit/rules.d/audit.rules")
@synchronized
def stop():
stopService(pidfile="/run/auditd.pid",
donotify=True)
run("/usr/sbin/auditctl -D")
def status():
return isServiceRunning("/run/auditd.pid")
@@ -0,0 +1,25 @@
diff -Nuar audit-2.3.6.orig/audisp/plugins/Makefile.am audit-2.3.6/audisp/plugins/Makefile.am
--- audit-2.3.6.orig/audisp/plugins/Makefile.am 2014-04-11 22:49:23.000000000 +0300
+++ audit-2.3.6/audisp/plugins/Makefile.am 2014-05-17 01:46:10.260461732 +0300
@@ -22,7 +22,7 @@
CONFIG_CLEAN_FILES = *.loT *.rej *.orig
-SUBDIRS = builtins zos-remote remote
+SUBDIRS = builtins remote
#SUBDIRS = builtins zos-remote
if HAVE_PRELUDE
SUBDIRS += prelude
diff -Nuar audit-2.3.6.orig/configure.ac audit-2.3.6/configure.ac
--- audit-2.3.6.orig/configure.ac 2014-04-11 22:49:33.000000000 +0300
+++ audit-2.3.6/configure.ac 2014-05-17 01:44:36.753791021 +0300
@@ -291,7 +291,7 @@
AC_SUBST(LIBPRELUDE_CFLAGS)
AC_SUBST(LIBPRELUDE_LDFLAGS)
-AC_OUTPUT(Makefile lib/Makefile lib/test/Makefile auparse/Makefile auparse/test/Makefile src/Makefile src/mt/Makefile src/libev/Makefile src/test/Makefile swig/Makefile docs/Makefile init.d/Makefile audisp/Makefile audisp/plugins/Makefile audisp/plugins/builtins/Makefile audisp/plugins/prelude/Makefile audisp/plugins/remote/Makefile audisp/plugins/zos-remote/Makefile bindings/Makefile bindings/python/Makefile tools/Makefile tools/aulast/Makefile tools/aulastlog/Makefile tools/ausyscall/Makefile tools/auvirt/Makefile)
+AC_OUTPUT(Makefile lib/Makefile lib/test/Makefile auparse/Makefile auparse/test/Makefile src/Makefile src/mt/Makefile src/libev/Makefile src/test/Makefile swig/Makefile docs/Makefile init.d/Makefile audisp/Makefile audisp/plugins/Makefile audisp/plugins/builtins/Makefile audisp/plugins/prelude/Makefile audisp/plugins/remote/Makefile bindings/Makefile bindings/python/Makefile tools/Makefile tools/aulast/Makefile tools/aulastlog/Makefile tools/ausyscall/Makefile tools/auvirt/Makefile)
echo .
echo "
+125
View File
@@ -0,0 +1,125 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>audit</Name>
<Homepage>http://people.redhat.com/sgrubb/audit/</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2+</License>
<IsA>app:console</IsA>
<IsA>library</IsA>
<IsA>service</IsA>
<Summary>User space tools for kernel auditing</Summary>
<Description>audit contains the user space utilities for storing and searching the audit records generated by the audit subsystem in the Linux 2.6 kernel.</Description>
<Archive sha1sum="423d181dc668d2cdecc66c5b5308ed6c4f301476" type="targz">http://people.redhat.com/sgrubb/audit/audit-2.3.7.tar.gz</Archive>
<BuildDependencies>
<Dependency>python-devel</Dependency>
<Dependency>kernel-headers</Dependency>
<Dependency>libcap-ng-devel</Dependency>
<Dependency>tcp-wrappers-devel</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">without_openldap.patch</Patch>
</Patches>
</Source>
<Package>
<Name>audit</Name>
<RuntimeDependencies>
<Dependency>libcap-ng</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="executable">/usr/sbin</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="data">/var/log/audit</Path>
<Path fileType="data">/var/spool/audit</Path>
</Files>
<Provides>
<COMAR script="service.py">System.Service</COMAR>
<COMAR script="package.py">System.Package</COMAR>
</Provides>
</Package>
<Package>
<Name>python-audit</Name>
<Summary>Python bindings for audit</Summary>
<RuntimeDependencies>
<Dependency release="current">audit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/python*</Path>
</Files>
</Package>
<Package>
<Name>audit-devel</Name>
<PartOf>system.devel</PartOf>
<Summary>Development files for audit</Summary>
<RuntimeDependencies>
<Dependency release="current">audit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include</Path>
<Path fileType="man">/usr/share/man/man3</Path>
</Files>
</Package>
<History>
<Update release="7">
<Date>2014-09-30</Date>
<Version>2.3.7</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2014-06-06</Date>
<Version>2.3.6</Version>
<Comment>Rebuild.</Comment>
<Name>Aydın Demirel</Name>
<Email>aydin.demirel@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-05-16</Date>
<Version>2.3.6</Version>
<Comment>Version bump.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-05-11</Date>
<Version>2.3.2</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-10-22</Date>
<Version>2.3.2</Version>
<Comment>Version bump.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-02-14</Date>
<Version>2.2.2</Version>
<Comment>Version bump</Comment>
<Name>Ertan Güven</Name>
<Email>ertan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2011-12-20</Date>
<Version>2.2.1</Version>
<Comment>First release</Comment>
<Name>Yusuf Aydemir</Name>
<Email>Yusuf Aydemir</Email>
</Update>
</History>
</PISI>
+18
View File
@@ -0,0 +1,18 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>audit</Name>
<Summary xml:lang="tr">Linux çekirdeğinin 2.6 sürümü için inceleme/denetleme araçları</Summary>
<Description xml:lang="tr">audit Linux çekirdeğinin 2.6 sürümünün inceleme altyapısı tarafından üretilen inceleme kayıtlarını aramak ve saklamak için kullanılan araçları içerir.</Description>
</Source>
<Package>
<Name>python-audit</Name>
<Summary xml:lang="tr">audit için Python bağlayıcısı</Summary>
</Package>
<Package>
<Name>audit-devel</Name>
<Summary xml:lang="tr">audit için geliştirme dosyaları</Summary>
</Package>
</PISI>
+42
View File
@@ -0,0 +1,42 @@
# -*- 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 build():
# NOTE: This is only for the start-stop-daemon
autotools.make('-C src CC="%s" LD="%s %s" CFLAGS="%s"' % (get.CC(), get.CC(), get.LDFLAGS(), get.CFLAGS()))
def install():
def chmod(path, mode):
shelltools.chmod("%s%s" % (get.installDIR(), path), mode)
# Install everything
pisitools.insinto("/", "root/*")
# Install baselayout utilities
shelltools.cd("src/")
autotools.rawInstall('DESTDIR="%s"' % get.installDIR())
# Adjust permissions
chmod("/tmp", 01777)
chmod("/var/tmp", 01777)
chmod("/run/shm", 01777)
chmod("/var/lock", 0775)
chmod("/usr/share/baselayout/shadow", 0600)
if get.ARCH() == "x86_64":
# Directories for 32bit libraries
pisitools.dodir("/lib32")
pisitools.dodir("/usr/lib32")
# Hack for binary blobs built on multi-lib systems
pisitools.dosym("lib", "/lib64")
pisitools.dosym("pisilinux-release", "/etc/system-release")
+320
View File
@@ -0,0 +1,320 @@
#!/usr/bin/python
import os
import grp
import pwd
import shutil
import libuser
### Helper methods
def hav(method, *args):
try:
call("baselayout", "User.Manager", method, args)
except:
pass
def deleteGroup(group):
try:
gid = grp.getgrnam(group)[2]
# deleteGroup(gid)
hav("deleteGroup", gid)
except KeyError:
pass
def deleteUser(user):
try:
uid = pwd.getpwnam(user)[2]
# deleteUser(uid, delete_files)
hav("deleteUser", uid, False)
except KeyError:
pass
def setGroupId(group_name, gid):
ctx = libuser.admin()
group = ctx.lookupGroupByName(group_name)
if group:
group.set(libuser.GIDNUMBER, [gid])
ctx.modifyGroup(group)
def setUserId(user_name, uid):
ctx = libuser.admin()
user = ctx.lookupUserByName(user_name)
if user:
user.set(libuser.UIDNUMBER, [uid])
ctx.modifyUser(user)
def migrateUsers():
# build user -> group map for migration (hopefully we'll drop this in 2012)
migration = []
migrationMap = {
"removable" : ["cdrom", "plugdev"],
"pnp" : ["lp", "floppy"],
"pnpadmin" : ["lpadmin"],
}
for user in pwd.getpwall():
groups = set()
if 1000 <= user.pw_uid < 65534:
for group in grp.getgrall():
if user.pw_name in group.gr_mem:
groups.add(group.gr_name)
for oldGroup, newGroups in migrationMap.items():
if oldGroup in groups:
#groups.remove(oldGroup)
groups.update(newGroups)
if groups:
migration.append((user.pw_uid, list(groups)))
# Migrate regular user groups
for user, group in migration:
# setUser(uid, realname, homedir, shell, passwd, groups)
hav("setUser", user, "", "", "", "", group)
# Big ugly zemberek-openoffice hack
def zemberek_hack():
import re
f = "/var/db/comar3/scripts/System.Package/zemberek_openoffice.py"
if os.path.exists(f):
postContent = open(f).read()
pattern = re.compile('oxt"\)\[0\]$', re.M)
postContent = re.sub(pattern, 'oxt")', postContent)
postContent = re.sub("raise Exception", "print", postContent)
postFile = open(f, 'w')
postFile.write(postContent)
### COMAR methods
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
# We don't want to overwrite an existing file during upgrade
specialFiles = ["passwd", "shadow", "group", "fstab", "hosts", "ld.so.conf", "resolv.conf"]
for specialFile in specialFiles:
if not os.path.exists("/etc/%s" % specialFile):
shutil.copy("/usr/share/baselayout/%s" % specialFile, "/etc")
shutil.copy("/etc/passwd", "/usr/share/baselayout/passwd.backup")
shutil.copy("/etc/group", "/usr/share/baselayout/group.backup")
if fromRelease and int(fromRelease) < 143:
# Release 143 starts using /etc/ld.so.conf.d. Copy ld.so.conf
# for "include" statement.
shutil.copy("/usr/share/baselayout/ld.so.conf", "/etc")
##################################
# Merge new system groups
# addGroup(gid, name)
groups = (
(7, "lp"),
(11, "cdrom"),
(14, "lpadmin"),
(19, "floppy"),
(20, "dialout"),
(22, "sshd"),
(30, "squid"),
(32, "rpc"),
#(46, "plugdev"),
(50, "named"),
# For systemd/var-lock.mount
(54, "lock"),
(60, "mysql"),
(70, "postgres"),
(80, "apache"),
(90, "dovecot"),
(100, "users"),
(102, "hal"),
(103, "polkitd"),
(104, "postfix"),
(105, "postdrop"),
(106, "smmsp"),
(107, "locate"),
(108, "utmp"),
(109, "firebird"),
(110, "dhcp"),
(111, "ldap"),
(112, "clamav"),
(113, "ntlmaps"),
(116, "colord"),
(120, "avahi"),
(121, "avahi-autoipd"),
(123, "ntp"),
(124, "gdm"),
(130, "tss"),
(131, "ejabberd"),
(132, "tomcat"),
(133, "ups"),
(134, "partimag"),
(135, "radiusd"),
(136, "oprofile"),
(137, "mediatomb"),
# 'pulse' is for system wide PA daemon.
(138, "pulse"),
# In order to access to a system wide PA daemon,
# a user should be a member of the 'pulse-access' group.
(139, "pulse-access"),
(141, "italc"),
(142, "quassel"),
(143, "bitlbee"),
(144, "icecast"),
(145, "virt"),
(995, "vboxusers"),
# Gnokii system user for the SMS daemon
(146, "gnokii"),
(150, "svn"),
(151, "memcached"),
(152, "rtkit"),
# NetworkManager user for OpenConnect VPN helper
(153, "nm-openconnect"),
(160, "usbmuxd"),
(161, "openvpn"),
(162, "privoxy"),
(163, "kvm"),
(164, "qemu"),
(165, "kdm"),
(166, "polipo"),
(167, "nginx"),
(168, "guests"),
(169, "ntop"),
# COMAR profile groups
(200, "pnp"),
(201, "removable"),
(204, "power"),
(205, "pnpadmin"),
# for RT jackaudio
(206, "jackuser"),
(207, "wireshark"),
(209, "vdr"),
(210, "ecryptfs"),
(211, "slocate"),
(212, "dansguardian"),
)
for gid, groupName in groups:
try:
group = grp.getgrnam(groupName)
except KeyError:
hav("addGroup", gid, groupName)
else:
if group.gr_gid != gid:
setGroupId(groupName, gid)
##################################
# Merge new system users
# addUser(uid, nick, realname, homedir, shell, password, groups, grantedauths, blockedauths)
users = (
(4, "lp", "CUPS user", "/var/spool/cups", "/sbin/nologin", "", ["lp"], [], []),
(15, "lpadmin", "CUPS administrator", "/var/spool/cups", "/sbin/nologin", "", ["lpadmin"], [], []),
(20, "dialout", "Dialout", "/dev/null", "/bin/false", "", ["dialout"], [], []),
(22, "sshd", "Privilege-separated SSH", "/var/empty/sshd", "/sbin/nologin", "", ["sshd"], [], []),
(30, "squid", "Squid", "/var/cache/squid", "/bin/false", "", ["squid"], [], []),
(32, "rpc", "Rpcbind daemon", "/var/lib/rpcbind", "/sbin/nologin", "", ["rpc"], [], []),
(40, "named", "Bind", "/var/named", "/bin/false", "", ["named"], [], []),
(60, "mysql", "MySQL", "/var/lib/mysql", "/bin/false", "", ["mysql"], [], []),
(70, "postgres", "PostgreSQL", "/var/lib/postgresql", "/bin/false", "", ["postgres"], [], []),
(80, "apache", "Apache", "/dev/null", "/bin/false", "", ["apache", "svn"], [], []),
(90, "dovecot", "Dovecot", "/dev/null", "/bin/false", "", ["dovecot"], [], []),
(102, "hal", "HAL", "/dev/null", "/bin/false", "", ["hal"], [], []),
(103, "polkitd", "PolicyKit", "/var/lib/polkit-1", "/bin/false", "", ["polkitd"], [], []),
(104, "postfix", "Postfix", "/var/spool/postfix", "/bin/false", "", ["postfix"], [], []),
(106, "smmsp", "smmsp", "/var/spool/mqueue", "/bin/false", "", ["smmsp"], [], []),
(107, "colord", "colord colour management daemon", "/var/lib/colord", "/bin/false", "", ["colord"], [], []),
(109, "firebird", "Firebird", "/opt/firebird", "/bin/false", "", ["firebird"], [], []),
(110, "dhcp", "DHCP", "/dev/null", "/bin/false", "", ["dhcp"], [], []),
(111, "ldap", "OpenLDAP", "/dev/null", "/bin/false", "", ["ldap"], [], []),
(112, "clamav", "Clamav", "/dev/null", "/bin/false", "", ["clamav"], [], []),
(113, "ntlmaps", "NTLMaps", "/dev/null", "/bin/false", "", ["ntlmaps"], [], []),
(120, "avahi", "Avahi mDNS/DNS-SD Stack", "/run/avahi-daemon", "/sbin/nologin", "", ["avahi"], [], []),
(121, "avahi-autoipd", "Avahi IPv4LL Stack", "/var/lib/avahi-autoipd", "/sbin/nologin", "", ["avahi-autoipd"], [], []),
(123, "ntp", "NTP", "/dev/null", "/bin/false", "", ["ntp"], [], []),
(124, "gdm", "gdm", "/var/lib/gdm", "/sbin/nologin", "", ["gdm"], [], []),
(130, "tss", "tss", "/var/lib/tpm", "/bin/false", "", ["tss"], [], []),
(131, "ejabberd", "Ejabberd", "/var/lib/ejabberd", "/bin/false", "", ["ejabberd"], [], []),
(132, "tomcat", "Tomcat", "/var/lib/tomcat", "/bin/false", "", ["tomcat"], [], []),
(133, "ups", "UPS", "/var/lib/nut", "/bin/false", "", ["ups", "dialout", "tty", "pnp"], [], []),
(134, "partimag", "Partimage", "/var/lib/partimaged", "/bin/false", "", ["partimag"], [], []),
(135, "radiusd", "Freeradius", "/dev/null", "/bin/false", "", ["radiusd"], [], []),
(136, "oprofile", "oprofile", "/dev/null", "/bin/false", "", ["oprofile"], [], []),
(137, "mediatomb", "mediatomb", "/dev/null", "/bin/false", "", ["mediatomb"], [], []),
(138, "pulse", "PulseAudio System Daemon", "/run/pulse", "/bin/false", "", ["pulse", "pulse-access", "pulse-rt", "audio"], [], []),
(139, "quasselcore", "Quassel IRC System", "/var/cache/quassel", "/bin/false", "", ["quassel"], [], []),
(140, "bitlbee", "Bitlbee Gateway", "/var/lib/bitlbee", "/bin/false", "", ["bitlbee"], [], []),
(141, "spamd", "Spamassassin Daemon", "/var/lib/spamd", "/bin/false", "", [], [], []),
(145, "vboxadd", "VirtualBox Guest Additions", "/dev/null", "/bin/false", "", [], [], []),
(146, "gnokii", "Gnokii system user", "/", "/sbin/nologin", "", ["gnokii"], [], []),
(150, "svn", "Subversion", "/dev/null", "/bin/false", "", ["svn"], [], []),
(151, "icecast", "Icecast Server", "/dev/null", "/bin/false", "", ["icecast"], [], []),
(152, "memcached", "Memcached daemon", "/run/memcached", "/bin/false", "", ["memcached"], [], []),
(153, "rtkit", "RealtimeKit", "/proc", "/sbin/nologin", "", ["rtkit"], [], []),
(154, "nm-openconnect", "NetworkManager user for OpenConnect", "/", "/sbin/nologin", "", ["nm-openconnect"], [], []),
(160, "usbmuxd", "usbmuxd daemon", "/", "/sbin/nologin", "", ["usbmuxd"], [], []),
(161, "openvpn", "OpenVPN", "/etc/openvpn", "/sbin/nologin", "", ["openvpn"], [], []),
(162, "privoxy", "Privoxy", "/etc/privoxy", "/sbin/nologin", "", ["privoxy"], [], []),
(163, "qemu", "qemu user", "/", "/sbin/nologin", "", ["qemu", "kvm"], [], []),
(164, "polipo", "polipo user", "/", "/sbin/nologin", "", ["polipo"], [], []),
(165, "kdm", "kdm", "/var", "/sbin/nologin", "", ["kdm"], [], []),
(166, "nginx", "nginx user", "/etc/nginx", "/sbin/nologin", "", ["nginx"], [], []),
(167, "ntop", "ntop user", "/var/lib/ntop", "/sbin/nologin", "", ["ntop"], [], []),
(168, "smolt", "smolt user", "/dev/null", "/bin/false", "", [], [], []),
(169, "svxlink", "Svxlink Daemon", "/", "/sbin/nologin", "", ["daemon", "audio", "dialout"], [], []),
(170, "dansguardian", "Dansguardian web content filter", "/usr/share/dansguardian", "/sbin/nologin", "", ["dansguardian"], [], []),
(200, "pnp", "PnP", "/dev/null", "/bin/false", "", ["pnp"], [], []),
(250, "mpd", "Music Player Daemon", "/var/lib/mpd", "/bin/false", "", ["audio", "pulse", "pulse-access", "pulse-rt"], [], []),
(252, "vdr", "VDR User", "/var/vdr", "/bin/false", "", ["audio", "video", "cdrom", "dialout"], [], []),
)
for uid, nick, realname, homedir, shell, password, groups, grantedauths, blockedauths in users:
try:
user = pwd.getpwnam(nick)
except KeyError:
hav("addUser", uid, nick, realname, homedir, shell, password, groups, grantedauths, blockedauths)
else:
if user.pw_uid == uid:
# setUser(uid, realname, homedir, shell, passwd, groups)
hav("setUser", uid, realname, homedir, shell, password, groups)
else:
setUserId(nick, uid)
# Migrate users to their new groups if any
migrateUsers()
# We should only install empty files if these files don't already exist.
if not os.path.exists("/var/log/lastlog"):
os.system("/bin/touch /var/log/lastlog")
if not os.path.exists("/run/utmp"):
os.system("/usr/bin/install -m 0664 -g utmp /dev/null /run/utmp")
if not os.path.exists("/var/log/wtmp"):
os.system("/usr/bin/install -m 0664 -g utmp /dev/null /var/log/wtmp")
# Enable shadow groups
os.system("/usr/sbin/grpconv")
os.system("/usr/sbin/grpck -r &>/dev/null")
# Create /root if not exists
if not os.path.exists("/root/"):
shutil.copytree("/etc/skel", "/root")
os.chown("/root", 0, 0)
os.chmod("/root", 0700)
# Tell init to reload new inittab
os.system("/sbin/telinit q")
# Save user defined DNS
if not os.access("/etc/resolv.default.conf", os.R_OK):
os.system("cp /etc/resolv.conf /etc/resolv.default.conf")
# Apply zemberek hack
zemberek_hack()
# Fix permissions of /var/lock folder
os.chown("/var/lock", 0, 54)
os.chmod("/var/lock", 0775)
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
def update_ld_so_cache(filepath):
import glob
import piksemel
import subprocess
libdirs = []
for config_file in glob.glob("/etc/ld.so.conf.d/*.conf"):
for line in open(config_file):
line = line.strip()
if line.startswith("/"):
libdirs.append(line[1:])
libdirs = tuple(libdirs)
doc = piksemel.parse(filepath)
for item in doc.tags("File"):
path = item.getTagData("Path")
if path.startswith(libdirs):
subprocess.call(["/sbin/ldconfig", "-X"])
return
def setupPackage(metapath, filepath):
update_ld_so_cache(filepath)
def cleanupPackage(metapath, filepath):
pass
def postCleanupPackage(metapath, filepath):
update_ld_so_cache(filepath)
+174
View File
@@ -0,0 +1,174 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import string
import subprocess
# Translations
MSG_HOSTNAME = {
"en": "Hostname contains invalid characters: '%s'",
"tr": "Makine ismi geçersiz karakterler içeriyor: '%s'",
"fr": "Le nom d'hôte contient des caractères invalides: '%s'",
"nl": "Hostnaam bevat ongeldige lettertekens: '%s'",
}
# Translations End
HEADER_DEFAULT = """# Default DNS settings
#
"""
HEADER_DYNAMIC = """# This file is automatically generated by COMAR
# Use network-manager to set default DNS settings or edit "resolv.default.conf"
#
# Bu dosya COMAR tarafından otomatik olarak üretilir.
# Öntanımlı DNS ayalarını değiştirmek için network-manager uygulamasını kullanın
# veya "resolv.default.conf" dosyasını düzenleyin.
#
"""
MAX_SERVERS = 3
HOST_CHARS = string.ascii_letters + string.digits + '.' + '_' + '-'
NAME_PATH = "/etc/env.d/01hostname"
CMD_ENV = "/sbin/update-environment"
HOSTS_PATH = "/etc/hosts"
RESOLV_USER = "/etc/resolv.default.conf"
RESOLV_PISILINUX = "/usr/share/baselayout/resolv.conf"
def getSearchDomain():
if not os.access(RESOLV_USER, os.R_OK):
return None
for line in file(RESOLV_USER):
line = line.strip()
if line.startswith("search"):
return line.split()[1]
return None
def getPisiLinuxNameServers():
servers = []
if not os.access(RESOLV_PISILINUX, os.R_OK):
return servers
for line in file(RESOLV_PISILINUX):
line = line.strip()
if line.startswith("nameserver"):
ip = line.split()[1]
if ip not in servers:
servers.append(ip)
return servers
# Network.Stack methods
def getNameServers():
servers = []
if not os.access(RESOLV_USER, os.R_OK):
return servers
for line in file(RESOLV_USER):
line = line.strip()
if line.startswith("nameserver"):
ip = line.split()[1]
if ip not in servers:
servers.append(ip)
return servers
def setNameServers(nameservers, searchdomain):
f = file("/etc/resolv.default.conf", "w")
f.write(HEADER_DEFAULT)
for server in nameservers:
f.write("nameserver %s\n" % server)
if searchdomain:
f.write("searchdomain %s\n" % searchdomain)
f.close()
def useNameServers(nameservers, searchdomain):
# Append default name servers
nameservers.extend(getNameServers())
nameservers.extend(getPisiLinuxNameServers())
servers = []
for server in nameservers:
if server not in servers:
servers.append(server)
f = file("/etc/resolv.conf", "w")
f.write(HEADER_DYNAMIC)
for server in servers[:MAX_SERVERS]:
f.write("nameserver %s\n" % server)
if searchdomain:
f.write("search %s\n" % searchdomain)
elif getSearchDomain():
f.write("search %s\n" % getSearchDomain())
f.close()
def registerNameServers(iface, nameservers, searchdomain):
useNameServers(nameservers, searchdomain)
def unregisterNameServers(iface, nameservers, searchdomain):
# Remove nameservers from list
nameservers = getNameServers()
for server in nameservers:
try:
nameservers.remove(server)
except ValueError:
pass
# Set search domain to "" if it's active one
if searchdomain == getSearchDomain():
searchdomain = ""
useNameServers(nameservers, searchdomain)
def flushNameCache():
pass
def getHostName():
cmd = subprocess.Popen(["/usr/bin/hostname"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
a = cmd.communicate()
if a[1] == "":
return a[0].rstrip("\n")
return ""
def setHostName(hostname):
if not hostname:
return
invalid = filter(lambda x: not x in HOST_CHARS, hostname)
if len(invalid) > 0:
fail(_(MSG_HOSTNAME) % ("".join(invalid)))
# hostname
if os.path.exists(NAME_PATH):
import re
f = file(NAME_PATH)
data = f.read()
f.close()
data = re.sub('HOSTNAME="(.*)"', 'HOSTNAME="%s"' % hostname, data)
else:
data = 'HOSTNAME="%s"\n' % hostname
f = file(NAME_PATH, "w")
f.write(data)
f.close()
# hosts
f = file(HOSTS_PATH)
data = f.readlines()
f.close()
f = file(HOSTS_PATH, "w")
flag = 1
for line in data:
if line.startswith("127.0.0.1"):
line = "127.0.0.1 localhost %s\n" % hostname
flag = 0
f.write(line)
if flag:
f.write("127.0.0.1 localhost %s\n" % hostname)
f.close()
# update environment
os.system(CMD_ENV)
+690
View File
@@ -0,0 +1,690 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2006-2010 TUBITAK/UEKAE
#
# 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.
#
import os
import glob
import fcntl
import random
import shutil
import hashlib
from string import ascii_letters, digits
from pardus.fileutils import FileLock
try:
import polkit
except ImportError:
pass
# faces
FACES = [
"/usr/share/kde4/apps/kdm/pics/users",
]
# messages
invalid_username_msg = {
"en": "User name is invalid.",
"tr": "Kullanıcı adı geçersiz.",
"fr": "Nom d'utilisateur invalide.",
"es": "Nombre de usuario no es válido.",
"de": "Benutzername nicht erlaubt.",
"nl": "Gebruikernaam is ongeldig.",
}
invalid_realname_msg = {
"en": "Real name is invalid.",
"tr": "Gerçek isim geçersiz.",
"fr": "Nom réel invalide.",
"es": "Nombre real no es válido.",
"de": "Dieser vollständige Name ist nicht erlaubt.",
"nl": "Echte naam is ongeldig.",
}
short_password_msg = {
"en": "Password is too short.",
"tr": "Parola çok kısa.",
"fr": "Mot de passe trop court.",
"es": "Contraseña es demadiado corta.",
"de": "Passwort ist zu kurz.",
"nl": "Wachtwoord is te kort.",
}
name_password_msg = {
"en": "Dont use your name as a password.",
"tr": "Adınızı parola olarak kullanmayın.",
"fr": "N'utilisez pas votre nom comme mot de passe.",
"es": "No use su nombre como contraseña.",
"de": "Benutzen Sie nicht Ihren Namen als Passwort.",
"nl": "Uw naam niet als wachtwoord gebruiken.",
}
invalid_group_msg = {
"en": "Invalid group name:",
"tr": "Geçersiz grup adı:",
"fr": "Nom de groupe invalide:",
"es": "Nombre de grupo inválido:",
"de": "Gruppenname nicht erlaubt:",
"nl": "Ongeldige groepnaam:",
}
invalid_userid_msg = {
"en": "Invalid user ID.",
"tr": "Geçersiz kullanıcı numarası.",
"fr": "Identifiant utilisateur invalide.",
"es": "ID de usuario no válido.",
"de": "User-ID nicht erlaubt.",
"nl": "Gebruiker-id is ongeldig.",
}
used_userid_msg = {
"en": "This user ID is already used.",
"tr": "Bu kullanıcı numarası zaten kullanılmakta.",
"fr": "Cet identifiant utilisateur est déjà utilisé.",
"es": "Este ID de usuario ya está en uso.",
"de": "Dieser user-ID is schon vergeben.",
"nl": "Deze gebruiker-id is reeds in gebruik.",
}
used_username_msg = {
"en": "This user name is already used.",
"tr": "Bu kullanıcı adı zaten kullanılmakta.",
"fr": "Ce nom d'utilisateur est déjà utilisé.",
"es": "Este nombre de usuario ya está en uso.",
"de": "Dieser Benutzername is schon vergeben.",
"nl": "Deze gebruikernaam is reeds in gebruik.",
}
no_group_msg = {
"en": "No such group exists.",
"tr": "Böyle bir grup yok.",
"fr": "Il n'existe aucun groupe de ce nom-là.",
"es": "No existe el grupo.",
"de": "Diese Gruppe gibt es nicht.",
"nl": "Deze groep bestaat niet.",
}
no_user_msg = {
"en": "No user with given ID.",
"tr": "Verilen numaralı bir kullanıcı yok.",
"fr": "Il n'existe aucun utilisateur avec et identifiant.",
"es": "No existe usuario con éste ID.",
"de": "Es gibt keien Benutzer mit dem angegebenen ID.",
"nl": "Gebruiker met opgegeven ID bestaat niet.",
}
delete_root_msg = {
"en": "You cant delete root user.",
"tr": "Kök kullanıcıyı silemezsiniz.",
"fr": "Vous ne pouvez pas supprimer l'administrateur.",
"es": "No se puede eliminar al usuario root.",
"de": "Benutzer ROOT darf nicht gelöscht werden.",
"nl": "Systeembeheerder (root) kan niet verwijderd worden.",
}
invalid_groupid_msg = {
"en": "Invalid group ID.",
"tr": "Geçersiz grup numarası.",
"fr": "Identifiant de groupe invalide.",
"es": "ID del grupo inválido.",
"de": "Gruppen-ID nicht zulässig.",
"nl": "Groep-ID is ongeldig.",
}
used_groupid_msg = {
"en": "This group ID is already used.",
"tr": "Bu grup numarası zaten kullanılmakta.",
"fr": "Cet identifiant de groupe est déjà utilisé.",
"es": "Este ID de grupo ya está en uso.",
"de": "Dieser Gruppen-ID is schon vergeben.",
"nl": "Deze groep-ID is reeds in gebruik.",
}
used_groupname_msg = {
"en": "This group name is already used.",
"tr": "Bu grup adı zaten kullanılmakta.",
"fr": "Ce nom de groupe est déjà utilisé.",
"es": "Este nombre de grupo ya está en uso.",
"de": "Dieser Gruppennam is schon vergeben.",
"nl": "Deze groepnaam is reeds in gebruik.",
}
# parameters
uid_minimum = 1000
uid_maximum = 65000
#
def setFace(uid, homedir):
files = []
for directory in FACES:
if os.path.exists(directory):
for filename in os.listdir(directory):
if filename.endswith(".png"):
files.append(os.path.join(directory, filename))
if len(files):
icon = os.path.join(homedir, ".face.icon")
shutil.copy(random.choice(files), icon)
os.chmod(icon, 0644)
os.chown(icon, uid, 100)
def checkName(name):
first_valid = ascii_letters
valid = ascii_letters + "_-" + digits
if len(name) == 0 or len(filter(lambda x: not x in valid, name)) != 0 or not name[0] in first_valid:
fail(_(invalid_username_msg))
def checkRealName(realname):
if len(filter(lambda x: x == "\n" or x == ":", realname)) != 0:
fail(_(invalid_realname_msg))
def checkPassword(password, badlist):
if len(password) < 1:
fail(_(short_password_msg))
if password in badlist:
fail(_(name_password_msg))
def checkGroupName(name):
valid = ascii_letters + "_-"
if name == "" or len(filter(lambda x: not x in valid, name)) != 0:
fail(_(invalid_group_msg) + " " + name)
#
class User:
def __init__(self):
self.password = None
def __str__(self):
return "%s (%d, %d)\n %s\n %s\n %s\n %s" % (
self.name, self.uid, self.gid,
self.realname, self.homedir, self.shell,
self.password
)
class Group:
def __str__(self):
s = "%s (%d)" % (self.name, self.gid)
for name in self.members:
s += "\n %s" % name
return s
class Database:
passwd_path = "/etc/passwd"
shadow_path = "/etc/shadow"
group_path = "/etc/group"
lock_path = "/etc/.pwd.lock"
def __init__(self, for_read=False):
self.lock = FileLock(self.lock_path)
self.lock.lock(shared=for_read)
self.users = {}
self.users_by_name = {}
self.groups = {}
self.groups_by_name = {}
for line in file(self.passwd_path):
if line != "" and line != "\n":
parts = line.rstrip("\n").split(":")
user = User()
user.name = parts[0]
user.uid = int(parts[2])
user.gid = int(parts[3])
user.realname = parts[4]
user.homedir = parts[5]
user.shell = parts[6]
self.users[user.uid] = user
self.users_by_name[user.name] = user
for line in file(self.shadow_path):
if line != "" and line != "\n":
parts = line.rstrip("\n").split(":")
if self.users_by_name.has_key(parts[0]):
user = self.users_by_name[parts[0]]
user.password = parts[1]
user.pwrest = parts[2:]
for line in file(self.group_path):
if line != "" and line != "\n":
parts = line.rstrip("\n").split(":")
group = Group()
group.name = parts[0]
group.gid = int(parts[2])
group.members = parts[3].split(",")
if "" in group.members:
group.members.remove("")
self.groups[group.gid] = group
self.groups_by_name[group.name] = group
def sync(self):
lines = []
keys = self.users.keys()
keys.sort()
for uid in keys:
user = self.users[uid]
lines.append("%s:x:%d:%d:%s:%s:%s\n" % (
user.name, uid, user.gid,
user.realname, user.homedir, user.shell
))
f = file(self.passwd_path, "w")
f.writelines(lines)
f.close()
lines = []
keys = self.users.keys()
keys.sort()
for uid in keys:
user = self.users[uid]
if user.password:
lines.append("%s:%s:%s\n" % (
user.name,
user.password,
":".join(user.pwrest)
))
else:
lines.append("%s::13094:0:99999:7:::\n" % user.name)
f = file(self.shadow_path, "w")
f.writelines(lines)
f.close()
lines = []
keys = self.groups.keys()
keys.sort()
for gid in keys:
group = self.groups[gid]
lines.append("%s:x:%s:%s\n" % (group.name, gid, ",".join(group.members)))
f = file(self.group_path, "w")
f.writelines(lines)
f.close()
def set_groups(self, name, grouplist):
for gid in self.groups.keys():
g = self.groups[gid]
if name in g.members:
if not g.name in grouplist:
g.members.remove(name)
else:
if g.name in grouplist:
g.members.append(name)
def next_uid(self):
for i in range(uid_minimum, uid_maximum):
if not self.users.has_key(i):
return i
def next_gid(self):
for i in range(uid_minimum, uid_maximum):
if not self.groups.has_key(i):
return i
def setup_home(uid, gid, path):
if not os.path.exists(path):
# Copy skeleton home dir
os.system('/bin/cp -r %s "%s"' % ('/etc/skel', path))
# Set a random face icon
faces = glob.glob("/usr/share/*/apps/kdm/pics/users/*.png")
if len(faces) > 0:
facepath = os.path.join(path, '.face.icon')
os.system('/bin/cp --remove-destination "%s" "%s"' % (random.choice(faces), facepath))
os.chmod(facepath, 0644)
# Set ownerships
os.system('/bin/chown -R %d:%d "%s"' % (uid, gid, path))
# Make sure at least top of the home dir's permissions are correct
os.system('/bin/chown %d:%d "%s"' % (uid, gid, path))
os.chmod(path, 0711)
# methods
def userList():
def format(dict, uid):
item = dict[uid]
return (item.uid, item.name, item.realname)
db = Database(for_read=True)
return map(lambda x: format(db.users, x), db.users)
def userInfo(uid):
uid = int(uid)
db = Database(for_read=True)
if db.users.has_key(uid):
u = db.users[uid]
groups = []
for item in db.groups.keys():
if u.name in db.groups[item].members:
groups.append(db.groups[item].name)
grp = db.groups.get(u.gid, None)
if grp:
if grp.name in groups:
groups.remove(grp.name)
groups.insert(0, grp.name)
ret = (
u.name,
u.realname,
u.gid,
u.homedir,
u.shell,
groups,
)
return ret
else:
fail(_(no_user_msg))
def addUser(uid, name, realname, homedir, shell, password, groups, grants, blocks):
if not realname:
realname = ""
if not homedir:
homedir = "/home/" + name
if not shell:
shell = "/bin/bash"
if not groups:
groups = ["nogroup"]
for item in groups:
checkGroupName(item)
checkName(name)
checkRealName(realname)
if password:
checkPassword(password, (name, realname))
db = Database()
if uid == -1:
uid = db.next_uid()
else:
try:
uid = int(uid)
if uid < 0 or uid > 65536:
raise
except:
fail(_(invalid_userid_msg))
if db.users.has_key(uid):
fail(_(used_userid_msg))
if db.users_by_name.has_key(name):
fail(_(used_username_msg))
# First group in the list is the user's main group
g = db.groups_by_name.get(groups[0], None)
if not g:
fail(_(no_group_msg))
gid = g.gid
u = User()
u.uid = uid
u.gid = gid
u.name = name
u.realname = realname
u.homedir = homedir
u.shell = shell
if password:
u.password = shadowCrypt(password)
else:
u.password = "*"
u.pwrest = [ "13094", "0", "99999", "7", "", "", "" ]
db.users[uid] = u
db.set_groups(name, groups)
# No need to setup a real home dir for daemons
if uid >= 1000 or homedir.startswith("/home/"):
setup_home(uid, gid, homedir)
setFace(uid, homedir)
db.sync()
for grant in grants:
if grant != "":
grantAuthorization(uid, grant)
for block in blocks:
if block != "":
blockAuthorization(uid, block)
return uid
def setUser(uid, realname, homedir, shell, password, groups):
uid = int(uid)
db = Database()
u = db.users.get(uid, None)
if u:
if realname:
checkRealName(realname)
u.realname = realname
if homedir:
u.homedir = homedir
if shell:
u.shell = shell
if password:
checkPassword(password, (u.name, u.realname, realname))
u.password = shadowCrypt(password)
if groups:
# FIXME: check main group
for item in groups:
checkGroupName(item)
db.set_groups(u.name, groups)
db.sync()
else:
fail(_(no_user_msg))
def deleteUser(uid, deletefiles):
uid = int(uid)
if uid == 0:
fail(_(delete_root_msg))
db = Database()
u = db.users.get(uid, None)
if u:
#delete authorizations of user
try:
polkit.auth_revoke_all(uid)
except:
pass
home = u.homedir[:]
db.set_groups(u.name, [])
del db.users[uid]
db.sync()
if deletefiles:
os.system('/bin/rm -rf "%s"' % home)
def groupList():
def format(dict, gid):
item = dict[gid]
return (item.gid, item.name)
db = Database(for_read=True)
return map(lambda x: format(db.groups, x), db.groups)
def addGroup(gid, name):
checkGroupName(name)
db = Database()
if gid == -1:
gid = db.next_gid()
else:
try:
gid = int(gid)
if gid < 0 or gid > 65536:
raise
except:
fail(_(invalid_groupid_msg))
if db.groups.has_key(gid):
fail(_(used_groupid_msg))
if db.groups_by_name.has_key(name):
fail(_(used_groupname_msg))
g = Group()
g.gid = gid
g.name = name
g.members = []
db.groups[gid] = g
db.sync()
return gid
def deleteGroup(gid):
gid = int(gid)
db = Database()
if db.groups.has_key(gid):
del db.groups[gid]
db.sync()
#
# Crypt function for shadow file
#
def shadowCrypt(password):
des_salt = list('./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')
salt, magic = str(random.random())[-8:], '$1$'
ctx = hashlib.md5(password)
ctx.update(magic)
ctx.update(salt)
ctx1 = hashlib.md5(password)
ctx1.update(salt)
ctx1.update(password)
final = ctx1.digest()
for i in range(len(password), 0 , -16):
if i > 16:
ctx.update(final)
else:
ctx.update(final[:i])
i = len(password)
while i:
if i & 1:
ctx.update('\0')
else:
ctx.update(password[:1])
i = i >> 1
final = ctx.digest()
for i in range(1000):
ctx1 = hashlib.md5()
if i & 1:
ctx1.update(password)
else:
ctx1.update(final)
if i % 3: ctx1.update(salt)
if i % 7: ctx1.update(password)
if i & 1:
ctx1.update(final)
else:
ctx1.update(password)
final = ctx1.digest()
def _to64(v, n):
r = ''
while (n-1 >= 0):
r = r + des_salt[v & 0x3F]
v = v >> 6
n = n - 1
return r
rv = magic + salt + '$'
final = map(ord, final)
l = (final[0] << 16) + (final[6] << 8) + final[12]
rv = rv + _to64(l, 4)
l = (final[1] << 16) + (final[7] << 8) + final[13]
rv = rv + _to64(l, 4)
l = (final[2] << 16) + (final[8] << 8) + final[14]
rv = rv + _to64(l, 4)
l = (final[3] << 16) + (final[9] << 8) + final[15]
rv = rv + _to64(l, 4)
l = (final[4] << 16) + (final[10] << 8) + final[5]
rv = rv + _to64(l, 4)
l = final[11]
rv = rv + _to64(l, 2)
return rv
#
# List authorizations by UID
#
def listUserAuthorizations(uid):
actions = polkit.auth_list_uid(int(uid))
auths = []
for action in actions:
action_info = polkit.action_info(action['action_id'])
auths.append((action['action_id'], action['scope'], action_info['description'], action_info['policy_active'], action['negative']))
return auths
#
# Grant authorization to user
#
def grantAuthorization(uid, action):
uid = int(uid)
if action == "*":
for action_id in polkit.action_list():
try:
polkit.auth_revoke(uid, action_id)
polkit.auth_add(action_id, polkit.SCOPE_ALWAYS, uid)
except:
return False
else:
try:
polkit.auth_revoke(uid, action)
polkit.auth_add(action, polkit.SCOPE_ALWAYS, uid)
except:
return False
return True
#
# Revoke authorization of user
#
def revokeAuthorization(uid, action):
uid = int(uid)
if action == "*":
for action_id in polkit.action_list():
try:
polkit.auth_revoke(uid, action_id)
except:
return False
else:
try:
polkit.auth_revoke(uid, action)
except:
return False
return True
#
# Block authorization of user
#
def blockAuthorization(uid, action):
uid = int(uid)
if action == "*":
for action_id in polkit.action_list():
try:
polkit.auth_revoke(uid, action_id)
polkit.auth_block(uid, action_id)
except:
return False
else:
try:
polkit.auth_revoke(uid, action)
polkit.auth_block(uid, action)
except:
return False
return True
@@ -0,0 +1,7 @@
f /run/utmp 0664 root utmp
d /run/lock 0755 root lock
d /run/lock/subsys 0755 root root
d /run/pisilinux 0755 root root
d /run/shm 1777 root root
L /dev/shm - - - - /run/shm
d /run/user 0755 root root
@@ -0,0 +1 @@
Pisi_Linux 1.0
+162
View File
@@ -0,0 +1,162 @@
# /etc/protocols:
# $Id: protocols,v 1.10 2010/03/26 13:05:40 ovasik Exp $
#
# Internet (IP) protocols
#
# from: @(#)protocols 5.1 (Berkeley) 4/17/89
#
# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
# Last IANA update included dated 2010-03-11
#
# See also http://www.iana.org/assignments/protocol-numbers
ip 0 IP # internet protocol, pseudo protocol number
hopopt 0 HOPOPT # hop-by-hop options for ipv6
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group management protocol
ggp 3 GGP # gateway-gateway protocol
ipv4 4 IPv4 # IPv4 encapsulation
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
cbt 7 CBT # CBT, Tony Ballardie <A.Ballardie@cs.ucl.ac.uk>
egp 8 EGP # exterior gateway protocol
igp 9 IGP # any private interior gateway (Cisco: for IGRP)
bbn-rcc 10 BBN-RCC-MON # BBN RCC Monitoring
nvp 11 NVP-II # Network Voice Protocol
pup 12 PUP # PARC universal packet protocol
argus 13 ARGUS # ARGUS
emcon 14 EMCON # EMCON
xnet 15 XNET # Cross Net Debugger
chaos 16 CHAOS # Chaos
udp 17 UDP # user datagram protocol
mux 18 MUX # Multiplexing protocol
dcn 19 DCN-MEAS # DCN Measurement Subsystems
hmp 20 HMP # host monitoring protocol
prm 21 PRM # packet radio measurement protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
trunk-1 23 TRUNK-1 # Trunk-1
trunk-2 24 TRUNK-2 # Trunk-2
leaf-1 25 LEAF-1 # Leaf-1
leaf-2 26 LEAF-2 # Leaf-2
rdp 27 RDP # "reliable datagram" protocol
irtp 28 IRTP # Internet Reliable Transaction Protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol Class 4
netblt 30 NETBLT # Bulk Data Transfer Protocol
mfe-nsp 31 MFE-NSP # MFE Network Services Protocol
merit-inp 32 MERIT-INP # MERIT Internodal Protocol
dccp 33 DCCP # Datagram Congestion Control Protocol
3pc 34 3PC # Third Party Connect Protocol
idpr 35 IDPR # Inter-Domain Policy Routing Protocol
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport Proto
tp++ 39 TP++ # TP++ Transport Protocol
il 40 IL # IL Transport Protocol
ipv6 41 IPv6 # IPv6 encapsulation
sdrp 42 SDRP # Source Demand Routing Protocol
ipv6-route 43 IPv6-Route # Routing Header for IPv6
ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6
idrp 45 IDRP # Inter-Domain Routing Protocol
rsvp 46 RSVP # Resource ReSerVation Protocol
gre 47 GRE # Generic Routing Encapsulation
dsr 48 DSR # Dynamic Source Routing Protocol
bna 49 BNA # BNA
esp 50 ESP # Encap Security Payload
ipv6-crypt 50 IPv6-Crypt # Encryption Header for IPv6 (not in official list)
ah 51 AH # Authentication Header
ipv6-auth 51 IPv6-Auth # Authentication Header for IPv6 (not in official list)
i-nlsp 52 I-NLSP # Integrated Net Layer Security TUBA
swipe 53 SWIPE # IP with Encryption
narp 54 NARP # NBMA Address Resolution Protocol
mobile 55 MOBILE # IP Mobility
tlsp 56 TLSP # Transport Layer Security Protocol
skip 57 SKIP # SKIP
ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6
ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6
ipv6-opts 60 IPv6-Opts # Destination Options for IPv6
# 61 # any host internal protocol
cftp 62 CFTP # CFTP
# 63 # any local network
sat-expak 64 SAT-EXPAK # SATNET and Backroom EXPAK
kryptolan 65 KRYPTOLAN # Kryptolan
rvd 66 RVD # MIT Remote Virtual Disk Protocol
ippc 67 IPPC # Internet Pluribus Packet Core
# 68 # any distributed file system
sat-mon 69 SAT-MON # SATNET Monitoring
visa 70 VISA # VISA Protocol
ipcv 71 IPCV # Internet Packet Core Utility
cpnx 72 CPNX # Computer Protocol Network Executive
cphb 73 CPHB # Computer Protocol Heart Beat
wsn 74 WSN # Wang Span Network
pvp 75 PVP # Packet Video Protocol
br-sat-mon 76 BR-SAT-MON # Backroom SATNET Monitoring
sun-nd 77 SUN-ND # SUN ND PROTOCOL-Temporary
wb-mon 78 WB-MON # WIDEBAND Monitoring
wb-expak 79 WB-EXPAK # WIDEBAND EXPAK
iso-ip 80 ISO-IP # ISO Internet Protocol
vmtp 81 VMTP # Versatile Message Transport
secure-vmtp 82 SECURE-VMTP # SECURE-VMTP
vines 83 VINES # VINES
ttp 84 TTP # TTP
nsfnet-igp 85 NSFNET-IGP # NSFNET-IGP
dgp 86 DGP # Dissimilar Gateway Protocol
tcf 87 TCF # TCF
eigrp 88 EIGRP # Enhanced Interior Routing Protocol (Cisco)
ospf 89 OSPFIGP # Open Shortest Path First IGP
sprite-rpc 90 Sprite-RPC # Sprite RPC Protocol
larp 91 LARP # Locus Address Resolution Protocol
mtp 92 MTP # Multicast Transport Protocol
ax.25 93 AX.25 # AX.25 Frames
ipip 94 IPIP # Yet Another IP encapsulation
micp 95 MICP # Mobile Internetworking Control Pro.
scc-sp 96 SCC-SP # Semaphore Communications Sec. Pro.
etherip 97 ETHERIP # Ethernet-within-IP Encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
# 99 # any private encryption scheme
gmtp 100 GMTP # GMTP
ifmp 101 IFMP # Ipsilon Flow Management Protocol
pnni 102 PNNI # PNNI over IP
pim 103 PIM # Protocol Independent Multicast
aris 104 ARIS # ARIS
scps 105 SCPS # SCPS
qnx 106 QNX # QNX
a/n 107 A/N # Active Networks
ipcomp 108 IPComp # IP Payload Compression Protocol
snp 109 SNP # Sitara Networks Protocol
compaq-peer 110 Compaq-Peer # Compaq Peer Protocol
ipx-in-ip 111 IPX-in-IP # IPX in IP
vrrp 112 VRRP # Virtual Router Redundancy Protocol
pgm 113 PGM # PGM Reliable Transport Protocol
# 114 # any 0-hop protocol
l2tp 115 L2TP # Layer Two Tunneling Protocol
ddx 116 DDX # D-II Data Exchange
iatp 117 IATP # Interactive Agent Transfer Protocol
stp 118 STP # Schedule Transfer
srp 119 SRP # SpectraLink Radio Protocol
uti 120 UTI # UTI
smp 121 SMP # Simple Message Protocol
sm 122 SM # SM
ptp 123 PTP # Performance Transparency Protocol
isis 124 ISIS # ISIS over IPv4
fire 125 FIRE
crtp 126 CRTP # Combat Radio Transport Protocol
crdup 127 CRUDP # Combat Radio User Datagram
sscopmce 128 SSCOPMCE
iplt 129 IPLT
sps 130 SPS # Secure Packet Shield
pipe 131 PIPE # Private IP Encapsulation within IP
sctp 132 SCTP # Stream Control Transmission Protocol
fc 133 FC # Fibre Channel
rsvp-e2e-ignore 134 RSVP-E2E-IGNORE
# 135 # Mobility Header
udplite 136 UDPLite
mpls-in-ip 137 MPLS-in-IP
manet 138 manet # MANET Protocols
hip 139 HIP # Host Identity Protocol
shim6 140 Shim6 # Shim6 Protocol
wesp 141 WESP # Wrapped Encapsulating Security Payload
rohc 142 ROHC # Robust Header Compression
# 143-252 Unassigned [IANA]
# 253 Use for experimentation and testing [RFC3692]
# 254 Use for experimentation and testing [RFC3692]
# 255 Reserved [IANA]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,233 @@
.\" Hey, Emacs! This is an -*- nroff -*- source file.
.TH START\-STOP\-DAEMON 8 "15th March 1997" "Debian Project" "Debian GNU/Linux"
.SH NAME
start\-stop\-daemon \- start and stop system daemon programs
.SH SYNOPSIS
.B start-stop-daemon
.BR -S | --start
.IR options
.RB [ \-\- ]
.IR arguments
.HP
.B start-stop-daemon
.BR -K | --stop
.IR options
.HP
.B start-stop-daemon
.BR -H | --help
.HP
.B start-stop-daemon
.BR -V | --version
.SH DESCRIPTION
.B start\-stop\-daemon
is used to control the creation and termination of system-level processes.
Using the
.BR --exec ", " --pidfile ", " --user ", and " --name " options,"
.B start\-stop\-daemon
can be configured to find existing instances of a running process.
With
.BR --start ,
.B start\-stop\-daemon
checks for the existence of a specified process.
If such a process exists,
.B start\-stop\-daemon
does nothing, and exits with error status 1 (0 if
.BR --oknodo
is specified).
If such a process does not exist, it starts an
instance, using either the executable specified by
.BR --exec ,
(or, if specified, by
.BR --startas ).
Any arguments given after
.BR --
on the command line are passed unmodified to the program being
started. If
.B --retry
is specified then start-stop-daemon will check that the process(es)
have terminated.
With
.BR --stop ,
.B start\-stop\-daemon
also checks for the existence of a specified process.
If such a process exists,
.B start\-stop\-daemon
sends it the signal specified by
.BR --signal ,
and exits with error status 0.
If such a process does not exist,
.B start\-stop\-daemon
exits with error status 1
(0 if
.BR --oknodo
is specified).
.SH OPTIONS
.TP
\fB-x\fP|\fB--exec\fP \fIexecutable\fP
Check for processes that are instances of this executable (according to
.B /proc/
.I pid
.B /exe
).
.TP
\fB-p\fP|\fB--pidfile\fP \fIpid-file\fP
Check for processes whose process-id is specified in
.I pid-file.
.TP
\fB-u\fP|\fB--user\fP \fIusername\fP|\fIuid\fP
Check for processes owned by the user specified by
.I username
or
.I uid.
.TP
\fB-n\fP|\fB--name\fP \fIprocess-name\fP
Check for processes with the name
.I process-name
(according to
.B /proc/
.I pid
.B /stat
).
.TP
\fB-s\fP|\fB--signal\fP \fIsignal\fP
With
.BR --stop
, specifies the signal to send to processes being stopped (default 15).
.TP
\fB-R\fP|\fB--retry\fP \fItimeout\fP|\fIschedule\fP
With
.BR --stop ,
specifies that
.B start-stop-daemon
is to check whether the process(es)
do finish. It will check repeatedly whether any matching processes
are running, until none are. If the processes do not exit it will
then take further action as determined by the schedule.
If
.I timeout
is specified instead of
.I schedule
then the schedule
.IB signal / timeout /KILL/ timeout
is used, where
.I signal
is the signal specified with
.BR --signal .
.I schedule
is a list of at least two items separated by slashes
.RB ( / );
each item may be
.BI - signal-number
or [\fB\-\fP]\fIsignal-name\fP,
which means to send that signal,
or
.IR timeout ,
which means to wait that many seconds for processes to
exit,
or
.BR forever ,
which means to repeat the rest of the schedule forever if
necessary.
If the end of the schedule is reached and
.BR forever
is not specified, then
.B start-stop-daemon
exits with error status 2.
If a schedule is specified, then any signal specified
with
.B --signal
is ignored.
.TP
\fB-a\fP|\fB--startas\fP \fIpathname\fP
With
.BR --start ,
start the process specified by
.IR pathname .
If not specified, defaults to the argument given to
.BR --exec .
.TP
.BR -t | --test
Print actions that would be taken and set appropriate return value,
but take no action.
.TP
.BR -o | --oknodo
Return exit status 0 instead of 1 if no actions are (would be) taken.
.TP
.BR -q | --quiet
Do not print informational messages; only display error messages.
.TP
\fB-c\fP|\fB--chuid\fP \fIusername\fR|\fIuid\fP
Change to this username/uid before starting the process. You can also
specify a group by appending a
.BR : ,
then the group or gid in the same way
as you would for the `chown' command (\fIuser\fP\fB:\fP\fIgroup\fP).
When using this option
you must realize that the primary and supplemental groups are set as well,
even if the
.B --group
option is not specified. The
.B --group
option is only for
groups that the user isn't normally a member of (like adding per/process
group membership for generic users like
.BR nobody ).
.TP
\fB-r\fP|\fB--chroot\fP \fIroot\fP
Chdir and chroot to
.I root
before starting the process. Please note that the pidfile is also written
after the chroot.
.TP
.BR -b | --background
Typically used with programs that don't detach on their own. This option
will force
.B start-stop-daemon
to fork before starting the process, and force it into the background.
.B WARNING: start-stop-daemon
cannot check the exit status if the process fails to execute for
.B any
reason. This is a last resort, and is only meant for programs that either
make no sense forking on their own, or where it's not feasible to add the
code for it to do this itself.
.TP
.BR -N | --nicelevel
This alters the prority of the process before starting it.
.TP
.BR -m | --make-pidfile
Used when starting a program that does not create its own pid file. This
option will make
.B start-stop-daemon
create the file referenced with
.B --pidfile
and place the pid into it just before executing the process. Note, it will
not be removed when stopping the program.
.B NOTE:
This feature may not work in all cases. Most notably when the program
being executed forks from its main process. Because of this it is usually
only useful when combined with the
.B --background
option.
.TP
.BR -v | --verbose
Print verbose informational messages.
.TP
.BR -H | --help
Print help information; then exit.
.TP
.BR -V | --version
Print version information; then exit.
.SH AUTHORS
Marek Michalkiewicz <marekm@i17linuxb.ists.pwr.wroc.pl> based on
a previous version by Ian Jackson <ian@chiark.greenend.org.uk>.
Manual page by Klee Dienes <klee@mit.edu>, partially reformatted
by Ian Jackson.
+68
View File
@@ -0,0 +1,68 @@
# For more information on how this file works, please see
# the manpages sysctl(8) and sysctl.conf(5).
#
# In order for this file to work properly, you must first
# enable 'Sysctl support' in the kernel.
#
# Look in /proc/sys/ for all the things you can setup.
#
# Disables packet forwarding
#net.ipv4.ip_forward = 0
# Disables IP dynaddr
#net.ipv4.ip_dynaddr = 0
# Disable ECN
#net.ipv4.tcp_ecn = 0
# Enables source route verification
net.ipv4.conf.default.rp_filter = 1
# Enable reverse path
net.ipv4.conf.all.rp_filter = 1
# Enable SYN cookies
# http://cr.yp.to/syncookies.html
#net.ipv4.tcp_syncookies = 1
# Disable source route
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv4.conf.default.accept_source_route = 0
# Disable redirects
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv4.conf.default.accept_redirects = 0
# Disable secure redirects
#net.ipv4.conf.all.secure_redirects = 0
#net.ipv4.conf.default.secure_redirects = 0
# Enable NF_CONNTRACK_ACCT
# net.netfilter.nf_conntrack_acct = 1
# Ignore ICMP broadcasts
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disables the magic-sysrq key
#kernel.sysrq = 0
# When the kernel panics, automatically reboot in 3 seconds
#kernel.panic = 3
# Allow for more PIDs (cool factor!); may break some programs
#kernel.pid_max = 999999
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# TCP Port for lock manager
#fs.nfs.nlm_tcpport = 0
# UDP Port for lock manager
#fs.nfs.nlm_udpport = 0
# default is 8k, nepomuk runs better with 512K
fs.inotify.max_user_watches = 524288
@@ -0,0 +1,21 @@
#!/bin/bash
IANA_VERSION=2.30
wget http://sethwklein.net/iana-etc-$IANA_VERSION.tar.bz2
tar xvf iana-etc-$IANA_VERSION.tar.bz2
pushd iana-etc-$IANA_VERSION
sed -i 's:file=protocol-numbers:file=protocol-numbers/protocol-numbers.txt:' Makefile
make get
LC_ALL=C make
make test
cp {services,protocols} ../
popd
# Cleanup
rm -rf iana-etc-$IANA_VERSION
+162
View File
@@ -0,0 +1,162 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>baselayout</Name>
<Homepage>http://www.pisilinux.org</Homepage>
<Packager>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<IsA>library</IsA>
<IsA>data</IsA>
<Summary>Filesystem baselayout</Summary>
<Description>baselayout creates the Pisi Linux Linux main filesystem hierarchy.</Description>
<Archive sha1sum="89cb1dc3c3a2fc47c299ae6c002cad212b7fc56e" type="targz">http://source.pisilinux.org/1.0/baselayout-3.10.0.tar.gz</Archive>
</Source>
<Package>
<Name>baselayout</Name>
<RuntimeDependencies>
<Dependency>pypolkit</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable" permanent="true">/bin</Path>
<Path fileType="executable" permanent="true">/sbin</Path>
<Path fileType="library" permanent="true">/lib*</Path>
<Path fileType="config" permanent="true">/etc</Path>
<Path fileType="data" permanent="true">/etc/pisilinux-release</Path>
<Path fileType="data" permanent="true">/media</Path>
<Path fileType="data" permanent="true">/boot</Path>
<Path fileType="data" permanent="true">/proc</Path>
<Path fileType="data" permanent="true">/home</Path>
<Path fileType="data" permanent="true">/mnt</Path>
<Path fileType="data" permanent="true">/opt</Path>
<Path fileType="data" permanent="true">/dev</Path>
<Path fileType="data" permanent="true">/run</Path>
<Path fileType="data" permanent="true">/sys</Path>
<Path fileType="data" permanent="true">/srv</Path>
<Path fileType="data" permanent="true">/tmp</Path>
<Path fileType="data" permanent="true">/usr</Path>
<Path fileType="data" permanent="true">/var</Path>
<Path fileType="config">/usr/lib/tmpfiles.d/baselayout.conf</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/usr/lib/tmpfiles.d/baselayout.conf">baselayout.conf</AdditionalFile>
<!-- Update these from fedora's setup package -->
<AdditionalFile owner="root" permission="0644" target="/etc/services">services</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/protocols">protocols</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/sysctl.conf">sysctl.conf</AdditionalFile>
<!-- Release file for Pisi Linux, there's another in lsb-release package -->
<AdditionalFile owner="root" permission="0644" target="/etc/pisilinux-release">pisilinux-release</AdditionalFile>
<!-- Should be dropped after switching to systemd as the only user is COMAR -->
<AdditionalFile owner="root" permission="0644" target="/usr/share/man/man8/start-stop-daemon.8">start-stop-daemon.8</AdditionalFile>
</AdditionalFiles>
<Provides>
<COMAR script="pakhandler.py">System.PackageHandler</COMAR>
<COMAR script="package.py">System.Package</COMAR>
<COMAR script="usermgr.py">User.Manager</COMAR>
<COMAR script="stack.py">Network.Stack</COMAR>
</Provides>
</Package>
<History>
<Update release="13">
<Date>2014-07-16</Date>
<Version>3.10.0</Version>
<Comment>Add vboxusers</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="12">
<Date>2014-07-16</Date>
<Version>3.10.0</Version>
<Comment>Release Pisi Linux 1.0</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="11">
<Date>2014-05-11</Date>
<Version>3.10.0</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="10">
<Date>2014-03-15</Date>
<Version>3.10.0</Version>
<Comment>Rebuild.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="9">
<Date>2014-01-19</Date>
<Version>3.10.0</Version>
<Comment>Update baselayout.conf</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2014-01-08</Date>
<Version>3.10.0</Version>
<Comment>Add baselayout.conf</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="7">
<Date>2013-12-20</Date>
<Version>3.10.0</Version>
<Comment>Release Pisi Linux Rc2</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2013-10-27</Date>
<Version>3.10.0</Version>
<Comment>Add gdm user and group, apply chmod 1777 to dev/shm aka run/shm.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2013-09-10</Date>
<Version>3.10.0</Version>
<Comment>Add shm dir to run, new archive.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2013-09-05</Date>
<Version>3.8.0</Version>
<Comment>Add missing method to pakhandler.py</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-08-31</Date>
<Version>3.8.0</Version>
<Comment>release Izmir</Comment>
<Name>Erdinç Gültekin</Name>
<Email>erdincgultekin@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2013-03-24</Date>
<Version>3.8.0</Version>
<Comment>Pisi Linux changes.</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2013-01-11</Date>
<Version>3.7.1</Version>
<Comment>First release</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
</History>
</PISI>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" ?>
<PISI>
<Source>
<Name>baselayout</Name>
<Summary xml:lang="tr">Dosya sisteminin temel planı</Summary>
<Description xml:lang="tr">Bu paket, Pisi Linux dosya sisteminin temelini oluşturur.</Description>
<Description xml:lang="fr">Ce paquet crée la hiérarchie du système de fichier principal de Pisi Linux.</Description>
</Source>
</PISI>
+52
View File
@@ -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 autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
cfgsettings = """-DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\' \
-DSTANDARD_UTILS_PATH=\'\"/bin:/usr/bin:/sbin:/usr/sbin\"\' \
-DSYS_BASHRC=\'\"/etc/bash/bashrc\"\' \
-DNON_INTERACTIVE_LOGIN_SHELLS \
-DSSH_SOURCE_BASHRC"""
#-DSYS_BASH_LOGOUT=\'\"/etc/bash/bash_logout\"\' \
def setup():
# Recycles pids is neccessary. When bash's last fork's pid was X and new fork's pid is also X,
# bash has to wait for this same pid. Without Recycles pids bash will not wait.
shelltools.export("CFLAGS", "%s -D_GNU_SOURCE -DRECYCLES_PIDS %s " % (get.CFLAGS(), cfgsettings))
autotools.autoconf()
autotools.configure("--without-installed-readline \
--disable-profiling \
--without-gnu-malloc \
--disable-rpath \
--with-curses")
def build():
autotools.make()
# FIXME: package build stops right after checking even when no errors happen (probably
# due to SIGHUP in test). It is the duty of the packager to run tests by hand.
#def check():
# autotools.make("check")
def install():
autotools.install()
pisitools.domove("/usr/bin/bash", "/bin")
pisitools.dosym("/bin/bash","/bin/sh")
pisitools.dosym("/bin/bash","/bin/rbash")
# Compatibility with old skels
# pisitools.dosym("/etc/bash/bashrc", "/etc/bashrc")
pisitools.dosym("bash.info", "/usr/share/info/bashref.info")
pisitools.doman("doc/bash.1", "doc/bashbug.1", "doc/builtins.1", "doc/rbash.1")
pisitools.dodoc("README", "NEWS", "AUTHORS", "CHANGES", "COMPAT", "Y2K", "doc/FAQ", "doc/INTRO")
+54
View File
@@ -0,0 +1,54 @@
# /etc/bash/bashrc
#
# This file is sourced by all *interactive* bash shells on startup,
# including some apparently interactive shells such as scp and rcp
# that can't tolerate any output. So make sure this doesn't display
# anything or bad things will happen !
# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control. #65623
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize
# Minor errors in the spelling of a directory component in a cd command
# will be corrected.
shopt -s cdspell
# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS. Try to use the external file
# first to take advantage of user additions.
use_color=false
safe_term=${TERM//[^[:alnum:]]/.} # sanitize TERM
if [[ -f /etc/DIR_COLORS ]] ; then
grep -q "^TERM ${safe_term}" /etc/DIR_COLORS && use_color=true
elif type -p dircolors >/dev/null ; then
if dircolors --print-database | grep -q "^TERM ${safe_term}" ; then
use_color=true
fi
fi
if ${use_color} ; then
if [ "$EUID" = 0 ] || [ "`whoami`" == 'root' ]; then
export PS1='\[\033[1;31m\]\h \[\033[1;34m\]\W \$ \[\033[00m\]'
else
export PS1='\[\033[1m\]\u@\h \[\033[0;31m\]\W \$ \[\033[00m\]'
fi
else
PS1='\u@\h: \W \$ '
fi
# Try to keep environment pollution down, EPA loves us.
unset use_color safe_term
@@ -0,0 +1,8 @@
# command-not-found handle support
if [ -x /usr/bin/command-not-found ]; then
function command_not_found_handle
{
/usr/bin/command-not-found $1
return $?
}
fi
@@ -0,0 +1,11 @@
--- bash-2.02-orig/parse.y Wed Mar 25 18:16:23 1998
+++ bash-2.02/parse.y Sun Apr 19 16:46:34 1998
@@ -923,7 +923,7 @@
#if defined (READLINE)
char *current_readline_prompt = (char *)NULL;
-char *current_readline_line = (char *)NULL;
+unsigned char *current_readline_line = (unsigned char *)NULL;
int current_readline_line_index = 0;
static int
@@ -0,0 +1,11 @@
--- bash-3.0/config-top.h.paths 2003-08-05 15:36:12.000000000 +0100
+++ bash-3.0/config-top.h 2004-07-28 09:36:27.117205637 +0100
@@ -66,7 +66,7 @@
the Posix.2 confstr () function, or CS_PATH define are not present. */
#ifndef STANDARD_UTILS_PATH
#define STANDARD_UTILS_PATH \
- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc"
+ "/bin:/usr/bin:/usr/sbin:/sbin"
#endif
/* Default primary and secondary prompt strings. */
@@ -0,0 +1,12 @@
diff -up bash-3.2/config-top.h.profile bash-3.2/config-top.h
--- bash-3.2/config-top.h.profile 2008-07-17 13:35:39.000000000 +0200
+++ bash-3.2/config-top.h 2008-07-17 13:42:18.000000000 +0200
@@ -26,6 +26,8 @@
what POSIX.2 specifies. */
#define CONTINUE_AFTER_KILL_ERROR
+#define NON_INTERACTIVE_LOGIN_SHELLS
+
/* Define BREAK_COMPLAINS if you want the non-standard, but useful
error messages about `break' and `continue' out of context. */
#define BREAK_COMPLAINS
@@ -0,0 +1,219 @@
diff -up bash-4.2-rc2/config.h.in.interpreter bash-4.2-rc2/config.h.in
--- bash-4.2-rc2/config.h.in.interpreter 2011-02-09 07:59:21.000000000 +0100
+++ bash-4.2-rc2/config.h.in 2011-02-09 07:59:21.000000000 +0100
@@ -706,6 +706,9 @@
/* Define if you have the pathconf function. */
#undef HAVE_PATHCONF
+/* Define if you have the pread function. */
+#undef HAVE_PREAD
+
/* Define if you have the putenv function. */
#undef HAVE_PUTENV
@@ -898,6 +901,9 @@
/* Define if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* Define if you have the <elf.h> header file. */
+#undef HAVE_ELF_H
+
/* Define if you have the <grp.h> header file. */
#undef HAVE_GRP_H
diff -up bash-4.2-rc2/configure.in.interpreter bash-4.2-rc2/configure.in
--- bash-4.2-rc2/configure.in.interpreter 2011-01-16 21:31:12.000000000 +0100
+++ bash-4.2-rc2/configure.ac 2011-02-09 08:02:27.000000000 +0100
@@ -659,7 +659,7 @@ BASH_HEADER_INTTYPES
AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
memory.h locale.h termcap.h termio.h termios.h dlfcn.h \
stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
- regex.h syslog.h ulimit.h)
+ regex.h syslog.h ulimit.h elf.h)
AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h \
sys/resource.h sys/param.h sys/socket.h sys/stat.h \
sys/time.h sys/times.h sys/types.h sys/wait.h)
@@ -723,7 +723,7 @@ dnl checks for system calls
AC_CHECK_FUNCS(dup2 eaccess fcntl getdtablesize getgroups gethostname \
getpagesize getpeername getrlimit getrusage gettimeofday \
kill killpg lstat readlink sbrk select setdtablesize \
- setitimer tcgetpgrp uname ulimit waitpid)
+ setitimer tcgetpgrp uname ulimit waitpid pread)
AC_REPLACE_FUNCS(rename)
dnl checks for c library functions
diff -up bash-4.2-rc2/execute_cmd.c.interpreter bash-4.2-rc2/execute_cmd.c
--- bash-4.2-rc2/execute_cmd.c.interpreter 2011-01-20 04:24:47.000000000 +0100
+++ bash-4.2-rc2/execute_cmd.c 2011-02-09 07:59:21.000000000 +0100
@@ -41,6 +41,10 @@
# include <unistd.h>
#endif
+#ifdef HAVE_ELF_H
+# include <elf.h>
+#endif
+
#include "posixtime.h"
#if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
@@ -4975,14 +4979,22 @@ shell_execve (command, args, env)
{
/* The file has the execute bits set, but the kernel refuses to
run it for some reason. See why. */
+#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
+ int fd = open (command, O_RDONLY);
+
+ if (fd >= 0)
+ sample_len = read (fd, sample, sizeof (sample));
+ else
+ sample_len = -1;
+#endif
#if defined (HAVE_HASH_BANG_EXEC)
- READ_SAMPLE_BUF (command, sample, sample_len);
sample[sample_len - 1] = '\0';
if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
{
char *interp;
int ilen;
+ close (fd);
interp = getinterp (sample, sample_len, (int *)NULL);
ilen = strlen (interp);
errno = i;
@@ -4997,6 +5009,136 @@ shell_execve (command, args, env)
return (EX_NOEXEC);
}
#endif
+#if defined (HAVE_ELF_H)
+ if (i == ENOENT
+ && sample_len > EI_NIDENT
+ && memcmp (sample, ELFMAG, SELFMAG) == 0)
+ {
+ off_t offset = -1;
+
+ /* It is an ELF file. Now determine whether it is dynamically
+ linked and if yes, get the offset of the interpreter
+ string. */
+ if (sample[EI_CLASS] == ELFCLASS32
+ && sample_len > sizeof (Elf32_Ehdr))
+ {
+ Elf32_Ehdr ehdr;
+ Elf32_Phdr *phdr;
+ int nphdr;
+
+ /* We have to copy the data since the sample buffer
+ might not be aligned correctly to be accessed as
+ an Elf32_Ehdr struct. */
+ memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
+
+ nphdr = ehdr.e_phnum;
+ phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
+ if (phdr != NULL)
+ {
+#ifdef HAVE_PREAD
+ sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
+ ehdr.e_phoff);
+#else
+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
+ sample_len = read (fd, phdr,
+ nphdr * ehdr.e_phentsize);
+ else
+ sample_len = -1;
+#endif
+ if (sample_len == nphdr * ehdr.e_phentsize)
+ while (nphdr-- > 0)
+ if (phdr[nphdr].p_type == PT_INTERP)
+ {
+ offset = phdr[nphdr].p_offset;
+ break;
+ }
+ free (phdr);
+ }
+ }
+ else if (sample[EI_CLASS] == ELFCLASS64
+ && sample_len > sizeof (Elf64_Ehdr))
+ {
+ Elf64_Ehdr ehdr;
+ Elf64_Phdr *phdr;
+ int nphdr;
+
+ /* We have to copy the data since the sample buffer
+ might not be aligned correctly to be accessed as
+ an Elf64_Ehdr struct. */
+ memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
+
+ nphdr = ehdr.e_phnum;
+ phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
+ if (phdr != NULL)
+ {
+#ifdef HAVE_PREAD
+ sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
+ ehdr.e_phoff);
+#else
+ if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
+ sample_len = read (fd, phdr,
+ nphdr * ehdr.e_phentsize);
+ else
+ sample_len = -1;
+#endif
+ if (sample_len == nphdr * ehdr.e_phentsize)
+ while (nphdr-- > 0)
+ if (phdr[nphdr].p_type == PT_INTERP)
+ {
+ offset = phdr[nphdr].p_offset;
+ break;
+ }
+ free (phdr);
+ }
+ }
+
+ if (offset != -1)
+ {
+ size_t maxlen = 0;
+ size_t actlen = 0;
+ char *interp = NULL;
+
+ do
+ {
+ if (actlen == maxlen)
+ {
+ char *newinterp = realloc (interp, maxlen += 200);
+ if (newinterp == NULL)
+ {
+ actlen = 0;
+ break;
+ }
+ interp = newinterp;
+
+#ifdef HAVE_PREAD
+ actlen = pread (fd, interp, maxlen, offset);
+#else
+ if (lseek (fd, offset, SEEK_SET) != -1)
+ actlen = read (fd, interp, maxlen);
+ else
+ actlen = -1;
+#endif
+ }
+ }
+ while (actlen > 0 && memchr (interp, '\0', actlen) == NULL);
+
+ if (actlen > 0)
+ {
+ close (fd);
+ errno = i;
+ sys_error ("%s: %s: bad ELF interpreter", command,
+ interp);
+ free (interp);
+ return (EX_NOEXEC);
+ }
+
+ free (interp);
+ }
+ }
+#endif
+#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
+ close (fd);
+#endif
errno = i;
file_error (command);
}
@@ -0,0 +1,10 @@
--- bash-2.05b/builtins/Makefile.in.debuginfo 2003-03-25 17:25:21.000000000 +0000
+++ bash-2.05b/builtins/Makefile.in 2003-03-25 17:25:49.000000000 +0000
@@ -93,7 +93,6 @@
$(RM) $@
./$(MKBUILTINS) $(DIRECTDEFINE) $<
$(CC) -c $(CCFLAGS) $*.c || ( $(RM) $*.c ; exit 1 )
- $(RM) $*.c
# How to make a .c file from a .def file.
.def.c:
@@ -0,0 +1,10 @@
--- bash-2.05b/doc/builtins.1.manso 2003-02-10 18:58:21.000000000 +0000
+++ bash-2.05b/doc/builtins.1 2003-02-10 18:58:28.000000000 +0000
@@ -10,6 +10,6 @@
ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1)
.SH BASH BUILTIN COMMANDS
.nr zZ 1
-.so bash.1
+.so man1/bash.1
.SH SEE ALSO
bash(1), sh(1)
@@ -0,0 +1,11 @@
--- bash-2.05b/aclocal.m4.pgrp_sync 2002-06-25 14:45:43.000000000 +0100
+++ bash-2.05b/aclocal.m4 2003-01-15 18:17:35.000000000 +0000
@@ -1255,7 +1255,7 @@
wait(&status);
exit(ok ? 0 : 5);
}
-], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
+], bash_cv_pgrp_pipe=yes,bash_cv_pgrp_pipe=yes,
[AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
bash_cv_pgrp_pipe=no])
])
@@ -0,0 +1,11 @@
--- bash-2.05b/lib/readline/readline.c.oom 2002-03-13 23:10:46.000000000 +0100
+++ bash-2.05b/lib/readline/readline.c 2002-08-07 12:02:04.000000000 +0200
@@ -817,7 +817,7 @@
/* Special case rl_do_lowercase_version (). */
if (func == rl_do_lowercase_version)
/* Should we do anything special if key == ANYOTHERKEY? */
- return (_rl_dispatch (_rl_to_lower (key), map));
+ return (_rl_dispatch (_rl_to_lower ((unsigned char)key), map));
rl_executing_keymap = map;
rl_executing_key = key;
@@ -0,0 +1,19 @@
--- bash-3.1/Makefile.in.xcc 2005-10-25 19:37:52.000000000 +0100
+++ bash-3.1/Makefile.in 2005-12-23 16:11:09.000000000 +0000
@@ -68,6 +68,7 @@
ARFLAGS = @ARFLAGS@
RANLIB = @RANLIB@
SIZE = @SIZE@
+STRIP = strip
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -535,7 +536,7 @@
@chmod a+rx bashbug
strip: $(Program) .made
- strip $(Program)
+ $(STRIP) $(Program)
ls -l $(Program)
-$(SIZE) $(Program)
@@ -0,0 +1,96 @@
diff -up bash-4.2/config.h.in.audit bash-4.2/config.h.in
--- bash-4.2/config.h.in.audit 2013-01-31 16:26:16.857698992 +0100
+++ bash-4.2/config.h.in 2013-01-31 16:26:16.876699255 +0100
@@ -1131,6 +1131,14 @@
/* End additions for lib/intl */
+
+/* Additions for lib/readline */
+
+/* Define if you have <linux/audit.h> and it defines AUDIT_USER_TTY */
+#undef HAVE_DECL_AUDIT_USER_TTY
+
+/* End additions for lib/readline */
+
#include "config-bot.h"
#endif /* _CONFIG_H_ */
diff -up bash-4.2/configure.in.audit bash-4.2/configure.in
--- bash-4.2/configure.in.audit 2013-01-31 16:26:16.858699005 +0100
+++ bash-4.2/configure.ac 2013-01-31 16:26:16.877699269 +0100
@@ -888,6 +888,8 @@ BASH_FUNC_DUP2_CLOEXEC_CHECK
BASH_SYS_PGRP_SYNC
BASH_SYS_SIGNAL_VINTAGE
+AC_CHECK_DECLS([AUDIT_USER_TTY],,, [[#include <linux/audit.h>]])
+
dnl checking for the presence of certain library symbols
BASH_SYS_ERRLIST
BASH_SYS_SIGLIST
diff -up bash-4.2/lib/readline/readline.c.audit bash-4.2/lib/readline/readline.c
--- bash-4.2/lib/readline/readline.c.audit 2013-01-31 16:26:16.871699185 +0100
+++ bash-4.2/lib/readline/readline.c 2013-01-31 17:24:23.902744860 +0100
@@ -55,6 +55,12 @@
extern int errno;
#endif /* !errno */
+#if defined (HAVE_DECL_AUDIT_USER_TTY)
+# include <sys/socket.h>
+# include <linux/audit.h>
+# include <linux/netlink.h>
+#endif
+
/* System-specific feature definitions and include files. */
#include "rldefs.h"
#include "rlmbutil.h"
@@ -301,7 +307,48 @@ rl_set_prompt (prompt)
rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
return 0;
}
-
+
+#if defined (HAVE_DECL_AUDIT_USER_TTY)
+/* Report STRING to the audit system. */
+static void
+audit_tty (char *string)
+{
+ struct sockaddr_nl addr;
+ struct msghdr msg;
+ struct nlmsghdr nlm;
+ struct iovec iov[2];
+ size_t size;
+ int fd;
+
+ size = strlen (string) + 1;
+ fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_AUDIT);
+ if (fd < 0)
+ return;
+ nlm.nlmsg_len = NLMSG_LENGTH (size);
+ nlm.nlmsg_type = AUDIT_USER_TTY;
+ nlm.nlmsg_flags = NLM_F_REQUEST;
+ nlm.nlmsg_seq = 0;
+ nlm.nlmsg_pid = 0;
+ iov[0].iov_base = &nlm;
+ iov[0].iov_len = sizeof (nlm);
+ iov[1].iov_base = string;
+ iov[1].iov_len = size;
+ addr.nl_family = AF_NETLINK;
+ addr.nl_pad = 0;
+ addr.nl_pid = 0;
+ addr.nl_groups = 0;
+ msg.msg_name = &addr;
+ msg.msg_namelen = sizeof (addr);
+ msg.msg_iov = iov;
+ msg.msg_iovlen = 2;
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
+ msg.msg_flags = 0;
+ (void)sendmsg (fd, &msg, 0);
+ close (fd);
+}
+#endif
+
/* Read a line of input. Prompt with PROMPT. An empty PROMPT means
none. A return value of NULL means that EOF was encountered. */
char *
@@ -0,0 +1,12 @@
diff -up bash-4.0/config-top.h.ssh_source_bash bash-4.0/config-top.h
--- bash-4.0/config-top.h.ssh_source_bash 2009-01-21 15:20:06.000000000 +0100
+++ bash-4.0/config-top.h 2009-01-21 15:25:46.000000000 +0100
@@ -90,7 +90,7 @@
sshd and source the .bashrc if so (like the rshd behavior). This checks
for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment,
which can be fooled under certain not-uncommon circumstances. */
-/* #define SSH_SOURCE_BASHRC */
+#define SSH_SOURCE_BASHRC
/* Define if you want the case-capitalizing operators (~[~]) and the
`capcase' variable attribute (declare -c). */
@@ -0,0 +1,154 @@
diff -up bash-4.0/execute_cmd.c.nobits bash-4.0/execute_cmd.c
--- bash-4.0/execute_cmd.c.nobits 2009-08-11 11:53:38.000000000 +0200
+++ bash-4.0/execute_cmd.c 2009-08-14 16:18:18.000000000 +0200
@@ -4747,6 +4747,7 @@ shell_execve (command, args, env)
&& memcmp (sample, ELFMAG, SELFMAG) == 0)
{
off_t offset = -1;
+ int dynamic_nobits = 0;
/* It is an ELF file. Now determine whether it is dynamically
linked and if yes, get the offset of the interpreter
@@ -4756,13 +4757,61 @@ shell_execve (command, args, env)
{
Elf32_Ehdr ehdr;
Elf32_Phdr *phdr;
- int nphdr;
+ Elf32_Shdr *shdr;
+ int nphdr, nshdr;
/* We have to copy the data since the sample buffer
might not be aligned correctly to be accessed as
an Elf32_Ehdr struct. */
memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
+ nshdr = ehdr.e_shnum;
+ shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize);
+
+ if (shdr != NULL)
+ {
+#ifdef HAVE_PREAD
+ sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
+ ehdr.e_shoff);
+#else
+ if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
+ sample_len = read (fd, shdr,
+ nshdr * ehdr.e_shentsize);
+ else
+ sample_len = -1;
+#endif
+ if (sample_len == nshdr * ehdr.e_shentsize)
+ {
+ char *strings = (char *) malloc (shdr[ehdr.e_shstrndx].sh_size);
+ if (strings != NULL)
+ {
+#ifdef HAVE_PREAD
+ sample_len = pread (fd, strings,
+ shdr[ehdr.e_shstrndx].sh_size,
+ shdr[ehdr.e_shstrndx].sh_offset);
+#else
+ if (lseek (fd, shdr[ehdr.e_shstrndx].sh_offset,
+ SEEK_SET) != -1)
+ sample_len = read (fd, strings,
+ shdr[ehdr.e_shstrndx].sh_size);
+ else
+ sample_len = -1;
+#endif
+ if (sample_len == shdr[ehdr.e_shstrndx].sh_size)
+ while (nshdr-- > 0)
+ if (strcmp (strings + shdr[nshdr].sh_name,
+ ".interp") == 0 &&
+ shdr[nshdr].sh_type == SHT_NOBITS)
+ {
+ dynamic_nobits++;
+ break;
+ }
+ free (strings);
+ }
+ }
+ free (shdr);
+ }
+
nphdr = ehdr.e_phnum;
phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
if (phdr != NULL)
@@ -4792,13 +4841,60 @@ shell_execve (command, args, env)
{
Elf64_Ehdr ehdr;
Elf64_Phdr *phdr;
- int nphdr;
+ Elf64_Shdr *shdr;
+ int nphdr, nshdr;
/* We have to copy the data since the sample buffer
might not be aligned correctly to be accessed as
an Elf64_Ehdr struct. */
memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
+ nshdr = ehdr.e_shnum;
+ shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize);
+ if (shdr != NULL)
+ {
+#ifdef HAVE_PREAD
+ sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
+ ehdr.e_shoff);
+#else
+ if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
+ sample_len = read (fd, shdr,
+ nshdr * ehdr.e_shentsize);
+ else
+ sample_len = -1;
+#endif
+ if (sample_len == nshdr * ehdr.e_shentsize)
+ {
+ char *strings = (char *) malloc (shdr[ehdr.e_shstrndx].sh_size);
+ if (strings != NULL)
+ {
+#ifdef HAVE_PREAD
+ sample_len = pread (fd, strings,
+ shdr[ehdr.e_shstrndx].sh_size,
+ shdr[ehdr.e_shstrndx].sh_offset);
+#else
+ if (lseek (fd, shdr[ehdr.e_shstrndx].sh_offset,
+ SEEK_SET) != -1)
+ sample_len = read (fd, strings,
+ shdr[ehdr.e_shstrndx].sh_size);
+ else
+ sample_len = -1;
+#endif
+ if (sample_len == shdr[ehdr.e_shstrndx].sh_size)
+ while (nshdr-- > 0)
+ if (strcmp (strings + shdr[nshdr].sh_name,
+ ".interp") == 0 &&
+ shdr[nshdr].sh_type == SHT_NOBITS)
+ {
+ dynamic_nobits++;
+ break;
+ }
+ free (strings);
+ }
+ }
+ free (shdr);
+ }
+
nphdr = ehdr.e_phnum;
phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
if (phdr != NULL)
@@ -4858,8 +4954,15 @@ shell_execve (command, args, env)
{
close (fd);
errno = i;
- sys_error ("%s: %s: bad ELF interpreter", command,
- interp);
+ if (dynamic_nobits > 0)
+ {
+ sys_error ("%s: bad ELF interpreter", command);
+ }
+ else
+ {
+ sys_error ("%s: %s: bad ELF interpreter", command,
+ interp);
+ }
free (interp);
return (EX_NOEXEC);
}
@@ -0,0 +1,12 @@
diff -up bash-4.1/config-top.h.broken_pipe bash-4.1/config-top.h
--- bash-4.1/config-top.h.broken_pipe 2011-01-06 18:01:30.000000000 +0100
+++ bash-4.1/config-top.h 2011-01-06 18:02:14.000000000 +0100
@@ -51,7 +51,7 @@
/* Define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS if you don't want builtins
like `echo' and `printf' to report errors when output does not succeed
due to EPIPE. */
-/* #define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS */
+#define DONT_REPORT_BROKEN_PIPE_WRITE_ERRORS
/* The default value of the PATH variable. */
#ifndef DEFAULT_PATH_VALUE
@@ -0,0 +1,11 @@
diff -pruN bash-4.1/jobs.c bash-4.1.patched/jobs.c
--- bash-4.1/jobs.c 2009-11-30 03:42:05.000000000 +0530
+++ bash-4.1.patched/jobs.c 2012-03-06 16:44:15.706595703 +0530
@@ -3037,6 +3037,7 @@ waitchld (wpid, block)
pid_t pid;
int call_set_current, last_stopped_job, job, children_exited, waitpid_flags;
+ int called_from_sighand = sigchld;
static int wcontinued = WCONTINUED; /* run-time fix for glibc problem */
call_set_current = children_exited = 0;
@@ -0,0 +1,24 @@
diff -up bash-4.1/examples/loadables/Makefile.in.examples bash-4.1/examples/loadables/Makefile.in
--- bash-4.1/examples/loadables/Makefile.in.examples 2010-06-22 16:20:02.000000000 +0200
+++ bash-4.1/examples/loadables/Makefile.in 2010-06-22 16:20:41.000000000 +0200
@@ -43,7 +43,7 @@ host_os = @host_os@
host_cpu = @host_cpu@
host_vendor = @host_vendor@
-CFLAGS = @CFLAGS@
+CFLAGS = -O2 -g
LOCAL_CFLAGS = @LOCAL_CFLAGS@
DEFS = @DEFS@
LOCAL_DEFS = @LOCAL_DEFS@
diff -up bash-4.1/examples/loadables/perl/Makefile.in.examples bash-4.1/examples/loadables/perl/Makefile.in
--- bash-4.1/examples/loadables/perl/Makefile.in.examples 2010-06-22 16:20:46.000000000 +0200
+++ bash-4.1/examples/loadables/perl/Makefile.in 2010-06-22 16:21:04.000000000 +0200
@@ -42,7 +42,7 @@ SHELL = @MAKE_SHELL@
PERL5 = perl5
-CFLAGS = @CFLAGS@
+CFLAGS = -O2 -g
#
# These values are generated for configure by ${topdir}/support/shobj-conf.
@@ -0,0 +1,99 @@
diff -up bash-4.2/execute_cmd.c.coverity bash-4.2/execute_cmd.c
--- bash-4.2/execute_cmd.c.coverity 2011-02-24 13:04:35.000000000 +0100
+++ bash-4.2/execute_cmd.c 2011-02-24 13:49:13.000000000 +0100
@@ -5036,7 +5036,7 @@ shell_execve (command, args, env)
Elf32_Ehdr ehdr;
Elf32_Phdr *phdr;
Elf32_Shdr *shdr;
- int nphdr, nshdr;
+ Elf32_Half nphdr, nshdr;
/* We have to copy the data since the sample buffer
might not be aligned correctly to be accessed as
@@ -5044,12 +5044,12 @@ shell_execve (command, args, env)
memcpy (&ehdr, sample, sizeof (Elf32_Ehdr));
nshdr = ehdr.e_shnum;
- shdr = (Elf32_Shdr *) malloc (nshdr * ehdr.e_shentsize);
+ shdr = (Elf32_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize);
if (shdr != NULL)
{
#ifdef HAVE_PREAD
- sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
+ sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize,
ehdr.e_shoff);
#else
if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
@@ -5091,11 +5091,11 @@ shell_execve (command, args, env)
}
nphdr = ehdr.e_phnum;
- phdr = (Elf32_Phdr *) malloc (nphdr * ehdr.e_phentsize);
+ phdr = (Elf32_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize);
if (phdr != NULL)
{
#ifdef HAVE_PREAD
- sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
+ sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize,
ehdr.e_phoff);
#else
if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
@@ -5120,7 +5120,7 @@ shell_execve (command, args, env)
Elf64_Ehdr ehdr;
Elf64_Phdr *phdr;
Elf64_Shdr *shdr;
- int nphdr, nshdr;
+ Elf32_Half nphdr, nshdr;
/* We have to copy the data since the sample buffer
might not be aligned correctly to be accessed as
@@ -5128,11 +5128,11 @@ shell_execve (command, args, env)
memcpy (&ehdr, sample, sizeof (Elf64_Ehdr));
nshdr = ehdr.e_shnum;
- shdr = (Elf64_Shdr *) malloc (nshdr * ehdr.e_shentsize);
+ shdr = (Elf64_Shdr *) malloc ((size_t)nshdr * (size_t)ehdr.e_shentsize);
if (shdr != NULL)
{
#ifdef HAVE_PREAD
- sample_len = pread (fd, shdr, nshdr * ehdr.e_shentsize,
+ sample_len = pread (fd, shdr, (size_t)nshdr * (size_t)ehdr.e_shentsize,
ehdr.e_shoff);
#else
if (lseek (fd, ehdr.e_shoff, SEEK_SET) != -1)
@@ -5174,11 +5174,11 @@ shell_execve (command, args, env)
}
nphdr = ehdr.e_phnum;
- phdr = (Elf64_Phdr *) malloc (nphdr * ehdr.e_phentsize);
+ phdr = (Elf64_Phdr *) malloc ((size_t)nphdr * (size_t)ehdr.e_phentsize);
if (phdr != NULL)
{
#ifdef HAVE_PREAD
- sample_len = pread (fd, phdr, nphdr * ehdr.e_phentsize,
+ sample_len = pread (fd, phdr, (size_t)nphdr * (size_t)ehdr.e_phentsize,
ehdr.e_phoff);
#else
if (lseek (fd, ehdr.e_phoff, SEEK_SET) != -1)
@@ -5200,8 +5200,8 @@ shell_execve (command, args, env)
if (offset != -1)
{
- size_t maxlen = 0;
- size_t actlen = 0;
+ ssize_t maxlen = 0;
+ ssize_t actlen = 0;
char *interp = NULL;
do
@@ -5250,7 +5250,8 @@ shell_execve (command, args, env)
}
#endif
#if defined (HAVE_HASH_BANG_EXEC) || defined (HAVE_ELF_H)
- close (fd);
+ if (fd >= 0)
+ close (fd);
#endif
errno = i;
file_error (command);
@@ -0,0 +1,12 @@
diff -up bash-4.1/doc/bash.1.manpage_trap bash-4.1/doc/bash.1
--- bash-4.1/doc/bash.1.manpage_trap 2012-08-28 10:06:00.561999092 +0200
+++ bash-4.1/doc/bash.1 2012-08-28 10:06:24.225304505 +0200
@@ -9251,7 +9251,7 @@ being inverted via
These are the same conditions obeyed by the \fBerrexit\fP (\fB\-e\fP) option.
.if t .sp 0.5
.if n .sp 1
-Signals ignored upon entry to the shell cannot be trapped or reset.
+Signals ignored upon entry to the shell cannot be trapped, reset or listed.
Trapped signals that are not being ignored are reset to their original
values in a subshell or subshell environment when one is created.
The return status is false if any
@@ -0,0 +1,36 @@
diff -up bash-3.2/config-top.h.logout bash-3.2/config-top.h
--- bash-3.2/config-top.h.logout 2011-04-14 08:55:55.000000000 +0200
+++ bash-3.2/config-top.h 2011-04-14 08:55:55.000000000 +0200
@@ -78,7 +78,7 @@
/* #define SYS_BASHRC "/etc/bash.bashrc" */
/* System-wide .bash_logout for login shells. */
-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */
+#define SYS_BASH_LOGOUT "/etc/bash.bash_logout"
/* Define this to make non-interactive shells begun with argv[0][0] == '-'
run the startup files when not in posix mode. */
diff -up bash-3.2/doc/bash.1.logout bash-3.2/doc/bash.1
--- bash-3.2/doc/bash.1.logout 2011-04-14 09:16:32.000000000 +0200
+++ bash-3.2/doc/bash.1 2011-04-14 11:59:33.000000000 +0200
@@ -326,8 +326,8 @@ option may be used when the shell is sta
.PP
When a login shell exits,
.B bash
-reads and executes commands from the file \fI~/.bash_logout\fP, if it
-exists.
+reads and executes commands from the files \fI~/.bash_logout\fP
+and \fI/etc/bash.bash_logout\fP, if the files exists.
.PP
When an interactive shell that is not a login shell is started,
.B bash
@@ -8814,6 +8814,9 @@ The \fBbash\fP executable
.FN /etc/profile
The systemwide initialization file, executed for login shells
.TP
+.FN /etc/bash.bash_logout
+The systemwide login shell cleanup file, executed when a login shell exits
+.TP
.FN ~/.bash_profile
The personal initialization file, executed for login shells
.TP
@@ -0,0 +1,14 @@
diff -up bash-4.2/variables.h.size_type bash-4.2/variables.h
--- bash-4.2/variables.h.size_type 2012-11-29 10:33:25.109036844 +0100
+++ bash-4.2/variables.h 2012-11-29 10:46:12.718530162 +0100
@@ -95,8 +95,8 @@ typedef struct variable {
typedef struct _vlist {
SHELL_VAR **list;
- int list_size; /* allocated size */
- int list_len; /* current number of entries */
+ size_t list_size; /* allocated size */
+ size_t list_len; /* current number of entries */
} VARLIST;
/* The various attributes that a given variable can have. */
@@ -0,0 +1,60 @@
commit 41d203e21f94c1b8bfc457606ee633c22da3cf04
Author: Chet Ramey <chet.ramey@case.edu>
Date: Wed Jun 12 09:29:51 2013 -0400
commit bash-20130523 snapshot
diff --git a/trap.c b/trap.c
index 1e11d1f..da59b26 100644
--- a/trap.c
+++ b/trap.c
@@ -286,6 +286,9 @@ run_pending_traps ()
if (catch_flag == 0) /* simple optimization */
return;
+ if (running_trap > 0)
+ return; /* no recursive trap invocations */
+
catch_flag = trapped_signal_received = 0;
/* Preserve $? when running trap. */
@@ -304,6 +307,8 @@ run_pending_traps ()
BLOCK_SIGNAL (sig, set, oset);
+ running_trap = sig + 1;
+
if (sig == SIGINT)
{
run_interrupt_trap ();
@@ -324,6 +329,7 @@ run_pending_traps ()
{
/* This can happen when run_pending_traps is called while
running a SIGCHLD trap handler. */
+ running_trap = 0;
UNBLOCK_SIGNAL (oset);
continue; /* XXX */
}
@@ -359,7 +365,14 @@ run_pending_traps ()
save_subst_varlist = subst_assign_varlist;
subst_assign_varlist = 0;
+#if defined (JOB_CONTROL)
+ save_pipeline (1); /* XXX only provides one save level */
+#endif
evalstring (savestring (trap_list[sig]), "trap", SEVAL_NONINT|SEVAL_NOHIST|SEVAL_RESETLINE);
+#if defined (JOB_CONTROL)
+ restore_pipeline (1);
+#endif
+
restore_token_state (token_state);
free (token_state);
@@ -367,6 +380,7 @@ run_pending_traps ()
}
pending_traps[sig] = 0;
+ running_trap = 0;
UNBLOCK_SIGNAL (oset);
}
@@ -0,0 +1,56 @@
diff -up bash-4.2-rc2/doc/bash.1.bashbug bash-4.2-rc2/doc/bash.1
--- bash-4.2-rc2/doc/bash.1.bashbug 2011-01-16 21:31:39.000000000 +0100
+++ bash-4.2-rc2/doc/bash.1 2011-02-09 08:52:14.000000000 +0100
@@ -9857,7 +9857,7 @@ The latest version is always available f
.PP
Once you have determined that a bug actually exists, use the
.I bashbug
-command to submit a bug report.
+command (from the source package) to submit a bug report.
If you have a fix, you are encouraged to mail that as well!
Suggestions and `philosophical' bug reports may be mailed
to \fIbug-bash@gnu.org\fP or posted to the Usenet
@@ -9879,10 +9879,6 @@ A description of the bug behaviour
A short script or `recipe' which exercises the bug
.PD
.PP
-.I bashbug
-inserts the first three items automatically into the template
-it provides for filing a bug report.
-.PP
Comments and bug reports concerning
this manual page should be directed to
.IR chet.ramey@case.edu .
diff -up bash-4.2-rc2/doc/bashref.texi.bashbug bash-4.2-rc2/doc/bashref.texi
--- bash-4.2-rc2/doc/bashref.texi.bashbug 2011-01-16 21:31:57.000000000 +0100
+++ bash-4.2-rc2/doc/bashref.texi 2011-02-09 08:47:07.000000000 +0100
@@ -7635,7 +7635,7 @@ The latest version of Bash is always ava
@uref{ftp://ftp.gnu.org/pub/gnu/bash/}.
Once you have determined that a bug actually exists, use the
-@code{bashbug} command to submit a bug report.
+@code{bashbug} command (from the source package) to submit a bug report.
If you have a fix, you are encouraged to mail that as well!
Suggestions and `philosophical' bug reports may be mailed
to @email{bug-bash@@gnu.org} or posted to the Usenet
@@ -7657,9 +7657,6 @@ to reproduce it.
@end itemize
@noindent
-@code{bashbug} inserts the first three items automatically into
-the template it provides for filing a bug report.
-
Please send all reports concerning this manual to
@email{bug-bash@@gnu.org}.
diff -up bash-4.2-rc2/shell.c.bashbug bash-4.2-rc2/shell.c
--- bash-4.2-rc2/shell.c.bashbug 2011-01-02 22:04:51.000000000 +0100
+++ bash-4.2-rc2/shell.c 2011-02-09 08:47:07.000000000 +0100
@@ -1823,7 +1823,6 @@ show_shell_usage (fp, extra)
{
fprintf (fp, _("Type `%s -c \"help set\"' for more information about shell options.\n"), shell_name);
fprintf (fp, _("Type `%s -c help' for more information about shell builtin commands.\n"), shell_name);
- fprintf (fp, _("Use the `bashbug' command to report bugs.\n"));
}
}
@@ -0,0 +1,30 @@
--- bash-3.1/doc/Makefile.in.infotags 2006-07-12 13:57:18.000000000 +0100
+++ bash-3.1/doc/Makefile.in 2006-07-12 13:58:25.000000000 +0100
@@ -69,7 +69,6 @@
TEXI2HTML = ${SUPPORT_SRCDIR}/texi2html
MAN2HTML = ${BUILD_DIR}/support/man2html
HTMLPOST = ${srcdir}/htmlpost.sh
-INFOPOST = ${srcdir}/infopost.sh
QUIETPS = #set this to -q to shut up dvips
PAPERSIZE = letter # change to a4 for A4-size paper
PSDPI = 600 # could be 300 if you like
@@ -146,7 +145,7 @@
PSFILES = bash.ps bashbug.ps article.ps builtins.ps rbash.ps
DVIFILES = bashref.dvi bashref.ps
-INFOFILES = bashref.info
+INFOFILES = bashref.info bash.info
MAN0FILES = bash.0 bashbug.0 builtins.0 rbash.0
HTMLFILES = bashref.html bash.html
PDFFILES = bash.pdf bashref.pdf article.pdf rose94.pdf
@@ -167,8 +166,8 @@
bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
$(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
-bash.info: bashref.info
- ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \
+bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
+ $(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi -o $@
bash.txt: bash.1
bash.ps: bash.1
@@ -0,0 +1,311 @@
diff -up bash-4.1/builtins.h.requires bash-4.1/builtins.h
--- bash-4.1/builtins.h.requires 2009-01-04 20:32:23.000000000 +0100
+++ bash-4.1/builtins.h 2010-08-02 17:42:41.000000000 +0200
@@ -41,6 +41,8 @@
#define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */
#define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */
#define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */
+#define REQUIRES_BUILTIN 0x40 /* This builtin requires other files. */
+
#define BASE_INDENT 4
diff -up bash-4.1/builtins/mkbuiltins.c.requires bash-4.1/builtins/mkbuiltins.c
--- bash-4.1/builtins/mkbuiltins.c.requires 2009-01-04 20:32:23.000000000 +0100
+++ bash-4.1/builtins/mkbuiltins.c 2010-08-02 17:42:41.000000000 +0200
@@ -69,9 +69,15 @@ extern char *strcpy ();
#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
/* Flag values that builtins can have. */
+/* These flags are for the C code generator,
+ the C which is produced (./builtin.c)
+ includes the flags definitions found
+ in ../builtins.h */
#define BUILTIN_FLAG_SPECIAL 0x01
#define BUILTIN_FLAG_ASSIGNMENT 0x02
#define BUILTIN_FLAG_POSIX_BUILTIN 0x04
+#define BUILTIN_FLAG_REQUIRES 0x08
+
#define BASE_INDENT 4
@@ -163,10 +169,18 @@ char *posix_builtins[] =
(char *)NULL
};
+/* The builtin commands that cause requirements on other files. */
+static char *requires_builtins[] =
+{
+ ".", "command", "exec", "source", "inlib",
+ (char *)NULL
+};
+
/* Forward declarations. */
static int is_special_builtin ();
static int is_assignment_builtin ();
static int is_posix_builtin ();
+static int is_requires_builtin ();
#if !defined (HAVE_RENAME)
static int rename ();
@@ -812,6 +826,9 @@ builtin_handler (self, defs, arg)
new->flags |= BUILTIN_FLAG_ASSIGNMENT;
if (is_posix_builtin (name))
new->flags |= BUILTIN_FLAG_POSIX_BUILTIN;
+ if (is_requires_builtin (name))
+ new->flags |= BUILTIN_FLAG_REQUIRES;
+
array_add ((char *)new, defs->builtins);
building_builtin = 1;
@@ -1229,11 +1246,12 @@ write_builtins (defs, structfile, extern
else
fprintf (structfile, "(sh_builtin_func_t *)0x0, ");
- fprintf (structfile, "%s%s%s%s, %s_doc,\n",
+ fprintf (structfile, "%s%s%s%s%s, %s_doc,\n",
"BUILTIN_ENABLED | STATIC_BUILTIN",
(builtin->flags & BUILTIN_FLAG_SPECIAL) ? " | SPECIAL_BUILTIN" : "",
(builtin->flags & BUILTIN_FLAG_ASSIGNMENT) ? " | ASSIGNMENT_BUILTIN" : "",
(builtin->flags & BUILTIN_FLAG_POSIX_BUILTIN) ? " | POSIX_BUILTIN" : "",
+ (builtin->flags & BUILTIN_FLAG_REQUIRES) ? " | REQUIRES_BUILTIN" : "",
document_name (builtin));
if (inhibit_functions)
@@ -1581,6 +1599,13 @@ is_posix_builtin (name)
return (_find_in_table (name, posix_builtins));
}
+static int
+is_requires_builtin (name)
+ char *name;
+{
+ return (_find_in_table (name, requires_builtins));
+}
+
#if !defined (HAVE_RENAME)
static int
rename (from, to)
diff -up bash-4.1/doc/bash.1.requires bash-4.1/doc/bash.1
--- bash-4.1/doc/bash.1.requires 2010-08-02 17:42:41.000000000 +0200
+++ bash-4.1/doc/bash.1 2010-08-02 18:09:27.000000000 +0200
@@ -231,6 +231,14 @@ The shell becomes restricted (see
.B "RESTRICTED SHELL"
below).
.TP
+.B \-\-rpm-requires
+Produce the list of files that are required for the
+shell script to run. This implies '-n' and is subject
+to the same limitations as compile time error checking checking;
+Command substitutions, Conditional expressions and
+.BR eval
+builtin are not parsed so some dependencies may be missed.
+.TP
.B \-\-verbose
Equivalent to \fB\-v\fP.
.TP
diff -up bash-4.1/doc/bashref.texi.requires bash-4.1/doc/bashref.texi
--- bash-4.1/doc/bashref.texi.requires 2010-08-02 17:42:41.000000000 +0200
+++ bash-4.1/doc/bashref.texi 2010-08-02 18:11:58.000000000 +0200
@@ -5343,6 +5343,13 @@ standard. @xref{Bash POSIX Mode}, for a
@item --restricted
Make the shell a restricted shell (@pxref{The Restricted Shell}).
+@item --rpm-requires
+Produce the list of files that are required for the
+shell script to run. This implies '-n' and is subject
+to the same limitations as compile time error checking checking;
+Command substitutions, Conditional expressions and @command{eval}
+are not parsed so some dependencies may be missed.
+
@item --verbose
Equivalent to @option{-v}. Print shell input lines as they're read.
diff -up bash-4.1/eval.c.requires bash-4.1/eval.c
--- bash-4.1/eval.c.requires 2009-01-04 20:32:26.000000000 +0100
+++ bash-4.1/eval.c 2010-08-02 17:42:41.000000000 +0200
@@ -53,6 +53,7 @@ extern int last_command_exit_value, stdi
extern int need_here_doc;
extern int current_command_number, current_command_line_count, line_number;
extern int expand_aliases;
+extern int rpm_requires;
#if defined (HAVE_POSIX_SIGNALS)
extern sigset_t top_level_mask;
@@ -136,7 +137,7 @@ reader_loop ()
if (read_command () == 0)
{
- if (interactive_shell == 0 && read_but_dont_execute)
+ if (interactive_shell == 0 && (read_but_dont_execute && !rpm_requires))
{
last_command_exit_value = EXECUTION_SUCCESS;
dispose_command (global_command);
diff -up bash-4.1/execute_cmd.c.requires bash-4.1/execute_cmd.c
--- bash-4.1/execute_cmd.c.requires 2010-08-02 17:42:41.000000000 +0200
+++ bash-4.1/execute_cmd.c 2010-08-02 17:42:41.000000000 +0200
@@ -503,6 +503,8 @@ async_redirect_stdin ()
#define DESCRIBE_PID(pid) do { if (interactive) describe_pid (pid); } while (0)
+extern int rpm_requires;
+
/* Execute the command passed in COMMAND, perhaps doing it asynchronously.
COMMAND is exactly what read_command () places into GLOBAL_COMMAND.
ASYNCHROUNOUS, if non-zero, says to do this command in the background.
@@ -534,7 +536,13 @@ execute_command_internal (command, async
if (breaking || continuing)
return (last_command_exit_value);
- if (command == 0 || read_but_dont_execute)
+ if (command == 0 || (read_but_dont_execute && !rpm_requires))
+ return (EXECUTION_SUCCESS);
+ if (rpm_requires && command->type == cm_function_def)
+ return last_command_exit_value =
+ execute_intern_function (command->value.Function_def->name,
+ command->value.Function_def->command);
+ if (read_but_dont_execute)
return (EXECUTION_SUCCESS);
QUIT;
@@ -5066,7 +5074,7 @@ execute_intern_function (name, function)
if (check_identifier (name, posixly_correct) == 0)
{
- if (posixly_correct && interactive_shell == 0)
+ if (posixly_correct && interactive_shell == 0 && rpm_requires == 0)
{
last_command_exit_value = EX_BADUSAGE;
jump_to_top_level (ERREXIT);
diff -up bash-4.1/execute_cmd.h.requires bash-4.1/execute_cmd.h
--- bash-4.1/execute_cmd.h.requires 2009-01-16 22:20:15.000000000 +0100
+++ bash-4.1/execute_cmd.h 2010-08-02 17:42:41.000000000 +0200
@@ -22,6 +22,8 @@
#define _EXECUTE_CMD_H_
#include "stdc.h"
+#include "variables.h"
+#include "command.h"
extern struct fd_bitmap *new_fd_bitmap __P((int));
extern void dispose_fd_bitmap __P((struct fd_bitmap *));
diff -up bash-4.1/make_cmd.c.requires bash-4.1/make_cmd.c
--- bash-4.1/make_cmd.c.requires 2009-09-11 23:26:12.000000000 +0200
+++ bash-4.1/make_cmd.c 2010-08-02 17:42:41.000000000 +0200
@@ -42,11 +42,15 @@
#include "flags.h"
#include "make_cmd.h"
#include "dispose_cmd.h"
+#include "execute_cmd.h"
#include "variables.h"
#include "subst.h"
#include "input.h"
#include "ocache.h"
#include "externs.h"
+#include "builtins.h"
+
+#include "builtins/common.h"
#if defined (JOB_CONTROL)
#include "jobs.h"
@@ -56,6 +60,10 @@
extern int line_number, current_command_line_count, parser_state;
extern int last_command_exit_value;
+extern int rpm_requires;
+
+static char *alphabet_set = "abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/* Object caching */
sh_obj_cache_t wdcache = {0, 0, 0};
@@ -820,6 +828,27 @@ make_coproc_command (name, command)
return (make_command (cm_coproc, (SIMPLE_COM *)temp));
}
+static void
+output_requirement (deptype, filename)
+const char *deptype;
+char *filename;
+{
+ if (strchr(filename, '$') || (filename[0] != '/' && strchr(filename, '/')))
+ return;
+
+ /*
+ if the executable is called via variable substitution we can
+ not dermine what it is at compile time.
+
+ if the executable consists only of characters not in the
+ alphabet we do not consider it a dependency just an artifact
+ of shell parsing (ex "exec < ${infile}").
+ */
+
+ if (strpbrk(filename, alphabet_set))
+ printf ("%s(%s)\n", deptype, filename);
+}
+
/* Reverse the word list and redirection list in the simple command
has just been parsed. It seems simpler to do this here the one
time then by any other method that I can think of. */
@@ -837,6 +866,27 @@ clean_simple_command (command)
REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
}
+ if (rpm_requires && command->value.Simple->words)
+ {
+ char *cmd0;
+ char *cmd1;
+ struct builtin *b;
+
+ cmd0 = command->value.Simple->words->word->word;
+ b = builtin_address_internal (cmd0, 0);
+ cmd1 = 0;
+ if (command->value.Simple->words->next)
+ cmd1 = command->value.Simple->words->next->word->word;
+
+ if (b) {
+ if ( (b->flags & REQUIRES_BUILTIN) && cmd1)
+ output_requirement ("executable", cmd1);
+ } else {
+ if (!assignment(cmd0, 0))
+ output_requirement (find_function(cmd0) ? "function" : "executable", cmd0);
+ }
+ } /*rpm_requires*/
+
parser_state &= ~PST_REDIRLIST;
return (command);
}
diff -up bash-4.1/shell.c.requires bash-4.1/shell.c
--- bash-4.1/shell.c.requires 2010-08-02 17:42:41.000000000 +0200
+++ bash-4.1/shell.c 2010-08-02 17:42:41.000000000 +0200
@@ -193,6 +193,9 @@ int have_devfd = 0;
/* The name of the .(shell)rc file. */
static char *bashrc_file = "~/.bashrc";
+/* Non-zero if we are finding the scripts requirements. */
+int rpm_requires;
+
/* Non-zero means to act more like the Bourne shell on startup. */
static int act_like_sh;
@@ -251,6 +254,7 @@ static const struct {
{ "protected", Int, &protected_mode, (char **)0x0 },
#endif
{ "rcfile", Charp, (int *)0x0, &bashrc_file },
+ { "rpm-requires", Int, &rpm_requires, (char **)0x0 },
#if defined (RESTRICTED_SHELL)
{ "restricted", Int, &restricted, (char **)0x0 },
#endif
@@ -485,6 +489,12 @@ main (argc, argv, env)
if (dump_translatable_strings)
read_but_dont_execute = 1;
+ if (rpm_requires)
+ {
+ read_but_dont_execute = 1;
+ initialize_shell_builtins ();
+ }
+
if (running_setuid && privileged_mode == 0)
disable_priv_mode ();
@@ -0,0 +1,10 @@
--- bash-3.0/builtins/setattr.def.setlocale 2005-08-08 12:22:42.000000000 +0100
+++ bash-3.0/builtins/setattr.def 2005-08-08 12:25:16.000000000 +0100
@@ -423,4 +423,7 @@
if (var && (exported_p (var) || (attribute & att_exported)))
array_needs_making++; /* XXX */
+
+ if (var)
+ stupidly_hack_special_variables (name);
}
@@ -0,0 +1,54 @@
diff -up bash-4.2-rc2/tests/exec.right.tty_tests bash-4.2-rc2/tests/exec.right
--- bash-4.2-rc2/tests/exec.right.tty_tests 2011-02-09 10:42:48.000000000 +0100
+++ bash-4.2-rc2/tests/exec.right 2011-02-09 10:42:59.000000000 +0100
@@ -50,7 +50,6 @@ this is ohio-state
0
1
testb
-expand_aliases on
1
1
1
diff -up bash-4.2-rc2/tests/execscript.tty_tests bash-4.2-rc2/tests/execscript
--- bash-4.2-rc2/tests/execscript.tty_tests 2010-12-27 22:01:02.000000000 +0100
+++ bash-4.2-rc2/tests/execscript 2011-02-09 10:42:34.000000000 +0100
@@ -107,8 +107,6 @@ ${THIS_SH} ./exec6.sub
# checks for properly deciding what constitutes an executable file
${THIS_SH} ./exec7.sub
-${THIS_SH} -i ./exec8.sub
-
${THIS_SH} ./exec9.sub
true | `echo true` &
diff -up bash-4.2-rc2/tests/read.right.tty_tests bash-4.2-rc2/tests/read.right
--- bash-4.2-rc2/tests/read.right.tty_tests 2010-12-21 16:49:00.000000000 +0100
+++ bash-4.2-rc2/tests/read.right 2011-02-09 10:42:34.000000000 +0100
@@ -33,14 +33,6 @@ a = abcdefg
a = xyz
a = -xyz 123-
a = abc
-timeout 1: ok
-
-timeout 2: ok
-
-./read2.sub: line 23: read: -3: invalid timeout specification
-1
-
-abcde
./read3.sub: line 4: read: -1: invalid number
abc
ab
diff -up bash-4.2-rc2/tests/read.tests.tty_tests bash-4.2-rc2/tests/read.tests
--- bash-4.2-rc2/tests/read.tests.tty_tests 2008-09-06 19:09:11.000000000 +0200
+++ bash-4.2-rc2/tests/read.tests 2011-02-09 10:42:34.000000000 +0100
@@ -82,9 +82,6 @@ echo " foo" | { IFS=$':' ; read line; re
# test read -d delim behavior
${THIS_SH} ./read1.sub
-# test read -t timeout behavior
-${THIS_SH} ./read2.sub
-
# test read -n nchars behavior
${THIS_SH} ./read3.sub
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+152
View File
@@ -0,0 +1,152 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
<Source>
<Name>bash</Name>
<Homepage>http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html</Homepage>
<Packager>
<Name>Pisi Linux Admins</Name>
<Email>admins@pisilinux.org</Email>
</Packager>
<License>GPLv2</License>
<IsA>app:console</IsA>
<Summary>The standard GNU Bourne again shell</Summary>
<Description>Bash is the GNU Project's Bourne Again SHell, a complete implementation of the IEEE POSIX and Open Group shell specification with interactive command line editing, csh-like features such as history substitution.</Description>
<Archive sha1sum="45ac3c5727e7262334f4dfadecdf601b39434e84" type="targz">mirrors://gnu/bash/bash-4.3.tar.gz</Archive>
<BuildDependencies>
<Dependency>ncurses-devel</Dependency>
</BuildDependencies>
<Patches>
<!-- Official Patches ftp://ftp.cwru.edu/pub/bash/bash-4.3-patches/ -->
<Patch level="0" compressionType="gzip">official/bash43-001.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-002.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-003.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-004.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-005.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-006.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-007.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-008.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-009.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-010.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-011.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-012.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-013.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-014.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-015.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-016.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-017.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-018.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-019.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-020.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-021.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-022.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-023.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-024.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-025.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-026.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-027.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-028.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-029.tar.gz</Patch>
<Patch level="0" compressionType="gzip">official/bash43-030.tar.gz</Patch>
<!-- Fedora patches -->
<Patch level="1">fedora/bash-2.02-security.patch</Patch>
<Patch level="1">fedora/bash-2.03-paths.patch</Patch>
<Patch level="1">fedora/bash-2.03-profile.patch</Patch>
<Patch level="1">fedora/bash-2.05a-interpreter.patch</Patch>
<Patch level="1">fedora/bash-2.05b-debuginfo.patch</Patch>
<Patch level="1">fedora/bash-2.05b-manso.patch</Patch>
<Patch level="1">fedora/bash-2.05b-pgrp_sync.patch</Patch>
<Patch level="1">fedora/bash-2.05b-readline-oom.patch</Patch>
<Patch level="1">fedora/bash-2.05b-xcc.patch</Patch>
<Patch level="1">fedora/bash-3.2-audit.patch</Patch>
<Patch level="1">fedora/bash-3.2-ssh_source_bash.patch</Patch>
<Patch level="1">fedora/bash-4.0-nobits.patch</Patch>
<Patch level="1">fedora/bash-4.1-broken_pipe.patch</Patch>
<Patch level="1">fedora/bash-4.1-defer-sigchld-trap.patch</Patch>
<Patch level="1">fedora/bash-4.1-examples.patch</Patch>
<Patch level="1">fedora/bash-4.2-coverity.patch</Patch>
<Patch level="1">fedora/bash-4.2-manpage_trap.patch</Patch>
<Patch level="1">fedora/bash-4.2-rc2-logout.patch</Patch>
<Patch level="1">fedora/bash-4.2-size_type.patch</Patch>
<Patch level="1">fedora/bash-bashbug.patch</Patch>
<Patch level="1">fedora/bash-infotags.patch</Patch>
<Patch level="1">fedora/bash-requires.patch</Patch>
<Patch level="1">fedora/bash-setlocale.patch</Patch>
<Patch level="1">fedora/bash-tty-tests.patch</Patch>
<!-- <Patch level="1">fedora/bash-4.2-trap.patch</Patch> -->
</Patches>
</Source>
<Package>
<Name>bash</Name>
<RuntimeDependencies>
<Dependency>ncurses</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="config">/etc</Path>
<Path fileType="executable">/bin</Path>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="info">/usr/share/info</Path>
<Path fileType="man">/usr/share/man</Path>
<Path fileType="localedata">/usr/share/locale</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/bash/bashrc">bashrc</AdditionalFile>
<AdditionalFile owner="root" permission="0644" target="/etc/profile.d/command-not-found.sh">command-not-found.sh</AdditionalFile>
</AdditionalFiles>
</Package>
<History>
<Update release="7">
<Date>2014-10-13</Date>
<Version>4.3_p30</Version>
<Comment>Update</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="6">
<Date>2014-09-27</Date>
<Version>4.3_p26</Version>
<Comment>Update</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="5">
<Date>2014-05-11</Date>
<Version>4.3_p8</Version>
<Comment>Release bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="4">
<Date>2014-04-03</Date>
<Version>4.3_p8</Version>
<Comment>Version bump</Comment>
<Name>Serdar Soytetir</Name>
<Email>kaptan@pisilinux.org</Email>
</Update>
<Update release="3">
<Date>2013-10-28</Date>
<Version>4.2_p45</Version>
<Comment>rebuild.</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
</Update>
<Update release="2">
<Date>2012-11-24</Date>
<Version>4.2_p45</Version>
<Comment>Update</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
<Update release="1">
<Date>2012-11-24</Date>
<Version>4.2_p39</Version>
<Comment>First release</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin@pisilinux.org</Email>
</Update>
</History>
</PISI>

Some files were not shown because too many files have changed in this diff Show More