Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Support for Launchpad's PPA's #170
Comments
|
+1, this feature sounds awesome. I'll see what I can do. In the meantime if anyone has specific implementation ideas or patches I'm happy to entertain those :) |
brainstorm
commented
Mar 12, 2012
|
Cool ! I have been further playing with "apt-get source tofrodos" and then dpkg-buildpackage to generate the .changes file. Here's a sample .changes file we can use as a template for FPM. Format: 1.8
Date: Thu, 21 Jan 2010 21:25:26 +0100
Source: tofrodos
Binary: tofrodos
Architecture: source amd64
Version: 1.7.8.debian.1-2
Distribution: unstable
Urgency: low
Maintainer: Alexander Reichle-Schmehl
Changed-By: Alexander Reichle-Schmehl
Description:
tofrodos - Converts DOS <-> Unix text files, alias tofromdos
Changes:
tofrodos (1.7.8.debian.1-2) unstable; urgency=low
.
* Change maintainer name
* Drop dos2unix and unix2dos symlinks, to allow introduction of original
dos2unix package. (remove dh_link call and add NEWS about that)
* Add README.source
* Bump standards version to 3.8.3 (no further changes needed)
Checksums-Sha1:
20296fc485696be36e3471f6fa960698184ccd53 990 tofrodos_1.7.8.debian.1-2.dsc
617eabee26c2c0531c0ed362afe81a322eab7d48 5919 tofrodos_1.7.8.debian.1-2.diff.gz
b210ce619db57c9831b50f47b5bdf5ecb1aacf2e 20874 tofrodos_1.7.8.debian.1-2_amd64.deb
Checksums-Sha256:
89c09839cb84e340181762c50bfa77a266282146ce405bb6cb8d20714229d47a 990 tofrodos_1.7.8.debian.1-2.dsc
c3eac567b6473d60f884f961d5db50bcf9fb57736164e183b1f01bc62786daad 5919 tofrodos_1.7.8.debian.1-2.diff.gz
5c39de04230c6b05bb6c7d58fa026cc122ea12e1a66ca0bb48c1ef8e80c206bd 20874 tofrodos_1.7.8.debian.1-2_amd64.deb
Files:
64f74dac9de415f486342757464049ae 990 utils optional tofrodos_1.7.8.debian.1-2.dsc
828cf376024253b30a63dbbc59094fd2 5919 utils optional tofrodos_1.7.8.debian.1-2.diff.gz
938c5b941d8de0e552501cc63226beb9 20874 utils optional tofrodos_1.7.8.debian.1-2_amd64.deb
All of it has to be signed by the author's GPG key by using "gpg --clearsign template.changes", as far as I've seen. Fetching the info from the existing md5sums and control files (generated by FPM) should be sufficient to construct such a file and pass the different dput checks. Cheers ! |
brainstorm
commented
Mar 12, 2012
|
Apparently launchpad does not accept .deb files, so putting together a correct .changes file listing the .deb does not upload the file to the PPA :-( $ tail -40 snpeff_2.0.5d.changes Files: 0908fb2b61df7fb48c5d8c4f02ce17d2 3951712 utils optional snpeff_2.0.5d_amd64.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) (...) $ dput ppa:brainstorm/galaxy snpeff_2.0.5d.changes Uploading to ppa (via ftp to ppa.launchpad.net): Successfully uploaded packages. https://help.launchpad.net/Packaging/PPA/Uploading (...) Note that Launchpad builds the packages onsite, and does not accept deb files. |
|
yeah I think you have to upload a dsc file? I haven't looked much into it myself because building debian packages the 'debian way' requires so much silly ceremony. |
dougburks
commented
May 28, 2012
|
+1 This feature would be of tremendous value to us in the Security Onion distro (currently based on Xubuntu 10.04). We've been using fpm pretty heavily for the past year and uploading the debs to Sourceforge (faking a "repo" using a custom bash script). Now that Ubuntu 12.04 is out, we're going to be rebuilding the entire distro using a Launchpad PPA and if we could continue using fpm this would be a HUGE time savings for us. Please let me know if there is anything I can do to help! Thanks! |
|
If someone can distill the PPA usage instructions into something simple (perhaps a small list of tasks) that could help. Everyt ime I look at the PPA and debian packaging docs, I get tremendously bored (they're long and obfuscated) and go on to doing something else ;) |
dougburks
commented
May 28, 2012
|
I definitely feel your pain :) I've been trying to wade into the ocean of PPA docs and it has been arduous. These are the best documents I've found so far (still overly long, but I was able to follow the instructions and get a working deb): |
dougburks
commented
May 30, 2012
|
Here are some notes from Peter Manev of the Suricata project:
|
dougburks
commented
May 30, 2012
|
As a followup to my previous comment, here is Peter's script for uploading Suricata to Launchpad:
|
nlaurance
commented
Dec 10, 2012
|
+1. Would be a very nice feature |
rawberg
commented
Dec 30, 2012
|
+1. For now I'm going to just host a repo off of S3 so I can keep using FPM but this would be really nice to have! |
|
I'm actually hoping for the success of another project - https://github.com/dnbert/prm - which aims to provide sane package repository management for rpm/deb/solaris. |
|
I'm actually hoping for the success of another project - https://github.com/dnbert/prm - which aims to provide sane package repository management for rpm/deb/solaris. |
spaceapedev
commented
Feb 28, 2013
|
+1 fpm to ppa would be a massive win! |
joshskinner-wf
commented
Mar 2, 2013
|
+1 this feature due to the fact i'm using mini-dinstall to run my repo. would love to see if prm plays out, but for some reason prm fails to run for me. i'm a ruby noob tho |
dsturnbull
commented
Jul 16, 2013
|
prm worked excellently for this problem. |
benmccann
referenced this issue
in elastic/elasticsearch
Aug 30, 2013
Closed
There is no official debian/ubuntu repository #3286
thedrow
commented
Nov 13, 2013
|
+1! |
thedrow
referenced this issue
in hashicorp/vagrant-installers
Nov 13, 2013
Open
Vagrant package repo/ppa #12
|
I'll try answer the current state of things, first, and then answer what we can do about it. For starters, PPA is a build system. It takes debian source packages (source code + instructions on how to build it using debian tooling) and produces binary packages for multiple platforms. This is distinctly different from what fpm does, which is to take a ready-to-package product and packages it. PPA, in a way, is more similar to what fpm-cookery does, with the exception that PPA provides hosting for the package repositories as well. I believe you folks are really wanting is simpler package repository maintenance and hosting. PPA is not simpler, in my opinion, but my opinions aside PPA still is technically limited to deb package formats. The dnbert/prm project is not limited to deb package formats and helps you host your own repos in S3 or over http. We could hack it such that fpm could produce artifacts acceptable for upload into PPA, but because fpm starts from a ready-to-package origin, the artifacts produced by PPA would be limited to one architecture. This may be acceptable for architecture-independent code like ruby/python/java/perl projects. HOWEVER... If you were to try publishing a single ruby app packaged by fpm, it would have dependencies that were probably not available anywhere else, so you would be inclined to package those with fpm and push them into your PPA which might get large or hilarious, depending on your perspective! Launchpad PPA also threatens to delete any and all packages if they don't like what you're doing, and skipping Debian's packaging practices and ceremonies seems exactly like something someone with a vested interest in PPA would deem delete-worthy, but maybe I'm just paranoid ;) I'm certain there are easier ways to provide package hosting and repo maintenance, and as said, prm gets you pretty close, and is open source. |
thedrow
commented
Nov 13, 2013
|
Nevertheless, PPAs makes it easy for the end user to install, manage and maintain dependencies when using Debian. It might be harder to maintain for the developers but it is much easier to use for the end-users which is what's important for most developers. |
|
WHen you say PPA, I really hear "apt repository" because PPA isn't the thing you say you are caring about, you want an easy way to install and maintain packages as a Debian user. It isn't much work to use reprepro or apt-ftparchive to provide your own repository. Further, tools like prm and freight make this process even easier. If you could clarify your requirements, I could more adequately respond to them. "Must support PPA" is a very specific requirement when I'm certain you're asking for easier generalized repository management. |
thedrow
commented
Nov 14, 2013
|
No, I say PPA because I want it to be on Launchpad because:
|
|
It is worth approaching the launchpad folks separately and asking them to accept pre-built debs. If you are interested, please do this. |
thedrow
commented
Nov 17, 2013
|
Won't that take longer? |
|
It isn't a simple thing to make fpm emit something consumable by launchpad for technical reasons already presented in this issue. I welcome any hacks or prototypes toward this effort, though I will work on a hack for his eventually, time and energy permitting. |
CarlFK
commented
Nov 23, 2013
|
I have wallowed around trying to maintain my own PPA, so I appreciate the effort required. |
klen
commented
Dec 3, 2013
|
+1 to the issue. |
brodock
commented
Jun 4, 2014
|
+1 thanks for all the documentation |
|
There are two fantastic alternatives to Launchpad PPA now:
Both provide easy hosting for packages that work great with things produced with fpm. Muuuch simpler than PPA, imo, and more friendly to your target audience. |
indykish
commented
Jun 21, 2014
|
I was planning to setup my own repo using http://www.aptly.info/ behind nginx to upload debs but @jordansissel your info helped me to move to bintray.com. It simple and easy. packagecloud.io has a limit. |
burke
commented
Nov 27, 2014
|
In case it helps anyone that stumbles upon this issue in the future, I'm using this script as a simple-ish way to generate a #!/bin/bash
set -euo pipefail
distro=$1;shift
deb=$1;shift
test "${deb}"
test "${distro}"
dir=$(mktemp -d)
trap 'rm -rf "${dir}"' EXIT
cp "${deb}" "${dir}"
cd "${dir}"
ar x *.deb
tar xf control.tar.gz
tar xf data.tar.gz
cat usr/share/doc/*/changelog.Debian.gz | zcat > changelog
pkgname=$(grep -oP "(?<=Package: )(.*)" control)
echo "Source: ${pkgname}" >> control
dpkg-genchanges -lchangelog -ccontrol -u. -f<(echo *.deb admin extra) -b -q "-DDistribution=${distro}" "-DBinary=${pkgname}" 2>/dev/nullCall like |
jordansissel
removed
the
enhancement
label
Feb 26, 2015
This was referenced Aug 10, 2015
jas99
commented
Jul 7, 2016
|
+1 |
brainstorm commentedMar 10, 2012
Hello Jordan,
I think it would be extremely useful if fpm generates a minimal yet correct .changes file for .deb packages. That way one could just run:
And a FPM-packaged package is automatically exposed to the debian world by just doing:
I have been trying with "dpkg-genchanges", but it requires correct "control" files, changelogs, etc... the typical hassle of a traditional (manual) package building. Is there already a way to have this process automated within FPM ?
Thanks for your tool(s) !