31 #include "archive_utils.h" 32 #include "file_utils.h" 40 #include <ext/stdio_filebuf.h> 44 #define PKG_DB_DIR "var/lib/pkg/DB/" 45 #define PKG_FILES "/files" 46 #define PKG_META "META" 47 #define PKG_RECEPT "Pkgfile" 48 #define PKG_README "README" 49 #define PKG_PRE_INSTALL ".PRE" 50 #define PKG_POST_INSTALL ".POST" 52 #define PKG_REJECTED "var/lib/pkg/rejected" 53 #define PKGADD_CONF "var/lib/pkg/pkgadd.conf" 54 #define PKGADD_CONF_MAXLINE 1024 56 #define LDCONFIG "sbin/ldconfig" 57 #define LDCONFIG_CONF "etc/ld.so.conf" 58 #define LDCONFIG_CONF_ARGS "-r " 59 #define SHELL "bin/sh" 62 #define INSTALL_INFO "usr/bin/install-info" 63 #define INSTALL_INFO_ARGS "--info-dir=usr/share/info " 65 #define UPDATE_ICON "usr/bin/gtk-update-icon-cache" 66 #define UPDATE_ICON_ARGS "-f -t " 69 #define COMPILE_SCHEMAS "usr/bin/glib-compile-schemas" 70 #define COMPILE_SCHEMAS_ARGS "" 73 #define UPDATE_DESKTOP_DB "usr/bin/update-desktop-database" 74 #define UPDATE_DESKTOP_DB_ARGS "-q " 77 #define UPDATE_MIME_DB "usr/bin/update-mime-database" 78 #define UPDATE_MIME_DB_ARGS "-n " 81 #define GDK_PIXBUF_QUERY_LOADER "usr/bin/gdk-pixbuf-query-loaders" 82 #define GDK_PIXBUF_QUERY_LOADER_ARGS "--update-cache" 85 #define GIO_QUERYMODULES "usr/bin/gio-querymodules" 86 #define GIO_QUERYMODULES_ARGS "usr/lib/gio/modules" 89 #define QUERY_IMMODULES_3 "usr/bin/gtk-query-immodules-3.0" 90 #define QUERY_IMMODULES_3_ARGS "--update-cache" 93 #define QUERY_IMMODULES_2 "usr/bin/gtk-query-immodules-2.0" 94 #define QUERY_IMMODULES_2_ARGS "--update-cache" 104 PKG_PREINSTALL_START,
109 PKG_POSTINSTALL_START,
125 std::string collection;
126 std::string description;
127 std::string signature;
132 std::string contributors;
133 std::string packager;
134 std::string maintainer;
138 std::set< std::pair<std::string,time_t> > dependencies;
139 std::set<std::string> alias;
140 std::set<std::string> files;
142 typedef std::map<std::string, pkginfo_t> packages_t;
143 typedef std::map<std::string, std::string> alias_t;
169 explicit Pkgdbh(
const std::string& name);
173 virtual void parseArguments(
int argc,
char** argv);
174 virtual void run(
int argc,
char** argv) {};
175 virtual void run() {};
177 virtual void printHelp()
const {};
179 virtual void progressInfo()
const;
180 virtual void treatErrors(
const std::string& s)
const;
183 void print_version()
const;
184 int getNumberOfPackages();
185 std::set<std::string> getListOfPackageName();
186 bool checkPackageNameExist(
const std::string& name)
const;
191 std::set<std::string> getFilesOfPackage(
const std::string& packageName);
192 int getListOfPackageNames(
const std::string& path);
193 std::pair<std::string, pkginfo_t> getInfosPackage(
const std::string& packageName);
194 void buildSimpleDatabase();
195 void buildCompleteDatabase(
const bool& silent);
196 void buildDatabase(
const bool& progress,
200 const std::string& packageName);
203 void addPackageFilesRefsToDB(
const std::string& name,
206 bool checkPackageNameUptodate(
const std::pair<std::string,
208 bool checkPackageNameBuildDateSame(
const std::pair<std::string,
209 time_t>& dependencieNameBuild);
214 void removePackageFiles(
const std::string& name);
215 void removePackageFiles(
const std::string& name,
216 const std::set<std::string>& keep_list);
221 void removePackageFilesRefsFromDB(
const std::string& name);
222 void removePackageFilesRefsFromDB(std::set<std::string> files,
223 const std::set<std::string>& keep_list);
224 std::set<std::string> getConflictsFilesList(
const std::string& name,
228 std::pair<std::string, pkginfo_t> openArchivePackage(
const std::string& filename);
229 std::set< std::pair<std::string, time_t> > getPackageDependencies(
const std::string& filename);
230 void extractAndRunPREfromPackage(
const std::string& filename);
231 void installArchivePackage(
const std::string& filename,
232 const std::set<std::string>& keep_list,
233 const std::set<std::string>& non_install_files);
238 void moveMetaFilesPackage(
const std::string& name,
pkginfo_t& info);
241 void readRulesFile();
242 void getInstallRulesList(
const std::vector<rule_t>& rules,
243 rule_event_t event, std::vector<rule_t>& found)
const;
244 bool checkRuleAppliesToFile(
const rule_t& rule,
245 const std::string& file);
247 void getFootprintPackage(std::string& filename);
249 std::string m_packageArchiveName;
250 std::string m_packageName;
251 std::string m_packageArchiveVersion;
252 std::string m_packageArchiveRelease;
253 std::string m_packageArchiveCollection;
254 std::string m_packageVersion;
255 std::string m_packageRelease;
256 std::string m_packageCollection;
257 std::string m_utilName;
260 std::vector<rule_t> m_actionRules;
261 std::set< std::pair<std::string, int> > m_postInstallList;
262 alias_t m_listOfAlias;
264 packages_t m_listOfInstPackages;
265 packages_t m_listOfDepotPackages;
267 action m_actualAction;
272 void runLastPostInstall();
274 std::set<std::string> m_runtimeLibrariesList;
275 std::set<std::string> m_filesList;
276 std::set<std::string> m_packageNamesList;
277 unsigned int m_filesNumber;
278 unsigned int m_installedFilesNumber;
287 Db_lock(
const std::string& m_root,
bool exclusive);
292 struct sigaction m_sa;
296 void assertArgument(
char** argv,
int argc,
int index);
297 void rotatingCursor();
Definition: libcards.h:1320
Definition: libcards.h:1358
Definition: libcards.h:1483
Definition: libcards.h:1364