Pacman - A suite of tools for manipulating debian packages

Related tags

Miscellaneouspacman
Overview

Overview

Repository is a suite of tools for manipulating debian packages. At a high level, dep-find generates a dependency list for use with dep-symbol and dep-src. I have also created a script, dep-all.sh, that chains the use of all three scripts together.

dep-find

This tool builds a dependency graph of the debian packages cached by apt. I have incluced the files direct.txt and transitive.txt which show the direct and transitive dependencies for debian packages respectively.

You can grab a dependency list for a package with:

./dep-find.py -p PACKAGE

which will create a file PACKAGE.dep in the current working directory. This can then be feed into dep-symbols. For example, ./dep-find.py -p wget will get the dependencies for wget and create wget.dep.

You might also find it useful to search for dependecies and packages with apt: apt-cache depends PACKAGE and apt-cache search PACKAGE.

dep-symbol

Tool uses a dependency list for a package (built from dep-find.py) to download all dependencies and build a small repository of those dependency that contain symbol information.

Install

All that is required for dep-symbol itself is a working python installation. Once you've pulled the repository, you can kickoff the test.sh script to make sure dep-symbol works. I've done my work on fir02, and have hardcoded the test script to use a copy of jq in my local installation directory (/home/acanino/local). If you do not run on fir02, you'll have to setup jq yourself and modify the test script.

Usage

1. Generate symbol repository for dependency list

mkdir symbol-out
./dep-symbol.py -d symbol-out wget.dep

lzload

lzload is a C library that does the actual shim / dummy library loading at runtime. Build and install with cmake:

cd lzload
mkdir build && cd build
cmake .. -DCMAKE_C_COMPILER=/path/to/clang 
make
sudo make install

dep-src

Install

Run setup.sh to install dependencies and place the necessary make/dpkg-buildflags files on the system (this will require root). This will also setup a local symbol repository for lzload to use at runtime at $HOME/var/symbol-out.

Usage

1. Building a dependency list

dep-src downloads and builds debian source packages from a dependency list.

./dep-find.py -p wget
mkdir src-out
./dep-src.py -d src-out wget.dep

2. Generating symbol database

Generate a symbol repository for lzload to use to help find the correct symbol / library mapping at runtime.

./dep-symbol.py -d $HOME/var/symbol-out wget.dep

3. Build dummy libraries

Generate dummy libraries for use with lzload. The following will attempt to build the dummy libraries and then store them in src-out/lib

mkdir src-out
./dep-src.py -d src-out wget.dep

4. Running with the dummy libraries.

There is a script at the top level, wget.sh, that demonstrates what environmnet variables need to be set to hook into the dummy libs. We need to set three environment variables: LZLOAD_LIB, LZ_LIBRARY_PATH, and LD_LIBRARY_PATH.

LZLOAD_LIB contains a colon seperate list of libraries that lzload should intercept. LZ_LIBRARY_PATH points to the actual path of the real libraries that lzload should load on a fault. LD_LIBRARY_PATH must point to the dummy libraries and liblzload.so. ~

Owner
Pardis Pashakhanloo
Research Intern @ Microsoft Computer Science PhD Student @ University of Pennsylvania
Pardis Pashakhanloo
Simple plug-and-play installer for users who want to LineageOS from stock firmware, or from another custom ROM.

LineageOS for the Teracube 2e Simple plug-and-play installer for users who want to LineageOS from stock firmware, or from another custom ROM. Dependen

Gagan Malvi 5 Mar 31, 2022
Telegram bot to search quotes from brainyquote.com

Brainy Quote Bot @BrainQuoteBot A star ⭐ from you means a lot to us! Telegram bot to search quotes from brainyquote.com Usage Deploy to Heroku Tap on

21 Nov 24, 2022
Automate your Microsoft Learn Student Ambassadors event certificate with Python

Microsoft Learn Student Ambassador Certificate Automation This repo simply use a template certificate docx file and generates certificates both docx a

Muhammed Oğuz 24 Aug 24, 2022
This repository contains Python Projects for Beginners as well as for Intermediate Developers built by Contributors.

Python Projects {Open Source} Introduction The repository was built with a tree-like structure in mind, it contains collections of Python Projects. Mo

Gaurav Pandey 115 Apr 30, 2022
More routines for operating on iterables, beyond itertools

More Itertools Python's itertools library is a gem - you can compose elegant solutions for a variety of problems with the functions it provides. In mo

2.8k Jan 02, 2023
适用于HoshinoBot下的人生重来模拟器插件

LifeRestart for HoshinoBot 原作地址 python版原地址 本项目地址 安装方法 这是一个HoshinoBot的人生重来模拟器插件 这个项目使用的HoshinoBot的消息触发器,如果你了解其他机器人框架的api(比如nonebot)可以只修改消息触发器就将本项目移植到其他

黛笙笙 16 Sep 03, 2022
A beautiful and useful prompt for your shell

A Powerline style prompt for your shell A beautiful and useful prompt generator for Bash, ZSH, Fish, and tcsh: Shows some important details about the

Buck Ryan 6k Jan 08, 2023
SimBiber - A tool for simplifying bibtex with official info

SimBiber: A tool for simplifying bibtex with official info. We often need to sim

336 Jan 02, 2023
Машинное обучение на ФКН ВШЭ

Курс "Машинное обучение" на ФКН ВШЭ Конспекты лекций, материалы семинаров и домашние задания (теоретические, практические, соревнования) по курсу "Маш

Evgeny Sokolov 2.2k Jan 04, 2023
Cross-platform .NET Core pre-commit hooks

dotnet-core-pre-commit Cross-platform .NET Core pre-commit hooks How to use Add this to your .pre-commit-config.yaml - repo: https://github.com/juan

Juan Odicio 5 Jul 20, 2021
Cloud Native sample microservices showcasing Full Stack Observability using AppDynamics and ThousandEyes

Cloud Native Sample Bookinfo App Observability Bookinfo is a sample application composed of four Microservices written in different languages.

Cisco DevNet 13 Jul 21, 2022
Nook is a simple, concatenative programming language written in Python.

Nook Nook is a simple, concatenative programming language written in Python. Status Nook is currently WIP. It lacks a lot of basic feature, and will n

Wumi4 4 Jul 20, 2022
A python script that automatically joins a zoom meeting based on your timetable.

Zoom Automation A python script that automatically joins a zoom meeting based on your timetable. What does it do? It performs the following processes:

Shourya Gupta 3 Jan 01, 2022
Python library for parsing Godot scene files

Godot Parser This is a python library for parsing Godot scene (.tscn) and resource (.tres) files. It's intended to make it easier to automate certain

Steven Arcangeli 30 Jan 04, 2023
通过简单的卷积神经网络直接预测出验证码图片中滑块的位置

使用说明 1. 在本地测试 运行python3 prdict_one.py即可,默认需要预测的图片路径位于testImg文件夹下的test1.png 运行python3 predict_folder.py预测testImg下的所有图片 2. 部署到服务器 运行python3 run_a_server

12 Mar 08, 2022
Software for visualization of RTStruct structures on CT images

This script is responsible for the operation of the program, it is responsible for both creating the GUI and the process of processing images from dicom files. The program is based on the use of the

Adam Piszczek 0 Jun 29, 2022
APC Power Usage is an application which shows power consuption overtime for UPS units manufactured by APC.

APC Power Usage Introduction APC Power Usage is an application which shows power consuption overtime for UPS units manufactured by APC. Screenshoots G

Stefan Kondinski 3 Oct 08, 2021
List of all D&D 5e monsters: WotC + popular third-party sourcebooks

Xio's Guide to Monsters If you're a DM like me, and you have multiple sources of D&D 5e monsters that include WotC as well as third-party suppliers, y

20 Jan 06, 2023
Get the stats of a (or more) Hypixel player(s)

Hypixel_Stats Get the statistics of a (or more) Hypixel player(s) Who needs this? Everyone who plays a lot of Minecraft and often plays on mc.hypixel.

Finnomator 1 Feb 12, 2022