Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Triggerer package info passthrough #3

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 29 additions & 28 deletions man/po/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: dpkg-man 1.20.8\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2021-01-09 00:59+0100\n"
"PO-Revision-Date: 2021-04-08 04:42+0200\n"
"PO-Revision-Date: 2021-09-19 17:29+0200\n"
"Last-Translator: Helge Kreutzmann <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
"Language: de\n"
Expand Down Expand Up @@ -4832,7 +4832,7 @@ msgid ""
"low level toolchain libraries like “libgcc”."
msgstr ""
"dpkg-gensymbols verfügt über eine interne Liste von Symbolen, die nicht in "
"Symboldateien auftauchen sollten, da sie normalerweise nur Seiteneffekte von "
"Symboldateien auftauchen sollten, da sie normalerweise nur Nebeneffekte von "
"Implementierungsdetails in der Werkzeugkette darstellen (seit Dpkg 1.20.1). "
"Falls Sie aus irgendeinem Grund wollen, dass diese Symbole in der "
"Symboldatei aufgenommen werden, sollten Sie das Symbol mit B<allow-internal> "
Expand Down Expand Up @@ -8416,6 +8416,7 @@ msgstr ""
msgid "B<--dump>"
msgstr "B<--dump>"

# FIXME multiple: value → values
#. type: textblock
#: dpkg-buildflags.pod
msgid ""
Expand All @@ -8424,8 +8425,8 @@ msgid ""
"(“I<flag>=I<value>”). This is the default action."
msgstr ""
"Gibt auf der Standardausgabe alle Kompilierschalter und ihre Werte aus. Es "
"wird ein Schalter pro Zeile ausgegeben, wobei der Wert durch ein "
"Gleichheitszeichen („I<Schalter>=I<Wert>“) abgetrennt wird. Dies ist die "
"wird ein Schalter pro Zeile ausgegeben, wobei die Werte durch ein "
"Gleichheitszeichen („I<Schalter>=I<Werte>“) abgetrennt werden. Dies ist die "
"Standardaktion."

#. type: =item
Expand Down Expand Up @@ -9186,7 +9187,7 @@ msgstr ""
"eine reine Zeichenkette ist und es keine Formatargumente gibt, wie in "
"B<printf(foo);> statt B<printf(\"%s\", foo);>. Dies könnte ein "
"Sicherheitsproblem sein, falls die Formatzeichenkette aus einer "
"unvertrauenswürdigen Eingabe stammt und ‚%n’ enthält."
"nicht vertrauenswürdigen Eingabe stammt und ‚%n’ enthält."

#. type: =item
#: dpkg-buildflags.pod
Expand Down Expand Up @@ -9890,7 +9891,7 @@ msgid ""
"B<buildflags.mk> instead, which takes care of calling B<dpkg-buildflags> and "
"storing the build flags in make variables."
msgstr ""
"Für andere Bausysteme oder wenn Sie feingranularere Steuerung benötigen "
"Für andere Bausysteme oder wenn Sie feiner granulierte Steuerung benötigen "
"(welcher Schalter wo weitergegeben wird), können Sie B<--get> verwenden. "
"Oder Sie können stattdessen B<buildflags.mk> einbinden, das sich um den "
"Aufruf von B<dpkg-buildflags> kümmert und die Bauschalter in Make-Variablen "
Expand Down Expand Up @@ -10571,7 +10572,7 @@ msgstr ""
"Namen (seit Dpkg 1.14.7, lange Option seit Dpkg 1.18.8). Fügt sich selbst zu "
"der Umgebungsvariablen B<MAKEFLAGS> hinzu, was dazu führen sollte, dass alle "
"folgenden Aufrufe von Make diese Option erben werden. Damit wird dem Paket "
"die Parallel-Einstellung aufgezwungen (und möglicherweise dem Bausystem der "
"die Parallele-Einstellung aufgezwungen (und möglicherweise dem Bausystem der "
"Originalautoren, falls dieses Make verwendet), unabhängig von deren "
"Unterstützung für paralleles Bauen. Dies kann zu Fehlern beim Bauen führen. "
"Fügt auch B<parallel=>I<Aufträge> oder B<parallel> zu der Umgebungsvariablen "
Expand Down Expand Up @@ -13216,7 +13217,7 @@ msgstr ""
"ein- oder ausgeschaltet werden soll. Die besondere Funktionalität „B<all>“ "
"kann zum Ein- bzw. Ausschalten aller anderen Funktionalitäten verwandt "
"werden. Die Funktionalität „B<path>“ steuert, ob das Feld B<Build-Path> "
"bedingungslos aufgenmmen werden soll."
"bedingungslos aufgenommen werden soll."

#. type: textblock
#: dpkg-genbuildinfo.pod
Expand Down Expand Up @@ -13612,7 +13613,7 @@ msgid ""
"generate."
msgstr ""
"Erstellt Informationen für das Binärpaket I<Paket>. Falls die Steuerdatei "
"der Quellen nur ein Binärpaket aufführt, kann diese Option weggelassen "
"der Quellen nur ein Binärpaket auflistet, kann diese Option weggelassen "
"werden; andernfalls ist sie notwendig, um festzulegen, von welchen "
"Binärpaketen die Informationen erstellt werden sollen."

Expand All @@ -13627,7 +13628,7 @@ msgid ""
"Assume the filename of the package will be I<filename> instead of the normal "
"package_version_arch.deb filename."
msgstr ""
"Geht davon aus, das der Dateiname des Pakets I<Dateiname> sein wird, statt "
"Geht davon aus, dass der Dateiname des Pakets I<Dateiname> sein wird, statt "
"des normalen Dateinamens Paket_Version_Architektur.deb."

#. type: =item
Expand Down Expand Up @@ -13786,7 +13787,7 @@ msgstr ""
"bereitzustellen, die mit jedem von der Bibliothek bereitgestellten Symbol "
"verknüpft ist. Normalerweise entspricht dies der ersten Version des Pakets, "
"die dieses Symbol bereitgestellt hat, kann aber vom Betreuer erhöht werden, "
"falls die ABI des Symbols ohne Brechen der Rückwärtskompatibilität erweitert "
"falls die ABI des Symbols ohne brechen der Rückwärtskompatibilität erweitert "
"wurde. Es liegt in der Verantwortung des Betreuers, diese Dateien aktuell zu "
"halten, aber B<dpkg-gensymbols> hilft dabei."

Expand Down Expand Up @@ -15210,7 +15211,7 @@ msgid ""
"B<Don't do this.> Your archive will be messed up completely because a lot of "
"packages don't come with section information. B<Don't do this.>"
msgstr ""
"B<Machen Sie dies nicht.> Ihr Archiv wird eine komplette Schweinerei werden, "
"B<Machen Sie das nicht.> Ihr Archiv wird eine kompletter Saustall werden, "
"da viele Pakete nicht mit Sektionsinformationen kommen. B<Machen Sie dies "
"nicht.>"

Expand Down Expand Up @@ -16993,7 +16994,7 @@ msgid ""
"override>(5) for the format of this file."
msgstr ""
"I<Override-Datei>, falls angegeben, kann zum Setzen von Prioritäten in dem "
"erzeugten Index-Datensatz und zum HInwegsetzen über das in den I<.dsc>-"
"erzeugten Index-Datensatz und zum Hinwegsetzen über das in den I<.dsc>-"
"Dateien angegebene Betreuerfeld verwandt werden. Diese Datei kann "
"komprimiert sein (seit Dpkg 1.15.5). Siehe B<deb-override>(5) für das Format "
"dieser Datei."
Expand Down Expand Up @@ -18026,7 +18027,7 @@ msgid ""
msgstr ""
"Falls das Quellpaket ein nicht-Standard-Format verwendet (derzeit bedeutet "
"dies alle Formate außer „1.0“)) wird sein Name in B<debian/source/format> "
"gespeichert, so dass alle folgenden Bauversuchen des Quellpakets "
"gespeichert, so dass alle folgenden Bauversuche des Quellpakets "
"standardmäßig das gleiche Format verwenden."

#. type: =item
Expand Down Expand Up @@ -18716,7 +18717,7 @@ msgstr ""
"B<-sp>); falls ein Verzeichnis gefunden wird, wird dieses gepackt, um die "
"Originalquellen zu erstellen und danach entfernt (dies ist äquivalent zu B<-"
"sr>); falls keines von beiden gefunden wird, wird angenommen, dass das Paket "
"keinen Debianisierungs-Diff, sondern nur ein direktes Quellarchiv hat (dies "
"keinen Debianisierungs-Diff ist, sondern nur ein direktes Quellarchiv hat (dies "
"ist äquivalent zu B<-sn>). Falls sowohl ein Verzeichnis als auch eine Tar-"
"Datei gefunden werden, dann ignoriert B<dpkg-source> das Verzeichnis, und "
"überschreibt es, falls B<-sA> angegeben wurde (dies ist äquivalent zu B<-"
Expand Down Expand Up @@ -21703,8 +21704,8 @@ msgid ""
"otherwise unknown packages will be ignored with a warning. See the B<--"
"update-avail> and B<--merge-avail> commands for more information."
msgstr ""
"Die Datei I<available> muss für diesen Befehl aktuell sein, damit dies "
"Nutzen hat, andernfalls werden unbekannte Pakete mit einer Warnung "
"Die Datei I<available> muss für diesen Befehl aktuell sein, damit dies von "
"Nutzen ist, andernfalls werden unbekannte Pakete mit einer Warnung "
"ignoriert. Siehe die Befehle B<--update-avail> und B<--merge-avail> für "
"weitere Informationen."

Expand Down Expand Up @@ -22375,7 +22376,7 @@ msgstr ""
"Installation älterer Versionen (als bereits installiert) durch (sog. "
"Downgrade) und wird Sie daher nicht warnen, falls dadurch die Abhängigkeit "
"eines anderen Pakets nicht mehr erfüllt ist. Dies kann ernsthafte "
"Seiteneffekte haben, ein Downgrade einer essenziellen Systemkomponente kann "
"Nebeneffekte haben, ein Downgrade einer essenziellen Systemkomponente kann "
"Ihr gesamtes System unbrauchbar machen. Verwenden Sie diese Option mit "
"Vorsicht.>"

Expand Down Expand Up @@ -22843,7 +22844,7 @@ msgstr ""
"only>, I<remove>, I<purge>, I<add-architecture> und I<remove-architecture> "
"ausgeführt wird (seit Dpkg 1.15.4; Aktionen I<add-architecture> und I<remove-"
"architecture> seit Dpkg 1.17.19). Diese Option kann mehrfach angegeben "
"werden. Die Reihenfolge der Optionen wird erhalten, wobei Einträge aus den "
"werden. Die Reihenfolge der Optionen bleibt erhalten, wobei Einträge aus den "
"Konfigurationsdateien Vorrang haben. Die Umgebungsvariable "
"B<DPKG_HOOK_ACTION> wird für die Hooks auf die aktuelle B<dpkg>-Aktion "
"gesetzt."
Expand Down Expand Up @@ -22919,7 +22920,7 @@ msgid ""
"This can be used to remove all paths except some particular ones; a typical "
"case is:"
msgstr ""
"Dies kann dazu verwandt werden, alle Pfade außer bestimmten zu entferen, ein "
"Dies kann dazu verwandt werden, alle Pfade außer bestimmten zu entfernen, ein "
"typischer Fall lautet:"

#. type: verbatim
Expand Down Expand Up @@ -22968,7 +22969,7 @@ msgstr ""
"Die Filter werden beim Entpacken des Binärpakets angewandt und haben daher "
"nur Wissen über den Typ des derzeit gefilterten Objekts (d.h. eine normale "
"Datei oder ein Verzeichnis) und sehen daher nicht, welche Objekte als "
"nächstes kommen. Da diese Filter Seiteneffekte haben (im Gegensatz zu "
"nächstes kommen. Da diese Filter Nebeneffekte haben (im Gegensatz zu "
"B<find>(1)-Filtern) wird das Ausschließen eines genauen Pfadnamens, der ein "
"Verzeichnisobjekt wie I</usr/share/doc> ist, nicht den gewünschten Effekt "
"haben und nur der Pfadname wird ausgeschlossen (der automatisch wieder "
Expand Down Expand Up @@ -23084,7 +23085,7 @@ msgid ""
"B<install> (both sent before unpacking), B<configure>, B<trigproc>, "
"B<disappear>, B<remove>, B<purge>."
msgstr ""
"Versendet genau bevor eine Verarbeitungsstufe beginnt. I<Stufe> ist eine der "
"Wird genau bevor eine Verarbeitungsstufe beginnt versandt. I<Stufe> ist eine der "
"folgenden: B<upgrade>, B<install> (beide werden vor dem Entpacken versandt), "
"B<configure>, B<trigproc>, B<disappear>, B<remove>, B<purge>."

Expand Down Expand Up @@ -23608,7 +23609,7 @@ msgid ""
"a package is marked for removing or not, whether it is installed or not, "
"etc. See section B<INFORMATION ABOUT PACKAGES> for more info."
msgstr ""
"Statusse der verfügbaren Pakete. Diese Datei enthält Informationen darüber, "
"Status der verfügbaren Pakete. Diese Datei enthält Informationen darüber, "
"ob ein Paket zur Entfernung markiert ist oder nicht, ob es installiert ist "
"oder nicht usw. Lesen Sie den Abschnitt B<INFORMATIONEN ÜBER PAKETE> für "
"weitere Informationen."
Expand Down Expand Up @@ -30507,9 +30508,9 @@ msgstr ""
#~ "Order of sections is preserved (the first encountered section counts). "
#~ "Order of entries within a section is preserved."
#~ msgstr ""
#~ "Die Reihenfolge der Bereiche wird erhalten (der erste aufgetretene "
#~ "Die Reihenfolge der Bereiche bleibt erhalten (der erste aufgetretene "
#~ "Bereich zählt). Die Reihenfolge der Einträge innerhalb eines Bereichs "
#~ "wird erhalten."
#~ "bleibt erhalten."

#~ msgid ""
#~ "Please be B<extremely careful> when using this utility - it might not be "
Expand Down Expand Up @@ -30847,7 +30848,7 @@ msgstr ""
#~ msgstr "Gibt den Hilfebildschirm aus und beende sich erfolgreich."

#~ msgid "Output version and exit successfully."
#~ msgstr "Gibt die Version aus und beende sich erfolgreich"
#~ msgstr "Gibt die Version aus und beendet sich erfolgreich"

#~ msgid "Print a usage message."
#~ msgstr "Gibt eine Meldung zur Verwendung aus.\n"
Expand Down Expand Up @@ -30902,7 +30903,7 @@ msgstr ""
#~ msgstr "Gibt kurze Bedienungsanweisungen aus und beendet sich erfolgreich."

#~ msgid "Output program name and version and exit successfully."
#~ msgstr "Gibt Programmnamen und Version aus und beende sich erfolgreich"
#~ msgstr "Gibt Programmnamen und Version aus und beendet sich erfolgreich"

#~ msgid ""
#~ "B<dpkg-name> [B<-a>|B<--no-architecture>] [B<-o>|B<--overwrite>] [B<-s>|"
Expand All @@ -30915,7 +30916,7 @@ msgstr ""
#~ "[I<Dateien>]"

#~ msgid "Print a usage message and exit successfully."
#~ msgstr "Gibt einen Bedienungshinweis aus und beende sich erfolgreich."
#~ msgstr "Gibt einen Bedienungshinweis aus und beendet sich erfolgreich."

#~ msgid "Display version information."
#~ msgstr "Gibt Versionsinformationen aus."
Expand Down
3 changes: 3 additions & 0 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ bin_PROGRAMS = \

dpkg_SOURCES = \
archives.c archives.h \
bencode.c \
cleanup.c \
configure.c \
depcon.c \
Expand All @@ -35,12 +36,14 @@ dpkg_SOURCES = \
help.c \
main.c main.h \
packages.c \
pascal_str.c \
perpkgstate.c \
remove.c \
script.c \
select.c \
selinux.c \
trigproc.c \
triggerer_info_passthrough.c \
unpack.c \
update.c \
verify.c \
Expand Down
6 changes: 5 additions & 1 deletion src/archives.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
#include "main.h"
#include "archives.h"
#include "filters.h"
#include "triggerer_info_passthrough.h"

static inline void
fd_writeback_init(int fd)
Expand Down Expand Up @@ -1478,6 +1479,7 @@ archivefiles(const char *const *argv)
int i;
jmp_buf ejbuf;
enum modstatdb_rw msdbflags;
struct passed_through_package_info unpackedInfo = passed_through_package_info_init();

trigproc_install_hooks();

Expand Down Expand Up @@ -1580,14 +1582,16 @@ archivefiles(const char *const *argv)

dpkg_selabel_load();

process_archive(argp[i]);
process_archive(argp[i], &unpackedInfo);
onerr_abort++;
m_output(stdout, _("<standard output>"));
m_output(stderr, _("<standard error>"));
onerr_abort--;

pop_error_context(ehflag_normaltidy);
}
serialize_the_info_about_triggerers_into_an_env_variable(&unpackedInfo);
passed_through_package_info_free(&unpackedInfo);

dpkg_selabel_close();

Expand Down
42 changes: 42 additions & 0 deletions src/bencode.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* This is free and unencumbered software released into the public domain.

* Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

* In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

* For more information, please refer to <https://unlicense.org/>
*/

#include <stdio.h>

#include "bencode.h"

size_t measure_benc_pascal_str(struct pascal_str *s){
return snprintf(NULL, 0, "%zu:", s->size) + s->size;
}

void serialize_benc_pascal_str(char **serPtr, struct pascal_str *s){
*serPtr += sprintf(*serPtr, "%zu:%s", s->size, s->ptr);
}
void serialize_benc_tag(char **serPtr, char tag){
*serPtr += sprintf(*serPtr, "1:%c", tag);
}

void serialize_benc_tag_value_pair(char **serPtr, char tag, struct pascal_str *s){
if(s->ptr){
serialize_benc_tag(serPtr, tag);
serialize_benc_pascal_str(serPtr, s);
}
}


size_t measure_benc_tag_value_pair(struct pascal_str *s){
if(s->ptr){
return measure_benc_pascal_str(s) + OUR_BENC_KEY_TAG_SIZE;
} else {
return 0;
}
}
26 changes: 26 additions & 0 deletions src/bencode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#pragma once

/*
* This is free and unencumbered software released into the public domain.

* Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

* In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

* For more information, please refer to <https://unlicense.org/>
*/

#include "pascal_str.h"

enum {
OUR_BENC_KEY_TAG_SIZE = 3,
BENC_START_END = 2, // l<...>e
};

size_t measure_benc_pascal_str(struct pascal_str *s);
void serialize_benc_pascal_str(char **serPtr, struct pascal_str *s);
void serialize_benc_tag(char **serPtr, char tag);
void serialize_benc_tag_value_pair(char **serPtr, char tag, struct pascal_str *s);
size_t measure_benc_tag_value_pair(struct pascal_str *s);
3 changes: 2 additions & 1 deletion src/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include <dpkg/pkg-list.h>

#include "force.h"
#include "triggerer_info_passthrough.h"

/* These two are defined in <dpkg/fsys.h>. */
struct fsys_namenode_list;
Expand Down Expand Up @@ -149,7 +150,7 @@ void ensure_package_clientdata(struct pkginfo *pkg);
/* from archives.c */

int archivefiles(const char *const *argv);
void process_archive(const char *filename);
void process_archive(const char *filename, struct passed_through_package_info *unpackedInfo);
bool wanttoinstall(struct pkginfo *pkg);

/* from update.c */
Expand Down
Loading