Code Monkey home page Code Monkey logo

libprime-server's Introduction

Build Status

What is this?

Packaging for debian (ubuntu really) was a mystery to me until @sneetsher helped me to figure it out. Check out build.sh to see how we are now packing prime_server into its library, devel and bin packages. It also has links and notes about how to get those packages onto your PPA. Enjoy and thanks again @sneetsher!

What should I do?

So you have a normal autotools project (maybe its c maybe its c++) and you want to turn it into a package behind a PPA. You want someone to be able to just add your ppa, and install your software without having to build it and know all the dependencies and all that fun stuff. Well I'm here to tell you you're out of luck.. You've probably searched around the internet to find a way to build this type of thing and ended up utterly confused. I was where you were and I'm hoping this README can help you.

The first thing you need to do is look at this http://packaging.ubuntu.com/html/index.html

It's got tons and tons of information in it but there are really only 2 parts that you'll probably need to worry about. The first thing you should do is follow the steps to setup a launchpad account: http://packaging.ubuntu.com/html/getting-set-up.html

When you're done with that you should have your fingerprint and your launchpad login squared away. When you are ready to put some code and packages into launchpad you'll want to head over to: https://launchpad.net/~

Click the link labled Create new PPA and give it a name. Mine was prime_server. Now you're ready to start building packages.

There is actually a pretty nice tutorial on how to do this but the example is a bit trivial such that it doesn't teach you quite enough to get going. Specifically I wanted to build libs, dev and bins packages but it only shows you how to do bins. Here's that step by step process: http://packaging.ubuntu.com/html/packaging-new-software.html

One thing that does come out of this is the creation and manual editing of the stuff in the debian directory. You'll want to do this at least once after which, you can squirrel that debian directory and your manual edits away because you can use it to create packages in an automated fashion.

After utterly failing at using that to do what I wanted I posed a question on askubuntu.com which @sneetsher was kind enough to hand hold me through. Most of what was needed was proper editing of the contents of the debian directory. The result of that is this script and this debian directory. You'll see that it will basically build packages on your system for your specific version of Ubuntu. Extra work is needed to sign these and push them up to your PPA. Which, you could do, but then only users who are running your version of Ubuntu could make use of them. That's why someone created pbuilder.

So pbuilder and its associated tools are awesome. They basically let you setup a vanilla environment of whatever version of Ubuntu you want (except Utopic for some reason...) for the purpose of testing out your package build. This is great because it basically lets you check to see if your package will be able to build on the launchpad servers. So with that information I threw together this script. This will produce all the stuff you need to push to your ppa but wont actually push anything.

To actually push stuff to your PPA you'll want to try out something like this script. This puts a branch with your code in your PPA (which is required or your packages won't be usable by others). It then signs (using the fingerprint you made with your launchpad account) and pushes your package sources to your PPA. Once pushed launchpad will accept or reject them, if accepted they'll build and hopefully pass and become available via your PPA. If rejected you'll get an email telling you why.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.