Can scons be used to automatically update your working copy? - scons

Bit of confusion. It looks like SCons can be used to automatically get things from the repository if they're not present in your working copy, but maybe not? The documentation is conflicting at best. Does anyone know if this is possible? Thanks.

This is a similar question regarding Subversion checkouts. The answer is that SCons used to support this, but the developers deprecated it in more recent versions.
An alternative approach is to use a network mounted drive together with SCons' Repository feature. This is more like Make's VPATH feature than a source code repository like CVS or Subversion though.

Related

How to update a Cygwin package that has no maintainer?

Many Cygwin's packages have no maintainer, is it still revelant to use Cygwin ?
I would like to update ruby or ansible package to the last version, how can I do that ?
Thanks
Package maintainers are volunteers.
Anyone can offer him/herself for the job.
Documentation
https://cygwin.com/packaging-contributors-guide.html
Mailing list for discussion about Maintainers
https://cygwin.com/mailman/listinfo/cygwin-apps
If you want to be a maintainer you must subscribe to the Cygwin mailing lists. All discussions about maintaining packages are there, and you will be required to post your credentials (i.e. public key) there in order to upload updated packages. Note that some orphan packages became so because the previous maintainer needed to reduce their workload.
Once you are subscribed, just ask to take over an orphaned package, upload your credentials, install the source package, make necessary changes, and upload the new package. It sounds easy, but you might want to build the package and make sure it runs all tests before asking to be the new maintainer.
Note that there may be others who have tried to update a package, and encountered blocking problems. Those will be discussed in the mailing lists, which you can search.

How to install Cppcheck on a Linux server

I want to use Cppcheck's XML report for SonarQube.
https://github.com/SonarOpenCommunity/sonar-cxx/wiki/Code-checkers
But on Cppcheck's official site, I did not find any help with the installation on a Linux server.
Has somebody any working solution for this?
Edit:
I like how the sonarqube tag disappeared, thank you #G. And again, for the constant "support". How convenient just to remove it, instead of helping, or letting someone to help who had these issues as well. Unrelated to the question, yes.
Then guess what: My boss wanted to demo this tool, but certainly told him now not to buy the commercial edition. Everything is unrelated with everything. Good marketing for 2017.
As far as I know, there are no Cppcheck packages built for Linux. However, you may easily clone the Cppcheck repository from GitHub (https://github.com/danmar/cppcheck) and build it yourself. It has no extra dependencies and therefore is easy to build:
cd cppcheck-master
make
Also, I'm not sure about integrating Cppcheck with SonarQube, but there's a detailed article about SonarQube configuration, probably you may find something useful there: https://www.viva64.com/en/m/0037/

Adding GitHub project to Launchpad PPA Package

I am trying to figure out how to add a GitHub project to my simple, working Launchpad PPA package. The GitHub project that I am try to add is https://github.com/compiz-reloaded/compiz-boxmenu. I couldn't find much help online and I'm hoping that someone can help point me in the right direction on how to accomplish this. Thanks!
You need to 'debianize' your package first. The debianization depends on the package type, and the manual for a package debianization is called Debian Policy.
This wiki is also very useful. Once you have your package debianized, you should compile it using the source option (I usually do it using dpkg-buildpackage -S. Pass your key using -k<Key> also. The same one you uploaded to your launchpad account.
Once you built your source, you will find a file called package_version.changes. You basically upload it as described in your PPA information. The package will be compiled, and, if no errors are found, it will be available in the PPA. If you want to enable the build for other architectures, as IBM POWER (ppc64el) or ARM (aarch64) , you should opt in.

How to gather the full config of a NixOS system?

I read a bit about NixOS and tried it these days, because I got the impression that it would let me configure a Linux with just one file.
When I used it, I installed a bunch of packages with nix-env, so they didn't end up in the configuration.nix, but I could simply uninstall them later and add them to the configuration.nix by hand. I there something like npm i -g <package> that would install this globally so it would end up in the configuration.nix and could simply be copied to another machine.
Also, I installed stuff like zsh and atom and they have an entirely different approach to configuration and customization (bashscript, javascript, less, etc).
Is there a way for Nix/NixOS to track the package-specific config too?
Does it already happen and I don't see it? Like the nix expression of the package knows where the package will store its config etc.
I mean, it's nice that I can add these packages to the main config and when using it at another PC I get the same software installed, but I still see myself writing rather much configs for the installed packages too.
If you want packages installed through configuration.nix, then the easiest way to accomplish that is to add them to the environment.systemPackages attribute. Packages listed in there will be available automatically to all users on the machine. As far as I know, there is no shell command available to automate the maintenance of that attribute, though. The only way to manage that list is by editing configuration.nix and manually adding the packages you'd like to have installed.
Nix does not manage package-specific configuration files. As you probably know, NixOS provides such a mechanism for files in /etc, but a similar mechanism to manage config files in $HOME etc. does not exist. The PR https://github.com/NixOS/nixpkgs/pull/9250 on Github contains a concrete proposal to add this capability to Nix, but it hasn't been merged yet because it requires some changes that are controversial.
Nix does not currently offer ways of managing user specific configuration or language specific package managers. AFAICT that's because it is a very complex and opinionated territory compared to generating configs for sshd etc.
There are however Nix-based projects providing solution to at least some parts of your question. For managing user configuration (zsh etc.), have a look at home manager.

How to develop in Linux using GNU toolchain, coming from Java?

I'm a good Java programmer, albeit the first languages I learnt were C/C++. Anyway, for work reasons, I switched to Java and web languages. Sometimes I get interested in this or that Linux project, usually coming as a git or svn repository... The problem is that I usually clone the repo, I try to configure it, I install all the needed libraries (and this takes ages), maybe finally I succeed... but then make fails or configure itself fails, complaining about some tool that is missing. Or maybe I installed two versions of the same library and the configure script gets the wrong one, or boring problems like this.
Anyway, I see loads of people using those tools everyday, so it must not be so difficult after all!
Can you point out resources that may help in the first steps?
Thanks
What you are referring to are known as autotools and make
autotools are used to generate scripts and build files that can be used to build as well as install a program/package/software (whatever you call it)
Here is wikipedia link for the GNU build system in general.
And refer to this link for details about the autotools and related stuff
It may take longer, but if you are interested in how to fix those problems yourself I recommend learning how autoconf and automake work. I made a positive experience with the book "Autotools: a practitioner's guide to Autoconf, Automake and Libtool". I read the dead-tree version but it is also available online: http://fsmsh.com/2753.

Resources