Closed GoogleCodeExporter closed 9 years ago
How is this related to Issue 119? Both are about creating deb packages. Are deb
packages for Raspbian different ones than for Ubuntu?
Original comment by kai.openhab
on 6 Jul 2013 at 8:40
Are these ubuntu packages from Uwe available?
I think deb packages for ubuntu have a good chance to work on debian / raspbian
if a SysV-Init script is used. Ubuntu uses upstart as default init system.
upstart has its own configuration format, but can handle "legacy" SysV-init
scripts.
Debian uses SysV-Init as default (upstart is available, but not the default),
which can not handle upstart "scripts".
Original comment by theo.weiss@gmail.com
on 7 Jul 2013 at 2:58
I pushed the changes needed to build deb files with maven to my repo at
https://theo.weiss@code.google.com/r/theoweiss-tinkerforge2/.
If you call "maven package" you will - for now - get two deb files:
distribution/target/openhab-runtime-1.3.0-SNAPSHOT.deb
bundles/binding/org.openhab.binding.tinkerforge/target/openhab-addon-binding-tin
kerforge-1.3.0-SNAPSHOT.deb
Changes to pom files:
pom.xml
distribution/pom.xml
bundles/binding/org.openhab.binding.tinkerforge/pom.xml
All pom files from addons will need changes to get the deb packages.
I haven't changed these files because think it would be helpful, if a real
*maven guru* reviews the changes. I'm sure some optimizations can be done.
Most of my work has gone into changes of the installation directories. I tried
to achieve a standard linux hierarchy:
- configuration:
(files will not be removed by updates or uninstallation of the runtime)
/etc/openhab
- configuration for the init script:
/etc/default/openhab
- init script:
/etc/init.d/openhab
- installation of the runtime and addons:
(these files should only be changed by installation or updates of runtime or
addons packages)
/opt/openhab (may be should moved to another place)
- files which change during runtime
/var/lib/openhab
- log files
/var/log/openhab
You will find the used config files in: distribution/src/deb/
The deb package will add a user and group called "openhab", which are used
running the server process. Therefore openhab will have no root privileges. If
a binding needs more privileges - like some configurations of the exec binding
- sudo has to be used. If this is not possible the server can run as root by
changing /etc/default/openhab.
openhab will be added automatically to the system init using a post
installation script.
I have tested the packages with ubuntu 1204 and raspbian.
So much for now. I'm curious about your feedback.
Regards,
Theo
Original comment by theo.weiss@gmail.com
on 19 Jul 2013 at 8:53
Original comment by teichsta
on 13 Aug 2013 at 8:03
# pom.xml
* deb.maintainer should be changed to openHAB.org or openHAB.org Community not
you as individual since you won't maintain ALL packages over time.
# distribution/pom.xml
* plugin should be added under <plugins> rather than <pluginmanagement>
* version can be omitted
# bundles/binding/org.openhab.binding.tinkerforge/pom.xml
* deb.name should be as similar as possible to the artifact id. In this case it
is org.openhab.binding.tinkerforge so the deb should be named
"org-openhab-binding-tinkerforge". Would that naming scheme be compatible with
the Unix-world?
* deb.description should be the same as the <name>-tag. Could that be achieved
by using it as variable?
Original comment by teichsta
on 1 Sep 2013 at 8:09
Sorry I just realized that the infos on the issue are not up to date.
You will get deb files for all bindings, io and persistence add ons (newer
bundles are missing for now).
Here is a list:
mac:theo$ grep -r jdeb *
bundles/binding/org.openhab.binding.asterisk/pom.xml: <artifactId>jdeb</artifac
tId>
bundles/binding/org.openhab.binding.bluetooth/pom.xml: <artifactId>jdeb</artifa
ctId>
bundles/binding/org.openhab.binding.configadmin/pom.xml: <artifactId>jdeb</arti
factId>
bundles/binding/org.openhab.binding.cups/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.dmx/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.exec/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.fritzbox/pom.xml: <artifactId>jdeb</artifac
tId>
bundles/binding/org.openhab.binding.homematic/pom.xml: <artifactId>jdeb</arti
factId>
bundles/binding/org.openhab.binding.http/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.hue/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.ihc/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.knx/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.koubachi/pom.xml: <artifactId>jdeb</artif
actId>
bundles/binding/org.openhab.binding.modbus/pom.xml: <artifactId>jdeb</artifactI
d>
bundles/binding/org.openhab.binding.mpd/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.networkhealth/pom.xml: <artifactId>jdeb</ar
tifactId>
bundles/binding/org.openhab.binding.novelanheatpump/pom.xml: <artifactId>jdeb</
artifactId>
bundles/binding/org.openhab.binding.ntp/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.onewire/pom.xml: <artifactId>jdeb</artifact
Id>
bundles/binding/org.openhab.binding.onkyo/pom.xml: <artifactId>jdeb</artifact
Id>
bundles/binding/org.openhab.binding.plcbus/pom.xml: <artifactId>jdeb</artifactI
d>
bundles/binding/org.openhab.binding.plugwise/pom.xml: <artifactId>jdeb</artifac
tId>
bundles/binding/org.openhab.binding.pulseaudio/pom.xml: <artifactId>jdeb</artif
actId>
bundles/binding/org.openhab.binding.rfxcom/pom.xml: <artifactId>jdeb</artifac
tId>
bundles/binding/org.openhab.binding.samsungtv/pom.xml: <artifactId>jdeb</arti
factId>
bundles/binding/org.openhab.binding.serial/pom.xml: <artifactId>jdeb</artifactI
d>
bundles/binding/org.openhab.binding.snmp/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.sonos/pom.xml: <artifactId>jdeb</artifactId
>
bundles/binding/org.openhab.binding.tcp/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.tinkerforge/pom.xml:
<artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.urtsi/pom.xml: <artifactId>jdeb</artifact
Id>
bundles/binding/org.openhab.binding.vdr/pom.xml: <artifactId>jdeb</artifactId>
bundles/binding/org.openhab.binding.wol/pom.xml: <artifactId>jdeb</artifactId>
bundles/io/org.openhab.io.dropbox/pom.xml: <artifactId>jdeb</artifactId>
bundles/io/org.openhab.io.multimedia.tts.freetts/pom.xml: <artifactId>jdeb</art
ifactId>
bundles/io/org.openhab.io.multimedia.tts.marytts/pom.xml: <artifactId>jdeb</a
rtifactId>
bundles/persistence/org.openhab.persistence.cosm/pom.xml: <artifactId>jdeb</art
ifactId>
bundles/persistence/org.openhab.persistence.db4o/pom.xml: <artifactId>jdeb</art
ifactId>
bundles/persistence/org.openhab.persistence.exec/pom.xml: <artifactId>jdeb</art
ifactId>
bundles/persistence/org.openhab.persistence.logging/pom.xml: <artifactId>jdeb</
artifactId>
bundles/persistence/org.openhab.persistence.rrd4j/pom.xml: <artifactId>jdeb</ar
tifactId>
bundles/persistence/org.openhab.persistence.sense/pom.xml: <artifactId>jdeb</ar
tifactId>
bundles/persistence/org.openhab.persistence.sql/pom.xml: <artifactId>jdeb</arti
factId>
bundles/persistence/org.openhab.persistence.sql.mysql/pom.xml: <artifactId>jdeb
</artifactId>
bundles/pom.xml: <artifactId>jdeb</artifactId>
bundles/pom.xml: <goal>jdeb</goal>
distribution/pom.xml: <artifactId>jdeb</artifactId>
Original comment by theo.weiss@gmail.com
on 1 Sep 2013 at 8:55
A deb.name org-openhab-binding-tinkerforge would be quite unusual, I think
openhab-binding-tinkerforge would be OK.
The deb.description should be a short description of the software, may be
something like this "openHAB binding which connects the TinkerForge devices to
the openHAB event bus"
Here are some examples from raspian:
root@raspberrypi:~# dpkg -l |grep open
ii libltdl7:armhf 2.4.2-1.1
armhf A system independent dlopen wrapper for GNU libtool
ii libobrender27 3.5.0-7
armhf rendering library for openbox themes
ii libobt0 3.5.0-7
armhf parsing library for openbox
ii libopenjpeg2:armhf 1.3+dfsg-4.6
armhf JPEG 2000 image compression/decompression library
ii netcat-openbsd 1.105-7
armhf TCP/IP swiss army knife
ii openbox 3.5.0-7
armhf standards compliant, fast, light-weight, extensible window manager
ii openhab-addon-binding-exec 1.3.0~SNAPSHOT
all openhab addon binding exec
ii openhab-addon-tinkerforge 1.3
all openhab addon tinkerforge
ii openhab-runtime 1.3
all openhab runtime
ii openssh-blacklist 0.4.1+nmu1
all list of default blacklisted OpenSSH RSA and DSA keys
ii openssh-blacklist-extra 0.4.1+nmu1
all list of non-default blacklisted OpenSSH RSA and DSA keys
ii openssh-client 1:6.0p1-4
armhf secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:6.0p1-4
armhf secure shell (SSH) server, for secure access from remote machines
ii openssl 1.0.1e-2+rpi1
armhf Secure Socket Layer (SSL) binary and related cryptographic tools
Original comment by theo.weiss@gmail.com
on 1 Sep 2013 at 9:06
I think the most critical changes which should be reviewed are the changes to
the openhab launcher args. You will find them in
distribution/src/deb/etc/init.d/openhab:
JAVA_ARGS="-Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true
-Djetty.port=${HTTP_PORT} \
-Dopenhab.configfile="${OPENHAB_CONF_DIR}/configurations/openhab.cfg" \
-Dopenhab.configdir="${OPENHAB_CONF_DIR}/configurations" \
-Djetty.home="${OPENHAB_DIR}" \
-Djetty.port.ssl=${HTTPS_PORT} -Djetty.config="${OPENHAB_CONF_DIR}/jetty" \
-Djetty.logs="${OPENHAB_LOG_DIR}" -Djetty.rundir="${OPENHAB_DIR}" \
-Dlogback.configurationFile="${OPENHAB_CONF_DIR}"/logback.xml \
-Dfelix.fileinstall.dir="${OPENHAB_DIR}"/addons -Djava.library.path="${OPENHAB_DIR}"/lib \
-Djava.security.auth.login.config="${OPENHAB_CONF_DIR}"/login.conf \
-Dorg.quartz.properties="${OPENHAB_CONF_DIR}"/quartz.properties -Djava.awt.headless=true \
-jar ${LAUNCHER} \
-configuration ${OPENHAB_WORKSPACE_DIR} \
-data ${OPENHAB_WORKSPACE_DIR} \
-console ${TELNET_PORT}"
The jetty configuration lives under /etc/openhab/jetty/etc!
jetty.xml is slightly changed:
mac:theo$ diff distribution/openhabhome/etc/jetty.xml
distribution/src/deb/etc/openhab/jetty/etc/jetty.xml
89c89
< <Set name="Keystore"><Property name="jetty.home" default="."
/>/etc/keystore</Set>
---
> <Set name="Keystore"><SystemProperty name="jetty.config" default="."
/>/etc/keystore</Set>
192c192
< <Set name="filename"><Property name="jetty.home"
default="."/>/logs/yyyy_mm_dd.request.log</Set>
---
> <Set name="filename"><SystemProperty name="jetty.logs"
default="./logs"/>/yyyy_mm_dd.request.log</Set>
By the way an apt-repo for openHAB would be nice.
Original comment by theo.weiss@gmail.com
on 1 Sep 2013 at 9:35
ok, thanks!
> By the way an apt-repo for openHAB would be nice.
what Du we have to do to get one? Any hints where to find comprehensive
information?
Original comment by teichsta
on 1 Sep 2013 at 9:58
I just pushed some updated pom.xml files.
Original comment by theo.weiss@gmail.com
on 2 Sep 2013 at 6:32
As far as I know we will need a debian or ubuntu machine to create the repo.
The repo files must be transferred to a web server which serves the files. The
deb files must be signed using a gpg key, this seems to be supported by jdeb.
Unfortunatly I found no way to create the repo from maven.
Here are some web links:
https://wiki.debian.org/HowToSetupADebianRepository
https://wiki.debian.org/SettingUpSignedAptRepositoryWithReprepro
http://www.gambaru.de/blog/2012/09/11/reprepro-das-eigene-paketarchiv-fur-debian
-und-ubuntu/
Original comment by theo.weiss@gmail.com
on 2 Sep 2013 at 7:58
After talking to a friend of mine who has some deeper knowledge about Debian
repos, I think it may be possible to use maven to build the repo.
A description of the repo structure can be found here
https://wiki.debian.org/RepositoryFormat
May be the assembly plugin could be helpful.
Original comment by theo.weiss@gmail.com
on 3 Sep 2013 at 7:55
unfortunately this change won't make it into 1.3 - since we will move the
project (or at least part of it) to different infrastructure we should better
work on the packaging issue in that context. Thanks for contributing, we'll
come to it later.
Original comment by teichsta
on 6 Sep 2013 at 2:46
It seems that this issue hasn't been migrated to github? This happened on
purpose?
Original comment by theo.weiss@gmail.com
on 2 Dec 2013 at 7:49
I guess this got accidentially lost as its status is ReadyForReview... Will ask
Thomas to migrate this (and a few more) issue(s) as well.
Original comment by kai.openhab
on 2 Dec 2013 at 9:55
Original comment by kai.openhab
on 5 Dec 2013 at 10:23
Was this issue moved to github?
I could not find it.
Original comment by theo.weiss@gmail.com
on 10 Dec 2013 at 8:50
has been migrated to https://github.com/openhab/openhab/issues/641
Original comment by teichsta
on 10 Dec 2013 at 10:33
Original issue reported on code.google.com by
theo.weiss@gmail.com
on 6 Jul 2013 at 4:20