mailchuck / PyBitmessage

This repository has been discontinued, please use the official PyBitmessage repository
https://github.com/Bitmessage/PyBitmessage
MIT License
28 stars 4 forks source link

Packaging #139

Open mendaxi opened 8 years ago

mendaxi commented 8 years ago

If you run the Makefile in the default git folder named "PyBitmessage", it will give you a whole list of errors.

This can be fixed by renaming the git directory as "pybitmessage-0.4.4", with the current version (citation needed) appended to the directory.

mendaxi commented 8 years ago

Issue with the way things are named in the Makefile. Excerpt:

APP=pybitmessage
VERSION=0.4.4

source:
    tar -cvf ../${APP}_${VERSION}.orig.tar ../${APP}-${VERSION} --exclude-vcs
    gzip -f9n ../${APP}_${VERSION}.orig.tar

Problem is with ../${APP}-${VERSION} being named pybitmessage-0.4.4 To build from the default git folder, change ../${APP}-${VERSION} to PyBitmessage, possibly?

mendaxi commented 8 years ago

It seems that with bashrc's packagemonkey implementation seems to have thrown quite a few things off.

In generate.sh:

packagemonkey -n "PyBitmessage" --version "0.4.4" --dir "." -l "mit" \
    -e "Bob Mottram (4096 bits) <bob@robotics.uk.to>" 

We aren't Bob

In debian.sh:

# Sign files
gpg -ba ../${APP}_${VERSION}-1_${ARCH_TYPE}.deb
gpg -ba ../${APP}_${VERSION}.orig.tar.gz

It signs the .deb package with a line in the debian/control file, which has this:

Maintainer: Bob Mottram (4096 bits) <bob@robotics.uk.to>

Because of the way Bob made the packaging scripts, this needs a total overhaul. I've attempted to rebuild this, but I'm not experienced enough with making debian packages to do it in a timely manner.

So in short, I don't know what files we need to get rid of and which ones we need to keep

PeterSurda commented 8 years ago

I actually tried to contact Bob about a month ago but heard nothing back.

I need to spend more time on figuring out how linux packaging is supposed to work so that it can be smoothly integrated into distros. For now, I always deployed it by checking it out from github.

PeterSurda commented 8 years ago

Feel free to spend more time on this, @mendaxi , if you want. I need to fix other stuff first.

mendaxi commented 8 years ago

Looks like I fixed all of the debian compilation errors with my latest commit. (Brace for wall of text)

phobos@mars:~/make/mailchuck-unstable$ ./debian.sh 
sed: can't read puppypackage/pinstall.sh: No such file or directory
sed: can't read puppypackage/puninstall.sh: No such file or directory
sed: can't read debian/*.links: No such file or directory
rm -f pybitmessage \#* \.#* gnuplot* *.png debian/*.substvars debian/*.log
rm -fr deb.* debian/pybitmessage rpmpackage/`uname -m`
rm -f ../pybitmessage*.deb ../pybitmessage*.changes ../pybitmessage*.asc ../pybitmessage*.dsc
rm -f rpmpackage/*.src.rpm archpackage/*.gz archpackage/*.xz
rm -f puppypackage/*.gz puppypackage/*.pet slackpackage/*.txz
make: Nothing to be done for 'all'.
tar -cvf ../pybitmessage_0.5.5.orig.tar ../pybitmessage-0.5.5 --exclude-vcs --exclude 'debian'
tar: Removing leading `../' from member names
../pybitmessage-0.5.5/
../pybitmessage-0.5.5/ebuild.sh
../pybitmessage-0.5.5/man/
../pybitmessage-0.5.5/man/pybitmessage.1.gz
../pybitmessage-0.5.5/LICENSE
../pybitmessage-0.5.5/README.md
../pybitmessage-0.5.5/osx.sh
../pybitmessage-0.5.5/puppy.sh
../pybitmessage-0.5.5/COPYING
../pybitmessage-0.5.5/debian.sh
../pybitmessage-0.5.5/slackpackage/
../pybitmessage-0.5.5/slackpackage/slack-desc
../pybitmessage-0.5.5/slackpackage/doinst.sh
../pybitmessage-0.5.5/INSTALL.md
../pybitmessage-0.5.5/desktop/
../pybitmessage-0.5.5/desktop/can-icon.svg
../pybitmessage-0.5.5/desktop/icon24.png
../pybitmessage-0.5.5/desktop/icon14.xpm
../pybitmessage-0.5.5/desktop/pybitmessage.desktop
../pybitmessage-0.5.5/archpackage/
../pybitmessage-0.5.5/archpackage/PKGBUILD
../pybitmessage-0.5.5/slack.sh
../pybitmessage-0.5.5/puppypackage/
../pybitmessage-0.5.5/puppypackage/pybitmessage-0.3.5.pet.specs
../pybitmessage-0.5.5/puppypackage/icon14.xpm
../pybitmessage-0.5.5/rpm.sh
../pybitmessage-0.5.5/arch.sh
../pybitmessage-0.5.5/configure
../pybitmessage-0.5.5/rpmpackage/
../pybitmessage-0.5.5/rpmpackage/pybitmessage.spec
../pybitmessage-0.5.5/Makefile
../pybitmessage-0.5.5/src/
../pybitmessage-0.5.5/src/helper_inbox.py
../pybitmessage-0.5.5/src/namecoin.py
../pybitmessage-0.5.5/src/protocol.py
../pybitmessage-0.5.5/src/class_singleCleaner.py
../pybitmessage-0.5.5/src/build_osx.py
../pybitmessage-0.5.5/src/class_addressGenerator.py
../pybitmessage-0.5.5/src/api.py
../pybitmessage-0.5.5/src/bitmsghash/
../pybitmessage-0.5.5/src/bitmsghash/bitmsghash.cl
../pybitmessage-0.5.5/src/bitmsghash/bitmsghash.cpp
../pybitmessage-0.5.5/src/bitmsghash/Makefile
../pybitmessage-0.5.5/src/socks/
../pybitmessage-0.5.5/src/socks/README
../pybitmessage-0.5.5/src/socks/LICENSE
../pybitmessage-0.5.5/src/socks/BUGS
../pybitmessage-0.5.5/src/socks/__init__.py
../pybitmessage-0.5.5/src/images/
../pybitmessage-0.5.5/src/images/yellowicon.png
../pybitmessage-0.5.5/src/images/sent.png
../pybitmessage-0.5.5/src/images/bitmessage.icns
../pybitmessage-0.5.5/src/images/qidenticon.png
../pybitmessage-0.5.5/src/images/redicon.png
../pybitmessage-0.5.5/src/images/subscriptions.png
../pybitmessage-0.5.5/src/images/no_identicons.png
../pybitmessage-0.5.5/src/images/can-icon-24px-green.png
../pybitmessage-0.5.5/src/images/send.png
../pybitmessage-0.5.5/src/images/addressbook.png
../pybitmessage-0.5.5/src/images/can-icon-24px.png
../pybitmessage-0.5.5/src/images/networkstatus.png
../pybitmessage-0.5.5/src/images/qidenticon_two_x.png
../pybitmessage-0.5.5/src/images/can-icon.ico
../pybitmessage-0.5.5/src/images/blacklist.png
../pybitmessage-0.5.5/src/images/qidenticon_x.png
../pybitmessage-0.5.5/src/images/can-icon-24px-yellow.png
../pybitmessage-0.5.5/src/images/can-icon-16px.png
../pybitmessage-0.5.5/src/images/identities.png
../pybitmessage-0.5.5/src/images/inbox.png
../pybitmessage-0.5.5/src/images/can-icon-24px-red.png
../pybitmessage-0.5.5/src/images/greenicon.png
../pybitmessage-0.5.5/src/images/qidenticon_two.png
../pybitmessage-0.5.5/src/depends.py
../pybitmessage-0.5.5/src/shared.py
../pybitmessage-0.5.5/src/helper_bitcoin.py
../pybitmessage-0.5.5/src/class_objectHashHolder.py
../pybitmessage-0.5.5/src/proofofwork.py
../pybitmessage-0.5.5/src/l10n.py
../pybitmessage-0.5.5/src/class_sqlThread.py
../pybitmessage-0.5.5/src/addresses.py
../pybitmessage-0.5.5/src/helper_sql.py
../pybitmessage-0.5.5/src/message_data_reader.py
../pybitmessage-0.5.5/src/pyelliptic/
../pybitmessage-0.5.5/src/pyelliptic/openssl.py
../pybitmessage-0.5.5/src/pyelliptic/LICENSE
../pybitmessage-0.5.5/src/pyelliptic/README.md
../pybitmessage-0.5.5/src/pyelliptic/ecc.py
../pybitmessage-0.5.5/src/pyelliptic/hash.py
../pybitmessage-0.5.5/src/pyelliptic/cipher.py
../pybitmessage-0.5.5/src/pyelliptic/arithmetic.py
../pybitmessage-0.5.5/src/pyelliptic/__init__.py
../pybitmessage-0.5.5/src/class_sendDataThread.py
../pybitmessage-0.5.5/src/class_receiveDataThread.py
../pybitmessage-0.5.5/src/helper_threading.py
../pybitmessage-0.5.5/src/defaultKnownNodes.py
../pybitmessage-0.5.5/src/helper_bootstrap.py
../pybitmessage-0.5.5/src/bitmessagecurses/
../pybitmessage-0.5.5/src/bitmessagecurses/__init__.py
../pybitmessage-0.5.5/src/translations/
../pybitmessage-0.5.5/src/translations/bitmessage_ru.ts
../pybitmessage-0.5.5/src/translations/bitmessage_ar.ts
../pybitmessage-0.5.5/src/translations/bitmessage_eo.pro
../pybitmessage-0.5.5/src/translations/bitmessage_ja.ts
../pybitmessage-0.5.5/src/translations/bitmessage_ar.pro
../pybitmessage-0.5.5/src/translations/bitmessage_eo.qm
../pybitmessage-0.5.5/src/translations/bitmessage_ja.pro
../pybitmessage-0.5.5/src/translations/bitmessage_cs.ts
../pybitmessage-0.5.5/src/translations/bitmessage_ar.qm
../pybitmessage-0.5.5/src/translations/bitmessage_nl.ts
../pybitmessage-0.5.5/src/translations/bitmessage_cs.qm
../pybitmessage-0.5.5/src/translations/bitmessage_de.qm
../pybitmessage-0.5.5/src/translations/bitmessage_fr.qm
../pybitmessage-0.5.5/src/translations/bitmessage_en_pirate.pro
../pybitmessage-0.5.5/src/translations/bitmessage_nl.pro
../pybitmessage-0.5.5/src/translations/bitmessage_eo.ts
../pybitmessage-0.5.5/src/translations/bitmessage_en_pirate.qm
../pybitmessage-0.5.5/src/translations/bitmessage_cs.pro
../pybitmessage-0.5.5/src/translations/bitmessage_en_pirate.ts
../pybitmessage-0.5.5/src/translations/bitmessage_zh_cn.ts
../pybitmessage-0.5.5/src/translations/bitmessage_de.pro
../pybitmessage-0.5.5/src/translations/bitmessage_no.qm
../pybitmessage-0.5.5/src/translations/bitmessage_no.ts
../pybitmessage-0.5.5/src/translations/bitmessage_no.pro
../pybitmessage-0.5.5/src/translations/bitmessage_fr.pro
../pybitmessage-0.5.5/src/translations/bitmessage_fr.ts
../pybitmessage-0.5.5/src/translations/bitmessage_zh_cn.qm
../pybitmessage-0.5.5/src/translations/bitmessage_ja.qm
../pybitmessage-0.5.5/src/translations/bitmessage_ru.pro
../pybitmessage-0.5.5/src/translations/bitmessage_zh_cn.pro
../pybitmessage-0.5.5/src/translations/bitmessage_nl.qm
../pybitmessage-0.5.5/src/translations/bitmessage_ru.qm
../pybitmessage-0.5.5/src/translations/bitmessage_de.ts
../pybitmessage-0.5.5/src/class_objectProcessor.py
../pybitmessage-0.5.5/src/helper_generic.py
../pybitmessage-0.5.5/src/bitmessageqt/
../pybitmessage-0.5.5/src/bitmessageqt/newchandialog.ui
../pybitmessage-0.5.5/src/bitmessageqt/newaddressdialog.py
../pybitmessage-0.5.5/src/bitmessageqt/newaddresswizard.py
../pybitmessage-0.5.5/src/bitmessageqt/iconglossary.ui
../pybitmessage-0.5.5/src/bitmessageqt/about.py
../pybitmessage-0.5.5/src/bitmessageqt/emailgateway.ui
../pybitmessage-0.5.5/src/bitmessageqt/bitmessageui.py
../pybitmessage-0.5.5/src/bitmessageqt/addaddressdialog.py
../pybitmessage-0.5.5/src/bitmessageqt/newchandialog.py
../pybitmessage-0.5.5/src/bitmessageqt/messageview.py
../pybitmessage-0.5.5/src/bitmessageqt/migrationwizard.py
../pybitmessage-0.5.5/src/bitmessageqt/foldertree.py
../pybitmessage-0.5.5/src/bitmessageqt/iconglossary.py
../pybitmessage-0.5.5/src/bitmessageqt/settings.ui
../pybitmessage-0.5.5/src/bitmessageqt/settingsmixin.py
../pybitmessage-0.5.5/src/bitmessageqt/regenerateaddresses.ui
../pybitmessage-0.5.5/src/bitmessageqt/newsubscriptiondialog.py
../pybitmessage-0.5.5/src/bitmessageqt/wanlan.ui
../pybitmessage-0.5.5/src/bitmessageqt/help.ui
../pybitmessage-0.5.5/src/bitmessageqt/specialaddressbehavior.py
../pybitmessage-0.5.5/src/bitmessageqt/emailgateway.py
../pybitmessage-0.5.5/src/bitmessageqt/bitmessage_icons_rc.py
../pybitmessage-0.5.5/src/bitmessageqt/settings.py
../pybitmessage-0.5.5/src/bitmessageqt/bitmessageui.ui
../pybitmessage-0.5.5/src/bitmessageqt/connect.py
../pybitmessage-0.5.5/src/bitmessageqt/addaddressdialog.ui
../pybitmessage-0.5.5/src/bitmessageqt/safehtmlparser.py
../pybitmessage-0.5.5/src/bitmessageqt/support.py
../pybitmessage-0.5.5/src/bitmessageqt/about.ui
../pybitmessage-0.5.5/src/bitmessageqt/utils.py
../pybitmessage-0.5.5/src/bitmessageqt/help.py
../pybitmessage-0.5.5/src/bitmessageqt/newaddressdialog.ui
../pybitmessage-0.5.5/src/bitmessageqt/specialaddressbehavior.ui
../pybitmessage-0.5.5/src/bitmessageqt/account.py
../pybitmessage-0.5.5/src/bitmessageqt/addpeer.ui
../pybitmessage-0.5.5/src/bitmessageqt/bitmessage_icons.qrc
../pybitmessage-0.5.5/src/bitmessageqt/regenerateaddresses.py
../pybitmessage-0.5.5/src/bitmessageqt/__init__.py
../pybitmessage-0.5.5/src/bitmessageqt/connect.ui
../pybitmessage-0.5.5/src/bitmessageqt/newsubscriptiondialog.ui
../pybitmessage-0.5.5/src/tr.py
../pybitmessage-0.5.5/src/api_client.py
../pybitmessage-0.5.5/src/highlevelcrypto.py
../pybitmessage-0.5.5/src/upnp.py
../pybitmessage-0.5.5/src/bitmessagemain.py
../pybitmessage-0.5.5/src/qidenticon.py
../pybitmessage-0.5.5/src/sslkeys/
../pybitmessage-0.5.5/src/sslkeys/key.pem
../pybitmessage-0.5.5/src/sslkeys/cert.pem
../pybitmessage-0.5.5/src/helper_sent.py
../pybitmessage-0.5.5/src/helper_startup.py
../pybitmessage-0.5.5/src/class_outgoingSynSender.py
../pybitmessage-0.5.5/src/debug.py
../pybitmessage-0.5.5/src/openclpow.py
../pybitmessage-0.5.5/src/bitmessagecli.py
../pybitmessage-0.5.5/src/class_singleListener.py
../pybitmessage-0.5.5/src/class_singleWorker.py
../pybitmessage-0.5.5/src/singleton.py
gzip -f9n ../pybitmessage_0.5.5.orig.tar
dpkg-buildpackage: source package pybitmessage
dpkg-buildpackage: source version 0.5.5-1
dpkg-buildpackage: source distribution utopic
dpkg-buildpackage: source changed by James Hawthorne <mendaxi@bitmessage.ch>
dpkg-buildpackage: host architecture amd64
 dpkg-source --before-build pybitmessage-0.5.5
 fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
dh_clean
 dpkg-source -b pybitmessage-0.5.5
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building pybitmessage using existing ./pybitmessage_0.5.5.orig.tar.gz
dpkg-source: info: building pybitmessage in pybitmessage_0.5.5-1.debian.tar.xz
dpkg-source: info: building pybitmessage in pybitmessage_0.5.5-1.dsc
 debian/rules build
dh_testdir
touch build-stamp
make
make[1]: Entering directory '/home/phobos/make/pybitmessage-0.5.5'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/phobos/make/pybitmessage-0.5.5'
 fakeroot debian/rules binary
make
make[1]: Entering directory '/home/phobos/make/pybitmessage-0.5.5'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/phobos/make/pybitmessage-0.5.5'
dh_testdir
dh_testroot
rm -f build-stamp
dh_clean
dh_testdir
dh_testroot
dh_prep
dh_installdirs
/usr/bin/make install -B DESTDIR=/home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage PREFIX=/usr
make[1]: Entering directory '/home/phobos/make/pybitmessage-0.5.5'
mkdir -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr
mkdir -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr
mkdir -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/man
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/man/man1
install -m 644 man/pybitmessage.1.gz /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/man/man1
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/pybitmessage
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/applications
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/pixmaps
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons/hicolor
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons/hicolor/scalable
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons/hicolor/scalable/apps
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons/hicolor/24x24
mkdir -m 755 -p /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons/hicolor/24x24/apps
install -m 644 desktop/pybitmessage.desktop /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/applications/pybitmessage.desktop
install -m 644 desktop/icon24.png /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/icons/hicolor/24x24/apps/pybitmessage.png
cp -rf src/* /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/share/pybitmessage
echo '#!/bin/sh' > /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo "if [ -d /usr/share/pybitmessage ]; then" >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo "  cd /usr/share/pybitmessage" >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo 'else' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo "  cd /usr/share/pybitmessage" >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo 'fi' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo 'if [ -d /opt/openssl-compat-bitcoin/lib ]; then' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo '  LD_LIBRARY_PATH="/opt/openssl-compat-bitcoin/lib/" exec python2 bitmessagemain.py' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo 'else' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo '  exec python2 bitmessagemain.py' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
echo 'fi' >> /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
chmod +x /home/phobos/make/pybitmessage-0.5.5/debian/pybitmessage/usr/bin/pybitmessage
make[1]: Leaving directory '/home/phobos/make/pybitmessage-0.5.5'
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
dh_installman
dh_link
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dpkg-gencontrol: warning: Depends field of package pybitmessage: unknown substitution variable ${shlibs:Depends}
dpkg-gencontrol: warning: Depends field of package pybitmessage: unknown substitution variable ${python:Depends}
dh_md5sums
dh_builddeb
dpkg-deb: building package 'pybitmessage' in '../pybitmessage_0.5.5-1_all.deb'.
 dpkg-genchanges  >../pybitmessage_0.5.5-1_amd64.changes
dpkg-genchanges: warning:     debian/changelog(l17): assuming long month name 'November'
LINE:  -- Bob Mottram (4096 bits) <bob@robotics.uk.to>  Sun, 2 November 2014 12:55:00 +0100
dpkg-genchanges: including full source code in upload
 dpkg-source --after-build pybitmessage-0.5.5
dpkg-buildpackage: full upload (original source is included)

The important bits are as follows:

# Build the package
# The -us and -uc flags force you to not sign the resulting package, which is a solution(?) to the
# packaging issue.
dpkg-buildpackage -F -us -uc

# Sign files
#gpg -ba ../${APP}_${VERSION}-1_${ARCH_TYPE}.deb
#gpg -ba ../${APP}_${VERSION}.orig.tar.gz
# This does not work if you do not have a private signing key, so it will be commented out by default.

And that covers it. You should now be able to package this on Debian based systems now.

ghost commented 8 years ago

Also, I forgot where it was mentioned, ebuild.sh needs to be removed. This will never work the way gentoo works, and is packaged in upstream (portage) and overlays.