ytoolshed / multipkg Goto Github PK
View Code? Open in Web Editor NEWAutomation for package builds
Automation for package builds
am i missing something, or is multipkg packaged with multipkg? there's no (clear) way to install it without already having a functioning copy.
We should be able to query a .rpm or .deb package's metadata to determine info about how it was built.
I'm thinking at least:
The goal is to make it simple to reproduce the package build given only the output package.
If permissions on your ~/.cpan directory are incorrect, Seco::Multipkg::CPAN holds with no errors to STDOUT/STDERR.
I had to strace to figure out what was going on:
write(1, "WARNING: CPAN.pm is unable to write a configuration file. You\nmust be able to create and write to '/home/vagrant/.cpan/CPAN/MyConfig.pm'.\n\nAborting configuration.\n", 164) = 164
/home/vagrant/.cpan/CPAN/MyConfig.pm was owned by root and multipkg was running as user 'vagrant'
We should either use a temp .cpan directory or do proper perms checking on the default.
sudo cpanm install App::Multipkg?
thoughts?
Lots of multipkg stuff is magic and undocumented.
Questions I've got or have heard:
I'm happy to write this, but @erikwb - can you throw together a list of anything clever you can think of in multipkg?
Multipkg.pm references a "confdir", which is supposed to contain a spec.template file and some other junk. All of this is missing from github. It'd be nice to have a semi-usable example of at least a spec.template, if not some of the other confdir stuff.
I can't make the -N/--branch options work.
Reproduce with:
$ git-multipkg -b http://github.com/ytoolshed -N git-multipkg-build-from-branch-broken multipkg
$ rpm -qpl multipkg*rpm | grep THIS_SHOULD_EXIST
$ echo $?
1
You can see the file that I created in that branch here:
The generated DEBIAN/control file should contain an Installed-Size field that lists, in kB, the size of the package in uncompressed installed form. It's reasonable to calculate this based on du during the build process.
Additionally, the DEBIAN/md5sums file should contain checksums for each file (other than files that live in /etc/). The format is:
6aa8bbdec48a311884ed0e433a464602 usr/bin/foo
cc29c04462ee591b535026935531514f usr/lib/libfoo.so.1.2.3
Somewhere along the lines, support for repo bases (-b) on local filesystems got dropped. When using git-multipkg from commit 6ccefbf, the following succeeds:
git-multipkg -b /home/noahm/src multipkg
But with more recent revisions(e.g. b94a318), it fails with
"unsupported base at /usr/bin/git-multipkg line 176."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.