Publish project on Launchpad

From Free Pascal wiki
Revision as of 15:59, 27 November 2016 by Chronos (talk | contribs) (Created page with "[ Launchpad] is default Ubuntu build system. It allows us to register own project and let build server build our application. But web interface is overco...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Launchpad is default Ubuntu build system. It allows us to register own project and let build server build our application. But web interface is overcomplicated and it is not easy to setup build of Lazarus project. Here this wiki pages can help.

It is not simply possible to get own application package immediately directly to standard Ubuntu packages. Such package needs to comply with several rules to be accepted as standard distribution package. But Launchpad also supports PPA (Personal Package Archives) which is place where non distribution packages can be prepared.

  • First register user account for you
  • After the project is created you can import source code from external repository to Launchpad Bazaar project repository. Go to Code section and click to Configure code link. Then fill required fields and click to Update button.
  • Create debian directory under your project. It doesn't need to be in branch root directory. It will be appended to branch from specified location. The directory need to contain several debian package specific files.


Source: project-name
Maintainer: Username <email@email.xx>
Section: utils
Priority: optional
Standards-Version: 1.0.0
Build-Depends: fpc, lazarus, lcl, lcl-utils, debhelper (>= 8)

Package: project-name
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends},
Description: Short description of package.
HomePage: http://project-homepage.xx/


#!/usr/bin/make -f

ROOT = $(CURDIR)/debian/project-name

	$(RM) -r lib
	$(RM) lib *.res project-name

	lazbuild --build-mode=Release project-name.lpi

	install -d -m 755 $(ROOT)/usr/bin
	install -s -m 755 project-executable $(ROOT)/usr/bin

	dh $@


project-name (1.0.0-1) precise; urgency=low

  * Original version 1.0.0 packaged with lazdebian

 -- Username <email@email.xx>  Sun, 27 Nov 2016 00:51:08 +0100



Files: *
Copyright: 2016 Creator name
License: GPL-2+
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 at your option) any later version.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 GNU General Public License for more details.
 You should have received a copy of the GNU General Public License along
 with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 On Debian systems, the full text of the GNU General Public
 License version 2 can be found in the file




3.0 (quilt)
  • Now also in Code section of the project click to Import a branch link on right panel. Fill branch name with debian-packaging and as source select import from location where debian directory for the application is stored. If you create multi-platform application then usually debian directory is not stored in root of your application branch but rather in some subdirectory. Then click to Request import.
  • Create recipe for branch:
# bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
nest packaging lp:~user/application-name/debian-packaging debian
  • Click to Request build(s) link to start build process


Is Lazarus IDE extension which helps to create and build deb packages.