I have a PKGBUILD for aura-bin, namely this is it presently (showing it here, instead of referring you to it, in case I change it, which is probable):
# Maintainer: Colin Woodbury <colingw@gmail.com>
_pkgname=aura
pkgname=aura-bin
pkgver=1.3.5
pkgrel=1
pkgdesc="A secure package manager for Arch Linux and the AUR written in Haskell - Prebuilt binary"
url="https://github.com/fosskers/aura"
license=('GPL-3')
arch=('i686' 'x86_64')
depends=('gmp' 'pacman' 'pcre' 'abs')
optdepends=('powerpill: For faster repository downloads.'
'customizepkg: For auto-editing of PKGBUILDs.'
'aur-git: AUR package completions for zsh.')
provides=('aura')
conflicts=('aura' 'aura-git')
options=('strip')
source_i686=(https://bitbucket.org/fosskers/aura/downloads/${_pkgname}-${pkgver}-i686.tar.gz)
source_x86_64=(https://bitbucket.org/fosskers/aura/downloads/${_pkgname}-${pkgver}-x86_64.tar.gz)
md5sums_i686=('SKIP')
md5sums_x86_64=('b7af8eda246de7640039aca2e255e00b')
package() {
# Install aura binary
mkdir -p "$pkgdir/usr/bin/"
install -m 755 aura "$pkgdir/usr/bin/"
# Installing man page
mkdir -p "$pkgdir/usr/share/man/man8/"
install -m 644 aura.8 "$pkgdir/usr/share/man/man8/aura.8"
# Installing bash completions
mkdir -p "$pkgdir/usr/share/bash-completion/completions/"
install -m 644 bashcompletion.sh "$pkgdir/usr/share/bash-completion/completions/aura"
# Installing zsh completions
mkdir -p "$pkgdir/usr/share/zsh/site-functions/"
install -m 644 _aura "$pkgdir/usr/share/zsh/site-functions/_aura"
# Directory for storing PKGBUILDs
mkdir -p "$pkgdir/var/cache/aura/pkgbuilds"
# Directory for storing source packages
mkdir -p "$pkgdir/var/cache/aura/src"
# Directory for storing installed package states
mkdir -p "$pkgdir/var/cache/aura/states"
}
as you can see it is using two different sources for two different supported architectures (i686 and x86_64). How do I write a _service file that will automatically retrieve both sources and respond appropriately when I inevitably bump this package to later package versions (which is specified by the pkgver variable in PKGBUILDs)? By that, I know that if I select “Add file” in this package’s home in my project and choose a remote URL of https://bitbucket.org/fosskers/aura/downloads/aura-1.3.5-i686.tar.gz (for the i686 package) and later add another file with a remote URL of https://bitbucket.org/fosskers/aura/downloads/aura-1.3.5-x86_64.tar.gz (for the x86_64 package) it will download the CURRENT sources for this PKGBUILD. But how do I write a _service file that will automatically update when I bump the pkgver variable in my PKGBUILD to that of later releases? I have been using this _service file and it is not working (i.e., it is not downloading the sources at all):
Why sucking down a binary blob, again, it’s frowned upon on OBS, how does the end user of your package know if it’s safe, plus unable to inspect the source.
Binaries for me are last resorts, only when the limitations of the OBS (like its lack of Internet access during the build and lack of [community] and [multilib] repos) force me to. For example, I have a brackets-bin package that is used instead of the brackets package, which builds from source, because the OBS doesn’t provide Internet access (brackets needs Internet access during its build, similarly to Atom). Other times I use binaries because of circular dependencies like that I mentioned here https://forums.opensuse.org/showthread.php/516725-Resolving-circular-dependencies-when-building-packages-for-Arch_Extra. I asked for help at the Arch forums but they weren’t of much help, so I ended up having to make some of the problem packages built from binaries. If you or anyone else have a better solution, I would love to hear it (not sarcastic, or intending to be rude, I’m being sincere). I only use these methods because I am desperate. Which blacklisted packages are you referring to?
Hi
The only way around is to either download the needed packages and build so they are available, or have all the sources downloaded so available at build time for you package, basically extract them into the buildroot into the required locations… you may also need to tweak the build tools (configure, makefiles etc) so they know about them.
The joys of building packages, circular references etc
I pointed to the OBS url in a previous post for blacklisted packages, things like ffmpeg, also any of the broadcom type packages, and anything else that has a restricted license for distribution.
The problem is that ffmpeg is required by other packages, like vlc, which in turn is needed by emotion_generic_players. You wouldn’t happen to know of a more liberal instance of the Build Service I could place these packages? Plus, I haven’t the foggiest what you mean by:
The only way around is to either download the needed packages and build so they are available, or have all the sources downloaded so available at build time for you package, basically extract them into the buildroot into the required locations... you may also need to tweak the build tools (configure, makefiles etc) so they know about them.
I am not a programmer, software developer, etc, I’m not familiar with the format of makefiles, configure scripts, etc. I asked MargueriteSu about building Atom (an example package that requires Internet during the build) in the OBS and her reply was essentially that I needed to patch script/build and it was not as simple as myself or others might think, so I best leave it up to her.
Hi
The most liberal version of a build service instance is your own one Just run it in a VM, add any additional systems you have around as build (you can boot from a usb device). http://openbuildservice.org/
For the other packages, you could always ask the packman folks to add the build target your after? http://packman.links2linux.org/
packman doesn’t build packages for Arch Linux. Plus I want these packages I build to be available from an online repository, building these packages locally with my OBS tools doesn’t make them available online. Like I could add them to my dropbox or Google Drive, but I can’t set up a package repository with these tools, at least not to my knowledge.
Ah, I’ve never setup a FTP server, HTTP server, or anything like this:
Publish and open your local port(s) and it will, or push the whole repo to a hosting site. You should be able to push all the files needed to create?
So I’m afraid I really don’t follow. The closest thing to this that I’ve done, that I can think of, is that I used to host my blog (currently called The Hornery, previously called The Sabayon Blog) at x10hosting (https://x10hosting.com/). It gave a cpanel, in case that’s relevant to what you’re talking about. I only used free hosting, paid hosting at https://x10premium.com/, seems to provide features more along the lines of what you’re referring to, if my understanding is right. I cannot afford paid hosting, so I’m afraid I can’t use x10premium. I sent an email to the PackMan team requesting an Arch Linux repo, no response so far, if it helps here is the exact email I sent:
Hi,
Is there any interest in adding an Arch Linux repository to PackMan? If so, I would be interested in adding some proprietary-licensed packages from my OBS Project (https://build.opensuse.org/project/show/home:fusion809:arch_extra) there, as they are not allowed on the OBS.
Thanks for your time,Brenton
I sent that at 03:00 UTC (roughly 8 hours ago, at the time of writing this message).
Still no response from the packman people, but I removed all the blacklisted packages, although I would like to be able to distribute these deleted packages via some repo, even if this might just be a pipe dream.