You are not logged in.
Hello,
I am currently trying to create an Arch Linux package based on a .deb file for my Brother QL710W printer. I read on a Debian page, that .deb file is already a binary so I thought ok it doesn't need to be built. Only packing it would be sufficient. So I wrote a PKGBUILD file like this:
# Maintainer: Žiga Lausegger <ziga.lausegger@gmail.com>
pkgname=brother-ql710w-lpr
pkgver=1.0.1
pkgrel=1
pkgdesc="LPR driver for Brother QL-710W label printer."
arch=('i686' 'x86_64')
url="http://support.brother.com/g/b/downloadlist.aspx?c=eu_ot&lang=en&prod=lpql710weuk&os=130"
license=('EULA')
groups=('base-devel')
depends=()
source=(LPR.deb)
md5sums=('e741a4891e73dbee7526e0baf4dcd2ee')
package() {
tar -zxf data.tar.gz -C "${pkgdir}"
}
You will notice that for now a source file LPR.deb is being used as I don't want to go FTP untill I am satisfied. Is this a sufficient way to install a simple .deb file in order to install?
Last edited by 71GA (2014-07-29 12:45:57)
C, ARM, ARM assembly, HTML, CSS, JS, Linux
Offline
It might suffice, but ensure that the paths follow the Arch Linux specifications, and also check if the file permissions are okay.
Offline
71GA,
convention is to add -bin to the name of such packages to reflect they use pre-built binaries.
There are lots of brother printerdriver packages in AUR, are you sure none of them supports your printer ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Online
That's pretty much how it's done. You'll probably need some conditional statements for different architecture source and checksums, and it doesn't need to be in the base-devel group, but overall, you're on the right track.
Offline
Thank you all for your advices. I will add "bin" in front of a package name which is not yet in AUR because this is for a prinjter which is in fact a label writer (QL series). At least I can't find the package. So for instalation of .deb with pacman I do not need dkms?
C, ARM, ARM assembly, HTML, CSS, JS, Linux
Offline
Perhaps this is what you meant, but to be sure, the "-bin" should be appended to the end of the name, not the front of it: for example "brother-ql710w-lpr-bin".
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
Well anyway this isn't working. Installing lpr and wrapper drivers for my printer using this method didn't make printer appear among Brother devices in CUPS.
On the other hand these two packages:
brother-ql700-cupswrapper
brother-ql700-lpr
are for a QL700 printer (mine is QL710W). PAckages look nicely done. Maybee I should remodell them to suit my printer.
C, ARM, ARM assembly, HTML, CSS, JS, Linux
Offline
I am now trying to remodel the PKGBUILD file from the posted links. It now looks like this:
# Maintainer: Žiga Lausegger <ziga.lausegger@gmail.com>
# Based on the QL-500 PKGBUILD -> K. Hampf <khampf@users.sourceforge.net>
pkgname=brother-ql710w-cupswrapper
pkgver=1.0.1
pkgrel=3
pkgdesc="LPR-to-CUPS wrapper for Brother P-Touch QL-710W labelprinter (metric)"
url="http://support.brother.com/g/s/id/linux/en/download_esp.html#QL-710W"
arch=('i686' 'x86_64')
license=("EULA")
if [ $CARCH == "x86_64" ]; then
depends=('cups' 'ghostscript' 'lib32-glibc' 'brother-ql710w-lpr')
else
depends=('cups' 'ghostscript' 'glibc' 'brother-ql710w-lpr')
fi
makedepends=('rpmextract' 'cpio')
source=("http://www.brother.com/pub/bsc/linux/dlf/ql710wcupswrapper-1.0.1-1.i386.rpm")
md5sums=('030149f5e39ec2dcdd07b479ac0516ad')
noextract=("ql710wcupswrapper-1.0.1-1.i386.rpm")
install='cupswrapper.install'
build() {
cd $srcdir
rpmextract.sh "ql710wcupswrapper-1.0.1-1.i386.rpm"
rm -f ql710wcupswrapper-1.0.1-1.i386.rpm
mkdir -p usr/share/ || return 1
mv usr/local/Brother usr/share/brother || return 1
rmdir usr/local || return 1
sed -i 's|/usr/local/Brother|/usr/share/brother|g' `grep -lr '/usr/local/Brother' ./` || return 1
}
package() {
mv usr $pkgdir/. || return 1
}
There is another file named cupswrapper.install which I remodelled to look like this:
# Install file for brother-ql710w-cupswrapper
post_install() {
ln -s /opt/brother/PTouch/ql710w/{inf,lpd} /usr/share/brother/PTouch/ql710w/.
/usr/share/brother/PTouch/ql710w/cupswrapper/cupswrapperql710wpt1
systemctl restart cups
}
pre_remove() {
/usr/share/brother/PTouch/ql710w/cupswrapper/cupswrapperql710wpt1 -e
}
post_remove() {
rm /usr/share/brother/PTouch/ql710w/{inf,lpd}
systemctl restart cups
}
Well when I inputed makepkg I got an error:
[ziga@Ziga-PC brother-ql710w-cupswrapper]$ makepkg
==> Making package: brother-ql710w-cupswrapper 1.0.1-3 (Wed Jul 30 09:59:45 CEST 2014)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found ql710wcupswrapper-1.0.1-1.i386.rpm
==> Validating source files with md5sums...
ql710wcupswrapper-1.0.1-1.i386.rpm ... Passed
==> Extracting sources...
==> Starting build()...
mv: cannot stat ‘usr/local/Brother’: No such file or directory
==> ERROR: A failure occurred in build().
Aborting...
How is it possible that mv can't find the "/usrlocal/Brother" which is created in PKGBUILD?
C, ARM, ARM assembly, HTML, CSS, JS, Linux
Offline
Your original PKGBUILD was much better. The new one uses a bunch of out of date crap. And the install file does bad things.
The error seems self explanatory, too, there is no file or dir called usr/local/brother. It was not created in the PKGBUILD, not sure where you think it was.
Last edited by Scimmia (2014-07-30 13:55:05)
Offline
Your original PKGBUILD was much better. The new one uses a bunch of out of date crap. And the install file does bad things.
The error seems self explanatory, too, there is no file or dir called usr/local/brother. It was not created in the PKGBUILD, not sure where you think it was.
But after using my original PKGBUILD file, my printer wasn't listed in CUPS... It didn't even work as it should.
C, ARM, ARM assembly, HTML, CSS, JS, Linux
Offline
So it wasn't complete. Finish it instead of just blindly copying something else that's total crap.
Offline
Maybe coincidence, but yesterday a new thread came up introducing a tool which is facing your problems.
Offline
The sriver page you linked to in your first post also contained source code. It compiles in no time and without arrors on my pc. Is there a reason you're not willing to compile it?
Offline